@iobroker/adapter-react-v5 3.2.5 → 3.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/Components/ComplexCron.js.map +1 -1
  2. package/Components/FileBrowser.js +1 -1
  3. package/Components/FileBrowser.js.map +1 -1
  4. package/Components/FileViewer.js.map +1 -1
  5. package/Components/IconSelector.js +1 -1
  6. package/Components/IconSelector.js.map +1 -1
  7. package/Components/JsonConfigComponent/ConfigTabs.js.map +1 -1
  8. package/Components/JsonConfigComponent/index.js.map +1 -1
  9. package/Components/ObjectBrowser.js +23 -17
  10. package/Components/ObjectBrowser.js.map +1 -1
  11. package/Components/SimpleCron/index.js.map +1 -1
  12. package/Components/TreeTable.js +102 -66
  13. package/Components/TreeTable.js.map +1 -1
  14. package/Components/Utils.d.ts +20 -0
  15. package/Components/Utils.js +98 -9
  16. package/Components/Utils.js.map +1 -1
  17. package/Dialogs/ComplexCron.js +1 -1
  18. package/Dialogs/ComplexCron.js.map +1 -1
  19. package/Dialogs/Confirm.d.ts +1 -0
  20. package/Dialogs/Confirm.js +3 -2
  21. package/Dialogs/Confirm.js.map +1 -1
  22. package/Dialogs/Cron.js +1 -1
  23. package/Dialogs/Cron.js.map +1 -1
  24. package/Dialogs/Error.d.ts +1 -0
  25. package/Dialogs/Error.js +3 -2
  26. package/Dialogs/Error.js.map +1 -1
  27. package/Dialogs/FileSelect.js +1 -1
  28. package/Dialogs/FileSelect.js.map +1 -1
  29. package/Dialogs/Message.d.ts +1 -0
  30. package/Dialogs/Message.js +2 -1
  31. package/Dialogs/Message.js.map +1 -1
  32. package/Dialogs/SimpleCron.js +1 -1
  33. package/Dialogs/SimpleCron.js.map +1 -1
  34. package/Dialogs/TextInput.d.ts +1 -0
  35. package/Dialogs/TextInput.js +5 -3
  36. package/Dialogs/TextInput.js.map +1 -1
  37. package/GenericApp.js +1 -1
  38. package/GenericApp.js.map +1 -1
  39. package/README.md +6 -0
  40. package/Theme.js.map +1 -1
  41. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"TreeTable.js","names":["getAttr","obj","attr","lookup","split","length","name","shift","setAttr","value","undefined","styles","theme","tableContainer","width","height","overflow","table","minWidth","maxWidth","cell","paddingTop","paddingBottom","paddingLeft","paddingRight","rowMainWithChildren","rowMainWithoutChildren","rowNoEdit","opacity","cellExpand","cellButton","cellHeader","fontWeight","background","palette","mode","color","wordBreak","whiteSpace","width_name_nicknames","width_ioType","width_type","width_displayTraits","width_roomHint","rowSecondary","fontStyle","cellSecondary","fontSize","visuallyHidden","border","clip","margin","padding","position","top","fieldEditWithButton","display","fieldEdit","lineHeight","verticalAlign","fieldButton","colorDialog","subText","glow","animation","descendingComparator","a","b","orderBy","_a","_b","getComparator","order","stableSort","array","comparator","stabilizedThis","map","el","index","sort","TreeTable","props","opened","window","_localStorage","localStorage","getItem","JSON","parse","e","Array","isArray","state","editMode","deleteMode","editData","update","columns","field","useTable","showSelectColor","glowOnChange","item","col","val","renderCellEditSelect","editComponent","renderCellEditCustom","type","renderCellEditBoolean","renderCellEditColor","renderCellEditObjectID","renderCellEditString","target","setState","Object","keys","v","classes","EditComponent","stringify","newVal","checked","root","paper","selectCallback","selectIdValue","_val","style","backgroundColor","Utils","isUseBright","newColor","showSelectId","adapterName","themeType","socket","selected","level","i","editable","clsx","cellStyle","renderCellEdit","renderCellNonEdit","main","sub","subField","subLookup","mainText","subStyle","levelShift","data","indexOf","parentId","includes","id","children","filter","it","toString","replace","row","pos","push","splice","setItem","assign","renderCellWithSubField","ii","hidden","renderCell","onUpdate","newData","forEach","onDelete","renderLine","property","isAsc","headerStyle","noSort","handleRequestSort","title","noAdd","find","updateTimeout","clearTimeout","setTimeout","className","renderHead","renderSelectIdDialog","renderSelectColorDialog","count","line","oldLine","React","Component","propTypes","PropTypes","isRequired","string","loading","bool","arrayOf","shape","object","func","oneOf","number","withStyles"],"sources":["TreeTable.js"],"sourcesContent":["import React from 'react';\n\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\nimport { HexColorPicker as ColorPicker } from 'react-colorful';\n\nimport Fab from '@mui/material/Fab';\nimport Table from '@mui/material/Table';\nimport TableBody from '@mui/material/TableBody';\nimport TableCell from '@mui/material/TableCell';\nimport TableHead from '@mui/material/TableHead';\nimport TableRow from '@mui/material/TableRow';\nimport TableSortLabel from '@mui/material/TableSortLabel';\nimport IconButton from '@mui/material/IconButton';\nimport Select from '@mui/material/Select';\nimport MenuItem from '@mui/material/MenuItem';\nimport TextField from '@mui/material/TextField';\nimport Checkbox from '@mui/material/Checkbox';\nimport Dialog from '@mui/material/Dialog';\n\nimport IconEdit from '@mui/icons-material/Edit';\nimport IconDelete from '@mui/icons-material/Delete';\nimport IconExpand from '@mui/icons-material/NavigateNext';\nimport IconCollapse from '@mui/icons-material/ExpandMore';\nimport IconCheck from '@mui/icons-material/Check';\nimport IconClose from '@mui/icons-material/Close';\nimport IconAdd from '@mui/icons-material/Add';\nimport IconList from '@mui/icons-material/ViewHeadline';\nimport IconColor from '@mui/icons-material/Colorize';\n\nimport DialogSelectID from '../Dialogs/SelectID';\nimport Utils from './Utils';\n\nfunction getAttr(obj, attr, lookup) {\n if (typeof attr === 'string') {\n attr = attr.split('.');\n }\n\n if (!obj) {\n return null;\n }\n\n if (attr.length === 1) {\n if (lookup && lookup[obj[attr[0]]]) {\n return lookup[obj[attr[0]]];\n } else {\n return obj[attr[0]];\n }\n } else {\n const name = attr.shift();\n return getAttr(obj[name], attr);\n }\n}\n\nfunction setAttr(obj, attr, value) {\n if (typeof attr === 'string') {\n attr = attr.split('.');\n }\n\n if (attr.length === 1) {\n return obj[attr[0]] = value;\n } else {\n const name = attr.shift();\n if (obj[name] === null || obj[name] === undefined) {\n obj[name] = {};\n }\n return setAttr(obj[name], attr, value);\n }\n}\n\nconst styles = theme => ({\n tableContainer: {\n width: '100%',\n height: '100%',\n overflow: 'auto'\n },\n table: {\n width: '100%',\n minWidth: 800,\n maxWidth: 1920,\n },\n cell: {\n paddingTop: 0,\n paddingBottom: 0,\n paddingLeft: 4,\n paddingRight: 4,\n },\n rowMainWithChildren: {\n\n },\n rowMainWithoutChildren: {\n\n },\n rowNoEdit: {\n opacity: 0.3\n },\n cellExpand: {\n width: 30,\n },\n cellButton: {\n width: 30,\n },\n cellHeader: {\n fontWeight: 'bold',\n background: theme.palette.mode === 'dark' ? '#888' : '#888',\n color: theme.palette.mode === 'dark' ? '#EEE' : '#111',\n height: 48,\n wordBreak: 'break-word',\n whiteSpace: 'pre',\n },\n width_name_nicknames: {\n maxWidth: 150,\n },\n width_ioType: {\n maxWidth: 100,\n },\n width_type: {\n maxWidth: 100,\n },\n width_displayTraits: {\n maxWidth: 100,\n },\n width_roomHint: {\n maxWidth: 100,\n },\n rowSecondary: {\n fontStyle: 'italic',\n },\n cellSecondary: {\n fontSize: 10,\n },\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1,\n },\n fieldEditWithButton: {\n width: `calc(100% - 33px)`,\n display: 'inline-block',\n },\n fieldEdit: {\n width: `100%`,\n display: 'inline-block',\n lineHeight: '50px',\n verticalAlign: 'middle',\n },\n fieldButton: {\n width: 30,\n display: 'inline-block',\n },\n colorDialog: {\n overflow: 'hidden',\n padding: 15,\n },\n subText: {\n fontSize: 10,\n fontStyle: 'italic',\n },\n glow: {\n animation: 'glow 0.2s 2 alternate'\n }\n});\n\nfunction descendingComparator(a, b, orderBy, lookup) {\n const _a = getAttr(a, orderBy, lookup) || '';\n const _b = getAttr(b, orderBy, lookup) || '';\n\n if (_b < _a) {\n return -1;\n } else\n if (_b > _a) {\n return 1;\n } else {\n return 0;\n }\n}\n\nfunction getComparator(order, orderBy, lookup) {\n return order === 'desc'\n ? (a, b) => descendingComparator(a, b, orderBy, lookup)\n : (a, b) => -descendingComparator(a, b, orderBy, lookup);\n}\n\nfunction stableSort(array, comparator) {\n const stabilizedThis = array.map((el, index) => [el, index]);\n\n stabilizedThis.sort((a, b) => {\n const order = comparator(a[0], b[0]);\n if (order) {\n return order;\n } else {\n return a[1] - b[1];\n }\n });\n\n return stabilizedThis.map(el => el[0]);\n}\n\nclass TreeTable extends React.Component {\n constructor(props) {\n super(props);\n\n let opened = (window._localStorage || window.localStorage).getItem(this.props.name || 'iob-table') || '[]';\n try {\n opened = JSON.parse(opened) || [];\n } catch (e) {\n opened = [];\n }\n if (!Array.isArray(opened)) {\n opened = [];\n }\n\n this.state = {\n opened,\n editMode: false,\n deleteMode: false,\n editData: null,\n order: 'asc',\n update: null,\n orderBy: this.props.columns[0].field,\n useTable: false,\n showSelectColor: false,\n glowOnChange: props.glowOnChange,\n };\n }\n\n static getDerivedStateFromProps(props, state) {\n if (props.glowOnChange) {\n const update = [];\n let count = 0;\n if (props.data && state.data) {\n props.data.forEach(line => {\n count++;\n const oldLine = state.data.find(it => it.id === line.id);\n if (oldLine) {\n if (JSON.stringify(oldLine) !== JSON.stringify(line)) {\n update.push(line.id);\n }\n } else {\n update.push(line.id);\n }\n });\n }\n\n if (update.length && update.length !== count) {\n return {data: props.data, update};\n } else {\n return {data: props.data};\n }\n } else {\n return {data: props.data};\n }\n }\n\n renderCellEdit(item, col) {\n let val = getAttr(item, col.field);\n if (Array.isArray(val)) {\n val = val[0];\n }\n\n if (col.lookup) {\n return this.renderCellEditSelect(item, col, val);\n } if (col.editComponent) {\n return this.renderCellEditCustom(item, col, val);\n } else {\n if (col.type === 'boolean' || (!col.type && typeof val === 'boolean')) {\n return this.renderCellEditBoolean(item, col, val);\n } else if (col.type === 'color') {\n return this.renderCellEditColor(item, col, val);\n } else if (col.type === 'oid') {\n return this.renderCellEditObjectID(item, col, val);\n } else {\n return this.renderCellEditString(item, col, val);\n }\n }\n }\n\n renderCellEditSelect(item, col, val) {\n return <Select\n variant=\"standard\"\n onChange={e => {\n const editData = this.state.editData ? {...this.state.editData} : {};\n if (e.target.value === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = e.target.value;\n }\n this.setState({editData});\n }}\n value={(this.state.editData && this.state.editData[col.field]) || val}\n >\n {Object.keys(col.lookup).map(v => <MenuItem value={v}>{col.lookup[v]}</MenuItem>)}\n </Select>;\n }\n\n renderCellEditString(item, col, val) {\n return <TextField\n variant=\"standard\"\n className={this.props.classes.fieldEdit}\n fullWidth\n value={this.state.editData && this.state.editData[col.field] !== undefined ? this.state.editData[col.field] : val}\n onChange={e => {\n const editData = this.state.editData ? {...this.state.editData} : {};\n if (e.target.value === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = e.target.value;\n }\n this.setState({editData});\n }}\n />;\n }\n\n renderCellEditCustom(item, col, val) {\n const EditComponent = col.editComponent;\n\n // use new value if exists\n if (this.state.editData && this.state.editData[col.field] !== undefined) {\n val = this.state.editData[col.field];\n item = JSON.parse(JSON.stringify(item));\n item[col.field] = val;\n }\n\n return <EditComponent\n value={val}\n rowData={item}\n onChange={newVal => {\n const editData = this.state.editData ? {...this.state.editData} : {};\n if (newVal === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = newVal;\n }\n this.setState({editData});\n }}\n />;\n }\n\n renderCellEditBoolean(item, col, val) {\n return <Checkbox\n checked={this.state.editData && this.state.editData[col.field] !== undefined ? !!this.state.editData[col.field] : !!val}\n onChange={e => {\n const editData = this.state.editData ? {...this.state.editData} : {};\n if (e.target.checked === !!val) {\n delete editData[col.field];\n } else {\n editData[col.field] = e.target.checked;\n }\n this.setState({editData});\n }}\n inputProps={{ 'aria-label': 'checkbox' }}\n />;\n }\n\n renderSelectColorDialog() {\n return <Dialog\n classes={{root: this.props.classes.colorDialog, paper: this.props.classes.colorDialog}}\n onClose={() => {\n this.selectCallback = null;\n this.setState({showSelectColor: false});\n }}\n open={this.state.showSelectColor}>\n <ColorPicker\n color={this.state.selectIdValue}\n onChange={color => {\n this.setState({selectIdValue: color}, () =>\n this.selectCallback && this.selectCallback(color));\n }}\n />\n </Dialog>;\n }\n\n renderCellEditColor(item, col, val) {\n const _val = this.state.editData && this.state.editData[col.field] !== undefined ? this.state.editData[col.field] : val;\n return <div className={this.props.classes.fieldEdit}>\n <TextField\n variant=\"standard\"\n fullWidth\n className={this.props.classes.fieldEditWithButton}\n value={_val}\n inputProps={{style: {backgroundColor: _val, color: Utils.isUseBright(_val, null) ? '#FFF' : '#000'}}}\n onChange={e => {\n const editData = this.state.editData ? {...this.state.editData} : {};\n if (e.target.value === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = e.target.value;\n }\n this.setState({editData});\n }}\n />\n\n <IconButton\n className={this.props.classes.fieldButton}\n contained\n onClick={() => {\n this.selectCallback = newColor => {\n const editData = this.state.editData ? {...this.state.editData} : {};\n if (newColor === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = newColor;\n }\n this.setState({editData});\n };\n\n this.setState({showSelectColor: true, selectIdValue: val});\n }}\n size=\"large\"><IconColor/></IconButton>\n </div>;\n }\n\n renderSelectIdDialog() {\n if (this.state.showSelectId) {\n return <DialogSelectID\n key=\"tableSelect\"\n imagePrefix=\"../..\"\n dialogName={this.props.adapterName}\n themeType={this.props.themeType}\n socket={this.props.socket}\n statesOnly={true}\n selected={this.state.selectIdValue}\n onClose={() => this.setState({showSelectId: false})}\n onOk={(selected, name) => {\n this.setState({showSelectId: false, selectIdValue: null});\n this.selectCallback && this.selectCallback(selected);\n this.selectCallback = null;\n }}\n />;\n } else {\n return null;\n }\n }\n\n renderCellEditObjectID(item, col, val) {\n return <div className={this.props.classes.fieldEdit}>\n <TextField\n variant=\"standard\"\n fullWidth\n className={this.props.classes.fieldEditWithButton}\n value={this.state.editData && this.state.editData[col.field] !== undefined ? this.state.editData[col.field] : val}\n onChange={e => {\n const editData = this.state.editData ? {...this.state.editData} : {};\n if (e.target.value === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = e.target.value;\n }\n this.setState({editData});\n }}\n />\n\n <IconButton\n className={this.props.classes.fieldButton}\n contained\n onClick={() => {\n this.selectCallback = selected => {\n const editData = this.state.editData ? {...this.state.editData} : {};\n if (selected === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = selected;\n }\n this.setState({editData});\n };\n\n this.setState({showSelectId: true, selectIdValue: val});\n }}\n size=\"large\"\n ><IconList/></IconButton>\n </div>;\n }\n\n renderCellNonEdit(item, col) {\n let val = getAttr(item, col.field, col.lookup);\n if (Array.isArray(val)) {\n val = val[0];\n }\n\n if (col.type === 'boolean') {\n return <Checkbox\n checked={!!val}\n disabled={true}\n inputProps={{ 'aria-label': 'checkbox' }}\n />\n } else {\n return val;\n }\n }\n\n renderCell(item, col, level, i) {\n if (this.state.editMode === i && col.editable !== 'never' && col.editable !== false) {\n return <TableCell\n key={col.field}\n className={Utils.clsx(this.props.classes.cell, level && this.props.classes.cellSecondary)}\n style={col.cellStyle}\n component=\"th\"\n >\n {this.renderCellEdit(item, col)}\n </TableCell>;\n } else {\n return <TableCell\n key={col.field}\n className={Utils.clsx(this.props.classes.cell, level && this.props.classes.cellSecondary)}\n style={col.cellStyle}\n component=\"th\" >\n {this.renderCellNonEdit(item, col)}\n </TableCell>;\n }\n }\n\n renderCellWithSubField(item, col) {\n const main = getAttr(item, col.field, col.lookup);\n const sub = getAttr(item, col.subField, col.subLookup);\n return <div>\n <div className={this.props.classes.mainText}>{main}</div>\n <div className={this.props.classes.subText} style={col.subStyle || {}}>{sub}</div>\n </div>;\n }\n\n renderLine(item, level) {\n const levelShift = this.props.levelShift === undefined ? 24 : this.props.levelShift;\n\n level = level || 0;\n const i = this.props.data.indexOf(item);\n if (!item) {\n return null;\n }\n if (!level && item.parentId) {\n return null;\n } else if (level && !item.parentId) {\n return null; // should never happen\n } else {\n // try to find children\n const opened = this.state.opened.includes(item.id);\n const children = this.props.data.filter(it => it.parentId === item.id);\n\n return [\n <TableRow\n key={item.id}\n className={Utils.clsx(\n 'table-row-' + (item.id || '').toString().replace(/[.$]/g, '_'),\n this.state.update && this.state.update.includes(item.id) && this.props.classes.glow,\n this.props.classes.row,\n level && this.props.classes.rowSecondary,\n !level && children.length && this.props.classes.rowMainWithChildren,\n !level && !children.length && this.props.classes.rowMainWithoutChildren,\n this.state.editMode !== false && this.state.editMode !== i && this.props.classes.rowNoEdit,\n this.state.deleteMode !== false && this.state.deleteMode !== i && this.props.classes.rowNoEdit,\n )}\n >\n <TableCell className={Utils.clsx(this.props.classes.cell, this.props.classes.cellExpand, level && this.props.classes.cellSecondary)}>\n {children.length ? <IconButton\n onClick={() => {\n const opened = [...this.state.opened];\n const pos = opened.indexOf(item.id);\n if (pos === -1) {\n opened.push(item.id);\n opened.sort();\n } else {\n opened.splice(pos, 1);\n }\n\n (window._localStorage || window.localStorage).setItem(this.props.name || 'iob-table', JSON.stringify(opened));\n\n this.setState({opened});\n }}\n size=\"small\">\n {opened ? <IconCollapse/> : <IconExpand/>}\n </IconButton> : null}\n </TableCell>\n <TableCell\n scope=\"row\"\n className={Utils.clsx(this.props.classes.cell, level && this.props.classes.cellSecondary)}\n style={Object.assign({}, this.props.columns[0].cellStyle, {paddingLeft: levelShift * level})}\n >\n {this.props.columns[0].subField ?\n this.renderCellWithSubField(item, this.props.columns[0])\n :\n getAttr(item, this.props.columns[0].field, this.props.columns[0].lookup)\n }\n </TableCell>\n\n {this.props.columns.map((col, ii) =>\n !ii && !col.hidden ? null : this.renderCell(item, col, level, i))}\n\n {this.props.onUpdate ? <TableCell className={Utils.clsx(this.props.classes.cell, this.props.classes.cellButton)}>\n {this.state.editMode === i || this.state.deleteMode === i ?\n <IconButton\n disabled={this.state.editMode !== false && (!this.state.editData || !Object.keys(this.state.editData).length)}\n onClick={() => {\n if (this.state.editMode !== false) {\n const newData = JSON.parse(JSON.stringify(item));\n Object.keys(this.state.editData).forEach(attr => setAttr(newData, attr, this.state.editData[attr]));\n this.setState({editMode: false}, () => this.props.onUpdate(newData, item))\n } else {\n this.setState({deleteMode: false}, () => this.props.onDelete(item))\n }\n }}\n size=\"large\">\n <IconCheck/>\n </IconButton>\n :\n <IconButton\n disabled={this.state.editMode !== false}\n onClick={() => this.setState({editMode: i, editData: null})}\n size=\"large\">\n <IconEdit/>\n </IconButton>}\n </TableCell> : null}\n {this.props.onUpdate || this.props.onDelete ? <TableCell className={Utils.clsx(this.props.classes.cell, this.props.classes.cellButton)}>\n {this.state.editMode === i || this.state.deleteMode === i ?\n <IconButton\n onClick={() => this.setState({editMode: false, deleteMode: false})}\n size=\"large\">\n <IconClose/>\n </IconButton>\n :\n (this.props.onDelete ? <IconButton\n disabled={this.state.deleteMode !== false}\n onClick={() => this.setState({deleteMode: i})}\n size=\"large\">\n <IconDelete/>\n </IconButton> : null)\n }\n </TableCell> : null}\n </TableRow>,\n !level && opened ? children.map(item => this.renderLine(item, level + 1)) : null,\n ];\n }\n }\n\n handleRequestSort(property) {\n const isAsc = this.state.orderBy === property && this.state.order === 'asc';\n this.setState({order: isAsc ? 'desc' : 'asc', orderBy: property});\n }\n\n renderHead() {\n return <TableHead>\n <TableRow key=\"headerRow\">\n <TableCell\n component=\"th\"\n className={Utils.clsx(this.props.classes.cell, this.props.classes.cellHeader, this.props.classes.cellExpand)}\n />\n <TableCell\n component=\"th\"\n className={Utils.clsx(this.props.classes.cell, this.props.classes.cellHeader, this.props.classes['width_' + this.props.columns[0].field.replace(/\\./g, '_')])}\n style={this.props.columns[0].headerStyle || this.props.columns[0].cellStyle}\n sortDirection={this.props.noSort ? false : (this.state.orderBy === this.props.columns[0].field ? this.state.order : false)}\n >\n {this.props.noSort ? null : <TableSortLabel\n active={this.state.orderBy === this.props.columns[0].field}\n direction={this.state.orderBy === this.props.columns[0].field ? this.state.order : 'asc'}\n onClick={() => this.handleRequestSort(this.props.columns[0].field)}\n >\n {this.props.columns[0].title || this.props.columns[0].field}\n {this.state.orderBy === this.props.columns[0].field ?\n <span className={this.props.classes.visuallyHidden}>\n {this.state.order === 'desc' ? 'sorted descending' : 'sorted ascending'}\n </span> : null}\n </TableSortLabel>}\n </TableCell>\n {this.props.columns.map((col, i) =>\n !i && !col.hidden ? null : <TableCell\n key={col.field}\n className={Utils.clsx(this.props.classes.cell, this.props.classes.cellHeader, this.props.classes['width_' + col.field.replace(/\\./g, '_')])}\n style={col.headerStyle || col.cellStyle}\n component=\"th\"\n >\n {this.props.noSort ? null : <TableSortLabel\n active={this.state.orderBy === col.field}\n direction={this.state.orderBy === col.field ? this.state.order : 'asc'}\n onClick={() => this.handleRequestSort(col.field)}\n >\n {col.title || col.field}\n {this.state.orderBy === col.field ?\n <span className={this.props.classes.visuallyHidden}>\n {this.state.order === 'desc' ? 'sorted descending' : 'sorted ascending'}\n </span> : null}\n </TableSortLabel> }\n </TableCell>)}\n {this.props.onUpdate ? <TableCell component=\"th\" className={Utils.clsx(this.props.classes.cell, this.props.classes.cellHeader, this.props.classes.cellButton)}>\n {!this.props.noAdd ? <Fab\n color=\"primary\"\n size=\"small\"\n disabled={this.state.editMode !== false}\n onClick={() => this.props.onUpdate(true)}>\n <IconAdd/>\n </Fab>: null }\n </TableCell> : null}\n {this.props.onDelete || this.props.onUpdate ? <TableCell component=\"th\" className={Utils.clsx(this.props.classes.cell, this.props.classes.cellHeader, this.props.classes.cellButton)}/> : null}\n </TableRow>\n </TableHead>;\n }\n\n render() {\n const lookup = this.props.columns.find(col => col.field === this.state.orderBy).lookup;\n const table = stableSort(this.props.data, getComparator(this.state.order, this.state.orderBy, lookup));\n\n if (this.state.update && this.state.update.length) {\n this.updateTimeout && clearTimeout(this.updateTimeout);\n this.updateTimeout = setTimeout(() => {\n this.updateTimeout = null;\n this.setState({update: null});\n }, 500);\n }\n\n return <div className={Utils.clsx(this.props.classes.tableContainer, this.props.className)}>\n <Table className={this.props.classes.table} aria-label=\"simple table\" size=\"small\" stickyHeader={true}>\n {this.renderHead()}\n <TableBody>\n {table.map(item => this.renderLine(item))}\n </TableBody>\n </Table>\n {this.renderSelectIdDialog()}\n {this.renderSelectColorDialog()}\n </div>;\n }\n}\n/*\nconst columns = [\n {\n title: 'Name of field', // required, else it will be \"field\"\n field: 'fieldIdInData', // required\n editable: false, // or true [default - true]\n cellStyle: { // CSS style - // optional\n maxWidth: '12rem',\n overflow: 'hidden',\n wordBreak: 'break-word'\n },\n lookup: { // optional => edit will be automatically \"SELECT\"\n 'value1': 'text1',\n 'value2': 'text2',\n }\n },\n {\n title: 'Type', // required, else it will be \"field\"\n field: 'myType', // required\n editable: true, // or true [default - true]\n lookup: { // optional => edit will be automatically \"SELECT\"\n 'number': 'Number',\n 'string': 'String',\n 'boolean': 'Boolean',\n },\n type: 'number/string/color/oid/icon/boolean', // oid=ObjectID,icon=base64-icon\n editComponent: props =>\n <div>Prefix&#123; <br/>\n <textarea\n rows={4}\n style={{width: '100%', resize: 'vertical'}}\n value={props.value}\n onChange={e => props.onChange(e.target.value)}\n />\n Suffix\n </div>,\n },\n];\n*/\n/* const data = [\n {\n id: 'UniqueID1' // required\n fieldIdInData: 'Name1',\n myType: 'number',\n },\n {\n id: 'UniqueID2' // required\n fieldIdInData: 'Name12',\n myType: 'string',\n },\n];\n */\n\n/*\n// STYLES\nconst styles = theme => ({\n tableDiv: {\n width: '100%',\n overflow: 'hidden',\n height: 'calc(100% - 48px)',\n },\n});\n// renderTable\nrenderTable() {\n return <div className={this.props.classes.tableDiv}>\n <TreeTable\n columns={this.columns}\n data={lines}\n onUpdate={(newData, oldData) => console.log('Update: ' + JSON.stringify(newData))}\n onDelete={oldData => console.log('Delete: ' + JSON.stringify(oldData))}\n />\n </div>;\n}\n */\n\nTreeTable.propTypes = {\n data: PropTypes.array.isRequired,\n className: PropTypes.string,\n loading: PropTypes.bool,\n name: PropTypes.string, // name of table to save settings in localStorage\n columns: PropTypes.arrayOf(\n PropTypes.shape({\n cellStyle: PropTypes.object,\n editComponent: PropTypes.func,\n field: PropTypes.string,\n headerStyle: PropTypes.object,\n hidden: PropTypes.bool,\n lookup: PropTypes.object,\n editable: PropTypes.bool,\n title: PropTypes.string,\n type: PropTypes.oneOf([\n 'string',\n 'boolean',\n 'numeric',\n 'icon', // todo: not yet implemented\n 'oid',\n 'color',\n ]),\n })\n ).isRequired,\n noSort: PropTypes.bool,\n onUpdate: PropTypes.func,\n onDelete: PropTypes.func,\n noAdd: PropTypes.bool, // hide add button\n themeType: PropTypes.string,\n glowOnChange: PropTypes.bool,\n socket: PropTypes.object, // only if oid type is used\n levelShift: PropTypes.number, // Shift in pixels for every level\n};\n\nexport default withStyles(styles)(TreeTable);"],"mappings":"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"}
