@iobroker/adapter-react-v5 3.0.13 → 3.0.16

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.
@@ -27,8 +27,6 @@ var _react = _interopRequireWildcard(require("react"));
27
27
 
28
28
  var _styles = require("@mui/styles");
29
29
 
30
- var _withWidth = _interopRequireDefault(require("./withWidth"));
31
-
32
30
  var _propTypes = _interopRequireDefault(require("prop-types"));
33
31
 
34
32
  var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
@@ -47,6 +45,8 @@ var _material = require("@mui/material");
47
45
 
48
46
  var _IconNoIcon = _interopRequireDefault(require("../icons/IconNoIcon"));
49
47
 
48
+ var _withWidth = _interopRequireDefault(require("./withWidth"));
49
+
50
50
  var _Utils = _interopRequireDefault(require("./Utils"));
51
51
 
52
52
  var _fa = require("react-icons/fa");
@@ -205,7 +205,7 @@ var FileViewer = /*#__PURE__*/function (_Component) {
205
205
  }; // try to detect valid extension
206
206
 
207
207
  if (data.type === 'Buffer') {
208
- var ext = AdminUtils.detectMimeType(bufferToBase64(data.data));
208
+ var ext = _Utils["default"].detectMimeType(bufferToBase64(data.data));
209
209
 
210
210
  if (ext) {
211
211
  newState.ext = ext;
@@ -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","AdminUtils","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 withWidth from './withWidth';\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 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 = AdminUtils.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","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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"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _typeof = require("@babel/runtime/helpers/typeof");
5
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
6
6
 
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
@@ -11,6 +11,10 @@ exports["default"] = void 0;
11
11
 
12
12
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
13
 
14
+ var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray"));
15
+
16
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
17
+
14
18
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
19
 
16
20
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
@@ -31,9 +35,11 @@ var _LinearProgress = _interopRequireDefault(require("@mui/material/LinearProgre
31
35
 
32
36
  var _Grid = _interopRequireDefault(require("@mui/material/Grid"));
33
37
 
38
+ var _i18n = _interopRequireDefault(require("../../i18n"));
39
+
34
40
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
35
41
 
36
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
42
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
37
43
 
38
44
  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); }; }
39
45
 
@@ -50,6 +56,7 @@ var ConfigCustom = /*#__PURE__*/function (_Component) {
50
56
  (0, _classCallCheck2["default"])(this, ConfigCustom);
51
57
  _this = _super.call(this, props); // schema.url - location of Widget
52
58
  // schema.name - Component name
59
+ // schema.i18n - i18n
53
60
 
54
61
  _this.state = {
55
62
  Component: null,
@@ -63,7 +70,8 @@ var ConfigCustom = /*#__PURE__*/function (_Component) {
63
70
  key: "componentDidMount",
64
71
  value: function () {
65
72
  var _componentDidMount = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
66
- var component, keys;
73
+ var url, pos, i18nURL, lang, file, _this$props$schema$na, _this$props$schema$na2, uniqueName, fileToLoad, componentName, component, keys;
74
+
67
75
  return _regenerator["default"].wrap(function _callee$(_context) {
68
76
  while (1) {
69
77
  switch (_context.prev = _context.next) {
@@ -81,51 +89,93 @@ var ConfigCustom = /*#__PURE__*/function (_Component) {
81
89
 
82
90
  case 4:
83
91
  if (this.props.schema.url.startsWith('http:') || this.props.schema.url.startsWith('https:')) {
84
- window._customComponent = this.props.schema.url;
92
+ url = this.props.schema.url;
85
93
  } else if (this.props.schema.url.startsWith('./')) {
86
- window._customComponent = "".concat(window.location.protocol, "//").concat(window.location.host).concat(this.props.schema.url.replace(/^\./, ''));
94
+ url = "".concat(window.location.protocol, "//").concat(window.location.host).concat(this.props.schema.url.replace(/^\./, ''));
87
95
  } else {
88
- window._customComponent = "".concat(window.location.protocol, "//").concat(window.location.host, "/").concat(this.props.schema.url);
89
- } // custom component always has constant name
96
+ url = "".concat(window.location.protocol, "//").concat(window.location.host, "/adapter/").concat(this.props.adapterName, "/").concat(this.props.schema.url);
97
+ }
90
98
 
99
+ if (!(this.props.schema.i18n === true)) {
100
+ _context.next = 14;
101
+ break;
102
+ }
103
+
104
+ // load i18n from files
105
+ pos = url.lastIndexOf('/');
106
+
107
+ if (pos !== -1) {
108
+ i18nURL = url.substring(0, pos);
109
+ } else {
110
+ i18nURL = url;
111
+ }
91
112
 
92
- _context.prev = 5;
93
- _context.next = 8;
94
- return Promise.resolve().then(function () {
95
- return _interopRequireWildcard(require('CustomComponent/Components'));
113
+ lang = _i18n["default"].getLanguage();
114
+ file = "".concat(i18nURL, "/i18n/").concat(lang, ".json");
115
+ _context.next = 12;
116
+ return fetch(file).then(function (data) {
117
+ return data.json();
118
+ }).then(function (json) {
119
+ return _i18n["default"].extendTranslations(json, lang);
120
+ })["catch"](function (error) {
121
+ return console.log("Cannot load i18n \"".concat(file, "\": ").concat(error));
96
122
  });
97
123
 
98
- case 8:
124
+ case 12:
125
+ _context.next = 15;
126
+ break;
127
+
128
+ case 14:
129
+ if (this.props.schema.i18n && (0, _typeof2["default"])(this.props.schema.i18n) === 'object') {
130
+ try {
131
+ _i18n["default"].extendTranslations(this.props.schema.i18n);
132
+ } catch (error) {
133
+ console.error("Cannot import i18n: ".concat(error));
134
+ }
135
+ }
136
+
137
+ case 15:
138
+ _context.prev = 15;
139
+ _this$props$schema$na = this.props.schema.name.split('/'), _this$props$schema$na2 = (0, _toArray2["default"])(_this$props$schema$na), uniqueName = _this$props$schema$na2[0], fileToLoad = _this$props$schema$na2[1], componentName = _this$props$schema$na2.slice(2);
140
+ console.log(uniqueName, fileToLoad, componentName.join('/'));
141
+ _context.next = 20;
142
+ return window.importFederation(uniqueName, {
143
+ url: url,
144
+ format: 'esm',
145
+ from: 'vite'
146
+ }, fileToLoad);
147
+
148
+ case 20:
99
149
  component = _context.sent;
100
150
 
101
- if (!component || !component["default"] || !component["default"][this.props.schema.name]) {
102
- keys = Object.keys((component === null || component === void 0 ? void 0 : component["default"]) || {});
151
+ if (!component || !component || !component[componentName.join('/')]) {
152
+ keys = Object.keys(component || {});
103
153
  console.error('URL is empty. Cannot load custom component!');
104
154
  this.setState({
105
155
  error: "Component ".concat(this.props.schema.name, " not found in ").concat(this.props.schema.url, ". Found: ").concat(keys.join(', '))
106
156
  });
107
157
  } else {
108
158
  this.setState({
109
- Component: component["default"][this.props.schema.name]
159
+ Component: component[componentName.join('/')]
110
160
  });
111
161
  }
112
162
 
113
- _context.next = 15;
163
+ _context.next = 27;
114
164
  break;
115
165
 
116
- case 12:
117
- _context.prev = 12;
118
- _context.t0 = _context["catch"](5);
166
+ case 24:
167
+ _context.prev = 24;
168
+ _context.t0 = _context["catch"](15);
119
169
  this.setState({
120
170
  error: "Cannot import from ".concat(this.props.schema.url, ": ").concat(_context.t0)
121
171
  });
122
172
 
123
- case 15:
173
+ case 27:
124
174
  case "end":
125
175
  return _context.stop();
126
176
  }
127
177
  }
128
- }, _callee, this, [[5, 12]]);
178
+ }, _callee, this, [[15, 24]]);
129
179
  }));
130
180
 
131
181
  function componentDidMount() {
@@ -179,13 +229,14 @@ var ConfigCustom = /*#__PURE__*/function (_Component) {
179
229
  }(_react.Component);
180
230
 
181
231
  ConfigCustom.propTypes = {
182
- socket: _propTypes["default"].object.isRequired,
232
+ socket: _propTypes["default"].object,
183
233
  themeType: _propTypes["default"].string,
184
234
  themeName: _propTypes["default"].string,
185
235
  style: _propTypes["default"].object,
186
236
  className: _propTypes["default"].string,
237
+ attr: _propTypes["default"].string,
187
238
  data: _propTypes["default"].object.isRequired,
188
- schema: _propTypes["default"].object,
239
+ schema: _propTypes["default"].object.isRequired,
189
240
  onError: _propTypes["default"].func,
190
241
  onChange: _propTypes["default"].func
191
242
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigCustom.js","names":["ConfigCustom","props","state","Component","error","schema","url","console","setState","startsWith","window","_customComponent","location","protocol","host","replace","component","name","keys","Object","join","item","xs","undefined","lg","md","sm","assign","marginBottom","textAlign","width","type","style","themeType","darkStyle","newLine","flexBasis","height","propTypes","socket","PropTypes","object","isRequired","string","themeName","className","data","onError","func","onChange"],"sources":["JsonConfigComponent/ConfigCustom.jsx"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport LinearProgress from '@mui/material/LinearProgress';\nimport Grid from '@mui/material/Grid';\n\nclass ConfigCustom extends Component {\n constructor(props) {\n super(props);\n // schema.url - location of Widget\n // schema.name - Component name\n\n this.state = {\n Component: null,\n error: '',\n };\n }\n\n // load component dynamically\n async componentDidMount() {\n if (!this.props.schema.url) {\n console.error('URL is empty. Cannot load custom component!');\n this.setState({ error: 'URL is empty. Cannot load custom component!' });\n return;\n }\n\n if (this.props.schema.url.startsWith('http:') || this.props.schema.url.startsWith('https:')) {\n window._customComponent = this.props.schema.url;\n } else if (this.props.schema.url.startsWith('./')) {\n window._customComponent = `${window.location.protocol}//${window.location.host}${this.props.schema.url.replace(/^\\./, '')}`;\n } else {\n window._customComponent = `${window.location.protocol}//${window.location.host}/${this.props.schema.url}`;\n }\n\n // custom component always has constant name\n try {\n const component = await import('CustomComponent/Components');\n if (!component || !component.default || !component.default[this.props.schema.name]) {\n const keys = Object.keys(component?.default || {});\n console.error('URL is empty. Cannot load custom component!');\n this.setState({ error: `Component ${this.props.schema.name} not found in ${this.props.schema.url}. Found: ${keys.join(', ')}` });\n } else {\n this.setState({\n Component: component.default[this.props.schema.name]\n });\n }\n } catch (error) {\n this.setState({ error: `Cannot import from ${this.props.schema.url}: ${error}` });\n }\n }\n\n render() {\n const Component = this.state.Component;\n\n // render temporary placeholder\n if (!Component) {\n if (this.state.error) {\n return ;\n } else {\n const schema = this.props.schema || {};\n\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 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.state.error ? <div>{this.state.error}</div> : <LinearProgress />}\n </Grid>;\n\n if (schema.newLine) {\n return <>\n <div style={{ flexBasis: '100%', height: 0 }} />\n {item}\n </>;\n } else {\n return item;\n }\n }\n }\n\n return <Component {...this.props} />;\n }\n}\n\nConfigCustom.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 ConfigCustom;"],"mappings":"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"}
1
+ {"version":3,"file":"ConfigCustom.js","names":["ConfigCustom","props","state","Component","error","schema","url","console","setState","startsWith","window","location","protocol","host","replace","adapterName","i18n","pos","lastIndexOf","i18nURL","substring","lang","getLanguage","file","fetch","then","data","json","extendTranslations","log","name","split","uniqueName","fileToLoad","componentName","join","importFederation","format","from","component","keys","Object","item","xs","undefined","lg","md","sm","assign","marginBottom","textAlign","width","type","style","themeType","darkStyle","newLine","flexBasis","height","propTypes","socket","PropTypes","object","string","themeName","className","attr","isRequired","onError","func","onChange"],"sources":["JsonConfigComponent/ConfigCustom.jsx"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport LinearProgress from '@mui/material/LinearProgress';\nimport Grid from '@mui/material/Grid';\nimport i18n from '../../i18n';\n\nclass ConfigCustom extends Component {\n constructor(props) {\n super(props);\n // schema.url - location of Widget\n // schema.name - Component name\n // schema.i18n - i18n\n\n this.state = {\n Component: null,\n error: '',\n };\n }\n\n // load component dynamically\n async componentDidMount() {\n if (!this.props.schema.url) {\n console.error('URL is empty. Cannot load custom component!');\n this.setState({ error: 'URL is empty. Cannot load custom component!' });\n return;\n }\n\n let url;\n if (this.props.schema.url.startsWith('http:') || this.props.schema.url.startsWith('https:')) {\n url = this.props.schema.url;\n } else if (this.props.schema.url.startsWith('./')) {\n url = `${window.location.protocol}//${window.location.host}${this.props.schema.url.replace(/^\\./, '')}`;\n } else {\n url = `${window.location.protocol}//${window.location.host}/adapter/${this.props.adapterName}/${this.props.schema.url}`;\n }\n\n if (this.props.schema.i18n === true) {\n // load i18n from files\n const pos = url.lastIndexOf('/');\n let i18nURL;\n if (pos !== -1) {\n i18nURL = url.substring(0, pos);\n } else {\n i18nURL = url;\n }\n const lang = i18n.getLanguage();\n const file = `${i18nURL}/i18n/${lang}.json`;\n\n await fetch(file)\n .then(data => data.json())\n .then(json => i18n.extendTranslations(json, lang))\n .catch(error => console.log(`Cannot load i18n \"${file}\": ${error}`));\n } else if (this.props.schema.i18n && typeof this.props.schema.i18n === 'object') {\n try {\n i18n.extendTranslations(this.props.schema.i18n);\n } catch (error) {\n console.error(`Cannot import i18n: ${error}`);\n }\n }\n\n try {\n const [uniqueName, fileToLoad, ...componentName] = this.props.schema.name.split('/');\n console.log(uniqueName, fileToLoad, componentName.join('/'));\n const component = await window.importFederation(uniqueName, {url, format: 'esm', from: 'vite'}, fileToLoad);\n\n if (!component || !component || !component[componentName.join('/')]) {\n const keys = Object.keys(component || {});\n console.error('URL is empty. Cannot load custom component!');\n this.setState({ error: `Component ${this.props.schema.name} not found in ${this.props.schema.url}. Found: ${keys.join(', ')}` });\n } else {\n this.setState({ Component: component[componentName.join('/')] });\n }\n } catch (error) {\n this.setState({ error: `Cannot import from ${this.props.schema.url}: ${error}` });\n }\n }\n\n render() {\n const Component = this.state.Component;\n\n // render temporary placeholder\n if (!Component) {\n if (this.state.error) {\n return ;\n } else {\n const schema = this.props.schema || {};\n\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 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.state.error ? <div>{this.state.error}</div> : <LinearProgress />}\n </Grid>;\n\n if (schema.newLine) {\n return <>\n <div style={{ flexBasis: '100%', height: 0 }} />\n {item}\n </>;\n } else {\n return item;\n }\n }\n }\n\n return <Component {...this.props} />;\n }\n}\n\nConfigCustom.propTypes = {\n socket: PropTypes.object,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n attr: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object.isRequired,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default ConfigCustom;"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;;IAEMA,Y;;;;;EACF,sBAAYC,KAAZ,EAAmB;IAAA;;IAAA;IACf,0BAAMA,KAAN,EADe,CAEf;IACA;IACA;;IAEA,MAAKC,KAAL,GAAa;MACTC,SAAS,EAAE,IADF;MAETC,KAAK,EAAE;IAFE,CAAb;IANe;EAUlB,C,CAED;;;;;;6GACA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA,IACS,KAAKH,KAAL,CAAWI,MAAX,CAAkBC,GAD3B;kBAAA;kBAAA;gBAAA;;gBAEQC,OAAO,CAACH,KAAR,CAAc,6CAAd;gBACA,KAAKI,QAAL,CAAc;kBAAEJ,KAAK,EAAE;gBAAT,CAAd;gBAHR;;cAAA;gBAQI,IAAI,KAAKH,KAAL,CAAWI,MAAX,CAAkBC,GAAlB,CAAsBG,UAAtB,CAAiC,OAAjC,KAA6C,KAAKR,KAAL,CAAWI,MAAX,CAAkBC,GAAlB,CAAsBG,UAAtB,CAAiC,QAAjC,CAAjD,EAA6F;kBACzFH,GAAG,GAAG,KAAKL,KAAL,CAAWI,MAAX,CAAkBC,GAAxB;gBACH,CAFD,MAEO,IAAI,KAAKL,KAAL,CAAWI,MAAX,CAAkBC,GAAlB,CAAsBG,UAAtB,CAAiC,IAAjC,CAAJ,EAA4C;kBAC/CH,GAAG,aAAMI,MAAM,CAACC,QAAP,CAAgBC,QAAtB,eAAmCF,MAAM,CAACC,QAAP,CAAgBE,IAAnD,SAA0D,KAAKZ,KAAL,CAAWI,MAAX,CAAkBC,GAAlB,CAAsBQ,OAAtB,CAA8B,KAA9B,EAAqC,EAArC,CAA1D,CAAH;gBACH,CAFM,MAEA;kBACHR,GAAG,aAAMI,MAAM,CAACC,QAAP,CAAgBC,QAAtB,eAAmCF,MAAM,CAACC,QAAP,CAAgBE,IAAnD,sBAAmE,KAAKZ,KAAL,CAAWc,WAA9E,cAA6F,KAAKd,KAAL,CAAWI,MAAX,CAAkBC,GAA/G,CAAH;gBACH;;gBAdL,MAgBQ,KAAKL,KAAL,CAAWI,MAAX,CAAkBW,IAAlB,KAA2B,IAhBnC;kBAAA;kBAAA;gBAAA;;gBAiBQ;gBACMC,GAlBd,GAkBoBX,GAAG,CAACY,WAAJ,CAAgB,GAAhB,CAlBpB;;gBAoBQ,IAAID,GAAG,KAAK,CAAC,CAAb,EAAgB;kBACZE,OAAO,GAAGb,GAAG,CAACc,SAAJ,CAAc,CAAd,EAAiBH,GAAjB,CAAV;gBACH,CAFD,MAEO;kBACHE,OAAO,GAAGb,GAAV;gBACH;;gBACKe,IAzBd,GAyBqBL,gBAAA,CAAKM,WAAL,EAzBrB;gBA0BcC,IA1Bd,aA0BwBJ,OA1BxB,mBA0BwCE,IA1BxC;gBAAA;gBAAA,OA4BcG,KAAK,CAACD,IAAD,CAAL,CACDE,IADC,CACI,UAAAC,IAAI;kBAAA,OAAIA,IAAI,CAACC,IAAL,EAAJ;gBAAA,CADR,EAEDF,IAFC,CAEI,UAAAE,IAAI;kBAAA,OAAIX,gBAAA,CAAKY,kBAAL,CAAwBD,IAAxB,EAA8BN,IAA9B,CAAJ;gBAAA,CAFR,WAGK,UAAAjB,KAAK;kBAAA,OAAIG,OAAO,CAACsB,GAAR,8BAAiCN,IAAjC,iBAA2CnB,KAA3C,EAAJ;gBAAA,CAHV,CA5Bd;;cAAA;gBAAA;gBAAA;;cAAA;gBAgCW,IAAI,KAAKH,KAAL,CAAWI,MAAX,CAAkBW,IAAlB,IAA0B,yBAAO,KAAKf,KAAL,CAAWI,MAAX,CAAkBW,IAAzB,MAAkC,QAAhE,EAA0E;kBAC7E,IAAI;oBACAA,gBAAA,CAAKY,kBAAL,CAAwB,KAAK3B,KAAL,CAAWI,MAAX,CAAkBW,IAA1C;kBACH,CAFD,CAEE,OAAOZ,KAAP,EAAc;oBACZG,OAAO,CAACH,KAAR,+BAAqCA,KAArC;kBACH;gBACJ;;cAtCL;gBAAA;gBAAA,wBAyC2D,KAAKH,KAAL,CAAWI,MAAX,CAAkByB,IAAlB,CAAuBC,KAAvB,CAA6B,GAA7B,CAzC3D,6EAyCeC,UAzCf,8BAyC2BC,UAzC3B,8BAyC0CC,aAzC1C;gBA0CQ3B,OAAO,CAACsB,GAAR,CAAYG,UAAZ,EAAwBC,UAAxB,EAAoCC,aAAa,CAACC,IAAd,CAAmB,GAAnB,CAApC;gBA1CR;gBAAA,OA2CgCzB,MAAM,CAAC0B,gBAAP,CAAwBJ,UAAxB,EAAoC;kBAAC1B,GAAG,EAAHA,GAAD;kBAAM+B,MAAM,EAAE,KAAd;kBAAqBC,IAAI,EAAE;gBAA3B,CAApC,EAAwEL,UAAxE,CA3ChC;;cAAA;gBA2CcM,SA3Cd;;gBA6CQ,IAAI,CAACA,SAAD,IAAc,CAACA,SAAf,IAA4B,CAACA,SAAS,CAACL,aAAa,CAACC,IAAd,CAAmB,GAAnB,CAAD,CAA1C,EAAqE;kBAC3DK,IAD2D,GACpDC,MAAM,CAACD,IAAP,CAAYD,SAAS,IAAI,EAAzB,CADoD;kBAEjEhC,OAAO,CAACH,KAAR,CAAc,6CAAd;kBACA,KAAKI,QAAL,CAAc;oBAAEJ,KAAK,sBAAe,KAAKH,KAAL,CAAWI,MAAX,CAAkByB,IAAjC,2BAAsD,KAAK7B,KAAL,CAAWI,MAAX,CAAkBC,GAAxE,sBAAuFkC,IAAI,CAACL,IAAL,CAAU,IAAV,CAAvF;kBAAP,CAAd;gBACH,CAJD,MAIO;kBACH,KAAK3B,QAAL,CAAc;oBAAEL,SAAS,EAAEoC,SAAS,CAACL,aAAa,CAACC,IAAd,CAAmB,GAAnB,CAAD;kBAAtB,CAAd;gBACH;;gBAnDT;gBAAA;;cAAA;gBAAA;gBAAA;gBAqDQ,KAAK3B,QAAL,CAAc;kBAAEJ,KAAK,+BAAwB,KAAKH,KAAL,CAAWI,MAAX,CAAkBC,GAA1C;gBAAP,CAAd;;cArDR;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAyDA,kBAAS;MACL,IAAMH,SAAS,GAAG,KAAKD,KAAL,CAAWC,SAA7B,CADK,CAGL;;MACA,IAAI,CAACA,SAAL,EAAgB;QACZ,IAAI,KAAKD,KAAL,CAAWE,KAAf,EAAsB;UAClB;QACH,CAFD,MAEO;UACH,IAAMC,MAAM,GAAG,KAAKJ,KAAL,CAAWI,MAAX,IAAqB,EAApC;;UAEA,IAAMqC,IAAI,gBAAG,gCAAC,gBAAD;YACT,IAAI,MADK;YAET,EAAE,EAAErC,MAAM,CAACsC,EAAP,IAAaC,SAFR;YAGT,EAAE,EAAEvC,MAAM,CAACwC,EAAP,IAAaD,SAHR;YAIT,EAAE,EAAEvC,MAAM,CAACyC,EAAP,IAAaF,SAJR;YAKT,EAAE,EAAEvC,MAAM,CAAC0C,EAAP,IAAaH,SALR;YAMT,KAAK,EAAEH,MAAM,CAACO,MAAP,CAAc,EAAd,EAAkB;cACrBC,YAAY,EAAE,CADO;cAErB;cACAC,SAAS,EAAE,MAHU;cAIrBC,KAAK,EAAE9C,MAAM,CAAC+C,IAAP,KAAgB,SAAhB,IAA6B/C,MAAM,CAAC+C,IAAP,KAAgB,QAA7C,GAAwD/C,MAAM,CAAC8C,KAAP,IAAgB,MAAxE,GAAiFP;YAJnE,CAAlB,EAKJvC,MAAM,CAACgD,KALH,EAKU,KAAKpD,KAAL,CAAWqD,SAAX,KAAyB,MAAzB,GAAkCjD,MAAM,CAACkD,SAAzC,GAAqD,EAL/D;UANE,GAYR,KAAKrD,KAAL,CAAWE,KAAX,gBAAmB,6CAAM,KAAKF,KAAL,CAAWE,KAAjB,CAAnB,gBAAmD,gCAAC,0BAAD,OAZ3C,CAAb;;UAeA,IAAIC,MAAM,CAACmD,OAAX,EAAoB;YAChB,oBAAO,+EACH;cAAK,KAAK,EAAE;gBAAEC,SAAS,EAAE,MAAb;gBAAqBC,MAAM,EAAE;cAA7B;YAAZ,EADG,EAEFhB,IAFE,CAAP;UAIH,CALD,MAKO;YACH,OAAOA,IAAP;UACH;QACJ;MACJ;;MAED,oBAAO,gCAAC,SAAD,EAAe,KAAKzC,KAApB,CAAP;IACH;;;EA5GsBE,gB;;AA+G3BH,YAAY,CAAC2D,SAAb,GAAyB;EACrBC,MAAM,EAAEC,qBAAA,CAAUC,MADG;EAErBR,SAAS,EAAEO,qBAAA,CAAUE,MAFA;EAGrBC,SAAS,EAAEH,qBAAA,CAAUE,MAHA;EAIrBV,KAAK,EAAEQ,qBAAA,CAAUC,MAJI;EAKrBG,SAAS,EAAEJ,qBAAA,CAAUE,MALA;EAMrBG,IAAI,EAAEL,qBAAA,CAAUE,MANK;EAOrBrC,IAAI,EAAEmC,qBAAA,CAAUC,MAAV,CAAiBK,UAPF;EAQrB9D,MAAM,EAAEwD,qBAAA,CAAUC,MAAV,CAAiBK,UARJ;EASrBC,OAAO,EAAEP,qBAAA,CAAUQ,IATE;EAUrBC,QAAQ,EAAET,qBAAA,CAAUQ;AAVC,CAAzB;eAaerE,Y"}
@@ -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","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('__different__');\n static NONE_VALUE = '';\n static NONE_LABEL = I18n.t('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.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.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('Please confirm') }\n text={ this.getText(confirm.text) }\n ok={ this.getText(confirm.ok) || I18n.t('Ok') }\n cancel={ this.getText(confirm.cancel) || I18n.t('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)) {\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)) {\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)\n :\n this.execute(dep.onChange.calculateFunc, val, data);\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)\n :\n this.execute(this.props.schema.onChange.calculateFunc, val, data);\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) {\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', 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);\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) {\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', 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);\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) : false;\n disabled = schema.disabled ? this.executeCustom(schema.disabled, this.props.data, this.props.customObj, this.props.instanceObj) : false;\n hidden = schema.hidden ? this.executeCustom(schema.hidden, this.props.data, this.props.customObj, this.props.instanceObj) : false;\n defaultValue = schema.defaultFunc ? this.executeCustom(schema.defaultFunc, this.props.data, this.props.customObj, this.props.instanceObj) : schema.default;\n } else {\n error = schema.validator ? !this.execute(schema.validator, false) : false;\n disabled = schema.disabled ? this.execute(schema.disabled, false) : false;\n hidden = schema.hidden ? this.execute(schema.hidden, false) : false;\n defaultValue = schema.defaultFunc ? this.execute(schema.defaultFunc, schema.default, this.props.data) : 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":"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"}
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","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('__different__');\n static NONE_VALUE = '';\n static NONE_LABEL = I18n.t('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.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.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('Please confirm') }\n text={ this.getText(confirm.text) }\n ok={ this.getText(confirm.ok) || I18n.t('Ok') }\n cancel={ this.getText(confirm.cancel) || I18n.t('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)) {\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)) {\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)\n :\n this.execute(dep.onChange.calculateFunc, val, data);\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)\n :\n this.execute(this.props.schema.onChange.calculateFunc, val, data);\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) {\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', 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);\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) {\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', 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);\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) : false;\n disabled = schema.disabled ? this.executeCustom(schema.disabled, this.props.data, this.props.customObj, this.props.instanceObj) : false;\n hidden = schema.hidden ? this.executeCustom(schema.hidden, this.props.data, this.props.customObj, this.props.instanceObj) : false;\n defaultValue = schema.defaultFunc ? this.executeCustom(schema.defaultFunc, this.props.data, this.props.customObj, this.props.instanceObj) : schema.default;\n } else {\n error = schema.validator ? !this.execute(schema.validator, false) : false;\n disabled = schema.disabled ? this.execute(schema.disabled, false) : false;\n hidden = schema.hidden ? this.execute(schema.hidden, false) : false;\n defaultValue = schema.defaultFunc ? this.execute(schema.defaultFunc, schema.default, this.props.data) : 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":"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"}