@iobroker/adapter-react-v5 4.5.3 → 4.5.4

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 (46) hide show
  1. package/Components/404.js +5 -5
  2. package/Components/404.js.map +1 -1
  3. package/Components/ColorPicker.js +2 -2
  4. package/Components/ColorPicker.js.map +1 -1
  5. package/Components/FileBrowser.d.ts +4 -1
  6. package/Components/FileBrowser.js +132 -51
  7. package/Components/FileBrowser.js.map +1 -1
  8. package/Components/Icon.js +2 -2
  9. package/Components/Icon.js.map +1 -1
  10. package/Components/JsonConfigComponent/ChipInput.js +2 -2
  11. package/Components/JsonConfigComponent/ChipInput.js.map +1 -1
  12. package/Components/JsonConfigComponent/ConfigAccordion.js +2 -2
  13. package/Components/JsonConfigComponent/ConfigAccordion.js.map +1 -1
  14. package/Components/JsonConfigComponent/ConfigCustom.js +2 -2
  15. package/Components/JsonConfigComponent/ConfigCustom.js.map +1 -1
  16. package/Components/JsonConfigComponent/ConfigGeneric.js +2 -2
  17. package/Components/JsonConfigComponent/ConfigGeneric.js.map +1 -1
  18. package/Components/JsonConfigComponent/ConfigPanel.js +2 -2
  19. package/Components/JsonConfigComponent/ConfigPanel.js.map +1 -1
  20. package/Components/JsonConfigComponent/ConfigSendto.js +2 -2
  21. package/Components/JsonConfigComponent/ConfigSendto.js.map +1 -1
  22. package/Components/JsonConfigComponent/index.js +7 -7
  23. package/Components/JsonConfigComponent/index.js.map +1 -1
  24. package/Components/Logo.js +1 -1
  25. package/Components/Logo.js.map +1 -1
  26. package/Components/ObjectBrowser.js +3 -3
  27. package/Components/ObjectBrowser.js.map +1 -1
  28. package/Components/SaveCloseButtons.js +2 -2
  29. package/Components/SaveCloseButtons.js.map +1 -1
  30. package/Components/Schedule.js +2 -2
  31. package/Components/Schedule.js.map +1 -1
  32. package/Components/TableResize.js +2 -2
  33. package/Components/TableResize.js.map +1 -1
  34. package/Components/TextWithIcon.js +2 -2
  35. package/Components/TextWithIcon.js.map +1 -1
  36. package/Components/TreeTable.js +2 -2
  37. package/Components/TreeTable.js.map +1 -1
  38. package/Dialogs/SelectFile.d.ts +2 -0
  39. package/Dialogs/SelectFile.js +17 -16
  40. package/Dialogs/SelectFile.js.map +1 -1
  41. package/Dialogs/SelectID.js +2 -2
  42. package/Dialogs/SelectID.js.map +1 -1
  43. package/GenericApp.js +2 -2
  44. package/GenericApp.js.map +1 -1
  45. package/README.md +3 -0
  46. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectBrowser.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_styles","_reactInlinesvg","_material","_iconsMaterial","_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","contextMenuEdit","contextMenuEditValue","contextMenuView","contextMenuCustom","contextMenuACL","contextMenuRoom","contextMenuRole","contextMenuAlias","contextMenuDelete","contextMenuKeys","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","SettingsApplications","Photo","SupervisedUserCircle","PersonOutlined","Router","Wifi","Info","Description","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","_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","dateFormat","state","isFloatComma","texts","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","getValueStyle","isExpertMode","isButton","prepareSparkData","values","time","DEFAULT_FILTER","ITEM_IMAGES","channel","device","adapter","meta","ListAlt","chart","ShowChart","config","Settings","group","host","schedule","CalendarToday","script","Code","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","contextMenu","now","preventDefault","setState","showContextMenu","console","log","findItem","pausedSubscribes","statesUpdateTimer","setTimeout","forceUpdate","clearTimeout","newState","event","filterFunc","columnsForAdmin","parse","parseObjectForAdmins","objectsUpdateTimer","_buildTree","lastAppliedFilter","_this$objects$_id","mobile","_ref","_asyncToGenerator2","_regenerator","mark","_callee","objId","_oldObj$common","oldObj","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","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","error","loaded","filterKey","depth","expandAllVisible","toast","editObjectDialog","editObjectAlias","viewFileDialog","showAliasEditor","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","_callee4","_callee4$","_context4","registerHandler","onObjectChange","subscribeObject","onContextMenu","componentDidMount","componentWillUnmount","_this4","filterTimer","unregisterHandler","unsubscribeObject","pattern","unsubscribeState","onStateChange","refreshComponent","_this5","renderErrorDialog","_this6","Dialog","open","maxWidth","fullWidth","onClose","DialogTitle","DialogContent","DialogContentText","DialogActions","Button","variant","onClick","autoFocus","startIcon","Check","toggleItem","_this7","multiSelect","_renderDefinedList","isLast","_this8","cols","unshift","ListItemButton","Checkbox","edge","disabled","checked","disableRipple","ListItemText","renderColumnsSelectorDialog","_this9","FormControlLabel","control","Switch","onChange","label","List","column","ListItemIcon","Close","_this10","getAdapters","instances","checkUnsubscribes","recordStates","unsubscribe","_root","_partyId","shift","_this11","adminColumns","objTypes","warn","subscribe","subscribeState","isPause","_this12","onFilter","_this13","_name","current","tagName","onFilterChanged","clearFilter","_this14","childNodes","isFilterEmpty","_this15","someNotEmpty","attr","getFilterInput","_this16","_this$filterRefs$name","FormControl","margin","Input","ref","underline","placeholder","defaultValue","autoComplete","firstChild","IconButton","size","getFilterSelect","_this17","_this$filterRefs$name2","hasIcons","Select","inputProps","displayEmpty","MenuItem","newFilter","getFilterSelectRole","getFilterSelectRoom","_this18","_this18$objects$id","_this18$objects$id2","getFilterSelectFunction","_this19","_this19$objects$id","getFilterSelectType","getFilterSelectCustoms","_this20","onExpandAll","_this21","onCollapseAll","_this22","expandDepth","_this23","onExpandVisible","onStatesViewVisible","onCollapseVisible","collapseDepth","_getSelectedIdsForExport","idDot","idLen","_exportObjects","isAll","_this24","getEnumsForId","renderExportDialog","_this25","getToolbar","_this26","allowObjectCreation","Tooltip","popper","Refresh","showExpertButton","disableColumnSelector","ViewColumn","badgeContent","LooksOne","TextFields","objectAddBoolean","toolTipObjectCreating","modalNewObj","Add","objectImportExport","input","handleJsonUpload","Publish","objectBrowserEditObject","objectEditBoolean","doNavigate","Build","toggleExpanded","onCopy","text","stopPropagation","copyToClipboard","renderColumnButtons","_this27","_item$children3","_item$data$obj$common","_item$data$obj$common3","onObjectDelete","objectEditOfAccessControl","modalEditOfAccess","modalEditOfAccessObjData","_item$children2","start","Delete","cellButtonsButtonIcon","aclTooltip","renderTooltipAccessControl","aclSystemConfig","Number","isNaN","Edit","dontDelete","_item$children4","_item$data$obj$common2","objectCustomDialog","readHistory","sparkline","setHours","getHours","setMinutes","setSeconds","setMilliseconds","nowMs","getTime","getHistory","end","step","addID","aggregate","sparks","getElementsByClassName","renderColumnValue","_obj$common4","_this28","fill","strokeWidth","copyText","RoomService","onOpen","_syncEnum","enumIds","newArray","_this$info$objects$en","_this29","enumId","promises","_this$info$objects$en2","_this$info$objects$en3","all","syncEnum","_this30","toCheck","renderEnumDialog","_this31","itemEnums","enumDialogEnums","enumsOriginal","alt","Fab","labelId","ListItem","tabIndex","ListItemSecondaryAction","renderEditRoleDialog","_this32","objectBrowserEditRole","ObjectBrowserEditRole","onColumnsEditCustomDialogClose","isSave","_this33","customColumnDialog","parseFloat","setCustomValue","it","Error","renderColumnsEditCustomDialog","_this34","getCustomValue","initValue","onKeyUp","keyCode","defaultChecked","pathText","TextField","renderCustomValue","_this35","notEditable","align","renderLeaf","isExpanded","_this36","_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","_this36$objects$_id","colorSet","errorId","onlineId","WifiOff","offlineId","useDesc","Grid","container","direction","dragEnabled","onMouseDown","isRightMB","which","onDoubleClick","Fragment","adapterColumns","updateOpened","renderItem","_this37","items","leaf","DragWrapper","_this38","WIDTHS","nameHeader","widthSum","newWidth","reduce","accumulator","navigateKeyPress","selectedId","code","idx","newIdx","newId","renderHeader","_this39","filterClearInValue","resizerMouseDown","resizerReset","renderToast","_this40","Snackbar","autoHideDuration","message","componentDidUpdate","_this41","clientWidth","getElementById","scrollIntoView","behavior","block","inline","renderCustomDialog","_this42","ObjectCustomDialog","reportChangedIds","changedIds","objectIDs","customsInstances","onUpdate","valAck","_this43","expire","renderEditObjectDialog","_this44","ObjectBrowserEditObject","roleArray","aliasTab","onNewObject","updateAlias","_this44$objects$_this","_obj$common5","renderViewObjectFileDialog","_this45","ObjectBrowserViewFile","renderAliasEditorDialog","_this46","objectBrowserAliasEditor","ObjectBrowserAliasEditor","onRedirect","renderContextMenu","_this47","_obj$common6","_obj$common7","_obj$common8","_obj$common9","_obj$common10","_item$children5","_obj$common12","showACL","ITEMS","EDIT","visibility","EDIT_VALUE","FormatItalic","VIEW","FindInPage","CUSTOM","ACL","iconStyle","listItemIconClass","ROLE","BorderColor","FUNCTION","BedroomParent","ROOM","Construction","ALIAS","Link","_obj$common11","DELETE","_item$children6","_obj$common13","Menu","altKey","anchorEl","renderEditValueDialog","_this$objects$this$ed","_this48","objectBrowserValue","ObjectBrowserValue","res","render","_this49","unsubscribeTimer","jsonFilter","CircularProgress","onKeyDown","modalNewObject","modalEditOfAccessControl","getDerivedStateFromProps","p","Component","defaultProps","propTypes","PropTypes","string","oneOfType","array","bool","isRequired","number","_export","withWidth","_default","exports"],"sources":["ObjectBrowser.js"],"sourcesContent":["/**\n * Copyright 2020-2023, Denis Haev <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';\nimport SVG from 'react-inlinesvg';\n\nimport {\n IconButton,\n CircularProgress,\n MenuItem,\n Select,\n FormControl,\n Input,\n Grid,\n Badge,\n Tooltip,\n Snackbar,\n Checkbox,\n List,\n ListItem,\n ListItemButton,\n ListItemIcon,\n ListItemSecondaryAction,\n ListItemText,\n DialogTitle,\n Dialog,\n DialogContent,\n DialogContentText,\n DialogActions,\n Button,\n Fab,\n TextField,\n FormControlLabel,\n Switch, Menu,\n} from '@mui/material';\n\n// Icons\nimport {\n Edit as IconEdit,\n FindInPage,\n Construction,\n Link as IconLink,\n FormatItalic as IconValueEdit,\n Delete as IconDelete,\n Settings as IconConfig,\n SettingsApplications as IconSystem,\n Photo as IconPhoto,\n SupervisedUserCircle as IconGroup,\n CalendarToday as IconSchedule,\n PersonOutlined as IconUser,\n Router as IconHost,\n Wifi as IconConnection,\n Info as IconInfo,\n Description as IconMeta,\n Code as IconScript,\n ShowChart as IconChart,\n ListAlt as IconEnum,\n ViewColumn as IconColumns,\n Close as IconClose,\n Check as IconCheck,\n Build as BuildIcon,\n Publish as PublishIcon,\n Add as AddIcon,\n Refresh as RefreshIcon,\n LooksOne as LooksOneIcon,\n RoomService as PressButtonIcon,\n Error as IconError,\n WifiOff as IconDisconnected,\n TextFields as TextFieldsIcon,\n BorderColor,\n BedroomParent,\n} from '@mui/icons-material';\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: `${\n theme.palette.mode === 'dark' ? theme.palette.primary.dark : theme.palette.primary.light\n } !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 contextMenuEdit: {\n color: theme.palette.mode === 'dark' ? '#ffee48' : '#cbb801',\n },\n contextMenuEditValue: {\n color: theme.palette.mode === 'dark' ? '#5dff45' : '#1cd301',\n },\n contextMenuView: {\n color: theme.palette.mode === 'dark' ? '#FFF' : '#000',\n },\n contextMenuCustom: {\n color: theme.palette.mode === 'dark' ? '#42eaff' : '#01bbc2',\n },\n contextMenuACL: {\n color: theme.palette.mode === 'dark' ? '#e079ff' : '#500070',\n },\n contextMenuRoom: {\n color: theme.palette.mode === 'dark' ? '#ff9a33' : '#642a00',\n },\n contextMenuRole: {\n color: theme.palette.mode === 'dark' ? '#ffdb43' : '#562d00',\n },\n contextMenuAlias: {\n color: theme.palette.mode === 'dark' ? '#5cabfb' : '#011ed0',\n },\n contextMenuDelete: {\n color: theme.palette.mode === 'dark' ? '#ff4f4f' : '#cf0000',\n },\n contextMenuKeys: {\n marginLeft: theme.spacing(1),\n opacity: 0.7,\n fontSize: 'smaller',\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\n/**\n * Check if browser is running on iOS\n *\n * @return {boolean}\n */\n// function isIOS() {\n// return [\n// 'iPad Simulator',\n// 'iPhone Simulator',\n// 'iPod Simulator',\n// 'iPad',\n// 'iPhone',\n// 'iPod',\n// ].includes(navigator.platform)\n// // iPad on iOS 13 detection\n// || (navigator.userAgent.includes('Mac') && 'ontouchend' in document);\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 if (aIcon.startsWith('data:image/svg')) {\n src = <SVG className=\"iconOwn\" src={aIcon} width={28} height={28} />;\n } else {\n src = aIcon;\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 =\n (objects[filters.room] && objects[filters.room].common && objects[filters.room].common.members) || [];\n }\n if (filters.func) {\n context.func =\n (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 if (customFilter.common.custom === '_dataSources') {\n // TODO: make it configurable\n if (\n !Object.keys(common.custom).find(\n id => id.startsWith('history.') || id.startsWith('sql.') || id.startsWith('influxdb.'),\n )\n ) {\n filteredOut = true;\n }\n } else if (\n 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(\n _item,\n filters,\n lang,\n objects,\n context,\n counter,\n customFilter,\n selectedTypes,\n _depth + 1,\n );\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 }\n return <span className={Utils.clsx(classes.cellIdTooltip)}>{tooltip || data.id || ''}</span>;\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' &&\n obj.common?.role &&\n typeof obj.common.role === 'string' &&\n obj.common.role.startsWith('button') &&\n 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 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\n/** @typedef {{ state: ioBroker.State, obj: Record<string, any>, texts: Record<string, any>, dateFormat: any, isFloatComma: boolean }} FormatValueOptions */\n\n/**\n * Format a state value for visualization\n *\n * @param {FormatValueOptions} options\n * @return {{valText: {}, valFull: [{t: (*|String), v: (string|*)}] }}\n */\nfunction formatValue(options) {\n const {\n dateFormat, obj, state, isFloatComma, texts,\n } = options;\n const states = Utils.getStates(obj);\n const isCommon = obj.common;\n\n const valText = {};\n let v =\n isCommon && isCommon.type === 'file'\n ? '[file]'\n : !state || state.val === null\n ? '(null)'\n : state.val === undefined\n ? '[undef]'\n : state.val;\n const type = typeof v;\n\n if (isCommon?.role && typeof isCommon.role === 'string' && isCommon.role.match(/^value\\.time|^date/)) {\n if (v && typeof v === 'string') {\n if (v.length === 13) {\n // (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) {\n // '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?.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 };\n}\n\n/** @typedef {{ state: ioBroker.State, isExpertMode: boolean, isButton: boolean }} GetValueStyleOptions */\n\n/**\n * Get css style for given state value\n *\n * @param {GetValueStyleOptions} options\n * @return {{color: (string)}}\n */\nfunction getValueStyle(options) {\n const { state, isExpertMode, isButton } = options;\n let color = state?.ack ? (state.q ? '#ffa500' : '') : '#ff2222c9';\n\n if (!isExpertMode && isButton) {\n color = '';\n }\n\n return { color };\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 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 =\n values[i - 1].val +\n ((values[i].val - values[i - 1].val) * (time - values[i - 1].ts)) /\n (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,\n room: 150,\n func: 150,\n val: 120,\n buttons: 120,\n },\n },\n // large: 1280px\n lg: {\n idWidth: 300,\n fields: [\n 'name',\n 'type',\n 'role',\n 'room',\n 'func',\n 'val',\n 'buttons',\n 'changedFrom',\n 'qualityCode',\n 'timestamp',\n 'lastChange',\n ],\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: [\n 'name',\n 'type',\n 'role',\n 'room',\n 'func',\n 'val',\n 'buttons',\n 'changedFrom',\n 'qualityCode',\n 'timestamp',\n 'lastChange',\n ],\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 =\n (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.objectSelected`) ||\n '[]';\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 =\n (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.objectExpanded`) ||\n '[]';\n try {\n expanded = JSON.parse(expanded);\n } catch (e) {\n expanded = [];\n }\n\n let filter = props.defaultFilters ||\n (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.objectFilter`) || {\n ...DEFAULT_FILTER,\n };\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 =\n props.expertMode !== undefined\n ? props.expertMode\n : (window._sessionStorage || window.sessionStorage).getItem('App.expertMode') === 'true';\n this.tableRef = createRef();\n this.filterRefs = {};\n\n Object.keys(DEFAULT_FILTER).forEach(name => (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(\n `${props.dialogName || 'App'}.foldersFirst`,\n );\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\n ? JSON.parse(\n (window._localStorage || window.localStorage).getItem(\n `${props.dialogName || 'App'}.objectStatesView`,\n ),\n ) || false\n : false;\n } catch (error) {\n // ignore\n }\n\n this.state = {\n loaded: false,\n foldersFirst,\n selected,\n selectedNonObject:\n (window._localStorage || window.localStorage).getItem(\n `${props.dialogName || 'App'}.selectedNonObject`,\n ) || '',\n filter,\n filterKey: 0,\n depth: 0,\n expandAllVisible: false,\n expanded,\n toast: '',\n scrollBarWidth: 16,\n customDialog,\n editObjectDialog: '',\n editObjectAlias: false, // open the edit object dialog on alias tab\n viewFileDialog: '',\n showAliasEditor: '',\n enumDialog: null,\n roleDialog: null,\n statesView,\n columns,\n columnsForAdmin: null,\n columnsSelectorShow: false,\n columnsAuto:\n (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.columnsAuto`) !==\n 'false',\n columnsWidths,\n columnsDialogTransparent: 100,\n columnsEditCustomDialog: null,\n customColumnDialogValueChanged: false,\n showExportDialog: false,\n linesEnabled:\n (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.lines`) === 'true',\n showDescription:\n (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.desc`) !== 'false',\n showContextMenu: null,\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(\n `${this.props.dialogName || 'App'}.table`,\n );\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).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(() =>\n (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']\n ? props.socket.getObject('system.config').then(obj => ({ 'system.config': obj }))\n : 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 =\n this.systemConfig.common.defaultNewAcl.owner || 'system.user.admin';\n this.systemConfig.common.defaultNewAcl.ownerGroup =\n 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 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 (\n 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\n .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 =\n this.state.selected && this.state.selected.length && findNode(this.root, this.state.selected[0]);\n\n this.lastAppliedFilter = null;\n\n // If the selected ID is not visible, reset filter\n if (\n node &&\n !applyFilter(\n node,\n this.state.filter,\n this.props.lang,\n this.objects,\n null,\n null,\n props.customFilter,\n props.types,\n )\n ) {\n // reset filter\n this.setState({ filter: { ...DEFAULT_FILTER }, columnsForAdmin }, () => {\n this.setState({ loaded: true, updating: false }, () =>\n this.expandAllSelected(() => this.onAfterSelect()));\n });\n } else {\n this.setState({ loaded: true, updating: false, columnsForAdmin }, () =>\n this.expandAllSelected(() => 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(\n `${this.props.dialogName || 'App'}.objectExpanded`,\n JSON.stringify(expanded),\n );\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(\n `${this.props.dialogName || 'App'}.objectSelected`,\n JSON.stringify(this.lastSelectedItems),\n );\n\n const name =\n this.lastSelectedItems.length === 1\n ? Utils.getObjectName(this.objects, this.lastSelectedItems[0], null, { language: this.props.lang })\n : '';\n this.props.onSelect && this.props.onSelect(this.lastSelectedItems, name, isDouble);\n } else {\n (window._localStorage || window.localStorage).setItem(\n `${this.props.dialogName || 'App'}.objectSelected`,\n '',\n );\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 async componentDidMount() {\n await this.loadAllObjects(!objectsAlreadyLoaded);\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 window.addEventListener('contextmenu', this.onContextMenu, true);\n }\n\n /**\n * Called when component is unmounted.\n */\n componentWillUnmount() {\n this.filterTimer && clearTimeout(this.filterTimer);\n this.filterTimer = null;\n window.removeEventListener('contextmenu', this.onContextMenu, true);\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 * Context menu handler.\n */\n onContextMenu = e => {\n // console.log(`CONTEXT MENU: ${this.contextMenu ? Date.now() - this.contextMenu.ts : 'false'}`);\n if (this.contextMenu && Date.now() - this.contextMenu.ts < 2000) {\n e.preventDefault();\n this.setState({ showContextMenu: this.contextMenu.item });\n }\n this.contextMenu = null;\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({\n error:\n typeof error === 'object'\n ? error && typeof error.toString === 'function'\n ? error.toString()\n : JSON.stringify(error)\n : error,\n });\n }\n\n /**\n * Called when an item is selected/deselected.\n * @param {string} toggleItem\n * @param {boolean} [isDouble]\n */\n onSelect(toggleItem, isDouble, cb) {\n if (!this.props.multiSelect) {\n if (\n this.objects[toggleItem] &&\n (!this.props.types || this.props.types.includes(this.objects[toggleItem].type))\n ) {\n (window._localStorage || window.localStorage).removeItem(\n `${this.props.dialogName || 'App'}.selectedNonObject`,\n );\n if (this.state.selected[0] !== toggleItem) {\n this.setState({ selected: [toggleItem], selectedNonObject: '' }, () => {\n this.onAfterSelect(isDouble);\n cb && cb();\n });\n } else if (isDouble && this.props.onSelect) {\n this.onAfterSelect(isDouble);\n }\n } else {\n (window._localStorage || window.localStorage).setItem(\n `${this.props.dialogName || 'App'}.selectedNonObject`,\n toggleItem,\n );\n this.setState({ selected: [], selectedNonObject: toggleItem }, () => {\n this.onAfterSelect();\n cb && cb();\n });\n }\n } else if (\n this.objects[toggleItem] &&\n (!this.props.types || this.props.types.includes(this.objects[toggleItem].type))\n ) {\n (window._localStorage || window.localStorage).removeItem(\n `${this.props.dialogName || 'App'}.selectedNonObject`,\n );\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 cb && cb();\n });\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(\n id => (isLast && (id === 'val' || id === 'buttons')) || (!isLast && id !== 'val' && id !== 'buttons'),\n )\n .map(id =>\n <ListItemButton\n 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(\n `${this.props.dialogName || 'App'}.columns`,\n JSON.stringify(columns),\n );\n this.calculateColumnsVisibility(null, columns);\n this.setState({ columns });\n }\n }}\n key={id}\n >\n <Checkbox\n edge=\"start\"\n disabled={id === 'id' || this.state.columnsAuto}\n checked={\n id === 'id' ||\n (this.state.columnsAuto\n ? this.visibleCols.includes(id)\n : this.state.columns && this.state.columns.includes(id))\n }\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 * 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={{\n root: Utils.clsx(\n this.props.classes.dialogColumns,\n this.props.classes[`transparent_${this.state.columnsDialogTransparent}`],\n ),\n }}\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={\n <Switch\n checked={this.state.foldersFirst}\n onChange={() => {\n (window._localStorage || window.localStorage).setItem(\n `${this.props.dialogName || 'App'}.foldersFirst`,\n this.state.foldersFirst ? 'false' : 'true',\n );\n this.setState({ foldersFirst: !this.state.foldersFirst });\n }}\n />\n }\n label={this.props.t('ra_Folders always first')}\n />\n <FormControlLabel\n className={this.props.classes.switchColumnAuto}\n control={\n <Switch\n checked={this.state.linesEnabled}\n onChange={() => {\n (window._localStorage || window.localStorage).setItem(\n `${this.props.dialogName || 'App'}.lines`,\n this.state.linesEnabled ? 'false' : 'true',\n );\n this.setState({ linesEnabled: !this.state.linesEnabled });\n }}\n />\n }\n label={this.props.t('ra_Show lines between rows')}\n />\n <FormControlLabel\n className={this.props.classes.switchColumnAuto}\n control={\n <Switch\n checked={this.state.columnsAuto}\n onChange={() => {\n (window._localStorage || window.localStorage).setItem(\n `${this.props.dialogName || 'App'}.columnsAuto`,\n this.state.columnsAuto ? 'false' : 'true',\n );\n if (!this.state.columnsAuto) {\n this.calculateColumnsVisibility(true);\n this.setState({ columnsAuto: true });\n } else 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 }\n label={this.props.t('ra_Auto (no custom columns)')}\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 <List>\n {this._renderDefinedList(false)}\n\n {this.state.columnsForAdmin &&\n Object.keys(this.state.columnsForAdmin)\n .sort()\n .map(adapter =>\n this.state.columnsForAdmin[adapter].map(column => (\n <ListItemButton\n 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(\n `${this.props.dialogName || 'App'}.columns`,\n JSON.stringify(columns),\n );\n this.setState({ columns });\n }\n }}\n key={`${adapter}_${column.name}`}\n >\n <ListItemIcon>\n <Checkbox\n disabled={this.state.columnsAuto}\n edge=\"start\"\n checked={\n !this.state.columnsAuto &&\n this.state.columns &&\n this.state.columns.includes(`_${adapter}_${column.path}`)\n }\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 {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\n .getAdapters()\n .then(instances => {\n let columnsForAdmin = null;\n // find all additional columns\n instances.forEach(obj => (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\n .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 })\n .filter(item => item);\n\n if (columns && columns.length) {\n columnsForAdmin = columnsForAdmin || {};\n columnsForAdmin[obj.common.name] = columns.sort((a, b) =>\n (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(\n `${this.props.dialogName || 'App'}.objectFilter`,\n JSON.stringify(filter),\n );\n this.setState({ filter }, () => 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(\n `${this.props.dialogName || 'App'}.objectFilter`,\n JSON.stringify(filter),\n );\n this.setState(\n { filter, filterKey: this.state.filterKey + 1 },\n () => this.props.onFilterChanged && this.props.onFilterChanged(filter),\n );\n }\n }\n\n isFilterEmpty() {\n const someNotEmpty = Object.keys(this.state.filter).find(\n attr => attr !== 'expertMode' && this.state.filter[attr],\n );\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(\n `${this.props.dialogName || 'App'}.objectFilter`,\n JSON.stringify(newFilter),\n );\n this.setState(\n { filter: newFilter, filterKey: this.state.filterKey + 1 },\n () => this.props.onFilterChanged && this.props.onFilterChanged(newFilter),\n );\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(\n (this.objects[id] && this.objects[id].common && this.objects[id].common.name) || id.split('.').pop(),\n ),\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\n src={getSelectIdIcon(this.objects, id, this.imagePrefix) || ''}\n className={this.props.classes.selectIcon}\n />,\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 &&\n 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(\n `${this.props.dialogName || 'App'}.objectExpanded`,\n JSON.stringify(expanded),\n );\n\n this.setState({ expanded });\n }\n }\n\n /**\n * @private\n */\n onCollapseAll() {\n (window._localStorage || window.localStorage).setItem(\n `${this.props.dialogName || 'App'}.objectExpanded`,\n JSON.stringify([]),\n );\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(\n `${this.props.dialogName || 'App'}.objectExpanded`,\n JSON.stringify(expanded),\n );\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(\n `${this.props.dialogName || 'App'}.objectStatesView`,\n JSON.stringify(statesView),\n );\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(\n `${this.props.dialogName || 'App'}.objectExpanded`,\n JSON.stringify(expanded),\n );\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 newObj;\n // some admin version delivered enums as string\n if (typeof id === 'object') {\n newObj = id;\n id = id._id;\n }\n let oldObj = this.objects[id];\n // if enum does not exist\n if (!oldObj) {\n // create a new one\n oldObj = newObj || {\n _id: id,\n common: {\n name: id.split('.').pop(),\n members: [],\n },\n native: {},\n type: 'enum',\n };\n\n oldObj.common = oldObj.common || {};\n oldObj.common.members = [objId];\n oldObj.type = 'enum';\n\n await this.props.socket.setObject(id, oldObj);\n } else if (!oldObj.common?.members?.includes(objId)) {\n oldObj.common = oldObj.common || {};\n oldObj.type = 'enum';\n oldObj.common.members = oldObj.common.members || [];\n // add the missing object\n oldObj.common.members.push(objId);\n oldObj.common.members.sort();\n await this.props.socket.setObject(id, oldObj);\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(\n obj._id,\n !obj.common || obj.common.def === undefined ? null : obj.common.def,\n true,\n );\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 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\n color=\"grey\"\n variant=\"outlined\"\n onClick={() => this.setState({ showExportDialog: false }, () => this._exportObjects(true))}\n >\n {this.props.t('ra_All objects')}\n {' '}\n(\n {Object.keys(this.objects).length}\n)\n </Button>\n <Button\n color=\"primary\"\n variant=\"contained\"\n autoFocus\n onClick={() => this.setState({ showExportDialog: false }, () => this._exportObjects(false))}\n >\n {this.props.t('ra_Only selected')}\n {' '}\n(\n {this.state.showExportDialog}\n)\n </Button>\n <Button\n color=\"grey\"\n variant=\"contained\"\n onClick={() => this.setState({ showExportDialog: false })}\n startIcon={<IconClose />}\n >\n {this.props.t('ra_Cancel')}\n </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(\n json._id,\n json.common.def === undefined ? null : json.common.def,\n true,\n );\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}>\n {t(\n 'ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").',\n )}\n </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}>\n {t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}\n </div>,\n <div key={9}>\n {t(\n 'ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").',\n )}\n </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}>\n {t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}\n </div>,\n <div key={9}>\n {t(\n 'ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").',\n )}\n </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}>\n {t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}\n </div>,\n <div key={9}>\n {t(\n 'ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").',\n )}\n </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}>\n {t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}\n </div>,\n <div key={8}>\n {t(\n 'ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").',\n )}\n </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\n style={{\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n }}\n >\n <div\n style={{\n display: 'flex',\n width: '100%',\n alignItems: 'center',\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\n title={this.props.t('ra_Expand all nodes')}\n classes={{ popper: this.props.classes.tooltip }}\n >\n <IconButton\n key=\"expandAll\"\n onClick={() => this.onExpandAll()}\n size=\"large\"\n >\n <IconOpen />\n </IconButton>\n </Tooltip>}\n <Tooltip\n title={this.props.t('ra_Collapse all nodes')}\n classes={{ popper: this.props.classes.tooltip }}\n >\n <IconButton\n key=\"collapseAll\"\n onClick={() => this.onCollapseAll()}\n size=\"large\"\n >\n <IconClosed />\n </IconButton>\n </Tooltip>\n <Tooltip\n title={this.props.t('ra_Expand one step node')}\n classes={{ popper: this.props.classes.tooltip }}\n >\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\n title={this.props.t('ra_Collapse one step node')}\n classes={{ popper: this.props.classes.tooltip }}\n >\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 &&\n <Tooltip\n title={this.props.t('ra_Toggle the states view')}\n classes={{ popper: this.props.classes.tooltip }}\n >\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\n title={this.props.t('ra_Show/Hide object descriptions')}\n classes={{ popper: this.props.classes.tooltip }}\n >\n <IconButton\n onClick={() => {\n (window._localStorage || window.localStorage).setItem(\n `${this.props.dialogName || 'App'}.desc`,\n this.state.showDescription ? 'false' : 'true',\n );\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> : null}\n\n {this.props.objectImportExport &&\n <Tooltip\n title={this.props.t('ra_Add objects tree from JSON file')}\n classes={{ popper: this.props.classes.tooltip }}\n >\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 &&\n (!!this.state.selected.length || this.state.selectedNonObject) &&\n <Tooltip\n title={this.props.t('ra_Save objects tree as JSON file')}\n classes={{ popper: this.props.classes.tooltip }}\n >\n <IconButton\n onClick={() =>\n 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 &&\n <div style={{ display: 'flex', whiteSpace: 'nowrap' }}>\n {`${this.props.t('ra_Objects')}: ${Object.keys(this.info.objects).length}, ${this.props.t(\n 'ra_States',\n )}: ${\n Object.keys(this.info.objects).filter(el => this.info.objects[el].type === 'state').length\n }`}\n </div>}\n {this.props.objectEditBoolean &&\n <Tooltip\n title={this.props.t('ra_Edit custom config')}\n classes={{ popper: this.props.classes.tooltip }}\n >\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(\n `${this.props.dialogName || 'App'}.objectSelected`,\n this.state.selected[0],\n );\n this.props.router &&\n 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(\n `${this.props.dialogName || 'App'}.objectExpanded`,\n JSON.stringify(expanded),\n );\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',\n valueNum: 0x400,\n title: 'read',\n group: 'Owner',\n },\n {\n value: '0x200',\n valueNum: 0x200,\n title: 'write',\n group: 'Owner',\n },\n {\n value: '0x40',\n valueNum: 0x40,\n title: 'read',\n group: 'Group',\n },\n {\n value: '0x20',\n valueNum: 0x20,\n title: 'write',\n group: 'Group',\n },\n {\n value: '0x4',\n valueNum: 0x4,\n title: 'read',\n group: 'Everyone',\n },\n {\n value: '0x2',\n valueNum: 0x2,\n title: 'write',\n 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(\n <span key={value + i}>\n {this.texts[`acl${el.group}_${el.title}_${value}`]}\n,\n <span\n className={\n value === 'object'\n ? this.props.classes.rightsObject\n : this.props.classes.rightsState\n }\n >\n {el.value}\n </span>\n </span>,\n );\n }\n });\n };\n arrayTooltipText.push(\n <span key=\"group\">\n {`${this.texts.ownerGroup}: ${(acl.ownerGroup || '').replace(\n 'system.group.',\n '',\n )}`}\n </span>,\n );\n arrayTooltipText.push(\n <span key=\"owner\">{`${this.texts.ownerUser}: ${(acl.owner || '').replace('system.user.', '')}`}</span>,\n );\n funcRenderStateObject();\n if (acl.state) {\n funcRenderStateObject('state');\n }\n\n return arrayTooltipText.length ?\n <span className={this.props.classes.tooltipAccessControl}>{arrayTooltipText.map(el => el)}</span>\n :\n '';\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 ?\n <div className={classes.buttonDiv}>\n {this.state.filter.expertMode && this.props.objectEditOfAccessControl ?\n <IconButton\n className={Utils.clsx(\n classes.cellButtonsButton,\n classes.cellButtonsEmptyButton,\n classes.cellButtonMinWidth,\n )}\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 ?\n <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(\n id,\n !!item.children?.length,\n false,\n count + 1,\n );\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\n ? item.data.obj.type === 'state'\n ? item.data.obj.acl.state\n : item.data.obj.acl.object\n : 0;\n const aclSystemConfig =\n item.data.obj.acl &&\n (item.data.obj.type === 'state'\n ? this.systemConfig.common.defaultNewAcl.state\n : this.systemConfig.common.defaultNewAcl.object);\n\n return [\n this.state.filter.expertMode && this.props.objectEditOfAccessControl ?\n <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}>\n {Number.isNaN(Number(acl))\n ? Number(aclSystemConfig).toString(16)\n : Number(acl).toString(16)}\n </div>\n </IconButton>\n </Tooltip>\n :\n <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(\n `${this.props.dialogName || 'App'}.objectSelected`,\n id,\n );\n this.setState({ editObjectDialog: id, editObjectAlias: false });\n }}\n >\n <IconEdit className={classes.cellButtonsButtonIcon} />\n </IconButton>,\n this.props.onObjectDelete && (item.children?.length || !item.data.obj.common?.dontDelete) ?\n <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(\n id,\n !!item.children?.length,\n !item.data.obj.common?.dontDelete,\n count,\n );\n }}\n title={this.texts.deleteObject}\n >\n <IconDelete className={classes.cellButtonsButtonIcon} />\n </IconButton> : null,\n this.props.objectCustomDialog &&\n this.info.hasSomeCustoms &&\n item.data.obj.type === 'state' &&\n item.data.obj.common?.type !== 'file' ?\n <IconButton\n className={Utils.clsx(\n classes.cellButtonsButton,\n item.data.hasCustoms\n ? classes.cellButtonsButtonWithCustoms\n : classes.cellButtonsButtonWithoutCustoms,\n )}\n key=\"custom\"\n size=\"small\"\n aria-label=\"config\"\n title={this.texts.customConfig}\n onClick={() => {\n (window._localStorage || window.localStorage).setItem(\n `${this.props.dialogName || 'App'}.objectSelected`,\n id,\n );\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 (\n 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\n .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 = formatValue({\n state,\n obj,\n texts: this.texts,\n dateFormat: this.props.dateFormat,\n isFloatComma: this.props.isFloatComma,\n });\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`}>\n {_item.v}\n </div>,\n !_item.nbr ? <br key={`${_item.t}_br`} /> : null,\n ];\n });\n\n if (\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 info.valFull.push(<svg\n key=\"sparkline\"\n className=\"sparkline\"\n data-id={id}\n style={{ fill: '#3d85de' }}\n width=\"200\"\n height=\"30\"\n strokeWidth=\"3\"\n />);\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`}>\n {info.valText.v.toString()}\n </span>,\n info.valText.u ? <span\n className={Utils.clsx(classes.cellValueTextUnit, classes.newValue)}\n key={`${info.valText.v.toString()}unit`}\n >\n {info.valText.u}\n </span> : null,\n info.valText.s !== undefined ? <span\n className={Utils.clsx(classes.cellValueTextState, classes.newValue)}\n key={`${info.valText.v.toString()}states`}\n >\n (\n {info.valText.s}\n)\n </span> : null,\n <IconCopy\n className={Utils.clsx(\n classes.cellButtonsValueButton,\n 'copyButton',\n classes.cellButtonsValueButtonCopy,\n )}\n onClick={e => this.onCopy(e, copyText)}\n key=\"cc\"\n />,\n // <IconEdit className={ Utils.clsx(classes.cellButtonsValueButton, 'copyButton', classes.cellButtonsValueButtonEdit) } key=\"ce\" />\n ];\n }\n\n info.style = getValueStyle({ state, isExpertMode: this.state.filter.expertMode, isButton: item.data.button });\n\n let val = info.valText;\n if (!this.state.filter.expertMode && item.data.button) {\n val = <PressButtonIcon className={this.props.classes.cellValueButton} />;\n }\n\n return <Tooltip\n key=\"value\"\n title={info.valFull}\n classes={{\n tooltip: this.props.classes.cellValueTooltip,\n popper: this.props.classes.cellValueTooltipBox,\n }}\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(\n this.props.socket\n .setObject(enumId, obj)\n .then(() => (this.info.objects[enumId] = obj))\n .catch(e => this.showError(e)),\n );\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(\n this.props.socket\n .setObject(enumId, obj)\n .then(() => (this.info.objects[enumId] = obj))\n .catch(e => this.showError(e)),\n );\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)\n .map(id => ({\n name: getName(\n (this.objects[id] && this.objects[id].common && this.objects[id].common.name) ||\n id.split('.').pop(),\n this.props.lang,\n ),\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 {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 </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\n .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(\n this.state.columnsEditCustomDialog.obj,\n this.state.columnsEditCustomDialog.it,\n );\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\">\n {`${this.props.t('ra_Edit object field')}: ${\n this.state.columnsEditCustomDialog.obj._id\n }`}\n </DialogTitle>\n <DialogContent>\n <DialogContentText id=\"alert-dialog-description\">\n {this.customColumnDialog.type === 'boolean' ?\n <FormControlLabel\n control={\n <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 =\n this.customColumnDialog.value !== this.customColumnDialog.initValue;\n if (changed === !this.state.customColumnDialogValueChanged) {\n this.setState({ customColumnDialogValueChanged: changed });\n }\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 =\n 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) {\n // 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 =\n obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]]\n ? obj[p[0]][p[1]][p[2]][p[3]]\n : null;\n } else if (p.length === 5) {\n value =\n obj[p[0]][p[1]] &&\n typeof obj[p[0]][p[1]] === 'object' &&\n obj[p[0]][p[1]][p[2]] &&\n obj[p[0]][p[1]][p[2]][p[3]]\n ? obj[p[0]][p[1]][p[2]][p[3]][p[4]]\n : null;\n } else if (p.length === 6) {\n value =\n obj[p[0]][p[1]] &&\n typeof obj[p[0]][p[1]] === 'object' &&\n obj[p[0]][p[1]][p[2]] &&\n obj[p[0]][p[1]][p[2]][p[3]] &&\n obj[p[0]][p[1]][p[2]][p[3]][p[4]]\n ? obj[p[0]][p[1]][p[2]][p[3]][p[4]][p[5]]\n : 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) {\n // 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 (\n obj[p[0]][p[1]] &&\n typeof obj[p[0]][p[1]] === 'object' &&\n obj[p[0]][p[1]][p[2]] &&\n typeof obj[p[0]][p[1]][p[2]] === 'object'\n ) {\n obj[p[0]][p[1]][p[2]][p[3]] = value;\n return true;\n }\n } else if (p.length === 5) {\n if (\n obj[p[0]][p[1]] &&\n typeof obj[p[0]][p[1]] === 'object' &&\n obj[p[0]][p[1]][p[2]] &&\n typeof obj[p[0]][p[1]][p[2]] === 'object' &&\n obj[p[0]][p[1]][p[2]][p[3]] &&\n typeof obj[p[0]][p[1]][p[2]][p[3]] === 'object'\n ) {\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 (\n obj[p[0]][p[1]] &&\n typeof obj[p[0]][p[1]] === 'object' &&\n obj[p[0]][p[1]][p[2]] &&\n typeof obj[p[0]][p[1]][p[2]] === 'object' &&\n obj[p[0]][p[1]][p[2]][p[3]] &&\n typeof obj[p[0]][p[1]][p[2]][p[3]] === 'object' &&\n obj[p[0]][p[1]][p[2]][p[3]][p[4]] &&\n typeof obj[p[0]][p[1]][p[2]][p[3]][p[4]] === 'object'\n ) {\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(\n this.props.classes.columnCustom,\n this.props.classes.columnCustomEditable,\n this.props.classes[`columnCustom_${it.align}`],\n )}\n onClick={() =>\n this.setState({\n columnsEditCustomDialog: { item, it, obj },\n customColumnDialogValueChanged: false,\n })}\n >\n {text}\n </div>;\n }\n return <div\n className={Utils.clsx(\n this.props.classes.columnCustom,\n this.props.classes[`columnCustom_${it.align}`],\n )}\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 (\n item.children ||\n itemType === 'folder' ||\n itemType === 'device' ||\n itemType === 'channel' ||\n itemType === 'meta'\n ) {\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] &&\n (!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 /> : null;\n\n let valueEditable =\n !this.props.notEditable &&\n itemType === 'state' &&\n (this.state.filter.expertMode || common?.write !== false);\n if (this.props.objectBrowserViewFile && common?.type === 'file') {\n valueEditable = true;\n }\n const enumEditable =\n !this.props.notEditable &&\n this.objects[id] &&\n (this.state.filter.expertMode || itemType === 'state' || itemType === 'channel' || itemType === 'device');\n const checkVisibleObjectType =\n 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 &&\n newValueTitle.push(\n `${this.texts.objectChangedFrom} ${obj.from.replace(/^system\\.adapter\\.|^system\\./, '')}`,\n );\n obj.user && newValueTitle.push(`${this.texts.objectChangedBy} ${obj.user.replace(/^system\\.user\\./, '')}`);\n obj.ts &&\n newValueTitle.push(\n `${this.texts.objectChangedByUser} ${Utils.formatDate(new Date(obj.ts), this.props.dateFormat)}`,\n );\n }\n\n const readWriteAlias = typeof common?.alias?.id === 'object';\n\n const alias =\n 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)), 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)), 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)), 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;\n if (checkColor && !this.state.selected.includes(id)) {\n const background =\n 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 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\n key=\"error\"\n title={this.texts.deviceError}\n className={this.props.classes.iconDeviceError}\n />);\n }\n\n if (ids.onlineId && this.states[ids.onlineId]) {\n if (!colorSet) {\n if (this.states[ids.onlineId].val) {\n checkColor =\n this.props.themeType === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT;\n icons.push(<IconConnection\n key=\"conn\"\n title={this.texts.deviceError}\n className={this.props.classes.iconDeviceConnected}\n />);\n } else {\n checkColor =\n this.props.themeType === 'dark'\n ? COLOR_NAME_DISCONNECTED_DARK\n : COLOR_NAME_DISCONNECTED_LIGHT;\n icons.push(<IconDisconnected\n key=\"disc\"\n title={this.texts.deviceError}\n className={this.props.classes.iconDeviceDisconnected}\n />);\n }\n } else if (this.states[ids.onlineId].val) {\n icons.push(<IconConnection\n key=\"conn\"\n title={this.texts.deviceError}\n className={this.props.classes.iconDeviceConnected}\n />);\n } else {\n icons.push(<IconDisconnected\n key=\"disc\"\n title={this.texts.deviceError}\n className={this.props.classes.iconDeviceDisconnected}\n />);\n }\n } else if (ids.offlineId && this.states[ids.offlineId]) {\n if (!colorSet) {\n if (this.states[ids.offlineId].val) {\n checkColor =\n this.props.themeType === 'dark'\n ? COLOR_NAME_DISCONNECTED_DARK\n : COLOR_NAME_DISCONNECTED_LIGHT;\n icons.push(<IconDisconnected\n key=\"disc\"\n title={this.texts.deviceError}\n className={this.props.classes.iconDeviceDisconnected}\n />);\n } else {\n checkColor =\n this.props.themeType === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT;\n icons.push(<IconConnection\n key=\"conn\"\n title={this.texts.deviceError}\n className={this.props.classes.iconDeviceConnected}\n />);\n }\n } else if (this.states[ids.offlineId].val) {\n icons.push(<IconDisconnected\n key=\"disc\"\n title={this.texts.deviceError}\n className={this.props.classes.iconDeviceDisconnected}\n />);\n } else {\n icons.push(<IconConnection\n key=\"conn\"\n title={this.texts.deviceError}\n className={this.props.classes.iconDeviceConnected}\n />);\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}>\n {name}\n </div>,\n <div key=\"desc\" className={classes.cellDescription}>\n {useDesc}\n </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 &&\n !item.data.visible &&\n !item.data.hasVisibleChildren &&\n 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 onMouseDown={e => {\n e.preventDefault();\n this.onSelect(id);\n let isRightMB;\n if ('which' in e) {\n // Gecko (Firefox), WebKit (Safari/Chrome) & Opera\n isRightMB = e.which === 3;\n } else if ('button' in e) { // IE, Opera\n isRightMB = e.button === 2;\n }\n if (isRightMB) {\n this.contextMenu = {\n item,\n ts: Date.now(),\n };\n } else {\n this.contextMenu = null;\n }\n }}\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 >\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\n className={Utils.clsx(classes.cellCopyButton, 'copyButton')}\n onClick={e => this.onCopy(e, id)}\n />\n </div>\n </Grid>\n\n {this.columnsVisibility.name ? <div\n className={Utils.clsx(classes.cellName, useDesc && classes.cellNameWithDesc)}\n style={{ width: this.columnsVisibility.name }}\n >\n {name}\n {item.data?.title ? <div style={{ color: checkColor }}>\n <IconCopy\n className={Utils.clsx(classes.cellCopyButton, 'copyButton')}\n onClick={e => this.onCopy(e, item.data.title)}\n />\n </div> : null}\n </div> : null}\n\n {!this.state.statesView ? <>\n {this.columnsVisibility.type ? <div\n className={classes.cellType}\n style={{ width: this.columnsVisibility.type }}\n >\n {typeImg}\n &nbsp;\n {obj && obj.type}\n </div> : null}\n {this.columnsVisibility.role ? <div\n className={classes.cellRole}\n style={{\n width: this.columnsVisibility.role,\n cursor:\n this.state.filter.expertMode && enumEditable && this.props.objectBrowserEditRole\n ? 'text'\n : 'default',\n }}\n onClick={\n this.state.filter.expertMode && enumEditable && this.props.objectBrowserEditRole\n ? () => this.setState({ roleDialog: item.data.id })\n : undefined\n }\n >\n {common?.role}\n </div> : null}\n {this.columnsVisibility.room ? <div\n className={`${classes.cellRoom} ${item.data.per ? classes.cellEnumParent : ''}`}\n style={{\n width: this.columnsVisibility.room,\n cursor: enumEditable ? 'text' : 'default',\n }}\n onClick={\n enumEditable\n ? () => {\n const enums = findEnumsForObjectAsIds(\n this.info,\n item.data.id,\n 'roomEnums',\n );\n this.setState({\n enumDialogEnums: enums,\n enumDialog: {\n item,\n type: 'room',\n enumsOriginal: JSON.parse(JSON.stringify(enums)),\n },\n });\n }\n : undefined\n }\n >\n {item.data.rooms}\n </div> : null}\n {this.columnsVisibility.func ? <div\n className={`${classes.cellFunc} ${item.data.pef ? classes.cellEnumParent : ''}`}\n style={{\n width: this.columnsVisibility.func,\n cursor: enumEditable ? 'text' : 'default',\n }}\n onClick={\n enumEditable\n ? () => {\n const enums = findEnumsForObjectAsIds(\n this.info,\n item.data.id,\n 'funcEnums',\n );\n this.setState({\n enumDialogEnums: enums,\n enumDialog: {\n item,\n type: 'func',\n enumsOriginal: JSON.parse(JSON.stringify(enums)),\n },\n });\n }\n : undefined\n }\n >\n {item.data.funcs}\n </div> : null}\n </>\n :\n <>\n {this.columnsVisibility.changedFrom ? <div\n className={classes.cellRole}\n style={{ width: this.columnsVisibility.changedFrom }}\n title={newValueTitle.join('\\n')}\n >\n {checkVisibleObjectType && this.states[id]?.from ? newValue : null}\n </div> : null}\n {this.columnsVisibility.qualityCode ? <div\n className={classes.cellRole}\n style={{ width: this.columnsVisibility.qualityCode }}\n title={q || ''}\n >\n {q}\n </div> : null}\n {this.columnsVisibility.timestamp ? <div\n className={classes.cellRole}\n style={{ width: this.columnsVisibility.timestamp }}\n >\n {checkVisibleObjectType && this.states[id]?.ts\n ? Utils.formatDate(new Date(this.states[id].ts), this.props.dateFormat)\n : null}\n </div> : null}\n {this.columnsVisibility.lastChange ? <div\n className={classes.cellRole}\n style={{ width: this.columnsVisibility.lastChange }}\n >\n {checkVisibleObjectType && this.states[id]?.lc\n ? Utils.formatDate(new Date(this.states[id].lc), this.props.dateFormat)\n : null}\n </div> : null}\n </>}\n {this.adapterColumns.map(it => <div\n className={classes.cellAdapter}\n style={{ width: this.columnsVisibility[it.id] }}\n key={it.id}\n title={`${it.adapter} => ${it.pathText}`}\n >\n {this.renderCustomValue(obj, it, item)}\n </div>)}\n {this.columnsVisibility.val ? <div\n className={classes.cellValue}\n style={{\n width: this.columnsVisibility.val,\n cursor: valueEditable\n ? common?.type === 'file'\n ? 'zoom-in'\n : item.data.button\n ? 'grab'\n : 'text'\n : 'default',\n }}\n onClick={\n valueEditable\n ? () => {\n if (!obj || !this.states) {\n // return;\n } else if (common?.type === 'file') {\n this.setState({ viewFileDialog: id });\n // eslint-disable-next-line brace-style\n } else if (!this.state.filter.expertMode && item.data.button) {\n // in non-expert mode control button directly\n this.props.socket\n .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 }\n : undefined\n }\n >\n {this.renderColumnValue(id, item, classes)}\n </div> : null}\n {this.columnsVisibility.buttons ? <div\n className={classes.cellButtons}\n style={{ width: this.columnsVisibility.buttons }}\n >\n {this.renderColumnButtons(id, item, classes)}\n </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}>\n {leaf}\n </DragWrapper>;\n } else {\n // change cursor\n leaf = <div key={root.data.id} className={classes.nonDraggable}>\n {leaf}\n </div>;\n }\n }\n root.data.id && items.push(leaf);\n\n isExpanded = isExpanded === undefined ? binarySearch(this.state.expanded, root.data.id) : isExpanded;\n\n if (!root.data.id || isExpanded) {\n if (!this.state.foldersFirst) {\n root.children &&\n items.push(\n 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 );\n } else {\n // first only folder\n root.children &&\n items.push(\n 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 );\n // then items\n root.children &&\n items.push(\n 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\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')\n ? columnsWidths.name || WIDTHS.name || SCREEN_WIDTHS[this.props.width].widths.name || 0\n : 0,\n type: columns.includes('type')\n ? columnsWidths.type || WIDTHS.type || SCREEN_WIDTHS[this.props.width].widths.type || 0\n : 0,\n role: columns.includes('role')\n ? columnsWidths.role || WIDTHS.role || SCREEN_WIDTHS[this.props.width].widths.role || 0\n : 0,\n room: columns.includes('room')\n ? columnsWidths.room || WIDTHS.room || SCREEN_WIDTHS[this.props.width].widths.room || 0\n : 0,\n func: columns.includes('func')\n ? columnsWidths.func || WIDTHS.func || SCREEN_WIDTHS[this.props.width].widths.func || 0\n : 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)\n .sort()\n .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] =\n columnsWidths[item.id] ||\n column.width ||\n SCREEN_WIDTHS[this.props.width].widths.func ||\n 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')\n ? columnsWidths.val || WIDTHS.val || SCREEN_WIDTHS.xl.widths.val\n : 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')\n ? columnsWidths.buttons || WIDTHS.buttons || SCREEN_WIDTHS.xl.widths.buttons\n : 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((accumulator, name) => {\n if (\n name === 'id' ||\n typeof this.columnsVisibility[name] === 'string' ||\n !this.columnsVisibility[name]\n ) {\n return accumulator;\n }\n return accumulator + this.columnsVisibility[name];\n }, 0);\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 (\n (!this.resizerMin || width > this.resizerMin) &&\n (!this.resizerNextMin || widthNext > this.resizerNextMin)\n ) {\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 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(\n `${this.props.dialogName || 'App'}.table`,\n JSON.stringify(this.resizerCurrentWidths),\n );\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 /**\n * Handle keyboard events for navigation\n *\n * @param {KeyboardEvent} event\n */\n navigateKeyPress(event) {\n const selectedId = this.state.selectedNonObject || this.state.selected[0];\n\n if (!selectedId) {\n return;\n }\n\n if (event.code === 'ArrowUp' || event.code === 'ArrowDown') {\n event.preventDefault();\n const ids = [];\n this.tableRef.current.childNodes.forEach(node => ids.push(node.id));\n const idx = ids.indexOf(selectedId);\n const newIdx = event.code === 'ArrowDown' ? idx + 1 : idx - 1;\n const newId = ids[newIdx] || selectedId;\n this.onSelect(newId);\n this.scrollToItem(newId);\n }\n\n if (event.code === 'ArrowRight' || event.code === 'ArrowLeft') {\n this.toggleExpanded(selectedId);\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\n className={classes.headerCell}\n style={{ width: this.columnsVisibility.id, position: 'relative' }}\n data-min={240}\n data-name=\"id\"\n >\n {this.getFilterInput('id')}\n <div\n className={`${this.props.classes.resizeHandle} ${this.props.classes.resizeHandleRight}`}\n onMouseDown={this.resizerMouseDown}\n onDoubleClick={this.resizerReset}\n title={this.props.t('ra_Double click to reset table layout')}\n />\n </div>\n {this.columnsVisibility.name ? <div\n className={classes.headerCell}\n style={{ width: this.columnsVisibility.nameHeader }}\n data-min={100}\n data-name=\"nameHeader\"\n >\n {this.getFilterInput('name')}\n </div> : null}\n {!this.state.statesView && <>\n {this.columnsVisibility.type ? <div\n className={classes.headerCell}\n style={{ width: this.columnsVisibility.type }}\n data-min={100}\n data-name=\"type\"\n >\n {this.getFilterSelectType()}\n </div> : null}\n {this.columnsVisibility.role ? <div\n className={classes.headerCell}\n style={{ width: this.columnsVisibility.role }}\n data-min={100}\n data-name=\"role\"\n >\n {this.getFilterSelectRole()}\n </div> : null}\n {this.columnsVisibility.room ? <div\n className={classes.headerCell}\n style={{ width: this.columnsVisibility.room }}\n data-min={100}\n data-name=\"room\"\n >\n {this.getFilterSelectRoom()}\n </div> : null}\n {this.columnsVisibility.func ? <div\n className={classes.headerCell}\n style={{ width: this.columnsVisibility.func }}\n data-min={100}\n data-name=\"func\"\n >\n {this.getFilterSelectFunction()}\n </div> : null}\n </>}\n {this.state.statesView && <>\n <div\n className={Utils.clsx(classes.headerCell, classes.headerCellValue)}\n style={{ width: this.columnsVisibility.changedFrom }}\n data-min={100}\n data-name=\"changedFrom\"\n >\n {this.props.t('ra_Changed from')}\n </div>\n <div\n className={Utils.clsx(classes.headerCell, classes.headerCellValue)}\n style={{ width: this.columnsVisibility.qualityCode }}\n data-min={100}\n data-name=\"qualityCode\"\n >\n {this.props.t('ra_Quality code')}\n </div>\n <div\n className={Utils.clsx(classes.headerCell, classes.headerCellValue)}\n style={{ width: this.columnsVisibility.timestamp }}\n data-min={100}\n data-name=\"timestamp\"\n >\n {this.props.t('ra_Timestamp')}\n </div>\n <div\n className={Utils.clsx(classes.headerCell, classes.headerCellValue)}\n style={{ width: this.columnsVisibility.lastChange }}\n data-min={100}\n data-name=\"lastChange\"\n >\n {this.props.t('ra_Last change')}\n </div>\n </>}\n {this.adapterColumns.map(item => <div\n className={Utils.clsx(classes.headerCell, classes.headerCellValue)}\n style={{ width: this.columnsVisibility[item.id] }}\n title={item.adapter}\n key={item.id}\n data-min={100}\n data-name={item.id}\n >\n {item.name}\n </div>)}\n {this.columnsVisibility.val ? <div\n className={Utils.clsx(classes.headerCell, classes.headerCellValue)}\n style={{ width: this.columnsVisibility.val, position: 'relative' }}\n data-min={120}\n data-name=\"val\"\n >\n <div\n className={`${this.props.classes.resizeHandle} ${this.props.classes.resizeHandleLeft}`}\n data-left=\"true\"\n onMouseDown={this.resizerMouseDown}\n onDoubleClick={this.resizerReset}\n title={this.props.t('ra_Double click to reset table layout')}\n />\n {this.props.t('ra_Value')}\n {filterClearInValue}\n </div> : null}\n {this.columnsVisibility.buttons ? <div\n className={classes.headerCell}\n style={{ width: this.columnsVisibility.buttons }}\n >\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\n size=\"small\"\n aria-label=\"close\"\n color=\"inherit\"\n onClick={() => this.setState({ toast: '' })}\n >\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 (\n !this.selectedFound &&\n ((this.state.selected && this.state.selected[0]) || this.lastSelectedItems)\n ) {\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 &&\n 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\n .setState(this.edit.id, {\n val: valAck.val,\n ack: valAck.ack,\n q: valAck.q || 0,\n 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 aliasTab={this.state.editObjectAlias}\n t={this.props.t}\n expertMode={this.state.filter.expertMode}\n onNewObject={obj =>\n this.props.socket\n .setObject(obj._id, obj)\n .then(() => this.setState({ editObjectDialog: obj._id, editObjectAlias: false }, () => 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 (\n JSON.stringify(this.objects[this.state.editObjectDialog].common?.alias) !==\n JSON.stringify(obj.common?.alias)\n ) {\n updateAlias = this.state.editObjectDialog;\n }\n }\n\n this.props.socket\n .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: '', editObjectAlias: false });\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 renderAliasEditorDialog() {\n if (!this.props.objectBrowserAliasEditor || !this.state.showAliasEditor) {\n return null;\n }\n const ObjectBrowserAliasEditor = this.props.objectBrowserAliasEditor;\n\n return <ObjectBrowserAliasEditor\n key=\"editAlias\"\n obj={this.objects[this.state.showAliasEditor]}\n objects={this.objects}\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({ showAliasEditor: '' })}\n onRedirect={id => this.setState({ editObjectDialog: id, showAliasEditor: false, editObjectAlias: true })}\n />;\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderContextMenu() {\n if (!this.state.showContextMenu) {\n return null;\n }\n const item = this.state.showContextMenu;\n const id = item.data.id;\n const items = [];\n // const ctrl = isIOS() ? '⌘' : (this.props.lang === 'de' ? 'Strg+' : 'Ctrl+');\n\n const obj = item.data.obj;\n\n let showACL = '';\n if (this.props.objectEditOfAccessControl && this.state.filter.expertMode) {\n if (!obj) {\n showACL = '---';\n } else {\n const acl = obj.acl\n ? obj.type === 'state'\n ? obj.acl.state\n : obj.acl.object\n : 0;\n const aclSystemConfig =\n obj.acl &&\n (obj.type === 'state'\n ? this.systemConfig.common.defaultNewAcl.state\n : this.systemConfig.common.defaultNewAcl.object);\n showACL = Number.isNaN(Number(acl)) ? Number(aclSystemConfig).toString(16) : Number(acl).toString(16);\n }\n }\n\n const enumEditable = !this.props.notEditable && obj &&\n (this.state.filter.expertMode || obj.type === 'state' || obj.type === 'channel' || obj.type === 'device');\n\n const ITEMS = {\n EDIT: {\n key: '0',\n visibility: this.props.objectBrowserEditObject && obj,\n icon: <IconEdit fontSize=\"small\" className={this.props.classes.contextMenuEdit} />,\n label: this.texts.editObject,\n onClick: () => this.setState({ editObjectDialog: item.data.id, showContextMenu: null, editObjectAlias: false }),\n },\n EDIT_VALUE: {\n key: '1',\n visibility: this.states &&\n !this.props.notEditable &&\n obj &&\n obj.type === 'state' &&\n obj.common?.type !== 'file' &&\n (this.state.filter.expertMode || obj.common.write !== false),\n icon: <IconValueEdit fontSize=\"small\" className={this.props.classes.contextMenuEditValue} />,\n label: this.props.t('ra_Edit value'),\n onClick: () => {\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, showContextMenu: null });\n },\n },\n VIEW: {\n visibility: this.props.objectBrowserViewFile && obj && obj.type === 'state' && obj.common?.type === 'file',\n icon: <FindInPage fontSize=\"small\" className={this.props.classes.contextMenuView} />,\n className: '',\n label: this.props.t('ra_View file'),\n onClick: () => this.setState({ viewFileDialog: obj._id, showContextMenu: null }),\n },\n CUSTOM: {\n key: '2',\n visibility: this.props.objectCustomDialog &&\n this.info.hasSomeCustoms &&\n obj &&\n obj.type === 'state' &&\n obj.common?.type !== 'file',\n icon: <IconConfig\n fontSize=\"small\"\n className={item.data.hasCustoms\n ? this.props.classes.cellButtonsButtonWithCustoms\n : this.props.classes.cellButtonsButtonWithoutCustoms}\n />,\n className: this.props.classes.contextMenuCustom,\n label: this.texts.customConfig,\n onClick: () => {\n this.pauseSubscribe(true);\n this.props.router && this.props.router.doNavigate(null, 'customs', id);\n this.setState({ customDialog: [id], showContextMenu: null });\n },\n },\n ACL: {\n key: '3',\n visibility: !!showACL,\n icon: showACL,\n iconStyle: { fontSize: 'smaller' },\n listItemIconClass: this.props.classes.contextMenuACL,\n className: this.props.classes.contextMenuACL,\n label: this.props.t('ra_Edit ACL'),\n onClick: () => this.setState({\n showContextMenu: null,\n modalEditOfAccess: true,\n modalEditOfAccessObjData: item.data,\n }),\n },\n ROLE: {\n key: '4',\n visibility: this.state.filter.expertMode && enumEditable && this.props.objectBrowserEditRole,\n icon: <BorderColor fontSize=\"small\" className={this.props.classes.contextMenuRole} />,\n className: '',\n label: this.props.t('ra_Edit role'),\n onClick: () => this.setState({ roleDialog: item.data.id, showContextMenu: null }),\n },\n FUNCTION: {\n key: '5',\n visibility: enumEditable,\n icon: <BedroomParent fontSize=\"small\" className={this.props.classes.contextMenuRole} />,\n className: '',\n label: this.props.t('ra_Edit function'),\n onClick: () => {\n const enums = findEnumsForObjectAsIds(\n this.info,\n item.data.id,\n 'funcEnums',\n );\n this.setState({\n enumDialogEnums: enums,\n enumDialog: {\n item,\n type: 'func',\n enumsOriginal: JSON.parse(JSON.stringify(enums)),\n },\n showContextMenu: null,\n });\n },\n },\n ROOM: {\n key: '6',\n visibility: enumEditable,\n icon: <Construction fontSize=\"small\" className={this.props.classes.contextMenuRoom} />,\n className: '',\n label: this.props.t('ra_Edit room'),\n onClick: () => {\n const enums = findEnumsForObjectAsIds(\n this.info,\n item.data.id,\n 'roomEnums',\n );\n this.setState({\n enumDialogEnums: enums,\n enumDialog: {\n item,\n type: 'room',\n enumsOriginal: JSON.parse(JSON.stringify(enums)),\n },\n showContextMenu: null,\n });\n },\n },\n ALIAS: {\n key: '7',\n visibility: !this.props.notEditable &&\n this.props.objectBrowserAliasEditor &&\n this.props.objectBrowserEditObject &&\n this.state.filter.expertMode &&\n obj &&\n obj.type === 'state' &&\n obj.common?.type !== 'file',\n icon: <IconLink className={obj?.common?.alias\n ? this.props.classes.cellButtonsButtonWithCustoms\n : this.props.classes.cellButtonsButtonWithoutCustoms}\n />,\n className: '',\n label: this.props.t('ra_Edit alias'),\n onClick: () => {\n if (obj.common?.alias) {\n this.setState({ editObjectDialog: item.data.id, showContextMenu: null, editObjectAlias: true });\n } else {\n this.setState({ showContextMenu: null, showAliasEditor: item.data.id });\n }\n },\n },\n DELETE: {\n key: 'Delete',\n visibility: this.props.onObjectDelete && (item.children?.length || (obj && !obj.common?.dontDelete)),\n icon: <IconDelete fontSize=\"small\" className={this.props.classes.contextMenuDelete} />,\n className: this.props.classes.contextMenuDelete,\n label: this.texts.deleteObject,\n onClick: () => {\n this.setState({ showContextMenu: null }, () => {\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(\n id,\n !!item.children?.length,\n !obj.common?.dontDelete,\n count + 1,\n );\n });\n },\n },\n };\n\n Object.keys(ITEMS).forEach(key => {\n if (ITEMS[key].visibility) {\n items.push(<MenuItem key={key} onClick={ITEMS[key].onClick} className={ITEMS[key].className}>\n <ListItemIcon style={ITEMS[key].iconStyle} className={ITEMS[key].listItemIconClass}>\n {ITEMS[key].icon}\n </ListItemIcon>\n <ListItemText>{ITEMS[key].label}</ListItemText>\n {ITEMS[key].key ? <div className={this.props.classes.contextMenuKeys}>\n {`Alt+${ITEMS[key].key === 'Delete' ? this.props.t('ra_Del') : ITEMS[key].key}`}\n </div> : null}\n </MenuItem>);\n }\n });\n\n if (!items.length) {\n setTimeout(() => this.setState({ showContextMenu: null }), 100);\n return null;\n }\n\n const el = document.getElementById(id);\n\n return <Menu\n key=\"contextMenu\"\n open={!0}\n onKeyUp={e => {\n e.preventDefault();\n if (e.altKey) {\n Object.keys(ITEMS).forEach(key => {\n if (e.key === ITEMS[key].key) {\n ITEMS[key].onClick();\n }\n });\n }\n }}\n anchorEl={el}\n onClose={() => {\n this.setState({ showContextMenu: null });\n this.contextMenu = null;\n }}\n >\n {items}\n </Menu>;\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\n : 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 /**\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(\n this.root,\n this.state.filter,\n this.props.lang,\n this.objects,\n null,\n counter,\n this.props.customFilter,\n this.props.types,\n );\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={{}} onKeyDown={event => this.navigateKeyPress(event)} tabIndex={0}>\n <TabHeader>{this.getToolbar()}</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.renderContextMenu()}\n {this.renderToast()}\n {this.renderColumnsEditCustomDialog()}\n {this.renderColumnsSelectorDialog()}\n {this.renderCustomDialog()}\n {this.renderEditValueDialog()}\n {this.renderEditObjectDialog()}\n {this.renderViewObjectFileDialog()}\n {this.renderAliasEditorDialog()}\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 &&\n this.props.modalEditOfAccessControl &&\n 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 objectBrowserAliasEditor: PropTypes.func, // on edit alias\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 // eslint-disable-next-line react/no-unused-prop-types\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 DragWrapper: PropTypes.func,\n dragEnabled: PropTypes.bool,\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","_styles","_reactInlinesvg","_material","_iconsMaterial","_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","e","r","t","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","valueOf","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","contextMenuEdit","contextMenuEditValue","contextMenuView","contextMenuCustom","contextMenuACL","contextMenuRoom","contextMenuRole","contextMenuAlias","contextMenuDelete","contextMenuKeys","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","SettingsApplications","Photo","SupervisedUserCircle","PersonOutlined","Router","Wifi","Info","Description","getObjectTooltip","_data$obj2","getIdFieldTooltip","classes","clsx","href","target","rel","buildTree","options","ids","sort","a","b","replace","root","currentPathArr","currentPath","currentPathLen","info","funcEnums","roomEnums","roles","types","customs","enums","hasSomeCustoms","croot","_loop","i","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","_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","dateFormat","state","isFloatComma","texts","states","getStates","isCommon","valText","v","val","match","Date","round","s","unit","valFull","value","ack","ts","formatDate","lc","from","user","c","quality","quality2text","q","nbr","getValueStyle","isExpertMode","isButton","prepareSparkData","values","time","DEFAULT_FILTER","ITEM_IMAGES","channel","device","adapter","meta","ListAlt","chart","ShowChart","config","Settings","group","host","schedule","CalendarToday","script","Code","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","contextMenu","now","preventDefault","setState","showContextMenu","console","log","findItem","pausedSubscribes","statesUpdateTimer","setTimeout","forceUpdate","clearTimeout","newState","event","filterFunc","columnsForAdmin","parse","parseObjectForAdmins","objectsUpdateTimer","_buildTree","lastAppliedFilter","_this$objects$_id","mobile","_ref","_asyncToGenerator2","_regenerator","mark","_callee","objId","_oldObj$common","oldObj","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","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","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","error","loaded","filterKey","depth","expandAllVisible","toast","editObjectDialog","editObjectAlias","viewFileDialog","showAliasEditor","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","object","defaultHistory","getAdditionalColumns","_buildTree2","node","expandAllSelected","onAfterSelect","showError","cb","_toConsumableArray2","changed","path","isDouble","_this3","getObjectName","language","onSelect","_componentDidMount","_callee4","_callee4$","_context4","registerHandler","onObjectChange","subscribeObject","onContextMenu","componentDidMount","componentWillUnmount","_this4","filterTimer","unregisterHandler","unsubscribeObject","pattern","unsubscribeState","onStateChange","refreshComponent","_this5","renderErrorDialog","_this6","Dialog","open","maxWidth","fullWidth","onClose","DialogTitle","DialogContent","DialogContentText","DialogActions","Button","variant","onClick","autoFocus","startIcon","Check","toggleItem","_this7","multiSelect","_renderDefinedList","isLast","_this8","cols","unshift","ListItemButton","Checkbox","edge","disabled","checked","disableRipple","ListItemText","renderColumnsSelectorDialog","_this9","FormControlLabel","control","Switch","onChange","label","List","column","ListItemIcon","Close","_this10","getAdapters","instances","checkUnsubscribes","recordStates","unsubscribe","_root","_partyId","shift","_this11","adminColumns","objTypes","warn","subscribe","subscribeState","isPause","_this12","onFilter","_this13","_name","current","tagName","onFilterChanged","clearFilter","_this14","childNodes","isFilterEmpty","_this15","someNotEmpty","attr","getFilterInput","_this16","_this$filterRefs$name","FormControl","margin","Input","ref","underline","placeholder","defaultValue","autoComplete","firstChild","IconButton","size","getFilterSelect","_this17","_this$filterRefs$name2","hasIcons","Select","inputProps","displayEmpty","MenuItem","newFilter","getFilterSelectRole","getFilterSelectRoom","_this18","_this18$objects$id","_this18$objects$id2","getFilterSelectFunction","_this19","_this19$objects$id","getFilterSelectType","getFilterSelectCustoms","_this20","onExpandAll","_this21","onCollapseAll","_this22","expandDepth","_this23","onExpandVisible","onStatesViewVisible","onCollapseVisible","collapseDepth","_getSelectedIdsForExport","idDot","idLen","_exportObjects","isAll","_this24","getEnumsForId","renderExportDialog","_this25","getToolbar","_this26","allowObjectCreation","Tooltip","popper","Refresh","showExpertButton","disableColumnSelector","ViewColumn","badgeContent","LooksOne","TextFields","objectAddBoolean","toolTipObjectCreating","modalNewObj","Add","objectImportExport","input","handleJsonUpload","Publish","objectBrowserEditObject","objectEditBoolean","doNavigate","Build","toggleExpanded","onCopy","text","stopPropagation","copyToClipboard","renderColumnButtons","_this27","_item$children3","_item$data$obj$common","_item$data$obj$common3","onObjectDelete","objectEditOfAccessControl","modalEditOfAccess","modalEditOfAccessObjData","_item$children2","start","Delete","cellButtonsButtonIcon","aclTooltip","renderTooltipAccessControl","aclSystemConfig","Number","isNaN","Edit","dontDelete","_item$children4","_item$data$obj$common2","objectCustomDialog","readHistory","sparkline","setHours","getHours","setMinutes","setSeconds","setMilliseconds","nowMs","getTime","getHistory","end","step","addID","aggregate","sparks","getElementsByClassName","renderColumnValue","_obj$common4","_this28","fill","strokeWidth","copyText","RoomService","onOpen","_syncEnum","enumIds","newArray","_this$info$objects$en","_this29","enumId","promises","_this$info$objects$en2","_this$info$objects$en3","all","syncEnum","_this30","toCheck","renderEnumDialog","_this31","itemEnums","enumDialogEnums","enumsOriginal","alt","Fab","labelId","ListItem","tabIndex","ListItemSecondaryAction","renderEditRoleDialog","_this32","objectBrowserEditRole","ObjectBrowserEditRole","onColumnsEditCustomDialogClose","isSave","_this33","customColumnDialog","parseFloat","setCustomValue","it","Error","renderColumnsEditCustomDialog","_this34","getCustomValue","initValue","onKeyUp","keyCode","defaultChecked","pathText","TextField","renderCustomValue","_this35","notEditable","align","renderLeaf","isExpanded","_this36","_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","_this36$objects$_id","colorSet","errorId","onlineId","WifiOff","offlineId","useDesc","Grid","container","direction","dragEnabled","onMouseDown","isRightMB","which","onDoubleClick","Fragment","adapterColumns","updateOpened","renderItem","_this37","items","leaf","DragWrapper","_this38","WIDTHS","nameHeader","widthSum","newWidth","reduce","accumulator","navigateKeyPress","selectedId","code","idx","newIdx","newId","renderHeader","_this39","filterClearInValue","resizerMouseDown","resizerReset","renderToast","_this40","Snackbar","autoHideDuration","message","componentDidUpdate","_this41","clientWidth","getElementById","scrollIntoView","behavior","block","inline","renderCustomDialog","_this42","ObjectCustomDialog","reportChangedIds","changedIds","objectIDs","customsInstances","onUpdate","valAck","_this43","expire","renderEditObjectDialog","_this44","ObjectBrowserEditObject","roleArray","aliasTab","onNewObject","updateAlias","_this44$objects$_this","_obj$common5","renderViewObjectFileDialog","_this45","ObjectBrowserViewFile","renderAliasEditorDialog","_this46","objectBrowserAliasEditor","ObjectBrowserAliasEditor","onRedirect","renderContextMenu","_this47","_obj$common6","_obj$common7","_obj$common8","_obj$common9","_obj$common10","_item$children5","_obj$common12","showACL","ITEMS","EDIT","visibility","EDIT_VALUE","FormatItalic","VIEW","FindInPage","CUSTOM","ACL","iconStyle","listItemIconClass","ROLE","BorderColor","FUNCTION","BedroomParent","ROOM","Construction","ALIAS","Link","_obj$common11","DELETE","_item$children6","_obj$common13","Menu","altKey","anchorEl","renderEditValueDialog","_this$objects$this$ed","_this48","objectBrowserValue","ObjectBrowserValue","res","render","_this49","unsubscribeTimer","jsonFilter","CircularProgress","onKeyDown","modalNewObject","modalEditOfAccessControl","getDerivedStateFromProps","p","Component","defaultProps","propTypes","PropTypes","string","oneOfType","array","bool","isRequired","number","_export","withWidth","_default","exports"],"sources":["ObjectBrowser.js"],"sourcesContent":["/**\n * Copyright 2020-2023, Denis Haev <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';\nimport SVG from 'react-inlinesvg';\n\nimport {\n IconButton,\n CircularProgress,\n MenuItem,\n Select,\n FormControl,\n Input,\n Grid,\n Badge,\n Tooltip,\n Snackbar,\n Checkbox,\n List,\n ListItem,\n ListItemButton,\n ListItemIcon,\n ListItemSecondaryAction,\n ListItemText,\n DialogTitle,\n Dialog,\n DialogContent,\n DialogContentText,\n DialogActions,\n Button,\n Fab,\n TextField,\n FormControlLabel,\n Switch, Menu,\n} from '@mui/material';\n\n// Icons\nimport {\n Edit as IconEdit,\n FindInPage,\n Construction,\n Link as IconLink,\n FormatItalic as IconValueEdit,\n Delete as IconDelete,\n Settings as IconConfig,\n SettingsApplications as IconSystem,\n Photo as IconPhoto,\n SupervisedUserCircle as IconGroup,\n CalendarToday as IconSchedule,\n PersonOutlined as IconUser,\n Router as IconHost,\n Wifi as IconConnection,\n Info as IconInfo,\n Description as IconMeta,\n Code as IconScript,\n ShowChart as IconChart,\n ListAlt as IconEnum,\n ViewColumn as IconColumns,\n Close as IconClose,\n Check as IconCheck,\n Build as BuildIcon,\n Publish as PublishIcon,\n Add as AddIcon,\n Refresh as RefreshIcon,\n LooksOne as LooksOneIcon,\n RoomService as PressButtonIcon,\n Error as IconError,\n WifiOff as IconDisconnected,\n TextFields as TextFieldsIcon,\n BorderColor,\n BedroomParent,\n} from '@mui/icons-material';\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: `${\n theme.palette.mode === 'dark' ? theme.palette.primary.dark : theme.palette.primary.light\n } !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 contextMenuEdit: {\n color: theme.palette.mode === 'dark' ? '#ffee48' : '#cbb801',\n },\n contextMenuEditValue: {\n color: theme.palette.mode === 'dark' ? '#5dff45' : '#1cd301',\n },\n contextMenuView: {\n color: theme.palette.mode === 'dark' ? '#FFF' : '#000',\n },\n contextMenuCustom: {\n color: theme.palette.mode === 'dark' ? '#42eaff' : '#01bbc2',\n },\n contextMenuACL: {\n color: theme.palette.mode === 'dark' ? '#e079ff' : '#500070',\n },\n contextMenuRoom: {\n color: theme.palette.mode === 'dark' ? '#ff9a33' : '#642a00',\n },\n contextMenuRole: {\n color: theme.palette.mode === 'dark' ? '#ffdb43' : '#562d00',\n },\n contextMenuAlias: {\n color: theme.palette.mode === 'dark' ? '#5cabfb' : '#011ed0',\n },\n contextMenuDelete: {\n color: theme.palette.mode === 'dark' ? '#ff4f4f' : '#cf0000',\n },\n contextMenuKeys: {\n marginLeft: theme.spacing(1),\n opacity: 0.7,\n fontSize: 'smaller',\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\n/**\n * Check if browser is running on iOS\n *\n * @return {boolean}\n */\n// function isIOS() {\n// return [\n// 'iPad Simulator',\n// 'iPhone Simulator',\n// 'iPod Simulator',\n// 'iPad',\n// 'iPhone',\n// 'iPod',\n// ].includes(navigator.platform)\n// // iPad on iOS 13 detection\n// || (navigator.userAgent.includes('Mac') && 'ontouchend' in document);\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 if (aIcon.startsWith('data:image/svg')) {\n src = <SVG className=\"iconOwn\" src={aIcon} width={28} height={28} />;\n } else {\n src = aIcon;\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 =\n (objects[filters.room] && objects[filters.room].common && objects[filters.room].common.members) || [];\n }\n if (filters.func) {\n context.func =\n (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 if (customFilter.common.custom === '_dataSources') {\n // TODO: make it configurable\n if (\n !Object.keys(common.custom).find(\n id => id.startsWith('history.') || id.startsWith('sql.') || id.startsWith('influxdb.'),\n )\n ) {\n filteredOut = true;\n }\n } else if (\n 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(\n _item,\n filters,\n lang,\n objects,\n context,\n counter,\n customFilter,\n selectedTypes,\n _depth + 1,\n );\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 }\n return <span className={Utils.clsx(classes.cellIdTooltip)}>{tooltip || data.id || ''}</span>;\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' &&\n obj.common?.role &&\n typeof obj.common.role === 'string' &&\n obj.common.role.startsWith('button') &&\n 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 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\n/** @typedef {{ state: ioBroker.State, obj: Record<string, any>, texts: Record<string, any>, dateFormat: any, isFloatComma: boolean }} FormatValueOptions */\n\n/**\n * Format a state value for visualization\n *\n * @param {FormatValueOptions} options\n * @return {{valText: {}, valFull: [{t: (*|String), v: (string|*)}] }}\n */\nfunction formatValue(options) {\n const {\n dateFormat, obj, state, isFloatComma, texts,\n } = options;\n const states = Utils.getStates(obj);\n const isCommon = obj.common;\n\n const valText = {};\n let v =\n isCommon && isCommon.type === 'file'\n ? '[file]'\n : !state || state.val === null\n ? '(null)'\n : state.val === undefined\n ? '[undef]'\n : state.val;\n const type = typeof v;\n\n if (isCommon?.role && typeof isCommon.role === 'string' && isCommon.role.match(/^value\\.time|^date/)) {\n if (v && typeof v === 'string') {\n if (v.length === 13) {\n // (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) {\n // '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?.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 };\n}\n\n/** @typedef {{ state: ioBroker.State, isExpertMode: boolean, isButton: boolean }} GetValueStyleOptions */\n\n/**\n * Get css style for given state value\n *\n * @param {GetValueStyleOptions} options\n * @return {{color: (string)}}\n */\nfunction getValueStyle(options) {\n const { state, isExpertMode, isButton } = options;\n let color = state?.ack ? (state.q ? '#ffa500' : '') : '#ff2222c9';\n\n if (!isExpertMode && isButton) {\n color = '';\n }\n\n return { color };\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 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 =\n values[i - 1].val +\n ((values[i].val - values[i - 1].val) * (time - values[i - 1].ts)) /\n (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,\n room: 150,\n func: 150,\n val: 120,\n buttons: 120,\n },\n },\n // large: 1280px\n lg: {\n idWidth: 300,\n fields: [\n 'name',\n 'type',\n 'role',\n 'room',\n 'func',\n 'val',\n 'buttons',\n 'changedFrom',\n 'qualityCode',\n 'timestamp',\n 'lastChange',\n ],\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: [\n 'name',\n 'type',\n 'role',\n 'room',\n 'func',\n 'val',\n 'buttons',\n 'changedFrom',\n 'qualityCode',\n 'timestamp',\n 'lastChange',\n ],\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 =\n (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.objectSelected`) ||\n '[]';\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 =\n (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.objectExpanded`) ||\n '[]';\n try {\n expanded = JSON.parse(expanded);\n } catch (e) {\n expanded = [];\n }\n\n let filter = props.defaultFilters ||\n (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.objectFilter`) || {\n ...DEFAULT_FILTER,\n };\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 =\n props.expertMode !== undefined\n ? props.expertMode\n : (window._sessionStorage || window.sessionStorage).getItem('App.expertMode') === 'true';\n this.tableRef = createRef();\n this.filterRefs = {};\n\n Object.keys(DEFAULT_FILTER).forEach(name => (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(\n `${props.dialogName || 'App'}.foldersFirst`,\n );\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\n ? JSON.parse(\n (window._localStorage || window.localStorage).getItem(\n `${props.dialogName || 'App'}.objectStatesView`,\n ),\n ) || false\n : false;\n } catch (error) {\n // ignore\n }\n\n this.state = {\n loaded: false,\n foldersFirst,\n selected,\n selectedNonObject:\n (window._localStorage || window.localStorage).getItem(\n `${props.dialogName || 'App'}.selectedNonObject`,\n ) || '',\n filter,\n filterKey: 0,\n depth: 0,\n expandAllVisible: false,\n expanded,\n toast: '',\n scrollBarWidth: 16,\n customDialog,\n editObjectDialog: '',\n editObjectAlias: false, // open the edit object dialog on alias tab\n viewFileDialog: '',\n showAliasEditor: '',\n enumDialog: null,\n roleDialog: null,\n statesView,\n columns,\n columnsForAdmin: null,\n columnsSelectorShow: false,\n columnsAuto:\n (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.columnsAuto`) !==\n 'false',\n columnsWidths,\n columnsDialogTransparent: 100,\n columnsEditCustomDialog: null,\n customColumnDialogValueChanged: false,\n showExportDialog: false,\n linesEnabled:\n (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.lines`) === 'true',\n showDescription:\n (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.desc`) !== 'false',\n showContextMenu: null,\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(\n `${this.props.dialogName || 'App'}.table`,\n );\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).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(() =>\n (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']\n ? props.socket.getObject('system.config').then(obj => ({ 'system.config': obj }))\n : 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 =\n this.systemConfig.common.defaultNewAcl.owner || 'system.user.admin';\n this.systemConfig.common.defaultNewAcl.ownerGroup =\n 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 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 (\n 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\n .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 =\n this.state.selected && this.state.selected.length && findNode(this.root, this.state.selected[0]);\n\n this.lastAppliedFilter = null;\n\n // If the selected ID is not visible, reset filter\n if (\n node &&\n !applyFilter(\n node,\n this.state.filter,\n this.props.lang,\n this.objects,\n null,\n null,\n props.customFilter,\n props.types,\n )\n ) {\n // reset filter\n this.setState({ filter: { ...DEFAULT_FILTER }, columnsForAdmin }, () => {\n this.setState({ loaded: true, updating: false }, () =>\n this.expandAllSelected(() => this.onAfterSelect()));\n });\n } else {\n this.setState({ loaded: true, updating: false, columnsForAdmin }, () =>\n this.expandAllSelected(() => 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(\n `${this.props.dialogName || 'App'}.objectExpanded`,\n JSON.stringify(expanded),\n );\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(\n `${this.props.dialogName || 'App'}.objectSelected`,\n JSON.stringify(this.lastSelectedItems),\n );\n\n const name =\n this.lastSelectedItems.length === 1\n ? Utils.getObjectName(this.objects, this.lastSelectedItems[0], null, { language: this.props.lang })\n : '';\n this.props.onSelect && this.props.onSelect(this.lastSelectedItems, name, isDouble);\n } else {\n (window._localStorage || window.localStorage).setItem(\n `${this.props.dialogName || 'App'}.objectSelected`,\n '',\n );\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 async componentDidMount() {\n await this.loadAllObjects(!objectsAlreadyLoaded);\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 window.addEventListener('contextmenu', this.onContextMenu, true);\n }\n\n /**\n * Called when component is unmounted.\n */\n componentWillUnmount() {\n this.filterTimer && clearTimeout(this.filterTimer);\n this.filterTimer = null;\n window.removeEventListener('contextmenu', this.onContextMenu, true);\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 * Context menu handler.\n */\n onContextMenu = e => {\n // console.log(`CONTEXT MENU: ${this.contextMenu ? Date.now() - this.contextMenu.ts : 'false'}`);\n if (this.contextMenu && Date.now() - this.contextMenu.ts < 2000) {\n e.preventDefault();\n this.setState({ showContextMenu: this.contextMenu.item });\n }\n this.contextMenu = null;\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({\n error:\n typeof error === 'object'\n ? error && typeof error.toString === 'function'\n ? error.toString()\n : JSON.stringify(error)\n : error,\n });\n }\n\n /**\n * Called when an item is selected/deselected.\n * @param {string} toggleItem\n * @param {boolean} [isDouble]\n */\n onSelect(toggleItem, isDouble, cb) {\n if (!this.props.multiSelect) {\n if (\n this.objects[toggleItem] &&\n (!this.props.types || this.props.types.includes(this.objects[toggleItem].type))\n ) {\n (window._localStorage || window.localStorage).removeItem(\n `${this.props.dialogName || 'App'}.selectedNonObject`,\n );\n if (this.state.selected[0] !== toggleItem) {\n this.setState({ selected: [toggleItem], selectedNonObject: '' }, () => {\n this.onAfterSelect(isDouble);\n cb && cb();\n });\n } else if (isDouble && this.props.onSelect) {\n this.onAfterSelect(isDouble);\n }\n } else {\n (window._localStorage || window.localStorage).setItem(\n `${this.props.dialogName || 'App'}.selectedNonObject`,\n toggleItem,\n );\n this.setState({ selected: [], selectedNonObject: toggleItem }, () => {\n this.onAfterSelect();\n cb && cb();\n });\n }\n } else if (\n this.objects[toggleItem] &&\n (!this.props.types || this.props.types.includes(this.objects[toggleItem].type))\n ) {\n (window._localStorage || window.localStorage).removeItem(\n `${this.props.dialogName || 'App'}.selectedNonObject`,\n );\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 cb && cb();\n });\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(\n id => (isLast && (id === 'val' || id === 'buttons')) || (!isLast && id !== 'val' && id !== 'buttons'),\n )\n .map(id =>\n <ListItemButton\n 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(\n `${this.props.dialogName || 'App'}.columns`,\n JSON.stringify(columns),\n );\n this.calculateColumnsVisibility(null, columns);\n this.setState({ columns });\n }\n }}\n key={id}\n >\n <Checkbox\n edge=\"start\"\n disabled={id === 'id' || this.state.columnsAuto}\n checked={\n id === 'id' ||\n (this.state.columnsAuto\n ? this.visibleCols.includes(id)\n : this.state.columns && this.state.columns.includes(id))\n }\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 * 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={{\n root: Utils.clsx(\n this.props.classes.dialogColumns,\n this.props.classes[`transparent_${this.state.columnsDialogTransparent}`],\n ),\n }}\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={\n <Switch\n checked={this.state.foldersFirst}\n onChange={() => {\n (window._localStorage || window.localStorage).setItem(\n `${this.props.dialogName || 'App'}.foldersFirst`,\n this.state.foldersFirst ? 'false' : 'true',\n );\n this.setState({ foldersFirst: !this.state.foldersFirst });\n }}\n />\n }\n label={this.props.t('ra_Folders always first')}\n />\n <FormControlLabel\n className={this.props.classes.switchColumnAuto}\n control={\n <Switch\n checked={this.state.linesEnabled}\n onChange={() => {\n (window._localStorage || window.localStorage).setItem(\n `${this.props.dialogName || 'App'}.lines`,\n this.state.linesEnabled ? 'false' : 'true',\n );\n this.setState({ linesEnabled: !this.state.linesEnabled });\n }}\n />\n }\n label={this.props.t('ra_Show lines between rows')}\n />\n <FormControlLabel\n className={this.props.classes.switchColumnAuto}\n control={\n <Switch\n checked={this.state.columnsAuto}\n onChange={() => {\n (window._localStorage || window.localStorage).setItem(\n `${this.props.dialogName || 'App'}.columnsAuto`,\n this.state.columnsAuto ? 'false' : 'true',\n );\n if (!this.state.columnsAuto) {\n this.calculateColumnsVisibility(true);\n this.setState({ columnsAuto: true });\n } else 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 }\n label={this.props.t('ra_Auto (no custom columns)')}\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 <List>\n {this._renderDefinedList(false)}\n\n {this.state.columnsForAdmin &&\n Object.keys(this.state.columnsForAdmin)\n .sort()\n .map(adapter =>\n this.state.columnsForAdmin[adapter].map(column => (\n <ListItemButton\n 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(\n `${this.props.dialogName || 'App'}.columns`,\n JSON.stringify(columns),\n );\n this.setState({ columns });\n }\n }}\n key={`${adapter}_${column.name}`}\n >\n <ListItemIcon>\n <Checkbox\n disabled={this.state.columnsAuto}\n edge=\"start\"\n checked={\n !this.state.columnsAuto &&\n this.state.columns &&\n this.state.columns.includes(`_${adapter}_${column.path}`)\n }\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 {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\n .getAdapters()\n .then(instances => {\n let columnsForAdmin = null;\n // find all additional columns\n instances.forEach(obj => (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\n .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 })\n .filter(item => item);\n\n if (columns && columns.length) {\n columnsForAdmin = columnsForAdmin || {};\n columnsForAdmin[obj.common.name] = columns.sort((a, b) =>\n (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(\n `${this.props.dialogName || 'App'}.objectFilter`,\n JSON.stringify(filter),\n );\n this.setState({ filter }, () => 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(\n `${this.props.dialogName || 'App'}.objectFilter`,\n JSON.stringify(filter),\n );\n this.setState(\n { filter, filterKey: this.state.filterKey + 1 },\n () => this.props.onFilterChanged && this.props.onFilterChanged(filter),\n );\n }\n }\n\n isFilterEmpty() {\n const someNotEmpty = Object.keys(this.state.filter).find(\n attr => attr !== 'expertMode' && this.state.filter[attr],\n );\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(\n `${this.props.dialogName || 'App'}.objectFilter`,\n JSON.stringify(newFilter),\n );\n this.setState(\n { filter: newFilter, filterKey: this.state.filterKey + 1 },\n () => this.props.onFilterChanged && this.props.onFilterChanged(newFilter),\n );\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(\n (this.objects[id] && this.objects[id].common && this.objects[id].common.name) || id.split('.').pop(),\n ),\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\n src={getSelectIdIcon(this.objects, id, this.imagePrefix) || ''}\n className={this.props.classes.selectIcon}\n />,\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 &&\n 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(\n `${this.props.dialogName || 'App'}.objectExpanded`,\n JSON.stringify(expanded),\n );\n\n this.setState({ expanded });\n }\n }\n\n /**\n * @private\n */\n onCollapseAll() {\n (window._localStorage || window.localStorage).setItem(\n `${this.props.dialogName || 'App'}.objectExpanded`,\n JSON.stringify([]),\n );\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(\n `${this.props.dialogName || 'App'}.objectExpanded`,\n JSON.stringify(expanded),\n );\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(\n `${this.props.dialogName || 'App'}.objectStatesView`,\n JSON.stringify(statesView),\n );\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(\n `${this.props.dialogName || 'App'}.objectExpanded`,\n JSON.stringify(expanded),\n );\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 newObj;\n // some admin version delivered enums as string\n if (typeof id === 'object') {\n newObj = id;\n id = id._id;\n }\n let oldObj = this.objects[id];\n // if enum does not exist\n if (!oldObj) {\n // create a new one\n oldObj = newObj || {\n _id: id,\n common: {\n name: id.split('.').pop(),\n members: [],\n },\n native: {},\n type: 'enum',\n };\n\n oldObj.common = oldObj.common || {};\n oldObj.common.members = [objId];\n oldObj.type = 'enum';\n\n await this.props.socket.setObject(id, oldObj);\n } else if (!oldObj.common?.members?.includes(objId)) {\n oldObj.common = oldObj.common || {};\n oldObj.type = 'enum';\n oldObj.common.members = oldObj.common.members || [];\n // add the missing object\n oldObj.common.members.push(objId);\n oldObj.common.members.sort();\n await this.props.socket.setObject(id, oldObj);\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(\n obj._id,\n !obj.common || obj.common.def === undefined ? null : obj.common.def,\n true,\n );\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 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\n color=\"grey\"\n variant=\"outlined\"\n onClick={() => this.setState({ showExportDialog: false }, () => this._exportObjects(true))}\n >\n {this.props.t('ra_All objects')}\n {' '}\n(\n {Object.keys(this.objects).length}\n)\n </Button>\n <Button\n color=\"primary\"\n variant=\"contained\"\n autoFocus\n onClick={() => this.setState({ showExportDialog: false }, () => this._exportObjects(false))}\n >\n {this.props.t('ra_Only selected')}\n {' '}\n(\n {this.state.showExportDialog}\n)\n </Button>\n <Button\n color=\"grey\"\n variant=\"contained\"\n onClick={() => this.setState({ showExportDialog: false })}\n startIcon={<IconClose />}\n >\n {this.props.t('ra_Cancel')}\n </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(\n json._id,\n json.common.def === undefined ? null : json.common.def,\n true,\n );\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}>\n {t(\n 'ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").',\n )}\n </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}>\n {t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}\n </div>,\n <div key={9}>\n {t(\n 'ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").',\n )}\n </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}>\n {t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}\n </div>,\n <div key={9}>\n {t(\n 'ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").',\n )}\n </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}>\n {t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}\n </div>,\n <div key={9}>\n {t(\n 'ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").',\n )}\n </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}>\n {t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}\n </div>,\n <div key={8}>\n {t(\n 'ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").',\n )}\n </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\n style={{\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n }}\n >\n <div\n style={{\n display: 'flex',\n width: '100%',\n alignItems: 'center',\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\n title={this.props.t('ra_Expand all nodes')}\n classes={{ popper: this.props.classes.tooltip }}\n >\n <IconButton\n key=\"expandAll\"\n onClick={() => this.onExpandAll()}\n size=\"large\"\n >\n <IconOpen />\n </IconButton>\n </Tooltip>}\n <Tooltip\n title={this.props.t('ra_Collapse all nodes')}\n classes={{ popper: this.props.classes.tooltip }}\n >\n <IconButton\n key=\"collapseAll\"\n onClick={() => this.onCollapseAll()}\n size=\"large\"\n >\n <IconClosed />\n </IconButton>\n </Tooltip>\n <Tooltip\n title={this.props.t('ra_Expand one step node')}\n classes={{ popper: this.props.classes.tooltip }}\n >\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\n title={this.props.t('ra_Collapse one step node')}\n classes={{ popper: this.props.classes.tooltip }}\n >\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 &&\n <Tooltip\n title={this.props.t('ra_Toggle the states view')}\n classes={{ popper: this.props.classes.tooltip }}\n >\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\n title={this.props.t('ra_Show/Hide object descriptions')}\n classes={{ popper: this.props.classes.tooltip }}\n >\n <IconButton\n onClick={() => {\n (window._localStorage || window.localStorage).setItem(\n `${this.props.dialogName || 'App'}.desc`,\n this.state.showDescription ? 'false' : 'true',\n );\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> : null}\n\n {this.props.objectImportExport &&\n <Tooltip\n title={this.props.t('ra_Add objects tree from JSON file')}\n classes={{ popper: this.props.classes.tooltip }}\n >\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 &&\n (!!this.state.selected.length || this.state.selectedNonObject) &&\n <Tooltip\n title={this.props.t('ra_Save objects tree as JSON file')}\n classes={{ popper: this.props.classes.tooltip }}\n >\n <IconButton\n onClick={() =>\n 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 &&\n <div style={{ display: 'flex', whiteSpace: 'nowrap' }}>\n {`${this.props.t('ra_Objects')}: ${Object.keys(this.info.objects).length}, ${this.props.t(\n 'ra_States',\n )}: ${\n Object.keys(this.info.objects).filter(el => this.info.objects[el].type === 'state').length\n }`}\n </div>}\n {this.props.objectEditBoolean &&\n <Tooltip\n title={this.props.t('ra_Edit custom config')}\n classes={{ popper: this.props.classes.tooltip }}\n >\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(\n `${this.props.dialogName || 'App'}.objectSelected`,\n this.state.selected[0],\n );\n this.props.router &&\n 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(\n `${this.props.dialogName || 'App'}.objectExpanded`,\n JSON.stringify(expanded),\n );\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',\n valueNum: 0x400,\n title: 'read',\n group: 'Owner',\n },\n {\n value: '0x200',\n valueNum: 0x200,\n title: 'write',\n group: 'Owner',\n },\n {\n value: '0x40',\n valueNum: 0x40,\n title: 'read',\n group: 'Group',\n },\n {\n value: '0x20',\n valueNum: 0x20,\n title: 'write',\n group: 'Group',\n },\n {\n value: '0x4',\n valueNum: 0x4,\n title: 'read',\n group: 'Everyone',\n },\n {\n value: '0x2',\n valueNum: 0x2,\n title: 'write',\n 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(\n <span key={value + i}>\n {this.texts[`acl${el.group}_${el.title}_${value}`]}\n,\n <span\n className={\n value === 'object'\n ? this.props.classes.rightsObject\n : this.props.classes.rightsState\n }\n >\n {el.value}\n </span>\n </span>,\n );\n }\n });\n };\n arrayTooltipText.push(\n <span key=\"group\">\n {`${this.texts.ownerGroup}: ${(acl.ownerGroup || '').replace(\n 'system.group.',\n '',\n )}`}\n </span>,\n );\n arrayTooltipText.push(\n <span key=\"owner\">{`${this.texts.ownerUser}: ${(acl.owner || '').replace('system.user.', '')}`}</span>,\n );\n funcRenderStateObject();\n if (acl.state) {\n funcRenderStateObject('state');\n }\n\n return arrayTooltipText.length ?\n <span className={this.props.classes.tooltipAccessControl}>{arrayTooltipText.map(el => el)}</span>\n :\n '';\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 ?\n <div className={classes.buttonDiv}>\n {this.state.filter.expertMode && this.props.objectEditOfAccessControl ?\n <IconButton\n className={Utils.clsx(\n classes.cellButtonsButton,\n classes.cellButtonsEmptyButton,\n classes.cellButtonMinWidth,\n )}\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 ?\n <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(\n id,\n !!item.children?.length,\n false,\n count + 1,\n );\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\n ? item.data.obj.type === 'state'\n ? item.data.obj.acl.state\n : item.data.obj.acl.object\n : 0;\n const aclSystemConfig =\n item.data.obj.acl &&\n (item.data.obj.type === 'state'\n ? this.systemConfig.common.defaultNewAcl.state\n : this.systemConfig.common.defaultNewAcl.object);\n\n return [\n this.state.filter.expertMode && this.props.objectEditOfAccessControl ?\n <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}>\n {Number.isNaN(Number(acl))\n ? Number(aclSystemConfig).toString(16)\n : Number(acl).toString(16)}\n </div>\n </IconButton>\n </Tooltip>\n :\n <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(\n `${this.props.dialogName || 'App'}.objectSelected`,\n id,\n );\n this.setState({ editObjectDialog: id, editObjectAlias: false });\n }}\n >\n <IconEdit className={classes.cellButtonsButtonIcon} />\n </IconButton>,\n this.props.onObjectDelete && (item.children?.length || !item.data.obj.common?.dontDelete) ?\n <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(\n id,\n !!item.children?.length,\n !item.data.obj.common?.dontDelete,\n count,\n );\n }}\n title={this.texts.deleteObject}\n >\n <IconDelete className={classes.cellButtonsButtonIcon} />\n </IconButton> : null,\n this.props.objectCustomDialog &&\n this.info.hasSomeCustoms &&\n item.data.obj.type === 'state' &&\n item.data.obj.common?.type !== 'file' ?\n <IconButton\n className={Utils.clsx(\n classes.cellButtonsButton,\n item.data.hasCustoms\n ? classes.cellButtonsButtonWithCustoms\n : classes.cellButtonsButtonWithoutCustoms,\n )}\n key=\"custom\"\n size=\"small\"\n aria-label=\"config\"\n title={this.texts.customConfig}\n onClick={() => {\n (window._localStorage || window.localStorage).setItem(\n `${this.props.dialogName || 'App'}.objectSelected`,\n id,\n );\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 (\n 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\n .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 = formatValue({\n state,\n obj,\n texts: this.texts,\n dateFormat: this.props.dateFormat,\n isFloatComma: this.props.isFloatComma,\n });\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`}>\n {_item.v}\n </div>,\n !_item.nbr ? <br key={`${_item.t}_br`} /> : null,\n ];\n });\n\n if (\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 info.valFull.push(<svg\n key=\"sparkline\"\n className=\"sparkline\"\n data-id={id}\n style={{ fill: '#3d85de' }}\n width=\"200\"\n height=\"30\"\n strokeWidth=\"3\"\n />);\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`}>\n {info.valText.v.toString()}\n </span>,\n info.valText.u ? <span\n className={Utils.clsx(classes.cellValueTextUnit, classes.newValue)}\n key={`${info.valText.v.toString()}unit`}\n >\n {info.valText.u}\n </span> : null,\n info.valText.s !== undefined ? <span\n className={Utils.clsx(classes.cellValueTextState, classes.newValue)}\n key={`${info.valText.v.toString()}states`}\n >\n (\n {info.valText.s}\n)\n </span> : null,\n <IconCopy\n className={Utils.clsx(\n classes.cellButtonsValueButton,\n 'copyButton',\n classes.cellButtonsValueButtonCopy,\n )}\n onClick={e => this.onCopy(e, copyText)}\n key=\"cc\"\n />,\n // <IconEdit className={ Utils.clsx(classes.cellButtonsValueButton, 'copyButton', classes.cellButtonsValueButtonEdit) } key=\"ce\" />\n ];\n }\n\n info.style = getValueStyle({ state, isExpertMode: this.state.filter.expertMode, isButton: item.data.button });\n\n let val = info.valText;\n if (!this.state.filter.expertMode && item.data.button) {\n val = <PressButtonIcon className={this.props.classes.cellValueButton} />;\n }\n\n return <Tooltip\n key=\"value\"\n title={info.valFull}\n classes={{\n tooltip: this.props.classes.cellValueTooltip,\n popper: this.props.classes.cellValueTooltipBox,\n }}\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(\n this.props.socket\n .setObject(enumId, obj)\n .then(() => (this.info.objects[enumId] = obj))\n .catch(e => this.showError(e)),\n );\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(\n this.props.socket\n .setObject(enumId, obj)\n .then(() => (this.info.objects[enumId] = obj))\n .catch(e => this.showError(e)),\n );\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)\n .map(id => ({\n name: getName(\n (this.objects[id] && this.objects[id].common && this.objects[id].common.name) ||\n id.split('.').pop(),\n this.props.lang,\n ),\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 {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 </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\n .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(\n this.state.columnsEditCustomDialog.obj,\n this.state.columnsEditCustomDialog.it,\n );\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\">\n {`${this.props.t('ra_Edit object field')}: ${\n this.state.columnsEditCustomDialog.obj._id\n }`}\n </DialogTitle>\n <DialogContent>\n <DialogContentText id=\"alert-dialog-description\">\n {this.customColumnDialog.type === 'boolean' ?\n <FormControlLabel\n control={\n <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 =\n this.customColumnDialog.value !== this.customColumnDialog.initValue;\n if (changed === !this.state.customColumnDialogValueChanged) {\n this.setState({ customColumnDialogValueChanged: changed });\n }\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 =\n 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) {\n // 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 =\n obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]]\n ? obj[p[0]][p[1]][p[2]][p[3]]\n : null;\n } else if (p.length === 5) {\n value =\n obj[p[0]][p[1]] &&\n typeof obj[p[0]][p[1]] === 'object' &&\n obj[p[0]][p[1]][p[2]] &&\n obj[p[0]][p[1]][p[2]][p[3]]\n ? obj[p[0]][p[1]][p[2]][p[3]][p[4]]\n : null;\n } else if (p.length === 6) {\n value =\n obj[p[0]][p[1]] &&\n typeof obj[p[0]][p[1]] === 'object' &&\n obj[p[0]][p[1]][p[2]] &&\n obj[p[0]][p[1]][p[2]][p[3]] &&\n obj[p[0]][p[1]][p[2]][p[3]][p[4]]\n ? obj[p[0]][p[1]][p[2]][p[3]][p[4]][p[5]]\n : 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) {\n // 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 (\n obj[p[0]][p[1]] &&\n typeof obj[p[0]][p[1]] === 'object' &&\n obj[p[0]][p[1]][p[2]] &&\n typeof obj[p[0]][p[1]][p[2]] === 'object'\n ) {\n obj[p[0]][p[1]][p[2]][p[3]] = value;\n return true;\n }\n } else if (p.length === 5) {\n if (\n obj[p[0]][p[1]] &&\n typeof obj[p[0]][p[1]] === 'object' &&\n obj[p[0]][p[1]][p[2]] &&\n typeof obj[p[0]][p[1]][p[2]] === 'object' &&\n obj[p[0]][p[1]][p[2]][p[3]] &&\n typeof obj[p[0]][p[1]][p[2]][p[3]] === 'object'\n ) {\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 (\n obj[p[0]][p[1]] &&\n typeof obj[p[0]][p[1]] === 'object' &&\n obj[p[0]][p[1]][p[2]] &&\n typeof obj[p[0]][p[1]][p[2]] === 'object' &&\n obj[p[0]][p[1]][p[2]][p[3]] &&\n typeof obj[p[0]][p[1]][p[2]][p[3]] === 'object' &&\n obj[p[0]][p[1]][p[2]][p[3]][p[4]] &&\n typeof obj[p[0]][p[1]][p[2]][p[3]][p[4]] === 'object'\n ) {\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(\n this.props.classes.columnCustom,\n this.props.classes.columnCustomEditable,\n this.props.classes[`columnCustom_${it.align}`],\n )}\n onClick={() =>\n this.setState({\n columnsEditCustomDialog: { item, it, obj },\n customColumnDialogValueChanged: false,\n })}\n >\n {text}\n </div>;\n }\n return <div\n className={Utils.clsx(\n this.props.classes.columnCustom,\n this.props.classes[`columnCustom_${it.align}`],\n )}\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 (\n item.children ||\n itemType === 'folder' ||\n itemType === 'device' ||\n itemType === 'channel' ||\n itemType === 'meta'\n ) {\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] &&\n (!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 /> : null;\n\n let valueEditable =\n !this.props.notEditable &&\n itemType === 'state' &&\n (this.state.filter.expertMode || common?.write !== false);\n if (this.props.objectBrowserViewFile && common?.type === 'file') {\n valueEditable = true;\n }\n const enumEditable =\n !this.props.notEditable &&\n this.objects[id] &&\n (this.state.filter.expertMode || itemType === 'state' || itemType === 'channel' || itemType === 'device');\n const checkVisibleObjectType =\n 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 &&\n newValueTitle.push(\n `${this.texts.objectChangedFrom} ${obj.from.replace(/^system\\.adapter\\.|^system\\./, '')}`,\n );\n obj.user && newValueTitle.push(`${this.texts.objectChangedBy} ${obj.user.replace(/^system\\.user\\./, '')}`);\n obj.ts &&\n newValueTitle.push(\n `${this.texts.objectChangedByUser} ${Utils.formatDate(new Date(obj.ts), this.props.dateFormat)}`,\n );\n }\n\n const readWriteAlias = typeof common?.alias?.id === 'object';\n\n const alias =\n 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)), 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)), 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)), 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;\n if (checkColor && !this.state.selected.includes(id)) {\n const background =\n 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 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\n key=\"error\"\n title={this.texts.deviceError}\n className={this.props.classes.iconDeviceError}\n />);\n }\n\n if (ids.onlineId && this.states[ids.onlineId]) {\n if (!colorSet) {\n if (this.states[ids.onlineId].val) {\n checkColor =\n this.props.themeType === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT;\n icons.push(<IconConnection\n key=\"conn\"\n title={this.texts.deviceError}\n className={this.props.classes.iconDeviceConnected}\n />);\n } else {\n checkColor =\n this.props.themeType === 'dark'\n ? COLOR_NAME_DISCONNECTED_DARK\n : COLOR_NAME_DISCONNECTED_LIGHT;\n icons.push(<IconDisconnected\n key=\"disc\"\n title={this.texts.deviceError}\n className={this.props.classes.iconDeviceDisconnected}\n />);\n }\n } else if (this.states[ids.onlineId].val) {\n icons.push(<IconConnection\n key=\"conn\"\n title={this.texts.deviceError}\n className={this.props.classes.iconDeviceConnected}\n />);\n } else {\n icons.push(<IconDisconnected\n key=\"disc\"\n title={this.texts.deviceError}\n className={this.props.classes.iconDeviceDisconnected}\n />);\n }\n } else if (ids.offlineId && this.states[ids.offlineId]) {\n if (!colorSet) {\n if (this.states[ids.offlineId].val) {\n checkColor =\n this.props.themeType === 'dark'\n ? COLOR_NAME_DISCONNECTED_DARK\n : COLOR_NAME_DISCONNECTED_LIGHT;\n icons.push(<IconDisconnected\n key=\"disc\"\n title={this.texts.deviceError}\n className={this.props.classes.iconDeviceDisconnected}\n />);\n } else {\n checkColor =\n this.props.themeType === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT;\n icons.push(<IconConnection\n key=\"conn\"\n title={this.texts.deviceError}\n className={this.props.classes.iconDeviceConnected}\n />);\n }\n } else if (this.states[ids.offlineId].val) {\n icons.push(<IconDisconnected\n key=\"disc\"\n title={this.texts.deviceError}\n className={this.props.classes.iconDeviceDisconnected}\n />);\n } else {\n icons.push(<IconConnection\n key=\"conn\"\n title={this.texts.deviceError}\n className={this.props.classes.iconDeviceConnected}\n />);\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}>\n {name}\n </div>,\n <div key=\"desc\" className={classes.cellDescription}>\n {useDesc}\n </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 &&\n !item.data.visible &&\n !item.data.hasVisibleChildren &&\n 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 onMouseDown={e => {\n e.preventDefault();\n this.onSelect(id);\n let isRightMB;\n if ('which' in e) {\n // Gecko (Firefox), WebKit (Safari/Chrome) & Opera\n isRightMB = e.which === 3;\n } else if ('button' in e) { // IE, Opera\n isRightMB = e.button === 2;\n }\n if (isRightMB) {\n this.contextMenu = {\n item,\n ts: Date.now(),\n };\n } else {\n this.contextMenu = null;\n }\n }}\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 >\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\n className={Utils.clsx(classes.cellCopyButton, 'copyButton')}\n onClick={e => this.onCopy(e, id)}\n />\n </div>\n </Grid>\n\n {this.columnsVisibility.name ? <div\n className={Utils.clsx(classes.cellName, useDesc && classes.cellNameWithDesc)}\n style={{ width: this.columnsVisibility.name }}\n >\n {name}\n {item.data?.title ? <div style={{ color: checkColor }}>\n <IconCopy\n className={Utils.clsx(classes.cellCopyButton, 'copyButton')}\n onClick={e => this.onCopy(e, item.data.title)}\n />\n </div> : null}\n </div> : null}\n\n {!this.state.statesView ? <>\n {this.columnsVisibility.type ? <div\n className={classes.cellType}\n style={{ width: this.columnsVisibility.type }}\n >\n {typeImg}\n &nbsp;\n {obj && obj.type}\n </div> : null}\n {this.columnsVisibility.role ? <div\n className={classes.cellRole}\n style={{\n width: this.columnsVisibility.role,\n cursor:\n this.state.filter.expertMode && enumEditable && this.props.objectBrowserEditRole\n ? 'text'\n : 'default',\n }}\n onClick={\n this.state.filter.expertMode && enumEditable && this.props.objectBrowserEditRole\n ? () => this.setState({ roleDialog: item.data.id })\n : undefined\n }\n >\n {common?.role}\n </div> : null}\n {this.columnsVisibility.room ? <div\n className={`${classes.cellRoom} ${item.data.per ? classes.cellEnumParent : ''}`}\n style={{\n width: this.columnsVisibility.room,\n cursor: enumEditable ? 'text' : 'default',\n }}\n onClick={\n enumEditable\n ? () => {\n const enums = findEnumsForObjectAsIds(\n this.info,\n item.data.id,\n 'roomEnums',\n );\n this.setState({\n enumDialogEnums: enums,\n enumDialog: {\n item,\n type: 'room',\n enumsOriginal: JSON.parse(JSON.stringify(enums)),\n },\n });\n }\n : undefined\n }\n >\n {item.data.rooms}\n </div> : null}\n {this.columnsVisibility.func ? <div\n className={`${classes.cellFunc} ${item.data.pef ? classes.cellEnumParent : ''}`}\n style={{\n width: this.columnsVisibility.func,\n cursor: enumEditable ? 'text' : 'default',\n }}\n onClick={\n enumEditable\n ? () => {\n const enums = findEnumsForObjectAsIds(\n this.info,\n item.data.id,\n 'funcEnums',\n );\n this.setState({\n enumDialogEnums: enums,\n enumDialog: {\n item,\n type: 'func',\n enumsOriginal: JSON.parse(JSON.stringify(enums)),\n },\n });\n }\n : undefined\n }\n >\n {item.data.funcs}\n </div> : null}\n </>\n :\n <>\n {this.columnsVisibility.changedFrom ? <div\n className={classes.cellRole}\n style={{ width: this.columnsVisibility.changedFrom }}\n title={newValueTitle.join('\\n')}\n >\n {checkVisibleObjectType && this.states[id]?.from ? newValue : null}\n </div> : null}\n {this.columnsVisibility.qualityCode ? <div\n className={classes.cellRole}\n style={{ width: this.columnsVisibility.qualityCode }}\n title={q || ''}\n >\n {q}\n </div> : null}\n {this.columnsVisibility.timestamp ? <div\n className={classes.cellRole}\n style={{ width: this.columnsVisibility.timestamp }}\n >\n {checkVisibleObjectType && this.states[id]?.ts\n ? Utils.formatDate(new Date(this.states[id].ts), this.props.dateFormat)\n : null}\n </div> : null}\n {this.columnsVisibility.lastChange ? <div\n className={classes.cellRole}\n style={{ width: this.columnsVisibility.lastChange }}\n >\n {checkVisibleObjectType && this.states[id]?.lc\n ? Utils.formatDate(new Date(this.states[id].lc), this.props.dateFormat)\n : null}\n </div> : null}\n </>}\n {this.adapterColumns.map(it => <div\n className={classes.cellAdapter}\n style={{ width: this.columnsVisibility[it.id] }}\n key={it.id}\n title={`${it.adapter} => ${it.pathText}`}\n >\n {this.renderCustomValue(obj, it, item)}\n </div>)}\n {this.columnsVisibility.val ? <div\n className={classes.cellValue}\n style={{\n width: this.columnsVisibility.val,\n cursor: valueEditable\n ? common?.type === 'file'\n ? 'zoom-in'\n : item.data.button\n ? 'grab'\n : 'text'\n : 'default',\n }}\n onClick={\n valueEditable\n ? () => {\n if (!obj || !this.states) {\n // return;\n } else if (common?.type === 'file') {\n this.setState({ viewFileDialog: id });\n // eslint-disable-next-line brace-style\n } else if (!this.state.filter.expertMode && item.data.button) {\n // in non-expert mode control button directly\n this.props.socket\n .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 }\n : undefined\n }\n >\n {this.renderColumnValue(id, item, classes)}\n </div> : null}\n {this.columnsVisibility.buttons ? <div\n className={classes.cellButtons}\n style={{ width: this.columnsVisibility.buttons }}\n >\n {this.renderColumnButtons(id, item, classes)}\n </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}>\n {leaf}\n </DragWrapper>;\n } else {\n // change cursor\n leaf = <div key={root.data.id} className={classes.nonDraggable}>\n {leaf}\n </div>;\n }\n }\n root.data.id && items.push(leaf);\n\n isExpanded = isExpanded === undefined ? binarySearch(this.state.expanded, root.data.id) : isExpanded;\n\n if (!root.data.id || isExpanded) {\n if (!this.state.foldersFirst) {\n root.children &&\n items.push(\n 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 );\n } else {\n // first only folder\n root.children &&\n items.push(\n 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 );\n // then items\n root.children &&\n items.push(\n 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\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')\n ? columnsWidths.name || WIDTHS.name || SCREEN_WIDTHS[this.props.width].widths.name || 0\n : 0,\n type: columns.includes('type')\n ? columnsWidths.type || WIDTHS.type || SCREEN_WIDTHS[this.props.width].widths.type || 0\n : 0,\n role: columns.includes('role')\n ? columnsWidths.role || WIDTHS.role || SCREEN_WIDTHS[this.props.width].widths.role || 0\n : 0,\n room: columns.includes('room')\n ? columnsWidths.room || WIDTHS.room || SCREEN_WIDTHS[this.props.width].widths.room || 0\n : 0,\n func: columns.includes('func')\n ? columnsWidths.func || WIDTHS.func || SCREEN_WIDTHS[this.props.width].widths.func || 0\n : 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)\n .sort()\n .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] =\n columnsWidths[item.id] ||\n column.width ||\n SCREEN_WIDTHS[this.props.width].widths.func ||\n 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')\n ? columnsWidths.val || WIDTHS.val || SCREEN_WIDTHS.xl.widths.val\n : 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')\n ? columnsWidths.buttons || WIDTHS.buttons || SCREEN_WIDTHS.xl.widths.buttons\n : 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((accumulator, name) => {\n if (\n name === 'id' ||\n typeof this.columnsVisibility[name] === 'string' ||\n !this.columnsVisibility[name]\n ) {\n return accumulator;\n }\n return accumulator + this.columnsVisibility[name];\n }, 0);\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 (\n (!this.resizerMin || width > this.resizerMin) &&\n (!this.resizerNextMin || widthNext > this.resizerNextMin)\n ) {\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 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(\n `${this.props.dialogName || 'App'}.table`,\n JSON.stringify(this.resizerCurrentWidths),\n );\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 /**\n * Handle keyboard events for navigation\n *\n * @param {KeyboardEvent} event\n */\n navigateKeyPress(event) {\n const selectedId = this.state.selectedNonObject || this.state.selected[0];\n\n if (!selectedId) {\n return;\n }\n\n if (event.code === 'ArrowUp' || event.code === 'ArrowDown') {\n event.preventDefault();\n const ids = [];\n this.tableRef.current.childNodes.forEach(node => ids.push(node.id));\n const idx = ids.indexOf(selectedId);\n const newIdx = event.code === 'ArrowDown' ? idx + 1 : idx - 1;\n const newId = ids[newIdx] || selectedId;\n this.onSelect(newId);\n this.scrollToItem(newId);\n }\n\n if (event.code === 'ArrowRight' || event.code === 'ArrowLeft') {\n this.toggleExpanded(selectedId);\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\n className={classes.headerCell}\n style={{ width: this.columnsVisibility.id, position: 'relative' }}\n data-min={240}\n data-name=\"id\"\n >\n {this.getFilterInput('id')}\n <div\n className={`${this.props.classes.resizeHandle} ${this.props.classes.resizeHandleRight}`}\n onMouseDown={this.resizerMouseDown}\n onDoubleClick={this.resizerReset}\n title={this.props.t('ra_Double click to reset table layout')}\n />\n </div>\n {this.columnsVisibility.name ? <div\n className={classes.headerCell}\n style={{ width: this.columnsVisibility.nameHeader }}\n data-min={100}\n data-name=\"nameHeader\"\n >\n {this.getFilterInput('name')}\n </div> : null}\n {!this.state.statesView && <>\n {this.columnsVisibility.type ? <div\n className={classes.headerCell}\n style={{ width: this.columnsVisibility.type }}\n data-min={100}\n data-name=\"type\"\n >\n {this.getFilterSelectType()}\n </div> : null}\n {this.columnsVisibility.role ? <div\n className={classes.headerCell}\n style={{ width: this.columnsVisibility.role }}\n data-min={100}\n data-name=\"role\"\n >\n {this.getFilterSelectRole()}\n </div> : null}\n {this.columnsVisibility.room ? <div\n className={classes.headerCell}\n style={{ width: this.columnsVisibility.room }}\n data-min={100}\n data-name=\"room\"\n >\n {this.getFilterSelectRoom()}\n </div> : null}\n {this.columnsVisibility.func ? <div\n className={classes.headerCell}\n style={{ width: this.columnsVisibility.func }}\n data-min={100}\n data-name=\"func\"\n >\n {this.getFilterSelectFunction()}\n </div> : null}\n </>}\n {this.state.statesView && <>\n <div\n className={Utils.clsx(classes.headerCell, classes.headerCellValue)}\n style={{ width: this.columnsVisibility.changedFrom }}\n data-min={100}\n data-name=\"changedFrom\"\n >\n {this.props.t('ra_Changed from')}\n </div>\n <div\n className={Utils.clsx(classes.headerCell, classes.headerCellValue)}\n style={{ width: this.columnsVisibility.qualityCode }}\n data-min={100}\n data-name=\"qualityCode\"\n >\n {this.props.t('ra_Quality code')}\n </div>\n <div\n className={Utils.clsx(classes.headerCell, classes.headerCellValue)}\n style={{ width: this.columnsVisibility.timestamp }}\n data-min={100}\n data-name=\"timestamp\"\n >\n {this.props.t('ra_Timestamp')}\n </div>\n <div\n className={Utils.clsx(classes.headerCell, classes.headerCellValue)}\n style={{ width: this.columnsVisibility.lastChange }}\n data-min={100}\n data-name=\"lastChange\"\n >\n {this.props.t('ra_Last change')}\n </div>\n </>}\n {this.adapterColumns.map(item => <div\n className={Utils.clsx(classes.headerCell, classes.headerCellValue)}\n style={{ width: this.columnsVisibility[item.id] }}\n title={item.adapter}\n key={item.id}\n data-min={100}\n data-name={item.id}\n >\n {item.name}\n </div>)}\n {this.columnsVisibility.val ? <div\n className={Utils.clsx(classes.headerCell, classes.headerCellValue)}\n style={{ width: this.columnsVisibility.val, position: 'relative' }}\n data-min={120}\n data-name=\"val\"\n >\n <div\n className={`${this.props.classes.resizeHandle} ${this.props.classes.resizeHandleLeft}`}\n data-left=\"true\"\n onMouseDown={this.resizerMouseDown}\n onDoubleClick={this.resizerReset}\n title={this.props.t('ra_Double click to reset table layout')}\n />\n {this.props.t('ra_Value')}\n {filterClearInValue}\n </div> : null}\n {this.columnsVisibility.buttons ? <div\n className={classes.headerCell}\n style={{ width: this.columnsVisibility.buttons }}\n >\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\n size=\"small\"\n aria-label=\"close\"\n color=\"inherit\"\n onClick={() => this.setState({ toast: '' })}\n >\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 (\n !this.selectedFound &&\n ((this.state.selected && this.state.selected[0]) || this.lastSelectedItems)\n ) {\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 &&\n 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\n .setState(this.edit.id, {\n val: valAck.val,\n ack: valAck.ack,\n q: valAck.q || 0,\n 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 aliasTab={this.state.editObjectAlias}\n t={this.props.t}\n expertMode={this.state.filter.expertMode}\n onNewObject={obj =>\n this.props.socket\n .setObject(obj._id, obj)\n .then(() => this.setState({ editObjectDialog: obj._id, editObjectAlias: false }, () => 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 (\n JSON.stringify(this.objects[this.state.editObjectDialog].common?.alias) !==\n JSON.stringify(obj.common?.alias)\n ) {\n updateAlias = this.state.editObjectDialog;\n }\n }\n\n this.props.socket\n .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: '', editObjectAlias: false });\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 renderAliasEditorDialog() {\n if (!this.props.objectBrowserAliasEditor || !this.state.showAliasEditor) {\n return null;\n }\n const ObjectBrowserAliasEditor = this.props.objectBrowserAliasEditor;\n\n return <ObjectBrowserAliasEditor\n key=\"editAlias\"\n obj={this.objects[this.state.showAliasEditor]}\n objects={this.objects}\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({ showAliasEditor: '' })}\n onRedirect={id => this.setState({ editObjectDialog: id, showAliasEditor: false, editObjectAlias: true })}\n />;\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderContextMenu() {\n if (!this.state.showContextMenu) {\n return null;\n }\n const item = this.state.showContextMenu;\n const id = item.data.id;\n const items = [];\n // const ctrl = isIOS() ? '⌘' : (this.props.lang === 'de' ? 'Strg+' : 'Ctrl+');\n\n const obj = item.data.obj;\n\n let showACL = '';\n if (this.props.objectEditOfAccessControl && this.state.filter.expertMode) {\n if (!obj) {\n showACL = '---';\n } else {\n const acl = obj.acl\n ? obj.type === 'state'\n ? obj.acl.state\n : obj.acl.object\n : 0;\n const aclSystemConfig =\n obj.acl &&\n (obj.type === 'state'\n ? this.systemConfig.common.defaultNewAcl.state\n : this.systemConfig.common.defaultNewAcl.object);\n showACL = Number.isNaN(Number(acl)) ? Number(aclSystemConfig).toString(16) : Number(acl).toString(16);\n }\n }\n\n const enumEditable = !this.props.notEditable && obj &&\n (this.state.filter.expertMode || obj.type === 'state' || obj.type === 'channel' || obj.type === 'device');\n\n const ITEMS = {\n EDIT: {\n key: '0',\n visibility: this.props.objectBrowserEditObject && obj,\n icon: <IconEdit fontSize=\"small\" className={this.props.classes.contextMenuEdit} />,\n label: this.texts.editObject,\n onClick: () => this.setState({ editObjectDialog: item.data.id, showContextMenu: null, editObjectAlias: false }),\n },\n EDIT_VALUE: {\n key: '1',\n visibility: this.states &&\n !this.props.notEditable &&\n obj &&\n obj.type === 'state' &&\n obj.common?.type !== 'file' &&\n (this.state.filter.expertMode || obj.common.write !== false),\n icon: <IconValueEdit fontSize=\"small\" className={this.props.classes.contextMenuEditValue} />,\n label: this.props.t('ra_Edit value'),\n onClick: () => {\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, showContextMenu: null });\n },\n },\n VIEW: {\n visibility: this.props.objectBrowserViewFile && obj && obj.type === 'state' && obj.common?.type === 'file',\n icon: <FindInPage fontSize=\"small\" className={this.props.classes.contextMenuView} />,\n className: '',\n label: this.props.t('ra_View file'),\n onClick: () => this.setState({ viewFileDialog: obj._id, showContextMenu: null }),\n },\n CUSTOM: {\n key: '2',\n visibility: this.props.objectCustomDialog &&\n this.info.hasSomeCustoms &&\n obj &&\n obj.type === 'state' &&\n obj.common?.type !== 'file',\n icon: <IconConfig\n fontSize=\"small\"\n className={item.data.hasCustoms\n ? this.props.classes.cellButtonsButtonWithCustoms\n : this.props.classes.cellButtonsButtonWithoutCustoms}\n />,\n className: this.props.classes.contextMenuCustom,\n label: this.texts.customConfig,\n onClick: () => {\n this.pauseSubscribe(true);\n this.props.router && this.props.router.doNavigate(null, 'customs', id);\n this.setState({ customDialog: [id], showContextMenu: null });\n },\n },\n ACL: {\n key: '3',\n visibility: !!showACL,\n icon: showACL,\n iconStyle: { fontSize: 'smaller' },\n listItemIconClass: this.props.classes.contextMenuACL,\n className: this.props.classes.contextMenuACL,\n label: this.props.t('ra_Edit ACL'),\n onClick: () => this.setState({\n showContextMenu: null,\n modalEditOfAccess: true,\n modalEditOfAccessObjData: item.data,\n }),\n },\n ROLE: {\n key: '4',\n visibility: this.state.filter.expertMode && enumEditable && this.props.objectBrowserEditRole,\n icon: <BorderColor fontSize=\"small\" className={this.props.classes.contextMenuRole} />,\n className: '',\n label: this.props.t('ra_Edit role'),\n onClick: () => this.setState({ roleDialog: item.data.id, showContextMenu: null }),\n },\n FUNCTION: {\n key: '5',\n visibility: enumEditable,\n icon: <BedroomParent fontSize=\"small\" className={this.props.classes.contextMenuRole} />,\n className: '',\n label: this.props.t('ra_Edit function'),\n onClick: () => {\n const enums = findEnumsForObjectAsIds(\n this.info,\n item.data.id,\n 'funcEnums',\n );\n this.setState({\n enumDialogEnums: enums,\n enumDialog: {\n item,\n type: 'func',\n enumsOriginal: JSON.parse(JSON.stringify(enums)),\n },\n showContextMenu: null,\n });\n },\n },\n ROOM: {\n key: '6',\n visibility: enumEditable,\n icon: <Construction fontSize=\"small\" className={this.props.classes.contextMenuRoom} />,\n className: '',\n label: this.props.t('ra_Edit room'),\n onClick: () => {\n const enums = findEnumsForObjectAsIds(\n this.info,\n item.data.id,\n 'roomEnums',\n );\n this.setState({\n enumDialogEnums: enums,\n enumDialog: {\n item,\n type: 'room',\n enumsOriginal: JSON.parse(JSON.stringify(enums)),\n },\n showContextMenu: null,\n });\n },\n },\n ALIAS: {\n key: '7',\n visibility: !this.props.notEditable &&\n this.props.objectBrowserAliasEditor &&\n this.props.objectBrowserEditObject &&\n this.state.filter.expertMode &&\n obj &&\n obj.type === 'state' &&\n obj.common?.type !== 'file',\n icon: <IconLink className={obj?.common?.alias\n ? this.props.classes.cellButtonsButtonWithCustoms\n : this.props.classes.cellButtonsButtonWithoutCustoms}\n />,\n className: '',\n label: this.props.t('ra_Edit alias'),\n onClick: () => {\n if (obj.common?.alias) {\n this.setState({ editObjectDialog: item.data.id, showContextMenu: null, editObjectAlias: true });\n } else {\n this.setState({ showContextMenu: null, showAliasEditor: item.data.id });\n }\n },\n },\n DELETE: {\n key: 'Delete',\n visibility: this.props.onObjectDelete && (item.children?.length || (obj && !obj.common?.dontDelete)),\n icon: <IconDelete fontSize=\"small\" className={this.props.classes.contextMenuDelete} />,\n className: this.props.classes.contextMenuDelete,\n label: this.texts.deleteObject,\n onClick: () => {\n this.setState({ showContextMenu: null }, () => {\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(\n id,\n !!item.children?.length,\n !obj.common?.dontDelete,\n count + 1,\n );\n });\n },\n },\n };\n\n Object.keys(ITEMS).forEach(key => {\n if (ITEMS[key].visibility) {\n items.push(<MenuItem key={key} onClick={ITEMS[key].onClick} className={ITEMS[key].className}>\n <ListItemIcon style={ITEMS[key].iconStyle} className={ITEMS[key].listItemIconClass}>\n {ITEMS[key].icon}\n </ListItemIcon>\n <ListItemText>{ITEMS[key].label}</ListItemText>\n {ITEMS[key].key ? <div className={this.props.classes.contextMenuKeys}>\n {`Alt+${ITEMS[key].key === 'Delete' ? this.props.t('ra_Del') : ITEMS[key].key}`}\n </div> : null}\n </MenuItem>);\n }\n });\n\n if (!items.length) {\n setTimeout(() => this.setState({ showContextMenu: null }), 100);\n return null;\n }\n\n const el = document.getElementById(id);\n\n return <Menu\n key=\"contextMenu\"\n open={!0}\n onKeyUp={e => {\n e.preventDefault();\n if (e.altKey) {\n Object.keys(ITEMS).forEach(key => {\n if (e.key === ITEMS[key].key) {\n ITEMS[key].onClick();\n }\n });\n }\n }}\n anchorEl={el}\n onClose={() => {\n this.setState({ showContextMenu: null });\n this.contextMenu = null;\n }}\n >\n {items}\n </Menu>;\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\n : 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 /**\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(\n this.root,\n this.state.filter,\n this.props.lang,\n this.objects,\n null,\n counter,\n this.props.customFilter,\n this.props.types,\n );\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={{}} onKeyDown={event => this.navigateKeyPress(event)} tabIndex={0}>\n <TabHeader>{this.getToolbar()}</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.renderContextMenu()}\n {this.renderToast()}\n {this.renderColumnsEditCustomDialog()}\n {this.renderColumnsSelectorDialog()}\n {this.renderCustomDialog()}\n {this.renderEditValueDialog()}\n {this.renderEditObjectDialog()}\n {this.renderViewObjectFileDialog()}\n {this.renderAliasEditorDialog()}\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 &&\n this.props.modalEditOfAccessControl &&\n 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 objectBrowserAliasEditor: PropTypes.func, // on edit alias\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 // eslint-disable-next-line react/no-unused-prop-types\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 DragWrapper: PropTypes.func,\n dragEnabled: PropTypes.bool,\n};\n\n/** @type {typeof ObjectBrowser} */\nconst _export = withWidth()(withStyles(styles)(ObjectBrowser));\nexport default _export;\n"],"mappings":"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"}