@iobroker/adapter-react-v5 2.1.4 → 2.1.7

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 (85) hide show
  1. package/Components/404.js.map +1 -1
  2. package/Components/ColorPicker.js.map +1 -1
  3. package/Components/ComplexCron.js.map +1 -1
  4. package/Components/FileBrowser.js +1 -1
  5. package/Components/FileBrowser.js.map +1 -1
  6. package/Components/FileViewer.js.map +1 -1
  7. package/Components/Icon.js.map +1 -1
  8. package/Components/IconPicker.js.map +1 -1
  9. package/Components/IconSelector.js.map +1 -1
  10. package/Components/Image.js.map +1 -1
  11. package/Components/Loader.js.map +1 -1
  12. package/Components/Loaders/PT.css +1 -1
  13. package/Components/Loaders/PT.js.map +1 -1
  14. package/Components/Loaders/Vendor.css +1 -1
  15. package/Components/Loaders/Vendor.js.map +1 -1
  16. package/Components/Logo.js +3 -3
  17. package/Components/Logo.js.map +1 -1
  18. package/Components/MDUtils.js.map +1 -1
  19. package/Components/ObjectBrowser.js +23 -28
  20. package/Components/ObjectBrowser.js.map +1 -1
  21. package/Components/Router.js.map +1 -1
  22. package/Components/SaveCloseButtons.js.map +1 -1
  23. package/Components/Schedule.js.map +1 -1
  24. package/Components/SelectWithIcon.js +1 -1
  25. package/Components/SelectWithIcon.js.map +1 -1
  26. package/Components/SimpleCron/cron2text.js.map +1 -1
  27. package/Components/SimpleCron/cronText.js.map +1 -1
  28. package/Components/SimpleCron/index.js.map +1 -1
  29. package/Components/SimpleCron/jquery.cron.locale.js.map +1 -1
  30. package/Components/TabContainer.js.map +1 -1
  31. package/Components/TabContent.js.map +1 -1
  32. package/Components/TabHeader.js.map +1 -1
  33. package/Components/TextWithIcon.js.map +1 -1
  34. package/Components/ToggleThemeMenu.js.map +1 -1
  35. package/Components/TreeTable.js.map +1 -1
  36. package/Components/Utils.js +3 -0
  37. package/Components/Utils.js.map +1 -1
  38. package/Components/copy-to-clipboard.js.map +1 -1
  39. package/Components/loader.css +1 -1
  40. package/Connection.js +3374 -0
  41. package/Connection.js.map +1 -0
  42. package/Dialogs/ComplexCron.js.map +1 -1
  43. package/Dialogs/Confirm.js.map +1 -1
  44. package/Dialogs/Cron.js.map +1 -1
  45. package/Dialogs/Error.js.map +1 -1
  46. package/Dialogs/Message.js.map +1 -1
  47. package/Dialogs/SelectID.js.map +1 -1
  48. package/Dialogs/SimpleCron.js.map +1 -1
  49. package/Dialogs/TextInput.js.map +1 -1
  50. package/GenericApp.js +4 -1
  51. package/GenericApp.js.map +1 -1
  52. package/Prompt.js +21 -0
  53. package/Prompt.js.map +1 -0
  54. package/README.md +5 -1
  55. package/Theme.js +422 -0
  56. package/Theme.js.map +1 -0
  57. package/i18n/de.json +3 -3
  58. package/i18n/en.json +3 -3
  59. package/i18n/es.json +3 -3
  60. package/i18n/fr.json +3 -3
  61. package/i18n/it.json +3 -3
  62. package/i18n/nl.json +3 -3
  63. package/i18n/pl.json +3 -3
  64. package/i18n/pt.json +3 -3
  65. package/i18n/ru.json +3 -3
  66. package/i18n/zh-cn.json +3 -3
  67. package/i18n.js +184 -0
  68. package/i18n.js.map +1 -0
  69. package/icons/IconAdapter.js.map +1 -1
  70. package/icons/IconAlias.js.map +1 -1
  71. package/icons/IconChannel.js.map +1 -1
  72. package/icons/IconClearFilter.js.map +1 -1
  73. package/icons/IconClosed.js.map +1 -1
  74. package/icons/IconCopy.js.map +1 -1
  75. package/icons/IconDevice.js.map +1 -1
  76. package/icons/IconDocument.js.map +1 -1
  77. package/icons/IconExpert.js.map +1 -1
  78. package/icons/IconFx.js.map +1 -1
  79. package/icons/IconInstance.js.map +1 -1
  80. package/icons/IconLogout.js.map +1 -1
  81. package/icons/IconOpen.js.map +1 -1
  82. package/icons/IconState.js.map +1 -1
  83. package/index.css +1 -1
  84. package/package.json +6 -4
  85. package/gulpfile.js +0 -113
