@iobroker/adapter-react-v5 3.2.6 → 3.3.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/Components/ComplexCron.js.map +1 -1
- package/Components/FileBrowser.js +1 -1
- package/Components/FileBrowser.js.map +1 -1
- package/Components/FileViewer.js.map +1 -1
- package/Components/IconSelector.js +1 -1
- package/Components/IconSelector.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTabs.js.map +1 -1
- package/Components/JsonConfigComponent/index.js.map +1 -1
- package/Components/ObjectBrowser.js +23 -17
- package/Components/ObjectBrowser.js.map +1 -1
- package/Components/SimpleCron/index.js.map +1 -1
- package/Components/TreeTable.js.map +1 -1
- package/Components/Utils.d.ts +20 -0
- package/Components/Utils.js +98 -9
- package/Components/Utils.js.map +1 -1
- package/Connection.d.ts +27 -0
- package/Connection.js +122 -7
- package/Connection.js.map +1 -1
- package/Dialogs/ComplexCron.js +1 -1
- package/Dialogs/ComplexCron.js.map +1 -1
- package/Dialogs/Confirm.d.ts +1 -0
- package/Dialogs/Confirm.js +3 -2
- package/Dialogs/Confirm.js.map +1 -1
- package/Dialogs/Cron.js +1 -1
- package/Dialogs/Cron.js.map +1 -1
- package/Dialogs/Error.d.ts +1 -0
- package/Dialogs/Error.js +3 -2
- package/Dialogs/Error.js.map +1 -1
- package/Dialogs/FileSelect.js +1 -1
- package/Dialogs/FileSelect.js.map +1 -1
- package/Dialogs/Message.d.ts +1 -0
- package/Dialogs/Message.js +2 -1
- package/Dialogs/Message.js.map +1 -1
- package/Dialogs/SimpleCron.js +1 -1
- package/Dialogs/SimpleCron.js.map +1 -1
- package/Dialogs/TextInput.d.ts +1 -0
- package/Dialogs/TextInput.js +5 -3
- package/Dialogs/TextInput.js.map +1 -1
- package/GenericApp.js +1 -1
- package/GenericApp.js.map +1 -1
- package/README.md +14 -8
- package/Theme.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileViewer.js","names":["styles","theme","dialog","height","paper","content","textAlign","textarea","width","img","objectFit","dialogTitle","justifyContent","display","EXTENSIONS","images","code","txt","audio","video","bufferToBase64","buffer","binary","bytes","Uint8Array","len","byteLength","i","String","fromCharCode","window","btoa","FileViewer","props","id","fileName","size","state","changed","timeout","clearTimeout","setTimeout","alert","text","readFile","setState","forceUpdate","Date","now","parts","href","split","data","editingValue","splice","adapter","name","join","ext","Utils","getFileExtension","editing","copyPossible","includes","imgError","socket","then","file","undefined","newState","type","detectMimeType","e","supportSubscribes","subscribeFiles","onFileChanged","clsx","classes","getClassBackgroundImage","target","onerror","newValue","readOnly","scrollPaper","onClose","t","setStateBackgroundImage","getContent","copyToClipboard","writeFile64","Component","propTypes","PropTypes","func","lang","string","expertMode","bool","isRequired","_export","withWidth","withStyles"],"sources":["FileViewer.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { withStyles } from '@mui/styles';\nimport PropTypes from 'prop-types';\n\n// File viewer in adapter-react does not support write\n// import { Buffer } from 'buffer';\n\nimport TextField from '@mui/material/TextField';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport { IconButton } from '@mui/material';\n\nimport IconNoIcon from '../icons/IconNoIcon';\nimport withWidth from './withWidth';\nimport Utils from './Utils';\n\n// Icons\nimport { FaCopy as CopyIcon } from 'react-icons/fa';\nimport Brightness5Icon from '@mui/icons-material/Brightness6';\nimport CloseIcon from '@mui/icons-material/Close';\nimport SaveIcon from '@mui/icons-material/Save';\n\nconst styles = theme => ({\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) {\n let binary = '';\n let bytes = new Uint8Array(buffer);\n let len = bytes.byteLength;\n for (let i = 0; i < len && i < 50; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return window.btoa(binary);\n}\n\n/**\n * @typedef {object} FileViewerProps\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};\n // try to detect valid extension\n if (data.type === 'Buffer') {\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 if (newState.copyPossible) {\n if (EXTENSIONS.txt.includes(this.state.ext)) {\n newState.text = data;\n newState.editingValue = data;\n } else if (EXTENSIONS.code.includes(this.state.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 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 // File viewer in adapter-react does not support write\n /*\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 } else {\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 } else if (this.state.code !== null || this.state.text !== null || this.state.editing) {\n return <TextField\n variant=\"standard\"\n className={ this.props.classes.textarea }\n multiline\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 }\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={true}\n maxWidth=\"xl\"\n aria-labelledby=\"form-dialog-title\"\n >\n <div className={this.props.classes.dialogTitle}>\n <DialogTitle id=\"form-dialog-title\">{this.props.t(this.state.editing ? 'Edit' : 'View') + ': ' + this.props.href}</DialogTitle>\n {EXTENSIONS.images.includes(this.state.ext) && <div>\n <IconButton size=\"large\"\n color={'inherit'}\n onClick={this.props.setStateBackgroundImage}\n >\n <Brightness5Icon />\n </IconButton>\n </div>\n }\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 lang: PropTypes.string,\n expertMode: PropTypes.bool,\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":";;;;;;;;;;;;;;;AAAA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAGA;AACA;AACA;AACA;AAAgD;AAAA;AAAA;AAAA;AAEhD,IAAMA,MAAM,GAAG,SAATA,MAAM,CAAGC,KAAK;EAAA,OAAK;IACrBC,MAAM,EAAE;MACJC,MAAM,EAAE;IACZ,CAAC;IACDC,KAAK,EAAE;MACHD,MAAM,EAAE;IACZ,CAAC;IACDE,OAAO,EAAE;MACLC,SAAS,EAAE;IACf,CAAC;IACDC,QAAQ,EAAE;MACNC,KAAK,EAAE,MAAM;MACbL,MAAM,EAAE;IACZ,CAAC;IACDM,GAAG,EAAE;MACDD,KAAK,EAAE,MAAM;MACbL,MAAM,EAAE,kBAAkB;MAC1BO,SAAS,EAAE;IACf,CAAC;IACDC,WAAW,EAAE;MACTC,cAAc,EAAE,eAAe;MAC/BC,OAAO,EAAE;IACb;EACJ,CAAC;AAAA,CAAC;AAEK,IAAMC,UAAU,GAAG;EACtBC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;EAC5CC,IAAI,EAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;EACrCC,GAAG,EAAK,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC;EAC5CC,KAAK,EAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;EACpCC,KAAK,EAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK;AAChC,CAAC;AAAC;AAEF,SAASC,cAAc,CAACC,MAAM,EAAE;EAC5B,IAAIC,MAAM,GAAG,EAAE;EACf,IAAIC,KAAK,GAAG,IAAIC,UAAU,CAACH,MAAM,CAAC;EAClC,IAAII,GAAG,GAAGF,KAAK,CAACG,UAAU;EAC1B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,GAAG,IAAIE,CAAC,GAAG,EAAE,EAAEA,CAAC,EAAE,EAAE;IACpCL,MAAM,IAAIM,MAAM,CAACC,YAAY,CAACN,KAAK,CAACI,CAAC,CAAC,CAAC;EAC3C;EACA,OAAOG,MAAM,CAACC,IAAI,CAACT,MAAM,CAAC;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA,IAUMU,UAAU;EAAA;EAAA;EACZ;AACJ;AACA;EACI,oBAAYC,KAAK,EAAE;IAAA;IAAA;IACf,0BAAMA,KAAK;IAAE,kGA4ED,UAACC,EAAE,EAAEC,QAAQ,EAAEC,IAAI,EAAK;MACpC,IAAI,CAAC,MAAKC,KAAK,CAACC,OAAO,EAAE;QACrB,MAAKC,OAAO,IAAIC,YAAY,CAAC,MAAKD,OAAO,CAAC;QAC1C,MAAKA,OAAO,GAAGE,UAAU,CAAC,YAAM;UAC5B,MAAKF,OAAO,GAAG,IAAI;UACnB,IAAIH,IAAI,KAAK,IAAI,EAAE;YACfN,MAAM,CAACY,KAAK,CAAC,wBAAwB,CAAC;UAC1C,CAAC,MAAM,IAAI,MAAKL,KAAK,CAACM,IAAI,KAAK,IAAI,IAAI,MAAKN,KAAK,CAACrB,IAAI,KAAK,IAAI,EAAE;YAC7D,MAAK4B,QAAQ,EAAE;UACnB,CAAC,MAAM;YACH,MAAKC,QAAQ,CAAC;cAAEC,WAAW,EAAEC,IAAI,CAACC,GAAG;YAAG,CAAC,CAAC;UAC9C;QACJ,CAAC,EAAE,GAAG,CAAC;MACX;IACJ,CAAC;IAAA,gGAEa,YAAM;MAChB,IAAMC,KAAK,GAAG,MAAKhB,KAAK,CAACiB,IAAI,CAACC,KAAK,CAAC,GAAG,CAAC;MACxC,IAAMC,IAAI,GAAG,MAAKf,KAAK,CAACgB,YAAY;MACpCJ,KAAK,CAACK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;MAClB,IAAMC,OAAO,GAAGN,KAAK,CAAC,CAAC,CAAC;MACxB,IAAMO,IAAI,GAAGP,KAAK,CAACK,MAAM,CAAC,CAAC,CAAC,CAACG,IAAI,CAAC,GAAG,CAAC;MACtC;MACA;AACR;AACA;AACA;AACA;IACI,CAAC;IAvGG,IAAMC,GAAG,GAAGC,iBAAK,CAACC,gBAAgB,CAAC,MAAK3B,KAAK,CAACiB,IAAI,CAAC;IAEnD,MAAKb,KAAK,GAAG;MACTM,IAAI,EAAE,IAAI;MACV3B,IAAI,EAAE,IAAI;MACV0C,GAAG,EAAHA,GAAG;MACH;MACAG,OAAO,EAAE,oCAAqC,KAAK;MACnDR,YAAY,EAAE,IAAI;MAClBS,YAAY,EAAEhD,UAAU,CAACE,IAAI,CAAC+C,QAAQ,CAACL,GAAG,CAAC,IAAI5C,UAAU,CAACG,GAAG,CAAC8C,QAAQ,CAACL,GAAG,CAAC;MAC3EZ,WAAW,EAAEC,IAAI,CAACC,GAAG,EAAE;MACvBV,OAAO,EAAE,KAAK;MACd0B,QAAQ,EAAE;IACd,CAAC;IAAC;EACN;EAAC;IAAA;IAAA,OAED,oBAAW;MAAA;MACP,IAAI,IAAI,CAAC/B,KAAK,CAACiB,IAAI,EAAE;QACjB,IAAMD,KAAK,GAAG,IAAI,CAAChB,KAAK,CAACiB,IAAI,CAACC,KAAK,CAAC,GAAG,CAAC;QACxCF,KAAK,CAACK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QAClB,IAAMC,OAAO,GAAGN,KAAK,CAAC,CAAC,CAAC;QACxB,IAAMO,IAAI,GAAGP,KAAK,CAACK,MAAM,CAAC,CAAC,CAAC,CAACG,IAAI,CAAC,GAAG,CAAC;QAEtC,IAAI,CAACxB,KAAK,CAACgC,MAAM,CAACrB,QAAQ,CAACW,OAAO,EAAEC,IAAI,CAAC,CACpCU,IAAI,CAAC,UAAAd,IAAI,EAAI;UACV,IAAIA,IAAI,CAACe,IAAI,KAAKC,SAAS,EAAE;YACzBhB,IAAI,GAAGA,IAAI,CAACe,IAAI;UACpB;UAEA,IAAME,QAAQ,GAAG;YAACP,YAAY,EAAE,MAAI,CAACzB,KAAK,CAACyB;UAAY,CAAC;UACxD;UACA,IAAIV,IAAI,CAACkB,IAAI,KAAK,QAAQ,EAAE;YACxB,IAAMZ,GAAG,GAAGC,iBAAK,CAACY,cAAc,CAACnD,cAAc,CAACgC,IAAI,CAACA,IAAI,CAAC,CAAC;YAC3D,IAAIM,GAAG,EAAE;cACLW,QAAQ,CAACX,GAAG,GAAGA,GAAG;cAClBW,QAAQ,CAACP,YAAY,GAAGhD,UAAU,CAACE,IAAI,CAAC+C,QAAQ,CAACL,GAAG,CAAC,IAAI5C,UAAU,CAACG,GAAG,CAAC8C,QAAQ,CAACL,GAAG,CAAC;YACzF;UACJ;UAEA,IAAIW,QAAQ,CAACP,YAAY,EAAE;YACvB,IAAIhD,UAAU,CAACG,GAAG,CAAC8C,QAAQ,CAAC,MAAI,CAAC1B,KAAK,CAACqB,GAAG,CAAC,EAAE;cACzCW,QAAQ,CAAC1B,IAAI,GAAGS,IAAI;cACpBiB,QAAQ,CAAChB,YAAY,GAAGD,IAAI;YAChC,CAAC,MAAM,IAAItC,UAAU,CAACE,IAAI,CAAC+C,QAAQ,CAAC,MAAI,CAAC1B,KAAK,CAACqB,GAAG,CAAC,EAAE;cACjDW,QAAQ,CAACrD,IAAI,GAAGoC,IAAI;cACpBiB,QAAQ,CAAChB,YAAY,GAAGD,IAAI;YAChC;UACJ;UAEA,MAAI,CAACP,QAAQ,CAACwB,QAAQ,CAAC;QAC3B,CAAC,CAAC,SACI,CAAC,UAAAG,CAAC;UAAA,OAAI1C,MAAM,CAACY,KAAK,CAAC,oBAAoB,GAAG8B,CAAC,CAAC;QAAA,EAAC;MAC3D;IACJ;EAAC;IAAA;IAAA,OAED,6BAAoB;MAChB,IAAI,CAAC5B,QAAQ,EAAE;MAEf,IAAMK,KAAK,GAAG,IAAI,CAAChB,KAAK,CAACiB,IAAI,CAACC,KAAK,CAAC,GAAG,CAAC;MACxCF,KAAK,CAACK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;MAClB,IAAMC,OAAO,GAAGN,KAAK,CAAC,CAAC,CAAC;MACxB,IAAMO,IAAI,GAAGP,KAAK,CAACK,MAAM,CAAC,CAAC,CAAC,CAACG,IAAI,CAAC,GAAG,CAAC;MAEtC,IAAI,CAACxB,KAAK,CAACwC,iBAAiB,IAAI,IAAI,CAACxC,KAAK,CAACgC,MAAM,CAACS,cAAc,CAACnB,OAAO,EAAEC,IAAI,EAAE,IAAI,CAACmB,aAAa,CAAC;IACvG;EAAC;IAAA;IAAA,OAED,gCAAuB;MACnB,IAAI,CAACpC,OAAO,IAAIC,YAAY,CAAC,IAAI,CAACD,OAAO,CAAC;MAC1C,IAAMU,KAAK,GAAG,IAAI,CAAChB,KAAK,CAACiB,IAAI,CAACC,KAAK,CAAC,GAAG,CAAC;MACxCF,KAAK,CAACK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;MAClB,IAAMC,OAAO,GAAGN,KAAK,CAAC,CAAC,CAAC;MACxB,IAAMO,IAAI,GAAGP,KAAK,CAACK,MAAM,CAAC,CAAC,CAAC,CAACG,IAAI,CAAC,GAAG,CAAC;MACtC,IAAI,CAACxB,KAAK,CAACwC,iBAAiB,IAAI,IAAI,CAACxC,KAAK,CAACgC,MAAM,CAACS,cAAc,CAACnB,OAAO,EAAEC,IAAI,EAAE,IAAI,CAACmB,aAAa,CAAC;IACvG;EAAC;IAAA;IAAA,OAiDD,sBAAa;MAAA;MACT,IAAI7D,UAAU,CAACC,MAAM,CAACgD,QAAQ,CAAC,IAAI,CAAC1B,KAAK,CAACqB,GAAG,CAAC,EAAE;QAC5C,IAAI,IAAI,CAACrB,KAAK,CAAC2B,QAAQ,EAAE;UACrB,oBAAO,gCAAC,sBAAU;YAAC,SAAS,EAAEL,iBAAK,CAACiB,IAAI,CAAC,IAAI,CAAC3C,KAAK,CAAC4C,OAAO,CAACpE,GAAG,EAAE,IAAI,CAACwB,KAAK,CAAC6C,uBAAuB,EAAE;UAAE,EAAG;QAC9G,CAAC,MAAM;UACH,oBAAO;YACH,OAAO,EAAE,iBAAAN,CAAC,EAAI;cACVA,CAAC,CAACO,MAAM,CAACC,OAAO,GAAG,IAAI;cACvB,MAAI,CAACnC,QAAQ,CAAC;gBAAEmB,QAAQ,EAAE;cAAK,CAAC,CAAC;YACrC,CAAE;YACF,SAAS,EAAEL,iBAAK,CAACiB,IAAI,CAAC,IAAI,CAAC3C,KAAK,CAAC4C,OAAO,CAACpE,GAAG,EAAE,IAAI,CAACwB,KAAK,CAAC6C,uBAAuB,EAAE,CAAE;YACpF,GAAG,EAAE,IAAI,CAAC7C,KAAK,CAACiB,IAAI,GAAG,MAAM,GAAG,IAAI,CAACb,KAAK,CAACS,WAAY;YACvD,GAAG,EAAE,IAAI,CAACb,KAAK,CAACiB;UAAK,EACvB;QACN;MACJ,CAAC,MAAM,IAAI,IAAI,CAACb,KAAK,CAACrB,IAAI,KAAK,IAAI,IAAI,IAAI,CAACqB,KAAK,CAACM,IAAI,KAAK,IAAI,IAAI,IAAI,CAACN,KAAK,CAACwB,OAAO,EAAE;QACnF,oBAAO,gCAAC,qBAAS;UACb,OAAO,EAAC,UAAU;UAClB,SAAS,EAAG,IAAI,CAAC5B,KAAK,CAAC4C,OAAO,CAACtE,QAAU;UACzC,SAAS;UACT,KAAK,EAAG,IAAI,CAAC8B,KAAK,CAACgB,YAAY,IAAI,IAAI,CAAChB,KAAK,CAACrB,IAAI,IAAI,IAAI,CAACqB,KAAK,CAACM,IAAM;UACvE,QAAQ,EAAE,kBAAAsC,QAAQ;YAAA,OAAI,MAAI,CAACpC,QAAQ,CAAC;cAAEQ,YAAY,EAAE4B,QAAQ;cAAE3C,OAAO,EAAE;YAAK,CAAC,CAAC;UAAA,CAAC;UAC/E,UAAU,EAAE;YAAE4C,QAAQ,EAAE,CAAC,IAAI,CAAC7C,KAAK,CAACwB;UAAQ;QAAE,EAChD;MACN;IACJ;EAAC;IAAA;IAAA,OAED,kBAAS;MAAA;MACL,oBAAO,gCAAC,kBAAM;QACV,OAAO,EAAE;UAAEsB,WAAW,EAAE,IAAI,CAAClD,KAAK,CAAC4C,OAAO,CAAC3E,MAAM;UAAEE,KAAK,EAAE,IAAI,CAAC6B,KAAK,CAAC4C,OAAO,CAACzE;QAAM,CAAE;QACrF,MAAM,EAAC,OAAO;QACd,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC6B,KAAK,CAACiB,IAAK;QACxB,OAAO,EAAE;UAAA,OAAM,MAAI,CAACjB,KAAK,CAACmD,OAAO,EAAE;QAAA,CAAC;QACpC,SAAS,EAAE,IAAK;QAChB,QAAQ,EAAC,IAAI;QACb,mBAAgB;MAAmB,gBAEnC;QAAK,SAAS,EAAE,IAAI,CAACnD,KAAK,CAAC4C,OAAO,CAAClE;MAAY,gBAC3C,gCAAC,uBAAW;QAAC,EAAE,EAAC;MAAmB,GAAE,IAAI,CAACsB,KAAK,CAACoD,CAAC,CAAC,IAAI,CAAChD,KAAK,CAACwB,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC5B,KAAK,CAACiB,IAAI,CAAe,EAC9HpC,UAAU,CAACC,MAAM,CAACgD,QAAQ,CAAC,IAAI,CAAC1B,KAAK,CAACqB,GAAG,CAAC,iBAAI,0DAC3C,gCAAC,oBAAU;QAAC,IAAI,EAAC,OAAO;QACpB,KAAK,EAAE,SAAU;QACjB,OAAO,EAAE,IAAI,CAACzB,KAAK,CAACqD;MAAwB,gBAE5C,gCAAC,sBAAe,OAAG,CACV,CACX,CAEJ,eACN,gCAAC,yBAAa;QAAC,SAAS,EAAE,IAAI,CAACrD,KAAK,CAAC4C,OAAO,CAACxE;MAAQ,GAChD,IAAI,CAACkF,UAAU,EAAE,CACN,eAChB,gCAAC,yBAAa,QACT,IAAI,CAAClD,KAAK,CAACyB,YAAY,gBACpB,gCAAC,kBAAM;QACH,KAAK,EAAC,MAAM;QACZ,OAAO,EAAE,iBAAAU,CAAC;UAAA,OAAIb,iBAAK,CAAC6B,eAAe,CAAC,MAAI,CAACnD,KAAK,CAACM,IAAI,IAAI,MAAI,CAACN,KAAK,CAACrB,IAAI,EAAEwD,CAAC,CAAC;QAAA,CAAC;QAC3E,SAAS,eAAE,gCAAC,UAAQ;MAAI,GAEvB,IAAI,CAACvC,KAAK,CAACoD,CAAC,CAAC,cAAc,CAAC,CACxB,GAAG,IAAI,EACnB,IAAI,CAAChD,KAAK,CAACwB,OAAO,gBACf,gCAAC,kBAAM;QACH,KAAK,EAAC,MAAM;QACZ,QAAQ,EAAE,IAAI,CAACxB,KAAK,CAACgB,YAAY,KAAK,IAAI,CAAChB,KAAK,CAACrB,IAAI,IAAI,IAAI,CAACqB,KAAK,CAACgB,YAAY,KAAK,IAAI,CAAChB,KAAK,CAACM,IAAK;QACrG,OAAO,EAAC,WAAW;QACnB,OAAO,EAAE,IAAI,CAAC8C,WAAY;QAC1B,SAAS,eAAE,gCAAC,gBAAQ;MAAI,GAEvB,IAAI,CAACxD,KAAK,CAACoD,CAAC,CAAC,MAAM,CAAC,CAChB,GAAG,IAAI,eACpB,gCAAC,kBAAM;QACH,OAAO,EAAC,WAAW;QACnB,OAAO,EAAE;UAAA,OAAM,MAAI,CAACpD,KAAK,CAACmD,OAAO,EAAE;QAAA,CAAC;QACpC,KAAK,EAAC,SAAS;QACf,SAAS,eAAE,gCAAC,iBAAS;MAAI,GAExB,IAAI,CAACnD,KAAK,CAACoD,CAAC,CAAC,OAAO,CAAC,CACjB,CACG,CACX;IACb;EAAC;IAAA;IAAA,OAlGD,qBAAmB3B,GAAG,EAAE;MACpB,QAAQA,GAAG;QACP,KAAK,MAAM;UACP,OAAO,MAAM;QACjB,KAAK,OAAO;UACR,OAAO,OAAO;QAClB,KAAK,IAAI;UACL,OAAO,YAAY;QACvB,KAAK,MAAM;UACP,OAAO,MAAM;QACjB,KAAK,KAAK;UACN,OAAO,MAAM;QACjB;UACI,OAAO,MAAM;MAAC;IAE1B;EAAC;EAAA;AAAA,EA9HoBgC,gBAAS;AAoNlC1D,UAAU,CAAC2D,SAAS,GAAG;EACnBN,CAAC,EAAEO,qBAAS,CAACC,IAAI;EACjBC,IAAI,EAAEF,qBAAS,CAACG,MAAM;EACtBC,UAAU,EAAEJ,qBAAS,CAACK,IAAI;EAC1Bb,OAAO,EAAEQ,qBAAS,CAACC,IAAI;EACvB3C,IAAI,EAAE0C,qBAAS,CAACG,MAAM,CAACG,UAAU;EACjCzB,iBAAiB,EAAEmB,qBAAS,CAACK;AACjC,CAAC;;AAED;AACA,IAAME,OAAO,GAAG,IAAAC,qBAAS,GAAE,CAAC,IAAAC,kBAAU,EAACrG,MAAM,CAAC,CAACgC,UAAU,CAAC,CAAC;AAAC,eAC7CmE,OAAO;AAAA"}
|
|
1
|
+
{"version":3,"file":"FileViewer.js","names":["styles","theme","dialog","height","paper","content","textAlign","textarea","width","img","objectFit","dialogTitle","justifyContent","display","EXTENSIONS","images","code","txt","audio","video","bufferToBase64","buffer","binary","bytes","Uint8Array","len","byteLength","i","String","fromCharCode","window","btoa","FileViewer","props","id","fileName","size","state","changed","timeout","clearTimeout","setTimeout","alert","text","readFile","setState","forceUpdate","Date","now","parts","href","split","data","editingValue","splice","adapter","name","join","ext","Utils","getFileExtension","editing","copyPossible","includes","imgError","socket","then","file","undefined","newState","type","detectMimeType","e","supportSubscribes","subscribeFiles","onFileChanged","clsx","classes","getClassBackgroundImage","target","onerror","newValue","readOnly","scrollPaper","onClose","t","setStateBackgroundImage","getContent","copyToClipboard","writeFile64","Component","propTypes","PropTypes","func","lang","string","expertMode","bool","isRequired","_export","withWidth","withStyles"],"sources":["FileViewer.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { withStyles } from '@mui/styles';\nimport PropTypes from 'prop-types';\n\n// File viewer in adapter-react does not support write\n// import { Buffer } from 'buffer';\n\nimport TextField from '@mui/material/TextField';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport { IconButton } from '@mui/material';\n\nimport IconNoIcon from '../icons/IconNoIcon';\nimport withWidth from './withWidth';\nimport Utils from './Utils';\n\n// Icons\nimport { FaCopy as CopyIcon } from 'react-icons/fa';\nimport Brightness5Icon from '@mui/icons-material/Brightness6';\nimport CloseIcon from '@mui/icons-material/Close';\nimport SaveIcon from '@mui/icons-material/Save';\n\nconst styles = theme => ({\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) {\n let binary = '';\n let bytes = new Uint8Array(buffer);\n let len = bytes.byteLength;\n for (let i = 0; i < len && i < 50; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return window.btoa(binary);\n}\n\n/**\n * @typedef {object} FileViewerProps\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};\n // try to detect valid extension\n if (data.type === 'Buffer') {\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 if (newState.copyPossible) {\n if (EXTENSIONS.txt.includes(this.state.ext)) {\n newState.text = data;\n newState.editingValue = data;\n } else if (EXTENSIONS.code.includes(this.state.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 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 // File viewer in adapter-react does not support write\n /*\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 } else {\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 } else if (this.state.code !== null || this.state.text !== null || this.state.editing) {\n return <TextField\n variant=\"standard\"\n className={ this.props.classes.textarea }\n multiline\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 }\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=\"form-dialog-title\"\n >\n <div className={this.props.classes.dialogTitle}>\n <DialogTitle id=\"form-dialog-title\">{this.props.t(this.state.editing ? 'Edit' : 'View') + ': ' + this.props.href}</DialogTitle>\n {EXTENSIONS.images.includes(this.state.ext) && <div>\n <IconButton size=\"large\"\n color={'inherit'}\n onClick={this.props.setStateBackgroundImage}\n >\n <Brightness5Icon />\n </IconButton>\n </div>\n }\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 lang: PropTypes.string,\n expertMode: PropTypes.bool,\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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"}
|
|
@@ -2011,7 +2011,7 @@ var IconSelector = /*#__PURE__*/function (_Component) {
|
|
|
2011
2011
|
opened: false
|
|
2012
2012
|
});
|
|
2013
2013
|
},
|
|
2014
|
-
open:
|
|
2014
|
+
open: !0
|
|
2015
2015
|
}, /*#__PURE__*/_react["default"].createElement(_DialogTitle["default"], null, this.props.t('ra_Select predefined icon'), this.state.isAnyName ? /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
|
|
2016
2016
|
variant: "standard",
|
|
2017
2017
|
margin: "dense",
|