@iobroker/adapter-react-v5 3.1.27 → 3.1.28

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 (44) hide show
  1. package/Components/IconPicker.js.map +1 -1
  2. package/Components/JsonConfigComponent/ConfigCustom.js +4 -3
  3. package/Components/JsonConfigComponent/ConfigCustom.js.map +1 -1
  4. package/Components/JsonConfigComponent/ConfigGeneric.d.ts +1 -1
  5. package/Components/JsonConfigComponent/ConfigGeneric.js +9 -7
  6. package/Components/JsonConfigComponent/ConfigGeneric.js.map +1 -1
  7. package/Components/JsonConfigComponent/ConfigLanguage.js +1 -1
  8. package/Components/JsonConfigComponent/ConfigLanguage.js.map +1 -1
  9. package/Components/JsonConfigComponent/ConfigNumber.js +33 -11
  10. package/Components/JsonConfigComponent/ConfigNumber.js.map +1 -1
  11. package/Components/JsonConfigComponent/ConfigPanel.js +1 -0
  12. package/Components/JsonConfigComponent/ConfigPanel.js.map +1 -1
  13. package/Components/JsonConfigComponent/ConfigSelectSendTo.js +3 -3
  14. package/Components/JsonConfigComponent/ConfigSelectSendTo.js.map +1 -1
  15. package/Components/JsonConfigComponent/ConfigSendto.js +85 -24
  16. package/Components/JsonConfigComponent/ConfigSendto.js.map +1 -1
  17. package/Components/JsonConfigComponent/ConfigStaticText.d.ts +1 -1
  18. package/Components/JsonConfigComponent/ConfigStaticText.js +45 -4
  19. package/Components/JsonConfigComponent/ConfigStaticText.js.map +1 -1
  20. package/Components/JsonConfigComponent/ConfigTable.js +36 -25
  21. package/Components/JsonConfigComponent/ConfigTable.js.map +1 -1
  22. package/Components/JsonConfigComponent/ConfigText.js +15 -12
  23. package/Components/JsonConfigComponent/ConfigText.js.map +1 -1
  24. package/Components/JsonConfigComponent/index.js +4 -6
  25. package/Components/JsonConfigComponent/index.js.map +1 -1
  26. package/Components/ObjectBrowser.js +57 -12
  27. package/Components/ObjectBrowser.js.map +1 -1
  28. package/Connection.d.ts +5 -0
  29. package/Connection.js +78 -16
  30. package/Connection.js.map +1 -1
  31. package/Dialogs/FileSelect.js +2 -1
  32. package/Dialogs/FileSelect.js.map +1 -1
  33. package/README.md +4 -0
  34. package/i18n/de.json +2 -1
  35. package/i18n/en.json +2 -1
  36. package/i18n/es.json +2 -1
  37. package/i18n/fr.json +2 -1
  38. package/i18n/it.json +2 -1
  39. package/i18n/nl.json +2 -1
  40. package/i18n/pl.json +2 -1
  41. package/i18n/pt.json +2 -1
  42. package/i18n/ru.json +2 -1
  43. package/i18n/zh-cn.json +2 -1
  44. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigTable.js","names":["styles","theme","fullWidth","width","root","paper","marginBottom","spacing","backgroundColor","headerText","table","minWidth","visuallyHidden","border","clip","height","margin","overflow","padding","position","top","addIcon","display","justifyContent","highlight","palette","mode","color","secondary","main","text","primary","dark","title","flex","rootTool","paddingLeft","paddingRight","silver","opacity","filteredOut","textAlign","buttonEmpty","buttonCell","whiteSpace","objectToArray","object","nameOfFirstAttr","nameOfSecondAttr","array","Object","keys","forEach","key","item","push","assign","arrayToObject","row","undefined","ConfigTable","props","property","orderCheck","state","order","orderBy","isAsc","newOrder","newValue","stableSort","setState","iteration","applyFilter","value","comparator","getComparator","stabilizedThis","map","el","index","sort","a","b","JSON","parse","stringify","visibleValue","splice","pos","indexOf","i","onChangeWrapper","updateVisible","typingTimer","clearTimeout","setTimeout","schema","objKeyName","objValue","objValueName","onChange","attr","handleRequestSort","newItem","items","reduce","accumulator","currentValue","defaultValue","defaultFunc","custom","executeCustom","data","instanceObj","length","execute","clear","_","filterRefs","valueInputRef","current","children","toLowerCase","filter","idx","includes","createRef","ConfigGeneric","getValue","Array","isArray","filterOn","attrItem","systemConfig","schemaForAttribute","find","schemaItem","socket","adapterName","instance","common","alive","themeType","themeName","customs","valueChange","newObj","error","onError","buttonsWidth","classes","headCell","endsWith","clsx","I18n","t","endAdornment","getText","noDelete","disabled","doAnyFilterSet","isAnyFilterSet","label","allowAddByFilter","onAdd","enhancedTableHead","itemTable","onMoveUp","onMoveDown","onDelete","e","help","renderHelp","helpLink","noTranslation","descendingComparator","propTypes","PropTypes","isRequired","string","style","className","func","withStyles"],"sources":["JsonConfigComponent/ConfigTable.jsx"],"sourcesContent":["import React, { createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { /*lighten,*/ withStyles } from '@mui/styles';\nimport clsx from 'clsx';\n\nimport FormHelperText from '@mui/material/FormHelperText';\nimport { IconButton, InputAdornment, Paper, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, TableSortLabel, TextField, Toolbar, Tooltip, Typography } from '@mui/material';\n\nimport AddIcon from '@mui/icons-material/Add';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport CloseIcon from '@mui/icons-material/Close';\nimport UpIcon from '@mui/icons-material/ArrowUpward';\nimport DownIcon from '@mui/icons-material/ArrowDownward';\nimport IconFilterOn from '@mui/icons-material/FilterAlt';\nimport IconFilterOff from '@mui/icons-material/FilterAltOff';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport ConfigPanel from './ConfigPanel';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n root: {\n width: '100%',\n },\n paper: {\n width: '100%',\n marginBottom: theme.spacing(2),\n backgroundColor: `rgba(255, 255, 255, 0.1)`,\n },\n headerText: {\n width: '100%'\n },\n table: {\n minWidth: 750,\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 addIcon: {\n display: 'flex',\n justifyContent: 'space-between'\n },\n highlight:\n theme.palette.mode === 'light'\n ? {\n color: theme.palette.secondary.main,\n // backgroundColor: lighten(theme.palette.secondary.light, 0.85),\n }\n : {\n color: theme.palette.text.primary,\n backgroundColor: theme.palette.secondary.dark,\n },\n title: {\n flex: '1 1 100%',\n },\n rootTool: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(1),\n },\n silver: {\n opacity: 0.2\n },\n flex: {\n display: 'flex'\n },\n filteredOut: {\n padding: 10,\n display: 'flex',\n textAlign: 'center'\n },\n buttonEmpty: {\n width: 30,\n display: 'inline-block'\n },\n buttonCell: {\n whiteSpace: 'nowrap',\n }\n});\n\nfunction objectToArray(object, nameOfFirstAttr, nameOfSecondAttr) {\n nameOfFirstAttr = nameOfFirstAttr || 'key';\n\n const array = [];\n Object.keys(object).forEach(key => {\n const item = {};\n item[nameOfFirstAttr] = key;\n\n if (nameOfSecondAttr) {\n item[nameOfSecondAttr] = object[key]\n array.push(item);\n } else {\n array.push(Object.assign(item, object[key]));\n }\n });\n\n return array;\n}\n\nfunction arrayToObject(array, nameOfFirstAttr, nameOfSecondAttr) {\n nameOfFirstAttr = nameOfFirstAttr || 'key';\n\n const object = {};\n\n array.forEach(row => {\n let key = row[nameOfFirstAttr];\n if (key === null || key === undefined) {\n key = '';\n }\n delete row[nameOfFirstAttr];\n\n if (nameOfSecondAttr) {\n object[key] = row[nameOfSecondAttr];\n } else {\n object[key] = row;\n }\n });\n\n return object;\n}\n\nclass ConfigTable extends ConfigGeneric {\n constructor(props) {\n super(props)\n this.filterRefs = {};\n this.props.schema.items = this.props.schema.items || [];\n this.props.schema.items.forEach(el => {\n if (el.filter) {\n this.filterRefs[el.attr] = createRef();\n }\n });\n }\n\n async componentDidMount() {\n super.componentDidMount();\n let value = ConfigGeneric.getValue(this.props.data, this.props.attr) || [];\n\n // if the list is given as an object\n if (this.props.schema.objKeyName) {\n value = objectToArray(value, this.props.schema.objKeyName, this.props.schema.objValueName);\n }\n\n if (!Array.isArray(value)) {\n value = [];\n }\n\n const visibleValue = value.map((_, i) => i);\n\n this.setState({\n value,\n visibleValue,\n orderBy: /*this.props.schema.items.length ? this.props.schema.items[0].attr : */'',\n order: 'asc',\n iteration: 0,\n filterOn: [],\n });\n }\n\n componentWillUnmount() {\n this.typingTimer && clearTimeout(this.typingTimer)\n this.typingTimer = null;\n super.componentWillUnmount();\n }\n\n itemTable(attrItem, data, idx) {\n const { value, systemConfig } = this.state;\n const { schema } = this.props;\n const schemaForAttribute = schema.items && schema.items.find(el => el.attr === attrItem);\n\n if (!schemaForAttribute) {\n return null;\n }\n\n const schemaItem = {\n items: {\n [attrItem]: schemaForAttribute\n }\n };\n\n return <ConfigPanel\n index={idx + this.state.iteration}\n arrayIndex={idx}\n globalData={this.props.data}\n socket={this.props.socket}\n adapterName={this.props.adapterName}\n instance={this.props.instance}\n common={this.props.common}\n alive={this.props.alive}\n themeType={this.props.themeType}\n themeName={this.props.themeName}\n data={data}\n table\n custom\n schema={schemaItem}\n systemConfig={systemConfig}\n customs={this.props.customs}\n onChange={(attr, valueChange) => {\n const newObj = JSON.parse(JSON.stringify(value));\n newObj[idx][attr] = valueChange;\n this.setState({ value: newObj }, () =>\n this.onChangeWrapper(newObj,true));\n }}\n onError={(error, attr) => this.onError(error, attr)}\n />;\n }\n\n static descendingComparator(a, b, orderBy) {\n if (b[orderBy] < a[orderBy]) {\n return -1;\n } else\n if (b[orderBy] > a[orderBy]) {\n return 1;\n } else {\n return 0;\n }\n }\n\n static getComparator(order, orderBy) {\n return order === 'desc'\n ? (a, b) => ConfigTable.descendingComparator(a, b, orderBy)\n : (a, b) => -ConfigTable.descendingComparator(a, b, orderBy);\n }\n\n handleRequestSort = (property, orderCheck = false) => {\n const { order, orderBy } = this.state;\n if (orderBy) {\n const isAsc = orderBy === property && order === 'asc';\n const newOrder = orderCheck ? order : (isAsc ? 'desc' : 'asc');\n const newValue = this.stableSort(newOrder, property);\n this.setState({ order: newOrder, orderBy: property, iteration: this.state.iteration + 10000 }, () =>\n this.applyFilter(false, newValue));\n }\n }\n\n stableSort = (order, orderBy) => {\n const { value } = this.state;\n const comparator = ConfigTable.getComparator(order, orderBy);\n const stabilizedThis = value.map((el, index) => [el, index]);\n\n stabilizedThis.sort((a, b) => {\n const order = comparator(a[0], b[0]);\n if (order !== 0) {\n return order;\n } else {\n return a[1] - b[1];\n }\n });\n\n return stabilizedThis.map(el => el[0]);\n }\n\n enhancedTableHead(buttonsWidth) {\n const { schema, classes } = this.props;\n const { order, orderBy } = this.state;\n return <TableHead>\n <TableRow>\n {schema.items && schema.items.map(headCell => (\n <TableCell\n style={{ width: typeof headCell.width === 'string' && headCell.width.endsWith('%') ? headCell.width : headCell.width }}\n key={headCell.attr}\n align=\"left\"\n sortDirection={orderBy === headCell.attr ? order : false}\n >\n <div className={classes.flex}>\n {headCell.sort && <TableSortLabel\n active\n className={clsx(orderBy !== headCell.attr && classes.silver)}\n direction={orderBy === headCell.attr ? order : 'asc'}\n onClick={() => this.handleRequestSort(headCell.attr)}\n />}\n {headCell.filter && this.state.filterOn.includes(headCell.attr) ?\n <TextField\n variant=\"standard\"\n ref={this.filterRefs[headCell.attr]}\n onChange={() => this.applyFilter()}\n title={I18n.t('ra_You can filter entries by entering here some text')}\n InputProps={{\n endAdornment: this.filterRefs[headCell.attr]?.current?.children[0]?.children[0]?.value && <InputAdornment position=\"end\">\n <IconButton\n size=\"small\"\n onClick={() => {\n this.filterRefs[headCell.attr].current.children[0].children[0].value = '';\n this.applyFilter();\n }}\n >\n <CloseIcon />\n </IconButton>\n </InputAdornment>,\n }}\n fullWidth\n placeholder={this.getText(headCell.title)}\n />\n : <span className={this.props.classes.headerText}>{this.getText(headCell.title)}</span>}\n { headCell.filter ? <IconButton\n title={I18n.t('ra_Show/hide filter input')}\n size=\"small\"\n onClick={() => {\n const filterOn = [...this.state.filterOn];\n const pos = this.state.filterOn.indexOf(headCell.attr);\n if (pos === -1) {\n filterOn.push(headCell.attr);\n } else {\n filterOn.splice(pos, 1);\n }\n this.setState({ filterOn }, () => {\n if (pos && this.filterRefs[headCell.attr].current.children[0].children[0].value) {\n this.filterRefs[headCell.attr].current.children[0].children[0].value = '';\n this.applyFilter();\n }\n });\n }}\n >{this.state.filterOn.includes(headCell.attr) ? <IconFilterOff /> : <IconFilterOn />}</IconButton> : null}\n </div>\n </TableCell>\n ))}\n {!schema.noDelete && <TableCell style={{ paddingLeft: 20, paddingRight: 20, width: buttonsWidth, textAlign: 'right' }} padding=\"checkbox\">\n <IconButton disabled size=\"small\">\n <DeleteIcon />\n </IconButton>\n </TableCell>}\n </TableRow>\n </TableHead>;\n }\n\n onDelete = index => () => {\n const newValue = JSON.parse(JSON.stringify(this.state.value));\n let visibleValue = JSON.parse(JSON.stringify(this.state.visibleValue));\n newValue.splice(index, 1);\n const pos = visibleValue.indexOf(index);\n if (pos !== -1) {\n visibleValue.splice(pos, 1);\n visibleValue = visibleValue.map(i => i > index ? i - 1 : i);\n }\n\n this.setState({ value: newValue, visibleValue, iteration: this.state.iteration + 10000 }, () =>\n this.onChangeWrapper(newValue));\n };\n\n onChangeWrapper = (newValue, updateVisible = false) => {\n this.typingTimer && clearTimeout(this.typingTimer);\n\n this.typingTimer = setTimeout((value, updateVisible) => {\n this.typingTimer = null;\n\n if (this.props.schema.objKeyName) {\n const objValue = arrayToObject(JSON.parse(JSON.stringify(value)), this.props.schema.objKeyName, this.props.schema.objValueName);\n this.onChange(this.props.attr, objValue);\n } else {\n this.onChange(this.props.attr, value);\n }\n\n if (updateVisible) {\n this.applyFilter(false, value);\n this.handleRequestSort(this.state.orderBy, true);\n }\n }, 300, newValue, updateVisible);\n }\n\n onAdd = () => {\n const { schema } = this.props;\n const newValue = JSON.parse(JSON.stringify(this.state.value));\n const visibleValue = JSON.parse(JSON.stringify(this.state.visibleValue));\n\n const newItem = schema.items && schema.items.reduce((accumulator, currentValue) => {\n let defaultValue;\n if (currentValue.defaultFunc) {\n if (this.props.custom) {\n defaultValue = currentValue.defaultFunc ? this.executeCustom(currentValue.defaultFunc, this.props.schema.default, this.props.data, this.props.instanceObj, newValue.length, this.props.data) : this.props.schema.default;\n } else {\n defaultValue = currentValue.defaultFunc ? this.execute(currentValue.defaultFunc, this.props.schema.default, this.props.data, newValue.length, this.props.data) : this.props.schema.default;\n }\n } else {\n defaultValue = currentValue.default === undefined ? null : currentValue.default;\n }\n\n accumulator[currentValue.attr] = defaultValue;\n return accumulator;\n }, {});\n\n newValue.push(newItem);\n visibleValue.push(newValue.length - 1);\n\n this.setState({ value: newValue, visibleValue }, () =>\n this.onChangeWrapper(newValue));\n }\n\n isAnyFilterSet() {\n return Object.keys(this.filterRefs).find(attr => this.filterRefs[attr].current?.children[0].children[0].value);\n }\n\n applyFilter = (clear = false, value = this.state.value) => {\n let visibleValue = value.map((_, i) => i);\n Object.keys(this.filterRefs).forEach(attr => {\n let valueInputRef = this.filterRefs[attr].current?.children[0].children[0].value;\n if (!clear && valueInputRef) {\n valueInputRef = valueInputRef.toLowerCase();\n visibleValue = visibleValue.filter(idx => value[idx] && value[idx][attr] && value[idx][attr].toLowerCase().includes(valueInputRef));\n } else if (this.filterRefs[attr].current) {\n this.filterRefs[attr].current.children[0].children[0].value = '';\n }\n });\n\n if (JSON.stringify(visibleValue) !== JSON.stringify(this.state.visibleValue)) {\n this.setState({ visibleValue });\n }\n }\n\n onMoveUp(idx) {\n const value = JSON.parse(JSON.stringify(this.state.value));\n const item = value[idx];\n value.splice(idx, 1);\n value.splice(idx - 1, 0, item);\n this.setState({ value, iteration: this.state.iteration + 10000 }, () =>\n this.onChangeWrapper(value));\n }\n\n onMoveDown(idx) {\n const value = JSON.parse(JSON.stringify(this.state.value));\n const item = value[idx];\n value.splice(idx, 1);\n value.splice(idx + 1, 0, item);\n this.setState({ value, iteration: this.state.iteration + 10000 }, () =>\n this.onChangeWrapper(value));\n }\n\n renderItem(error, disabled, defaultValue) {\n const { classes, schema } = this.props;\n const { value, visibleValue } = this.state;\n\n if (!value) {\n return null;\n }\n\n const doAnyFilterSet = this.isAnyFilterSet();\n\n return <Paper className={classes.paper}>\n <div className={classes.addIcon}>\n {schema.label ? <Toolbar\n variant=\"dense\"\n className={classes.rootTool}\n >\n <Typography className={classes.title} variant=\"h6\" id=\"tableTitle\" component=\"div\">\n {this.getText(schema.label)}\n </Typography>\n </Toolbar> : null}\n {!schema.noDelete ? <Tooltip title={doAnyFilterSet ? I18n.t('ra_Cannot add items with set filter') : I18n.t('ra_Add row')}>\n <span>\n <IconButton disabled={!!doAnyFilterSet && !this.props.schema.allowAddByFilter} onClick={this.onAdd}>\n <AddIcon />\n </IconButton>\n </span>\n </Tooltip> : null}\n </div>\n <TableContainer>\n <Table className={classes.table} size=\"small\">\n {this.enhancedTableHead(!doAnyFilterSet && !this.state.orderBy ? 120 : 64)}\n <TableBody>\n {visibleValue.map((idx, i) =>\n <TableRow\n hover\n key={idx}\n >\n {schema.items && schema.items.map(headCell =>\n <TableCell key={headCell.attr + '_' + idx} align=\"left\">\n {this.itemTable(headCell.attr, value[idx], idx)}\n </TableCell>\n )}\n {!schema.noDelete && <TableCell align=\"left\" className={classes.buttonCell}>\n {!doAnyFilterSet && !this.state.orderBy ? (i ? <Tooltip title={I18n.t('ra_Move up')}>\n <IconButton size=\"small\" onClick={() => this.onMoveUp(idx)}>\n <UpIcon />\n </IconButton>\n </Tooltip> : <div className={classes.buttonEmpty}/>) : null}\n {!doAnyFilterSet && !this.state.orderBy ? (i < visibleValue.length - 1 ? <Tooltip title={I18n.t('ra_Move down')}>\n <IconButton size=\"small\" onClick={() => this.onMoveDown(idx)}>\n <DownIcon />\n </IconButton>\n </Tooltip> : <div className={classes.buttonEmpty}/> ) : null}\n <Tooltip title={I18n.t('ra_Delete current row')}>\n <IconButton size=\"small\" onClick={this.onDelete(idx)}>\n <DeleteIcon />\n </IconButton>\n </Tooltip>\n </TableCell>}\n </TableRow>)}\n </TableBody>\n </Table>\n {!visibleValue.length && value.length ?\n <div className={classes.filteredOut}>\n <Typography className={classes.title} variant=\"h6\" id=\"tableTitle\" component=\"div\">\n {I18n.t('ra_All items are filtered out')}\n <IconButton\n size=\"small\"\n onClick={e => this.applyFilter(true)}\n >\n <CloseIcon />\n </IconButton>\n </Typography>\n </div> : null}\n </TableContainer>\n {schema.help ? <FormHelperText>{this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}</FormHelperText> : null}\n </Paper>;\n }\n}\n\nConfigTable.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigTable);\n"],"mappings":"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"}
1
+ {"version":3,"file":"ConfigTable.js","names":["styles","theme","fullWidth","width","root","paper","marginBottom","spacing","backgroundColor","headerText","table","minWidth","visuallyHidden","border","clip","height","margin","overflow","padding","position","top","addIcon","display","justifyContent","highlight","palette","mode","color","secondary","main","text","primary","dark","title","flex","rootTool","paddingLeft","paddingRight","silver","opacity","alignItems","filteredOut","textAlign","buttonEmpty","buttonCell","whiteSpace","objectToArray","object","nameOfFirstAttr","nameOfSecondAttr","array","Object","keys","forEach","key","item","push","assign","arrayToObject","row","undefined","ConfigTable","props","property","orderCheck","state","order","orderBy","isAsc","newOrder","newValue","stableSort","setState","iteration","applyFilter","value","comparator","getComparator","stabilizedThis","map","el","index","sort","a","b","JSON","parse","stringify","visibleValue","splice","pos","indexOf","i","onChangeWrapper","updateVisible","typingTimer","clearTimeout","setTimeout","schema","objKeyName","objValue","objValueName","onChange","attr","handleRequestSort","newItem","items","reduce","accumulator","currentValue","defaultValue","defaultFunc","custom","executeCustom","data","instanceObj","length","execute","clear","_","filterRefs","valueInputRef","current","children","toLowerCase","filter","idx","includes","createRef","ConfigGeneric","getValue","Array","isArray","filterOn","attrItem","schemaForAttribute","find","schemaItem","socket","adapterName","instance","common","alive","themeType","themeName","systemConfig","originalData","customs","valueChange","newObj","error","onError","buttonsWidth","doAnyFilterSet","classes","headCell","endsWith","noDelete","I18n","t","allowAddByFilter","onAdd","clsx","endAdornment","getText","disabled","isAnyFilterSet","label","enhancedTableHead","itemTable","onMoveUp","onMoveDown","onDelete","showSecondAddAt","e","help","renderHelp","helpLink","noTranslation","descendingComparator","propTypes","PropTypes","isRequired","string","style","className","func","withStyles"],"sources":["JsonConfigComponent/ConfigTable.jsx"],"sourcesContent":["import React, { createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { /*lighten,*/ withStyles } from '@mui/styles';\nimport clsx from 'clsx';\n\nimport FormHelperText from '@mui/material/FormHelperText';\nimport { IconButton, InputAdornment, Paper, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, TableSortLabel, TextField, Toolbar, Tooltip, Typography } from '@mui/material';\n\nimport AddIcon from '@mui/icons-material/Add';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport CloseIcon from '@mui/icons-material/Close';\nimport UpIcon from '@mui/icons-material/ArrowUpward';\nimport DownIcon from '@mui/icons-material/ArrowDownward';\nimport IconFilterOn from '@mui/icons-material/FilterAlt';\nimport IconFilterOff from '@mui/icons-material/FilterAltOff';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport ConfigPanel from './ConfigPanel';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n root: {\n width: '100%',\n },\n paper: {\n width: '100%',\n marginBottom: theme.spacing(2),\n backgroundColor: `rgba(255, 255, 255, 0.1)`,\n },\n headerText: {\n width: '100%'\n },\n table: {\n minWidth: 750,\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 addIcon: {\n display: 'flex',\n justifyContent: 'space-between'\n },\n highlight:\n theme.palette.mode === 'light'\n ? {\n color: theme.palette.secondary.main,\n // backgroundColor: lighten(theme.palette.secondary.light, 0.85),\n }\n : {\n color: theme.palette.text.primary,\n backgroundColor: theme.palette.secondary.dark,\n },\n title: {\n flex: '1 1 100%',\n },\n rootTool: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(1),\n },\n silver: {\n opacity: 0.2\n },\n flex: {\n display: 'flex',\n alignItems: 'baseline',\n },\n filteredOut: {\n padding: 10,\n display: 'flex',\n textAlign: 'center'\n },\n buttonEmpty: {\n width: 34,\n display: 'inline-block'\n },\n buttonCell: {\n whiteSpace: 'nowrap',\n }\n});\n\nfunction objectToArray(object, nameOfFirstAttr, nameOfSecondAttr) {\n nameOfFirstAttr = nameOfFirstAttr || 'key';\n\n const array = [];\n Object.keys(object).forEach(key => {\n const item = {};\n item[nameOfFirstAttr] = key;\n\n if (nameOfSecondAttr) {\n item[nameOfSecondAttr] = object[key]\n array.push(item);\n } else {\n array.push(Object.assign(item, object[key]));\n }\n });\n\n return array;\n}\n\nfunction arrayToObject(array, nameOfFirstAttr, nameOfSecondAttr) {\n nameOfFirstAttr = nameOfFirstAttr || 'key';\n\n const object = {};\n\n array.forEach(row => {\n let key = row[nameOfFirstAttr];\n if (key === null || key === undefined) {\n key = '';\n }\n delete row[nameOfFirstAttr];\n\n if (nameOfSecondAttr) {\n object[key] = row[nameOfSecondAttr];\n } else {\n object[key] = row;\n }\n });\n\n return object;\n}\n\nclass ConfigTable extends ConfigGeneric {\n constructor(props) {\n super(props)\n this.filterRefs = {};\n this.props.schema.items = this.props.schema.items || [];\n this.props.schema.items.forEach(el => {\n if (el.filter) {\n this.filterRefs[el.attr] = createRef();\n }\n });\n }\n\n async componentDidMount() {\n super.componentDidMount();\n let value = ConfigGeneric.getValue(this.props.data, this.props.attr) || [];\n\n // if the list is given as an object\n if (this.props.schema.objKeyName) {\n value = objectToArray(value, this.props.schema.objKeyName, this.props.schema.objValueName);\n }\n\n if (!Array.isArray(value)) {\n value = [];\n }\n\n const visibleValue = value.map((_, i) => i);\n\n this.setState({\n value,\n visibleValue,\n orderBy: /*this.props.schema.items.length ? this.props.schema.items[0].attr : */'',\n order: 'asc',\n iteration: 0,\n filterOn: [],\n });\n }\n\n componentWillUnmount() {\n this.typingTimer && clearTimeout(this.typingTimer)\n this.typingTimer = null;\n super.componentWillUnmount();\n }\n\n itemTable(attrItem, data, idx) {\n const { value } = this.state;\n const { schema } = this.props;\n const schemaForAttribute = schema.items && schema.items.find(el => el.attr === attrItem);\n\n if (!schemaForAttribute) {\n return null;\n }\n\n const schemaItem = {\n items: {\n [attrItem]: schemaForAttribute\n }\n };\n\n return <ConfigPanel\n index={idx + this.state.iteration}\n arrayIndex={idx}\n globalData={this.props.data}\n socket={this.props.socket}\n adapterName={this.props.adapterName}\n instance={this.props.instance}\n common={this.props.common}\n alive={this.props.alive}\n themeType={this.props.themeType}\n themeName={this.props.themeName}\n data={data}\n table\n custom\n schema={schemaItem}\n systemConfig={this.props.systemConfig}\n originalData={this.props.originalData}\n customs={this.props.customs}\n onChange={(attr, valueChange) => {\n const newObj = JSON.parse(JSON.stringify(value));\n newObj[idx][attr] = valueChange;\n this.setState({ value: newObj }, () =>\n this.onChangeWrapper(newObj,true));\n }}\n onError={(error, attr) => this.onError(error, attr)}\n />;\n }\n\n static descendingComparator(a, b, orderBy) {\n if (b[orderBy] < a[orderBy]) {\n return -1;\n } else\n if (b[orderBy] > a[orderBy]) {\n return 1;\n } else {\n return 0;\n }\n }\n\n static getComparator(order, orderBy) {\n return order === 'desc'\n ? (a, b) => ConfigTable.descendingComparator(a, b, orderBy)\n : (a, b) => -ConfigTable.descendingComparator(a, b, orderBy);\n }\n\n handleRequestSort = (property, orderCheck = false) => {\n const { order, orderBy } = this.state;\n if (orderBy) {\n const isAsc = orderBy === property && order === 'asc';\n const newOrder = orderCheck ? order : (isAsc ? 'desc' : 'asc');\n const newValue = this.stableSort(newOrder, property);\n this.setState({ order: newOrder, orderBy: property, iteration: this.state.iteration + 10000 }, () =>\n this.applyFilter(false, newValue));\n }\n }\n\n stableSort = (order, orderBy) => {\n const { value } = this.state;\n const comparator = ConfigTable.getComparator(order, orderBy);\n const stabilizedThis = value.map((el, index) => [el, index]);\n\n stabilizedThis.sort((a, b) => {\n const order = comparator(a[0], b[0]);\n if (order !== 0) {\n return order;\n } else {\n return a[1] - b[1];\n }\n });\n\n return stabilizedThis.map(el => el[0]);\n }\n\n enhancedTableHead(buttonsWidth, doAnyFilterSet) {\n const { schema, classes } = this.props;\n const { order, orderBy } = this.state;\n return <TableHead>\n <TableRow>\n {schema.items && schema.items.map((headCell, i) =>\n <TableCell\n style={{ width: typeof headCell.width === 'string' && headCell.width.endsWith('%') ? headCell.width : headCell.width }}\n key={headCell.attr + '_' + i}\n align=\"left\"\n sortDirection={orderBy === headCell.attr ? order : false}\n >\n <div className={classes.flex}>\n {!i && !schema.noDelete ? <Tooltip title={doAnyFilterSet ? I18n.t('ra_Cannot add items with set filter') : I18n.t('ra_Add row')}>\n <span>\n <IconButton size=\"small\" color=\"primary\" disabled={!!doAnyFilterSet && !this.props.schema.allowAddByFilter} onClick={this.onAdd}>\n <AddIcon />\n </IconButton>\n </span>\n </Tooltip> : null}\n {headCell.sort && <TableSortLabel\n active\n className={clsx(orderBy !== headCell.attr && classes.silver)}\n direction={orderBy === headCell.attr ? order : 'asc'}\n onClick={() => this.handleRequestSort(headCell.attr)}\n />}\n {headCell.filter && this.state.filterOn.includes(headCell.attr) ?\n <TextField\n variant=\"standard\"\n ref={this.filterRefs[headCell.attr]}\n onChange={() => this.applyFilter()}\n title={I18n.t('ra_You can filter entries by entering here some text')}\n InputProps={{\n endAdornment: this.filterRefs[headCell.attr]?.current?.children[0]?.children[0]?.value && <InputAdornment position=\"end\">\n <IconButton\n size=\"small\"\n onClick={() => {\n this.filterRefs[headCell.attr].current.children[0].children[0].value = '';\n this.applyFilter();\n }}\n >\n <CloseIcon />\n </IconButton>\n </InputAdornment>,\n }}\n fullWidth\n placeholder={this.getText(headCell.title)}\n />\n : <span className={this.props.classes.headerText}>{this.getText(headCell.title)}</span>}\n { headCell.filter ? <IconButton\n title={I18n.t('ra_Show/hide filter input')}\n size=\"small\"\n onClick={() => {\n const filterOn = [...this.state.filterOn];\n const pos = this.state.filterOn.indexOf(headCell.attr);\n if (pos === -1) {\n filterOn.push(headCell.attr);\n } else {\n filterOn.splice(pos, 1);\n }\n this.setState({ filterOn }, () => {\n if (pos && this.filterRefs[headCell.attr].current.children[0].children[0].value) {\n this.filterRefs[headCell.attr].current.children[0].children[0].value = '';\n this.applyFilter();\n }\n });\n }}\n >{this.state.filterOn.includes(headCell.attr) ? <IconFilterOff /> : <IconFilterOn />}</IconButton> : null}\n </div>\n </TableCell>\n )}\n {!schema.noDelete && <TableCell style={{ paddingLeft: 20, paddingRight: 20, width: buttonsWidth, textAlign: 'right' }} padding=\"checkbox\">\n <IconButton disabled size=\"small\">\n <DeleteIcon />\n </IconButton>\n </TableCell>}\n </TableRow>\n </TableHead>;\n }\n\n onDelete = index => () => {\n const newValue = JSON.parse(JSON.stringify(this.state.value));\n let visibleValue = JSON.parse(JSON.stringify(this.state.visibleValue));\n newValue.splice(index, 1);\n const pos = visibleValue.indexOf(index);\n if (pos !== -1) {\n visibleValue.splice(pos, 1);\n visibleValue = visibleValue.map(i => i > index ? i - 1 : i);\n }\n\n this.setState({ value: newValue, visibleValue, iteration: this.state.iteration + 10000 }, () =>\n this.onChangeWrapper(newValue));\n };\n\n onChangeWrapper = (newValue, updateVisible = false) => {\n this.typingTimer && clearTimeout(this.typingTimer);\n\n this.typingTimer = setTimeout((value, updateVisible) => {\n this.typingTimer = null;\n\n if (this.props.schema.objKeyName) {\n const objValue = arrayToObject(JSON.parse(JSON.stringify(value)), this.props.schema.objKeyName, this.props.schema.objValueName);\n this.onChange(this.props.attr, objValue);\n } else {\n this.onChange(this.props.attr, value);\n }\n\n if (updateVisible) {\n this.applyFilter(false, value);\n this.handleRequestSort(this.state.orderBy, true);\n }\n }, 300, newValue, updateVisible);\n }\n\n onAdd = () => {\n const { schema } = this.props;\n const newValue = JSON.parse(JSON.stringify(this.state.value));\n const visibleValue = JSON.parse(JSON.stringify(this.state.visibleValue));\n\n const newItem = schema.items && schema.items.reduce((accumulator, currentValue) => {\n let defaultValue;\n if (currentValue.defaultFunc) {\n if (this.props.custom) {\n defaultValue = currentValue.defaultFunc ? this.executeCustom(currentValue.defaultFunc, this.props.schema.default, this.props.data, this.props.instanceObj, newValue.length, this.props.data) : this.props.schema.default;\n } else {\n defaultValue = currentValue.defaultFunc ? this.execute(currentValue.defaultFunc, this.props.schema.default, this.props.data, newValue.length, this.props.data) : this.props.schema.default;\n }\n } else {\n defaultValue = currentValue.default === undefined ? null : currentValue.default;\n }\n\n accumulator[currentValue.attr] = defaultValue;\n return accumulator;\n }, {});\n\n newValue.push(newItem);\n visibleValue.push(newValue.length - 1);\n\n this.setState({ value: newValue, visibleValue }, () =>\n this.onChangeWrapper(newValue));\n }\n\n isAnyFilterSet() {\n return Object.keys(this.filterRefs).find(attr => this.filterRefs[attr].current?.children[0].children[0].value);\n }\n\n applyFilter = (clear = false, value = this.state.value) => {\n let visibleValue = value.map((_, i) => i);\n Object.keys(this.filterRefs).forEach(attr => {\n let valueInputRef = this.filterRefs[attr].current?.children[0].children[0].value;\n if (!clear && valueInputRef) {\n valueInputRef = valueInputRef.toLowerCase();\n visibleValue = visibleValue.filter(idx => value[idx] && value[idx][attr] && value[idx][attr].toLowerCase().includes(valueInputRef));\n } else if (this.filterRefs[attr].current) {\n this.filterRefs[attr].current.children[0].children[0].value = '';\n }\n });\n\n if (JSON.stringify(visibleValue) !== JSON.stringify(this.state.visibleValue)) {\n this.setState({ visibleValue });\n }\n }\n\n onMoveUp(idx) {\n const value = JSON.parse(JSON.stringify(this.state.value));\n const item = value[idx];\n value.splice(idx, 1);\n value.splice(idx - 1, 0, item);\n this.setState({ value, iteration: this.state.iteration + 10000 }, () =>\n this.onChangeWrapper(value));\n }\n\n onMoveDown(idx) {\n const value = JSON.parse(JSON.stringify(this.state.value));\n const item = value[idx];\n value.splice(idx, 1);\n value.splice(idx + 1, 0, item);\n this.setState({ value, iteration: this.state.iteration + 10000 }, () =>\n this.onChangeWrapper(value));\n }\n\n renderItem(error, disabled, defaultValue) {\n const { classes, schema } = this.props;\n const { value, visibleValue } = this.state;\n\n if (!value) {\n return null;\n }\n\n const doAnyFilterSet = this.isAnyFilterSet();\n\n return <Paper className={classes.paper}>\n <div className={classes.addIcon}>\n {schema.label ? <Toolbar\n variant=\"dense\"\n className={classes.rootTool}\n >\n <Typography className={classes.title} variant=\"h6\" id=\"tableTitle\" component=\"div\">\n {this.getText(schema.label)}\n </Typography>\n </Toolbar> : null}\n </div>\n <TableContainer>\n <Table className={classes.table} size=\"small\">\n {this.enhancedTableHead(!doAnyFilterSet && !this.state.orderBy ? 120 : 64, doAnyFilterSet)}\n <TableBody>\n {visibleValue.map((idx, i) =>\n <TableRow\n hover\n key={idx + '_' + i}\n >\n {schema.items && schema.items.map(headCell =>\n <TableCell key={headCell.attr + '_' + idx} align=\"left\">\n {this.itemTable(headCell.attr, value[idx], idx)}\n </TableCell>\n )}\n {!schema.noDelete && <TableCell align=\"left\" className={classes.buttonCell}>\n {!doAnyFilterSet && !this.state.orderBy ? (i ? <Tooltip title={I18n.t('ra_Move up')}>\n <IconButton size=\"small\" onClick={() => this.onMoveUp(idx)}>\n <UpIcon />\n </IconButton>\n </Tooltip> : <div className={classes.buttonEmpty}/>) : null}\n {!doAnyFilterSet && !this.state.orderBy ? (i < visibleValue.length - 1 ? <Tooltip title={I18n.t('ra_Move down')}>\n <IconButton size=\"small\" onClick={() => this.onMoveDown(idx)}>\n <DownIcon />\n </IconButton>\n </Tooltip> : <div className={classes.buttonEmpty}/> ) : null}\n <Tooltip title={I18n.t('ra_Delete current row')}>\n <IconButton size=\"small\" onClick={this.onDelete(idx)}>\n <DeleteIcon />\n </IconButton>\n </Tooltip>\n </TableCell>}\n </TableRow>)}\n {!schema.noDelete && visibleValue.length >= (schema.showSecondAddAt || 5) ?\n <TableRow>\n <TableCell colSpan={schema.items.length + 1}>\n <Tooltip title={doAnyFilterSet ? I18n.t('ra_Cannot add items with set filter') : I18n.t('ra_Add row')}>\n <span>\n <IconButton size=\"small\" color=\"primary\" disabled={!!doAnyFilterSet && !this.props.schema.allowAddByFilter} onClick={this.onAdd}>\n <AddIcon />\n </IconButton>\n </span>\n </Tooltip>\n </TableCell>\n </TableRow> : null}\n </TableBody>\n </Table>\n {!visibleValue.length && value.length ?\n <div className={classes.filteredOut}>\n <Typography className={classes.title} variant=\"h6\" id=\"tableTitle\" component=\"div\">\n {I18n.t('ra_All items are filtered out')}\n <IconButton\n size=\"small\"\n onClick={e => this.applyFilter(true)}\n >\n <CloseIcon />\n </IconButton>\n </Typography>\n </div> : null}\n </TableContainer>\n {schema.help ? <FormHelperText>{this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}</FormHelperText> : null}\n </Paper>;\n }\n}\n\nConfigTable.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigTable);\n"],"mappings":"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"}
@@ -66,10 +66,7 @@ var ConfigText = /*#__PURE__*/function (_ConfigGeneric) {
66
66
 
67
67
  this.setState({
68
68
  value: value,
69
- tempValue: {
70
- value: value,
71
- ts: Date.now()
72
- }
69
+ oldValue: value
73
70
  });
74
71
  }
75
72
  }, {
@@ -79,13 +76,13 @@ var ConfigText = /*#__PURE__*/function (_ConfigGeneric) {
79
76
 
80
77
  var isIndeterminate = Array.isArray(this.state.value) || this.state.value === _ConfigGeneric2["default"].DIFFERENT_VALUE;
81
78
 
82
- if (this.state.tempValue.value !== this.state.value) {
79
+ if (this.state.oldValue !== null && this.state.oldValue !== undefined) {
83
80
  this.updateTimeout && clearTimeout(this.updateTimeout);
84
81
  this.updateTimeout = setTimeout(function () {
85
82
  _this.updateTimeout = null;
86
83
 
87
84
  _this.setState({
88
- value: _this.state.tempValue.value
85
+ oldValue: null
89
86
  });
90
87
  }, 30);
91
88
  } else if (this.updateTimeout) {
@@ -144,7 +141,8 @@ var ConfigText = /*#__PURE__*/function (_ConfigGeneric) {
144
141
  var value = e.target.value;
145
142
 
146
143
  _this.setState({
147
- value: value
144
+ value: value,
145
+ oldValue: _this.state.value
148
146
  }, function () {
149
147
  return _this.onChange(_this.props.attr, _this.props.schema.trim === false ? value : (value || '').trim());
150
148
  });
@@ -160,12 +158,17 @@ var ConfigText = /*#__PURE__*/function (_ConfigGeneric) {
160
158
  value: function getDerivedStateFromProps(props, state) {
161
159
  var value = _ConfigGeneric2["default"].getValue(props.data, props.attr);
162
160
 
163
- if (value === null || value === undefined || value.toString().trim() !== (state.tempValue || '').toString().trim()) {
161
+ if (value !== null && value !== undefined) {
162
+ if (props.schema.trim !== false) {
163
+ value = value.toString().trim();
164
+ } else {
165
+ value = value.toString();
166
+ }
167
+ }
168
+
169
+ if (value === null || value === undefined || value !== state.value && value !== state.oldValue) {
164
170
  return {
165
- tempValue: {
166
- value: value,
167
- ts: Date.now()
168
- }
171
+ value: value
169
172
  };
170
173
  } else {
171
174
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigText.js","names":["styles","theme","indeterminate","opacity","ConfigText","value","ConfigGeneric","getValue","props","data","attr","setState","tempValue","ts","Date","now","error","disabled","defaultValue","isIndeterminate","Array","isArray","state","DIFFERENT_VALUE","updateTimeout","clearTimeout","setTimeout","arr","map","item","label","toString","unshift","I18n","t","DIFFERENT_LABEL","classes","option","_","onChange","params","getText","schema","placeholder","renderHelp","help","helpLink","noTranslation","undefined","maxLength","max","e","target","trim","propTypes","socket","PropTypes","object","isRequired","themeType","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigText.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport { Autocomplete, TextField } from '@mui/material';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n indeterminate: {\n opacity: 0.5\n }\n});\n\nclass ConfigText extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value, tempValue: { value, ts: Date.now() } });\n }\n\n static getDerivedStateFromProps(props, state) {\n const value = ConfigGeneric.getValue(props.data, props.attr);\n if (value === null || value === undefined || value.toString().trim() !== (state.tempValue || '').toString().trim()) {\n return { tempValue: { value, ts: Date.now() } };\n } else {\n return null;\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n let isIndeterminate = Array.isArray(this.state.value) || this.state.value === ConfigGeneric.DIFFERENT_VALUE;\n\n if (this.state.tempValue.value !== this.state.value) {\n this.updateTimeout && clearTimeout(this.updateTimeout);\n this.updateTimeout = setTimeout(() => {\n this.updateTimeout = null;\n this.setState({ value: this.state.tempValue.value });\n }, 30)\n } else if (this.updateTimeout) {\n clearTimeout(this.updateTimeout);\n this.updateTimeout = null;\n }\n\n if (isIndeterminate) {\n const arr = [...this.state.value].map(item => ({label: item.toString(), value: item}));\n arr.unshift({label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE});\n\n return <Autocomplete\n className={this.props.classes.indeterminate}\n fullWidth\n value={arr[0]}\n getOptionSelected={(option, value) => option.label === value.label}\n onChange={(_, value) =>\n this.onChange(this.props.attr, value ? value.value : '')}\n options={arr}\n getOptionLabel={option => option.label}\n renderInput={params => <TextField\n variant=\"standard\"\n {...params}\n error={!!error}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n disabled={!!disabled}\n />}\n />;\n } else {\n return <TextField\n variant=\"standard\"\n fullWidth\n value={this.state.value === null || this.state.value === undefined ? '' : this.state.value}\n error={!!error}\n disabled={!!disabled}\n inputProps={{maxLength: this.props.schema.maxLength || this.props.schema.max || undefined}}\n onChange={e => {\n const value = e.target.value;\n this.setState({value}, () =>\n this.onChange(this.props.attr, this.props.schema.trim === false ? value : (value || '').trim()));\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />;\n }\n }\n}\n\nConfigText.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigText);"],"mappings":"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"}
1
+ {"version":3,"file":"ConfigText.js","names":["styles","theme","indeterminate","opacity","ConfigText","value","ConfigGeneric","getValue","props","data","attr","setState","oldValue","error","disabled","defaultValue","isIndeterminate","Array","isArray","state","DIFFERENT_VALUE","undefined","updateTimeout","clearTimeout","setTimeout","arr","map","item","label","toString","unshift","I18n","t","DIFFERENT_LABEL","classes","option","_","onChange","params","getText","schema","placeholder","renderHelp","help","helpLink","noTranslation","maxLength","max","e","target","trim","propTypes","socket","PropTypes","object","isRequired","themeType","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigText.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport { Autocomplete, TextField } from '@mui/material';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n indeterminate: {\n opacity: 0.5\n }\n});\n\nclass ConfigText extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value, oldValue: value });\n }\n\n static getDerivedStateFromProps(props, state) {\n let value = ConfigGeneric.getValue(props.data, props.attr);\n if (value !== null && value !== undefined) {\n if (props.schema.trim !== false) {\n value = value.toString().trim();\n } else {\n value = value.toString();\n }\n }\n\n if (value === null || value === undefined || (value !== state.value && value !== state.oldValue)) {\n return { value };\n } else {\n return null;\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n let isIndeterminate = Array.isArray(this.state.value) || this.state.value === ConfigGeneric.DIFFERENT_VALUE;\n\n if (this.state.oldValue !== null && this.state.oldValue !== undefined) {\n this.updateTimeout && clearTimeout(this.updateTimeout);\n this.updateTimeout = setTimeout(() => {\n this.updateTimeout = null;\n this.setState({ oldValue: null });\n }, 30);\n } else if (this.updateTimeout) {\n clearTimeout(this.updateTimeout);\n this.updateTimeout = null;\n }\n\n if (isIndeterminate) {\n const arr = [...this.state.value].map(item => ({label: item.toString(), value: item}));\n arr.unshift({ label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE });\n\n return <Autocomplete\n className={this.props.classes.indeterminate}\n fullWidth\n value={arr[0]}\n getOptionSelected={(option, value) => option.label === value.label}\n onChange={(_, value) =>\n this.onChange(this.props.attr, value ? value.value : '')}\n options={arr}\n getOptionLabel={option => option.label}\n renderInput={params => <TextField\n variant=\"standard\"\n {...params}\n error={!!error}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n disabled={!!disabled}\n />}\n />;\n } else {\n return <TextField\n variant=\"standard\"\n fullWidth\n value={this.state.value === null || this.state.value === undefined ? '' : this.state.value}\n error={!!error}\n disabled={!!disabled}\n inputProps={{maxLength: this.props.schema.maxLength || this.props.schema.max || undefined}}\n onChange={e => {\n const value = e.target.value;\n this.setState({ value, oldValue: this.state.value }, () =>\n this.onChange(this.props.attr, this.props.schema.trim === false ? value : (value || '').trim()));\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />;\n }\n }\n}\n\nConfigText.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigText);"],"mappings":"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"}
@@ -89,7 +89,7 @@ var JsonConfigComponent = /*#__PURE__*/function (_Component) {
89
89
  cb && cb();
90
90
  } else {
91
91
  if (data) {
92
- var state = {
92
+ var newState = {
93
93
  data: data
94
94
  };
95
95
  var _data = {}; // remove all attributes starting with "_"
@@ -97,12 +97,10 @@ var JsonConfigComponent = /*#__PURE__*/function (_Component) {
97
97
  Object.keys(data).forEach(function (attr) {
98
98
  return !attr.startsWith('_') && (_data[attr] = data[attr]);
99
99
  });
100
- state.changed = JSON.stringify(_data) !== _this.state.originalData;
100
+ newState.changed = JSON.stringify(_data) !== _this.state.originalData;
101
101
 
102
- _this.setState({
103
- state: state
104
- }, function () {
105
- _this.props.onChange(_data, state.changed, saveConfig);
102
+ _this.setState(newState, function () {
103
+ _this.props.onChange(_data, newState.changed, saveConfig);
106
104
 
107
105
  cb && cb();
108
106
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["styles","theme","root","width","height","JsonConfigComponent","props","commandRunning","setState","id","state","val","alive","data","value","cb","saveConfig","onValueChange","_data","Object","keys","forEach","attr","startsWith","changed","JSON","stringify","originalData","onChange","error","errors","parse","onError","length","forceUpdate","Array","isArray","a","forceUpdateHandlers","updateData","systemConfig","schema","buildDependencies","readData","custom","common","Promise","resolve","socket","getObject","adapterName","instance","then","obj","readSettings","getCompactSystemConfig","getState","subscribeState","onAlive","_list","items","flatten","attrs","confirm","alsoDependsOn","dep","console","warn","replace","confirmDependsOn","depObj","cancel","push","onChangeDependsOn","hidden","hiddenDependsOn","label","labelDependsOn","help","helpDependsOn","item","type","onCommandRunning","themeType","themeName","customs","dateFormat","isFloatComma","multiEdit","imagePrefix","customObj","instanceObj","changeLanguage","forceAttrUpdate","registerOnForceUpdate","classes","renderItem","i18n","lang","I18n","getLanguage","path","fileExists","exists","fileName","readFile","json","file","undefined","extendTranslations","e","Component","propTypes","PropTypes","object","isRequired","string","number","bool","style","className","func","withStyles"],"sources":["JsonConfigComponent/index.jsx"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport LinearProgress from '@mui/material/LinearProgress';\n\nimport I18n from '../../i18n';\n\nimport ConfigTabs from './ConfigTabs';\nimport ConfigPanel from './ConfigPanel';\n\nconst styles = theme => ({\n root: {\n width: '100%',\n height: '100%'\n }\n});\n\nclass JsonConfigComponent extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n originalData: JSON.stringify(this.props.data),\n changed: false,\n errors: {\n\n },\n updateData: this.props.updateData,\n systemConfig: null,\n alive: false,\n commandRunning: false,\n schema: JSON.parse(JSON.stringify(this.props.schema))\n };\n\n this.forceUpdateHandlers = {};\n\n this.buildDependencies(this.state.schema);\n\n this.readData();\n }\n\n static getDerivedStateFromProps(props, state) {\n if (props.updateData !== state.updateData) {\n return {\n updateData: props.updateData,\n originalData: JSON.stringify(props.data),\n schema: JSON.parse(JSON.stringify(props.schema)),\n };\n } else {\n return null;\n }\n }\n\n static loadI18n(socket, i18n, adapterName) {\n if (i18n === true || (i18n && typeof i18n === 'string')) {\n const lang = I18n.getLanguage();\n const path = typeof i18n === 'string' ? i18n : 'i18n';\n return socket.fileExists(adapterName + '.admin', `${path}/${lang}.json`)\n .then(exists => {\n if (exists) {\n return `${path}/${lang}.json`;\n } else {\n return socket.fileExists(adapterName + '.admin', `${path}/${lang}/translations.json`)\n .then(exists =>\n exists ? `${path}/${lang}/translations.json` : '')\n }\n })\n .then(fileName => {\n if (fileName) {\n return socket.readFile(adapterName + '.admin', fileName)\n .then(json => {\n if (json.file !== undefined) {\n json = json.file;\n }\n try {\n json = JSON.parse(json);\n // apply file to I18n\n I18n.extendTranslations(json, lang);\n } catch (e) {\n console.error(`Cannot parse language file \"${adapterName}.admin/${fileName}: ${e}`);\n }\n })\n } else {\n console.warn(`Cannot find i18n for ${adapterName} / ${fileName}`);\n return Promise.resolve();\n }\n });\n } else if (i18n && typeof i18n === 'object') {\n I18n.extendTranslations(i18n);\n return Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n\n onCommandRunning = commandRunning => this.setState( {commandRunning});\n\n readSettings() {\n if ((this.props.custom || this.props.common) && this.props.data) {\n return Promise.resolve();\n } else {\n return this.props.socket.getObject(`system.adapter.${this.props.adapterName}.${this.props.instance}`)\n .then(obj => this.setState({common: obj.common, data: this.props.data || obj.native}));\n }\n }\n\n readData() {\n this.readSettings()\n .then(() => this.props.socket.getCompactSystemConfig())\n .then(systemConfig =>\n this.props.socket.getState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`)\n .then(state => {\n if (this.props.custom) {\n this.setState({systemConfig: systemConfig.common, alive: !!(state && state.val)});\n } else {\n this.setState({systemConfig: systemConfig.common, alive: !!(state && state.val)}, () =>\n this.props.socket.subscribeState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`, this.onAlive));\n }\n }));\n }\n\n onAlive = (id, state) => {\n if ((state?.val || false) !== this.state.alive) {\n this.setState({alive: state?.val || false});\n }\n }\n\n onChange = (data, value, cb, saveConfig) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(data, value, saveConfig);\n cb && cb();\n } else {\n if (data) {\n const state = { data };\n\n const _data = {};\n // remove all attributes starting with \"_\"\n Object.keys(data).forEach(attr => !attr.startsWith('_') && (_data[attr] = data[attr]));\n\n state.changed = JSON.stringify(_data) !== this.state.originalData;\n\n this.setState({ state }, () => {\n this.props.onChange(_data, state.changed, saveConfig);\n cb && cb();\n });\n } else if (saveConfig) {\n this.props.onChange(null, null, saveConfig);\n }\n }\n }\n\n onError = (attr, error) => {\n const errors = JSON.parse(JSON.stringify(this.state.errors));\n if (error) {\n errors[attr] = error;\n } else {\n delete errors[attr];\n }\n\n if (JSON.stringify(errors) !== JSON.parse(JSON.stringify(this.state.errors))) {\n this.setState({errors}, () =>\n this.props.onError(!!Object.keys(this.state.errors).length));\n }\n }\n\n flatten(schema, _list) {\n _list = _list || {};\n if (schema.items) {\n Object.keys(schema.items).forEach(attr => {\n _list[attr] = schema.items[attr];\n this.flatten(schema.items[attr], _list);\n });\n }\n\n return _list;\n }\n\n buildDependencies(schema) {\n const attrs = this.flatten(schema);\n Object.keys(attrs).forEach(attr => {\n if (attrs[attr].confirm?.alsoDependsOn) {\n attrs[attr].confirm?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].confirmDependsOn = attrs[dep].confirmDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n if (depObj.confirm) {\n depObj.confirm.cancel = 'Undo';\n }\n\n attrs[dep].confirmDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].onChange?.alsoDependsOn) {\n attrs[attr].onChange?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].onChangeDependsOn = attrs[dep].onChangeDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].onChangeDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].hidden?.alsoDependsOn) {\n attrs[attr].hidden?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].hiddenDependsOn = attrs[dep].hiddenDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].hiddenDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].label?.alsoDependsOn) {\n attrs[attr].label?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].labelDependsOn = attrs[dep].labelDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].labelDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].help?.alsoDependsOn) {\n attrs[attr].help?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].helpDependsOn = attrs[dep].helpDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].helpDependsOn.push(depObj);\n }\n });\n }\n });\n }\n\n renderItem(item) {\n if (item.type === 'tabs') {\n return <ConfigTabs\n onCommandRunning={this.onCommandRunning}\n commandRunning={this.state.commandRunning}\n socket={this.props.socket}\n adapterName={this.props.adapterName}\n instance={this.props.instance}\n common={this.props.common}\n alive={this.state.alive}\n themeType={this.props.themeType}\n themeName={this.props.themeName}\n data={this.props.data}\n originalData={JSON.parse(this.state.originalData)}\n schema={item}\n systemConfig={this.state.systemConfig}\n customs={this.props.customs}\n dateFormat={this.props.dateFormat}\n isFloatComma={this.props.isFloatComma}\n multiEdit={this.props.multiEdit}\n imagePrefix={this.props.imagePrefix}\n\n custom={this.props.custom}\n customObj={this.props.customObj}\n instanceObj={this.props.instanceObj}\n\n changeLanguage={this.changeLanguage}\n forceUpdate={this.forceAttrUpdate}\n registerOnForceUpdate={this.registerOnForceUpdate}\n\n onChange={this.onChange}\n onError={(attr, error) => this.onError(attr, error)}\n />;\n } else if (item.type === 'panel' || !item.type) {\n return <ConfigPanel\n index={1000}\n isParentTab={true}\n onCommandRunning={this.onCommandRunning}\n commandRunning={this.state.commandRunning}\n socket={this.props.socket}\n adapterName={this.props.adapterName}\n instance={this.props.instance}\n common={this.props.common}\n alive={this.state.alive}\n themeType={this.props.themeType}\n themeName={this.props.themeName}\n data={this.props.data}\n originalData={JSON.parse(this.state.originalData)}\n schema={item}\n systemConfig={this.state.systemConfig}\n customs={this.props.customs}\n dateFormat={this.props.dateFormat}\n isFloatComma={this.props.isFloatComma}\n multiEdit={this.props.multiEdit}\n imagePrefix={this.props.imagePrefix}\n\n custom={this.props.custom}\n customObj={this.props.customObj}\n instanceObj={this.props.instanceObj}\n\n changeLanguage={this.changeLanguage}\n forceUpdate={this.forceAttrUpdate}\n registerOnForceUpdate={this.registerOnForceUpdate}\n\n onChange={this.onChange}\n onError={(attr, error) => this.onError(attr, error)}\n />;\n }\n }\n\n changeLanguage = () => {\n this.forceUpdate();\n }\n\n forceAttrUpdate = (attr, data) => {\n if (Array.isArray(attr)) {\n attr.forEach(a =>\n this.forceUpdateHandlers[a] && this.forceUpdateHandlers[a](data));\n } else {\n if (this.forceUpdateHandlers[attr]) {\n this.forceUpdateHandlers[attr](data);\n }\n }\n }\n\n registerOnForceUpdate = (attr, cb) => {\n if (cb) {\n this.forceUpdateHandlers[attr] = cb;\n } else if (this.forceUpdateHandlers[attr]) {\n delete this.forceUpdateHandlers[attr];\n }\n }\n\n render() {\n if (!this.state.systemConfig) {\n return <LinearProgress />;\n }\n\n return <div className={this.props.classes.root}>\n {this.renderItem(this.state.schema)}\n </div>;\n }\n}\n\nJsonConfigComponent.propTypes = {\n socket: PropTypes.object.isRequired,\n\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n common: PropTypes.object,\n customs: PropTypes.object, // custom components\n\n custom: PropTypes.bool, // is the customs settings must be shown\n customObj: PropTypes.object,\n multiEdit: PropTypes.bool, // set if user edits more than one object simultaneously\n instanceObj: PropTypes.object,\n dateFormat: PropTypes.string,\n isFloatComma: PropTypes.bool,\n imagePrefix: PropTypes.string,\n\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n updateData: PropTypes.number,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n onValueChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(JsonConfigComponent);"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["styles","theme","root","width","height","JsonConfigComponent","props","commandRunning","setState","id","state","val","alive","data","value","cb","saveConfig","onValueChange","newState","_data","Object","keys","forEach","attr","startsWith","changed","JSON","stringify","originalData","onChange","error","errors","parse","onError","length","forceUpdate","Array","isArray","a","forceUpdateHandlers","updateData","systemConfig","schema","buildDependencies","readData","custom","common","Promise","resolve","socket","getObject","adapterName","instance","then","obj","readSettings","getCompactSystemConfig","getState","subscribeState","onAlive","_list","items","flatten","attrs","confirm","alsoDependsOn","dep","console","warn","replace","confirmDependsOn","depObj","cancel","push","onChangeDependsOn","hidden","hiddenDependsOn","label","labelDependsOn","help","helpDependsOn","item","type","onCommandRunning","themeType","themeName","customs","dateFormat","isFloatComma","multiEdit","imagePrefix","customObj","instanceObj","changeLanguage","forceAttrUpdate","registerOnForceUpdate","classes","renderItem","i18n","lang","I18n","getLanguage","path","fileExists","exists","fileName","readFile","json","file","undefined","extendTranslations","e","Component","propTypes","PropTypes","object","isRequired","string","number","bool","style","className","func","withStyles"],"sources":["JsonConfigComponent/index.jsx"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport LinearProgress from '@mui/material/LinearProgress';\n\nimport I18n from '../../i18n';\n\nimport ConfigTabs from './ConfigTabs';\nimport ConfigPanel from './ConfigPanel';\n\nconst styles = theme => ({\n root: {\n width: '100%',\n height: '100%'\n }\n});\n\nclass JsonConfigComponent extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n originalData: JSON.stringify(this.props.data),\n changed: false,\n errors: {\n\n },\n updateData: this.props.updateData,\n systemConfig: null,\n alive: false,\n commandRunning: false,\n schema: JSON.parse(JSON.stringify(this.props.schema))\n };\n\n this.forceUpdateHandlers = {};\n\n this.buildDependencies(this.state.schema);\n\n this.readData();\n }\n\n static getDerivedStateFromProps(props, state) {\n if (props.updateData !== state.updateData) {\n return {\n updateData: props.updateData,\n originalData: JSON.stringify(props.data),\n schema: JSON.parse(JSON.stringify(props.schema)),\n };\n } else {\n return null;\n }\n }\n\n static loadI18n(socket, i18n, adapterName) {\n if (i18n === true || (i18n && typeof i18n === 'string')) {\n const lang = I18n.getLanguage();\n const path = typeof i18n === 'string' ? i18n : 'i18n';\n return socket.fileExists(adapterName + '.admin', `${path}/${lang}.json`)\n .then(exists => {\n if (exists) {\n return `${path}/${lang}.json`;\n } else {\n return socket.fileExists(adapterName + '.admin', `${path}/${lang}/translations.json`)\n .then(exists =>\n exists ? `${path}/${lang}/translations.json` : '')\n }\n })\n .then(fileName => {\n if (fileName) {\n return socket.readFile(adapterName + '.admin', fileName)\n .then(json => {\n if (json.file !== undefined) {\n json = json.file;\n }\n try {\n json = JSON.parse(json);\n // apply file to I18n\n I18n.extendTranslations(json, lang);\n } catch (e) {\n console.error(`Cannot parse language file \"${adapterName}.admin/${fileName}: ${e}`);\n }\n })\n } else {\n console.warn(`Cannot find i18n for ${adapterName} / ${fileName}`);\n return Promise.resolve();\n }\n });\n } else if (i18n && typeof i18n === 'object') {\n I18n.extendTranslations(i18n);\n return Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n\n onCommandRunning = commandRunning => this.setState( {commandRunning});\n\n readSettings() {\n if ((this.props.custom || this.props.common) && this.props.data) {\n return Promise.resolve();\n } else {\n return this.props.socket.getObject(`system.adapter.${this.props.adapterName}.${this.props.instance}`)\n .then(obj => this.setState({common: obj.common, data: this.props.data || obj.native}));\n }\n }\n\n readData() {\n this.readSettings()\n .then(() => this.props.socket.getCompactSystemConfig())\n .then(systemConfig =>\n this.props.socket.getState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`)\n .then(state => {\n if (this.props.custom) {\n this.setState({systemConfig: systemConfig.common, alive: !!(state && state.val)});\n } else {\n this.setState({systemConfig: systemConfig.common, alive: !!(state && state.val)}, () =>\n this.props.socket.subscribeState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`, this.onAlive));\n }\n }));\n }\n\n onAlive = (id, state) => {\n if ((state?.val || false) !== this.state.alive) {\n this.setState({alive: state?.val || false});\n }\n }\n\n onChange = (data, value, cb, saveConfig) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(data, value, saveConfig);\n cb && cb();\n } else {\n if (data) {\n const newState = { data };\n\n const _data = {};\n // remove all attributes starting with \"_\"\n Object.keys(data).forEach(attr => !attr.startsWith('_') && (_data[attr] = data[attr]));\n\n newState.changed = JSON.stringify(_data) !== this.state.originalData;\n\n this.setState(newState, () => {\n this.props.onChange(_data, newState.changed, saveConfig);\n cb && cb();\n });\n } else if (saveConfig) {\n this.props.onChange(null, null, saveConfig);\n }\n }\n }\n\n onError = (attr, error) => {\n const errors = JSON.parse(JSON.stringify(this.state.errors));\n if (error) {\n errors[attr] = error;\n } else {\n delete errors[attr];\n }\n\n if (JSON.stringify(errors) !== JSON.parse(JSON.stringify(this.state.errors))) {\n this.setState({errors}, () =>\n this.props.onError(!!Object.keys(this.state.errors).length));\n }\n }\n\n flatten(schema, _list) {\n _list = _list || {};\n if (schema.items) {\n Object.keys(schema.items).forEach(attr => {\n _list[attr] = schema.items[attr];\n this.flatten(schema.items[attr], _list);\n });\n }\n\n return _list;\n }\n\n buildDependencies(schema) {\n const attrs = this.flatten(schema);\n Object.keys(attrs).forEach(attr => {\n if (attrs[attr].confirm?.alsoDependsOn) {\n attrs[attr].confirm?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].confirmDependsOn = attrs[dep].confirmDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n if (depObj.confirm) {\n depObj.confirm.cancel = 'Undo';\n }\n\n attrs[dep].confirmDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].onChange?.alsoDependsOn) {\n attrs[attr].onChange?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].onChangeDependsOn = attrs[dep].onChangeDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].onChangeDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].hidden?.alsoDependsOn) {\n attrs[attr].hidden?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].hiddenDependsOn = attrs[dep].hiddenDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].hiddenDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].label?.alsoDependsOn) {\n attrs[attr].label?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].labelDependsOn = attrs[dep].labelDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].labelDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].help?.alsoDependsOn) {\n attrs[attr].help?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].helpDependsOn = attrs[dep].helpDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].helpDependsOn.push(depObj);\n }\n });\n }\n });\n }\n\n renderItem(item) {\n if (item.type === 'tabs') {\n return <ConfigTabs\n onCommandRunning={this.onCommandRunning}\n commandRunning={this.state.commandRunning}\n socket={this.props.socket}\n adapterName={this.props.adapterName}\n instance={this.props.instance}\n common={this.props.common}\n alive={this.state.alive}\n themeType={this.props.themeType}\n themeName={this.props.themeName}\n data={this.props.data}\n originalData={JSON.parse(this.state.originalData)}\n schema={item}\n systemConfig={this.state.systemConfig}\n customs={this.props.customs}\n dateFormat={this.props.dateFormat}\n isFloatComma={this.props.isFloatComma}\n multiEdit={this.props.multiEdit}\n imagePrefix={this.props.imagePrefix}\n\n custom={this.props.custom}\n customObj={this.props.customObj}\n instanceObj={this.props.instanceObj}\n\n changeLanguage={this.changeLanguage}\n forceUpdate={this.forceAttrUpdate}\n registerOnForceUpdate={this.registerOnForceUpdate}\n\n onChange={this.onChange}\n onError={(attr, error) => this.onError(attr, error)}\n />;\n } else if (item.type === 'panel' || !item.type) {\n return <ConfigPanel\n index={1000}\n isParentTab={true}\n onCommandRunning={this.onCommandRunning}\n commandRunning={this.state.commandRunning}\n socket={this.props.socket}\n adapterName={this.props.adapterName}\n instance={this.props.instance}\n common={this.props.common}\n alive={this.state.alive}\n themeType={this.props.themeType}\n themeName={this.props.themeName}\n data={this.props.data}\n originalData={JSON.parse(this.state.originalData)}\n schema={item}\n systemConfig={this.state.systemConfig}\n customs={this.props.customs}\n dateFormat={this.props.dateFormat}\n isFloatComma={this.props.isFloatComma}\n multiEdit={this.props.multiEdit}\n imagePrefix={this.props.imagePrefix}\n\n custom={this.props.custom}\n customObj={this.props.customObj}\n instanceObj={this.props.instanceObj}\n\n changeLanguage={this.changeLanguage}\n forceUpdate={this.forceAttrUpdate}\n registerOnForceUpdate={this.registerOnForceUpdate}\n\n onChange={this.onChange}\n onError={(attr, error) => this.onError(attr, error)}\n />;\n }\n }\n\n changeLanguage = () => {\n this.forceUpdate();\n }\n\n forceAttrUpdate = (attr, data) => {\n if (Array.isArray(attr)) {\n attr.forEach(a =>\n this.forceUpdateHandlers[a] && this.forceUpdateHandlers[a](data));\n } else {\n if (this.forceUpdateHandlers[attr]) {\n this.forceUpdateHandlers[attr](data);\n }\n }\n }\n\n registerOnForceUpdate = (attr, cb) => {\n if (cb) {\n this.forceUpdateHandlers[attr] = cb;\n } else if (this.forceUpdateHandlers[attr]) {\n delete this.forceUpdateHandlers[attr];\n }\n }\n\n render() {\n if (!this.state.systemConfig) {\n return <LinearProgress />;\n }\n\n return <div className={this.props.classes.root}>\n {this.renderItem(this.state.schema)}\n </div>;\n }\n}\n\nJsonConfigComponent.propTypes = {\n socket: PropTypes.object.isRequired,\n\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n common: PropTypes.object,\n customs: PropTypes.object, // custom components\n\n custom: PropTypes.bool, // is the customs settings must be shown\n customObj: PropTypes.object,\n multiEdit: PropTypes.bool, // set if user edits more than one object simultaneously\n instanceObj: PropTypes.object,\n dateFormat: PropTypes.string,\n isFloatComma: PropTypes.bool,\n imagePrefix: PropTypes.string,\n\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n updateData: PropTypes.number,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n onValueChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(JsonConfigComponent);"],"mappings":"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"}