@iobroker/adapter-react-v5 0.1.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Components/ColorPicker.js +6 -2
- package/Components/ColorPicker.js.map +1 -1
- package/Components/ComplexCron.js +1 -1
- package/Components/ComplexCron.js.map +1 -1
- package/Components/FileBrowser.js +6 -6
- package/Components/FileBrowser.js.map +1 -1
- package/Components/FileViewer.js +5 -17
- package/Components/FileViewer.js.map +1 -1
- package/Components/Icon.js +1 -1
- package/Components/Icon.js.map +1 -1
- package/Components/IconPicker.js +1 -2
- package/Components/IconPicker.js.map +1 -1
- package/Components/Image.js +2 -1
- package/Components/Image.js.map +1 -1
- package/Components/Loader.js +8 -14
- package/Components/Loader.js.map +1 -1
- package/Components/Logo.js +8 -8
- package/Components/Logo.js.map +1 -1
- package/Components/MDUtils.js.map +1 -1
- package/Components/Schedule.js +1 -2
- package/Components/Schedule.js.map +1 -1
- package/Components/SelectWithIcon.js +40 -4
- package/Components/SelectWithIcon.js.map +1 -1
- package/Components/TextWithIcon.js +5 -3
- package/Components/TextWithIcon.js.map +1 -1
- package/Dialogs/ComplexCron.js +1 -1
- package/Dialogs/ComplexCron.js.map +1 -1
- package/Dialogs/Confirm.js +1 -1
- package/Dialogs/Confirm.js.map +1 -1
- package/Dialogs/Cron.js +1 -1
- package/Dialogs/Cron.js.map +1 -1
- package/Dialogs/Error.js +1 -1
- package/Dialogs/Error.js.map +1 -1
- package/Dialogs/Message.js +1 -1
- package/Dialogs/Message.js.map +1 -1
- package/Dialogs/SelectID.js +1 -1
- package/Dialogs/SelectID.js.map +1 -1
- package/Dialogs/SimpleCron.js +1 -1
- package/Dialogs/SimpleCron.js.map +1 -1
- package/Dialogs/TextInput.js +11 -11
- package/Dialogs/TextInput.js.map +1 -1
- package/GenericApp.js +7 -4
- package/GenericApp.js.map +1 -1
- package/README.md +3 -0
- package/package.json +1 -1
package/Components/FileViewer.js
CHANGED
|
@@ -95,17 +95,6 @@ var EXTENSIONS = {
|
|
|
95
95
|
code: ['js', 'json'],
|
|
96
96
|
txt: ['log', 'txt', 'html', 'css', 'xml']
|
|
97
97
|
};
|
|
98
|
-
exports.EXTENSIONS = EXTENSIONS;
|
|
99
|
-
|
|
100
|
-
function getFileExtension(fileName) {
|
|
101
|
-
var pos = fileName.lastIndexOf('.');
|
|
102
|
-
|
|
103
|
-
if (pos !== -1) {
|
|
104
|
-
return fileName.substring(pos + 1).toLowerCase();
|
|
105
|
-
} else {
|
|
106
|
-
return null;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
98
|
/**
|
|
110
99
|
* @typedef {object} FileViewerProps
|
|
111
100
|
* @property {string} [key] The key to identify this component.
|
|
@@ -118,6 +107,7 @@ function getFileExtension(fileName) {
|
|
|
118
107
|
* @extends {React.Component<FileViewerProps>}
|
|
119
108
|
*/
|
|
120
109
|
|
|
110
|
+
exports.EXTENSIONS = EXTENSIONS;
|
|
121
111
|
|
|
122
112
|
var FileViewer = /*#__PURE__*/function (_React$Component) {
|
|
123
113
|
_inherits(FileViewer, _React$Component);
|
|
@@ -133,8 +123,7 @@ var FileViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
133
123
|
_classCallCheck(this, FileViewer);
|
|
134
124
|
|
|
135
125
|
_this = _super.call(this, props);
|
|
136
|
-
_this.ext = getFileExtension(_this.props.href);
|
|
137
|
-
|
|
126
|
+
_this.ext = _Utils["default"].getFileExtension(_this.props.href);
|
|
138
127
|
_this.state = {
|
|
139
128
|
text: null,
|
|
140
129
|
code: null,
|
|
@@ -207,7 +196,7 @@ var FileViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
207
196
|
return _this2.props.onClose();
|
|
208
197
|
},
|
|
209
198
|
fullWidth: true,
|
|
210
|
-
fullScreen: true,
|
|
199
|
+
fullScreen: this.props.fullScreen !== undefined ? this.props.fullScreen : true,
|
|
211
200
|
"aria-labelledby": "form-dialog-title"
|
|
212
201
|
}, /*#__PURE__*/_react["default"].createElement(_DialogTitle["default"], {
|
|
213
202
|
id: "form-dialog-title"
|
|
@@ -235,10 +224,9 @@ var FileViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
235
224
|
|
|
236
225
|
FileViewer.propTypes = {
|
|
237
226
|
t: _propTypes["default"].func,
|
|
238
|
-
lang: _propTypes["default"].string,
|
|
239
|
-
expertMode: _propTypes["default"].bool,
|
|
240
227
|
onClose: _propTypes["default"].func,
|
|
241
|
-
href: _propTypes["default"].string.isRequired
|
|
228
|
+
href: _propTypes["default"].string.isRequired,
|
|
229
|
+
fullScreen: _propTypes["default"].bool
|
|
242
230
|
};
|
|
243
231
|
/** @type {typeof FileViewer} */
|
|
244
232
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FileViewer.js"],"names":["withWidth","WrappedComponent","props","styles","theme","dialog","height","maxHeight","maxWidth","content","textAlign","textarea","width","img","objectFit","EXTENSIONS","images","code","txt","getFileExtension","fileName","pos","lastIndexOf","substring","toLowerCase","FileViewer","ext","href","state","text","copyPossible","includes","fetch","then","response","data","setState","e","target","onerror","src","NoImage","classes","readOnly","onClose","t","getContent","Utils","copyToClipboard","React","Component","propTypes","PropTypes","func","lang","string","expertMode","bool","isRequired","_export"],"mappings":"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","sourcesContent":["import React from 'react';\nimport withStyles from '@mui/styles/withStyles';\nimport PropTypes from 'prop-types';\n\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 TextField from '@mui/material/TextField';\n\nimport NoImage from '../assets/no_icon.svg';\nimport Utils from './Utils';\n\n// Icons\nimport {FaCopy as CopyIcon} from 'react-icons/fa';\nimport CloseIcon from '@mui/icons-material/Close';\n\n// FIXME checkout https://mui.com/components/use-media-query/#migrating-from-withwidth\nconst withWidth = () => WrappedComponent => props => <WrappedComponent {...props} width=\"xs\" />;\n\nconst styles = theme => ({\n dialog: {\n height: '100%',\n maxHeight: '100%',\n maxWidth: '100%',\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});\n\nexport const EXTENSIONS = {\n images: ['png', 'jpg', 'svg', 'jpeg', 'jpg'],\n code: ['js', 'json'],\n txt: ['log', 'txt', 'html', 'css', 'xml'],\n};\n\nfunction getFileExtension(fileName) {\n const pos = fileName.lastIndexOf('.');\n if (pos !== -1) {\n return fileName.substring(pos + 1).toLowerCase();\n } else {\n return null;\n }\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 React.Component {\n /**\n * @param {Readonly<FileViewerProps>} props\n */\n constructor(props) {\n super(props);\n\n this.ext = getFileExtension(this.props.href); // todo: replace later with Utils.getFileExtension\n\n this.state = {\n text: null,\n code: null,\n copyPossible: EXTENSIONS.code.includes(this.ext) || EXTENSIONS.txt.includes(this.ext)\n };\n\n if (this.state.copyPossible) {\n fetch(this.props.href)\n .then(response => response.text())\n .then(data => {\n if (EXTENSIONS.txt.includes(this.ext)) {\n this.setState({text: data});\n } else if (EXTENSIONS.code.includes(this.ext)) {\n this.setState({code: data});\n }\n });\n }\n }\n\n static getDerivedStateFromProps() {\n\n }\n\n getContent() {\n if (EXTENSIONS.images.includes(this.ext)) {\n return <img\n onError={ e => {\n e.target.onerror = null;\n e.target.src = NoImage\n } }\n className={ this.props.classes.img }\n src={ this.props.href } alt={ this.props.href }/>;\n } else if (this.state.code !== null) {\n return <TextField\n variant=\"standard\"\n className={ this.props.classes.textarea }\n multiline\n value={ this.state.code }\n InputProps={{\n readOnly: true,\n }}\n />;\n } else if (this.state.text !== null) {\n return <TextField\n variant=\"standard\"\n className={ this.props.classes.textarea }\n value={ this.state.code }\n multiline\n InputProps={{\n readOnly: true,\n }}\n />;\n }\n }\n\n render() {\n return <Dialog\n className={ this.props.classes.dialog }\n open={ !!this.props.href }\n onClose={ () => this.props.onClose() }\n fullWidth={ true }\n fullScreen={ true }\n aria-labelledby=\"form-dialog-title\"\n >\n <DialogTitle id=\"form-dialog-title\">{ this.props.t('View: %s', this.props.href) }</DialogTitle>\n <DialogContent className={ this.props.classes.content }>\n { this.getContent() }\n </DialogContent>\n <DialogActions>\n { this.state.copyPossible ? <Button color=\"grey\" onClick={e => Utils.copyToClipboard(this.state.text || this.state.code, e) } >\n <CopyIcon />\n { this.props.t('Copy content') }\n </Button> : null }\n\n <Button onClick={() => this.props.onClose()} color=\"primary\">\n <CloseIcon />\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};\n\n/** @type {typeof FileViewer} */\nconst _export = withWidth()(withStyles(styles)(FileViewer));\nexport default _export;\n"],"file":"FileViewer.js"}
|
|
1
|
+
{"version":3,"sources":["FileViewer.js"],"names":["withWidth","WrappedComponent","props","styles","theme","dialog","height","maxHeight","maxWidth","content","textAlign","textarea","width","img","objectFit","EXTENSIONS","images","code","txt","FileViewer","ext","Utils","getFileExtension","href","state","text","copyPossible","includes","fetch","then","response","data","setState","e","target","onerror","src","NoImage","classes","readOnly","onClose","fullScreen","undefined","t","getContent","copyToClipboard","React","Component","propTypes","PropTypes","func","string","isRequired","bool","_export"],"mappings":"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","sourcesContent":["import React from 'react';\nimport withStyles from '@mui/styles/withStyles';\nimport PropTypes from 'prop-types';\n\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 TextField from '@mui/material/TextField';\n\nimport NoImage from '../assets/no_icon.svg';\nimport Utils from './Utils';\n\n// Icons\nimport {FaCopy as CopyIcon} from 'react-icons/fa';\nimport CloseIcon from '@mui/icons-material/Close';\n\n// FIXME checkout https://mui.com/components/use-media-query/#migrating-from-withwidth\nconst withWidth = () => WrappedComponent => props => <WrappedComponent {...props} width=\"xs\" />;\n\nconst styles = theme => ({\n dialog: {\n height: '100%',\n maxHeight: '100%',\n maxWidth: '100%',\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});\n\nexport const EXTENSIONS = {\n images: ['png', 'jpg', 'svg', 'jpeg', 'jpg'],\n code: ['js', 'json'],\n txt: ['log', 'txt', 'html', 'css', 'xml'],\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 React.Component {\n /**\n * @param {Readonly<FileViewerProps>} props\n */\n constructor(props) {\n super(props);\n\n this.ext = Utils.getFileExtension(this.props.href);\n\n this.state = {\n text: null,\n code: null,\n copyPossible: EXTENSIONS.code.includes(this.ext) || EXTENSIONS.txt.includes(this.ext),\n };\n\n if (this.state.copyPossible) {\n fetch(this.props.href)\n .then(response => response.text())\n .then(data => {\n if (EXTENSIONS.txt.includes(this.ext)) {\n this.setState({ text: data });\n } else if (EXTENSIONS.code.includes(this.ext)) {\n this.setState({ code: data });\n }\n });\n }\n }\n\n static getDerivedStateFromProps() {\n\n }\n\n getContent() {\n if (EXTENSIONS.images.includes(this.ext)) {\n return <img\n onError={ e => {\n e.target.onerror = null;\n e.target.src = NoImage;\n }}\n className={ this.props.classes.img }\n src={ this.props.href }\n alt={ this.props.href }\n />;\n } else if (this.state.code !== null) {\n return <TextField\n variant=\"standard\"\n className={ this.props.classes.textarea }\n multiline\n value={ this.state.code }\n InputProps={{\n readOnly: true,\n }}\n />;\n } else if (this.state.text !== null) {\n return <TextField\n variant=\"standard\"\n className={ this.props.classes.textarea }\n value={ this.state.code }\n multiline\n InputProps={{\n readOnly: true,\n }}\n />;\n }\n }\n\n render() {\n return <Dialog\n className={ this.props.classes.dialog }\n open={ !!this.props.href }\n onClose={ () => this.props.onClose() }\n fullWidth\n fullScreen={this.props.fullScreen !== undefined ? this.props.fullScreen : true}\n aria-labelledby=\"form-dialog-title\"\n >\n <DialogTitle id=\"form-dialog-title\">{ this.props.t('View: %s', this.props.href) }</DialogTitle>\n <DialogContent className={ this.props.classes.content }>\n { this.getContent() }\n </DialogContent>\n <DialogActions>\n { this.state.copyPossible ? <Button color=\"grey\" onClick={e => Utils.copyToClipboard(this.state.text || this.state.code, e) } >\n <CopyIcon />\n { this.props.t('Copy content') }\n </Button> : null }\n\n <Button onClick={() => this.props.onClose()} color=\"primary\">\n <CloseIcon />\n { this.props.t('Close') }\n </Button>\n </DialogActions>\n </Dialog>;\n }\n}\n\nFileViewer.propTypes = {\n t: PropTypes.func,\n\n onClose: PropTypes.func,\n href: PropTypes.string.isRequired,\n fullScreen: PropTypes.bool,\n};\n\n/** @type {typeof FileViewer} */\nconst _export = withWidth()(withStyles(styles)(FileViewer));\nexport default _export;\n"],"file":"FileViewer.js"}
|
package/Components/Icon.js
CHANGED
|
@@ -223,7 +223,7 @@ var Icon = /*#__PURE__*/function (_React$Component) {
|
|
|
223
223
|
Icon.propTypes = {
|
|
224
224
|
color: _propTypes["default"].string,
|
|
225
225
|
title: _propTypes["default"].string,
|
|
226
|
-
src: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]),
|
|
226
|
+
src: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]).isRequired,
|
|
227
227
|
className: _propTypes["default"].string,
|
|
228
228
|
imagePrefix: _propTypes["default"].string,
|
|
229
229
|
style: _propTypes["default"].object,
|
package/Components/Icon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Icon.js"],"names":["getSystemIcon","obj","icon","id","_id","startsWith","endsWith","type","getSelectIdIcon","imagePrefix","src","common","cIcon","includes","instance","name","split","Icon","props","length","title","undefined","Object","assign","height","marginTop","styleUTF8","style","Utils","clsx","className","width","React","Component","propTypes","color","PropTypes","string","oneOfType","object"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport SVG from 'react-inlinesvg';\n\nimport IconSystem from '@mui/icons-material/SettingsApplications';\nimport IconPhoto from '@mui/icons-material/Photo';\nimport IconGroup from '@mui/icons-material/SupervisedUserCircle';\nimport IconUser from '@mui/icons-material/PersonOutlined';\nimport IconHost from '@mui/icons-material/Router';\nimport IconConnection from '@mui/icons-material/Wifi';\nimport IconInfo from '@mui/icons-material/Info';\nimport IconMeta from '@mui/icons-material/Description';\nimport IconAlias from '../icons/IconAlias';\n\nimport Utils from './Utils';\n\nexport function getSystemIcon(obj) {\n let icon;\n const id = obj?._id;\n\n if (!id) {\n return null;\n }\n\n // system or design have special icons\n if (id.startsWith('_design/') || (id === 'system')) {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === '0_userdata' || id === '0_userdata.0') {\n icon = <IconPhoto className=\"iconOwn\" />;\n } else if (id === 'alias' || id === 'alias.0') {\n icon = <IconAlias className=\"iconOwn\" />;\n } else if (id === 'system.adapter') {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === 'system.group') {\n icon = <IconGroup className=\"iconOwn\" />;\n } else if (id === 'system.user') {\n icon = <IconUser className=\"iconOwn\" />;\n } else if (id === 'system.host') {\n icon = <IconHost className=\"iconOwn\" />;\n } else if (id.endsWith('.connection') || id.endsWith('.connected')) {\n icon = <IconConnection className=\"iconOwn\" />;\n } else if (id.endsWith('.info')) {\n icon = <IconInfo className=\"iconOwn\" />;\n } else if (obj?.type === 'meta') {\n icon = <IconMeta className=\"iconOwn\" />;\n }\n\n return icon || null;\n}\n\nexport function getSelectIdIcon(obj, imagePrefix) {\n imagePrefix = imagePrefix || '.';//http://localhost:8081';\n let src = '';\n const common = obj?.common;\n\n if (common) {\n const cIcon = common.icon;\n if (cIcon) {\n if (!cIcon.startsWith('data:image/')) {\n if (cIcon.includes('.')) {\n let instance;\n if (obj.type === 'instance' || obj.type === 'adapter') {\n src = imagePrefix + '/adapter/' + common.name + '/' + cIcon;\n } else if (obj._id && obj._id.startsWith('system.adapter.')) {\n instance = obj._id.split('.', 3);\n if (cIcon[0] === '/') {\n instance[2] += cIcon;\n } else {\n instance[2] += '/' + cIcon;\n }\n src = imagePrefix + '/adapter/' + instance[2];\n } else {\n instance = obj._id.split('.', 2);\n if (cIcon[0] === '/') {\n instance[0] += cIcon;\n } else {\n instance[0] += '/' + cIcon;\n }\n src = imagePrefix + '/adapter/' + instance[0];\n }\n } else {\n return null;\n }\n } else {\n // base 64 image\n src = cIcon;\n }\n }\n }\n\n return src || null;\n}\n\nclass Icon extends React.Component {\n render() {\n if (this.props.src) {\n if (typeof this.props.src === 'string') {\n if (this.props.src.length < 3) {\n return <span title={this.props.title || undefined} style={Object.assign({height: 27, marginTop: -8}, this.props.styleUTF8 || this.props.style)} className={ Utils.clsx(this.props.className, 'iconOwn') }>{this.props.src}</span>; // utf-8 char\n } else {\n if (this.props.src.startsWith('data:image/svg')) {\n return <SVG title={this.props.title || undefined} src={this.props.src} className={ Utils.clsx(this.props.className, 'iconOwn') } width={this.props.style?.width || 28} height={this.props.style?.height || this.props.style?.width || 28} style={this.props.style || {}}/>;\n } else {\n return <img title={this.props.title || undefined} style={this.props.style || {}} className={ Utils.clsx(this.props.className, 'iconOwn') } src={ this.props.src } alt=\"\" />;\n }\n }\n } else {\n return this.props.src;\n }\n } else {\n return null;\n }\n }\n}\n\nIcon.propTypes = {\n color: PropTypes.string,\n title: PropTypes.string,\n src: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n className: PropTypes.string,\n imagePrefix: PropTypes.string,\n style: PropTypes.object,\n styleUTF8: PropTypes.object,\n};\n\nexport default Icon;"],"file":"Icon.js"}
|
|
1
|
+
{"version":3,"sources":["Icon.js"],"names":["getSystemIcon","obj","icon","id","_id","startsWith","endsWith","type","getSelectIdIcon","imagePrefix","src","common","cIcon","includes","instance","name","split","Icon","props","length","title","undefined","Object","assign","height","marginTop","styleUTF8","style","Utils","clsx","className","width","React","Component","propTypes","color","PropTypes","string","oneOfType","object","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport SVG from 'react-inlinesvg';\n\nimport IconSystem from '@mui/icons-material/SettingsApplications';\nimport IconPhoto from '@mui/icons-material/Photo';\nimport IconGroup from '@mui/icons-material/SupervisedUserCircle';\nimport IconUser from '@mui/icons-material/PersonOutlined';\nimport IconHost from '@mui/icons-material/Router';\nimport IconConnection from '@mui/icons-material/Wifi';\nimport IconInfo from '@mui/icons-material/Info';\nimport IconMeta from '@mui/icons-material/Description';\nimport IconAlias from '../icons/IconAlias';\n\nimport Utils from './Utils';\n\nexport function getSystemIcon(obj) {\n let icon;\n const id = obj?._id;\n\n if (!id) {\n return null;\n }\n\n // system or design have special icons\n if (id.startsWith('_design/') || (id === 'system')) {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === '0_userdata' || id === '0_userdata.0') {\n icon = <IconPhoto className=\"iconOwn\" />;\n } else if (id === 'alias' || id === 'alias.0') {\n icon = <IconAlias className=\"iconOwn\" />;\n } else if (id === 'system.adapter') {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === 'system.group') {\n icon = <IconGroup className=\"iconOwn\" />;\n } else if (id === 'system.user') {\n icon = <IconUser className=\"iconOwn\" />;\n } else if (id === 'system.host') {\n icon = <IconHost className=\"iconOwn\" />;\n } else if (id.endsWith('.connection') || id.endsWith('.connected')) {\n icon = <IconConnection className=\"iconOwn\" />;\n } else if (id.endsWith('.info')) {\n icon = <IconInfo className=\"iconOwn\" />;\n } else if (obj?.type === 'meta') {\n icon = <IconMeta className=\"iconOwn\" />;\n }\n\n return icon || null;\n}\n\nexport function getSelectIdIcon(obj, imagePrefix) {\n imagePrefix = imagePrefix || '.';//http://localhost:8081';\n let src = '';\n const common = obj?.common;\n\n if (common) {\n const cIcon = common.icon;\n if (cIcon) {\n if (!cIcon.startsWith('data:image/')) {\n if (cIcon.includes('.')) {\n let instance;\n if (obj.type === 'instance' || obj.type === 'adapter') {\n src = imagePrefix + '/adapter/' + common.name + '/' + cIcon;\n } else if (obj._id && obj._id.startsWith('system.adapter.')) {\n instance = obj._id.split('.', 3);\n if (cIcon[0] === '/') {\n instance[2] += cIcon;\n } else {\n instance[2] += '/' + cIcon;\n }\n src = imagePrefix + '/adapter/' + instance[2];\n } else {\n instance = obj._id.split('.', 2);\n if (cIcon[0] === '/') {\n instance[0] += cIcon;\n } else {\n instance[0] += '/' + cIcon;\n }\n src = imagePrefix + '/adapter/' + instance[0];\n }\n } else {\n return null;\n }\n } else {\n // base 64 image\n src = cIcon;\n }\n }\n }\n\n return src || null;\n}\n\nclass Icon extends React.Component {\n render() {\n if (this.props.src) {\n if (typeof this.props.src === 'string') {\n if (this.props.src.length < 3) {\n return <span title={this.props.title || undefined} style={Object.assign({height: 27, marginTop: -8}, this.props.styleUTF8 || this.props.style)} className={ Utils.clsx(this.props.className, 'iconOwn') }>{this.props.src}</span>; // utf-8 char\n } else {\n if (this.props.src.startsWith('data:image/svg')) {\n return <SVG title={this.props.title || undefined} src={this.props.src} className={ Utils.clsx(this.props.className, 'iconOwn') } width={this.props.style?.width || 28} height={this.props.style?.height || this.props.style?.width || 28} style={this.props.style || {}}/>;\n } else {\n return <img title={this.props.title || undefined} style={this.props.style || {}} className={ Utils.clsx(this.props.className, 'iconOwn') } src={ this.props.src } alt=\"\" />;\n }\n }\n } else {\n return this.props.src;\n }\n } else {\n return null;\n }\n }\n}\n\nIcon.propTypes = {\n color: PropTypes.string,\n title: PropTypes.string,\n src: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\n className: PropTypes.string,\n imagePrefix: PropTypes.string,\n style: PropTypes.object,\n styleUTF8: PropTypes.object,\n};\n\nexport default Icon;"],"file":"Icon.js"}
|
package/Components/IconPicker.js
CHANGED
|
@@ -173,10 +173,9 @@ IconPicker.propTypes = {
|
|
|
173
173
|
icon: _propTypes["default"].object,
|
|
174
174
|
customClasses: _propTypes["default"].object,
|
|
175
175
|
label: _propTypes["default"].string,
|
|
176
|
-
name: _propTypes["default"].string,
|
|
177
176
|
value: _propTypes["default"].any,
|
|
178
177
|
disabled: _propTypes["default"].bool,
|
|
179
|
-
onChange: _propTypes["default"].func,
|
|
178
|
+
onChange: _propTypes["default"].func.isRequired,
|
|
180
179
|
icons: _propTypes["default"].array,
|
|
181
180
|
onlyRooms: _propTypes["default"].bool,
|
|
182
181
|
onlyDevices: _propTypes["default"].bool
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["IconPicker.js"],"names":["IconPicker","props","IconCustom","icon","useStyles","theme","formContainer","display","justifyContent","alignItems","formControl","padding","flexGrow","divContainer","width","height","whiteSpace","lineHeight","marginRight","dragField","textAlign","minHeight","border","borderRadius","formIcon","margin","opacity","text","verticalAlign","classes","onDrop","acceptedFiles","reader","FileReader","addEventListener","onChange","result","readAsDataURL","getRootProps","getInputProps","isDragActive","root","customClasses","label","value","Utils","clsx","previewClassName","disabled","I18n","t","icons","onlyRooms","onlyDevices","base64","getLanguage","backgroundColor","cursor","propTypes","PropTypes","string","object","name","any","bool","func","array"],"mappings":"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","sourcesContent":["import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport {useDropzone} from 'react-dropzone';\nimport makeStyles from '@mui/styles/makeStyles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport FormControl from '@mui/material/FormControl';\nimport IconButton from '@mui/material/IconButton';\nimport ClearIcon from '@mui/icons-material/Clear';\n\nimport IconSelector from './IconSelector';\nimport Icon from './Icon';\nimport I18n from '../i18n';\nimport Utils from './Utils';\n\n/**\n * @typedef {object} IconPickerProps\n * @property {string} [value] The value.\n * @property {string} [label] The label.\n * @property {boolean} [disabled] Set to true to disable the icon picker.\n * @property {(icon: string) => void} onChange The icon change callback.\n * @property {import('../Connection').default} socket The socket connection.\n * @property {string} [imagePrefix] The image prefix (default: './files/')\n * @property {React.CSSProperties} [style] Additional styling for this component.\n * @property {string} [className] The CSS class name.\n *\n * @extends {React.Component<IconPickerProps>}\n */\nlet IconPicker = function (props) {\n let IconCustom = props.icon;\n\n const useStyles = makeStyles(theme => ({\n formContainer : {\n display: 'flex',\n justifyContent: 'left',\n alignItems: 'center'\n },\n formControl : {\n display: 'flex',\n padding: 24,\n flexGrow: 1000\n },\n divContainer: {\n width: 32 + 24,\n height: 32,\n whiteSpace: 'nowrap',\n lineHeight: '32px',\n marginRight: 8\n },\n dragField: {\n textAlign: 'center',\n display: 'table',\n minHeight: 90,\n width: 'calc(100% - 60px)',\n border: '2px dashed #777',\n borderRadius: 10,\n padding: 4,\n },\n formIcon : {\n margin: 10,\n opacity: 0.6\n },\n text: {\n display: 'table-cell',\n verticalAlign: 'middle',\n }\n }));\n\n const classes = useStyles();\n\n const onDrop = useCallback(acceptedFiles => {\n const reader = new FileReader();\n\n reader.addEventListener('load', () =>\n props.onChange(reader.result), false);\n\n if (acceptedFiles[0]) {\n reader.readAsDataURL(acceptedFiles[0]);\n }\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const {getRootProps, getInputProps, isDragActive} = useDropzone({onDrop});\n\n return <div className={classes.formContainer}>\n {IconCustom ? <IconCustom className={ classes.formIcon }/> : null}\n <FormControl variant=\"standard\" className={classes.formControl} style={{padding: 3}}>\n <InputLabel shrink classes={{root: props.customClasses?.label}}>\n { props.label }\n </InputLabel>\n <div className={ classes.formContainer }>\n {props.value ?\n <div className={ classes.divContainer }>\n <Icon alt=\"\" className={Utils.clsx(props.previewClassName, props.customClasses?.icon)} src={props.value}/>\n {!props.disabled && <IconButton\n style={{verticalAlign: 'top'}}\n title={I18n.t('ra_Clear icon')}\n size=\"small\"\n onClick={() => props.onChange('')}\n >\n <ClearIcon/>\n </IconButton>}\n </div>\n :\n (!props.disabled && <IconSelector\n icons={props.icons}\n onlyRooms={props.onlyRooms}\n onlyDevices={props.onlyDevices}\n onSelect={base64 => props.onChange(base64)}\n t={I18n.t}\n lang={I18n.getLanguage()}\n />)\n }\n\n {!props.disabled && <div\n {...getRootProps()}\n className={classes.dragField}\n style={isDragActive ? {backgroundColor: 'rgba(0, 255, 0, 0.1)'} : {cursor: 'pointer'}}\n >\n <input {...getInputProps()} />\n {\n isDragActive ?\n <span className={classes.text}>{I18n.t('ra_Drop the files here...')}</span> :\n <span className={classes.text}>{I18n.t(`ra_Drag 'n' drop some files here, or click to select files`)}</span>\n }\n </div>}\n </div>\n </FormControl>\n </div>;\n};\n\nIconPicker.propTypes = {\n previewClassName: PropTypes.string,\n icon: PropTypes.object,\n customClasses: PropTypes.object,\n label: PropTypes.string,\n name: PropTypes.string,\n value: PropTypes.any,\n disabled: PropTypes.bool,\n onChange: PropTypes.func,\n\n icons: PropTypes.array,\n onlyRooms: PropTypes.bool,\n onlyDevices: PropTypes.bool,\n};\n\n/** @type {typeof IconPicker} */\nexport default IconPicker;"],"file":"IconPicker.js"}
|
|
1
|
+
{"version":3,"sources":["IconPicker.js"],"names":["IconPicker","props","IconCustom","icon","useStyles","theme","formContainer","display","justifyContent","alignItems","formControl","padding","flexGrow","divContainer","width","height","whiteSpace","lineHeight","marginRight","dragField","textAlign","minHeight","border","borderRadius","formIcon","margin","opacity","text","verticalAlign","classes","onDrop","acceptedFiles","reader","FileReader","addEventListener","onChange","result","readAsDataURL","getRootProps","getInputProps","isDragActive","root","customClasses","label","value","Utils","clsx","previewClassName","disabled","I18n","t","icons","onlyRooms","onlyDevices","base64","getLanguage","backgroundColor","cursor","propTypes","PropTypes","string","object","any","bool","func","isRequired","array"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIA,UAAU,GAAG,SAAbA,UAAa,CAAUC,KAAV,EAAiB;AAAA;;AAC9B,MAAIC,UAAU,GAAGD,KAAK,CAACE,IAAvB;AAEA,MAAMC,SAAS,GAAG,4BAAW,UAAAC,KAAK;AAAA,WAAK;AACnCC,MAAAA,aAAa,EAAG;AACZC,QAAAA,OAAO,EAAE,MADG;AAEZC,QAAAA,cAAc,EAAE,MAFJ;AAGZC,QAAAA,UAAU,EAAE;AAHA,OADmB;AAMnCC,MAAAA,WAAW,EAAG;AACVH,QAAAA,OAAO,EAAE,MADC;AAEVI,QAAAA,OAAO,EAAE,EAFC;AAGVC,QAAAA,QAAQ,EAAE;AAHA,OANqB;AAWnCC,MAAAA,YAAY,EAAE;AACVC,QAAAA,KAAK,EAAE,KAAK,EADF;AAEVC,QAAAA,MAAM,EAAE,EAFE;AAGVC,QAAAA,UAAU,EAAE,QAHF;AAIVC,QAAAA,UAAU,EAAE,MAJF;AAKVC,QAAAA,WAAW,EAAE;AALH,OAXqB;AAkBnCC,MAAAA,SAAS,EAAE;AACPC,QAAAA,SAAS,EAAE,QADJ;AAEPb,QAAAA,OAAO,EAAE,OAFF;AAGPc,QAAAA,SAAS,EAAE,EAHJ;AAIPP,QAAAA,KAAK,EAAE,mBAJA;AAKPQ,QAAAA,MAAM,EAAE,iBALD;AAMPC,QAAAA,YAAY,EAAE,EANP;AAOPZ,QAAAA,OAAO,EAAE;AAPF,OAlBwB;AA2BnCa,MAAAA,QAAQ,EAAG;AACPC,QAAAA,MAAM,EAAE,EADD;AAEPC,QAAAA,OAAO,EAAE;AAFF,OA3BwB;AA+BnCC,MAAAA,IAAI,EAAE;AACFpB,QAAAA,OAAO,EAAE,YADP;AAEFqB,QAAAA,aAAa,EAAE;AAFb;AA/B6B,KAAL;AAAA,GAAhB,CAAlB;AAqCA,MAAMC,OAAO,GAAGzB,SAAS,EAAzB;AAEA,MAAM0B,MAAM,GAAG,wBAAY,UAAAC,aAAa,EAAI;AACxC,QAAMC,MAAM,GAAG,IAAIC,UAAJ,EAAf;AAEAD,IAAAA,MAAM,CAACE,gBAAP,CAAwB,MAAxB,EAAgC;AAAA,aAC5BjC,KAAK,CAACkC,QAAN,CAAeH,MAAM,CAACI,MAAtB,CAD4B;AAAA,KAAhC,EACmC,KADnC;;AAGA,QAAIL,aAAa,CAAC,CAAD,CAAjB,EAAsB;AAClBC,MAAAA,MAAM,CAACK,aAAP,CAAqBN,aAAa,CAAC,CAAD,CAAlC;AACH;AACJ,GATc,EASZ,EATY,CAAf,CA1C8B,CAmDtB;;AAER,qBAAoD,gCAAY;AAACD,IAAAA,MAAM,EAANA;AAAD,GAAZ,CAApD;AAAA,MAAOQ,YAAP,gBAAOA,YAAP;AAAA,MAAqBC,aAArB,gBAAqBA,aAArB;AAAA,MAAoCC,YAApC,gBAAoCA,YAApC;;AAEA,sBAAO;AAAK,IAAA,SAAS,EAAEX,OAAO,CAACvB;AAAxB,KACFJ,UAAU,gBAAG,gCAAC,UAAD;AAAY,IAAA,SAAS,EAAG2B,OAAO,CAACL;AAAhC,IAAH,GAAkD,IAD1D,eAEH,gCAAC,uBAAD;AAAa,IAAA,OAAO,EAAC,UAArB;AAAgC,IAAA,SAAS,EAAEK,OAAO,CAACnB,WAAnD;AAAgE,IAAA,KAAK,EAAE;AAACC,MAAAA,OAAO,EAAE;AAAV;AAAvE,kBACI,gCAAC,sBAAD;AAAY,IAAA,MAAM,MAAlB;AAAmB,IAAA,OAAO,EAAE;AAAC8B,MAAAA,IAAI,0BAAExC,KAAK,CAACyC,aAAR,yDAAE,qBAAqBC;AAA5B;AAA5B,KACM1C,KAAK,CAAC0C,KADZ,CADJ,eAII;AAAK,IAAA,SAAS,EAAGd,OAAO,CAACvB;AAAzB,KACKL,KAAK,CAAC2C,KAAN,gBACG;AAAK,IAAA,SAAS,EAAGf,OAAO,CAAChB;AAAzB,kBACI,gCAAC,gBAAD;AAAM,IAAA,GAAG,EAAC,EAAV;AAAa,IAAA,SAAS,EAAEgC,kBAAMC,IAAN,CAAW7C,KAAK,CAAC8C,gBAAjB,2BAAmC9C,KAAK,CAACyC,aAAzC,0DAAmC,sBAAqBvC,IAAxD,CAAxB;AAAuF,IAAA,GAAG,EAAEF,KAAK,CAAC2C;AAAlG,IADJ,EAEK,CAAC3C,KAAK,CAAC+C,QAAP,iBAAmB,gCAAC,sBAAD;AAChB,IAAA,KAAK,EAAE;AAACpB,MAAAA,aAAa,EAAE;AAAhB,KADS;AAEhB,IAAA,KAAK,EAAEqB,iBAAKC,CAAL,CAAO,eAAP,CAFS;AAGhB,IAAA,IAAI,EAAC,OAHW;AAIhB,IAAA,OAAO,EAAE;AAAA,aAAMjD,KAAK,CAACkC,QAAN,CAAe,EAAf,CAAN;AAAA;AAJO,kBAMhB,gCAAC,iBAAD,OANgB,CAFxB,CADH,GAaI,CAAClC,KAAK,CAAC+C,QAAP,iBAAmB,gCAAC,wBAAD;AAChB,IAAA,KAAK,EAAE/C,KAAK,CAACkD,KADG;AAEhB,IAAA,SAAS,EAAElD,KAAK,CAACmD,SAFD;AAGhB,IAAA,WAAW,EAAEnD,KAAK,CAACoD,WAHH;AAIhB,IAAA,QAAQ,EAAE,kBAAAC,MAAM;AAAA,aAAIrD,KAAK,CAACkC,QAAN,CAAemB,MAAf,CAAJ;AAAA,KAJA;AAKhB,IAAA,CAAC,EAAEL,iBAAKC,CALQ;AAMhB,IAAA,IAAI,EAAED,iBAAKM,WAAL;AANU,IAd5B,EAwBK,CAACtD,KAAK,CAAC+C,QAAP,iBAAmB,oDACZV,YAAY,EADA;AAEhB,IAAA,SAAS,EAAET,OAAO,CAACV,SAFH;AAGhB,IAAA,KAAK,EAAEqB,YAAY,GAAG;AAACgB,MAAAA,eAAe,EAAE;AAAlB,KAAH,GAA+C;AAACC,MAAAA,MAAM,EAAE;AAAT;AAHlD,mBAKhB,yCAAWlB,aAAa,EAAxB,CALgB,EAOZC,YAAY,gBACR;AAAM,IAAA,SAAS,EAAEX,OAAO,CAACF;AAAzB,KAAgCsB,iBAAKC,CAAL,CAAO,2BAAP,CAAhC,CADQ,gBAER;AAAM,IAAA,SAAS,EAAErB,OAAO,CAACF;AAAzB,KAAgCsB,iBAAKC,CAAL,8DAAhC,CATQ,CAxBxB,CAJJ,CAFG,CAAP;AA6CH,CApGD;;AAsGAlD,UAAU,CAAC0D,SAAX,GAAuB;AACnBX,EAAAA,gBAAgB,EAAEY,sBAAUC,MADT;AAEnBzD,EAAAA,IAAI,EAAEwD,sBAAUE,MAFG;AAGnBnB,EAAAA,aAAa,EAAEiB,sBAAUE,MAHN;AAInBlB,EAAAA,KAAK,EAAEgB,sBAAUC,MAJE;AAKnBhB,EAAAA,KAAK,EAAEe,sBAAUG,GALE;AAMnBd,EAAAA,QAAQ,EAAEW,sBAAUI,IAND;AAOnB5B,EAAAA,QAAQ,EAAEwB,sBAAUK,IAAV,CAAeC,UAPN;AASnBd,EAAAA,KAAK,EAAEQ,sBAAUO,KATE;AAUnBd,EAAAA,SAAS,EAAEO,sBAAUI,IAVF;AAWnBV,EAAAA,WAAW,EAAEM,sBAAUI;AAXJ,CAAvB;AAcA;;eACe/D,U","sourcesContent":["import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport {useDropzone} from 'react-dropzone';\nimport makeStyles from '@mui/styles/makeStyles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport FormControl from '@mui/material/FormControl';\nimport IconButton from '@mui/material/IconButton';\nimport ClearIcon from '@mui/icons-material/Clear';\n\nimport IconSelector from './IconSelector';\nimport Icon from './Icon';\nimport I18n from '../i18n';\nimport Utils from './Utils';\n\n/**\n * @typedef {object} IconPickerProps\n * @property {string} [value] The value.\n * @property {string} [label] The label.\n * @property {boolean} [disabled] Set to true to disable the icon picker.\n * @property {(icon: string) => void} onChange The icon change callback.\n * @property {import('../Connection').default} socket The socket connection.\n * @property {string} [imagePrefix] The image prefix (default: './files/')\n * @property {React.CSSProperties} [style] Additional styling for this component.\n * @property {string} [className] The CSS class name.\n *\n * @extends {React.Component<IconPickerProps>}\n */\nlet IconPicker = function (props) {\n let IconCustom = props.icon;\n\n const useStyles = makeStyles(theme => ({\n formContainer : {\n display: 'flex',\n justifyContent: 'left',\n alignItems: 'center'\n },\n formControl : {\n display: 'flex',\n padding: 24,\n flexGrow: 1000\n },\n divContainer: {\n width: 32 + 24,\n height: 32,\n whiteSpace: 'nowrap',\n lineHeight: '32px',\n marginRight: 8\n },\n dragField: {\n textAlign: 'center',\n display: 'table',\n minHeight: 90,\n width: 'calc(100% - 60px)',\n border: '2px dashed #777',\n borderRadius: 10,\n padding: 4,\n },\n formIcon : {\n margin: 10,\n opacity: 0.6\n },\n text: {\n display: 'table-cell',\n verticalAlign: 'middle',\n }\n }));\n\n const classes = useStyles();\n\n const onDrop = useCallback(acceptedFiles => {\n const reader = new FileReader();\n\n reader.addEventListener('load', () =>\n props.onChange(reader.result), false);\n\n if (acceptedFiles[0]) {\n reader.readAsDataURL(acceptedFiles[0]);\n }\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const {getRootProps, getInputProps, isDragActive} = useDropzone({onDrop});\n\n return <div className={classes.formContainer}>\n {IconCustom ? <IconCustom className={ classes.formIcon }/> : null}\n <FormControl variant=\"standard\" className={classes.formControl} style={{padding: 3}}>\n <InputLabel shrink classes={{root: props.customClasses?.label}}>\n { props.label }\n </InputLabel>\n <div className={ classes.formContainer }>\n {props.value ?\n <div className={ classes.divContainer }>\n <Icon alt=\"\" className={Utils.clsx(props.previewClassName, props.customClasses?.icon)} src={props.value}/>\n {!props.disabled && <IconButton\n style={{verticalAlign: 'top'}}\n title={I18n.t('ra_Clear icon')}\n size=\"small\"\n onClick={() => props.onChange('')}\n >\n <ClearIcon/>\n </IconButton>}\n </div>\n :\n (!props.disabled && <IconSelector\n icons={props.icons}\n onlyRooms={props.onlyRooms}\n onlyDevices={props.onlyDevices}\n onSelect={base64 => props.onChange(base64)}\n t={I18n.t}\n lang={I18n.getLanguage()}\n />)\n }\n\n {!props.disabled && <div\n {...getRootProps()}\n className={classes.dragField}\n style={isDragActive ? {backgroundColor: 'rgba(0, 255, 0, 0.1)'} : {cursor: 'pointer'}}\n >\n <input {...getInputProps()} />\n {\n isDragActive ?\n <span className={classes.text}>{I18n.t('ra_Drop the files here...')}</span> :\n <span className={classes.text}>{I18n.t(`ra_Drag 'n' drop some files here, or click to select files`)}</span>\n }\n </div>}\n </div>\n </FormControl>\n </div>;\n};\n\nIconPicker.propTypes = {\n previewClassName: PropTypes.string,\n icon: PropTypes.object,\n customClasses: PropTypes.object,\n label: PropTypes.string,\n value: PropTypes.any,\n disabled: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n\n icons: PropTypes.array,\n onlyRooms: PropTypes.bool,\n onlyDevices: PropTypes.bool,\n};\n\n/** @type {typeof IconPicker} */\nexport default IconPicker;"],"file":"IconPicker.js"}
|
package/Components/Image.js
CHANGED
|
@@ -189,6 +189,7 @@ var Image = /*#__PURE__*/function (_React$Component) {
|
|
|
189
189
|
|
|
190
190
|
if (props && state && props.color !== state.color) {
|
|
191
191
|
newState.color = props.color;
|
|
192
|
+
newState.created = false;
|
|
192
193
|
changed = true;
|
|
193
194
|
}
|
|
194
195
|
|
|
@@ -206,7 +207,7 @@ var Image = /*#__PURE__*/function (_React$Component) {
|
|
|
206
207
|
|
|
207
208
|
Image.propTypes = {
|
|
208
209
|
color: _propTypes["default"].string,
|
|
209
|
-
src: _propTypes["default"].string,
|
|
210
|
+
src: _propTypes["default"].string.isRequired,
|
|
210
211
|
className: _propTypes["default"].string,
|
|
211
212
|
imagePrefix: _propTypes["default"].string
|
|
212
213
|
};
|
package/Components/Image.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Image.js"],"names":["getElementFromSource","src","svgContainer","document","createElement","innerHTML","svg","firstElementChild","remove","removeChild","serializeAttrs","map","ret","prop","i","length","key","name","startsWith","replace","g","toUpperCase","value","Image","props","state","created","color","imgError","showError","getSvgFromData","len","substring","atob","inner","svgProps","attributes","className","__html","e","setTimeout","setState","IconNoIcon","imagePrefix","newState","changed","React","Component","propTypes","PropTypes","string"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,SAASA,oBAAT,CAA8BC,GAA9B,EAAmC;AAC/B,MAAMC,YAAY,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAArB;AACAF,EAAAA,YAAY,CAACG,SAAb,GAAyBJ,GAAzB;AACA,MAAMK,GAAG,GAAGJ,YAAY,CAACK,iBAAzB;;AACA,MAAID,GAAG,CAACE,MAAR,EAAgB;AACZF,IAAAA,GAAG,CAACE,MAAJ;AACH,GAFD,MAEO;AACHN,IAAAA,YAAY,CAACO,WAAb,CAAyBH,GAAzB;AACH;;AACDJ,EAAAA,YAAY,CAACM,MAAb;AACA,SAAOF,GAAP;AACH;;AAED,SAASI,cAAT,CAAwBC,GAAxB,EAA6B;AACzB,MAAMC,GAAG,GAAG,EAAZ;;AACA,OAAK,IAAIC,IAAJ,EAAUC,CAAC,GAAG,CAAnB,EAAsBA,CAAC,GAAGH,GAAG,CAACI,MAA9B,EAAsCD,CAAC,EAAvC,EAA2C;AACvC,QAAME,GAAG,GAAGL,GAAG,CAACG,CAAD,CAAH,CAAOG,IAAnB;;AACA,QAAID,GAAG,KAAK,OAAZ,EAAqB;AACjBH,MAAAA,IAAI,GAAG,WAAP;AACH,KAFD,MAGK,IAAI,CAACG,GAAG,CAACE,UAAJ,CAAe,OAAf,CAAL,EAA8B;AAC/BL,MAAAA,IAAI,GAAGG,GAAG,CAACG,OAAJ,CAAY,eAAZ,EAA6B,UAAAC,CAAC;AAAA,eAAIA,CAAC,CAAC,CAAD,CAAD,CAAKC,WAAL,EAAJ;AAAA,OAA9B,CAAP;AACH,KAFI,MAEE;AACHR,MAAAA,IAAI,GAAGG,GAAP;AACH;;AAEDJ,IAAAA,GAAG,CAACC,IAAD,CAAH,GAAYF,GAAG,CAACG,CAAD,CAAH,CAAOQ,KAAnB;AACH;;AACD,SAAOV,GAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMW,K;;;;;AACF,iBAAYC,KAAZ,EAAmB;AAAA;;AAAA;;AACf,8BAAMA,KAAN;AACA,UAAKC,KAAL,GAAa;AACTnB,MAAAA,GAAG,EAAE,CAAC,EAAE,MAAKkB,KAAL,CAAWvB,GAAX,IAAkB,MAAKuB,KAAL,CAAWvB,GAAX,CAAeiB,UAAf,CAA0B,OAA1B,CAApB,CADG;AAETQ,MAAAA,OAAO,EAAE,IAFA;AAGTC,MAAAA,KAAK,EAAE,MAAKH,KAAL,CAAWG,KAAX,IAAoB,EAHlB;AAIT1B,MAAAA,GAAG,EAAE,MAAKuB,KAAL,CAAWvB,GAAX,IAAkB,EAJd;AAKT2B,MAAAA,QAAQ,EAAE,KALD;AAMTC,MAAAA,SAAS,EAAE,MAAKL,KAAL,CAAWK;AANb,KAAb;AASA,UAAKvB,GAAL,GAAW,MAAKmB,KAAL,CAAWnB,GAAX,GAAiB,MAAKwB,cAAL,CAAoB,MAAKL,KAAL,CAAWxB,GAA/B,CAAjB,GAAuD,IAAlE;AAXe;AAYlB;;;;
|
|
1
|
+
{"version":3,"sources":["Image.js"],"names":["getElementFromSource","src","svgContainer","document","createElement","innerHTML","svg","firstElementChild","remove","removeChild","serializeAttrs","map","ret","prop","i","length","key","name","startsWith","replace","g","toUpperCase","value","Image","props","state","created","color","imgError","showError","getSvgFromData","len","substring","atob","inner","svgProps","attributes","className","__html","e","setTimeout","setState","IconNoIcon","imagePrefix","newState","changed","React","Component","propTypes","PropTypes","string","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport IconNoIcon from '../assets/no_icon.svg';\n\nfunction getElementFromSource(src) {\n const svgContainer = document.createElement('div');\n svgContainer.innerHTML = src;\n const svg = svgContainer.firstElementChild;\n if (svg.remove) {\n svg.remove();\n } else {\n svgContainer.removeChild(svg);\n }\n svgContainer.remove();\n return svg;\n}\n\nfunction serializeAttrs(map) {\n const ret = {};\n for (let prop, i = 0; i < map.length; i++) {\n const key = map[i].name;\n if (key === 'class') {\n prop = 'className';\n }\n else if (!key.startsWith('data-')) {\n prop = key.replace(/[-|:]([a-z])/g, g => g[1].toUpperCase());\n } else {\n prop = key;\n }\n\n ret[prop] = map[i].value;\n }\n return ret;\n}\n\n/**\n * @typedef {object} ImageProps\n * @property {string} [key] The key to identify this component.\n * @property {string} [color] The color.\n * @property {string} [src] The source of the image.\n * @property {string} [imagePrefix] The image prefix (default: './files/')\n * @property {string} [className] The CSS class name.\n * @property {boolean} [showError] Show image errors (or just show no image)?\n *\n * @extends {React.Component<ImageProps>}\n */\nclass Image extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n svg: !!(this.props.src && this.props.src.startsWith('data:')),\n created: true,\n color: this.props.color || '',\n src: this.props.src || '',\n imgError: false,\n showError: this.props.showError,\n };\n\n this.svg = this.state.svg ? this.getSvgFromData(this.state.src) : null;\n }\n\n static getDerivedStateFromProps(props, state) {\n const newState = {};\n let changed = false;\n\n if (props && state && props.src !== state.src) {\n newState.src = props.src;\n newState.svg = props.src && props.src.startsWith('data:');\n newState.created = false;\n changed = true;\n }\n\n if (props && state && props.color !== state.color) {\n newState.color = props.color;\n newState.created = false;\n changed = true;\n }\n\n if (props && state && props.showError !== state.showError) {\n newState.showError = props.showError;\n changed = true;\n }\n\n return changed ? newState : null;\n }\n\n getSvgFromData(src) {\n const len = 'data:image/svg+xml;base64,';\n if (!src.startsWith(len)) {\n return null;\n }\n src = src.substring(len.length);\n try {\n src = atob(src);\n const svg = getElementFromSource(src);\n const inner = svg.innerHTML;\n const svgProps = serializeAttrs(svg.attributes || []);\n\n svg.remove();\n\n return <svg\n className={this.props.className}\n style={this.state.color ? {color: this.state.color} : {}}\n {...svgProps}\n dangerouslySetInnerHTML={{ __html: inner }}\n />;\n } catch (e) {\n\n }\n return null;\n }\n\n render() {\n if (this.state.svg) {\n if (!this.state.created) {\n setTimeout(() => {\n this.svg = this.getSvgFromData(this.state.src);\n this.setState({created: true});\n }, 50);\n }\n\n return this.svg;\n } else if (this.state.src) {\n return <img\n className={this.props.className}\n src={this.state.imgError ? IconNoIcon : (this.props.imagePrefix || '') + this.state.src || IconNoIcon}\n alt=\"\"\n onError={() => this.props.showError ? this.setState({imgError: true}) : this.setState({src: ''})}\n />;\n } else {\n return null;\n }\n }\n}\n\nImage.propTypes = {\n color: PropTypes.string,\n src: PropTypes.string.isRequired,\n className: PropTypes.string,\n imagePrefix: PropTypes.string,\n};\n\nexport default Image;"],"file":"Image.js"}
|
package/Components/Loader.js
CHANGED
|
@@ -56,30 +56,24 @@ var Loader = /*#__PURE__*/function (_React$Component) {
|
|
|
56
56
|
|
|
57
57
|
var _super = _createSuper(Loader);
|
|
58
58
|
|
|
59
|
-
|
|
60
|
-
* @param {LoaderProps} props
|
|
61
|
-
*/
|
|
62
|
-
function Loader(props) {
|
|
63
|
-
var _this;
|
|
64
|
-
|
|
59
|
+
function Loader() {
|
|
65
60
|
_classCallCheck(this, Loader);
|
|
66
61
|
|
|
67
|
-
|
|
68
|
-
_this.size = _this.props.size || 234;
|
|
69
|
-
return _this;
|
|
62
|
+
return _super.apply(this, arguments);
|
|
70
63
|
}
|
|
71
64
|
|
|
72
65
|
_createClass(Loader, [{
|
|
73
66
|
key: "render",
|
|
74
67
|
value: function render() {
|
|
68
|
+
var size = this.props.size || 234;
|
|
75
69
|
var theme = this.props.themeType || this.props.theme || 'light';
|
|
76
70
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
77
71
|
className: 'logo-back logo-background-' + theme
|
|
78
72
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
79
73
|
className: "logo-div",
|
|
80
74
|
style: {
|
|
81
|
-
width:
|
|
82
|
-
height:
|
|
75
|
+
width: size,
|
|
76
|
+
height: size
|
|
83
77
|
}
|
|
84
78
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
85
79
|
className: 'logo-top logo-background-' + theme,
|
|
@@ -94,7 +88,7 @@ var Loader = /*#__PURE__*/function (_React$Component) {
|
|
|
94
88
|
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
95
89
|
className: 'logo-border logo-background-' + theme + ' logo-animate-wait',
|
|
96
90
|
style: {
|
|
97
|
-
borderWidth:
|
|
91
|
+
borderWidth: size * 0.132
|
|
98
92
|
}
|
|
99
93
|
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
100
94
|
className: 'logo-i logo-animate-color-inside-' + theme
|
|
@@ -111,8 +105,8 @@ var Loader = /*#__PURE__*/function (_React$Component) {
|
|
|
111
105
|
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
112
106
|
className: 'logo-animate-grow logo-animate-grow-' + theme,
|
|
113
107
|
style: {
|
|
114
|
-
width:
|
|
115
|
-
height:
|
|
108
|
+
width: size + 11,
|
|
109
|
+
height: size + 11
|
|
116
110
|
}
|
|
117
111
|
}));
|
|
118
112
|
}
|
package/Components/Loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Loader.js"],"names":["styles","theme","Loader","
|
|
1
|
+
{"version":3,"sources":["Loader.js"],"names":["styles","theme","Loader","size","props","themeType","width","height","left","borderWidth","top","bottom","React","Component","propTypes","PropTypes","number","string","_export"],"mappings":";;;;;;;;;AAMA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK,EAAL;AAAA,CAApB;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMC,M;;;;;;;;;;;;;WACF,kBAAS;AACL,UAAMC,IAAI,GAAG,KAAKC,KAAL,CAAWD,IAAX,IAAmB,GAAhC;AACA,UAAMF,KAAK,GAAG,KAAKG,KAAL,CAAWC,SAAX,IAAwB,KAAKD,KAAL,CAAWH,KAAnC,IAA4C,OAA1D;AACA,0BAAO;AAAK,QAAA,SAAS,EAAE,+BAA+BA;AAA/C,sBACH;AAAK,QAAA,SAAS,EAAC,UAAf;AAA0B,QAAA,KAAK,EAAE;AAACK,UAAAA,KAAK,EAAEH,IAAR;AAAcI,UAAAA,MAAM,EAAEJ;AAAtB;AAAjC,sBACI;AAAK,QAAA,SAAS,EAAE,8BAA8BF,KAA9C;AAAqD,QAAA,KAAK,EAAE;AAACO,UAAAA,IAAI,EAAE;AAAP;AAA5D,QADJ,eAEI;AAAK,QAAA,SAAS,EAAE,8BAA8BP,KAA9C;AAAqD,QAAA,KAAK,EAAE;AAACO,UAAAA,IAAI,EAAE;AAAP;AAA5D,QAFJ,eAGI;AACI,QAAA,SAAS,EAAE,iCAAiCP,KAAjC,GAAyC,oBADxD;AAEI,QAAA,KAAK,EAAE;AAACQ,UAAAA,WAAW,EAAEN,IAAI,GAAG;AAArB;AAFX,QAHJ,eAOI;AAAK,QAAA,SAAS,EAAE,sCAAsCF;AAAtD,QAPJ,eAQI;AAAK,QAAA,SAAS,EAAE,0CAA0CA,KAA1D;AAAiE,QAAA,KAAK,EAAE;AAACS,UAAAA,GAAG,EAAE;AAAN;AAAxE,QARJ,eASI;AAAK,QAAA,SAAS,EAAE,0CAA0CT,KAA1D;AAAiE,QAAA,KAAK,EAAE;AAACU,UAAAA,MAAM,EAAE;AAAT;AAAxE,QATJ,CADG,eAYH;AAAK,QAAA,SAAS,EAAE,yCAAyCV,KAAzD;AACK,QAAA,KAAK,EAAE;AAACK,UAAAA,KAAK,EAAEH,IAAI,GAAG,EAAf;AAAmBI,UAAAA,MAAM,EAAEJ,IAAI,GAAG;AAAlC;AADZ,QAZG,CAAP;AAgBH;;;;EApBgBS,kBAAMC,S;;AAuB3BX,MAAM,CAACY,SAAP,GAAmB;AACfX,EAAAA,IAAI,EAAEY,sBAAUC,MADD;AAEfX,EAAAA,SAAS,EAAEU,sBAAUE;AAFN,CAAnB;AAKA;;AACA,IAAMC,OAAO,GAAG,4BAAWlB,MAAX,EAAmBE,MAAnB,CAAhB;;eACegB,O","sourcesContent":["/**\n * Copyright 2018-2021 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\nimport './loader.css'\n\nconst styles = theme => ({\n\n});\n\n/**\n * @typedef {object} LoaderProps\n * @property {string} [key] The key to identify this component.\n * @property {number} [size] The size in pixels of this loader.\n * @property {string} [themeType] The chosen theme type.\n * @property {string} [theme] The chosen theme.\n *\n * @extends {React.Component<LoaderProps>}\n */\nclass Loader extends React.Component {\n render() {\n const size = this.props.size || 234;\n const theme = this.props.themeType || this.props.theme || 'light';\n return <div className={'logo-back logo-background-' + theme}>\n <div className=\"logo-div\" style={{width: size, height: size}}>\n <div className={'logo-top logo-background-' + theme} style={{left: '37%'}}/>\n <div className={'logo-top logo-background-' + theme} style={{left: '57%'}}/>\n <div\n className={'logo-border logo-background-' + theme + ' logo-animate-wait'}\n style={{borderWidth: size * 0.132}}\n />\n <div className={'logo-i logo-animate-color-inside-' + theme}/>\n <div className={'logo-i-top logo-animate-color-inside-' + theme} style={{top: '18%'}}/>\n <div className={'logo-i-top logo-animate-color-inside-' + theme} style={{bottom: '18%'}}/>\n </div>\n <div className={'logo-animate-grow logo-animate-grow-' + theme}\n style={{width: size + 11, height: size + 11}}\n />\n </div>;\n }\n}\n\nLoader.propTypes = {\n size: PropTypes.number,\n themeType: PropTypes.string\n};\n\n/** @type {typeof Loader} */\nconst _export = withStyles(styles)(Loader);\nexport default _export;"],"file":"Loader.js"}
|
package/Components/Logo.js
CHANGED
|
@@ -100,15 +100,15 @@ var Logo = /*#__PURE__*/function (_React$Component) {
|
|
|
100
100
|
|
|
101
101
|
if (json["native"] && json.common) {
|
|
102
102
|
if (json.common.name !== _this.props.common.name) {
|
|
103
|
-
_this.props.onError(_i18n["default"].t('ra_otherConfig', json.common.name));
|
|
103
|
+
_this.props.onError && _this.props.onError(_i18n["default"].t('ra_otherConfig', json.common.name));
|
|
104
104
|
} else {
|
|
105
|
-
_this.props.onLoad(json["native"]);
|
|
105
|
+
_this.props.onLoad && _this.props.onLoad(json["native"]);
|
|
106
106
|
}
|
|
107
107
|
} else {
|
|
108
|
-
_this.props.onError(_i18n["default"].t('ra_invalidConfig'));
|
|
108
|
+
_this.props.onError && _this.props.onError(_i18n["default"].t('ra_invalidConfig'));
|
|
109
109
|
}
|
|
110
110
|
} catch (e) {
|
|
111
|
-
_this.props.onError(e.toString());
|
|
111
|
+
_this.props.onError && _this.props.onError(e.toString());
|
|
112
112
|
}
|
|
113
113
|
};
|
|
114
114
|
|
|
@@ -176,7 +176,7 @@ var Logo = /*#__PURE__*/function (_React$Component) {
|
|
|
176
176
|
var win = window.open(_this3.props.common.readme, '_blank');
|
|
177
177
|
win.focus();
|
|
178
178
|
}
|
|
179
|
-
}, /*#__PURE__*/_react["default"].createElement(_Help["default"], null)) : null, /*#__PURE__*/_react["default"].createElement(_Fab["default"], {
|
|
179
|
+
}, /*#__PURE__*/_react["default"].createElement(_Help["default"], null)) : null, this.props.onLoad ? /*#__PURE__*/_react["default"].createElement(_Fab["default"], {
|
|
180
180
|
size: "small",
|
|
181
181
|
color: "primary",
|
|
182
182
|
"aria-label": "Load config",
|
|
@@ -185,7 +185,7 @@ var Logo = /*#__PURE__*/function (_React$Component) {
|
|
|
185
185
|
onClick: function onClick() {
|
|
186
186
|
return _this3.upload();
|
|
187
187
|
}
|
|
188
|
-
}, /*#__PURE__*/_react["default"].createElement(_VerticalAlignTop["default"], null)), /*#__PURE__*/_react["default"].createElement(_Fab["default"], {
|
|
188
|
+
}, /*#__PURE__*/_react["default"].createElement(_VerticalAlignTop["default"], null)) : null, /*#__PURE__*/_react["default"].createElement(_Fab["default"], {
|
|
189
189
|
size: "small",
|
|
190
190
|
color: "primary",
|
|
191
191
|
"aria-label": "Save config",
|
|
@@ -218,8 +218,8 @@ Logo.propTypes = {
|
|
|
218
218
|
style: _propTypes["default"].object,
|
|
219
219
|
"native": _propTypes["default"].object.isRequired,
|
|
220
220
|
instance: _propTypes["default"].number.isRequired,
|
|
221
|
-
onError: _propTypes["default"].func,
|
|
222
|
-
onLoad: _propTypes["default"].func
|
|
221
|
+
onError: _propTypes["default"].func.isRequired,
|
|
222
|
+
onLoad: _propTypes["default"].func.isRequired
|
|
223
223
|
};
|
|
224
224
|
/** @type {typeof Logo} */
|
|
225
225
|
|
package/Components/Logo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Logo.js"],"names":["styles","theme","buttons","marginRight","marginTop","logo","padding","width","Logo","evt","f","target","files","r","window","FileReader","onload","e","contents","result","json","JSON","parse","common","name","props","onError","I18n","t","onLoad","toString","readAsText","alert","_id","instance","stringify","news","titleLang","desc","generateFile","input","document","createElement","setAttribute","addEventListener","handleFileSelect","click","className","style","icon","classes","readme","win","open","focus","upload","download","filename","obj","el","encodeURIComponent","display","body","appendChild","removeChild","React","Component","propTypes","PropTypes","object","isRequired","string","number","func","_export"],"mappings":"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","sourcesContent":["// please do not delete React, as without it other projects could not be compiled: ReferenceError: React is not defined\nimport React from 'react';\nimport withStyles from '@mui/styles/withStyles';\nimport Fab from '@mui/material/Fab';\nimport PropTypes from 'prop-types';\n\nimport I18n from '../i18n';\n\nimport IconHelp from '@mui/icons-material/Help'\nimport IconUpload from '@mui/icons-material/VerticalAlignTop'\nimport IconDownload from '@mui/icons-material/VerticalAlignBottom'\n\nconst styles = theme => ({\n buttons: {\n marginRight: 5,\n marginTop: 5,\n float: 'right'\n },\n logo: {\n padding: 8,\n width: 64\n }\n});\n\n/**\n * @typedef {object} LogoProps\n * @property {any} common Adapter common configuration from io-package.json\n * @property {any} native Adapter native data from io-package.json\n * @property {number} instance Adapter instance number.\n * @property {(contents: any) => void} [onLoad]\n * @property {(error: string) => void} [onError]\n * @property {{ buttons: string, logo: string }} classes The styling class names.\n *\n * @extends {React.Component<LogoProps>}\n */\nclass Logo extends React.Component {\n\n static generateFile(filename, obj) {\n const el = window.document.createElement('a');\n el.setAttribute('href', 'data:application/json;charset=utf-8,' + encodeURIComponent(JSON.stringify(obj, null, 2)));\n el.setAttribute('download', filename);\n\n el.style.display = 'none';\n window.document.body.appendChild(el);\n\n el.click();\n\n window.document.body.removeChild(el);\n }\n\n handleFileSelect(evt) {\n const f = evt.target.files[0];\n if (f) {\n const r = new window.FileReader();\n r.onload = e => {\n const contents = e.target.result;\n try {\n const json = JSON.parse(contents);\n if (json.native && json.common) {\n if (json.common.name !== this.props.common.name) {\n this.props.onError(I18n.t('ra_otherConfig', json.common.name));\n } else {\n this.props.onLoad(json.native);\n }\n } else {\n this.props.onError(I18n.t('ra_invalidConfig'));\n }\n } catch (e) {\n this.props.onError(e.toString());\n }\n };\n r.readAsText(f);\n } else {\n alert('Failed to open JSON File');\n }\n }\n\n download() {\n const result = {\n _id: 'system.adapter.' + this.props.common.name + '.' + this.props.instance,\n common: JSON.parse(JSON.stringify(this.props.common)),\n native: this.props.native\n };\n // remove unimportant information\n if (result.common.news) {\n delete result.common.news;\n }\n if (result.common.titleLang) {\n delete result.common.titleLang;\n }\n if (result.common.desc) {\n delete result.common.desc;\n }\n\n //window.open('data:application/iobroker; content-disposition=attachment; filename=' + result._id + '.json,' + JSON.stringify(result, null, 2));\n Logo.generateFile(result._id + '.json', result);\n }\n\n upload() {\n const input = window.document.createElement('input');\n input.setAttribute('type', 'file');\n input.setAttribute('id', 'files');\n input.setAttribute('opacity', 0);\n input.addEventListener('change', e => this.handleFileSelect(e, () => {}), false);\n (input.click)();\n }\n\n render() {\n return <div className={this.props.className} style={this.props.style}>\n {this.props.common.icon ? <img src={this.props.common.icon} className={this.props.classes.logo} alt=\"logo\"/> : null}\n {this.props.common.readme ?\n <Fab size=\"small\" color=\"primary\" aria-label=\"Help\" className={this.props.classes.buttons} onClick={() => {\n const win = window.open(this.props.common.readme, '_blank');\n win.focus();\n }}><IconHelp /></Fab> : null}\n <Fab size=\"small\" color=\"primary\" aria-label=\"Load config\" className={this.props.classes.buttons} title={I18n.t('ra_Load configuration from file')} onClick={() => this.upload()}><IconUpload /></Fab>\n <Fab size=\"small\" color=\"primary\" aria-label=\"Save config\" className={this.props.classes.buttons} title={I18n.t('ra_Save configuration to file')} onClick={() => this.download()}><IconDownload /></Fab>\n </div>;\n }\n}\n\nLogo.propTypes = {\n common: PropTypes.object.isRequired,\n className: PropTypes.string,\n style: PropTypes.object,\n native: PropTypes.object.isRequired,\n instance: PropTypes.number.isRequired,\n onError: PropTypes.func,\n onLoad: PropTypes.func,\n};\n\n/** @type {typeof Logo} */\nconst _export = withStyles(styles)(Logo);\nexport default _export;"],"file":"Logo.js"}
|
|
1
|
+
{"version":3,"sources":["Logo.js"],"names":["styles","theme","buttons","marginRight","marginTop","logo","padding","width","Logo","evt","f","target","files","r","window","FileReader","onload","e","contents","result","json","JSON","parse","common","name","props","onError","I18n","t","onLoad","toString","readAsText","alert","_id","instance","stringify","news","titleLang","desc","generateFile","input","document","createElement","setAttribute","addEventListener","handleFileSelect","click","className","style","icon","classes","readme","win","open","focus","upload","download","filename","obj","el","encodeURIComponent","display","body","appendChild","removeChild","React","Component","propTypes","PropTypes","object","isRequired","string","number","func","_export"],"mappings":"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","sourcesContent":["// please do not delete React, as without it other projects could not be compiled: ReferenceError: React is not defined\nimport React from 'react';\nimport withStyles from '@mui/styles/withStyles';\nimport Fab from '@mui/material/Fab';\nimport PropTypes from 'prop-types';\n\nimport I18n from '../i18n';\n\nimport IconHelp from '@mui/icons-material/Help'\nimport IconUpload from '@mui/icons-material/VerticalAlignTop'\nimport IconDownload from '@mui/icons-material/VerticalAlignBottom'\n\nconst styles = theme => ({\n buttons: {\n marginRight: 5,\n marginTop: 5,\n float: 'right'\n },\n logo: {\n padding: 8,\n width: 64\n }\n});\n\n/**\n * @typedef {object} LogoProps\n * @property {any} common Adapter common configuration from io-package.json\n * @property {any} native Adapter native data from io-package.json\n * @property {number} instance Adapter instance number.\n * @property {(contents: any) => void} [onLoad]\n * @property {(error: string) => void} [onError]\n * @property {{ buttons: string, logo: string }} classes The styling class names.\n *\n * @extends {React.Component<LogoProps>}\n */\nclass Logo extends React.Component {\n\n static generateFile(filename, obj) {\n const el = window.document.createElement('a');\n el.setAttribute('href', 'data:application/json;charset=utf-8,' + encodeURIComponent(JSON.stringify(obj, null, 2)));\n el.setAttribute('download', filename);\n\n el.style.display = 'none';\n window.document.body.appendChild(el);\n\n el.click();\n\n window.document.body.removeChild(el);\n }\n\n handleFileSelect(evt) {\n const f = evt.target.files[0];\n if (f) {\n const r = new window.FileReader();\n r.onload = e => {\n const contents = e.target.result;\n try {\n const json = JSON.parse(contents);\n if (json.native && json.common) {\n if (json.common.name !== this.props.common.name) {\n this.props.onError && this.props.onError(I18n.t('ra_otherConfig', json.common.name));\n } else {\n this.props.onLoad && this.props.onLoad(json.native);\n }\n } else {\n this.props.onError && this.props.onError(I18n.t('ra_invalidConfig'));\n }\n } catch (e) {\n this.props.onError && this.props.onError(e.toString());\n }\n };\n r.readAsText(f);\n } else {\n alert('Failed to open JSON File');\n }\n }\n\n download() {\n const result = {\n _id: 'system.adapter.' + this.props.common.name + '.' + this.props.instance,\n common: JSON.parse(JSON.stringify(this.props.common)),\n native: this.props.native\n };\n // remove unimportant information\n if (result.common.news) {\n delete result.common.news;\n }\n if (result.common.titleLang) {\n delete result.common.titleLang;\n }\n if (result.common.desc) {\n delete result.common.desc;\n }\n\n //window.open('data:application/iobroker; content-disposition=attachment; filename=' + result._id + '.json,' + JSON.stringify(result, null, 2));\n Logo.generateFile(result._id + '.json', result);\n }\n\n upload() {\n const input = window.document.createElement('input');\n input.setAttribute('type', 'file');\n input.setAttribute('id', 'files');\n input.setAttribute('opacity', 0);\n input.addEventListener('change', e => this.handleFileSelect(e, () => {}), false);\n (input.click)();\n }\n\n render() {\n return <div className={this.props.className} style={this.props.style}>\n {this.props.common.icon ?\n <img src={this.props.common.icon} className={this.props.classes.logo} alt=\"logo\"/> : null}\n {this.props.common.readme ?\n <Fab\n size=\"small\"\n color=\"primary\"\n aria-label=\"Help\"\n className={this.props.classes.buttons}\n onClick={() => {\n const win = window.open(this.props.common.readme, '_blank');\n win.focus();\n }}\n ><IconHelp/></Fab> : null}\n {this.props.onLoad ? <Fab size=\"small\" color=\"primary\" aria-label=\"Load config\" className={this.props.classes.buttons}\n title={I18n.t('ra_Load configuration from file')} onClick={() => this.upload()}><IconUpload/></Fab> : null}\n <Fab size=\"small\" color=\"primary\" aria-label=\"Save config\" className={this.props.classes.buttons}\n title={I18n.t('ra_Save configuration to file')} onClick={() => this.download()}><IconDownload/></Fab>\n </div>;\n }\n}\n\nLogo.propTypes = {\n common: PropTypes.object.isRequired,\n className: PropTypes.string,\n style: PropTypes.object,\n native: PropTypes.object.isRequired,\n instance: PropTypes.number.isRequired,\n onError: PropTypes.func.isRequired,\n onLoad: PropTypes.func.isRequired,\n};\n\n/** @type {typeof Logo} */\nconst _export = withStyles(styles)(Logo);\nexport default _export;"],"file":"Logo.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MDUtils.js"],"names":["MDUtils","text","m","match","replace","trim","toLowerCase","url","target","window","location","open","extractHeader","body","header","title","lines","split","i","length","startsWith","substring","attrs","pos","indexOf","_header","forEach","line","attr","parseFloat","toString","doc","e","stopPropagation","preventDefault"],"mappings":"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","sourcesContent":["/**\n * Copyright 2018-
|
|
1
|
+
{"version":3,"sources":["MDUtils.js"],"names":["MDUtils","text","m","match","replace","trim","toLowerCase","url","target","window","location","open","extractHeader","body","header","title","lines","split","i","length","startsWith","substring","attrs","pos","indexOf","_header","forEach","line","attr","parseFloat","toString","doc","e","stopPropagation","preventDefault"],"mappings":"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","sourcesContent":["/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport copy from './copy-to-clipboard';\n\nclass MDUtils {\n static text2link(text) {\n const m = text.match(/\\d+\\.\\)\\s/);\n if (m) {\n text = text.replace(m[0], m[0].replace(/\\s/, ' '));\n }\n\n return text.replace(/[^a-zA-Zа-яА-Я0-9]/g, '').trim().replace(/\\s/g, '').toLowerCase();\n }\n\n static openLink(url, target) {\n if (target === 'this') {\n window.location = url;\n } else {\n window.open(url, target || '_blank');\n }\n }\n\n static getTitle(text) {\n let {body, header} = MDUtils.extractHeader(text);\n if (!header.title) {\n // remove {docsify-bla}\n body = body.replace(/{[^}]*}/g, '');\n body = body.trim();\n const lines = body.replace(/\\r/g, '').split('\\n');\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].startsWith('# ')) {\n return lines[i].substring(2).trim();\n }\n }\n return '';\n } else {\n return header.title;\n }\n }\n\n static extractHeader(text) {\n const attrs = {};\n if (text.substring(0, 3) === '---') {\n const pos = text.substring(3).indexOf('\\n---');\n if (pos !== -1) {\n const _header = text.substring(3, pos + 3);\n const lines = _header.replace(/\\r/g, '').split('\\n');\n lines.forEach(line => {\n if (!line.trim()) {\n return;\n }\n const pos = line.indexOf(':');\n if (pos !== -1) {\n const attr = line.substring(0, pos).trim();\n attrs[attr] = line.substring(pos + 1).trim();\n attrs[attr] = attrs[attr].replace(/^['\"]|['\"]$/g, '');\n if (attrs[attr] === 'true') {\n attrs[attr] = true;\n } else if (attrs[attr] === 'false') {\n attrs[attr] = false;\n } else if (parseFloat(attrs[attr]).toString() === attrs[attr]) {\n attrs[attr] = parseFloat(attrs[attr]);\n }\n } else {\n attrs[line.trim()] = true;\n }\n });\n text = text.substring(pos + 7);\n }\n }\n return {header: attrs, body: text};\n }\n\n static removeDocsify(text) {\n const m = text.match(/{docsify-[^}]*}/g);\n if (m) {\n m.forEach(doc => text = text.replace(doc, ''));\n }\n return text;\n }\n\n static onCopy(e, text) {\n copy(text);\n e && e.stopPropagation();\n e && e.preventDefault();\n }\n}\n\nexport default MDUtils;"],"file":"MDUtils.js"}
|
package/Components/Schedule.js
CHANGED
|
@@ -1881,8 +1881,7 @@ var Schedule = /*#__PURE__*/function (_React$Component) {
|
|
|
1881
1881
|
|
|
1882
1882
|
Schedule.propTypes = {
|
|
1883
1883
|
schedule: _propTypes["default"].string,
|
|
1884
|
-
onChange: _propTypes["default"].func
|
|
1885
|
-
language: _propTypes["default"].string
|
|
1884
|
+
onChange: _propTypes["default"].func.isRequired
|
|
1886
1885
|
};
|
|
1887
1886
|
|
|
1888
1887
|
var _default = (0, _withStyles["default"])(styles)(Schedule);
|