@iobroker/adapter-react-v5 3.1.3 → 3.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) 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/ConfigGeneric.js +105 -20
  14. package/Components/JsonConfigComponent/ConfigGeneric.js.map +1 -1
  15. package/Components/JsonConfigComponent/ConfigInstanceSelect.js +132 -46
  16. package/Components/JsonConfigComponent/ConfigInstanceSelect.js.map +1 -1
  17. package/Components/JsonConfigComponent/ConfigLanguage.js +25 -1
  18. package/Components/JsonConfigComponent/ConfigLanguage.js.map +1 -1
  19. package/Components/JsonConfigComponent/ConfigNumber.js +5 -4
  20. package/Components/JsonConfigComponent/ConfigNumber.js.map +1 -1
  21. package/Components/JsonConfigComponent/ConfigObjectId.js +3 -2
  22. package/Components/JsonConfigComponent/ConfigObjectId.js.map +1 -1
  23. package/Components/JsonConfigComponent/ConfigPanel.js +51 -40
  24. package/Components/JsonConfigComponent/ConfigPanel.js.map +1 -1
  25. package/Components/JsonConfigComponent/ConfigPattern.js +1 -1
  26. package/Components/JsonConfigComponent/ConfigPattern.js.map +1 -1
  27. package/Components/JsonConfigComponent/ConfigSelect.js +4 -2
  28. package/Components/JsonConfigComponent/ConfigSelect.js.map +1 -1
  29. package/Components/JsonConfigComponent/ConfigSendto.js +2 -2
  30. package/Components/JsonConfigComponent/ConfigSendto.js.map +1 -1
  31. package/Components/JsonConfigComponent/ConfigSetState.js +2 -2
  32. package/Components/JsonConfigComponent/ConfigSetState.js.map +1 -1
  33. package/Components/JsonConfigComponent/ConfigStaticHeader.js +31 -8
  34. package/Components/JsonConfigComponent/ConfigStaticHeader.js.map +1 -1
  35. package/Components/JsonConfigComponent/ConfigStaticImage.js +1 -1
  36. package/Components/JsonConfigComponent/ConfigStaticImage.js.map +1 -1
  37. package/Components/JsonConfigComponent/ConfigTable.js +1 -1
  38. package/Components/JsonConfigComponent/ConfigTable.js.map +1 -1
  39. package/Components/JsonConfigComponent/ConfigTabs.js +12 -3
  40. package/Components/JsonConfigComponent/ConfigTabs.js.map +1 -1
  41. package/Components/JsonConfigComponent/ConfigText.js +4 -2
  42. package/Components/JsonConfigComponent/ConfigText.js.map +1 -1
  43. package/Components/JsonConfigComponent/ConfigTopic.js.map +1 -1
  44. package/Components/JsonConfigComponent/index.js +12 -4
  45. package/Components/JsonConfigComponent/index.js.map +1 -1
  46. package/Components/ObjectBrowser.js +228 -222
  47. package/Components/ObjectBrowser.js.map +1 -1
  48. package/Components/TableResize.js +34 -16
  49. package/Components/TableResize.js.map +1 -1
  50. package/Components/TreeTable.js +2 -2
  51. package/Components/TreeTable.js.map +1 -1
  52. package/Components/Utils.js +5 -5
  53. package/Components/Utils.js.map +1 -1
  54. package/Dialogs/Confirm.js +3 -3
  55. package/Dialogs/Confirm.js.map +1 -1
  56. package/Dialogs/FileSelect.js +259 -0
  57. package/Dialogs/FileSelect.js.map +1 -0
  58. package/Dialogs/SelectID.js +15 -16
  59. package/Dialogs/SelectID.js.map +1 -1
  60. package/README.md +3 -0
  61. package/package.json +1 -1
  62. package/GenericApp.js +0 -1025
  63. package/GenericApp.js.map +0 -1
  64. package/Prompt.js +0 -21
  65. package/Prompt.js.map +0 -1
  66. package/Theme.js +0 -422
  67. package/Theme.js.map +0 -1
  68. package/i18n.js +0 -180
  69. package/i18n.js.map +0 -1
