@iobroker/adapter-react-v5 3.1.27 → 3.1.30
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/IconPicker.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCustom.js +4 -3
- package/Components/JsonConfigComponent/ConfigCustom.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigGeneric.d.ts +1 -1
- package/Components/JsonConfigComponent/ConfigGeneric.js +9 -7
- package/Components/JsonConfigComponent/ConfigGeneric.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigLanguage.js +1 -1
- package/Components/JsonConfigComponent/ConfigLanguage.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigNumber.js +33 -11
- package/Components/JsonConfigComponent/ConfigNumber.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigPanel.js +1 -0
- package/Components/JsonConfigComponent/ConfigPanel.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSelectSendTo.js +3 -3
- package/Components/JsonConfigComponent/ConfigSelectSendTo.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSendto.js +85 -24
- package/Components/JsonConfigComponent/ConfigSendto.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigStaticText.d.ts +1 -1
- package/Components/JsonConfigComponent/ConfigStaticText.js +45 -4
- package/Components/JsonConfigComponent/ConfigStaticText.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTable.js +36 -25
- package/Components/JsonConfigComponent/ConfigTable.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigText.js +15 -12
- package/Components/JsonConfigComponent/ConfigText.js.map +1 -1
- package/Components/JsonConfigComponent/index.js +4 -6
- package/Components/JsonConfigComponent/index.js.map +1 -1
- package/Components/ObjectBrowser.js +86 -15
- package/Components/ObjectBrowser.js.map +1 -1
- package/Connection.d.ts +5 -0
- package/Connection.js +78 -16
- package/Connection.js.map +1 -1
- package/Dialogs/FileSelect.js +2 -1
- package/Dialogs/FileSelect.js.map +1 -1
- package/Dialogs/SelectID.js.map +1 -1
- package/README.md +4 -0
- package/i18n/de.json +2 -1
- package/i18n/en.json +2 -1
- package/i18n/es.json +2 -1
- package/i18n/fr.json +2 -1
- package/i18n/it.json +2 -1
- package/i18n/nl.json +2 -1
- package/i18n/pl.json +2 -1
- package/i18n/pt.json +2 -1
- package/i18n/ru.json +2 -1
- package/i18n/zh-cn.json +2 -1
- package/package.json +1 -1
package/Dialogs/FileSelect.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileSelect.js","names":["styles","theme","headerID","fontWeight","fontStyle","dialog","height","dialogMobile","padding","width","maxWidth","maxHeight","content","overflow","contentMobile","titleRoot","whiteSpace","display","textOverflow","DialogFileSelect","props","dialogName","filters","window","_localStorage","localStorage","getItem","JSON","parse","e","state","selected","isFolder","name","isMobile","innerWidth","onClose","onOk","title","length","I18n","t","classes","paper","Utils","clsx","root","imagePrefix","allowUpload","allowDownload","allowCreateFolder","allowDelete","allowView","showToolbar","limitPath","filterFiles","filterByType","isDoubleClick","setState","selectOnlyFolders","handleOk","getLanguage","socket","ok","handleCancel","cancel","React","Component","propTypes","PropTypes","string","func","isRequired","object","bool","objectID","arrayOf","_export","withStyles"],"sources":["FileSelect.js"],"sourcesContent":["/**\n * Copyright 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 I18n from '../i18n';\nimport Utils from '../Components/Utils';\nimport FileBrowser from '../Components/FileBrowser';\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} FileSelectDialogProps\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 {string} [imagePrefix] Prefix (default: '.')\n * @property {boolean} [dialogName] PropTypes.string, // where to store settings in localStorage\n * @property {boolean} [selected] Pre-selected file\n * @property {() => void} onClose Close handler that is always called when the dialog is closed.\n * @property {(selected: string | undefined) => void} onOk Handler that is called when the user presses OK.\n * @property {string} [ok] The ok button text; default: OK (translated)\n * @property {string} [cancel] The cancel button text; default: Cancel (translated)\n * @property {boolean} [socket] Socket class (required)\n * @property {boolean} [allowUpload] If download of files enabled\n * @property {boolean} [allowDownload] If download of files enabled\n * @property {boolean} [allowCreateFolder] If creation of folders enabled\n * @property {boolean} [allowDelete] If creation of folders enabled\n * @property {boolean} [allowView] if tile view enabled (default true)\n * @property {boolean} [showToolbar] Show toolbar (default true)\n * @property {array} [limitPath] Limit file browser to one specific objectID of type meta and following path (like vis.0/main)\n * @property {array} [filterFiles] like `['png', 'svg', 'bmp', 'jpg', 'jpeg']`\n * @property {string} [filterByType] images, code, txt, audio, video\n * @property {bool} [selectOnlyFolders] allow only folders selection\n *\n * @extends {React.Component<FileSelectDialogProps>}\n */\nclass DialogFileSelect extends React.Component {\n /**\n * @param {FileSelectDialogProps} props\n */\n constructor(props) {\n super(props);\n this.dialogName = this.props.dialogName || 'default';\n this.dialogName = 'FileSelect.' + this.dialogName;\n\n this.filters = (window._localStorage || window.localStorage).getItem(this.dialogName) || '{}';\n\n try {\n this.filters = JSON.parse(this.filters);\n } catch (e) {\n this.filters = {};\n }\n\n this.state = {\n selected: this.props.selected || '',\n isFolder: false,\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.state.selected || '');\n this.props.onClose();\n };\n\n render() {\n let title;\n if (this.state.name || this.state.selected.length) {\n title = [\n <span key=\"selected\">{ I18n.t('ra_Selected') } </span>,\n <span key=\"id\" className={ this.props.classes.headerID }>{this.state.selected}</span>\n ];\n } else {\n title = this.props.title || I18n.t('ra_Please select file...');\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=\"file-dialog-title\"\n >\n <DialogTitle id=\"file-dialog-title\" classes={{ root: this.props.classes.titleRoot }}>{ title }</DialogTitle>\n <DialogContent className={Utils.clsx(this.props.classes.content, this.props.classes.contentMobile)}>\n <FileBrowser\n ready\n imagePrefix={this.props.imagePrefix}\n allowUpload={!!this.props.allowUpload}\n allowDownload={this.props.allowDownload !== false}\n allowCreateFolder={!!this.props.allowCreateFolder}\n allowDelete={!!this.props.allowDelete}\n showViewTypeButton={this.props.allowView !== false}\n showToolbar={this.props.showToolbar !== false}\n limitPath={this.props.limitPath}\n filterFiles={this.props.filterFiles}\n filterByType={this.props.filterByType}\n selected={this.props.selected}\n onSelect={(selected, isDoubleClick, isFolder) => {\n this.setState({ selected, isFolder }, () =>\n isDoubleClick && ((this.props.selectOnlyFolders && isFolder) || (!this.props.selectOnlyFolders && !isFolder)) && this.handleOk());\n }}\n t={I18n.t}\n lang={I18n.getLanguage()}\n socket={this.props.socket}\n />\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" onClick={ () => this.handleOk() } startIcon={<IconOk />} disabled={ !this.state.selected || ((this.props.selectOnlyFolders && !this.state.isFolder) || (!this.props.selectOnlyFolders && this.state.isFolder)) } 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\nDialogFileSelect.propTypes = {\n imagePrefix: PropTypes.string,\n dialogName: PropTypes.string, // where to store settings in localStorage\n selected: PropTypes.string,\n onClose: PropTypes.func.isRequired,\n onOk: PropTypes.func.isRequired,\n ok: PropTypes.string,\n cancel: PropTypes.string,\n socket: PropTypes.object.isRequired,\n allowUpload: PropTypes.bool,\n allowDownload: PropTypes.bool,\n allowCreateFolder: PropTypes.bool,\n allowDelete: PropTypes.bool,\n allowView: PropTypes.bool,\n showToolbar: PropTypes.bool,\n objectID: PropTypes.string,\n filterFiles: PropTypes.arrayOf(PropTypes.string),\n filterByType: PropTypes.string,\n limitPath: PropTypes.string,\n selectOnlyFolders: PropTypes.bool,\n};\n\n/** @type {typeof DialogFileSelect} */\nconst _export = withStyles(styles)(DialogFileSelect);\nexport default _export;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FileSelect.js","names":["styles","theme","headerID","fontWeight","fontStyle","dialog","height","backgroundColor","palette","mode","dialogMobile","padding","width","maxWidth","maxHeight","content","overflow","contentMobile","titleRoot","whiteSpace","display","textOverflow","DialogFileSelect","props","dialogName","filters","window","_localStorage","localStorage","getItem","JSON","parse","e","state","selected","isFolder","name","isMobile","innerWidth","onClose","onOk","title","length","I18n","t","classes","paper","Utils","clsx","root","imagePrefix","allowUpload","allowDownload","allowCreateFolder","allowDelete","allowView","showToolbar","limitPath","filterFiles","filterByType","isDoubleClick","setState","selectOnlyFolders","handleOk","getLanguage","socket","ok","handleCancel","cancel","React","Component","propTypes","PropTypes","string","func","isRequired","object","bool","objectID","arrayOf","_export","withStyles"],"sources":["FileSelect.js"],"sourcesContent":["/**\n * Copyright 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 I18n from '../i18n';\nimport Utils from '../Components/Utils';\nimport FileBrowser from '../Components/FileBrowser';\n\nconst styles = theme => ({\n headerID: {\n fontWeight: 'bold',\n fontStyle: 'italic'\n },\n dialog: {\n height: '95%',\n backgroundColor: theme.palette.mode === 'dark' ? '#303030' : '#fafafa',\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} FileSelectDialogProps\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 {string} [imagePrefix] Prefix (default: '.')\n * @property {boolean} [dialogName] PropTypes.string, // where to store settings in localStorage\n * @property {boolean} [selected] Pre-selected file\n * @property {() => void} onClose Close handler that is always called when the dialog is closed.\n * @property {(selected: string | undefined) => void} onOk Handler that is called when the user presses OK.\n * @property {string} [ok] The ok button text; default: OK (translated)\n * @property {string} [cancel] The cancel button text; default: Cancel (translated)\n * @property {boolean} [socket] Socket class (required)\n * @property {boolean} [allowUpload] If download of files enabled\n * @property {boolean} [allowDownload] If download of files enabled\n * @property {boolean} [allowCreateFolder] If creation of folders enabled\n * @property {boolean} [allowDelete] If creation of folders enabled\n * @property {boolean} [allowView] if tile view enabled (default true)\n * @property {boolean} [showToolbar] Show toolbar (default true)\n * @property {array} [limitPath] Limit file browser to one specific objectID of type meta and following path (like vis.0/main)\n * @property {array} [filterFiles] like `['png', 'svg', 'bmp', 'jpg', 'jpeg']`\n * @property {string} [filterByType] images, code, txt, audio, video\n * @property {bool} [selectOnlyFolders] allow only folders selection\n *\n * @extends {React.Component<FileSelectDialogProps>}\n */\nclass DialogFileSelect extends React.Component {\n /**\n * @param {FileSelectDialogProps} props\n */\n constructor(props) {\n super(props);\n this.dialogName = this.props.dialogName || 'default';\n this.dialogName = 'FileSelect.' + this.dialogName;\n\n this.filters = (window._localStorage || window.localStorage).getItem(this.dialogName) || '{}';\n\n try {\n this.filters = JSON.parse(this.filters);\n } catch (e) {\n this.filters = {};\n }\n\n this.state = {\n selected: this.props.selected || '',\n isFolder: false,\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.state.selected || '');\n this.props.onClose();\n };\n\n render() {\n let title;\n if (this.state.name || this.state.selected.length) {\n title = [\n <span key=\"selected\">{ I18n.t('ra_Selected') } </span>,\n <span key=\"id\" className={ this.props.classes.headerID }>{this.state.selected}</span>\n ];\n } else {\n title = this.props.title || I18n.t('ra_Please select file...');\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=\"file-dialog-title\"\n >\n <DialogTitle id=\"file-dialog-title\" classes={{ root: this.props.classes.titleRoot }}>{ title }</DialogTitle>\n <DialogContent className={Utils.clsx(this.props.classes.content, this.props.classes.contentMobile)}>\n <FileBrowser\n ready\n imagePrefix={this.props.imagePrefix}\n allowUpload={!!this.props.allowUpload}\n allowDownload={this.props.allowDownload !== false}\n allowCreateFolder={!!this.props.allowCreateFolder}\n allowDelete={!!this.props.allowDelete}\n showViewTypeButton={this.props.allowView !== false}\n showToolbar={this.props.showToolbar !== false}\n limitPath={this.props.limitPath}\n filterFiles={this.props.filterFiles}\n filterByType={this.props.filterByType}\n selected={this.props.selected}\n onSelect={(selected, isDoubleClick, isFolder) => {\n this.setState({ selected, isFolder }, () =>\n isDoubleClick && ((this.props.selectOnlyFolders && isFolder) || (!this.props.selectOnlyFolders && !isFolder)) && this.handleOk());\n }}\n t={I18n.t}\n lang={I18n.getLanguage()}\n socket={this.props.socket}\n />\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" onClick={ () => this.handleOk() } startIcon={<IconOk />} disabled={ !this.state.selected || ((this.props.selectOnlyFolders && !this.state.isFolder) || (!this.props.selectOnlyFolders && this.state.isFolder)) } 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\nDialogFileSelect.propTypes = {\n imagePrefix: PropTypes.string,\n dialogName: PropTypes.string, // where to store settings in localStorage\n selected: PropTypes.string,\n onClose: PropTypes.func.isRequired,\n onOk: PropTypes.func.isRequired,\n ok: PropTypes.string,\n cancel: PropTypes.string,\n socket: PropTypes.object.isRequired,\n allowUpload: PropTypes.bool,\n allowDownload: PropTypes.bool,\n allowCreateFolder: PropTypes.bool,\n allowDelete: PropTypes.bool,\n allowView: PropTypes.bool,\n showToolbar: PropTypes.bool,\n objectID: PropTypes.string,\n filterFiles: PropTypes.arrayOf(PropTypes.string),\n filterByType: PropTypes.string,\n limitPath: PropTypes.string,\n selectOnlyFolders: PropTypes.bool,\n};\n\n/** @type {typeof DialogFileSelect} */\nconst _export = withStyles(styles)(DialogFileSelect);\nexport default _export;\n"],"mappings":"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"}
|
package/Dialogs/SelectID.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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","DialogSelectID","props","dialogName","filters","window","_localStorage","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","expertMode","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","withStyles"],"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} DialogSelectIDProps\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<DialogSelectIDProps>}\n */\nclass DialogSelectID extends React.Component {\n /**\n * @param {DialogSelectIDProps} 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 || 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 expertMode={ this.props.expertMode }\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 || 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\nDialogSelectID.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 expertMode: PropTypes.bool, // force expert mode\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 unnecessary 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 DialogSelectID} */\nconst _export = withStyles(styles)(DialogSelectID);\nexport default _export;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAOA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AAEA;;AACA;;AACA;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;EAAA,OAAK;IACrBC,QAAQ,EAAE;MACNC,UAAU,EAAE,MADN;MAENC,SAAS,EAAE;IAFL,CADW;IAKrBC,MAAM,EAAE;MACJC,MAAM,EAAE;IADJ,CALa;IAQrBC,YAAY,EAAE;MACVC,OAAO,EAAE,CADC;MAEVC,KAAK,EAAE,MAFG;MAGVC,QAAQ,EAAE,MAHA;MAIVC,SAAS,EAAE,mBAJD;MAKVL,MAAM,EAAE;IALE,CARO;IAerBM,OAAO,EAAE;MACLN,MAAM,EAAE,MADH;MAELO,QAAQ,EAAE;IAFL,CAfY;IAmBrBC,aAAa,EAAE;MACXN,OAAO,EAAE;IADE,CAnBM;IAsBrBO,SAAS,EAAE;MACPC,UAAU,EAAE,QADL;MAEPP,KAAK,EAAE,mBAFA;MAGPI,QAAQ,EAAE,QAHH;MAIPI,OAAO,EAAE,cAJF;MAKPC,YAAY,EAAE;IALP;EAtBU,CAAL;AAAA,CAApB;AA+BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMC,c;;;;;EACF;AACJ;AACA;EACI,wBAAYC,KAAZ,EAAmB;IAAA;;IAAA;IACf,0BAAMA,KAAN;IACA,MAAKC,UAAL,GAAkB,MAAKD,KAAL,CAAWC,UAAX,IAAyB,SAA3C;IACA,MAAKA,UAAL,GAAkB,cAAc,MAAKA,UAArC;IAEA,MAAKC,OAAL,GAAe,CAACC,MAAM,CAACC,aAAP,IAAwBD,MAAM,CAACE,YAAhC,EAA8CC,OAA9C,CAAsD,MAAKL,UAA3D,KAA0E,IAAzF;;IAEA,IAAI;MACA,MAAKC,OAAL,GAAeK,IAAI,CAACC,KAAL,CAAW,MAAKN,OAAhB,CAAf;IACH,CAFD,CAEE,OAAOO,CAAP,EAAU;MACR,MAAKP,OAAL,GAAe,EAAf;IACH;;IAED,IAAIQ,QAAQ,GAAG,MAAKV,KAAL,CAAWU,QAAX,IAAuB,EAAtC;;IACA,IAAI,yBAAOA,QAAP,MAAoB,QAAxB,EAAkC;MAC9BA,QAAQ,GAAG,CAACA,QAAD,CAAX;IACH;;IACDA,QAAQ,GAAGA,QAAQ,CAACC,MAAT,CAAgB,UAAAC,EAAE;MAAA,OAAIA,EAAJ;IAAA,CAAlB,CAAX;IAEA,MAAKC,KAAL,GAAc;MACVH,QAAQ,EAARA,QADU;MAEVI,IAAI,EAAE,EAFI;MAGVC,QAAQ,EAAEZ,MAAM,CAACa,UAAP,GAAoB;IAHpB,CAAd;IAnBe;EAwBlB;;;;WAED,wBAAe;MACX,KAAKhB,KAAL,CAAWiB,OAAX;IACH;;;WAED,oBAAW;MACP,KAAKjB,KAAL,CAAWkB,IAAX,CAAgB,KAAKlB,KAAL,CAAWmB,WAAX,GAAyB,KAAKN,KAAL,CAAWH,QAApC,GAA+C,KAAKG,KAAL,CAAWH,QAAX,CAAoB,CAApB,KAA0B,EAAzF,EAA6F,KAAKG,KAAL,CAAWC,IAAxG;MACA,KAAKd,KAAL,CAAWiB,OAAX;IACH;;;WAED,kBAAS;MAAA;;MACL,IAAIG,KAAJ;;MACA,IAAI,KAAKP,KAAL,CAAWC,IAAX,IAAmB,KAAKD,KAAL,CAAWH,QAAX,CAAoBW,MAA3C,EAAmD;QAC/C,IAAI,KAAKR,KAAL,CAAWH,QAAX,CAAoBW,MAApB,KAA+B,CAAnC,EAAsC;UAClCD,KAAK,GAAG,cACJ;YAAM,GAAG,EAAC;UAAV,GAAuBE,gBAAA,CAAKC,CAAL,CAAO,aAAP,CAAvB,MADI,eAEJ;YAAM,GAAG,EAAC,IAAV;YAAe,SAAS,EAAG,KAAKvB,KAAL,CAAWwB,OAAX,CAAmB1C;UAA9C,GACI,CAAC,KAAK+B,KAAL,CAAWC,IAAX,IAAmB,KAAKD,KAAL,CAAWH,QAA/B,KAA4C,KAAKG,KAAL,CAAWC,IAAX,GAAkB,OAAO,KAAKD,KAAL,CAAWH,QAAlB,GAA6B,GAA/C,GAAqD,EAAjG,CADJ,CAFI,CAAR;QAMH,CAPD,MAOO;UACHU,KAAK,GAAG,cACJ;YAAM,GAAG,EAAC;UAAV,GAAuBE,gBAAA,CAAKC,CAAL,CAAO,aAAP,CAAvB,MADI,eAEJ;YAAM,GAAG,EAAC,IAAV;YAAe,SAAS,EAAG,KAAKvB,KAAL,CAAWwB,OAAX,CAAmB1C;UAA9C,GACIwC,gBAAA,CAAKC,CAAL,CAAO,UAAP,EAAmB,KAAKV,KAAL,CAAWH,QAAX,CAAoBW,MAAvC,CADJ,CAFI,CAAR;QAMH;MACJ,CAhBD,MAgBO;QACHD,KAAK,GAAG,KAAKpB,KAAL,CAAWoB,KAAX,IAAoBE,gBAAA,CAAKC,CAAL,CAAO,+BAAP,CAA5B;MACH;;MAED,oBAAO,gCAAC,kBAAD;QACH,OAAO,EAAE,mBAAM,CAAE,CADd;QAEH,QAAQ,EAAE,KAFP;QAGH,OAAO,EAAE;UAACE,KAAK,EAAEC,iBAAA,CAAMC,IAAN,CAAW,KAAK3B,KAAL,CAAWwB,OAAX,CAAmBvC,MAA9B,EAAsC,KAAKe,KAAL,CAAWwB,OAAX,CAAmBrC,YAAzD;QAAR,CAHN;QAIH,SAAS,EAAE,IAJR;QAKH,IAAI,EAAE,IALH;QAMH,mBAAgB;MANb,gBAQH,gCAAC,uBAAD;QAAa,EAAE,EAAC,uBAAhB;QAAwC,OAAO,EAAE;UAACyC,IAAI,EAAE,KAAK5B,KAAL,CAAWwB,OAAX,CAAmB7B;QAA1B;MAAjD,GAAyFyB,KAAzF,CARG,eASH,gCAAC,yBAAD;QAAe,SAAS,EAAEM,iBAAA,CAAMC,IAAN,CAAW,KAAK3B,KAAL,CAAWwB,OAAX,CAAmBhC,OAA9B,EAAuC,KAAKQ,KAAL,CAAWwB,OAAX,CAAmB9B,aAA1D;MAA1B,gBACI,gCAAC,yBAAD;QACI,YAAY,EAAG,KAAKM,KAAL,CAAW6B,YAD9B;QAEI,WAAW,EAAG,KAAK7B,KAAL,CAAW8B,WAAX,IAA0B,KAAK9B,KAAL,CAAW+B,MAFvD,CAEgE;QAFhE;QAGI,cAAc,EAAG,KAAK7B,OAH1B;QAII,UAAU,EAAE,KAAKD,UAJrB;QAKI,gBAAgB,EAAG,KAAKD,KAAL,CAAWgC,gBAAX,KAAgCC,SAAhC,GAA4C,KAAKjC,KAAL,CAAWgC,gBAAvD,GAA0E,IALjG;QAMI,UAAU,EAAG,KAAKhC,KAAL,CAAWkC,UAN5B;QAOI,KAAK,EAAG;UAAC7C,KAAK,EAAE,MAAR;UAAgBH,MAAM,EAAE;QAAxB,CAPZ;QAQI,OAAO,EAAG,KAAKc,KAAL,CAAWmC,OAAX,IAAsB,CAAC,MAAD,EAAS,MAAT,EAAiB,MAAjB,EAAyB,MAAzB,EAAiC,MAAjC,EAAyC,KAAzC,CARpC;QASI,KAAK,EAAG,KAAKnC,KAAL,CAAWoC,KAAX,IAAoB,CAAC,OAAD,CAThC;QAUI,CAAC,EAAGd,gBAAA,CAAKC,CAVb;QAWI,IAAI,EAAG,KAAKvB,KAAL,CAAWqC,IAAX,IAAmBf,gBAAA,CAAKgB,WAAL,EAX9B;QAYI,MAAM,EAAG,KAAKtC,KAAL,CAAWuC,MAZxB;QAaI,QAAQ,EAAG,KAAK1B,KAAL,CAAWH,QAb1B;QAcI,WAAW,EAAG,KAAKV,KAAL,CAAWmB,WAd7B;QAeI,WAAW,EAAG,KAAKnB,KAAL,CAAWwC,WAAX,KAA2BP,SAA3B,GAAuC,IAAvC,GAA8C,KAAKjC,KAAL,CAAWwC,WAf3E;QAgBI,IAAI,EAAG,KAAK3B,KAAL,CAAWC,IAhBtB;QAiBI,SAAS,EAAG,KAAKd,KAAL,CAAWyC,SAjB3B;QAkBI,SAAS,EAAG,KAAKzC,KAAL,CAAW0C,SAlB3B;QAmBI,YAAY,EAAG,KAAK1C,KAAL,CAAW2C,YAnB9B;QAoBI,eAAe,EAAG,yBAAAC,YAAY,EAAI;UAC9B,MAAI,CAAC1C,OAAL,GAAe0C,YAAf;UACA,CAACzC,MAAM,CAACC,aAAP,IAAwBD,MAAM,CAACE,YAAhC,EAA8CwC,OAA9C,CAAsD,MAAI,CAAC5C,UAA3D,EAAuEM,IAAI,CAACuC,SAAL,CAAeF,YAAf,CAAvE;QACH,CAvBL;QAwBI,QAAQ,EAAE,kBAAClC,QAAD,EAAWI,IAAX,EAAiBiC,QAAjB,EAA8B;UACpC,IAAIxC,IAAI,CAACuC,SAAL,CAAepC,QAAf,MAA6BH,IAAI,CAACuC,SAAL,CAAe,MAAI,CAACjC,KAAL,CAAWH,QAA1B,CAAjC,EAAsE;YAClE,MAAI,CAACsC,QAAL,CAAc;cAACtC,QAAQ,EAARA,QAAD;cAAWI,IAAI,EAAJA;YAAX,CAAd,EAAgC;cAAA,OAC5BiC,QAAQ,IAAI,MAAI,CAACE,QAAL,EADgB;YAAA,CAAhC;UAEH,CAHD,MAGO,IAAIF,QAAJ,EAAc;YACjB,MAAI,CAACE,QAAL;UACH;QACJ,CA/BL;QAgCI,UAAU,EAAE,KAAKjD,KAAL,CAAWkD;MAhC3B,EADJ,CATG,eA6CH,gCAAC,yBAAD,qBACI,gCAAC,kBAAD;QAAQ,OAAO,EAAC,WAAhB;QAA4B,OAAO,EAAG;UAAA,OAAM,MAAI,CAACD,QAAL,EAAN;QAAA,CAAtC;QAA8D,SAAS,eAAE,gCAAC,iBAAD,OAAzE;QAAqF,QAAQ,EAAG,CAAC,KAAKpC,KAAL,CAAWH,QAAX,CAAoBW,MAArH;QAA8H,KAAK,EAAC;MAApI,GAAgJ,KAAKrB,KAAL,CAAWmD,EAAX,IAAiB7B,gBAAA,CAAKC,CAAL,CAAO,OAAP,CAAjK,CADJ,eAEI,gCAAC,kBAAD;QAAQ,KAAK,EAAC,MAAd;QAAqB,OAAO,EAAC,WAA7B;QAAyC,OAAO,EAAG;UAAA,OAAM,MAAI,CAAC6B,YAAL,EAAN;QAAA,CAAnD;QAA+E,SAAS,eAAE,gCAAC,kBAAD;MAA1F,GAA4G,KAAKpD,KAAL,CAAWqD,MAAX,IAAqB/B,gBAAA,CAAKC,CAAL,CAAO,WAAP,CAAjI,CAFJ,CA7CG,CAAP;IAkDH;;;EA/GwB+B,iBAAA,CAAMC,S;;AAkHnCxD,cAAc,CAACyD,SAAf,GAA2B;EACvBvD,UAAU,EAAEwD,qBAAA,CAAUC,MADC;EACO;EAC9BlC,OAAO,EAAEiC,qBAAA,CAAUE,MAFI;EAGvBnB,WAAW,EAAEiB,qBAAA,CAAUG,IAHA;EAIvB3C,OAAO,EAAEwC,qBAAA,CAAUI,IAAV,CAAeC,UAJD;EAKvB5C,IAAI,EAAEuC,qBAAA,CAAUI,IAAV,CAAeC,UALE;EAMvB1C,KAAK,EAAEqC,qBAAA,CAAUC,MANM;EAOvBrB,IAAI,EAAEoB,qBAAA,CAAUC,MAPO;EAQvB7B,YAAY,EAAE4B,qBAAA,CAAUG,IARD;EASvBG,YAAY,EAAEN,qBAAA,CAAUG,IATD;EAUvBI,UAAU,EAAEP,qBAAA,CAAUC,MAVC;EAWvBhD,QAAQ,EAAE+C,qBAAA,CAAUQ,SAAV,CAAoB,CAC1BR,qBAAA,CAAUC,MADgB,EAE1BD,qBAAA,CAAUS,KAFgB,CAApB,CAXa;EAevBvB,YAAY,EAAEc,qBAAA,CAAUE,MAfD;EAeS;EAChCQ,UAAU,EAAEV,qBAAA,CAAUG,IAhBC;EAiBvBrB,MAAM,EAAEkB,qBAAA,CAAUE,MAAV,CAAiBG,UAjBF;EAkBvBT,MAAM,EAAEI,qBAAA,CAAUC,MAlBK;EAmBvB5B,WAAW,EAAE2B,qBAAA,CAAUC,MAnBA;EAoBvBP,EAAE,EAAEM,qBAAA,CAAUC,MApBS;EAqBvBjB,SAAS,EAAEgB,qBAAA,CAAUC,MArBE;EAsBvBhB,SAAS,EAAEe,qBAAA,CAAUC,MAtBE;EAuBvB1B,gBAAgB,EAAEyB,qBAAA,CAAUG,IAvBL;EAwBvB1B,UAAU,EAAEuB,qBAAA,CAAUG,IAxBC;EAwBK;EAC5BzC,WAAW,EAAEsC,qBAAA,CAAUG,IAzBA;EA0BvBxB,KAAK,EAAEqB,qBAAA,CAAUS,KA1BM;EA0BG;EAC1B/B,OAAO,EAAEsB,qBAAA,CAAUS,KA3BI;EA2BG;EAE1BhB,UAAU,EAAEO,qBAAA,CAAUI,IA7BC,CA6Ba;EACA;;AA9Bb,CAA3B;AAiCA;;AACA,IAAMO,OAAO,GAAG,IAAAC,sBAAA,EAAWzF,MAAX,EAAmBmB,cAAnB,CAAhB;;eACeqE,O"}
|
|
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","DialogSelectID","props","dialogName","filters","window","_localStorage","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","expertMode","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","withStyles"],"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} DialogSelectIDProps\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<DialogSelectIDProps>}\n */\nclass DialogSelectID extends React.Component {\n /**\n * @param {DialogSelectIDProps} 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 || 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 expertMode={this.props.expertMode}\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 || 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\nDialogSelectID.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 expertMode: PropTypes.bool, // force expert mode\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 unnecessary 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 DialogSelectID} */\nconst _export = withStyles(styles)(DialogSelectID);\nexport default _export;\n"],"mappings":"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"}
|
package/README.md
CHANGED
|
@@ -642,6 +642,10 @@ If you still have questions, try to find an answer [here](https://mui.com/guides
|
|
|
642
642
|
-->
|
|
643
643
|
|
|
644
644
|
## Changelog
|
|
645
|
+
### 3.1.30 (2022-08-23)
|
|
646
|
+
* (bluefox) Added method `getCompactSystemRepositories`
|
|
647
|
+
* (bluefox) corrected error in `ObjectBrowser`
|
|
648
|
+
|
|
645
649
|
### 3.1.27 (2022-08-01)
|
|
646
650
|
* (bluefox) Disable file editing in FileViewer
|
|
647
651
|
|
package/i18n/de.json
CHANGED
package/i18n/en.json
CHANGED
package/i18n/es.json
CHANGED
package/i18n/fr.json
CHANGED
package/i18n/it.json
CHANGED
package/i18n/nl.json
CHANGED
package/i18n/pl.json
CHANGED
package/i18n/pt.json
CHANGED
package/i18n/ru.json
CHANGED
package/i18n/zh-cn.json
CHANGED