@iobroker/adapter-react-v5 3.1.33 → 3.1.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Components/404.js +0 -23
- package/Components/404.js.map +1 -1
- package/Components/ColorPicker.js +6 -37
- package/Components/ColorPicker.js.map +1 -1
- package/Components/ComplexCron.js +10 -84
- package/Components/ComplexCron.js.map +1 -1
- package/Components/CustomModal.js +29 -54
- package/Components/CustomModal.js.map +1 -1
- package/Components/FileBrowser.js +15 -265
- package/Components/FileBrowser.js.map +1 -1
- package/Components/FileViewer.js +7 -68
- package/Components/FileViewer.js.map +1 -1
- package/Components/Icon.d.ts +1 -1
- package/Components/Icon.js +2 -42
- package/Components/Icon.js.map +1 -1
- package/Components/IconPicker.js +6 -28
- package/Components/IconPicker.js.map +1 -1
- package/Components/IconSelector.js +3 -55
- package/Components/IconSelector.js.map +1 -1
- package/Components/Image.js +1 -38
- package/Components/Image.js.map +1 -1
- package/Components/JsonConfigComponent/ChipInput.js +66 -197
- package/Components/JsonConfigComponent/ChipInput.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigAlive.js +0 -31
- package/Components/JsonConfigComponent/ConfigAlive.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigAutocomplete.js +6 -39
- package/Components/JsonConfigComponent/ConfigAutocomplete.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js +6 -52
- package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCRON.js +5 -39
- package/Components/JsonConfigComponent/ConfigCRON.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCertificateSelect.js +4 -42
- package/Components/JsonConfigComponent/ConfigCertificateSelect.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCheckbox.js +0 -28
- package/Components/JsonConfigComponent/ConfigCheckbox.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigChip.js +4 -33
- package/Components/JsonConfigComponent/ConfigChip.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigColor.js +0 -34
- package/Components/JsonConfigComponent/ConfigColor.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCoordinates.js +0 -33
- package/Components/JsonConfigComponent/ConfigCoordinates.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCustom.js +14 -73
- package/Components/JsonConfigComponent/ConfigCustom.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigDatePicker.js +0 -25
- package/Components/JsonConfigComponent/ConfigDatePicker.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFile.js +0 -46
- package/Components/JsonConfigComponent/ConfigFile.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFileSelector.js +7 -126
- package/Components/JsonConfigComponent/ConfigFileSelector.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFunc.js +0 -34
- package/Components/JsonConfigComponent/ConfigFunc.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigGeneric.js +15 -110
- package/Components/JsonConfigComponent/ConfigGeneric.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigIP.js +2 -35
- package/Components/JsonConfigComponent/ConfigIP.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigImageUpload.js +4 -44
- package/Components/JsonConfigComponent/ConfigImageUpload.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigInstanceSelect.js +1 -59
- package/Components/JsonConfigComponent/ConfigInstanceSelect.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigJsonEditor.js +7 -40
- package/Components/JsonConfigComponent/ConfigJsonEditor.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigLanguage.js +2 -42
- package/Components/JsonConfigComponent/ConfigLanguage.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigNumber.js +2 -45
- package/Components/JsonConfigComponent/ConfigNumber.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigObjectId.js +6 -40
- package/Components/JsonConfigComponent/ConfigObjectId.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigPanel.js +7 -91
- package/Components/JsonConfigComponent/ConfigPanel.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigPassword.js +0 -42
- package/Components/JsonConfigComponent/ConfigPassword.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigPattern.js +0 -25
- package/Components/JsonConfigComponent/ConfigPattern.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigRoom.js +0 -34
- package/Components/JsonConfigComponent/ConfigRoom.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSelect.js +4 -34
- package/Components/JsonConfigComponent/ConfigSelect.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSelectSendTo.js +11 -67
- package/Components/JsonConfigComponent/ConfigSelectSendTo.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSendto.js +8 -91
- package/Components/JsonConfigComponent/ConfigSendto.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSetState.js +0 -55
- package/Components/JsonConfigComponent/ConfigSetState.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSlider.js +0 -28
- package/Components/JsonConfigComponent/ConfigSlider.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigStaticDivider.js +0 -21
- package/Components/JsonConfigComponent/ConfigStaticDivider.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigStaticHeader.js +0 -24
- package/Components/JsonConfigComponent/ConfigStaticHeader.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigStaticImage.js +0 -23
- package/Components/JsonConfigComponent/ConfigStaticImage.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigStaticText.js +0 -31
- package/Components/JsonConfigComponent/ConfigStaticText.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTable.js +13 -105
- package/Components/JsonConfigComponent/ConfigTable.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTabs.js +2 -35
- package/Components/JsonConfigComponent/ConfigTabs.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigText.js +0 -34
- package/Components/JsonConfigComponent/ConfigText.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTextSendTo.js +0 -37
- package/Components/JsonConfigComponent/ConfigTextSendTo.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTimePicker.js +0 -25
- package/Components/JsonConfigComponent/ConfigTimePicker.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTopic.js +0 -29
- package/Components/JsonConfigComponent/ConfigTopic.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigUser.js +2 -40
- package/Components/JsonConfigComponent/ConfigUser.js.map +1 -1
- package/Components/JsonConfigComponent/index.js +5 -81
- package/Components/JsonConfigComponent/index.js.map +1 -1
- package/Components/Loader.js +2 -20
- package/Components/Loader.js.map +1 -1
- package/Components/Loaders/PT.js +2 -20
- package/Components/Loaders/PT.js.map +1 -1
- package/Components/Loaders/Vendor.js +2 -21
- package/Components/Loaders/Vendor.js.map +1 -1
- package/Components/Logo.js +6 -39
- package/Components/Logo.js.map +1 -1
- package/Components/MDUtils.js +3 -27
- package/Components/MDUtils.js.map +1 -1
- package/Components/ObjectBrowser.d.ts +1 -1
- package/Components/ObjectBrowser.js +206 -794
- package/Components/ObjectBrowser.js.map +1 -1
- package/Components/Router.js +7 -31
- package/Components/Router.js.map +1 -1
- package/Components/SaveCloseButtons.js +2 -32
- package/Components/SaveCloseButtons.js.map +1 -1
- package/Components/Schedule.js +29 -251
- package/Components/Schedule.js.map +1 -1
- package/Components/SelectWithIcon.d.ts +1 -1
- package/Components/SelectWithIcon.js +0 -48
- package/Components/SelectWithIcon.js.map +1 -1
- package/Components/SimpleCron/cron2text.js +45 -91
- package/Components/SimpleCron/cron2text.js.map +1 -1
- package/Components/SimpleCron/cronText.js +0 -6
- package/Components/SimpleCron/cronText.js.map +1 -1
- package/Components/SimpleCron/index.js +19 -102
- package/Components/SimpleCron/index.js.map +1 -1
- package/Components/SimpleCron/jquery.cron.locale.js +44 -24
- package/Components/SimpleCron/jquery.cron.locale.js.map +1 -1
- package/Components/TabContainer.js +2 -23
- package/Components/TabContainer.js.map +1 -1
- package/Components/TabContent.js +2 -22
- package/Components/TabContent.js.map +1 -1
- package/Components/TabHeader.js +1 -17
- package/Components/TabHeader.js.map +1 -1
- package/Components/TableResize.js +6 -51
- package/Components/TableResize.js.map +1 -1
- package/Components/TextWithIcon.js +0 -20
- package/Components/TextWithIcon.js.map +1 -1
- package/Components/ToggleThemeMenu.js +5 -13
- package/Components/ToggleThemeMenu.js.map +1 -1
- package/Components/TreeTable.js +4 -121
- package/Components/TreeTable.js.map +1 -1
- package/Components/UploadImage.js +17 -60
- package/Components/UploadImage.js.map +1 -1
- package/Components/Utils.js +87 -263
- package/Components/Utils.js.map +1 -1
- package/Components/copy-to-clipboard.js +16 -38
- package/Components/copy-to-clipboard.js.map +1 -1
- package/Components/withWidth.js +2 -10
- package/Components/withWidth.js.map +1 -1
- package/Connection.d.ts +1 -0
- package/Connection.js +156 -527
- package/Connection.js.map +1 -1
- package/Dialogs/ComplexCron.js +0 -34
- package/Dialogs/ComplexCron.js.map +1 -1
- package/Dialogs/Confirm.js +1 -39
- package/Dialogs/Confirm.js.map +1 -1
- package/Dialogs/Cron.js +1 -37
- package/Dialogs/Cron.js.map +1 -1
- package/Dialogs/Error.d.ts +1 -1
- package/Dialogs/Error.js +2 -29
- package/Dialogs/Error.js.map +1 -1
- package/Dialogs/FileSelect.js +2 -36
- package/Dialogs/FileSelect.js.map +1 -1
- package/Dialogs/Message.js +2 -27
- package/Dialogs/Message.js.map +1 -1
- package/Dialogs/SelectID.d.ts +1 -1
- package/Dialogs/SelectID.js +3 -40
- package/Dialogs/SelectID.js.map +1 -1
- package/Dialogs/SimpleCron.js +1 -33
- package/Dialogs/SimpleCron.js.map +1 -1
- package/Dialogs/TextInput.js +2 -34
- package/Dialogs/TextInput.js.map +1 -1
- package/GenericApp.js +54 -150
- package/GenericApp.js.map +1 -1
- package/Prompt.js +0 -2
- package/Prompt.js.map +1 -1
- package/README.md +11 -4
- package/Theme.js +7 -22
- package/Theme.js.map +1 -1
- package/i18n.d.ts +2 -0
- package/i18n.js +14 -25
- package/i18n.js.map +1 -1
- package/icons/IconAdapter.d.ts +2 -2
- package/icons/IconAdapter.js +2 -6
- package/icons/IconAdapter.js.map +1 -1
- package/icons/IconAlias.d.ts +2 -2
- package/icons/IconAlias.js +2 -6
- package/icons/IconAlias.js.map +1 -1
- package/icons/IconChannel.d.ts +2 -2
- package/icons/IconChannel.js +2 -6
- package/icons/IconChannel.js.map +1 -1
- package/icons/IconClearFilter.d.ts +2 -2
- package/icons/IconClearFilter.js +0 -5
- package/icons/IconClearFilter.js.map +1 -1
- package/icons/IconClosed.d.ts +2 -2
- package/icons/IconClosed.js +0 -5
- package/icons/IconClosed.js.map +1 -1
- package/icons/IconCopy.d.ts +2 -2
- package/icons/IconCopy.js +0 -5
- package/icons/IconCopy.js.map +1 -1
- package/icons/IconDevice.d.ts +2 -2
- package/icons/IconDevice.js +0 -5
- package/icons/IconDevice.js.map +1 -1
- package/icons/IconDocument.d.ts +2 -2
- package/icons/IconDocument.js +0 -5
- package/icons/IconDocument.js.map +1 -1
- package/icons/IconDocumentReadOnly.d.ts +2 -2
- package/icons/IconDocumentReadOnly.js +0 -5
- package/icons/IconDocumentReadOnly.js.map +1 -1
- package/icons/IconExpert.d.ts +2 -2
- package/icons/IconExpert.js +0 -5
- package/icons/IconExpert.js.map +1 -1
- package/icons/IconFx.d.ts +2 -2
- package/icons/IconFx.js +0 -5
- package/icons/IconFx.js.map +1 -1
- package/icons/IconInstance.d.ts +2 -2
- package/icons/IconInstance.js +0 -5
- package/icons/IconInstance.js.map +1 -1
- package/icons/IconLogout.d.ts +2 -2
- package/icons/IconLogout.js +0 -5
- package/icons/IconLogout.js.map +1 -1
- package/icons/IconNoIcon.d.ts +2 -2
- package/icons/IconNoIcon.js +0 -5
- package/icons/IconNoIcon.js.map +1 -1
- package/icons/IconOpen.d.ts +2 -2
- package/icons/IconOpen.js +0 -5
- package/icons/IconOpen.js.map +1 -1
- package/icons/IconState.d.ts +2 -2
- package/icons/IconState.js +0 -6
- package/icons/IconState.js.map +1 -1
- package/package.json +15 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigUser.js","names":["styles","theme","fullWidth","width","icon","height","marginRight","ConfigUser","props","socket","getUsers","then","users","_users","lang","I18n","getLanguage","schema","forEach","user","_id","color","common","name","Utils","getObjectNameFromObj","replace","setState","error","disabled","defaultValue","value","ConfigGeneric","getValue","data","attr","classes","getText","label","val","state","undefined","backgroundColor","getInvertedColor","themeType","e","onChange","target","Object","keys","map","id","help","renderHelp","helpLink","noTranslation","propTypes","PropTypes","object","isRequired","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigUser.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\n\nimport Icon from '../Icon';\nimport I18n from '../../i18n';\nimport Utils from '../Utils';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n icon: {\n width: 16,\n height: 16,\n marginRight: 8\n }\n});\n\nclass ConfigUser extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n this.props.socket.getUsers()\n .then(users => {\n const _users = {};\n const lang = I18n.getLanguage();\n\n if (this.props.schema.short) {\n users.forEach(user => _users[user._id] = {\n color: user.common?.color,\n icon: user.common?.icon,\n name: Utils.getObjectNameFromObj(user, lang)\n });\n } else {\n users.forEach(user => _users[user._id.replace(/^system\\.user\\./, '')] = {\n color: user.common?.color,\n icon: user.common?.icon,\n name: Utils.getObjectNameFromObj(user, lang)\n });\n }\n\n this.setState({users: _users});\n });\n }\n\n renderItem(error, disabled, defaultValue) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n return <FormControl variant=\"standard\" className={this.props.classes.fullWidth}>\n <InputLabel>{this.getText(this.props.schema.label)}</InputLabel>\n <Select\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={value}\n renderValue={val => <span>{this.state.users && this.state.users[val]?.icon ? <Icon src={this.state.users && this.state.users[val]?.icon} className={this.props.classes.icon} /> : null}{(this.state.users && this.state.users[val]?.name) || val || ''}</span>}\n style={{ color: (this.state.users && this.state.users[value]?.color) || undefined, backgroundColor: Utils.getInvertedColor(this.state.users && this.state.users[value]?.color, this.props.themeType) }}\n onChange={e => this.onChange(this.props.attr, e.target.value)}\n >\n {this.state.users && Object.keys(this.state.users).map(id => <MenuItem style={{ color: this.state.users[id].color || undefined, backgroundColor: Utils.getInvertedColor(this.state.users[id].color, this.props.themeType) }} key={id} value={id}>\n {this.state.users[id].icon ? <Icon src={this.state.users[id].icon} className={this.props.classes.icon} /> : null}\n {this.state.users[id].name}\n </MenuItem>)}\n </Select>\n {this.props.schema.help ? <FormHelperText>{this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}</FormHelperText> : null}\n </FormControl>;\n }\n}\n\nConfigUser.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)(ConfigUser);"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ConfigUser.js","names":["styles","theme","fullWidth","width","icon","height","marginRight","ConfigUser","props","socket","getUsers","then","users","_users","lang","I18n","getLanguage","schema","forEach","user","_id","color","common","name","Utils","getObjectNameFromObj","replace","setState","error","disabled","defaultValue","value","ConfigGeneric","getValue","data","attr","classes","getText","label","val","state","undefined","backgroundColor","getInvertedColor","themeType","e","onChange","target","Object","keys","map","id","help","renderHelp","helpLink","noTranslation","propTypes","PropTypes","object","isRequired","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigUser.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\n\nimport Icon from '../Icon';\nimport I18n from '../../i18n';\nimport Utils from '../Utils';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n icon: {\n width: 16,\n height: 16,\n marginRight: 8\n }\n});\n\nclass ConfigUser extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n this.props.socket.getUsers()\n .then(users => {\n const _users = {};\n const lang = I18n.getLanguage();\n\n if (this.props.schema.short) {\n users.forEach(user => _users[user._id] = {\n color: user.common?.color,\n icon: user.common?.icon,\n name: Utils.getObjectNameFromObj(user, lang)\n });\n } else {\n users.forEach(user => _users[user._id.replace(/^system\\.user\\./, '')] = {\n color: user.common?.color,\n icon: user.common?.icon,\n name: Utils.getObjectNameFromObj(user, lang)\n });\n }\n\n this.setState({users: _users});\n });\n }\n\n renderItem(error, disabled, defaultValue) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n return <FormControl variant=\"standard\" className={this.props.classes.fullWidth}>\n <InputLabel>{this.getText(this.props.schema.label)}</InputLabel>\n <Select\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={value}\n renderValue={val => <span>{this.state.users && this.state.users[val]?.icon ? <Icon src={this.state.users && this.state.users[val]?.icon} className={this.props.classes.icon} /> : null}{(this.state.users && this.state.users[val]?.name) || val || ''}</span>}\n style={{ color: (this.state.users && this.state.users[value]?.color) || undefined, backgroundColor: Utils.getInvertedColor(this.state.users && this.state.users[value]?.color, this.props.themeType) }}\n onChange={e => this.onChange(this.props.attr, e.target.value)}\n >\n {this.state.users && Object.keys(this.state.users).map(id => <MenuItem style={{ color: this.state.users[id].color || undefined, backgroundColor: Utils.getInvertedColor(this.state.users[id].color, this.props.themeType) }} key={id} value={id}>\n {this.state.users[id].icon ? <Icon src={this.state.users[id].icon} className={this.props.classes.icon} /> : null}\n {this.state.users[id].name}\n </MenuItem>)}\n </Select>\n {this.props.schema.help ? <FormHelperText>{this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}</FormHelperText> : null}\n </FormControl>;\n }\n}\n\nConfigUser.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)(ConfigUser);"],"mappings":";;;;;;;;;;;;;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAA4C;AAAA;AAE5C,IAAMA,MAAM,GAAG,SAATA,MAAM,CAAGC,KAAK;EAAA,OAAK;IACrBC,SAAS,EAAE;MACPC,KAAK,EAAE;IACX,CAAC;IACDC,IAAI,EAAE;MACFD,KAAK,EAAE,EAAE;MACTE,MAAM,EAAE,EAAE;MACVC,WAAW,EAAE;IACjB;EACJ,CAAC;AAAA,CAAC;AAAC,IAEGC,UAAU;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA,OACZ,6BAAoB;MAAA;MAChB;MACA,IAAI,CAACC,KAAK,CAACC,MAAM,CAACC,QAAQ,EAAE,CACvBC,IAAI,CAAC,UAAAC,KAAK,EAAI;QACX,IAAMC,MAAM,GAAG,CAAC,CAAC;QACjB,IAAMC,IAAI,GAAGC,gBAAI,CAACC,WAAW,EAAE;QAE/B,IAAI,KAAI,CAACR,KAAK,CAACS,MAAM,SAAM,EAAE;UACzBL,KAAK,CAACM,OAAO,CAAC,UAAAC,IAAI;YAAA;YAAA,OAAIN,MAAM,CAACM,IAAI,CAACC,GAAG,CAAC,GAAG;cACrCC,KAAK,kBAAEF,IAAI,CAACG,MAAM,iDAAX,aAAaD,KAAK;cACzBjB,IAAI,mBAAEe,IAAI,CAACG,MAAM,kDAAX,cAAalB,IAAI;cACvBmB,IAAI,EAAEC,iBAAK,CAACC,oBAAoB,CAACN,IAAI,EAAEL,IAAI;YAC/C,CAAC;UAAA,EAAC;QACN,CAAC,MAAM;UACHF,KAAK,CAACM,OAAO,CAAC,UAAAC,IAAI;YAAA;YAAA,OAAIN,MAAM,CAACM,IAAI,CAACC,GAAG,CAACM,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,GAAG;cACpEL,KAAK,mBAAEF,IAAI,CAACG,MAAM,kDAAX,cAAaD,KAAK;cACzBjB,IAAI,mBAAEe,IAAI,CAACG,MAAM,kDAAX,cAAalB,IAAI;cACvBmB,IAAI,EAAEC,iBAAK,CAACC,oBAAoB,CAACN,IAAI,EAAEL,IAAI;YAC/C,CAAC;UAAA,EAAC;QACN;QAEA,KAAI,CAACa,QAAQ,CAAC;UAACf,KAAK,EAAEC;QAAM,CAAC,CAAC;MAClC,CAAC,CAAC;IACV;EAAC;IAAA;IAAA,OAED,oBAAWe,KAAK,EAAEC,QAAQ,EAAEC,YAAY,EAAE;MAAA;QAAA;QAAA;MACtC,IAAMC,KAAK,GAAGC,0BAAa,CAACC,QAAQ,CAAC,IAAI,CAACzB,KAAK,CAAC0B,IAAI,EAAE,IAAI,CAAC1B,KAAK,CAAC2B,IAAI,CAAC;MAEtE,oBAAO,gCAAC,uBAAW;QAAC,OAAO,EAAC,UAAU;QAAC,SAAS,EAAE,IAAI,CAAC3B,KAAK,CAAC4B,OAAO,CAAClC;MAAU,gBAC3E,gCAAC,sBAAU,QAAE,IAAI,CAACmC,OAAO,CAAC,IAAI,CAAC7B,KAAK,CAACS,MAAM,CAACqB,KAAK,CAAC,CAAc,eAChE,gCAAC,kBAAM;QACH,OAAO,EAAC,UAAU;QAClB,KAAK,EAAE,CAAC,CAACV,KAAM;QACf,QAAQ,EAAE,CAAC,CAACC,QAAS;QACrB,KAAK,EAAEE,KAAM;QACb,WAAW,EAAE,qBAAAQ,GAAG;UAAA;UAAA,oBAAI,8CAAO,MAAI,CAACC,KAAK,CAAC5B,KAAK,6BAAI,MAAI,CAAC4B,KAAK,CAAC5B,KAAK,CAAC2B,GAAG,CAAC,kDAArB,sBAAuBnC,IAAI,gBAAG,gCAAC,gBAAI;YAAC,GAAG,EAAE,MAAI,CAACoC,KAAK,CAAC5B,KAAK,+BAAI,MAAI,CAAC4B,KAAK,CAAC5B,KAAK,CAAC2B,GAAG,CAAC,2DAArB,uBAAuBnC,IAAI,CAAC;YAAC,SAAS,EAAE,MAAI,CAACI,KAAK,CAAC4B,OAAO,CAAChC;UAAK,EAAG,GAAG,IAAI,EAAG,MAAI,CAACoC,KAAK,CAAC5B,KAAK,+BAAI,MAAI,CAAC4B,KAAK,CAAC5B,KAAK,CAAC2B,GAAG,CAAC,2DAArB,uBAAuBhB,IAAI,KAAKgB,GAAG,IAAI,EAAE,CAAQ;QAAA,CAAC;QAC/P,KAAK,EAAE;UAAElB,KAAK,EAAG,IAAI,CAACmB,KAAK,CAAC5B,KAAK,8BAAI,IAAI,CAAC4B,KAAK,CAAC5B,KAAK,CAACmB,KAAK,CAAC,0DAAvB,sBAAyBV,KAAK,KAAKoB,SAAS;UAAEC,eAAe,EAAElB,iBAAK,CAACmB,gBAAgB,CAAC,IAAI,CAACH,KAAK,CAAC5B,KAAK,+BAAI,IAAI,CAAC4B,KAAK,CAAC5B,KAAK,CAACmB,KAAK,CAAC,2DAAvB,uBAAyBV,KAAK,GAAE,IAAI,CAACb,KAAK,CAACoC,SAAS;QAAE,CAAE;QACvM,QAAQ,EAAE,kBAAAC,CAAC;UAAA,OAAI,MAAI,CAACC,QAAQ,CAAC,MAAI,CAACtC,KAAK,CAAC2B,IAAI,EAAEU,CAAC,CAACE,MAAM,CAAChB,KAAK,CAAC;QAAA;MAAC,GAE7D,IAAI,CAACS,KAAK,CAAC5B,KAAK,IAAIoC,MAAM,CAACC,IAAI,CAAC,IAAI,CAACT,KAAK,CAAC5B,KAAK,CAAC,CAACsC,GAAG,CAAC,UAAAC,EAAE;QAAA,oBAAI,gCAAC,oBAAQ;UAAC,KAAK,EAAE;YAAE9B,KAAK,EAAE,MAAI,CAACmB,KAAK,CAAC5B,KAAK,CAACuC,EAAE,CAAC,CAAC9B,KAAK,IAAIoB,SAAS;YAAEC,eAAe,EAAElB,iBAAK,CAACmB,gBAAgB,CAAC,MAAI,CAACH,KAAK,CAAC5B,KAAK,CAACuC,EAAE,CAAC,CAAC9B,KAAK,EAAE,MAAI,CAACb,KAAK,CAACoC,SAAS;UAAE,CAAE;UAAC,GAAG,EAAEO,EAAG;UAAC,KAAK,EAAEA;QAAG,GAC3O,MAAI,CAACX,KAAK,CAAC5B,KAAK,CAACuC,EAAE,CAAC,CAAC/C,IAAI,gBAAG,gCAAC,gBAAI;UAAC,GAAG,EAAE,MAAI,CAACoC,KAAK,CAAC5B,KAAK,CAACuC,EAAE,CAAC,CAAC/C,IAAK;UAAC,SAAS,EAAE,MAAI,CAACI,KAAK,CAAC4B,OAAO,CAAChC;QAAK,EAAG,GAAG,IAAI,EAC/G,MAAI,CAACoC,KAAK,CAAC5B,KAAK,CAACuC,EAAE,CAAC,CAAC5B,IAAI,CACnB;MAAA,EAAC,CACP,EACR,IAAI,CAACf,KAAK,CAACS,MAAM,CAACmC,IAAI,gBAAG,gCAAC,0BAAc,QAAE,IAAI,CAACC,UAAU,CAAC,IAAI,CAAC7C,KAAK,CAACS,MAAM,CAACmC,IAAI,EAAE,IAAI,CAAC5C,KAAK,CAACS,MAAM,CAACqC,QAAQ,EAAE,IAAI,CAAC9C,KAAK,CAACS,MAAM,CAACsC,aAAa,CAAC,CAAkB,GAAG,IAAI,CAC9J;IAClB;EAAC;EAAA;AAAA,EA/CoBvB,0BAAa;AAkDtCzB,UAAU,CAACiD,SAAS,GAAG;EACnB/C,MAAM,EAAEgD,qBAAS,CAACC,MAAM,CAACC,UAAU;EACnCf,SAAS,EAAEa,qBAAS,CAACG,MAAM;EAC3BC,SAAS,EAAEJ,qBAAS,CAACG,MAAM;EAC3BE,KAAK,EAAEL,qBAAS,CAACC,MAAM;EACvBK,SAAS,EAAEN,qBAAS,CAACG,MAAM;EAC3B1B,IAAI,EAAEuB,qBAAS,CAACC,MAAM,CAACC,UAAU;EACjC1C,MAAM,EAAEwC,qBAAS,CAACC,MAAM;EACxBM,OAAO,EAAEP,qBAAS,CAACQ,IAAI;EACvBnB,QAAQ,EAAEW,qBAAS,CAACQ;AACxB,CAAC;AAAC,eAEa,IAAAC,kBAAU,EAAClE,MAAM,CAAC,CAACO,UAAU,CAAC;AAAA"}
|
|
@@ -1,56 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports["default"] = void 0;
|
|
11
|
-
|
|
12
9
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
13
|
-
|
|
14
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
-
|
|
16
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
-
|
|
18
12
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
19
|
-
|
|
20
13
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
21
|
-
|
|
22
14
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
23
|
-
|
|
24
15
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
25
|
-
|
|
26
16
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
27
|
-
|
|
28
17
|
var _react = _interopRequireWildcard(require("react"));
|
|
29
|
-
|
|
30
18
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
31
|
-
|
|
32
19
|
var _styles = require("@mui/styles");
|
|
33
|
-
|
|
34
20
|
var _LinearProgress = _interopRequireDefault(require("@mui/material/LinearProgress"));
|
|
35
|
-
|
|
36
21
|
var _i18n = _interopRequireDefault(require("../../i18n"));
|
|
37
|
-
|
|
38
22
|
var _ConfigTabs = _interopRequireDefault(require("./ConfigTabs"));
|
|
39
|
-
|
|
40
23
|
var _ConfigPanel = _interopRequireDefault(require("./ConfigPanel"));
|
|
41
|
-
|
|
42
24
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
43
|
-
|
|
44
25
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
45
|
-
|
|
46
26
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
47
|
-
|
|
48
27
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
49
|
-
|
|
50
28
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
51
|
-
|
|
52
29
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
53
|
-
|
|
54
30
|
var styles = function styles(theme) {
|
|
55
31
|
return {
|
|
56
32
|
root: {
|
|
@@ -59,15 +35,11 @@ var styles = function styles(theme) {
|
|
|
59
35
|
}
|
|
60
36
|
};
|
|
61
37
|
};
|
|
62
|
-
|
|
63
38
|
var JsonConfigComponent = /*#__PURE__*/function (_Component) {
|
|
64
39
|
(0, _inherits2["default"])(JsonConfigComponent, _Component);
|
|
65
|
-
|
|
66
40
|
var _super = _createSuper(JsonConfigComponent);
|
|
67
|
-
|
|
68
41
|
function JsonConfigComponent(props) {
|
|
69
42
|
var _this;
|
|
70
|
-
|
|
71
43
|
(0, _classCallCheck2["default"])(this, JsonConfigComponent);
|
|
72
44
|
_this = _super.call(this, props);
|
|
73
45
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onCommandRunning", function (commandRunning) {
|
|
@@ -85,23 +57,20 @@ var JsonConfigComponent = /*#__PURE__*/function (_Component) {
|
|
|
85
57
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChange", function (data, value, cb, saveConfig) {
|
|
86
58
|
if (_this.props.onValueChange) {
|
|
87
59
|
_this.props.onValueChange(data, value, saveConfig);
|
|
88
|
-
|
|
89
60
|
cb && cb();
|
|
90
61
|
} else {
|
|
91
62
|
if (data) {
|
|
92
63
|
var newState = {
|
|
93
64
|
data: data
|
|
94
65
|
};
|
|
95
|
-
var _data = {};
|
|
96
|
-
|
|
66
|
+
var _data = {};
|
|
67
|
+
// remove all attributes starting with "_"
|
|
97
68
|
Object.keys(data).forEach(function (attr) {
|
|
98
69
|
return !attr.startsWith('_') && (_data[attr] = data[attr]);
|
|
99
70
|
});
|
|
100
71
|
newState.changed = JSON.stringify(_data) !== _this.state.originalData;
|
|
101
|
-
|
|
102
72
|
_this.setState(newState, function () {
|
|
103
73
|
_this.props.onChange(_data, newState.changed, saveConfig);
|
|
104
|
-
|
|
105
74
|
cb && cb();
|
|
106
75
|
});
|
|
107
76
|
} else if (saveConfig) {
|
|
@@ -111,13 +80,11 @@ var JsonConfigComponent = /*#__PURE__*/function (_Component) {
|
|
|
111
80
|
});
|
|
112
81
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onError", function (attr, error) {
|
|
113
82
|
var errors = JSON.parse(JSON.stringify(_this.state.errors));
|
|
114
|
-
|
|
115
83
|
if (error) {
|
|
116
84
|
errors[attr] = error;
|
|
117
85
|
} else {
|
|
118
86
|
delete errors[attr];
|
|
119
87
|
}
|
|
120
|
-
|
|
121
88
|
if (JSON.stringify(errors) !== JSON.parse(JSON.stringify(_this.state.errors))) {
|
|
122
89
|
_this.setState({
|
|
123
90
|
errors: errors
|
|
@@ -158,19 +125,14 @@ var JsonConfigComponent = /*#__PURE__*/function (_Component) {
|
|
|
158
125
|
schema: JSON.parse(JSON.stringify(_this.props.schema))
|
|
159
126
|
};
|
|
160
127
|
_this.forceUpdateHandlers = {};
|
|
161
|
-
|
|
162
128
|
_this.buildDependencies(_this.state.schema);
|
|
163
|
-
|
|
164
129
|
_this.readData();
|
|
165
|
-
|
|
166
130
|
return _this;
|
|
167
131
|
}
|
|
168
|
-
|
|
169
132
|
(0, _createClass2["default"])(JsonConfigComponent, [{
|
|
170
133
|
key: "readSettings",
|
|
171
134
|
value: function readSettings() {
|
|
172
135
|
var _this2 = this;
|
|
173
|
-
|
|
174
136
|
if ((this.props.custom || this.props.common) && this.props.data) {
|
|
175
137
|
return Promise.resolve();
|
|
176
138
|
} else {
|
|
@@ -186,7 +148,6 @@ var JsonConfigComponent = /*#__PURE__*/function (_Component) {
|
|
|
186
148
|
key: "readData",
|
|
187
149
|
value: function readData() {
|
|
188
150
|
var _this3 = this;
|
|
189
|
-
|
|
190
151
|
this.readSettings().then(function () {
|
|
191
152
|
return _this3.props.socket.getCompactSystemConfig();
|
|
192
153
|
}).then(function (systemConfig) {
|
|
@@ -211,17 +172,13 @@ var JsonConfigComponent = /*#__PURE__*/function (_Component) {
|
|
|
211
172
|
key: "flatten",
|
|
212
173
|
value: function flatten(schema, _list) {
|
|
213
174
|
var _this4 = this;
|
|
214
|
-
|
|
215
175
|
_list = _list || {};
|
|
216
|
-
|
|
217
176
|
if (schema.items) {
|
|
218
177
|
Object.keys(schema.items).forEach(function (attr) {
|
|
219
178
|
_list[attr] = schema.items[attr];
|
|
220
|
-
|
|
221
179
|
_this4.flatten(schema.items[attr], _list);
|
|
222
180
|
});
|
|
223
181
|
}
|
|
224
|
-
|
|
225
182
|
return _list;
|
|
226
183
|
}
|
|
227
184
|
}, {
|
|
@@ -230,116 +187,90 @@ var JsonConfigComponent = /*#__PURE__*/function (_Component) {
|
|
|
230
187
|
var attrs = this.flatten(schema);
|
|
231
188
|
Object.keys(attrs).forEach(function (attr) {
|
|
232
189
|
var _attrs$attr$confirm, _attrs$attr$onChange, _attrs$attr$hidden, _attrs$attr$label, _attrs$attr$help;
|
|
233
|
-
|
|
234
190
|
if ((_attrs$attr$confirm = attrs[attr].confirm) !== null && _attrs$attr$confirm !== void 0 && _attrs$attr$confirm.alsoDependsOn) {
|
|
235
191
|
var _attrs$attr$confirm2;
|
|
236
|
-
|
|
237
192
|
(_attrs$attr$confirm2 = attrs[attr].confirm) === null || _attrs$attr$confirm2 === void 0 ? void 0 : _attrs$attr$confirm2.alsoDependsOn.forEach(function (dep) {
|
|
238
193
|
if (!attrs[dep]) {
|
|
239
194
|
console.error("[JsonConfigComponent] Attribute ".concat(dep, " does not exist!"));
|
|
240
|
-
|
|
241
195
|
if (dep.startsWith('data.')) {
|
|
242
196
|
console.warn("[JsonConfigComponent] please use \"".concat(dep.replace(/^data\./, ''), "\" instead of \"").concat(dep, "\""));
|
|
243
197
|
}
|
|
244
198
|
} else {
|
|
245
199
|
attrs[dep].confirmDependsOn = attrs[dep].confirmDependsOn || [];
|
|
246
|
-
|
|
247
200
|
var depObj = _objectSpread(_objectSpread({}, attrs[attr]), {}, {
|
|
248
201
|
attr: attr
|
|
249
202
|
});
|
|
250
|
-
|
|
251
203
|
if (depObj.confirm) {
|
|
252
204
|
depObj.confirm.cancel = 'Undo';
|
|
253
205
|
}
|
|
254
|
-
|
|
255
206
|
attrs[dep].confirmDependsOn.push(depObj);
|
|
256
207
|
}
|
|
257
208
|
});
|
|
258
209
|
}
|
|
259
|
-
|
|
260
210
|
if ((_attrs$attr$onChange = attrs[attr].onChange) !== null && _attrs$attr$onChange !== void 0 && _attrs$attr$onChange.alsoDependsOn) {
|
|
261
211
|
var _attrs$attr$onChange2;
|
|
262
|
-
|
|
263
212
|
(_attrs$attr$onChange2 = attrs[attr].onChange) === null || _attrs$attr$onChange2 === void 0 ? void 0 : _attrs$attr$onChange2.alsoDependsOn.forEach(function (dep) {
|
|
264
213
|
if (!attrs[dep]) {
|
|
265
214
|
console.error("[JsonConfigComponent] Attribute ".concat(dep, " does not exist!"));
|
|
266
|
-
|
|
267
215
|
if (dep.startsWith('data.')) {
|
|
268
216
|
console.warn("[JsonConfigComponent] please use \"".concat(dep.replace(/^data\./, ''), "\" instead of \"").concat(dep, "\""));
|
|
269
217
|
}
|
|
270
218
|
} else {
|
|
271
219
|
attrs[dep].onChangeDependsOn = attrs[dep].onChangeDependsOn || [];
|
|
272
|
-
|
|
273
220
|
var depObj = _objectSpread(_objectSpread({}, attrs[attr]), {}, {
|
|
274
221
|
attr: attr
|
|
275
222
|
});
|
|
276
|
-
|
|
277
223
|
attrs[dep].onChangeDependsOn.push(depObj);
|
|
278
224
|
}
|
|
279
225
|
});
|
|
280
226
|
}
|
|
281
|
-
|
|
282
227
|
if ((_attrs$attr$hidden = attrs[attr].hidden) !== null && _attrs$attr$hidden !== void 0 && _attrs$attr$hidden.alsoDependsOn) {
|
|
283
228
|
var _attrs$attr$hidden2;
|
|
284
|
-
|
|
285
229
|
(_attrs$attr$hidden2 = attrs[attr].hidden) === null || _attrs$attr$hidden2 === void 0 ? void 0 : _attrs$attr$hidden2.alsoDependsOn.forEach(function (dep) {
|
|
286
230
|
if (!attrs[dep]) {
|
|
287
231
|
console.error("[JsonConfigComponent] Attribute ".concat(dep, " does not exist!"));
|
|
288
|
-
|
|
289
232
|
if (dep.startsWith('data.')) {
|
|
290
233
|
console.warn("[JsonConfigComponent] please use \"".concat(dep.replace(/^data\./, ''), "\" instead of \"").concat(dep, "\""));
|
|
291
234
|
}
|
|
292
235
|
} else {
|
|
293
236
|
attrs[dep].hiddenDependsOn = attrs[dep].hiddenDependsOn || [];
|
|
294
|
-
|
|
295
237
|
var depObj = _objectSpread(_objectSpread({}, attrs[attr]), {}, {
|
|
296
238
|
attr: attr
|
|
297
239
|
});
|
|
298
|
-
|
|
299
240
|
attrs[dep].hiddenDependsOn.push(depObj);
|
|
300
241
|
}
|
|
301
242
|
});
|
|
302
243
|
}
|
|
303
|
-
|
|
304
244
|
if ((_attrs$attr$label = attrs[attr].label) !== null && _attrs$attr$label !== void 0 && _attrs$attr$label.alsoDependsOn) {
|
|
305
245
|
var _attrs$attr$label2;
|
|
306
|
-
|
|
307
246
|
(_attrs$attr$label2 = attrs[attr].label) === null || _attrs$attr$label2 === void 0 ? void 0 : _attrs$attr$label2.alsoDependsOn.forEach(function (dep) {
|
|
308
247
|
if (!attrs[dep]) {
|
|
309
248
|
console.error("[JsonConfigComponent] Attribute ".concat(dep, " does not exist!"));
|
|
310
|
-
|
|
311
249
|
if (dep.startsWith('data.')) {
|
|
312
250
|
console.warn("[JsonConfigComponent] please use \"".concat(dep.replace(/^data\./, ''), "\" instead of \"").concat(dep, "\""));
|
|
313
251
|
}
|
|
314
252
|
} else {
|
|
315
253
|
attrs[dep].labelDependsOn = attrs[dep].labelDependsOn || [];
|
|
316
|
-
|
|
317
254
|
var depObj = _objectSpread(_objectSpread({}, attrs[attr]), {}, {
|
|
318
255
|
attr: attr
|
|
319
256
|
});
|
|
320
|
-
|
|
321
257
|
attrs[dep].labelDependsOn.push(depObj);
|
|
322
258
|
}
|
|
323
259
|
});
|
|
324
260
|
}
|
|
325
|
-
|
|
326
261
|
if ((_attrs$attr$help = attrs[attr].help) !== null && _attrs$attr$help !== void 0 && _attrs$attr$help.alsoDependsOn) {
|
|
327
262
|
var _attrs$attr$help2;
|
|
328
|
-
|
|
329
263
|
(_attrs$attr$help2 = attrs[attr].help) === null || _attrs$attr$help2 === void 0 ? void 0 : _attrs$attr$help2.alsoDependsOn.forEach(function (dep) {
|
|
330
264
|
if (!attrs[dep]) {
|
|
331
265
|
console.error("[JsonConfigComponent] Attribute ".concat(dep, " does not exist!"));
|
|
332
|
-
|
|
333
266
|
if (dep.startsWith('data.')) {
|
|
334
267
|
console.warn("[JsonConfigComponent] please use \"".concat(dep.replace(/^data\./, ''), "\" instead of \"").concat(dep, "\""));
|
|
335
268
|
}
|
|
336
269
|
} else {
|
|
337
270
|
attrs[dep].helpDependsOn = attrs[dep].helpDependsOn || [];
|
|
338
|
-
|
|
339
271
|
var depObj = _objectSpread(_objectSpread({}, attrs[attr]), {}, {
|
|
340
272
|
attr: attr
|
|
341
273
|
});
|
|
342
|
-
|
|
343
274
|
attrs[dep].helpDependsOn.push(depObj);
|
|
344
275
|
}
|
|
345
276
|
});
|
|
@@ -350,7 +281,6 @@ var JsonConfigComponent = /*#__PURE__*/function (_Component) {
|
|
|
350
281
|
key: "renderItem",
|
|
351
282
|
value: function renderItem(item) {
|
|
352
283
|
var _this5 = this;
|
|
353
|
-
|
|
354
284
|
if (item.type === 'tabs') {
|
|
355
285
|
return /*#__PURE__*/_react["default"].createElement(_ConfigTabs["default"], {
|
|
356
286
|
onCommandRunning: this.onCommandRunning,
|
|
@@ -423,7 +353,6 @@ var JsonConfigComponent = /*#__PURE__*/function (_Component) {
|
|
|
423
353
|
if (!this.state.systemConfig) {
|
|
424
354
|
return /*#__PURE__*/_react["default"].createElement(_LinearProgress["default"], null);
|
|
425
355
|
}
|
|
426
|
-
|
|
427
356
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
428
357
|
className: this.props.classes.root
|
|
429
358
|
}, this.renderItem(this.state.schema));
|
|
@@ -446,7 +375,6 @@ var JsonConfigComponent = /*#__PURE__*/function (_Component) {
|
|
|
446
375
|
value: function loadI18n(socket, i18n, adapterName) {
|
|
447
376
|
if (i18n === true || i18n && typeof i18n === 'string') {
|
|
448
377
|
var lang = _i18n["default"].getLanguage();
|
|
449
|
-
|
|
450
378
|
var path = typeof i18n === 'string' ? i18n : 'i18n';
|
|
451
379
|
return socket.fileExists(adapterName + '.admin', "".concat(path, "/").concat(lang, ".json")).then(function (exists) {
|
|
452
380
|
if (exists) {
|
|
@@ -462,10 +390,9 @@ var JsonConfigComponent = /*#__PURE__*/function (_Component) {
|
|
|
462
390
|
if (json.file !== undefined) {
|
|
463
391
|
json = json.file;
|
|
464
392
|
}
|
|
465
|
-
|
|
466
393
|
try {
|
|
467
|
-
json = JSON.parse(json);
|
|
468
|
-
|
|
394
|
+
json = JSON.parse(json);
|
|
395
|
+
// apply file to I18n
|
|
469
396
|
_i18n["default"].extendTranslations(json, lang);
|
|
470
397
|
} catch (e) {
|
|
471
398
|
console.error("Cannot parse language file \"".concat(adapterName, ".admin/").concat(fileName, ": ").concat(e));
|
|
@@ -478,7 +405,6 @@ var JsonConfigComponent = /*#__PURE__*/function (_Component) {
|
|
|
478
405
|
});
|
|
479
406
|
} else if (i18n && (0, _typeof2["default"])(i18n) === 'object') {
|
|
480
407
|
_i18n["default"].extendTranslations(i18n);
|
|
481
|
-
|
|
482
408
|
return Promise.resolve();
|
|
483
409
|
} else {
|
|
484
410
|
return Promise.resolve();
|
|
@@ -487,7 +413,6 @@ var JsonConfigComponent = /*#__PURE__*/function (_Component) {
|
|
|
487
413
|
}]);
|
|
488
414
|
return JsonConfigComponent;
|
|
489
415
|
}(_react.Component);
|
|
490
|
-
|
|
491
416
|
JsonConfigComponent.propTypes = {
|
|
492
417
|
socket: _propTypes["default"].object.isRequired,
|
|
493
418
|
adapterName: _propTypes["default"].string,
|
|
@@ -495,6 +420,7 @@ JsonConfigComponent.propTypes = {
|
|
|
495
420
|
common: _propTypes["default"].object,
|
|
496
421
|
customs: _propTypes["default"].object,
|
|
497
422
|
// custom components
|
|
423
|
+
|
|
498
424
|
custom: _propTypes["default"].bool,
|
|
499
425
|
// is the customs settings must be shown
|
|
500
426
|
customObj: _propTypes["default"].object,
|
|
@@ -515,8 +441,6 @@ JsonConfigComponent.propTypes = {
|
|
|
515
441
|
onChange: _propTypes["default"].func,
|
|
516
442
|
onValueChange: _propTypes["default"].func
|
|
517
443
|
};
|
|
518
|
-
|
|
519
444
|
var _default = (0, _styles.withStyles)(styles)(JsonConfigComponent);
|
|
520
|
-
|
|
521
445
|
exports["default"] = _default;
|
|
522
446
|
//# sourceMappingURL=index.js.map
|
|
@@ -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","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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"}
|
|
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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"}
|