@@ -95,7 +95,9 @@ var styles = function styles(theme) {
95
95
  var EXTENSIONS = {
96
96
  images: ['png', 'jpg', 'svg', 'jpeg', 'bmp'],
97
97
  code: ['js', 'json', 'md'],
98
- txt: ['log', 'txt', 'html', 'css', 'xml']
98
+ txt: ['log', 'txt', 'html', 'css', 'xml'],
99
+ audio: ['mp3', 'wav', 'ogg', 'acc'],
100
+ video: ['mp4', 'mov', 'avi']
99
101
  };
100
102
  exports.EXTENSIONS = EXTENSIONS;
101
103
 
@@ -1 +1 @@
1
- {"version":3,"file":"FileViewer.js","names":["styles","theme","dialog","height","paper","content","textAlign","textarea","width","img","objectFit","dialogTitle","justifyContent","display","EXTENSIONS","images","code","txt","bufferToBase64","buffer","binary","bytes","Uint8Array","len","byteLength","i","String","fromCharCode","window","btoa","FileViewer","props","id","fileName","size","state","changed","timeout","clearTimeout","setTimeout","alert","text","readFile","setState","forceUpdate","Date","now","parts","href","split","data","editingValue","splice","adapter","name","join","socket","writeFile64","Buffer","from","toString","then","_","onClose","e","ext","Utils","getFileExtension","editing","formatEditFile","copyPossible","includes","imgError","file","undefined","newState","type","detectMimeType","supportSubscribes","subscribeFiles","onFileChanged","clsx","classes","getClassBackgroundImage","target","onerror","newValue","readOnly","scrollPaper","t","setStateBackgroundImage","getContent","copyToClipboard","Component","propTypes","PropTypes","func","lang","string","expertMode","bool","isRequired","_export","withWidth","withStyles"],"sources":["FileViewer.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { withStyles } from '@mui/styles';\nimport PropTypes from 'prop-types';\n\nimport TextField from '@mui/material/TextField';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport { IconButton } from '@mui/material';\n\nimport IconNoIcon from '../icons/IconNoIcon';\nimport withWidth from './withWidth';\nimport Utils from './Utils';\n\n// Icons\nimport { FaCopy as CopyIcon } from 'react-icons/fa';\nimport Brightness5Icon from '@mui/icons-material/Brightness6';\nimport CloseIcon from '@mui/icons-material/Close';\nimport SaveIcon from '@mui/icons-material/Save';\n\nconst styles = theme => ({\n dialog: {\n height: '100%',\n },\n paper: {\n height: 'calc(100% - 64px)',\n },\n content: {\n textAlign: 'center',\n },\n textarea: {\n width: '100%',\n height: '100%',\n },\n img: {\n width: 'auto',\n height: 'calc(100% - 5px)',\n objectFit: 'contain',\n },\n dialogTitle: {\n justifyContent: 'space-between',\n display: 'flex'\n }\n});\n\nexport const EXTENSIONS = {\n images: ['png', 'jpg', 'svg', 'jpeg', 'bmp'],\n code: ['js', 'json', 'md'],\n txt: ['log', 'txt', 'html', 'css', 'xml'],\n};\n\nfunction bufferToBase64(buffer) {\n let binary = '';\n let bytes = new Uint8Array(buffer);\n let len = bytes.byteLength;\n for (let i = 0; i < len && i < 50; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return window.btoa(binary);\n}\n\n/**\n * @typedef {object} FileViewerProps\n * @property {string} [key] The key to identify this component.\n * @property {import('../types').Translator} t Translation function\n * @property {ioBroker.Languages} [lang] The selected language.\n * @property {boolean} [expertMode] Is expert mode enabled? (default: false)\n * @property {() => void} onClose Callback when the viewer is closed.\n * @property {string} href The URL to the file to be displayed.\n *\n * @extends {React.Component<FileViewerProps>}\n */\nclass FileViewer extends Component {\n /**\n * @param {Readonly<FileViewerProps>} props\n */\n constructor(props) {\n super(props);\n const ext = Utils.getFileExtension(this.props.href);\n\n this.state = {\n text: null,\n code: null,\n ext,\n editing: !!this.props.formatEditFile || false,\n editingValue: null,\n copyPossible: EXTENSIONS.code.includes(ext) || EXTENSIONS.txt.includes(ext),\n forceUpdate: Date.now(),\n changed: false,\n imgError: false,\n };\n }\n\n readFile() {\n if (this.props.href) {\n const parts = this.props.href.split('/');\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n\n this.props.socket.readFile(adapter, name)\n .then(data => {\n if (data.file !== undefined) {\n data = data.file;\n }\n\n const newState = {copyPossible: this.state.copyPossible};\n // try to detect valid extension\n if (data.type === 'Buffer') {\n const ext = Utils.detectMimeType(bufferToBase64(data.data));\n if (ext) {\n newState.ext = ext;\n newState.copyPossible = EXTENSIONS.code.includes(ext) || EXTENSIONS.txt.includes(ext);\n }\n }\n\n if (newState.copyPossible) {\n if (EXTENSIONS.txt.includes(this.state.ext)) {\n newState.text = data;\n newState.editingValue = data;\n } else if (EXTENSIONS.code.includes(this.state.ext)) {\n newState.code = data;\n newState.editingValue = data;\n }\n }\n\n this.setState(newState);\n })\n .catch(e => window.alert('Cannot read file: ' + e));\n }\n }\n\n componentDidMount() {\n this.readFile();\n\n const parts = this.props.href.split('/');\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n\n this.props.supportSubscribes && this.props.socket.subscribeFiles(adapter, name, this.onFileChanged);\n }\n\n componentWillUnmount() {\n this.timeout && clearTimeout(this.timeout);\n const parts = this.props.href.split('/');\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n this.props.supportSubscribes && this.props.socket.subscribeFiles(adapter, name, this.onFileChanged);\n }\n\n onFileChanged = (id, fileName, size) => {\n if (!this.state.changed) {\n this.timeout && clearTimeout(this.timeout);\n this.timeout = setTimeout(() => {\n this.timeout = null;\n if (size === null) {\n window.alert('Show file was deleted!');\n } else if (this.state.text !== null || this.state.code !== null) {\n this.readFile();\n } else {\n this.setState({ forceUpdate: Date.now() });\n }\n }, 300);\n }\n };\n\n writeFile64 = () => {\n const parts = this.props.href.split('/');\n const data = this.state.editingValue;\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n this.props.socket.writeFile64(adapter, name, Buffer.from(data).toString('base64'))\n .then(_ => this.props.onClose())\n .catch(e => window.alert('Cannot write file: ' + e));\n }\n\n getEditFile(ext) {\n switch (ext) {\n case 'json':\n return 'json';\n case 'js':\n return 'javascript';\n case 'html':\n return 'html';\n case 'txt':\n return 'html';\n default:\n return 'json';\n }\n }\n\n getContent() {\n if (EXTENSIONS.images.includes(this.state.ext)) {\n if (this.state.imgError) {\n return <IconNoIcon className={Utils.clsx(this.props.classes.img, this.props.getClassBackgroundImage())} />;\n } else {\n return <img\n onError={e => {\n e.target.onerror = null;\n this.setState({ imgError: true });\n }}\n className={Utils.clsx(this.props.classes.img, this.props.getClassBackgroundImage())}\n src={this.props.href + '?ts=' + this.state.forceUpdate}\n alt={this.props.href}\n />;\n }\n } else if (this.state.code !== null || this.state.text !== null || this.state.editing) {\n return <TextField\n variant=\"standard\"\n className={ this.props.classes.textarea }\n multiline\n value={ this.state.editingValue || this.state.code || this.state.text }\n onChange={newValue => this.setState({ editingValue: newValue, changed: true })}\n InputProps={{ readOnly: !this.state.editing,}}\n />;\n }\n }\n\n render() {\n return <Dialog\n classes={{ scrollPaper: this.props.classes.dialog, paper: this.props.classes.paper }}\n scroll=\"paper\"\n open={!!this.props.href}\n onClose={() => this.props.onClose()}\n fullWidth={true}\n maxWidth=\"xl\"\n aria-labelledby=\"form-dialog-title\"\n >\n <div className={this.props.classes.dialogTitle}>\n <DialogTitle id=\"form-dialog-title\">{this.props.t(this.state.editing ? 'Edit' : 'View') + ': ' + this.props.href}</DialogTitle>\n {EXTENSIONS.images.includes(this.state.ext) && <div>\n <IconButton size=\"large\"\n color={'inherit'}\n onClick={this.props.setStateBackgroundImage}\n >\n <Brightness5Icon />\n </IconButton>\n </div>\n }\n </div>\n <DialogContent className={this.props.classes.content}>\n {this.getContent()}\n </DialogContent>\n <DialogActions>\n {this.state.copyPossible ?\n <Button\n color=\"grey\"\n onClick={e => Utils.copyToClipboard(this.state.text || this.state.code, e)}\n startIcon={<CopyIcon />}\n >\n {this.props.t('Copy content')}\n </Button> : null}\n {this.state.editing ?\n <Button\n color=\"grey\"\n disabled={this.state.editingValue === this.state.code || this.state.editingValue === this.state.text}\n variant=\"contained\"\n onClick={this.writeFile64}\n startIcon={<SaveIcon />}\n >\n {this.props.t('Save')}\n </Button> : null}\n <Button\n variant=\"contained\"\n onClick={() => this.props.onClose()}\n color=\"primary\"\n startIcon={<CloseIcon />}\n >\n {this.props.t('Close')}\n </Button>\n </DialogActions>\n </Dialog>;\n }\n}\n\nFileViewer.propTypes = {\n t: PropTypes.func,\n lang: PropTypes.string,\n expertMode: PropTypes.bool,\n onClose: PropTypes.func,\n href: PropTypes.string.isRequired,\n supportSubscribes: PropTypes.bool,\n};\n\n/** @type {typeof FileViewer} */\nconst _export = withWidth()(withStyles(styles)(FileViewer));\nexport default _export;\n"],"mappings":"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"}
1
+ {"version":3,"file":"FileViewer.js","names":["styles","theme","dialog","height","paper","content","textAlign","textarea","width","img","objectFit","dialogTitle","justifyContent","display","EXTENSIONS","images","code","txt","audio","video","bufferToBase64","buffer","binary","bytes","Uint8Array","len","byteLength","i","String","fromCharCode","window","btoa","FileViewer","props","id","fileName","size","state","changed","timeout","clearTimeout","setTimeout","alert","text","readFile","setState","forceUpdate","Date","now","parts","href","split","data","editingValue","splice","adapter","name","join","socket","writeFile64","Buffer","from","toString","then","_","onClose","e","ext","Utils","getFileExtension","editing","formatEditFile","copyPossible","includes","imgError","file","undefined","newState","type","detectMimeType","supportSubscribes","subscribeFiles","onFileChanged","clsx","classes","getClassBackgroundImage","target","onerror","newValue","readOnly","scrollPaper","t","setStateBackgroundImage","getContent","copyToClipboard","Component","propTypes","PropTypes","func","lang","string","expertMode","bool","isRequired","_export","withWidth","withStyles"],"sources":["FileViewer.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { withStyles } from '@mui/styles';\nimport PropTypes from 'prop-types';\n\nimport TextField from '@mui/material/TextField';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport { IconButton } from '@mui/material';\n\nimport IconNoIcon from '../icons/IconNoIcon';\nimport withWidth from './withWidth';\nimport Utils from './Utils';\n\n// Icons\nimport { FaCopy as CopyIcon } from 'react-icons/fa';\nimport Brightness5Icon from '@mui/icons-material/Brightness6';\nimport CloseIcon from '@mui/icons-material/Close';\nimport SaveIcon from '@mui/icons-material/Save';\n\nconst styles = theme => ({\n dialog: {\n height: '100%',\n },\n paper: {\n height: 'calc(100% - 64px)',\n },\n content: {\n textAlign: 'center',\n },\n textarea: {\n width: '100%',\n height: '100%',\n },\n img: {\n width: 'auto',\n height: 'calc(100% - 5px)',\n objectFit: 'contain',\n },\n dialogTitle: {\n justifyContent: 'space-between',\n display: 'flex'\n }\n});\n\nexport const EXTENSIONS = {\n images: ['png', 'jpg', 'svg', 'jpeg', 'bmp'],\n code: ['js', 'json', 'md'],\n txt: ['log', 'txt', 'html', 'css', 'xml'],\n audio: ['mp3', 'wav', 'ogg', 'acc'],\n video: ['mp4', 'mov', 'avi'],\n};\n\nfunction bufferToBase64(buffer) {\n let binary = '';\n let bytes = new Uint8Array(buffer);\n let len = bytes.byteLength;\n for (let i = 0; i < len && i < 50; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return window.btoa(binary);\n}\n\n/**\n * @typedef {object} FileViewerProps\n * @property {string} [key] The key to identify this component.\n * @property {import('../types').Translator} t Translation function\n * @property {ioBroker.Languages} [lang] The selected language.\n * @property {boolean} [expertMode] Is expert mode enabled? (default: false)\n * @property {() => void} onClose Callback when the viewer is closed.\n * @property {string} href The URL to the file to be displayed.\n *\n * @extends {React.Component<FileViewerProps>}\n */\nclass FileViewer extends Component {\n /**\n * @param {Readonly<FileViewerProps>} props\n */\n constructor(props) {\n super(props);\n const ext = Utils.getFileExtension(this.props.href);\n\n this.state = {\n text: null,\n code: null,\n ext,\n editing: !!this.props.formatEditFile || false,\n editingValue: null,\n copyPossible: EXTENSIONS.code.includes(ext) || EXTENSIONS.txt.includes(ext),\n forceUpdate: Date.now(),\n changed: false,\n imgError: false,\n };\n }\n\n readFile() {\n if (this.props.href) {\n const parts = this.props.href.split('/');\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n\n this.props.socket.readFile(adapter, name)\n .then(data => {\n if (data.file !== undefined) {\n data = data.file;\n }\n\n const newState = {copyPossible: this.state.copyPossible};\n // try to detect valid extension\n if (data.type === 'Buffer') {\n const ext = Utils.detectMimeType(bufferToBase64(data.data));\n if (ext) {\n newState.ext = ext;\n newState.copyPossible = EXTENSIONS.code.includes(ext) || EXTENSIONS.txt.includes(ext);\n }\n }\n\n if (newState.copyPossible) {\n if (EXTENSIONS.txt.includes(this.state.ext)) {\n newState.text = data;\n newState.editingValue = data;\n } else if (EXTENSIONS.code.includes(this.state.ext)) {\n newState.code = data;\n newState.editingValue = data;\n }\n }\n\n this.setState(newState);\n })\n .catch(e => window.alert('Cannot read file: ' + e));\n }\n }\n\n componentDidMount() {\n this.readFile();\n\n const parts = this.props.href.split('/');\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n\n this.props.supportSubscribes && this.props.socket.subscribeFiles(adapter, name, this.onFileChanged);\n }\n\n componentWillUnmount() {\n this.timeout && clearTimeout(this.timeout);\n const parts = this.props.href.split('/');\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n this.props.supportSubscribes && this.props.socket.subscribeFiles(adapter, name, this.onFileChanged);\n }\n\n onFileChanged = (id, fileName, size) => {\n if (!this.state.changed) {\n this.timeout && clearTimeout(this.timeout);\n this.timeout = setTimeout(() => {\n this.timeout = null;\n if (size === null) {\n window.alert('Show file was deleted!');\n } else if (this.state.text !== null || this.state.code !== null) {\n this.readFile();\n } else {\n this.setState({ forceUpdate: Date.now() });\n }\n }, 300);\n }\n };\n\n writeFile64 = () => {\n const parts = this.props.href.split('/');\n const data = this.state.editingValue;\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n this.props.socket.writeFile64(adapter, name, Buffer.from(data).toString('base64'))\n .then(_ => this.props.onClose())\n .catch(e => window.alert('Cannot write file: ' + e));\n }\n\n getEditFile(ext) {\n switch (ext) {\n case 'json':\n return 'json';\n case 'js':\n return 'javascript';\n case 'html':\n return 'html';\n case 'txt':\n return 'html';\n default:\n return 'json';\n }\n }\n\n getContent() {\n if (EXTENSIONS.images.includes(this.state.ext)) {\n if (this.state.imgError) {\n return <IconNoIcon className={Utils.clsx(this.props.classes.img, this.props.getClassBackgroundImage())} />;\n } else {\n return <img\n onError={e => {\n e.target.onerror = null;\n this.setState({ imgError: true });\n }}\n className={Utils.clsx(this.props.classes.img, this.props.getClassBackgroundImage())}\n src={this.props.href + '?ts=' + this.state.forceUpdate}\n alt={this.props.href}\n />;\n }\n } else if (this.state.code !== null || this.state.text !== null || this.state.editing) {\n return <TextField\n variant=\"standard\"\n className={ this.props.classes.textarea }\n multiline\n value={ this.state.editingValue || this.state.code || this.state.text }\n onChange={newValue => this.setState({ editingValue: newValue, changed: true })}\n InputProps={{ readOnly: !this.state.editing,}}\n />;\n }\n }\n\n render() {\n return <Dialog\n classes={{ scrollPaper: this.props.classes.dialog, paper: this.props.classes.paper }}\n scroll=\"paper\"\n open={!!this.props.href}\n onClose={() => this.props.onClose()}\n fullWidth={true}\n maxWidth=\"xl\"\n aria-labelledby=\"form-dialog-title\"\n >\n <div className={this.props.classes.dialogTitle}>\n <DialogTitle id=\"form-dialog-title\">{this.props.t(this.state.editing ? 'Edit' : 'View') + ': ' + this.props.href}</DialogTitle>\n {EXTENSIONS.images.includes(this.state.ext) && <div>\n <IconButton size=\"large\"\n color={'inherit'}\n onClick={this.props.setStateBackgroundImage}\n >\n <Brightness5Icon />\n </IconButton>\n </div>\n }\n </div>\n <DialogContent className={this.props.classes.content}>\n {this.getContent()}\n </DialogContent>\n <DialogActions>\n {this.state.copyPossible ?\n <Button\n color=\"grey\"\n onClick={e => Utils.copyToClipboard(this.state.text || this.state.code, e)}\n startIcon={<CopyIcon />}\n >\n {this.props.t('Copy content')}\n </Button> : null}\n {this.state.editing ?\n <Button\n color=\"grey\"\n disabled={this.state.editingValue === this.state.code || this.state.editingValue === this.state.text}\n variant=\"contained\"\n onClick={this.writeFile64}\n startIcon={<SaveIcon />}\n >\n {this.props.t('Save')}\n </Button> : null}\n <Button\n variant=\"contained\"\n onClick={() => this.props.onClose()}\n color=\"primary\"\n startIcon={<CloseIcon />}\n >\n {this.props.t('Close')}\n </Button>\n </DialogActions>\n </Dialog>;\n }\n}\n\nFileViewer.propTypes = {\n t: PropTypes.func,\n lang: PropTypes.string,\n expertMode: PropTypes.bool,\n onClose: PropTypes.func,\n href: PropTypes.string.isRequired,\n supportSubscribes: PropTypes.bool,\n};\n\n/** @type {typeof FileViewer} */\nconst _export = withWidth()(withStyles(styles)(FileViewer));\nexport default _export;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AAGA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;EAAA,OAAK;IACrBC,MAAM,EAAE;MACJC,MAAM,EAAE;IADJ,CADa;IAIrBC,KAAK,EAAE;MACHD,MAAM,EAAE;IADL,CAJc;IAOrBE,OAAO,EAAE;MACLC,SAAS,EAAE;IADN,CAPY;IAUrBC,QAAQ,EAAE;MACNC,KAAK,EAAE,MADD;MAENL,MAAM,EAAE;IAFF,CAVW;IAcrBM,GAAG,EAAE;MACDD,KAAK,EAAE,MADN;MAEDL,MAAM,EAAE,kBAFP;MAGDO,SAAS,EAAE;IAHV,CAdgB;IAmBrBC,WAAW,EAAE;MACTC,cAAc,EAAE,eADP;MAETC,OAAO,EAAE;IAFA;EAnBQ,CAAL;AAAA,CAApB;;AAyBO,IAAMC,UAAU,GAAG;EACtBC,MAAM,EAAE,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,EAAsB,MAAtB,EAA8B,KAA9B,CADc;EAEtBC,IAAI,EAAI,CAAC,IAAD,EAAO,MAAP,EAAe,IAAf,CAFc;EAGtBC,GAAG,EAAK,CAAC,KAAD,EAAQ,KAAR,EAAe,MAAf,EAAuB,KAAvB,EAA8B,KAA9B,CAHc;EAItBC,KAAK,EAAG,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,EAAsB,KAAtB,CAJc;EAKtBC,KAAK,EAAG,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf;AALc,CAAnB;;;AAQP,SAASC,cAAT,CAAwBC,MAAxB,EAAgC;EAC5B,IAAIC,MAAM,GAAG,EAAb;EACA,IAAIC,KAAK,GAAG,IAAIC,UAAJ,CAAeH,MAAf,CAAZ;EACA,IAAII,GAAG,GAAGF,KAAK,CAACG,UAAhB;;EACA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,GAAJ,IAAWE,CAAC,GAAG,EAA/B,EAAmCA,CAAC,EAApC,EAAwC;IACpCL,MAAM,IAAIM,MAAM,CAACC,YAAP,CAAoBN,KAAK,CAACI,CAAD,CAAzB,CAAV;EACH;;EACD,OAAOG,MAAM,CAACC,IAAP,CAAYT,MAAZ,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMU,U;;;;;EACF;AACJ;AACA;EACI,oBAAYC,KAAZ,EAAmB;IAAA;;IAAA;IACf,0BAAMA,KAAN;IADe,kGA4EH,UAACC,EAAD,EAAKC,QAAL,EAAeC,IAAf,EAAwB;MACpC,IAAI,CAAC,MAAKC,KAAL,CAAWC,OAAhB,EAAyB;QACrB,MAAKC,OAAL,IAAgBC,YAAY,CAAC,MAAKD,OAAN,CAA5B;QACA,MAAKA,OAAL,GAAeE,UAAU,CAAC,YAAM;UAC5B,MAAKF,OAAL,GAAe,IAAf;;UACA,IAAIH,IAAI,KAAK,IAAb,EAAmB;YACfN,MAAM,CAACY,KAAP,CAAa,wBAAb;UACH,CAFD,MAEO,IAAI,MAAKL,KAAL,CAAWM,IAAX,KAAoB,IAApB,IAA4B,MAAKN,KAAL,CAAWrB,IAAX,KAAoB,IAApD,EAA0D;YAC7D,MAAK4B,QAAL;UACH,CAFM,MAEA;YACH,MAAKC,QAAL,CAAc;cAAEC,WAAW,EAAEC,IAAI,CAACC,GAAL;YAAf,CAAd;UACH;QACJ,CATwB,EAStB,GATsB,CAAzB;MAUH;IACJ,CA1FkB;IAAA,gGA4FL,YAAM;MAChB,IAAMC,KAAK,GAAG,MAAKhB,KAAL,CAAWiB,IAAX,CAAgBC,KAAhB,CAAsB,GAAtB,CAAd;;MACA,IAAMC,IAAI,GAAG,MAAKf,KAAL,CAAWgB,YAAxB;MACAJ,KAAK,CAACK,MAAN,CAAa,CAAb,EAAgB,CAAhB;MACA,IAAMC,OAAO,GAAGN,KAAK,CAAC,CAAD,CAArB;MACA,IAAMO,IAAI,GAAGP,KAAK,CAACK,MAAN,CAAa,CAAb,EAAgBG,IAAhB,CAAqB,GAArB,CAAb;;MACA,MAAKxB,KAAL,CAAWyB,MAAX,CAAkBC,WAAlB,CAA8BJ,OAA9B,EAAuCC,IAAvC,EAA6CI,MAAM,CAACC,IAAP,CAAYT,IAAZ,EAAkBU,QAAlB,CAA2B,QAA3B,CAA7C,EACKC,IADL,CACU,UAAAC,CAAC;QAAA,OAAI,MAAK/B,KAAL,CAAWgC,OAAX,EAAJ;MAAA,CADX,WAEW,UAAAC,CAAC;QAAA,OAAIpC,MAAM,CAACY,KAAP,CAAa,wBAAwBwB,CAArC,CAAJ;MAAA,CAFZ;IAGH,CArGkB;;IAEf,IAAMC,GAAG,GAAGC,iBAAA,CAAMC,gBAAN,CAAuB,MAAKpC,KAAL,CAAWiB,IAAlC,CAAZ;;IAEA,MAAKb,KAAL,GAAa;MACTM,IAAI,EAAE,IADG;MAET3B,IAAI,EAAE,IAFG;MAGTmD,GAAG,EAAHA,GAHS;MAITG,OAAO,EAAE,CAAC,CAAC,MAAKrC,KAAL,CAAWsC,cAAb,IAA+B,KAJ/B;MAKTlB,YAAY,EAAE,IALL;MAMTmB,YAAY,EAAE1D,UAAU,CAACE,IAAX,CAAgByD,QAAhB,CAAyBN,GAAzB,KAAiCrD,UAAU,CAACG,GAAX,CAAewD,QAAf,CAAwBN,GAAxB,CANtC;MAOTrB,WAAW,EAAEC,IAAI,CAACC,GAAL,EAPJ;MAQTV,OAAO,EAAE,KARA;MASToC,QAAQ,EAAE;IATD,CAAb;IAJe;EAelB;;;;WAED,oBAAW;MAAA;;MACP,IAAI,KAAKzC,KAAL,CAAWiB,IAAf,EAAqB;QACjB,IAAMD,KAAK,GAAG,KAAKhB,KAAL,CAAWiB,IAAX,CAAgBC,KAAhB,CAAsB,GAAtB,CAAd;QACAF,KAAK,CAACK,MAAN,CAAa,CAAb,EAAgB,CAAhB;QACA,IAAMC,OAAO,GAAGN,KAAK,CAAC,CAAD,CAArB;QACA,IAAMO,IAAI,GAAGP,KAAK,CAACK,MAAN,CAAa,CAAb,EAAgBG,IAAhB,CAAqB,GAArB,CAAb;QAEA,KAAKxB,KAAL,CAAWyB,MAAX,CAAkBd,QAAlB,CAA2BW,OAA3B,EAAoCC,IAApC,EACKO,IADL,CACU,UAAAX,IAAI,EAAI;UACV,IAAIA,IAAI,CAACuB,IAAL,KAAcC,SAAlB,EAA6B;YACzBxB,IAAI,GAAGA,IAAI,CAACuB,IAAZ;UACH;;UAED,IAAME,QAAQ,GAAG;YAACL,YAAY,EAAE,MAAI,CAACnC,KAAL,CAAWmC;UAA1B,CAAjB,CALU,CAMV;;UACA,IAAIpB,IAAI,CAAC0B,IAAL,KAAc,QAAlB,EAA4B;YACxB,IAAMX,GAAG,GAAGC,iBAAA,CAAMW,cAAN,CAAqB3D,cAAc,CAACgC,IAAI,CAACA,IAAN,CAAnC,CAAZ;;YACA,IAAIe,GAAJ,EAAS;cACLU,QAAQ,CAACV,GAAT,GAAeA,GAAf;cACAU,QAAQ,CAACL,YAAT,GAAwB1D,UAAU,CAACE,IAAX,CAAgByD,QAAhB,CAAyBN,GAAzB,KAAiCrD,UAAU,CAACG,GAAX,CAAewD,QAAf,CAAwBN,GAAxB,CAAzD;YACH;UACJ;;UAED,IAAIU,QAAQ,CAACL,YAAb,EAA2B;YACvB,IAAI1D,UAAU,CAACG,GAAX,CAAewD,QAAf,CAAwB,MAAI,CAACpC,KAAL,CAAW8B,GAAnC,CAAJ,EAA6C;cACzCU,QAAQ,CAAClC,IAAT,GAAgBS,IAAhB;cACAyB,QAAQ,CAACxB,YAAT,GAAwBD,IAAxB;YACH,CAHD,MAGO,IAAItC,UAAU,CAACE,IAAX,CAAgByD,QAAhB,CAAyB,MAAI,CAACpC,KAAL,CAAW8B,GAApC,CAAJ,EAA8C;cACjDU,QAAQ,CAAC7D,IAAT,GAAgBoC,IAAhB;cACAyB,QAAQ,CAACxB,YAAT,GAAwBD,IAAxB;YACH;UACJ;;UAED,MAAI,CAACP,QAAL,CAAcgC,QAAd;QACH,CA3BL,WA4BW,UAAAX,CAAC;UAAA,OAAIpC,MAAM,CAACY,KAAP,CAAa,uBAAuBwB,CAApC,CAAJ;QAAA,CA5BZ;MA6BH;IACJ;;;WAED,6BAAoB;MAChB,KAAKtB,QAAL;MAEA,IAAMK,KAAK,GAAG,KAAKhB,KAAL,CAAWiB,IAAX,CAAgBC,KAAhB,CAAsB,GAAtB,CAAd;MACAF,KAAK,CAACK,MAAN,CAAa,CAAb,EAAgB,CAAhB;MACA,IAAMC,OAAO,GAAGN,KAAK,CAAC,CAAD,CAArB;MACA,IAAMO,IAAI,GAAGP,KAAK,CAACK,MAAN,CAAa,CAAb,EAAgBG,IAAhB,CAAqB,GAArB,CAAb;MAEA,KAAKxB,KAAL,CAAW+C,iBAAX,IAAgC,KAAK/C,KAAL,CAAWyB,MAAX,CAAkBuB,cAAlB,CAAiC1B,OAAjC,EAA0CC,IAA1C,EAAgD,KAAK0B,aAArD,CAAhC;IACH;;;WAED,gCAAuB;MACnB,KAAK3C,OAAL,IAAgBC,YAAY,CAAC,KAAKD,OAAN,CAA5B;MACA,IAAMU,KAAK,GAAG,KAAKhB,KAAL,CAAWiB,IAAX,CAAgBC,KAAhB,CAAsB,GAAtB,CAAd;MACAF,KAAK,CAACK,MAAN,CAAa,CAAb,EAAgB,CAAhB;MACA,IAAMC,OAAO,GAAGN,KAAK,CAAC,CAAD,CAArB;MACA,IAAMO,IAAI,GAAGP,KAAK,CAACK,MAAN,CAAa,CAAb,EAAgBG,IAAhB,CAAqB,GAArB,CAAb;MACA,KAAKxB,KAAL,CAAW+C,iBAAX,IAAgC,KAAK/C,KAAL,CAAWyB,MAAX,CAAkBuB,cAAlB,CAAiC1B,OAAjC,EAA0CC,IAA1C,EAAgD,KAAK0B,aAArD,CAAhC;IACH;;;WA6BD,qBAAYf,GAAZ,EAAiB;MACb,QAAQA,GAAR;QACI,KAAK,MAAL;UACI,OAAO,MAAP;;QACJ,KAAK,IAAL;UACI,OAAO,YAAP;;QACJ,KAAK,MAAL;UACI,OAAO,MAAP;;QACJ,KAAK,KAAL;UACI,OAAO,MAAP;;QACJ;UACI,OAAO,MAAP;MAVR;IAYH;;;WAED,sBAAa;MAAA;;MACT,IAAIrD,UAAU,CAACC,MAAX,CAAkB0D,QAAlB,CAA2B,KAAKpC,KAAL,CAAW8B,GAAtC,CAAJ,EAAgD;QAC5C,IAAI,KAAK9B,KAAL,CAAWqC,QAAf,EAAyB;UACrB,oBAAO,gCAAC,sBAAD;YAAY,SAAS,EAAEN,iBAAA,CAAMe,IAAN,CAAW,KAAKlD,KAAL,CAAWmD,OAAX,CAAmB3E,GAA9B,EAAmC,KAAKwB,KAAL,CAAWoD,uBAAX,EAAnC;UAAvB,EAAP;QACH,CAFD,MAEO;UACH,oBAAO;YACH,OAAO,EAAE,iBAAAnB,CAAC,EAAI;cACVA,CAAC,CAACoB,MAAF,CAASC,OAAT,GAAmB,IAAnB;;cACA,MAAI,CAAC1C,QAAL,CAAc;gBAAE6B,QAAQ,EAAE;cAAZ,CAAd;YACH,CAJE;YAKH,SAAS,EAAEN,iBAAA,CAAMe,IAAN,CAAW,KAAKlD,KAAL,CAAWmD,OAAX,CAAmB3E,GAA9B,EAAmC,KAAKwB,KAAL,CAAWoD,uBAAX,EAAnC,CALR;YAMH,GAAG,EAAE,KAAKpD,KAAL,CAAWiB,IAAX,GAAkB,MAAlB,GAA2B,KAAKb,KAAL,CAAWS,WANxC;YAOH,GAAG,EAAE,KAAKb,KAAL,CAAWiB;UAPb,EAAP;QASH;MACJ,CAdD,MAcO,IAAI,KAAKb,KAAL,CAAWrB,IAAX,KAAoB,IAApB,IAA4B,KAAKqB,KAAL,CAAWM,IAAX,KAAoB,IAAhD,IAAwD,KAAKN,KAAL,CAAWiC,OAAvE,EAAgF;QACnF,oBAAO,gCAAC,qBAAD;UACH,OAAO,EAAC,UADL;UAEH,SAAS,EAAG,KAAKrC,KAAL,CAAWmD,OAAX,CAAmB7E,QAF5B;UAGH,SAAS,MAHN;UAIH,KAAK,EAAG,KAAK8B,KAAL,CAAWgB,YAAX,IAA2B,KAAKhB,KAAL,CAAWrB,IAAtC,IAA8C,KAAKqB,KAAL,CAAWM,IAJ9D;UAKH,QAAQ,EAAE,kBAAA6C,QAAQ;YAAA,OAAI,MAAI,CAAC3C,QAAL,CAAc;cAAEQ,YAAY,EAAEmC,QAAhB;cAA0BlD,OAAO,EAAE;YAAnC,CAAd,CAAJ;UAAA,CALf;UAMH,UAAU,EAAE;YAAEmD,QAAQ,EAAE,CAAC,KAAKpD,KAAL,CAAWiC;UAAxB;QANT,EAAP;MAQH;IACJ;;;WAED,kBAAS;MAAA;;MACL,oBAAO,gCAAC,kBAAD;QACH,OAAO,EAAE;UAAEoB,WAAW,EAAE,KAAKzD,KAAL,CAAWmD,OAAX,CAAmBlF,MAAlC;UAA0CE,KAAK,EAAE,KAAK6B,KAAL,CAAWmD,OAAX,CAAmBhF;QAApE,CADN;QAEH,MAAM,EAAC,OAFJ;QAGH,IAAI,EAAE,CAAC,CAAC,KAAK6B,KAAL,CAAWiB,IAHhB;QAIH,OAAO,EAAE;UAAA,OAAM,MAAI,CAACjB,KAAL,CAAWgC,OAAX,EAAN;QAAA,CAJN;QAKH,SAAS,EAAE,IALR;QAMH,QAAQ,EAAC,IANN;QAOH,mBAAgB;MAPb,gBASH;QAAK,SAAS,EAAE,KAAKhC,KAAL,CAAWmD,OAAX,CAAmBzE;MAAnC,gBACI,gCAAC,uBAAD;QAAa,EAAE,EAAC;MAAhB,GAAqC,KAAKsB,KAAL,CAAW0D,CAAX,CAAa,KAAKtD,KAAL,CAAWiC,OAAX,GAAqB,MAArB,GAA8B,MAA3C,IAAqD,IAArD,GAA4D,KAAKrC,KAAL,CAAWiB,IAA5G,CADJ,EAEKpC,UAAU,CAACC,MAAX,CAAkB0D,QAAlB,CAA2B,KAAKpC,KAAL,CAAW8B,GAAtC,kBAA8C,0DAC3C,gCAAC,oBAAD;QAAY,IAAI,EAAC,OAAjB;QACI,KAAK,EAAE,SADX;QAEI,OAAO,EAAE,KAAKlC,KAAL,CAAW2D;MAFxB,gBAII,gCAAC,sBAAD,OAJJ,CAD2C,CAFnD,CATG,eAqBH,gCAAC,yBAAD;QAAe,SAAS,EAAE,KAAK3D,KAAL,CAAWmD,OAAX,CAAmB/E;MAA7C,GACK,KAAKwF,UAAL,EADL,CArBG,eAwBH,gCAAC,yBAAD,QACK,KAAKxD,KAAL,CAAWmC,YAAX,gBACG,gCAAC,kBAAD;QACI,KAAK,EAAC,MADV;QAEI,OAAO,EAAE,iBAAAN,CAAC;UAAA,OAAIE,iBAAA,CAAM0B,eAAN,CAAsB,MAAI,CAACzD,KAAL,CAAWM,IAAX,IAAmB,MAAI,CAACN,KAAL,CAAWrB,IAApD,EAA0DkD,CAA1D,CAAJ;QAAA,CAFd;QAGI,SAAS,eAAE,gCAAC,UAAD;MAHf,GAKK,KAAKjC,KAAL,CAAW0D,CAAX,CAAa,cAAb,CALL,CADH,GAOe,IARpB,EASK,KAAKtD,KAAL,CAAWiC,OAAX,gBACG,gCAAC,kBAAD;QACI,KAAK,EAAC,MADV;QAEI,QAAQ,EAAE,KAAKjC,KAAL,CAAWgB,YAAX,KAA4B,KAAKhB,KAAL,CAAWrB,IAAvC,IAA+C,KAAKqB,KAAL,CAAWgB,YAAX,KAA4B,KAAKhB,KAAL,CAAWM,IAFpG;QAGI,OAAO,EAAC,WAHZ;QAII,OAAO,EAAE,KAAKgB,WAJlB;QAKI,SAAS,eAAE,gCAAC,gBAAD;MALf,GAOK,KAAK1B,KAAL,CAAW0D,CAAX,CAAa,MAAb,CAPL,CADH,GASe,IAlBpB,eAmBI,gCAAC,kBAAD;QACI,OAAO,EAAC,WADZ;QAEI,OAAO,EAAE;UAAA,OAAM,MAAI,CAAC1D,KAAL,CAAWgC,OAAX,EAAN;QAAA,CAFb;QAGI,KAAK,EAAC,SAHV;QAII,SAAS,eAAE,gCAAC,iBAAD;MAJf,GAMK,KAAKhC,KAAL,CAAW0D,CAAX,CAAa,OAAb,CANL,CAnBJ,CAxBG,CAAP;IAqDH;;;EA3MoBI,gB;;AA8MzB/D,UAAU,CAACgE,SAAX,GAAuB;EACnBL,CAAC,EAAEM,qBAAA,CAAUC,IADM;EAEnBC,IAAI,EAAEF,qBAAA,CAAUG,MAFG;EAGnBC,UAAU,EAAEJ,qBAAA,CAAUK,IAHH;EAInBrC,OAAO,EAAEgC,qBAAA,CAAUC,IAJA;EAKnBhD,IAAI,EAAE+C,qBAAA,CAAUG,MAAV,CAAiBG,UALJ;EAMnBvB,iBAAiB,EAAEiB,qBAAA,CAAUK;AANV,CAAvB;AASA;;AACA,IAAME,OAAO,GAAG,IAAAC,qBAAA,IAAY,IAAAC,kBAAA,EAAW1G,MAAX,EAAmBgC,UAAnB,CAAZ,CAAhB;;eACewE,O"}
@@ -33,6 +33,8 @@ var _styles = require("@mui/styles");
33
33
 
34
34
  var _material = require("@mui/material");
35
35
 
36
+ var _i18n = _interopRequireDefault(require("../../i18n"));
37
+
36
38
  var _ConfigGeneric2 = _interopRequireDefault(require("./ConfigGeneric"));
37
39
 
38
40
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
@@ -73,7 +75,7 @@ var ConfigAutocomplete = /*#__PURE__*/function (_ConfigGeneric) {
73
75
 
74
76
  if (Array.isArray(value)) {
75
77
  selectOptions.unshift({
76
- label: _ConfigGeneric2["default"].DIFFERENT_LABEL,
78
+ label: _i18n["default"].t(_ConfigGeneric2["default"].DIFFERENT_LABEL),
77
79
  value: _ConfigGeneric2["default"].DIFFERENT_VALUE
78
80
  });
79
81
  this.setState({
@@ -99,7 +101,7 @@ var ConfigAutocomplete = /*#__PURE__*/function (_ConfigGeneric) {
99
101
  var item;
100
102
  var options = JSON.parse(JSON.stringify(this.state.selectOptions));
101
103
 
102
- var isIndeterminate = Array.isArray(this.state.value) || this.state.value === _ConfigGeneric2["default"].DIFFERENT_LABEL;
104
+ var isIndeterminate = Array.isArray(this.state.value) || this.state.value === _ConfigGeneric2["default"].DIFFERENT_VALUE;
103
105
 
104
106
  if (isIndeterminate) {
105
107
  (0, _toConsumableArray2["default"])(this.state.value).filter(function (val) {
@@ -113,7 +115,7 @@ var ConfigAutocomplete = /*#__PURE__*/function (_ConfigGeneric) {
113
115
  });
114
116
  });
115
117
  item = {
116
- label: _ConfigGeneric2["default"].DIFFERENT_LABEL,
118
+ label: _i18n["default"].t(_ConfigGeneric2["default"].DIFFERENT_LABEL),
117
119
  value: _ConfigGeneric2["default"].DIFFERENT_VALUE
118
120
  };
119
121
  options.unshift(item);
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigAutocomplete.js","names":["styles","theme","fullWidth","width","ConfigAutocomplete","value","ConfigGeneric","getValue","props","data","attr","selectOptions","schema","options","map","item","label","JSON","parse","stringify","Array","isArray","unshift","DIFFERENT_LABEL","DIFFERENT_VALUE","setState","error","disabled","defaultValue","state","isIndeterminate","filter","val","find","it","forEach","push","toString","undefined","classes","indeterminate","freeSolo","e","target","onChange","_","option","params","getText","placeholder","renderHelp","help","helpLink","noTranslation","propTypes","socket","PropTypes","object","isRequired","themeType","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigAutocomplete.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport { Autocomplete, TextField } from '@mui/material';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigAutocomplete extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n const selectOptions = this.props.schema.options.map(item => typeof item === 'string' ? {label: item, value: item} : JSON.parse(JSON.stringify(item)));\n\n // if __different\n if (Array.isArray(value)) {\n selectOptions.unshift({label: ConfigGeneric.DIFFERENT_LABEL, value: ConfigGeneric.DIFFERENT_VALUE});\n this.setState({value: ConfigGeneric.DIFFERENT_VALUE, selectOptions});\n } else {\n this.setState({value, selectOptions});\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n let item;\n let options = JSON.parse(JSON.stringify(this.state.selectOptions));\n let isIndeterminate = Array.isArray(this.state.value) || this.state.value === ConfigGeneric.DIFFERENT_LABEL;\n\n if (isIndeterminate) {\n [...this.state.value]\n .filter(val => !options.find(it => it.value === val))\n .forEach(item => options.push({label: item.toString(), value: item}));\n\n item = {label: ConfigGeneric.DIFFERENT_LABEL, value: ConfigGeneric.DIFFERENT_VALUE};\n options.unshift(item);\n } else {\n // eslint-disable-next-line\n item = this.state.value !== null && this.state.value !== undefined && options.find(item => item.value == this.state.value); // let \"==\" be and not ===\n if (this.state.value !== null && this.state.value !== undefined && !item) {\n item = {value: this.state.value, label: this.state.value};\n options.push(item);\n }\n }\n\n return <Autocomplete\n className={this.props.classes.indeterminate}\n fullWidth\n freeSolo={!!this.props.schema.freeSolo}\n value={item}\n // autoComplete\n onInputChange={e => {\n if (e) {\n const val = e.target.value;\n if (val !== this.state.value) {\n this.setState({value: val}, () => this.onChange(this.props.attr, val));\n }\n }\n }}\n onChange={(_, value) => {\n const val = typeof value === 'object' ? (value ? value.value : '') : value;\n if (val !== this.state.value) {\n this.setState({value: val}, () => this.onChange(this.props.attr, val));\n }\n }}\n options={options}\n getOptionLabel={option => (option && option.label) || ''}\n renderInput={params => <TextField\n variant=\"standard\"\n {...params}\n error={!!error}\n // inputProps are important and will be given in params\n // inputProps={{maxLength: this.props.schema.maxLength || this.props.schema.max || undefined}}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n disabled={!!disabled}\n />}\n />;\n }\n}\n\nConfigAutocomplete.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigAutocomplete);\n"],"mappings":"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"}
1
+ {"version":3,"file":"ConfigAutocomplete.js","names":["styles","theme","fullWidth","width","ConfigAutocomplete","value","ConfigGeneric","getValue","props","data","attr","selectOptions","schema","options","map","item","label","JSON","parse","stringify","Array","isArray","unshift","I18n","t","DIFFERENT_LABEL","DIFFERENT_VALUE","setState","error","disabled","defaultValue","state","isIndeterminate","filter","val","find","it","forEach","push","toString","undefined","classes","indeterminate","freeSolo","e","target","onChange","_","option","params","getText","placeholder","renderHelp","help","helpLink","noTranslation","propTypes","socket","PropTypes","object","isRequired","themeType","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigAutocomplete.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport { Autocomplete, TextField } from '@mui/material';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigAutocomplete extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n const selectOptions = this.props.schema.options.map(item => typeof item === 'string' ? {label: item, value: item} : JSON.parse(JSON.stringify(item)));\n\n // if __different\n if (Array.isArray(value)) {\n selectOptions.unshift({label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE});\n this.setState({value: ConfigGeneric.DIFFERENT_VALUE, selectOptions});\n } else {\n this.setState({value, selectOptions});\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n let item;\n let options = JSON.parse(JSON.stringify(this.state.selectOptions));\n let isIndeterminate = Array.isArray(this.state.value) || this.state.value === ConfigGeneric.DIFFERENT_VALUE;\n\n if (isIndeterminate) {\n [...this.state.value]\n .filter(val => !options.find(it => it.value === val))\n .forEach(item => options.push({label: item.toString(), value: item}));\n\n item = {label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE};\n options.unshift(item);\n } else {\n // eslint-disable-next-line\n item = this.state.value !== null && this.state.value !== undefined && options.find(item => item.value == this.state.value); // let \"==\" be and not ===\n if (this.state.value !== null && this.state.value !== undefined && !item) {\n item = {value: this.state.value, label: this.state.value};\n options.push(item);\n }\n }\n\n return <Autocomplete\n className={this.props.classes.indeterminate}\n fullWidth\n freeSolo={!!this.props.schema.freeSolo}\n value={item}\n // autoComplete\n onInputChange={e => {\n if (e) {\n const val = e.target.value;\n if (val !== this.state.value) {\n this.setState({value: val}, () => this.onChange(this.props.attr, val));\n }\n }\n }}\n onChange={(_, value) => {\n const val = typeof value === 'object' ? (value ? value.value : '') : value;\n if (val !== this.state.value) {\n this.setState({value: val}, () => this.onChange(this.props.attr, val));\n }\n }}\n options={options}\n getOptionLabel={option => (option && option.label) || ''}\n renderInput={params => <TextField\n variant=\"standard\"\n {...params}\n error={!!error}\n // inputProps are important and will be given in params\n // inputProps={{maxLength: this.props.schema.maxLength || this.props.schema.max || undefined}}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n disabled={!!disabled}\n />}\n />;\n }\n}\n\nConfigAutocomplete.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigAutocomplete);\n"],"mappings":"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"}
@@ -33,6 +33,8 @@ var _styles = require("@mui/styles");
33
33
 
34
34
  var _material = require("@mui/material");
35
35
 
36
+ var _i18n = _interopRequireDefault(require("../../i18n"));
37
+
36
38
  var _ConfigGeneric2 = _interopRequireDefault(require("./ConfigGeneric"));
37
39
 
38
40
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
@@ -107,7 +109,7 @@ var ConfigAutocompleteSendTo = /*#__PURE__*/function (_ConfigGeneric) {
107
109
 
108
110
  if (Array.isArray(value)) {
109
111
  selectOptions.unshift({
110
- label: _ConfigGeneric2["default"].DIFFERENT_LABEL,
112
+ label: _i18n["default"].t(_ConfigGeneric2["default"].DIFFERENT_LABEL),
111
113
  value: _ConfigGeneric2["default"].DIFFERENT_VALUE
112
114
  });
113
115
 
@@ -128,7 +130,7 @@ var ConfigAutocompleteSendTo = /*#__PURE__*/function (_ConfigGeneric) {
128
130
  // if __different
129
131
  if (Array.isArray(value)) {
130
132
  selectOptions.unshift({
131
- label: _ConfigGeneric2["default"].DIFFERENT_LABEL,
133
+ label: _i18n["default"].t(_ConfigGeneric2["default"].DIFFERENT_LABEL),
132
134
  value: _ConfigGeneric2["default"].DIFFERENT_VALUE
133
135
  });
134
136
  this.setState({
@@ -194,7 +196,7 @@ var ConfigAutocompleteSendTo = /*#__PURE__*/function (_ConfigGeneric) {
194
196
  });
195
197
  });
196
198
  item = {
197
- label: _ConfigGeneric2["default"].DIFFERENT_LABEL,
199
+ label: _i18n["default"].t(_ConfigGeneric2["default"].DIFFERENT_LABEL),
198
200
  value: _ConfigGeneric2["default"].DIFFERENT_VALUE
199
201
  };
200
202
  options.unshift(item);
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigAutocompleteSendTo.js","names":["styles","theme","fullWidth","width","ConfigAutocompleteSendTo","askInstance","value","ConfigGeneric","getValue","props","data","attr","selectOptions","schema","options","map","item","label","JSON","parse","stringify","alive","undefined","jsonData","getPattern","e","console","error","socket","sendTo","adapterName","instance","command","then","list","Array","isArray","forEach","push","unshift","DIFFERENT_LABEL","DIFFERENT_VALUE","setState","context","getContext","alsoDependsOn","disabled","defaultValue","state","setTimeout","isIndeterminate","filter","val","find","it","toString","length","maxLength","max","target","onChange","trim","getText","placeholder","renderHelp","help","helpLink","noTranslation","freeSolo","option","classes","indeterminate","_","params","propTypes","PropTypes","object","isRequired","themeType","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigAutocompleteSendTo.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport { Autocomplete, TextField } from '@mui/material';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigAutocompleteSendTo extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n\n this.askInstance();\n }\n\n askInstance() {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n const selectOptions = this.props.schema.options ?\n this.props.schema.options.map(item => typeof item === 'string' ? {label: item, value: item} : JSON.parse(JSON.stringify(item)))\n :\n [];\n\n if (this.props.alive) {\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 }\n\n if (data === undefined) {\n data = null;\n }\n\n this.props.socket.sendTo(this.props.adapterName + '.' + this.props.instance, this.props.schema.command || 'send', data)\n .then(list => {\n if (list && Array.isArray(list)) {\n list.forEach(item =>\n selectOptions.push(typeof item === 'string' ? {label: item, value: item} : JSON.parse(JSON.stringify(item))));\n }\n\n // if __different\n if (Array.isArray(value)) {\n selectOptions.unshift({label: ConfigGeneric.DIFFERENT_LABEL, value: ConfigGeneric.DIFFERENT_VALUE});\n this.setState({value: ConfigGeneric.DIFFERENT_VALUE, selectOptions, context: this.getContext()});\n } else {\n this.setState({value, selectOptions, context: this.getContext()});\n }\n });\n } else {\n // if __different\n if (Array.isArray(value)) {\n selectOptions.unshift({label: ConfigGeneric.DIFFERENT_LABEL, value: ConfigGeneric.DIFFERENT_VALUE});\n this.setState({value: ConfigGeneric.DIFFERENT_VALUE, selectOptions});\n } else {\n this.setState({value, selectOptions});\n }\n }\n }\n\n getContext() {\n const context = {};\n if (Array.isArray(this.props.schema.alsoDependsOn)) {\n this.props.schema.alsoDependsOn.forEach(attr =>\n context[attr] = ConfigGeneric.getValue(this.props.data, attr));\n }\n return JSON.stringify(context);\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n\n if (this.props.alive) {\n const context = this.getContext();\n if (context !== this.state.context) {\n setTimeout(() => this.askInstance(), 300);\n }\n }\n\n let item;\n let options = JSON.parse(JSON.stringify(this.state.selectOptions));\n let isIndeterminate = Array.isArray(this.state.value) || this.state.value === ConfigGeneric.DIFFERENT_LABEL;\n\n if (isIndeterminate) {\n [...this.state.value]\n .filter(val => !options.find(it => it.value === val))\n .forEach(item => options.push({label: item.toString(), value: item}));\n\n item = {label: ConfigGeneric.DIFFERENT_LABEL, value: ConfigGeneric.DIFFERENT_VALUE};\n options.unshift(item);\n } else {\n item = this.state.value !== null && this.state.value !== undefined &&\n //eslint-disable-next-line\n options.find(item => item.value == this.state.value); // let \"==\" be and not ===\n\n if (this.state.value !== null && this.state.value !== undefined && !item) {\n item = {value: this.state.value, label: this.state.value};\n options.push(item);\n }\n item = item || null;\n }\n\n if (!options.length) {\n return <TextField\n variant=\"standard\"\n fullWidth\n value={this.state.value === null || this.state.value === undefined ? '' : this.state.value}\n error={!!error}\n disabled={!!disabled}\n inputProps={{maxLength: this.props.schema.maxLength || this.props.schema.max || undefined}}\n onChange={e => {\n const value = e.target.value;\n this.setState({value}, () =>\n this.onChange(this.props.attr, (value || '').trim()));\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />;\n } else {\n return <Autocomplete\n value={item}\n fullWidth\n freeSolo={!!this.props.schema.freeSolo}\n options={options}\n // autoComplete\n getOptionLabel={option => (option && option.label) || ''}\n className={this.props.classes.indeterminate}\n onInputChange={e => {\n if (e) {\n const val = e.target.value;\n if (val !== this.state.value) {\n this.setState({value: val}, () => this.onChange(this.props.attr, val));\n }\n }\n }}\n onChange={(_, value) => {\n const val = typeof value === 'object' ? (value ? value.value : '') : value;\n if (val !== this.state.value) {\n this.setState({value: val}, () => this.onChange(this.props.attr, val));\n }\n }}\n renderInput={(params) =>\n <TextField\n variant=\"standard\"\n {...params}\n // inputProps are important and will be given in params\n // inputProps={{maxLength: this.props.schema.maxLength || this.props.schema.max || undefined}}\n error={!!error}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n disabled={!!disabled}\n />}\n />;\n }\n }\n}\n\nConfigAutocompleteSendTo.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigAutocompleteSendTo);\n"],"mappings":"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"}
1
+ {"version":3,"file":"ConfigAutocompleteSendTo.js","names":["styles","theme","fullWidth","width","ConfigAutocompleteSendTo","askInstance","value","ConfigGeneric","getValue","props","data","attr","selectOptions","schema","options","map","item","label","JSON","parse","stringify","alive","undefined","jsonData","getPattern","e","console","error","socket","sendTo","adapterName","instance","command","then","list","Array","isArray","forEach","push","unshift","I18n","t","DIFFERENT_LABEL","DIFFERENT_VALUE","setState","context","getContext","alsoDependsOn","disabled","defaultValue","state","setTimeout","isIndeterminate","filter","val","find","it","toString","length","maxLength","max","target","onChange","trim","getText","placeholder","renderHelp","help","helpLink","noTranslation","freeSolo","option","classes","indeterminate","_","params","propTypes","PropTypes","object","isRequired","themeType","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigAutocompleteSendTo.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport { Autocomplete, TextField } from '@mui/material';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigAutocompleteSendTo extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n\n this.askInstance();\n }\n\n askInstance() {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n const selectOptions = this.props.schema.options ?\n this.props.schema.options.map(item => typeof item === 'string' ? {label: item, value: item} : JSON.parse(JSON.stringify(item)))\n :\n [];\n\n if (this.props.alive) {\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 }\n\n if (data === undefined) {\n data = null;\n }\n\n this.props.socket.sendTo(this.props.adapterName + '.' + this.props.instance, this.props.schema.command || 'send', data)\n .then(list => {\n if (list && Array.isArray(list)) {\n list.forEach(item =>\n selectOptions.push(typeof item === 'string' ? {label: item, value: item} : JSON.parse(JSON.stringify(item))));\n }\n\n // if __different\n if (Array.isArray(value)) {\n selectOptions.unshift({label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE});\n this.setState({value: ConfigGeneric.DIFFERENT_VALUE, selectOptions, context: this.getContext()});\n } else {\n this.setState({value, selectOptions, context: this.getContext()});\n }\n });\n } else {\n // if __different\n if (Array.isArray(value)) {\n selectOptions.unshift({label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE});\n this.setState({value: ConfigGeneric.DIFFERENT_VALUE, selectOptions});\n } else {\n this.setState({value, selectOptions});\n }\n }\n }\n\n getContext() {\n const context = {};\n if (Array.isArray(this.props.schema.alsoDependsOn)) {\n this.props.schema.alsoDependsOn.forEach(attr =>\n context[attr] = ConfigGeneric.getValue(this.props.data, attr));\n }\n return JSON.stringify(context);\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n\n if (this.props.alive) {\n const context = this.getContext();\n if (context !== this.state.context) {\n setTimeout(() => this.askInstance(), 300);\n }\n }\n\n let item;\n let options = JSON.parse(JSON.stringify(this.state.selectOptions));\n let isIndeterminate = Array.isArray(this.state.value) || this.state.value === ConfigGeneric.DIFFERENT_LABEL;\n\n if (isIndeterminate) {\n [...this.state.value]\n .filter(val => !options.find(it => it.value === val))\n .forEach(item => options.push({label: item.toString(), value: item}));\n\n item = {label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE};\n options.unshift(item);\n } else {\n item = this.state.value !== null && this.state.value !== undefined &&\n //eslint-disable-next-line\n options.find(item => item.value == this.state.value); // let \"==\" be and not ===\n\n if (this.state.value !== null && this.state.value !== undefined && !item) {\n item = {value: this.state.value, label: this.state.value};\n options.push(item);\n }\n item = item || null;\n }\n\n if (!options.length) {\n return <TextField\n variant=\"standard\"\n fullWidth\n value={this.state.value === null || this.state.value === undefined ? '' : this.state.value}\n error={!!error}\n disabled={!!disabled}\n inputProps={{maxLength: this.props.schema.maxLength || this.props.schema.max || undefined}}\n onChange={e => {\n const value = e.target.value;\n this.setState({value}, () =>\n this.onChange(this.props.attr, (value || '').trim()));\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />;\n } else {\n return <Autocomplete\n value={item}\n fullWidth\n freeSolo={!!this.props.schema.freeSolo}\n options={options}\n // autoComplete\n getOptionLabel={option => (option && option.label) || ''}\n className={this.props.classes.indeterminate}\n onInputChange={e => {\n if (e) {\n const val = e.target.value;\n if (val !== this.state.value) {\n this.setState({value: val}, () => this.onChange(this.props.attr, val));\n }\n }\n }}\n onChange={(_, value) => {\n const val = typeof value === 'object' ? (value ? value.value : '') : value;\n if (val !== this.state.value) {\n this.setState({value: val}, () => this.onChange(this.props.attr, val));\n }\n }}\n renderInput={(params) =>\n <TextField\n variant=\"standard\"\n {...params}\n // inputProps are important and will be given in params\n // inputProps={{maxLength: this.props.schema.maxLength || this.props.schema.max || undefined}}\n error={!!error}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n disabled={!!disabled}\n />}\n />;\n }\n }\n}\n\nConfigAutocompleteSendTo.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigAutocompleteSendTo);\n"],"mappings":"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"}
@@ -41,6 +41,8 @@ var _Select = _interopRequireDefault(require("@mui/material/Select"));
41
41
 
42
42
  var _ConfigGeneric2 = _interopRequireDefault(require("./ConfigGeneric"));
43
43
 
44
+ var _i18n = _interopRequireDefault(require("../../i18n"));
45
+
44
46
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
45
47
 
46
48
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -82,7 +84,19 @@ var ConfigCertificateSelect = /*#__PURE__*/function (_ConfigGeneric) {
82
84
  case 4:
83
85
  selectOptions = _context.sent;
84
86
  selectOptions = selectOptions.filter(function (el) {
85
- return _this.props.attr.toLowerCase().endsWith(el.type);
87
+ var name = _this.props.attr.toLowerCase();
88
+
89
+ if (name.includes(el.type)) {
90
+ return true;
91
+ } else if (el.type === 'public' && name.includes('cert')) {
92
+ return true;
93
+ } else if (el.type === 'private' && (name.includes('priv') || name.includes('key'))) {
94
+ return true;
95
+ } else if (el.type === 'chained' && (name.includes('chain') || name.includes('ca'))) {
96
+ return true;
97
+ }
98
+
99
+ return false;
86
100
  }).map(function (el) {
87
101
  return {
88
102
  label: el.name,
@@ -90,7 +104,7 @@ var ConfigCertificateSelect = /*#__PURE__*/function (_ConfigGeneric) {
90
104
  };
91
105
  });
92
106
  selectOptions.unshift({
93
- label: _ConfigGeneric2["default"].NONE_LABEL,
107
+ label: _i18n["default"].t(_ConfigGeneric2["default"].NONE_LABEL),
94
108
  value: _ConfigGeneric2["default"].NONE_VALUE
95
109
  });
96
110
  this.setState({
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigCertificateSelect.js","names":["styles","theme","fullWidth","width","ConfigCertificateSelect","value","ConfigGeneric","getValue","props","data","attr","socket","getCertificates","selectOptions","filter","el","toLowerCase","endsWith","type","map","label","name","unshift","NONE_LABEL","NONE_VALUE","setState","error","disabled","defaultValue","state","item","find","classes","getText","schema","val","noTranslation","e","target","onChange","opacity","help","renderHelp","helpLink","propTypes","PropTypes","object","isRequired","themeType","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigCertificateSelect.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigCertificateSelect extends ConfigGeneric {\n async componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n let selectOptions = await this.props.socket.getCertificates();\n\n selectOptions = selectOptions\n .filter(el => this.props.attr.toLowerCase().endsWith(el.type))\n .map(el => ({label: el.name, value: el.name}));\n\n selectOptions.unshift({label: ConfigGeneric.NONE_LABEL, value: ConfigGeneric.NONE_VALUE});\n\n this.setState({value, selectOptions});\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n // eslint-disable-next-line\n const item = this.state.selectOptions?.find(item => item.value === this.state.value);\n\n return <FormControl className={this.props.classes.fullWidth} variant=\"standard\">\n <InputLabel shrink>{this.getText(this.props.schema.label)}</InputLabel>\n <Select\n variant=\"standard\"\n error={!!error}\n displayEmpty\n disabled={!!disabled}\n value={this.state.value}\n renderValue={val => this.getText(item?.label, this.props.schema.noTranslation !== false)}\n onChange={e =>\n this.setState({ value: e.target.value }, () =>\n this.onChange(this.props.attr, this.state.value))}\n >\n {this.state.selectOptions?.map(item =>\n <MenuItem\n key={item.value}\n value={item.value}\n style={item.value === ConfigGeneric.NONE_VALUE ? { opacity: 0.5 } : {}}>{\n this.getText(item.label, this.props.schema.noTranslation !== false)\n }</MenuItem>)}\n </Select>\n {this.props.schema.help ? <FormHelperText>{this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}</FormHelperText> : null}\n </FormControl>;\n }\n}\n\nConfigCertificateSelect.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigCertificateSelect);"],"mappings":"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"}
1
+ {"version":3,"file":"ConfigCertificateSelect.js","names":["styles","theme","fullWidth","width","ConfigCertificateSelect","value","ConfigGeneric","getValue","props","data","attr","socket","getCertificates","selectOptions","filter","el","name","toLowerCase","includes","type","map","label","unshift","I18n","t","NONE_LABEL","NONE_VALUE","setState","error","disabled","defaultValue","state","item","find","classes","getText","schema","val","noTranslation","e","target","onChange","opacity","help","renderHelp","helpLink","propTypes","PropTypes","object","isRequired","themeType","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigCertificateSelect.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport I18n from '../../i18n';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigCertificateSelect extends ConfigGeneric {\n async componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n let selectOptions = await this.props.socket.getCertificates();\n\n selectOptions = selectOptions\n .filter(el => {\n const name = this.props.attr.toLowerCase();\n\n if (name.includes(el.type)) {\n return true;\n } else if (el.type === 'public' && name.includes('cert')) {\n return true;\n } else if (el.type === 'private' && (name.includes('priv') || name.includes('key'))) {\n return true;\n } else if (el.type === 'chained' && (name.includes('chain') || name.includes('ca'))) {\n return true;\n }\n\n return false;\n })\n .map(el => ({label: el.name, value: el.name}));\n\n selectOptions.unshift({label: I18n.t(ConfigGeneric.NONE_LABEL), value: ConfigGeneric.NONE_VALUE});\n\n this.setState({value, selectOptions});\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n // eslint-disable-next-line\n const item = this.state.selectOptions?.find(item => item.value === this.state.value);\n\n return <FormControl className={this.props.classes.fullWidth} variant=\"standard\">\n <InputLabel shrink>{this.getText(this.props.schema.label)}</InputLabel>\n <Select\n variant=\"standard\"\n error={!!error}\n displayEmpty\n disabled={!!disabled}\n value={this.state.value}\n renderValue={val => this.getText(item?.label, this.props.schema.noTranslation !== false)}\n onChange={e =>\n this.setState({ value: e.target.value }, () =>\n this.onChange(this.props.attr, this.state.value))}\n >\n {this.state.selectOptions?.map(item =>\n <MenuItem\n key={item.value}\n value={item.value}\n style={item.value === ConfigGeneric.NONE_VALUE ? { opacity: 0.5 } : {}}>{\n this.getText(item.label, this.props.schema.noTranslation !== false)\n }</MenuItem>)}\n </Select>\n {this.props.schema.help ? <FormHelperText>{this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}</FormHelperText> : null}\n </FormControl>;\n }\n}\n\nConfigCertificateSelect.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigCertificateSelect);"],"mappings":"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"}