@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":"styles.js","sourceRoot":"./src/","sources":["Components/ObjectBrowser/styles.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright 2020-2026, Denis Haev <dogafox@gmail.com>\n *\n * MIT License\n *\n */\n\nimport type React from 'react';\nimport type { SxProps } from '@mui/material';\n\nimport type { IobTheme } from '../../types';\nimport { Utils } from '../Utils';\nimport { ICON_SIZE, ROW_HEIGHT, styles as utilStyles } from './utils';\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 SMALL_BUTTON_SIZE,\n} from './constants';\n\nexport const styles: Record<string, any> = {\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: 16,\n },\n dialogColumns: {\n transition: 'opacity 1s',\n },\n dialogColumnsLabel: {\n fontSize: 12,\n paddingTop: 8,\n },\n columnCustom: {\n width: '100%',\n display: 'inline-block',\n },\n columnCustomEditable: {\n cursor: 'text',\n },\n columnCustom_center: {\n textAlign: 'center',\n },\n columnCustom_left: {\n textAlign: 'left',\n },\n columnCustom_right: {\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 // The header is a part of the scrolling container, so it scrolls horizontally together with the\n // rows and no synchronisation is required. `top: 0` pins it only vertically.\n headerRow: (theme: IobTheme): React.CSSProperties => ({\n paddingLeft: 8,\n height: 38,\n whiteSpace: 'nowrap',\n userSelect: 'none',\n position: 'sticky',\n top: 0,\n zIndex: 2,\n // the header uses the same layout rules as the rows, so both compute identical widths\n display: 'flex',\n flexWrap: 'nowrap',\n // the rows can be wider than the visible area\n width: 'fit-content',\n minWidth: '100%',\n // the rows are `border-box` (MUI), the padding must be inside of the width here too,\n // otherwise the growing column would be wider in the header than in the rows\n boxSizing: 'border-box',\n backgroundColor: theme.palette.background.paper,\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 // The header is rendered inside this container (see `headerRow`), so it uses the full height\n tableDiv: {\n paddingTop: 0,\n paddingLeft: 0,\n width: 'calc(100% - 8px)',\n height: '100%',\n overflow: 'auto',\n position: 'relative',\n },\n tableRow: (theme: IobTheme): SxProps => ({\n pl: 1,\n height: ROW_HEIGHT,\n lineHeight: `${ROW_HEIGHT}px`,\n verticalAlign: 'top',\n userSelect: 'none',\n position: 'relative',\n // The row is as wide as the sum of the columns, exactly like the header. If that is wider\n // than the container, the container scrolls horizontally and takes the header with it.\n // Without `flexShrink: 0` the cells would be squeezed and would not match the header anymore.\n width: 'fit-content',\n minWidth: '100%',\n '& > *': {\n flexShrink: 0,\n boxSizing: 'border-box',\n },\n '&:hover': {\n background: `${\n theme.palette.mode === 'dark' ? theme.palette.primary.dark : theme.palette.primary.light\n } !important`,\n color: Utils.invertColor(theme.palette.primary.main, true),\n },\n whiteSpace: 'nowrap',\n flexWrap: 'nowrap',\n }),\n tableRowLines: (theme: IobTheme): SxProps => ({\n borderBottom: `1px solid ${theme.palette.mode === 'dark' ? '#8888882e' : '#8888882e'}`,\n '& > div': {\n borderRight: `1px solid ${theme.palette.mode === 'dark' ? '#8888882e' : '#8888882e'}`,\n },\n }),\n tableRowNoDragging: {\n cursor: 'pointer',\n },\n tableRowAlias: {\n height: ROW_HEIGHT + 10,\n },\n tableRowAliasReadWrite: {\n height: ROW_HEIGHT + 22,\n },\n tableRowFocused: (theme: IobTheme): SxProps => ({\n '&:after': {\n content: '\"\"',\n position: 'absolute',\n top: 1,\n left: 1,\n right: 1,\n bottom: 1,\n border: theme.palette.mode ? '1px dotted #000' : '1px dotted #FFF',\n },\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 mt: '2px',\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 // This style is used for simple div. Do not migrate it to \"secondary.main\"\n cellIdIconFolder: (theme: IobTheme): React.CSSProperties => ({\n marginRight: 8,\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: 8,\n width: SMALL_BUTTON_SIZE,\n height: SMALL_BUTTON_SIZE,\n },\n cellIdIconOwn: {},\n cellCopyButton: {\n width: SMALL_BUTTON_SIZE,\n height: SMALL_BUTTON_SIZE,\n top: (ROW_HEIGHT - SMALL_BUTTON_SIZE) / 2,\n opacity: 0.8,\n position: 'absolute',\n right: 3,\n },\n cellCopyButtonInDetails: {\n width: SMALL_BUTTON_SIZE,\n height: SMALL_BUTTON_SIZE,\n top: (ROW_HEIGHT - SMALL_BUTTON_SIZE) / 2,\n opacity: 0.8,\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 overflow: 'hidden',\n textOverflow: 'ellipsis',\n position: 'relative',\n '& .copyButton': {\n display: 'none',\n },\n '&:hover .copyButton': {\n display: 'block',\n },\n },\n cellNameWithDesc: {\n lineHeight: 'normal',\n },\n cellNameDivDiv: {},\n cellDescription: {\n fontSize: 10,\n opacity: 0.5,\n fontStyle: 'italic',\n },\n cellIdAlias: (theme: IobTheme): SxProps => ({\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 },\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: 'flex',\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 cellValueTooltipImage: {\n width: 100,\n height: 'auto',\n },\n cellValueTooltipBoth: {\n width: 220,\n display: 'inline-block',\n whiteSpace: 'nowrap',\n },\n cellValueTooltipBox: {\n width: 250,\n overflow: 'hidden',\n pointerEvents: 'none',\n },\n tooltip: {\n pointerEvents: 'none',\n },\n cellValueTextUnit: {\n marginLeft: 4,\n opacity: 0.8,\n display: 'inline-block',\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.5,\n width: SMALL_BUTTON_SIZE + 4,\n height: SMALL_BUTTON_SIZE + 4,\n '&:hover': {\n opacity: 1,\n },\n p: 0,\n mt: '-2px',\n },\n cellButtonsEmptyButton: {\n fontSize: 12,\n },\n cellButtonMinWidth: {\n minWidth: 40,\n },\n cellButtonsButtonAlone: {\n ml: `${SMALL_BUTTON_SIZE + 6}px`,\n pt: 0,\n mt: '-2px',\n },\n cellButtonsButtonWithCustoms: (theme: IobTheme): React.CSSProperties => ({\n color: theme.palette.mode === 'dark' ? theme.palette.primary.main : theme.palette.secondary.main,\n }),\n cellButtonsButtonWithoutCustoms: {\n opacity: 0.2,\n },\n cellButtonsValueButton: (theme: IobTheme): SxProps => ({\n position: 'absolute',\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: 8,\n cursor: 'pointer',\n },\n cellButtonsValueButtonEdit: {\n right: SMALL_BUTTON_SIZE / 2 + 16,\n },\n cellDetailsLine: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n height: 32,\n fontSize: 16,\n },\n cellDetailsName: {\n fontWeight: 'bold',\n marginRight: 8,\n minWidth: 80,\n },\n\n filteredOut: {\n opacity: 0.5,\n },\n filteredParentOut: {\n opacity: 0.3,\n },\n filterInput: {\n mt: 0,\n mb: 0,\n },\n selectIcon: {\n width: 24,\n height: 24,\n marginRight: 4,\n },\n\n itemSelected: (theme: IobTheme): React.CSSProperties => ({\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 flexShrink: 0,\n boxSizing: 'border-box',\n },\n headerCellValue: {\n paddingTop: 4,\n // paddingLeft: 5,\n fontSize: 16,\n },\n\n visibleButtons: {\n color: '#2196f3',\n opacity: 0.7,\n },\n grow: {\n flexGrow: 1,\n },\n enumIconDiv: {\n marginRight: 8,\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 enumCheckbox: {\n minWidth: 0,\n },\n buttonDiv: {\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n },\n aclText: {\n fontSize: 13,\n marginTop: 6,\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 fontSizeTitle: {\n '@media screen and (max-width: 465px)': {\n '& *': {\n fontSize: 12,\n },\n },\n },\n draggable: {\n cursor: 'copy',\n },\n nonDraggable: {\n cursor: 'no-drop',\n },\n iconDeviceConnected: (theme: IobTheme): React.CSSProperties => ({\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: (theme: IobTheme): React.CSSProperties => ({\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: (theme: IobTheme): React.CSSProperties => ({\n color: theme.palette.mode === 'dark' ? COLOR_NAME_ERROR_DARK : COLOR_NAME_ERROR_LIGHT,\n opacity: 0.8,\n position: 'absolute',\n top: 4,\n right: 50,\n width: 20,\n }),\n resizeHandle: {\n display: 'block',\n position: 'absolute',\n cursor: 'col-resize',\n width: 7,\n top: 2,\n bottom: 2,\n zIndex: 1,\n },\n resizeHandleRight: {\n right: 3,\n borderRight: '2px dotted #888',\n '&:hover': {\n borderColor: '#ccc',\n borderRightStyle: 'solid',\n },\n '&.active': {\n borderColor: '#517ea5',\n borderRightStyle: 'solid',\n },\n },\n invertedBackground: (theme: IobTheme): React.CSSProperties => ({\n backgroundColor: theme.palette.mode === 'dark' ? '#9a9a9a' : '#565656',\n padding: '0 3px',\n borderRadius: '2px 0 0 2px',\n }),\n invertedBackgroundFlex: (theme: IobTheme): React.CSSProperties => ({\n backgroundColor: theme.palette.mode === 'dark' ? '#9a9a9a' : '#565656',\n borderRadius: '0 2px 2px 0',\n }),\n contextMenuEdit: (theme: IobTheme): React.CSSProperties => ({\n color: theme.palette.mode === 'dark' ? '#ffee48' : '#cbb801',\n }),\n contextMenuEditValue: (theme: IobTheme): React.CSSProperties => ({\n color: theme.palette.mode === 'dark' ? '#5dff45' : '#1cd301',\n }),\n contextMenuView: (theme: IobTheme): React.CSSProperties => ({\n color: theme.palette.mode === 'dark' ? '#FFF' : '#000',\n }),\n contextMenuCustom: (theme: IobTheme): React.CSSProperties => ({\n color: theme.palette.mode === 'dark' ? '#42eaff' : '#01bbc2',\n }),\n contextMenuACL: (theme: IobTheme): React.CSSProperties => ({\n color: theme.palette.mode === 'dark' ? '#e079ff' : '#500070',\n }),\n contextMenuRoom: (theme: IobTheme): React.CSSProperties => ({\n color: theme.palette.mode === 'dark' ? '#ff9a33' : '#642a00',\n }),\n contextMenuRole: (theme: IobTheme): React.CSSProperties => ({\n color: theme.palette.mode === 'dark' ? '#ffdb43' : '#562d00',\n }),\n contextMenuDelete: (theme: IobTheme): React.CSSProperties => ({\n color: theme.palette.mode === 'dark' ? '#ff4f4f' : '#cf0000',\n }),\n contextMenuKeys: {\n marginLeft: 8,\n opacity: 0.7,\n fontSize: 'smaller',\n },\n contextMenuWithSubMenu: {\n display: 'flex',\n },\n ...utilStyles,\n};\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2020-2026, Denis Haev <dogafox@gmail.com>
|
|
3
|
+
*
|
|
4
|
+
* MIT License
|
|
5
|
+
*
|
|
6
|
+
* Part of the object browser, see ./ObjectBrowserClass.tsx
|
|
7
|
+
*/
|
|
8
|
+
import { type JSX } from 'react';
|
|
9
|
+
import { type InputSelectItem } from './types';
|
|
10
|
+
import type { ObjectBrowserClass } from './ObjectBrowserClass';
|
|
11
|
+
export declare function getFilterInput(that: ObjectBrowserClass, name: 'id' | 'name'): JSX.Element;
|
|
12
|
+
export declare function getFilterSelect(that: ObjectBrowserClass, name: 'room' | 'func' | 'type' | 'custom' | 'role', values?: (string | InputSelectItem)[]): JSX.Element;
|
|
13
|
+
export declare function getFilterSelectRole(that: ObjectBrowserClass): JSX.Element;
|
|
14
|
+
export declare function getFilterSelectRoom(that: ObjectBrowserClass): JSX.Element;
|
|
15
|
+
export declare function getFilterSelectFunction(that: ObjectBrowserClass): JSX.Element;
|
|
16
|
+
export declare function getFilterSelectType(that: ObjectBrowserClass): JSX.Element;
|
|
17
|
+
export declare function getFilterSelectCustoms(that: ObjectBrowserClass): JSX.Element | null;
|
|
18
|
+
/**
|
|
19
|
+
* Renders the toolbar.
|
|
20
|
+
*/
|
|
21
|
+
export declare function getToolbar(that: ObjectBrowserClass): JSX.Element;
|
|
22
|
+
/**
|
|
23
|
+
* Render the right handle for resizing
|
|
24
|
+
*/
|
|
25
|
+
export declare function renderHandleRight(that: ObjectBrowserClass): JSX.Element;
|
|
26
|
+
export declare function renderHeader(that: ObjectBrowserClass): JSX.Element;
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2020-2026, Denis Haev <dogafox@gmail.com>
|
|
3
|
+
*
|
|
4
|
+
* MIT License
|
|
5
|
+
*
|
|
6
|
+
* Part of the object browser, see ./ObjectBrowserClass.tsx
|
|
7
|
+
*/
|
|
8
|
+
import React from 'react';
|
|
9
|
+
import { Badge, Box, IconButton, ListItemIcon, ListItemText, Menu, MenuItem, Tooltip } from '@mui/material';
|
|
10
|
+
import { Add as AddIcon, Build as BuildIcon, Close as IconClose, LooksOne as LooksOneIcon, Publish as PublishIcon, Refresh as RefreshIcon, TextFields as TextFieldsIcon, ViewColumn as IconColumns, ContentPaste, UploadFile, } from '@mui/icons-material';
|
|
11
|
+
import { Utils } from '../Utils';
|
|
12
|
+
import { IconExpert } from '../../icons/IconExpert';
|
|
13
|
+
import { IconClosed } from '../../icons/IconClosed';
|
|
14
|
+
import { IconOpen } from '../../icons/IconOpen';
|
|
15
|
+
import { IconClearFilter } from '../../icons/IconClearFilter';
|
|
16
|
+
import { Icon } from '../Icon';
|
|
17
|
+
import { colGrow, colWidth, CustomFilterInput, CustomFilterSelect, getName, getSelectIdIconFromObjects, getVisibleItems, } from './utils';
|
|
18
|
+
import { styles } from './styles';
|
|
19
|
+
import { ITEM_IMAGES } from './constants';
|
|
20
|
+
export function getFilterInput(that, name) {
|
|
21
|
+
return (React.createElement(CustomFilterInput, { key: `${name}_${that.state.filterKey}`, styles: that.styles.filterInput, name: name, texts: that.texts, t: that.props.t, initialValue: that.state.filter[name], onChange: (name, value) => {
|
|
22
|
+
const filter = { ...that.state.filter };
|
|
23
|
+
if (value === undefined) {
|
|
24
|
+
delete filter[name];
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
filter[name] = value;
|
|
28
|
+
}
|
|
29
|
+
that.setState({ filter }, () => {
|
|
30
|
+
that.doFilter();
|
|
31
|
+
that.props.onFilterChanged?.(filter);
|
|
32
|
+
});
|
|
33
|
+
} }));
|
|
34
|
+
}
|
|
35
|
+
export function getFilterSelect(that, name, values) {
|
|
36
|
+
return (React.createElement(CustomFilterSelect, { key: `${name}_${that.state.filterKey}`, name: name, texts: that.texts, initialValue: that.state.filter[name] || [], values: values || [], onChange: (name, value) => {
|
|
37
|
+
const filter = { ...that.state.filter };
|
|
38
|
+
if (value === undefined) {
|
|
39
|
+
delete filter[name];
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
filter[name] = value;
|
|
43
|
+
}
|
|
44
|
+
that.setState({ filter }, () => {
|
|
45
|
+
that.doFilter();
|
|
46
|
+
that.props.onFilterChanged?.(filter);
|
|
47
|
+
});
|
|
48
|
+
} }));
|
|
49
|
+
}
|
|
50
|
+
export function getFilterSelectRole(that) {
|
|
51
|
+
return getFilterSelect(that, 'role', that.info.roles.map(it => it.role));
|
|
52
|
+
}
|
|
53
|
+
export function getFilterSelectRoom(that) {
|
|
54
|
+
const rooms = that.info.roomEnums.map(id => ({
|
|
55
|
+
name: getName(that.objects[id]?.common?.name, that.props.lang) || id.split('.').pop(),
|
|
56
|
+
value: id,
|
|
57
|
+
icon: (React.createElement(Icon, { src: that.objects[id]?.common?.icon || '', style: styles.selectIcon })),
|
|
58
|
+
}));
|
|
59
|
+
return getFilterSelect(that, 'room', rooms);
|
|
60
|
+
}
|
|
61
|
+
export function getFilterSelectFunction(that) {
|
|
62
|
+
const func = that.info.funcEnums.map(id => ({
|
|
63
|
+
name: getName(that.objects[id]?.common?.name, that.props.lang) || id.split('.').pop(),
|
|
64
|
+
value: id,
|
|
65
|
+
icon: (React.createElement(Icon, { src: that.objects[id]?.common?.icon || '', style: styles.selectIcon })),
|
|
66
|
+
}));
|
|
67
|
+
return getFilterSelect(that, 'func', func);
|
|
68
|
+
}
|
|
69
|
+
export function getFilterSelectType(that) {
|
|
70
|
+
const types = that.info.types.map(type => ({
|
|
71
|
+
name: type,
|
|
72
|
+
value: type,
|
|
73
|
+
icon: ITEM_IMAGES[type] || null,
|
|
74
|
+
}));
|
|
75
|
+
return getFilterSelect(that, 'type', types);
|
|
76
|
+
}
|
|
77
|
+
export function getFilterSelectCustoms(that) {
|
|
78
|
+
if (that.info.customs.length > 1) {
|
|
79
|
+
const customs = that.info.customs.map(id => ({
|
|
80
|
+
name: id === '_' ? that.texts.filterCustomsWithout : id,
|
|
81
|
+
value: id,
|
|
82
|
+
icon: id === '_' ? null : (React.createElement(Icon, { src: getSelectIdIconFromObjects(that.objects, id, that.props.lang, that.imagePrefix) || '', style: styles.selectIcon })),
|
|
83
|
+
}));
|
|
84
|
+
return getFilterSelect(that, 'custom', customs);
|
|
85
|
+
}
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Renders the toolbar.
|
|
90
|
+
*/
|
|
91
|
+
export function getToolbar(that) {
|
|
92
|
+
let allowObjectCreation = false;
|
|
93
|
+
if (that.state.selected.length || that.state.selectedNonObject) {
|
|
94
|
+
const id = that.state.selected[0] || that.state.selectedNonObject;
|
|
95
|
+
if (id.split('.').length < 2 || (that.objects[id] && that.objects[id].type === 'state')) {
|
|
96
|
+
allowObjectCreation = false;
|
|
97
|
+
}
|
|
98
|
+
else if (that.state.filter.expertMode) {
|
|
99
|
+
allowObjectCreation = true;
|
|
100
|
+
}
|
|
101
|
+
else if (id.startsWith('alias.0') || id.startsWith('0_userdata')) {
|
|
102
|
+
allowObjectCreation = true;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return (React.createElement("div", { style: {
|
|
106
|
+
display: 'flex',
|
|
107
|
+
width: '100%',
|
|
108
|
+
alignItems: 'center',
|
|
109
|
+
overflowX: 'auto',
|
|
110
|
+
} },
|
|
111
|
+
React.createElement("div", { style: {
|
|
112
|
+
display: 'flex',
|
|
113
|
+
width: '100%',
|
|
114
|
+
alignItems: 'center',
|
|
115
|
+
} },
|
|
116
|
+
React.createElement(Tooltip, { title: that.props.t('ra_Refresh tree'), slotProps: { popper: { sx: styles.tooltip } } },
|
|
117
|
+
React.createElement("div", null,
|
|
118
|
+
React.createElement(IconButton, { onClick: () => that.refreshComponent(), disabled: that.state.updating, size: "large" },
|
|
119
|
+
React.createElement(RefreshIcon, null)))),
|
|
120
|
+
that.props.showExpertButton && !that.props.expertMode && (React.createElement(Tooltip, { title: that.props.t('ra_expertMode'), slotProps: { popper: { sx: styles.tooltip } } },
|
|
121
|
+
React.createElement(IconButton, { key: "expertMode", color: that.state.filter.expertMode ? 'secondary' : 'default', onClick: () => {
|
|
122
|
+
const filter = { ...that.state.filter };
|
|
123
|
+
filter.expertMode = !filter.expertMode;
|
|
124
|
+
that.localStorage.setItem(`${that.props.dialogName || 'App'}.objectFilter`, JSON.stringify(filter));
|
|
125
|
+
that.setState({
|
|
126
|
+
filter,
|
|
127
|
+
});
|
|
128
|
+
}, size: "large" },
|
|
129
|
+
React.createElement(IconExpert, null)))),
|
|
130
|
+
!that.props.disableColumnSelector && that.width !== 'xs' && (React.createElement(Tooltip, { title: that.props.t('ra_Configure'), slotProps: { popper: { sx: styles.tooltip } } },
|
|
131
|
+
React.createElement(IconButton, { key: "columnSelector", color: that.state.columnsAuto ? 'primary' : 'default', onClick: () => that.setState({ columnsSelectorShow: true }), size: "large" },
|
|
132
|
+
React.createElement(IconColumns, null)))),
|
|
133
|
+
that.width !== 'xs' && that.state.expandAllVisible && (React.createElement(Tooltip, { title: that.props.t('ra_Expand all nodes'), slotProps: { popper: { sx: styles.tooltip } } },
|
|
134
|
+
React.createElement(IconButton, { key: "expandAll", onClick: () => that.onExpandAll(), size: "large" },
|
|
135
|
+
React.createElement(IconOpen, null)))),
|
|
136
|
+
React.createElement(Tooltip, { title: that.props.t('ra_Collapse all nodes'), slotProps: { popper: { sx: styles.tooltip } } },
|
|
137
|
+
React.createElement(IconButton, { key: "collapseAll", onClick: () => that.onCollapseAll(), size: "large" },
|
|
138
|
+
React.createElement(IconClosed, null))),
|
|
139
|
+
that.width !== 'xs' && (React.createElement(Tooltip, { title: that.props.t('ra_Expand one step node'), slotProps: { popper: { sx: styles.tooltip } } },
|
|
140
|
+
React.createElement(IconButton, { key: "expandVisible", color: "primary", onClick: () => that.onExpandVisible(), size: "large" },
|
|
141
|
+
React.createElement(Badge, { badgeContent: that.state.depth, color: "secondary", sx: (theme) => ({
|
|
142
|
+
badge: {
|
|
143
|
+
right: 3,
|
|
144
|
+
top: 3,
|
|
145
|
+
border: `2px solid ${theme.palette.background.paper}`,
|
|
146
|
+
padding: '0 4px',
|
|
147
|
+
},
|
|
148
|
+
}) },
|
|
149
|
+
React.createElement(IconOpen, null))))),
|
|
150
|
+
that.width !== 'xs' && (React.createElement(Tooltip, { title: that.props.t('ra_Collapse one step node'), slotProps: { popper: { sx: styles.tooltip } } },
|
|
151
|
+
React.createElement(IconButton, { key: "collapseVisible", color: "primary", onClick: () => that.onCollapseVisible(), size: "large" },
|
|
152
|
+
React.createElement(Badge, { sx: (theme) => ({
|
|
153
|
+
badge: {
|
|
154
|
+
right: 3,
|
|
155
|
+
top: 3,
|
|
156
|
+
border: `2px solid ${theme.palette.background.paper}`,
|
|
157
|
+
padding: '0 4px',
|
|
158
|
+
},
|
|
159
|
+
}), badgeContent: that.state.depth, color: "secondary" },
|
|
160
|
+
React.createElement(IconClosed, null))))),
|
|
161
|
+
that.props.objectStatesView && (React.createElement(Tooltip, { title: that.props.t('ra_Toggle the states view'), slotProps: { popper: { sx: styles.tooltip } } },
|
|
162
|
+
React.createElement(IconButton, { onClick: () => that.onStatesViewVisible(), size: "large" },
|
|
163
|
+
React.createElement(LooksOneIcon, { color: that.state.statesView ? 'primary' : 'inherit' })))),
|
|
164
|
+
React.createElement(Tooltip, { title: that.props.t('ra_Show/Hide object descriptions'), slotProps: { popper: { sx: styles.tooltip } } },
|
|
165
|
+
React.createElement(IconButton, { onClick: () => {
|
|
166
|
+
that.localStorage.setItem(`${that.props.dialogName || 'App'}.desc`, that.state.showDescription ? 'false' : 'true');
|
|
167
|
+
that.setState({ showDescription: !that.state.showDescription });
|
|
168
|
+
}, size: "large" },
|
|
169
|
+
React.createElement(TextFieldsIcon, { color: that.state.showDescription ? 'primary' : 'inherit' }))),
|
|
170
|
+
that.props.objectAddBoolean ? (React.createElement(Tooltip, { title: that.toolTipObjectCreating(), slotProps: { popper: { sx: styles.tooltip } } },
|
|
171
|
+
React.createElement("div", null,
|
|
172
|
+
React.createElement(IconButton, { disabled: !allowObjectCreation, onClick: () => that.setState({
|
|
173
|
+
modalNewObj: {
|
|
174
|
+
id: that.state.selected[0] || that.state.selectedNonObject,
|
|
175
|
+
},
|
|
176
|
+
}), size: "large" },
|
|
177
|
+
React.createElement(AddIcon, null))))) : null,
|
|
178
|
+
that.props.objectImportExport && (React.createElement(Tooltip, { title: that.props.t('ra_Add objects tree from JSON file'), slotProps: { popper: { sx: styles.tooltip } } },
|
|
179
|
+
React.createElement(IconButton, { onClick: e => {
|
|
180
|
+
if (that.props.objectBrowserInsertJsonObjects) {
|
|
181
|
+
that.setState({ showImportMenu: e.currentTarget });
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
that.onOpenFile();
|
|
185
|
+
}
|
|
186
|
+
}, size: "large" },
|
|
187
|
+
React.createElement(PublishIcon, null)))),
|
|
188
|
+
that.props.objectBrowserInsertJsonObjects ? (React.createElement(Menu, { anchorEl: that.state.showImportMenu, open: !!that.state.showImportMenu, onClose: () => that.setState({ showImportMenu: null }) },
|
|
189
|
+
React.createElement(MenuItem, { onClick: () => that.setState({ showImportMenu: null }, () => that.onOpenFile()) },
|
|
190
|
+
React.createElement(ListItemIcon, null,
|
|
191
|
+
React.createElement(UploadFile, null)),
|
|
192
|
+
React.createElement(ListItemText, null, that.props.t('ra_From file'))),
|
|
193
|
+
React.createElement(MenuItem, { onClick: () => that.setState({ showImportMenu: null, showImportDialog: true }) },
|
|
194
|
+
React.createElement(ListItemIcon, null,
|
|
195
|
+
React.createElement(ContentPaste, null)),
|
|
196
|
+
React.createElement(ListItemText, null, that.props.t('ra_From text'))))) : null,
|
|
197
|
+
that.props.objectImportExport && (!!that.state.selected.length || that.state.selectedNonObject) && (React.createElement(Tooltip, { title: that.props.t('ra_Save objects tree as JSON file'), slotProps: { popper: { sx: styles.tooltip } } },
|
|
198
|
+
React.createElement(IconButton, { onClick: () => that.setState({ showExportDialog: that._getSelectedIdsForExport().length }), size: "large" },
|
|
199
|
+
React.createElement(PublishIcon, { style: { transform: 'rotate(180deg)' } }))))),
|
|
200
|
+
!!that.props.objectBrowserEditObject && that.width !== 'xs' && (React.createElement("div", { style: { display: 'flex', whiteSpace: 'nowrap' } }, `${that.props.t('ra_Objects')}: ${Object.keys(that.info.objects).length}, ${that.props.t('ra_States')}: ${Object.keys(that.info.objects).filter(el => that.info.objects[el].type === 'state').length}`)),
|
|
201
|
+
that.props.objectEditBoolean && (React.createElement(Tooltip, { title: that.props.t('ra_Edit custom config'), slotProps: { popper: { sx: styles.tooltip } } },
|
|
202
|
+
React.createElement(IconButton, { onClick: () => {
|
|
203
|
+
// get all visible states
|
|
204
|
+
const ids = that.root ? getVisibleItems(that.root, 'state', that.objects) : [];
|
|
205
|
+
if (ids.length) {
|
|
206
|
+
that.pauseSubscribe(true);
|
|
207
|
+
if (ids.length === 1) {
|
|
208
|
+
that.localStorage.setItem(`${that.props.dialogName || 'App'}.objectSelected`, that.state.selected[0]);
|
|
209
|
+
that.props.router?.doNavigate(null, 'custom', that.state.selected[0]);
|
|
210
|
+
}
|
|
211
|
+
that.setState({ customDialog: ids, customDialogAll: true });
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
that.setState({ toast: that.props.t('ra_please select object') });
|
|
215
|
+
}
|
|
216
|
+
}, size: "large" },
|
|
217
|
+
React.createElement(BuildIcon, null))))));
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Render the right handle for resizing
|
|
221
|
+
*/
|
|
222
|
+
export function renderHandleRight(that) {
|
|
223
|
+
return (React.createElement(Box, { component: "div", className: "iob-ob-resize-handler", sx: { ...styles.resizeHandle, ...styles.resizeHandleRight }, onMouseDown: that.resizerMouseDown, onDoubleClick: that.resizerReset, title: that.props.t('ra_Double click to reset table layout') }));
|
|
224
|
+
}
|
|
225
|
+
export function renderHeader(that) {
|
|
226
|
+
let filterClearInValue = null;
|
|
227
|
+
if (!that.columnsVisibility.buttons && !that.isFilterEmpty()) {
|
|
228
|
+
filterClearInValue = (React.createElement(IconButton, { onClick: () => that.clearFilter(), style: styles.buttonClearFilter, title: that.props.t('ra_Clear filter'), size: "large" },
|
|
229
|
+
React.createElement(IconClearFilter, null),
|
|
230
|
+
React.createElement(IconClose, { style: styles.buttonClearFilterIcon })));
|
|
231
|
+
}
|
|
232
|
+
if (that.width === 'xs') {
|
|
233
|
+
return (React.createElement("div", { style: Utils.getStyle(that.props.theme, styles.headerRow) },
|
|
234
|
+
React.createElement("div", { style: { ...styles.headerCell, width: '100%' } }, getFilterInput(that, 'id'))));
|
|
235
|
+
}
|
|
236
|
+
return (React.createElement("div", { style: Utils.getStyle(that.props.theme, styles.headerRow) },
|
|
237
|
+
React.createElement("div", { style: { ...styles.headerCell, width: colWidth('id'), flexGrow: colGrow('id'), position: 'relative' }, "data-min": 240, "data-name": "id" },
|
|
238
|
+
getFilterInput(that, 'id'),
|
|
239
|
+
renderHandleRight(that)),
|
|
240
|
+
that.columnsVisibility.name ? (React.createElement("div", { style: {
|
|
241
|
+
...styles.headerCell,
|
|
242
|
+
width: colWidth('name'),
|
|
243
|
+
flexGrow: colGrow('name'),
|
|
244
|
+
position: 'relative',
|
|
245
|
+
}, "data-min": 100, "data-name": "name" },
|
|
246
|
+
getFilterInput(that, 'name'),
|
|
247
|
+
renderHandleRight(that))) : null,
|
|
248
|
+
!that.state.statesView && (React.createElement(React.Fragment, null,
|
|
249
|
+
that.columnsVisibility.type ? (React.createElement("div", { style: {
|
|
250
|
+
...styles.headerCell,
|
|
251
|
+
width: colWidth('type'),
|
|
252
|
+
position: 'relative',
|
|
253
|
+
}, "data-min": 100, "data-name": "type" },
|
|
254
|
+
getFilterSelectType(that),
|
|
255
|
+
renderHandleRight(that))) : null,
|
|
256
|
+
that.columnsVisibility.role ? (React.createElement("div", { style: {
|
|
257
|
+
...styles.headerCell,
|
|
258
|
+
width: colWidth('role'),
|
|
259
|
+
position: 'relative',
|
|
260
|
+
}, "data-min": 100, "data-name": "role" },
|
|
261
|
+
getFilterSelectRole(that),
|
|
262
|
+
renderHandleRight(that))) : null,
|
|
263
|
+
that.columnsVisibility.room ? (React.createElement("div", { style: {
|
|
264
|
+
...styles.headerCell,
|
|
265
|
+
width: colWidth('room'),
|
|
266
|
+
position: 'relative',
|
|
267
|
+
}, "data-min": 100, "data-name": "room" },
|
|
268
|
+
getFilterSelectRoom(that),
|
|
269
|
+
renderHandleRight(that))) : null,
|
|
270
|
+
that.columnsVisibility.func ? (React.createElement("div", { style: {
|
|
271
|
+
...styles.headerCell,
|
|
272
|
+
width: colWidth('func'),
|
|
273
|
+
position: 'relative',
|
|
274
|
+
}, "data-min": 100, "data-name": "func" },
|
|
275
|
+
getFilterSelectFunction(that),
|
|
276
|
+
renderHandleRight(that))) : null)),
|
|
277
|
+
that.state.statesView && (React.createElement(React.Fragment, null,
|
|
278
|
+
React.createElement("div", { style: {
|
|
279
|
+
...styles.headerCell,
|
|
280
|
+
...styles.headerCellValue,
|
|
281
|
+
width: colWidth('changedFrom'),
|
|
282
|
+
position: 'relative',
|
|
283
|
+
}, "data-min": 100, "data-name": "changedFrom" },
|
|
284
|
+
that.props.t('ra_Changed from'),
|
|
285
|
+
renderHandleRight(that)),
|
|
286
|
+
React.createElement("div", { style: {
|
|
287
|
+
...styles.headerCell,
|
|
288
|
+
...styles.headerCellValue,
|
|
289
|
+
width: colWidth('qualityCode'),
|
|
290
|
+
position: 'relative',
|
|
291
|
+
}, "data-min": 100, "data-name": "qualityCode" },
|
|
292
|
+
that.props.t('ra_Quality code'),
|
|
293
|
+
renderHandleRight(that)),
|
|
294
|
+
React.createElement("div", { style: {
|
|
295
|
+
...styles.headerCell,
|
|
296
|
+
...styles.headerCellValue,
|
|
297
|
+
width: colWidth('timestamp'),
|
|
298
|
+
position: 'relative',
|
|
299
|
+
}, "data-min": 100, "data-name": "timestamp" },
|
|
300
|
+
that.props.t('ra_Timestamp'),
|
|
301
|
+
renderHandleRight(that)),
|
|
302
|
+
React.createElement("div", { style: {
|
|
303
|
+
...styles.headerCell,
|
|
304
|
+
...styles.headerCellValue,
|
|
305
|
+
width: colWidth('lastChange'),
|
|
306
|
+
position: 'relative',
|
|
307
|
+
}, "data-min": 100, "data-name": "lastChange" },
|
|
308
|
+
that.props.t('ra_Last change'),
|
|
309
|
+
renderHandleRight(that)))),
|
|
310
|
+
that.adapterColumns.map(item => (React.createElement("div", { style: {
|
|
311
|
+
...styles.headerCell,
|
|
312
|
+
...styles.headerCellValue,
|
|
313
|
+
width: that.columnsVisibility[item.id],
|
|
314
|
+
}, title: item.adapter, key: item.id, "data-min": 100, "data-name": item.id }, item.name))),
|
|
315
|
+
that.columnsVisibility.val ? (React.createElement("div", { style: {
|
|
316
|
+
...styles.headerCell,
|
|
317
|
+
...styles.headerCellValue,
|
|
318
|
+
width: colWidth('val'),
|
|
319
|
+
position: 'relative',
|
|
320
|
+
}, "data-min": 120, "data-name": "val" },
|
|
321
|
+
that.props.t('ra_Value'),
|
|
322
|
+
filterClearInValue)) : null,
|
|
323
|
+
that.columnsVisibility.buttons ? (React.createElement("div", { title: that.texts.filter_custom, style: { ...styles.headerCell, width: colWidth('buttons') } },
|
|
324
|
+
' ',
|
|
325
|
+
getFilterSelectCustoms(that))) : null));
|
|
326
|
+
}
|
|
327
|
+
//# sourceMappingURL=toolbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolbar.js","sourceRoot":"./src/","sources":["Components/ObjectBrowser/toolbar.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 { Badge, Box, IconButton, ListItemIcon, ListItemText, Menu, MenuItem, type Theme, Tooltip } from '@mui/material';\nimport {\n Add as AddIcon,\n Build as BuildIcon,\n Close as IconClose,\n LooksOne as LooksOneIcon,\n Publish as PublishIcon,\n Refresh as RefreshIcon,\n TextFields as TextFieldsIcon,\n ViewColumn as IconColumns,\n ContentPaste,\n UploadFile,\n} from '@mui/icons-material';\nimport { Utils } from '../Utils';\nimport { IconExpert } from '../../icons/IconExpert';\nimport { IconClosed } from '../../icons/IconClosed';\nimport { IconOpen } from '../../icons/IconOpen';\nimport { IconClearFilter } from '../../icons/IconClearFilter';\nimport { Icon } from '../Icon';\nimport {\n colGrow,\n colWidth,\n CustomFilterInput,\n CustomFilterSelect,\n getName,\n getSelectIdIconFromObjects,\n getVisibleItems,\n} from './utils';\nimport { type InputSelectItem } from './types';\nimport { styles } from './styles';\nimport { ITEM_IMAGES } from './constants';\nimport type { ObjectBrowserClass } from './ObjectBrowserClass';\n\nexport function getFilterInput(that: ObjectBrowserClass, name: 'id' | 'name'): JSX.Element {\n return (\n <CustomFilterInput\n key={`${name}_${that.state.filterKey}`}\n styles={that.styles.filterInput}\n name={name}\n texts={that.texts}\n t={that.props.t}\n initialValue={that.state.filter[name]}\n onChange={(name, value) => {\n const filter = { ...that.state.filter };\n if (value === undefined) {\n delete filter[name];\n } else {\n filter[name] = value;\n }\n that.setState({ filter }, () => {\n that.doFilter();\n that.props.onFilterChanged?.(filter);\n });\n }}\n />\n );\n}\n\nexport function getFilterSelect(\n that: ObjectBrowserClass,\n name: 'room' | 'func' | 'type' | 'custom' | 'role',\n values?: (string | InputSelectItem)[],\n): JSX.Element {\n return (\n <CustomFilterSelect\n key={`${name}_${that.state.filterKey}`}\n name={name}\n texts={that.texts}\n initialValue={that.state.filter[name] || []}\n values={values || []}\n onChange={(name, value) => {\n const filter = { ...that.state.filter };\n if (value === undefined) {\n delete filter[name];\n } else {\n filter[name] = value;\n }\n that.setState({ filter }, () => {\n that.doFilter();\n that.props.onFilterChanged?.(filter);\n });\n }}\n />\n );\n}\n\nexport function getFilterSelectRole(that: ObjectBrowserClass): JSX.Element {\n return getFilterSelect(\n that,\n 'role',\n that.info.roles.map(it => it.role),\n );\n}\n\nexport function getFilterSelectRoom(that: ObjectBrowserClass): JSX.Element {\n const rooms: InputSelectItem[] = that.info.roomEnums.map(\n id =>\n ({\n name: getName(that.objects[id]?.common?.name, that.props.lang) || id.split('.').pop(),\n value: id,\n icon: (\n <Icon\n src={that.objects[id]?.common?.icon || ''}\n style={styles.selectIcon}\n />\n ),\n }) as InputSelectItem,\n );\n\n return getFilterSelect(that, 'room', rooms);\n}\n\nexport function getFilterSelectFunction(that: ObjectBrowserClass): JSX.Element {\n const func: InputSelectItem[] = that.info.funcEnums.map(\n id =>\n ({\n name: getName(that.objects[id]?.common?.name, that.props.lang) || id.split('.').pop(),\n value: id,\n icon: (\n <Icon\n src={that.objects[id]?.common?.icon || ''}\n style={styles.selectIcon}\n />\n ),\n }) as InputSelectItem,\n );\n\n return getFilterSelect(that, 'func', func);\n}\n\nexport function getFilterSelectType(that: ObjectBrowserClass): JSX.Element {\n const types = that.info.types.map(type => ({\n name: type,\n value: type,\n icon: ITEM_IMAGES[type] || null,\n }));\n\n return getFilterSelect(that, 'type', types);\n}\n\nexport function getFilterSelectCustoms(that: ObjectBrowserClass): JSX.Element | null {\n if (that.info.customs.length > 1) {\n const customs = that.info.customs.map(id => ({\n name: id === '_' ? that.texts.filterCustomsWithout : id,\n value: id,\n icon:\n id === '_' ? null : (\n <Icon\n src={getSelectIdIconFromObjects(that.objects, id, that.props.lang, that.imagePrefix) || ''}\n style={styles.selectIcon}\n />\n ),\n }));\n return getFilterSelect(that, 'custom', customs);\n }\n return null;\n}\n\n/**\n * Renders the toolbar.\n */\nexport function getToolbar(that: ObjectBrowserClass): JSX.Element {\n let allowObjectCreation = false;\n if (that.state.selected.length || that.state.selectedNonObject) {\n const id = that.state.selected[0] || that.state.selectedNonObject;\n\n if (id.split('.').length < 2 || (that.objects[id] && that.objects[id].type === 'state')) {\n allowObjectCreation = false;\n } else if (that.state.filter.expertMode) {\n allowObjectCreation = true;\n } else if (id.startsWith('alias.0') || id.startsWith('0_userdata')) {\n allowObjectCreation = true;\n }\n }\n\n return (\n <div\n style={{\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n overflowX: 'auto',\n }}\n >\n <div\n style={{\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n }}\n >\n <Tooltip\n title={that.props.t('ra_Refresh tree')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <div>\n <IconButton\n onClick={() => that.refreshComponent()}\n disabled={that.state.updating}\n size=\"large\"\n >\n <RefreshIcon />\n </IconButton>\n </div>\n </Tooltip>\n {that.props.showExpertButton && !that.props.expertMode && (\n <Tooltip\n title={that.props.t('ra_expertMode')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n key=\"expertMode\"\n color={that.state.filter.expertMode ? 'secondary' : 'default'}\n onClick={() => {\n const filter = { ...that.state.filter };\n filter.expertMode = !filter.expertMode;\n that.localStorage.setItem(\n `${that.props.dialogName || 'App'}.objectFilter`,\n JSON.stringify(filter),\n );\n\n that.setState({\n filter,\n });\n }}\n size=\"large\"\n >\n <IconExpert />\n </IconButton>\n </Tooltip>\n )}\n {!that.props.disableColumnSelector && that.width !== 'xs' && (\n <Tooltip\n title={that.props.t('ra_Configure')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n key=\"columnSelector\"\n color={that.state.columnsAuto ? 'primary' : 'default'}\n onClick={() => that.setState({ columnsSelectorShow: true })}\n size=\"large\"\n >\n <IconColumns />\n </IconButton>\n </Tooltip>\n )}\n {that.width !== 'xs' && that.state.expandAllVisible && (\n <Tooltip\n title={that.props.t('ra_Expand all nodes')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n key=\"expandAll\"\n onClick={() => that.onExpandAll()}\n size=\"large\"\n >\n <IconOpen />\n </IconButton>\n </Tooltip>\n )}\n <Tooltip\n title={that.props.t('ra_Collapse all nodes')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n key=\"collapseAll\"\n onClick={() => that.onCollapseAll()}\n size=\"large\"\n >\n <IconClosed />\n </IconButton>\n </Tooltip>\n {that.width !== 'xs' && (\n <Tooltip\n title={that.props.t('ra_Expand one step node')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n key=\"expandVisible\"\n color=\"primary\"\n onClick={() => that.onExpandVisible()}\n size=\"large\"\n >\n <Badge\n badgeContent={that.state.depth}\n color=\"secondary\"\n sx={(theme: Theme) => ({\n badge: {\n right: 3,\n top: 3,\n border: `2px solid ${theme.palette.background.paper}`,\n padding: '0 4px',\n },\n })}\n >\n <IconOpen />\n </Badge>\n </IconButton>\n </Tooltip>\n )}\n {that.width !== 'xs' && (\n <Tooltip\n title={that.props.t('ra_Collapse one step node')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n key=\"collapseVisible\"\n color=\"primary\"\n onClick={() => that.onCollapseVisible()}\n size=\"large\"\n >\n <Badge\n sx={(theme: Theme) => ({\n badge: {\n right: 3,\n top: 3,\n border: `2px solid ${theme.palette.background.paper}`,\n padding: '0 4px',\n },\n })}\n badgeContent={that.state.depth}\n color=\"secondary\"\n >\n <IconClosed />\n </Badge>\n </IconButton>\n </Tooltip>\n )}\n {that.props.objectStatesView && (\n <Tooltip\n title={that.props.t('ra_Toggle the states view')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n onClick={() => that.onStatesViewVisible()}\n size=\"large\"\n >\n <LooksOneIcon color={that.state.statesView ? 'primary' : 'inherit'} />\n </IconButton>\n </Tooltip>\n )}\n\n <Tooltip\n title={that.props.t('ra_Show/Hide object descriptions')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n onClick={() => {\n that.localStorage.setItem(\n `${that.props.dialogName || 'App'}.desc`,\n that.state.showDescription ? 'false' : 'true',\n );\n that.setState({ showDescription: !that.state.showDescription });\n }}\n size=\"large\"\n >\n <TextFieldsIcon color={that.state.showDescription ? 'primary' : 'inherit'} />\n </IconButton>\n </Tooltip>\n\n {that.props.objectAddBoolean ? (\n <Tooltip\n title={that.toolTipObjectCreating()}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <div>\n <IconButton\n disabled={!allowObjectCreation}\n onClick={() =>\n that.setState({\n modalNewObj: {\n id: that.state.selected[0] || that.state.selectedNonObject,\n },\n })\n }\n size=\"large\"\n >\n <AddIcon />\n </IconButton>\n </div>\n </Tooltip>\n ) : null}\n\n {that.props.objectImportExport && (\n <Tooltip\n title={that.props.t('ra_Add objects tree from JSON file')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n onClick={e => {\n if (that.props.objectBrowserInsertJsonObjects) {\n that.setState({ showImportMenu: e.currentTarget });\n } else {\n that.onOpenFile();\n }\n }}\n size=\"large\"\n >\n <PublishIcon />\n </IconButton>\n </Tooltip>\n )}\n {that.props.objectBrowserInsertJsonObjects ? (\n <Menu\n anchorEl={that.state.showImportMenu}\n open={!!that.state.showImportMenu}\n onClose={() => that.setState({ showImportMenu: null })}\n >\n <MenuItem onClick={() => that.setState({ showImportMenu: null }, () => that.onOpenFile())}>\n <ListItemIcon>\n <UploadFile />\n </ListItemIcon>\n <ListItemText>{that.props.t('ra_From file')}</ListItemText>\n </MenuItem>\n <MenuItem onClick={() => that.setState({ showImportMenu: null, showImportDialog: true })}>\n <ListItemIcon>\n <ContentPaste />\n </ListItemIcon>\n <ListItemText>{that.props.t('ra_From text')}</ListItemText>\n </MenuItem>\n </Menu>\n ) : null}\n {that.props.objectImportExport && (!!that.state.selected.length || that.state.selectedNonObject) && (\n <Tooltip\n title={that.props.t('ra_Save objects tree as JSON file')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n onClick={() => that.setState({ showExportDialog: that._getSelectedIdsForExport().length })}\n size=\"large\"\n >\n <PublishIcon style={{ transform: 'rotate(180deg)' }} />\n </IconButton>\n </Tooltip>\n )}\n </div>\n {!!that.props.objectBrowserEditObject && that.width !== 'xs' && (\n <div style={{ display: 'flex', whiteSpace: 'nowrap' }}>\n {`${that.props.t('ra_Objects')}: ${Object.keys(that.info.objects).length}, ${that.props.t(\n 'ra_States',\n )}: ${Object.keys(that.info.objects).filter(el => that.info.objects[el].type === 'state').length}`}\n </div>\n )}\n {that.props.objectEditBoolean && (\n <Tooltip\n title={that.props.t('ra_Edit custom config')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n onClick={() => {\n // get all visible states\n const ids = that.root ? getVisibleItems(that.root, 'state', that.objects) : [];\n\n if (ids.length) {\n that.pauseSubscribe(true);\n\n if (ids.length === 1) {\n that.localStorage.setItem(\n `${that.props.dialogName || 'App'}.objectSelected`,\n that.state.selected[0],\n );\n that.props.router?.doNavigate(null, 'custom', that.state.selected[0]);\n }\n that.setState({ customDialog: ids, customDialogAll: true });\n } else {\n that.setState({ toast: that.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/**\n * Render the right handle for resizing\n */\nexport function renderHandleRight(that: ObjectBrowserClass): JSX.Element {\n return (\n <Box\n component=\"div\"\n className=\"iob-ob-resize-handler\"\n sx={{ ...styles.resizeHandle, ...styles.resizeHandleRight }}\n onMouseDown={that.resizerMouseDown}\n onDoubleClick={that.resizerReset}\n title={that.props.t('ra_Double click to reset table layout')}\n />\n );\n}\n\nexport function renderHeader(that: ObjectBrowserClass): JSX.Element {\n let filterClearInValue = null;\n\n if (!that.columnsVisibility.buttons && !that.isFilterEmpty()) {\n filterClearInValue = (\n <IconButton\n onClick={() => that.clearFilter()}\n style={styles.buttonClearFilter}\n title={that.props.t('ra_Clear filter')}\n size=\"large\"\n >\n <IconClearFilter />\n <IconClose style={styles.buttonClearFilterIcon} />\n </IconButton>\n );\n }\n\n if (that.width === 'xs') {\n return (\n <div style={Utils.getStyle(that.props.theme, styles.headerRow)}>\n <div style={{ ...styles.headerCell, width: '100%' }}>{getFilterInput(that, 'id')}</div>\n </div>\n );\n }\n\n return (\n <div style={Utils.getStyle(that.props.theme, styles.headerRow)}>\n <div\n style={{ ...styles.headerCell, width: colWidth('id'), flexGrow: colGrow('id'), position: 'relative' }}\n data-min={240}\n data-name=\"id\"\n >\n {getFilterInput(that, 'id')}\n {renderHandleRight(that)}\n </div>\n {that.columnsVisibility.name ? (\n <div\n style={{\n ...styles.headerCell,\n width: colWidth('name'),\n flexGrow: colGrow('name'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"name\"\n >\n {getFilterInput(that, 'name')}\n {renderHandleRight(that)}\n </div>\n ) : null}\n {!that.state.statesView && (\n <>\n {that.columnsVisibility.type ? (\n <div\n style={{\n ...styles.headerCell,\n width: colWidth('type'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"type\"\n >\n {getFilterSelectType(that)}\n {renderHandleRight(that)}\n </div>\n ) : null}\n {that.columnsVisibility.role ? (\n <div\n style={{\n ...styles.headerCell,\n width: colWidth('role'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"role\"\n >\n {getFilterSelectRole(that)}\n {renderHandleRight(that)}\n </div>\n ) : null}\n {that.columnsVisibility.room ? (\n <div\n style={{\n ...styles.headerCell,\n width: colWidth('room'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"room\"\n >\n {getFilterSelectRoom(that)}\n {renderHandleRight(that)}\n </div>\n ) : null}\n {that.columnsVisibility.func ? (\n <div\n style={{\n ...styles.headerCell,\n width: colWidth('func'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"func\"\n >\n {getFilterSelectFunction(that)}\n {renderHandleRight(that)}\n </div>\n ) : null}\n </>\n )}\n {that.state.statesView && (\n <>\n <div\n style={{\n ...styles.headerCell,\n ...styles.headerCellValue,\n width: colWidth('changedFrom'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"changedFrom\"\n >\n {that.props.t('ra_Changed from')}\n {renderHandleRight(that)}\n </div>\n <div\n style={{\n ...styles.headerCell,\n ...styles.headerCellValue,\n width: colWidth('qualityCode'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"qualityCode\"\n >\n {that.props.t('ra_Quality code')}\n {renderHandleRight(that)}\n </div>\n <div\n style={{\n ...styles.headerCell,\n ...styles.headerCellValue,\n width: colWidth('timestamp'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"timestamp\"\n >\n {that.props.t('ra_Timestamp')}\n {renderHandleRight(that)}\n </div>\n <div\n style={{\n ...styles.headerCell,\n ...styles.headerCellValue,\n width: colWidth('lastChange'),\n position: 'relative',\n }}\n data-min={100}\n data-name=\"lastChange\"\n >\n {that.props.t('ra_Last change')}\n {renderHandleRight(that)}\n </div>\n </>\n )}\n {that.adapterColumns.map(item => (\n <div\n style={{\n ...styles.headerCell,\n ...styles.headerCellValue,\n width: (that.columnsVisibility as Record<string, number | string>)[item.id],\n }}\n title={item.adapter}\n key={item.id}\n data-min={100}\n data-name={item.id}\n >\n {item.name}\n </div>\n ))}\n {that.columnsVisibility.val ? (\n <div\n style={{\n ...styles.headerCell,\n ...styles.headerCellValue,\n width: colWidth('val'),\n position: 'relative',\n }}\n data-min={120}\n data-name=\"val\"\n >\n {that.props.t('ra_Value')}\n {filterClearInValue}\n </div>\n ) : null}\n {that.columnsVisibility.buttons ? (\n <div\n title={that.texts.filter_custom}\n style={{ ...styles.headerCell, width: colWidth('buttons') }}\n >\n {' '}\n {getFilterSelectCustoms(that)}\n </div>\n ) : null}\n </div>\n );\n}\n"]}
|