@iobroker/adapter-react-v5 4.9.10 → 4.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AdminConnection.js.map +1 -1
- package/Components/404.d.ts +5 -2
- package/Components/404.js +83 -105
- package/Components/ColorPicker.js.map +1 -1
- package/Components/ComplexCron.js.map +1 -1
- package/Components/CustomModal.js.map +1 -1
- package/Components/FileBrowser.js.map +1 -1
- package/Components/FileViewer.d.ts +0 -1
- package/Components/FileViewer.js +1 -2
- package/Components/FileViewer.js.map +1 -1
- package/Components/Icon.d.ts +10 -17
- package/Components/Icon.js +104 -161
- package/Components/IconPicker.d.ts +16 -61
- package/Components/IconPicker.js +100 -158
- package/Components/IconSelector.js.map +1 -1
- package/Components/Loader.d.ts +22 -33
- package/Components/Loader.js +276 -102
- package/Components/Loaders/PT.js.map +1 -1
- package/Components/Loaders/Vendor.js.map +1 -1
- package/Components/ObjectBrowser.js +4 -6
- package/Components/ObjectBrowser.js.map +1 -1
- package/Components/Router.js.map +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.d.ts +1 -1
- package/Components/TableResize.js.map +1 -1
- package/Components/TextWithIcon.d.ts +21 -16
- package/Components/TextWithIcon.js +104 -125
- package/Components/TreeTable.js.map +1 -1
- package/Components/UploadImage.d.ts +13 -1
- package/Components/UploadImage.js +499 -292
- package/Components/withWidth.js.map +1 -1
- package/Connection.js.map +1 -1
- package/Dialogs/ComplexCron.js.map +1 -1
- package/Dialogs/Cron.js.map +1 -1
- package/Dialogs/SelectFile.js.map +1 -1
- package/Dialogs/SimpleCron.js.map +1 -1
- package/Dialogs/TextInput.d.ts +2 -86
- package/Dialogs/TextInput.js +37 -130
- package/GenericApp.d.ts +4 -4
- package/GenericApp.js +1 -1
- package/GenericApp.js.map +1 -1
- package/LegacyConnection.d.ts +3 -3
- package/LegacyConnection.js.map +1 -1
- package/README.md +9 -3
- package/Theme.d.ts +3 -4
- package/Theme.js +389 -382
- package/i18n.d.ts +38 -55
- package/i18n.js +164 -189
- 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/IconDocumentReadOnly.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/IconNoIcon.js.map +1 -1
- package/icons/IconOpen.js.map +1 -1
- package/icons/IconState.js.map +1 -1
- package/package.json +5 -5
- package/types.d.ts +4 -2
- package/Components/404.js.map +0 -1
- package/Components/Icon.js.map +0 -1
- package/Components/IconPicker.js.map +0 -1
- package/Components/Loader.js.map +0 -1
- package/Components/TextWithIcon.js.map +0 -1
- package/Components/UploadImage.js.map +0 -1
- package/Dialogs/TextInput.js.map +0 -1
- package/Theme.js.map +0 -1
- package/i18n.js.map +0 -1
|
@@ -77,7 +77,6 @@ declare namespace FileViewer {
|
|
|
77
77
|
let onClose: PropTypes.Requireable<(...args: any[]) => any>;
|
|
78
78
|
let href: PropTypes.Validator<string>;
|
|
79
79
|
let supportSubscribes: PropTypes.Requireable<boolean>;
|
|
80
|
-
let themeType: PropTypes.Requireable<string>;
|
|
81
80
|
}
|
|
82
81
|
}
|
|
83
82
|
import React from 'react';
|
package/Components/FileViewer.js
CHANGED
|
@@ -341,8 +341,7 @@ FileViewer.propTypes = {
|
|
|
341
341
|
t: _propTypes["default"].func,
|
|
342
342
|
onClose: _propTypes["default"].func,
|
|
343
343
|
href: _propTypes["default"].string.isRequired,
|
|
344
|
-
supportSubscribes: _propTypes["default"].bool
|
|
345
|
-
themeType: _propTypes["default"].string
|
|
344
|
+
supportSubscribes: _propTypes["default"].bool
|
|
346
345
|
};
|
|
347
346
|
|
|
348
347
|
/** @type {typeof FileViewer} */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileViewer.js","names":["_react","_interopRequireWildcard","require","_styles","_propTypes","_interopRequireDefault","_material","_fa","_iconsMaterial","_IconNoIcon","_withWidth","_Utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_callSuper","o","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","valueOf","styles","dialog","height","paper","content","textAlign","textarea","width","img","objectFit","dialogTitle","justifyContent","display","EXTENSIONS","exports","images","code","txt","audio","video","bufferToBase64","buffer","isFull","binary","bytes","Uint8Array","len","byteLength","String","fromCharCode","window","btoa","FileViewer","_Component","_inherits2","props","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","id","fileName","size","state","changed","timeout","clearTimeout","setTimeout","alert","text","readFile","setState","forceUpdate","Date","now","ext","Utils","getFileExtension","href","editing","editingValue","copyPossible","includes","imgError","_createClass2","key","value","_this2","parts","split","splice","adapter","name","join","socket","then","data","file","undefined","newState","type","toLowerCase","endsWith","atob","console","error","detectMimeType","concat","componentDidMount","supportSubscribes","subscribeFiles","onFileChanged","componentWillUnmount","getContent","_this3","createElement","className","clsx","classes","getClassBackgroundImage","onError","target","onerror","src","alt","TextField","variant","multiline","inputProps","readOnly","InputProps","render","_this4","Dialog","scrollPaper","scroll","open","onClose","fullWidth","maxWidth","DialogTitle","IconButton","color","onClick","setStateBackgroundImage","Brightness6","DialogContent","DialogActions","Button","copyToClipboard","startIcon","FaCopy","disabled","writeFile64","Save","Close","getEditFile","Component","propTypes","PropTypes","func","string","isRequired","bool","themeType","_export","withWidth","withStyles","_default"],"sources":["FileViewer.js"],"sourcesContent":["// File viewer in adapter-react does not support write\n// import { Buffer } from 'buffer';\nimport React, { Component } from 'react';\nimport { withStyles } from '@mui/styles';\nimport PropTypes from 'prop-types';\n\nimport {\n TextField,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n IconButton,\n} from '@mui/material';\n\n// Icons\nimport { FaCopy as CopyIcon } from 'react-icons/fa';\nimport {\n Close as CloseIcon,\n Save as SaveIcon,\n Brightness6 as Brightness5Icon,\n} from '@mui/icons-material';\n\nimport IconNoIcon from '../icons/IconNoIcon';\nimport withWidth from './withWidth';\nimport Utils from './Utils';\n// File viewer in adapter-react does not use ace editor\n// import Editor from './Editor';\n\nconst styles = () => ({\n dialog: {\n height: '100%',\n },\n paper: {\n height: 'calc(100% - 64px)',\n },\n content: {\n textAlign: 'center',\n },\n textarea: {\n width: '100%',\n height: '100%',\n },\n img: {\n width: 'auto',\n height: 'calc(100% - 5px)',\n objectFit: 'contain',\n },\n dialogTitle: {\n justifyContent: 'space-between',\n display: 'flex',\n },\n});\n\nexport const EXTENSIONS = {\n images: ['png', 'jpg', 'svg', 'jpeg', 'bmp', 'gif', 'apng', 'avif', 'webp'],\n code: ['js', 'json', 'json5', 'md'],\n txt: ['log', 'txt', 'html', 'css', 'xml'],\n audio: ['mp3', 'wav', 'ogg', 'acc'],\n video: ['mp4', 'mov', 'avi'],\n};\n\nfunction bufferToBase64(buffer, isFull) {\n let binary = '';\n const bytes = new Uint8Array(buffer);\n const len = bytes.byteLength;\n for (let i = 0; i < len && (isFull || i < 50); i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return window.btoa(binary);\n}\n\n/**\n * @typedef {object} FileViewerProps\n * @property {string} [key] The key to identify this component.\n * @property {import('../types').Translator} t Translation function\n * @property {ioBroker.Languages} [lang] The selected language.\n * @property {boolean} [expertMode] Is expert mode enabled? (default: false)\n * @property {() => void} onClose Callback when the viewer is closed.\n * @property {string} href The URL to the file to be displayed.\n *\n * @extends {React.Component<FileViewerProps>}\n */\nclass FileViewer extends Component {\n /**\n * @param {Readonly<FileViewerProps>} props\n */\n constructor(props) {\n super(props);\n const ext = Utils.getFileExtension(this.props.href);\n\n this.state = {\n text: null,\n code: null,\n ext,\n // File viewer in adapter-react does not support write\n editing: /* !!this.props.formatEditFile || */ false,\n editingValue: null,\n copyPossible: EXTENSIONS.code.includes(ext) || EXTENSIONS.txt.includes(ext),\n forceUpdate: Date.now(),\n changed: false,\n imgError: false,\n };\n }\n\n readFile() {\n if (this.props.href) {\n const parts = this.props.href.split('/');\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n\n this.props.socket.readFile(adapter, name)\n .then(data => {\n if (data.file !== undefined) {\n data = data.file;\n }\n\n const newState = { copyPossible: this.state.copyPossible, ext: this.state.ext };\n // try to detect valid extension\n if (data.type === 'Buffer') {\n if (name.toLowerCase().endsWith('.json5')) {\n newState.ext = 'json5';\n newState.copyPossible = true;\n try {\n data = atob(bufferToBase64(data.data, true));\n } catch (e) {\n console.error('Cannot convert base64 to string');\n data = '';\n }\n } else {\n const ext = Utils.detectMimeType(bufferToBase64(data.data));\n if (ext) {\n newState.ext = ext;\n newState.copyPossible = EXTENSIONS.code.includes(ext) || EXTENSIONS.txt.includes(ext);\n }\n }\n }\n\n if (newState.copyPossible) {\n if (EXTENSIONS.txt.includes(newState.ext)) {\n newState.text = data;\n newState.editingValue = data;\n } else if (EXTENSIONS.code.includes(newState.ext)) {\n newState.code = data;\n newState.editingValue = data;\n }\n }\n\n this.setState(newState);\n })\n .catch(e => window.alert(`Cannot read file: ${e}`));\n }\n }\n\n componentDidMount() {\n this.readFile();\n\n const parts = this.props.href.split('/');\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n\n this.props.supportSubscribes && this.props.socket.subscribeFiles(adapter, name, this.onFileChanged);\n }\n\n componentWillUnmount() {\n this.timeout && clearTimeout(this.timeout);\n const parts = this.props.href.split('/');\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n this.props.supportSubscribes && this.props.socket.subscribeFiles(adapter, name, this.onFileChanged);\n }\n\n onFileChanged = (id, fileName, size) => {\n if (!this.state.changed) {\n this.timeout && clearTimeout(this.timeout);\n this.timeout = setTimeout(() => {\n this.timeout = null;\n if (size === null) {\n window.alert('Show file was deleted!');\n } else if (this.state.text !== null || this.state.code !== null) {\n this.readFile();\n } else {\n this.setState({ forceUpdate: Date.now() });\n }\n }, 300);\n }\n };\n\n writeFile64 = () => {\n /*\n // File viewer in adapter-react does not support write\n const parts = this.props.href.split('/');\n const data = this.state.editingValue;\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n this.props.socket.writeFile64(adapter, name, Buffer.from(data).toString('base64'))\n .then(() => this.props.onClose())\n .catch(e => window.alert(`Cannot write file: ${e}`));\n */\n };\n\n static getEditFile(ext) {\n switch (ext) {\n case 'json':\n return 'json';\n case 'json5':\n return 'json5';\n case 'js':\n return 'javascript';\n case 'html':\n return 'html';\n case 'txt':\n return 'html';\n default:\n return 'json';\n }\n }\n\n getContent() {\n if (EXTENSIONS.images.includes(this.state.ext)) {\n if (this.state.imgError) {\n return <IconNoIcon className={Utils.clsx(this.props.classes.img, this.props.getClassBackgroundImage())} />;\n }\n return <img\n onError={e => {\n e.target.onerror = null;\n this.setState({ imgError: true });\n }}\n className={Utils.clsx(this.props.classes.img, this.props.getClassBackgroundImage())}\n src={`${this.props.href}?ts=${this.state.forceUpdate}`}\n alt={this.props.href}\n />;\n }\n if (this.state.code !== null || this.state.text !== null || this.state.editing) {\n // File viewer in adapter-react does not support write\n // return <AceEditor\n // mode={FileViewer.getEditFile(this.props.formatEditFile)}\n // width=\"100%\"\n // height=\"100%\"\n // theme={this.props.themeName === 'dark' ? 'clouds_midnight' : 'chrome'}\n // value={this.state.editingValue || this.state.code || this.state.text}\n // onChange={newValue => this.setState({ editingValue: newValue, changed: true })}\n // name=\"UNIQUE_ID_OF_DIV\"\n // readOnly={!this.state.editing}\n // fontSize={14}\n // setOptions={{\n // enableBasicAutocompletion: true,\n // enableLiveAutocompletion: true,\n // enableSnippets: true,\n // }}\n // editorProps={{ $blockScrolling: true }}\n // />;\n return <TextField\n variant=\"standard\"\n className={this.props.classes.textarea}\n multiline\n inputProps={{ readOnly: !this.state.editing }}\n value={this.state.editingValue || this.state.code || this.state.text}\n // onChange={newValue => this.setState({ editingValue: newValue, changed: true })}\n InputProps={{ readOnly: !this.state.editing }}\n />;\n }\n return null;\n }\n\n render() {\n return <Dialog\n classes={{ scrollPaper: this.props.classes.dialog, paper: this.props.classes.paper }}\n scroll=\"paper\"\n open={!!this.props.href}\n onClose={() => this.props.onClose()}\n fullWidth\n maxWidth=\"xl\"\n aria-labelledby=\"ar_dialog_file_view_title\"\n >\n <div className={this.props.classes.dialogTitle}>\n <DialogTitle id=\"ar_dialog_file_view_title\">{`${this.props.t(this.state.editing ? 'Edit' : 'View')}: ${this.props.href}`}</DialogTitle>\n {EXTENSIONS.images.includes(this.state.ext) && <div>\n <IconButton\n size=\"large\"\n color=\"inherit\"\n onClick={this.props.setStateBackgroundImage}\n >\n <Brightness5Icon />\n </IconButton>\n </div>}\n </div>\n <DialogContent className={this.props.classes.content}>\n {this.getContent()}\n </DialogContent>\n <DialogActions>\n {this.state.copyPossible ?\n <Button\n color=\"grey\"\n onClick={e => Utils.copyToClipboard(this.state.text || this.state.code, e)}\n startIcon={<CopyIcon />}\n >\n {this.props.t('Copy content')}\n </Button> : null}\n {this.state.editing ?\n <Button\n color=\"grey\"\n disabled={this.state.editingValue === this.state.code || this.state.editingValue === this.state.text}\n variant=\"contained\"\n onClick={this.writeFile64}\n startIcon={<SaveIcon />}\n >\n {this.props.t('Save')}\n </Button> : null}\n <Button\n variant=\"contained\"\n onClick={() => this.props.onClose()}\n color=\"primary\"\n startIcon={<CloseIcon />}\n >\n {this.props.t('Close')}\n </Button>\n </DialogActions>\n </Dialog>;\n }\n}\n\nFileViewer.propTypes = {\n t: PropTypes.func,\n onClose: PropTypes.func,\n href: PropTypes.string.isRequired,\n supportSubscribes: PropTypes.bool,\n themeType: PropTypes.string,\n};\n\n/** @type {typeof FileViewer} */\nconst _export = withWidth()(withStyles(styles)(FileViewer));\nexport default _export;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FileViewer.js","names":["_react","_interopRequireWildcard","require","_styles","_propTypes","_interopRequireDefault","_material","_fa","_iconsMaterial","_IconNoIcon","_withWidth","_Utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_callSuper","o","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","valueOf","styles","dialog","height","paper","content","textAlign","textarea","width","img","objectFit","dialogTitle","justifyContent","display","EXTENSIONS","exports","images","code","txt","audio","video","bufferToBase64","buffer","isFull","binary","bytes","Uint8Array","len","byteLength","String","fromCharCode","window","btoa","FileViewer","_Component","_inherits2","props","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","id","fileName","size","state","changed","timeout","clearTimeout","setTimeout","alert","text","readFile","setState","forceUpdate","Date","now","ext","Utils","getFileExtension","href","editing","editingValue","copyPossible","includes","imgError","_createClass2","key","value","_this2","parts","split","splice","adapter","name","join","socket","then","data","file","undefined","newState","type","toLowerCase","endsWith","atob","console","error","detectMimeType","concat","componentDidMount","supportSubscribes","subscribeFiles","onFileChanged","componentWillUnmount","getContent","_this3","createElement","className","clsx","classes","getClassBackgroundImage","onError","target","onerror","src","alt","TextField","variant","multiline","inputProps","readOnly","InputProps","render","_this4","Dialog","scrollPaper","scroll","open","onClose","fullWidth","maxWidth","DialogTitle","IconButton","color","onClick","setStateBackgroundImage","Brightness6","DialogContent","DialogActions","Button","copyToClipboard","startIcon","FaCopy","disabled","writeFile64","Save","Close","getEditFile","Component","propTypes","PropTypes","func","string","isRequired","bool","_export","withWidth","withStyles","_default"],"sources":["FileViewer.js"],"sourcesContent":["// File viewer in adapter-react does not support write\n// import { Buffer } from 'buffer';\nimport React, { Component } from 'react';\nimport { withStyles } from '@mui/styles';\nimport PropTypes from 'prop-types';\n\nimport {\n TextField,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n IconButton,\n} from '@mui/material';\n\n// Icons\nimport { FaCopy as CopyIcon } from 'react-icons/fa';\nimport {\n Close as CloseIcon,\n Save as SaveIcon,\n Brightness6 as Brightness5Icon,\n} from '@mui/icons-material';\n\nimport IconNoIcon from '../icons/IconNoIcon';\nimport withWidth from './withWidth';\nimport Utils from './Utils';\n// File viewer in adapter-react does not use ace editor\n// import Editor from './Editor';\n\nconst styles = () => ({\n dialog: {\n height: '100%',\n },\n paper: {\n height: 'calc(100% - 64px)',\n },\n content: {\n textAlign: 'center',\n },\n textarea: {\n width: '100%',\n height: '100%',\n },\n img: {\n width: 'auto',\n height: 'calc(100% - 5px)',\n objectFit: 'contain',\n },\n dialogTitle: {\n justifyContent: 'space-between',\n display: 'flex',\n },\n});\n\nexport const EXTENSIONS = {\n images: ['png', 'jpg', 'svg', 'jpeg', 'bmp', 'gif', 'apng', 'avif', 'webp'],\n code: ['js', 'json', 'json5', 'md'],\n txt: ['log', 'txt', 'html', 'css', 'xml'],\n audio: ['mp3', 'wav', 'ogg', 'acc'],\n video: ['mp4', 'mov', 'avi'],\n};\n\nfunction bufferToBase64(buffer, isFull) {\n let binary = '';\n const bytes = new Uint8Array(buffer);\n const len = bytes.byteLength;\n for (let i = 0; i < len && (isFull || i < 50); i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return window.btoa(binary);\n}\n\n/**\n * @typedef {object} FileViewerProps\n * @property {string} [key] The key to identify this component.\n * @property {import('../types').Translator} t Translation function\n * @property {ioBroker.Languages} [lang] The selected language.\n * @property {boolean} [expertMode] Is expert mode enabled? (default: false)\n * @property {() => void} onClose Callback when the viewer is closed.\n * @property {string} href The URL to the file to be displayed.\n *\n * @extends {React.Component<FileViewerProps>}\n */\nclass FileViewer extends Component {\n /**\n * @param {Readonly<FileViewerProps>} props\n */\n constructor(props) {\n super(props);\n const ext = Utils.getFileExtension(this.props.href);\n\n this.state = {\n text: null,\n code: null,\n ext,\n // File viewer in adapter-react does not support write\n editing: /* !!this.props.formatEditFile || */ false,\n editingValue: null,\n copyPossible: EXTENSIONS.code.includes(ext) || EXTENSIONS.txt.includes(ext),\n forceUpdate: Date.now(),\n changed: false,\n imgError: false,\n };\n }\n\n readFile() {\n if (this.props.href) {\n const parts = this.props.href.split('/');\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n\n this.props.socket.readFile(adapter, name)\n .then(data => {\n if (data.file !== undefined) {\n data = data.file;\n }\n\n const newState = { copyPossible: this.state.copyPossible, ext: this.state.ext };\n // try to detect valid extension\n if (data.type === 'Buffer') {\n if (name.toLowerCase().endsWith('.json5')) {\n newState.ext = 'json5';\n newState.copyPossible = true;\n try {\n data = atob(bufferToBase64(data.data, true));\n } catch (e) {\n console.error('Cannot convert base64 to string');\n data = '';\n }\n } else {\n const ext = Utils.detectMimeType(bufferToBase64(data.data));\n if (ext) {\n newState.ext = ext;\n newState.copyPossible = EXTENSIONS.code.includes(ext) || EXTENSIONS.txt.includes(ext);\n }\n }\n }\n\n if (newState.copyPossible) {\n if (EXTENSIONS.txt.includes(newState.ext)) {\n newState.text = data;\n newState.editingValue = data;\n } else if (EXTENSIONS.code.includes(newState.ext)) {\n newState.code = data;\n newState.editingValue = data;\n }\n }\n\n this.setState(newState);\n })\n .catch(e => window.alert(`Cannot read file: ${e}`));\n }\n }\n\n componentDidMount() {\n this.readFile();\n\n const parts = this.props.href.split('/');\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n\n this.props.supportSubscribes && this.props.socket.subscribeFiles(adapter, name, this.onFileChanged);\n }\n\n componentWillUnmount() {\n this.timeout && clearTimeout(this.timeout);\n const parts = this.props.href.split('/');\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n this.props.supportSubscribes && this.props.socket.subscribeFiles(adapter, name, this.onFileChanged);\n }\n\n onFileChanged = (id, fileName, size) => {\n if (!this.state.changed) {\n this.timeout && clearTimeout(this.timeout);\n this.timeout = setTimeout(() => {\n this.timeout = null;\n if (size === null) {\n window.alert('Show file was deleted!');\n } else if (this.state.text !== null || this.state.code !== null) {\n this.readFile();\n } else {\n this.setState({ forceUpdate: Date.now() });\n }\n }, 300);\n }\n };\n\n writeFile64 = () => {\n /*\n // File viewer in adapter-react does not support write\n const parts = this.props.href.split('/');\n const data = this.state.editingValue;\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n this.props.socket.writeFile64(adapter, name, Buffer.from(data).toString('base64'))\n .then(() => this.props.onClose())\n .catch(e => window.alert(`Cannot write file: ${e}`));\n */\n };\n\n static getEditFile(ext) {\n switch (ext) {\n case 'json':\n return 'json';\n case 'json5':\n return 'json5';\n case 'js':\n return 'javascript';\n case 'html':\n return 'html';\n case 'txt':\n return 'html';\n default:\n return 'json';\n }\n }\n\n getContent() {\n if (EXTENSIONS.images.includes(this.state.ext)) {\n if (this.state.imgError) {\n return <IconNoIcon className={Utils.clsx(this.props.classes.img, this.props.getClassBackgroundImage())} />;\n }\n return <img\n onError={e => {\n e.target.onerror = null;\n this.setState({ imgError: true });\n }}\n className={Utils.clsx(this.props.classes.img, this.props.getClassBackgroundImage())}\n src={`${this.props.href}?ts=${this.state.forceUpdate}`}\n alt={this.props.href}\n />;\n }\n if (this.state.code !== null || this.state.text !== null || this.state.editing) {\n // File viewer in adapter-react does not support write\n // return <AceEditor\n // mode={FileViewer.getEditFile(this.props.formatEditFile)}\n // width=\"100%\"\n // height=\"100%\"\n // theme={this.props.themeName === 'dark' ? 'clouds_midnight' : 'chrome'}\n // value={this.state.editingValue || this.state.code || this.state.text}\n // onChange={newValue => this.setState({ editingValue: newValue, changed: true })}\n // name=\"UNIQUE_ID_OF_DIV\"\n // readOnly={!this.state.editing}\n // fontSize={14}\n // setOptions={{\n // enableBasicAutocompletion: true,\n // enableLiveAutocompletion: true,\n // enableSnippets: true,\n // }}\n // editorProps={{ $blockScrolling: true }}\n // />;\n return <TextField\n variant=\"standard\"\n className={this.props.classes.textarea}\n multiline\n inputProps={{ readOnly: !this.state.editing }}\n value={this.state.editingValue || this.state.code || this.state.text}\n // onChange={newValue => this.setState({ editingValue: newValue, changed: true })}\n InputProps={{ readOnly: !this.state.editing }}\n />;\n }\n return null;\n }\n\n render() {\n return <Dialog\n classes={{ scrollPaper: this.props.classes.dialog, paper: this.props.classes.paper }}\n scroll=\"paper\"\n open={!!this.props.href}\n onClose={() => this.props.onClose()}\n fullWidth\n maxWidth=\"xl\"\n aria-labelledby=\"ar_dialog_file_view_title\"\n >\n <div className={this.props.classes.dialogTitle}>\n <DialogTitle id=\"ar_dialog_file_view_title\">{`${this.props.t(this.state.editing ? 'Edit' : 'View')}: ${this.props.href}`}</DialogTitle>\n {EXTENSIONS.images.includes(this.state.ext) && <div>\n <IconButton\n size=\"large\"\n color=\"inherit\"\n onClick={this.props.setStateBackgroundImage}\n >\n <Brightness5Icon />\n </IconButton>\n </div>}\n </div>\n <DialogContent className={this.props.classes.content}>\n {this.getContent()}\n </DialogContent>\n <DialogActions>\n {this.state.copyPossible ?\n <Button\n color=\"grey\"\n onClick={e => Utils.copyToClipboard(this.state.text || this.state.code, e)}\n startIcon={<CopyIcon />}\n >\n {this.props.t('Copy content')}\n </Button> : null}\n {this.state.editing ?\n <Button\n color=\"grey\"\n disabled={this.state.editingValue === this.state.code || this.state.editingValue === this.state.text}\n variant=\"contained\"\n onClick={this.writeFile64}\n startIcon={<SaveIcon />}\n >\n {this.props.t('Save')}\n </Button> : null}\n <Button\n variant=\"contained\"\n onClick={() => this.props.onClose()}\n color=\"primary\"\n startIcon={<CloseIcon />}\n >\n {this.props.t('Close')}\n </Button>\n </DialogActions>\n </Dialog>;\n }\n}\n\nFileViewer.propTypes = {\n t: PropTypes.func,\n onClose: PropTypes.func,\n href: PropTypes.string.isRequired,\n supportSubscribes: PropTypes.bool,\n};\n\n/** @type {typeof FileViewer} */\nconst _export = withWidth()(withStyles(styles)(FileViewer));\nexport default _export;\n"],"mappings":"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","ignoreList":[]}
|
package/Components/Icon.d.ts
CHANGED
|
@@ -1,19 +1,12 @@
|
|
|
1
|
-
export function getSystemIcon(obj: any): React.JSX.Element;
|
|
2
|
-
export function getSelectIdIcon(obj: any, imagePrefix: any): string;
|
|
3
|
-
export default Icon;
|
|
4
1
|
import React from 'react';
|
|
5
|
-
declare
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
let src: PropTypes.Validator<NonNullable<NonNullable<string | object>>>;
|
|
14
|
-
let className: PropTypes.Requireable<string>;
|
|
15
|
-
let style: PropTypes.Requireable<object>;
|
|
16
|
-
let styleUTF8: PropTypes.Requireable<object>;
|
|
17
|
-
}
|
|
2
|
+
export declare function getSystemIcon(obj: ioBroker.Object | null): React.JSX.Element | null;
|
|
3
|
+
export declare function getSelectIdIcon(obj: ioBroker.Object | null, imagePrefix?: string): string | null;
|
|
4
|
+
interface IconProps {
|
|
5
|
+
src: string | React.JSX.Element | null | undefined;
|
|
6
|
+
className?: string;
|
|
7
|
+
style?: React.CSSProperties;
|
|
8
|
+
title?: string;
|
|
9
|
+
styleUTF8?: React.CSSProperties;
|
|
18
10
|
}
|
|
19
|
-
|
|
11
|
+
declare const Icon: (props: IconProps) => React.JSX.Element;
|
|
12
|
+
export default Icon;
|
package/Components/Icon.js
CHANGED
|
@@ -1,173 +1,116 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
14
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
15
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
16
|
-
var _react = _interopRequireDefault(require("react"));
|
|
17
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
18
|
-
var _reactInlinesvg = _interopRequireDefault(require("react-inlinesvg"));
|
|
19
|
-
var _iconsMaterial = require("@mui/icons-material");
|
|
20
|
-
var _IconAlias = _interopRequireDefault(require("../icons/IconAlias"));
|
|
21
|
-
var _Utils = _interopRequireDefault(require("./Utils"));
|
|
22
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
23
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
24
|
-
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
25
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getSelectIdIcon = exports.getSystemIcon = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const react_inlinesvg_1 = __importDefault(require("react-inlinesvg"));
|
|
9
|
+
const icons_material_1 = require("@mui/icons-material");
|
|
10
|
+
const IconAlias_1 = __importDefault(require("../icons/IconAlias"));
|
|
11
|
+
const Utils_1 = __importDefault(require("./Utils"));
|
|
26
12
|
function getSystemIcon(obj) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
icon
|
|
64
|
-
className: "iconOwn"
|
|
65
|
-
});
|
|
66
|
-
} else if (id.endsWith('.info')) {
|
|
67
|
-
icon = /*#__PURE__*/_react["default"].createElement(_iconsMaterial.Info, {
|
|
68
|
-
className: "iconOwn"
|
|
69
|
-
});
|
|
70
|
-
} else if ((obj === null || obj === void 0 ? void 0 : obj.type) === 'meta') {
|
|
71
|
-
icon = /*#__PURE__*/_react["default"].createElement(_iconsMaterial.Description, {
|
|
72
|
-
className: "iconOwn"
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
return icon || null;
|
|
13
|
+
let icon;
|
|
14
|
+
const id = obj === null || obj === void 0 ? void 0 : obj._id;
|
|
15
|
+
if (!id) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
// system or design has special icons
|
|
19
|
+
if (id.startsWith('_design/') || (id === 'system')) {
|
|
20
|
+
icon = react_1.default.createElement(icons_material_1.SettingsApplications, { className: "iconOwn" });
|
|
21
|
+
}
|
|
22
|
+
else if (id === '0_userdata' || id === '0_userdata.0') {
|
|
23
|
+
icon = react_1.default.createElement(icons_material_1.Photo, { className: "iconOwn" });
|
|
24
|
+
}
|
|
25
|
+
else if (id === 'alias' || id === 'alias.0') {
|
|
26
|
+
icon = react_1.default.createElement(IconAlias_1.default, { className: "iconOwn" });
|
|
27
|
+
}
|
|
28
|
+
else if (id === 'system.adapter') {
|
|
29
|
+
icon = react_1.default.createElement(icons_material_1.SettingsApplications, { className: "iconOwn" });
|
|
30
|
+
}
|
|
31
|
+
else if (id === 'system.group') {
|
|
32
|
+
icon = react_1.default.createElement(icons_material_1.SupervisedUserCircle, { className: "iconOwn" });
|
|
33
|
+
}
|
|
34
|
+
else if (id === 'system.user') {
|
|
35
|
+
icon = react_1.default.createElement(icons_material_1.PersonOutlined, { className: "iconOwn" });
|
|
36
|
+
}
|
|
37
|
+
else if (id === 'system.host') {
|
|
38
|
+
icon = react_1.default.createElement(icons_material_1.Router, { className: "iconOwn" });
|
|
39
|
+
}
|
|
40
|
+
else if (id.endsWith('.connection') || id.endsWith('.connected')) {
|
|
41
|
+
icon = react_1.default.createElement(icons_material_1.Wifi, { className: "iconOwn" });
|
|
42
|
+
}
|
|
43
|
+
else if (id.endsWith('.info')) {
|
|
44
|
+
icon = react_1.default.createElement(icons_material_1.Info, { className: "iconOwn" });
|
|
45
|
+
}
|
|
46
|
+
else if ((obj === null || obj === void 0 ? void 0 : obj.type) === 'meta') {
|
|
47
|
+
icon = react_1.default.createElement(icons_material_1.Description, { className: "iconOwn" });
|
|
48
|
+
}
|
|
49
|
+
return icon || null;
|
|
76
50
|
}
|
|
51
|
+
exports.getSystemIcon = getSystemIcon;
|
|
77
52
|
function getSelectIdIcon(obj, imagePrefix) {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
53
|
+
imagePrefix = imagePrefix || '.'; // http://localhost:8081';
|
|
54
|
+
let src = '';
|
|
55
|
+
const common = obj === null || obj === void 0 ? void 0 : obj.common;
|
|
56
|
+
if (common) {
|
|
57
|
+
const cIcon = common.icon;
|
|
58
|
+
if (cIcon) {
|
|
59
|
+
if (!cIcon.startsWith('data:image/')) {
|
|
60
|
+
if (cIcon.includes('.')) {
|
|
61
|
+
let instance;
|
|
62
|
+
if (obj.type === 'instance' || obj.type === 'adapter') {
|
|
63
|
+
src = `${imagePrefix}/adapter/${common.name}/${cIcon}`;
|
|
64
|
+
}
|
|
65
|
+
else if (obj._id && obj._id.startsWith('system.adapter.')) {
|
|
66
|
+
instance = obj._id.split('.', 3);
|
|
67
|
+
if (cIcon[0] === '/') {
|
|
68
|
+
instance[2] += cIcon;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
instance[2] += `/${cIcon}`;
|
|
72
|
+
}
|
|
73
|
+
src = `${imagePrefix}/adapter/${instance[2]}`;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
instance = obj._id.split('.', 2);
|
|
77
|
+
if (cIcon[0] === '/') {
|
|
78
|
+
instance[0] += cIcon;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
instance[0] += `/${cIcon}`;
|
|
82
|
+
}
|
|
83
|
+
src = `${imagePrefix}/adapter/${instance[0]}`;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
95
89
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
if (cIcon[0] === '/') {
|
|
100
|
-
instance[0] += cIcon;
|
|
101
|
-
} else {
|
|
102
|
-
instance[0] += "/".concat(cIcon);
|
|
90
|
+
else {
|
|
91
|
+
// base 64 image
|
|
92
|
+
src = cIcon;
|
|
103
93
|
}
|
|
104
|
-
src = "".concat(imagePrefix, "/adapter/").concat(instance[0]);
|
|
105
|
-
}
|
|
106
|
-
} else {
|
|
107
|
-
return null;
|
|
108
94
|
}
|
|
109
|
-
} else {
|
|
110
|
-
// base 64 image
|
|
111
|
-
src = cIcon;
|
|
112
|
-
}
|
|
113
95
|
}
|
|
114
|
-
|
|
115
|
-
return src || null;
|
|
96
|
+
return src || null;
|
|
116
97
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
(
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
return /*#__PURE__*/_react["default"].createElement("span", {
|
|
131
|
-
title: this.props.title || undefined,
|
|
132
|
-
style: _objectSpread({
|
|
133
|
-
height: 27,
|
|
134
|
-
marginTop: -8
|
|
135
|
-
}, this.props.styleUTF8 || this.props.style),
|
|
136
|
-
className: _Utils["default"].clsx(this.props.className, 'iconOwn')
|
|
137
|
-
}, this.props.src);
|
|
138
|
-
}
|
|
139
|
-
if (this.props.src.startsWith('data:image/svg')) {
|
|
140
|
-
var _this$props$style, _this$props$style2, _this$props$style3;
|
|
141
|
-
return /*#__PURE__*/_react["default"].createElement(_reactInlinesvg["default"], {
|
|
142
|
-
title: this.props.title || undefined,
|
|
143
|
-
src: this.props.src,
|
|
144
|
-
className: _Utils["default"].clsx(this.props.className, 'iconOwn'),
|
|
145
|
-
width: ((_this$props$style = this.props.style) === null || _this$props$style === void 0 ? void 0 : _this$props$style.width) || 28,
|
|
146
|
-
height: ((_this$props$style2 = this.props.style) === null || _this$props$style2 === void 0 ? void 0 : _this$props$style2.height) || ((_this$props$style3 = this.props.style) === null || _this$props$style3 === void 0 ? void 0 : _this$props$style3.width) || 28,
|
|
147
|
-
style: this.props.style || {}
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
return /*#__PURE__*/_react["default"].createElement("img", {
|
|
151
|
-
title: this.props.title || undefined,
|
|
152
|
-
style: this.props.style || {},
|
|
153
|
-
className: _Utils["default"].clsx(this.props.className, 'iconOwn'),
|
|
154
|
-
src: this.props.src,
|
|
155
|
-
alt: ""
|
|
156
|
-
});
|
|
98
|
+
exports.getSelectIdIcon = getSelectIdIcon;
|
|
99
|
+
const Icon = (props) => {
|
|
100
|
+
var _a, _b, _c;
|
|
101
|
+
if (props.src) {
|
|
102
|
+
if (typeof props.src === 'string') {
|
|
103
|
+
if (props.src.length < 3) {
|
|
104
|
+
// utf-8 char
|
|
105
|
+
return react_1.default.createElement("span", { title: props.title || undefined, style: Object.assign({ height: 27, marginTop: -8 }, (props.styleUTF8 || props.style)), className: Utils_1.default.clsx(props.className, 'iconOwn') }, props.src);
|
|
106
|
+
}
|
|
107
|
+
if (props.src.startsWith('data:image/svg')) {
|
|
108
|
+
return react_1.default.createElement(react_inlinesvg_1.default, { title: props.title || undefined, src: props.src, className: Utils_1.default.clsx(props.className, 'iconOwn'), width: ((_a = props.style) === null || _a === void 0 ? void 0 : _a.width) || 28, height: ((_b = props.style) === null || _b === void 0 ? void 0 : _b.height) || ((_c = props.style) === null || _c === void 0 ? void 0 : _c.width) || 28, style: props.style || {} });
|
|
109
|
+
}
|
|
110
|
+
return react_1.default.createElement("img", { title: props.title || undefined, style: props.style || {}, className: Utils_1.default.clsx(props.className, 'iconOwn'), src: props.src, alt: "" });
|
|
157
111
|
}
|
|
158
|
-
return
|
|
159
|
-
}
|
|
160
|
-
return null;
|
|
112
|
+
return props.src;
|
|
161
113
|
}
|
|
162
|
-
|
|
163
|
-
return Icon;
|
|
164
|
-
}(_react["default"].Component);
|
|
165
|
-
Icon.propTypes = {
|
|
166
|
-
title: _propTypes["default"].string,
|
|
167
|
-
src: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]).isRequired,
|
|
168
|
-
className: _propTypes["default"].string,
|
|
169
|
-
style: _propTypes["default"].object,
|
|
170
|
-
styleUTF8: _propTypes["default"].object
|
|
114
|
+
return null;
|
|
171
115
|
};
|
|
172
|
-
|
|
173
|
-
//# sourceMappingURL=Icon.js.map
|
|
116
|
+
exports.default = Icon;
|
|
@@ -1,65 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* The label.
|
|
9
|
-
*/
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface IconPickerProps {
|
|
3
|
+
previewClassName?: string;
|
|
4
|
+
/** Custom icon element. */
|
|
5
|
+
icon?: React.ComponentType<any>;
|
|
6
|
+
customClasses?: Record<string, string>;
|
|
7
|
+
/** The label. */
|
|
10
8
|
label?: string;
|
|
11
|
-
/**
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
/** The value. */
|
|
10
|
+
value?: any;
|
|
11
|
+
/** Set to true to disable the icon picker. */
|
|
14
12
|
disabled?: boolean;
|
|
15
|
-
/**
|
|
16
|
-
* The icon change callback.
|
|
17
|
-
*/
|
|
13
|
+
/** The icon change callback. */
|
|
18
14
|
onChange: (icon: string) => void;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
socket: import('../Connection').default;
|
|
23
|
-
/**
|
|
24
|
-
* The image prefix (default: './files/')
|
|
25
|
-
*/
|
|
26
|
-
imagePrefix?: string;
|
|
27
|
-
/**
|
|
28
|
-
* Additional styling for this component.
|
|
29
|
-
*/
|
|
30
|
-
style?: React.CSSProperties;
|
|
31
|
-
/**
|
|
32
|
-
* The CSS class name.
|
|
33
|
-
*/
|
|
34
|
-
className?: string;
|
|
35
|
-
};
|
|
36
|
-
/**
|
|
37
|
-
* @typedef {object} IconPickerProps
|
|
38
|
-
* @property {string} [value] The value.
|
|
39
|
-
* @property {string} [label] The label.
|
|
40
|
-
* @property {boolean} [disabled] Set to true to disable the icon picker.
|
|
41
|
-
* @property {(icon: string) => void} onChange The icon change callback.
|
|
42
|
-
* @property {import('../Connection').default} socket The socket connection.
|
|
43
|
-
* @property {string} [imagePrefix] The image prefix (default: './files/')
|
|
44
|
-
* @property {React.CSSProperties} [style] Additional styling for this component.
|
|
45
|
-
* @property {string} [className] The CSS class name.
|
|
46
|
-
*
|
|
47
|
-
* @extends {React.Component<IconPickerProps>}
|
|
48
|
-
*/
|
|
49
|
-
declare function IconPicker(props: any): React.JSX.Element;
|
|
50
|
-
declare namespace IconPicker {
|
|
51
|
-
namespace propTypes {
|
|
52
|
-
let previewClassName: PropTypes.Requireable<string>;
|
|
53
|
-
let icon: PropTypes.Requireable<object>;
|
|
54
|
-
let customClasses: PropTypes.Requireable<object>;
|
|
55
|
-
let label: PropTypes.Requireable<string>;
|
|
56
|
-
let value: PropTypes.Requireable<any>;
|
|
57
|
-
let disabled: PropTypes.Requireable<boolean>;
|
|
58
|
-
let onChange: PropTypes.Validator<(...args: any[]) => any>;
|
|
59
|
-
let icons: PropTypes.Requireable<any[]>;
|
|
60
|
-
let onlyRooms: PropTypes.Requireable<boolean>;
|
|
61
|
-
let onlyDevices: PropTypes.Requireable<boolean>;
|
|
62
|
-
}
|
|
15
|
+
icons: any[];
|
|
16
|
+
onlyRooms: boolean;
|
|
17
|
+
onlyDevices: boolean;
|
|
63
18
|
}
|
|
64
|
-
|
|
65
|
-
|
|
19
|
+
declare const IconPicker: (props: IconPickerProps) => React.JSX.Element;
|
|
20
|
+
export default IconPicker;
|