@iobroker/adapter-react-v5 0.0.4 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/Components/ColorPicker.js +6 -2
  2. package/Components/ColorPicker.js.map +1 -1
  3. package/Components/ComplexCron.js +1 -1
  4. package/Components/ComplexCron.js.map +1 -1
  5. package/Components/FileBrowser.js +6 -6
  6. package/Components/FileBrowser.js.map +1 -1
  7. package/Components/FileViewer.js +5 -17
  8. package/Components/FileViewer.js.map +1 -1
  9. package/Components/Icon.js +1 -1
  10. package/Components/Icon.js.map +1 -1
  11. package/Components/IconPicker.js +1 -2
  12. package/Components/IconPicker.js.map +1 -1
  13. package/Components/Image.js +2 -1
  14. package/Components/Image.js.map +1 -1
  15. package/Components/Loader.js +8 -14
  16. package/Components/Loader.js.map +1 -1
  17. package/Components/Logo.js +8 -8
  18. package/Components/Logo.js.map +1 -1
  19. package/Components/MDUtils.js.map +1 -1
  20. package/Components/ObjectBrowser.js +7 -7
  21. package/Components/ObjectBrowser.js.map +1 -1
  22. package/Components/Schedule.js +1 -2
  23. package/Components/Schedule.js.map +1 -1
  24. package/Components/SelectWithIcon.js +40 -4
  25. package/Components/SelectWithIcon.js.map +1 -1
  26. package/Components/TextWithIcon.js +5 -3
  27. package/Components/TextWithIcon.js.map +1 -1
  28. package/Dialogs/ComplexCron.js +1 -1
  29. package/Dialogs/ComplexCron.js.map +1 -1
  30. package/Dialogs/Confirm.js +1 -1
  31. package/Dialogs/Confirm.js.map +1 -1
  32. package/Dialogs/Cron.js +1 -1
  33. package/Dialogs/Cron.js.map +1 -1
  34. package/Dialogs/Error.js +1 -1
  35. package/Dialogs/Error.js.map +1 -1
  36. package/Dialogs/Message.js +1 -1
  37. package/Dialogs/Message.js.map +1 -1
  38. package/Dialogs/SelectID.js +1 -1
  39. package/Dialogs/SelectID.js.map +1 -1
  40. package/Dialogs/SimpleCron.js +1 -1
  41. package/Dialogs/SimpleCron.js.map +1 -1
  42. package/Dialogs/TextInput.js +11 -11
  43. package/Dialogs/TextInput.js.map +1 -1
  44. package/GenericApp.js +7 -4
  45. package/GenericApp.js.map +1 -1
  46. package/README.md +6 -0
  47. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["ObjectBrowser.js"],"names":["useWidth","theme","keys","breakpoints","reverse","reduce","output","key","matches","up","withWidth","WrappedComponent","props","width","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","toolbar","minHeight","toolbarButtons","padding","marginLeft","switchColumnAuto","spacing","dialogColumns","transition","dialogColumnsLabel","fontSize","paddingTop","columnCustom","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","buttonClearFilter","position","buttonClearFilterIcon","zIndex","top","left","color","tableDiv","overflow","tableRow","lineHeight","verticalAlign","userSelect","background","palette","type","primary","dark","light","Utils","invertColor","main","flexWrap","tableRowLines","borderBottom","tableRowNoDragging","tableRowAlias","tableRowAliasReadWrite","checkBox","cellId","textOverflow","marginTop","cellIdSpan","cellIdIconFolder","marginRight","secondary","cellIdIconDocument","cellIdIconOwn","cellCopyButton","right","cellEditButton","cellName","cellIdAlias","fontStyle","cellIdAliasReadWriteDiv","cellIdAliasAlone","cellIdAliasReadWrite","cellType","cellRole","cellRoom","cellEnumParent","cellFunc","cellValue","cellValueButton","transform","cellValueButtonFalse","cellAdapter","cellValueTooltip","cellValueText","cellValueFile","cellValueTooltipTitle","cellValueTooltipValue","cellValueTooltipBoth","cellValueTooltipBox","cellValueTextUnit","newValue","animation","cellValueTextState","cellValueTooltipCopy","bottom","cellValueTooltipEdit","cellButtons","cellButtonsButton","cellButtonsEmptyButton","cellButtonMinWidth","minWidth","cellButtonsButtonAlone","cellButtonsButtonWithCustoms","cellButtonsValueButton","action","active","cellButtonsValueButtonCopy","cellButtonsValueButtonEdit","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","generateFile","filename","obj","el","document","createElement","setAttribute","encodeURIComponent","JSON","stringify","style","body","appendChild","click","removeChild","binarySearch","list","find","_start","_end","undefined","length","middle","Math","floor","applyFilter","item","filters","lang","objects","context","counter","customFilter","selectedTypes","id","toLowerCase","name","custom","role","room","common","members","func","data","expertMode","startsWith","expert","fID","indexOf","fName","getName","includes","visible","hasVisibleChildren","children","forEach","_item","sumVisibility","hasVisibleParent","count","getVisibleItems","_result","push","getSystemIcon","k","imagePrefix","icon","endsWith","getSelectIdIcon","buildTree","options","ids","Object","sort","a","b","replace","currentPathArr","currentPath","currentPathLen","root","info","funcEnums","roomEnums","roles","types","customs","enums","hasSomeCustoms","croot","i","parts","split","supportCustoms","adminUI","substring","repeat","curPath","_croot","parent","level","generated","title","hasCustoms","button","write","u","move","splice","join","aName","pop","bName","findNode","_parts","_path","_level","found","_id","en","toString","findRoomsForObject","withParentInfo","rooms","per","origin","ownEnums","findEnumsForObjectAsIds","enumName","funcs","findFunctionsForObject","pef","formatValue","state","texts","dateFormat","isFloatComma","states","getStates","isCommon","valText","v","val","match","Date","parseInt","round","s","valFull","unit","t","value","ack","ts","formatDate","lc","from","user","quality","quality2text","q","nbr","src","_id_","aIcon","cIcon","instance","prepareSparkData","values","time","DEFAULT_FILTER","ITEM_IMAGES","channel","device","adapter","meta","chart","config","group","host","schedule","script","folder","StyledBadge","badge","border","paper","Badge","SCREEN_WIDTHS","xs","idWidth","fields","widths","sm","md","buttons","lg","changedFrom","qualityCode","timestamp","lastChange","xl","objectsAlreadyLoaded","ObjectBrowser","console","log","findItem","pausedSubscribes","statesUpdateTimer","setTimeout","forceUpdate","clearTimeout","oldObj","newState","Array","isArray","event","filterFunc","columnsForAdmin","parse","parseObjectForAdmins","setState","objectsUpdateTimer","lastAppliedFilter","result","mobile","objId","e","_enObj","enObj","socket","setObject","objs","hasOwnProperty","_createAllEnums","getState","def","window","alert","evt","f","target","files","r","FileReader","onload","contents","json","len","loadObjects","readAsText","selected","selectedNonObject","acl","check","valueNum","arrayTooltipText","funcRenderStateObject","rights","classes","ownerGroup","ownerUser","owner","map","extendObject","error","lastSelectedItems","localStorage","getItem","dialogName","filter","expanded","defaultFilters","assign","sessionStorage","tableRef","filterRefs","selectedFound","subscribes","visibleCols","columns","pos","possibleCols","customDialog","router","location","getLocation","dialog","pauseSubscribe","columnsWidths","foldersFirst","statesView","objectStatesView","loaded","filterKey","depth","expandAllVisible","toast","scrollBarWidth","editObjectDialog","viewFileDialog","roleDialog","modalEmptyId","columnsSelectorShow","columnsAuto","columnsDialogTransparent","columnsEditCustomDialog","customColumnDialogValueChanged","showExportDialog","linesEnabled","edit","editObject","deleteObject","customConfig","copyState","editState","close","filter_id","filter_name","filter_type","filter_role","filter_room","filter_func","filter_custom","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","calculateColumnsVisibility","update","Promise","resolve","updating","then","objectsWorker","getObjects","systemConfig","defaultNewAcl","object","defaultHistory","getAdditionalColumns","node","expandAllSelected","onAfterSelect","showError","cb","changed","path","setItem","isDouble","getObjectName","language","onSelect","loadAllObjects","registerHandler","onObjectChange","subscribeObject","unregisterHandler","unsubscribeObject","pattern","unsubscribeState","onStateChange","toggleItem","multiSelect","removeItem","isLast","cols","unshift","underline","clsx","_renderDefinedList","column","getAdapters","instances","recordStates","unsubscribe","_root","_partyId","shift","adminColumns","objTypes","warn","subscribeState","isPause","filterTimer","current","tagName","onFilterChanged","childNodes","someNotEmpty","attr","onFilter","firstChild","hasIcons","newFilter","getFilterSelect","onExpandAll","expandDepth","collapseDepth","idDot","idLen","isAll","_getSelectedIdsForExport","getEnumsForId","_exportObjects","allowObjectCreation","refreshComponent","showExpertButton","disableColumnSelector","onCollapseAll","onExpandVisible","onCollapseVisible","onStatesViewVisible","objectAddBoolean","toolTipObjectCreating","modalNewObj","objectImportExport","input","addEventListener","handleJsonUpload","objectBrowserEditObject","objectEditBoolean","doNavigate","text","stopPropagation","preventDefault","onObjectDelete","objectEditOfAccessControl","modalEditOfAccess","modalEditOfAccessObjData","cellButtonsButtonIcon","aclTooltip","renderTooltipAccessControl","aclSystemConfig","isNaN","Number","dontDelete","objectCustomDialog","sparkline","now","setHours","getHours","setMinutes","setSeconds","setMilliseconds","nowMs","getTime","getHistory","start","end","step","addID","aggregate","sparks","getElementsByClassName","dataset","subscribe","fill","copyText","onCopy","tooltip","popper","readHistory","enumIds","newArray","enumId","promises","all","_syncEnum","toCheck","itemEnums","enumDialogEnums","enumsOriginal","syncEnum","labelId","objectBrowserEditRole","ObjectBrowserEditRole","isSave","customColumnDialog","parseFloat","getObject","setCustomValue","it","Error","getCustomValue","initValue","keyCode","onColumnsEditCustomDialogClose","checked","pathText","p","notEditable","align","isExpanded","iconFolder","itemType","toggleExpanded","iconItem","typeImg","checkbox","valueEditable","objectBrowserViewFile","enumEditable","checkVisibleObjectType","newValueTitle","readWriteAlias","alias","read","scrollToItem","checkColor","invertBackground","icons","statusStates","colorSet","errorId","themeType","onlineId","offlineId","dragEnabled","columnsVisibility","adapterColumns","renderCustomValue","updateOpened","renderColumnValue","renderColumnButtons","items","leaf","renderLeaf","DragWrapper","renderItem","WIDTHS","widthSum","nameHeader","newWidth","accumulator","filterClearInValue","isFilterEmpty","clearFilter","getFilterInput","getFilterSelectType","getFilterSelectRole","getFilterSelectRoom","getFilterSelectFunction","getFilterSelectCustoms","offsetWidth","clientWidth","getElementById","scrollIntoView","behavior","block","inline","ObjectCustomDialog","changedIds","themeName","valAck","expire","ObjectBrowserEditObject","ObjectBrowserViewFile","objectBrowserValue","ObjectBrowserValue","res","onUpdate","unsubscribeTimer","jsonFilter","checkUnsubscribes","getToolbar","renderHeader","renderToast","renderColumnsEditCustomDialog","renderColumnsSelectorDialog","renderCustomDialog","renderEditValueDialog","renderEditObjectDialog","renderViewObjectFileDialog","renderEditRoleDialog","renderEnumDialog","renderErrorDialog","renderExportDialog","modalNewObject","modalEditOfAccessControl","Component","defaultProps","propTypes","PropTypes","string","oneOfType","array","bool","isRequired","number","dragSettings","useDrag","_export"],"mappings":"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","sourcesContent":["/**\n * Copyright 2020-2022, bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport copy from './copy-to-clipboard';\nimport withStyles from '@mui/styles/withStyles';\nimport { useTheme } from '@mui/material/styles';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport SVG from 'react-inlinesvg';\n\nimport IconButton from '@mui/material/IconButton';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport MenuItem from '@mui/material/MenuItem';\nimport Select from '@mui/material/Select';\nimport FormControl from '@mui/material/FormControl';\nimport Input from '@mui/material/Input';\nimport Grid from '@mui/material/Grid';\nimport Badge from '@mui/material/Badge';\nimport Tooltip from '@mui/material/Tooltip';\nimport Snackbar from '@mui/material/Snackbar';\nimport Checkbox from '@mui/material/Checkbox';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemSecondaryAction from '@mui/material/ListItemSecondaryAction';\nimport ListItemText from '@mui/material/ListItemText';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport Dialog from '@mui/material/Dialog';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogActions from '@mui/material/DialogActions';\nimport Button from '@mui/material/Button';\nimport Fab from '@mui/material/Fab';\nimport TextField from '@mui/material/TextField';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Switch from '@mui/material/Switch';\nimport Slider from '@mui/material/Slider';\nimport Typography from '@mui/material/Typography';\n\n// Icons\nimport IconEdit from '@mui/icons-material/Edit';\nimport IconDelete from '@mui/icons-material/Delete';\nimport IconConfig from '@mui/icons-material/Settings';\nimport IconSystem from '@mui/icons-material/SettingsApplications';\nimport IconPhoto from '@mui/icons-material/Photo';\nimport IconGroup from '@mui/icons-material/SupervisedUserCircle';\nimport IconSchedule from '@mui/icons-material/CalendarToday';\nimport IconUser from '@mui/icons-material/PersonOutlined';\nimport IconHost from '@mui/icons-material/Router';\nimport IconConnection from '@mui/icons-material/Wifi';\nimport IconInfo from '@mui/icons-material/Info';\nimport IconMeta from '@mui/icons-material/Description';\nimport IconScript from '@mui/icons-material/Code';\nimport IconChart from '@mui/icons-material/ShowChart';\nimport IconEnum from '@mui/icons-material/ListAlt';\nimport IconColumns from '@mui/icons-material/ViewColumn';\nimport IconClose from '@mui/icons-material/Close';\nimport IconCheck from '@mui/icons-material/Check';\nimport BuildIcon from '@mui/icons-material/Build';\nimport PublishIcon from '@mui/icons-material/Publish';\nimport AddIcon from '@mui/icons-material/Add';\nimport RefreshIcon from '@mui/icons-material/Refresh';\nimport LooksOneIcon from '@mui/icons-material/LooksOne';\nimport PressButtonIcon from '@mui/icons-material/RoomService';\nimport IconError from '@mui/icons-material/Error';\nimport IconDisconnected from '@mui/icons-material/WifiOff';\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 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 Utils from './Utils';\nimport TabContainer from './TabContainer';\nimport TabContent from './TabContent';\nimport TabHeader from './TabHeader';\n\nfunction useWidth() {\n const theme = useTheme();\n const keys = [...theme.breakpoints.keys].reverse();\n return (\n keys.reduce((output, key) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const matches = useMediaQuery(theme.breakpoints.up(key));\n return !output && matches ? key : output;\n }, null) || 'xs'\n );\n }\n\n// FIXME checkout https://mui.com/components/use-media-query/#migrating-from-withwidth\nconst withWidth = () => (WrappedComponent) => (props) => {\n const width = useWidth();\n return <WrappedComponent {...props} width={width} />\n};\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 },\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)}px)`,\n height: `calc(100% - 38px)`,\n overflow: 'auto'\n },\n tableRow: {\n paddingLeft: theme.spacing(1),\n height: ROW_HEIGHT,\n lineHeight: ROW_HEIGHT + 'px',\n verticalAlign: 'top',\n userSelect: 'none',\n width: '100%',\n '&:hover': {\n background: `${theme.palette.type === 'dark' ? theme.palette.primary.dark : theme.palette.primary.light} !important`,\n color: Utils.invertColor(theme.palette.primary.main, true),\n },\n whiteSpace: 'nowrap',\n flexWrap: 'nowrap',\n },\n tableRowLines: {\n borderBottom: `1px solid ${theme.palette.type === 'dark' ? '#8888882e' : '#8888882e'}`,\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 cellCopyButton: {\n // color: 'white',\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 cellIdAlias: {\n fontStyle: 'italic',\n fontSize: 12,\n opacity: 0.7,\n '&:hover': {\n color: theme.palette.type === '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 },\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.type === '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 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 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 + theme.spacing(2),\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.type === '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.type === '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.type === '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});\n\nfunction generateFile(filename, obj) {\n let 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}\n\nfunction applyFilter(item, filters, lang, objects, context, counter, customFilter, selectedTypes) {\n let filteredOut = false;\n if (!context) {\n context = {};\n if (filters.id) {\n context.id = filters.id.toLowerCase();\n }\n if (filters.name) {\n context.name = filters.name.toLowerCase();\n }\n if (filters.type) {\n context.type = filters.type.toLowerCase();\n }\n if (filters.custom) {\n context.custom = filters.custom.toLowerCase();\n }\n if (filters.role) {\n context.role = filters.role.toLowerCase();\n }\n if (filters.room) {\n context.room = (objects[filters.room] && objects[filters.room].common && objects[filters.room].common.members) || [];\n }\n if (filters.func) {\n context.func = (objects[filters.func] && objects[filters.func].common && objects[filters.func].common.members) || [];\n }\n }\n\n const data = item.data;\n\n if (data && data.id) {\n const common = data.obj && data.obj.common;\n\n if (customFilter) {\n if (customFilter.type && customFilter.type !== data.obj.type) {\n filteredOut = true;\n } else\n if (customFilter.common && customFilter.common.custom) {\n if (!common || !common.custom || (customFilter.common.custom !== true && !common.custom[customFilter.common.custom])) {\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 (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.indexOf(context.id) === -1;\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 filteredOut = !common.custom || !common.custom[context.custom];\n } else {\n filteredOut = true;\n }\n }\n }\n data.visible = !filteredOut;\n data.hasVisibleChildren = false;\n if (item.children) {\n item.children.forEach(_item => {\n const visible = applyFilter(_item, filters, lang, objects, context, counter, customFilter, selectedTypes);\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 buildTree(objects, options) {\n options = options || {};\n const imagePrefix = options.imagePrefix || '.';\n\n const ids = Object.keys(objects);\n\n ids.sort((a, b) => {\n if (a === b) return 0;\n a = a.replace(/\\./g, '!!!');\n b = b.replace(/\\./g, '!!!');\n if (a > b) return 1;\n return -1;\n });\n\n // find empty nodes and create names for it\n let currentPathArr = [];\n let currentPath = '';\n let currentPathLen = 0;\n let root = {\n data: {\n name: '',\n id: ''\n },\n children: []\n };\n\n let info = {\n funcEnums: [],\n roomEnums: [],\n roles: [],\n ids: [],\n types: [],\n objects,\n customs: [],\n enums: [],\n hasSomeCustoms: false,\n };\n\n let croot = root;\n\n for (let i = 0; i < ids.length; i++) {\n const id = ids[i];\n if (!id) {\n continue;\n }\n const obj = objects[id];\n const parts = id.split('.');\n\n if (obj.type && !info.types.includes(obj.type)) {\n info.types.push(obj.type);\n }\n\n if (obj) {\n const common = obj.common;\n const role = common && common.role;\n if (role && !info.roles.includes(role)) {\n info.roles.push(role);\n } else if (id.startsWith('enum.rooms.')) {\n info.roomEnums.push(id);\n info.enums.push(id);\n } else if (id.startsWith('enum.functions.')) {\n info.funcEnums.push(id);\n info.enums.push(id);\n } else if (obj.type === 'enum') {\n info.enums.push(id);\n } else if (obj.type === 'instance' && common && (common.supportCustoms || common.adminUI?.custom)) {\n info.hasSomeCustoms = true;\n info.customs.push(id.substring('system.adapter.'.length));\n }\n }\n\n info.ids.push(id);\n\n let repeat;\n\n // if next level\n do {\n repeat = false;\n\n // If current level is still OK and we can add ID to children\n if (!currentPath || id.startsWith(currentPath + '.')) {\n // if more than one level added\n if (parts.length - currentPathLen > 1) {\n let curPath = currentPath;\n // generate missing levels\n for (let k = currentPathLen; k < parts.length - 1; k++) {\n curPath += (curPath ? '.' : '') + parts[k];\n // level does not exist\n if (!binarySearch(info.ids, curPath)) {\n const _croot = {\n data: {\n name: parts[k],\n parent: croot,\n id: curPath,\n obj: objects[curPath],\n level: k,\n icon: getSystemIcon(objects, curPath, k, imagePrefix),\n generated: true,\n }\n };\n\n croot.children = croot.children || [];\n croot.children.push(_croot);\n croot = _croot;\n info.ids.push(curPath); // IDs will be added by alphabet\n } else {\n croot = croot.children.find(item => item.data.name === parts[k]);\n }\n }\n }\n\n const _croot = {\n data: {\n name: parts[parts.length - 1],\n title: getName(obj && obj.common && obj.common.name, options.lang),\n obj,\n parent: croot,\n icon: getSelectIdIcon(objects, id, imagePrefix) || getSystemIcon(objects, id, 0, imagePrefix),\n id,\n hasCustoms: obj.common?.custom && Object.keys(obj.common.custom).length,\n level: parts.length - 1,\n generated: false,\n button: obj.type === 'state' && obj.common?.role && typeof obj.common.role === 'string' && obj.common.role.startsWith('button') && obj.common?.write !== false,\n }\n };\n\n croot.children = croot.children || [];\n croot.children.push(_croot);\n croot = _croot;\n\n currentPathLen = parts.length;\n currentPathArr = parts;\n currentPath = id;\n } else {\n let u = 0;\n\n while (currentPathArr[u] === parts[u]) {\n u++;\n }\n\n if (u > 0) {\n let move = currentPathArr.length;\n currentPathArr = currentPathArr.splice(0, u);\n currentPathLen = u;\n currentPath = currentPathArr.join('.');\n while (move > u) {\n croot = croot.data.parent;\n move--;\n }\n } else {\n croot = root;\n currentPathArr = [];\n currentPath = '';\n currentPathLen = 0;\n }\n repeat = true;\n }\n } while (repeat);\n }\n\n info.roomEnums.sort((a, b) => {\n const aName = getName(objects[a]?.common?.name || a.split('.').pop());\n const bName = getName(objects[b]?.common?.name || b.split('.').pop());\n if (aName > bName) {\n return 1;\n } else if (aName < bName) {\n return -1;\n } else {\n return 0;\n }\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 } else if (aName < bName) {\n return -1;\n } else {\n return 0;\n }\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 } else {\n let found;\n for (let i = 0; i < root.children.length; i++) {\n const _id = root.children[i].data.id;\n if (_id === _path) {\n found = root.children[i];\n break;\n } else\n if (_id > _path) {\n break;\n }\n }\n if (found) {\n return findNode(found, id, _parts, _path + '.' + _parts[_level + 1], _level + 1);\n } else {\n return null;\n }\n }\n}\n\nfunction getName(name, lang) {\n if (name && typeof name === 'object') {\n return (name[lang] || name.en || '').toString();\n } else {\n return (name || '').toString();\n }\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: 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: 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/*function 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\nfunction formatValue(id, state, obj, texts, dateFormat, isFloatComma) {\n const states = Utils.getStates(obj);\n const isCommon = obj.common;\n\n const valText = {};\n let v = (isCommon && isCommon.type === 'file') ? '[file]' : (!state || state.val === null ? '(null)' : (state.val === undefined ? '[undef]' : state.val));\n const type = typeof v;\n\n if (isCommon && isCommon.role && typeof isCommon.role === 'string' && isCommon.role.match(/^value\\.time|^date/)) {\n if (v && typeof v === 'string') {\n if (v.length === 13) { // (length of \"1647597254924\") warning, this solution only works till Nov 20 2286 18:46:39CET\n v = new Date(parseInt(v, 10)).toString();\n } else if (v.length === 10) { // YYYY.MM.DD\n const parts = v.split(/[-.]/);\n if (parts.length === 3) {\n if (parts[0].length === 4) { // YYYY.MM.DD\n v = new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) + 1, parseInt(parts[2], 10));\n } else if (parts[0].length === 4) { // DD.MM.YYYY\n v = new Date(parseInt(parts[2], 10), parseInt(parts[1], 10) + 1, parseInt(parts[0], 10));\n }\n } else {\n v = new Date(v).toString(); // Let the browser convert it somehow\n }\n } else if (v.length === 8) { // YY.MM.DD\n const parts = v.split(/[-.]/);\n if (parts.length === 3) {\n v = new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) + 1, parseInt(parts[2], 10));\n } else {\n v = new Date(v).toString(); // Let the browser convert it somehow\n }\n } else {\n v = new Date(v).toString(); // Let the browser convert it somehow\n }\n } else {\n if (v === null || v === 'null') {\n v = 'null';\n } else if (v === undefined) {\n v = 'undefined';\n } else {\n v = v ? new Date(v).toString() : v;\n }\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 if (states && states[v] !== undefined) {\n valText.s = v;\n v = states[valText.s];\n }\n\n let valFull;\n if (isCommon && isCommon.unit) {\n valText.u = isCommon.unit;\n }\n valFull = [{ t: texts.value, v }];\n\n if (state) {\n if (state.ack !== undefined) {\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 || '');\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 || '');\n if (user.startsWith('system.user.')) {\n user = user.substring(12);\n }\n valFull.push({ t: texts.user, v: user });\n }\n valFull.push({ t: texts.quality, v: Utils.quality2text(state.q || 0).join(', '), nbr: true });\n }\n\n valText.v = v;\n\n return {\n valText,\n valFull,\n style: { color: state?.ack ? (state.q ? '#ffa500' : '') : '#ff2222c9' }\n };\n}\n\nfunction getSelectIdIcon(objects, id, imagePrefix) {\n imagePrefix = imagePrefix || '.';//http://localhost:8081';\n let src = '';\n const _id_ = 'system.adapter.' + id;\n const aIcon = id && objects[_id_] && objects[_id_].common && objects[_id_].common.icon;\n if (aIcon) {\n // if not BASE64\n if (!aIcon.startsWith('data:image/')) {\n if (aIcon.includes('.')) {\n src = `${imagePrefix}/adapter/${objects[_id_].common.name}/${aIcon}`;\n } else if (aIcon && aIcon.length < 3) {\n return aIcon; // utf-8\n } else {\n return null; //'<i class=\"material-icons iob-list-icon\">' + objects[_id_].common.icon + '</i>';\n }\n } else {\n if (aIcon.startsWith('data:image/svg')) {\n src = <SVG src={aIcon} width={28} height={28} />;\n } else {\n src = aIcon;\n }\n }\n } else {\n const common = objects[id] && objects[id].common;\n\n if (common) {\n const cIcon = common.icon;\n if (cIcon) {\n if (!cIcon.startsWith('data:image/')) {\n if (cIcon.includes('.')) {\n let instance;\n if (objects[id].type === 'instance' || objects[id].type === 'adapter') {\n src = `${imagePrefix}/adapter/${common.name}/${cIcon}`;\n } else if (id && id.startsWith('system.adapter.')) {\n instance = id.split('.', 3);\n if (cIcon[0] === '/') {\n instance[2] += cIcon;\n } else {\n instance[2] += '/' + cIcon;\n }\n src = `${imagePrefix}/adapter/${instance[2]}`;\n } else {\n instance = id.split('.', 2);\n if (cIcon[0] === '/') {\n instance[0] += cIcon;\n } else {\n instance[0] += '/' + cIcon;\n }\n src = `${imagePrefix}/adapter/${instance[0]}`;\n }\n } else if (aIcon && aIcon.length < 3) {\n return aIcon; // utf-8\n } else {\n return null;\n }\n } else {\n // base 64 image\n if (cIcon.startsWith('data:image/svg')) {\n src = <SVG src={cIcon} width={28} height={28} />;\n } else {\n src = cIcon;\n }\n }\n }\n }\n }\n\n return src || null;\n}\n\nfunction prepareSparkData(values, from) {\n // set every hour one point\n let time = from;\n let i = 1;\n const v = [];\n\n while (i < values.length && time < from + 25 * 3600000) {\n // find the interval\n while (values[i - 1].ts < time && time <= values[i].ts && i < values.length) {\n i++;\n }\n if (i === 1 && values[i - 1].ts >= time) {\n // assume the value was always null\n v.push(0);\n } else\n if (i < values.length) {\n if (typeof values[i].val === 'boolean' || typeof values[i - 1].val === 'boolean') {\n v.push(values[i].val ? 1 : 0);\n } else {\n // remove nulls\n values[i - 1].val = values[i - 1].val || 0;\n values[i].val = values[i].val || 0;\n // interpolate\n let val = values[i - 1].val + (values[i].val - values[i - 1].val) * (time - values[i - 1].ts) / (values[i].ts - values[i - 1].ts);\n\n v.push(val);\n }\n }\n\n time += 3600000;\n }\n\n return v;\n}\n\n/**\n * @type {import('./types').ObjectBrowserTableFilter}\n */\nconst DEFAULT_FILTER = {\n id: '',\n name: '',\n room: '',\n func: '',\n role: '',\n type: '',\n custom: '',\n expertMode: false\n};\n\nconst ITEM_IMAGES = {\n state: <IconState className=\"itemIcon\" />,\n channel: <IconChannel className=\"itemIcon\" />,\n device: <IconDevice className=\"itemIcon\" />,\n adapter: <IconAdapter className=\"itemIcon\" />,\n meta: <IconMeta className=\"itemIcon\" />,\n instance: <IconInstance className=\"itemIcon\" style={{ color: '#7da7ff' }} />,\n enum: <IconEnum className=\"itemIcon\" />,\n chart: <IconChart className=\"itemIcon\" />,\n config: <IconConfig className=\"itemIcon\" />,\n group: <IconGroup className=\"itemIcon\" />,\n user: <IconUser className=\"itemIcon\" />,\n host: <IconHost className=\"itemIcon\" />,\n schedule: <IconSchedule className=\"itemIcon\" />,\n script: <IconScript className=\"itemIcon\" />,\n folder: <IconClosed className=\"itemIcon itemIconFolder\" />,\n};\n\nconst StyledBadge = withStyles(theme => ({\n badge: {\n right: 3,\n top: 3,\n border: `2px solid ${theme.palette.background.paper}`,\n padding: '0 4px',\n },\n}))(Badge);\n\nconst SCREEN_WIDTHS = {\n // extra-small: 0px\n xs: { idWidth: '100%', fields: [], widths: {} },\n // small: 600px\n sm: { idWidth: 300, fields: ['room', 'val'], widths: { room: 100, val: 200 } },\n // medium: 960px\n md: { idWidth: 300, fields: ['room', 'func', 'val', 'buttons'], widths: { name: 200, room: 150, func: 150, val: 120, buttons: 120 } },\n // large: 1280px\n lg: {\n idWidth: 300, fields: ['name', 'type', 'role', 'room', 'func', 'val', 'buttons', 'changedFrom', 'qualityCode', 'timestamp', 'lastChange'],\n widths: {\n name: 300,\n type: 80,\n role: 120,\n room: 180,\n func: 180,\n val: 140,\n buttons: 120,\n changedFrom: 120,\n qualityCode: 100,\n timestamp: 165,\n lastChange: 165\n }\n },\n ///////////////\n // extra-large: 1920px\n xl: {\n idWidth: 650, fields: ['name', 'type', 'role', 'room', 'func', 'val', 'buttons', 'changedFrom', 'qualityCode', 'timestamp', 'lastChange'],\n widths: {\n name: 400,\n type: 80,\n role: 120,\n room: 180,\n func: 180,\n val: 140,\n buttons: 120,\n changedFrom: 120,\n qualityCode: 100,\n timestamp: 170,\n lastChange: 170\n }\n },\n};\n\nlet objectsAlreadyLoaded = false;\n\n/**\n * @extends {React.Component<import('./types').ObjectBrowserProps>}\n */\nclass ObjectBrowser extends Component {\n /**\n * @param {import('./types').ObjectBrowserProps} props\n */\n constructor(props) {\n super(props);\n\n this.lastSelectedItems = window.localStorage.getItem(`${props.dialogName || 'App'}.objectSelected`) || '[]';\n try {\n this.lastSelectedItems = JSON.parse(this.lastSelectedItems);\n if (typeof this.lastSelectedItems !== 'object') {\n this.lastSelectedItems = [this.lastSelectedItems];\n }\n this.lastSelectedItems = this.lastSelectedItems.filter(id => id);\n } catch (e) {\n\n }\n\n let expanded = window.localStorage.getItem(`${props.dialogName || 'App'}.objectExpanded`) || '[]';\n try {\n expanded = JSON.parse(expanded);\n } catch (e) {\n expanded = [];\n }\n\n let filter =\n props.defaultFilters ||\n window.localStorage.getItem(`${props.dialogName || 'App'}.objectFilter`) ||\n Object.assign({}, DEFAULT_FILTER);\n\n if (typeof filter === 'string') {\n try {\n filter = JSON.parse(filter);\n } catch (e) {\n filter = Object.assign({}, DEFAULT_FILTER);\n }\n }\n\n filter.expertMode = props.expertMode !== undefined ? props.expertMode : (window.sessionStorage.getItem('App.expertMode') === 'true');\n this.tableRef = createRef();\n this.filterRefs = {};\n\n Object.keys(DEFAULT_FILTER).forEach(name =>\n this.filterRefs[name] = createRef());\n\n this.lastAppliedFilter = null;\n this.pausedSubscribes = false;\n\n this.selectedFound = false;\n this.root = null;\n this.states = {};\n this.subscribes = [];\n this.statesUpdateTimer = null;\n this.objectsUpdateTimer = null;\n\n this.visibleCols = props.columns || SCREEN_WIDTHS[props.width].fields;\n // remove type column if only one type must be selected\n if (props.types && props.types.length === 1) {\n const pos = this.visibleCols.indexOf('type');\n pos !== -1 && this.visibleCols.splice(pos, 1);\n }\n\n this.possibleCols = SCREEN_WIDTHS.xl.fields;\n\n let customDialog = null;\n\n if (props.router) {\n const location = props.router.getLocation();\n if (location.id && location.dialog === 'customs') {\n customDialog = [location.id];\n this.pauseSubscribe(true);\n }\n }\n\n let selected = (props.selected || '');\n if (typeof selected !== 'object') {\n selected = [selected];\n }\n selected = selected.map(id => id.replace(/[\"']/g, '')).filter(id => id);\n\n let columns = window.localStorage.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 = 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.getItem((props.dialogName || 'App') + '.foldersFirst');\n if (foldersFirst === 'false') {\n foldersFirst = false;\n } else if (foldersFirst === 'true') {\n foldersFirst = true;\n } else {\n foldersFirst = props.foldersFirst === undefined ? true : props.foldersFirst;\n }\n\n const statesView = this.props.objectStatesView ? JSON.parse(window.localStorage.getItem((props.dialogName || 'App') + '.objectStatesView')) || false : false;\n this.state = {\n loaded: false,\n foldersFirst,\n selected,\n selectedNonObject: window.localStorage.getItem(`${props.dialogName || 'App'}.selectedNonObject`) || '',\n filter,\n filterKey: 0,\n depth: 0,\n expandAllVisible: false,\n expanded,\n toast: '',\n lang: props.lang,\n scrollBarWidth: 16,\n customDialog,\n editObjectDialog: '',\n viewFileDialog: '',\n enumDialog: null,\n roleDialog: null,\n modalEmptyId: null,\n statesView,\n columns,\n columnsForAdmin: null,\n columnsSelectorShow: false,\n columnsAuto: window.localStorage.getItem(`${props.dialogName || 'App'}.columnsAuto`) !== 'false',\n columnsWidths,\n columnsDialogTransparent: 100,\n columnsEditCustomDialog: null,\n customColumnDialogValueChanged: false,\n showExportDialog: false,\n linesEnabled: window.localStorage.getItem(`${props.dialogName || 'App'}.lines`) === 'true',\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 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 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 this.calculateColumnsVisibility();\n }\n\n loadAllObjects(update) {\n const props = this.props;\n\n return new Promise(resolve => this.setState({updating: true}, () => resolve()))\n .then(() => this.props.objectsWorker ?\n this.props.objectsWorker.getObjects(update) :\n props.socket.getObjects(update, true))\n .then(objects => {\n this.systemConfig = objects['system.config'] || {};\n this.systemConfig.common = this.systemConfig.common || {};\n this.systemConfig.common.defaultNewAcl = this.systemConfig.common.defaultNewAcl || {};\n this.systemConfig.common.defaultNewAcl.owner = this.systemConfig.common.defaultNewAcl.owner || 'system.user.admin';\n this.systemConfig.common.defaultNewAcl.ownerGroup = this.systemConfig.common.defaultNewAcl.ownerGroup || 'system.group.administrator';\n if (typeof this.systemConfig.common.defaultNewAcl.state !== 'number') {\n // TODO: may be convert here from string\n this.systemConfig.common.defaultNewAcl.state = 0x664;\n }\n if (typeof this.systemConfig.common.defaultNewAcl.object !== 'number') {\n // TODO: may be convert here from string\n this.systemConfig.common.defaultNewAcl.state = 0x664;\n }\n\n if (typeof props.filterFunc === 'function') {\n this.objects = {};\n const keys = Object.keys(objects);\n for (let k = 0; k < keys.length; k++) {\n try {\n if (props.filterFunc(objects[keys[k]])) {\n this.objects[keys[k]] = objects[keys[k]];\n }\n } catch (e) {\n console.log(`Error by filtering of \"${keys[k]}\": ${e}`);\n }\n }\n } else\n if (props.types) {\n this.objects = {};\n Object.keys(objects).forEach(id => {\n const type = objects[id] && objects[id].type;\n if (type && (\n type === 'channel' ||\n type === 'device' ||\n type === 'enum' ||\n type === 'folder' ||\n type === 'adapter' ||\n type === 'instance' ||\n props.types.includes(type))) {\n this.objects[id] = objects[id];\n }\n });\n } else {\n this.objects = objects;\n }\n\n // read default history\n this.defaultHistory = this.systemConfig.common.defaultHistory;\n if (this.defaultHistory) {\n props.socket.getState(`system.adapter.${this.defaultHistory}.alive`)\n .then(state => {\n if (!state || !state.val) {\n this.defaultHistory = '';\n }\n })\n .catch(e => window.alert('Cannot get state: ' + e));\n }\n\n return this.getAdditionalColumns();\n })\n .then(columnsForAdmin => {\n this.calculateColumnsVisibility(null, null, columnsForAdmin);\n\n const { info, root } = buildTree(this.objects, this.props);\n this.root = root;\n this.info = info;\n\n // Show first selected item\n let node = this.state.selected && this.state.selected.length && findNode(this.root, this.state.selected[0]);\n\n this.lastAppliedFilter = null;\n\n // If selected ID is not visible, reset filter\n if (node && !applyFilter(node, this.state.filter, this.state.lang, this.objects, null, null, props.customFilter, props.types)) {\n // reset filter\n this.setState({ filter: Object.assign({}, DEFAULT_FILTER), columnsForAdmin }, () => {\n this.setState({ loaded: true, updating: false }, () =>\n this.expandAllSelected(() =>\n this.onAfterSelect()));\n });\n } else {\n this.setState({ loaded: true, updating: false, columnsForAdmin }, () =>\n this.expandAllSelected(() =>\n this.onAfterSelect()));\n }\n })\n .catch(e => this.showError(e));\n }\n\n /**\n * @private\n * @param {ioBroker.EmptyCallback} cb\n */\n expandAllSelected(cb) {\n let expanded = [...this.state.expanded];\n let changed = false;\n this.state.selected.forEach(id => {\n const parts = id.split('.');\n let 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.setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify(expanded));\n this.setState({ expanded }, cb)\n } else {\n cb && cb();\n }\n }\n\n /**\n * @private\n * @param {boolean} [isDouble]\n */\n onAfterSelect(isDouble) {\n this.lastSelectedItems = [...this.state.selected];\n if (this.state.selected && this.state.selected.length) {\n window.localStorage.setItem(`${this.props.dialogName || 'App'}.objectSelected`, JSON.stringify(this.lastSelectedItems));\n\n const name = this.lastSelectedItems.length === 1 ? Utils.getObjectName(this.objects, this.lastSelectedItems[0], null, { language: this.state.lang }) : '';\n this.props.onSelect && this.props.onSelect(this.lastSelectedItems, name, isDouble);\n } else {\n window.localStorage.setItem(`${this.props.dialogName || 'App'}.objectSelected`, '');\n if (this.state.selected.length) {\n this.setState({ selected: [] }, () => this.props.onSelect && this.props.onSelect([], ''));\n } else {\n this.props.onSelect && this.props.onSelect([], '');\n }\n }\n }\n\n /**\n * @private\n * @param {import('./types').ObjectBrowserProps} props\n * @param {any} state\n */\n static getDerivedStateFromProps(props, state) {\n const newState = {};\n let changed = false;\n if (props.expertMode !== undefined && props.expertMode !== state.filter.expertMode) {\n changed = true;\n newState.filter = Object.assign({}, state.filter);\n newState.filter.expertMode = props.expertMode;\n }\n return changed ? newState : null;\n }\n\n /**\n * Called when component is mounted.\n */\n componentDidMount() {\n this.loadAllObjects(!objectsAlreadyLoaded)\n .then(() => {\n if (this.props.objectsWorker) {\n this.props.objectsWorker.registerHandler(this.onObjectChange);\n } else {\n this.props.socket.subscribeObject('*', this.onObjectChange);\n }\n\n objectsAlreadyLoaded = true;\n });\n }\n\n /**\n * Called when component is unmounted.\n */\n componentWillUnmount() {\n if (this.props.objectsWorker) {\n this.props.objectsWorker.unregisterHandler(this.onObjectChange, true);\n } else {\n this.props.socket.unsubscribeObject('*', this.onObjectChange);\n }\n\n // remove all subscribes\n this.subscribes.forEach(pattern => {\n console.log('- unsubscribe ' + pattern);\n this.props.socket.unsubscribeState(pattern, this.onStateChange);\n });\n\n this.subscribes = [];\n this.objects = {};\n }\n\n /**\n * Called when component is mounted.\n */\n refreshComponent() {\n // remove all subscribes\n this.subscribes.forEach(pattern => {\n console.log('- unsubscribe ' + pattern);\n this.props.socket.unsubscribeState(pattern, this.onStateChange);\n });\n\n this.subscribes = [];\n\n this.loadAllObjects(true)\n .then(() => console.log('updated!'));\n }\n\n /**\n * Renders the error dialog.\n * @returns {JSX.Element | null}\n */\n renderErrorDialog() {\n return this.state.error ? <Dialog\n open={true}\n maxWidth=\"sm\"\n fullWidth={true}\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 >{this.props.t('ra_Ok')}</Button>\n </DialogActions>\n </Dialog> : null;\n }\n\n /**\n * Show the error dialog.\n * @param {any} error\n */\n showError(error) {\n this.setState({ error: typeof error === 'object' ? (error && typeof error.toString === 'function' ? error.toString() : JSON.stringify(error)) : error });\n }\n\n /**\n * Called when an item is selected/deselected.\n * @param {string} toggleItem\n * @param {boolean} [isDouble]\n */\n onSelect(toggleItem, isDouble) {\n if (!this.props.multiSelect) {\n if (this.objects[toggleItem] && (!this.props.types || this.props.types.includes(this.objects[toggleItem].type))) {\n window.localStorage.removeItem(`${this.props.dialogName || 'App'}.selectedNonObject`);\n if (this.state.selected[0] !== toggleItem) {\n this.setState({ selected: [toggleItem], selectedNonObject: '' }, () =>\n this.onAfterSelect(isDouble));\n } else if (isDouble && this.props.onSelect) {\n this.onAfterSelect(isDouble);\n }\n } else {\n window.localStorage.setItem(`${this.props.dialogName || 'App'}.selectedNonObject`, toggleItem);\n this.setState({ selected: [], selectedNonObject: toggleItem }, () =>\n this.onAfterSelect());\n }\n } else {\n if (this.objects[toggleItem] && (!this.props.types || this.props.types.includes(this.objects[toggleItem].type))) {\n window.localStorage.removeItem(`${this.props.dialogName || 'App'}.selectedNonObject`);\n\n const selected = [...this.state.selected];\n const pos = selected.indexOf(toggleItem);\n if (pos === -1) {\n selected.push(toggleItem);\n selected.sort();\n } else if (!isDouble) {\n selected.splice(pos, 1);\n }\n\n this.setState({ selected, selectedNonObject: '' }, () =>\n this.onAfterSelect(isDouble));\n }\n }\n }\n\n /**\n * @private\n * @param {boolean} isLast\n */\n _renderDefinedList(isLast) {\n const cols = [...this.possibleCols];\n cols.unshift('id');\n if (this.props.columns && !this.props.columns.includes('buttons')) {\n const pos = cols.indexOf('buttons');\n if (pos !== -1) {\n cols.splice(pos, 1);\n }\n }\n return cols\n .filter(id => (isLast && (id === 'val' || id === 'buttons')) || (!isLast && id !== 'val' && id !== 'buttons'))\n .map(id =>\n <ListItem button 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.setItem((this.props.dialogName || 'App') + '.columns', JSON.stringify(columns));\n this.calculateColumnsVisibility(null, columns);\n this.setState({ columns });\n }\n }} key={id}>\n {/* <ListItemIcon> */}\n <Checkbox\n edge=\"start\"\n disabled={id === 'id' || this.state.columnsAuto}\n checked={id === 'id' || (this.state.columnsAuto ? this.visibleCols.includes(id) : (this.state.columns && this.state.columns.includes(id)))}\n disableRipple\n />\n {/* </ListItemIcon> */}\n <ListItemText primary={this.texts['filter_' + id] || this.props.t('ra_' + id)} />\n <ListItemSecondaryAction>\n <FormControl variant=\"standard\" className={this.props.classes.columnsDialogInputWidth} style={{ marginTop: 0, marginBottom: 0 }} margin=\"dense\">\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.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 </ListItem>\n );\n }\n\n /**\n * Renders the columns selector.\n * @returns {JSX.Element | null}\n */\n renderColumnsSelectorDialog() {\n if (!this.state.columnsSelectorShow) {\n return null;\n } else {\n return <Dialog\n onClose={() => this.setState({ columnsSelectorShow: false })}\n open={true}\n classes={{ root: Utils.clsx(this.props.classes.dialogColumns, this.props.classes['transparent_' + this.state.columnsDialogTransparent]) }}\n >\n <DialogTitle className={this.props.classes.fontSizeTitle}>{this.props.t('ra_Configure visible columns')}</DialogTitle>\n <DialogContent className={this.props.classes.fontSizeTitle}>\n <FormControlLabel\n className={this.props.classes.switchColumnAuto}\n control={<Switch checked={this.state.columnsAuto} onChange={() => {\n window.localStorage.setItem((this.props.dialogName || 'App') + '.columnsAuto', this.state.columnsAuto ? 'false' : 'true');\n if (!this.state.columnsAuto) {\n this.calculateColumnsVisibility(true);\n this.setState({ columnsAuto: true });\n } else {\n if (!this.state.columns) {\n this.calculateColumnsVisibility(false, [...this.visibleCols]);\n this.setState({ columnsAuto: false, columns: [...this.visibleCols] });\n } else {\n this.calculateColumnsVisibility(false);\n this.setState({ columnsAuto: false });\n }\n }\n }} />}\n label={this.props.t('ra_Auto (no custom columns)')}\n />\n <FormControlLabel\n className={this.props.classes.switchColumnAuto}\n control={<Switch checked={this.state.foldersFirst} onChange={() => {\n window.localStorage.setItem((this.props.dialogName || 'App') + '.foldersFirst', this.state.foldersFirst ? 'false' : 'true');\n this.setState({ foldersFirst: !this.state.foldersFirst });\n }} />}\n label={this.props.t('ra_Folders always first')}\n />\n <FormControlLabel\n className={this.props.classes.switchColumnAuto}\n control={<Switch checked={this.state.linesEnabled} onChange={() => {\n window.localStorage.setItem((this.props.dialogName || 'App') + '.lines', this.state.linesEnabled ? 'false' : 'true');\n this.setState({ linesEnabled: !this.state.linesEnabled });\n }} />}\n label={this.props.t('ra_Show lines between rows')}\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 <List>\n {this._renderDefinedList(false)}\n\n {this.state.columnsForAdmin && Object.keys(this.state.columnsForAdmin).sort().map(adapter =>\n this.state.columnsForAdmin[adapter].map(column =>\n <ListItem button 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.setItem((this.props.dialogName || 'App') + '.columns', JSON.stringify(columns));\n this.setState({ columns });\n }\n }} key={adapter + '_' + column.name}>\n <ListItemIcon>\n <Checkbox\n disabled={this.state.columnsAuto}\n edge=\"start\"\n checked={!this.state.columnsAuto && this.state.columns && this.state.columns.includes('_' + adapter + '_' + column.path)}\n disableRipple\n />\n </ListItemIcon>\n <ListItemText primary={column.name + ' (' + adapter + ')'} />\n <ListItemSecondaryAction>\n <FormControl variant=\"standard\" className={this.props.classes.columnsDialogInputWidth} style={{ marginTop: 0, marginBottom: 0 }} margin=\"dense\">\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.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 </ListItem>\n )\n )}\n {this._renderDefinedList(true)}\n </List>\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n onClick={() => this.setState({ columnsSelectorShow: false })}\n color=\"primary\"\n startIcon={<IconClose />}\n >{this.texts['close']}</Button>\n </DialogActions>\n </Dialog>\n }\n }\n\n /**\n * @private\n */\n getAdditionalColumns() {\n return this.props.socket.getAdapters()\n .then(instances => {\n let columnsForAdmin = null;\n // find all additional columns\n instances.forEach(obj =>\n columnsForAdmin = this.parseObjectForAdmins(columnsForAdmin, obj));\n\n return columnsForAdmin;\n })\n .catch(e => {\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 } else if (_parts.length) {\n return this.findItem(id, _parts, item, _partyId);\n }\n } else {\n return null;\n }\n } else {\n return null;\n }\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 {\n if (this.statesUpdateTimer) {\n clearTimeout(this.statesUpdateTimer);\n this.statesUpdateTimer = null;\n }\n }\n };\n\n /**\n * @private\n * @param {{ [x: string]: any; }} columnsForAdmin\n * @param {any} obj\n */\n parseObjectForAdmins(columnsForAdmin, obj) {\n if (obj.common && obj.common.adminColumns && obj.common.name) {\n let columns = obj.common.adminColumns;\n if (typeof columns !== 'object') {\n columns = [columns];\n }\n columns = columns.map(item => {\n if (typeof item !== 'object') {\n return { path: item, name: item.split('.').pop() };\n }\n\n // string => array\n if (item.objTypes && typeof item.objTypes !== 'object') {\n item.objTypes = [item.objTypes];\n } else if (!item.objTypes) {\n item.objTypes = null;\n }\n\n if (!item.name && item.path) {\n return { path: item.path, name: item.path.split('.').pop(), width: item.width, edit: !!item.edit, type: item.type, objTypes: item.objTypes };\n }\n if (typeof item.name !== 'object' && item.path) {\n return { path: item.path, name: item.name, width: item.width, edit: !!item.edit, type: item.type, objTypes: item.objTypes };\n }\n if (!item.path) {\n console.warn(`Admin columns for ${obj._id} ignored, because path not found`);\n return null;\n } else {\n return { path: item.path, name: item.name[this.props.lang] || item.name.en, width: item.width, edit: !!item.edit, type: item.type, objTypes: item.objTypes };\n }\n }).filter(item => item);\n\n if (columns && columns.length) {\n columnsForAdmin = columnsForAdmin || {};\n columnsForAdmin[obj.common.name] = columns.sort((a, b) => a.path > b.path ? -1 : (a.path < b.path ? 1 : 0));\n }\n } else if (obj.common && obj.common.name && columnsForAdmin && columnsForAdmin[obj.common.name]) {\n delete columnsForAdmin[obj.common.name];\n }\n return columnsForAdmin;\n }\n\n /**\n * @param {string} id\n * @param {ioBroker.Object} obj\n * @param {import('./types').OldObject} oldObj\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 let 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 } else if (this.objects[event.id]) {\n delete this.objects[event.id];\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 let 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 } else if (this.objects[id]) {\n delete this.objects[id];\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 let 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.setItem('App.expertMode', value ? 'true' : 'false');\n }\n }\n\n filter = Object.assign({}, this.state.filter, filter);\n\n if (JSON.stringify(this.state.filter) !== JSON.stringify(filter)) {\n window.localStorage.setItem((this.props.dialogName || 'App') + '.objectFilter', JSON.stringify(filter));\n this.setState({ filter }, () =>\n this.props.onFilterChanged && this.props.onFilterChanged(filter));\n }\n }\n\n clearFilter() {\n let 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 filter = Object.assign({}, this.state.filter, filter);\n\n if (JSON.stringify(this.state.filter) !== JSON.stringify(filter)) {\n window.localStorage.setItem((this.props.dialogName || 'App') + '.objectFilter', JSON.stringify(filter));\n this.setState({ filter, filterKey: this.state.filterKey + 1 }, () =>\n this.props.onFilterChanged && this.props.onFilterChanged(filter));\n }\n }\n\n isFilterEmpty() {\n const someNotEmpty = Object.keys(this.state.filter).find(attr =>\n attr !== 'expertMode' && this.state.filter[attr]);\n return !someNotEmpty;\n }\n\n /**\n * @private\n * @param {string} name\n */\n getFilterInput(name) {\n return <FormControl\n className={Utils.clsx(this.props.classes.headerCellInput, this.props.classes.filterInput)}\n key={name + '_' + this.state.filterKey}\n //style={{ marginTop: 0, marginBottom: 0 }}\n margin=\"dense\"\n >\n <Input\n ref={this.filterRefs[name]}\n classes={{ underline: 'no-underline' }}\n id={name}\n placeholder={this.texts['filter_' + name]}\n defaultValue={this.state.filter[name]}\n onChange={e => {\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 style={{\n position: 'absolute',\n right: 0\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={e => {\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={true}\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 ? 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.setItem((this.props.dialogName || 'App') + '.objectFilter', JSON.stringify(newFilter));\n this.setState({ filter: newFilter, filterKey: this.state.filterKey + 1 }, () =>\n this.props.onFilterChanged && this.props.onFilterChanged(newFilter));\n }}\n >\n <IconClose />\n </IconButton>\n </div> : null}\n </div>;\n }\n\n /**\n * @private\n */\n getFilterSelectRole() {\n return this.getFilterSelect('role', this.info.roles);\n }\n\n /**\n * @private\n */\n getFilterSelectRoom() {\n const rooms = this.info.roomEnums.map(id => ({\n name: getName(this.objects[id]?.common?.name || id.split('.').pop()),\n value: id,\n icon: <Icon src={this.objects[id]?.common?.icon} className={this.props.classes.selectIcon}/>\n }));\n\n return this.getFilterSelect('room', rooms);\n }\n\n /**\n * @private\n */\n getFilterSelectFunction() {\n const func = this.info.funcEnums.map(id => ({\n name: getName((this.objects[id] && this.objects[id].common && this.objects[id].common.name) || id.split('.').pop()),\n value: id,\n icon: <Icon src={this.objects[id]?.common?.icon} className={this.props.classes.selectIcon}/>\n }));\n\n return this.getFilterSelect('func', func);\n }\n\n /**\n * @private\n */\n getFilterSelectType() {\n const types = this.info.types.map(type => ({\n name: type,\n value: type,\n icon: ITEM_IMAGES[type]\n }));\n\n return this.getFilterSelect('type', types);\n }\n\n /**\n * @private\n */\n getFilterSelectCustoms() {\n if (this.info.customs.length) {\n const customs = this.info.customs.map(id => ({\n name: id,\n value: id,\n icon: <Icon src={getSelectIdIcon(this.objects, id, this.imagePrefix)} className={this.props.classes.selectIcon}/>\n }));\n return this.getFilterSelect('custom', customs);\n } else {\n return null;\n }\n }\n\n /**\n * @private\n * @param {any} [root]\n * @param {any[]} [expanded]\n */\n onExpandAll(root, expanded) {\n root = root || this.root;\n expanded = expanded || [];\n\n root.children && root.children.forEach(item => {\n if (item.data.sumVisibility) {\n expanded.push(item.data.id);\n this.onExpandAll(item, expanded);\n }\n });\n\n if (root === this.root) {\n expanded.sort();\n window.localStorage.setItem((this.props.dialogName || 'App') + '.objectExpanded', JSON.stringify(expanded));\n\n this.setState({ expanded });\n }\n }\n\n /**\n * @private\n */\n onCollapseAll() {\n window.localStorage.setItem((this.props.dialogName || 'App') + '.objectExpanded', JSON.stringify([]));\n this.setState({ expanded: [], depth: 0 });\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 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.setItem((this.props.dialogName || 'App') + '.objectExpanded', JSON.stringify(expanded));\n this.setState({ depth, expanded });\n }\n }\n\n /**\n * @private\n */\n onStatesViewVisible() {\n const statesView = !this.state.statesView;\n window.localStorage.setItem((this.props.dialogName || 'App') + '.objectStatesView', JSON.stringify(statesView));\n this.setState({ statesView });\n }\n\n /**\n * @private\n */\n onCollapseVisible() {\n if (this.state.depth > 0) {\n const depth = this.state.depth - 1;\n const expanded = this.collapseDepth(depth, this.state.expanded);\n window.localStorage.setItem((this.props.dialogName || 'App') + '.objectExpanded', JSON.stringify(expanded));\n this.setState({ depth, expanded });\n }\n }\n\n /**\n * @private\n * @param {string} id\n */\n getEnumsForId = id => {\n let result = [];\n this.info.enums.forEach(_id => {\n if (this.objects[_id]?.common?.members?.includes(id)) {\n const en = {\n _id: this.objects[_id]._id,\n common: JSON.parse(JSON.stringify(this.objects[_id].common)),\n native: this.objects[_id].native,\n type: 'enum',\n };\n if (en.common) {\n delete en.common.members;\n delete en.common.custom;\n delete en.common.mobile;\n }\n result.push(en);\n }\n });\n\n return result.length ? result : undefined;\n };\n\n /**\n * @private\n * @param {array} enums\n * @param {string} objId\n */\n _createAllEnums = async (enums, objId) => {\n for (let e = 0; e < enums.length; e++) {\n let id = enums[e];\n let _enObj;\n if (typeof id === 'object') {\n _enObj = id;\n id = id._id;\n }\n let enObj = this.objects[id];\n if (!enObj) {\n enObj = _enObj || {\n _id: id,\n common: {\n name: id.split('.').pop(),\n members: [],\n },\n native: {}\n };\n\n enObj.common = enObj.common || {};\n enObj.common.members = [objId];\n\n await this.props.socket.setObject(id, enObj);\n } else if (!enObj.common?.members?.includes(objId)) {\n enObj.common = enObj.common || {};\n enObj.common.members = enObj.common.members || [];\n // add missing object\n enObj.common.members.push(objId);\n enObj.common.members.sort();\n await this.props.socket.setObject(id, enObj);\n }\n }\n }\n\n /**\n * @private\n * @param {any} callback\n */\n loadObjects = async objs => {\n if (objs) {\n for (let id in objs) {\n if (!objs.hasOwnProperty(id) || !objs[id]) {\n continue;\n }\n const obj = objs[id];\n let enums = null;\n if (obj && obj.common && obj.common.enums) {\n enums = obj.common.enums;\n delete obj.common.enums;\n } else {\n enums = null;\n }\n try {\n await this.props.socket.setObject(id, obj);\n enums && (await this._createAllEnums(enums, obj._id));\n if (obj.type === 'state') {\n try {\n const state = await this.props.socket.getState(obj._id);\n if (!state || state.val === null) {\n try {\n await this.props.socket.setState(obj._id, !obj.common || obj.common.def === undefined ? null : obj.common.def, true);\n } catch (e) {\n window.alert(`Cannot set state \"${obj._id}\": ${e}`);\n }\n }\n } catch (e) {\n window.alert(`Cannot read state \"${obj._id}\": ${e}`);\n }\n }\n } catch (error) {\n window.alert(error);\n }\n }\n }\n }\n\n _getSelectedIdsForExport() {\n if (this.state.selected.length || this.state.selectedNonObject) {\n const result = [];\n const keys = Object.keys(this.objects);\n keys.sort();\n const id = this.state.selected[0] || this.state.selectedNonObject;\n const idDot = id + '.';\n const idLen = idDot.length;\n for (let k = 0; k < keys.length; k++) {\n const key = keys[k];\n if (id === key || key.startsWith(idDot)) {\n result.push(key);\n }\n if (key.substring(0, idLen) > idDot) {\n break;\n }\n }\n\n return result;\n } else {\n return [];\n }\n }\n\n _exportObjects(isAll) {\n if (isAll) {\n generateFile('allObjects.json', this.objects);\n } else\n if (this.state.selected.length || this.state.selectedNonObject) {\n const result = {};\n const id = this.state.selected[0] || this.state.selectedNonObject;\n\n this._getSelectedIdsForExport().forEach(key => {\n result[key] = JSON.parse(JSON.stringify(this.objects[key]));\n // add enum information\n if (result[key].common) {\n const enums = this.getEnumsForId(key);\n if (enums) {\n result[key].common.enums = enums;\n }\n }\n });\n\n generateFile(id + '.json', result);\n } else {\n window.alert(this.props.t('ra_Save of objects-tree is not possible'));\n }\n }\n\n renderExportDialog() {\n if (this.state.showExportDialog === false) {\n return null;\n } else {\n return <Dialog open={true}>\n <DialogTitle>{this.props.t('Select type of export')}</DialogTitle>\n <DialogContent>\n <DialogContentText>\n {this.props.t('You can export all objects or just the selected branch.')}\n <br/>\n {this.props.t('Selected %s object(s)', this.state.showExportDialog)}\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button color=\"grey\" variant=\"outlined\" onClick={() => this.setState({showExportDialog: false}, () => this._exportObjects(true))}>{this.props.t('All objects')}</Button>\n <Button variant=\"contained\" autoFocus color=\"primary\" onClick={() => this.setState({showExportDialog: false}, () => this._exportObjects(false))}>{this.props.t('Only selected')}</Button>\n <Button color=\"grey\" variant=\"contained\" onClick={() => this.setState({showExportDialog: false})} startIcon={<IconClose/>}>{this.props.t('Cancel')}</Button>\n </DialogActions>\n </Dialog>;\n }\n }\n\n /**\n * @private\n * @param {object} evt\n */\n handleJsonUpload = evt => {\n let f = evt.target.files[0];\n if (f) {\n let r = new FileReader();\n r.onload = async e => {\n let contents = e.target.result;\n try {\n let json = JSON.parse(contents);\n let len = Object.keys(json).length;\n let id = json._id;\n if (id === undefined && len) {\n await this.loadObjects(json);\n window.alert(this.props.t('ra_%s object(s) processed', len));\n } else {\n // it is only one object in form\n // {\n // \"_id\": \"xxx\",\n // \"common\": \"yyy\",\n // \"native\": \"zzz\"\n // }\n if (!id) {\n return window.alert(this.props.t('ra_Invalid structure'));\n }\n try {\n let enums;\n if (json.common.enums) {\n enums = json.common.enums;\n delete json.common.enums;\n }\n await this.props.socket.setObject(json._id, json);\n if (json.type === 'state') {\n const state = await this.props.socket.getState(json._id);\n if (!state || state.val === null || state.val === undefined) {\n await this.props.socket.getState(json._id, json.common.def === undefined ? null : json.common.def, true);\n }\n }\n if (enums) {\n await this._createAllEnums(enums, json._id);\n }\n\n window.alert(this.props.t('ra_%s was imported', json._id));\n } catch (err) {\n window.alert(err);\n }\n }\n } catch (err) {\n window.alert(err);\n }\n };\n r.readAsText(f);\n } else {\n window.alert(this.props.t('ra_Failed to open JSON File'));\n }\n }\n\n toolTipObjectCreating = () => {\n const { t } = this.props;\n\n let value = [\n <div key={1}>{t('ra_Only following structures of objects are available:')}</div>,\n <div key={2}>{t('ra_Folder → State')}</div>,\n <div key={3}>{t('ra_Folder → Channel → State')}</div>,\n <div key={4}>{t('ra_Folder → Device → Channel → State')}</div>,\n <div key={5}>{t('ra_Device → Channel → State')}</div>,\n <div key={6}>{t('ra_Channel → State')}</div>,\n <div key={7} style={{height: 10}}/>,\n <div key={8}>{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}</div>,\n <div key={9}>{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}</div>,\n ];\n\n if (this.state.selected.length || this.state.selectedNonObject) {\n const id = this.state.selected[0] || this.state.selectedNonObject;\n if (id.split('.').length < 2 || (this.objects[id] && this.objects[id]?.type === 'state')) {\n } else {\n if (this.props.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 ];\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 ];\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 ];\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={7}>{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}</div>,\n <div key={8}>{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}</div>,\n ]\n }\n }\n }\n return value.length ? value : t('ra_Add new child object to selected parent');\n }\n\n /**\n * Renders the toolbar.\n * @returns {JSX.Element}\n */\n getToolbar() {\n let allowObjectCreation = false;\n if (this.state.selected.length || this.state.selectedNonObject) {\n const id = this.state.selected[0] || this.state.selectedNonObject;\n\n if (id.split('.').length < 2 || (this.objects[id] && this.objects[id].type === 'state')) {\n allowObjectCreation = false;\n } else {\n if (this.props.expertMode) {\n allowObjectCreation = true;\n } else if (id.startsWith('alias.0') || id.startsWith('0_userdata')) {\n allowObjectCreation = true;\n }\n }\n }\n\n return <div style={{\n display: 'flex',\n width: '100%',\n alignItems: 'center'\n }}>\n <div style={{\n display: 'flex',\n width: '100%',\n alignItems: 'center'\n }}>\n\n <Tooltip title={this.props.t('ra_Refresh tree')}>\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 &&\n <Tooltip title={this.props.t('ra_expertMode')}>\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 }\n {!this.props.disableColumnSelector &&\n <Tooltip title={this.props.t('ra_Configure visible columns')}>\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 }\n {this.state.expandAllVisible &&\n <Tooltip title={this.props.t('ra_Expand all nodes')}>\n <IconButton key=\"expandAll\" onClick={() => this.onExpandAll()} size=\"large\">\n <IconOpen />\n </IconButton>\n </Tooltip>\n }\n <Tooltip title={this.props.t('ra_Collapse all nodes')}>\n <IconButton key=\"collapseAll\" onClick={() => this.onCollapseAll()} size=\"large\">\n <IconClosed />\n </IconButton>\n </Tooltip>\n <Tooltip title={this.props.t('ra_Expand one step node')}>\n <IconButton\n key=\"expandVisible\"\n color=\"primary\"\n onClick={() => this.onExpandVisible()}\n size=\"large\"\n >\n <StyledBadge badgeContent={this.state.depth} color=\"secondary\">\n <IconOpen />\n </StyledBadge>\n </IconButton>\n </Tooltip>\n <Tooltip title={this.props.t('ra_Collapse one step node')}>\n <IconButton\n key=\"collapseVisible\"\n color=\"primary\"\n onClick={() => this.onCollapseVisible()}\n size=\"large\"\n >\n <StyledBadge badgeContent={this.state.depth} color=\"secondary\">\n <IconClosed />\n </StyledBadge>\n </IconButton>\n </Tooltip>\n {this.props.objectStatesView && <Tooltip title={this.props.t('ra_Toggle the states view')}>\n <IconButton onClick={() => this.onStatesViewVisible()} size=\"large\">\n <LooksOneIcon color={this.state.statesView ? 'primary' : 'inherit'} />\n </IconButton>\n </Tooltip>}\n\n {this.props.objectAddBoolean ?\n <Tooltip title={this.toolTipObjectCreating()}>\n <div>\n <IconButton\n disabled={!allowObjectCreation}\n onClick={() =>\n this.setState({ modalNewObj: true })}\n size=\"large\"\n >\n <AddIcon />\n </IconButton>\n </div>\n </Tooltip>\n : null\n }\n\n {this.props.objectImportExport &&\n <Tooltip title={this.props.t('ra_Add objects tree from JSON file')}>\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 }\n {this.props.objectImportExport && (!!this.state.selected.length || this.state.selectedNonObject) &&\n <Tooltip title={this.props.t('ra_Save objects tree as JSON file')}>\n <IconButton\n onClick={() => this.setState({showExportDialog: this._getSelectedIdsForExport().length})}\n size=\"large\"\n >\n <PublishIcon style={{ transform: 'rotate(180deg)' }} />\n </IconButton>\n </Tooltip>\n }\n </div>\n {!!this.props.objectBrowserEditObject && <div style={{ display: 'flex', whiteSpace: 'nowrap' }}>\n {`${this.props.t('ra_Objects')}: ${Object.keys(this.info.objects).length}, ${this.props.t('ra_States')}: ${Object.keys(this.info.objects).filter(el => this.info.objects[el].type === 'state').length}`}\n </div>}\n {this.props.objectEditBoolean &&\n <Tooltip title={this.props.t('ra_Edit custom config')}>\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.setItem((this.props.dialogName || 'App') + '.objectSelected', this.state.selected[0]);\n this.props.router && this.props.router.doNavigate(null, 'custom', this.state.selected[0]);\n }\n this.setState({ customDialog: ids });\n } else {\n this.setState({ toast: this.props.t('ra_please select object') });\n }\n }}\n size=\"large\"\n >\n <BuildIcon />\n </IconButton>\n </Tooltip>\n }\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.setItem((this.props.dialogName || 'App') + '.objectExpanded', JSON.stringify(expanded));\n\n this.setState({ expanded });\n }\n\n /**\n * @private\n * @param {Event} e\n * @param {string} text\n */\n onCopy(e, text) {\n e.stopPropagation();\n e.preventDefault();\n copy(text);\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 { value: '0x400', valueNum: 0x400, title: 'read', group: 'Owner' },\n { value: '0x200', valueNum: 0x200, title: 'write', group: 'Owner' },\n { value: '0x40', valueNum: 0x40, title: 'read', group: 'Group' },\n { value: '0x20', valueNum: 0x20, title: 'write', group: 'Group' },\n { value: '0x4', valueNum: 0x4, title: 'read', group: 'Everyone' },\n { value: '0x2', valueNum: 0x2, title: 'write', group: 'Everyone' }\n ];\n const arrayTooltipText = [];\n const funcRenderStateObject = (value = 'object') => {\n let rights = acl[value];\n check.forEach((el, i) => {\n if (rights & el.valueNum) {\n arrayTooltipText.push(<span key={value + i}>{this.texts['acl' + el.group + '_' + el.title + '_' + value]},\n <span className={value === 'object' ? this.props.classes.rightsObject : this.props.classes.rightsState}>\n {el.value}\n </span>\n </span>);\n }\n });\n }\n arrayTooltipText.push(<span key=\"group\">{this.texts.ownerGroup + ': ' + (acl.ownerGroup || '').replace('system.group.', '')}</span>);\n arrayTooltipText.push(<span key=\"owner\">{this.texts.ownerUser + ': ' + (acl.owner || '').replace('system.user.', '')}</span>);\n funcRenderStateObject();\n if (acl.state) {\n funcRenderStateObject('state');\n }\n return arrayTooltipText.length ? <span className={this.props.classes.tooltipAccessControl}>{arrayTooltipText.map(el => el)}</span> : '';\n }\n\n /**\n * @param {string} id\n * @param {{ data: { obj: { type: string; }; hasCustoms: any; }; }} item\n * @param {{ cellButtonsButton: string | undefined; cellButtonsButtonAlone: any; cellButtonsButtonIcon: string | undefined; cellButtonsButtonWithCustoms: any; }} classes\n */\n renderColumnButtons(id, item, classes) {\n if (!item.data.obj) {\n return this.props.onObjectDelete || this.props.objectEditOfAccessControl ? <div className={classes.buttonDiv}>\n {this.props.expertMode && this.props.objectEditOfAccessControl ? <IconButton\n className={Utils.clsx(classes.cellButtonsButton, classes.cellButtonsEmptyButton, classes.cellButtonMinWidth)}\n onClick={() =>\n this.setState({ modalEditOfAccess: true, modalEmptyId: id, modalEditOfAccessObjData: item.data })}\n size=\"large\">---</IconButton> : null}\n {this.props.onObjectDelete && item.children && item.children.length ? <IconButton\n className={Utils.clsx(classes.cellButtonsButton, classes.cellButtonsButtonAlone)}\n size=\"small\"\n aria-label=\"delete\"\n title={this.texts.deleteObject}\n onClick={() => this.props.onObjectDelete(id, !!(item.children && item.children.length), false)}\n >\n <IconDelete className={classes.cellButtonsButtonIcon} />\n </IconButton> : null}\n </div> : null;\n }\n\n item.data.aclTooltip = item.data.aclTooltip || this.renderTooltipAccessControl(item.data.obj.acl);\n\n const acl = item.data.obj.acl ? (item.data.obj.type === 'state' ? item.data.obj.acl.state : item.data.obj.acl.object) : 0;\n const aclSystemConfig = item.data.obj.acl && (item.data.obj.type === 'state' ? this.systemConfig.common.defaultNewAcl.state : this.systemConfig.common.defaultNewAcl.object);\n\n return [\n this.props.expertMode && this.props.objectEditOfAccessControl ? <Tooltip key=\"acl\" title={item.data.aclTooltip}><IconButton\n className={classes.cellButtonMinWidth}\n onClick={() =>\n this.setState({ modalEditOfAccess: true, modalEditOfAccessObjData: item.data })}\n size=\"large\"\n >\n <div className={classes.aclText}>{isNaN(Number(acl).toString(16)) ? Number(aclSystemConfig).toString(16) : Number(acl).toString(16)}</div>\n </IconButton></Tooltip> : <div key=\"aclEmpty\" className={classes.cellButtonMinWidth} />,\n <IconButton\n key=\"edit\"\n className={classes.cellButtonsButton}\n size=\"small\"\n aria-label=\"edit\"\n title={this.texts.editObject}\n onClick={() => {\n window.localStorage.setItem(`${this.props.dialogName || 'App'}.objectSelected`, id);\n this.setState({ editObjectDialog: id });\n }}\n >\n <IconEdit className={classes.cellButtonsButtonIcon} />\n </IconButton>,\n this.props.onObjectDelete && (item.children?.length || !item.data.obj.common?.dontDelete) ? <IconButton\n key=\"delete\"\n className={classes.cellButtonsButton}\n size=\"small\"\n aria-label=\"delete\"\n onClick={() => this.props.onObjectDelete(id, !!item.children?.length, !item.data.obj.common?.dontDelete)}\n title={this.texts.deleteObject}\n >\n <IconDelete className={classes.cellButtonsButtonIcon} />\n </IconButton> : null,\n this.props.objectCustomDialog && this.info.hasSomeCustoms && item.data.obj.type === 'state' && item.data.obj.common?.type !== 'file' ? <IconButton\n className={Utils.clsx(classes.cellButtonsButton, item.data.hasCustoms && classes.cellButtonsButtonWithCustoms)}\n key=\"custom\"\n size=\"small\"\n aria-label=\"config\"\n title={this.texts.customConfig}\n onClick={() => {\n window.localStorage.setItem((this.props.dialogName || 'App') + '.objectSelected', id);\n\n this.pauseSubscribe(true);\n this.props.router && this.props.router.doNavigate(null, 'customs', id);\n this.setState({ customDialog: [id] });\n }}\n >\n <IconConfig className={classes.cellButtonsButtonIcon} />\n </IconButton> : null,\n ];\n }\n\n /**\n * @private\n * @param {string} id\n */\n readHistory(id) {\n /*interface GetHistoryOptions {\n instance?: string;\n start?: number;\n end?: number;\n step?: number;\n count?: number;\n from?: boolean;\n ack?: boolean;\n q?: boolean;\n addID?: boolean;\n limit?: number;\n ignoreNull?: boolean;\n sessionId?: any;\n aggregate?: 'minmax' | 'min' | 'max' | 'average' | 'total' | 'count' | 'none';\n }*/\n if (window.sparkline &&\n this.defaultHistory &&\n this.objects[id] &&\n this.objects[id].common &&\n this.objects[id].common.custom &&\n this.objects[id].common.custom[this.defaultHistory]) {\n\n const now = new Date();\n now.setHours(now.getHours() - 24);\n now.setMinutes(0);\n now.setSeconds(0);\n now.setMilliseconds(0);\n let nowMs = now.getTime();\n\n this.props.socket.getHistory(id, {\n instance: this.defaultHistory,\n start: nowMs,\n end: Date.now(),\n step: 3600000,\n from: false,\n ack: false,\n q: false,\n addID: false,\n aggregate: 'minmax'\n })\n .then(values => {\n const sparks = window.document.getElementsByClassName('sparkline');\n\n for (let s = 0; s < sparks.length; s++) {\n if (sparks[s].dataset.id === id) {\n const v = prepareSparkData(values, nowMs);\n\n window.sparkline.sparkline(sparks[s], v);\n break;\n }\n }\n })\n .catch(e => this.showError(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 if (!item.data.obj || !this.states) {\n return null;\n }\n\n if (item.data.obj.common?.type === 'file') {\n return <div className={Utils.clsx(classes.cellValueText, classes.cellValueFile)}>[file]</div>;\n } else\n if (!this.states[id]) {\n if (item.data.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 } else {\n !this.recordStates.includes(id) && this.recordStates.push(id);\n }\n\n const state = this.states[id];\n let info = item.data.state;\n if (!info) {\n info = item.data.state = item.data.state || formatValue(id, state, item.data.obj, this.texts, this.props.dateFormat, this.props.isFloatComma);\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}>{item.t}: {item.v}</div>,\n //<div className={classes.cellValueTooltipValue} key={item.t + '_v'}>{item.v}</div>,\n !item.nbr ? <br key={item.t + '_br'} /> : null\n ];\n } else {\n return [\n <div className={classes.cellValueTooltipTitle} key={item.t}>{item.t}:</div>,\n <div className={classes.cellValueTooltipValue} key={item.t + '_v'}>{item.v}</div>,\n !item.nbr ? <br key={item.t + '_br'} /> : null\n ];\n }\n });\n\n if (this.defaultHistory && this.objects[id] && this.objects[id].common && this.objects[id].common.custom && this.objects[id].common.custom[this.defaultHistory]) {\n info.valFull.push(<svg key=\"sparkline\" className=\"sparkline\" data-id={id} style={{ fill: '#3d85de' }} width=\"200\" height=\"30\" strokeWidth=\"3\" />);\n }\n\n const copyText = info.valText.v || '';\n info.val = copyText;\n info.valText = [\n <span className={classes.newValue || classes.newValue} key={`${info.valText.v.toString()}valText`}>{info.valText.v.toString()}</span>,\n info.valText.u ? <span className={Utils.clsx(classes.cellValueTextUnit, classes.newValue)} key={`${info.valText.v.toString()}unit`}>{info.valText.u}</span> : null,\n info.valText.s !== undefined ? <span className={Utils.clsx(classes.cellValueTextState, classes.newValue)} key={`${info.valText.v.toString()}states`}>({info.valText.s})</span> : null,\n <IconCopy className={Utils.clsx(classes.cellButtonsValueButton, 'copyButton', classes.cellButtonsValueButtonCopy)} onClick={(e) => this.onCopy(e, copyText)} key=\"cc\" />,\n //<IconEdit className={ Utils.clsx(classes.cellButtonsValueButton, 'copyButton', classes.cellButtonsValueButtonEdit) } key=\"ce\" />\n ];\n }\n\n let val = info.valText;\n if (!this.props.expertMode && item.data.button) {\n val = <PressButtonIcon className={Utils.clsx(this.props.classes.cellValueButton, !this.states[id] || !this.states[id].val ? this.props.classes.cellValueButtonFalse : '')} />;\n }\n\n return <Tooltip\n key=\"value\"\n title={info.valFull}\n classes={{ tooltip: this.props.classes.cellValueTooltip, popper: this.props.classes.cellValueTooltipBox }}\n onOpen={() => this.readHistory(id)}\n >\n <div style={info.style} className={classes.cellValueText} >\n {val}\n </div>\n </Tooltip>;\n }\n\n /**\n * @private\n * @returns {undefined}\n */\n _syncEnum(id, enumIds, newArray, cb) {\n if (!enumIds || !enumIds.length) {\n return cb && cb();\n } else {\n const enumId = enumIds.pop();\n const promises = [];\n if (this.info.objects[enumId]?.common) {\n if (this.info.objects[enumId].common.members?.length) {\n const pos = this.info.objects[enumId].common.members.indexOf(id);\n if (pos !== -1 && !newArray.includes(enumId)) {\n // delete from members\n const obj = JSON.parse(JSON.stringify(this.info.objects[enumId]));\n obj.common.members.splice(pos, 1);\n promises.push(this.props.socket.setObject(enumId, obj)\n .then(() => this.info.objects[enumId] = obj)\n .catch(e => this.showError(e))\n );\n }\n }\n\n // add to it\n if (newArray.includes(enumId) && !this.info.objects[enumId].common.members?.includes(id)) {\n // add to object\n const obj = JSON.parse(JSON.stringify(this.info.objects[enumId]));\n obj.common.members = obj.common.members || [];\n obj.common.members.push(id);\n obj.common.members.sort();\n promises.push(this.props.socket.setObject(enumId, obj)\n .then(() => this.info.objects[enumId] = obj)\n .catch(e => this.showError(e))\n );\n }\n }\n\n Promise.all(promises)\n .then(() => setTimeout(() =>\n this._syncEnum(id, enumIds, newArray, cb), 0));\n }\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 => this._syncEnum(id, toCheck, newArray, error => {\n error && this.showError(error);\n // force update of object\n resolve();\n }));\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEnumDialog() {\n if (this.state.enumDialog) {\n const type = this.state.enumDialog.type;\n const item = this.state.enumDialog.item;\n const itemEnums = this.state.enumDialogEnums;\n const enumsOriginal = this.state.enumDialog.enumsOriginal;\n\n const enums = (type === 'room' ? this.info.roomEnums : this.info.funcEnums).map(id => ({\n name: getName((this.objects[id] && this.objects[id].common && this.objects[id].common.name) || id.split('.').pop(), this.props.lang),\n value: id,\n icon: getSelectIdIcon(this.objects, id, this.imagePrefix)\n }));\n\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 className={this.props.classes.enumDialog} onClose={() => this.setState({ enumDialog: null })} aria-labelledby=\"enum-dialog-title\" open={true}>\n <DialogTitle id=\"enum-dialog-title\">\n {type === 'func' ? this.props.t('ra_Define functions') : this.props.t('ra_Define rooms')}\n <Fab\n className={this.props.classes.enumButton}\n color=\"primary\"\n disabled={JSON.stringify(enumsOriginal) === JSON.stringify(itemEnums)}\n size=\"small\"\n onClick={() =>\n this.syncEnum(item.data.id, type, itemEnums)\n .then(() => this.setState({ enumDialog: null, enumDialogEnums: null }))}\n >\n <IconCheck />\n </Fab>\n </DialogTitle>\n <List classes={{ root: this.props.classes.enumList }}>\n {\n enums.map(item => {\n let id;\n let name;\n let icon;\n\n if (typeof item === 'object') {\n id = item.value;\n name = item.name;\n icon = item.icon;\n } else {\n id = item;\n name = item;\n }\n const labelId = `checkbox-list-label-${id}`;\n\n return <ListItem\n className={this.props.classes.headerCellSelectItem}\n key={id}\n onClick={() => {\n const pos = itemEnums.indexOf(id);\n const enumDialogEnums = JSON.parse(JSON.stringify(this.state.enumDialogEnums));\n if (pos === -1) {\n enumDialogEnums.push(id);\n enumDialogEnums.sort();\n } else {\n enumDialogEnums.splice(pos, 1);\n }\n this.setState({ enumDialogEnums });\n }}\n >\n <ListItemIcon classes={{ root: this.props.classes.enumCheckbox }}>\n <Checkbox\n edge=\"start\"\n checked={itemEnums.includes(id)}\n tabIndex={-1}\n disableRipple\n inputProps={{ 'aria-labelledby': labelId }}\n />\n </ListItemIcon>\n <ListItemText id={labelId}>{name}</ListItemText>\n {icon ? <ListItemSecondaryAction>{icon}</ListItemSecondaryAction> : null}\n </ListItem>;\n })\n }\n </List>\n </Dialog>;\n } else {\n return null;\n }\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 } else {\n return null;\n }\n }\n\n /**\n * @private\n * @param {boolean} [isSave]\n */\n onColumnsEditCustomDialogClose(isSave) {\n if (isSave) {\n let value = this.customColumnDialog.value;\n if (this.customColumnDialog.type === 'boolean') {\n value = value === 'true' || value === true;\n } else if (this.customColumnDialog.type === 'number') {\n value = parseFloat(value);\n }\n this.customColumnDialog = null;\n this.props.socket.getObject(this.state.columnsEditCustomDialog.obj._id)\n .then(obj => {\n if (this.setCustomValue(obj, this.state.columnsEditCustomDialog.it, value)) {\n return this.props.socket.setObject(obj._id, obj);\n } else {\n throw new Error(this.props.t('ra_Cannot update attribute, because not found in the object'))\n }\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 = this.getCustomValue(this.state.columnsEditCustomDialog.obj, this.state.columnsEditCustomDialog.it);\n this.customColumnDialog = {\n type: this.state.columnsEditCustomDialog.it.type || typeof value,\n initValue: (value === null || value === undefined ? '' : value).toString(),\n value: (value === null || value === undefined ? '' : value).toString()\n };\n }\n\n return <Dialog\n onClose={() => this.setState({ columnsEditCustomDialog: null })}\n maxWidth=\"md\"\n aria-labelledby=\"custom-dialog-title\" open={true}>\n <DialogTitle id=\"custom-dialog-title\">{this.props.t('ra_Edit object field') + ': ' + this.state.columnsEditCustomDialog.obj._id}</DialogTitle>\n <DialogContent>\n <DialogContentText id=\"alert-dialog-description\">\n {this.customColumnDialog.type === 'boolean' ?\n <FormControlLabel\n control={<Checkbox\n onKeyUp={e => e.keyCode === 13 && this.onColumnsEditCustomDialogClose(true)}\n defaultChecked={this.customColumnDialog.value === 'true'}\n onChange={e => {\n this.customColumnDialog.value = e.target.checked.toString();\n const changed = this.customColumnDialog.value !== this.customColumnDialog.initValue;\n if (changed === !this.state.customColumnDialogValueChanged) {\n this.setState({ customColumnDialogValueChanged: changed });\n }\n }}\n />}\n label={this.state.columnsEditCustomDialog.it.name + ' (' + this.state.columnsEditCustomDialog.it.pathText + ')'}\n />\n :\n <TextField\n variant=\"standard\"\n defaultValue={this.customColumnDialog.value}\n fullWidth\n onKeyUp={e => e.keyCode === 13 && this.onColumnsEditCustomDialogClose(true)}\n label={this.state.columnsEditCustomDialog.it.name + ' (' + this.state.columnsEditCustomDialog.it.pathText + ')'}\n onChange={e => {\n this.customColumnDialog.value = e.target.value;\n const changed = this.customColumnDialog.value !== this.customColumnDialog.initValue;\n if (changed === !this.state.customColumnDialogValueChanged) {\n this.setState({ customColumnDialogValueChanged: changed });\n }\n }}\n autoFocus\n />\n }\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 >{this.props.t('Cancel')}</Button>\n </DialogActions>\n </Dialog>;\n } else {\n return null;\n }\n }\n\n /**\n * @private\n * @param {any} obj\n * @param {any} it\n */\n getCustomValue(obj, it) {\n if (obj && obj._id && obj._id.startsWith(it.adapter + '.') && it.path.length > 1) {\n const p = it.path;\n let value;\n if (obj[p[0]] && typeof obj[p[0]] === 'object') {\n if (p.length === 2) { // most common case\n value = obj[p[0]][p[1]];\n } else if (p.length === 3) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' ? obj[p[0]][p[1]][p[2]] : null;\n } else if (p.length === 4) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] ? obj[p[0]][p[1]][p[2]][p[3]] : null;\n } else if (p.length === 5) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && obj[p[0]][p[1]][p[2]][p[3]] ? obj[p[0]][p[1]][p[2]][p[3]][p[4]] : null;\n } else if (p.length === 6) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && obj[p[0]][p[1]][p[2]][p[3]] && obj[p[0]][p[1]][p[2]][p[3]][p[4]] ? obj[p[0]][p[1]][p[2]][p[3]][p[4]][p[5]] : null;\n }\n if (value === undefined || value === null) {\n return null;\n } else {\n return value;\n }\n }\n } else {\n return null;\n }\n }\n\n /**\n * @private\n * @param {any} obj\n * @param {any} it\n * @param {any} value\n */\n setCustomValue(obj, it, value) {\n if (obj && obj._id && obj._id.startsWith(it.adapter + '.') && it.path.length > 1) {\n const p = it.path;\n if (obj[p[0]] && typeof obj[p[0]] === 'object') {\n if (p.length === 2) { // most common case\n obj[p[0]][p[1]] = value;\n return true;\n } else if (p.length === 3) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object') {\n obj[p[0]][p[1]][p[2]] = value;\n return true;\n }\n } else if (p.length === 4) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && typeof obj[p[0]][p[1]][p[2]] === 'object') {\n obj[p[0]][p[1]][p[2]][p[3]] = value;\n return true;\n }\n } else if (p.length === 5) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && typeof obj[p[0]][p[1]][p[2]] === 'object' && obj[p[0]][p[1]][p[2]][p[3]] && typeof obj[p[0]][p[1]][p[2]][p[3]] === 'object') {\n obj[p[0]][p[1]][p[2]][p[3]][p[4]] = value;\n return true;\n }\n } else if (p.length === 6) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && typeof obj[p[0]][p[1]][p[2]] === 'object' && obj[p[0]][p[1]][p[2]][p[3]] && typeof obj[p[0]][p[1]][p[2]][p[3]] === 'object' && obj[p[0]][p[1]][p[2]][p[3]][p[4]] && typeof obj[p[0]][p[1]][p[2]][p[3]][p[4]] === 'object') {\n obj[p[0]][p[1]][p[2]][p[3]][p[4]][p[5]] = value;\n return true;\n }\n }\n }\n }\n return false;\n }\n\n /**\n * Renders a custom value.\n * @param {any} obj\n * @param {any} it\n * @param {any} item\n * @returns {JSX.Element | null}\n */\n renderCustomValue(obj, it, item) {\n let text = this.getCustomValue(obj, it);\n if (text !== null && text !== undefined) {\n if (it.edit && !this.props.notEditable && (!it.objTypes || it.objTypes.includes(obj.type))) {\n return <div\n className={Utils.clsx(this.props.classes.columnCustom, this.props.classes.columnCustomEditable, this.props.classes['columnCustom_' + it.align])}\n onClick={() => this.setState({ columnsEditCustomDialog: { item, it, obj }, customColumnDialogValueChanged: false })}>{text}</div>;\n } else {\n return <div\n className={Utils.clsx(this.props.classes.columnCustom, this.props.classes['columnCustom_' + it.align])}>{text}</div>;\n }\n } else {\n return null;\n }\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 let itemType = item.data.obj?.type;\n\n if (item.children || itemType === 'folder' || itemType === 'device' || itemType === 'channel' || itemType === 'meta') {\n iconFolder = isExpanded ? <IconOpen\n className={classes.cellIdIconFolder}\n onClick={() => this.toggleExpanded(id)}\n /> : <IconClosed\n className={classes.cellIdIconFolder}\n onClick={() => this.toggleExpanded(id)}\n />;\n } else {\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 obj = item.data.obj;\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.state.lang) {\n const { rooms, per } = findRoomsForObject(this.info, id, this.state.lang);\n item.data.rooms = rooms.join(', ');\n item.data.per = per;\n const { funcs, pef } = findFunctionsForObject(this.info, id, this.state.lang);\n item.data.funcs = funcs.join(', ');\n item.data.pef = pef;\n item.data.lang = this.state.lang;\n }\n\n const checkbox =\n this.props.multiSelect &&\n this.objects[id] && (!this.props.types || this.props.types.includes(this.objects[id].type)) ?\n <Checkbox\n className={classes.checkBox}\n checked={this.state.selected.includes(id)}\n /> :\n null;\n\n let valueEditable = !this.props.notEditable && itemType === 'state' && (this.props.expertMode || common?.write !== false);\n if (this.props.objectBrowserViewFile && common?.type === 'file') {\n valueEditable = true;\n }\n const enumEditable = !this.props.notEditable && this.objects[id] && (this.props.expertMode || itemType === 'state' || itemType === 'channel' || itemType === 'device');\n const checkVisibleObjectType = this.state.statesView && (itemType === 'state' || itemType === 'channel' || itemType === 'device');\n let newValue = '';\n let newValueTitle = [];\n if (checkVisibleObjectType) {\n newValue = this.states[id]?.from;\n if (newValue === undefined) {\n newValue = '&nbsp;';\n } else {\n newValue = newValue ? newValue.replace(/^system\\.adapter\\.|^system\\./, '') : '';\n newValueTitle.push(`${this.texts.stateChangedFrom} ${newValue}`);\n }\n if (obj.user) {\n const user = obj.user.replace('system.user.', '');\n newValue += `/${user}`;\n newValueTitle.push(`${this.texts.stateChangedBy} ${user}`);\n }\n }\n if (obj) {\n obj.from && newValueTitle.push(this.texts.objectChangedFrom + ' ' + obj.from.replace(/^system\\.adapter\\.|^system\\./, ''));\n obj.user && newValueTitle.push(this.texts.objectChangedBy + ' ' + obj.user.replace(/^system\\.user\\./, ''));\n obj.ts && newValueTitle.push(this.texts.objectChangedByUser + ' ' + Utils.formatDate(new Date(obj.ts), this.props.dateFormat));\n }\n\n const readWriteAlias = typeof common?.alias?.id === 'object';\n\n const alias = id.startsWith('alias.') && common?.alias?.id ?\n (readWriteAlias ?\n <div className={classes.cellIdAliasReadWriteDiv}>\n {obj.common.alias.id.read ? <div\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n this.onSelect(obj.common.alias.id.read);\n setTimeout(() => {\n this.expandAllSelected(() =>\n this.scrollToItem(obj.common.alias.id.read));\n }, 100);\n }}\n className={Utils.clsx(classes.cellIdAlias, classes.cellIdAliasReadWrite)}\n >←{obj.common.alias.id.read}</div> : null}\n {obj.common.alias.id.write ? <div\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n this.onSelect(obj.common.alias.id.write);\n setTimeout(() => {\n this.expandAllSelected(() =>\n this.scrollToItem(obj.common.alias.id.write));\n }, 100);\n }}\n className={Utils.clsx(classes.cellIdAlias, classes.cellIdAliasReadWrite)}\n >→{obj.common.alias.id.write}</div> : null}\n </div>\n :\n <div\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n this.onSelect(obj.common.alias.id);\n setTimeout(() => {\n this.expandAllSelected(() =>\n this.scrollToItem(obj.common.alias.id));\n }, 100);\n }}\n className={Utils.clsx(classes.cellIdAlias, classes.cellIdAliasAlone)}\n >→{obj.common.alias.id}</div>\n ) : null;\n\n let checkColor = item.data?.common?.color;\n let invertBackground = 'none';\n if (checkColor && !this.state.selected.includes(id)) {\n invertBackground = Utils.invertColor(checkColor, true);\n }\n if (!checkColor || this.state.selected.includes(id)) {\n checkColor = 'inherit';\n }\n const icons = [];\n\n if (common?.statusStates) {\n let ids = {};\n Object.keys(common.statusStates).forEach(name => {\n let _id = common.statusStates[name];\n if (_id.split('.').length < 3) {\n _id = id + '.' + _id;\n }\n ids[name] = _id;\n\n if (!this.states[_id]) {\n if (this.objects[_id]?.type === 'state') {\n !this.recordStates.includes(_id) && this.recordStates.push(_id);\n this.states[_id] = { val: null };\n this.subscribe(_id);\n }\n } else {\n !this.recordStates.includes(_id) && this.recordStates.push(_id);\n }\n });\n // calculate color\n // errorId has priority\n let colorSet = false;\n if (common.statusStates.errorId && this.states[ids.errorId] && this.states[ids.errorId].val) {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_ERROR_DARK : COLOR_NAME_ERROR_LIGHT;\n colorSet = true;\n icons.push(<IconError key=\"error\" title={this.texts.deviceError} className={this.props.classes.iconDeviceError}/>);\n }\n\n if (ids.onlineId && this.states[ids.onlineId] && this.states[ids.onlineId].val !== null) {\n if (!colorSet) {\n if (this.states[ids.onlineId].val) {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT;\n icons.push(<IconConnection key=\"conn\" title={this.texts.deviceError} className={this.props.classes.iconDeviceConnected}/>);\n } else {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_DISCONNECTED_DARK : COLOR_NAME_DISCONNECTED_LIGHT;\n icons.push(<IconDisconnected key=\"disc\" title={this.texts.deviceError} className={this.props.classes.iconDeviceDisconnected}/>);\n }\n } else if (this.states[ids.onlineId].val) {\n icons.push(<IconConnection key=\"conn\" title={this.texts.deviceError} className={this.props.classes.iconDeviceConnected}/>);\n } else {\n icons.push(<IconDisconnected key=\"disc\" title={this.texts.deviceError} className={this.props.classes.iconDeviceDisconnected}/>);\n }\n } else\n if (ids.offlineId && this.states[ids.offlineId] && this.states[ids.offlineId].val !== null) {\n if (!colorSet) {\n if (this.states[ids.offlineId].val) {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_DISCONNECTED_DARK : COLOR_NAME_DISCONNECTED_LIGHT;\n icons.push(<IconDisconnected key=\"disc\" title={this.texts.deviceError} className={this.props.classes.iconDeviceDisconnected}/>);\n } else {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT;\n icons.push(<IconConnection key=\"conn\" title={this.texts.deviceError} className={this.props.classes.iconDeviceConnected}/>);\n }\n } else if (this.states[ids.offlineId].val) {\n icons.push(<IconDisconnected key=\"disc\" title={this.texts.deviceError} className={this.props.classes.iconDeviceDisconnected}/>);\n } else {\n icons.push(<IconConnection key=\"conn\" title={this.texts.deviceError} className={this.props.classes.iconDeviceConnected}/>);\n }\n }\n }\n\n const q = checkVisibleObjectType ? Utils.quality2text(this.states[id]?.q || 0).join(', ') : null;\n\n return <Grid\n container\n direction=\"row\"\n wrap=\"nowrap\"\n className={Utils.clsx(\n classes.tableRow,\n this.state.linesEnabled && classes.tableRowLines,\n !this.props.dragEnabled && classes.tableRowNoDragging,\n alias && classes.tableRowAlias,\n readWriteAlias && classes.tableRowAliasReadWrite,\n !item.data.visible && classes.filteredOut,\n item.data.hasVisibleParent && !item.data.visible && !item.data.hasVisibleChildren && classes.filteredParentOut,\n this.state.selected.includes(id) && classes.itemSelected,\n this.state.selectedNonObject === id && classes.itemSelected\n )}\n key={id}\n id={id}\n onClick={() => this.onSelect(id)}\n onDoubleClick={() => {\n if (!item.children) {\n this.onSelect(id, true);\n } else {\n this.toggleExpanded(id);\n }\n }}\n >\n <Grid\n container\n wrap=\"nowrap\"\n direction=\"row\"\n className={classes.cellId}\n style={{ width: this.columnsVisibility.id, paddingLeft }}\n >\n <Grid\n item\n container\n alignItems=\"center\"\n style={{\n color: checkColor,\n background: invertBackground\n }}\n >\n {checkbox}\n {iconFolder}\n </Grid>\n <Grid\n item\n title={id}\n className={classes.cellIdSpan}\n style={{\n background: invertBackground,\n color: id === 'system' ?\n COLOR_NAME_SYSTEM : (id === 'system.adapter' ? COLOR_NAME_SYSTEM_ADAPTER :\n checkColor)\n }}\n >\n {item.data.name}\n {alias}\n {icons}\n </Grid>\n <div\n style={{\n color: checkColor,\n background: invertBackground\n }} className={classes.grow} />\n <Grid\n item\n container\n alignItems=\"center\"\n >\n {iconItem}\n </Grid>\n <div style={{ color: checkColor }}>\n <IconCopy className={Utils.clsx(classes.cellCopyButton, 'copyButton')} onClick={e => this.onCopy(e, id)} />\n </div>\n </Grid>\n\n {this.columnsVisibility.name ? <div className={classes.cellName} style={{ width: this.columnsVisibility.name }}>\n {(item.data?.title) || ''}\n {item.data?.title ? <div style={{ color: checkColor }}>\n <IconCopy className={Utils.clsx(classes.cellCopyButton, 'copyButton')} onClick={e => this.onCopy(e, item.data.title)} />\n </div> : null}\n </div> : null}\n\n {!this.state.statesView ?\n <>\n {this.columnsVisibility.type ? <div className={classes.cellType} style={{ width: this.columnsVisibility.type }}>{typeImg} {obj && obj.type}</div> : null}\n {this.columnsVisibility.role ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.role, cursor: this.props.expertMode && enumEditable && this.props.objectBrowserEditRole ? 'text' : 'default' }} onClick={this.props.expertMode && enumEditable && this.props.objectBrowserEditRole ? () => this.setState({ roleDialog: item.data.id }) : undefined}>{obj && obj.common && obj.common.role}</div> : null}\n {this.columnsVisibility.room ? <div className={`${classes.cellRoom} ${item.data.per ? classes.cellEnumParent : ''}`} style={{ width: this.columnsVisibility.room, cursor: enumEditable ? 'text' : 'default' }} onClick={enumEditable ? () => { const enums = findEnumsForObjectAsIds(this.info, item.data.id, 'roomEnums'); this.setState({ enumDialogEnums: enums, enumDialog: { item, type: 'room', enumsOriginal: JSON.parse(JSON.stringify(enums)) } }); } : undefined}>{item.data.rooms}</div> : null}\n {this.columnsVisibility.func ? <div className={`${classes.cellFunc} ${item.data.pef ? classes.cellEnumParent : ''}`} style={{ width: this.columnsVisibility.func, cursor: enumEditable ? 'text' : 'default' }} onClick={enumEditable ? () => { const enums = findEnumsForObjectAsIds(this.info, item.data.id, 'funcEnums'); this.setState({ enumDialogEnums: enums, enumDialog: { item, type: 'func', enumsOriginal: JSON.parse(JSON.stringify(enums)) } }); } : undefined}>{item.data.funcs}</div> : null}\n </>\n :\n <>\n {this.columnsVisibility.changedFrom ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.changedFrom }} title={newValueTitle.join('\\n')}>{checkVisibleObjectType && this.states[id]?.from ? newValue : null}</div> : null}\n {this.columnsVisibility.qualityCode ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.qualityCode }} title={q || ''}>{q}</div> : null}\n {this.columnsVisibility.timestamp ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.timestamp }}>{checkVisibleObjectType && this.states[id]?.ts ? Utils.formatDate(new Date(this.states[id].ts), this.props.dateFormat) : null}</div> : null}\n {this.columnsVisibility.lastChange ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.lastChange }}>{checkVisibleObjectType && this.states[id]?.lc ? Utils.formatDate(new Date(this.states[id].lc), this.props.dateFormat) : null}</div> : null}\n </>\n }\n {this.adapterColumns.map(it => <div className={classes.cellAdapter} style={{ width: this.columnsVisibility[it.id] }} key={it.id} title={it.adapter + ' => ' + it.pathText}>{this.renderCustomValue(obj, it, item)}</div>)}\n {this.columnsVisibility.val ? <div className={classes.cellValue} style={{ width: this.columnsVisibility.val, cursor: valueEditable ? (common?.type === 'file' ? 'zoom-in' : (item.data.button ? 'grab' : 'text')) : 'default' }} onClick={valueEditable ? () => {\n if (!obj || !this.states) {\n return null;\n }\n\n if (common?.type === 'file') {\n return this.setState({viewFileDialog: id});\n }\n\n // in non-expert mode control button directly\n if (!this.props.expertMode && item.data.button) {\n return this.props.socket.setState(id, true)\n .catch(e => window.alert(`Cannot write state \"${id}\": ${e}`));\n }\n\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 } : undefined}>{this.renderColumnValue(id, item, classes)}</div> : null}\n {this.columnsVisibility.buttons ? <div className={classes.cellButtons} style={{ width: this.columnsVisibility.buttons }}>{this.renderColumnButtons(id, item, classes)}</div> : null}\n </Grid>;\n }\n\n /**\n * Renders an item.\n * @param {any} root\n * @param {boolean} isExpanded\n * @param {Record<string, any>} classes\n * @param {{ count: any; }} [counter]\n * @returns {JSX.Element[]}\n */\n renderItem(root, isExpanded, classes, counter) {\n const items = [];\n counter = counter || { count: 0 };\n let leaf = this.renderLeaf(root, isExpanded, classes, counter);\n let DragWrapper = this.props.DragWrapper;\n if (this.props.dragEnabled) {\n if (root.data.sumVisibility) {\n leaf = <DragWrapper key={root.data.id} item={root} className={classes.draggable}>{leaf}</DragWrapper>;\n } else {\n // change cursor\n leaf = <div key={root.data.id} className={classes.nonDraggable}>{leaf}</div>\n }\n }\n root.data.id && items.push(leaf);\n\n isExpanded = isExpanded === undefined ? binarySearch(this.state.expanded, root.data.id) : isExpanded;\n\n if (!root.data.id || isExpanded) {\n if (!this.state.foldersFirst) {\n root.children && items.push(root.children.map(item => {\n // do not render too many items in column editor mode\n if (!this.state.columnsSelectorShow || counter.count < 15) {\n if (item.data.sumVisibility) {\n return this.renderItem(item, undefined, classes, counter);\n }\n }\n return null;\n }));\n } else {\n // first only folder\n root.children && items.push(root.children.map(item => {\n if (item.children) {\n // do not render too many items in column editor mode\n if (!this.state.columnsSelectorShow || counter.count < 15) {\n if (item.data.sumVisibility) {\n return this.renderItem(item, undefined, classes, counter);\n }\n }\n }\n\n return null;\n }));\n // then items\n root.children && items.push(root.children.map(item => {\n if (!item.children) {\n // do not render too many items in column editor mode\n if (!this.state.columnsSelectorShow || counter.count < 15) {\n if (item.data.sumVisibility) {\n return this.renderItem(item, undefined, classes, counter);\n }\n }\n }\n return null;\n }));\n }\n }\n\n return items;\n }\n\n /**\n * @private\n * @param {boolean} [columnsAuto]\n * @param {string[]} [columns]\n * @param {any} [columnsForAdmin]\n * @param {Record<string, number>} [columnsWidths]\n */\n calculateColumnsVisibility(columnsAuto, columns, columnsForAdmin, columnsWidths) {\n columnsWidths = columnsWidths || this.state.columnsWidths;\n columnsForAdmin = columnsForAdmin || this.state.columnsForAdmin;\n columns = columns || this.state.columns || [];\n columnsAuto = typeof columnsAuto !== 'boolean' ? this.state.columnsAuto : columnsAuto;\n\n columnsWidths = JSON.parse(JSON.stringify(columnsWidths));\n Object.keys(columnsWidths).forEach(name => {\n if (columnsWidths[name]) {\n columnsWidths[name] = parseInt(columnsWidths[name], 10) || 0;\n }\n });\n\n this.adapterColumns = [];\n const WIDTHS = SCREEN_WIDTHS[this.props.width].widths;\n\n if (columnsAuto) {\n this.columnsVisibility = {\n id: SCREEN_WIDTHS[this.props.width].idWidth,\n name: this.visibleCols.includes('name') ? WIDTHS.name || 0 : 0,\n 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) {\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 {\n // Calculate the with of ID\n let widthSum = 0; // id is always visible\n if (this.state.statesView) {\n widthSum += this.columnsVisibility.changedFrom;\n widthSum += this.columnsVisibility.qualityCode;\n widthSum += this.columnsVisibility.timestamp;\n widthSum += this.columnsVisibility.lastChange;\n } else {\n widthSum += this.columnsVisibility.type;\n widthSum += this.columnsVisibility.role;\n widthSum += this.columnsVisibility.room;\n widthSum += this.columnsVisibility.func;\n }\n widthSum += this.columnsVisibility.val;\n widthSum += this.columnsVisibility.buttons;\n this.columnsVisibility.id = `calc(100% - ${widthSum + 5}px)`;\n }\n } else {\n this.columnsVisibility = {\n id: columnsWidths.id || SCREEN_WIDTHS[this.props.width].idWidth,\n name: columns.includes('name') ? columnsWidths.name || WIDTHS.name || SCREEN_WIDTHS[this.props.width].widths.name || 0 : 0,\n type: columns.includes('type') ? columnsWidths.type || WIDTHS.type || SCREEN_WIDTHS[this.props.width].widths.type || 0 : 0,\n role: columns.includes('role') ? columnsWidths.role || WIDTHS.role || SCREEN_WIDTHS[this.props.width].widths.role || 0 : 0,\n room: columns.includes('room') ? columnsWidths.room || WIDTHS.room || SCREEN_WIDTHS[this.props.width].widths.room || 0 : 0,\n func: columns.includes('func') ? columnsWidths.func || WIDTHS.func || SCREEN_WIDTHS[this.props.width].widths.func || 0 : 0\n };\n let widthSum = this.columnsVisibility.id; // id is always visible\n if (this.columnsVisibility.name) {\n widthSum += this.columnsVisibility.type;\n widthSum += this.columnsVisibility.role;\n widthSum += this.columnsVisibility.room;\n widthSum += this.columnsVisibility.func;\n }\n\n if (columnsForAdmin && columns) {\n Object.keys(columnsForAdmin).sort().forEach(adapter =>\n columnsForAdmin[adapter].forEach(column => {\n const id = '_' + adapter + '_' + column.path;\n this.columnsVisibility[id] = columns.includes(id);\n if (columns.includes(id)) {\n const item = {\n adapter,\n id: '_' + adapter + '_' + column.path,\n name: column.name,\n path: column.path.split('.'),\n pathText: column.path\n };\n if (column.edit) {\n item.edit = true;\n if (column.type) {\n item.type = column.type;\n }\n if (column.objTypes) {\n item.objTypes = column.objTypes;\n }\n }\n\n this.adapterColumns.push(item);\n this.columnsVisibility[id] = columnsWidths[item.id] || column.width || SCREEN_WIDTHS[this.props.width].widths.func || SCREEN_WIDTHS.xl.widths.func;\n widthSum += this.columnsVisibility[id];\n } else {\n this.columnsVisibility[id] = 0;\n }\n }));\n }\n this.adapterColumns.sort((a, b) => a.id > b.id ? -1 : (a.id < b.id ? 1 : 0));\n this.columnsVisibility.val = columns.includes('val') ? columnsWidths.val || WIDTHS.val || SCREEN_WIDTHS.xl.widths.val : 0;\n\n // do not show buttons if not desired\n if (!this.props.columns || this.props.columns.includes('buttons')) {\n this.columnsVisibility.buttons = columns.includes('buttons') ? columnsWidths.buttons || WIDTHS.buttons || SCREEN_WIDTHS.xl.widths.buttons : 0;\n widthSum += this.columnsVisibility.buttons;\n }\n\n if (this.columnsVisibility.name && !columnsWidths.name) {\n widthSum += this.columnsVisibility.val;\n this.columnsVisibility.name = `calc(100% - ${widthSum}px)`;\n this.columnsVisibility.nameHeader = `calc(100% - ${widthSum + 5 + this.state.scrollBarWidth}px)`;\n } else {\n const newWidth = Object.keys(this.columnsVisibility).reduce((accumulator, name) => {\n if (name === 'id' || typeof this.columnsVisibility[name] === 'string' || !this.columnsVisibility[name]) {\n return accumulator;\n } else {\n return accumulator + this.columnsVisibility[name];\n }},\n 0);\n this.columnsVisibility.id = `calc(100% - ${newWidth}px)`;\n }\n }\n }\n\n /**\n * @private\n * @returns {JSX.Element}\n */\n renderHeader() {\n const classes = this.props.classes;\n\n let filterClearInValue = null;\n if (!this.columnsVisibility.buttons && !this.isFilterEmpty()) {\n filterClearInValue = <IconButton\n onClick={() => this.clearFilter()}\n className={classes.buttonClearFilter}\n title={this.props.t('ra_Clear filter')}\n size=\"large\"\n >\n <IconClearFilter />\n <IconClose className={classes.buttonClearFilterIcon} />\n </IconButton>;\n }\n\n return <div className={classes.headerRow} >\n <div className={classes.headerCell} style={{ width: this.columnsVisibility.id }}>{this.getFilterInput('id')}</div>\n {this.columnsVisibility.name ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.nameHeader }}>{this.getFilterInput('name')}</div> : null}\n {!this.state.statesView && <>\n {this.columnsVisibility.type ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.type }}>{this.getFilterSelectType()}</div> : null}\n {this.columnsVisibility.role ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.role }}>{this.getFilterSelectRole()}</div> : null}\n {this.columnsVisibility.room ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.room }}>{this.getFilterSelectRoom()}</div> : null}\n {this.columnsVisibility.func ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.func }}>{this.getFilterSelectFunction()}</div> : null}\n </>}\n {this.state.statesView && <>\n <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.changedFrom }}>{this.props.t('ra_Changed from')}</div>\n <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.qualityCode }}>{this.props.t('ra_Quality code')}</div>\n <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.timestamp }}>{this.props.t('ra_Timestamp')}</div>\n <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.lastChange }}>{this.props.t('ra_Last change')}</div>\n </>}\n {this.adapterColumns.map(item => <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility[item.id] }} title={item.adapter} key={item.id}>{item.name}</div>)}\n {this.columnsVisibility.val ? <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.val }}>{this.props.t('ra_Value')}{filterClearInValue}</div> : null}\n {this.columnsVisibility.buttons ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.buttons }}> {this.getFilterSelectCustoms()}</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 <React.Fragment>\n <IconButton size=\"small\" aria-label=\"close\" color=\"inherit\" onClick={() => this.setState({ toast: '' })}>\n <IconClose fontSize=\"small\" />\n </IconButton>\n </React.Fragment>\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 {\n if (!this.selectedFound && ((this.state.selected && this.state.selected[0]) || this.lastSelectedItems)) {\n this.scrollToItem((this.state.selected && this.state.selected[0]) || this.lastSelectedItems);\n }\n }\n }\n }\n\n scrollToItem(id) {\n const node = window.document.getElementById(id);\n node && node.scrollIntoView({\n behavior: 'auto',\n block: 'center',\n inline: 'center'\n });\n this.selectedFound = true;\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderCustomDialog() {\n if (this.state.customDialog && this.props.objectCustomDialog) {\n const ObjectCustomDialog = this.props.objectCustomDialog;\n\n return <ObjectCustomDialog\n reportChangedIds={changedIds => this.changedIds = [...changedIds]}\n objectIDs={this.state.customDialog}\n expertMode={this.state.filter.expertMode}\n isFloatComma={this.props.isFloatComma}\n t={this.props.t}\n lang={this.props.lang}\n socket={this.props.socket}\n themeName={this.props.themeName}\n themeType={this.props.themeType}\n theme={this.props.theme}\n objects={this.objects}\n customsInstances={this.info.customs}\n onClose={() => {\n this.pauseSubscribe(false);\n this.setState({ customDialog: null });\n if (this.changedIds) {\n this.changedIds = null;\n // update all changed IDs\n this.forceUpdate();\n }\n\n this.props.router && this.props.router.doNavigate('tab-objects');\n }}\n />;\n } else {\n return null;\n }\n }\n\n /**\n * @private\n * @param {Partial<ioBroker.State>} valAck\n */\n onUpdate(valAck) {\n this.props.socket.setState(this.edit.id, { val: valAck.val, ack: valAck.ack, q: valAck.q || 0, expire: valAck.expire || undefined })\n .catch(e => this.showError('Cannot write value: ' + e));\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEditObjectDialog() {\n if (!this.state.editObjectDialog || !this.props.objectBrowserEditObject) {\n return null;\n }\n\n const ObjectBrowserEditObject = this.props.objectBrowserEditObject;\n\n return <ObjectBrowserEditObject\n key={this.state.editObjectDialog}\n obj={this.objects[this.state.editObjectDialog]}\n roleArray={this.info.roles}\n objects={this.objects}\n dateFormat={this.props.dateFormat}\n isFloatComma={this.props.isFloatComma}\n themeName={this.props.themeName}\n socket={this.props.socket}\n dialogName={this.props.dialogName}\n t={this.props.t}\n expertMode={this.state.filter.expertMode}\n onNewObject={obj =>\n this.props.socket.setObject(obj._id, obj)\n .then(() => this.setState({ editObjectDialog: obj._id }, () => this.onSelect(obj._id)))\n .catch(e => this.showError('Cannot write object: ' + e))}\n onClose={obj => {\n this.setState({ editObjectDialog: '' });\n if (obj) {\n this.props.socket.setObject(obj._id, obj)\n .catch(e => this.showError('Cannot write object: ' + e));\n }\n }}\n />\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderViewObjectFileDialog() {\n if (!this.state.viewFileDialog || !this.props.objectBrowserViewFile) {\n return null;\n }\n const ObjectBrowserViewFile = this.props.objectBrowserViewFile;\n\n return <ObjectBrowserViewFile\n key=\"viewFile\"\n obj={this.objects[this.state.viewFileDialog]}\n themeType={this.props.themeType}\n socket={this.props.socket}\n dialogName={this.props.dialogName}\n t={this.props.t}\n expertMode={this.state.filter.expertMode}\n onClose={() => this.setState({ viewFileDialog: '' })}\n />;\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEditValueDialog() {\n if (!this.state.updateOpened || !this.props.objectBrowserValue) {\n return null;\n }\n\n const type = this.objects[this.edit.id].common?.type ?\n this.objects[this.edit.id].common.type : typeof this.edit.val;\n\n const ObjectBrowserValue = this.props.objectBrowserValue;\n\n return <ObjectBrowserValue\n t={this.props.t}\n lang={this.props.lang}\n type={type}\n states={Utils.getStates(this.objects[this.edit.id])}\n themeType={this.props.themeType}\n expertMode={this.state.filter.expertMode}\n value={this.edit.val}\n socket={this.props.socket}\n object={this.objects[this.edit.id]}\n defaultHistory={this.defaultHistory}\n dateFormat={this.props.dateFormat}\n onClose={res => {\n this.setState({ updateOpened: false });\n res && this.onUpdate(res);\n }}\n />;\n }\n\n extendObject = (id, data) =>\n this.props.socket.extendObject(id, data)\n .catch(error => window.alert(error));\n\n setObject = (id, data) =>\n this.props.socket.setObject(id, data)\n .catch(error => window.alert(error));\n\n /**\n * The rendering method of this component.\n * @returns {JSX.Element}\n */\n render() {\n this.recordStates = [];\n this.unsubscribeTimer && clearTimeout(this.unsubscribeTimer);\n\n // apply filter if changed\n const jsonFilter = JSON.stringify(this.state.filter);\n if (this.lastAppliedFilter !== jsonFilter && this.objects && this.root) {\n const counter = { count: 0 };\n\n applyFilter(this.root, this.state.filter, this.state.lang, this.objects, null, counter, this.props.customFilter, this.props.types);\n\n if (counter.count < 500 && !this.state.expandAllVisible) {\n setTimeout(() => this.setState({ expandAllVisible: true }));\n } else if (counter.count >= 500 && this.state.expandAllVisible) {\n setTimeout(() => this.setState({ expandAllVisible: false }));\n }\n\n this.lastAppliedFilter = jsonFilter;\n }\n\n this.unsubscribeTimer = setTimeout(() => {\n this.unsubscribeTimer = null;\n this.checkUnsubscribes();\n }, 200);\n\n if (!this.state.loaded) {\n return <CircularProgress key={this.props.dialogName + '_c'} />;\n } else {\n const classes = this.props.classes;\n const items = this.renderItem(this.root, undefined, classes);\n\n return <TabContainer key={this.props.dialogName}>\n <TabHeader>\n {this.getToolbar()}\n </TabHeader>\n <TabContent>\n {this.renderHeader()}\n <div className={this.props.classes.tableDiv} ref={this.tableRef}>\n {items}\n </div>\n </TabContent>\n {this.renderToast()}\n {this.renderColumnsEditCustomDialog()}\n {this.renderColumnsSelectorDialog()}\n {this.renderCustomDialog()}\n {this.renderEditValueDialog()}\n {this.renderEditObjectDialog()}\n {this.renderViewObjectFileDialog()}\n {this.renderEditRoleDialog()}\n {this.renderEnumDialog()}\n {this.renderErrorDialog()}\n {this.renderExportDialog()}\n {this.state.modalNewObj && this.props.modalNewObject && this.props.modalNewObject(this)}\n {this.state.modalEditOfAccess && this.props.modalEditOfAccessControl && this.props.modalEditOfAccessControl(this, this.state.modalEditOfAccessObjData)}\n </TabContainer>;\n }\n }\n}\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) { }\n customFilter: PropTypes.object, // optional {common: {custom: true}} or {common: {custom: 'sql.0'}}\n objectBrowserValue: PropTypes.object,\n objectBrowserEditObject: PropTypes.object,\n objectBrowserEditRole: PropTypes.object, // on Edit role\n objectBrowserViewFile: PropTypes.func, // on view file state\n router: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func\n ]),\n types: PropTypes.array, // optional ['state', 'instance', 'channel']\n columns: PropTypes.array, // optional ['name', 'type', 'role', 'room', 'func', 'val', 'buttons']\n\n objectsWorker: PropTypes.object, // optional cache of objects\n filterFunc: PropTypes.func, // function to filter out all unnecessary objects. It cannot be used together with \"types\"\n // Example for function: `obj => obj.common && obj.common.type === 'boolean'` to show only boolean states\n\n dragSettings: PropTypes.object,\n DragWrapper: PropTypes.func,\n dragEnabled: PropTypes.bool,\n useDrag: PropTypes.func,\n};\n\n/** @type {typeof ObjectBrowser} */\nconst _export = withWidth()(withStyles(styles)(ObjectBrowser));\nexport default _export;"],"file":"ObjectBrowser.js"}
