@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.
- package/Components/404.js.map +1 -1
- package/Components/ColorPicker.js.map +1 -1
- package/Components/ComplexCron.js.map +1 -1
- package/Components/FileBrowser.js +1 -1
- package/Components/FileBrowser.js.map +1 -1
- package/Components/FileViewer.js.map +1 -1
- package/Components/Icon.js.map +1 -1
- package/Components/IconPicker.js.map +1 -1
- package/Components/IconSelector.js.map +1 -1
- package/Components/Image.js.map +1 -1
- package/Components/Loader.js.map +1 -1
- package/Components/Loaders/PT.css +1 -1
- package/Components/Loaders/PT.js.map +1 -1
- package/Components/Loaders/Vendor.css +1 -1
- package/Components/Loaders/Vendor.js.map +1 -1
- package/Components/Logo.js +3 -3
- package/Components/Logo.js.map +1 -1
- package/Components/MDUtils.js.map +1 -1
- package/Components/ObjectBrowser.js +23 -28
- package/Components/ObjectBrowser.js.map +1 -1
- package/Components/Router.js.map +1 -1
- package/Components/SaveCloseButtons.js.map +1 -1
- package/Components/Schedule.js.map +1 -1
- package/Components/SelectWithIcon.js +1 -1
- package/Components/SelectWithIcon.js.map +1 -1
- package/Components/SimpleCron/cron2text.js.map +1 -1
- package/Components/SimpleCron/cronText.js.map +1 -1
- package/Components/SimpleCron/index.js.map +1 -1
- package/Components/SimpleCron/jquery.cron.locale.js.map +1 -1
- package/Components/TabContainer.js.map +1 -1
- package/Components/TabContent.js.map +1 -1
- package/Components/TabHeader.js.map +1 -1
- package/Components/TextWithIcon.js.map +1 -1
- package/Components/ToggleThemeMenu.js.map +1 -1
- package/Components/TreeTable.js.map +1 -1
- package/Components/Utils.js +3 -0
- package/Components/Utils.js.map +1 -1
- package/Components/copy-to-clipboard.js.map +1 -1
- package/Components/loader.css +1 -1
- package/Connection.js +3374 -0
- package/Connection.js.map +1 -0
- package/Dialogs/ComplexCron.js.map +1 -1
- package/Dialogs/Confirm.js.map +1 -1
- package/Dialogs/Cron.js.map +1 -1
- package/Dialogs/Error.js.map +1 -1
- package/Dialogs/Message.js.map +1 -1
- package/Dialogs/SelectID.js.map +1 -1
- package/Dialogs/SimpleCron.js.map +1 -1
- package/Dialogs/TextInput.js.map +1 -1
- package/GenericApp.js +4 -1
- package/GenericApp.js.map +1 -1
- package/Prompt.js +21 -0
- package/Prompt.js.map +1 -0
- package/README.md +5 -1
- package/Theme.js +422 -0
- package/Theme.js.map +1 -0
- package/i18n/de.json +3 -3
- package/i18n/en.json +3 -3
- package/i18n/es.json +3 -3
- package/i18n/fr.json +3 -3
- package/i18n/it.json +3 -3
- package/i18n/nl.json +3 -3
- package/i18n/pl.json +3 -3
- package/i18n/pt.json +3 -3
- package/i18n/ru.json +3 -3
- package/i18n/zh-cn.json +3 -3
- package/i18n.js +184 -0
- package/i18n.js.map +1 -0
- package/icons/IconAdapter.js.map +1 -1
- package/icons/IconAlias.js.map +1 -1
- package/icons/IconChannel.js.map +1 -1
- package/icons/IconClearFilter.js.map +1 -1
- package/icons/IconClosed.js.map +1 -1
- package/icons/IconCopy.js.map +1 -1
- package/icons/IconDevice.js.map +1 -1
- package/icons/IconDocument.js.map +1 -1
- package/icons/IconExpert.js.map +1 -1
- package/icons/IconFx.js.map +1 -1
- package/icons/IconInstance.js.map +1 -1
- package/icons/IconLogout.js.map +1 -1
- package/icons/IconOpen.js.map +1 -1
- package/icons/IconState.js.map +1 -1
- package/index.css +1 -1
- package/package.json +6 -4
- package/gulpfile.js +0 -113
package/Dialogs/Error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"Error.js","names":["styles","theme","titleBackground","titleColor","DialogError","props","onClose","handleOk","classes","root","title","I18n","t","text","React","Component","propTypes","PropTypes","func","isRequired","string","oneOfType","element","icon","object","_export"],"sources":["Error.js"],"sourcesContent":["/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\n// please do not delete React, as without it other projects could not be compiled: ReferenceError: React is not defined\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\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 DialogContentText from '@mui/material/DialogContentText';\nimport DialogTitle from '@mui/material/DialogTitle';\n\nimport IconCheck from '@mui/icons-material/Check';\n\nimport I18n from '../i18n';\n\nconst styles = theme => ({\n titleBackground: {\n\n },\n titleColor: {\n\n }\n});\n\n/**\n * @typedef {object} DialogErrorProps\n * @property {string} [key] The key to identify this component.\n * @property {string} [title] The dialog title; default: Error (translated)\n * @property {string | JSX.Element} text The dialog text.\n * @property {() => void} [onClose] Close handler.\n * @property {{titleBackground: string; titleColor: string}} classes The styling class names.\n *\n * @extends {React.Component<DialogErrorProps>}\n */\nclass DialogError extends React.Component {\n handleOk() {\n this.props.onClose && this.props.onClose();\n };\n\n render() {\n return <Dialog\n open={true}\n maxWidth=\"sm\"\n fullWidth={true}\n onClose={() => this.handleOk()}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n <DialogTitle className={this.props.classes.titleBackground}\n classes={{root: this.props.classes.titleColor}}\n id=\"alert-dialog-title\">{this.props.title || I18n.t('ra_Error')}</DialogTitle>\n <DialogContent>\n <DialogContentText id=\"alert-dialog-description\">\n {this.props.text || I18n.t('ra_Unknown error!')}\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" onClick={() => this.handleOk()} color=\"primary\" autoFocus startIcon={<IconCheck />}>{I18n.t('ra_Ok')}</Button>\n </DialogActions>\n </Dialog>;\n }\n}\n\nDialogError.propTypes = {\n onClose: PropTypes.func.isRequired,\n title: PropTypes.string,\n text: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element\n ]),\n icon: PropTypes.object\n};\n\n/** @type {typeof DialogError} */\nconst _export = withStyles(styles)(DialogError);\nexport default _export;\n"],"mappings":";;;;;;;;;AAOA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;EAAA,OAAK;IACrBC,eAAe,EAAE,EADI;IAIrBC,UAAU,EAAE;EAJS,CAAL;AAAA,CAApB;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMC,W;;;;;;;;;;;;;WACF,oBAAW;MACP,KAAKC,KAAL,CAAWC,OAAX,IAAsB,KAAKD,KAAL,CAAWC,OAAX,EAAtB;IACH;;;WAED,kBAAS;MAAA;;MACL,oBAAO,gCAAC,kBAAD;QACH,IAAI,EAAE,IADH;QAEH,QAAQ,EAAC,IAFN;QAGH,SAAS,EAAE,IAHR;QAIH,OAAO,EAAE;UAAA,OAAM,KAAI,CAACC,QAAL,EAAN;QAAA,CAJN;QAKH,mBAAgB,oBALb;QAMH,oBAAiB;MANd,gBAQH,gCAAC,uBAAD;QAAa,SAAS,EAAE,KAAKF,KAAL,CAAWG,OAAX,CAAmBN,eAA3C;QACa,OAAO,EAAE;UAACO,IAAI,EAAE,KAAKJ,KAAL,CAAWG,OAAX,CAAmBL;QAA1B,CADtB;QAEa,EAAE,EAAC;MAFhB,GAEsC,KAAKE,KAAL,CAAWK,KAAX,IAAoBC,iBAAKC,CAAL,CAAO,UAAP,CAF1D,CARG,eAWH,gCAAC,yBAAD,qBACI,gCAAC,6BAAD;QAAmB,EAAE,EAAC;MAAtB,GACK,KAAKP,KAAL,CAAWQ,IAAX,IAAmBF,iBAAKC,CAAL,CAAO,mBAAP,CADxB,CADJ,CAXG,eAgBH,gCAAC,yBAAD,qBACI,gCAAC,kBAAD;QAAQ,OAAO,EAAC,WAAhB;QAA4B,OAAO,EAAE;UAAA,OAAM,KAAI,CAACL,QAAL,EAAN;QAAA,CAArC;QAA4D,KAAK,EAAC,SAAlE;QAA4E,SAAS,MAArF;QAAsF,SAAS,eAAE,gCAAC,iBAAD;MAAjG,GAAiHI,iBAAKC,CAAL,CAAO,OAAP,CAAjH,CADJ,CAhBG,CAAP;IAoBH;;;;EA1BqBE,kBAAMC,S;;AA6BhCX,WAAW,CAACY,SAAZ,GAAwB;EACpBV,OAAO,EAAEW,sBAAUC,IAAV,CAAeC,UADJ;EAEpBT,KAAK,EAAEO,sBAAUG,MAFG;EAGpBP,IAAI,EAAEI,sBAAUI,SAAV,CAAoB,CACtBJ,sBAAUG,MADY,EAEtBH,sBAAUK,OAFY,CAApB,CAHc;EAOpBC,IAAI,EAAEN,sBAAUO;AAPI,CAAxB;AAUA;;AACA,IAAMC,OAAO,GAAG,4BAAWzB,MAAX,EAAmBI,WAAnB,CAAhB;;eACeqB,O"}
|
package/Dialogs/Message.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"Message.js","names":["DialogMessage","props","onClose","handleOk","title","I18n","t","text","React","Component","propTypes","PropTypes","func","isRequired","string","icon","object"],"sources":["Message.js"],"sourcesContent":["/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\n\n// please do not delete React, as without it other projects could not be compiled: ReferenceError: React is not defined\nimport React from 'react';\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 DialogContentText from '@mui/material/DialogContentText';\nimport DialogTitle from '@mui/material/DialogTitle';\n\nimport IconClose from '@mui/icons-material/Close';\n\nimport I18n from '../i18n';\n\n/**\n * @typedef {object} DialogMessageProps\n * @property {string} [key] The key to identify this component.\n * @property {string} [title] The dialog title; default: Message (translated)\n * @property {string} text The dialog text.\n * @property {() => void} [onClose] Close handler.\n *\n * @extends {React.Component<DialogMessageProps>}\n */\nclass DialogMessage extends React.Component {\n\n handleOk() {\n this.props.onClose && this.props.onClose();\n };\n\n render() {\n return <Dialog\n open={true}\n maxWidth=\"sm\"\n fullWidth={true}\n onClose={() => this.handleOk()}\n aria-labelledby=\"message-dialog-title\"\n aria-describedby=\"message-dialog-description\"\n >\n <DialogTitle id=\"message-dialog-title\">{this.props.title || I18n.t('ra_Message')}</DialogTitle>\n <DialogContent>\n <DialogContentText id=\"message-dialog-description\">\n {this.props.text}\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" onClick={() => this.handleOk()} color=\"primary\" autoFocus startIcon={<IconClose />}>{I18n.t('ra_Close')}</Button>\n </DialogActions>\n </Dialog>;\n }\n}\n\nDialogMessage.propTypes = {\n onClose: PropTypes.func.isRequired,\n title: PropTypes.string,\n text: PropTypes.string,\n icon: PropTypes.object\n};\n\nexport default DialogMessage;\n"],"mappings":";;;;;;;;;AAQA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACMA,a;;;;;;;;;;;;;WAEF,oBAAW;MACP,KAAKC,KAAL,CAAWC,OAAX,IAAsB,KAAKD,KAAL,CAAWC,OAAX,EAAtB;IACH;;;WAED,kBAAS;MAAA;;MACL,oBAAO,gCAAC,kBAAD;QACH,IAAI,EAAE,IADH;QAEH,QAAQ,EAAC,IAFN;QAGH,SAAS,EAAE,IAHR;QAIH,OAAO,EAAE;UAAA,OAAM,KAAI,CAACC,QAAL,EAAN;QAAA,CAJN;QAKH,mBAAgB,sBALb;QAMH,oBAAiB;MANd,gBAQH,gCAAC,uBAAD;QAAa,EAAE,EAAC;MAAhB,GAAwC,KAAKF,KAAL,CAAWG,KAAX,IAAoBC,iBAAKC,CAAL,CAAO,YAAP,CAA5D,CARG,eASH,gCAAC,yBAAD,qBACI,gCAAC,6BAAD;QAAmB,EAAE,EAAC;MAAtB,GACK,KAAKL,KAAL,CAAWM,IADhB,CADJ,CATG,eAcH,gCAAC,yBAAD,qBACI,gCAAC,kBAAD;QAAQ,OAAO,EAAC,WAAhB;QAA4B,OAAO,EAAE;UAAA,OAAM,KAAI,CAACJ,QAAL,EAAN;QAAA,CAArC;QAA4D,KAAK,EAAC,SAAlE;QAA4E,SAAS,MAArF;QAAsF,SAAS,eAAE,gCAAC,iBAAD;MAAjG,GAAiHE,iBAAKC,CAAL,CAAO,UAAP,CAAjH,CADJ,CAdG,CAAP;IAkBH;;;;EAzBuBE,kBAAMC,S;;AA4BlCT,aAAa,CAACU,SAAd,GAA0B;EACtBR,OAAO,EAAES,sBAAUC,IAAV,CAAeC,UADF;EAEtBT,KAAK,EAAEO,sBAAUG,MAFK;EAGtBP,IAAI,EAAEI,sBAAUG,MAHM;EAItBC,IAAI,EAAEJ,sBAAUK;AAJM,CAA1B;eAOehB,a"}
|
package/Dialogs/SelectID.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["SelectID.js"],"names":["styles","theme","headerID","fontWeight","fontStyle","dialog","height","dialogMobile","padding","width","maxWidth","maxHeight","content","overflow","contentMobile","titleRoot","whiteSpace","display","textOverflow","SelectID","props","dialogName","filters","window","localStorage","getItem","JSON","parse","e","selected","filter","id","state","name","isMobile","innerWidth","onClose","onOk","multiSelect","title","length","I18n","t","classes","paper","Utils","clsx","root","foldersFirst","imagePrefix","prefix","showExpertButton","undefined","columns","types","lang","getLanguage","socket","notEditable","themeName","themeType","customFilter","filterConfig","setItem","stringify","isDouble","setState","handleOk","filterFunc","ok","handleCancel","cancel","React","Component","propTypes","PropTypes","string","object","bool","func","isRequired","isFloatComma","dateFormat","oneOfType","array","statesOnly","_export"],"mappings":"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","sourcesContent":["/**\n * Copyright 2018-2021 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\n// please do not delete React, as without it other projects could not be compiled: ReferenceError: React is not defined\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\n\nimport Button from '@mui/material/Button';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogActions from '@mui/material/DialogActions';\nimport Dialog from '@mui/material/Dialog';\n\nimport IconCancel from '@mui/icons-material/Cancel';\nimport IconOk from '@mui/icons-material/Check';\n\nimport Utils from '../Components/Utils';\nimport I18n from '../i18n';\nimport ObjectBrowser from '../Components/ObjectBrowser';\n\nconst styles = theme => ({\n headerID: {\n fontWeight: 'bold',\n fontStyle: 'italic'\n },\n dialog: {\n height: '95%'\n },\n dialogMobile: {\n padding: 4,\n width: '100%',\n maxWidth: '100%',\n maxHeight: 'calc(100% - 16px)',\n height: '100%'\n },\n content: {\n height: '100%',\n overflow: 'hidden'\n },\n contentMobile: {\n padding: '8px 4px'\n },\n titleRoot: {\n whiteSpace: 'nowrap',\n width: 'calc(100% - 72px)',\n overflow: 'hidden',\n display: 'inline-block',\n textOverflow: 'ellipsis',\n }\n});\n\n/**\n * @typedef {object} SelectIDProps\n * @property {string} [key] The key to identify this component.\n * @property {string} [dialogName] The internal name of the dialog; default: \"default\"\n * @property {string} [title] The dialog title; default: Please select object ID... (translated)\n * @property {boolean} [multiSelect] Set to true to allow the selection of multiple IDs.\n * @property {boolean} [foldersFirst] Show folders before any leaves.\n * @property {string} [imagePrefix] Prefix (default: '.')\n * @property {boolean} [showExpertButton] Show the expert button?\n * @property {import('../Components/types').ObjectBrowserColumn[]} [columns] Columns to display; default: 'name', 'type', 'role', 'room', 'func', 'val'\n * @property {import('../Components/types').ObjectBrowserType[]} [types] Object types to show; default: 'state' only\n * @property {ioBroker.Languages} [lang] The language.\n * @property {import('../Connection').default} socket The socket connection.\n * @property {boolean} [notEditable] Can't objects be edited? (default: true)\n * @property {string} [themeName] Theme name.\n * @property {string} [themeType] Theme type.\n * @property {import('../Components/types').ObjectBrowserCustomFilter} [customFilter] Custom filter.\n * @property {string | string[]} [selected] The selected IDs.\n * @property {string} [ok] The ok button text; default: OK (translated)\n * @property {string} [cancel] The cancel button text; default: Cancel (translated)\n * @property {() => void} onClose Close handler that is always called when the dialog is closed.\n * @property {(selected: string | string[] | undefined, name: string) => void} onOk Handler that is called when the user presses OK.\n * @property {{headerID: string; dialog: string; content: string}} [classes] The styling class names.\n *\n * @extends {React.Component<SelectIDProps>}\n */\nclass SelectID extends React.Component {\n /**\n * @param {SelectIDProps} props\n */\n constructor(props) {\n super(props);\n this.dialogName = this.props.dialogName || 'default';\n this.dialogName = 'SelectID.' + this.dialogName;\n\n this.filters = window.localStorage.getItem(this.dialogName) || '{}';\n\n try {\n this.filters = JSON.parse(this.filters);\n } catch (e) {\n this.filters = {};\n }\n\n let selected = this.props.selected || [];\n if (typeof selected !== 'object') {\n selected = [selected];\n }\n selected = selected.filter(id => id);\n\n this.state = {\n selected,\n name: '',\n isMobile: window.innerWidth < 800\n };\n }\n\n handleCancel() {\n this.props.onClose();\n };\n\n handleOk() {\n this.props.onOk(this.props.multiSelect ? this.state.selected : this.state.selected[0] || '', this.state.name);\n this.props.onClose();\n };\n\n render() {\n let title;\n if (this.state.name || this.state.selected.length) {\n if (this.state.selected.length === 1) {\n title = [\n <span key=\"selected\">{ I18n.t('ra_Selected') } </span>,\n <span key=\"id\" className={ this.props.classes.headerID }>{\n (this.state.name || this.state.selected) + (this.state.name ? ' [' + this.state.selected + ']' : '')\n }</span>\n ];\n } else {\n title = [\n <span key=\"selected\">{ I18n.t('ra_Selected') } </span>,\n <span key=\"id\" className={ this.props.classes.headerID }>{\n I18n.t('%s items', this.state.selected.length)\n }</span>\n ];\n }\n } else {\n title = this.props.title || I18n.t('ra_Please select object ID...');\n }\n\n return <Dialog\n onClose={() => {}}\n maxWidth={false}\n classes={{paper: Utils.clsx(this.props.classes.dialog, this.props.classes.dialogMobile)}}\n fullWidth={true}\n open={true}\n aria-labelledby=\"selectid-dialog-title\"\n >\n <DialogTitle id=\"selectid-dialog-title\" classes={{root: this.props.classes.titleRoot}}>{ title }</DialogTitle>\n <DialogContent className={Utils.clsx(this.props.classes.content, this.props.classes.contentMobile)}>\n <ObjectBrowser\n foldersFirst={ this.props.foldersFirst }\n imagePrefix={ this.props.imagePrefix || this.props.prefix } // prefix is for back compatibility\n defaultFilters={ this.filters }\n dialogName={this.dialogName}\n showExpertButton={ this.props.showExpertButton !== undefined ? this.props.showExpertButton : true }\n style={ {width: '100%', height: '100%'} }\n columns={ this.props.columns || ['name', 'type', 'role', 'room', 'func', 'val'] }\n types={ this.props.types || ['state'] }\n t={ I18n.t }\n lang={ this.props.lang || I18n.getLanguage() }\n socket={ this.props.socket }\n selected={ this.state.selected }\n multiSelect={ this.props.multiSelect }\n notEditable={ this.props.notEditable === undefined ? true : this.props.notEditable }\n name={ this.state.name }\n themeName={ this.props.themeName }\n themeType={ this.props.themeType }\n customFilter={ this.props.customFilter }\n onFilterChanged={ filterConfig => {\n this.filters = filterConfig;\n window.localStorage.setItem(this.dialogName, JSON.stringify(filterConfig));\n } }\n onSelect={ (selected, name, isDouble) => {\n if (JSON.stringify(selected) !== JSON.stringify(this.state.selected)) {\n this.setState({selected, name}, () =>\n isDouble && this.handleOk());\n } else if (isDouble) {\n this.handleOk();\n }\n } }\n filterFunc={this.props.filterFunc}\n />\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" onClick={ () => this.handleOk() } startIcon={<IconOk />} disabled={ !this.state.selected.length } color=\"primary\">{ this.props.ok || I18n.t('ra_Ok') }</Button>\n <Button color=\"grey\" variant=\"contained\" onClick={ () => this.handleCancel() } startIcon={<IconCancel />}>{ this.props.cancel || I18n.t('ra_Cancel') }</Button>\n </DialogActions>\n </Dialog>;\n }\n}\n\nSelectID.propTypes = {\n dialogName: PropTypes.string, // where to store settings in localStorage\n classes: PropTypes.object,\n notEditable: PropTypes.bool,\n onClose: PropTypes.func.isRequired,\n onOk: PropTypes.func.isRequired,\n title: PropTypes.string,\n lang: PropTypes.string,\n foldersFirst: PropTypes.bool,\n isFloatComma: PropTypes.bool,\n dateFormat: PropTypes.string,\n selected: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.array\n ]),\n customFilter: PropTypes.object, // optional {common: {custom: true}} or {common: {custom: 'sql.0'}}\n statesOnly: PropTypes.bool,\n socket: PropTypes.object.isRequired,\n cancel: PropTypes.string,\n imagePrefix: PropTypes.string,\n ok: PropTypes.string,\n themeName: PropTypes.string,\n themeType: PropTypes.string,\n showExpertButton: PropTypes.bool,\n multiSelect: PropTypes.bool,\n types: PropTypes.array, // optional ['state', 'instance', 'channel']\n columns: PropTypes.array, // optional ['name', 'type', 'role', 'room', 'func', 'val', 'buttons']\n\n filterFunc: PropTypes.func, // function to filter out all unneccessary objects. It cannot be used together with \"types\"\n // Example for function: `obj => obj.common && obj.common.type === 'boolean'` to show only boolean states\n};\n\n/** @type {typeof SelectID} */\nconst _export = withStyles(styles)(SelectID);\nexport default _export;\n"],"file":"SelectID.js"}
|
|
1
|
+
{"version":3,"file":"SelectID.js","names":["styles","theme","headerID","fontWeight","fontStyle","dialog","height","dialogMobile","padding","width","maxWidth","maxHeight","content","overflow","contentMobile","titleRoot","whiteSpace","display","textOverflow","SelectID","props","dialogName","filters","window","localStorage","getItem","JSON","parse","e","selected","filter","id","state","name","isMobile","innerWidth","onClose","onOk","multiSelect","title","length","I18n","t","classes","paper","Utils","clsx","root","foldersFirst","imagePrefix","prefix","showExpertButton","undefined","columns","types","lang","getLanguage","socket","notEditable","themeName","themeType","customFilter","filterConfig","setItem","stringify","isDouble","setState","handleOk","filterFunc","ok","handleCancel","cancel","React","Component","propTypes","PropTypes","string","object","bool","func","isRequired","isFloatComma","dateFormat","oneOfType","array","statesOnly","_export"],"sources":["SelectID.js"],"sourcesContent":["/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\n// please do not delete React, as without it other projects could not be compiled: ReferenceError: React is not defined\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\n\nimport Button from '@mui/material/Button';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogActions from '@mui/material/DialogActions';\nimport Dialog from '@mui/material/Dialog';\n\nimport IconCancel from '@mui/icons-material/Cancel';\nimport IconOk from '@mui/icons-material/Check';\n\nimport Utils from '../Components/Utils';\nimport I18n from '../i18n';\nimport ObjectBrowser from '../Components/ObjectBrowser';\n\nconst styles = theme => ({\n headerID: {\n fontWeight: 'bold',\n fontStyle: 'italic'\n },\n dialog: {\n height: '95%'\n },\n dialogMobile: {\n padding: 4,\n width: '100%',\n maxWidth: '100%',\n maxHeight: 'calc(100% - 16px)',\n height: '100%'\n },\n content: {\n height: '100%',\n overflow: 'hidden'\n },\n contentMobile: {\n padding: '8px 4px'\n },\n titleRoot: {\n whiteSpace: 'nowrap',\n width: 'calc(100% - 72px)',\n overflow: 'hidden',\n display: 'inline-block',\n textOverflow: 'ellipsis',\n }\n});\n\n/**\n * @typedef {object} SelectIDProps\n * @property {string} [key] The key to identify this component.\n * @property {string} [dialogName] The internal name of the dialog; default: \"default\"\n * @property {string} [title] The dialog title; default: Please select object ID... (translated)\n * @property {boolean} [multiSelect] Set to true to allow the selection of multiple IDs.\n * @property {boolean} [foldersFirst] Show folders before any leaves.\n * @property {string} [imagePrefix] Prefix (default: '.')\n * @property {boolean} [showExpertButton] Show the expert button?\n * @property {import('../Components/types').ObjectBrowserColumn[]} [columns] Columns to display; default: 'name', 'type', 'role', 'room', 'func', 'val'\n * @property {import('../Components/types').ObjectBrowserType[]} [types] Object types to show; default: 'state' only\n * @property {ioBroker.Languages} [lang] The language.\n * @property {import('../Connection').default} socket The socket connection.\n * @property {boolean} [notEditable] Can't objects be edited? (default: true)\n * @property {string} [themeName] Theme name.\n * @property {string} [themeType] Theme type.\n * @property {import('../Components/types').ObjectBrowserCustomFilter} [customFilter] Custom filter.\n * @property {string | string[]} [selected] The selected IDs.\n * @property {string} [ok] The ok button text; default: OK (translated)\n * @property {string} [cancel] The cancel button text; default: Cancel (translated)\n * @property {() => void} onClose Close handler that is always called when the dialog is closed.\n * @property {(selected: string | string[] | undefined, name: string) => void} onOk Handler that is called when the user presses OK.\n * @property {{headerID: string; dialog: string; content: string}} [classes] The styling class names.\n *\n * @extends {React.Component<SelectIDProps>}\n */\nclass SelectID extends React.Component {\n /**\n * @param {SelectIDProps} props\n */\n constructor(props) {\n super(props);\n this.dialogName = this.props.dialogName || 'default';\n this.dialogName = 'SelectID.' + this.dialogName;\n\n this.filters = window.localStorage.getItem(this.dialogName) || '{}';\n\n try {\n this.filters = JSON.parse(this.filters);\n } catch (e) {\n this.filters = {};\n }\n\n let selected = this.props.selected || [];\n if (typeof selected !== 'object') {\n selected = [selected];\n }\n selected = selected.filter(id => id);\n\n this.state = {\n selected,\n name: '',\n isMobile: window.innerWidth < 800\n };\n }\n\n handleCancel() {\n this.props.onClose();\n };\n\n handleOk() {\n this.props.onOk(this.props.multiSelect ? this.state.selected : this.state.selected[0] || '', this.state.name);\n this.props.onClose();\n };\n\n render() {\n let title;\n if (this.state.name || this.state.selected.length) {\n if (this.state.selected.length === 1) {\n title = [\n <span key=\"selected\">{ I18n.t('ra_Selected') } </span>,\n <span key=\"id\" className={ this.props.classes.headerID }>{\n (this.state.name || this.state.selected) + (this.state.name ? ' [' + this.state.selected + ']' : '')\n }</span>\n ];\n } else {\n title = [\n <span key=\"selected\">{ I18n.t('ra_Selected') } </span>,\n <span key=\"id\" className={ this.props.classes.headerID }>{\n I18n.t('%s items', this.state.selected.length)\n }</span>\n ];\n }\n } else {\n title = this.props.title || I18n.t('ra_Please select object ID...');\n }\n\n return <Dialog\n onClose={() => {}}\n maxWidth={false}\n classes={{paper: Utils.clsx(this.props.classes.dialog, this.props.classes.dialogMobile)}}\n fullWidth={true}\n open={true}\n aria-labelledby=\"selectid-dialog-title\"\n >\n <DialogTitle id=\"selectid-dialog-title\" classes={{root: this.props.classes.titleRoot}}>{ title }</DialogTitle>\n <DialogContent className={Utils.clsx(this.props.classes.content, this.props.classes.contentMobile)}>\n <ObjectBrowser\n foldersFirst={ this.props.foldersFirst }\n imagePrefix={ this.props.imagePrefix || this.props.prefix } // prefix is for back compatibility\n defaultFilters={ this.filters }\n dialogName={this.dialogName}\n showExpertButton={ this.props.showExpertButton !== undefined ? this.props.showExpertButton : true }\n style={ {width: '100%', height: '100%'} }\n columns={ this.props.columns || ['name', 'type', 'role', 'room', 'func', 'val'] }\n types={ this.props.types || ['state'] }\n t={ I18n.t }\n lang={ this.props.lang || I18n.getLanguage() }\n socket={ this.props.socket }\n selected={ this.state.selected }\n multiSelect={ this.props.multiSelect }\n notEditable={ this.props.notEditable === undefined ? true : this.props.notEditable }\n name={ this.state.name }\n themeName={ this.props.themeName }\n themeType={ this.props.themeType }\n customFilter={ this.props.customFilter }\n onFilterChanged={ filterConfig => {\n this.filters = filterConfig;\n window.localStorage.setItem(this.dialogName, JSON.stringify(filterConfig));\n } }\n onSelect={ (selected, name, isDouble) => {\n if (JSON.stringify(selected) !== JSON.stringify(this.state.selected)) {\n this.setState({selected, name}, () =>\n isDouble && this.handleOk());\n } else if (isDouble) {\n this.handleOk();\n }\n } }\n filterFunc={this.props.filterFunc}\n />\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" onClick={ () => this.handleOk() } startIcon={<IconOk />} disabled={ !this.state.selected.length } color=\"primary\">{ this.props.ok || I18n.t('ra_Ok') }</Button>\n <Button color=\"grey\" variant=\"contained\" onClick={ () => this.handleCancel() } startIcon={<IconCancel />}>{ this.props.cancel || I18n.t('ra_Cancel') }</Button>\n </DialogActions>\n </Dialog>;\n }\n}\n\nSelectID.propTypes = {\n dialogName: PropTypes.string, // where to store settings in localStorage\n classes: PropTypes.object,\n notEditable: PropTypes.bool,\n onClose: PropTypes.func.isRequired,\n onOk: PropTypes.func.isRequired,\n title: PropTypes.string,\n lang: PropTypes.string,\n foldersFirst: PropTypes.bool,\n isFloatComma: PropTypes.bool,\n dateFormat: PropTypes.string,\n selected: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.array\n ]),\n customFilter: PropTypes.object, // optional {common: {custom: true}} or {common: {custom: 'sql.0'}}\n statesOnly: PropTypes.bool,\n socket: PropTypes.object.isRequired,\n cancel: PropTypes.string,\n imagePrefix: PropTypes.string,\n ok: PropTypes.string,\n themeName: PropTypes.string,\n themeType: PropTypes.string,\n showExpertButton: PropTypes.bool,\n multiSelect: PropTypes.bool,\n types: PropTypes.array, // optional ['state', 'instance', 'channel']\n columns: PropTypes.array, // optional ['name', 'type', 'role', 'room', 'func', 'val', 'buttons']\n\n filterFunc: PropTypes.func, // function to filter out all unneccessary objects. It cannot be used together with \"types\"\n // Example for function: `obj => obj.common && obj.common.type === 'boolean'` to show only boolean states\n};\n\n/** @type {typeof SelectID} */\nconst _export = withStyles(styles)(SelectID);\nexport default _export;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"SimpleCron.js","names":["styles","theme","headerID","fontWeight","fontStyle","radio","display","dialogPaper","height","DialogSimpleCron","props","cron","replace","trim","state","onClose","onOk","paper","classes","title","I18n","t","overflow","setState","getLanguage","handleOk","ok","handleCancel","cancel","React","Component","propTypes","PropTypes","object","func","isRequired","string","simple","bool","language"],"sources":["SimpleCron.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\nimport Button from '@mui/material/Button';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogActions from '@mui/material/DialogActions';\nimport Dialog from '@mui/material/Dialog';\n\nimport IconOk from '@mui/icons-material/Check';\nimport IconCancel from '@mui/icons-material/Cancel';\n\nimport SimpleCron from '../Components/SimpleCron';\n\nimport I18n from '../i18n';\n\n// Generate cron expression\n\nconst styles = theme => ({\n headerID: {\n fontWeight: 'bold',\n fontStyle: 'italic'\n },\n radio: {\n display: 'inline-block'\n },\n dialogPaper: {\n height: 'calc(100% - 96px)'\n },\n});\n\nclass DialogSimpleCron extends React.Component {\n constructor(props) {\n super(props);\n\n let cron;\n if (this.props.cron && typeof this.props.cron === 'string' && this.props.cron.replace(/^[\"']/, '')[0] !== '{') {\n cron = this.props.cron.replace(/['\"]/g, '').trim();\n } else {\n cron = this.props.cron || '{}';\n if (typeof cron === 'string') {\n cron = cron.replace(/^[\"']/, '').replace(/[\"']\\n?$/, '');\n }\n }\n\n this.state = {\n cron,\n };\n }\n\n handleCancel() {\n this.props.onClose();\n }\n\n handleOk() {\n this.props.onOk(this.state.cron);\n this.props.onClose();\n }\n\n render() {\n return <Dialog\n onClose={() => {}}\n maxWidth=\"md\"\n fullWidth={true}\n classes={{paper: this.props.classes.dialogPaper}}\n open={true}\n aria-labelledby=\"cron-dialog-title\"\n >\n <DialogTitle id=\"cron-dialog-title\">{this.props.title || I18n.t('ra_Define CRON...')}</DialogTitle>\n <DialogContent style={{height: '100%', overflow: 'hidden'}}>\n <SimpleCron\n cronExpression={this.state.cron}\n onChange={cron => this.setState({cron})}\n language={I18n.getLanguage()}\n />\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" onClick={() => this.handleOk()} color=\"primary\" startIcon={<IconOk />}>{this.props.ok || I18n.t('ra_Ok')}</Button>\n <Button variant=\"contained\" onClick={() => this.handleCancel()} color=\"grey\" startIcon={<IconCancel />}>{this.props.cancel || I18n.t('ra_Cancel')}</Button>\n </DialogActions>\n </Dialog>;\n }\n}\n\nDialogSimpleCron.propTypes = {\n classes: PropTypes.object,\n onClose: PropTypes.func.isRequired,\n onOk: PropTypes.func.isRequired,\n title: PropTypes.string,\n cron: PropTypes.string,\n cancel: PropTypes.string,\n ok: PropTypes.string,\n simple: PropTypes.bool,\n language: PropTypes.string\n\n};\n\nexport default withStyles(styles)(DialogSimpleCron);\n"],"mappings":"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"}
|
package/Dialogs/TextInput.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"TextInput.js","names":["withWidth","WrappedComponent","props","TextInput","state","text","input","value","error","onClose","titleText","promptText","labelText","type","e","charCode","verify","target","rule","setState","applyText","I18n","t","cancelText","React","Component","propTypes","PropTypes","func","isRequired","string","replace","_export"],"sources":["TextInput.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogTitle from '@mui/material/DialogTitle';\n\nimport I18n from '../i18n';\n\nimport IconClose from '@mui/icons-material/Close';\nimport IconCheck from '@mui/icons-material/Check';\n\n// FIXME checkout https://mui.com/components/use-media-query/#migrating-from-withwidth\nconst withWidth = () => WrappedComponent => props => <WrappedComponent {...props} width=\"xs\" />;\n\n/**\n * @typedef {object} TextInputProps\n * @property {string} [key] The key to identify this component.\n * @property {(text: string | null) => void} onClose The dialog close callback.\n * @property {string} titleText The title text.\n * @property {string} [promptText] Prompt text (default: empty).\n * @property {string} [labelText] Label text (default: empty).\n * @property {string} cancelText The text of the cancel button.\n * @property {string} applyText The text of the apply button.\n * @property {(text: string) => string} [verify] The verification callback. Return a non-empty string if there was an error.\n * @property {(text: string) => string} [rule] The text replacement callback.\n * @property {'text' | 'number' | 'password' | 'email'} [type] The type of the textbox (default: text).\n * @property {string} [input] The input when opening the dialog.\n *\n * @extends {React.Component<TextInputProps>}\n */\nclass TextInput extends React.Component {\n /**\n * @param {Readonly<TextInputProps>} props\n */\n constructor(props) {\n super(props);\n\n this.state = {\n text: this.props.input || this.props.value || '', // input is deprectaed\n error: ''\n }\n }\n render() {\n return <Dialog open={true} onClose={() => this.props.onClose(null)} aria-labelledby=\"form-dialog-title\">\n <DialogTitle id=\"form-dialog-title\">{this.props.titleText}</DialogTitle>\n <DialogContent>\n <DialogContentText>\n {this.props.promptText}\n </DialogContentText>\n <TextField\n variant=\"standard\"\n autoFocus\n margin=\"dense\"\n error={!!this.state.error}\n title={this.state.error}\n value={this.state.text}\n label={this.props.labelText || ''}\n type={this.props.type || 'text'}\n onKeyPress={e => e.charCode === 13 && this.state.text && this.props.onClose(this.state.text)}\n onChange={e => {\n let error = '';\n if (this.props.verify) {\n error = !this.props.verify(e.target.value);\n }\n\n if (this.props.rule) {\n this.setState({text: this.props.rule(e.target.value), error});\n } else {\n this.setState({text: e.target.value, error});\n }\n }}\n fullWidth\n />\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" disabled={!this.state.text || this.state.error} onClick={() => this.props.onClose(this.state.text)}\n color=\"primary\" startIcon={<IconCheck />}>{this.props.applyText || I18n.t('ra_Ok')}</Button>\n <Button color=\"grey\" variant=\"contained\" onClick={() => this.props.onClose(null)} startIcon={<IconClose />}>{this.props.cancelText || I18n.t('ra_Cancel')}</Button>\n </DialogActions>\n </Dialog>;\n }\n}\n\nTextInput.propTypes = {\n onClose: PropTypes.func.isRequired,\n titleText: PropTypes.string.isRequired,\n promptText: PropTypes.string,\n labelText: PropTypes.string,\n cancelText: PropTypes.string,\n applyText: PropTypes.string,\n verify: PropTypes.func,\n replace: PropTypes.func,\n type: PropTypes.string, // text, number, password, email\n value: PropTypes.string,\n};\n\n/** @type {typeof TextInput} */\nconst _export = withWidth()(TextInput);\nexport default _export;"],"mappings":"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"}
|
package/GenericApp.js
CHANGED
|
@@ -722,7 +722,10 @@ var GenericApp = /*#__PURE__*/function (_Router) {
|
|
|
722
722
|
value: function renderToast() {
|
|
723
723
|
var _this8 = this;
|
|
724
724
|
|
|
725
|
-
if (!this.state.toast)
|
|
725
|
+
if (!this.state.toast) {
|
|
726
|
+
return null;
|
|
727
|
+
}
|
|
728
|
+
|
|
726
729
|
return /*#__PURE__*/_react["default"].createElement(_Snackbar["default"], {
|
|
727
730
|
anchorOrigin: {
|
|
728
731
|
vertical: 'bottom',
|
package/GenericApp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["GenericApp.js"],"names":["window","localStorage","getItem","setItem","GenericApp","props","settings","ConnectionClass","Connection","isWeb","io","location","port","SocketClient","e","id","obj","socket","systemLang","common","language","I18n","setLanguage","_systemConfig","expertMode","setState","getExpertMode","message","data","newThemeName","Utils","getThemeName","setThemeName","theme","createTheme","themeName","themeType","getThemeType","onThemeChange","onThemeChanged","onToggleExpertMode","console","warn","JSON","stringify","resizeTimer","clearTimeout","setTimeout","width","getWidth","query","search","replace","args","trim","split","filter","t","forEach","b","parts","length","instance","undefined","parseInt","slice","tmp","pathname","adapterName","instanceId","newReact","Router","getLocation","tab","themeInstance","state","selectedTab","selectedTabNum","errorText","changed","connected","loaded","isConfigurationError","toast","bottomButtons","translations","require","Object","keys","lang","assign","setTranslations","savedNative","encryptedFields","sentryDSN","name","doNotLoadAllObjects","onProgress","progress","PROGRESS","CONNECTING","READY","onReady","objects","scripts","subscribeObject","onSystemConfigChanged","then","getSystemConfig","_secret","secret","getObject","instanceObj","waitPromise","sentryEnabled","diag","version","disableDataReporting","host","sentryStarted","Sentry","init","dsn","release","integrations","SentryIntegrations","Dedupe","sentryInited","uuidObj","uuid","configureScope","scope","setUser","Promise","resolve","onPrepareLoad","encryptedNative","parse","onConnectionReady","onError","err","error","showError","addEventListener","onResize","onReceiveMessage","removeEventListener","palette","mode","sessionStorage","value","result","i","String","fromCharCode","charCodeAt","selectTab","index","attr","encrypt","decrypt","includes","push","_socket","emit","doc","rows","item","webExtendable","map","reject","ip","_host","IPs4","address","family","IPs6","hardware","networkInterfaces","eth","inter","isClose","oldObj","_oldObj","a","hasOwnProperty","onPrepareSave","setObject","globalThis","onClose","vertical","horizontal","classes","close","native","isChanged","newNative","getIsChanged","onSave","attrs","shift","Error","_updateNativeValue","cb","text","renderError","renderToast","renderSaveCloseButtons","SIZES","xs","sm","md","lg","xl","innerWidth","reverse","widthComputed","find","key","parent","$iframeDialog","postMessage","propTypes","PropTypes","string","func","object","array","bool"],"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 Connection, {PROGRESS} from './Connection';\nimport PropTypes from 'prop-types';\nimport * as Sentry from '@sentry/browser';\nimport * as SentryIntegrations from '@sentry/integrations';\n\nimport DialogError from './Dialogs/Error';\nimport Snackbar from '@mui/material/Snackbar';\nimport IconButton from '@mui/material/IconButton';\n\nimport IconClose from '@mui/icons-material/Close';\n\nimport printPrompt from './Prompt';\nimport theme from './Theme';\nimport Loader from './Components/Loader';\nimport Router from './Components/Router';\nimport Utils from './Components/Utils';\nimport SaveCloseButtons from './Components/SaveCloseButtons';\nimport I18n from './i18n';\n\nimport './index.css';\n\nif (!window.localStorage) {\n window.localStorage = {\n getItem: () => null,\n setItem: () => null,\n };\n}\n\n/**\n * @extends {Router<import('./types').GenericAppProps, import('./types').GenericAppState>}\n */\nclass GenericApp extends Router {\n /**\n * @param {import('./types').GenericAppProps} props\n * @param {import('./types').GenericAppSettings | undefined} settings\n */\n constructor(props, settings) {\n const ConnectionClass = props.Connection || settings.Connection || Connection;\n\n // Remove `!Connection.isWeb() && window.adapterName !== 'material'` when iobroker.socket will support native ws\n if (!ConnectionClass.isWeb() && window.io && window.location.port === '3000') {\n try {\n const io = new window.SocketClient();\n delete window.io;\n window.io = io;\n } catch (e) {\n // ignore\n }\n }\n\n super(props);\n\n printPrompt();\n\n let query = (window.location.search || '').replace(/^\\?/, '').replace(/#.*$/, '');\n let args = {};\n query.trim().split('&').filter(t => t.trim()).forEach(b => {\n const parts = b.split('=');\n args[parts[0]] = parts.length === 2 ? parts[1] : true;\n if (args[parts[0]] === 'true') {\n args[parts[0]] = true;\n } else if (args[parts[0]] === 'false') {\n args[parts[0]] = false;\n }\n });\n\n // extract instance from URL\n this.instance = args.instance !== undefined ? parseInt(args.instance, 10) || 0 : (parseInt(window.location.search.slice(1), 10) || 0);\n // extract adapter name from URL\n const tmp = window.location.pathname.split('/');\n this.adapterName = settings?.adapterName || props.adapterName || window.adapterName || tmp[tmp.length - 2] || 'iot';\n this.instanceId = `system.adapter.${this.adapterName}.${this.instance}`;\n this.newReact = args.newReact === true; // it is admin5\n\n const location = Router.getLocation();\n location.tab = location.tab || window.localStorage.getItem(this.adapterName + '-adapter') || '';\n\n const themeInstance = this.createTheme();\n\n this.state = {\n selectedTab: window.localStorage.getItem(this.adapterName + '-adapter') || '',\n selectedTabNum: -1,\n native: {},\n errorText: '',\n changed: false,\n connected: false,\n loaded: false,\n isConfigurationError: '',\n expertMode: false,\n toast: '',\n theme: themeInstance,\n themeName: this.getThemeName(themeInstance),\n themeType: this.getThemeType(themeInstance),\n bottomButtons: (settings && settings.bottomButtons) === false ? false : ((props && props.bottomButtons) === false ? false : true),\n width: GenericApp.getWidth(),\n };\n\n // init translations\n const translations = {\n 'en': require('./i18n/en.json'),\n 'de': require('./i18n/de.json'),\n 'ru': require('./i18n/ru.json'),\n 'pt': require('./i18n/pt.json'),\n 'nl': require('./i18n/nl.json'),\n 'fr': require('./i18n/fr.json'),\n 'it': require('./i18n/it.json'),\n 'es': require('./i18n/es.json'),\n 'pl': require('./i18n/pl.json'),\n 'zh-cn': require('./i18n/zh-cn.json'),\n };\n\n // merge together\n if (settings && settings.translations) {\n Object.keys(settings.translations).forEach(lang => translations[lang] = Object.assign(translations[lang], settings.translations[lang]));\n } else if (props.translations) {\n Object.keys(props.translations).forEach(lang => translations[lang] = Object.assign(translations[lang], props.translations[lang]));\n }\n\n I18n.setTranslations(translations);\n\n this.savedNative = {}; // to detect if the config changed\n\n this.encryptedFields = props.encryptedFields || settings?.encryptedFields || [];\n\n this.sentryDSN = (settings && settings.sentryDSN) || props.sentryDSN;\n\n this.socket = new ConnectionClass({\n ...(props?.socket || settings?.socket),\n name: this.adapterName,\n doNotLoadAllObjects: settings?.doNotLoadAllObjects,\n onProgress: progress => {\n if (progress === PROGRESS.CONNECTING) {\n this.setState({connected: false});\n } else if (progress === PROGRESS.READY) {\n this.setState({connected: true});\n } else {\n this.setState({connected: true});\n }\n },\n onReady: (objects, scripts) => {\n I18n.setLanguage(this.socket.systemLang);\n\n // subscribe because of language and expert mode\n this.socket.subscribeObject('system.config', this.onSystemConfigChanged)\n .then(() => this.getSystemConfig())\n .then(obj => {\n this._secret = (typeof obj !== 'undefined' && obj.native && obj.native.secret) || 'Zgfr56gFe87jJOM';\n this._systemConfig = obj?.common || {};\n return this.socket.getObject(this.instanceId);\n })\n .then(instanceObj => {\n let waitPromise;\n\n const sentryEnabled =\n this._systemConfig.diag !== 'none' &&\n instanceObj &&\n instanceObj.common &&\n instanceObj.common.name &&\n instanceObj.common.version &&\n !instanceObj.common.disableDataReporting &&\n window.location.host !== 'localhost:3000';\n\n // activate sentry plugin\n if (!this.sentryStarted && this.sentryDSN && sentryEnabled) {\n this.sentryStarted = true;\n\n Sentry.init({\n dsn: this.sentryDSN,\n release: `iobroker.${instanceObj.common.name}@${instanceObj.common.version}`,\n integrations: [\n new SentryIntegrations.Dedupe()\n ]\n });\n }\n\n // read UUID and init sentry with it.\n // for backward compatibility it will be processed separately from above logic: some adapters could still have this.sentryDSN as undefined\n if (!this.sentryInited && sentryEnabled) {\n this.sentryInited = true;\n\n waitPromise = this.socket.getObject('system.meta.uuid')\n .then(uuidObj => {\n if (uuidObj && uuidObj.native && uuidObj.native.uuid) {\n Sentry.configureScope(scope =>\n scope.setUser({id: uuidObj.native.uuid}));\n }\n });\n }\n\n waitPromise = waitPromise || Promise.resolve();\n\n waitPromise\n .then(() => {\n if (instanceObj) {\n this.common = instanceObj?.common;\n this.onPrepareLoad(instanceObj.native, instanceObj.encryptedNative); // decode all secrets\n this.savedNative = JSON.parse(JSON.stringify(instanceObj.native));\n this.setState({native: instanceObj.native, loaded: true, expertMode: this.getExpertMode()}, () =>\n this.onConnectionReady && this.onConnectionReady());\n } else {\n console.warn('Cannot load instance settings');\n this.setState({native: {}, loaded: true, expertMode: this.getExpertMode()}, () => this.onConnectionReady && this.onConnectionReady());\n }\n });\n });\n },\n onError: err => {\n console.error(err);\n this.showError(err);\n }\n });\n }\n\n onSystemConfigChanged = (id, obj) => {\n if (obj && id === 'system.config') {\n if (this.socket.systemLang !== obj?.common.language) {\n this.socket.systemLang = obj?.common.language || 'en';\n I18n.setLanguage(this.socket.systemLang);\n }\n\n if (this._systemConfig.expertMode !== !!obj?.common?.expertMode) {\n this._systemConfig = obj?.common || {};\n this.setState({expertMode: this.getExpertMode()});\n } else {\n this._systemConfig = obj?.common || {};\n }\n }\n }\n\n /**\n * Called immediately after a component is mounted. Setting state here will trigger re-rendering.\n */\n componentDidMount() {\n window.addEventListener('resize', this.onResize, true);\n window.addEventListener('message', this.onReceiveMessage, false);\n super.componentDidMount();\n }\n\n /**\n * Called immediately before a component is destroyed.\n */\n componentWillUnmount() {\n window.removeEventListener('resize', this.onResize, true);\n window.removeEventListener('message', this.onReceiveMessage, false);\n super.componentWillUnmount();\n }\n\n onReceiveMessage = message => {\n if (message?.data) {\n if (message.data === 'updateTheme') {\n const newThemeName = Utils.getThemeName()\n Utils.setThemeName(Utils.getThemeName());\n\n const theme = this.createTheme(newThemeName);\n\n this.setState({\n theme,\n themeName: this.getThemeName(theme),\n themeType: this.getThemeType(theme)\n }, () => {\n this.props.onThemeChange && this.props.onThemeChange(newThemeName);\n this.onThemeChanged && this.onThemeChanged(newThemeName);\n });\n } else if (message.data === 'updateExpertMode') {\n this.onToggleExpertMode && this.onToggleExpertMode(this.getExpertMode());\n } else {\n console.warn('Received unknown message: ' + JSON.stringify(message.data));\n }\n }\n };\n\n /**\n * @private\n */\n onResize = () => {\n this.resizeTimer && clearTimeout(this.resizeTimer);\n this.resizeTimer = setTimeout(() => {\n this.resizeTimer = null;\n this.setState({width: GenericApp.getWidth()});\n }, 200);\n };\n\n /**\n * Gets the width depending on the window inner width.\n * @returns {import('./types').Width}\n */\n static getWidth() {\n /**\n * innerWidth |xs sm md lg xl\n * |-------|-------|-------|-------|------>\n * width | xs | sm | md | lg | xl\n */\n\n const SIZES = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n };\n const width = window.innerWidth;\n const keys = Object.keys(SIZES).reverse();\n const widthComputed = keys.find(key => width >= SIZES[key]);\n\n return widthComputed || 'xs';\n }\n\n /**\n * Get a theme\n * @param {string} name Theme name\n * @returns {import('./types').Theme}\n */\n createTheme(name = '') {\n return theme(Utils.getThemeName(name));\n }\n\n /**\n * Get the theme name\n * @param {import('./types').Theme} theme Theme\n * @returns {string} Theme name\n */\n getThemeName(theme) {\n return theme.name;\n }\n\n /**\n * Get the theme type\n * @param {import('./types').Theme} theme Theme\n * @returns {string} Theme type\n */\n getThemeType(theme) {\n return theme.palette.mode;\n }\n\n /**\n * Changes the current theme\n */\n toggleTheme() {\n const themeName = this.state.themeName;\n\n // dark => blue => colored => light => dark\n const newThemeName = themeName === 'dark' ? 'blue' :\n (themeName === 'blue' ? 'colored' :\n (themeName === 'colored' ? 'light' : 'dark'));\n\n Utils.setThemeName(newThemeName);\n\n const theme = this.createTheme(newThemeName);\n\n this.setState({\n theme,\n themeName: this.getThemeName(theme),\n themeType: this.getThemeType(theme)\n }, () => {\n this.props.onThemeChange && this.props.onThemeChange(newThemeName);\n this.onThemeChanged && this.onThemeChanged(newThemeName);\n });\n }\n\n /**\n * Gets the system configuration.\n * @returns {Promise<ioBroker.OtherObject>}\n */\n getSystemConfig() {\n return this.socket.getSystemConfig();\n }\n\n /**\n * Get current expert mode\n * @returns {boolean}\n */\n getExpertMode() {\n return window.sessionStorage.getItem('App.expertMode') === 'true' || !!this._systemConfig.expertMode;\n }\n\n /**\n * Gets called when the socket.io connection is ready.\n * You can overload this function to execute own commands.\n */\n onConnectionReady() {\n }\n\n /**\n * Encrypts a string.\n * @param {string} value\n * @returns {string}\n */\n encrypt(value) {\n let result = '';\n for (let i = 0; i < value.length; i++) {\n result += String.fromCharCode(this._secret[i % this._secret.length].charCodeAt(0) ^ value.charCodeAt(i));\n }\n return result;\n }\n\n /**\n * Decrypts a string.\n * @param {string} value\n * @returns {string}\n */\n decrypt(value) {\n let result = '';\n for (let i = 0; i < value.length; i++) {\n result += String.fromCharCode(this._secret[i % this._secret.length].charCodeAt(0) ^ value.charCodeAt(i));\n }\n return result;\n }\n\n /**\n * Gets called when the navigation hash changes.\n * You may override this if needed.\n */\n onHashChanged() {\n const location = Router.getLocation();\n if (location.tab !== this.state.selectedTab) {\n this.selectTab(location.tab);\n }\n }\n\n /**\n * Selects the given tab.\n * @param {string} tab\n * @param {number} [index]\n */\n selectTab(tab, index) {\n window.localStorage[this.adapterName + '-adapter'] = tab;\n this.setState({selectedTab: tab, selectedTabNum: index})\n }\n\n /**\n * Gets called before the settings are saved.\n * You may override this if needed.\n * @param {Record<string, any>} settings\n */\n onPrepareSave(settings) {\n // here you can encode values\n this.encryptedFields && this.encryptedFields.forEach(attr => {\n if (settings[attr]) {\n settings[attr] = this.encrypt(settings[attr]);\n }\n });\n\n return true;\n }\n\n /**\n * Gets called after the settings are loaded.\n * You may override this if needed.\n * @param {Record<string, any>} settings\n * @param {string[]} encryptedNative optional list of fields to be decrypted\n */\n onPrepareLoad(settings, encryptedNative) {\n // here you can encode values\n this.encryptedFields && this.encryptedFields.forEach(attr => {\n if (settings[attr]) {\n settings[attr] = this.decrypt(settings[attr]);\n }\n });\n encryptedNative && encryptedNative.forEach(attr => {\n this.encryptedFields = this.encryptedFields || [];\n !this.encryptedFields.includes(attr) && this.encryptedFields.push(attr);\n if (settings[attr]) {\n settings[attr] = this.decrypt(settings[attr]);\n }\n });\n }\n\n /**\n * Gets the extendable instances.\n * @returns {Promise<any[]>}\n */\n getExtendableInstances() {\n return new Promise(resolve => {\n this.socket._socket.emit('getObjectView', 'system', 'instance', null, (err, doc) => {\n if (err) {\n resolve([]);\n } else {\n resolve(doc.rows.filter(item => item.value.common.webExtendable).map(item => item.value));\n }\n });\n });\n }\n\n /**\n * Gets the IP addresses of the given host.\n * @param {string} host\n */\n getIpAddresses(host) {\n return new Promise((resolve, reject) => {\n this.socket._socket.emit('getHostByIp', host || this.common.host, (ip, _host) => {\n const IPs4 = [{name: '[IPv4] 0.0.0.0 - ' + I18n.t('ra_Listen on all IPs'), address: '0.0.0.0', family: 'ipv4'}];\n const IPs6 = [{name: '[IPv6] ::', address: '::', family: 'ipv6'}];\n if (_host) {\n host = _host;\n if (host.native.hardware && host.native.hardware.networkInterfaces) {\n Object.keys(host.native.hardware.networkInterfaces).forEach(eth =>\n host.native.hardware.networkInterfaces[eth].forEach(inter => {\n if (inter.family !== 'IPv6') {\n IPs4.push({name: '[' + inter.family + '] ' + inter.address + ' - ' + eth, address: inter.address, family: 'ipv4'});\n } else {\n IPs6.push({name: '[' + inter.family + '] ' + inter.address + ' - ' + eth, address: inter.address, family: 'ipv6'});\n }\n }));\n }\n IPs6.forEach(ip => IPs4.push(ip));\n }\n resolve(IPs4);\n });\n });\n }\n\n /**\n * Saves the settings to the server.\n * @param {boolean} isClose True if the user is closing the dialog.\n */\n onSave(isClose) {\n let oldObj;\n if (this.state.isConfigurationError) {\n this.setState({errorText: this.state.isConfigurationError});\n return;\n }\n\n this.socket.getObject(this.instanceId)\n .then(_oldObj => {\n oldObj = _oldObj || {};\n\n for (const a in this.state.native) {\n if (this.state.native.hasOwnProperty(a)) {\n if (this.state.native[a] === null) {\n oldObj.native[a] = null;\n } else\n if (this.state.native[a] !== undefined) {\n oldObj.native[a] = JSON.parse(JSON.stringify(this.state.native[a]));\n } else {\n delete oldObj.native[a];\n }\n }\n }\n\n if (this.state.common) {\n for (const b in this.state.common) {\n if (this.state.common[b] === null) {\n oldObj.common[b] = null;\n } else\n if (this.state.common[b] !== undefined) {\n oldObj.common[b] = JSON.parse(JSON.stringify(this.state.common[b]));\n } else {\n delete oldObj.common[b];\n }\n }\n }\n\n if (this.onPrepareSave(oldObj.native) !== false) {\n return this.socket.setObject(this.instanceId, oldObj);\n } else {\n return Promise.reject('Invalid configuration');\n }\n })\n .then(() => {\n this.savedNative = oldObj.native;\n globalThis.changed = false;\n this.setState({changed: false});\n isClose && GenericApp.onClose();\n })\n .catch(e => {\n console.error(`Cannot save configuration: ${e}`);\n });\n }\n\n /**\n * Renders the toast.\n * @returns {JSX.Element | null} The JSX element.\n */\n renderToast() {\n if (!this.state.toast) return null;\n return (\n <Snackbar\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left',\n }}\n open={true}\n autoHideDuration={6000}\n onClose={() => this.setState({toast: ''})}\n ContentProps={{\n 'aria-describedby': 'message-id',\n }}\n message={<span id=\"message-id\">{this.state.toast}</span>}\n action={[\n <IconButton\n key=\"close\"\n aria-label=\"Close\"\n color=\"inherit\"\n className={this.props.classes.close}\n onClick={() => this.setState({toast: ''})}\n size=\"large\">\n <IconClose />\n </IconButton>,\n ]}\n />\n );\n }\n\n /**\n * Closes the dialog.\n * @private\n */\n static onClose() {\n if (typeof window.parent !== 'undefined' && window.parent) {\n try {\n if (window.parent.$iframeDialog && typeof window.parent.$iframeDialog.close === 'function') {\n window.parent.$iframeDialog.close();\n } else {\n window.parent.postMessage('close', '*');\n }\n } catch (e) {\n window.parent.postMessage('close', '*');\n }\n }\n }\n\n /**\n * Renders the error dialog.\n * @returns {JSX.Element | null} The JSX element.\n */\n renderError() {\n if (!this.state.errorText) {\n return null;\n } else {\n return <DialogError text={this.state.errorText} onClose={() => this.setState({errorText: ''})}/>;\n }\n }\n\n /**\n * Checks if the configuration has changed.\n * @param {Record<string, any>} [native] the new state\n */\n getIsChanged(native) {\n native = native || this.state.native;\n const isChanged = JSON.stringify(native) !== JSON.stringify(this.savedNative);\n\n if(isChanged) {\n globalThis.changed = true;\n } else {\n globalThis.changed = false;\n }\n\n return isChanged;\n }\n\n /**\n * Gets called when loading the configuration.\n * @param {Record<string, any>} newNative The new configuration object.\n */\n onLoadConfig(newNative) {\n if (JSON.stringify(newNative) !== JSON.stringify(this.state.native)) {\n this.setState({native: newNative, changed: this.getIsChanged(newNative)})\n }\n }\n\n /**\n * Sets the configuration error.\n * @param {string} errorText\n */\n setConfigurationError(errorText) {\n if (this.state.isConfigurationError !== errorText) {\n this.setState({isConfigurationError: errorText});\n }\n }\n\n /**\n * Renders the save and close buttons.\n * @returns {JSX.Element | undefined} The JSX element.\n */\n renderSaveCloseButtons() {\n if (this.state.bottomButtons) {\n return <SaveCloseButtons\n theme={this.state.theme}\n newReact={this.newReact}\n noTextOnButtons={this.state.width === 'xs' || this.state.width === 'sm' || this.state.width === 'md'}\n changed={this.state.changed}\n onSave={(isClose) => this.onSave(isClose)}\n onClose={() => GenericApp.onClose()}\n />;\n } else {\n return null;\n }\n }\n\n /**\n * @private\n * @param {Record<string, any>} obj\n * @param {any} attrs\n * @param {any} value\n * @returns {boolean | undefined}\n */\n _updateNativeValue(obj, attrs, value) {\n if (typeof attrs !== 'object') {\n attrs = attrs.split('.');\n }\n const attr = attrs.shift();\n if (!attrs.length) {\n if (value && typeof value === 'object') {\n if (JSON.stringify(obj[attr]) !== JSON.stringify(value)) {\n obj[attr] = value;\n return true;\n }\n } else if (obj[attr] !== value) {\n obj[attr] = value;\n return true;\n } else {\n return false;\n }\n\n } else {\n obj[attr] = obj[attr] || {};\n if (typeof obj[attr] !== 'object') {\n throw new Error('attribute ' + attr + ' is no object, but ' + typeof obj[attr]);\n }\n return this._updateNativeValue(obj[attr], attrs, value);\n }\n }\n\n /**\n * Update the native value\n * @param {string} attr The attribute name with dots as delimiter.\n * @param {any} value The new value.\n * @param {(() => void)} [cb] Callback which will be called upon completion.\n */\n updateNativeValue(attr, value, cb) {\n const native = JSON.parse(JSON.stringify(this.state.native));\n if (this._updateNativeValue(native, attr, value)) {\n const changed = this.getIsChanged(native);\n this.setState({native, changed}, cb);\n }\n }\n\n /**\n * Set the error text to be shown.\n * @param {string | JSX.Element} text\n */\n showError(text) {\n this.setState({errorText: text});\n }\n\n /**\n * Sets the toast to be shown.\n * @param {string} toast\n */\n showToast(toast) {\n this.setState({toast});\n }\n\n /**\n * Renders this component.\n * @returns {JSX.Element} The JSX element.\n */\n render() {\n if (!this.state.loaded) {\n return <Loader theme={this.state.themeType}/>;\n }\n\n return <div className=\"App\">\n {this.renderError()}\n {this.renderToast()}\n {this.renderSaveCloseButtons()}\n </div>;\n }\n}\n\nGenericApp.propTypes = {\n adapterName: PropTypes.string, // (optional) name of adapter\n onThemeChange: PropTypes.func, // (optional) called by theme change\n socket: PropTypes.object, // (optional) socket information (host, port)\n encryptedFields: PropTypes.array, // (optional) list of native attributes, that must be encrypted\n bottomButtons: PropTypes.bool, // If the bottom buttons (Save/Close) must be shown\n Connection: PropTypes.object, // If the bottom buttons (Save/Close) must be shown\n};\n\nexport default GenericApp;\n"],"file":"GenericApp.js"}
|
|
1
|
+
{"version":3,"file":"GenericApp.js","names":["window","localStorage","getItem","setItem","GenericApp","props","settings","ConnectionClass","Connection","isWeb","io","location","port","SocketClient","e","id","obj","socket","systemLang","common","language","I18n","setLanguage","_systemConfig","expertMode","setState","getExpertMode","message","data","newThemeName","Utils","getThemeName","setThemeName","theme","createTheme","themeName","themeType","getThemeType","onThemeChange","onThemeChanged","onToggleExpertMode","console","warn","JSON","stringify","resizeTimer","clearTimeout","setTimeout","width","getWidth","query","search","replace","args","trim","split","filter","t","forEach","b","parts","length","instance","undefined","parseInt","slice","tmp","pathname","adapterName","instanceId","newReact","Router","getLocation","tab","themeInstance","state","selectedTab","selectedTabNum","errorText","changed","connected","loaded","isConfigurationError","toast","bottomButtons","translations","require","Object","keys","lang","assign","setTranslations","savedNative","encryptedFields","sentryDSN","name","doNotLoadAllObjects","onProgress","progress","PROGRESS","CONNECTING","READY","onReady","objects","scripts","subscribeObject","onSystemConfigChanged","then","getSystemConfig","_secret","secret","getObject","instanceObj","waitPromise","sentryEnabled","diag","version","disableDataReporting","host","sentryStarted","Sentry","init","dsn","release","integrations","SentryIntegrations","Dedupe","sentryInited","uuidObj","uuid","configureScope","scope","setUser","Promise","resolve","onPrepareLoad","encryptedNative","parse","onConnectionReady","onError","err","error","showError","addEventListener","onResize","onReceiveMessage","removeEventListener","palette","mode","sessionStorage","value","result","i","String","fromCharCode","charCodeAt","selectTab","index","attr","encrypt","decrypt","includes","push","_socket","emit","doc","rows","item","webExtendable","map","reject","ip","_host","IPs4","address","family","IPs6","hardware","networkInterfaces","eth","inter","isClose","oldObj","_oldObj","a","hasOwnProperty","onPrepareSave","setObject","globalThis","onClose","vertical","horizontal","classes","close","native","isChanged","newNative","getIsChanged","onSave","attrs","shift","Error","_updateNativeValue","cb","text","renderError","renderToast","renderSaveCloseButtons","SIZES","xs","sm","md","lg","xl","innerWidth","reverse","widthComputed","find","key","parent","$iframeDialog","postMessage","propTypes","PropTypes","string","func","object","array","bool"],"sources":["GenericApp.js"],"sourcesContent":["/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport Connection, {PROGRESS} from './Connection';\nimport PropTypes from 'prop-types';\nimport * as Sentry from '@sentry/browser';\nimport * as SentryIntegrations from '@sentry/integrations';\n\nimport DialogError from './Dialogs/Error';\nimport Snackbar from '@mui/material/Snackbar';\nimport IconButton from '@mui/material/IconButton';\n\nimport IconClose from '@mui/icons-material/Close';\n\nimport printPrompt from './Prompt';\nimport theme from './Theme';\nimport Loader from './Components/Loader';\nimport Router from './Components/Router';\nimport Utils from './Components/Utils';\nimport SaveCloseButtons from './Components/SaveCloseButtons';\nimport I18n from './i18n';\n\nimport './index.css';\n\nif (!window.localStorage) {\n window.localStorage = {\n getItem: () => null,\n setItem: () => null,\n };\n}\n\n/**\n * @extends {Router<import('./types').GenericAppProps, import('./types').GenericAppState>}\n */\nclass GenericApp extends Router {\n /**\n * @param {import('./types').GenericAppProps} props\n * @param {import('./types').GenericAppSettings | undefined} settings\n */\n constructor(props, settings) {\n const ConnectionClass = props.Connection || settings.Connection || Connection;\n\n // Remove `!Connection.isWeb() && window.adapterName !== 'material'` when iobroker.socket will support native ws\n if (!ConnectionClass.isWeb() && window.io && window.location.port === '3000') {\n try {\n const io = new window.SocketClient();\n delete window.io;\n window.io = io;\n } catch (e) {\n // ignore\n }\n }\n\n super(props);\n\n printPrompt();\n\n let query = (window.location.search || '').replace(/^\\?/, '').replace(/#.*$/, '');\n let args = {};\n query.trim().split('&').filter(t => t.trim()).forEach(b => {\n const parts = b.split('=');\n args[parts[0]] = parts.length === 2 ? parts[1] : true;\n if (args[parts[0]] === 'true') {\n args[parts[0]] = true;\n } else if (args[parts[0]] === 'false') {\n args[parts[0]] = false;\n }\n });\n\n // extract instance from URL\n this.instance = args.instance !== undefined ? parseInt(args.instance, 10) || 0 : (parseInt(window.location.search.slice(1), 10) || 0);\n // extract adapter name from URL\n const tmp = window.location.pathname.split('/');\n this.adapterName = settings?.adapterName || props.adapterName || window.adapterName || tmp[tmp.length - 2] || 'iot';\n this.instanceId = `system.adapter.${this.adapterName}.${this.instance}`;\n this.newReact = args.newReact === true; // it is admin5\n\n const location = Router.getLocation();\n location.tab = location.tab || window.localStorage.getItem(this.adapterName + '-adapter') || '';\n\n const themeInstance = this.createTheme();\n\n this.state = {\n selectedTab: window.localStorage.getItem(this.adapterName + '-adapter') || '',\n selectedTabNum: -1,\n native: {},\n errorText: '',\n changed: false,\n connected: false,\n loaded: false,\n isConfigurationError: '',\n expertMode: false,\n toast: '',\n theme: themeInstance,\n themeName: this.getThemeName(themeInstance),\n themeType: this.getThemeType(themeInstance),\n bottomButtons: (settings && settings.bottomButtons) === false ? false : ((props && props.bottomButtons) === false ? false : true),\n width: GenericApp.getWidth(),\n };\n\n // init translations\n const translations = {\n 'en': require('./i18n/en.json'),\n 'de': require('./i18n/de.json'),\n 'ru': require('./i18n/ru.json'),\n 'pt': require('./i18n/pt.json'),\n 'nl': require('./i18n/nl.json'),\n 'fr': require('./i18n/fr.json'),\n 'it': require('./i18n/it.json'),\n 'es': require('./i18n/es.json'),\n 'pl': require('./i18n/pl.json'),\n 'zh-cn': require('./i18n/zh-cn.json'),\n };\n\n // merge together\n if (settings && settings.translations) {\n Object.keys(settings.translations).forEach(lang => translations[lang] = Object.assign(translations[lang], settings.translations[lang]));\n } else if (props.translations) {\n Object.keys(props.translations).forEach(lang => translations[lang] = Object.assign(translations[lang], props.translations[lang]));\n }\n\n I18n.setTranslations(translations);\n\n this.savedNative = {}; // to detect if the config changed\n\n this.encryptedFields = props.encryptedFields || settings?.encryptedFields || [];\n\n this.sentryDSN = (settings && settings.sentryDSN) || props.sentryDSN;\n\n this.socket = new ConnectionClass({\n ...(props?.socket || settings?.socket),\n name: this.adapterName,\n doNotLoadAllObjects: settings?.doNotLoadAllObjects,\n onProgress: progress => {\n if (progress === PROGRESS.CONNECTING) {\n this.setState({connected: false});\n } else if (progress === PROGRESS.READY) {\n this.setState({connected: true});\n } else {\n this.setState({connected: true});\n }\n },\n onReady: (objects, scripts) => {\n I18n.setLanguage(this.socket.systemLang);\n\n // subscribe because of language and expert mode\n this.socket.subscribeObject('system.config', this.onSystemConfigChanged)\n .then(() => this.getSystemConfig())\n .then(obj => {\n this._secret = (typeof obj !== 'undefined' && obj.native && obj.native.secret) || 'Zgfr56gFe87jJOM';\n this._systemConfig = obj?.common || {};\n return this.socket.getObject(this.instanceId);\n })\n .then(instanceObj => {\n let waitPromise;\n\n const sentryEnabled =\n this._systemConfig.diag !== 'none' &&\n instanceObj &&\n instanceObj.common &&\n instanceObj.common.name &&\n instanceObj.common.version &&\n !instanceObj.common.disableDataReporting &&\n window.location.host !== 'localhost:3000';\n\n // activate sentry plugin\n if (!this.sentryStarted && this.sentryDSN && sentryEnabled) {\n this.sentryStarted = true;\n\n Sentry.init({\n dsn: this.sentryDSN,\n release: `iobroker.${instanceObj.common.name}@${instanceObj.common.version}`,\n integrations: [\n new SentryIntegrations.Dedupe()\n ]\n });\n }\n\n // read UUID and init sentry with it.\n // for backward compatibility it will be processed separately from above logic: some adapters could still have this.sentryDSN as undefined\n if (!this.sentryInited && sentryEnabled) {\n this.sentryInited = true;\n\n waitPromise = this.socket.getObject('system.meta.uuid')\n .then(uuidObj => {\n if (uuidObj && uuidObj.native && uuidObj.native.uuid) {\n Sentry.configureScope(scope =>\n scope.setUser({id: uuidObj.native.uuid}));\n }\n });\n }\n\n waitPromise = waitPromise || Promise.resolve();\n\n waitPromise\n .then(() => {\n if (instanceObj) {\n this.common = instanceObj?.common;\n this.onPrepareLoad(instanceObj.native, instanceObj.encryptedNative); // decode all secrets\n this.savedNative = JSON.parse(JSON.stringify(instanceObj.native));\n this.setState({native: instanceObj.native, loaded: true, expertMode: this.getExpertMode()}, () =>\n this.onConnectionReady && this.onConnectionReady());\n } else {\n console.warn('Cannot load instance settings');\n this.setState({native: {}, loaded: true, expertMode: this.getExpertMode()}, () => this.onConnectionReady && this.onConnectionReady());\n }\n });\n });\n },\n onError: err => {\n console.error(err);\n this.showError(err);\n }\n });\n }\n\n onSystemConfigChanged = (id, obj) => {\n if (obj && id === 'system.config') {\n if (this.socket.systemLang !== obj?.common.language) {\n this.socket.systemLang = obj?.common.language || 'en';\n I18n.setLanguage(this.socket.systemLang);\n }\n\n if (this._systemConfig.expertMode !== !!obj?.common?.expertMode) {\n this._systemConfig = obj?.common || {};\n this.setState({expertMode: this.getExpertMode()});\n } else {\n this._systemConfig = obj?.common || {};\n }\n }\n }\n\n /**\n * Called immediately after a component is mounted. Setting state here will trigger re-rendering.\n */\n componentDidMount() {\n window.addEventListener('resize', this.onResize, true);\n window.addEventListener('message', this.onReceiveMessage, false);\n super.componentDidMount();\n }\n\n /**\n * Called immediately before a component is destroyed.\n */\n componentWillUnmount() {\n window.removeEventListener('resize', this.onResize, true);\n window.removeEventListener('message', this.onReceiveMessage, false);\n super.componentWillUnmount();\n }\n\n onReceiveMessage = message => {\n if (message?.data) {\n if (message.data === 'updateTheme') {\n const newThemeName = Utils.getThemeName()\n Utils.setThemeName(Utils.getThemeName());\n\n const theme = this.createTheme(newThemeName);\n\n this.setState({\n theme,\n themeName: this.getThemeName(theme),\n themeType: this.getThemeType(theme)\n }, () => {\n this.props.onThemeChange && this.props.onThemeChange(newThemeName);\n this.onThemeChanged && this.onThemeChanged(newThemeName);\n });\n } else if (message.data === 'updateExpertMode') {\n this.onToggleExpertMode && this.onToggleExpertMode(this.getExpertMode());\n } else {\n console.warn('Received unknown message: ' + JSON.stringify(message.data));\n }\n }\n };\n\n /**\n * @private\n */\n onResize = () => {\n this.resizeTimer && clearTimeout(this.resizeTimer);\n this.resizeTimer = setTimeout(() => {\n this.resizeTimer = null;\n this.setState({width: GenericApp.getWidth()});\n }, 200);\n };\n\n /**\n * Gets the width depending on the window inner width.\n * @returns {import('./types').Width}\n */\n static getWidth() {\n /**\n * innerWidth |xs sm md lg xl\n * |-------|-------|-------|-------|------>\n * width | xs | sm | md | lg | xl\n */\n\n const SIZES = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n };\n const width = window.innerWidth;\n const keys = Object.keys(SIZES).reverse();\n const widthComputed = keys.find(key => width >= SIZES[key]);\n\n return widthComputed || 'xs';\n }\n\n /**\n * Get a theme\n * @param {string} name Theme name\n * @returns {import('./types').Theme}\n */\n createTheme(name = '') {\n return theme(Utils.getThemeName(name));\n }\n\n /**\n * Get the theme name\n * @param {import('./types').Theme} theme Theme\n * @returns {string} Theme name\n */\n getThemeName(theme) {\n return theme.name;\n }\n\n /**\n * Get the theme type\n * @param {import('./types').Theme} theme Theme\n * @returns {string} Theme type\n */\n getThemeType(theme) {\n return theme.palette.mode;\n }\n\n /**\n * Changes the current theme\n */\n toggleTheme() {\n const themeName = this.state.themeName;\n\n // dark => blue => colored => light => dark\n const newThemeName = themeName === 'dark' ? 'blue' :\n (themeName === 'blue' ? 'colored' :\n (themeName === 'colored' ? 'light' : 'dark'));\n\n Utils.setThemeName(newThemeName);\n\n const theme = this.createTheme(newThemeName);\n\n this.setState({\n theme,\n themeName: this.getThemeName(theme),\n themeType: this.getThemeType(theme)\n }, () => {\n this.props.onThemeChange && this.props.onThemeChange(newThemeName);\n this.onThemeChanged && this.onThemeChanged(newThemeName);\n });\n }\n\n /**\n * Gets the system configuration.\n * @returns {Promise<ioBroker.OtherObject>}\n */\n getSystemConfig() {\n return this.socket.getSystemConfig();\n }\n\n /**\n * Get current expert mode\n * @returns {boolean}\n */\n getExpertMode() {\n return window.sessionStorage.getItem('App.expertMode') === 'true' || !!this._systemConfig.expertMode;\n }\n\n /**\n * Gets called when the socket.io connection is ready.\n * You can overload this function to execute own commands.\n */\n onConnectionReady() {\n }\n\n /**\n * Encrypts a string.\n * @param {string} value\n * @returns {string}\n */\n encrypt(value) {\n let result = '';\n for (let i = 0; i < value.length; i++) {\n result += String.fromCharCode(this._secret[i % this._secret.length].charCodeAt(0) ^ value.charCodeAt(i));\n }\n return result;\n }\n\n /**\n * Decrypts a string.\n * @param {string} value\n * @returns {string}\n */\n decrypt(value) {\n let result = '';\n for (let i = 0; i < value.length; i++) {\n result += String.fromCharCode(this._secret[i % this._secret.length].charCodeAt(0) ^ value.charCodeAt(i));\n }\n return result;\n }\n\n /**\n * Gets called when the navigation hash changes.\n * You may override this if needed.\n */\n onHashChanged() {\n const location = Router.getLocation();\n if (location.tab !== this.state.selectedTab) {\n this.selectTab(location.tab);\n }\n }\n\n /**\n * Selects the given tab.\n * @param {string} tab\n * @param {number} [index]\n */\n selectTab(tab, index) {\n window.localStorage[this.adapterName + '-adapter'] = tab;\n this.setState({selectedTab: tab, selectedTabNum: index})\n }\n\n /**\n * Gets called before the settings are saved.\n * You may override this if needed.\n * @param {Record<string, any>} settings\n */\n onPrepareSave(settings) {\n // here you can encode values\n this.encryptedFields && this.encryptedFields.forEach(attr => {\n if (settings[attr]) {\n settings[attr] = this.encrypt(settings[attr]);\n }\n });\n\n return true;\n }\n\n /**\n * Gets called after the settings are loaded.\n * You may override this if needed.\n * @param {Record<string, any>} settings\n * @param {string[]} encryptedNative optional list of fields to be decrypted\n */\n onPrepareLoad(settings, encryptedNative) {\n // here you can encode values\n this.encryptedFields && this.encryptedFields.forEach(attr => {\n if (settings[attr]) {\n settings[attr] = this.decrypt(settings[attr]);\n }\n });\n encryptedNative && encryptedNative.forEach(attr => {\n this.encryptedFields = this.encryptedFields || [];\n !this.encryptedFields.includes(attr) && this.encryptedFields.push(attr);\n if (settings[attr]) {\n settings[attr] = this.decrypt(settings[attr]);\n }\n });\n }\n\n /**\n * Gets the extendable instances.\n * @returns {Promise<any[]>}\n */\n getExtendableInstances() {\n return new Promise(resolve => {\n this.socket._socket.emit('getObjectView', 'system', 'instance', null, (err, doc) => {\n if (err) {\n resolve([]);\n } else {\n resolve(doc.rows.filter(item => item.value.common.webExtendable).map(item => item.value));\n }\n });\n });\n }\n\n /**\n * Gets the IP addresses of the given host.\n * @param {string} host\n */\n getIpAddresses(host) {\n return new Promise((resolve, reject) => {\n this.socket._socket.emit('getHostByIp', host || this.common.host, (ip, _host) => {\n const IPs4 = [{name: '[IPv4] 0.0.0.0 - ' + I18n.t('ra_Listen on all IPs'), address: '0.0.0.0', family: 'ipv4'}];\n const IPs6 = [{name: '[IPv6] ::', address: '::', family: 'ipv6'}];\n if (_host) {\n host = _host;\n if (host.native.hardware && host.native.hardware.networkInterfaces) {\n Object.keys(host.native.hardware.networkInterfaces).forEach(eth =>\n host.native.hardware.networkInterfaces[eth].forEach(inter => {\n if (inter.family !== 'IPv6') {\n IPs4.push({name: '[' + inter.family + '] ' + inter.address + ' - ' + eth, address: inter.address, family: 'ipv4'});\n } else {\n IPs6.push({name: '[' + inter.family + '] ' + inter.address + ' - ' + eth, address: inter.address, family: 'ipv6'});\n }\n }));\n }\n IPs6.forEach(ip => IPs4.push(ip));\n }\n resolve(IPs4);\n });\n });\n }\n\n /**\n * Saves the settings to the server.\n * @param {boolean} isClose True if the user is closing the dialog.\n */\n onSave(isClose) {\n let oldObj;\n if (this.state.isConfigurationError) {\n this.setState({errorText: this.state.isConfigurationError});\n return;\n }\n\n this.socket.getObject(this.instanceId)\n .then(_oldObj => {\n oldObj = _oldObj || {};\n\n for (const a in this.state.native) {\n if (this.state.native.hasOwnProperty(a)) {\n if (this.state.native[a] === null) {\n oldObj.native[a] = null;\n } else\n if (this.state.native[a] !== undefined) {\n oldObj.native[a] = JSON.parse(JSON.stringify(this.state.native[a]));\n } else {\n delete oldObj.native[a];\n }\n }\n }\n\n if (this.state.common) {\n for (const b in this.state.common) {\n if (this.state.common[b] === null) {\n oldObj.common[b] = null;\n } else\n if (this.state.common[b] !== undefined) {\n oldObj.common[b] = JSON.parse(JSON.stringify(this.state.common[b]));\n } else {\n delete oldObj.common[b];\n }\n }\n }\n\n if (this.onPrepareSave(oldObj.native) !== false) {\n return this.socket.setObject(this.instanceId, oldObj);\n } else {\n return Promise.reject('Invalid configuration');\n }\n })\n .then(() => {\n this.savedNative = oldObj.native;\n globalThis.changed = false;\n this.setState({changed: false});\n isClose && GenericApp.onClose();\n })\n .catch(e => {\n console.error(`Cannot save configuration: ${e}`);\n });\n }\n\n /**\n * Renders the toast.\n * @returns {JSX.Element | null} The JSX element.\n */\n renderToast() {\n if (!this.state.toast) {\n return null;\n }\n\n return <Snackbar\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left',\n }}\n open={true}\n autoHideDuration={6000}\n onClose={() => this.setState({toast: ''})}\n ContentProps={{\n 'aria-describedby': 'message-id',\n }}\n message={<span id=\"message-id\">{this.state.toast}</span>}\n action={[\n <IconButton\n key=\"close\"\n aria-label=\"Close\"\n color=\"inherit\"\n className={this.props.classes.close}\n onClick={() => this.setState({toast: ''})}\n size=\"large\">\n <IconClose />\n </IconButton>,\n ]}\n />;\n }\n\n /**\n * Closes the dialog.\n * @private\n */\n static onClose() {\n if (typeof window.parent !== 'undefined' && window.parent) {\n try {\n if (window.parent.$iframeDialog && typeof window.parent.$iframeDialog.close === 'function') {\n window.parent.$iframeDialog.close();\n } else {\n window.parent.postMessage('close', '*');\n }\n } catch (e) {\n window.parent.postMessage('close', '*');\n }\n }\n }\n\n /**\n * Renders the error dialog.\n * @returns {JSX.Element | null} The JSX element.\n */\n renderError() {\n if (!this.state.errorText) {\n return null;\n } else {\n return <DialogError text={this.state.errorText} onClose={() => this.setState({errorText: ''})}/>;\n }\n }\n\n /**\n * Checks if the configuration has changed.\n * @param {Record<string, any>} [native] the new state\n */\n getIsChanged(native) {\n native = native || this.state.native;\n const isChanged = JSON.stringify(native) !== JSON.stringify(this.savedNative);\n\n if(isChanged) {\n globalThis.changed = true;\n } else {\n globalThis.changed = false;\n }\n\n return isChanged;\n }\n\n /**\n * Gets called when loading the configuration.\n * @param {Record<string, any>} newNative The new configuration object.\n */\n onLoadConfig(newNative) {\n if (JSON.stringify(newNative) !== JSON.stringify(this.state.native)) {\n this.setState({native: newNative, changed: this.getIsChanged(newNative)})\n }\n }\n\n /**\n * Sets the configuration error.\n * @param {string} errorText\n */\n setConfigurationError(errorText) {\n if (this.state.isConfigurationError !== errorText) {\n this.setState({isConfigurationError: errorText});\n }\n }\n\n /**\n * Renders the save and close buttons.\n * @returns {JSX.Element | undefined} The JSX element.\n */\n renderSaveCloseButtons() {\n if (this.state.bottomButtons) {\n return <SaveCloseButtons\n theme={this.state.theme}\n newReact={this.newReact}\n noTextOnButtons={this.state.width === 'xs' || this.state.width === 'sm' || this.state.width === 'md'}\n changed={this.state.changed}\n onSave={(isClose) => this.onSave(isClose)}\n onClose={() => GenericApp.onClose()}\n />;\n } else {\n return null;\n }\n }\n\n /**\n * @private\n * @param {Record<string, any>} obj\n * @param {any} attrs\n * @param {any} value\n * @returns {boolean | undefined}\n */\n _updateNativeValue(obj, attrs, value) {\n if (typeof attrs !== 'object') {\n attrs = attrs.split('.');\n }\n const attr = attrs.shift();\n if (!attrs.length) {\n if (value && typeof value === 'object') {\n if (JSON.stringify(obj[attr]) !== JSON.stringify(value)) {\n obj[attr] = value;\n return true;\n }\n } else if (obj[attr] !== value) {\n obj[attr] = value;\n return true;\n } else {\n return false;\n }\n\n } else {\n obj[attr] = obj[attr] || {};\n if (typeof obj[attr] !== 'object') {\n throw new Error('attribute ' + attr + ' is no object, but ' + typeof obj[attr]);\n }\n return this._updateNativeValue(obj[attr], attrs, value);\n }\n }\n\n /**\n * Update the native value\n * @param {string} attr The attribute name with dots as delimiter.\n * @param {any} value The new value.\n * @param {(() => void)} [cb] Callback which will be called upon completion.\n */\n updateNativeValue(attr, value, cb) {\n const native = JSON.parse(JSON.stringify(this.state.native));\n if (this._updateNativeValue(native, attr, value)) {\n const changed = this.getIsChanged(native);\n this.setState({native, changed}, cb);\n }\n }\n\n /**\n * Set the error text to be shown.\n * @param {string | JSX.Element} text\n */\n showError(text) {\n this.setState({errorText: text});\n }\n\n /**\n * Sets the toast to be shown.\n * @param {string} toast\n */\n showToast(toast) {\n this.setState({toast});\n }\n\n /**\n * Renders this component.\n * @returns {JSX.Element} The JSX element.\n */\n render() {\n if (!this.state.loaded) {\n return <Loader theme={this.state.themeType}/>;\n }\n\n return <div className=\"App\">\n {this.renderError()}\n {this.renderToast()}\n {this.renderSaveCloseButtons()}\n </div>;\n }\n}\n\nGenericApp.propTypes = {\n adapterName: PropTypes.string, // (optional) name of adapter\n onThemeChange: PropTypes.func, // (optional) called by theme change\n socket: PropTypes.object, // (optional) socket information (host, port)\n encryptedFields: PropTypes.array, // (optional) list of native attributes, that must be encrypted\n bottomButtons: PropTypes.bool, // If the bottom buttons (Save/Close) must be shown\n Connection: PropTypes.object, // If the bottom buttons (Save/Close) must be shown\n};\n\nexport default GenericApp;\n"],"mappings":"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"}
|
package/Prompt.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Print the ioBroker welcome screen to the developer console.
|
|
10
|
+
*/
|
|
11
|
+
function printPrompt() {
|
|
12
|
+
var prompt = "\n\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \n\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2554\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\n\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\n\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2588\u2588\u2557 \u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\n\u2588\u2588\u2551\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2551\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\n\u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D\n";
|
|
13
|
+
console.log(prompt);
|
|
14
|
+
console.log('Nice to see you here! :) Join our dev community here https://github.com/ioBroker/ioBroker or here https://github.com/iobroker-community-adapters');
|
|
15
|
+
console.log('Help us to create open source project with reactJS!');
|
|
16
|
+
console.log('See you :)');
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
var _default = printPrompt;
|
|
20
|
+
exports["default"] = _default;
|
|
21
|
+
//# sourceMappingURL=Prompt.js.map
|
package/Prompt.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Prompt.js","names":["printPrompt","prompt","console","log"],"sources":["Prompt.js"],"sourcesContent":["\n/**\n * Print the ioBroker welcome screen to the developer console.\n */\nfunction printPrompt() {\n const prompt = `\n██╗ ██████╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗███████╗██████╗ \n██║██╔═══██╗██╔══██╗██╔══██╗██╔═══██╗██║ ██╔╝██╔════╝██╔══██╗\n██║██║ ██║██████╔╝██████╔╝██║ ██║█████╔╝ █████╗ ██████╔╝\n██║██║ ██║██╔══██╗██╔══██╗██║ ██║██╔═██╗ ██╔══╝ ██╔══██╗\n██║╚██████╔╝██████╔╝██║ ██║╚██████╔╝██║ ██╗███████╗██║ ██║\n╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝\n`;\n\n console.log(prompt);\n console.log('Nice to see you here! :) Join our dev community here https://github.com/ioBroker/ioBroker or here https://github.com/iobroker-community-adapters');\n console.log('Help us to create open source project with reactJS!');\n console.log('See you :)');\n}\n\nexport default printPrompt;"],"mappings":";;;;;;;AACA;AACA;AACA;AACA,SAASA,WAAT,GAAuB;EACnB,IAAMC,MAAM,s8DAAZ;EASAC,OAAO,CAACC,GAAR,CAAYF,MAAZ;EACAC,OAAO,CAACC,GAAR,CAAY,kJAAZ;EACAD,OAAO,CAACC,GAAR,CAAY,qDAAZ;EACAD,OAAO,CAACC,GAAR,CAAY,YAAZ;AACH;;eAEcH,W"}
|
package/README.md
CHANGED
|
@@ -639,7 +639,11 @@ If you still have questions, try to find an answer [here](https://mui.com/guides
|
|
|
639
639
|
-->
|
|
640
640
|
|
|
641
641
|
## Changelog
|
|
642
|
-
### 2.1.
|
|
642
|
+
### 2.1.7 (2022-05-09)
|
|
643
|
+
* (bluefox) Changes were synchronized with adapter-react-v5
|
|
644
|
+
* (bluefox) Added `I18n.disableWarning` method
|
|
645
|
+
|
|
646
|
+
### 2.1.6 (2022-03-28)
|
|
643
647
|
* (bluefox) Added `log` method to connection
|
|
644
648
|
* (bluefox) Corrected translations
|
|
645
649
|
|