@iobroker/adapter-react-v5 3.1.5 → 3.1.8

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigFileSelector.js","names":["styles","theme","fullWidth","width","fullWidthOneButton","fullWidthTwoButtons","fullWidthThreeButtons","dropZone","height","position","dropZoneEmpty","image","objectFit","margin","display","uploadDiv","uploadDivDragging","opacity","background","uploadCenterDiv","border","borderRadius","uploadCenterIcon","paddingTop","uploadCenterText","fontSize","uploadCenterTextAndIcon","textAlign","top","bottom","left","right","flexDirection","alignItems","justifyContent","disabledOpacity","cursor","error","deleteButton","selectedImage","marginRight","IMAGE_EXT","AUDIO_EXT","VIDEO_EXT","DOC_EXT","JS_EXT","ConfigFileSelector","props","dropzoneRef","React","createRef","imagePrefix","undefined","objectID","schema","replace","instance","path","upload","endsWith","updateFiles","then","value","ConfigGeneric","getValue","data","attr","setState","checkImage","readFiles","pattern","files","folderName","filter","socket","readDir","dirFiles","f","length","file","isDir","readFolder","ok","includes","startsWith","regExp","RegExp","test","push","name","size","stats","Utils","formatBytes","console","pos","lastIndexOf","substring","folder","acceptedFiles","reader","FileReader","maxSize","onabort","log","onerror","onload","ext","split","pop","toLowerCase","window","alert","I18n","t","Math","round","base64","btoa","Uint8Array","result","reduce","byte","String","fromCharCode","writeFile64","e","readAsArrayBuffer","readFile","state","deleteFile","isOk","loadFile","AudioContext","context","buf","base64ToArrayBuffer","decodeAudioData","buffer","source","createBufferSource","connect","destination","start","err","item","extension","classes","backgroundImage","backgroundSize","backgroundRepeat","disabled","defaultValue","folders","withFolder","forEach","selectOptions","map","label","noSize","noNone","unshift","find","buttons","refresh","play","element","getText","val","getIcon","target","onChange","help","renderHelp","helpLink","noTranslation","current","open","color","renderDeleteDialog","accept","last","uploadFile","errors","message","onDrop","getRootProps","getInputProps","clsx","uploadError","binary_string","atob","len","bytes","i","charCodeAt","propTypes","PropTypes","object","isRequired","themeType","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigFileSelector.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\nimport Dropzone from 'react-dropzone';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\nimport IconButton from '@mui/material/IconButton';\nimport ListItemText from '@mui/material/ListItemText';\nimport ListItemIcon from '@mui/material/ListItemIcon';\n\nimport IconRefresh from '@mui/icons-material/Refresh';\nimport IconUpload from '@mui/icons-material/UploadFile';\nimport IconDelete from '@mui/icons-material/Delete';\nimport IconPlay from '@mui/icons-material/PlayArrow';\nimport IconAudio from '@mui/icons-material/MusicNote';\nimport IconVideo from '@mui/icons-material/Videocam';\nimport IconText from '@mui/icons-material/Article';\nimport IconCode from '@mui/icons-material/Code';\nimport { FaFileUpload as UploadIcon } from 'react-icons/fa';\n\nimport Utils from '../../Components/Utils';\nimport I18n from '../../i18n';\nimport ConfirmDialog from '../../Dialogs/Confirm';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n fullWidthOneButton: {\n width: 'calc(100% - 42px)'\n },\n fullWidthTwoButtons: {\n width: 'calc(100% - 84px)'\n },\n fullWidthThreeButtons: {\n width: 'calc(100% - 126x)'\n },\n dropZone: {\n width: '100%',\n height: '100%',\n position: 'absolute',\n },\n dropZoneEmpty: {\n\n },\n image: {\n objectFit: 'contain',\n margin: 'auto',\n display: 'flex',\n width: '100%',\n height: '100%',\n },\n\n uploadDiv: {\n position: 'relative',\n width: '100%',\n },\n uploadDivDragging: {\n opacity: 1,\n background: 'rgba(128,255,128,0.1)'\n },\n\n uploadCenterDiv: {\n margin: 5,\n border: '3px dashed grey',\n borderRadius: 5,\n width: '100%',\n height: '100%',\n position: 'absolute',\n display: 'flex'\n },\n uploadCenterIcon: {\n paddingTop: 10,\n width: 48,\n height: 48,\n },\n uploadCenterText: {\n fontSize: 16,\n },\n uploadCenterTextAndIcon: {\n textAlign: 'center',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n\n },\n disabledOpacity: {\n opacity: 0.3,\n cursor: 'default'\n },\n error: {\n border: '2px solid red'\n },\n deleteButton: {\n\n },\n selectedImage: {\n height: 40,\n width: 40,\n display: 'inline-block',\n marginRight: 8,\n }\n});\n\nconst IMAGE_EXT = ['jpg', 'jpeg', 'svg', 'png', 'webp'];\nconst AUDIO_EXT = ['mp3', 'ogg', 'wav', 'aac'];\nconst VIDEO_EXT = ['avi', 'mp4', 'mov'];\nconst DOC_EXT = ['txt', 'log', 'html', 'htm'];\nconst JS_EXT = ['json', 'js', 'ts'];\n\nclass ConfigFileSelector extends ConfigGeneric {\n constructor(props) {\n super(props);\n this.dropzoneRef = React.createRef();\n this.imagePrefix = this.props.imagePrefix === undefined ? '../../files' : this.props.imagePrefix;\n }\n\n componentDidMount() {\n super.componentDidMount();\n\n this.objectID = (this.props.schema.objectID || '0_userdata.0').replace('%INSTANCE%', this.props.instance);\n this.path = this.props.schema.upload;\n if (this.path) {\n if (this.path === '/') {\n this.path = '';\n } else {\n if (!this.path.endsWith('/')) {\n this.path = this.path + '/';\n }\n }\n }\n\n // read files\n this.updateFiles()\n .then(() => {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value });\n this.checkImage();\n });\n }\n\n updateFiles() {\n return this.readFiles(this.props.schema.pattern)\n .then(files => this.setState({ files }));\n }\n\n async readFolder(folderName, files, filter) {\n try {\n const dirFiles = await this.props.socket.readDir(this.objectID, folderName.replace(/^\\//, '') || null);\n for (let f = 0; f < dirFiles.length; f++) {\n const file = dirFiles[f];\n if (file.isDir) {\n // read it\n await this.readFolder(`${folderName + file.file}/`, files, filter);\n } else {\n let ok = false;\n if (filter === '*.*' && file.file.includes('.')) {\n ok = true;\n } else if (!filter || filter === '*') {\n ok = true;\n } else if (filter === '.*' && file.file.startsWith('.')) {\n ok = true;\n } else {\n const regExp = new RegExp('^' + filter.replace(/\\./g, '\\\\.').replace(/\\*/g,'.*') + '$');\n ok = regExp.test(file.file);\n }\n\n ok && files.push({ name: folderName + file.file, size: file.stats ? Utils.formatBytes(file.stats.size) : '--' })\n }\n }\n } catch (e) {\n console.error(`Cannot read \"${folderName}\": ${e}`);\n }\n\n return files;\n }\n\n async readFiles(pattern) {\n const files = [];\n pattern = pattern || this.props.schema.pattern;\n if (!pattern) {\n pattern = '**/*.*';\n }\n let filter;\n const pos = pattern.lastIndexOf('/');\n if (pos === -1) {\n filter = pattern;\n } else {\n filter = pattern.substring(pos + 1);\n }\n\n if (pattern.startsWith('**')) {\n // read all folders\n await this.readFolder('/', files, filter);\n } else {\n const pos = pattern.lastIndexOf('/');\n if (pos === -1) {\n await this.readFolder('/', files, filter);\n } else {\n const folder = pattern.substring(0, pos + 1);\n await this.readFolder(folder, files, filter);\n }\n }\n\n return files;\n }\n\n onDrop(acceptedFiles) {\n const file = acceptedFiles[0];\n const reader = new FileReader();\n const maxSize = this.props.schema.maxSize || (2 * 1024 * 1024);\n\n reader.onabort = () => console.log('file reading was aborted');\n reader.onerror = () => console.log('file reading has failed');\n reader.onload = () => {\n let ext = 'image/' + file.name.split('.').pop().toLowerCase();\n if (ext === 'image/jpg') {\n ext = 'image/jpeg';\n } else if (ext.includes('svg')) {\n ext = 'image/svg+xml';\n }\n if (file.size > maxSize) {\n return window.alert(I18n.t('File is too big. Max %sk allowed. Try use SVG.', Math.round(maxSize / 1024)));\n }\n const base64 = `data:${ext};base64,${btoa(\n new Uint8Array(reader.result)\n .reduce((data, byte) => data + String.fromCharCode(byte), ''))}`;\n\n this.props.socket.writeFile64(this.objectID, this.path + file.name, base64)\n .then(() => this.updateFiles())\n .catch(e => window.alert('Cannot upload file: ' + e));\n };\n reader.readAsArrayBuffer(file);\n }\n\n loadFile() {\n return this.props.socket.readFile(this.objectID, this.state.value, true);\n }\n\n renderDeleteDialog() {\n if (!this.state.deleteFile) {\n return null;\n }\n return <ConfirmDialog\n title={ I18n.t('ra_Are you sure?') }\n text={ I18n.t('ra_File will be deleted') }\n ok={ I18n.t('ra_Delete') }\n cancel={ I18n.t('ra_Cancel') }\n onClose={isOk => {\n const deleteFile = this.state.deleteFile;\n this.setState({deleteFile: false}, () => {\n if (isOk) {\n this.props.socket.deleteFile(this.objectID, deleteFile)\n .then(() => this.updateFiles())\n .catch(e => window.alert('Cannot delete file: ' + e));\n }\n });\n }}\n />;\n }\n\n static base64ToArrayBuffer(base64) {\n var binary_string = window.atob(base64);\n var len = binary_string.length;\n var bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n return bytes.buffer;\n }\n\n play() {\n this.loadFile()\n .then(data => {\n if (typeof AudioContext !== 'undefined') {\n const context = new AudioContext();\n const buf = ConfigFileSelector.base64ToArrayBuffer(data.file);\n context.decodeAudioData(buf, buffer => {\n const source = context.createBufferSource(); // creates a sound source\n source.buffer = buffer; // tell the source which sound to play\n source.connect(context.destination); // connect the source to the context's destination (the speakers)\n source.start(0);\n }, err => window.alert('Cannot play: ' + err));\n }\n });\n }\n\n getIcon(item) {\n if (!item || !item.extension) {\n return null;\n }\n if (IMAGE_EXT.includes(item.extension)) {\n return <div className={this.props.classes.selectedImage} style={{\n backgroundImage: 'url(' + this.imagePrefix + '/' + this.objectID + '/' + item.value + ')',\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n }} />;\n } else if (AUDIO_EXT.includes(item.extension)) {\n return <IconAudio />;\n } else if (DOC_EXT.includes(item.extension)) {\n return <IconText />;\n } else if (VIDEO_EXT.includes(item.extension)) {\n return <IconVideo />;\n } else if (JS_EXT.includes(item.extension)) {\n return <IconCode />;\n }\n return null;\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.files) {\n return null;\n }\n let folders = [];\n if (!this.props.schema.withFolder) {\n this.state.files.forEach(file => {\n const pos = file.name.lastIndexOf('/');\n if (pos === -1) {\n if (!folders.includes('/')) {\n folders.push('/');\n }\n } else {\n const folder = file.name.substring(0, pos + 1);\n if (!folders.includes(folder)) {\n folders.push(folder);\n }\n }\n });\n }\n\n const selectOptions = this.state.files\n .map(file => ({\n value: file.name,\n label: !this.props.schema.withFolder && folders.length === 1 ? `${file.name.substring(folders[0].length)}` : `${file.name}` + (this.props.schema.noSize ? '' : `(${file.size})`),\n extension: file.name.toLowerCase().split('.').pop(),\n }));\n\n if (!this.props.schema.noNone) {\n selectOptions.unshift({label: I18n.t('ra_none'), value: ''});\n }\n\n // eslint-disable-next-line\n const item = selectOptions.find(item => item.value === this.state.value);\n\n let buttons = 0;\n\n if (this.props.schema.upload) {\n buttons++;\n }\n if (this.props.schema.refresh) {\n buttons++;\n }\n let play = this.state.value && (this.state.value.endsWith('.mp3') || this.state.value.endsWith('.ogg') || this.state.value.endsWith('.wav'));\n // show play button\n if (play) {\n buttons++;\n }\n\n const element = <div className={this.props.classes.fullWidth}>\n <FormControl variant=\"standard\" style={{width: `calc(100% - ${buttons * 42}px)`}}>\n <InputLabel>{this.getText(this.props.schema.label)}</InputLabel>\n <Select\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={this.state.value || '_'}\n renderValue={val => {\n return <>{this.getIcon(item)}<span>{item?.label || ''}</span></>\n }}\n onChange={e => {\n this.setState({value: e.target.value === '_' ? '' : e.target.value}, () =>\n this.onChange(this.props.attr, this.state.value));\n }}\n >\n {selectOptions.map(item => {\n return <MenuItem key={item.value} value={item.value}>\n <ListItemIcon>{this.getIcon(item)}</ListItemIcon>\n <ListItemText>{item.label}</ListItemText>\n {this.props.schema.delete && item.value ?\n <IconButton className={this.props.classes.deleteButton} size=\"small\"\n onClick={() => this.setState({deleteFile: item.value})}><IconDelete/></IconButton> : null}\n </MenuItem>;\n })}\n </Select>\n {this.props.schema.help ? <FormHelperText>{this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}</FormHelperText> : null}\n </FormControl>\n { this.props.schema.refresh && <IconButton onClick={() => this.updateFiles()}><IconRefresh /></IconButton> }\n { this.props.schema.upload && <IconButton onClick={() => this.dropzoneRef.current?.open()}><IconUpload /></IconButton> }\n { play && <IconButton style={{ color: '#00FF00' }} onClick={() => this.play()}><IconPlay /></IconButton> }\n </div>;\n\n if (!this.props.schema.upload) {\n return <>{element}{this.renderDeleteDialog()}</>;\n } else {\n let accept = {'*/*': []};\n if (this.props.schema.pattern) {\n const last = this.props.schema.pattern.split('/').pop().toLowerCase().replace(/.*\\./, '');\n if (last === 'png' || last === 'jpg' || last === 'svg') {\n accept = {\n 'image/*': ['.png', '.jpg', '.svg']\n };\n } else if (last === 'mp3' || last === 'ogg' || last === 'wav') {\n accept = {\n 'audio/*': ['.mp3', '.ogg', '.wav', '.mp4']\n };\n } else if (last === 'ics') {\n accept = {\n 'text/calendar': ['.mp3', '.ogg', '.wav', '.mp4']\n };\n } else if (last === 'txt') {\n accept = {\n 'text/plain': ['.txt']\n };\n } else if (last === 'pem') {\n accept = {\n 'text/plain': ['.pem']\n };\n } else if (last === 'pem') {\n accept = {\n '*/*': ['.' + last]\n };\n }\n }\n\n return <Dropzone\n ref={this.dropzoneRef}\n multiple={false}\n accept={accept}\n noKeyboard\n noClick\n maxSize={this.props.schema.maxSize || 2 * 1024 * 1024}\n onDragEnter={() => {\n this.setState({ uploadFile: 'dragging' });\n }}\n onDragLeave={() => this.setState({ uploadFile: true })}\n onDrop={(acceptedFiles, errors) => {\n this.setState({ uploadFile: false });\n if (!acceptedFiles.length) {\n window.alert((errors && errors[0] && errors[0].errors && errors[0].errors[0] && errors[0].errors[0].message) || I18n.t('Cannot upload'));\n } else {\n return this.onDrop(acceptedFiles);\n }\n }}\n >\n {({ getRootProps, getInputProps }) => <div\n className={Utils.clsx(\n this.props.classes.uploadDiv,\n this.state.uploadFile === 'dragging' && this.props.classes.uploadDivDragging,\n disabled && this.props.classes.disabledOpacity,\n )}\n {...getRootProps()}\n >\n <input {...getInputProps()} />\n {this.state.uploadFile === 'dragging' ? <div className={Utils.clsx(this.props.classes.uploadCenterDiv, this.state.uploadError && this.props.classes.error)}>\n <div className={this.props.classes.uploadCenterTextAndIcon}>\n <UploadIcon className={this.props.classes.uploadCenterIcon} />\n <div className={this.props.classes.uploadCenterText}>{\n this.state.uploadFile === 'dragging' ? I18n.t('Drop file here') :\n I18n.t('Place your files here or click here to open the browse dialog')}</div>\n </div>\n </div> : null}\n {element}\n {this.renderDeleteDialog()}\n </div>}\n </Dropzone>;\n }\n }\n}\n\nConfigFileSelector.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n imagePrefix: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigFileSelector);"],"mappings":"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"}
package/Connection.js CHANGED
@@ -243,6 +243,19 @@ var Connection = /*#__PURE__*/function () {
243
243
  path = path.substring(0, pos + 1);
244
244
  }
245
245
 
246
+ if (Connection.isWeb()) {
247
+ // remove one level, like echarts, vis, .... We have here: '/echarts/'
248
+ var _parts = path.split('/');
249
+
250
+ if (_parts.length > 2) {
251
+ _parts.pop();
252
+
253
+ _parts.pop();
254
+
255
+ path = _parts.join('/');
256
+ }
257
+ }
258
+
246
259
  var url = port ? "".concat(protocol, "://").concat(host, ":").concat(port).concat(path) : "".concat(protocol, "://").concat(host).concat(path);
247
260
  this._socket = window.io.connect(url, {
248
261
  query: 'ws=true',
@@ -3355,7 +3368,7 @@ var Connection = /*#__PURE__*/function () {
3355
3368
  }], [{
3356
3369
  key: "isWeb",
3357
3370
  value: function isWeb() {
3358
- return window.adapterName === 'material' || window.adapterName === 'vis' || window.socketUrl !== undefined;
3371
+ return window.adapterName === 'material' || window.adapterName === 'vis' || window.adapterName === 'echarts-show' || window.socketUrl !== undefined;
3359
3372
  }
3360
3373
  }]);
3361
3374
  return Connection;