1
+ {"version":3,"sources":["ObjectBrowser.js"],"names":["useWidth","theme","keys","breakpoints","reverse","reduce","output","key","matches","up","withWidth","WrappedComponent","props","width","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","toolbar","minHeight","toolbarButtons","padding","marginLeft","switchColumnAuto","spacing","dialogColumns","transition","dialogColumnsLabel","fontSize","paddingTop","columnCustom","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","buttonClearFilter","position","buttonClearFilterIcon","zIndex","top","left","color","tableDiv","overflow","tableRow","lineHeight","verticalAlign","userSelect","background","palette","mode","primary","dark","light","Utils","invertColor","main","flexWrap","tableRowLines","borderBottom","tableRowNoDragging","tableRowAlias","tableRowAliasReadWrite","checkBox","cellId","textOverflow","marginTop","cellIdSpan","cellIdIconFolder","marginRight","secondary","cellIdIconDocument","cellIdIconOwn","cellCopyButton","right","cellEditButton","cellName","cellIdAlias","fontStyle","cellIdAliasReadWriteDiv","cellIdAliasAlone","cellIdAliasReadWrite","cellType","cellRole","cellRoom","cellEnumParent","cellFunc","cellValue","cellValueButton","transform","cellValueButtonFalse","cellAdapter","cellValueTooltip","cellValueText","cellValueFile","cellValueTooltipTitle","cellValueTooltipValue","cellValueTooltipBoth","cellValueTooltipBox","cellValueTextUnit","newValue","animation","cellValueTextState","cellValueTooltipCopy","bottom","cellValueTooltipEdit","cellButtons","cellButtonsButton","cellButtonsEmptyButton","cellButtonMinWidth","minWidth","cellButtonsButtonAlone","cellButtonsButtonWithCustoms","cellButtonsValueButton","action","active","cellButtonsValueButtonCopy","cellButtonsValueButtonEdit","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","generateFile","filename","obj","el","document","createElement","setAttribute","encodeURIComponent","JSON","stringify","style","body","appendChild","click","removeChild","binarySearch","list","find","_start","_end","undefined","length","middle","Math","floor","applyFilter","item","filters","lang","objects","context","counter","customFilter","selectedTypes","id","toLowerCase","name","type","custom","role","room","common","members","func","data","expertMode","startsWith","expert","fID","indexOf","fName","getName","includes","visible","hasVisibleChildren","children","forEach","_item","sumVisibility","hasVisibleParent","count","getVisibleItems","_result","push","getSystemIcon","k","imagePrefix","icon","endsWith","getSelectIdIcon","buildTree","options","ids","Object","sort","a","b","replace","currentPathArr","currentPath","currentPathLen","root","info","funcEnums","roomEnums","roles","types","customs","enums","hasSomeCustoms","croot","i","parts","split","supportCustoms","adminUI","substring","repeat","curPath","_croot","parent","level","generated","title","hasCustoms","button","write","u","move","splice","join","aName","pop","bName","findNode","_parts","_path","_level","found","_id","en","toString","findRoomsForObject","withParentInfo","rooms","per","origin","ownEnums","findEnumsForObjectAsIds","enumName","funcs","findFunctionsForObject","pef","formatValue","state","texts","dateFormat","isFloatComma","states","getStates","isCommon","valText","v","val","match","Date","parseInt","round","s","valFull","unit","t","value","ack","ts","formatDate","lc","from","user","quality","quality2text","q","nbr","src","_id_","aIcon","cIcon","instance","prepareSparkData","values","time","DEFAULT_FILTER","ITEM_IMAGES","channel","device","adapter","meta","chart","config","group","host","schedule","script","folder","StyledBadge","badge","border","paper","Badge","SCREEN_WIDTHS","xs","idWidth","fields","widths","sm","md","buttons","lg","changedFrom","qualityCode","timestamp","lastChange","xl","objectsAlreadyLoaded","ObjectBrowser","console","log","findItem","pausedSubscribes","statesUpdateTimer","setTimeout","forceUpdate","clearTimeout","oldObj","newState","Array","isArray","event","filterFunc","columnsForAdmin","parse","parseObjectForAdmins","setState","objectsUpdateTimer","lastAppliedFilter","result","mobile","objId","e","_enObj","enObj","socket","setObject","objs","hasOwnProperty","_createAllEnums","getState","def","window","alert","evt","f","target","files","r","FileReader","onload","contents","json","len","loadObjects","readAsText","selected","selectedNonObject","acl","check","valueNum","arrayTooltipText","funcRenderStateObject","rights","classes","ownerGroup","ownerUser","owner","map","extendObject","error","lastSelectedItems","localStorage","getItem","dialogName","filter","expanded","defaultFilters","assign","sessionStorage","tableRef","filterRefs","selectedFound","subscribes","visibleCols","columns","pos","possibleCols","customDialog","router","location","getLocation","dialog","pauseSubscribe","columnsWidths","foldersFirst","statesView","objectStatesView","loaded","filterKey","depth","expandAllVisible","toast","scrollBarWidth","editObjectDialog","viewFileDialog","roleDialog","modalEmptyId","columnsSelectorShow","columnsAuto","columnsDialogTransparent","columnsEditCustomDialog","customColumnDialogValueChanged","showExportDialog","linesEnabled","edit","editObject","deleteObject","customConfig","copyState","editState","close","filter_id","filter_name","filter_type","filter_role","filter_room","filter_func","filter_custom","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","calculateColumnsVisibility","update","Promise","resolve","updating","then","objectsWorker","getObjects","systemConfig","defaultNewAcl","object","defaultHistory","getAdditionalColumns","node","expandAllSelected","onAfterSelect","showError","cb","changed","path","setItem","isDouble","getObjectName","language","onSelect","loadAllObjects","registerHandler","onObjectChange","subscribeObject","unregisterHandler","unsubscribeObject","pattern","unsubscribeState","onStateChange","toggleItem","multiSelect","removeItem","isLast","cols","unshift","underline","clsx","_renderDefinedList","column","getAdapters","instances","recordStates","unsubscribe","_root","_partyId","shift","adminColumns","objTypes","warn","subscribeState","isPause","filterTimer","current","tagName","onFilterChanged","childNodes","someNotEmpty","attr","onFilter","firstChild","hasIcons","newFilter","getFilterSelect","onExpandAll","expandDepth","collapseDepth","idDot","idLen","isAll","_getSelectedIdsForExport","getEnumsForId","_exportObjects","allowObjectCreation","refreshComponent","showExpertButton","disableColumnSelector","onCollapseAll","onExpandVisible","onCollapseVisible","onStatesViewVisible","objectAddBoolean","toolTipObjectCreating","modalNewObj","objectImportExport","input","addEventListener","handleJsonUpload","objectBrowserEditObject","objectEditBoolean","doNavigate","text","stopPropagation","preventDefault","onObjectDelete","objectEditOfAccessControl","modalEditOfAccess","modalEditOfAccessObjData","cellButtonsButtonIcon","aclTooltip","renderTooltipAccessControl","aclSystemConfig","isNaN","Number","dontDelete","objectCustomDialog","sparkline","now","setHours","getHours","setMinutes","setSeconds","setMilliseconds","nowMs","getTime","getHistory","start","end","step","addID","aggregate","sparks","getElementsByClassName","dataset","subscribe","fill","copyText","onCopy","tooltip","popper","readHistory","enumIds","newArray","enumId","promises","all","_syncEnum","toCheck","itemEnums","enumDialogEnums","enumsOriginal","syncEnum","labelId","objectBrowserEditRole","ObjectBrowserEditRole","isSave","customColumnDialog","parseFloat","getObject","setCustomValue","it","Error","getCustomValue","initValue","keyCode","onColumnsEditCustomDialogClose","checked","pathText","p","notEditable","align","isExpanded","iconFolder","itemType","toggleExpanded","iconItem","typeImg","checkbox","valueEditable","objectBrowserViewFile","enumEditable","checkVisibleObjectType","newValueTitle","readWriteAlias","alias","read","scrollToItem","checkColor","invertBackground","icons","statusStates","colorSet","errorId","themeType","onlineId","offlineId","dragEnabled","columnsVisibility","adapterColumns","renderCustomValue","updateOpened","renderColumnValue","renderColumnButtons","items","leaf","renderLeaf","DragWrapper","renderItem","WIDTHS","widthSum","nameHeader","newWidth","accumulator","filterClearInValue","isFilterEmpty","clearFilter","getFilterInput","getFilterSelectType","getFilterSelectRole","getFilterSelectRoom","getFilterSelectFunction","getFilterSelectCustoms","offsetWidth","clientWidth","getElementById","scrollIntoView","behavior","block","inline","ObjectCustomDialog","changedIds","themeName","valAck","expire","ObjectBrowserEditObject","ObjectBrowserViewFile","objectBrowserValue","ObjectBrowserValue","res","onUpdate","unsubscribeTimer","jsonFilter","checkUnsubscribes","getToolbar","renderHeader","renderToast","renderColumnsEditCustomDialog","renderColumnsSelectorDialog","renderCustomDialog","renderEditValueDialog","renderEditObjectDialog","renderViewObjectFileDialog","renderEditRoleDialog","renderEnumDialog","renderErrorDialog","renderExportDialog","modalNewObject","modalEditOfAccessControl","Component","defaultProps","propTypes","PropTypes","string","oneOfType","array","bool","isRequired","number","dragSettings","useDrag","_export"],"mappings":"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","sourcesContent":["/**\n * Copyright 2020-2022, bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport copy from './copy-to-clipboard';\nimport withStyles from '@mui/styles/withStyles';\nimport { useTheme } from '@mui/material/styles';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport SVG from 'react-inlinesvg';\n\nimport IconButton from '@mui/material/IconButton';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport MenuItem from '@mui/material/MenuItem';\nimport Select from '@mui/material/Select';\nimport FormControl from '@mui/material/FormControl';\nimport Input from '@mui/material/Input';\nimport Grid from '@mui/material/Grid';\nimport Badge from '@mui/material/Badge';\nimport Tooltip from '@mui/material/Tooltip';\nimport Snackbar from '@mui/material/Snackbar';\nimport Checkbox from '@mui/material/Checkbox';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemSecondaryAction from '@mui/material/ListItemSecondaryAction';\nimport ListItemText from '@mui/material/ListItemText';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport Dialog from '@mui/material/Dialog';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogActions from '@mui/material/DialogActions';\nimport Button from '@mui/material/Button';\nimport Fab from '@mui/material/Fab';\nimport TextField from '@mui/material/TextField';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Switch from '@mui/material/Switch';\nimport Slider from '@mui/material/Slider';\nimport Typography from '@mui/material/Typography';\n\n// Icons\nimport IconEdit from '@mui/icons-material/Edit';\nimport IconDelete from '@mui/icons-material/Delete';\nimport IconConfig from '@mui/icons-material/Settings';\nimport IconSystem from '@mui/icons-material/SettingsApplications';\nimport IconPhoto from '@mui/icons-material/Photo';\nimport IconGroup from '@mui/icons-material/SupervisedUserCircle';\nimport IconSchedule from '@mui/icons-material/CalendarToday';\nimport IconUser from '@mui/icons-material/PersonOutlined';\nimport IconHost from '@mui/icons-material/Router';\nimport IconConnection from '@mui/icons-material/Wifi';\nimport IconInfo from '@mui/icons-material/Info';\nimport IconMeta from '@mui/icons-material/Description';\nimport IconScript from '@mui/icons-material/Code';\nimport IconChart from '@mui/icons-material/ShowChart';\nimport IconEnum from '@mui/icons-material/ListAlt';\nimport IconColumns from '@mui/icons-material/ViewColumn';\nimport IconClose from '@mui/icons-material/Close';\nimport IconCheck from '@mui/icons-material/Check';\nimport BuildIcon from '@mui/icons-material/Build';\nimport PublishIcon from '@mui/icons-material/Publish';\nimport AddIcon from '@mui/icons-material/Add';\nimport RefreshIcon from '@mui/icons-material/Refresh';\nimport LooksOneIcon from '@mui/icons-material/LooksOne';\nimport PressButtonIcon from '@mui/icons-material/RoomService';\nimport IconError from '@mui/icons-material/Error';\nimport IconDisconnected from '@mui/icons-material/WifiOff';\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 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 Utils from './Utils';\nimport TabContainer from './TabContainer';\nimport TabContent from './TabContent';\nimport TabHeader from './TabHeader';\n\nfunction useWidth() {\n const theme = useTheme();\n const keys = [...theme.breakpoints.keys].reverse();\n return (\n keys.reduce((output, key) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const matches = useMediaQuery(theme.breakpoints.up(key));\n return !output && matches ? key : output;\n }, null) || 'xs'\n );\n }\n\n// FIXME checkout https://mui.com/components/use-media-query/#migrating-from-withwidth\nconst withWidth = () => (WrappedComponent) => (props) => {\n const width = useWidth();\n return <WrappedComponent {...props} width={width} />\n};\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 },\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)}px)`,\n height: `calc(100% - 38px)`,\n overflow: 'auto'\n },\n tableRow: {\n paddingLeft: theme.spacing(1),\n height: ROW_HEIGHT,\n lineHeight: ROW_HEIGHT + 'px',\n verticalAlign: 'top',\n userSelect: 'none',\n width: '100%',\n '&:hover': {\n background: `${theme.palette.mode === 'dark' ? theme.palette.primary.dark : theme.palette.primary.light} !important`,\n color: Utils.invertColor(theme.palette.primary.main, true),\n },\n whiteSpace: 'nowrap',\n flexWrap: 'nowrap',\n },\n tableRowLines: {\n borderBottom: `1px solid ${theme.palette.mode === 'dark' ? '#8888882e' : '#8888882e'}`,\n },\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 cellCopyButton: {\n // color: 'white',\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 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 },\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 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 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 + theme.spacing(2),\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});\n\nfunction generateFile(filename, obj) {\n let 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}\n\nfunction applyFilter(item, filters, lang, objects, context, counter, customFilter, selectedTypes) {\n let filteredOut = false;\n if (!context) {\n context = {};\n if (filters.id) {\n context.id = filters.id.toLowerCase();\n }\n if (filters.name) {\n context.name = filters.name.toLowerCase();\n }\n if (filters.type) {\n context.type = filters.type.toLowerCase();\n }\n if (filters.custom) {\n context.custom = filters.custom.toLowerCase();\n }\n if (filters.role) {\n context.role = filters.role.toLowerCase();\n }\n if (filters.room) {\n context.room = (objects[filters.room] && objects[filters.room].common && objects[filters.room].common.members) || [];\n }\n if (filters.func) {\n context.func = (objects[filters.func] && objects[filters.func].common && objects[filters.func].common.members) || [];\n }\n }\n\n const data = item.data;\n\n if (data && data.id) {\n const common = data.obj && data.obj.common;\n\n if (customFilter) {\n if (customFilter.type && customFilter.type !== data.obj.type) {\n filteredOut = true;\n } else\n if (customFilter.common && customFilter.common.custom) {\n if (!common || !common.custom || (customFilter.common.custom !== true && !common.custom[customFilter.common.custom])) {\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 (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.indexOf(context.id) === -1;\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 filteredOut = !common.custom || !common.custom[context.custom];\n } else {\n filteredOut = true;\n }\n }\n }\n data.visible = !filteredOut;\n data.hasVisibleChildren = false;\n if (item.children) {\n item.children.forEach(_item => {\n const visible = applyFilter(_item, filters, lang, objects, context, counter, customFilter, selectedTypes);\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 buildTree(objects, options) {\n options = options || {};\n const imagePrefix = options.imagePrefix || '.';\n\n const ids = Object.keys(objects);\n\n ids.sort((a, b) => {\n if (a === b) return 0;\n a = a.replace(/\\./g, '!!!');\n b = b.replace(/\\./g, '!!!');\n if (a > b) return 1;\n return -1;\n });\n\n // find empty nodes and create names for it\n let currentPathArr = [];\n let currentPath = '';\n let currentPathLen = 0;\n let root = {\n data: {\n name: '',\n id: ''\n },\n children: []\n };\n\n let info = {\n funcEnums: [],\n roomEnums: [],\n roles: [],\n ids: [],\n types: [],\n objects,\n customs: [],\n enums: [],\n hasSomeCustoms: false,\n };\n\n let croot = root;\n\n for (let i = 0; i < ids.length; i++) {\n const id = ids[i];\n if (!id) {\n continue;\n }\n const obj = objects[id];\n const parts = id.split('.');\n\n if (obj.type && !info.types.includes(obj.type)) {\n info.types.push(obj.type);\n }\n\n if (obj) {\n const common = obj.common;\n const role = common && common.role;\n if (role && !info.roles.includes(role)) {\n info.roles.push(role);\n } else if (id.startsWith('enum.rooms.')) {\n info.roomEnums.push(id);\n info.enums.push(id);\n } else if (id.startsWith('enum.functions.')) {\n info.funcEnums.push(id);\n info.enums.push(id);\n } else if (obj.type === 'enum') {\n info.enums.push(id);\n } else if (obj.type === 'instance' && common && (common.supportCustoms || common.adminUI?.custom)) {\n info.hasSomeCustoms = true;\n info.customs.push(id.substring('system.adapter.'.length));\n }\n }\n\n info.ids.push(id);\n\n let repeat;\n\n // if next level\n do {\n repeat = false;\n\n // If current level is still OK and we can add ID to children\n if (!currentPath || id.startsWith(currentPath + '.')) {\n // if more than one level added\n if (parts.length - currentPathLen > 1) {\n let curPath = currentPath;\n // generate missing levels\n for (let k = currentPathLen; k < parts.length - 1; k++) {\n curPath += (curPath ? '.' : '') + parts[k];\n // level does not exist\n if (!binarySearch(info.ids, curPath)) {\n const _croot = {\n data: {\n name: parts[k],\n parent: croot,\n id: curPath,\n obj: objects[curPath],\n level: k,\n icon: getSystemIcon(objects, curPath, k, imagePrefix),\n generated: true,\n }\n };\n\n croot.children = croot.children || [];\n croot.children.push(_croot);\n croot = _croot;\n info.ids.push(curPath); // IDs will be added by alphabet\n } else {\n croot = croot.children.find(item => item.data.name === parts[k]);\n }\n }\n }\n\n const _croot = {\n data: {\n name: parts[parts.length - 1],\n title: getName(obj && obj.common && obj.common.name, options.lang),\n obj,\n parent: croot,\n icon: getSelectIdIcon(objects, id, imagePrefix) || getSystemIcon(objects, id, 0, imagePrefix),\n id,\n hasCustoms: obj.common?.custom && Object.keys(obj.common.custom).length,\n level: parts.length - 1,\n generated: false,\n button: obj.type === 'state' && obj.common?.role && typeof obj.common.role === 'string' && obj.common.role.startsWith('button') && obj.common?.write !== false,\n }\n };\n\n croot.children = croot.children || [];\n croot.children.push(_croot);\n croot = _croot;\n\n currentPathLen = parts.length;\n currentPathArr = parts;\n currentPath = id;\n } else {\n let u = 0;\n\n while (currentPathArr[u] === parts[u]) {\n u++;\n }\n\n if (u > 0) {\n let move = currentPathArr.length;\n currentPathArr = currentPathArr.splice(0, u);\n currentPathLen = u;\n currentPath = currentPathArr.join('.');\n while (move > u) {\n croot = croot.data.parent;\n move--;\n }\n } else {\n croot = root;\n currentPathArr = [];\n currentPath = '';\n currentPathLen = 0;\n }\n repeat = true;\n }\n } while (repeat);\n }\n\n info.roomEnums.sort((a, b) => {\n const aName = getName(objects[a]?.common?.name || a.split('.').pop());\n const bName = getName(objects[b]?.common?.name || b.split('.').pop());\n if (aName > bName) {\n return 1;\n } else if (aName < bName) {\n return -1;\n } else {\n return 0;\n }\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 } else if (aName < bName) {\n return -1;\n } else {\n return 0;\n }\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 } else {\n let found;\n for (let i = 0; i < root.children.length; i++) {\n const _id = root.children[i].data.id;\n if (_id === _path) {\n found = root.children[i];\n break;\n } else\n if (_id > _path) {\n break;\n }\n }\n if (found) {\n return findNode(found, id, _parts, _path + '.' + _parts[_level + 1], _level + 1);\n } else {\n return null;\n }\n }\n}\n\nfunction getName(name, lang) {\n if (name && typeof name === 'object') {\n return (name[lang] || name.en || '').toString();\n } else {\n return (name || '').toString();\n }\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: 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: 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/*function 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\nfunction formatValue(id, state, obj, texts, dateFormat, isFloatComma) {\n const states = Utils.getStates(obj);\n const isCommon = obj.common;\n\n const valText = {};\n let v = (isCommon && isCommon.type === 'file') ? '[file]' : (!state || state.val === null ? '(null)' : (state.val === undefined ? '[undef]' : state.val));\n const type = typeof v;\n\n if (isCommon && isCommon.role && typeof isCommon.role === 'string' && isCommon.role.match(/^value\\.time|^date/)) {\n if (v && typeof v === 'string') {\n if (v.length === 13) { // (length of \"1647597254924\") warning, this solution only works till Nov 20 2286 18:46:39CET\n v = new Date(parseInt(v, 10)).toString();\n } else if (v.length === 10) { // YYYY.MM.DD\n const parts = v.split(/[-.]/);\n if (parts.length === 3) {\n if (parts[0].length === 4) { // YYYY.MM.DD\n v = new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) + 1, parseInt(parts[2], 10));\n } else if (parts[0].length === 4) { // DD.MM.YYYY\n v = new Date(parseInt(parts[2], 10), parseInt(parts[1], 10) + 1, parseInt(parts[0], 10));\n }\n } else {\n v = new Date(v).toString(); // Let the browser convert it somehow\n }\n } else if (v.length === 8) { // YY.MM.DD\n const parts = v.split(/[-.]/);\n if (parts.length === 3) {\n v = new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) + 1, parseInt(parts[2], 10));\n } else {\n v = new Date(v).toString(); // Let the browser convert it somehow\n }\n } else {\n v = new Date(v).toString(); // Let the browser convert it somehow\n }\n } else {\n if (v === null || v === 'null') {\n v = 'null';\n } else if (v === undefined) {\n v = 'undefined';\n } else {\n v = v ? new Date(v).toString() : v;\n }\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 if (states && states[v] !== undefined) {\n valText.s = v;\n v = states[valText.s];\n }\n\n let valFull;\n if (isCommon && isCommon.unit) {\n valText.u = isCommon.unit;\n }\n valFull = [{ t: texts.value, v }];\n\n if (state) {\n if (state.ack !== undefined) {\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 || '');\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 || '');\n if (user.startsWith('system.user.')) {\n user = user.substring(12);\n }\n valFull.push({ t: texts.user, v: user });\n }\n valFull.push({ t: texts.quality, v: Utils.quality2text(state.q || 0).join(', '), nbr: true });\n }\n\n valText.v = v;\n\n return {\n valText,\n valFull,\n style: { color: state?.ack ? (state.q ? '#ffa500' : '') : '#ff2222c9' }\n };\n}\n\nfunction getSelectIdIcon(objects, id, imagePrefix) {\n imagePrefix = imagePrefix || '.';//http://localhost:8081';\n let src = '';\n const _id_ = 'system.adapter.' + id;\n const aIcon = id && objects[_id_] && objects[_id_].common && objects[_id_].common.icon;\n if (aIcon) {\n // if not BASE64\n if (!aIcon.startsWith('data:image/')) {\n if (aIcon.includes('.')) {\n src = `${imagePrefix}/adapter/${objects[_id_].common.name}/${aIcon}`;\n } else if (aIcon && aIcon.length < 3) {\n return aIcon; // utf-8\n } else {\n return null; //'<i class=\"material-icons iob-list-icon\">' + objects[_id_].common.icon + '</i>';\n }\n } else {\n if (aIcon.startsWith('data:image/svg')) {\n src = <SVG src={aIcon} width={28} height={28} />;\n } else {\n src = aIcon;\n }\n }\n } else {\n const common = objects[id] && objects[id].common;\n\n if (common) {\n const cIcon = common.icon;\n if (cIcon) {\n if (!cIcon.startsWith('data:image/')) {\n if (cIcon.includes('.')) {\n let instance;\n if (objects[id].type === 'instance' || objects[id].type === 'adapter') {\n src = `${imagePrefix}/adapter/${common.name}/${cIcon}`;\n } else if (id && id.startsWith('system.adapter.')) {\n instance = id.split('.', 3);\n if (cIcon[0] === '/') {\n instance[2] += cIcon;\n } else {\n instance[2] += '/' + cIcon;\n }\n src = `${imagePrefix}/adapter/${instance[2]}`;\n } else {\n instance = id.split('.', 2);\n if (cIcon[0] === '/') {\n instance[0] += cIcon;\n } else {\n instance[0] += '/' + cIcon;\n }\n src = `${imagePrefix}/adapter/${instance[0]}`;\n }\n } else if (aIcon && aIcon.length < 3) {\n return aIcon; // utf-8\n } else {\n return null;\n }\n } else {\n // base 64 image\n if (cIcon.startsWith('data:image/svg')) {\n src = <SVG src={cIcon} width={28} height={28} />;\n } else {\n src = cIcon;\n }\n }\n }\n }\n }\n\n return src || null;\n}\n\nfunction prepareSparkData(values, from) {\n // set every hour one point\n let time = from;\n let i = 1;\n const v = [];\n\n while (i < values.length && time < from + 25 * 3600000) {\n // find the interval\n while (values[i - 1].ts < time && time <= values[i].ts && i < values.length) {\n i++;\n }\n if (i === 1 && values[i - 1].ts >= time) {\n // assume the value was always null\n v.push(0);\n } else\n if (i < values.length) {\n if (typeof values[i].val === 'boolean' || typeof values[i - 1].val === 'boolean') {\n v.push(values[i].val ? 1 : 0);\n } else {\n // remove nulls\n values[i - 1].val = values[i - 1].val || 0;\n values[i].val = values[i].val || 0;\n // interpolate\n let val = values[i - 1].val + (values[i].val - values[i - 1].val) * (time - values[i - 1].ts) / (values[i].ts - values[i - 1].ts);\n\n v.push(val);\n }\n }\n\n time += 3600000;\n }\n\n return v;\n}\n\n/**\n * @type {import('./types').ObjectBrowserTableFilter}\n */\nconst DEFAULT_FILTER = {\n id: '',\n name: '',\n room: '',\n func: '',\n role: '',\n type: '',\n custom: '',\n expertMode: false\n};\n\nconst ITEM_IMAGES = {\n state: <IconState className=\"itemIcon\" />,\n channel: <IconChannel className=\"itemIcon\" />,\n device: <IconDevice className=\"itemIcon\" />,\n adapter: <IconAdapter className=\"itemIcon\" />,\n meta: <IconMeta className=\"itemIcon\" />,\n instance: <IconInstance className=\"itemIcon\" style={{ color: '#7da7ff' }} />,\n enum: <IconEnum className=\"itemIcon\" />,\n chart: <IconChart className=\"itemIcon\" />,\n config: <IconConfig className=\"itemIcon\" />,\n group: <IconGroup className=\"itemIcon\" />,\n user: <IconUser className=\"itemIcon\" />,\n host: <IconHost className=\"itemIcon\" />,\n schedule: <IconSchedule className=\"itemIcon\" />,\n script: <IconScript className=\"itemIcon\" />,\n folder: <IconClosed className=\"itemIcon itemIconFolder\" />,\n};\n\nconst StyledBadge = withStyles(theme => ({\n badge: {\n right: 3,\n top: 3,\n border: `2px solid ${theme.palette.background.paper}`,\n padding: '0 4px',\n },\n}))(Badge);\n\nconst SCREEN_WIDTHS = {\n // extra-small: 0px\n xs: { idWidth: '100%', fields: [], widths: {} },\n // small: 600px\n sm: { idWidth: 300, fields: ['room', 'val'], widths: { room: 100, val: 200 } },\n // medium: 960px\n md: { idWidth: 300, fields: ['room', 'func', 'val', 'buttons'], widths: { name: 200, room: 150, func: 150, val: 120, buttons: 120 } },\n // large: 1280px\n lg: {\n idWidth: 300, fields: ['name', 'type', 'role', 'room', 'func', 'val', 'buttons', 'changedFrom', 'qualityCode', 'timestamp', 'lastChange'],\n widths: {\n name: 300,\n type: 80,\n role: 120,\n room: 180,\n func: 180,\n val: 140,\n buttons: 120,\n changedFrom: 120,\n qualityCode: 100,\n timestamp: 165,\n lastChange: 165\n }\n },\n ///////////////\n // extra-large: 1920px\n xl: {\n idWidth: 650, fields: ['name', 'type', 'role', 'room', 'func', 'val', 'buttons', 'changedFrom', 'qualityCode', 'timestamp', 'lastChange'],\n widths: {\n name: 400,\n type: 80,\n role: 120,\n room: 180,\n func: 180,\n val: 140,\n buttons: 120,\n changedFrom: 120,\n qualityCode: 100,\n timestamp: 170,\n lastChange: 170\n }\n },\n};\n\nlet objectsAlreadyLoaded = false;\n\n/**\n * @extends {React.Component<import('./types').ObjectBrowserProps>}\n */\nclass ObjectBrowser extends Component {\n /**\n * @param {import('./types').ObjectBrowserProps} props\n */\n constructor(props) {\n super(props);\n\n this.lastSelectedItems = window.localStorage.getItem(`${props.dialogName || 'App'}.objectSelected`) || '[]';\n try {\n this.lastSelectedItems = JSON.parse(this.lastSelectedItems);\n if (typeof this.lastSelectedItems !== 'object') {\n this.lastSelectedItems = [this.lastSelectedItems];\n }\n this.lastSelectedItems = this.lastSelectedItems.filter(id => id);\n } catch (e) {\n\n }\n\n let expanded = window.localStorage.getItem(`${props.dialogName || 'App'}.objectExpanded`) || '[]';\n try {\n expanded = JSON.parse(expanded);\n } catch (e) {\n expanded = [];\n }\n\n let filter =\n props.defaultFilters ||\n window.localStorage.getItem(`${props.dialogName || 'App'}.objectFilter`) ||\n Object.assign({}, DEFAULT_FILTER);\n\n if (typeof filter === 'string') {\n try {\n filter = JSON.parse(filter);\n } catch (e) {\n filter = Object.assign({}, DEFAULT_FILTER);\n }\n }\n\n filter.expertMode = props.expertMode !== undefined ? props.expertMode : (window.sessionStorage.getItem('App.expertMode') === 'true');\n this.tableRef = createRef();\n this.filterRefs = {};\n\n Object.keys(DEFAULT_FILTER).forEach(name =>\n this.filterRefs[name] = createRef());\n\n this.lastAppliedFilter = null;\n this.pausedSubscribes = false;\n\n this.selectedFound = false;\n this.root = null;\n this.states = {};\n this.subscribes = [];\n this.statesUpdateTimer = null;\n this.objectsUpdateTimer = null;\n\n this.visibleCols = props.columns || SCREEN_WIDTHS[props.width].fields;\n // remove type column if only one type must be selected\n if (props.types && props.types.length === 1) {\n const pos = this.visibleCols.indexOf('type');\n pos !== -1 && this.visibleCols.splice(pos, 1);\n }\n\n this.possibleCols = SCREEN_WIDTHS.xl.fields;\n\n let customDialog = null;\n\n if (props.router) {\n const location = props.router.getLocation();\n if (location.id && location.dialog === 'customs') {\n customDialog = [location.id];\n this.pauseSubscribe(true);\n }\n }\n\n let selected = (props.selected || '');\n if (typeof selected !== 'object') {\n selected = [selected];\n }\n selected = selected.map(id => id.replace(/[\"']/g, '')).filter(id => id);\n\n let columns = window.localStorage.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 = 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.getItem((props.dialogName || 'App') + '.foldersFirst');\n if (foldersFirst === 'false') {\n foldersFirst = false;\n } else if (foldersFirst === 'true') {\n foldersFirst = true;\n } else {\n foldersFirst = props.foldersFirst === undefined ? true : props.foldersFirst;\n }\n\n const statesView = this.props.objectStatesView ? JSON.parse(window.localStorage.getItem((props.dialogName || 'App') + '.objectStatesView')) || false : false;\n this.state = {\n loaded: false,\n foldersFirst,\n selected,\n selectedNonObject: window.localStorage.getItem(`${props.dialogName || 'App'}.selectedNonObject`) || '',\n filter,\n filterKey: 0,\n depth: 0,\n expandAllVisible: false,\n expanded,\n toast: '',\n lang: props.lang,\n scrollBarWidth: 16,\n customDialog,\n editObjectDialog: '',\n viewFileDialog: '',\n enumDialog: null,\n roleDialog: null,\n modalEmptyId: null,\n statesView,\n columns,\n columnsForAdmin: null,\n columnsSelectorShow: false,\n columnsAuto: window.localStorage.getItem(`${props.dialogName || 'App'}.columnsAuto`) !== 'false',\n columnsWidths,\n columnsDialogTransparent: 100,\n columnsEditCustomDialog: null,\n customColumnDialogValueChanged: false,\n showExportDialog: false,\n linesEnabled: window.localStorage.getItem(`${props.dialogName || 'App'}.lines`) === 'true',\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 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 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 this.calculateColumnsVisibility();\n }\n\n loadAllObjects(update) {\n const props = this.props;\n\n return new Promise(resolve => this.setState({updating: true}, () => resolve()))\n .then(() => this.props.objectsWorker ?\n this.props.objectsWorker.getObjects(update) :\n props.socket.getObjects(update, true))\n .then(objects => {\n this.systemConfig = objects['system.config'] || {};\n this.systemConfig.common = this.systemConfig.common || {};\n this.systemConfig.common.defaultNewAcl = this.systemConfig.common.defaultNewAcl || {};\n this.systemConfig.common.defaultNewAcl.owner = this.systemConfig.common.defaultNewAcl.owner || 'system.user.admin';\n this.systemConfig.common.defaultNewAcl.ownerGroup = this.systemConfig.common.defaultNewAcl.ownerGroup || 'system.group.administrator';\n if (typeof this.systemConfig.common.defaultNewAcl.state !== 'number') {\n // TODO: may be convert here from string\n this.systemConfig.common.defaultNewAcl.state = 0x664;\n }\n if (typeof this.systemConfig.common.defaultNewAcl.object !== 'number') {\n // TODO: may be convert here from string\n this.systemConfig.common.defaultNewAcl.state = 0x664;\n }\n\n if (typeof props.filterFunc === 'function') {\n this.objects = {};\n const keys = Object.keys(objects);\n for (let k = 0; k < keys.length; k++) {\n try {\n if (props.filterFunc(objects[keys[k]])) {\n this.objects[keys[k]] = objects[keys[k]];\n }\n } catch (e) {\n console.log(`Error by filtering of \"${keys[k]}\": ${e}`);\n }\n }\n } else\n if (props.types) {\n this.objects = {};\n Object.keys(objects).forEach(id => {\n const type = objects[id] && objects[id].type;\n if (type && (\n type === 'channel' ||\n type === 'device' ||\n type === 'enum' ||\n type === 'folder' ||\n type === 'adapter' ||\n type === 'instance' ||\n props.types.includes(type))) {\n this.objects[id] = objects[id];\n }\n });\n } else {\n this.objects = objects;\n }\n\n // read default history\n this.defaultHistory = this.systemConfig.common.defaultHistory;\n if (this.defaultHistory) {\n props.socket.getState(`system.adapter.${this.defaultHistory}.alive`)\n .then(state => {\n if (!state || !state.val) {\n this.defaultHistory = '';\n }\n })\n .catch(e => window.alert('Cannot get state: ' + e));\n }\n\n return this.getAdditionalColumns();\n })\n .then(columnsForAdmin => {\n this.calculateColumnsVisibility(null, null, columnsForAdmin);\n\n const { info, root } = buildTree(this.objects, this.props);\n this.root = root;\n this.info = info;\n\n // Show first selected item\n let node = this.state.selected && this.state.selected.length && findNode(this.root, this.state.selected[0]);\n\n this.lastAppliedFilter = null;\n\n // If selected ID is not visible, reset filter\n if (node && !applyFilter(node, this.state.filter, this.state.lang, this.objects, null, null, props.customFilter, props.types)) {\n // reset filter\n this.setState({ filter: Object.assign({}, DEFAULT_FILTER), columnsForAdmin }, () => {\n this.setState({ loaded: true, updating: false }, () =>\n this.expandAllSelected(() =>\n this.onAfterSelect()));\n });\n } else {\n this.setState({ loaded: true, updating: false, columnsForAdmin }, () =>\n this.expandAllSelected(() =>\n this.onAfterSelect()));\n }\n })\n .catch(e => this.showError(e));\n }\n\n /**\n * @private\n * @param {ioBroker.EmptyCallback} cb\n */\n expandAllSelected(cb) {\n let expanded = [...this.state.expanded];\n let changed = false;\n this.state.selected.forEach(id => {\n const parts = id.split('.');\n let 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.setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify(expanded));\n this.setState({ expanded }, cb)\n } else {\n cb && cb();\n }\n }\n\n /**\n * @private\n * @param {boolean} [isDouble]\n */\n onAfterSelect(isDouble) {\n this.lastSelectedItems = [...this.state.selected];\n if (this.state.selected && this.state.selected.length) {\n window.localStorage.setItem(`${this.props.dialogName || 'App'}.objectSelected`, JSON.stringify(this.lastSelectedItems));\n\n const name = this.lastSelectedItems.length === 1 ? Utils.getObjectName(this.objects, this.lastSelectedItems[0], null, { language: this.state.lang }) : '';\n this.props.onSelect && this.props.onSelect(this.lastSelectedItems, name, isDouble);\n } else {\n window.localStorage.setItem(`${this.props.dialogName || 'App'}.objectSelected`, '');\n if (this.state.selected.length) {\n this.setState({ selected: [] }, () => this.props.onSelect && this.props.onSelect([], ''));\n } else {\n this.props.onSelect && this.props.onSelect([], '');\n }\n }\n }\n\n /**\n * @private\n * @param {import('./types').ObjectBrowserProps} props\n * @param {any} state\n */\n static getDerivedStateFromProps(props, state) {\n const newState = {};\n let changed = false;\n if (props.expertMode !== undefined && props.expertMode !== state.filter.expertMode) {\n changed = true;\n newState.filter = Object.assign({}, state.filter);\n newState.filter.expertMode = props.expertMode;\n }\n return changed ? newState : null;\n }\n\n /**\n * Called when component is mounted.\n */\n componentDidMount() {\n this.loadAllObjects(!objectsAlreadyLoaded)\n .then(() => {\n if (this.props.objectsWorker) {\n this.props.objectsWorker.registerHandler(this.onObjectChange);\n } else {\n this.props.socket.subscribeObject('*', this.onObjectChange);\n }\n\n objectsAlreadyLoaded = true;\n });\n }\n\n /**\n * Called when component is unmounted.\n */\n componentWillUnmount() {\n if (this.props.objectsWorker) {\n this.props.objectsWorker.unregisterHandler(this.onObjectChange, true);\n } else {\n this.props.socket.unsubscribeObject('*', this.onObjectChange);\n }\n\n // remove all subscribes\n this.subscribes.forEach(pattern => {\n console.log('- unsubscribe ' + pattern);\n this.props.socket.unsubscribeState(pattern, this.onStateChange);\n });\n\n this.subscribes = [];\n this.objects = {};\n }\n\n /**\n * Called when component is mounted.\n */\n refreshComponent() {\n // remove all subscribes\n this.subscribes.forEach(pattern => {\n console.log('- unsubscribe ' + pattern);\n this.props.socket.unsubscribeState(pattern, this.onStateChange);\n });\n\n this.subscribes = [];\n\n this.loadAllObjects(true)\n .then(() => console.log('updated!'));\n }\n\n /**\n * Renders the error dialog.\n * @returns {JSX.Element | null}\n */\n renderErrorDialog() {\n return this.state.error ? <Dialog\n open={true}\n maxWidth=\"sm\"\n fullWidth={true}\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 >{this.props.t('ra_Ok')}</Button>\n </DialogActions>\n </Dialog> : null;\n }\n\n /**\n * Show the error dialog.\n * @param {any} error\n */\n showError(error) {\n this.setState({ error: typeof error === 'object' ? (error && typeof error.toString === 'function' ? error.toString() : JSON.stringify(error)) : error });\n }\n\n /**\n * Called when an item is selected/deselected.\n * @param {string} toggleItem\n * @param {boolean} [isDouble]\n */\n onSelect(toggleItem, isDouble) {\n if (!this.props.multiSelect) {\n if (this.objects[toggleItem] && (!this.props.types || this.props.types.includes(this.objects[toggleItem].type))) {\n window.localStorage.removeItem(`${this.props.dialogName || 'App'}.selectedNonObject`);\n if (this.state.selected[0] !== toggleItem) {\n this.setState({ selected: [toggleItem], selectedNonObject: '' }, () =>\n this.onAfterSelect(isDouble));\n } else if (isDouble && this.props.onSelect) {\n this.onAfterSelect(isDouble);\n }\n } else {\n window.localStorage.setItem(`${this.props.dialogName || 'App'}.selectedNonObject`, toggleItem);\n this.setState({ selected: [], selectedNonObject: toggleItem }, () =>\n this.onAfterSelect());\n }\n } else {\n if (this.objects[toggleItem] && (!this.props.types || this.props.types.includes(this.objects[toggleItem].type))) {\n window.localStorage.removeItem(`${this.props.dialogName || 'App'}.selectedNonObject`);\n\n const selected = [...this.state.selected];\n const pos = selected.indexOf(toggleItem);\n if (pos === -1) {\n selected.push(toggleItem);\n selected.sort();\n } else if (!isDouble) {\n selected.splice(pos, 1);\n }\n\n this.setState({ selected, selectedNonObject: '' }, () =>\n this.onAfterSelect(isDouble));\n }\n }\n }\n\n /**\n * @private\n * @param {boolean} isLast\n */\n _renderDefinedList(isLast) {\n const cols = [...this.possibleCols];\n cols.unshift('id');\n if (this.props.columns && !this.props.columns.includes('buttons')) {\n const pos = cols.indexOf('buttons');\n if (pos !== -1) {\n cols.splice(pos, 1);\n }\n }\n return cols\n .filter(id => (isLast && (id === 'val' || id === 'buttons')) || (!isLast && id !== 'val' && id !== 'buttons'))\n .map(id =>\n <ListItem button 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.setItem((this.props.dialogName || 'App') + '.columns', JSON.stringify(columns));\n this.calculateColumnsVisibility(null, columns);\n this.setState({ columns });\n }\n }} key={id}>\n {/* <ListItemIcon> */}\n <Checkbox\n edge=\"start\"\n disabled={id === 'id' || this.state.columnsAuto}\n checked={id === 'id' || (this.state.columnsAuto ? this.visibleCols.includes(id) : (this.state.columns && this.state.columns.includes(id)))}\n disableRipple\n />\n {/* </ListItemIcon> */}\n <ListItemText primary={this.texts['filter_' + id] || this.props.t('ra_' + id)} />\n <ListItemSecondaryAction>\n <FormControl variant=\"standard\" className={this.props.classes.columnsDialogInputWidth} style={{ marginTop: 0, marginBottom: 0 }} margin=\"dense\">\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.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 </ListItem>\n );\n }\n\n /**\n * Renders the columns selector.\n * @returns {JSX.Element | null}\n */\n renderColumnsSelectorDialog() {\n if (!this.state.columnsSelectorShow) {\n return null;\n } else {\n return <Dialog\n onClose={() => this.setState({ columnsSelectorShow: false })}\n open={true}\n classes={{ root: Utils.clsx(this.props.classes.dialogColumns, this.props.classes['transparent_' + this.state.columnsDialogTransparent]) }}\n >\n <DialogTitle className={this.props.classes.fontSizeTitle}>{this.props.t('ra_Configure visible columns')}</DialogTitle>\n <DialogContent className={this.props.classes.fontSizeTitle}>\n <FormControlLabel\n className={this.props.classes.switchColumnAuto}\n control={<Switch checked={this.state.columnsAuto} onChange={() => {\n window.localStorage.setItem((this.props.dialogName || 'App') + '.columnsAuto', this.state.columnsAuto ? 'false' : 'true');\n if (!this.state.columnsAuto) {\n this.calculateColumnsVisibility(true);\n this.setState({ columnsAuto: true });\n } else {\n if (!this.state.columns) {\n this.calculateColumnsVisibility(false, [...this.visibleCols]);\n this.setState({ columnsAuto: false, columns: [...this.visibleCols] });\n } else {\n this.calculateColumnsVisibility(false);\n this.setState({ columnsAuto: false });\n }\n }\n }} />}\n label={this.props.t('ra_Auto (no custom columns)')}\n />\n <FormControlLabel\n className={this.props.classes.switchColumnAuto}\n control={<Switch checked={this.state.foldersFirst} onChange={() => {\n window.localStorage.setItem((this.props.dialogName || 'App') + '.foldersFirst', this.state.foldersFirst ? 'false' : 'true');\n this.setState({ foldersFirst: !this.state.foldersFirst });\n }} />}\n label={this.props.t('ra_Folders always first')}\n />\n <FormControlLabel\n className={this.props.classes.switchColumnAuto}\n control={<Switch checked={this.state.linesEnabled} onChange={() => {\n window.localStorage.setItem((this.props.dialogName || 'App') + '.lines', this.state.linesEnabled ? 'false' : 'true');\n this.setState({ linesEnabled: !this.state.linesEnabled });\n }} />}\n label={this.props.t('ra_Show lines between rows')}\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 <List>\n {this._renderDefinedList(false)}\n\n {this.state.columnsForAdmin && Object.keys(this.state.columnsForAdmin).sort().map(adapter =>\n this.state.columnsForAdmin[adapter].map(column =>\n <ListItem button 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.setItem((this.props.dialogName || 'App') + '.columns', JSON.stringify(columns));\n this.setState({ columns });\n }\n }} key={adapter + '_' + column.name}>\n <ListItemIcon>\n <Checkbox\n disabled={this.state.columnsAuto}\n edge=\"start\"\n checked={!this.state.columnsAuto && this.state.columns && this.state.columns.includes('_' + adapter + '_' + column.path)}\n disableRipple\n />\n </ListItemIcon>\n <ListItemText primary={column.name + ' (' + adapter + ')'} />\n <ListItemSecondaryAction>\n <FormControl variant=\"standard\" className={this.props.classes.columnsDialogInputWidth} style={{ marginTop: 0, marginBottom: 0 }} margin=\"dense\">\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.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 </ListItem>\n )\n )}\n {this._renderDefinedList(true)}\n </List>\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n onClick={() => this.setState({ columnsSelectorShow: false })}\n color=\"primary\"\n startIcon={<IconClose />}\n >{this.texts['close']}</Button>\n </DialogActions>\n </Dialog>\n }\n }\n\n /**\n * @private\n */\n getAdditionalColumns() {\n return this.props.socket.getAdapters()\n .then(instances => {\n let columnsForAdmin = null;\n // find all additional columns\n instances.forEach(obj =>\n columnsForAdmin = this.parseObjectForAdmins(columnsForAdmin, obj));\n\n return columnsForAdmin;\n })\n .catch(e => {\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 } else if (_parts.length) {\n return this.findItem(id, _parts, item, _partyId);\n }\n } else {\n return null;\n }\n } else {\n return null;\n }\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 {\n if (this.statesUpdateTimer) {\n clearTimeout(this.statesUpdateTimer);\n this.statesUpdateTimer = null;\n }\n }\n };\n\n /**\n * @private\n * @param {{ [x: string]: any; }} columnsForAdmin\n * @param {any} obj\n */\n parseObjectForAdmins(columnsForAdmin, obj) {\n if (obj.common && obj.common.adminColumns && obj.common.name) {\n let columns = obj.common.adminColumns;\n if (typeof columns !== 'object') {\n columns = [columns];\n }\n columns = columns.map(item => {\n if (typeof item !== 'object') {\n return { path: item, name: item.split('.').pop() };\n }\n\n // string => array\n if (item.objTypes && typeof item.objTypes !== 'object') {\n item.objTypes = [item.objTypes];\n } else if (!item.objTypes) {\n item.objTypes = null;\n }\n\n if (!item.name && item.path) {\n return { path: item.path, name: item.path.split('.').pop(), width: item.width, edit: !!item.edit, type: item.type, objTypes: item.objTypes };\n }\n if (typeof item.name !== 'object' && item.path) {\n return { path: item.path, name: item.name, width: item.width, edit: !!item.edit, type: item.type, objTypes: item.objTypes };\n }\n if (!item.path) {\n console.warn(`Admin columns for ${obj._id} ignored, because path not found`);\n return null;\n } else {\n return { path: item.path, name: item.name[this.props.lang] || item.name.en, width: item.width, edit: !!item.edit, type: item.type, objTypes: item.objTypes };\n }\n }).filter(item => item);\n\n if (columns && columns.length) {\n columnsForAdmin = columnsForAdmin || {};\n columnsForAdmin[obj.common.name] = columns.sort((a, b) => a.path > b.path ? -1 : (a.path < b.path ? 1 : 0));\n }\n } else if (obj.common && obj.common.name && columnsForAdmin && columnsForAdmin[obj.common.name]) {\n delete columnsForAdmin[obj.common.name];\n }\n return columnsForAdmin;\n }\n\n /**\n * @param {string} id\n * @param {ioBroker.Object} obj\n * @param {import('./types').OldObject} oldObj\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 let 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 } else if (this.objects[event.id]) {\n delete this.objects[event.id];\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 let 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 } else if (this.objects[id]) {\n delete this.objects[id];\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 let 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.setItem('App.expertMode', value ? 'true' : 'false');\n }\n }\n\n filter = Object.assign({}, this.state.filter, filter);\n\n if (JSON.stringify(this.state.filter) !== JSON.stringify(filter)) {\n window.localStorage.setItem((this.props.dialogName || 'App') + '.objectFilter', JSON.stringify(filter));\n this.setState({ filter }, () =>\n this.props.onFilterChanged && this.props.onFilterChanged(filter));\n }\n }\n\n clearFilter() {\n let 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 filter = Object.assign({}, this.state.filter, filter);\n\n if (JSON.stringify(this.state.filter) !== JSON.stringify(filter)) {\n window.localStorage.setItem((this.props.dialogName || 'App') + '.objectFilter', JSON.stringify(filter));\n this.setState({ filter, filterKey: this.state.filterKey + 1 }, () =>\n this.props.onFilterChanged && this.props.onFilterChanged(filter));\n }\n }\n\n isFilterEmpty() {\n const someNotEmpty = Object.keys(this.state.filter).find(attr =>\n attr !== 'expertMode' && this.state.filter[attr]);\n return !someNotEmpty;\n }\n\n /**\n * @private\n * @param {string} name\n */\n getFilterInput(name) {\n return <FormControl\n className={Utils.clsx(this.props.classes.headerCellInput, this.props.classes.filterInput)}\n key={name + '_' + this.state.filterKey}\n //style={{ marginTop: 0, marginBottom: 0 }}\n margin=\"dense\"\n >\n <Input\n ref={this.filterRefs[name]}\n classes={{ underline: 'no-underline' }}\n id={name}\n placeholder={this.texts['filter_' + name]}\n defaultValue={this.state.filter[name]}\n onChange={e => {\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 style={{\n position: 'absolute',\n right: 0\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={e => {\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={true}\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 ? 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.setItem((this.props.dialogName || 'App') + '.objectFilter', JSON.stringify(newFilter));\n this.setState({ filter: newFilter, filterKey: this.state.filterKey + 1 }, () =>\n this.props.onFilterChanged && this.props.onFilterChanged(newFilter));\n }}\n >\n <IconClose />\n </IconButton>\n </div> : null}\n </div>;\n }\n\n /**\n * @private\n */\n getFilterSelectRole() {\n return this.getFilterSelect('role', this.info.roles);\n }\n\n /**\n * @private\n */\n getFilterSelectRoom() {\n const rooms = this.info.roomEnums.map(id => ({\n name: getName(this.objects[id]?.common?.name || id.split('.').pop()),\n value: id,\n icon: <Icon src={this.objects[id]?.common?.icon} className={this.props.classes.selectIcon}/>\n }));\n\n return this.getFilterSelect('room', rooms);\n }\n\n /**\n * @private\n */\n getFilterSelectFunction() {\n const func = this.info.funcEnums.map(id => ({\n name: getName((this.objects[id] && this.objects[id].common && this.objects[id].common.name) || id.split('.').pop()),\n value: id,\n icon: <Icon src={this.objects[id]?.common?.icon} className={this.props.classes.selectIcon}/>\n }));\n\n return this.getFilterSelect('func', func);\n }\n\n /**\n * @private\n */\n getFilterSelectType() {\n const types = this.info.types.map(type => ({\n name: type,\n value: type,\n icon: ITEM_IMAGES[type]\n }));\n\n return this.getFilterSelect('type', types);\n }\n\n /**\n * @private\n */\n getFilterSelectCustoms() {\n if (this.info.customs.length) {\n const customs = this.info.customs.map(id => ({\n name: id,\n value: id,\n icon: <Icon src={getSelectIdIcon(this.objects, id, this.imagePrefix)} className={this.props.classes.selectIcon}/>\n }));\n return this.getFilterSelect('custom', customs);\n } else {\n return null;\n }\n }\n\n /**\n * @private\n * @param {any} [root]\n * @param {any[]} [expanded]\n */\n onExpandAll(root, expanded) {\n root = root || this.root;\n expanded = expanded || [];\n\n root.children && root.children.forEach(item => {\n if (item.data.sumVisibility) {\n expanded.push(item.data.id);\n this.onExpandAll(item, expanded);\n }\n });\n\n if (root === this.root) {\n expanded.sort();\n window.localStorage.setItem((this.props.dialogName || 'App') + '.objectExpanded', JSON.stringify(expanded));\n\n this.setState({ expanded });\n }\n }\n\n /**\n * @private\n */\n onCollapseAll() {\n window.localStorage.setItem((this.props.dialogName || 'App') + '.objectExpanded', JSON.stringify([]));\n this.setState({ expanded: [], depth: 0 });\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 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.setItem((this.props.dialogName || 'App') + '.objectExpanded', JSON.stringify(expanded));\n this.setState({ depth, expanded });\n }\n }\n\n /**\n * @private\n */\n onStatesViewVisible() {\n const statesView = !this.state.statesView;\n window.localStorage.setItem((this.props.dialogName || 'App') + '.objectStatesView', JSON.stringify(statesView));\n this.setState({ statesView });\n }\n\n /**\n * @private\n */\n onCollapseVisible() {\n if (this.state.depth > 0) {\n const depth = this.state.depth - 1;\n const expanded = this.collapseDepth(depth, this.state.expanded);\n window.localStorage.setItem((this.props.dialogName || 'App') + '.objectExpanded', JSON.stringify(expanded));\n this.setState({ depth, expanded });\n }\n }\n\n /**\n * @private\n * @param {string} id\n */\n getEnumsForId = id => {\n let result = [];\n this.info.enums.forEach(_id => {\n if (this.objects[_id]?.common?.members?.includes(id)) {\n const en = {\n _id: this.objects[_id]._id,\n common: JSON.parse(JSON.stringify(this.objects[_id].common)),\n native: this.objects[_id].native,\n type: 'enum',\n };\n if (en.common) {\n delete en.common.members;\n delete en.common.custom;\n delete en.common.mobile;\n }\n result.push(en);\n }\n });\n\n return result.length ? result : undefined;\n };\n\n /**\n * @private\n * @param {array} enums\n * @param {string} objId\n */\n _createAllEnums = async (enums, objId) => {\n for (let e = 0; e < enums.length; e++) {\n let id = enums[e];\n let _enObj;\n if (typeof id === 'object') {\n _enObj = id;\n id = id._id;\n }\n let enObj = this.objects[id];\n if (!enObj) {\n enObj = _enObj || {\n _id: id,\n common: {\n name: id.split('.').pop(),\n members: [],\n },\n native: {}\n };\n\n enObj.common = enObj.common || {};\n enObj.common.members = [objId];\n\n await this.props.socket.setObject(id, enObj);\n } else if (!enObj.common?.members?.includes(objId)) {\n enObj.common = enObj.common || {};\n enObj.common.members = enObj.common.members || [];\n // add missing object\n enObj.common.members.push(objId);\n enObj.common.members.sort();\n await this.props.socket.setObject(id, enObj);\n }\n }\n }\n\n /**\n * @private\n * @param {any} callback\n */\n loadObjects = async objs => {\n if (objs) {\n for (let id in objs) {\n if (!objs.hasOwnProperty(id) || !objs[id]) {\n continue;\n }\n const obj = objs[id];\n let enums = null;\n if (obj && obj.common && obj.common.enums) {\n enums = obj.common.enums;\n delete obj.common.enums;\n } else {\n enums = null;\n }\n try {\n await this.props.socket.setObject(id, obj);\n enums && (await this._createAllEnums(enums, obj._id));\n if (obj.type === 'state') {\n try {\n const state = await this.props.socket.getState(obj._id);\n if (!state || state.val === null) {\n try {\n await this.props.socket.setState(obj._id, !obj.common || obj.common.def === undefined ? null : obj.common.def, true);\n } catch (e) {\n window.alert(`Cannot set state \"${obj._id}\": ${e}`);\n }\n }\n } catch (e) {\n window.alert(`Cannot read state \"${obj._id}\": ${e}`);\n }\n }\n } catch (error) {\n window.alert(error);\n }\n }\n }\n }\n\n _getSelectedIdsForExport() {\n if (this.state.selected.length || this.state.selectedNonObject) {\n const result = [];\n const keys = Object.keys(this.objects);\n keys.sort();\n const id = this.state.selected[0] || this.state.selectedNonObject;\n const idDot = id + '.';\n const idLen = idDot.length;\n for (let k = 0; k < keys.length; k++) {\n const key = keys[k];\n if (id === key || key.startsWith(idDot)) {\n result.push(key);\n }\n if (key.substring(0, idLen) > idDot) {\n break;\n }\n }\n\n return result;\n } else {\n return [];\n }\n }\n\n _exportObjects(isAll) {\n if (isAll) {\n generateFile('allObjects.json', this.objects);\n } else\n if (this.state.selected.length || this.state.selectedNonObject) {\n const result = {};\n const id = this.state.selected[0] || this.state.selectedNonObject;\n\n this._getSelectedIdsForExport().forEach(key => {\n result[key] = JSON.parse(JSON.stringify(this.objects[key]));\n // add enum information\n if (result[key].common) {\n const enums = this.getEnumsForId(key);\n if (enums) {\n result[key].common.enums = enums;\n }\n }\n });\n\n generateFile(id + '.json', result);\n } else {\n window.alert(this.props.t('ra_Save of objects-tree is not possible'));\n }\n }\n\n renderExportDialog() {\n if (this.state.showExportDialog === false) {\n return null;\n } else {\n return <Dialog open={true}>\n <DialogTitle>{this.props.t('Select type of export')}</DialogTitle>\n <DialogContent>\n <DialogContentText>\n {this.props.t('You can export all objects or just the selected branch.')}\n <br/>\n {this.props.t('Selected %s object(s)', this.state.showExportDialog)}\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button color=\"grey\" variant=\"outlined\" onClick={() => this.setState({showExportDialog: false}, () => this._exportObjects(true))}>{this.props.t('All objects')}</Button>\n <Button variant=\"contained\" autoFocus color=\"primary\" onClick={() => this.setState({showExportDialog: false}, () => this._exportObjects(false))}>{this.props.t('Only selected')}</Button>\n <Button color=\"grey\" variant=\"contained\" onClick={() => this.setState({showExportDialog: false})} startIcon={<IconClose/>}>{this.props.t('Cancel')}</Button>\n </DialogActions>\n </Dialog>;\n }\n }\n\n /**\n * @private\n * @param {object} evt\n */\n handleJsonUpload = evt => {\n let f = evt.target.files[0];\n if (f) {\n let r = new FileReader();\n r.onload = async e => {\n let contents = e.target.result;\n try {\n let json = JSON.parse(contents);\n let len = Object.keys(json).length;\n let id = json._id;\n if (id === undefined && len) {\n await this.loadObjects(json);\n window.alert(this.props.t('ra_%s object(s) processed', len));\n } else {\n // it is only one object in form\n // {\n // \"_id\": \"xxx\",\n // \"common\": \"yyy\",\n // \"native\": \"zzz\"\n // }\n if (!id) {\n return window.alert(this.props.t('ra_Invalid structure'));\n }\n try {\n let enums;\n if (json.common.enums) {\n enums = json.common.enums;\n delete json.common.enums;\n }\n await this.props.socket.setObject(json._id, json);\n if (json.type === 'state') {\n const state = await this.props.socket.getState(json._id);\n if (!state || state.val === null || state.val === undefined) {\n await this.props.socket.getState(json._id, json.common.def === undefined ? null : json.common.def, true);\n }\n }\n if (enums) {\n await this._createAllEnums(enums, json._id);\n }\n\n window.alert(this.props.t('ra_%s was imported', json._id));\n } catch (err) {\n window.alert(err);\n }\n }\n } catch (err) {\n window.alert(err);\n }\n };\n r.readAsText(f);\n } else {\n window.alert(this.props.t('ra_Failed to open JSON File'));\n }\n }\n\n toolTipObjectCreating = () => {\n const { t } = this.props;\n\n let value = [\n <div key={1}>{t('ra_Only following structures of objects are available:')}</div>,\n <div key={2}>{t('ra_Folder → State')}</div>,\n <div key={3}>{t('ra_Folder → Channel → State')}</div>,\n <div key={4}>{t('ra_Folder → Device → Channel → State')}</div>,\n <div key={5}>{t('ra_Device → Channel → State')}</div>,\n <div key={6}>{t('ra_Channel → State')}</div>,\n <div key={7} style={{height: 10}}/>,\n <div key={8}>{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}</div>,\n <div key={9}>{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}</div>,\n ];\n\n if (this.state.selected.length || this.state.selectedNonObject) {\n const id = this.state.selected[0] || this.state.selectedNonObject;\n if (id.split('.').length < 2 || (this.objects[id] && this.objects[id]?.type === 'state')) {\n } else {\n if (this.props.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 ];\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 ];\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 ];\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={7}>{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}</div>,\n <div key={8}>{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}</div>,\n ]\n }\n }\n }\n return value.length ? value : t('ra_Add new child object to selected parent');\n }\n\n /**\n * Renders the toolbar.\n * @returns {JSX.Element}\n */\n getToolbar() {\n let allowObjectCreation = false;\n if (this.state.selected.length || this.state.selectedNonObject) {\n const id = this.state.selected[0] || this.state.selectedNonObject;\n\n if (id.split('.').length < 2 || (this.objects[id] && this.objects[id].type === 'state')) {\n allowObjectCreation = false;\n } else {\n if (this.props.expertMode) {\n allowObjectCreation = true;\n } else if (id.startsWith('alias.0') || id.startsWith('0_userdata')) {\n allowObjectCreation = true;\n }\n }\n }\n\n return <div style={{\n display: 'flex',\n width: '100%',\n alignItems: 'center'\n }}>\n <div style={{\n display: 'flex',\n width: '100%',\n alignItems: 'center'\n }}>\n\n <Tooltip title={this.props.t('ra_Refresh tree')}>\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 &&\n <Tooltip title={this.props.t('ra_expertMode')}>\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 }\n {!this.props.disableColumnSelector &&\n <Tooltip title={this.props.t('ra_Configure visible columns')}>\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 }\n {this.state.expandAllVisible &&\n <Tooltip title={this.props.t('ra_Expand all nodes')}>\n <IconButton key=\"expandAll\" onClick={() => this.onExpandAll()} size=\"large\">\n <IconOpen />\n </IconButton>\n </Tooltip>\n }\n <Tooltip title={this.props.t('ra_Collapse all nodes')}>\n <IconButton key=\"collapseAll\" onClick={() => this.onCollapseAll()} size=\"large\">\n <IconClosed />\n </IconButton>\n </Tooltip>\n <Tooltip title={this.props.t('ra_Expand one step node')}>\n <IconButton\n key=\"expandVisible\"\n color=\"primary\"\n onClick={() => this.onExpandVisible()}\n size=\"large\"\n >\n <StyledBadge badgeContent={this.state.depth} color=\"secondary\">\n <IconOpen />\n </StyledBadge>\n </IconButton>\n </Tooltip>\n <Tooltip title={this.props.t('ra_Collapse one step node')}>\n <IconButton\n key=\"collapseVisible\"\n color=\"primary\"\n onClick={() => this.onCollapseVisible()}\n size=\"large\"\n >\n <StyledBadge badgeContent={this.state.depth} color=\"secondary\">\n <IconClosed />\n </StyledBadge>\n </IconButton>\n </Tooltip>\n {this.props.objectStatesView && <Tooltip title={this.props.t('ra_Toggle the states view')}>\n <IconButton onClick={() => this.onStatesViewVisible()} size=\"large\">\n <LooksOneIcon color={this.state.statesView ? 'primary' : 'inherit'} />\n </IconButton>\n </Tooltip>}\n\n {this.props.objectAddBoolean ?\n <Tooltip title={this.toolTipObjectCreating()}>\n <div>\n <IconButton\n disabled={!allowObjectCreation}\n onClick={() =>\n this.setState({ modalNewObj: true })}\n size=\"large\"\n >\n <AddIcon />\n </IconButton>\n </div>\n </Tooltip>\n : null\n }\n\n {this.props.objectImportExport &&\n <Tooltip title={this.props.t('ra_Add objects tree from JSON file')}>\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 }\n {this.props.objectImportExport && (!!this.state.selected.length || this.state.selectedNonObject) &&\n <Tooltip title={this.props.t('ra_Save objects tree as JSON file')}>\n <IconButton\n onClick={() => this.setState({showExportDialog: this._getSelectedIdsForExport().length})}\n size=\"large\"\n >\n <PublishIcon style={{ transform: 'rotate(180deg)' }} />\n </IconButton>\n </Tooltip>\n }\n </div>\n {!!this.props.objectBrowserEditObject && <div style={{ display: 'flex', whiteSpace: 'nowrap' }}>\n {`${this.props.t('ra_Objects')}: ${Object.keys(this.info.objects).length}, ${this.props.t('ra_States')}: ${Object.keys(this.info.objects).filter(el => this.info.objects[el].type === 'state').length}`}\n </div>}\n {this.props.objectEditBoolean &&\n <Tooltip title={this.props.t('ra_Edit custom config')}>\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.setItem((this.props.dialogName || 'App') + '.objectSelected', this.state.selected[0]);\n this.props.router && this.props.router.doNavigate(null, 'custom', this.state.selected[0]);\n }\n this.setState({ customDialog: ids });\n } else {\n this.setState({ toast: this.props.t('ra_please select object') });\n }\n }}\n size=\"large\"\n >\n <BuildIcon />\n </IconButton>\n </Tooltip>\n }\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.setItem((this.props.dialogName || 'App') + '.objectExpanded', JSON.stringify(expanded));\n\n this.setState({ expanded });\n }\n\n /**\n * @private\n * @param {Event} e\n * @param {string} text\n */\n onCopy(e, text) {\n e.stopPropagation();\n e.preventDefault();\n copy(text);\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 { value: '0x400', valueNum: 0x400, title: 'read', group: 'Owner' },\n { value: '0x200', valueNum: 0x200, title: 'write', group: 'Owner' },\n { value: '0x40', valueNum: 0x40, title: 'read', group: 'Group' },\n { value: '0x20', valueNum: 0x20, title: 'write', group: 'Group' },\n { value: '0x4', valueNum: 0x4, title: 'read', group: 'Everyone' },\n { value: '0x2', valueNum: 0x2, title: 'write', group: 'Everyone' }\n ];\n const arrayTooltipText = [];\n const funcRenderStateObject = (value = 'object') => {\n let rights = acl[value];\n check.forEach((el, i) => {\n if (rights & el.valueNum) {\n arrayTooltipText.push(<span key={value + i}>{this.texts['acl' + el.group + '_' + el.title + '_' + value]},\n <span className={value === 'object' ? this.props.classes.rightsObject : this.props.classes.rightsState}>\n {el.value}\n </span>\n </span>);\n }\n });\n }\n arrayTooltipText.push(<span key=\"group\">{this.texts.ownerGroup + ': ' + (acl.ownerGroup || '').replace('system.group.', '')}</span>);\n arrayTooltipText.push(<span key=\"owner\">{this.texts.ownerUser + ': ' + (acl.owner || '').replace('system.user.', '')}</span>);\n funcRenderStateObject();\n if (acl.state) {\n funcRenderStateObject('state');\n }\n return arrayTooltipText.length ? <span className={this.props.classes.tooltipAccessControl}>{arrayTooltipText.map(el => el)}</span> : '';\n }\n\n /**\n * @param {string} id\n * @param {{ data: { obj: { type: string; }; hasCustoms: any; }; }} item\n * @param {{ cellButtonsButton: string | undefined; cellButtonsButtonAlone: any; cellButtonsButtonIcon: string | undefined; cellButtonsButtonWithCustoms: any; }} classes\n */\n renderColumnButtons(id, item, classes) {\n if (!item.data.obj) {\n return this.props.onObjectDelete || this.props.objectEditOfAccessControl ? <div className={classes.buttonDiv}>\n {this.props.expertMode && this.props.objectEditOfAccessControl ? <IconButton\n className={Utils.clsx(classes.cellButtonsButton, classes.cellButtonsEmptyButton, classes.cellButtonMinWidth)}\n onClick={() =>\n this.setState({ modalEditOfAccess: true, modalEmptyId: id, modalEditOfAccessObjData: item.data })}\n size=\"large\">---</IconButton> : null}\n {this.props.onObjectDelete && item.children && item.children.length ? <IconButton\n className={Utils.clsx(classes.cellButtonsButton, classes.cellButtonsButtonAlone)}\n size=\"small\"\n aria-label=\"delete\"\n title={this.texts.deleteObject}\n onClick={() => this.props.onObjectDelete(id, !!(item.children && item.children.length), false)}\n >\n <IconDelete className={classes.cellButtonsButtonIcon} />\n </IconButton> : null}\n </div> : null;\n }\n\n item.data.aclTooltip = item.data.aclTooltip || this.renderTooltipAccessControl(item.data.obj.acl);\n\n const acl = item.data.obj.acl ? (item.data.obj.type === 'state' ? item.data.obj.acl.state : item.data.obj.acl.object) : 0;\n const aclSystemConfig = item.data.obj.acl && (item.data.obj.type === 'state' ? this.systemConfig.common.defaultNewAcl.state : this.systemConfig.common.defaultNewAcl.object);\n\n return [\n this.props.expertMode && this.props.objectEditOfAccessControl ? <Tooltip key=\"acl\" title={item.data.aclTooltip}><IconButton\n className={classes.cellButtonMinWidth}\n onClick={() =>\n this.setState({ modalEditOfAccess: true, modalEditOfAccessObjData: item.data })}\n size=\"large\"\n >\n <div className={classes.aclText}>{isNaN(Number(acl).toString(16)) ? Number(aclSystemConfig).toString(16) : Number(acl).toString(16)}</div>\n </IconButton></Tooltip> : <div key=\"aclEmpty\" className={classes.cellButtonMinWidth} />,\n <IconButton\n key=\"edit\"\n className={classes.cellButtonsButton}\n size=\"small\"\n aria-label=\"edit\"\n title={this.texts.editObject}\n onClick={() => {\n window.localStorage.setItem(`${this.props.dialogName || 'App'}.objectSelected`, id);\n this.setState({ editObjectDialog: id });\n }}\n >\n <IconEdit className={classes.cellButtonsButtonIcon} />\n </IconButton>,\n this.props.onObjectDelete && (item.children?.length || !item.data.obj.common?.dontDelete) ? <IconButton\n key=\"delete\"\n className={classes.cellButtonsButton}\n size=\"small\"\n aria-label=\"delete\"\n onClick={() => this.props.onObjectDelete(id, !!item.children?.length, !item.data.obj.common?.dontDelete)}\n title={this.texts.deleteObject}\n >\n <IconDelete className={classes.cellButtonsButtonIcon} />\n </IconButton> : null,\n this.props.objectCustomDialog && this.info.hasSomeCustoms && item.data.obj.type === 'state' && item.data.obj.common?.type !== 'file' ? <IconButton\n className={Utils.clsx(classes.cellButtonsButton, item.data.hasCustoms && classes.cellButtonsButtonWithCustoms)}\n key=\"custom\"\n size=\"small\"\n aria-label=\"config\"\n title={this.texts.customConfig}\n onClick={() => {\n window.localStorage.setItem((this.props.dialogName || 'App') + '.objectSelected', id);\n\n this.pauseSubscribe(true);\n this.props.router && this.props.router.doNavigate(null, 'customs', id);\n this.setState({ customDialog: [id] });\n }}\n >\n <IconConfig className={classes.cellButtonsButtonIcon} />\n </IconButton> : null,\n ];\n }\n\n /**\n * @private\n * @param {string} id\n */\n readHistory(id) {\n /*interface GetHistoryOptions {\n instance?: string;\n start?: number;\n end?: number;\n step?: number;\n count?: number;\n from?: boolean;\n ack?: boolean;\n q?: boolean;\n addID?: boolean;\n limit?: number;\n ignoreNull?: boolean;\n sessionId?: any;\n aggregate?: 'minmax' | 'min' | 'max' | 'average' | 'total' | 'count' | 'none';\n }*/\n if (window.sparkline &&\n this.defaultHistory &&\n this.objects[id] &&\n this.objects[id].common &&\n this.objects[id].common.custom &&\n this.objects[id].common.custom[this.defaultHistory]) {\n\n const now = new Date();\n now.setHours(now.getHours() - 24);\n now.setMinutes(0);\n now.setSeconds(0);\n now.setMilliseconds(0);\n let nowMs = now.getTime();\n\n this.props.socket.getHistory(id, {\n instance: this.defaultHistory,\n start: nowMs,\n end: Date.now(),\n step: 3600000,\n from: false,\n ack: false,\n q: false,\n addID: false,\n aggregate: 'minmax'\n })\n .then(values => {\n const sparks = window.document.getElementsByClassName('sparkline');\n\n for (let s = 0; s < sparks.length; s++) {\n if (sparks[s].dataset.id === id) {\n const v = prepareSparkData(values, nowMs);\n\n window.sparkline.sparkline(sparks[s], v);\n break;\n }\n }\n })\n .catch(e => this.showError(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 if (!item.data.obj || !this.states) {\n return null;\n }\n\n if (item.data.obj.common?.type === 'file') {\n return <div className={Utils.clsx(classes.cellValueText, classes.cellValueFile)}>[file]</div>;\n } else\n if (!this.states[id]) {\n if (item.data.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 } else {\n !this.recordStates.includes(id) && this.recordStates.push(id);\n }\n\n const state = this.states[id];\n let info = item.data.state;\n if (!info) {\n info = item.data.state = item.data.state || formatValue(id, state, item.data.obj, this.texts, this.props.dateFormat, this.props.isFloatComma);\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}>{item.t}: {item.v}</div>,\n //<div className={classes.cellValueTooltipValue} key={item.t + '_v'}>{item.v}</div>,\n !item.nbr ? <br key={item.t + '_br'} /> : null\n ];\n } else {\n return [\n <div className={classes.cellValueTooltipTitle} key={item.t}>{item.t}:</div>,\n <div className={classes.cellValueTooltipValue} key={item.t + '_v'}>{item.v}</div>,\n !item.nbr ? <br key={item.t + '_br'} /> : null\n ];\n }\n });\n\n if (this.defaultHistory && this.objects[id] && this.objects[id].common && this.objects[id].common.custom && this.objects[id].common.custom[this.defaultHistory]) {\n info.valFull.push(<svg key=\"sparkline\" className=\"sparkline\" data-id={id} style={{ fill: '#3d85de' }} width=\"200\" height=\"30\" strokeWidth=\"3\" />);\n }\n\n const copyText = info.valText.v || '';\n info.val = copyText;\n info.valText = [\n <span className={classes.newValue || classes.newValue} key={`${info.valText.v.toString()}valText`}>{info.valText.v.toString()}</span>,\n info.valText.u ? <span className={Utils.clsx(classes.cellValueTextUnit, classes.newValue)} key={`${info.valText.v.toString()}unit`}>{info.valText.u}</span> : null,\n info.valText.s !== undefined ? <span className={Utils.clsx(classes.cellValueTextState, classes.newValue)} key={`${info.valText.v.toString()}states`}>({info.valText.s})</span> : null,\n <IconCopy className={Utils.clsx(classes.cellButtonsValueButton, 'copyButton', classes.cellButtonsValueButtonCopy)} onClick={(e) => this.onCopy(e, copyText)} key=\"cc\" />,\n //<IconEdit className={ Utils.clsx(classes.cellButtonsValueButton, 'copyButton', classes.cellButtonsValueButtonEdit) } key=\"ce\" />\n ];\n }\n\n let val = info.valText;\n if (!this.props.expertMode && item.data.button) {\n val = <PressButtonIcon className={Utils.clsx(this.props.classes.cellValueButton, !this.states[id] || !this.states[id].val ? this.props.classes.cellValueButtonFalse : '')} />;\n }\n\n return <Tooltip\n key=\"value\"\n title={info.valFull}\n classes={{ tooltip: this.props.classes.cellValueTooltip, popper: this.props.classes.cellValueTooltipBox }}\n onOpen={() => this.readHistory(id)}\n >\n <div style={info.style} className={classes.cellValueText} >\n {val}\n </div>\n </Tooltip>;\n }\n\n /**\n * @private\n * @returns {undefined}\n */\n _syncEnum(id, enumIds, newArray, cb) {\n if (!enumIds || !enumIds.length) {\n return cb && cb();\n } else {\n const enumId = enumIds.pop();\n const promises = [];\n if (this.info.objects[enumId]?.common) {\n if (this.info.objects[enumId].common.members?.length) {\n const pos = this.info.objects[enumId].common.members.indexOf(id);\n if (pos !== -1 && !newArray.includes(enumId)) {\n // delete from members\n const obj = JSON.parse(JSON.stringify(this.info.objects[enumId]));\n obj.common.members.splice(pos, 1);\n promises.push(this.props.socket.setObject(enumId, obj)\n .then(() => this.info.objects[enumId] = obj)\n .catch(e => this.showError(e))\n );\n }\n }\n\n // add to it\n if (newArray.includes(enumId) && !this.info.objects[enumId].common.members?.includes(id)) {\n // add to object\n const obj = JSON.parse(JSON.stringify(this.info.objects[enumId]));\n obj.common.members = obj.common.members || [];\n obj.common.members.push(id);\n obj.common.members.sort();\n promises.push(this.props.socket.setObject(enumId, obj)\n .then(() => this.info.objects[enumId] = obj)\n .catch(e => this.showError(e))\n );\n }\n }\n\n Promise.all(promises)\n .then(() => setTimeout(() =>\n this._syncEnum(id, enumIds, newArray, cb), 0));\n }\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 => this._syncEnum(id, toCheck, newArray, error => {\n error && this.showError(error);\n // force update of object\n resolve();\n }));\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEnumDialog() {\n if (this.state.enumDialog) {\n const type = this.state.enumDialog.type;\n const item = this.state.enumDialog.item;\n const itemEnums = this.state.enumDialogEnums;\n const enumsOriginal = this.state.enumDialog.enumsOriginal;\n\n const enums = (type === 'room' ? this.info.roomEnums : this.info.funcEnums).map(id => ({\n name: getName((this.objects[id] && this.objects[id].common && this.objects[id].common.name) || id.split('.').pop(), this.props.lang),\n value: id,\n icon: getSelectIdIcon(this.objects, id, this.imagePrefix)\n }));\n\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 className={this.props.classes.enumDialog} onClose={() => this.setState({ enumDialog: null })} aria-labelledby=\"enum-dialog-title\" open={true}>\n <DialogTitle id=\"enum-dialog-title\">\n {type === 'func' ? this.props.t('ra_Define functions') : this.props.t('ra_Define rooms')}\n <Fab\n className={this.props.classes.enumButton}\n color=\"primary\"\n disabled={JSON.stringify(enumsOriginal) === JSON.stringify(itemEnums)}\n size=\"small\"\n onClick={() =>\n this.syncEnum(item.data.id, type, itemEnums)\n .then(() => this.setState({ enumDialog: null, enumDialogEnums: null }))}\n >\n <IconCheck />\n </Fab>\n </DialogTitle>\n <List classes={{ root: this.props.classes.enumList }}>\n {\n enums.map(item => {\n let id;\n let name;\n let icon;\n\n if (typeof item === 'object') {\n id = item.value;\n name = item.name;\n icon = item.icon;\n } else {\n id = item;\n name = item;\n }\n const labelId = `checkbox-list-label-${id}`;\n\n return <ListItem\n className={this.props.classes.headerCellSelectItem}\n key={id}\n onClick={() => {\n const pos = itemEnums.indexOf(id);\n const enumDialogEnums = JSON.parse(JSON.stringify(this.state.enumDialogEnums));\n if (pos === -1) {\n enumDialogEnums.push(id);\n enumDialogEnums.sort();\n } else {\n enumDialogEnums.splice(pos, 1);\n }\n this.setState({ enumDialogEnums });\n }}\n >\n <ListItemIcon classes={{ root: this.props.classes.enumCheckbox }}>\n <Checkbox\n edge=\"start\"\n checked={itemEnums.includes(id)}\n tabIndex={-1}\n disableRipple\n inputProps={{ 'aria-labelledby': labelId }}\n />\n </ListItemIcon>\n <ListItemText id={labelId}>{name}</ListItemText>\n {icon ? <ListItemSecondaryAction>{icon}</ListItemSecondaryAction> : null}\n </ListItem>;\n })\n }\n </List>\n </Dialog>;\n } else {\n return null;\n }\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 } else {\n return null;\n }\n }\n\n /**\n * @private\n * @param {boolean} [isSave]\n */\n onColumnsEditCustomDialogClose(isSave) {\n if (isSave) {\n let value = this.customColumnDialog.value;\n if (this.customColumnDialog.type === 'boolean') {\n value = value === 'true' || value === true;\n } else if (this.customColumnDialog.type === 'number') {\n value = parseFloat(value);\n }\n this.customColumnDialog = null;\n this.props.socket.getObject(this.state.columnsEditCustomDialog.obj._id)\n .then(obj => {\n if (this.setCustomValue(obj, this.state.columnsEditCustomDialog.it, value)) {\n return this.props.socket.setObject(obj._id, obj);\n } else {\n throw new Error(this.props.t('ra_Cannot update attribute, because not found in the object'))\n }\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 = this.getCustomValue(this.state.columnsEditCustomDialog.obj, this.state.columnsEditCustomDialog.it);\n this.customColumnDialog = {\n type: this.state.columnsEditCustomDialog.it.type || typeof value,\n initValue: (value === null || value === undefined ? '' : value).toString(),\n value: (value === null || value === undefined ? '' : value).toString()\n };\n }\n\n return <Dialog\n onClose={() => this.setState({ columnsEditCustomDialog: null })}\n maxWidth=\"md\"\n aria-labelledby=\"custom-dialog-title\" open={true}>\n <DialogTitle id=\"custom-dialog-title\">{this.props.t('ra_Edit object field') + ': ' + this.state.columnsEditCustomDialog.obj._id}</DialogTitle>\n <DialogContent>\n <DialogContentText id=\"alert-dialog-description\">\n {this.customColumnDialog.type === 'boolean' ?\n <FormControlLabel\n control={<Checkbox\n onKeyUp={e => e.keyCode === 13 && this.onColumnsEditCustomDialogClose(true)}\n defaultChecked={this.customColumnDialog.value === 'true'}\n onChange={e => {\n this.customColumnDialog.value = e.target.checked.toString();\n const changed = this.customColumnDialog.value !== this.customColumnDialog.initValue;\n if (changed === !this.state.customColumnDialogValueChanged) {\n this.setState({ customColumnDialogValueChanged: changed });\n }\n }}\n />}\n label={this.state.columnsEditCustomDialog.it.name + ' (' + this.state.columnsEditCustomDialog.it.pathText + ')'}\n />\n :\n <TextField\n variant=\"standard\"\n defaultValue={this.customColumnDialog.value}\n fullWidth\n onKeyUp={e => e.keyCode === 13 && this.onColumnsEditCustomDialogClose(true)}\n label={this.state.columnsEditCustomDialog.it.name + ' (' + this.state.columnsEditCustomDialog.it.pathText + ')'}\n onChange={e => {\n this.customColumnDialog.value = e.target.value;\n const changed = this.customColumnDialog.value !== this.customColumnDialog.initValue;\n if (changed === !this.state.customColumnDialogValueChanged) {\n this.setState({ customColumnDialogValueChanged: changed });\n }\n }}\n autoFocus\n />\n }\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 >{this.props.t('Cancel')}</Button>\n </DialogActions>\n </Dialog>;\n } else {\n return null;\n }\n }\n\n /**\n * @private\n * @param {any} obj\n * @param {any} it\n */\n getCustomValue(obj, it) {\n if (obj && obj._id && obj._id.startsWith(it.adapter + '.') && it.path.length > 1) {\n const p = it.path;\n let value;\n if (obj[p[0]] && typeof obj[p[0]] === 'object') {\n if (p.length === 2) { // most common case\n value = obj[p[0]][p[1]];\n } else if (p.length === 3) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' ? obj[p[0]][p[1]][p[2]] : null;\n } else if (p.length === 4) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] ? obj[p[0]][p[1]][p[2]][p[3]] : null;\n } else if (p.length === 5) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && obj[p[0]][p[1]][p[2]][p[3]] ? obj[p[0]][p[1]][p[2]][p[3]][p[4]] : null;\n } else if (p.length === 6) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && obj[p[0]][p[1]][p[2]][p[3]] && obj[p[0]][p[1]][p[2]][p[3]][p[4]] ? obj[p[0]][p[1]][p[2]][p[3]][p[4]][p[5]] : null;\n }\n if (value === undefined || value === null) {\n return null;\n } else {\n return value;\n }\n }\n } else {\n return null;\n }\n }\n\n /**\n * @private\n * @param {any} obj\n * @param {any} it\n * @param {any} value\n */\n setCustomValue(obj, it, value) {\n if (obj && obj._id && obj._id.startsWith(it.adapter + '.') && it.path.length > 1) {\n const p = it.path;\n if (obj[p[0]] && typeof obj[p[0]] === 'object') {\n if (p.length === 2) { // most common case\n obj[p[0]][p[1]] = value;\n return true;\n } else if (p.length === 3) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object') {\n obj[p[0]][p[1]][p[2]] = value;\n return true;\n }\n } else if (p.length === 4) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && typeof obj[p[0]][p[1]][p[2]] === 'object') {\n obj[p[0]][p[1]][p[2]][p[3]] = value;\n return true;\n }\n } else if (p.length === 5) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && typeof obj[p[0]][p[1]][p[2]] === 'object' && obj[p[0]][p[1]][p[2]][p[3]] && typeof obj[p[0]][p[1]][p[2]][p[3]] === 'object') {\n obj[p[0]][p[1]][p[2]][p[3]][p[4]] = value;\n return true;\n }\n } else if (p.length === 6) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && typeof obj[p[0]][p[1]][p[2]] === 'object' && obj[p[0]][p[1]][p[2]][p[3]] && typeof obj[p[0]][p[1]][p[2]][p[3]] === 'object' && obj[p[0]][p[1]][p[2]][p[3]][p[4]] && typeof obj[p[0]][p[1]][p[2]][p[3]][p[4]] === 'object') {\n obj[p[0]][p[1]][p[2]][p[3]][p[4]][p[5]] = value;\n return true;\n }\n }\n }\n }\n return false;\n }\n\n /**\n * Renders a custom value.\n * @param {any} obj\n * @param {any} it\n * @param {any} item\n * @returns {JSX.Element | null}\n */\n renderCustomValue(obj, it, item) {\n let text = this.getCustomValue(obj, it);\n if (text !== null && text !== undefined) {\n if (it.edit && !this.props.notEditable && (!it.objTypes || it.objTypes.includes(obj.type))) {\n return <div\n className={Utils.clsx(this.props.classes.columnCustom, this.props.classes.columnCustomEditable, this.props.classes['columnCustom_' + it.align])}\n onClick={() => this.setState({ columnsEditCustomDialog: { item, it, obj }, customColumnDialogValueChanged: false })}>{text}</div>;\n } else {\n return <div\n className={Utils.clsx(this.props.classes.columnCustom, this.props.classes['columnCustom_' + it.align])}>{text}</div>;\n }\n } else {\n return null;\n }\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 let itemType = item.data.obj?.type;\n\n if (item.children || itemType === 'folder' || itemType === 'device' || itemType === 'channel' || itemType === 'meta') {\n iconFolder = isExpanded ? <IconOpen\n className={classes.cellIdIconFolder}\n onClick={() => this.toggleExpanded(id)}\n /> : <IconClosed\n className={classes.cellIdIconFolder}\n onClick={() => this.toggleExpanded(id)}\n />;\n } else {\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 obj = item.data.obj;\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.state.lang) {\n const { rooms, per } = findRoomsForObject(this.info, id, this.state.lang);\n item.data.rooms = rooms.join(', ');\n item.data.per = per;\n const { funcs, pef } = findFunctionsForObject(this.info, id, this.state.lang);\n item.data.funcs = funcs.join(', ');\n item.data.pef = pef;\n item.data.lang = this.state.lang;\n }\n\n const checkbox =\n this.props.multiSelect &&\n this.objects[id] && (!this.props.types || this.props.types.includes(this.objects[id].type)) ?\n <Checkbox\n className={classes.checkBox}\n checked={this.state.selected.includes(id)}\n /> :\n null;\n\n let valueEditable = !this.props.notEditable && itemType === 'state' && (this.props.expertMode || common?.write !== false);\n if (this.props.objectBrowserViewFile && common?.type === 'file') {\n valueEditable = true;\n }\n const enumEditable = !this.props.notEditable && this.objects[id] && (this.props.expertMode || itemType === 'state' || itemType === 'channel' || itemType === 'device');\n const checkVisibleObjectType = this.state.statesView && (itemType === 'state' || itemType === 'channel' || itemType === 'device');\n let newValue = '';\n let newValueTitle = [];\n if (checkVisibleObjectType) {\n newValue = this.states[id]?.from;\n if (newValue === undefined) {\n newValue = '&nbsp;';\n } else {\n newValue = newValue ? newValue.replace(/^system\\.adapter\\.|^system\\./, '') : '';\n newValueTitle.push(`${this.texts.stateChangedFrom} ${newValue}`);\n }\n if (obj.user) {\n const user = obj.user.replace('system.user.', '');\n newValue += `/${user}`;\n newValueTitle.push(`${this.texts.stateChangedBy} ${user}`);\n }\n }\n if (obj) {\n obj.from && newValueTitle.push(this.texts.objectChangedFrom + ' ' + obj.from.replace(/^system\\.adapter\\.|^system\\./, ''));\n obj.user && newValueTitle.push(this.texts.objectChangedBy + ' ' + obj.user.replace(/^system\\.user\\./, ''));\n obj.ts && newValueTitle.push(this.texts.objectChangedByUser + ' ' + Utils.formatDate(new Date(obj.ts), this.props.dateFormat));\n }\n\n const readWriteAlias = typeof common?.alias?.id === 'object';\n\n const alias = id.startsWith('alias.') && common?.alias?.id ?\n (readWriteAlias ?\n <div className={classes.cellIdAliasReadWriteDiv}>\n {obj.common.alias.id.read ? <div\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n this.onSelect(obj.common.alias.id.read);\n setTimeout(() => {\n this.expandAllSelected(() =>\n this.scrollToItem(obj.common.alias.id.read));\n }, 100);\n }}\n className={Utils.clsx(classes.cellIdAlias, classes.cellIdAliasReadWrite)}\n >←{obj.common.alias.id.read}</div> : null}\n {obj.common.alias.id.write ? <div\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n this.onSelect(obj.common.alias.id.write);\n setTimeout(() => {\n this.expandAllSelected(() =>\n this.scrollToItem(obj.common.alias.id.write));\n }, 100);\n }}\n className={Utils.clsx(classes.cellIdAlias, classes.cellIdAliasReadWrite)}\n >→{obj.common.alias.id.write}</div> : null}\n </div>\n :\n <div\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n this.onSelect(obj.common.alias.id);\n setTimeout(() => {\n this.expandAllSelected(() =>\n this.scrollToItem(obj.common.alias.id));\n }, 100);\n }}\n className={Utils.clsx(classes.cellIdAlias, classes.cellIdAliasAlone)}\n >→{obj.common.alias.id}</div>\n ) : null;\n\n let checkColor = item.data?.common?.color;\n let invertBackground = 'none';\n if (checkColor && !this.state.selected.includes(id)) {\n invertBackground = Utils.invertColor(checkColor, true);\n }\n if (!checkColor || this.state.selected.includes(id)) {\n checkColor = 'inherit';\n }\n const icons = [];\n\n if (common?.statusStates) {\n let ids = {};\n Object.keys(common.statusStates).forEach(name => {\n let _id = common.statusStates[name];\n if (_id.split('.').length < 3) {\n _id = id + '.' + _id;\n }\n ids[name] = _id;\n\n if (!this.states[_id]) {\n if (this.objects[_id]?.type === 'state') {\n !this.recordStates.includes(_id) && this.recordStates.push(_id);\n this.states[_id] = { val: null };\n this.subscribe(_id);\n }\n } else {\n !this.recordStates.includes(_id) && this.recordStates.push(_id);\n }\n });\n // calculate color\n // errorId has priority\n let colorSet = false;\n if (common.statusStates.errorId && this.states[ids.errorId] && this.states[ids.errorId].val) {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_ERROR_DARK : COLOR_NAME_ERROR_LIGHT;\n colorSet = true;\n icons.push(<IconError key=\"error\" title={this.texts.deviceError} className={this.props.classes.iconDeviceError}/>);\n }\n\n if (ids.onlineId && this.states[ids.onlineId] && this.states[ids.onlineId].val !== null) {\n if (!colorSet) {\n if (this.states[ids.onlineId].val) {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT;\n icons.push(<IconConnection key=\"conn\" title={this.texts.deviceError} className={this.props.classes.iconDeviceConnected}/>);\n } else {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_DISCONNECTED_DARK : COLOR_NAME_DISCONNECTED_LIGHT;\n icons.push(<IconDisconnected key=\"disc\" title={this.texts.deviceError} className={this.props.classes.iconDeviceDisconnected}/>);\n }\n } else if (this.states[ids.onlineId].val) {\n icons.push(<IconConnection key=\"conn\" title={this.texts.deviceError} className={this.props.classes.iconDeviceConnected}/>);\n } else {\n icons.push(<IconDisconnected key=\"disc\" title={this.texts.deviceError} className={this.props.classes.iconDeviceDisconnected}/>);\n }\n } else\n if (ids.offlineId && this.states[ids.offlineId] && this.states[ids.offlineId].val !== null) {\n if (!colorSet) {\n if (this.states[ids.offlineId].val) {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_DISCONNECTED_DARK : COLOR_NAME_DISCONNECTED_LIGHT;\n icons.push(<IconDisconnected key=\"disc\" title={this.texts.deviceError} className={this.props.classes.iconDeviceDisconnected}/>);\n } else {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT;\n icons.push(<IconConnection key=\"conn\" title={this.texts.deviceError} className={this.props.classes.iconDeviceConnected}/>);\n }\n } else if (this.states[ids.offlineId].val) {\n icons.push(<IconDisconnected key=\"disc\" title={this.texts.deviceError} className={this.props.classes.iconDeviceDisconnected}/>);\n } else {\n icons.push(<IconConnection key=\"conn\" title={this.texts.deviceError} className={this.props.classes.iconDeviceConnected}/>);\n }\n }\n }\n\n const q = checkVisibleObjectType ? Utils.quality2text(this.states[id]?.q || 0).join(', ') : null;\n\n return <Grid\n container\n direction=\"row\"\n wrap=\"nowrap\"\n className={Utils.clsx(\n classes.tableRow,\n this.state.linesEnabled && classes.tableRowLines,\n !this.props.dragEnabled && classes.tableRowNoDragging,\n alias && classes.tableRowAlias,\n readWriteAlias && classes.tableRowAliasReadWrite,\n !item.data.visible && classes.filteredOut,\n item.data.hasVisibleParent && !item.data.visible && !item.data.hasVisibleChildren && classes.filteredParentOut,\n this.state.selected.includes(id) && classes.itemSelected,\n this.state.selectedNonObject === id && classes.itemSelected\n )}\n key={id}\n id={id}\n onClick={() => this.onSelect(id)}\n onDoubleClick={() => {\n if (!item.children) {\n this.onSelect(id, true);\n } else {\n this.toggleExpanded(id);\n }\n }}\n >\n <Grid\n container\n wrap=\"nowrap\"\n direction=\"row\"\n className={classes.cellId}\n style={{ width: this.columnsVisibility.id, paddingLeft }}\n >\n <Grid\n item\n container\n alignItems=\"center\"\n style={{\n color: checkColor,\n background: invertBackground\n }}\n >\n {checkbox}\n {iconFolder}\n </Grid>\n <Grid\n item\n title={id}\n className={classes.cellIdSpan}\n style={{\n background: invertBackground,\n color: id === 'system' ?\n COLOR_NAME_SYSTEM : (id === 'system.adapter' ? COLOR_NAME_SYSTEM_ADAPTER :\n checkColor)\n }}\n >\n {item.data.name}\n {alias}\n {icons}\n </Grid>\n <div\n style={{\n color: checkColor,\n background: invertBackground\n }} className={classes.grow} />\n <Grid\n item\n container\n alignItems=\"center\"\n >\n {iconItem}\n </Grid>\n <div style={{ color: checkColor }}>\n <IconCopy className={Utils.clsx(classes.cellCopyButton, 'copyButton')} onClick={e => this.onCopy(e, id)} />\n </div>\n </Grid>\n\n {this.columnsVisibility.name ? <div className={classes.cellName} style={{ width: this.columnsVisibility.name }}>\n {(item.data?.title) || ''}\n {item.data?.title ? <div style={{ color: checkColor }}>\n <IconCopy className={Utils.clsx(classes.cellCopyButton, 'copyButton')} onClick={e => this.onCopy(e, item.data.title)} />\n </div> : null}\n </div> : null}\n\n {!this.state.statesView ?\n <>\n {this.columnsVisibility.type ? <div className={classes.cellType} style={{ width: this.columnsVisibility.type }}>{typeImg} {obj && obj.type}</div> : null}\n {this.columnsVisibility.role ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.role, cursor: this.props.expertMode && enumEditable && this.props.objectBrowserEditRole ? 'text' : 'default' }} onClick={this.props.expertMode && enumEditable && this.props.objectBrowserEditRole ? () => this.setState({ roleDialog: item.data.id }) : undefined}>{obj && obj.common && obj.common.role}</div> : null}\n {this.columnsVisibility.room ? <div className={`${classes.cellRoom} ${item.data.per ? classes.cellEnumParent : ''}`} style={{ width: this.columnsVisibility.room, cursor: enumEditable ? 'text' : 'default' }} onClick={enumEditable ? () => { const enums = findEnumsForObjectAsIds(this.info, item.data.id, 'roomEnums'); this.setState({ enumDialogEnums: enums, enumDialog: { item, type: 'room', enumsOriginal: JSON.parse(JSON.stringify(enums)) } }); } : undefined}>{item.data.rooms}</div> : null}\n {this.columnsVisibility.func ? <div className={`${classes.cellFunc} ${item.data.pef ? classes.cellEnumParent : ''}`} style={{ width: this.columnsVisibility.func, cursor: enumEditable ? 'text' : 'default' }} onClick={enumEditable ? () => { const enums = findEnumsForObjectAsIds(this.info, item.data.id, 'funcEnums'); this.setState({ enumDialogEnums: enums, enumDialog: { item, type: 'func', enumsOriginal: JSON.parse(JSON.stringify(enums)) } }); } : undefined}>{item.data.funcs}</div> : null}\n </>\n :\n <>\n {this.columnsVisibility.changedFrom ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.changedFrom }} title={newValueTitle.join('\\n')}>{checkVisibleObjectType && this.states[id]?.from ? newValue : null}</div> : null}\n {this.columnsVisibility.qualityCode ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.qualityCode }} title={q || ''}>{q}</div> : null}\n {this.columnsVisibility.timestamp ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.timestamp }}>{checkVisibleObjectType && this.states[id]?.ts ? Utils.formatDate(new Date(this.states[id].ts), this.props.dateFormat) : null}</div> : null}\n {this.columnsVisibility.lastChange ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.lastChange }}>{checkVisibleObjectType && this.states[id]?.lc ? Utils.formatDate(new Date(this.states[id].lc), this.props.dateFormat) : null}</div> : null}\n </>\n }\n {this.adapterColumns.map(it => <div className={classes.cellAdapter} style={{ width: this.columnsVisibility[it.id] }} key={it.id} title={it.adapter + ' => ' + it.pathText}>{this.renderCustomValue(obj, it, item)}</div>)}\n {this.columnsVisibility.val ? <div className={classes.cellValue} style={{ width: this.columnsVisibility.val, cursor: valueEditable ? (common?.type === 'file' ? 'zoom-in' : (item.data.button ? 'grab' : 'text')) : 'default' }} onClick={valueEditable ? () => {\n if (!obj || !this.states) {\n return null;\n }\n\n if (common?.type === 'file') {\n return this.setState({viewFileDialog: id});\n }\n\n // in non-expert mode control button directly\n if (!this.props.expertMode && item.data.button) {\n return this.props.socket.setState(id, true)\n .catch(e => window.alert(`Cannot write state \"${id}\": ${e}`));\n }\n\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 } : undefined}>{this.renderColumnValue(id, item, classes)}</div> : null}\n {this.columnsVisibility.buttons ? <div className={classes.cellButtons} style={{ width: this.columnsVisibility.buttons }}>{this.renderColumnButtons(id, item, classes)}</div> : null}\n </Grid>;\n }\n\n /**\n * Renders an item.\n * @param {any} root\n * @param {boolean} isExpanded\n * @param {Record<string, any>} classes\n * @param {{ count: any; }} [counter]\n * @returns {JSX.Element[]}\n */\n renderItem(root, isExpanded, classes, counter) {\n const items = [];\n counter = counter || { count: 0 };\n let leaf = this.renderLeaf(root, isExpanded, classes, counter);\n let DragWrapper = this.props.DragWrapper;\n if (this.props.dragEnabled) {\n if (root.data.sumVisibility) {\n leaf = <DragWrapper key={root.data.id} item={root} className={classes.draggable}>{leaf}</DragWrapper>;\n } else {\n // change cursor\n leaf = <div key={root.data.id} className={classes.nonDraggable}>{leaf}</div>\n }\n }\n root.data.id && items.push(leaf);\n\n isExpanded = isExpanded === undefined ? binarySearch(this.state.expanded, root.data.id) : isExpanded;\n\n if (!root.data.id || isExpanded) {\n if (!this.state.foldersFirst) {\n root.children && items.push(root.children.map(item => {\n // do not render too many items in column editor mode\n if (!this.state.columnsSelectorShow || counter.count < 15) {\n if (item.data.sumVisibility) {\n return this.renderItem(item, undefined, classes, counter);\n }\n }\n return null;\n }));\n } else {\n // first only folder\n root.children && items.push(root.children.map(item => {\n if (item.children) {\n // do not render too many items in column editor mode\n if (!this.state.columnsSelectorShow || counter.count < 15) {\n if (item.data.sumVisibility) {\n return this.renderItem(item, undefined, classes, counter);\n }\n }\n }\n\n return null;\n }));\n // then items\n root.children && items.push(root.children.map(item => {\n if (!item.children) {\n // do not render too many items in column editor mode\n if (!this.state.columnsSelectorShow || counter.count < 15) {\n if (item.data.sumVisibility) {\n return this.renderItem(item, undefined, classes, counter);\n }\n }\n }\n return null;\n }));\n }\n }\n\n return items;\n }\n\n /**\n * @private\n * @param {boolean} [columnsAuto]\n * @param {string[]} [columns]\n * @param {any} [columnsForAdmin]\n * @param {Record<string, number>} [columnsWidths]\n */\n calculateColumnsVisibility(columnsAuto, columns, columnsForAdmin, columnsWidths) {\n columnsWidths = columnsWidths || this.state.columnsWidths;\n columnsForAdmin = columnsForAdmin || this.state.columnsForAdmin;\n columns = columns || this.state.columns || [];\n columnsAuto = typeof columnsAuto !== 'boolean' ? this.state.columnsAuto : columnsAuto;\n\n columnsWidths = JSON.parse(JSON.stringify(columnsWidths));\n Object.keys(columnsWidths).forEach(name => {\n if (columnsWidths[name]) {\n columnsWidths[name] = parseInt(columnsWidths[name], 10) || 0;\n }\n });\n\n this.adapterColumns = [];\n const WIDTHS = SCREEN_WIDTHS[this.props.width].widths;\n\n if (columnsAuto) {\n this.columnsVisibility = {\n id: SCREEN_WIDTHS[this.props.width].idWidth,\n name: this.visibleCols.includes('name') ? WIDTHS.name || 0 : 0,\n 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) {\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 {\n // Calculate the with of ID\n let widthSum = 0; // id is always visible\n if (this.state.statesView) {\n widthSum += this.columnsVisibility.changedFrom;\n widthSum += this.columnsVisibility.qualityCode;\n widthSum += this.columnsVisibility.timestamp;\n widthSum += this.columnsVisibility.lastChange;\n } else {\n widthSum += this.columnsVisibility.type;\n widthSum += this.columnsVisibility.role;\n widthSum += this.columnsVisibility.room;\n widthSum += this.columnsVisibility.func;\n }\n widthSum += this.columnsVisibility.val;\n widthSum += this.columnsVisibility.buttons;\n this.columnsVisibility.id = `calc(100% - ${widthSum + 5}px)`;\n }\n } else {\n this.columnsVisibility = {\n id: columnsWidths.id || SCREEN_WIDTHS[this.props.width].idWidth,\n name: columns.includes('name') ? columnsWidths.name || WIDTHS.name || SCREEN_WIDTHS[this.props.width].widths.name || 0 : 0,\n type: columns.includes('type') ? columnsWidths.type || WIDTHS.type || SCREEN_WIDTHS[this.props.width].widths.type || 0 : 0,\n role: columns.includes('role') ? columnsWidths.role || WIDTHS.role || SCREEN_WIDTHS[this.props.width].widths.role || 0 : 0,\n room: columns.includes('room') ? columnsWidths.room || WIDTHS.room || SCREEN_WIDTHS[this.props.width].widths.room || 0 : 0,\n func: columns.includes('func') ? columnsWidths.func || WIDTHS.func || SCREEN_WIDTHS[this.props.width].widths.func || 0 : 0\n };\n let widthSum = this.columnsVisibility.id; // id is always visible\n if (this.columnsVisibility.name) {\n widthSum += this.columnsVisibility.type;\n widthSum += this.columnsVisibility.role;\n widthSum += this.columnsVisibility.room;\n widthSum += this.columnsVisibility.func;\n }\n\n if (columnsForAdmin && columns) {\n Object.keys(columnsForAdmin).sort().forEach(adapter =>\n columnsForAdmin[adapter].forEach(column => {\n const id = '_' + adapter + '_' + column.path;\n this.columnsVisibility[id] = columns.includes(id);\n if (columns.includes(id)) {\n const item = {\n adapter,\n id: '_' + adapter + '_' + column.path,\n name: column.name,\n path: column.path.split('.'),\n pathText: column.path\n };\n if (column.edit) {\n item.edit = true;\n if (column.type) {\n item.type = column.type;\n }\n if (column.objTypes) {\n item.objTypes = column.objTypes;\n }\n }\n\n this.adapterColumns.push(item);\n this.columnsVisibility[id] = columnsWidths[item.id] || column.width || SCREEN_WIDTHS[this.props.width].widths.func || SCREEN_WIDTHS.xl.widths.func;\n widthSum += this.columnsVisibility[id];\n } else {\n this.columnsVisibility[id] = 0;\n }\n }));\n }\n this.adapterColumns.sort((a, b) => a.id > b.id ? -1 : (a.id < b.id ? 1 : 0));\n this.columnsVisibility.val = columns.includes('val') ? columnsWidths.val || WIDTHS.val || SCREEN_WIDTHS.xl.widths.val : 0;\n\n // do not show buttons if not desired\n if (!this.props.columns || this.props.columns.includes('buttons')) {\n this.columnsVisibility.buttons = columns.includes('buttons') ? columnsWidths.buttons || WIDTHS.buttons || SCREEN_WIDTHS.xl.widths.buttons : 0;\n widthSum += this.columnsVisibility.buttons;\n }\n\n if (this.columnsVisibility.name && !columnsWidths.name) {\n widthSum += this.columnsVisibility.val;\n this.columnsVisibility.name = `calc(100% - ${widthSum}px)`;\n this.columnsVisibility.nameHeader = `calc(100% - ${widthSum + 5 + this.state.scrollBarWidth}px)`;\n } else {\n const newWidth = Object.keys(this.columnsVisibility).reduce((accumulator, name) => {\n if (name === 'id' || typeof this.columnsVisibility[name] === 'string' || !this.columnsVisibility[name]) {\n return accumulator;\n } else {\n return accumulator + this.columnsVisibility[name];\n }},\n 0);\n this.columnsVisibility.id = `calc(100% - ${newWidth}px)`;\n }\n }\n }\n\n /**\n * @private\n * @returns {JSX.Element}\n */\n renderHeader() {\n const classes = this.props.classes;\n\n let filterClearInValue = null;\n if (!this.columnsVisibility.buttons && !this.isFilterEmpty()) {\n filterClearInValue = <IconButton\n onClick={() => this.clearFilter()}\n className={classes.buttonClearFilter}\n title={this.props.t('ra_Clear filter')}\n size=\"large\"\n >\n <IconClearFilter />\n <IconClose className={classes.buttonClearFilterIcon} />\n </IconButton>;\n }\n\n return <div className={classes.headerRow} >\n <div className={classes.headerCell} style={{ width: this.columnsVisibility.id }}>{this.getFilterInput('id')}</div>\n {this.columnsVisibility.name ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.nameHeader }}>{this.getFilterInput('name')}</div> : null}\n {!this.state.statesView && <>\n {this.columnsVisibility.type ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.type }}>{this.getFilterSelectType()}</div> : null}\n {this.columnsVisibility.role ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.role }}>{this.getFilterSelectRole()}</div> : null}\n {this.columnsVisibility.room ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.room }}>{this.getFilterSelectRoom()}</div> : null}\n {this.columnsVisibility.func ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.func }}>{this.getFilterSelectFunction()}</div> : null}\n </>}\n {this.state.statesView && <>\n <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.changedFrom }}>{this.props.t('ra_Changed from')}</div>\n <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.qualityCode }}>{this.props.t('ra_Quality code')}</div>\n <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.timestamp }}>{this.props.t('ra_Timestamp')}</div>\n <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.lastChange }}>{this.props.t('ra_Last change')}</div>\n </>}\n {this.adapterColumns.map(item => <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility[item.id] }} title={item.adapter} key={item.id}>{item.name}</div>)}\n {this.columnsVisibility.val ? <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.val }}>{this.props.t('ra_Value')}{filterClearInValue}</div> : null}\n {this.columnsVisibility.buttons ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.buttons }}> {this.getFilterSelectCustoms()}</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 <React.Fragment>\n <IconButton size=\"small\" aria-label=\"close\" color=\"inherit\" onClick={() => this.setState({ toast: '' })}>\n <IconClose fontSize=\"small\" />\n </IconButton>\n </React.Fragment>\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 {\n if (!this.selectedFound && ((this.state.selected && this.state.selected[0]) || this.lastSelectedItems)) {\n this.scrollToItem((this.state.selected && this.state.selected[0]) || this.lastSelectedItems);\n }\n }\n }\n }\n\n scrollToItem(id) {\n const node = window.document.getElementById(id);\n node && node.scrollIntoView({\n behavior: 'auto',\n block: 'center',\n inline: 'center'\n });\n this.selectedFound = true;\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderCustomDialog() {\n if (this.state.customDialog && this.props.objectCustomDialog) {\n const ObjectCustomDialog = this.props.objectCustomDialog;\n\n return <ObjectCustomDialog\n reportChangedIds={changedIds => this.changedIds = [...changedIds]}\n objectIDs={this.state.customDialog}\n expertMode={this.state.filter.expertMode}\n isFloatComma={this.props.isFloatComma}\n t={this.props.t}\n lang={this.props.lang}\n socket={this.props.socket}\n themeName={this.props.themeName}\n themeType={this.props.themeType}\n theme={this.props.theme}\n objects={this.objects}\n customsInstances={this.info.customs}\n onClose={() => {\n this.pauseSubscribe(false);\n this.setState({ customDialog: null });\n if (this.changedIds) {\n this.changedIds = null;\n // update all changed IDs\n this.forceUpdate();\n }\n\n this.props.router && this.props.router.doNavigate('tab-objects');\n }}\n />;\n } else {\n return null;\n }\n }\n\n /**\n * @private\n * @param {Partial<ioBroker.State>} valAck\n */\n onUpdate(valAck) {\n this.props.socket.setState(this.edit.id, { val: valAck.val, ack: valAck.ack, q: valAck.q || 0, expire: valAck.expire || undefined })\n .catch(e => this.showError('Cannot write value: ' + e));\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEditObjectDialog() {\n if (!this.state.editObjectDialog || !this.props.objectBrowserEditObject) {\n return null;\n }\n\n const ObjectBrowserEditObject = this.props.objectBrowserEditObject;\n\n return <ObjectBrowserEditObject\n key={this.state.editObjectDialog}\n obj={this.objects[this.state.editObjectDialog]}\n roleArray={this.info.roles}\n objects={this.objects}\n dateFormat={this.props.dateFormat}\n isFloatComma={this.props.isFloatComma}\n themeName={this.props.themeName}\n socket={this.props.socket}\n dialogName={this.props.dialogName}\n t={this.props.t}\n expertMode={this.state.filter.expertMode}\n onNewObject={obj =>\n this.props.socket.setObject(obj._id, obj)\n .then(() => this.setState({ editObjectDialog: obj._id }, () => this.onSelect(obj._id)))\n .catch(e => this.showError('Cannot write object: ' + e))}\n onClose={obj => {\n this.setState({ editObjectDialog: '' });\n if (obj) {\n this.props.socket.setObject(obj._id, obj)\n .catch(e => this.showError('Cannot write object: ' + e));\n }\n }}\n />\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderViewObjectFileDialog() {\n if (!this.state.viewFileDialog || !this.props.objectBrowserViewFile) {\n return null;\n }\n const ObjectBrowserViewFile = this.props.objectBrowserViewFile;\n\n return <ObjectBrowserViewFile\n key=\"viewFile\"\n obj={this.objects[this.state.viewFileDialog]}\n themeType={this.props.themeType}\n socket={this.props.socket}\n dialogName={this.props.dialogName}\n t={this.props.t}\n expertMode={this.state.filter.expertMode}\n onClose={() => this.setState({ viewFileDialog: '' })}\n />;\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEditValueDialog() {\n if (!this.state.updateOpened || !this.props.objectBrowserValue) {\n return null;\n }\n\n const type = this.objects[this.edit.id].common?.type ?\n this.objects[this.edit.id].common.type : typeof this.edit.val;\n\n const ObjectBrowserValue = this.props.objectBrowserValue;\n\n return <ObjectBrowserValue\n t={this.props.t}\n lang={this.props.lang}\n type={type}\n states={Utils.getStates(this.objects[this.edit.id])}\n themeType={this.props.themeType}\n expertMode={this.state.filter.expertMode}\n value={this.edit.val}\n socket={this.props.socket}\n object={this.objects[this.edit.id]}\n defaultHistory={this.defaultHistory}\n dateFormat={this.props.dateFormat}\n onClose={res => {\n this.setState({ updateOpened: false });\n res && this.onUpdate(res);\n }}\n />;\n }\n\n extendObject = (id, data) =>\n this.props.socket.extendObject(id, data)\n .catch(error => window.alert(error));\n\n setObject = (id, data) =>\n this.props.socket.setObject(id, data)\n .catch(error => window.alert(error));\n\n /**\n * The rendering method of this component.\n * @returns {JSX.Element}\n */\n render() {\n this.recordStates = [];\n this.unsubscribeTimer && clearTimeout(this.unsubscribeTimer);\n\n // apply filter if changed\n const jsonFilter = JSON.stringify(this.state.filter);\n if (this.lastAppliedFilter !== jsonFilter && this.objects && this.root) {\n const counter = { count: 0 };\n\n applyFilter(this.root, this.state.filter, this.state.lang, this.objects, null, counter, this.props.customFilter, this.props.types);\n\n if (counter.count < 500 && !this.state.expandAllVisible) {\n setTimeout(() => this.setState({ expandAllVisible: true }));\n } else if (counter.count >= 500 && this.state.expandAllVisible) {\n setTimeout(() => this.setState({ expandAllVisible: false }));\n }\n\n this.lastAppliedFilter = jsonFilter;\n }\n\n this.unsubscribeTimer = setTimeout(() => {\n this.unsubscribeTimer = null;\n this.checkUnsubscribes();\n }, 200);\n\n if (!this.state.loaded) {\n return <CircularProgress key={this.props.dialogName + '_c'} />;\n } else {\n const classes = this.props.classes;\n const items = this.renderItem(this.root, undefined, classes);\n\n return <TabContainer key={this.props.dialogName}>\n <TabHeader>\n {this.getToolbar()}\n </TabHeader>\n <TabContent>\n {this.renderHeader()}\n <div className={this.props.classes.tableDiv} ref={this.tableRef}>\n {items}\n </div>\n </TabContent>\n {this.renderToast()}\n {this.renderColumnsEditCustomDialog()}\n {this.renderColumnsSelectorDialog()}\n {this.renderCustomDialog()}\n {this.renderEditValueDialog()}\n {this.renderEditObjectDialog()}\n {this.renderViewObjectFileDialog()}\n {this.renderEditRoleDialog()}\n {this.renderEnumDialog()}\n {this.renderErrorDialog()}\n {this.renderExportDialog()}\n {this.state.modalNewObj && this.props.modalNewObject && this.props.modalNewObject(this)}\n {this.state.modalEditOfAccess && this.props.modalEditOfAccessControl && this.props.modalEditOfAccessControl(this, this.state.modalEditOfAccessObjData)}\n </TabContainer>;\n }\n }\n}\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) { }\n customFilter: PropTypes.object, // optional {common: {custom: true}} or {common: {custom: 'sql.0'}}\n objectBrowserValue: PropTypes.object,\n objectBrowserEditObject: PropTypes.object,\n objectBrowserEditRole: PropTypes.object, // on Edit role\n objectBrowserViewFile: PropTypes.func, // on view file state\n router: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func\n ]),\n types: PropTypes.array, // optional ['state', 'instance', 'channel']\n columns: PropTypes.array, // optional ['name', 'type', 'role', 'room', 'func', 'val', 'buttons']\n\n objectsWorker: PropTypes.object, // optional cache of objects\n filterFunc: PropTypes.func, // function to filter out all unnecessary objects. It cannot be used together with \"types\"\n // Example for function: `obj => obj.common && obj.common.type === 'boolean'` to show only boolean states\n\n dragSettings: PropTypes.object,\n DragWrapper: PropTypes.func,\n dragEnabled: PropTypes.bool,\n useDrag: PropTypes.func,\n};\n\n/** @type {typeof ObjectBrowser} */\nconst _export = withWidth()(withStyles(styles)(ObjectBrowser));\nexport default _export;"],"file":"ObjectBrowser.js"}