@iobroker/adapter-react-v5 3.1.3 → 3.1.6

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 (67) hide show
  1. package/Components/FileBrowser.js +277 -237
  2. package/Components/FileBrowser.js.map +1 -1
  3. package/Components/FileViewer.js +3 -1
  4. package/Components/FileViewer.js.map +1 -1
  5. package/Components/JsonConfigComponent/ConfigAutocomplete.js +5 -3
  6. package/Components/JsonConfigComponent/ConfigAutocomplete.js.map +1 -1
  7. package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js +5 -3
  8. package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js.map +1 -1
  9. package/Components/JsonConfigComponent/ConfigCertificateSelect.js +16 -2
  10. package/Components/JsonConfigComponent/ConfigCertificateSelect.js.map +1 -1
  11. package/Components/JsonConfigComponent/ConfigCustom.js +148 -25
  12. package/Components/JsonConfigComponent/ConfigCustom.js.map +1 -1
  13. package/Components/JsonConfigComponent/ConfigFile.js +183 -0
  14. package/Components/JsonConfigComponent/ConfigFile.js.map +1 -0
  15. package/Components/JsonConfigComponent/ConfigFileSelector.js +747 -0
  16. package/Components/JsonConfigComponent/ConfigFileSelector.js.map +1 -0
  17. package/Components/JsonConfigComponent/ConfigGeneric.js +105 -20
  18. package/Components/JsonConfigComponent/ConfigGeneric.js.map +1 -1
  19. package/Components/JsonConfigComponent/ConfigInstanceSelect.js +132 -46
  20. package/Components/JsonConfigComponent/ConfigInstanceSelect.js.map +1 -1
  21. package/Components/JsonConfigComponent/ConfigLanguage.js +25 -1
  22. package/Components/JsonConfigComponent/ConfigLanguage.js.map +1 -1
  23. package/Components/JsonConfigComponent/ConfigNumber.js +5 -4
  24. package/Components/JsonConfigComponent/ConfigNumber.js.map +1 -1
  25. package/Components/JsonConfigComponent/ConfigObjectId.js +3 -2
  26. package/Components/JsonConfigComponent/ConfigObjectId.js.map +1 -1
  27. package/Components/JsonConfigComponent/ConfigPanel.js +51 -40
  28. package/Components/JsonConfigComponent/ConfigPanel.js.map +1 -1
  29. package/Components/JsonConfigComponent/ConfigPattern.js +1 -1
  30. package/Components/JsonConfigComponent/ConfigPattern.js.map +1 -1
  31. package/Components/JsonConfigComponent/ConfigSelect.js +4 -2
  32. package/Components/JsonConfigComponent/ConfigSelect.js.map +1 -1
  33. package/Components/JsonConfigComponent/ConfigSendto.js +2 -2
  34. package/Components/JsonConfigComponent/ConfigSendto.js.map +1 -1
  35. package/Components/JsonConfigComponent/ConfigSetState.js +2 -2
  36. package/Components/JsonConfigComponent/ConfigSetState.js.map +1 -1
  37. package/Components/JsonConfigComponent/ConfigStaticHeader.js +31 -8
  38. package/Components/JsonConfigComponent/ConfigStaticHeader.js.map +1 -1
  39. package/Components/JsonConfigComponent/ConfigStaticImage.js +1 -1
  40. package/Components/JsonConfigComponent/ConfigStaticImage.js.map +1 -1
  41. package/Components/JsonConfigComponent/ConfigTable.js +1 -1
  42. package/Components/JsonConfigComponent/ConfigTable.js.map +1 -1
  43. package/Components/JsonConfigComponent/ConfigTabs.js +12 -3
  44. package/Components/JsonConfigComponent/ConfigTabs.js.map +1 -1
  45. package/Components/JsonConfigComponent/ConfigText.js +4 -2
  46. package/Components/JsonConfigComponent/ConfigText.js.map +1 -1
  47. package/Components/JsonConfigComponent/ConfigTopic.js.map +1 -1
  48. package/Components/JsonConfigComponent/index.js +12 -4
  49. package/Components/JsonConfigComponent/index.js.map +1 -1
  50. package/Components/ObjectBrowser.js +228 -222
  51. package/Components/ObjectBrowser.js.map +1 -1
  52. package/Components/TableResize.js +34 -16
  53. package/Components/TableResize.js.map +1 -1
  54. package/Components/TreeTable.js +2 -2
  55. package/Components/TreeTable.js.map +1 -1
  56. package/Components/Utils.js +5 -5
  57. package/Components/Utils.js.map +1 -1
  58. package/Dialogs/Confirm.js +3 -3
  59. package/Dialogs/Confirm.js.map +1 -1
  60. package/Dialogs/FileSelect.js +259 -0
  61. package/Dialogs/FileSelect.js.map +1 -0
  62. package/Dialogs/SelectID.js +15 -16
  63. package/Dialogs/SelectID.js.map +1 -1
  64. package/GenericApp.js +3 -3
  65. package/GenericApp.js.map +1 -1
  66. package/README.md +3 -0
  67. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigFileSelector.js","names":["styles","theme","fullWidth","width","fullWidthOneButton","fullWidthTwoButtons","fullWidthThreeButtons","dropZone","height","position","dropZoneEmpty","image","objectFit","margin","display","uploadDiv","uploadDivDragging","opacity","background","uploadCenterDiv","border","borderRadius","uploadCenterIcon","paddingTop","uploadCenterText","fontSize","uploadCenterTextAndIcon","textAlign","top","bottom","left","right","flexDirection","alignItems","justifyContent","disabledOpacity","cursor","error","deleteButton","selectedImage","marginRight","IMAGE_EXT","AUDIO_EXT","VIDEO_EXT","DOC_EXT","JS_EXT","ConfigFileSelector","props","dropzoneRef","React","createRef","imagePrefix","undefined","objectID","schema","replace","instance","path","upload","endsWith","updateFiles","then","value","ConfigGeneric","getValue","data","attr","setState","checkImage","readFiles","pattern","files","folderName","filter","socket","readDir","dirFiles","f","length","file","isDir","readFolder","ok","includes","startsWith","regExp","RegExp","test","push","name","size","stats","Utils","formatBytes","console","pos","lastIndexOf","substring","folder","acceptedFiles","reader","FileReader","maxSize","onabort","log","onerror","onload","ext","split","pop","toLowerCase","window","alert","I18n","t","Math","round","base64","btoa","Uint8Array","result","reduce","byte","String","fromCharCode","writeFile64","e","readAsArrayBuffer","readFile","state","deleteFile","isOk","loadFile","AudioContext","context","buf","base64ToArrayBuffer","decodeAudioData","buffer","source","createBufferSource","connect","destination","start","err","item","extension","classes","backgroundImage","backgroundSize","backgroundRepeat","disabled","defaultValue","folders","withFolder","forEach","selectOptions","map","label","noSize","noNone","unshift","find","buttons","refresh","play","element","getText","val","getIcon","target","onChange","help","renderHelp","helpLink","noTranslation","current","open","color","renderDeleteDialog","accept","last","uploadFile","errors","message","onDrop","getRootProps","getInputProps","clsx","uploadError","binary_string","atob","len","bytes","i","charCodeAt","propTypes","PropTypes","object","isRequired","themeType","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigFileSelector.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\nimport Dropzone from 'react-dropzone';\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';\nimport IconButton from '@mui/material/IconButton';\nimport ListItemText from '@mui/material/ListItemText';\nimport ListItemIcon from '@mui/material/ListItemIcon';\n\nimport IconRefresh from '@mui/icons-material/Refresh';\nimport IconUpload from '@mui/icons-material/UploadFile';\nimport IconDelete from '@mui/icons-material/Delete';\nimport IconPlay from '@mui/icons-material/PlayArrow';\nimport IconAudio from '@mui/icons-material/MusicNote';\nimport IconVideo from '@mui/icons-material/Videocam';\nimport IconText from '@mui/icons-material/Article';\nimport IconCode from '@mui/icons-material/Code';\nimport { FaFileUpload as UploadIcon } from 'react-icons/fa';\n\nimport Utils from '../../Components/Utils';\nimport I18n from '../../i18n';\nimport ConfirmDialog from '../../Dialogs/Confirm';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n fullWidthOneButton: {\n width: 'calc(100% - 42px)'\n },\n fullWidthTwoButtons: {\n width: 'calc(100% - 84px)'\n },\n fullWidthThreeButtons: {\n width: 'calc(100% - 126x)'\n },\n dropZone: {\n width: '100%',\n height: '100%',\n position: 'absolute',\n },\n dropZoneEmpty: {\n\n },\n image: {\n objectFit: 'contain',\n margin: 'auto',\n display: 'flex',\n width: '100%',\n height: '100%',\n },\n\n uploadDiv: {\n position: 'relative',\n width: '100%',\n },\n uploadDivDragging: {\n opacity: 1,\n background: 'rgba(128,255,128,0.1)'\n },\n\n uploadCenterDiv: {\n margin: 5,\n border: '3px dashed grey',\n borderRadius: 5,\n width: '100%',\n height: '100%',\n position: 'absolute',\n display: 'flex'\n },\n uploadCenterIcon: {\n paddingTop: 10,\n width: 48,\n height: 48,\n },\n uploadCenterText: {\n fontSize: 16,\n },\n uploadCenterTextAndIcon: {\n textAlign: 'center',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n\n },\n disabledOpacity: {\n opacity: 0.3,\n cursor: 'default'\n },\n error: {\n border: '2px solid red'\n },\n deleteButton: {\n\n },\n selectedImage: {\n height: 40,\n width: 40,\n display: 'inline-block',\n marginRight: 8,\n }\n});\n\nconst IMAGE_EXT = ['jpg', 'jpeg', 'svg', 'png', 'webp'];\nconst AUDIO_EXT = ['mp3', 'ogg', 'wav', 'aac'];\nconst VIDEO_EXT = ['avi', 'mp4', 'mov'];\nconst DOC_EXT = ['txt', 'log', 'html', 'htm'];\nconst JS_EXT = ['json', 'js', 'ts'];\n\nclass ConfigFileSelector extends ConfigGeneric {\n constructor(props) {\n super(props);\n this.dropzoneRef = React.createRef();\n this.imagePrefix = this.props.imagePrefix === undefined ? '../../files' : this.props.imagePrefix;\n }\n\n componentDidMount() {\n super.componentDidMount();\n\n this.objectID = (this.props.schema.objectID || '0_userdata.0').replace('%INSTANCE%', this.props.instance);\n this.path = this.props.schema.upload;\n if (this.path) {\n if (this.path === '/') {\n this.path = '';\n } else {\n if (!this.path.endsWith('/')) {\n this.path = this.path + '/';\n }\n }\n }\n\n // read files\n this.updateFiles()\n .then(() => {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value });\n this.checkImage();\n });\n }\n\n updateFiles() {\n return this.readFiles(this.props.schema.pattern)\n .then(files => this.setState({ files }));\n }\n\n async readFolder(folderName, files, filter) {\n try {\n const dirFiles = await this.props.socket.readDir(this.objectID, folderName.replace(/^\\//, '') || null);\n for (let f = 0; f < dirFiles.length; f++) {\n const file = dirFiles[f];\n if (file.isDir) {\n // read it\n await this.readFolder(`${folderName + file.file}/`, files, filter);\n } else {\n let ok = false;\n if (filter === '*.*' && file.file.includes('.')) {\n ok = true;\n } else if (!filter || filter === '*') {\n ok = true;\n } else if (filter === '.*' && file.file.startsWith('.')) {\n ok = true;\n } else {\n const regExp = new RegExp('^' + filter.replace(/\\./g, '\\\\.').replace(/\\*/g,'.*') + '$');\n ok = regExp.test(file.file);\n }\n\n ok && files.push({ name: folderName + file.file, size: file.stats ? Utils.formatBytes(file.stats.size) : '--' })\n }\n }\n } catch (e) {\n console.error(`Cannot read \"${folderName}\": ${e}`);\n }\n\n return files;\n }\n\n async readFiles(pattern) {\n const files = [];\n pattern = pattern || this.props.schema.pattern;\n if (!pattern) {\n pattern = '**/*.*';\n }\n let filter;\n const pos = pattern.lastIndexOf('/');\n if (pos === -1) {\n filter = pattern;\n } else {\n filter = pattern.substring(pos + 1);\n }\n\n if (pattern.startsWith('**')) {\n // read all folders\n await this.readFolder('/', files, filter);\n } else {\n const pos = pattern.lastIndexOf('/');\n if (pos === -1) {\n await this.readFolder('/', files, filter);\n } else {\n const folder = pattern.substring(0, pos + 1);\n await this.readFolder(folder, files, filter);\n }\n }\n\n return files;\n }\n\n onDrop(acceptedFiles) {\n const file = acceptedFiles[0];\n const reader = new FileReader();\n const maxSize = this.props.schema.maxSize || (2 * 1024 * 1024);\n\n reader.onabort = () => console.log('file reading was aborted');\n reader.onerror = () => console.log('file reading has failed');\n reader.onload = () => {\n let ext = 'image/' + file.name.split('.').pop().toLowerCase();\n if (ext === 'image/jpg') {\n ext = 'image/jpeg';\n } else if (ext.includes('svg')) {\n ext = 'image/svg+xml';\n }\n if (file.size > maxSize) {\n return window.alert(I18n.t('File is too big. Max %sk allowed. Try use SVG.', Math.round(maxSize / 1024)));\n }\n const base64 = `data:${ext};base64,${btoa(\n new Uint8Array(reader.result)\n .reduce((data, byte) => data + String.fromCharCode(byte), ''))}`;\n\n this.props.socket.writeFile64(this.objectID, this.path + file.name, base64)\n .then(() => this.updateFiles())\n .catch(e => window.alert('Cannot upload file: ' + e));\n };\n reader.readAsArrayBuffer(file);\n }\n\n loadFile() {\n return this.props.socket.readFile(this.objectID, this.state.value, true);\n }\n\n renderDeleteDialog() {\n if (!this.state.deleteFile) {\n return null;\n }\n return <ConfirmDialog\n title={ I18n.t('ra_Are you sure?') }\n text={ I18n.t('ra_File will be deleted') }\n ok={ I18n.t('ra_Delete') }\n cancel={ I18n.t('ra_Cancel') }\n onClose={isOk => {\n const deleteFile = this.state.deleteFile;\n this.setState({deleteFile: false}, () => {\n if (isOk) {\n this.props.socket.deleteFile(this.objectID, deleteFile)\n .then(() => this.updateFiles())\n .catch(e => window.alert('Cannot delete file: ' + e));\n }\n });\n }}\n />;\n }\n\n static base64ToArrayBuffer(base64) {\n var binary_string = window.atob(base64);\n var len = binary_string.length;\n var bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n return bytes.buffer;\n }\n\n play() {\n this.loadFile()\n .then(data => {\n if (typeof AudioContext !== 'undefined') {\n const context = new AudioContext();\n const buf = ConfigFileSelector.base64ToArrayBuffer(data.file);\n context.decodeAudioData(buf, buffer => {\n const source = context.createBufferSource(); // creates a sound source\n source.buffer = buffer; // tell the source which sound to play\n source.connect(context.destination); // connect the source to the context's destination (the speakers)\n source.start(0);\n }, err => window.alert('Cannot play: ' + err));\n }\n });\n }\n\n getIcon(item) {\n if (!item || !item.extension) {\n return null;\n }\n if (IMAGE_EXT.includes(item.extension)) {\n return <div className={this.props.classes.selectedImage} style={{\n backgroundImage: 'url(' + this.imagePrefix + '/' + this.objectID + '/' + item.value + ')',\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n }} />;\n } else if (AUDIO_EXT.includes(item.extension)) {\n return <IconAudio />;\n } else if (DOC_EXT.includes(item.extension)) {\n return <IconText />;\n } else if (VIDEO_EXT.includes(item.extension)) {\n return <IconVideo />;\n } else if (JS_EXT.includes(item.extension)) {\n return <IconCode />;\n }\n return null;\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.files) {\n return null;\n }\n let folders = [];\n if (!this.props.schema.withFolder) {\n this.state.files.forEach(file => {\n const pos = file.name.lastIndexOf('/');\n if (pos === -1) {\n if (!folders.includes('/')) {\n folders.push('/');\n }\n } else {\n const folder = file.name.substring(0, pos + 1);\n if (!folders.includes(folder)) {\n folders.push(folder);\n }\n }\n });\n }\n\n const selectOptions = this.state.files\n .map(file => ({\n value: file.name,\n label: !this.props.schema.withFolder && folders.length === 1 ? `${file.name.substring(folders[0].length)}` : `${file.name}` + (this.props.schema.noSize ? '' : `(${file.size})`),\n extension: file.name.toLowerCase().split('.').pop(),\n }));\n\n if (!this.props.schema.noNone) {\n selectOptions.unshift({label: I18n.t('ra_none'), value: ''});\n }\n\n // eslint-disable-next-line\n const item = selectOptions.find(item => item.value === this.state.value);\n\n let buttons = 0;\n\n if (this.props.schema.upload) {\n buttons++;\n }\n if (this.props.schema.refresh) {\n buttons++;\n }\n let play = this.state.value && (this.state.value.endsWith('.mp3') || this.state.value.endsWith('.ogg') || this.state.value.endsWith('.wav'));\n // show play button\n if (play) {\n buttons++;\n }\n\n const element = <div className={this.props.classes.fullWidth}>\n <FormControl variant=\"standard\" style={{width: `calc(100% - ${buttons * 42}px)`}}>\n <InputLabel>{this.getText(this.props.schema.label)}</InputLabel>\n <Select\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={this.state.value || '_'}\n renderValue={val => {\n return <>{this.getIcon(item)}<span>{item?.label || ''}</span></>\n }}\n onChange={e => {\n this.setState({value: e.target.value === '_' ? '' : e.target.value}, () =>\n this.onChange(this.props.attr, this.state.value));\n }}\n >\n {selectOptions.map(item => {\n return <MenuItem key={item.value} value={item.value}>\n <ListItemIcon>{this.getIcon(item)}</ListItemIcon>\n <ListItemText>{item.label}</ListItemText>\n {this.props.schema.delete && item.value ?\n <IconButton className={this.props.classes.deleteButton} size=\"small\"\n onClick={() => this.setState({deleteFile: item.value})}><IconDelete/></IconButton> : null}\n </MenuItem>;\n })}\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 { this.props.schema.refresh && <IconButton onClick={() => this.updateFiles()}><IconRefresh /></IconButton> }\n { this.props.schema.upload && <IconButton onClick={() => this.dropzoneRef.current?.open()}><IconUpload /></IconButton> }\n { play && <IconButton style={{ color: '#00FF00' }} onClick={() => this.play()}><IconPlay /></IconButton> }\n </div>;\n\n if (!this.props.schema.upload) {\n return <>{element}{this.renderDeleteDialog()}</>;\n } else {\n let accept = {'*/*': []};\n if (this.props.schema.pattern) {\n const last = this.props.schema.pattern.split('/').pop().toLowerCase().replace(/.*\\./, '');\n if (last === 'png' || last === 'jpg' || last === 'svg') {\n accept = {\n 'image/*': ['.png', '.jpg', '.svg']\n };\n } else if (last === 'mp3' || last === 'ogg' || last === 'wav') {\n accept = {\n 'audio/*': ['.mp3', '.ogg', '.wav', '.mp4']\n };\n } else if (last === 'ics') {\n accept = {\n 'text/calendar': ['.mp3', '.ogg', '.wav', '.mp4']\n };\n } else if (last === 'txt') {\n accept = {\n 'text/plain': ['.txt']\n };\n } else if (last === 'pem') {\n accept = {\n 'text/plain': ['.pem']\n };\n } else if (last === 'pem') {\n accept = {\n '*/*': ['.' + last]\n };\n }\n }\n\n return <Dropzone\n ref={this.dropzoneRef}\n multiple={false}\n accept={accept}\n noKeyboard\n noClick\n maxSize={this.props.schema.maxSize || 2 * 1024 * 1024}\n onDragEnter={() => {\n this.setState({ uploadFile: 'dragging' });\n }}\n onDragLeave={() => this.setState({ uploadFile: true })}\n onDrop={(acceptedFiles, errors) => {\n this.setState({ uploadFile: false });\n if (!acceptedFiles.length) {\n window.alert((errors && errors[0] && errors[0].errors && errors[0].errors[0] && errors[0].errors[0].message) || I18n.t('Cannot upload'));\n } else {\n return this.onDrop(acceptedFiles);\n }\n }}\n >\n {({ getRootProps, getInputProps }) => <div\n className={Utils.clsx(\n this.props.classes.uploadDiv,\n this.state.uploadFile === 'dragging' && this.props.classes.uploadDivDragging,\n disabled && this.props.classes.disabledOpacity,\n )}\n {...getRootProps()}\n >\n <input {...getInputProps()} />\n {this.state.uploadFile === 'dragging' ? <div className={Utils.clsx(this.props.classes.uploadCenterDiv, this.state.uploadError && this.props.classes.error)}>\n <div className={this.props.classes.uploadCenterTextAndIcon}>\n <UploadIcon className={this.props.classes.uploadCenterIcon} />\n <div className={this.props.classes.uploadCenterText}>{\n this.state.uploadFile === 'dragging' ? I18n.t('Drop file here') :\n I18n.t('Place your files here or click here to open the browse dialog')}</div>\n </div>\n </div> : null}\n {element}\n {this.renderDeleteDialog()}\n </div>}\n </Dropzone>;\n }\n }\n}\n\nConfigFileSelector.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 imagePrefix: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigFileSelector);"],"mappings":"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"}
