@iobroker/adapter-react-v5 0.0.3 → 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.
Files changed (48) hide show
  1. package/Components/ColorPicker.js +6 -2
  2. package/Components/ColorPicker.js.map +1 -1
  3. package/Components/ComplexCron.js +1 -1
  4. package/Components/ComplexCron.js.map +1 -1
  5. package/Components/FileBrowser.js +6 -6
  6. package/Components/FileBrowser.js.map +1 -1
  7. package/Components/FileViewer.js +12 -20
  8. package/Components/FileViewer.js.map +1 -1
  9. package/Components/Icon.js +1 -1
  10. package/Components/Icon.js.map +1 -1
  11. package/Components/IconPicker.js +1 -2
  12. package/Components/IconPicker.js.map +1 -1
  13. package/Components/IconSelector.js.map +1 -1
  14. package/Components/Image.js +2 -1
  15. package/Components/Image.js.map +1 -1
  16. package/Components/Loader.js +8 -14
  17. package/Components/Loader.js.map +1 -1
  18. package/Components/Logo.js +8 -8
  19. package/Components/Logo.js.map +1 -1
  20. package/Components/MDUtils.js.map +1 -1
  21. package/Components/ObjectBrowser.js +307 -68
  22. package/Components/ObjectBrowser.js.map +1 -1
  23. package/Components/Schedule.js +1 -2
  24. package/Components/Schedule.js.map +1 -1
  25. package/Components/SelectWithIcon.js +40 -4
  26. package/Components/SelectWithIcon.js.map +1 -1
  27. package/Components/TextWithIcon.js +5 -3
  28. package/Components/TextWithIcon.js.map +1 -1
  29. package/Dialogs/ComplexCron.js +1 -1
  30. package/Dialogs/ComplexCron.js.map +1 -1
  31. package/Dialogs/Confirm.js +1 -1
  32. package/Dialogs/Confirm.js.map +1 -1
  33. package/Dialogs/Cron.js +1 -1
  34. package/Dialogs/Cron.js.map +1 -1
  35. package/Dialogs/Error.js +1 -1
  36. package/Dialogs/Error.js.map +1 -1
  37. package/Dialogs/Message.js +1 -1
  38. package/Dialogs/Message.js.map +1 -1
  39. package/Dialogs/SelectID.js +1 -1
  40. package/Dialogs/SelectID.js.map +1 -1
  41. package/Dialogs/SimpleCron.js +1 -1
  42. package/Dialogs/SimpleCron.js.map +1 -1
  43. package/Dialogs/TextInput.js +11 -11
  44. package/Dialogs/TextInput.js.map +1 -1
  45. package/GenericApp.js +7 -4
  46. package/GenericApp.js.map +1 -1
  47. package/README.md +31 -0
  48. package/package.json +4 -4
@@ -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-2021 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/, '&nbsp;'));\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"}
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/, '&nbsp;'));\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"}