1
+ {"version":3,"file":"TreeTable.js","names":["getAttr","obj","attr","lookup","split","length","name","shift","setAttr","value","undefined","styles","theme","tableContainer","width","height","overflow","table","minWidth","maxWidth","cell","paddingTop","paddingBottom","paddingLeft","paddingRight","rowMainWithChildren","rowMainWithoutChildren","rowNoEdit","opacity","cellExpand","cellButton","cellHeader","fontWeight","background","palette","mode","color","wordBreak","whiteSpace","width_name_nicknames","width_ioType","width_type","width_displayTraits","width_roomHint","rowSecondary","fontStyle","cellSecondary","fontSize","visuallyHidden","border","clip","margin","padding","position","top","fieldEditWithButton","display","fieldEdit","lineHeight","verticalAlign","fieldButton","colorDialog","subText","glow","animation","descendingComparator","a","b","orderBy","_a","_b","getComparator","order","stableSort","array","comparator","stabilizedThis","map","el","index","sort","TreeTable","props","opened","window","_localStorage","localStorage","getItem","JSON","parse","e","Array","isArray","state","editMode","deleteMode","editData","update","columns","field","useTable","showSelectColor","glowOnChange","item","col","val","renderCellEditSelect","editComponent","renderCellEditCustom","type","renderCellEditBoolean","renderCellEditColor","renderCellEditObjectID","renderCellEditNumber","renderCellEditString","target","setState","Object","keys","v","i","classes","EditComponent","stringify","newVal","checked","root","paper","selectCallback","selectIdValue","_val","style","backgroundColor","Utils","isUseBright","newColor","showSelectId","adapterName","themeType","socket","selected","level","editable","clsx","cellStyle","renderCellEdit","renderCellNonEdit","main","sub","subField","subLookup","mainText","subStyle","levelShift","data","indexOf","parentId","includes","id","children","filter","it","toString","replace","row","pos","push","splice","setItem","assign","renderCellWithSubField","ii","hidden","renderCell","onUpdate","newData","forEach","onDelete","renderLine","property","isAsc","headerStyle","noSort","handleRequestSort","title","noAdd","find","updateTimeout","clearTimeout","setTimeout","className","renderHead","renderSelectIdDialog","renderSelectColorDialog","count","line","oldLine","React","Component","propTypes","PropTypes","isRequired","string","loading","bool","arrayOf","shape","object","func","oneOf","number","withStyles"],"sources":["TreeTable.js"],"sourcesContent":["import React from 'react';\n\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\nimport { HexColorPicker as ColorPicker } from 'react-colorful';\n\nimport Fab from '@mui/material/Fab';\nimport Table from '@mui/material/Table';\nimport TableBody from '@mui/material/TableBody';\nimport TableCell from '@mui/material/TableCell';\nimport TableHead from '@mui/material/TableHead';\nimport TableRow from '@mui/material/TableRow';\nimport TableSortLabel from '@mui/material/TableSortLabel';\nimport IconButton from '@mui/material/IconButton';\nimport Select from '@mui/material/Select';\nimport MenuItem from '@mui/material/MenuItem';\nimport TextField from '@mui/material/TextField';\nimport Checkbox from '@mui/material/Checkbox';\nimport Dialog from '@mui/material/Dialog';\n\nimport IconEdit from '@mui/icons-material/Edit';\nimport IconDelete from '@mui/icons-material/Delete';\nimport IconExpand from '@mui/icons-material/NavigateNext';\nimport IconCollapse from '@mui/icons-material/ExpandMore';\nimport IconCheck from '@mui/icons-material/Check';\nimport IconClose from '@mui/icons-material/Close';\nimport IconAdd from '@mui/icons-material/Add';\nimport IconList from '@mui/icons-material/ViewHeadline';\nimport IconColor from '@mui/icons-material/Colorize';\n\nimport DialogSelectID from '../Dialogs/SelectID';\nimport Utils from './Utils';\n\nfunction getAttr(obj, attr, lookup) {\n if (typeof attr === 'string') {\n attr = attr.split('.');\n }\n\n if (!obj) {\n return null;\n }\n\n if (attr.length === 1) {\n if (lookup && lookup[obj[attr[0]]]) {\n return lookup[obj[attr[0]]];\n } else {\n return obj[attr[0]];\n }\n } else {\n const name = attr.shift();\n return getAttr(obj[name], attr);\n }\n}\n\nfunction setAttr(obj, attr, value) {\n if (typeof attr === 'string') {\n attr = attr.split('.');\n }\n\n if (attr.length === 1) {\n return obj[attr[0]] = value;\n } else {\n const name = attr.shift();\n if (obj[name] === null || obj[name] === undefined) {\n obj[name] = {};\n }\n return setAttr(obj[name], attr, value);\n }\n}\n\nconst styles = theme => ({\n tableContainer: {\n width: '100%',\n height: '100%',\n overflow: 'auto'\n },\n table: {\n width: '100%',\n minWidth: 800,\n maxWidth: 1920,\n },\n cell: {\n paddingTop: 0,\n paddingBottom: 0,\n paddingLeft: 4,\n paddingRight: 4,\n },\n rowMainWithChildren: {\n\n },\n rowMainWithoutChildren: {\n\n },\n rowNoEdit: {\n opacity: 0.3\n },\n cellExpand: {\n width: 30,\n },\n cellButton: {\n width: 30,\n },\n cellHeader: {\n fontWeight: 'bold',\n background: theme.palette.mode === 'dark' ? '#888' : '#888',\n color: theme.palette.mode === 'dark' ? '#EEE' : '#111',\n height: 48,\n wordBreak: 'break-word',\n whiteSpace: 'pre',\n },\n width_name_nicknames: {\n maxWidth: 150,\n },\n width_ioType: {\n maxWidth: 100,\n },\n width_type: {\n maxWidth: 100,\n },\n width_displayTraits: {\n maxWidth: 100,\n },\n width_roomHint: {\n maxWidth: 100,\n },\n rowSecondary: {\n fontStyle: 'italic',\n },\n cellSecondary: {\n fontSize: 10,\n },\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1,\n },\n fieldEditWithButton: {\n width: `calc(100% - 33px)`,\n display: 'inline-block',\n },\n fieldEdit: {\n width: `100%`,\n display: 'inline-block',\n lineHeight: '50px',\n verticalAlign: 'middle',\n },\n fieldButton: {\n width: 30,\n display: 'inline-block',\n },\n colorDialog: {\n overflow: 'hidden',\n padding: 15,\n },\n subText: {\n fontSize: 10,\n fontStyle: 'italic',\n },\n glow: {\n animation: 'glow 0.2s 2 alternate'\n }\n});\n\nfunction descendingComparator(a, b, orderBy, lookup) {\n const _a = getAttr(a, orderBy, lookup) || '';\n const _b = getAttr(b, orderBy, lookup) || '';\n\n if (_b < _a) {\n return -1;\n } else\n if (_b > _a) {\n return 1;\n } else {\n return 0;\n }\n}\n\nfunction getComparator(order, orderBy, lookup) {\n return order === 'desc'\n ? (a, b) => descendingComparator(a, b, orderBy, lookup)\n : (a, b) => -descendingComparator(a, b, orderBy, lookup);\n}\n\nfunction stableSort(array, comparator) {\n const stabilizedThis = array.map((el, index) => [el, index]);\n\n stabilizedThis.sort((a, b) => {\n const order = comparator(a[0], b[0]);\n if (order) {\n return order;\n } else {\n return a[1] - b[1];\n }\n });\n\n return stabilizedThis.map(el => el[0]);\n}\n\nclass TreeTable extends React.Component {\n constructor(props) {\n super(props);\n\n let opened = (window._localStorage || window.localStorage).getItem(this.props.name || 'iob-table') || '[]';\n try {\n opened = JSON.parse(opened) || [];\n } catch (e) {\n opened = [];\n }\n if (!Array.isArray(opened)) {\n opened = [];\n }\n\n this.state = {\n opened,\n editMode: false,\n deleteMode: false,\n editData: null,\n order: 'asc',\n update: null,\n orderBy: this.props.columns[0].field,\n useTable: false,\n showSelectColor: false,\n glowOnChange: props.glowOnChange,\n };\n }\n\n static getDerivedStateFromProps(props, state) {\n if (props.glowOnChange) {\n const update = [];\n let count = 0;\n if (props.data && state.data) {\n props.data.forEach(line => {\n count++;\n const oldLine = state.data.find(it => it.id === line.id);\n if (oldLine) {\n if (JSON.stringify(oldLine) !== JSON.stringify(line)) {\n update.push(line.id);\n }\n } else {\n update.push(line.id);\n }\n });\n }\n\n if (update.length && update.length !== count) {\n return { data: props.data, update };\n } else {\n return { data: props.data };\n }\n } else {\n return { data: props.data };\n }\n }\n\n renderCellEdit(item, col) {\n let val = getAttr(item, col.field);\n if (Array.isArray(val)) {\n val = val[0];\n }\n\n if (col.lookup) {\n return this.renderCellEditSelect(item, col, val);\n } if (col.editComponent) {\n return this.renderCellEditCustom(item, col, val);\n } else {\n if (col.type === 'boolean' || (!col.type && typeof val === 'boolean')) {\n return this.renderCellEditBoolean(item, col, val);\n } else if (col.type === 'color') {\n return this.renderCellEditColor(item, col, val);\n } else if (col.type === 'oid') {\n return this.renderCellEditObjectID(item, col, val);\n\t\t\t} else if (col.type === 'numeric') {\n return this.renderCellEditNumber(item, col, val);\n\t\t\t} else {\n\t\t\t\treturn this.renderCellEditString(item, col, val);\n\t\t\t}\n\t\t}\n\t}\n\n renderCellEditSelect(item, col, val) {\n return <Select\n variant=\"standard\"\n onChange={e => {\n const editData = this.state.editData ? { ...this.state.editData } : {};\n if (e.target.value === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = e.target.value;\n }\n this.setState({editData});\n\t\t}} value={(this.state.editData && this.state.editData[col.field]) || val}>\n {Object.keys(col.lookup)\n .map((v, i) => <MenuItem key={i} value={v}>{col.lookup[v]}</MenuItem>)}\n </Select>;\n }\n\n renderCellEditString(item, col, val) {\n return <TextField\n variant=\"standard\"\n className={this.props.classes.fieldEdit}\n fullWidth\n value={this.state.editData && this.state.editData[col.field] !== undefined ? this.state.editData[col.field] : val}\n onChange={e => {\n const editData = this.state.editData ? { ...this.state.editData } : {};\n if (e.target.value === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = e.target.value;\n }\n this.setState({editData});\n }}\n />;\n }\n\n\n\trenderCellEditNumber(item, col, val) {\n\t\treturn <TextField\n variant=\"standard\"\n className={this.props.classes.fieldEdit}\n type=\"number\"\n fullWidth\n value={this.state.editData && this.state.editData[col.field] !== undefined ? this.state.editData[col.field] : val}\n onChange={e => {\n const editData = this.state.editData ? { ...this.state.editData } : {};\n if (e.target.value === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = e.target.value;\n }\n this.setState({ editData });\n }}\n />;\n\t}\n\n\n renderCellEditCustom(item, col, val) {\n const EditComponent = col.editComponent;\n\n // use new value if exists\n if (this.state.editData && this.state.editData[col.field] !== undefined) {\n val = this.state.editData[col.field];\n item = JSON.parse(JSON.stringify(item));\n item[col.field] = val;\n }\n\n return <EditComponent\n value={val}\n rowData={item}\n onChange={newVal => {\n const editData = this.state.editData ? { ...this.state.editData } : {};\n if (newVal === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = newVal;\n }\n this.setState({ editData });\n }}\n />;\n }\n\n renderCellEditBoolean(item, col, val) {\n return <Checkbox\n checked={this.state.editData && this.state.editData[col.field] !== undefined ? !!this.state.editData[col.field] : !!val}\n onChange={e => {\n const editData = this.state.editData ? { ...this.state.editData } : {};\n if (e.target.checked === !!val) {\n delete editData[col.field];\n } else {\n editData[col.field] = e.target.checked;\n }\n this.setState({editData});\n }}\n inputProps={{ 'aria-label': 'checkbox' }}\n />;\n }\n\n renderSelectColorDialog() {\n return <Dialog\n classes={{root: this.props.classes.colorDialog, paper: this.props.classes.colorDialog}}\n onClose={() => {\n this.selectCallback = null;\n this.setState({ showSelectColor: false });\n }}\n open={this.state.showSelectColor}>\n <ColorPicker\n color={this.state.selectIdValue}\n onChange={color => {\n this.setState({selectIdValue: color}, () =>\n this.selectCallback && this.selectCallback(color));\n }}\n />\n </Dialog>;\n }\n\n renderCellEditColor(item, col, val) {\n const _val = this.state.editData && this.state.editData[col.field] !== undefined ? this.state.editData[col.field] : val;\n return <div className={this.props.classes.fieldEdit}>\n <TextField\n variant=\"standard\"\n fullWidth\n className={this.props.classes.fieldEditWithButton}\n value={_val}\n inputProps={{style: {backgroundColor: _val, color: Utils.isUseBright(_val, null) ? '#FFF' : '#000'}}}\n onChange={e => {\n const editData = this.state.editData ? { ...this.state.editData } : {};\n if (e.target.value === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = e.target.value;\n }\n this.setState({editData});\n }}\n />\n\n <IconButton\n className={this.props.classes.fieldButton}\n onClick={() => {\n this.selectCallback = newColor => {\n const editData = this.state.editData ? { ...this.state.editData } : {};\n if (newColor === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = newColor;\n }\n this.setState({editData});\n };\n\n this.setState({ showSelectColor: true, selectIdValue: val });\n }}\n size=\"large\"\n >\n <IconColor/>\n </IconButton>\n </div>;\n }\n\n renderSelectIdDialog() {\n if (this.state.showSelectId) {\n return <DialogSelectID\n key=\"tableSelect\"\n imagePrefix=\"../..\"\n dialogName={this.props.adapterName}\n themeType={this.props.themeType}\n socket={this.props.socket}\n statesOnly\n selected={this.state.selectIdValue}\n onClose={() => this.setState({ showSelectId: false })}\n onOk={(selected, name) => {\n this.setState({ showSelectId: false, selectIdValue: null });\n this.selectCallback && this.selectCallback(selected);\n this.selectCallback = null;\n }}\n />;\n } else {\n return null;\n }\n }\n\n renderCellEditObjectID(item, col, val) {\n return <div className={this.props.classes.fieldEdit}>\n <TextField\n variant=\"standard\"\n fullWidth\n className={this.props.classes.fieldEditWithButton}\n value={this.state.editData && this.state.editData[col.field] !== undefined ? this.state.editData[col.field] : val}\n onChange={e => {\n const editData = this.state.editData ? { ...this.state.editData } : {};\n if (e.target.value === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = e.target.value;\n }\n this.setState({ editData });\n }}\n />\n\n <IconButton\n className={this.props.classes.fieldButton}\n onClick={() => {\n this.selectCallback = selected => {\n const editData = this.state.editData ? { ...this.state.editData } : {};\n if (selected === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = selected;\n }\n this.setState({editData});\n };\n\n this.setState({ showSelectId: true, selectIdValue: val });\n }}\n size=\"large\"\n >\n <IconList/>\n </IconButton>\n </div>;\n }\n\n renderCellNonEdit(item, col) {\n let val = getAttr(item, col.field, col.lookup);\n if (Array.isArray(val)) {\n val = val[0];\n }\n\n if (col.type === 'boolean') {\n return <Checkbox\n checked={!!val}\n disabled\n inputProps={{ 'aria-label': 'checkbox' }}\n />\n } else {\n return val;\n }\n }\n\n renderCell(item, col, level, i) {\n if (this.state.editMode === i && col.editable !== 'never' && col.editable !== false) {\n return <TableCell\n key={col.field}\n className={Utils.clsx(this.props.classes.cell, level && this.props.classes.cellSecondary)}\n style={col.cellStyle}\n component=\"th\"\n >\n {this.renderCellEdit(item, col)}\n </TableCell>;\n } else {\n return <TableCell\n key={col.field}\n className={Utils.clsx(this.props.classes.cell, level && this.props.classes.cellSecondary)}\n style={col.cellStyle}\n component=\"th\" >\n {this.renderCellNonEdit(item, col)}\n </TableCell>;\n }\n }\n\n renderCellWithSubField(item, col) {\n const main = getAttr(item, col.field, col.lookup);\n const sub = getAttr(item, col.subField, col.subLookup);\n return <div>\n <div className={this.props.classes.mainText}>{main}</div>\n <div className={this.props.classes.subText} style={col.subStyle || {}}>{sub}</div>\n </div>;\n }\n\n renderLine(item, level) {\n const levelShift = this.props.levelShift === undefined ? 24 : this.props.levelShift;\n\n level = level || 0;\n const i = this.props.data.indexOf(item);\n if (!item) {\n return null;\n }\n if (!level && item.parentId) {\n return null;\n } else if (level && !item.parentId) {\n return null; // should never happen\n } else {\n // try to find children\n const opened = this.state.opened.includes(item.id);\n const children = this.props.data.filter(it => it.parentId === item.id);\n\n return [\n <TableRow\n key={item.id}\n className={Utils.clsx(\n 'table-row-' + (item.id || '').toString().replace(/[.$]/g, '_'),\n this.state.update && this.state.update.includes(item.id) && this.props.classes.glow,\n this.props.classes.row,\n level && this.props.classes.rowSecondary,\n !level && children.length && this.props.classes.rowMainWithChildren,\n !level && !children.length && this.props.classes.rowMainWithoutChildren,\n this.state.editMode !== false && this.state.editMode !== i && this.props.classes.rowNoEdit,\n this.state.deleteMode !== false && this.state.deleteMode !== i && this.props.classes.rowNoEdit,\n )}\n >\n <TableCell className={Utils.clsx(this.props.classes.cell, this.props.classes.cellExpand, level && this.props.classes.cellSecondary)}>\n {children.length ? <IconButton\n onClick={() => {\n const opened = [...this.state.opened];\n const pos = opened.indexOf(item.id);\n if (pos === -1) {\n opened.push(item.id);\n opened.sort();\n } else {\n opened.splice(pos, 1);\n }\n\n (window._localStorage || window.localStorage).setItem(this.props.name || 'iob-table', JSON.stringify(opened));\n\n this.setState({opened});\n }}\n size=\"small\">\n {opened ? <IconCollapse/> : <IconExpand/>}\n </IconButton> : null}\n </TableCell>\n <TableCell\n scope=\"row\"\n className={Utils.clsx(this.props.classes.cell, level && this.props.classes.cellSecondary)}\n style={Object.assign({}, this.props.columns[0].cellStyle, {paddingLeft: levelShift * level})}\n >\n {this.props.columns[0].subField ?\n this.renderCellWithSubField(item, this.props.columns[0])\n :\n getAttr(item, this.props.columns[0].field, this.props.columns[0].lookup)\n }\n </TableCell>\n\n {this.props.columns.map((col, ii) =>\n !ii && !col.hidden ? null : this.renderCell(item, col, level, i))}\n\n {this.props.onUpdate ? <TableCell className={Utils.clsx(this.props.classes.cell, this.props.classes.cellButton)}>\n {this.state.editMode === i || this.state.deleteMode === i ?\n <IconButton\n disabled={this.state.editMode !== false && (!this.state.editData || !Object.keys(this.state.editData).length)}\n onClick={() => {\n if (this.state.editMode !== false) {\n const newData = JSON.parse(JSON.stringify(item));\n Object.keys(this.state.editData).forEach(attr => setAttr(newData, attr, this.state.editData[attr]));\n this.setState({editMode: false}, () => this.props.onUpdate(newData, item))\n } else {\n this.setState({deleteMode: false}, () => this.props.onDelete(item))\n }\n }}\n size=\"large\">\n <IconCheck/>\n </IconButton>\n :\n <IconButton\n disabled={this.state.editMode !== false}\n onClick={() => this.setState({editMode: i, editData: null})}\n size=\"large\">\n <IconEdit/>\n </IconButton>}\n </TableCell> : null}\n\n {this.props.onDelete && !this.props.onUpdate ?\n <TableCell className={Utils.clsx(this.props.classes.cell, this.props.classes.cellButton)}>\n {this.state.deleteMode === i ?\n <IconButton\n disabled={this.state.editMode !== false && (!this.state.editData || !Object.keys(this.state.editData).length)}\n onClick={() => this.setState({deleteMode: false}, () => this.props.onDelete(item))}\n size='large'\n >\n <IconCheck/>\n </IconButton>\n :\n null}\n </TableCell> : null}\n\n {this.props.onUpdate || this.props.onDelete ? <TableCell className={Utils.clsx(this.props.classes.cell, this.props.classes.cellButton)}>\n {this.state.editMode === i || this.state.deleteMode === i ?\n <IconButton\n onClick={() => this.setState({editMode: false, deleteMode: false})}\n size=\"large\">\n <IconClose/>\n </IconButton>\n :\n (this.props.onDelete ? <IconButton\n disabled={this.state.deleteMode !== false}\n onClick={() => this.setState({deleteMode: i})}\n size=\"large\"\n >\n <IconDelete/>\n </IconButton> : null)\n }\n </TableCell> : null}\n </TableRow>,\n !level && opened ? children.map(item =>\n this.renderLine(item, level + 1)) : null,\n ];\n }\n }\n\n handleRequestSort(property) {\n const isAsc = this.state.orderBy === property && this.state.order === 'asc';\n this.setState({order: isAsc ? 'desc' : 'asc', orderBy: property});\n }\n\n renderHead() {\n return <TableHead>\n <TableRow key=\"headerRow\">\n <TableCell\n component=\"th\"\n className={Utils.clsx(this.props.classes.cell, this.props.classes.cellHeader, this.props.classes.cellExpand)}\n />\n <TableCell\n component=\"th\"\n className={Utils.clsx(this.props.classes.cell, this.props.classes.cellHeader, this.props.classes['width_' + this.props.columns[0].field.replace(/\\./g, '_')])}\n style={this.props.columns[0].headerStyle || this.props.columns[0].cellStyle}\n sortDirection={this.props.noSort ? false : (this.state.orderBy === this.props.columns[0].field ? this.state.order : false)}\n >\n {this.props.noSort ? null : <TableSortLabel\n active={this.state.orderBy === this.props.columns[0].field}\n direction={this.state.orderBy === this.props.columns[0].field ? this.state.order : 'asc'}\n onClick={() => this.handleRequestSort(this.props.columns[0].field)}\n >\n {this.props.columns[0].title || this.props.columns[0].field}\n {this.state.orderBy === this.props.columns[0].field ?\n <span className={this.props.classes.visuallyHidden}>\n {this.state.order === 'desc' ? 'sorted descending' : 'sorted ascending'}\n </span> : null}\n </TableSortLabel>}\n </TableCell>\n {this.props.columns.map((col, i) =>\n !i && !col.hidden ? null : <TableCell\n key={col.field}\n className={Utils.clsx(this.props.classes.cell, this.props.classes.cellHeader, this.props.classes['width_' + col.field.replace(/\\./g, '_')])}\n style={col.headerStyle || col.cellStyle}\n component=\"th\"\n >\n {this.props.noSort ? null : <TableSortLabel\n active={this.state.orderBy === col.field}\n direction={this.state.orderBy === col.field ? this.state.order : 'asc'}\n onClick={() => this.handleRequestSort(col.field)}\n >\n {col.title || col.field}\n {this.state.orderBy === col.field ?\n <span className={this.props.classes.visuallyHidden}>\n {this.state.order === 'desc' ? 'sorted descending' : 'sorted ascending'}\n </span> : null}\n </TableSortLabel> }\n </TableCell>)}\n {this.props.onUpdate ? <TableCell component=\"th\" className={Utils.clsx(this.props.classes.cell, this.props.classes.cellHeader, this.props.classes.cellButton)}>\n {!this.props.noAdd ? <Fab\n color=\"primary\"\n size=\"small\"\n disabled={this.state.editMode !== false}\n onClick={() => this.props.onUpdate(true)}>\n <IconAdd/>\n </Fab>: null }\n </TableCell> : null}\n {this.props.onDelete || this.props.onUpdate ? <TableCell component=\"th\" className={Utils.clsx(this.props.classes.cell, this.props.classes.cellHeader, this.props.classes.cellButton)}/> : null}\n </TableRow>\n </TableHead>;\n }\n\n render() {\n const lookup = this.props.columns.find(col => col.field === this.state.orderBy).lookup;\n const table = stableSort(this.props.data, getComparator(this.state.order, this.state.orderBy, lookup));\n\n if (this.state.update && this.state.update.length) {\n this.updateTimeout && clearTimeout(this.updateTimeout);\n this.updateTimeout = setTimeout(() => {\n this.updateTimeout = null;\n this.setState({update: null});\n }, 500);\n }\n\n return <div className={Utils.clsx(this.props.classes.tableContainer, this.props.className)}>\n <Table className={this.props.classes.table} aria-label=\"simple table\" size=\"small\" stickyHeader>\n {this.renderHead()}\n <TableBody>\n {table.map(item => this.renderLine(item))}\n </TableBody>\n </Table>\n {this.renderSelectIdDialog()}\n {this.renderSelectColorDialog()}\n </div>;\n }\n}\n/*\nconst columns = [\n {\n title: 'Name of field', // required, else it will be \"field\"\n field: 'fieldIdInData', // required\n editable: false, // or true [default - true]\n cellStyle: { // CSS style - // optional\n maxWidth: '12rem',\n overflow: 'hidden',\n wordBreak: 'break-word'\n },\n lookup: { // optional => edit will be automatically \"SELECT\"\n 'value1': 'text1',\n 'value2': 'text2',\n }\n },\n {\n title: 'Type', // required, else it will be \"field\"\n field: 'myType', // required\n editable: true, // or true [default - true]\n lookup: { // optional => edit will be automatically \"SELECT\"\n 'number': 'Number',\n 'string': 'String',\n 'boolean': 'Boolean',\n },\n type: 'number/string/color/oid/icon/boolean', // oid=ObjectID,icon=base64-icon\n editComponent: props =>\n <div>Prefix&#123; <br/>\n <textarea\n rows={4}\n style={{width: '100%', resize: 'vertical'}}\n value={props.value}\n onChange={e => props.onChange(e.target.value)}\n />\n Suffix\n </div>,\n },\n];\n*/\n/* const data = [\n {\n id: 'UniqueID1' // required\n fieldIdInData: 'Name1',\n myType: 'number',\n },\n {\n id: 'UniqueID2' // required\n fieldIdInData: 'Name12',\n myType: 'string',\n },\n];\n */\n\n/*\n// STYLES\nconst styles = theme => ({\n tableDiv: {\n width: '100%',\n overflow: 'hidden',\n height: 'calc(100% - 48px)',\n },\n});\n// renderTable\nrenderTable() {\n return <div className={this.props.classes.tableDiv}>\n <TreeTable\n columns={this.columns}\n data={lines}\n onUpdate={(newData, oldData) => console.log('Update: ' + JSON.stringify(newData))}\n onDelete={oldData => console.log('Delete: ' + JSON.stringify(oldData))}\n />\n </div>;\n}\n */\n\nTreeTable.propTypes = {\n data: PropTypes.array.isRequired,\n className: PropTypes.string,\n loading: PropTypes.bool,\n name: PropTypes.string, // name of table to save settings in localStorage\n columns: PropTypes.arrayOf(\n PropTypes.shape({\n cellStyle: PropTypes.object,\n editComponent: PropTypes.func,\n field: PropTypes.string,\n headerStyle: PropTypes.object,\n hidden: PropTypes.bool,\n lookup: PropTypes.object,\n editable: PropTypes.bool,\n title: PropTypes.string,\n type: PropTypes.oneOf([\n 'string',\n 'boolean',\n 'numeric',\n 'icon', // todo: not yet implemented\n 'oid',\n 'color',\n ]),\n })\n ).isRequired,\n noSort: PropTypes.bool,\n onUpdate: PropTypes.func,\n onDelete: PropTypes.func,\n noAdd: PropTypes.bool, // hide add button\n themeType: PropTypes.string,\n glowOnChange: PropTypes.bool,\n socket: PropTypes.object, // only if oid type is used\n levelShift: PropTypes.number, // Shift in pixels for every level\n};\n\nexport default withStyles(styles)(TreeTable);"],"mappings":"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"}
@@ -234,6 +234,26 @@ declare class Utils {
234
234
  * @returns {string}
235
235
  */
236
236
  static invertColor(hex: string, bw: boolean): string;
237
+ /**
238
+ * Convert RGB to array [r, g, b]
239
+ * @param {string} hex Color in the format '#rrggbb' or '#rgb' (or without hash) or rgb(r,g,b) or rgba(r,g,b,a)
240
+ * @returns {Array<number>} Array with 3 elements [r, g, b]
241
+ */
242
+ static color2rgb(hex: string): Array<number>;
243
+ /**
244
+ * Convert RGB to LAB
245
+ * @param {Array<number>} rgb color in format [r,g,b]
246
+ * @returns {Array<number>} lab color in format [l,a,b]
247
+ */
248
+ static rgb2lab(rgb: Array<number>): Array<number>;
249
+ /**
250
+ * Calculate the distance between two colors in LAB color space in the range 0-100^2
251
+ * If distance is less than 1000, the colors are similar
252
+ * @param {string} color1 Color in the format '#rrggbb' or '#rgb' (or without hash) or rgb(r,g,b) or rgba(r,g,b,a)
253
+ * @param {string} color2 Color in the format '#rrggbb' or '#rgb' (or without hash) or rgb(r,g,b) or rgba(r,g,b,a)
254
+ * @returns {number} distance in the range 0-100^2
255
+ */
256
+ static colorDistance(color1: string, color2: string): number;
237
257
  /**
238
258
  * @private
239
259
  * @param {any} mix
@@ -1113,6 +1113,95 @@ var Utils = /*#__PURE__*/function () {
1113
1113
  return "#".concat(r.padStart(2, '0')).concat(g.padStart(2, '0')).concat(b.padStart(2, '0')).concat(alfa ? alfa : '');
1114
1114
  }
1115
1115
 
1116
+ /**
1117
+ * Convert RGB to array [r, g, b]
1118
+ * @param {string} hex Color in the format '#rrggbb' or '#rgb' (or without hash) or rgb(r,g,b) or rgba(r,g,b,a)
1119
+ * @returns {Array<number>} Array with 3 elements [r, g, b]
1120
+ */
1121
+ }, {
1122
+ key: "color2rgb",
1123
+ value: function color2rgb(hex) {
1124
+ if (hex === undefined || hex === null || hex === '' || typeof hex !== 'string') {
1125
+ return '';
1126
+ }
1127
+ if (hex.startsWith('rgba')) {
1128
+ var m = hex.match(/rgba?\((\d+),\s*(\d+),\s*(\d+),\s*([.\d]+)\)/);
1129
+ if (m) {
1130
+ hex = parseInt(m[1], 10).toString(16).padStart(2, '0') + parseInt(m[2], 10).toString(16).padStart(2, '0') + parseInt(m[2], 10).toString(16).padStart(2, '0');
1131
+ }
1132
+ } else if (hex.startsWith('rgba')) {
1133
+ var _m2 = hex.match(/rgb?\((\d+),\s*(\d+),\s*(\d+)\)/);
1134
+ if (_m2) {
1135
+ hex = parseInt(_m2[1], 10).toString(16).padStart(2, '0') + parseInt(_m2[2], 10).toString(16).padStart(2, '0') + parseInt(_m2[2], 10).toString(16).padStart(2, '0');
1136
+ }
1137
+ } else if (hex.startsWith('#')) {
1138
+ hex = hex.slice(1);
1139
+ }
1140
+ // convert 3-digit hex to 6-digits.
1141
+ if (hex.length === 3) {
1142
+ hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
1143
+ }
1144
+ if (hex.length !== 6 && hex.length !== 8) {
1145
+ console.warn("Cannot invert color: ".concat(hex));
1146
+ return false;
1147
+ }
1148
+ return [parseInt(hex.slice(0, 2), 16), parseInt(hex.slice(2, 4), 16), parseInt(hex.slice(4, 6), 16)];
1149
+ }
1150
+
1151
+ // Big thanks to: https://github.com/antimatter15/rgb-lab
1152
+ /**
1153
+ * Convert RGB to LAB
1154
+ * @param {Array<number>} rgb color in format [r,g,b]
1155
+ * @returns {Array<number>} lab color in format [l,a,b]
1156
+ */
1157
+ }, {
1158
+ key: "rgb2lab",
1159
+ value: function rgb2lab(rgb) {
1160
+ var r = rgb[0] / 255;
1161
+ var g = rgb[1] / 255;
1162
+ var b = rgb[2] / 255;
1163
+ r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92;
1164
+ g = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92;
1165
+ b = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92;
1166
+ var x = (r * 0.4124 + g * 0.3576 + b * 0.1805) / 0.95047;
1167
+ var y = r * 0.2126 + g * 0.7152 + b * 0.0722; /* / 1.00000; */
1168
+ var z = (r * 0.0193 + g * 0.1192 + b * 0.9505) / 1.08883;
1169
+ x = x > 0.008856 ? Math.pow(x, 0.33333333) : 7.787 * x + 0.137931; // 16 / 116;
1170
+ y = y > 0.008856 ? Math.pow(y, 0.33333333) : 7.787 * y + 0.137931; // 16 / 116;
1171
+ z = z > 0.008856 ? Math.pow(z, 0.33333333) : 7.787 * z + 0.137931; // 16 / 116;
1172
+
1173
+ return [116 * y - 16, 500 * (x - y), 200 * (y - z)];
1174
+ }
1175
+
1176
+ /**
1177
+ * Calculate the distance between two colors in LAB color space in the range 0-100^2
1178
+ * If distance is less than 1000, the colors are similar
1179
+ * @param {string} color1 Color in the format '#rrggbb' or '#rgb' (or without hash) or rgb(r,g,b) or rgba(r,g,b,a)
1180
+ * @param {string} color2 Color in the format '#rrggbb' or '#rgb' (or without hash) or rgb(r,g,b) or rgba(r,g,b,a)
1181
+ * @returns {number} distance in the range 0-100^2
1182
+ */
1183
+ }, {
1184
+ key: "colorDistance",
1185
+ value: function colorDistance(color1, color2) {
1186
+ var lab1 = Utils.rgb2lab(Utils.color2rgb(color1));
1187
+ var lab2 = Utils.rgb2lab(Utils.color2rgb(color2));
1188
+ var dltL = lab1[0] - lab2[0];
1189
+ var dltA = lab1[1] - lab2[1];
1190
+ var dltB = lab1[2] - lab2[2];
1191
+ var c1 = Math.sqrt(lab1[1] * lab1[1] + lab1[2] * lab1[2]);
1192
+ var c2 = Math.sqrt(lab2[1] * lab2[1] + lab2[2] * lab2[2]);
1193
+ var dltC = c1 - c2;
1194
+ var dltH = dltA * dltA + dltB * dltB - dltC * dltC;
1195
+ dltH = dltH < 0 ? 0 : Math.sqrt(dltH);
1196
+ var sc = 1.0 + 0.045 * c1;
1197
+ var sh = 1.0 + 0.015 * c1;
1198
+ var dltLKlsl = dltL;
1199
+ var dltCkcsc = dltC / sc;
1200
+ var dltHkhsh = dltH / sh;
1201
+ var i = dltLKlsl * dltLKlsl + dltCkcsc * dltCkcsc + dltHkhsh * dltHkhsh;
1202
+ return i < 0 ? 0 : i;
1203
+ }
1204
+
1116
1205
  // https://github.com/lukeed/clsx/blob/master/src/index.js
1117
1206
  // License
1118
1207
  // MIT © Luke Edwards
@@ -1124,26 +1213,26 @@ var Utils = /*#__PURE__*/function () {
1124
1213
  }, {
1125
1214
  key: "_toVal",
1126
1215
  value: function _toVal(mix) {
1127
- var k;
1128
1216
  var y;
1129
1217
  var str = '';
1130
1218
  if (typeof mix === 'string' || typeof mix === 'number') {
1131
1219
  str += mix;
1132
1220
  } else if ((0, _typeof2["default"])(mix) === 'object') {
1133
1221
  if (Array.isArray(mix)) {
1134
- for (k = 0; k < mix.length; k++) {
1222
+ for (var k = 0; k < mix.length; k++) {
1135
1223
  if (mix[k]) {
1136
- if (y = Utils._toVal(mix[k])) {
1224
+ y = Utils._toVal(mix[k]);
1225
+ if (y) {
1137
1226
  str && (str += ' ');
1138
1227
  str += y;
1139
1228
  }
1140
1229
  }
1141
1230
  }
1142
1231
  } else {
1143
- for (k in mix) {
1144
- if (mix[k]) {
1232
+ for (var _k in mix) {
1233
+ if (mix[_k]) {
1145
1234
  str && (str += ' ');
1146
- str += k;
1235
+ str += _k;
1147
1236
  }
1148
1237
  }
1149
1238
  }
@@ -1188,7 +1277,7 @@ var Utils = /*#__PURE__*/function () {
1188
1277
  if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {
1189
1278
  return window.vendorPrefix;
1190
1279
  }
1191
- return themeName ? themeName : (window._localStorage || window.localStorage) && (window._localStorage || window.localStorage).getItem('App.themeName') ? (window._localStorage || window.localStorage).getItem('App.themeName') : window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'colored';
1280
+ return themeName ? themeName : (window._localStorage || window.localStorage).getItem('App.themeName') ? (window._localStorage || window.localStorage).getItem('App.themeName') : window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'colored';
1192
1281
  }
1193
1282
 
1194
1283
  /**
@@ -1203,7 +1292,7 @@ var Utils = /*#__PURE__*/function () {
1203
1292
  if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {
1204
1293
  return 'light';
1205
1294
  }
1206
- themeName = themeName || (window._localStorage || window.localStorage) && (window._localStorage || window.localStorage).getItem('App.themeName');
1295
+ themeName = themeName || (window._localStorage || window.localStorage).getItem('App.themeName');
1207
1296
  return themeName === 'dark' || themeName === 'blue' ? 'dark' : 'light';
1208
1297
  }
1209
1298
 
@@ -1233,7 +1322,7 @@ var Utils = /*#__PURE__*/function () {
1233
1322
  if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {
1234
1323
  return window.vendorPrefix;
1235
1324
  }
1236
- themeName = themeName || (window._localStorage || window.localStorage) && (window._localStorage || window.localStorage).getItem('App.themeName');
1325
+ themeName = themeName || (window._localStorage || window.localStorage).getItem('App.themeName');
1237
1326
 
1238
1327
  // dark => blue => colored => light => dark
1239
1328
  var themes = Utils.getThemeNames();