@@ -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","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('ra_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('ra_Copy content') }\n </Button> : null }\n\n <Button onClick={() => this.props.onClose()} color=\"primary\">\n <CloseIcon />\n { this.props.t('ra_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"}
1
+ {"version":3,"file":"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"],"sources":["FileViewer.js"],"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('ra_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('ra_Copy content') }\n </Button> : null }\n\n <Button onClick={() => this.props.onClose()} color=\"primary\">\n <CloseIcon />\n { this.props.t('ra_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"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AAGA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA,IAAMA,SAAS,GAAG,SAAZA,SAAY;EAAA,OAAM,UAAAC,gBAAgB;IAAA,OAAI,UAAAC,KAAK;MAAA,oBAAI,gCAAC,gBAAD,eAAsBA,KAAtB;QAA6B,KAAK,EAAC;MAAnC,GAAJ;IAAA,CAAT;EAAA,CAAtB;AAAA,CAAlB;;AAEA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;EAAA,OAAK;IACrBC,MAAM,EAAE;MACJC,MAAM,EAAE,MADJ;MAEJC,SAAS,EAAE,MAFP;MAGJC,QAAQ,EAAE;IAHN,CADa;IAMrBC,OAAO,EAAE;MACLC,SAAS,EAAE;IADN,CANY;IASrBC,QAAQ,EAAE;MACNC,KAAK,EAAE,MADD;MAENN,MAAM,EAAE;IAFF,CATW;IAarBO,GAAG,EAAE;MACDD,KAAK,EAAE,MADN;MAEDN,MAAM,EAAE,kBAFP;MAGDQ,SAAS,EAAE;IAHV;EAbgB,CAAL;AAAA,CAApB;;AAoBO,IAAMC,UAAU,GAAG;EACtBC,MAAM,EAAE,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,EAAsB,MAAtB,EAA8B,KAA9B,CADc;EAEtBC,IAAI,EAAI,CAAC,IAAD,EAAO,MAAP,CAFc;EAGtBC,GAAG,EAAK,CAAC,KAAD,EAAQ,KAAR,EAAe,MAAf,EAAuB,KAAvB,EAA8B,KAA9B;AAHc,CAAnB;AAMP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;IACMC,U;;;;;EACF;AACJ;AACA;EACI,oBAAYjB,KAAZ,EAAmB;IAAA;;IAAA;;IACf,0BAAMA,KAAN;IAEA,MAAKkB,GAAL,GAAWC,kBAAMC,gBAAN,CAAuB,MAAKpB,KAAL,CAAWqB,IAAlC,CAAX;IAEA,MAAKC,KAAL,GAAa;MACTC,IAAI,EAAE,IADG;MAETR,IAAI,EAAE,IAFG;MAGTS,YAAY,EAAEX,UAAU,CAACE,IAAX,CAAgBU,QAAhB,CAAyB,MAAKP,GAA9B,KAAsCL,UAAU,CAACG,GAAX,CAAeS,QAAf,CAAwB,MAAKP,GAA7B;IAH3C,CAAb;;IAMA,IAAI,MAAKI,KAAL,CAAWE,YAAf,EAA6B;MACzBE,KAAK,CAAC,MAAK1B,KAAL,CAAWqB,IAAZ,CAAL,CACKM,IADL,CACU,UAAAC,QAAQ;QAAA,OAAIA,QAAQ,CAACL,IAAT,EAAJ;MAAA,CADlB,EAEKI,IAFL,CAEU,UAAAE,IAAI,EAAI;QACV,IAAIhB,UAAU,CAACG,GAAX,CAAeS,QAAf,CAAwB,MAAKP,GAA7B,CAAJ,EAAuC;UACnC,MAAKY,QAAL,CAAc;YAAEP,IAAI,EAAEM;UAAR,CAAd;QACH,CAFD,MAEO,IAAIhB,UAAU,CAACE,IAAX,CAAgBU,QAAhB,CAAyB,MAAKP,GAA9B,CAAJ,EAAwC;UAC3C,MAAKY,QAAL,CAAc;YAAEf,IAAI,EAAEc;UAAR,CAAd;QACH;MACJ,CARL;IASH;;IArBc;EAsBlB;;;;WAMD,sBAAa;MACT,IAAIhB,UAAU,CAACC,MAAX,CAAkBW,QAAlB,CAA2B,KAAKP,GAAhC,CAAJ,EAA0C;QACtC,oBAAO;UACH,OAAO,EAAG,iBAAAa,CAAC,EAAI;YACXA,CAAC,CAACC,MAAF,CAASC,OAAT,GAAmB,IAAnB;YACAF,CAAC,CAACC,MAAF,CAASE,GAAT,GAAeC,mBAAf;UACH,CAJE;UAKH,SAAS,EAAG,KAAKnC,KAAL,CAAWoC,OAAX,CAAmBzB,GAL5B;UAMH,GAAG,EAAG,KAAKX,KAAL,CAAWqB,IANd;UAOH,GAAG,EAAG,KAAKrB,KAAL,CAAWqB;QAPd,EAAP;MASH,CAVD,MAUO,IAAI,KAAKC,KAAL,CAAWP,IAAX,KAAoB,IAAxB,EAA8B;QACjC,oBAAO,gCAAC,qBAAD;UACH,OAAO,EAAC,UADL;UAEH,SAAS,EAAG,KAAKf,KAAL,CAAWoC,OAAX,CAAmB3B,QAF5B;UAGH,SAAS,MAHN;UAIH,KAAK,EAAG,KAAKa,KAAL,CAAWP,IAJhB;UAKH,UAAU,EAAE;YACRsB,QAAQ,EAAE;UADF;QALT,EAAP;MASH,CAVM,MAUC,IAAI,KAAKf,KAAL,CAAWC,IAAX,KAAoB,IAAxB,EAA8B;QAClC,oBAAO,gCAAC,qBAAD;UACH,OAAO,EAAC,UADL;UAEH,SAAS,EAAG,KAAKvB,KAAL,CAAWoC,OAAX,CAAmB3B,QAF5B;UAGH,KAAK,EAAG,KAAKa,KAAL,CAAWP,IAHhB;UAIH,SAAS,MAJN;UAKH,UAAU,EAAE;YACRsB,QAAQ,EAAE;UADF;QALT,EAAP;MASH;IACJ;;;WAED,kBAAS;MAAA;;MACL,oBAAO,gCAAC,kBAAD;QACH,SAAS,EAAG,KAAKrC,KAAL,CAAWoC,OAAX,CAAmBjC,MAD5B;QAEH,IAAI,EAAG,CAAC,CAAC,KAAKH,KAAL,CAAWqB,IAFjB;QAGH,OAAO,EAAG;UAAA,OAAM,MAAI,CAACrB,KAAL,CAAWsC,OAAX,EAAN;QAAA,CAHP;QAIH,SAAS,MAJN;QAKH,UAAU,EAAE,KAAKtC,KAAL,CAAWuC,UAAX,KAA0BC,SAA1B,GAAsC,KAAKxC,KAAL,CAAWuC,UAAjD,GAA8D,IALvE;QAMH,mBAAgB;MANb,gBAQH,gCAAC,uBAAD;QAAa,EAAE,EAAC;MAAhB,GAAsC,KAAKvC,KAAL,CAAWyC,CAAX,CAAa,aAAb,EAA4B,KAAKzC,KAAL,CAAWqB,IAAvC,CAAtC,CARG,eASH,gCAAC,yBAAD;QAAe,SAAS,EAAG,KAAKrB,KAAL,CAAWoC,OAAX,CAAmB7B;MAA9C,GACM,KAAKmC,UAAL,EADN,CATG,eAYH,gCAAC,yBAAD,QACM,KAAKpB,KAAL,CAAWE,YAAX,gBAA0B,gCAAC,kBAAD;QAAQ,KAAK,EAAC,MAAd;QAAqB,OAAO,EAAE,iBAAAO,CAAC;UAAA,OAAIZ,kBAAMwB,eAAN,CAAsB,MAAI,CAACrB,KAAL,CAAWC,IAAX,IAAmB,MAAI,CAACD,KAAL,CAAWP,IAApD,EAA0DgB,CAA1D,CAAJ;QAAA;MAA/B,gBACxB,gCAAC,UAAD,OADwB,EAEtB,KAAK/B,KAAL,CAAWyC,CAAX,CAAa,iBAAb,CAFsB,CAA1B,GAGU,IAJhB,eAMI,gCAAC,kBAAD;QAAQ,OAAO,EAAE;UAAA,OAAM,MAAI,CAACzC,KAAL,CAAWsC,OAAX,EAAN;QAAA,CAAjB;QAA6C,KAAK,EAAC;MAAnD,gBACI,gCAAC,iBAAD,OADJ,EAEM,KAAKtC,KAAL,CAAWyC,CAAX,CAAa,UAAb,CAFN,CANJ,CAZG,CAAP;IAwBH;;;WA/DD,oCAAkC,CAEjC;;;;EA9BoBG,kBAAMC,S;;AA8F/B5B,UAAU,CAAC6B,SAAX,GAAuB;EACnBL,CAAC,EAAEM,sBAAUC,IADM;EAGnBV,OAAO,EAAES,sBAAUC,IAHA;EAInB3B,IAAI,EAAE0B,sBAAUE,MAAV,CAAiBC,UAJJ;EAKnBX,UAAU,EAAEQ,sBAAUI;AALH,CAAvB;AAQA;;AACA,IAAMC,OAAO,GAAGtD,SAAS,GAAG,4BAAWG,MAAX,EAAmBgB,UAAnB,CAAH,CAAzB;;eACemC,O"}
@@ -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","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"}
1
+ {"version":3,"file":"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"],"sources":["Icon.js"],"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;"],"mappings":"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"}
@@ -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","any","bool","func","isRequired","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 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"}
1
+ {"version":3,"file":"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"],"sources":["IconPicker.js"],"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;"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["IconSelector.js"],"names":["IconSelector","props","state","opened","names","filter","icons","loading","setState","templates","onlyRooms","onlyDevices","rooms","promises","forEach","item","name","lang","en","_id","i","find","_item","_i","icon","template","image","require","e","Promise","resolve","push","Utils","getSvg","then","devices","offset","length","all","isAnyName","map","href","src","parts","split","pop","startsWith","t","loadAllIcons","minWidth","marginRight","marginLeft","target","value","toLowerCase","endAdornment","undefined","width","textAlign","includes","onSelect","onChange","height","borderRadius","Component","propTypes","PropTypes","array","bool","func","isRequired","string"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport DialogTitle from '@mui/material/DialogTitle';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport Button from '@mui/material/Button';\nimport IconButton from '@mui/material/IconButton';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport TextField from '@mui/material/TextField';\nimport Tooltip from '@mui/material/Tooltip';\n\nimport CloseIcon from '@mui/icons-material/Close';\nimport ClearIcon from '@mui/icons-material/Clear';\n\nimport Icon from './Icon';\nimport Utils from './Utils';\n\nimport devices from '../assets/devices/list.json';\nimport rooms from '../assets/rooms/list.json';\n\nclass IconSelector extends Component {\n constructor(props) {\n super(props);\n this.state = {\n opened: false,\n names: [],\n filter: '',\n icons: props.icons || null,\n };\n }\n\n loadAllIcons() {\n if (this.state.loading || this.state.icons) {\n return;\n }\n this.setState({loading: true}, () => {\n const icons = [];\n const names = [];\n\n if (!this.props.icons) {\n let templates = this.props.onlyRooms || (!this.props.onlyRooms && !this.props.onlyDevices) ? rooms : null;\n\n const promises = [];\n if (templates) {\n templates.forEach(item => {\n if (item.name && typeof item.name === 'object') {\n item.name = item.name[this.props.lang] || item.name.en || item._id;\n }\n item.name = item.name || item._id;\n });\n\n templates = templates.filter((item, i) => !templates.find((_item, _i) => i !== _i && _item.icon === item.icon && _item.name === item.name));\n\n templates.forEach((template, i) => {\n let image;\n try {\n image = require(`../assets/rooms/${template.icon}`);\n } catch (e) {\n return Promise.resolve(null);\n }\n\n names[i] = template.name;\n\n promises.push(Utils.getSvg(image)\n .then(icon =>\n icons[i] = icon));\n });\n }\n\n templates = this.props.onlyDevices || (!this.props.onlyRooms && !this.props.onlyDevices) ? devices : null;\n if (templates) {\n const offset = promises.length;\n templates && templates.forEach(item => {\n if (item.name && typeof item.name === 'object') {\n item.name = item.name[this.props.lang] || item.name.en || item._id;\n }\n item.name = item.name || item._id;\n });\n\n templates = templates.filter((item, i) => !templates.find((_item, _i) => i !== _i && _item.icon === item.icon && _item.name === item.name));\n\n templates.forEach((template, i) => {\n let image;\n try {\n image = require(`../assets/devices/${template.icon}`);\n } catch (e) {\n return Promise.resolve(null);\n }\n\n names[i + offset] = template.name;\n\n promises.push(Utils.getSvg(image)\n .then(icon =>\n icons[i + offset] = icon));\n });\n }\n Promise.all(promises)\n .then(() =>\n this.setState({icons, loading: false, names, isAnyName: names.find(i => i)}));\n } else {\n const promises = this.props.icons.map((item, i) => {\n let href;\n if (typeof item === 'object') {\n href = item.icon || item.src || item.href;\n names[i] = typeof item.name === 'object' ? item.name[this.props.lang] || item.name.en || item._id : item.name;\n if (!names[i]) {\n const parts = href.split('.');\n parts.pop();\n names[i] = parts[parts.length - 1];\n }\n } else {\n href = item;\n }\n\n if (href) {\n if (href.startsWith('data:')) {\n icons[i] = href;\n return Promise.resolve();\n } else {\n return Utils.getSvg(href)\n .then(icon =>\n icons[i] = icon);\n }\n } else {\n return Promise.resolve();\n }\n });\n\n Promise.all(promises)\n .then(() =>\n this.setState({icons, loading: false, names, isAnyName: names.find(i => i)}));\n }\n });\n }\n\n render() {\n if (this.state.loading) {\n return <CircularProgress />;\n }\n\n return <>\n <Button\n color=\"grey\"\n variant=\"outlined\"\n title={this.props.t('ra_Select predefined icon')}\n onClick={() => this.setState({opened: true}, () => this.loadAllIcons())} style={{minWidth: 40, marginRight: 8}}\n >...</Button>\n {this.state.opened ? <Dialog onClose={() => this.setState({opened: false})} open={true}>\n <DialogTitle>{this.props.t('ra_Select predefined icon')}\n {this.state.isAnyName ? <TextField\n variant=\"standard\"\n margin=\"dense\"\n style={{marginLeft: 20}}\n value={this.state.filter}\n onChange={e => this.setState({filter: e.target.value.toLowerCase()})}\n placeholder={this.props.t('ra_Filter')}\n InputProps={{\n endAdornment: this.state.filter\n ?\n <IconButton\n size=\"small\"\n onClick={() => this.setState({filter: ''})}>\n <ClearIcon />\n </IconButton>\n :\n undefined,\n }}\n /> : null}\n </DialogTitle>\n <DialogContent>\n <div style={{width: '100%', textAlign: 'center'}}>\n {this.state.icons && this.state.icons.map((icon, i) => {\n if (!this.state.filter || (this.state.names[i] && this.state.names[i].toLowerCase().includes(this.state.filter))) {\n return <Tooltip title={this.state.names[i] || ''} key={i}>\n <IconButton\n onClick={() =>\n this.setState({opened: false}, () =>\n (this.props.onSelect || this.props.onChange)(icon))\n }\n size=\"large\"\n >\n <Icon src={icon} alt={i} style={{width: 32, height: 32, borderRadius: 5}}/>\n </IconButton>\n </Tooltip>;\n } else {\n return null;\n }\n })}\n </div>\n </DialogContent>\n <DialogActions>\n <Button\n color=\"grey\"\n variant=\"contained\"\n onClick={() => this.setState({opened: false})}\n startIcon={<CloseIcon />}\n >\n {this.props.t('ra_Close')}\n </Button>\n </DialogActions>\n </Dialog> : null}\n </>;\n }\n}\n\nIconSelector.propTypes = {\n icons: PropTypes.array,\n onlyRooms: PropTypes.bool,\n onlyDevices: PropTypes.bool,\n onSelect: PropTypes.func, // one of onSelect or onChange are required\n onChange: PropTypes.func,\n t: PropTypes.func.isRequired,\n lang: PropTypes.string.isRequired,\n};\n\n/** @type {typeof IconSelector} */\nexport default IconSelector;"],"file":"IconSelector.js"}
1
+ {"version":3,"file":"IconSelector.js","names":["IconSelector","props","state","opened","names","filter","icons","loading","setState","templates","onlyRooms","onlyDevices","rooms","promises","forEach","item","name","lang","en","_id","i","find","_item","_i","icon","template","image","require","e","Promise","resolve","push","Utils","getSvg","then","devices","offset","length","all","isAnyName","map","href","src","parts","split","pop","startsWith","t","loadAllIcons","minWidth","marginRight","marginLeft","target","value","toLowerCase","endAdornment","undefined","width","textAlign","includes","onSelect","onChange","height","borderRadius","Component","propTypes","PropTypes","array","bool","func","isRequired","string"],"sources":["IconSelector.js"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport DialogTitle from '@mui/material/DialogTitle';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport Button from '@mui/material/Button';\nimport IconButton from '@mui/material/IconButton';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport TextField from '@mui/material/TextField';\nimport Tooltip from '@mui/material/Tooltip';\n\nimport CloseIcon from '@mui/icons-material/Close';\nimport ClearIcon from '@mui/icons-material/Clear';\n\nimport Icon from './Icon';\nimport Utils from './Utils';\n\nimport devices from '../assets/devices/list.json';\nimport rooms from '../assets/rooms/list.json';\n\nclass IconSelector extends Component {\n constructor(props) {\n super(props);\n this.state = {\n opened: false,\n names: [],\n filter: '',\n icons: props.icons || null,\n };\n }\n\n loadAllIcons() {\n if (this.state.loading || this.state.icons) {\n return;\n }\n this.setState({loading: true}, () => {\n const icons = [];\n const names = [];\n\n if (!this.props.icons) {\n let templates = this.props.onlyRooms || (!this.props.onlyRooms && !this.props.onlyDevices) ? rooms : null;\n\n const promises = [];\n if (templates) {\n templates.forEach(item => {\n if (item.name && typeof item.name === 'object') {\n item.name = item.name[this.props.lang] || item.name.en || item._id;\n }\n item.name = item.name || item._id;\n });\n\n templates = templates.filter((item, i) => !templates.find((_item, _i) => i !== _i && _item.icon === item.icon && _item.name === item.name));\n\n templates.forEach((template, i) => {\n let image;\n try {\n image = require(`../assets/rooms/${template.icon}`);\n } catch (e) {\n return Promise.resolve(null);\n }\n\n names[i] = template.name;\n\n promises.push(Utils.getSvg(image)\n .then(icon =>\n icons[i] = icon));\n });\n }\n\n templates = this.props.onlyDevices || (!this.props.onlyRooms && !this.props.onlyDevices) ? devices : null;\n if (templates) {\n const offset = promises.length;\n templates && templates.forEach(item => {\n if (item.name && typeof item.name === 'object') {\n item.name = item.name[this.props.lang] || item.name.en || item._id;\n }\n item.name = item.name || item._id;\n });\n\n templates = templates.filter((item, i) => !templates.find((_item, _i) => i !== _i && _item.icon === item.icon && _item.name === item.name));\n\n templates.forEach((template, i) => {\n let image;\n try {\n image = require(`../assets/devices/${template.icon}`);\n } catch (e) {\n return Promise.resolve(null);\n }\n\n names[i + offset] = template.name;\n\n promises.push(Utils.getSvg(image)\n .then(icon =>\n icons[i + offset] = icon));\n });\n }\n Promise.all(promises)\n .then(() =>\n this.setState({icons, loading: false, names, isAnyName: names.find(i => i)}));\n } else {\n const promises = this.props.icons.map((item, i) => {\n let href;\n if (typeof item === 'object') {\n href = item.icon || item.src || item.href;\n names[i] = typeof item.name === 'object' ? item.name[this.props.lang] || item.name.en || item._id : item.name;\n if (!names[i]) {\n const parts = href.split('.');\n parts.pop();\n names[i] = parts[parts.length - 1];\n }\n } else {\n href = item;\n }\n\n if (href) {\n if (href.startsWith('data:')) {\n icons[i] = href;\n return Promise.resolve();\n } else {\n return Utils.getSvg(href)\n .then(icon =>\n icons[i] = icon);\n }\n } else {\n return Promise.resolve();\n }\n });\n\n Promise.all(promises)\n .then(() =>\n this.setState({icons, loading: false, names, isAnyName: names.find(i => i)}));\n }\n });\n }\n\n render() {\n if (this.state.loading) {\n return <CircularProgress />;\n }\n\n return <>\n <Button\n color=\"grey\"\n variant=\"outlined\"\n title={this.props.t('ra_Select predefined icon')}\n onClick={() => this.setState({opened: true}, () => this.loadAllIcons())} style={{minWidth: 40, marginRight: 8}}\n >...</Button>\n {this.state.opened ? <Dialog onClose={() => this.setState({opened: false})} open={true}>\n <DialogTitle>{this.props.t('ra_Select predefined icon')}\n {this.state.isAnyName ? <TextField\n variant=\"standard\"\n margin=\"dense\"\n style={{marginLeft: 20}}\n value={this.state.filter}\n onChange={e => this.setState({filter: e.target.value.toLowerCase()})}\n placeholder={this.props.t('ra_Filter')}\n InputProps={{\n endAdornment: this.state.filter\n ?\n <IconButton\n size=\"small\"\n onClick={() => this.setState({filter: ''})}>\n <ClearIcon />\n </IconButton>\n :\n undefined,\n }}\n /> : null}\n </DialogTitle>\n <DialogContent>\n <div style={{width: '100%', textAlign: 'center'}}>\n {this.state.icons && this.state.icons.map((icon, i) => {\n if (!this.state.filter || (this.state.names[i] && this.state.names[i].toLowerCase().includes(this.state.filter))) {\n return <Tooltip title={this.state.names[i] || ''} key={i}>\n <IconButton\n onClick={() =>\n this.setState({opened: false}, () =>\n (this.props.onSelect || this.props.onChange)(icon))\n }\n size=\"large\"\n >\n <Icon src={icon} alt={i} style={{width: 32, height: 32, borderRadius: 5}}/>\n </IconButton>\n </Tooltip>;\n } else {\n return null;\n }\n })}\n </div>\n </DialogContent>\n <DialogActions>\n <Button\n color=\"grey\"\n variant=\"contained\"\n onClick={() => this.setState({opened: false})}\n startIcon={<CloseIcon />}\n >\n {this.props.t('ra_Close')}\n </Button>\n </DialogActions>\n </Dialog> : null}\n </>;\n }\n}\n\nIconSelector.propTypes = {\n icons: PropTypes.array,\n onlyRooms: PropTypes.bool,\n onlyDevices: PropTypes.bool,\n onSelect: PropTypes.func, // one of onSelect or onChange are required\n onChange: PropTypes.func,\n t: PropTypes.func.isRequired,\n lang: PropTypes.string.isRequired,\n};\n\n/** @type {typeof IconSelector} */\nexport default IconSelector;"],"mappings":"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"}
@@ -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","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"}
1
+ {"version":3,"file":"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"],"sources":["Image.js"],"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;"],"mappings":"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"}
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"Loader.js","names":["styles","theme","Loader","size","props","themeType","width","height","left","borderWidth","top","bottom","React","Component","propTypes","PropTypes","number","string","_export"],"sources":["Loader.js"],"sourcesContent":["/**\n * Copyright 2018-2022 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;"],"mappings":";;;;;;;;;AAMA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;EAAA,OAAK,EAAL;AAAA,CAApB;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMC,M;;;;;;;;;;;;;WACF,kBAAS;MACL,IAAMC,IAAI,GAAG,KAAKC,KAAL,CAAWD,IAAX,IAAmB,GAAhC;MACA,IAAMF,KAAK,GAAG,KAAKG,KAAL,CAAWC,SAAX,IAAwB,KAAKD,KAAL,CAAWH,KAAnC,IAA4C,OAA1D;MACA,oBAAO;QAAK,SAAS,EAAE,+BAA+BA;MAA/C,gBACH;QAAK,SAAS,EAAC,UAAf;QAA0B,KAAK,EAAE;UAACK,KAAK,EAAEH,IAAR;UAAcI,MAAM,EAAEJ;QAAtB;MAAjC,gBACI;QAAK,SAAS,EAAE,8BAA8BF,KAA9C;QAAqD,KAAK,EAAE;UAACO,IAAI,EAAE;QAAP;MAA5D,EADJ,eAEI;QAAK,SAAS,EAAE,8BAA8BP,KAA9C;QAAqD,KAAK,EAAE;UAACO,IAAI,EAAE;QAAP;MAA5D,EAFJ,eAGI;QACI,SAAS,EAAE,iCAAiCP,KAAjC,GAAyC,oBADxD;QAEI,KAAK,EAAE;UAACQ,WAAW,EAAEN,IAAI,GAAG;QAArB;MAFX,EAHJ,eAOI;QAAK,SAAS,EAAE,sCAAsCF;MAAtD,EAPJ,eAQI;QAAK,SAAS,EAAE,0CAA0CA,KAA1D;QAAiE,KAAK,EAAE;UAACS,GAAG,EAAE;QAAN;MAAxE,EARJ,eASI;QAAK,SAAS,EAAE,0CAA0CT,KAA1D;QAAiE,KAAK,EAAE;UAACU,MAAM,EAAE;QAAT;MAAxE,EATJ,CADG,eAYH;QAAK,SAAS,EAAE,yCAAyCV,KAAzD;QACK,KAAK,EAAE;UAACK,KAAK,EAAEH,IAAI,GAAG,EAAf;UAAmBI,MAAM,EAAEJ,IAAI,GAAG;QAAlC;MADZ,EAZG,CAAP;IAgBH;;;;EApBgBS,kBAAMC,S;;AAuB3BX,MAAM,CAACY,SAAP,GAAmB;EACfX,IAAI,EAAEY,sBAAUC,MADD;EAEfX,SAAS,EAAEU,sBAAUE;AAFN,CAAnB;AAKA;;AACA,IAAMC,OAAO,GAAG,4BAAWlB,MAAX,EAAmBE,MAAnB,CAAhB;;eACegB,O"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2021 ioBroker GmbH
2
+ * Copyright 2021-2022 ioBroker GmbH
3
3
  *
4
4
  * MIT License
5
5
  *
@@ -1 +1 @@
1
- {"version":3,"sources":["Loaders/PT.js"],"names":["LoaderPT","props","size","theme","themeType","width","height","React","Component","propTypes","PropTypes","number","string","_export"],"mappings":";;;;;;;;;AAMA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACMA,Q;;;;;AACF;AACJ;AACA;AACI,oBAAYC,KAAZ,EAAmB;AAAA;;AAAA;;AACf,8BAAMA,KAAN;AACA,UAAKC,IAAL,GAAY,MAAKD,KAAL,CAAWC,IAAX,IAAmB,GAA/B;AAFe;AAGlB;;;;WAED,kBAAS;AACL,UAAMC,KAAK,GAAG,KAAKF,KAAL,CAAWG,SAAX,IAAwB,KAAKH,KAAL,CAAWE,KAAnC,IAA4C,OAA1D;AACA,0BAAO;AAAK,QAAA,SAAS,EAAE,kCAAkCA;AAAlD,sBACH;AAAK,QAAA,SAAS,EAAC,aAAf;AAA6B,QAAA,KAAK,EAAE;AAACE,UAAAA,KAAK,EAAE,KAAKH,IAAb;AAAmBI,UAAAA,MAAM,EAAE,KAAKJ;AAAhC;AAApC,sBACI;AAAK,QAAA,KAAK,EAAE;AAACG,UAAAA,KAAK,EAAE,GAAR;AAAaC,UAAAA,MAAM,EAAE;AAArB;AAAZ,sBACI;AAAK,QAAA,SAAS,EAAC;AAAf,QADJ,eAEI;AAAK,QAAA,SAAS,EAAC;AAAf,QAFJ,eAGI;AAAK,QAAA,SAAS,EAAC;AAAf,QAHJ,CADJ,CADG,CAAP;AASH;;;;EApBkBC,kBAAMC,S;;AAuB7BR,QAAQ,CAACS,SAAT,GAAqB;AACjBP,EAAAA,IAAI,EAAEQ,sBAAUC,MADC;AAEjBP,EAAAA,SAAS,EAAEM,sBAAUE;AAFJ,CAArB;AAKA;;AACA,IAAMC,OAAO,GAAGb,QAAhB;eACea,O","sourcesContent":["/**\n * Copyright 2021 ioBroker GmbH\n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport './PT.css'\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 LoaderPT extends React.Component {\n /**\n * @param {LoaderProps} props\n */\n constructor(props) {\n super(props);\n this.size = this.props.size || 200;\n }\n\n render() {\n const theme = this.props.themeType || this.props.theme || 'light';\n return <div className={'pt-logo-back logo-background-' + theme}>\n <div className=\"pt-logo-div\" style={{width: this.size, height: this.size}}>\n <div style={{width: 200, height: 200}}>\n <div className=\"pt-loader-blue pt-loader-block\"/>\n <div className=\"pt-loader-green pt-loader-block\"/>\n <div className=\"pt-loader-red pt-loader-block\"/>\n </div>\n </div>\n </div>;\n }\n}\n\nLoaderPT.propTypes = {\n size: PropTypes.number,\n themeType: PropTypes.string\n};\n\n/** @type {typeof LoaderPT} */\nconst _export = LoaderPT;\nexport default _export;"],"file":"PT.js"}
1
+ {"version":3,"file":"PT.js","names":["LoaderPT","props","size","theme","themeType","width","height","React","Component","propTypes","PropTypes","number","string","_export"],"sources":["Loaders/PT.js"],"sourcesContent":["/**\n * Copyright 2021-2022 ioBroker GmbH\n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport './PT.css'\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 LoaderPT extends React.Component {\n /**\n * @param {LoaderProps} props\n */\n constructor(props) {\n super(props);\n this.size = this.props.size || 200;\n }\n\n render() {\n const theme = this.props.themeType || this.props.theme || 'light';\n return <div className={'pt-logo-back logo-background-' + theme}>\n <div className=\"pt-logo-div\" style={{width: this.size, height: this.size}}>\n <div style={{width: 200, height: 200}}>\n <div className=\"pt-loader-blue pt-loader-block\"/>\n <div className=\"pt-loader-green pt-loader-block\"/>\n <div className=\"pt-loader-red pt-loader-block\"/>\n </div>\n </div>\n </div>;\n }\n}\n\nLoaderPT.propTypes = {\n size: PropTypes.number,\n themeType: PropTypes.string\n};\n\n/** @type {typeof LoaderPT} */\nconst _export = LoaderPT;\nexport default _export;"],"mappings":";;;;;;;;;AAMA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACMA,Q;;;;;EACF;AACJ;AACA;EACI,kBAAYC,KAAZ,EAAmB;IAAA;;IAAA;;IACf,0BAAMA,KAAN;IACA,MAAKC,IAAL,GAAY,MAAKD,KAAL,CAAWC,IAAX,IAAmB,GAA/B;IAFe;EAGlB;;;;WAED,kBAAS;MACL,IAAMC,KAAK,GAAG,KAAKF,KAAL,CAAWG,SAAX,IAAwB,KAAKH,KAAL,CAAWE,KAAnC,IAA4C,OAA1D;MACA,oBAAO;QAAK,SAAS,EAAE,kCAAkCA;MAAlD,gBACH;QAAK,SAAS,EAAC,aAAf;QAA6B,KAAK,EAAE;UAACE,KAAK,EAAE,KAAKH,IAAb;UAAmBI,MAAM,EAAE,KAAKJ;QAAhC;MAApC,gBACI;QAAK,KAAK,EAAE;UAACG,KAAK,EAAE,GAAR;UAAaC,MAAM,EAAE;QAArB;MAAZ,gBACI;QAAK,SAAS,EAAC;MAAf,EADJ,eAEI;QAAK,SAAS,EAAC;MAAf,EAFJ,eAGI;QAAK,SAAS,EAAC;MAAf,EAHJ,CADJ,CADG,CAAP;IASH;;;;EApBkBC,kBAAMC,S;;AAuB7BR,QAAQ,CAACS,SAAT,GAAqB;EACjBP,IAAI,EAAEQ,sBAAUC,MADC;EAEjBP,SAAS,EAAEM,sBAAUE;AAFJ,CAArB;AAKA;;AACA,IAAMC,OAAO,GAAGb,QAAhB;eACea,O"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2021 ioBroker GmbH
2
+ * Copyright 2021-2022 ioBroker GmbH
3
3
  *
4
4
  * MIT License
5
5
  *
@@ -1 +1 @@
1
- {"version":3,"sources":["Loaders/Vendor.js"],"names":["LoaderVendor","props","size","theme","themeType","display","flexDirection","height","width","margin","flexGrow","React","Component","propTypes","PropTypes","number","string","_export"],"mappings":";;;;;;;;;AAMA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACMA,Y;;;;;AACF;AACJ;AACA;AACI,wBAAYC,KAAZ,EAAmB;AAAA;;AAAA;;AACf,8BAAMA,KAAN;AACA,UAAKC,IAAL,GAAY,MAAKD,KAAL,CAAWC,IAAX,IAAmB,GAA/B;AAFe;AAGlB;;;;WAED,kBAAS;AACL,UAAMC,KAAK,GAAG,KAAKF,KAAL,CAAWG,SAAX,IAAwB,KAAKH,KAAL,CAAWE,KAAnC,IAA4C,OAA1D;AACA,0BAAO;AAAK,QAAA,SAAS,EAAE,sCAAsCA,KAAtD;AAA6D,QAAA,KAAK,EAAE;AACvEE,UAAAA,OAAO,EAAE,MAD8D;AAEvEC,UAAAA,aAAa,EAAE,QAFwD;AAGvEC,UAAAA,MAAM,EAAE,MAH+D;AAIvEC,UAAAA,KAAK,EAAE,KAJgE;AAKvEC,UAAAA,MAAM,EAAE;AAL+D;AAApE,sBAOH;AAAK,QAAA,KAAK,EAAE;AAACC,UAAAA,QAAQ,EAAE;AAAX;AAAZ,QAPG,eAQH,gCAAC,4BAAD;AAAkB,QAAA,KAAK,EAAC,WAAxB;AAAoC,QAAA,IAAI,EAAE,GAA1C;AAA+C,QAAA,SAAS,EAAE;AAA1D,QARG,eASH;AAAK,QAAA,KAAK,EAAE;AAACA,UAAAA,QAAQ,EAAE;AAAX;AAAZ,QATG,CAAP;AAWH;;;;EAtBsBC,kBAAMC,S;;AAyBjCZ,YAAY,CAACa,SAAb,GAAyB;AACrBX,EAAAA,IAAI,EAAEY,sBAAUC,MADK;AAErBX,EAAAA,SAAS,EAAEU,sBAAUE;AAFA,CAAzB;AAKA;;AACA,IAAMC,OAAO,GAAGjB,YAAhB;eACeiB,O","sourcesContent":["/**\n * Copyright 2021 ioBroker GmbH\n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport './Vendor.css'\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 LoaderVendor extends React.Component {\n /**\n * @param {LoaderProps} props\n */\n constructor(props) {\n super(props);\n this.size = this.props.size || 200;\n }\n\n render() {\n const theme = this.props.themeType || this.props.theme || 'light';\n return <div className={'vendor-logo-back logo-background-' + theme} style={{\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n width: '10%',\n margin: 'auto'\n }}>\n <div style={{flexGrow: 1}}/>\n <CircularProgress color=\"secondary\" size={200} thickness={5}/>\n <div style={{flexGrow: 1}}/>\n </div>;\n }\n}\n\nLoaderVendor.propTypes = {\n size: PropTypes.number,\n themeType: PropTypes.string\n};\n\n/** @type {typeof LoaderVendor} */\nconst _export = LoaderVendor;\nexport default _export;\n"],"file":"Vendor.js"}
1
+ {"version":3,"file":"Vendor.js","names":["LoaderVendor","props","size","theme","themeType","display","flexDirection","height","width","margin","flexGrow","React","Component","propTypes","PropTypes","number","string","_export"],"sources":["Loaders/Vendor.js"],"sourcesContent":["/**\n * Copyright 2021-2022 ioBroker GmbH\n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport './Vendor.css'\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 LoaderVendor extends React.Component {\n /**\n * @param {LoaderProps} props\n */\n constructor(props) {\n super(props);\n this.size = this.props.size || 200;\n }\n\n render() {\n const theme = this.props.themeType || this.props.theme || 'light';\n return <div className={'vendor-logo-back logo-background-' + theme} style={{\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n width: '10%',\n margin: 'auto'\n }}>\n <div style={{flexGrow: 1}}/>\n <CircularProgress color=\"secondary\" size={200} thickness={5}/>\n <div style={{flexGrow: 1}}/>\n </div>;\n }\n}\n\nLoaderVendor.propTypes = {\n size: PropTypes.number,\n themeType: PropTypes.string\n};\n\n/** @type {typeof LoaderVendor} */\nconst _export = LoaderVendor;\nexport default _export;\n"],"mappings":";;;;;;;;;AAMA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACMA,Y;;;;;EACF;AACJ;AACA;EACI,sBAAYC,KAAZ,EAAmB;IAAA;;IAAA;;IACf,0BAAMA,KAAN;IACA,MAAKC,IAAL,GAAY,MAAKD,KAAL,CAAWC,IAAX,IAAmB,GAA/B;IAFe;EAGlB;;;;WAED,kBAAS;MACL,IAAMC,KAAK,GAAG,KAAKF,KAAL,CAAWG,SAAX,IAAwB,KAAKH,KAAL,CAAWE,KAAnC,IAA4C,OAA1D;MACA,oBAAO;QAAK,SAAS,EAAE,sCAAsCA,KAAtD;QAA6D,KAAK,EAAE;UACvEE,OAAO,EAAE,MAD8D;UAEvEC,aAAa,EAAE,QAFwD;UAGvEC,MAAM,EAAE,MAH+D;UAIvEC,KAAK,EAAE,KAJgE;UAKvEC,MAAM,EAAE;QAL+D;MAApE,gBAOH;QAAK,KAAK,EAAE;UAACC,QAAQ,EAAE;QAAX;MAAZ,EAPG,eAQH,gCAAC,4BAAD;QAAkB,KAAK,EAAC,WAAxB;QAAoC,IAAI,EAAE,GAA1C;QAA+C,SAAS,EAAE;MAA1D,EARG,eASH;QAAK,KAAK,EAAE;UAACA,QAAQ,EAAE;QAAX;MAAZ,EATG,CAAP;IAWH;;;;EAtBsBC,kBAAMC,S;;AAyBjCZ,YAAY,CAACa,SAAb,GAAyB;EACrBX,IAAI,EAAEY,sBAAUC,MADK;EAErBX,SAAS,EAAEU,sBAAUE;AAFA,CAAzB;AAKA;;AACA,IAAMC,OAAO,GAAGjB,YAAhB;eACeiB,O"}
@@ -121,7 +121,7 @@ var Logo = /*#__PURE__*/function (_React$Component) {
121
121
  key: "download",
122
122
  value: function download() {
123
123
  var result = {
124
- _id: 'system.adapter.' + this.props.common.name + '.' + this.props.instance,
124
+ _id: "system.adapter.".concat(this.props.common.name, ".").concat(this.props.instance),
125
125
  common: JSON.parse(JSON.stringify(this.props.common)),
126
126
  "native": this.props["native"]
127
127
  }; // remove unimportant information
@@ -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, this.props.onLoad ? /*#__PURE__*/_react["default"].createElement(_Fab["default"], {
179
+ }, /*#__PURE__*/_react["default"].createElement(_Help["default"], null)) : null, /*#__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)) : null, /*#__PURE__*/_react["default"].createElement(_Fab["default"], {
188
+ }, /*#__PURE__*/_react["default"].createElement(_VerticalAlignTop["default"], null)), /*#__PURE__*/_react["default"].createElement(_Fab["default"], {
189
189
  size: "small",
190
190
  color: "primary",
191
191
  "aria-label": "Save config",
@@ -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 && 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
+ {"version":3,"file":"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"],"sources":["Logo.js"],"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 <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>\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;"],"mappings":"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"}
@@ -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-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"}
1
+ {"version":3,"file":"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"],"sources":["MDUtils.js"],"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;"],"mappings":"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"}