@@ -35,6 +35,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
35
35
 
36
36
  var _Grid = _interopRequireDefault(require("@mui/material/Grid"));
37
37
 
38
+ var _Button = _interopRequireDefault(require("@mui/material/Button"));
39
+
38
40
  var _Info = _interopRequireDefault(require("@mui/icons-material/Info"));
39
41
 
40
42
  var _Warning = _interopRequireDefault(require("@mui/icons-material/Warning"));
@@ -123,12 +125,69 @@ var ConfigGeneric = /*#__PURE__*/function (_Component) {
123
125
  }
124
126
  }, 100);
125
127
  }
128
+ } else if (this.props.schema.defaultSendTo) {
129
+ this.sendTo();
130
+ }
131
+ }
132
+ }, {
133
+ key: "sendTo",
134
+ value: function sendTo() {
135
+ var _this3 = this;
136
+
137
+ if (this.props.alive) {
138
+ this.defaultSendToDone = true;
139
+ var data = this.props.schema.data;
140
+
141
+ if (data === undefined && this.props.schema.jsonData) {
142
+ data = this.getPattern(this.props.schema.jsonData);
143
+
144
+ try {
145
+ data = JSON.parse(data);
146
+ } catch (e) {
147
+ console.error('Cannot parse json data: ' + data);
148
+ }
149
+ } else {
150
+ data = {
151
+ attr: this.props.attr,
152
+ value: ConfigGeneric.getValue(this.props.data, this.props.attr)
153
+ };
154
+ }
155
+
156
+ if (data === undefined) {
157
+ data = null;
158
+ }
159
+
160
+ this.props.socket.sendTo(this.props.adapterName + '.' + this.props.instance, this.props.schema.defaultSendTo, data).then(function (value) {
161
+ if (value !== null && value !== undefined) {
162
+ if (_this3.props.custom) {
163
+ _this3.props.onChange(_this3.props.attr, value, function () {
164
+ return _this3.props.forceUpdate([_this3.props.attr], _this3.props.data);
165
+ }); //this.onChange(this.props.attr, this.defaultValue);
166
+
167
+ } else {
168
+ ConfigGeneric.setValue(_this3.props.data, _this3.props.attr, value);
169
+
170
+ _this3.props.onChange(_this3.props.data, undefined, function () {
171
+ return _this3.props.forceUpdate([_this3.props.attr], _this3.props.data);
172
+ });
173
+ }
174
+ }
175
+ });
176
+ } else {
177
+ this.defaultSendToDone = false; // show error, that instance does not started
178
+
179
+ this.onError(this.props.attr, _i18n["default"].t('ra_Instance %s is not alive', this.props.instance));
126
180
  }
127
181
  }
128
182
  }, {
129
183
  key: "componentWillUnmount",
130
184
  value: function componentWillUnmount() {
131
185
  this.props.registerOnForceUpdate && this.props.registerOnForceUpdate(this.props.attr);
186
+
187
+ if (this.sendToTimeout) {
188
+ clearTimeout(this.sendToTimeout);
189
+ this.sendToTimeout = null;
190
+ }
132
191
  }
133
192
  }, {
134
193
  key: "getText",
@@ -161,7 +220,7 @@ var ConfigGeneric = /*#__PURE__*/function (_Component) {
161
220
  }, {
162
221
  key: "renderConfirmDialog",
163
222
  value: function renderConfirmDialog() {
164
- var _this3 = this;
223
+ var _this4 = this;
165
224
 
166
225
  if (!this.state.confirmDialog) {
167
226
  return null;
@@ -185,19 +244,19 @@ var ConfigGeneric = /*#__PURE__*/function (_Component) {
185
244
  cancel: this.getText(confirm.cancel) || _i18n["default"].t('ra_Cancel'),
186
245
  icon: icon,
187
246
  onClose: function onClose(isOk) {
188
- return _this3.setState({
247
+ return _this4.setState({
189
248
  confirmDialog: false
190
249
  }, function () {
191
250
  if (isOk) {
192
- var data = JSON.parse(JSON.stringify(_this3.props.data));
251
+ var data = JSON.parse(JSON.stringify(_this4.props.data));
193
252
 
194
- if (_this3.state.confirmDepAttr) {
195
- ConfigGeneric.setValue(data, _this3.state.confirmDepAttr, _this3.state.confirmDepNewValue);
253
+ if (_this4.state.confirmDepAttr) {
254
+ ConfigGeneric.setValue(data, _this4.state.confirmDepAttr, _this4.state.confirmDepNewValue);
196
255
  }
197
256
 
198
- ConfigGeneric.setValue(data, _this3.state.confirmAttr, _this3.state.confirmNewValue);
257
+ ConfigGeneric.setValue(data, _this4.state.confirmAttr, _this4.state.confirmNewValue);
199
258
 
200
- _this3.setState({
259
+ _this4.setState({
201
260
  confirmDialog: false,
202
261
  confirmDepAttr: null,
203
262
  confirmDepNewValue: null,
@@ -206,10 +265,10 @@ var ConfigGeneric = /*#__PURE__*/function (_Component) {
206
265
  confirmOldValue: null,
207
266
  confirmData: null
208
267
  }, function () {
209
- return _this3.props.onChange(data);
268
+ return _this4.props.onChange(data);
210
269
  });
211
270
  } else {
212
- _this3.setState({
271
+ _this4.setState({
213
272
  confirmDialog: false,
214
273
  confirmDepAttr: null,
215
274
  confirmDepNewValue: null,
@@ -226,7 +285,7 @@ var ConfigGeneric = /*#__PURE__*/function (_Component) {
226
285
  }, {
227
286
  key: "onChange",
228
287
  value: function onChange(attr, newValue) {
229
- var _this4 = this;
288
+ var _this5 = this;
230
289
 
231
290
  var data = JSON.parse(JSON.stringify(this.props.data));
232
291
  ConfigGeneric.setValue(data, attr, newValue);
@@ -315,12 +374,12 @@ var ConfigGeneric = /*#__PURE__*/function (_Component) {
315
374
  this.props.onChange(attr, newValue);
316
375
  changed && changed.length && changed.forEach(function (_attr, i) {
317
376
  return setTimeout(function () {
318
- return _this4.props.onChange(_attr, data[_attr]);
377
+ return _this5.props.onChange(_attr, ConfigGeneric.getValue(data, attr));
319
378
  }, i * 50);
320
379
  });
321
380
  } else {
322
381
  this.props.onChange(data, undefined, function () {
323
- return changed.length && _this4.props.forceUpdate(changed, data);
382
+ return changed.length && _this5.props.forceUpdate(changed, data);
324
383
  });
325
384
  }
326
385
  }
@@ -465,7 +524,7 @@ var ConfigGeneric = /*#__PURE__*/function (_Component) {
465
524
  }, {
466
525
  key: "render",
467
526
  value: function render() {
468
- var _this5 = this;
527
+ var _this6 = this;
469
528
 
470
529
  var schema = this.props.schema;
471
530
 
@@ -473,6 +532,14 @@ var ConfigGeneric = /*#__PURE__*/function (_Component) {
473
532
  return null;
474
533
  }
475
534
 
535
+ if (this.props.alive && this.defaultSendToDone === false) {
536
+ this.sendToTimeout = setTimeout(function () {
537
+ _this6.sendToTimeout = null;
538
+
539
+ _this6.sendTo();
540
+ }, 200);
541
+ }
542
+
476
543
  var _this$calculate = this.calculate(schema),
477
544
  error = _this$calculate.error,
478
545
  disabled = _this$calculate.disabled,
@@ -484,7 +551,7 @@ var ConfigGeneric = /*#__PURE__*/function (_Component) {
484
551
  if (Object.keys(this.isError).length) {
485
552
  setTimeout(function (isError) {
486
553
  return Object.keys(isError).forEach(function (attr) {
487
- return _this5.props.onError(attr);
554
+ return _this6.props.onError(attr);
488
555
  });
489
556
  }, 100, JSON.parse(JSON.stringify(this.isError)));
490
557
  this.isError = {};
@@ -525,19 +592,21 @@ var ConfigGeneric = /*#__PURE__*/function (_Component) {
525
592
  this.isError = (0, _defineProperty2["default"])({}, this.props.attr, schema.validatorErrorText ? _i18n["default"].t(schema.validatorErrorText) : true);
526
593
  setTimeout(function (isError) {
527
594
  return Object.keys(isError).forEach(function (attr) {
528
- return _this5.props.onError(attr, isError[attr]);
595
+ return _this6.props.onError(attr, isError[attr]);
529
596
  });
530
597
  }, 100, JSON.parse(JSON.stringify(this.isError)));
531
598
  } else if (!error && Object.keys(this.isError).length) {
532
599
  setTimeout(function (isError) {
533
600
  return Object.keys(isError).forEach(function (attr) {
534
- return _this5.props.onError(attr);
601
+ return _this6.props.onError(attr);
535
602
  });
536
603
  }, 100, JSON.parse(JSON.stringify(this.isError)));
537
604
  this.isError = {};
538
605
  }
539
606
  }
540
607
 
608
+ var renderedItem = this.renderItem(error, disabled || this.props.commandRunning || this.props.disabled, defaultValue);
609
+
541
610
  var _item = /*#__PURE__*/_react["default"].createElement(_Grid["default"], {
542
611
  item: true,
543
612
  title: this.getText(schema.tooltip),
@@ -547,11 +616,27 @@ var ConfigGeneric = /*#__PURE__*/function (_Component) {
547
616
  sm: schema.sm || undefined,
548
617
  style: Object.assign({}, {
549
618
  marginBottom: 0,
550
- //marginRight: 8,
619
+ // marginRight: 8,
551
620
  textAlign: 'left',
552
621
  width: schema.type === 'divider' || schema.type === 'header' ? schema.width || '100%' : undefined
553
622
  }, schema.style, this.props.themeType === 'dark' ? schema.darkStyle : {})
554
- }, this.renderItem(error, disabled || this.props.commandRunning || this.props.disabled, defaultValue));
623
+ }, this.props.schema.defaultSendTo && this.props.schema.button ? /*#__PURE__*/_react["default"].createElement(_Grid["default"], {
624
+ container: true,
625
+ style: {
626
+ width: '100%'
627
+ }
628
+ }, /*#__PURE__*/_react["default"].createElement(_Grid["default"], {
629
+ item: true,
630
+ flex: 1
631
+ }, renderedItem), /*#__PURE__*/_react["default"].createElement(_Grid["default"], {
632
+ item: true
633
+ }, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
634
+ variant: "outlined",
635
+ onClick: function onClick() {
636
+ return _this6.sendTo();
637
+ },
638
+ title: this.props.schema.buttonTooltip ? this.getText(this.props.schema.buttonTooltip, this.props.schema.buttonTooltipNoTranslation) : _i18n["default"].t('ra_Request data by instance')
639
+ }, this.getText(this.props.schema.button)))) : renderedItem);
555
640
 
556
641
  if (schema.newLine) {
557
642
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
@@ -616,9 +701,9 @@ var ConfigGeneric = /*#__PURE__*/function (_Component) {
616
701
  }(_react.Component);
617
702
 
618
703
  (0, _defineProperty2["default"])(ConfigGeneric, "DIFFERENT_VALUE", '__different__');
619
- (0, _defineProperty2["default"])(ConfigGeneric, "DIFFERENT_LABEL", _i18n["default"].t('ra___different__'));
704
+ (0, _defineProperty2["default"])(ConfigGeneric, "DIFFERENT_LABEL", 'ra___different__');
620
705
  (0, _defineProperty2["default"])(ConfigGeneric, "NONE_VALUE", '');
621
- (0, _defineProperty2["default"])(ConfigGeneric, "NONE_LABEL", _i18n["default"].t('ra_none'));
706
+ (0, _defineProperty2["default"])(ConfigGeneric, "NONE_LABEL", 'ra_none');
622
707
  (0, _defineProperty2["default"])(ConfigGeneric, "AsyncFunction", Object.getPrototypeOf( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
623
708
  return _regenerator["default"].wrap(function _callee$(_context) {
624
709
  while (1) {
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigGeneric.js","names":["ConfigGeneric","props","data","value","getValue","attr","state","setState","forceUpdate","confirmDialog","confirmNewValue","confirmAttr","confirmData","isError","schema","custom","defaultValue","defaultFunc","executeCustom","instanceObj","arrayIndex","globalData","execute","lang","I18n","getLanguage","registerOnForceUpdate","onUpdate","LIKE_SELECT","undefined","includes","type","setTimeout","onChange","setValue","text","noTranslation","t","getPattern","func","en","confirm","icon","getText","title","ok","cancel","isOk","JSON","parse","stringify","confirmDepAttr","confirmDepNewValue","confirmOldValue","newValue","condition","confirmDependsOn","z","length","dep","val","changed","onChangeDependsOn","calculateFunc","customObj","push","hiddenDependsOn","hidden","labelDependsOn","helpDependsOn","ignoreOwnChanges","forEach","_attr","i","f","Function","result","originalData","systemConfig","alive","common","socket","instance","e","console","error","log","disabled","validator","onError","label","link","Utils","renderTextWithA","color","themeType","pattern","replace","calculate","Object","keys","hideOnlyControl","item","xs","lg","md","sm","assign","marginBottom","textAlign","style","darkStyle","newLine","flexBasis","height","validatorNoSaveOnError","validatorErrorText","tooltip","width","renderItem","commandRunning","renderConfirmDialog","split","part","shift","Component","getPrototypeOf","constructor","propTypes","PropTypes","object","isRequired","string","any","themeName","customs","bool","adapterName","number","dateFormat","isFloatComma"],"sources":["JsonConfigComponent/ConfigGeneric.jsx"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Grid from '@mui/material/Grid';\n\nimport IconInfo from '@mui/icons-material/Info';\nimport IconWarning from '@mui/icons-material/Warning';\nimport IconError from '@mui/icons-material/Error';\n\nimport I18n from '../../i18n';\nimport Utils from '../Utils';\nimport ConfirmDialog from '../../Dialogs/Confirm';\n\nclass ConfigGeneric extends Component {\n static DIFFERENT_VALUE = '__different__';\n static DIFFERENT_LABEL = I18n.t('ra___different__');\n static NONE_VALUE = '';\n static NONE_LABEL = I18n.t('ra_none');\n static AsyncFunction = Object.getPrototypeOf(async function(){}).constructor;\n\n constructor(props) {\n super(props);\n\n this.state = {\n confirmDialog: false,\n confirmNewValue: null,\n confirmAttr: null,\n confirmData: null,\n };\n\n this.isError = {};\n\n if (this.props.schema) {\n if (this.props.custom) {\n this.defaultValue = this.props.schema.defaultFunc ? this.executeCustom(this.props.schema.defaultFunc, this.props.schema.default, this.props.data, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : this.props.schema.default;\n } else {\n this.defaultValue = this.props.schema.defaultFunc ? this.execute(this.props.schema.defaultFunc, this.props.schema.default, this.props.data, this.props.arrayIndex, this.props.globalData) : this.props.schema.default;\n }\n }\n\n this.lang = I18n.getLanguage();\n }\n\n componentDidMount() {\n this.props.registerOnForceUpdate && this.props.registerOnForceUpdate(this.props.attr, this.onUpdate);\n const LIKE_SELECT = ['select', 'autocomplete', 'autocompleteSendTo'];\n // init default value\n if (this.defaultValue !== undefined) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n if (value === undefined || (LIKE_SELECT.includes(this.props.schema.type) && (value === '' || value === null))) {\n setTimeout(() => {\n if (this.props.custom) {\n this.props.onChange(this.props.attr, this.defaultValue, () =>\n this.props.forceUpdate([this.props.attr], this.props.data));\n //this.onChange(this.props.attr, this.defaultValue);\n } else {\n ConfigGeneric.setValue(this.props.data, this.props.attr, this.defaultValue);\n this.props.onChange(this.props.data, undefined, () =>\n this.props.forceUpdate([this.props.attr], this.props.data));\n }\n }, 100);\n }\n }\n }\n\n componentWillUnmount() {\n this.props.registerOnForceUpdate && this.props.registerOnForceUpdate(this.props.attr);\n }\n\n onUpdate = data => {\n const value = ConfigGeneric.getValue(data || this.props.data, this.props.attr) || '';\n if (this.state.value !== value) {\n this.setState({ value });\n } else {\n this.forceUpdate();\n }\n }\n\n static getValue(data, attr) {\n if (typeof attr === 'string') {\n return ConfigGeneric.getValue(data, attr.split('.'));\n } else {\n if (attr.length === 1) {\n return data[attr[0]];\n } else {\n const part = attr.shift();\n if (typeof data[part] === 'object') {\n return ConfigGeneric.getValue(data[part], attr);\n } else {\n return null;\n }\n }\n }\n }\n\n static setValue(data, attr, value) {\n if (typeof attr === 'string') {\n return ConfigGeneric.setValue(data, attr.split('.'), value);\n } else {\n if (attr.length === 1) {\n if (value === null) {\n delete data[attr[0]];\n } else {\n data[attr[0]] = value;\n }\n } else {\n const part = attr.shift();\n if (!data[part] || typeof data[part] === 'object') {\n data[part] = data[part] || {};\n }\n return ConfigGeneric.setValue(data[part], attr, value);\n }\n }\n }\n\n getText(text, noTranslation) {\n if (!text) {\n return '';\n }\n\n if (typeof text === 'string') {\n text = noTranslation ? text : I18n.t(text);\n if (text.includes('${')) {\n return this.getPattern(text);\n } else {\n return text;\n }\n } else if (text && typeof text === 'object') {\n if (text.func) {\n // calculate pattern\n if (typeof text.func === 'object') {\n return this.getPattern(text.func[this.lang] || text.func.en || '');\n } else {\n this.getPattern(text.func);\n }\n } else {\n return text[this.lang] || text.en || '';\n }\n }\n }\n\n renderConfirmDialog() {\n if (!this.state.confirmDialog) {\n return null;\n }\n const confirm = this.state.confirmData || this.props.schema.confirm;\n let icon = null;\n if (confirm.type === 'warning') {\n icon = <IconWarning />;\n } else if (confirm.type === 'error') {\n icon = <IconError />;\n } else if (confirm.type === 'info') {\n icon = <IconInfo />;\n }\n\n return <ConfirmDialog\n title={ this.getText(confirm.title) || I18n.t('ra_Please confirm') }\n text={ this.getText(confirm.text) }\n ok={ this.getText(confirm.ok) || I18n.t('ra_Ok') }\n cancel={ this.getText(confirm.cancel) || I18n.t('ra_Cancel') }\n icon={icon}\n onClose={isOk =>\n this.setState({ confirmDialog: false}, () => {\n if (isOk) {\n const data = JSON.parse(JSON.stringify(this.props.data));\n if (this.state.confirmDepAttr) {\n ConfigGeneric.setValue(data, this.state.confirmDepAttr, this.state.confirmDepNewValue);\n }\n\n ConfigGeneric.setValue(data, this.state.confirmAttr, this.state.confirmNewValue);\n this.setState({confirmDialog: false, confirmDepAttr: null, confirmDepNewValue: null, confirmNewValue: null, confirmAttr: null, confirmOldValue: null, confirmData: null}, () =>\n this.props.onChange(data));\n } else {\n this.setState({confirmDialog: false, confirmDepAttr: null, confirmDepNewValue: null, confirmNewValue: null, confirmAttr: null, confirmOldValue: null, confirmData: null});\n }\n })\n }\n />;\n }\n\n onChange(attr, newValue) {\n const data = JSON.parse(JSON.stringify(this.props.data));\n ConfigGeneric.setValue(data, attr, newValue);\n\n if (this.props.schema.confirm && this.execute(this.props.schema.confirm.condition, false, data, this.props.arrayIndex, this.props.globalData)) {\n return this.setState({\n confirmDialog: true,\n confirmNewValue: newValue,\n confirmAttr: attr,\n confirmData: null,\n });\n } else {\n // find any inputs with confirmation\n if (this.props.schema.confirmDependsOn) {\n for (let z = 0; z < this.props.schema.confirmDependsOn.length; z++) {\n const dep = this.props.schema.confirmDependsOn[z];\n if (dep.confirm) {\n const val = ConfigGeneric.getValue(data, dep.attr);\n\n if (this.execute(dep.confirm.condition, false, data, this.props.arrayIndex, this.props.globalData)) {\n return this.setState({\n confirmDialog: true,\n confirmNewValue: newValue,\n confirmAttr: attr,\n confirmDepNewValue: val,\n confirmDepAttr: dep.attr,\n confirmData: dep.confirm,\n });\n }\n }\n }\n }\n\n const changed = [];\n if (this.props.schema.onChangeDependsOn) {\n for (let z = 0; z < this.props.schema.onChangeDependsOn.length; z++) {\n const dep = this.props.schema.onChangeDependsOn[z];\n if (dep.onChange) {\n const val = ConfigGeneric.getValue(data, dep.attr);\n\n const newValue = this.props.custom ?\n this.executeCustom(dep.onChange.calculateFunc, data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData)\n :\n this.execute(dep.onChange.calculateFunc, val, data, this.props.arrayIndex, this.props.globalData);\n\n if (newValue !== val) {\n ConfigGeneric.setValue(data, dep.attr, newValue);\n changed.push(dep.attr);\n }\n }\n }\n }\n\n if (this.props.schema.hiddenDependsOn) {\n for (let z = 0; z < this.props.schema.hiddenDependsOn.length; z++) {\n const dep = this.props.schema.hiddenDependsOn[z];\n dep.hidden && changed.push(dep.attr);\n }\n }\n\n if (this.props.schema.labelDependsOn) {\n for (let z = 0; z < this.props.schema.labelDependsOn.length; z++) {\n const dep = this.props.schema.labelDependsOn[z];\n dep.hidden && changed.push(dep.attr);\n }\n }\n\n if (this.props.schema.helpDependsOn) {\n for (let z = 0; z < this.props.schema.helpDependsOn.length; z++) {\n const dep = this.props.schema.helpDependsOn[z];\n dep.hidden && changed.push(dep.attr);\n }\n }\n\n if (this.props.schema.onChange && !this.props.schema.onChange.ignoreOwnChanges) {\n const val = ConfigGeneric.getValue(data, this.props.attr);\n\n const newValue = this.props.custom ?\n this.executeCustom(this.props.schema.onChange.calculateFunc, data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData)\n :\n this.execute(this.props.schema.onChange.calculateFunc, val, data, this.props.arrayIndex, this.props.globalData);\n if (newValue !== val) {\n ConfigGeneric.setValue(data, this.props.attr, newValue);\n }\n }\n\n if (this.props.custom) {\n this.props.onChange(attr, newValue);\n\n changed && changed.length && changed.forEach((_attr, i) =>\n setTimeout(() => this.props.onChange(_attr, data[_attr]), i * 50));\n } else {\n this.props.onChange(data, undefined, () =>\n changed.length && this.props.forceUpdate(changed, data));\n }\n }\n }\n\n execute(func, defaultValue, data, arrayIndex, globalData) {\n if (func && typeof func === 'object') {\n func = func.func;\n }\n\n if (!func) {\n return defaultValue;\n } else {\n try {\n // eslint-disable-next-line no-new-func\n const f = new Function('data', 'originalData', '_system', '_alive', '_common', '_socket', '_instance', 'arrayIndex', 'globalData', func.includes('return') ? func : 'return ' + func);\n const result = f(data || this.props.data, this.props.originalData, this.props.systemConfig, this.props.alive, this.props.common, this.props.socket, this.props.instance, arrayIndex, globalData);\n // console.log(result);\n return result;\n } catch (e) {\n console.error(`Cannot execute ${func}: ${e}`);\n return defaultValue;\n }\n }\n }\n\n executeCustom(func, data, customObj, instanceObj, arrayIndex, globalData) {\n if (func && typeof func === 'object') {\n func = func.func;\n }\n\n if (!func) {\n return null;\n } else {\n try {\n // eslint-disable-next-line no-new-func\n const f = new Function('data', 'originalData', '_system', 'instanceObj', 'customObj', '_socket', 'arrayIndex', 'globalData', func.includes('return') ? func : 'return ' + func);\n const result = f(data || this.props.data, this.props.originalData, this.props.systemConfig, instanceObj, customObj, this.props.socket, arrayIndex, globalData);\n console.log(result);\n return result;\n } catch (e) {\n console.error(`Cannot execute ${func}: ${e}`);\n return null;\n }\n }\n }\n\n calculate(schema) {\n let error;\n let disabled;\n let hidden;\n let defaultValue;\n\n if (this.props.custom) {\n error = schema.validator ? !this.executeCustom(schema.validator, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : false;\n disabled = schema.disabled ? this.executeCustom(schema.disabled, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : false;\n hidden = schema.hidden ? this.executeCustom(schema.hidden, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : false;\n defaultValue = schema.defaultFunc ? this.executeCustom(schema.defaultFunc, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : schema.default;\n } else {\n error = schema.validator ? !this.execute(schema.validator, false, this.props.data, this.props.arrayIndex, this.props.globalData) : false;\n disabled = schema.disabled ? this.execute(schema.disabled, false, this.props.data, this.props.arrayIndex, this.props.globalData) : false;\n hidden = schema.hidden ? this.execute(schema.hidden, false, this.props.data, this.props.arrayIndex, this.props.globalData) : false;\n defaultValue = schema.defaultFunc ? this.execute(schema.defaultFunc, schema.default, this.props.data, this.props.arrayIndex, this.props.globalData) : schema.default;\n }\n\n return { error, disabled, hidden, defaultValue };\n }\n\n onError(attr, error) {\n if (!error) {\n delete this.isError[attr];\n } else {\n this.isError[attr] = error;\n }\n\n this.props.onError && this.props.onError(attr, error);\n }\n\n renderItem(error, disabled, defaultValue) {\n return this.getText(this.props.schema.label) || this.getText(this.props.schema.text)\n }\n\n renderHelp(text, link, noTranslation) {\n if (!link) {\n text = this.getText(text, noTranslation) || '';\n if (text && text.includes('<a ')) {\n return Utils.renderTextWithA(text);\n } else {\n return text;\n }\n } else {\n return <a\n href={link}\n target=\"_blank\"\n rel=\"noreferrer\"\n style={{color: this.props.themeType === 'dark' ? '#eee' : '#111'}}\n >{this.getText(text, noTranslation)}</a>;\n }\n }\n\n getPattern(pattern) {\n if (!pattern) {\n return '';\n } else {\n if (typeof pattern === 'object') {\n pattern = pattern.func;\n }\n\n try {\n if (this.props.custom) {\n // eslint-disable-next-line no-new-func\n const f = new Function('data', 'originalData', '_system', 'instanceObj', 'customObj', '_socket', 'return `' + pattern.replace(/`/g, '\\\\`') + '`');\n const result = f(this.props.data, this.props.originalData, this.props.systemConfig, this.props.instanceObj, this.props.customObj, this.props.socket);\n return result;\n } else {\n // eslint-disable-next-line no-new-func\n const f = new Function('data', 'originalData', '_system', '_alive', '_common', '_socket', 'return `' + pattern.replace(/`/g, '\\\\`') + '`');\n return f(this.props.data, this.props.originalData, this.props.systemConfig, this.props.alive, this.props.common, this.props.socket);\n }\n } catch (e) {\n console.error(`Cannot execute ${pattern}: ${e}`);\n return pattern;\n }\n }\n }\n\n render() {\n const schema = this.props.schema;\n\n if (!schema) {\n return null;\n }\n\n const { error, disabled, hidden, defaultValue } = this.calculate(schema);\n\n if (hidden) {\n // Remove all errors if element is hidden\n if (Object.keys(this.isError).length) {\n setTimeout(isError =>\n Object.keys(isError).forEach(attr => this.props.onError(attr)),\n 100, JSON.parse(JSON.stringify(this.isError)));\n this.isError = {};\n }\n\n if (schema.hideOnlyControl) {\n const item = <Grid\n item\n xs={schema.xs || undefined}\n lg={schema.lg || undefined}\n md={schema.md || undefined}\n sm={schema.sm || undefined}\n style={Object.assign(\n {},\n {marginBottom: 0, /*marginRight: 8, */textAlign: 'left'},\n schema.style,\n this.props.themeType === 'dark' ? schema.darkStyle : {}\n )}\n />;\n\n if (schema.newLine) {\n return <>\n <div style={{flexBasis: '100%', height: 0}} />\n {item}\n </>;\n } else {\n return item;\n }\n } else {\n return null;\n }\n } else {\n // Add error\n if (schema.validatorNoSaveOnError) {\n if (error && !Object.keys(this.isError).length) {\n this.isError = {[this.props.attr]: schema.validatorErrorText ? I18n.t(schema.validatorErrorText) : true};\n setTimeout(isError =>\n Object.keys(isError).forEach(attr => this.props.onError(attr, isError[attr])),\n 100, JSON.parse(JSON.stringify(this.isError)));\n } else if (!error && Object.keys(this.isError).length) {\n setTimeout(isError =>\n Object.keys(isError).forEach(attr => this.props.onError(attr)),\n 100, JSON.parse(JSON.stringify(this.isError)));\n this.isError = {};\n }\n }\n\n const item = <Grid\n item\n title={this.getText(schema.tooltip)}\n xs={schema.xs || undefined}\n lg={schema.lg || undefined}\n md={schema.md || undefined}\n sm={schema.sm || undefined}\n style={Object.assign({}, {\n marginBottom: 0,\n //marginRight: 8,\n textAlign: 'left',\n width: schema.type === 'divider' || schema.type === 'header' ? schema.width || '100%' : undefined\n }, schema.style, this.props.themeType === 'dark' ? schema.darkStyle : {})}>\n {this.renderItem(error, disabled || this.props.commandRunning || this.props.disabled, defaultValue)}\n </Grid>;\n\n if (schema.newLine) {\n return <>\n <div style={{flexBasis: '100%', height: 0}} />\n {this.renderConfirmDialog()}\n {item}\n </>;\n } else {\n if (this.state.confirmDialog) {\n return <>\n {this.renderConfirmDialog()}\n {item}\n </>;\n } else {\n return item;\n }\n }\n }\n }\n}\n\nConfigGeneric.propTypes = {\n socket: PropTypes.object.isRequired,\n data: PropTypes.object,\n originalData: PropTypes.object,\n schema: PropTypes.object,\n attr: PropTypes.string,\n value: PropTypes.any,\n themeName: PropTypes.string,\n style: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n customs: PropTypes.object,\n forceUpdate: PropTypes.func.isRequired,\n disabled: PropTypes.bool,\n\n systemConfig: PropTypes.object,\n alive: PropTypes.bool,\n common: PropTypes.object,\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n dateFormat: PropTypes.string,\n isFloatComma: PropTypes.bool,\n\n customObj: PropTypes.object,\n instanceObj: PropTypes.object,\n custom: PropTypes.bool,\n};\n\nexport default ConfigGeneric;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;;IAEMA,a;;;;;EAOF,uBAAYC,KAAZ,EAAmB;IAAA;;IAAA;IACf,0BAAMA,KAAN;IADe,6FAiDR,UAAAC,IAAI,EAAI;MACf,IAAMC,KAAK,GAAGH,aAAa,CAACI,QAAd,CAAuBF,IAAI,IAAI,MAAKD,KAAL,CAAWC,IAA1C,EAAgD,MAAKD,KAAL,CAAWI,IAA3D,KAAoE,EAAlF;;MACA,IAAI,MAAKC,KAAL,CAAWH,KAAX,KAAqBA,KAAzB,EAAgC;QAC5B,MAAKI,QAAL,CAAc;UAAEJ,KAAK,EAALA;QAAF,CAAd;MACH,CAFD,MAEO;QACH,MAAKK,WAAL;MACH;IACJ,CAxDkB;IAGf,MAAKF,KAAL,GAAa;MACTG,aAAa,EAAE,KADN;MAETC,eAAe,EAAE,IAFR;MAGTC,WAAW,EAAE,IAHJ;MAITC,WAAW,EAAE;IAJJ,CAAb;IAOA,MAAKC,OAAL,GAAe,EAAf;;IAEA,IAAI,MAAKZ,KAAL,CAAWa,MAAf,EAAuB;MACnB,IAAI,MAAKb,KAAL,CAAWc,MAAf,EAAuB;QACnB,MAAKC,YAAL,GAAoB,MAAKf,KAAL,CAAWa,MAAX,CAAkBG,WAAlB,GAAgC,MAAKC,aAAL,CAAmB,MAAKjB,KAAL,CAAWa,MAAX,CAAkBG,WAArC,EAAkD,MAAKhB,KAAL,CAAWa,MAAX,WAAlD,EAA6E,MAAKb,KAAL,CAAWC,IAAxF,EAA8F,MAAKD,KAAL,CAAWkB,WAAzG,EAAsH,MAAKlB,KAAL,CAAWmB,UAAjI,EAA6I,MAAKnB,KAAL,CAAWoB,UAAxJ,CAAhC,GAAsM,MAAKpB,KAAL,CAAWa,MAAX,WAA1N;MACH,CAFD,MAEO;QACH,MAAKE,YAAL,GAAoB,MAAKf,KAAL,CAAWa,MAAX,CAAkBG,WAAlB,GAAgC,MAAKK,OAAL,CAAa,MAAKrB,KAAL,CAAWa,MAAX,CAAkBG,WAA/B,EAA4C,MAAKhB,KAAL,CAAWa,MAAX,WAA5C,EAAuE,MAAKb,KAAL,CAAWC,IAAlF,EAAwF,MAAKD,KAAL,CAAWmB,UAAnG,EAA+G,MAAKnB,KAAL,CAAWoB,UAA1H,CAAhC,GAAwK,MAAKpB,KAAL,CAAWa,MAAX,WAA5L;MACH;IACJ;;IAED,MAAKS,IAAL,GAAYC,gBAAA,CAAKC,WAAL,EAAZ;IApBe;EAqBlB;;;;WAED,6BAAoB;MAAA;;MAChB,KAAKxB,KAAL,CAAWyB,qBAAX,IAAoC,KAAKzB,KAAL,CAAWyB,qBAAX,CAAiC,KAAKzB,KAAL,CAAWI,IAA5C,EAAkD,KAAKsB,QAAvD,CAApC;MACA,IAAMC,WAAW,GAAG,CAAC,QAAD,EAAW,cAAX,EAA2B,oBAA3B,CAApB,CAFgB,CAGhB;;MACA,IAAI,KAAKZ,YAAL,KAAsBa,SAA1B,EAAqC;QACjC,IAAM1B,KAAK,GAAGH,aAAa,CAACI,QAAd,CAAuB,KAAKH,KAAL,CAAWC,IAAlC,EAAwC,KAAKD,KAAL,CAAWI,IAAnD,CAAd;;QACA,IAAIF,KAAK,KAAK0B,SAAV,IAAwBD,WAAW,CAACE,QAAZ,CAAqB,KAAK7B,KAAL,CAAWa,MAAX,CAAkBiB,IAAvC,MAAiD5B,KAAK,KAAK,EAAV,IAAgBA,KAAK,KAAK,IAA3E,CAA5B,EAA+G;UAC3G6B,UAAU,CAAC,YAAM;YACb,IAAI,MAAI,CAAC/B,KAAL,CAAWc,MAAf,EAAuB;cACnB,MAAI,CAACd,KAAL,CAAWgC,QAAX,CAAoB,MAAI,CAAChC,KAAL,CAAWI,IAA/B,EAAqC,MAAI,CAACW,YAA1C,EAAwD;gBAAA,OACpD,MAAI,CAACf,KAAL,CAAWO,WAAX,CAAuB,CAAC,MAAI,CAACP,KAAL,CAAWI,IAAZ,CAAvB,EAA0C,MAAI,CAACJ,KAAL,CAAWC,IAArD,CADoD;cAAA,CAAxD,EADmB,CAGnB;;YACH,CAJD,MAIO;cACHF,aAAa,CAACkC,QAAd,CAAuB,MAAI,CAACjC,KAAL,CAAWC,IAAlC,EAAwC,MAAI,CAACD,KAAL,CAAWI,IAAnD,EAAyD,MAAI,CAACW,YAA9D;;cACA,MAAI,CAACf,KAAL,CAAWgC,QAAX,CAAoB,MAAI,CAAChC,KAAL,CAAWC,IAA/B,EAAqC2B,SAArC,EAAgD;gBAAA,OAC5C,MAAI,CAAC5B,KAAL,CAAWO,WAAX,CAAuB,CAAC,MAAI,CAACP,KAAL,CAAWI,IAAZ,CAAvB,EAA0C,MAAI,CAACJ,KAAL,CAAWC,IAArD,CAD4C;cAAA,CAAhD;YAEH;UACJ,CAVS,EAUP,GAVO,CAAV;QAWH;MACJ;IACJ;;;WAED,gCAAuB;MACnB,KAAKD,KAAL,CAAWyB,qBAAX,IAAoC,KAAKzB,KAAL,CAAWyB,qBAAX,CAAiC,KAAKzB,KAAL,CAAWI,IAA5C,CAApC;IACH;;;WAgDD,iBAAQ8B,IAAR,EAAcC,aAAd,EAA6B;MACzB,IAAI,CAACD,IAAL,EAAW;QACP,OAAO,EAAP;MACH;;MAED,IAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;QAC1BA,IAAI,GAAGC,aAAa,GAAGD,IAAH,GAAUX,gBAAA,CAAKa,CAAL,CAAOF,IAAP,CAA9B;;QACA,IAAIA,IAAI,CAACL,QAAL,CAAc,IAAd,CAAJ,EAAyB;UACrB,OAAO,KAAKQ,UAAL,CAAgBH,IAAhB,CAAP;QACH,CAFD,MAEO;UACH,OAAOA,IAAP;QACH;MACJ,CAPD,MAOO,IAAIA,IAAI,IAAI,yBAAOA,IAAP,MAAgB,QAA5B,EAAsC;QACzC,IAAIA,IAAI,CAACI,IAAT,EAAe;UACX;UACA,IAAI,yBAAOJ,IAAI,CAACI,IAAZ,MAAqB,QAAzB,EAAmC;YAC/B,OAAO,KAAKD,UAAL,CAAgBH,IAAI,CAACI,IAAL,CAAU,KAAKhB,IAAf,KAAwBY,IAAI,CAACI,IAAL,CAAUC,EAAlC,IAAwC,EAAxD,CAAP;UACH,CAFD,MAEO;YACH,KAAKF,UAAL,CAAgBH,IAAI,CAACI,IAArB;UACH;QACJ,CAPD,MAOO;UACH,OAAOJ,IAAI,CAAC,KAAKZ,IAAN,CAAJ,IAAmBY,IAAI,CAACK,EAAxB,IAA8B,EAArC;QACH;MACJ;IACJ;;;WAED,+BAAsB;MAAA;;MAClB,IAAI,CAAC,KAAKlC,KAAL,CAAWG,aAAhB,EAA+B;QAC3B,OAAO,IAAP;MACH;;MACD,IAAMgC,OAAO,GAAG,KAAKnC,KAAL,CAAWM,WAAX,IAA0B,KAAKX,KAAL,CAAWa,MAAX,CAAkB2B,OAA5D;MACA,IAAIC,IAAI,GAAG,IAAX;;MACA,IAAID,OAAO,CAACV,IAAR,KAAiB,SAArB,EAAgC;QAC5BW,IAAI,gBAAG,gCAAC,mBAAD,OAAP;MACH,CAFD,MAEO,IAAID,OAAO,CAACV,IAAR,KAAiB,OAArB,EAA8B;QACjCW,IAAI,gBAAG,gCAAC,iBAAD,OAAP;MACH,CAFM,MAEA,IAAID,OAAO,CAACV,IAAR,KAAiB,MAArB,EAA6B;QAChCW,IAAI,gBAAG,gCAAC,gBAAD,OAAP;MACH;;MAED,oBAAO,gCAAC,mBAAD;QACH,KAAK,EAAG,KAAKC,OAAL,CAAaF,OAAO,CAACG,KAArB,KAA+BpB,gBAAA,CAAKa,CAAL,CAAO,mBAAP,CADpC;QAEH,IAAI,EAAG,KAAKM,OAAL,CAAaF,OAAO,CAACN,IAArB,CAFJ;QAGH,EAAE,EAAG,KAAKQ,OAAL,CAAaF,OAAO,CAACI,EAArB,KAA4BrB,gBAAA,CAAKa,CAAL,CAAO,OAAP,CAH9B;QAIH,MAAM,EAAG,KAAKM,OAAL,CAAaF,OAAO,CAACK,MAArB,KAAgCtB,gBAAA,CAAKa,CAAL,CAAO,WAAP,CAJtC;QAKH,IAAI,EAAEK,IALH;QAMH,OAAO,EAAE,iBAAAK,IAAI;UAAA,OACT,MAAI,CAACxC,QAAL,CAAc;YAAEE,aAAa,EAAE;UAAjB,CAAd,EAAuC,YAAM;YACzC,IAAIsC,IAAJ,EAAU;cACN,IAAM7C,IAAI,GAAG8C,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAe,MAAI,CAACjD,KAAL,CAAWC,IAA1B,CAAX,CAAb;;cACA,IAAI,MAAI,CAACI,KAAL,CAAW6C,cAAf,EAA+B;gBAC3BnD,aAAa,CAACkC,QAAd,CAAuBhC,IAAvB,EAA6B,MAAI,CAACI,KAAL,CAAW6C,cAAxC,EAAwD,MAAI,CAAC7C,KAAL,CAAW8C,kBAAnE;cACH;;cAEDpD,aAAa,CAACkC,QAAd,CAAuBhC,IAAvB,EAA6B,MAAI,CAACI,KAAL,CAAWK,WAAxC,EAAqD,MAAI,CAACL,KAAL,CAAWI,eAAhE;;cACA,MAAI,CAACH,QAAL,CAAc;gBAACE,aAAa,EAAE,KAAhB;gBAAuB0C,cAAc,EAAE,IAAvC;gBAA6CC,kBAAkB,EAAE,IAAjE;gBAAuE1C,eAAe,EAAE,IAAxF;gBAA8FC,WAAW,EAAE,IAA3G;gBAAiH0C,eAAe,EAAE,IAAlI;gBAAwIzC,WAAW,EAAE;cAArJ,CAAd,EAA0K;gBAAA,OACtK,MAAI,CAACX,KAAL,CAAWgC,QAAX,CAAoB/B,IAApB,CADsK;cAAA,CAA1K;YAEH,CATD,MASO;cACH,MAAI,CAACK,QAAL,CAAc;gBAACE,aAAa,EAAE,KAAhB;gBAAuB0C,cAAc,EAAE,IAAvC;gBAA6CC,kBAAkB,EAAE,IAAjE;gBAAuE1C,eAAe,EAAE,IAAxF;gBAA8FC,WAAW,EAAE,IAA3G;gBAAiH0C,eAAe,EAAE,IAAlI;gBAAwIzC,WAAW,EAAE;cAArJ,CAAd;YACH;UACJ,CAbD,CADS;QAAA;MANV,EAAP;IAuBH;;;WAED,kBAASP,IAAT,EAAeiD,QAAf,EAAyB;MAAA;;MACrB,IAAMpD,IAAI,GAAG8C,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAe,KAAKjD,KAAL,CAAWC,IAA1B,CAAX,CAAb;MACAF,aAAa,CAACkC,QAAd,CAAuBhC,IAAvB,EAA6BG,IAA7B,EAAmCiD,QAAnC;;MAEA,IAAI,KAAKrD,KAAL,CAAWa,MAAX,CAAkB2B,OAAlB,IAA6B,KAAKnB,OAAL,CAAa,KAAKrB,KAAL,CAAWa,MAAX,CAAkB2B,OAAlB,CAA0Bc,SAAvC,EAAkD,KAAlD,EAAyDrD,IAAzD,EAA+D,KAAKD,KAAL,CAAWmB,UAA1E,EAAsF,KAAKnB,KAAL,CAAWoB,UAAjG,CAAjC,EAA+I;QAC3I,OAAO,KAAKd,QAAL,CAAc;UACjBE,aAAa,EAAE,IADE;UAEjBC,eAAe,EAAE4C,QAFA;UAGjB3C,WAAW,EAAEN,IAHI;UAIjBO,WAAW,EAAE;QAJI,CAAd,CAAP;MAMH,CAPD,MAOO;QACH;QACA,IAAI,KAAKX,KAAL,CAAWa,MAAX,CAAkB0C,gBAAtB,EAAwC;UACpC,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKxD,KAAL,CAAWa,MAAX,CAAkB0C,gBAAlB,CAAmCE,MAAvD,EAA+DD,CAAC,EAAhE,EAAoE;YAChE,IAAME,GAAG,GAAG,KAAK1D,KAAL,CAAWa,MAAX,CAAkB0C,gBAAlB,CAAmCC,CAAnC,CAAZ;;YACA,IAAIE,GAAG,CAAClB,OAAR,EAAiB;cACb,IAAMmB,GAAG,GAAG5D,aAAa,CAACI,QAAd,CAAuBF,IAAvB,EAA6ByD,GAAG,CAACtD,IAAjC,CAAZ;;cAEA,IAAI,KAAKiB,OAAL,CAAaqC,GAAG,CAAClB,OAAJ,CAAYc,SAAzB,EAAoC,KAApC,EAA2CrD,IAA3C,EAAiD,KAAKD,KAAL,CAAWmB,UAA5D,EAAwE,KAAKnB,KAAL,CAAWoB,UAAnF,CAAJ,EAAoG;gBAChG,OAAO,KAAKd,QAAL,CAAc;kBACjBE,aAAa,EAAE,IADE;kBAEjBC,eAAe,EAAE4C,QAFA;kBAGjB3C,WAAW,EAAEN,IAHI;kBAIjB+C,kBAAkB,EAAEQ,GAJH;kBAKjBT,cAAc,EAAEQ,GAAG,CAACtD,IALH;kBAMjBO,WAAW,EAAE+C,GAAG,CAAClB;gBANA,CAAd,CAAP;cAQH;YACJ;UACJ;QACJ;;QAED,IAAMoB,OAAO,GAAG,EAAhB;;QACA,IAAI,KAAK5D,KAAL,CAAWa,MAAX,CAAkBgD,iBAAtB,EAAyC;UACrC,KAAK,IAAIL,EAAC,GAAG,CAAb,EAAgBA,EAAC,GAAG,KAAKxD,KAAL,CAAWa,MAAX,CAAkBgD,iBAAlB,CAAoCJ,MAAxD,EAAgED,EAAC,EAAjE,EAAqE;YACjE,IAAME,IAAG,GAAG,KAAK1D,KAAL,CAAWa,MAAX,CAAkBgD,iBAAlB,CAAoCL,EAApC,CAAZ;;YACA,IAAIE,IAAG,CAAC1B,QAAR,EAAkB;cACd,IAAM2B,IAAG,GAAG5D,aAAa,CAACI,QAAd,CAAuBF,IAAvB,EAA6ByD,IAAG,CAACtD,IAAjC,CAAZ;;cAEA,IAAMiD,SAAQ,GAAG,KAAKrD,KAAL,CAAWc,MAAX,GACb,KAAKG,aAAL,CAAmByC,IAAG,CAAC1B,QAAJ,CAAa8B,aAAhC,EAA+C7D,IAA/C,EAAqD,KAAKD,KAAL,CAAW+D,SAAhE,EAA2E,KAAK/D,KAAL,CAAWkB,WAAtF,EAAmG,KAAKlB,KAAL,CAAWmB,UAA9G,EAA0H,KAAKnB,KAAL,CAAWoB,UAArI,CADa,GAGb,KAAKC,OAAL,CAAaqC,IAAG,CAAC1B,QAAJ,CAAa8B,aAA1B,EAAyCH,IAAzC,EAA8C1D,IAA9C,EAAoD,KAAKD,KAAL,CAAWmB,UAA/D,EAA2E,KAAKnB,KAAL,CAAWoB,UAAtF,CAHJ;;cAKA,IAAIiC,SAAQ,KAAKM,IAAjB,EAAsB;gBAClB5D,aAAa,CAACkC,QAAd,CAAuBhC,IAAvB,EAA6ByD,IAAG,CAACtD,IAAjC,EAAuCiD,SAAvC;gBACAO,OAAO,CAACI,IAAR,CAAaN,IAAG,CAACtD,IAAjB;cACH;YACJ;UACJ;QACJ;;QAED,IAAI,KAAKJ,KAAL,CAAWa,MAAX,CAAkBoD,eAAtB,EAAuC;UACnC,KAAK,IAAIT,GAAC,GAAG,CAAb,EAAgBA,GAAC,GAAG,KAAKxD,KAAL,CAAWa,MAAX,CAAkBoD,eAAlB,CAAkCR,MAAtD,EAA8DD,GAAC,EAA/D,EAAmE;YAC/D,IAAME,KAAG,GAAG,KAAK1D,KAAL,CAAWa,MAAX,CAAkBoD,eAAlB,CAAkCT,GAAlC,CAAZ;YACAE,KAAG,CAACQ,MAAJ,IAAcN,OAAO,CAACI,IAAR,CAAaN,KAAG,CAACtD,IAAjB,CAAd;UACH;QACJ;;QAED,IAAI,KAAKJ,KAAL,CAAWa,MAAX,CAAkBsD,cAAtB,EAAsC;UAClC,KAAK,IAAIX,GAAC,GAAG,CAAb,EAAgBA,GAAC,GAAG,KAAKxD,KAAL,CAAWa,MAAX,CAAkBsD,cAAlB,CAAiCV,MAArD,EAA6DD,GAAC,EAA9D,EAAkE;YAC9D,IAAME,KAAG,GAAG,KAAK1D,KAAL,CAAWa,MAAX,CAAkBsD,cAAlB,CAAiCX,GAAjC,CAAZ;YACAE,KAAG,CAACQ,MAAJ,IAAcN,OAAO,CAACI,IAAR,CAAaN,KAAG,CAACtD,IAAjB,CAAd;UACH;QACJ;;QAED,IAAI,KAAKJ,KAAL,CAAWa,MAAX,CAAkBuD,aAAtB,EAAqC;UACjC,KAAK,IAAIZ,GAAC,GAAG,CAAb,EAAgBA,GAAC,GAAG,KAAKxD,KAAL,CAAWa,MAAX,CAAkBuD,aAAlB,CAAgCX,MAApD,EAA4DD,GAAC,EAA7D,EAAiE;YAC7D,IAAME,KAAG,GAAG,KAAK1D,KAAL,CAAWa,MAAX,CAAkBuD,aAAlB,CAAgCZ,GAAhC,CAAZ;YACAE,KAAG,CAACQ,MAAJ,IAAcN,OAAO,CAACI,IAAR,CAAaN,KAAG,CAACtD,IAAjB,CAAd;UACH;QACJ;;QAED,IAAI,KAAKJ,KAAL,CAAWa,MAAX,CAAkBmB,QAAlB,IAA8B,CAAC,KAAKhC,KAAL,CAAWa,MAAX,CAAkBmB,QAAlB,CAA2BqC,gBAA9D,EAAgF;UAC5E,IAAMV,KAAG,GAAG5D,aAAa,CAACI,QAAd,CAAuBF,IAAvB,EAA6B,KAAKD,KAAL,CAAWI,IAAxC,CAAZ;;UAEA,IAAMiD,UAAQ,GAAG,KAAKrD,KAAL,CAAWc,MAAX,GACb,KAAKG,aAAL,CAAmB,KAAKjB,KAAL,CAAWa,MAAX,CAAkBmB,QAAlB,CAA2B8B,aAA9C,EAA6D7D,IAA7D,EAAmE,KAAKD,KAAL,CAAW+D,SAA9E,EAAyF,KAAK/D,KAAL,CAAWkB,WAApG,EAAiH,KAAKlB,KAAL,CAAWmB,UAA5H,EAAwI,KAAKnB,KAAL,CAAWoB,UAAnJ,CADa,GAGb,KAAKC,OAAL,CAAa,KAAKrB,KAAL,CAAWa,MAAX,CAAkBmB,QAAlB,CAA2B8B,aAAxC,EAAuDH,KAAvD,EAA4D1D,IAA5D,EAAkE,KAAKD,KAAL,CAAWmB,UAA7E,EAAyF,KAAKnB,KAAL,CAAWoB,UAApG,CAHJ;;UAIA,IAAIiC,UAAQ,KAAKM,KAAjB,EAAsB;YAClB5D,aAAa,CAACkC,QAAd,CAAuBhC,IAAvB,EAA6B,KAAKD,KAAL,CAAWI,IAAxC,EAA8CiD,UAA9C;UACH;QACJ;;QAED,IAAI,KAAKrD,KAAL,CAAWc,MAAf,EAAuB;UACnB,KAAKd,KAAL,CAAWgC,QAAX,CAAoB5B,IAApB,EAA0BiD,QAA1B;UAEAO,OAAO,IAAIA,OAAO,CAACH,MAAnB,IAA6BG,OAAO,CAACU,OAAR,CAAgB,UAACC,KAAD,EAASC,CAAT;YAAA,OACzCzC,UAAU,CAAC;cAAA,OAAM,MAAI,CAAC/B,KAAL,CAAWgC,QAAX,CAAoBuC,KAApB,EAA2BtE,IAAI,CAACsE,KAAD,CAA/B,CAAN;YAAA,CAAD,EAAgDC,CAAC,GAAG,EAApD,CAD+B;UAAA,CAAhB,CAA7B;QAEH,CALD,MAKO;UACH,KAAKxE,KAAL,CAAWgC,QAAX,CAAoB/B,IAApB,EAA0B2B,SAA1B,EAAqC;YAAA,OACjCgC,OAAO,CAACH,MAAR,IAAkB,MAAI,CAACzD,KAAL,CAAWO,WAAX,CAAuBqD,OAAvB,EAAgC3D,IAAhC,CADe;UAAA,CAArC;QAEH;MACJ;IACJ;;;WAED,iBAAQqC,IAAR,EAAcvB,YAAd,EAA4Bd,IAA5B,EAAkCkB,UAAlC,EAA8CC,UAA9C,EAA0D;MACtD,IAAIkB,IAAI,IAAI,yBAAOA,IAAP,MAAgB,QAA5B,EAAsC;QAClCA,IAAI,GAAGA,IAAI,CAACA,IAAZ;MACH;;MAED,IAAI,CAACA,IAAL,EAAW;QACP,OAAOvB,YAAP;MACH,CAFD,MAEO;QACH,IAAI;UACA;UACA,IAAM0D,CAAC,GAAG,IAAIC,QAAJ,CAAa,MAAb,EAAqB,cAArB,EAAqC,SAArC,EAAgD,QAAhD,EAA0D,SAA1D,EAAqE,SAArE,EAAgF,WAAhF,EAA6F,YAA7F,EAA2G,YAA3G,EAAyHpC,IAAI,CAACT,QAAL,CAAc,QAAd,IAA0BS,IAA1B,GAAiC,YAAYA,IAAtK,CAAV;UACA,IAAMqC,MAAM,GAAGF,CAAC,CAACxE,IAAI,IAAI,KAAKD,KAAL,CAAWC,IAApB,EAA0B,KAAKD,KAAL,CAAW4E,YAArC,EAAmD,KAAK5E,KAAL,CAAW6E,YAA9D,EAA4E,KAAK7E,KAAL,CAAW8E,KAAvF,EAA8F,KAAK9E,KAAL,CAAW+E,MAAzG,EAAiH,KAAK/E,KAAL,CAAWgF,MAA5H,EAAoI,KAAKhF,KAAL,CAAWiF,QAA/I,EAAyJ9D,UAAzJ,EAAqKC,UAArK,CAAhB,CAHA,CAIA;;UACA,OAAOuD,MAAP;QACH,CAND,CAME,OAAOO,CAAP,EAAU;UACRC,OAAO,CAACC,KAAR,0BAAgC9C,IAAhC,eAAyC4C,CAAzC;UACA,OAAOnE,YAAP;QACH;MACJ;IACJ;;;WAED,uBAAcuB,IAAd,EAAoBrC,IAApB,EAA0B8D,SAA1B,EAAqC7C,WAArC,EAAkDC,UAAlD,EAA8DC,UAA9D,EAA0E;MACtE,IAAIkB,IAAI,IAAI,yBAAOA,IAAP,MAAgB,QAA5B,EAAsC;QAClCA,IAAI,GAAGA,IAAI,CAACA,IAAZ;MACH;;MAED,IAAI,CAACA,IAAL,EAAW;QACP,OAAO,IAAP;MACH,CAFD,MAEO;QACH,IAAI;UACA;UACA,IAAMmC,CAAC,GAAG,IAAIC,QAAJ,CAAa,MAAb,EAAqB,cAArB,EAAqC,SAArC,EAAgD,aAAhD,EAA+D,WAA/D,EAA4E,SAA5E,EAAuF,YAAvF,EAAqG,YAArG,EAAmHpC,IAAI,CAACT,QAAL,CAAc,QAAd,IAA0BS,IAA1B,GAAiC,YAAYA,IAAhK,CAAV;UACA,IAAMqC,MAAM,GAAGF,CAAC,CAACxE,IAAI,IAAI,KAAKD,KAAL,CAAWC,IAApB,EAA0B,KAAKD,KAAL,CAAW4E,YAArC,EAAmD,KAAK5E,KAAL,CAAW6E,YAA9D,EAA4E3D,WAA5E,EAAyF6C,SAAzF,EAAoG,KAAK/D,KAAL,CAAWgF,MAA/G,EAAuH7D,UAAvH,EAAmIC,UAAnI,CAAhB;UACA+D,OAAO,CAACE,GAAR,CAAYV,MAAZ;UACA,OAAOA,MAAP;QACH,CAND,CAME,OAAOO,CAAP,EAAU;UACRC,OAAO,CAACC,KAAR,0BAAgC9C,IAAhC,eAAyC4C,CAAzC;UACA,OAAO,IAAP;QACH;MACJ;IACJ;;;WAED,mBAAUrE,MAAV,EAAkB;MACd,IAAIuE,KAAJ;MACA,IAAIE,QAAJ;MACA,IAAIpB,MAAJ;MACA,IAAInD,YAAJ;;MAEA,IAAI,KAAKf,KAAL,CAAWc,MAAf,EAAuB;QACnBsE,KAAK,GAAUvE,MAAM,CAAC0E,SAAP,GAAqB,CAAC,KAAKtE,aAAL,CAAmBJ,MAAM,CAAC0E,SAA1B,EAAsC,KAAKvF,KAAL,CAAWC,IAAjD,EAAuD,KAAKD,KAAL,CAAW+D,SAAlE,EAA6E,KAAK/D,KAAL,CAAWkB,WAAxF,EAAqG,KAAKlB,KAAL,CAAWmB,UAAhH,EAA4H,KAAKnB,KAAL,CAAWoB,UAAvI,CAAtB,GAA2K,KAA1L;QACAkE,QAAQ,GAAOzE,MAAM,CAACyE,QAAP,GAAqB,KAAKrE,aAAL,CAAmBJ,MAAM,CAACyE,QAA1B,EAAuC,KAAKtF,KAAL,CAAWC,IAAlD,EAAwD,KAAKD,KAAL,CAAW+D,SAAnE,EAA8E,KAAK/D,KAAL,CAAWkB,WAAzF,EAAsG,KAAKlB,KAAL,CAAWmB,UAAjH,EAA6H,KAAKnB,KAAL,CAAWoB,UAAxI,CAArB,GAA2K,KAA1L;QACA8C,MAAM,GAASrD,MAAM,CAACqD,MAAP,GAAqB,KAAKjD,aAAL,CAAmBJ,MAAM,CAACqD,MAA1B,EAAuC,KAAKlE,KAAL,CAAWC,IAAlD,EAAwD,KAAKD,KAAL,CAAW+D,SAAnE,EAA8E,KAAK/D,KAAL,CAAWkB,WAAzF,EAAsG,KAAKlB,KAAL,CAAWmB,UAAjH,EAA6H,KAAKnB,KAAL,CAAWoB,UAAxI,CAArB,GAA2K,KAA1L;QACAL,YAAY,GAAGF,MAAM,CAACG,WAAP,GAAqB,KAAKC,aAAL,CAAmBJ,MAAM,CAACG,WAA1B,EAAuC,KAAKhB,KAAL,CAAWC,IAAlD,EAAwD,KAAKD,KAAL,CAAW+D,SAAnE,EAA8E,KAAK/D,KAAL,CAAWkB,WAAzF,EAAsG,KAAKlB,KAAL,CAAWmB,UAAjH,EAA6H,KAAKnB,KAAL,CAAWoB,UAAxI,CAArB,GAA2KP,MAAM,WAAhM;MACH,CALD,MAKO;QACHuE,KAAK,GAAUvE,MAAM,CAAC0E,SAAP,GAAqB,CAAC,KAAKlE,OAAL,CAAaR,MAAM,CAAC0E,SAApB,EAAgC,KAAhC,EAAuC,KAAKvF,KAAL,CAAWC,IAAlD,EAAwD,KAAKD,KAAL,CAAWmB,UAAnE,EAA+E,KAAKnB,KAAL,CAAWoB,UAA1F,CAAtB,GAAgI,KAA/I;QACAkE,QAAQ,GAAOzE,MAAM,CAACyE,QAAP,GAAqB,KAAKjE,OAAL,CAAaR,MAAM,CAACyE,QAApB,EAAiC,KAAjC,EAAwC,KAAKtF,KAAL,CAAWC,IAAnD,EAAyD,KAAKD,KAAL,CAAWmB,UAApE,EAAgF,KAAKnB,KAAL,CAAWoB,UAA3F,CAArB,GAAgI,KAA/I;QACA8C,MAAM,GAASrD,MAAM,CAACqD,MAAP,GAAqB,KAAK7C,OAAL,CAAaR,MAAM,CAACqD,MAApB,EAAiC,KAAjC,EAAwC,KAAKlE,KAAL,CAAWC,IAAnD,EAAyD,KAAKD,KAAL,CAAWmB,UAApE,EAAgF,KAAKnB,KAAL,CAAWoB,UAA3F,CAArB,GAAgI,KAA/I;QACAL,YAAY,GAAGF,MAAM,CAACG,WAAP,GAAqB,KAAKK,OAAL,CAAaR,MAAM,CAACG,WAApB,EAAiCH,MAAM,WAAvC,EAAiD,KAAKb,KAAL,CAAWC,IAA5D,EAAkE,KAAKD,KAAL,CAAWmB,UAA7E,EAAyF,KAAKnB,KAAL,CAAWoB,UAApG,CAArB,GAAuIP,MAAM,WAA5J;MACH;;MAED,OAAO;QAAEuE,KAAK,EAALA,KAAF;QAASE,QAAQ,EAARA,QAAT;QAAmBpB,MAAM,EAANA,MAAnB;QAA2BnD,YAAY,EAAZA;MAA3B,CAAP;IACH;;;WAED,iBAAQX,IAAR,EAAcgF,KAAd,EAAqB;MACjB,IAAI,CAACA,KAAL,EAAY;QACR,OAAO,KAAKxE,OAAL,CAAaR,IAAb,CAAP;MACH,CAFD,MAEO;QACH,KAAKQ,OAAL,CAAaR,IAAb,IAAqBgF,KAArB;MACH;;MAED,KAAKpF,KAAL,CAAWwF,OAAX,IAAsB,KAAKxF,KAAL,CAAWwF,OAAX,CAAmBpF,IAAnB,EAAyBgF,KAAzB,CAAtB;IACH;;;WAED,oBAAWA,KAAX,EAAkBE,QAAlB,EAA4BvE,YAA5B,EAA0C;MACtC,OAAO,KAAK2B,OAAL,CAAa,KAAK1C,KAAL,CAAWa,MAAX,CAAkB4E,KAA/B,KAAyC,KAAK/C,OAAL,CAAa,KAAK1C,KAAL,CAAWa,MAAX,CAAkBqB,IAA/B,CAAhD;IACH;;;WAED,oBAAWA,IAAX,EAAiBwD,IAAjB,EAAuBvD,aAAvB,EAAsC;MAClC,IAAI,CAACuD,IAAL,EAAW;QACPxD,IAAI,GAAG,KAAKQ,OAAL,CAAaR,IAAb,EAAmBC,aAAnB,KAAqC,EAA5C;;QACA,IAAID,IAAI,IAAIA,IAAI,CAACL,QAAL,CAAc,KAAd,CAAZ,EAAkC;UAC9B,OAAO8D,iBAAA,CAAMC,eAAN,CAAsB1D,IAAtB,CAAP;QACH,CAFD,MAEO;UACH,OAAOA,IAAP;QACH;MACJ,CAPD,MAOO;QACH,oBAAO;UACH,IAAI,EAAEwD,IADH;UAEH,MAAM,EAAC,QAFJ;UAGH,GAAG,EAAC,YAHD;UAIH,KAAK,EAAE;YAACG,KAAK,EAAE,KAAK7F,KAAL,CAAW8F,SAAX,KAAyB,MAAzB,GAAkC,MAAlC,GAA2C;UAAnD;QAJJ,GAKL,KAAKpD,OAAL,CAAaR,IAAb,EAAmBC,aAAnB,CALK,CAAP;MAMH;IACJ;;;WAED,oBAAW4D,OAAX,EAAoB;MAChB,IAAI,CAACA,OAAL,EAAc;QACV,OAAO,EAAP;MACH,CAFD,MAEO;QACH,IAAI,yBAAOA,OAAP,MAAmB,QAAvB,EAAiC;UAC7BA,OAAO,GAAGA,OAAO,CAACzD,IAAlB;QACH;;QAED,IAAI;UACA,IAAI,KAAKtC,KAAL,CAAWc,MAAf,EAAuB;YACnB;YACA,IAAM2D,CAAC,GAAG,IAAIC,QAAJ,CAAa,MAAb,EAAqB,cAArB,EAAqC,SAArC,EAAgD,aAAhD,EAA+D,WAA/D,EAA4E,SAA5E,EAAuF,aAAaqB,OAAO,CAACC,OAAR,CAAgB,IAAhB,EAAsB,KAAtB,CAAb,GAA4C,GAAnI,CAAV;YACA,IAAMrB,MAAM,GAAGF,CAAC,CAAC,KAAKzE,KAAL,CAAWC,IAAZ,EAAkB,KAAKD,KAAL,CAAW4E,YAA7B,EAA2C,KAAK5E,KAAL,CAAW6E,YAAtD,EAAoE,KAAK7E,KAAL,CAAWkB,WAA/E,EAA6F,KAAKlB,KAAL,CAAW+D,SAAxG,EAAmH,KAAK/D,KAAL,CAAWgF,MAA9H,CAAhB;YACA,OAAOL,MAAP;UACH,CALD,MAKO;YACH;YACA,IAAMF,EAAC,GAAG,IAAIC,QAAJ,CAAa,MAAb,EAAqB,cAArB,EAAqC,SAArC,EAAgD,QAAhD,EAA0D,SAA1D,EAAqE,SAArE,EAAgF,aAAaqB,OAAO,CAACC,OAAR,CAAgB,IAAhB,EAAsB,KAAtB,CAAb,GAA4C,GAA5H,CAAV;;YACA,OAAOvB,EAAC,CAAC,KAAKzE,KAAL,CAAWC,IAAZ,EAAkB,KAAKD,KAAL,CAAW4E,YAA7B,EAA2C,KAAK5E,KAAL,CAAW6E,YAAtD,EAAoE,KAAK7E,KAAL,CAAW8E,KAA/E,EAAsF,KAAK9E,KAAL,CAAW+E,MAAjG,EAAyG,KAAK/E,KAAL,CAAWgF,MAApH,CAAR;UACH;QACJ,CAXD,CAWE,OAAOE,CAAP,EAAU;UACRC,OAAO,CAACC,KAAR,0BAAgCW,OAAhC,eAA4Cb,CAA5C;UACA,OAAOa,OAAP;QACH;MACJ;IACJ;;;WAED,kBAAS;MAAA;;MACL,IAAMlF,MAAM,GAAG,KAAKb,KAAL,CAAWa,MAA1B;;MAEA,IAAI,CAACA,MAAL,EAAa;QACT,OAAO,IAAP;MACH;;MAED,sBAAkD,KAAKoF,SAAL,CAAepF,MAAf,CAAlD;MAAA,IAAQuE,KAAR,mBAAQA,KAAR;MAAA,IAAeE,QAAf,mBAAeA,QAAf;MAAA,IAAyBpB,MAAzB,mBAAyBA,MAAzB;MAAA,IAAiCnD,YAAjC,mBAAiCA,YAAjC;;MAEA,IAAImD,MAAJ,EAAY;QACR;QACA,IAAIgC,MAAM,CAACC,IAAP,CAAY,KAAKvF,OAAjB,EAA0B6C,MAA9B,EAAsC;UAClC1B,UAAU,CAAC,UAAAnB,OAAO;YAAA,OACdsF,MAAM,CAACC,IAAP,CAAYvF,OAAZ,EAAqB0D,OAArB,CAA6B,UAAAlE,IAAI;cAAA,OAAI,MAAI,CAACJ,KAAL,CAAWwF,OAAX,CAAmBpF,IAAnB,CAAJ;YAAA,CAAjC,CADc;UAAA,CAAR,EAEN,GAFM,EAED2C,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAe,KAAKrC,OAApB,CAAX,CAFC,CAAV;UAGA,KAAKA,OAAL,GAAe,EAAf;QACH;;QAED,IAAIC,MAAM,CAACuF,eAAX,EAA4B;UACxB,IAAMC,IAAI,gBAAG,gCAAC,gBAAD;YACT,IAAI,MADK;YAET,EAAE,EAAExF,MAAM,CAACyF,EAAP,IAAa1E,SAFR;YAGT,EAAE,EAAEf,MAAM,CAAC0F,EAAP,IAAa3E,SAHR;YAIT,EAAE,EAAEf,MAAM,CAAC2F,EAAP,IAAa5E,SAJR;YAKT,EAAE,EAAEf,MAAM,CAAC4F,EAAP,IAAa7E,SALR;YAMT,KAAK,EAAEsE,MAAM,CAACQ,MAAP,CACH,EADG,EAEH;cAACC,YAAY,EAAE,CAAf;;cAAkB;cAAoBC,SAAS,EAAE;YAAjD,CAFG,EAGH/F,MAAM,CAACgG,KAHJ,EAIH,KAAK7G,KAAL,CAAW8F,SAAX,KAAyB,MAAzB,GAAkCjF,MAAM,CAACiG,SAAzC,GAAqD,EAJlD;UANE,EAAb;;UAcA,IAAIjG,MAAM,CAACkG,OAAX,EAAoB;YAChB,oBAAO,+EACH;cAAK,KAAK,EAAE;gBAACC,SAAS,EAAE,MAAZ;gBAAoBC,MAAM,EAAE;cAA5B;YAAZ,EADG,EAEFZ,IAFE,CAAP;UAIH,CALD,MAKO;YACH,OAAOA,IAAP;UACH;QACJ,CAvBD,MAuBO;UACH,OAAO,IAAP;QACH;MACJ,CAnCD,MAmCO;QACH;QACA,IAAIxF,MAAM,CAACqG,sBAAX,EAAmC;UAC/B,IAAI9B,KAAK,IAAI,CAACc,MAAM,CAACC,IAAP,CAAY,KAAKvF,OAAjB,EAA0B6C,MAAxC,EAAgD;YAC5C,KAAK7C,OAAL,wCAAiB,KAAKZ,KAAL,CAAWI,IAA5B,EAAmCS,MAAM,CAACsG,kBAAP,GAA4B5F,gBAAA,CAAKa,CAAL,CAAOvB,MAAM,CAACsG,kBAAd,CAA5B,GAAgE,IAAnG;YACApF,UAAU,CAAC,UAAAnB,OAAO;cAAA,OACVsF,MAAM,CAACC,IAAP,CAAYvF,OAAZ,EAAqB0D,OAArB,CAA6B,UAAAlE,IAAI;gBAAA,OAAI,MAAI,CAACJ,KAAL,CAAWwF,OAAX,CAAmBpF,IAAnB,EAAyBQ,OAAO,CAACR,IAAD,CAAhC,CAAJ;cAAA,CAAjC,CADU;YAAA,CAAR,EAEN,GAFM,EAED2C,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAe,KAAKrC,OAApB,CAAX,CAFC,CAAV;UAGH,CALD,MAKO,IAAI,CAACwE,KAAD,IAAUc,MAAM,CAACC,IAAP,CAAY,KAAKvF,OAAjB,EAA0B6C,MAAxC,EAAgD;YACnD1B,UAAU,CAAC,UAAAnB,OAAO;cAAA,OACVsF,MAAM,CAACC,IAAP,CAAYvF,OAAZ,EAAqB0D,OAArB,CAA6B,UAAAlE,IAAI;gBAAA,OAAI,MAAI,CAACJ,KAAL,CAAWwF,OAAX,CAAmBpF,IAAnB,CAAJ;cAAA,CAAjC,CADU;YAAA,CAAR,EAEN,GAFM,EAED2C,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAe,KAAKrC,OAApB,CAAX,CAFC,CAAV;YAGA,KAAKA,OAAL,GAAe,EAAf;UACH;QACJ;;QAED,IAAMyF,KAAI,gBAAG,gCAAC,gBAAD;UACT,IAAI,MADK;UAET,KAAK,EAAE,KAAK3D,OAAL,CAAa7B,MAAM,CAACuG,OAApB,CAFE;UAGT,EAAE,EAAEvG,MAAM,CAACyF,EAAP,IAAa1E,SAHR;UAIT,EAAE,EAAEf,MAAM,CAAC0F,EAAP,IAAa3E,SAJR;UAKT,EAAE,EAAEf,MAAM,CAAC2F,EAAP,IAAa5E,SALR;UAMT,EAAE,EAAEf,MAAM,CAAC4F,EAAP,IAAa7E,SANR;UAOT,KAAK,EAAEsE,MAAM,CAACQ,MAAP,CAAc,EAAd,EAAkB;YACrBC,YAAY,EAAE,CADO;YAErB;YACAC,SAAS,EAAE,MAHU;YAIrBS,KAAK,EAAExG,MAAM,CAACiB,IAAP,KAAgB,SAAhB,IAA6BjB,MAAM,CAACiB,IAAP,KAAgB,QAA7C,GAAwDjB,MAAM,CAACwG,KAAP,IAAgB,MAAxE,GAAiFzF;UAJnE,CAAlB,EAKJf,MAAM,CAACgG,KALH,EAKU,KAAK7G,KAAL,CAAW8F,SAAX,KAAyB,MAAzB,GAAkCjF,MAAM,CAACiG,SAAzC,GAAqD,EAL/D;QAPE,GAaR,KAAKQ,UAAL,CAAgBlC,KAAhB,EAAuBE,QAAQ,IAAI,KAAKtF,KAAL,CAAWuH,cAAvB,IAAyC,KAAKvH,KAAL,CAAWsF,QAA3E,EAAqFvE,YAArF,CAbQ,CAAb;;QAgBA,IAAIF,MAAM,CAACkG,OAAX,EAAoB;UAChB,oBAAO,+EACH;YAAK,KAAK,EAAE;cAACC,SAAS,EAAE,MAAZ;cAAoBC,MAAM,EAAE;YAA5B;UAAZ,EADG,EAEF,KAAKO,mBAAL,EAFE,EAGFnB,KAHE,CAAP;QAKH,CAND,MAMO;UACH,IAAI,KAAKhG,KAAL,CAAWG,aAAf,EAA8B;YAC1B,oBAAO,kEACF,KAAKgH,mBAAL,EADE,EAEFnB,KAFE,CAAP;UAIH,CALD,MAKO;YACH,OAAOA,KAAP;UACH;QACJ;MACJ;IACJ;;;WA9ZD,kBAAgBpG,IAAhB,EAAsBG,IAAtB,EAA4B;MACxB,IAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;QAC1B,OAAOL,aAAa,CAACI,QAAd,CAAuBF,IAAvB,EAA6BG,IAAI,CAACqH,KAAL,CAAW,GAAX,CAA7B,CAAP;MACH,CAFD,MAEO;QACH,IAAIrH,IAAI,CAACqD,MAAL,KAAgB,CAApB,EAAuB;UACnB,OAAOxD,IAAI,CAACG,IAAI,CAAC,CAAD,CAAL,CAAX;QACH,CAFD,MAEO;UACH,IAAMsH,IAAI,GAAGtH,IAAI,CAACuH,KAAL,EAAb;;UACA,IAAI,yBAAO1H,IAAI,CAACyH,IAAD,CAAX,MAAsB,QAA1B,EAAoC;YAChC,OAAO3H,aAAa,CAACI,QAAd,CAAuBF,IAAI,CAACyH,IAAD,CAA3B,EAAmCtH,IAAnC,CAAP;UACH,CAFD,MAEO;YACH,OAAO,IAAP;UACH;QACJ;MACJ;IACJ;;;WAED,kBAAgBH,IAAhB,EAAsBG,IAAtB,EAA4BF,KAA5B,EAAmC;MAC/B,IAAI,OAAOE,IAAP,KAAgB,QAApB,EAA8B;QAC1B,OAAOL,aAAa,CAACkC,QAAd,CAAuBhC,IAAvB,EAA6BG,IAAI,CAACqH,KAAL,CAAW,GAAX,CAA7B,EAA8CvH,KAA9C,CAAP;MACH,CAFD,MAEO;QACH,IAAIE,IAAI,CAACqD,MAAL,KAAgB,CAApB,EAAuB;UACnB,IAAIvD,KAAK,KAAK,IAAd,EAAoB;YAChB,OAAOD,IAAI,CAACG,IAAI,CAAC,CAAD,CAAL,CAAX;UACH,CAFD,MAEO;YACHH,IAAI,CAACG,IAAI,CAAC,CAAD,CAAL,CAAJ,GAAgBF,KAAhB;UACH;QACJ,CAND,MAMO;UACH,IAAMwH,IAAI,GAAGtH,IAAI,CAACuH,KAAL,EAAb;;UACA,IAAI,CAAC1H,IAAI,CAACyH,IAAD,CAAL,IAAe,yBAAOzH,IAAI,CAACyH,IAAD,CAAX,MAAsB,QAAzC,EAAmD;YAC/CzH,IAAI,CAACyH,IAAD,CAAJ,GAAazH,IAAI,CAACyH,IAAD,CAAJ,IAAc,EAA3B;UACH;;UACD,OAAO3H,aAAa,CAACkC,QAAd,CAAuBhC,IAAI,CAACyH,IAAD,CAA3B,EAAmCtH,IAAnC,EAAyCF,KAAzC,CAAP;QACH;MACJ;IACJ;;;EApGuB0H,gB;;iCAAtB7H,a,qBACuB,e;iCADvBA,a,qBAEwBwB,gBAAA,CAAKa,CAAL,CAAO,kBAAP,C;iCAFxBrC,a,gBAGkB,E;iCAHlBA,a,gBAImBwB,gBAAA,CAAKa,CAAL,CAAO,SAAP,C;iCAJnBrC,a,mBAKqBmG,MAAM,CAAC2B,cAAP,6FAAsB;EAAA;IAAA;MAAA;QAAA;QAAA;UAAA;MAAA;IAAA;EAAA;AAAA,CAAtB,IAA0CC,W;AA6drE/H,aAAa,CAACgI,SAAd,GAA0B;EACtB/C,MAAM,EAAEgD,qBAAA,CAAUC,MAAV,CAAiBC,UADH;EAEtBjI,IAAI,EAAE+H,qBAAA,CAAUC,MAFM;EAGtBrD,YAAY,EAAEoD,qBAAA,CAAUC,MAHF;EAItBpH,MAAM,EAAEmH,qBAAA,CAAUC,MAJI;EAKtB7H,IAAI,EAAE4H,qBAAA,CAAUG,MALM;EAMtBjI,KAAK,EAAE8H,qBAAA,CAAUI,GANK;EAOtBC,SAAS,EAAEL,qBAAA,CAAUG,MAPC;EAQtBtB,KAAK,EAAEmB,qBAAA,CAAUC,MARK;EAStBzC,OAAO,EAAEwC,qBAAA,CAAU1F,IATG;EAUtBN,QAAQ,EAAEgG,qBAAA,CAAU1F,IAVE;EAWtBgG,OAAO,EAAEN,qBAAA,CAAUC,MAXG;EAYtB1H,WAAW,EAAEyH,qBAAA,CAAU1F,IAAV,CAAe4F,UAZN;EAatB5C,QAAQ,EAAE0C,qBAAA,CAAUO,IAbE;EAetB1D,YAAY,EAAEmD,qBAAA,CAAUC,MAfF;EAgBtBnD,KAAK,EAAEkD,qBAAA,CAAUO,IAhBK;EAiBtBxD,MAAM,EAAEiD,qBAAA,CAAUC,MAjBI;EAkBtBO,WAAW,EAAER,qBAAA,CAAUG,MAlBD;EAmBtBlD,QAAQ,EAAE+C,qBAAA,CAAUS,MAnBE;EAoBtBC,UAAU,EAAEV,qBAAA,CAAUG,MApBA;EAqBtBQ,YAAY,EAAEX,qBAAA,CAAUO,IArBF;EAuBtBxE,SAAS,EAAEiE,qBAAA,CAAUC,MAvBC;EAwBtB/G,WAAW,EAAE8G,qBAAA,CAAUC,MAxBD;EAyBtBnH,MAAM,EAAEkH,qBAAA,CAAUO;AAzBI,CAA1B;eA4BexI,a"}
1
+ {"version":3,"file":"ConfigGeneric.js","names":["ConfigGeneric","props","data","value","getValue","attr","state","setState","forceUpdate","confirmDialog","confirmNewValue","confirmAttr","confirmData","isError","schema","custom","defaultValue","defaultFunc","executeCustom","instanceObj","arrayIndex","globalData","execute","lang","I18n","getLanguage","registerOnForceUpdate","onUpdate","LIKE_SELECT","undefined","includes","type","setTimeout","onChange","setValue","defaultSendTo","sendTo","alive","defaultSendToDone","jsonData","getPattern","JSON","parse","e","console","error","socket","adapterName","instance","then","onError","t","sendToTimeout","clearTimeout","text","noTranslation","func","en","confirm","icon","getText","title","ok","cancel","isOk","stringify","confirmDepAttr","confirmDepNewValue","confirmOldValue","newValue","condition","confirmDependsOn","z","length","dep","val","changed","onChangeDependsOn","calculateFunc","customObj","push","hiddenDependsOn","hidden","labelDependsOn","helpDependsOn","ignoreOwnChanges","forEach","_attr","i","f","Function","result","originalData","systemConfig","common","log","disabled","validator","label","link","Utils","renderTextWithA","color","themeType","pattern","replace","calculate","Object","keys","hideOnlyControl","item","xs","lg","md","sm","assign","marginBottom","textAlign","style","darkStyle","newLine","flexBasis","height","validatorNoSaveOnError","validatorErrorText","renderedItem","renderItem","commandRunning","tooltip","width","button","buttonTooltip","buttonTooltipNoTranslation","renderConfirmDialog","split","part","shift","Component","getPrototypeOf","constructor","propTypes","PropTypes","object","isRequired","string","any","themeName","customs","bool","number","dateFormat","isFloatComma"],"sources":["JsonConfigComponent/ConfigGeneric.jsx"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Grid from '@mui/material/Grid';\nimport Button from '@mui/material/Button';\n\nimport IconInfo from '@mui/icons-material/Info';\nimport IconWarning from '@mui/icons-material/Warning';\nimport IconError from '@mui/icons-material/Error';\n\nimport I18n from '../../i18n';\nimport Utils from '../Utils';\nimport ConfirmDialog from '../../Dialogs/Confirm';\n\nclass ConfigGeneric extends Component {\n static DIFFERENT_VALUE = '__different__';\n static DIFFERENT_LABEL = 'ra___different__';\n static NONE_VALUE = '';\n static NONE_LABEL = 'ra_none';\n static AsyncFunction = Object.getPrototypeOf(async function(){}).constructor;\n\n constructor(props) {\n super(props);\n\n this.state = {\n confirmDialog: false,\n confirmNewValue: null,\n confirmAttr: null,\n confirmData: null,\n };\n\n this.isError = {};\n\n if (this.props.schema) {\n if (this.props.custom) {\n this.defaultValue = this.props.schema.defaultFunc ? this.executeCustom(this.props.schema.defaultFunc, this.props.schema.default, this.props.data, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : this.props.schema.default;\n } else {\n this.defaultValue = this.props.schema.defaultFunc ? this.execute(this.props.schema.defaultFunc, this.props.schema.default, this.props.data, this.props.arrayIndex, this.props.globalData) : this.props.schema.default;\n }\n }\n\n this.lang = I18n.getLanguage();\n }\n\n componentDidMount() {\n this.props.registerOnForceUpdate && this.props.registerOnForceUpdate(this.props.attr, this.onUpdate);\n const LIKE_SELECT = ['select', 'autocomplete', 'autocompleteSendTo'];\n // init default value\n if (this.defaultValue !== undefined) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n if (value === undefined || (LIKE_SELECT.includes(this.props.schema.type) && (value === '' || value === null))) {\n setTimeout(() => {\n if (this.props.custom) {\n this.props.onChange(this.props.attr, this.defaultValue, () =>\n this.props.forceUpdate([this.props.attr], this.props.data));\n //this.onChange(this.props.attr, this.defaultValue);\n } else {\n ConfigGeneric.setValue(this.props.data, this.props.attr, this.defaultValue);\n this.props.onChange(this.props.data, undefined, () =>\n this.props.forceUpdate([this.props.attr], this.props.data));\n }\n }, 100);\n }\n } else if (this.props.schema.defaultSendTo) {\n this.sendTo();\n }\n }\n\n sendTo() {\n if (this.props.alive) {\n this.defaultSendToDone = true;\n let data = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n data = this.getPattern(this.props.schema.jsonData);\n try {\n data = JSON.parse(data);\n } catch (e) {\n console.error('Cannot parse json data: ' + data);\n }\n } else {\n data = {\n attr: this.props.attr,\n value: ConfigGeneric.getValue(this.props.data, this.props.attr),\n };\n }\n\n if (data === undefined) {\n data = null;\n }\n\n this.props.socket.sendTo(this.props.adapterName + '.' + this.props.instance, this.props.schema.defaultSendTo, data)\n .then(value => {\n if (value !== null && value !== undefined) {\n if (this.props.custom) {\n this.props.onChange(this.props.attr, value, () =>\n this.props.forceUpdate([this.props.attr], this.props.data));\n //this.onChange(this.props.attr, this.defaultValue);\n } else {\n ConfigGeneric.setValue(this.props.data, this.props.attr, value);\n this.props.onChange(this.props.data, undefined, () =>\n this.props.forceUpdate([this.props.attr], this.props.data));\n }\n }\n });\n } else {\n this.defaultSendToDone = false;\n // show error, that instance does not started\n this.onError(this.props.attr, I18n.t('ra_Instance %s is not alive', this.props.instance));\n }\n }\n\n componentWillUnmount() {\n this.props.registerOnForceUpdate && this.props.registerOnForceUpdate(this.props.attr)\n if (this.sendToTimeout) {\n clearTimeout(this.sendToTimeout);\n this.sendToTimeout = null;\n }\n }\n\n onUpdate = data => {\n const value = ConfigGeneric.getValue(data || this.props.data, this.props.attr) || '';\n if (this.state.value !== value) {\n this.setState({ value });\n } else {\n this.forceUpdate();\n }\n }\n\n static getValue(data, attr) {\n if (typeof attr === 'string') {\n return ConfigGeneric.getValue(data, attr.split('.'));\n } else {\n if (attr.length === 1) {\n return data[attr[0]];\n } else {\n const part = attr.shift();\n if (typeof data[part] === 'object') {\n return ConfigGeneric.getValue(data[part], attr);\n } else {\n return null;\n }\n }\n }\n }\n\n static setValue(data, attr, value) {\n if (typeof attr === 'string') {\n return ConfigGeneric.setValue(data, attr.split('.'), value);\n } else {\n if (attr.length === 1) {\n if (value === null) {\n delete data[attr[0]];\n } else {\n data[attr[0]] = value;\n }\n } else {\n const part = attr.shift();\n if (!data[part] || typeof data[part] === 'object') {\n data[part] = data[part] || {};\n }\n return ConfigGeneric.setValue(data[part], attr, value);\n }\n }\n }\n\n getText(text, noTranslation) {\n if (!text) {\n return '';\n }\n\n if (typeof text === 'string') {\n text = noTranslation ? text : I18n.t(text);\n if (text.includes('${')) {\n return this.getPattern(text);\n } else {\n return text;\n }\n } else if (text && typeof text === 'object') {\n if (text.func) {\n // calculate pattern\n if (typeof text.func === 'object') {\n return this.getPattern(text.func[this.lang] || text.func.en || '');\n } else {\n this.getPattern(text.func);\n }\n } else {\n return text[this.lang] || text.en || '';\n }\n }\n }\n\n renderConfirmDialog() {\n if (!this.state.confirmDialog) {\n return null;\n }\n const confirm = this.state.confirmData || this.props.schema.confirm;\n let icon = null;\n if (confirm.type === 'warning') {\n icon = <IconWarning />;\n } else if (confirm.type === 'error') {\n icon = <IconError />;\n } else if (confirm.type === 'info') {\n icon = <IconInfo />;\n }\n\n return <ConfirmDialog\n title={ this.getText(confirm.title) || I18n.t('ra_Please confirm') }\n text={ this.getText(confirm.text) }\n ok={ this.getText(confirm.ok) || I18n.t('ra_Ok') }\n cancel={ this.getText(confirm.cancel) || I18n.t('ra_Cancel') }\n icon={icon}\n onClose={isOk =>\n this.setState({ confirmDialog: false}, () => {\n if (isOk) {\n const data = JSON.parse(JSON.stringify(this.props.data));\n if (this.state.confirmDepAttr) {\n ConfigGeneric.setValue(data, this.state.confirmDepAttr, this.state.confirmDepNewValue);\n }\n\n ConfigGeneric.setValue(data, this.state.confirmAttr, this.state.confirmNewValue);\n this.setState({confirmDialog: false, confirmDepAttr: null, confirmDepNewValue: null, confirmNewValue: null, confirmAttr: null, confirmOldValue: null, confirmData: null}, () =>\n this.props.onChange(data));\n } else {\n this.setState({confirmDialog: false, confirmDepAttr: null, confirmDepNewValue: null, confirmNewValue: null, confirmAttr: null, confirmOldValue: null, confirmData: null});\n }\n })\n }\n />;\n }\n\n onChange(attr, newValue) {\n const data = JSON.parse(JSON.stringify(this.props.data));\n ConfigGeneric.setValue(data, attr, newValue);\n\n if (this.props.schema.confirm && this.execute(this.props.schema.confirm.condition, false, data, this.props.arrayIndex, this.props.globalData)) {\n return this.setState({\n confirmDialog: true,\n confirmNewValue: newValue,\n confirmAttr: attr,\n confirmData: null,\n });\n } else {\n // find any inputs with confirmation\n if (this.props.schema.confirmDependsOn) {\n for (let z = 0; z < this.props.schema.confirmDependsOn.length; z++) {\n const dep = this.props.schema.confirmDependsOn[z];\n if (dep.confirm) {\n const val = ConfigGeneric.getValue(data, dep.attr);\n\n if (this.execute(dep.confirm.condition, false, data, this.props.arrayIndex, this.props.globalData)) {\n return this.setState({\n confirmDialog: true,\n confirmNewValue: newValue,\n confirmAttr: attr,\n confirmDepNewValue: val,\n confirmDepAttr: dep.attr,\n confirmData: dep.confirm,\n });\n }\n }\n }\n }\n\n const changed = [];\n if (this.props.schema.onChangeDependsOn) {\n for (let z = 0; z < this.props.schema.onChangeDependsOn.length; z++) {\n const dep = this.props.schema.onChangeDependsOn[z];\n if (dep.onChange) {\n const val = ConfigGeneric.getValue(data, dep.attr);\n\n const newValue = this.props.custom ?\n this.executeCustom(dep.onChange.calculateFunc, data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData)\n :\n this.execute(dep.onChange.calculateFunc, val, data, this.props.arrayIndex, this.props.globalData);\n\n if (newValue !== val) {\n ConfigGeneric.setValue(data, dep.attr, newValue);\n changed.push(dep.attr);\n }\n }\n }\n }\n\n if (this.props.schema.hiddenDependsOn) {\n for (let z = 0; z < this.props.schema.hiddenDependsOn.length; z++) {\n const dep = this.props.schema.hiddenDependsOn[z];\n dep.hidden && changed.push(dep.attr);\n }\n }\n\n if (this.props.schema.labelDependsOn) {\n for (let z = 0; z < this.props.schema.labelDependsOn.length; z++) {\n const dep = this.props.schema.labelDependsOn[z];\n dep.hidden && changed.push(dep.attr);\n }\n }\n\n if (this.props.schema.helpDependsOn) {\n for (let z = 0; z < this.props.schema.helpDependsOn.length; z++) {\n const dep = this.props.schema.helpDependsOn[z];\n dep.hidden && changed.push(dep.attr);\n }\n }\n\n if (this.props.schema.onChange && !this.props.schema.onChange.ignoreOwnChanges) {\n const val = ConfigGeneric.getValue(data, this.props.attr);\n\n const newValue = this.props.custom ?\n this.executeCustom(this.props.schema.onChange.calculateFunc, data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData)\n :\n this.execute(this.props.schema.onChange.calculateFunc, val, data, this.props.arrayIndex, this.props.globalData);\n if (newValue !== val) {\n ConfigGeneric.setValue(data, this.props.attr, newValue);\n }\n }\n\n if (this.props.custom) {\n this.props.onChange(attr, newValue);\n\n changed && changed.length && changed.forEach((_attr, i) =>\n setTimeout(() => this.props.onChange(_attr, ConfigGeneric.getValue(data, attr)), i * 50));\n } else {\n this.props.onChange(data, undefined, () =>\n changed.length && this.props.forceUpdate(changed, data));\n }\n }\n }\n\n execute(func, defaultValue, data, arrayIndex, globalData) {\n if (func && typeof func === 'object') {\n func = func.func;\n }\n\n if (!func) {\n return defaultValue;\n } else {\n try {\n // eslint-disable-next-line no-new-func\n const f = new Function('data', 'originalData', '_system', '_alive', '_common', '_socket', '_instance', 'arrayIndex', 'globalData', func.includes('return') ? func : 'return ' + func);\n const result = f(data || this.props.data, this.props.originalData, this.props.systemConfig, this.props.alive, this.props.common, this.props.socket, this.props.instance, arrayIndex, globalData);\n // console.log(result);\n return result;\n } catch (e) {\n console.error(`Cannot execute ${func}: ${e}`);\n return defaultValue;\n }\n }\n }\n\n executeCustom(func, data, customObj, instanceObj, arrayIndex, globalData) {\n if (func && typeof func === 'object') {\n func = func.func;\n }\n\n if (!func) {\n return null;\n } else {\n try {\n // eslint-disable-next-line no-new-func\n const f = new Function('data', 'originalData', '_system', 'instanceObj', 'customObj', '_socket', 'arrayIndex', 'globalData', func.includes('return') ? func : 'return ' + func);\n const result = f(data || this.props.data, this.props.originalData, this.props.systemConfig, instanceObj, customObj, this.props.socket, arrayIndex, globalData);\n console.log(result);\n return result;\n } catch (e) {\n console.error(`Cannot execute ${func}: ${e}`);\n return null;\n }\n }\n }\n\n calculate(schema) {\n let error;\n let disabled;\n let hidden;\n let defaultValue;\n\n if (this.props.custom) {\n error = schema.validator ? !this.executeCustom(schema.validator, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : false;\n disabled = schema.disabled ? this.executeCustom(schema.disabled, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : false;\n hidden = schema.hidden ? this.executeCustom(schema.hidden, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : false;\n defaultValue = schema.defaultFunc ? this.executeCustom(schema.defaultFunc, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : schema.default;\n } else {\n error = schema.validator ? !this.execute(schema.validator, false, this.props.data, this.props.arrayIndex, this.props.globalData) : false;\n disabled = schema.disabled ? this.execute(schema.disabled, false, this.props.data, this.props.arrayIndex, this.props.globalData) : false;\n hidden = schema.hidden ? this.execute(schema.hidden, false, this.props.data, this.props.arrayIndex, this.props.globalData) : false;\n defaultValue = schema.defaultFunc ? this.execute(schema.defaultFunc, schema.default, this.props.data, this.props.arrayIndex, this.props.globalData) : schema.default;\n }\n\n return { error, disabled, hidden, defaultValue };\n }\n\n onError(attr, error) {\n if (!error) {\n delete this.isError[attr];\n } else {\n this.isError[attr] = error;\n }\n\n this.props.onError && this.props.onError(attr, error);\n }\n\n renderItem(error, disabled, defaultValue) {\n return this.getText(this.props.schema.label) || this.getText(this.props.schema.text)\n }\n\n renderHelp(text, link, noTranslation) {\n if (!link) {\n text = this.getText(text, noTranslation) || '';\n if (text && text.includes('<a ')) {\n return Utils.renderTextWithA(text);\n } else {\n return text;\n }\n } else {\n return <a\n href={link}\n target=\"_blank\"\n rel=\"noreferrer\"\n style={{color: this.props.themeType === 'dark' ? '#eee' : '#111'}}\n >{this.getText(text, noTranslation)}</a>;\n }\n }\n\n getPattern(pattern) {\n if (!pattern) {\n return '';\n } else {\n if (typeof pattern === 'object') {\n pattern = pattern.func;\n }\n\n try {\n if (this.props.custom) {\n // eslint-disable-next-line no-new-func\n const f = new Function('data', 'originalData', '_system', 'instanceObj', 'customObj', '_socket', 'return `' + pattern.replace(/`/g, '\\\\`') + '`');\n const result = f(this.props.data, this.props.originalData, this.props.systemConfig, this.props.instanceObj, this.props.customObj, this.props.socket);\n return result;\n } else {\n // eslint-disable-next-line no-new-func\n const f = new Function('data', 'originalData', '_system', '_alive', '_common', '_socket', 'return `' + pattern.replace(/`/g, '\\\\`') + '`');\n return f(this.props.data, this.props.originalData, this.props.systemConfig, this.props.alive, this.props.common, this.props.socket);\n }\n } catch (e) {\n console.error(`Cannot execute ${pattern}: ${e}`);\n return pattern;\n }\n }\n }\n\n render() {\n const schema = this.props.schema;\n\n if (!schema) {\n return null;\n }\n\n if (this.props.alive && this.defaultSendToDone === false) {\n this.sendToTimeout = setTimeout(() => {this.sendToTimeout = null; this.sendTo();}, 200);\n }\n\n const { error, disabled, hidden, defaultValue } = this.calculate(schema);\n\n if (hidden) {\n // Remove all errors if element is hidden\n if (Object.keys(this.isError).length) {\n setTimeout(isError =>\n Object.keys(isError).forEach(attr => this.props.onError(attr)),\n 100, JSON.parse(JSON.stringify(this.isError)));\n this.isError = {};\n }\n\n if (schema.hideOnlyControl) {\n const item = <Grid\n item\n xs={schema.xs || undefined}\n lg={schema.lg || undefined}\n md={schema.md || undefined}\n sm={schema.sm || undefined}\n style={Object.assign(\n {},\n {marginBottom: 0, /*marginRight: 8, */textAlign: 'left'},\n schema.style,\n this.props.themeType === 'dark' ? schema.darkStyle : {}\n )}\n />;\n\n if (schema.newLine) {\n return <>\n <div style={{flexBasis: '100%', height: 0}} />\n {item}\n </>;\n } else {\n return item;\n }\n } else {\n return null;\n }\n } else {\n // Add error\n if (schema.validatorNoSaveOnError) {\n if (error && !Object.keys(this.isError).length) {\n this.isError = {[this.props.attr]: schema.validatorErrorText ? I18n.t(schema.validatorErrorText) : true};\n setTimeout(isError =>\n Object.keys(isError).forEach(attr => this.props.onError(attr, isError[attr])),\n 100, JSON.parse(JSON.stringify(this.isError)));\n } else if (!error && Object.keys(this.isError).length) {\n setTimeout(isError =>\n Object.keys(isError).forEach(attr => this.props.onError(attr)),\n 100, JSON.parse(JSON.stringify(this.isError)));\n this.isError = {};\n }\n }\n\n const renderedItem = this.renderItem(error, disabled || this.props.commandRunning || this.props.disabled, defaultValue);\n\n const item = <Grid\n item\n title={this.getText(schema.tooltip)}\n xs={schema.xs || undefined}\n lg={schema.lg || undefined}\n md={schema.md || undefined}\n sm={schema.sm || undefined}\n style={Object.assign({}, {\n marginBottom: 0,\n // marginRight: 8,\n textAlign: 'left',\n width: schema.type === 'divider' || schema.type === 'header' ? schema.width || '100%' : undefined\n }, schema.style, this.props.themeType === 'dark' ? schema.darkStyle : {})}>\n { this.props.schema.defaultSendTo && this.props.schema.button ? <Grid container style={{ width: '100%' }}>\n <Grid item flex={1}>{renderedItem}</Grid>\n <Grid item><Button\n variant=\"outlined\"\n onClick={() => this.sendTo()}\n title={this.props.schema.buttonTooltip ? this.getText(this.props.schema.buttonTooltip, this.props.schema.buttonTooltipNoTranslation) : I18n.t('ra_Request data by instance')}\n >{this.getText(this.props.schema.button)}</Button></Grid>\n </Grid>\n :\n renderedItem\n }\n </Grid>;\n\n if (schema.newLine) {\n return <>\n <div style={{flexBasis: '100%', height: 0}} />\n {this.renderConfirmDialog()}\n {item}\n </>;\n } else {\n if (this.state.confirmDialog) {\n return <>\n {this.renderConfirmDialog()}\n {item}\n </>;\n } else {\n return item;\n }\n }\n }\n }\n}\n\nConfigGeneric.propTypes = {\n socket: PropTypes.object.isRequired,\n data: PropTypes.object,\n originalData: PropTypes.object,\n schema: PropTypes.object,\n attr: PropTypes.string,\n value: PropTypes.any,\n themeName: PropTypes.string,\n style: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n customs: PropTypes.object,\n forceUpdate: PropTypes.func.isRequired,\n disabled: PropTypes.bool,\n\n systemConfig: PropTypes.object,\n alive: PropTypes.bool,\n common: PropTypes.object,\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n dateFormat: PropTypes.string,\n isFloatComma: PropTypes.bool,\n\n customObj: PropTypes.object,\n instanceObj: PropTypes.object,\n custom: PropTypes.bool,\n};\n\nexport default ConfigGeneric;\n"],"mappings":"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"}