@iobroker/adapter-react-v5 4.5.4 → 4.6.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 +1 -2
- package/AdminConnection.js.map +1 -1
- package/Components/404.js +1 -2
- package/Components/404.js.map +1 -1
- package/Components/ColorPicker.js +2 -3
- package/Components/ColorPicker.js.map +1 -1
- package/Components/ComplexCron.js +1 -2
- package/Components/ComplexCron.js.map +1 -1
- package/Components/CustomModal.js +1 -2
- package/Components/CustomModal.js.map +1 -1
- package/Components/FileBrowser.js +1 -2
- package/Components/FileBrowser.js.map +1 -1
- package/Components/FileViewer.js +2 -4
- package/Components/FileViewer.js.map +1 -1
- package/Components/Icon.js +1 -2
- package/Components/Icon.js.map +1 -1
- package/Components/IconPicker.js +1 -2
- package/Components/IconPicker.js.map +1 -1
- package/Components/IconSelector.js +1 -2
- package/Components/IconSelector.js.map +1 -1
- package/Components/Image.js +1 -2
- package/Components/Image.js.map +1 -1
- package/Components/JsonConfigComponent/ChipInput.js +2 -4
- package/Components/JsonConfigComponent/ChipInput.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigAccordion.js +1 -2
- package/Components/JsonConfigComponent/ConfigAccordion.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigAlive.js +1 -2
- package/Components/JsonConfigComponent/ConfigAlive.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigAutocomplete.js +1 -2
- package/Components/JsonConfigComponent/ConfigAutocomplete.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js +1 -2
- package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCRON.js +1 -2
- package/Components/JsonConfigComponent/ConfigCRON.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCertCollection.js +1 -2
- package/Components/JsonConfigComponent/ConfigCertCollection.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCertificateSelect.js +1 -2
- package/Components/JsonConfigComponent/ConfigCertificateSelect.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCertificates.js +1 -2
- package/Components/JsonConfigComponent/ConfigCertificates.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCheckLicense.js +1 -2
- package/Components/JsonConfigComponent/ConfigCheckLicense.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCheckbox.js +1 -2
- package/Components/JsonConfigComponent/ConfigCheckbox.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigChip.js +1 -2
- package/Components/JsonConfigComponent/ConfigChip.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigColor.js +1 -2
- package/Components/JsonConfigComponent/ConfigColor.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCoordinates.js +1 -2
- package/Components/JsonConfigComponent/ConfigCoordinates.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCustom.js +1 -2
- package/Components/JsonConfigComponent/ConfigCustom.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigDatePicker.js +1 -2
- package/Components/JsonConfigComponent/ConfigDatePicker.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFile.js +1 -2
- package/Components/JsonConfigComponent/ConfigFile.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFileSelector.js +1 -2
- package/Components/JsonConfigComponent/ConfigFileSelector.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFunc.js +1 -2
- package/Components/JsonConfigComponent/ConfigFunc.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigGeneric.js +1 -2
- package/Components/JsonConfigComponent/ConfigGeneric.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigIP.js +1 -2
- package/Components/JsonConfigComponent/ConfigIP.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigImageSendTo.js +1 -2
- package/Components/JsonConfigComponent/ConfigImageSendTo.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigImageUpload.js +1 -2
- package/Components/JsonConfigComponent/ConfigImageUpload.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigInstanceSelect.js +1 -2
- package/Components/JsonConfigComponent/ConfigInstanceSelect.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigJsonEditor.js +1 -2
- package/Components/JsonConfigComponent/ConfigJsonEditor.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigLanguage.js +1 -2
- package/Components/JsonConfigComponent/ConfigLanguage.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigLicense.js +1 -2
- package/Components/JsonConfigComponent/ConfigLicense.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigNumber.js +1 -2
- package/Components/JsonConfigComponent/ConfigNumber.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigObjectId.js +1 -2
- package/Components/JsonConfigComponent/ConfigObjectId.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigPanel.js +1 -2
- package/Components/JsonConfigComponent/ConfigPanel.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigPassword.js +1 -2
- package/Components/JsonConfigComponent/ConfigPassword.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigPattern.js +1 -2
- package/Components/JsonConfigComponent/ConfigPattern.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigPort.js +1 -2
- package/Components/JsonConfigComponent/ConfigPort.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigRoom.js +1 -2
- package/Components/JsonConfigComponent/ConfigRoom.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSelect.js +1 -2
- package/Components/JsonConfigComponent/ConfigSelect.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSelectSendTo.js +1 -2
- package/Components/JsonConfigComponent/ConfigSelectSendTo.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSendto.js +1 -2
- package/Components/JsonConfigComponent/ConfigSendto.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSetState.js +1 -2
- package/Components/JsonConfigComponent/ConfigSetState.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSlider.js +1 -2
- package/Components/JsonConfigComponent/ConfigSlider.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigStaticDivider.js +1 -2
- package/Components/JsonConfigComponent/ConfigStaticDivider.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigStaticHeader.js +1 -2
- package/Components/JsonConfigComponent/ConfigStaticHeader.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigStaticImage.js +1 -2
- package/Components/JsonConfigComponent/ConfigStaticImage.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigStaticText.js +1 -2
- package/Components/JsonConfigComponent/ConfigStaticText.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTable.js +1 -2
- package/Components/JsonConfigComponent/ConfigTable.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTabs.js +1 -2
- package/Components/JsonConfigComponent/ConfigTabs.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigText.js +1 -2
- package/Components/JsonConfigComponent/ConfigText.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTextSendTo.js +1 -2
- package/Components/JsonConfigComponent/ConfigTextSendTo.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTimePicker.js +1 -2
- package/Components/JsonConfigComponent/ConfigTimePicker.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTopic.js +1 -2
- package/Components/JsonConfigComponent/ConfigTopic.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigUUID.js +1 -2
- package/Components/JsonConfigComponent/ConfigUUID.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigUser.js +1 -2
- package/Components/JsonConfigComponent/ConfigUser.js.map +1 -1
- package/Components/JsonConfigComponent/index.js +1 -2
- package/Components/JsonConfigComponent/index.js.map +1 -1
- package/Components/JsonConfigComponent/wrapper/Components/ColorPicker.js +1 -2
- package/Components/JsonConfigComponent/wrapper/Components/ColorPicker.js.map +1 -1
- package/Components/JsonConfigComponent/wrapper/Components/Icon.js +1 -2
- package/Components/JsonConfigComponent/wrapper/Components/Icon.js.map +1 -1
- package/Components/JsonConfigComponent/wrapper/Components/TextWithIcon.js +1 -2
- package/Components/JsonConfigComponent/wrapper/Components/TextWithIcon.js.map +1 -1
- package/Components/JsonConfigComponent/wrapper/Components/UploadImage.js +1 -2
- package/Components/JsonConfigComponent/wrapper/Components/UploadImage.js.map +1 -1
- package/Components/JsonConfigComponent/wrapper/Components/Utils.js +1 -2
- package/Components/JsonConfigComponent/wrapper/Components/Utils.js.map +1 -1
- package/Components/JsonConfigComponent/wrapper/Dialogs/Confirm.js +1 -2
- package/Components/JsonConfigComponent/wrapper/Dialogs/Confirm.js.map +1 -1
- package/Components/JsonConfigComponent/wrapper/Dialogs/Cron.js +1 -2
- package/Components/JsonConfigComponent/wrapper/Dialogs/Cron.js.map +1 -1
- package/Components/JsonConfigComponent/wrapper/Dialogs/Error.js +1 -2
- package/Components/JsonConfigComponent/wrapper/Dialogs/Error.js.map +1 -1
- package/Components/JsonConfigComponent/wrapper/Dialogs/Message.js +1 -2
- package/Components/JsonConfigComponent/wrapper/Dialogs/Message.js.map +1 -1
- package/Components/JsonConfigComponent/wrapper/Dialogs/SelectFile.js +1 -2
- package/Components/JsonConfigComponent/wrapper/Dialogs/SelectFile.js.map +1 -1
- package/Components/JsonConfigComponent/wrapper/Dialogs/SelectID.js +1 -2
- package/Components/JsonConfigComponent/wrapper/Dialogs/SelectID.js.map +1 -1
- package/Components/JsonConfigComponent/wrapper/i18n.js +1 -2
- package/Components/JsonConfigComponent/wrapper/i18n.js.map +1 -1
- package/Components/JsonConfigComponent/wrapper/icons/IconCopy.js +1 -2
- package/Components/JsonConfigComponent/wrapper/icons/IconCopy.js.map +1 -1
- package/Components/Loader.js +3 -4
- package/Components/Loader.js.map +1 -1
- package/Components/Loaders/PT.css +1 -1
- package/Components/Loaders/PT.js +1 -2
- package/Components/Loaders/PT.js.map +1 -1
- package/Components/Loaders/Vendor.css +1 -1
- package/Components/Loaders/Vendor.js +2 -3
- package/Components/Loaders/Vendor.js.map +1 -1
- package/Components/Logo.js +1 -2
- package/Components/Logo.js.map +1 -1
- package/Components/MDUtils.js +2 -3
- package/Components/MDUtils.js.map +1 -1
- package/Components/ObjectBrowser.js +1 -2
- package/Components/ObjectBrowser.js.map +1 -1
- package/Components/Router.js +1 -2
- package/Components/Router.js.map +1 -1
- package/Components/SaveCloseButtons.js +1 -2
- package/Components/SaveCloseButtons.js.map +1 -1
- package/Components/Schedule.js +1 -2
- package/Components/Schedule.js.map +1 -1
- package/Components/SelectWithIcon.js +1 -2
- package/Components/SelectWithIcon.js.map +1 -1
- package/Components/SimpleCron/cron2text.js +1 -2
- package/Components/SimpleCron/cron2text.js.map +1 -1
- package/Components/SimpleCron/cronText.js +1 -2
- package/Components/SimpleCron/cronText.js.map +1 -1
- package/Components/SimpleCron/index.js +1 -2
- package/Components/SimpleCron/index.js.map +1 -1
- package/Components/SimpleCron/jquery.cron.locale.js +1 -2
- package/Components/SimpleCron/jquery.cron.locale.js.map +1 -1
- package/Components/TabContainer.js +1 -2
- package/Components/TabContainer.js.map +1 -1
- package/Components/TabContent.js +1 -2
- package/Components/TabContent.js.map +1 -1
- package/Components/TabHeader.js +1 -2
- package/Components/TabHeader.js.map +1 -1
- package/Components/TableResize.js +1 -2
- package/Components/TableResize.js.map +1 -1
- package/Components/TextWithIcon.js +1 -2
- package/Components/TextWithIcon.js.map +1 -1
- package/Components/TreeTable.js +1 -2
- package/Components/TreeTable.js.map +1 -1
- package/Components/UploadImage.js +1 -2
- package/Components/UploadImage.js.map +1 -1
- package/Components/Utils.js +1 -2
- package/Components/Utils.js.map +1 -1
- package/Components/loader.css +1 -1
- package/Components/withWidth.js +1 -2
- package/Components/withWidth.js.map +1 -1
- package/Connection.js +1 -2
- package/Connection.js.map +1 -1
- package/Dialogs/ComplexCron.js +1 -2
- package/Dialogs/ComplexCron.js.map +1 -1
- package/Dialogs/Confirm.js +2 -3
- package/Dialogs/Confirm.js.map +1 -1
- package/Dialogs/Cron.js +1 -2
- package/Dialogs/Cron.js.map +1 -1
- package/Dialogs/Error.js +2 -3
- package/Dialogs/Error.js.map +1 -1
- package/Dialogs/Message.js +2 -3
- package/Dialogs/Message.js.map +1 -1
- package/Dialogs/SelectFile.js +2 -3
- package/Dialogs/SelectFile.js.map +1 -1
- package/Dialogs/SelectID.js +2 -3
- package/Dialogs/SelectID.js.map +1 -1
- package/Dialogs/SimpleCron.js +1 -2
- package/Dialogs/SimpleCron.js.map +1 -1
- package/Dialogs/TextInput.js +1 -2
- package/Dialogs/TextInput.js.map +1 -1
- package/GenericApp.d.ts +4 -1
- package/GenericApp.js +9 -4
- package/GenericApp.js.map +1 -1
- package/LegacyConnection.js +15 -11
- package/LegacyConnection.js.map +1 -1
- package/Prompt.js +1 -2
- package/Prompt.js.map +1 -1
- package/README.md +6 -0
- package/Theme.js +1 -2
- package/Theme.js.map +1 -1
- package/i18n/de.json +3 -1
- package/i18n/en.json +3 -1
- package/i18n/es.json +3 -1
- package/i18n/fr.json +3 -1
- package/i18n/it.json +3 -1
- package/i18n/nl.json +3 -1
- package/i18n/pl.json +3 -1
- package/i18n/pt.json +3 -1
- package/i18n/ru.json +3 -1
- package/i18n/uk.json +3 -1
- package/i18n/zh-cn.json +3 -1
- package/i18n.d.ts +1 -1
- package/i18n.js +2 -3
- package/i18n.js.map +1 -1
- package/icons/IconAdapter.js +1 -2
- package/icons/IconAdapter.js.map +1 -1
- package/icons/IconAlias.js +1 -2
- package/icons/IconAlias.js.map +1 -1
- package/icons/IconChannel.js +1 -2
- package/icons/IconChannel.js.map +1 -1
- package/icons/IconClearFilter.js +1 -2
- package/icons/IconClearFilter.js.map +1 -1
- package/icons/IconClosed.js +1 -2
- package/icons/IconClosed.js.map +1 -1
- package/icons/IconCopy.js +1 -2
- package/icons/IconCopy.js.map +1 -1
- package/icons/IconDevice.js +1 -2
- package/icons/IconDevice.js.map +1 -1
- package/icons/IconDocument.js +1 -2
- package/icons/IconDocument.js.map +1 -1
- package/icons/IconDocumentReadOnly.js +1 -2
- package/icons/IconDocumentReadOnly.js.map +1 -1
- package/icons/IconExpert.js +1 -2
- package/icons/IconExpert.js.map +1 -1
- package/icons/IconFx.js +1 -2
- package/icons/IconFx.js.map +1 -1
- package/icons/IconInstance.js +1 -2
- package/icons/IconInstance.js.map +1 -1
- package/icons/IconLogout.js +1 -2
- package/icons/IconLogout.js.map +1 -1
- package/icons/IconNoIcon.js +1 -2
- package/icons/IconNoIcon.js.map +1 -1
- package/icons/IconOpen.js +1 -2
- package/icons/IconOpen.js.map +1 -1
- package/icons/IconState.js +1 -2
- package/icons/IconState.js.map +1 -1
- package/index.css +1 -1
- package/index.d.ts +2 -0
- package/index.js +3 -0
- package/package.json +10 -10
- package/types.d.ts +5 -1
package/Components/FileViewer.js
CHANGED
|
@@ -62,14 +62,13 @@ var styles = function styles() {
|
|
|
62
62
|
}
|
|
63
63
|
};
|
|
64
64
|
};
|
|
65
|
-
var EXTENSIONS = {
|
|
65
|
+
var EXTENSIONS = exports.EXTENSIONS = {
|
|
66
66
|
images: ['png', 'jpg', 'svg', 'jpeg', 'bmp'],
|
|
67
67
|
code: ['js', 'json', 'json5', 'md'],
|
|
68
68
|
txt: ['log', 'txt', 'html', 'css', 'xml'],
|
|
69
69
|
audio: ['mp3', 'wav', 'ogg', 'acc'],
|
|
70
70
|
video: ['mp4', 'mov', 'avi']
|
|
71
71
|
};
|
|
72
|
-
exports.EXTENSIONS = EXTENSIONS;
|
|
73
72
|
function bufferToBase64(buffer, isFull) {
|
|
74
73
|
var binary = '';
|
|
75
74
|
var bytes = new Uint8Array(buffer);
|
|
@@ -353,6 +352,5 @@ FileViewer.propTypes = {
|
|
|
353
352
|
|
|
354
353
|
/** @type {typeof FileViewer} */
|
|
355
354
|
var _export = (0, _withWidth["default"])()((0, _styles.withStyles)(styles)(FileViewer));
|
|
356
|
-
var _default = _export;
|
|
357
|
-
exports["default"] = _default;
|
|
355
|
+
var _default = exports["default"] = _export;
|
|
358
356
|
//# sourceMappingURL=FileViewer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileViewer.js","names":["_react","_interopRequireWildcard","require","_styles","_propTypes","_interopRequireDefault","_material","_fa","_iconsMaterial","_IconNoIcon","_withWidth","_Utils","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","valueOf","e","styles","dialog","height","paper","content","textAlign","textarea","width","img","objectFit","dialogTitle","justifyContent","display","EXTENSIONS","images","code","txt","audio","video","exports","bufferToBase64","buffer","isFull","binary","bytes","Uint8Array","len","byteLength","i","String","fromCharCode","window","btoa","FileViewer","_Component","_inherits2","_super","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","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","t","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\n// File viewer in adapter-react does not use ace editor\n// import AceEditor from 'react-ace';\n// import 'ace-builds/src-min-noconflict/mode-json';\n// import 'ace-builds/src-min-noconflict/mode-json5';\n// import 'ace-builds/src-min-noconflict/worker-json';\n// import 'ace-builds/src-min-noconflict/theme-clouds_midnight';\n// import 'ace-builds/src-min-noconflict/theme-chrome';\n// import 'ace-builds/src-min-noconflict/ext-language_tools';\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\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'],\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 does use ace in adapter-react\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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"}
|
|
1
|
+
{"version":3,"file":"FileViewer.js","names":["_react","_interopRequireWildcard","require","_styles","_propTypes","_interopRequireDefault","_material","_fa","_iconsMaterial","_IconNoIcon","_withWidth","_Utils","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","valueOf","e","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","i","String","fromCharCode","window","btoa","FileViewer","_Component","_inherits2","_super","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","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","t","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\n// File viewer in adapter-react does not use ace editor\n// import AceEditor from 'react-ace';\n// import 'ace-builds/src-min-noconflict/mode-json';\n// import 'ace-builds/src-min-noconflict/mode-json5';\n// import 'ace-builds/src-min-noconflict/worker-json';\n// import 'ace-builds/src-min-noconflict/theme-clouds_midnight';\n// import 'ace-builds/src-min-noconflict/theme-chrome';\n// import 'ace-builds/src-min-noconflict/ext-language_tools';\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\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'],\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 does use ace in adapter-react\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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"}
|
package/Components/Icon.js
CHANGED
package/Components/Icon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.js","names":["_react","_interopRequireDefault","require","_propTypes","_reactInlinesvg","_iconsMaterial","_IconAlias","_Utils","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","getSystemIcon","obj","icon","id","_id","startsWith","createElement","SettingsApplications","className","Photo","SupervisedUserCircle","PersonOutlined","Router","endsWith","Wifi","Info","type","Description","getSelectIdIcon","imagePrefix","src","common","cIcon","includes","instance","concat","name","split","Icon","_React$Component","_inherits2","_super","_classCallCheck2","_createClass2","key","value","render","props","title","undefined","style","height","marginTop","styleUTF8","Utils","clsx","_this$props$style","_this$props$style2","_this$props$style3","width","alt","React","Component","propTypes","PropTypes","string","oneOfType","object","isRequired","_default","exports"],"sources":["Icon.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport SVG from 'react-inlinesvg';\n\nimport {\n SettingsApplications as IconSystem,\n Photo as IconPhoto,\n SupervisedUserCircle as IconGroup,\n PersonOutlined as IconUser,\n Router as IconHost,\n Wifi as IconConnection,\n Info as IconInfo,\n Description as IconMeta,\n} from '@mui/icons-material';\nimport IconAlias from '../icons/IconAlias';\n\nimport Utils from './Utils';\n\nexport function getSystemIcon(obj) {\n let icon;\n const id = obj?._id;\n\n if (!id) {\n return null;\n }\n\n // system or design has special icons\n if (id.startsWith('_design/') || (id === 'system')) {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === '0_userdata' || id === '0_userdata.0') {\n icon = <IconPhoto className=\"iconOwn\" />;\n } else if (id === 'alias' || id === 'alias.0') {\n icon = <IconAlias className=\"iconOwn\" />;\n } else if (id === 'system.adapter') {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === 'system.group') {\n icon = <IconGroup className=\"iconOwn\" />;\n } else if (id === 'system.user') {\n icon = <IconUser className=\"iconOwn\" />;\n } else if (id === 'system.host') {\n icon = <IconHost className=\"iconOwn\" />;\n } else if (id.endsWith('.connection') || id.endsWith('.connected')) {\n icon = <IconConnection className=\"iconOwn\" />;\n } else if (id.endsWith('.info')) {\n icon = <IconInfo className=\"iconOwn\" />;\n } else if (obj?.type === 'meta') {\n icon = <IconMeta className=\"iconOwn\" />;\n }\n\n return icon || null;\n}\n\nexport function getSelectIdIcon(obj, imagePrefix) {\n imagePrefix = imagePrefix || '.'; // http://localhost:8081';\n let src = '';\n const common = obj?.common;\n\n if (common) {\n const cIcon = common.icon;\n if (cIcon) {\n if (!cIcon.startsWith('data:image/')) {\n if (cIcon.includes('.')) {\n let instance;\n if (obj.type === 'instance' || obj.type === 'adapter') {\n src = `${imagePrefix}/adapter/${common.name}/${cIcon}`;\n } else if (obj._id && obj._id.startsWith('system.adapter.')) {\n instance = obj._id.split('.', 3);\n if (cIcon[0] === '/') {\n instance[2] += cIcon;\n } else {\n instance[2] += `/${cIcon}`;\n }\n src = `${imagePrefix}/adapter/${instance[2]}`;\n } else {\n instance = obj._id.split('.', 2);\n if (cIcon[0] === '/') {\n instance[0] += cIcon;\n } else {\n instance[0] += `/${cIcon}`;\n }\n src = `${imagePrefix}/adapter/${instance[0]}`;\n }\n } else {\n return null;\n }\n } else {\n // base 64 image\n src = cIcon;\n }\n }\n }\n\n return src || null;\n}\n\nclass Icon extends React.Component {\n render() {\n if (this.props.src) {\n if (typeof this.props.src === 'string') {\n if (this.props.src.length < 3) {\n // utf-8 char\n return <span\n title={this.props.title || undefined}\n style={{ height: 27, marginTop: -8, ...(this.props.styleUTF8 || this.props.style) }}\n className={Utils.clsx(this.props.className, 'iconOwn')}\n >\n {this.props.src}\n </span>;\n }\n if (this.props.src.startsWith('data:image/svg')) {\n return <SVG\n title={this.props.title || undefined}\n src={this.props.src}\n className={Utils.clsx(this.props.className, 'iconOwn')}\n width={this.props.style?.width || 28}\n height={this.props.style?.height || this.props.style?.width || 28}\n style={this.props.style || {}}\n />;\n }\n return <img\n title={this.props.title || undefined}\n style={this.props.style || {}}\n className={Utils.clsx(this.props.className, 'iconOwn')}\n src={this.props.src}\n alt=\"\"\n />;\n }\n return this.props.src;\n }\n return null;\n }\n}\n\nIcon.propTypes = {\n title: PropTypes.string,\n src: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\n className: PropTypes.string,\n style: PropTypes.object,\n styleUTF8: PropTypes.object,\n};\n\nexport default Icon;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Icon.js","names":["_react","_interopRequireDefault","require","_propTypes","_reactInlinesvg","_iconsMaterial","_IconAlias","_Utils","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","getSystemIcon","obj","icon","id","_id","startsWith","createElement","SettingsApplications","className","Photo","SupervisedUserCircle","PersonOutlined","Router","endsWith","Wifi","Info","type","Description","getSelectIdIcon","imagePrefix","src","common","cIcon","includes","instance","concat","name","split","Icon","_React$Component","_inherits2","_super","_classCallCheck2","_createClass2","key","value","render","props","title","undefined","style","height","marginTop","styleUTF8","Utils","clsx","_this$props$style","_this$props$style2","_this$props$style3","width","alt","React","Component","propTypes","PropTypes","string","oneOfType","object","isRequired","_default","exports"],"sources":["Icon.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport SVG from 'react-inlinesvg';\n\nimport {\n SettingsApplications as IconSystem,\n Photo as IconPhoto,\n SupervisedUserCircle as IconGroup,\n PersonOutlined as IconUser,\n Router as IconHost,\n Wifi as IconConnection,\n Info as IconInfo,\n Description as IconMeta,\n} from '@mui/icons-material';\nimport IconAlias from '../icons/IconAlias';\n\nimport Utils from './Utils';\n\nexport function getSystemIcon(obj) {\n let icon;\n const id = obj?._id;\n\n if (!id) {\n return null;\n }\n\n // system or design has special icons\n if (id.startsWith('_design/') || (id === 'system')) {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === '0_userdata' || id === '0_userdata.0') {\n icon = <IconPhoto className=\"iconOwn\" />;\n } else if (id === 'alias' || id === 'alias.0') {\n icon = <IconAlias className=\"iconOwn\" />;\n } else if (id === 'system.adapter') {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === 'system.group') {\n icon = <IconGroup className=\"iconOwn\" />;\n } else if (id === 'system.user') {\n icon = <IconUser className=\"iconOwn\" />;\n } else if (id === 'system.host') {\n icon = <IconHost className=\"iconOwn\" />;\n } else if (id.endsWith('.connection') || id.endsWith('.connected')) {\n icon = <IconConnection className=\"iconOwn\" />;\n } else if (id.endsWith('.info')) {\n icon = <IconInfo className=\"iconOwn\" />;\n } else if (obj?.type === 'meta') {\n icon = <IconMeta className=\"iconOwn\" />;\n }\n\n return icon || null;\n}\n\nexport function getSelectIdIcon(obj, imagePrefix) {\n imagePrefix = imagePrefix || '.'; // http://localhost:8081';\n let src = '';\n const common = obj?.common;\n\n if (common) {\n const cIcon = common.icon;\n if (cIcon) {\n if (!cIcon.startsWith('data:image/')) {\n if (cIcon.includes('.')) {\n let instance;\n if (obj.type === 'instance' || obj.type === 'adapter') {\n src = `${imagePrefix}/adapter/${common.name}/${cIcon}`;\n } else if (obj._id && obj._id.startsWith('system.adapter.')) {\n instance = obj._id.split('.', 3);\n if (cIcon[0] === '/') {\n instance[2] += cIcon;\n } else {\n instance[2] += `/${cIcon}`;\n }\n src = `${imagePrefix}/adapter/${instance[2]}`;\n } else {\n instance = obj._id.split('.', 2);\n if (cIcon[0] === '/') {\n instance[0] += cIcon;\n } else {\n instance[0] += `/${cIcon}`;\n }\n src = `${imagePrefix}/adapter/${instance[0]}`;\n }\n } else {\n return null;\n }\n } else {\n // base 64 image\n src = cIcon;\n }\n }\n }\n\n return src || null;\n}\n\nclass Icon extends React.Component {\n render() {\n if (this.props.src) {\n if (typeof this.props.src === 'string') {\n if (this.props.src.length < 3) {\n // utf-8 char\n return <span\n title={this.props.title || undefined}\n style={{ height: 27, marginTop: -8, ...(this.props.styleUTF8 || this.props.style) }}\n className={Utils.clsx(this.props.className, 'iconOwn')}\n >\n {this.props.src}\n </span>;\n }\n if (this.props.src.startsWith('data:image/svg')) {\n return <SVG\n title={this.props.title || undefined}\n src={this.props.src}\n className={Utils.clsx(this.props.className, 'iconOwn')}\n width={this.props.style?.width || 28}\n height={this.props.style?.height || this.props.style?.width || 28}\n style={this.props.style || {}}\n />;\n }\n return <img\n title={this.props.title || undefined}\n style={this.props.style || {}}\n className={Utils.clsx(this.props.className, 'iconOwn')}\n src={this.props.src}\n alt=\"\"\n />;\n }\n return this.props.src;\n }\n return null;\n }\n}\n\nIcon.propTypes = {\n title: PropTypes.string,\n src: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\n className: PropTypes.string,\n style: PropTypes.object,\n styleUTF8: PropTypes.object,\n};\n\nexport default Icon;\n"],"mappings":"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"}
|
package/Components/IconPicker.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconPicker.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_reactDropzone","_makeStyles","_material","_iconsMaterial","_IconSelector","_Icon","_i18n","_Utils","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","IconPicker","props","_props$customClasses","_props$customClasses2","IconCustom","icon","useStyles","makeStyles","formContainer","display","justifyContent","alignItems","formControl","padding","flexGrow","divContainer","width","height","whiteSpace","lineHeight","marginRight","dragField","textAlign","minHeight","border","borderRadius","formIcon","margin","opacity","text","verticalAlign","classes","onDrop","useCallback","acceptedFiles","reader","FileReader","addEventListener","onChange","result","readAsDataURL","_useDropzone","useDropzone","getRootProps","getInputProps","isDragActive","createElement","className","FormControl","variant","style","InputLabel","shrink","root","customClasses","label","value","alt","Utils","clsx","previewClassName","src","disabled","IconButton","title","I18n","t","size","onClick","Clear","icons","onlyRooms","onlyDevices","onSelect","base64","lang","getLanguage","_extends2","backgroundColor","cursor","propTypes","PropTypes","string","object","any","bool","func","isRequired","array","_default","exports"],"sources":["IconPicker.js"],"sourcesContent":["import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDropzone } from 'react-dropzone';\nimport makeStyles from '@mui/styles/makeStyles';\n\nimport {\n InputLabel,\n FormControl,\n IconButton,\n} from '@mui/material';\nimport { Clear as ClearIcon } from '@mui/icons-material';\n\nimport IconSelector from './IconSelector';\nimport Icon from './Icon';\nimport I18n from '../i18n';\nimport Utils from './Utils';\n\n/**\n * @typedef {object} IconPickerProps\n * @property {string} [value] The value.\n * @property {string} [label] The label.\n * @property {boolean} [disabled] Set to true to disable the icon picker.\n * @property {(icon: string) => void} onChange The icon change callback.\n * @property {import('../Connection').default} socket The socket connection.\n * @property {string} [imagePrefix] The image prefix (default: './files/')\n * @property {React.CSSProperties} [style] Additional styling for this component.\n * @property {string} [className] The CSS class name.\n *\n * @extends {React.Component<IconPickerProps>}\n */\nconst IconPicker = props => {\n const IconCustom = props.icon;\n\n const useStyles = makeStyles(() => ({\n formContainer : {\n display: 'flex',\n justifyContent: 'left',\n alignItems: 'center',\n },\n formControl : {\n display: 'flex',\n padding: 24,\n flexGrow: 1000,\n },\n divContainer: {\n width: 32 + 24,\n height: 32,\n whiteSpace: 'nowrap',\n lineHeight: '32px',\n marginRight: 8,\n },\n dragField: {\n textAlign: 'center',\n display: 'table',\n minHeight: 90,\n width: 'calc(100% - 60px)',\n border: '2px dashed #777',\n borderRadius: 10,\n padding: 4,\n },\n formIcon : {\n margin: 10,\n opacity: 0.6,\n },\n text: {\n display: 'table-cell',\n verticalAlign: 'middle',\n },\n }));\n\n const classes = useStyles();\n\n const onDrop = useCallback(acceptedFiles => {\n const reader = new FileReader();\n\n reader.addEventListener('load', () =>\n props.onChange(reader.result), false);\n\n if (acceptedFiles[0]) {\n reader.readAsDataURL(acceptedFiles[0]);\n }\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop });\n\n return <div className={classes.formContainer}>\n {IconCustom ? <IconCustom className={classes.formIcon} /> : null}\n <FormControl variant=\"standard\" className={classes.formControl} style={{ padding: 3 }}>\n <InputLabel shrink classes={{ root: props.customClasses?.label }}>\n {props.label}\n </InputLabel>\n <div className={classes.formContainer}>\n {props.value ?\n <div className={classes.divContainer}>\n <Icon alt=\"\" className={Utils.clsx(props.previewClassName, props.customClasses?.icon)} src={props.value} />\n {!props.disabled && <IconButton\n style={{ verticalAlign: 'top' }}\n title={I18n.t('ra_Clear icon')}\n size=\"small\"\n onClick={() => props.onChange('')}\n >\n <ClearIcon />\n </IconButton>}\n </div>\n :\n (!props.disabled && <IconSelector\n icons={props.icons}\n onlyRooms={props.onlyRooms}\n onlyDevices={props.onlyDevices}\n onSelect={base64 => props.onChange(base64)}\n t={I18n.t}\n lang={I18n.getLanguage()}\n />)}\n\n {!props.disabled && <div\n {...getRootProps()}\n className={classes.dragField}\n style={isDragActive ? { backgroundColor: 'rgba(0, 255, 0, 0.1)' } : { cursor: 'pointer' }}\n >\n <input {...getInputProps()} />\n {\n isDragActive ?\n <span className={classes.text}>{I18n.t('ra_Drop the files here...')}</span> :\n <span className={classes.text}>{I18n.t('ra_Drag \\'n\\' drop some files here, or click to select files')}</span>\n }\n </div>}\n </div>\n </FormControl>\n </div>;\n};\n\nIconPicker.propTypes = {\n previewClassName: PropTypes.string,\n icon: PropTypes.object,\n customClasses: PropTypes.object,\n label: PropTypes.string,\n value: PropTypes.any,\n disabled: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n\n icons: PropTypes.array,\n onlyRooms: PropTypes.bool,\n onlyDevices: PropTypes.bool,\n};\n\n/** @type {typeof IconPicker} */\nexport default IconPicker;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IconPicker.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_reactDropzone","_makeStyles","_material","_iconsMaterial","_IconSelector","_Icon","_i18n","_Utils","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","IconPicker","props","_props$customClasses","_props$customClasses2","IconCustom","icon","useStyles","makeStyles","formContainer","display","justifyContent","alignItems","formControl","padding","flexGrow","divContainer","width","height","whiteSpace","lineHeight","marginRight","dragField","textAlign","minHeight","border","borderRadius","formIcon","margin","opacity","text","verticalAlign","classes","onDrop","useCallback","acceptedFiles","reader","FileReader","addEventListener","onChange","result","readAsDataURL","_useDropzone","useDropzone","getRootProps","getInputProps","isDragActive","createElement","className","FormControl","variant","style","InputLabel","shrink","root","customClasses","label","value","alt","Utils","clsx","previewClassName","src","disabled","IconButton","title","I18n","t","size","onClick","Clear","icons","onlyRooms","onlyDevices","onSelect","base64","lang","getLanguage","_extends2","backgroundColor","cursor","propTypes","PropTypes","string","object","any","bool","func","isRequired","array","_default","exports"],"sources":["IconPicker.js"],"sourcesContent":["import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDropzone } from 'react-dropzone';\nimport makeStyles from '@mui/styles/makeStyles';\n\nimport {\n InputLabel,\n FormControl,\n IconButton,\n} from '@mui/material';\nimport { Clear as ClearIcon } from '@mui/icons-material';\n\nimport IconSelector from './IconSelector';\nimport Icon from './Icon';\nimport I18n from '../i18n';\nimport Utils from './Utils';\n\n/**\n * @typedef {object} IconPickerProps\n * @property {string} [value] The value.\n * @property {string} [label] The label.\n * @property {boolean} [disabled] Set to true to disable the icon picker.\n * @property {(icon: string) => void} onChange The icon change callback.\n * @property {import('../Connection').default} socket The socket connection.\n * @property {string} [imagePrefix] The image prefix (default: './files/')\n * @property {React.CSSProperties} [style] Additional styling for this component.\n * @property {string} [className] The CSS class name.\n *\n * @extends {React.Component<IconPickerProps>}\n */\nconst IconPicker = props => {\n const IconCustom = props.icon;\n\n const useStyles = makeStyles(() => ({\n formContainer : {\n display: 'flex',\n justifyContent: 'left',\n alignItems: 'center',\n },\n formControl : {\n display: 'flex',\n padding: 24,\n flexGrow: 1000,\n },\n divContainer: {\n width: 32 + 24,\n height: 32,\n whiteSpace: 'nowrap',\n lineHeight: '32px',\n marginRight: 8,\n },\n dragField: {\n textAlign: 'center',\n display: 'table',\n minHeight: 90,\n width: 'calc(100% - 60px)',\n border: '2px dashed #777',\n borderRadius: 10,\n padding: 4,\n },\n formIcon : {\n margin: 10,\n opacity: 0.6,\n },\n text: {\n display: 'table-cell',\n verticalAlign: 'middle',\n },\n }));\n\n const classes = useStyles();\n\n const onDrop = useCallback(acceptedFiles => {\n const reader = new FileReader();\n\n reader.addEventListener('load', () =>\n props.onChange(reader.result), false);\n\n if (acceptedFiles[0]) {\n reader.readAsDataURL(acceptedFiles[0]);\n }\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop });\n\n return <div className={classes.formContainer}>\n {IconCustom ? <IconCustom className={classes.formIcon} /> : null}\n <FormControl variant=\"standard\" className={classes.formControl} style={{ padding: 3 }}>\n <InputLabel shrink classes={{ root: props.customClasses?.label }}>\n {props.label}\n </InputLabel>\n <div className={classes.formContainer}>\n {props.value ?\n <div className={classes.divContainer}>\n <Icon alt=\"\" className={Utils.clsx(props.previewClassName, props.customClasses?.icon)} src={props.value} />\n {!props.disabled && <IconButton\n style={{ verticalAlign: 'top' }}\n title={I18n.t('ra_Clear icon')}\n size=\"small\"\n onClick={() => props.onChange('')}\n >\n <ClearIcon />\n </IconButton>}\n </div>\n :\n (!props.disabled && <IconSelector\n icons={props.icons}\n onlyRooms={props.onlyRooms}\n onlyDevices={props.onlyDevices}\n onSelect={base64 => props.onChange(base64)}\n t={I18n.t}\n lang={I18n.getLanguage()}\n />)}\n\n {!props.disabled && <div\n {...getRootProps()}\n className={classes.dragField}\n style={isDragActive ? { backgroundColor: 'rgba(0, 255, 0, 0.1)' } : { cursor: 'pointer' }}\n >\n <input {...getInputProps()} />\n {\n isDragActive ?\n <span className={classes.text}>{I18n.t('ra_Drop the files here...')}</span> :\n <span className={classes.text}>{I18n.t('ra_Drag \\'n\\' drop some files here, or click to select files')}</span>\n }\n </div>}\n </div>\n </FormControl>\n </div>;\n};\n\nIconPicker.propTypes = {\n previewClassName: PropTypes.string,\n icon: PropTypes.object,\n customClasses: PropTypes.object,\n label: PropTypes.string,\n value: PropTypes.any,\n disabled: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n\n icons: PropTypes.array,\n onlyRooms: PropTypes.bool,\n onlyDevices: PropTypes.bool,\n};\n\n/** @type {typeof IconPicker} */\nexport default IconPicker;\n"],"mappings":"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"}
|