@iobroker/gui-components 10.0.2 → 10.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -1
- package/build/Components/FileBrowser.js +18 -13
- package/build/Components/FileBrowser.js.map +1 -1
- package/build/Components/{ObjectBrowser.d.ts → ObjectBrowser/ObjectBrowserClass.d.ts} +142 -77
- package/build/Components/ObjectBrowser/ObjectBrowserClass.js +2462 -0
- package/build/Components/ObjectBrowser/ObjectBrowserClass.js.map +1 -0
- package/build/Components/ObjectBrowser/constants.d.ts +50 -0
- package/build/Components/ObjectBrowser/constants.js +138 -0
- package/build/Components/ObjectBrowser/constants.js.map +1 -0
- package/build/Components/ObjectBrowser/contextMenu.d.ts +13 -0
- package/build/Components/ObjectBrowser/contextMenu.js +354 -0
- package/build/Components/ObjectBrowser/contextMenu.js.map +1 -0
- package/build/Components/ObjectBrowser/dialogs.d.ts +31 -0
- package/build/Components/ObjectBrowser/dialogs.js +421 -0
- package/build/Components/ObjectBrowser/dialogs.js.map +1 -0
- package/build/Components/ObjectBrowser/index.d.ts +20 -0
- package/build/Components/ObjectBrowser/index.js +20 -0
- package/build/Components/ObjectBrowser/index.js.map +1 -0
- package/build/Components/ObjectBrowser/renderLeaf.d.ts +41 -0
- package/build/Components/ObjectBrowser/renderLeaf.js +1077 -0
- package/build/Components/ObjectBrowser/renderLeaf.js.map +1 -0
- package/build/Components/ObjectBrowser/styles.d.ts +7 -0
- package/build/Components/ObjectBrowser/styles.js +662 -0
- package/build/Components/ObjectBrowser/styles.js.map +1 -0
- package/build/Components/ObjectBrowser/toolbar.d.ts +26 -0
- package/build/Components/ObjectBrowser/toolbar.js +327 -0
- package/build/Components/ObjectBrowser/toolbar.js.map +1 -0
- package/build/Components/{objectBrowser.types.d.ts → ObjectBrowser/types.d.ts} +26 -19
- package/build/Components/{objectBrowserUtils.d.ts → ObjectBrowser/utils.d.ts} +22 -2
- package/build/Components/{objectBrowserUtils.js → ObjectBrowser/utils.js} +46 -2
- package/build/Components/ObjectBrowser/utils.js.map +1 -0
- package/build/Components/TreeTable.d.ts +2 -2
- package/build/Components/TreeTable.js.map +1 -1
- package/build/Dialogs/SelectID.d.ts +4 -4
- package/build/Dialogs/SelectID.js +2 -2
- package/build/Dialogs/SelectID.js.map +1 -1
- package/build/index.d.ts +2 -2
- package/build/index.js +1 -1
- package/build/index.js.map +1 -1
- package/package.json +1 -1
- package/build/Components/ObjectBrowser.js +0 -5162
- package/build/Components/ObjectBrowser.js.map +0 -1
- package/build/Components/objectBrowserUtils.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderLeaf.js","sourceRoot":"./src/","sources":["Components/ObjectBrowser/renderLeaf.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright 2020-2026, Denis Haev <dogafox@gmail.com>\n *\n * MIT License\n *\n * Part of the object browser, see ./ObjectBrowserClass.tsx\n */\nimport React, { type JSX } from 'react';\nimport { Utils } from '../Utils';\nimport { Box, Checkbox, Grid, IconButton, Paper, Switch, Tooltip } from '@mui/material';\nimport {\n Delete as IconDelete,\n Edit as IconEdit,\n Error as IconError,\n Settings as IconConfig,\n Wifi as IconConnection,\n WifiOff as IconDisconnected,\n} from '@mui/icons-material';\nimport { IconCopy } from '../../icons/IconCopy';\nimport { IconDocument } from '../../icons/IconDocument';\nimport { IconDocumentReadOnly } from '../../icons/IconDocumentReadOnly';\nimport { IconClosed } from '../../icons/IconClosed';\nimport { IconOpen } from '../../icons/IconOpen';\nimport { Icon } from '../Icon';\nimport {\n ButtonIcon,\n colGrow,\n colWidth,\n binarySearch,\n findEnumsForObjectAsIds,\n findFunctionsForObject,\n findRoomsForObject,\n formatValue,\n getCustomValue,\n getIdFieldTooltip,\n getObjectTooltip,\n getValueStyle,\n isNonExpertId,\n COLOR_NAME_USERDATA,\n COLOR_NAME_ALIAS,\n COLOR_NAME_JAVASCRIPT,\n COLOR_NAME_SYSTEM,\n COLOR_NAME_SYSTEM_ADAPTER,\n ROW_HEIGHT,\n} from './utils';\nimport { type AdapterColumn, type TreeItem } from './types';\nimport { styles } from './styles';\nimport {\n COLOR_NAME_CONNECTED_DARK,\n COLOR_NAME_CONNECTED_LIGHT,\n COLOR_NAME_DISCONNECTED_DARK,\n COLOR_NAME_DISCONNECTED_LIGHT,\n COLOR_NAME_ERROR_DARK,\n COLOR_NAME_ERROR_LIGHT,\n DEFAULT_DATE_FORMAT,\n ITEM_IMAGES,\n} from './constants';\nimport type { ObjectBrowserClass } from './ObjectBrowserClass';\n\nexport function renderTooltipAccessControl(that: ObjectBrowserClass, acl: ioBroker.StateACL): null | JSX.Element {\n // acl ={object,state,owner,ownerGroup}\n if (!acl) {\n return null;\n }\n const check = [\n {\n value: '0x400',\n valueNum: 0x400,\n title: 'read',\n group: 'Owner',\n },\n {\n value: '0x200',\n valueNum: 0x200,\n title: 'write',\n group: 'Owner',\n },\n {\n value: '0x40',\n valueNum: 0x40,\n title: 'read',\n group: 'Group',\n },\n {\n value: '0x20',\n valueNum: 0x20,\n title: 'write',\n group: 'Group',\n },\n {\n value: '0x4',\n valueNum: 0x4,\n title: 'read',\n group: 'Everyone',\n },\n {\n value: '0x2',\n valueNum: 0x2,\n title: 'write',\n group: 'Everyone',\n },\n ];\n const arrayTooltipText = [];\n const funcRenderStateObject = (value: 'object' | 'state'): void => {\n const rights: number = acl[value];\n check.forEach((el, i) => {\n if (rights & el.valueNum) {\n arrayTooltipText.push(\n <span key={value + i}>\n {that.texts[`acl${el.group}_${el.title}_${value}`]},\n <span style={value === 'object' ? styles.rightsObject : styles.rightsState}>{el.value}</span>\n </span>,\n );\n }\n });\n };\n\n arrayTooltipText.push(\n <span key=\"group\">{`${that.texts.ownerGroup}: ${(acl.ownerGroup || '').replace('system.group.', '')}`}</span>,\n );\n arrayTooltipText.push(\n <span key=\"owner\">{`${that.texts.ownerUser}: ${(acl.owner || '').replace('system.user.', '')}`}</span>,\n );\n funcRenderStateObject('object');\n if (acl.state) {\n funcRenderStateObject('state');\n }\n\n return arrayTooltipText.length ? (\n <span style={styles.tooltipAccessControl}>{arrayTooltipText.map(el => el)}</span>\n ) : null;\n}\n\nexport function renderColumnButtons(\n that: ObjectBrowserClass,\n id: string,\n item: TreeItem,\n): (JSX.Element | null)[] | JSX.Element | null {\n if (!item.data.obj) {\n return that.props.onObjectDelete || that.props.objectEditOfAccessControl ? (\n <div style={styles.buttonDiv}>\n {that.state.filter.expertMode && that.props.objectEditOfAccessControl ? (\n <IconButton\n sx={{\n ...styles.cellButtonsButton,\n ...styles.cellButtonsEmptyButton,\n ...styles.cellButtonMinWidth,\n }}\n onClick={() => that.setState({ modalEditOfAccess: true, modalEditOfAccessObjData: item.data })}\n size=\"large\"\n >\n <div style={{ height: 15 }}>---</div>\n </IconButton>\n ) : null}\n {that.props.onObjectDelete && item.children?.length ? (\n <IconButton\n sx={{\n ...styles.cellButtonsButton,\n ...styles.cellButtonsButtonAlone,\n }}\n size=\"small\"\n aria-label=\"delete\"\n title={that.texts.deleteObject}\n onClick={() => {\n // calculate the number of children\n const keys = Object.keys(that.objects);\n keys.sort();\n let count = 0;\n const start = `${id}.`;\n for (let i = 0; i < keys.length; i++) {\n if (keys[i].startsWith(start)) {\n count++;\n } else if (keys[i] > start) {\n break;\n }\n }\n\n if (that.props.onObjectDelete) {\n that.props.onObjectDelete(id, !!item.children?.length, false, count + 1);\n }\n }}\n >\n <IconDelete style={styles.cellButtonsButtonIcon} />\n </IconButton>\n ) : null}\n </div>\n ) : null;\n }\n\n item.data.aclTooltip =\n item.data.aclTooltip || renderTooltipAccessControl(that, item.data.obj.acl as ioBroker.StateACL);\n\n const acl = item.data.obj.acl\n ? item.data.obj.type === 'state'\n ? item.data.obj.acl.state\n : item.data.obj.acl.object\n : 0;\n const aclSystemConfig =\n item.data.obj.acl &&\n (item.data.obj.type === 'state'\n ? that.systemConfig?.common.defaultNewAcl.state\n : that.systemConfig?.common.defaultNewAcl.object);\n\n const showEdit = !!item.data.obj && (that.state.filter.expertMode || isNonExpertId(item.data.id));\n\n return [\n that.state.filter.expertMode && that.props.objectEditOfAccessControl ? (\n <Tooltip\n key=\"acl\"\n title={item.data.aclTooltip}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n sx={{\n ...styles.cellButtonsButton,\n ...styles.cellButtonMinWidth,\n opacity: 1,\n }}\n onClick={() => that.setState({ modalEditOfAccess: true, modalEditOfAccessObjData: item.data })}\n size=\"large\"\n >\n <div style={styles.aclText}>\n {Number.isNaN(Number(acl)) ? Number(aclSystemConfig).toString(16) : Number(acl).toString(16)}\n </div>\n </IconButton>\n </Tooltip>\n ) : (\n <div\n key=\"aclEmpty\"\n style={styles.cellButtonMinWidth}\n />\n ),\n\n showEdit ? (\n <IconButton\n key=\"edit\"\n sx={{\n marginRight: '2px',\n ...styles.cellButtonsButton,\n }}\n size=\"small\"\n aria-label=\"edit\"\n title={that.texts.editObject}\n onClick={() => {\n that.localStorage.setItem(`${that.props.dialogName || 'App'}.objectSelected`, id);\n that.setState({ editObjectDialog: id, editObjectAlias: false });\n }}\n >\n <IconEdit style={styles.cellButtonsButtonIcon} />\n </IconButton>\n ) : (\n <Box\n component=\"div\"\n key=\"editDisabled\"\n sx={styles.cellButtonsButton}\n />\n ),\n\n that.props.onObjectDelete && (item.children?.length || !item.data.obj.common?.dontDelete) ? (\n <IconButton\n key=\"delete\"\n sx={styles.cellButtonsButton}\n size=\"small\"\n aria-label=\"delete\"\n onClick={() => {\n const keys = Object.keys(that.objects);\n keys.sort();\n let count = 0;\n const start = `${id}.`;\n for (let i = 0; i < keys.length; i++) {\n if (keys[i].startsWith(start)) {\n count++;\n } else if (keys[i] > start) {\n break;\n }\n }\n if (that.props.onObjectDelete) {\n that.props.onObjectDelete(\n id,\n !!item.children?.length,\n !item.data.obj?.common?.dontDelete,\n count,\n );\n }\n }}\n title={that.texts.deleteObject}\n >\n <IconDelete style={styles.cellButtonsButtonIcon} />\n </IconButton>\n ) : null,\n\n that.props.objectCustomDialog &&\n that.info.hasSomeCustoms &&\n item.data.obj.type === 'state' &&\n // @ts-expect-error deprecated from js-controller 6\n item.data.obj.common?.type !== 'file' ? (\n <IconButton\n sx={{\n ...styles.cellButtonsButton,\n ...(item.data.hasCustoms\n ? that.styles.cellButtonsButtonWithCustoms\n : styles.cellButtonsButtonWithoutCustoms),\n }}\n key=\"custom\"\n size=\"small\"\n aria-label=\"config\"\n title={that.texts.customConfig}\n onClick={() => {\n that.localStorage.setItem(`${that.props.dialogName || 'App'}.objectSelected`, id);\n\n that.pauseSubscribe(true);\n that.props.router?.doNavigate(null, 'customs', id);\n that.setState({ customDialog: [id], customDialogAll: false });\n }}\n >\n <IconConfig style={styles.cellButtonsButtonIcon} />\n </IconButton>\n ) : null,\n ];\n}\n\n/**\n * This function renders the value in different forms in the table\n *\n * @param that the object browser instance\n * @param id state ID\n * @param item Item\n * @param narrowStyleWithDetails if use mobile view\n */\nexport function renderColumnValue(\n that: ObjectBrowserClass,\n id: string,\n item: TreeItem,\n narrowStyleWithDetails?: boolean,\n): JSX.Element | null {\n const obj = item.data.obj;\n if (!obj || !that.states) {\n return null;\n }\n\n if (obj.common?.type === 'file') {\n return (\n <Box\n component=\"div\"\n sx={{ ...styles.cellValueText, ...styles.cellValueFile }}\n >\n [file]\n </Box>\n );\n }\n if (!that.states[id]) {\n if (obj.type === 'state') {\n // we are waiting for state\n if (!that.recordStates.includes(id)) {\n that.recordStates.push(id);\n }\n that.states[id] = { val: null } as ioBroker.State;\n that.subscribe(id);\n }\n return null;\n }\n if (!that.recordStates.includes(id)) {\n that.recordStates.push(id);\n }\n\n const state = that.states[id];\n\n let info = item.data.state;\n if (!info) {\n const { valText } = formatValue({\n state,\n obj: obj as ioBroker.StateObject,\n texts: that.texts,\n dateFormat: that.props.dateFormat || that.systemConfig?.common.dateFormat || DEFAULT_DATE_FORMAT,\n isFloatComma:\n that.props.isFloatComma === undefined\n ? (that.systemConfig?.common.isFloatComma ?? true)\n : that.props.isFloatComma,\n });\n const valTextRx: JSX.Element[] = [];\n item.data.state = { valTextRx };\n\n valTextRx.push(\n <span\n className={`newValueBrowser-${that.props.themeType || 'light'}`}\n key={`${valText.v.toString()}valText`}\n style={{\n whiteSpace: 'nowrap',\n display: 'inline-block',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n }}\n >\n {valText.v.toString()}\n </span>,\n );\n if (valText.u) {\n valTextRx.push(\n <span\n className={`newValueBrowser-${that.props.themeType || 'light'}`}\n style={styles.cellValueTextUnit}\n key={`${valText.v.toString()}unit`}\n >\n {valText.u}\n </span>,\n );\n }\n if (valText.s !== undefined) {\n valTextRx.push(\n <span\n style={styles.cellValueTextState}\n className={`newValueBrowser-${that.props.themeType || 'light'}`}\n key={`${valText.v.toString()}states`}\n >\n ({valText.s})\n </span>,\n );\n }\n if (!narrowStyleWithDetails) {\n const copyText = valText.c !== undefined ? valText.c : valText.v || '';\n valTextRx.push(\n <IconCopy\n className=\"copyButton\"\n style={that.styles.iconCopy}\n onClick={e => that.onCopy(e, copyText)}\n key=\"cc\"\n />,\n );\n }\n // <IconEdit className=\"copyButton\" style={{{ ...styles.cellButtonsValueButton, styles.cellButtonsValueButtonEdit)} key=\"ce\" />\n\n info = item.data.state;\n }\n\n info.style = getValueStyle({\n state,\n isExpertMode: that.state.filter.expertMode,\n isButton: item.data.button,\n nonAckColor: that.props.theme.palette.nonAck,\n });\n\n let val: JSX.Element[] | null | undefined = info.valTextRx;\n if (!that.state.filter.expertMode) {\n if (item.data.button) {\n val = [\n <ButtonIcon\n key=\"button\"\n style={{ color: info.style.color, ...styles.cellValueButton }}\n />,\n ];\n } else if (item.data.switch) {\n val = [\n <Switch\n key=\"switch\"\n sx={{\n '& .MuiSwitch-thumb': { color: info.style.color },\n '& .MuiSwitch-track': {\n backgroundColor:\n !!that.states[id].val && that.state.selected.includes(id)\n ? that.props.themeType === 'dark'\n ? '#FFF !important'\n : '#111 !important'\n : undefined,\n },\n }}\n checked={!!that.states[id].val}\n />,\n ];\n }\n }\n\n return (\n <Tooltip\n key=\"value\"\n title={that.state.tooltipInfo?.el}\n slotProps={{\n popper: { sx: styles.cellValueTooltipBox },\n tooltip: { sx: styles.cellValueTooltip },\n }}\n onOpen={() => that.getTooltipInfo(id, () => that.readHistory(id))}\n onClose={() => that.state.tooltipInfo?.id === id && that.setState({ tooltipInfo: null })}\n >\n <Box\n component=\"div\"\n style={info.style}\n className={item.data.url ? 'iob-link' : undefined}\n sx={{\n ...styles.cellValueText,\n height: narrowStyleWithDetails ? undefined : ROW_HEIGHT,\n '& .admin-button:active': {\n transform: 'translate(0, 2px)',\n },\n }}\n >\n {val}\n </Box>\n </Tooltip>\n );\n}\n\n/**\n * Renders a custom value.\n */\nexport function renderCustomValue(\n that: ObjectBrowserClass,\n obj: ioBroker.Object,\n it: AdapterColumn,\n item: TreeItem,\n): JSX.Element | null {\n const text = getCustomValue(obj, it);\n if (text !== null && text !== undefined) {\n if (it.edit && !that.props.notEditable && (!it.objTypes || it.objTypes.includes(obj.type))) {\n return (\n <Box\n component=\"div\"\n style={{\n ...styles.columnCustom,\n ...styles.columnCustomEditable,\n ...styles[`columnCustom_${it.align}`],\n }}\n onClick={() =>\n that.setState({\n columnsEditCustomDialog: { item, it, obj },\n customColumnDialogValueChanged: false,\n })\n }\n >\n {text}\n </Box>\n );\n }\n return (\n <Box\n component=\"div\"\n style={{\n ...styles.columnCustom,\n ...styles[`columnCustom_${it.align}`],\n }}\n >\n {text}\n </Box>\n );\n }\n return null;\n}\n\nexport function renderAliasLink(\n that: ObjectBrowserClass,\n id: string,\n index?: number,\n customStyle?: Record<string, any>,\n): JSX.Element | null {\n const _index = index || 0;\n // read the type of operation\n const aliasObj = that.objects[that.info.aliasesMap[id][_index]].common.alias.id;\n if (aliasObj) {\n return (\n <Box\n component=\"div\"\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n const aliasId = that.info.aliasesMap[id][_index];\n // if more than one alias, close the menu\n if (that.info.aliasesMap[id].length > 1) {\n that.setState({ aliasMenu: '' });\n }\n that.onSelect(aliasId);\n setTimeout(() => that.expandAllSelected(() => that.scrollToItem(aliasId)), 100);\n }}\n sx={customStyle || that.styles.aliasAlone}\n >\n <span className=\"admin-browser-arrow\">\n {typeof aliasObj === 'string' || (aliasObj.read === id && aliasObj.write === id)\n ? '↔'\n : aliasObj.read === id\n ? '→'\n : '←'}\n </span>\n {that.info.aliasesMap[id][_index]}\n </Box>\n );\n }\n\n return null;\n}\n\n/**\n * Renders a leaf.\n */\nexport function renderLeaf(\n that: ObjectBrowserClass,\n item: TreeItem,\n isExpanded: boolean | undefined,\n counter: { count: number },\n): { row: JSX.Element; details: JSX.Element | null } {\n const id = item.data.id;\n counter.count++;\n isExpanded = isExpanded === undefined ? that.state.expanded.includes(id) : isExpanded;\n\n // icon\n let iconFolder;\n const obj = item.data.obj;\n const itemType = obj?.type;\n\n if (\n item.children ||\n itemType === 'folder' ||\n itemType === 'device' ||\n itemType === 'channel' ||\n itemType === 'meta'\n ) {\n iconFolder = isExpanded ? (\n <IconOpen\n style={that.styles.cellIdIconFolder}\n onClick={() => that.toggleExpanded(id)}\n />\n ) : (\n <IconClosed\n style={that.styles.cellIdIconFolder}\n onClick={() => that.toggleExpanded(id)}\n />\n );\n } else if (obj && obj.common && obj.common.write === false && obj.type === 'state') {\n iconFolder = <IconDocumentReadOnly style={that.styles.cellIdIconDocument} />;\n } else {\n iconFolder = <IconDocument style={that.styles.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 = (\n <span\n className=\"iconOwn\"\n style={styles.cellIdIconOwn}\n >\n {item.data.icon}\n </span>\n ); // utf-8 char\n } else {\n iconItem = (\n <Icon\n style={styles.cellIdIconOwn}\n className=\"iconOwn\"\n src={item.data.icon}\n alt=\"\"\n />\n );\n }\n } else {\n iconItem = item.data.icon;\n }\n }\n\n const common = obj?.common;\n\n const typeImg = (obj?.type && ITEM_IMAGES[obj.type]) || <div className=\"itemIcon\" />;\n\n const paddingLeft = that.levelPadding * (item.data.level || 0);\n\n // recalculate rooms and function names if the language changed\n if (item.data.lang !== that.props.lang) {\n const { rooms, per } = findRoomsForObject(that.info, id, that.props.lang);\n item.data.rooms = rooms.join(', ');\n item.data.per = per;\n const { funcs, pef } = findFunctionsForObject(that.info, id, that.props.lang);\n item.data.funcs = funcs.join(', ');\n item.data.pef = pef;\n item.data.lang = that.props.lang;\n }\n\n const checkbox =\n that.props.multiSelect &&\n that.objects[id] &&\n (!that.props.types || that.props.types.includes(that.objects[id].type)) ? (\n <Checkbox\n style={styles.checkBox}\n checked={that.state.selected.includes(id)}\n />\n ) : null;\n\n let valueEditable =\n !that.props.notEditable && itemType === 'state' && (that.state.filter.expertMode || common?.write !== false);\n if (that.props.objectBrowserViewFile && common?.type === 'file') {\n valueEditable = true;\n }\n\n const enumEditable =\n !that.props.notEditable &&\n that.objects[id] &&\n (that.state.filter.expertMode || itemType === 'state' || itemType === 'channel' || itemType === 'device');\n\n const checkVisibleObjectType =\n that.state.statesView && (itemType === 'state' || itemType === 'channel' || itemType === 'device');\n\n let newValue = '';\n const newValueTitle = [];\n if (checkVisibleObjectType) {\n newValue = that.states[id]?.from;\n if (newValue === undefined) {\n newValue = ' ';\n } else {\n newValue = newValue ? newValue.replace(/^system\\.adapter\\.|^system\\./, '') : '';\n newValueTitle.push(`${that.texts.stateChangedFrom} ${newValue}`);\n }\n if (obj?.user) {\n const user = obj.user.replace('system.user.', '');\n newValue += `/${user}`;\n newValueTitle.push(`${that.texts.stateChangedBy} ${user}`);\n }\n }\n\n if (obj) {\n if (obj.from) {\n newValueTitle.push(\n `${that.texts.objectChangedFrom} ${obj.from.replace(/^system\\.adapter\\.|^system\\./, '')}`,\n );\n }\n if (obj.user) {\n newValueTitle.push(`${that.texts.objectChangedBy} ${obj.user.replace(/^system\\.user\\./, '')}`);\n }\n if (obj.ts) {\n newValueTitle.push(\n `${that.texts.objectChangedByUser} ${Utils.formatDate(new Date(obj.ts), that.props.dateFormat || that.systemConfig?.common.dateFormat || DEFAULT_DATE_FORMAT)}`,\n );\n }\n }\n\n let readWriteAlias = false;\n let alias: JSX.Element | null = null;\n if (id.startsWith('alias.') && common?.alias?.id) {\n readWriteAlias = typeof common.alias.id === 'object';\n if (readWriteAlias) {\n alias = (\n <div style={styles.cellIdAliasReadWriteDiv}>\n {common.alias.id.read ? (\n <Box\n component=\"div\"\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n that.onSelect(common.alias.id.read);\n setTimeout(\n () => that.expandAllSelected(() => that.scrollToItem(common.alias.id.read)),\n 100,\n );\n }}\n sx={that.styles.aliasReadWrite}\n >\n ←{common.alias.id.read}\n </Box>\n ) : null}\n {common.alias.id.write ? (\n <Box\n component=\"div\"\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n that.onSelect(common.alias.id.write);\n setTimeout(\n () => that.expandAllSelected(() => that.scrollToItem(common.alias.id.write)),\n 100,\n );\n }}\n sx={that.styles.aliasReadWrite}\n >\n →{common.alias.id.write}\n </Box>\n ) : null}\n </div>\n );\n } else {\n alias = (\n <Box\n component=\"div\"\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n that.onSelect(common.alias.id);\n setTimeout(() => that.expandAllSelected(() => that.scrollToItem(common.alias.id)), 100);\n }}\n sx={that.styles.aliasAlone}\n >\n →{common.alias.id}\n </Box>\n );\n }\n } else if (that.info.aliasesMap[id]) {\n // Some alias points to that object. It can be more than one\n if (that.info.aliasesMap[id].length > 1) {\n // Show number of aliases and open a menu by click\n alias = (\n <Box\n component=\"div\"\n id={`alias_${id}`}\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n that.setState({ aliasMenu: id });\n }}\n sx={that.styles.aliasAlone}\n >\n {that.props.t('ra_%s links from aliases', that.info.aliasesMap[id].length)}\n </Box>\n );\n } else {\n // Show name of alias and open it by click\n alias = renderAliasLink(that, id, 0);\n }\n }\n\n let checkColor = common?.color;\n let invertBackground;\n if (checkColor && !that.state.selected.includes(id)) {\n const background =\n that.props.themeName === 'dark' ? '#1f1f1f' : that.props.themeName === 'blue' ? '#222a2e' : '#FFFFFF';\n const distance = Utils.colorDistance(checkColor, background);\n // console.log(`Distance: ${checkColor} - ${background} = ${distance}`);\n if (distance < 1000) {\n invertBackground = that.props.themeType === 'dark' ? '#9a9a9a' : '#565656';\n }\n }\n let bold = false;\n if (id === '0_userdata') {\n checkColor = COLOR_NAME_USERDATA(that.props.themeType);\n bold = true;\n invertBackground = false;\n } else if (id === 'alias') {\n checkColor = COLOR_NAME_ALIAS(that.props.themeType);\n bold = true;\n invertBackground = false;\n } else if (id === 'javascript') {\n checkColor = COLOR_NAME_JAVASCRIPT(that.props.themeType);\n bold = true;\n invertBackground = false;\n } else if (id === 'system') {\n checkColor = COLOR_NAME_SYSTEM(that.props.themeType);\n bold = true;\n invertBackground = false;\n } else if (id === 'system.adapter') {\n checkColor = COLOR_NAME_SYSTEM_ADAPTER(that.props.themeType);\n invertBackground = false;\n } else if (!checkColor || that.state.selected.includes(id)) {\n checkColor = 'inherit';\n invertBackground = false;\n }\n\n const icons = [];\n\n if (common?.statusStates) {\n const ids: Record<string, string> = {};\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 (!that.states[_id]) {\n if (that.objects[_id]?.type === 'state') {\n if (!that.recordStates.includes(_id)) {\n that.recordStates.push(_id);\n }\n that.states[_id] = { val: null } as ioBroker.State;\n that.subscribe(_id);\n }\n } else if (!that.recordStates.includes(_id)) {\n that.recordStates.push(_id);\n }\n });\n // calculate color\n // errorId has priority\n let colorSet = false;\n if (common.statusStates.errorId && that.states[ids.errorId] && that.states[ids.errorId].val) {\n checkColor = that.props.themeType === 'dark' ? COLOR_NAME_ERROR_DARK : COLOR_NAME_ERROR_LIGHT;\n invertBackground = false;\n colorSet = true;\n icons.push(\n <IconError\n key=\"error\"\n // title={that.texts.deviceError}\n style={that.styles.iconDeviceError}\n />,\n );\n }\n\n if (ids.onlineId && that.states[ids.onlineId]) {\n if (!colorSet) {\n if (that.states[ids.onlineId].val) {\n checkColor =\n that.props.themeType === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT;\n invertBackground = false;\n icons.push(\n <IconConnection\n key=\"conn\"\n // title={that.texts.deviceError}\n style={that.styles.iconDeviceConnected}\n />,\n );\n } else {\n checkColor =\n that.props.themeType === 'dark' ? COLOR_NAME_DISCONNECTED_DARK : COLOR_NAME_DISCONNECTED_LIGHT;\n invertBackground = false;\n icons.push(\n <IconDisconnected\n key=\"disc\"\n // title={that.texts.deviceError}\n style={that.styles.iconDeviceDisconnected}\n />,\n );\n }\n } else if (that.states[ids.onlineId].val) {\n icons.push(\n <IconConnection\n key=\"conn\"\n // title={that.texts.deviceError}\n style={that.styles.iconDeviceConnected}\n />,\n );\n } else {\n icons.push(\n <IconDisconnected\n key=\"disc\"\n // title={that.texts.deviceError}\n style={that.styles.iconDeviceDisconnected}\n />,\n );\n }\n } else if (ids.offlineId && that.states[ids.offlineId]) {\n if (!colorSet) {\n if (that.states[ids.offlineId].val) {\n checkColor =\n that.props.themeType === 'dark' ? COLOR_NAME_DISCONNECTED_DARK : COLOR_NAME_DISCONNECTED_LIGHT;\n invertBackground = false;\n icons.push(\n <IconDisconnected\n key=\"disc\"\n // title={that.texts.deviceError}\n style={that.styles.iconDeviceDisconnected}\n />,\n );\n } else {\n checkColor =\n that.props.themeType === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT;\n invertBackground = false;\n icons.push(\n <IconConnection\n key=\"conn\"\n // title={that.texts.deviceError}\n style={that.styles.iconDeviceConnected}\n />,\n );\n }\n } else if (that.states[ids.offlineId].val) {\n icons.push(\n <IconDisconnected\n key=\"disc\"\n // title={that.texts.deviceError}\n style={that.styles.iconDeviceDisconnected}\n />,\n );\n } else {\n icons.push(\n <IconConnection\n key=\"conn\"\n // title={that.texts.deviceError}\n style={that.styles.iconDeviceConnected}\n />,\n );\n }\n }\n }\n\n const q = checkVisibleObjectType ? Utils.quality2text(that.states[id]?.q || 0).join(', ') : null;\n\n let name: JSX.Element[] | string = item.data?.title || '';\n let useDesc = false;\n if (that.state.showDescription) {\n const oTooltip: string | null = getObjectTooltip(item.data, that.props.lang);\n if (oTooltip) {\n name = [\n <div\n key=\"name\"\n style={styles.cellNameDivDiv}\n >\n {name}\n </div>,\n <div\n key=\"desc\"\n style={styles.cellDescription}\n >\n {oTooltip}\n </div>,\n ];\n useDesc = !!oTooltip;\n }\n }\n\n const narrowStyleWithDetails = that.width === 'xs' && that.state.focused === id;\n\n const colID = (\n <Grid\n container\n wrap=\"nowrap\"\n direction=\"row\"\n sx={styles.cellId}\n style={{ width: colWidth('id'), flexGrow: colGrow('id'), paddingLeft }}\n >\n <Grid\n container\n // the icons must not be squeezed by a long name\n sx={{ alignItems: 'center', flexShrink: 0 }}\n >\n {checkbox}\n {iconFolder}\n </Grid>\n <Grid\n style={{\n ...styles.cellIdSpan,\n // only the name may shrink (it is cut with an ellipsis), and for that a flex item\n // needs `minWidth: 0`, otherwise its content defines the minimal width\n minWidth: 0,\n ...(invertBackground ? that.styles.invertedBackground : undefined),\n color: checkColor,\n fontWeight: bold ? 'bold' : undefined,\n }}\n >\n <Tooltip\n title={getIdFieldTooltip(item.data, that.props.lang)}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <div>{item.data.name}</div>\n </Tooltip>\n {alias}\n {icons}\n </Grid>\n <div style={{ ...styles.grow, ...(invertBackground ? that.styles.invertedBackgroundFlex : {}) }} />\n <Grid\n container\n sx={{ alignItems: 'center', flexShrink: 0 }}\n >\n {iconItem}\n </Grid>\n {that.width !== 'xs' ? (\n <div style={{ flexShrink: 0 }}>\n <IconCopy\n className={narrowStyleWithDetails ? '' : 'copyButton'}\n style={styles.cellCopyButton}\n onClick={e => that.onCopy(e, id)}\n />\n </div>\n ) : null}\n </Grid>\n );\n\n let colName =\n (narrowStyleWithDetails && name) || that.columnsVisibility.name ? (\n <Box\n component=\"div\"\n sx={{\n ...styles.cellName,\n ...(useDesc ? styles.cellNameWithDesc : undefined),\n width: that.width !== 'xs' ? colWidth('name') : undefined,\n flexGrow: that.width !== 'xs' ? colGrow('name') : undefined,\n // padding and not margin: a margin is added to the width of the column and all\n // following columns would not match the header anymore\n pl: narrowStyleWithDetails ? 0 : '5px',\n }}\n >\n {name}\n {!narrowStyleWithDetails && item.data?.title ? (\n <Box style={{ color: checkColor }}>\n <IconCopy\n className=\"copyButton\"\n style={styles.cellCopyButton}\n onClick={e => that.onCopy(e, item.data?.title)}\n />\n </Box>\n ) : null}\n </Box>\n ) : null;\n\n let colMiddle:\n | ({\n el: JSX.Element;\n type: 'filter_type' | 'filter_role' | 'filter_func' | 'filter_room' | 'quality' | 'from' | 'lc' | 'ts';\n onClick?: (() => void) | null | undefined;\n } | null)[]\n | null;\n if (!that.state.statesView) {\n colMiddle = [\n (narrowStyleWithDetails && obj?.type) || that.columnsVisibility.type\n ? {\n el: (\n <div\n key=\"type\"\n style={{\n ...styles.cellType,\n width: that.width !== 'xs' ? colWidth('type') : undefined,\n }}\n >\n {typeImg}\n \n {obj?.type}\n </div>\n ),\n type: 'filter_type',\n }\n : null,\n (narrowStyleWithDetails && common) || that.columnsVisibility.role\n ? {\n el: (\n <div\n key=\"role\"\n style={{\n ...styles.cellRole,\n width: that.width !== 'xs' ? colWidth('role') : '100%',\n cursor:\n that.state.filter.expertMode && enumEditable && that.props.objectBrowserEditRole\n ? 'text'\n : 'default',\n }}\n onClick={\n !narrowStyleWithDetails &&\n that.state.filter.expertMode &&\n enumEditable &&\n that.props.objectBrowserEditRole\n ? () => that.setState({ roleDialog: item.data.id })\n : undefined\n }\n >\n {common?.role}\n </div>\n ),\n type: 'filter_role',\n onClick:\n narrowStyleWithDetails &&\n that.state.filter.expertMode &&\n enumEditable &&\n that.props.objectBrowserEditRole\n ? () => that.setState({ roleDialog: item.data.id })\n : undefined,\n }\n : null,\n (narrowStyleWithDetails && common) || that.columnsVisibility.room\n ? {\n el: (\n <div\n key=\"room\"\n style={{\n ...styles.cellRoom,\n ...(item.data.per ? styles.cellEnumParent : {}),\n width: that.width !== 'xs' ? colWidth('room') : '100%',\n cursor: enumEditable ? 'text' : 'default',\n }}\n onClick={\n !narrowStyleWithDetails && enumEditable\n ? () => {\n const enums = findEnumsForObjectAsIds(that.info, item.data.id, 'roomEnums');\n that.setState({\n enumDialogEnums: enums,\n enumDialog: {\n item,\n type: 'room',\n enumsOriginal: JSON.stringify(enums),\n },\n });\n }\n : undefined\n }\n >\n {item.data.rooms}\n </div>\n ),\n type: 'filter_room',\n onClick:\n narrowStyleWithDetails && enumEditable\n ? () => {\n const enums = findEnumsForObjectAsIds(that.info, item.data.id, 'roomEnums');\n that.setState({\n enumDialogEnums: enums,\n enumDialog: {\n item,\n type: 'room',\n enumsOriginal: JSON.stringify(enums),\n },\n });\n }\n : undefined,\n }\n : null,\n (narrowStyleWithDetails && common) || that.columnsVisibility.func\n ? {\n el: (\n <div\n key=\"func\"\n style={{\n ...styles.cellFunc,\n ...(item.data.pef ? styles.cellEnumParent : {}),\n width: that.width !== 'xs' ? colWidth('func') : '100%',\n cursor: enumEditable ? 'text' : 'default',\n }}\n onClick={\n !narrowStyleWithDetails && enumEditable\n ? () => {\n const enums = findEnumsForObjectAsIds(that.info, item.data.id, 'funcEnums');\n that.setState({\n enumDialogEnums: enums,\n enumDialog: {\n item,\n type: 'func',\n enumsOriginal: JSON.stringify(enums),\n },\n });\n }\n : undefined\n }\n >\n {item.data.funcs}\n </div>\n ),\n type: 'filter_func',\n onClick:\n narrowStyleWithDetails && enumEditable\n ? () => {\n const enums = findEnumsForObjectAsIds(that.info, item.data.id, 'funcEnums');\n that.setState({\n enumDialogEnums: enums,\n enumDialog: {\n item,\n type: 'func',\n enumsOriginal: JSON.stringify(enums),\n },\n });\n }\n : undefined,\n }\n : null,\n ];\n } else {\n colMiddle = [\n (narrowStyleWithDetails && checkVisibleObjectType && that.states[id]?.from) ||\n that.columnsVisibility.changedFrom\n ? {\n el: (\n <div\n key=\"from\"\n style={{\n ...styles.cellRole,\n width: that.width !== 'xs' ? colWidth('changedFrom') : undefined,\n }}\n title={newValueTitle.join('\\n')}\n >\n {checkVisibleObjectType && that.states[id]?.from ? newValue : null}\n </div>\n ),\n type: 'from',\n }\n : null,\n (narrowStyleWithDetails && q) || that.columnsVisibility.qualityCode\n ? {\n el: (\n <div\n key=\"q\"\n style={{\n ...styles.cellRole,\n width: that.width !== 'xs' ? colWidth('qualityCode') : undefined,\n }}\n title={q || ''}\n >\n {q}\n </div>\n ),\n type: 'quality',\n }\n : null,\n (narrowStyleWithDetails && checkVisibleObjectType && that.states[id]?.ts) ||\n that.columnsVisibility.timestamp\n ? {\n el: (\n <div\n key=\"ts\"\n style={{\n ...styles.cellRole,\n width: that.width !== 'xs' ? colWidth('timestamp') : undefined,\n }}\n >\n {checkVisibleObjectType && that.states[id]?.ts\n ? Utils.formatDate(\n new Date(that.states[id].ts),\n that.props.dateFormat ||\n that.systemConfig?.common.dateFormat ||\n DEFAULT_DATE_FORMAT,\n )\n : null}\n </div>\n ),\n type: 'ts',\n }\n : null,\n (narrowStyleWithDetails && checkVisibleObjectType && that.states[id]?.lc) ||\n that.columnsVisibility.lastChange\n ? {\n el: (\n <div\n key=\"lc\"\n style={{\n ...styles.cellRole,\n width: that.width !== 'xs' ? colWidth('lastChange') : undefined,\n }}\n >\n {checkVisibleObjectType && that.states[id]?.lc\n ? Utils.formatDate(\n new Date(that.states[id].lc),\n that.props.dateFormat ||\n that.systemConfig?.common.dateFormat ||\n DEFAULT_DATE_FORMAT,\n )\n : null}\n </div>\n ),\n type: 'lc',\n }\n : null,\n ];\n }\n\n let colCustom: JSX.Element[] | null =\n that.adapterColumns?.map(it => (\n <div\n style={{\n ...styles.cellAdapter,\n width: that.width !== 'xs' ? colWidth(it.id) : undefined,\n }}\n key={it.id}\n title={`${it.adapter} => ${it.pathText}`}\n >\n {obj ? renderCustomValue(that, obj, it, item) : null}\n </div>\n )) || null;\n\n const columnValue =\n narrowStyleWithDetails || that.columnsVisibility.val\n ? renderColumnValue(that, id, item, narrowStyleWithDetails)\n : null;\n\n let colValue =\n (narrowStyleWithDetails && columnValue) || that.columnsVisibility.val ? (\n <div\n style={{\n ...styles.cellValue,\n width: that.width !== 'xs' ? colWidth('val') : 'calc(100% - 100px)',\n cursor: valueEditable\n ? common?.type === 'file'\n ? 'zoom-in'\n : item.data.button\n ? 'grab'\n : 'text'\n : 'default',\n }}\n onClick={e => {\n if (valueEditable) {\n if (!obj || !that.states) {\n // return;\n } else if (common?.type === 'file') {\n that.setState({ viewFileDialog: id });\n } else if (item.data.url && e.ctrlKey) {\n if (that.states[id]?.val && typeof that.states[id].val === 'string') {\n if (common?.role === 'url.self') {\n window.location.href = that.states[id].val;\n } else {\n const opened = window.open(that.states[id].val, '_blank');\n opened?.focus();\n }\n }\n } else if (!that.state.filter.expertMode && item.data.button) {\n // in non-expert mode control button directly\n that.props.socket\n .setState(id, true)\n .catch(e => window.alert(`Cannot write state \"${id}\": ${e}`));\n } else if (!that.state.filter.expertMode && item.data.switch) {\n // in non-expert mode control switch directly\n that.props.socket\n .setState(id, !that.states[id].val)\n .catch(e => window.alert(`Cannot write state \"${id}\": ${e}`));\n } else {\n that.edit = {\n val: that.states[id] ? that.states[id].val : '',\n q: that.states[id] ? that.states[id].q || 0 : 0,\n ack: false,\n id,\n };\n that.setState({ updateOpened: true });\n }\n } else if (common?.role === 'url' || (common?.role === 'url.blank' && e.ctrlKey)) {\n if (that.states[id]?.val && typeof that.states[id].val === 'string') {\n window.open(that.states[id].val, '_blank');\n }\n } else if (common?.role === 'url.self' && e.ctrlKey) {\n if (that.states[id]?.val && typeof that.states[id].val === 'string') {\n window.location.href = that.states[id].val;\n }\n }\n }}\n >\n {columnValue}\n </div>\n ) : null;\n\n let colButtons =\n narrowStyleWithDetails || that.columnsVisibility.buttons ? (\n <div\n style={{\n ...styles.cellButtons,\n width: that.width !== 'xs' ? colWidth('buttons') : undefined,\n }}\n >\n {renderColumnButtons(that, id, item)}\n </div>\n ) : null;\n\n let colDetails: JSX.Element | null = null;\n if (that.width === 'xs' && that.state.focused === id) {\n colMiddle = colMiddle.filter(a => a);\n let renderedMiddle: (JSX.Element | null)[] | null;\n if (!colMiddle.length) {\n renderedMiddle = null;\n } else {\n renderedMiddle = colMiddle.map(it => {\n if (!it) {\n return null;\n }\n return (\n <div\n key={it.type}\n style={styles.cellDetailsLine}\n >\n <span style={styles.cellDetailsName}>{that.texts[it.type]}:</span>\n {it.el}\n <div style={{ flexGrow: 1 }} />\n {it.onClick ? (\n <IconEdit\n style={styles.cellCopyButtonInDetails}\n onClick={() => {\n if (it?.onClick) {\n it.onClick();\n }\n }}\n />\n ) : null}\n </div>\n );\n });\n }\n if (!colCustom.length) {\n colCustom = null;\n }\n colDetails = (\n <Paper\n style={{\n width: '100%',\n // the padding must be inside of the width, else the row is wider than the table\n boxSizing: 'border-box',\n display: 'flex',\n flexDirection: 'column',\n padding: 10,\n backgroundColor: that.props.theme.palette.mode === 'dark' ? '#333' : '#ccc',\n }}\n >\n <div style={styles.cellDetailsLine}>\n <div style={{ flexGrow: 1 }} />\n <IconCopy\n style={styles.cellCopyButtonInDetails}\n onClick={e => that.onCopy(e, id)}\n />\n </div>\n {colName && (\n <div style={styles.cellDetailsLine}>\n <span style={styles.cellDetailsName}>{that.texts.name}:</span>\n {colName}\n <div style={{ flexGrow: 1 }} />\n {item.data?.title ? (\n <IconCopy\n className=\"copyButton\"\n style={styles.cellCopyButtonInDetails}\n onClick={e => that.onCopy(e, item.data?.title)}\n />\n ) : null}\n </div>\n )}\n {renderedMiddle}\n {colCustom && <div style={styles.cellDetailsLine}>{colCustom}</div>}\n {that.objects[id]?.type === 'state' && (\n <div style={styles.cellDetailsLine}>\n <span style={styles.cellDetailsName}>{that.texts.value}:</span>\n {colValue}\n <div style={{ flexGrow: 1 }} />\n <IconCopy\n className=\"copyButton\"\n style={styles.cellCopyButtonInDetails}\n onClick={e => {\n const { valText } = formatValue({\n state: that.states[id],\n obj: that.objects[id] as ioBroker.StateObject,\n texts: that.texts,\n dateFormat:\n that.props.dateFormat ||\n that.systemConfig?.common.dateFormat ||\n DEFAULT_DATE_FORMAT,\n isFloatComma:\n that.props.isFloatComma === undefined\n ? (that.systemConfig?.common.isFloatComma ?? true)\n : that.props.isFloatComma,\n });\n that.onCopy(e, valText.c !== undefined ? valText.c : valText.v.toString());\n }}\n key=\"cc\"\n />\n </div>\n )}\n {colButtons && <div style={{ ...styles.cellDetailsLine, justifyContent: 'right' }}>{colButtons}</div>}\n </Paper>\n );\n\n colName = null;\n colMiddle = null;\n colCustom = null;\n colValue = null;\n colButtons = null;\n }\n\n const row = (\n <Grid\n container\n direction=\"row\"\n wrap=\"nowrap\"\n sx={Utils.getStyle(\n that.props.theme,\n styles.tableRow,\n that.state.linesEnabled && styles.tableRowLines,\n !that.props.dragEnabled && styles.tableRowNoDragging,\n alias && styles.tableRowAlias,\n readWriteAlias && styles.tableRowAliasReadWrite,\n that.state.focused === id && that.props.multiSelect && styles.tableRowFocused,\n !item.data.visible && styles.filteredOut,\n item.data.hasVisibleParent &&\n !item.data.visible &&\n !item.data.hasVisibleChildren &&\n styles.filteredParentOut,\n that.state.selected.includes(id) && styles.itemSelected,\n that.state.selectedNonObject === id && styles.itemSelected,\n )}\n key={id}\n id={id}\n onMouseDown={e => {\n that.onSelect(id);\n let isRightMB;\n if ('which' in e) {\n // Gecko (Firefox), WebKit (Safari/Chrome) & Opera\n isRightMB = e.which === 3;\n } else if ('button' in e) {\n // IE, Opera\n isRightMB = e.button === 2;\n }\n if (isRightMB) {\n that.contextMenu = {\n item,\n ts: Date.now(),\n };\n } else {\n that.contextMenu = null;\n }\n }}\n onDoubleClick={() => {\n if (!item.children) {\n that.onSelect(id, true);\n } else {\n that.toggleExpanded(id);\n }\n }}\n >\n {colID}\n {colName}\n {colMiddle?.map(it => it?.el)}\n {colCustom}\n {colValue}\n {colButtons}\n </Grid>\n );\n return { row, details: colDetails };\n}\n\n/**\n * Renders an item.\n */\nexport function renderItem(\n that: ObjectBrowserClass,\n root: TreeItem,\n isExpanded: boolean | undefined,\n counter?: { count: number },\n): (JSX.Element | null)[] {\n const items: (JSX.Element | null)[] = [];\n counter = counter || { count: 0 };\n const result = renderLeaf(that, root, isExpanded, counter);\n let leaf: JSX.Element;\n const DragWrapper = that.props.DragWrapper;\n if (that.props.dragEnabled && DragWrapper) {\n if (root.data.sumVisibility) {\n leaf = (\n <DragWrapper\n key={root.data.id}\n item={root}\n style={styles.draggable}\n >\n {result.row}\n </DragWrapper>\n );\n } else {\n // change cursor\n leaf = (\n <div\n key={root.data.id}\n style={styles.nonDraggable}\n >\n {result.row}\n </div>\n );\n }\n } else {\n leaf = result.row;\n }\n if (root.data.id && leaf) {\n items.push(leaf);\n }\n if (result.details) {\n items.push(result.details);\n }\n\n isExpanded = isExpanded === undefined ? binarySearch(that.state.expanded, root.data.id) : isExpanded;\n\n if (!root.data.id || isExpanded) {\n if (!that.state.foldersFirst) {\n if (root.children) {\n items.push(\n root.children.map(item => {\n // do not render too many items in column editor mode\n if (!that.state.columnsSelectorShow || counter.count < 15) {\n if (item.data.sumVisibility) {\n return renderItem(that, item, undefined, counter);\n }\n }\n return null;\n }) as any as JSX.Element,\n );\n }\n } else if (root.children) {\n // first only folder\n items.push(\n root.children.map(item => {\n if (item.children) {\n // do not render too many items in column editor mode\n if (!that.state.columnsSelectorShow || counter.count < 15) {\n if (item.data.sumVisibility) {\n return renderItem(that, item, undefined, counter);\n }\n }\n }\n\n return null;\n }) as any as JSX.Element,\n );\n\n // then items\n items.push(\n root.children.map(item => {\n if (!item.children) {\n // do not render too many items in column editor mode\n if (!that.state.columnsSelectorShow || counter.count < 15) {\n if (item.data.sumVisibility) {\n return renderItem(that, item, undefined, counter);\n }\n }\n }\n return null;\n }) as any as JSX.Element,\n );\n }\n }\n\n return items;\n}\n"]}
|