@iobroker/adapter-react-v5 3.1.34 → 3.1.35
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/404.js +0 -23
- package/Components/404.js.map +1 -1
- package/Components/ColorPicker.js +6 -37
- package/Components/ColorPicker.js.map +1 -1
- package/Components/ComplexCron.js +10 -84
- package/Components/ComplexCron.js.map +1 -1
- package/Components/CustomModal.js +29 -54
- package/Components/CustomModal.js.map +1 -1
- package/Components/FileBrowser.js +15 -265
- package/Components/FileBrowser.js.map +1 -1
- package/Components/FileViewer.js +7 -68
- package/Components/FileViewer.js.map +1 -1
- package/Components/Icon.d.ts +1 -1
- package/Components/Icon.js +2 -42
- package/Components/Icon.js.map +1 -1
- package/Components/IconPicker.js +6 -28
- package/Components/IconPicker.js.map +1 -1
- package/Components/IconSelector.js +3 -55
- package/Components/IconSelector.js.map +1 -1
- package/Components/Image.js +1 -38
- package/Components/Image.js.map +1 -1
- package/Components/JsonConfigComponent/ChipInput.js +66 -197
- package/Components/JsonConfigComponent/ChipInput.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigAlive.js +0 -31
- package/Components/JsonConfigComponent/ConfigAlive.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigAutocomplete.js +6 -39
- package/Components/JsonConfigComponent/ConfigAutocomplete.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js +6 -52
- package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCRON.js +5 -39
- package/Components/JsonConfigComponent/ConfigCRON.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCertificateSelect.js +4 -42
- package/Components/JsonConfigComponent/ConfigCertificateSelect.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCheckbox.js +0 -28
- package/Components/JsonConfigComponent/ConfigCheckbox.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigChip.js +4 -33
- package/Components/JsonConfigComponent/ConfigChip.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigColor.js +0 -34
- package/Components/JsonConfigComponent/ConfigColor.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCoordinates.js +0 -33
- package/Components/JsonConfigComponent/ConfigCoordinates.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCustom.js +14 -73
- package/Components/JsonConfigComponent/ConfigCustom.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigDatePicker.js +0 -25
- package/Components/JsonConfigComponent/ConfigDatePicker.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFile.js +0 -46
- package/Components/JsonConfigComponent/ConfigFile.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFileSelector.js +7 -126
- package/Components/JsonConfigComponent/ConfigFileSelector.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFunc.js +0 -34
- package/Components/JsonConfigComponent/ConfigFunc.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigGeneric.js +15 -110
- package/Components/JsonConfigComponent/ConfigGeneric.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigIP.js +2 -35
- package/Components/JsonConfigComponent/ConfigIP.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigImageUpload.js +4 -44
- package/Components/JsonConfigComponent/ConfigImageUpload.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigInstanceSelect.js +1 -59
- package/Components/JsonConfigComponent/ConfigInstanceSelect.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigJsonEditor.js +7 -40
- package/Components/JsonConfigComponent/ConfigJsonEditor.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigLanguage.js +2 -42
- package/Components/JsonConfigComponent/ConfigLanguage.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigNumber.js +2 -45
- package/Components/JsonConfigComponent/ConfigNumber.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigObjectId.js +6 -40
- package/Components/JsonConfigComponent/ConfigObjectId.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigPanel.js +7 -91
- package/Components/JsonConfigComponent/ConfigPanel.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigPassword.js +0 -42
- package/Components/JsonConfigComponent/ConfigPassword.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigPattern.js +0 -25
- package/Components/JsonConfigComponent/ConfigPattern.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigRoom.js +0 -34
- package/Components/JsonConfigComponent/ConfigRoom.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSelect.js +4 -34
- package/Components/JsonConfigComponent/ConfigSelect.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSelectSendTo.js +11 -67
- package/Components/JsonConfigComponent/ConfigSelectSendTo.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSendto.js +8 -91
- package/Components/JsonConfigComponent/ConfigSendto.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSetState.js +0 -55
- package/Components/JsonConfigComponent/ConfigSetState.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSlider.js +0 -28
- package/Components/JsonConfigComponent/ConfigSlider.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigStaticDivider.js +0 -21
- package/Components/JsonConfigComponent/ConfigStaticDivider.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigStaticHeader.js +0 -24
- package/Components/JsonConfigComponent/ConfigStaticHeader.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigStaticImage.js +0 -23
- package/Components/JsonConfigComponent/ConfigStaticImage.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigStaticText.js +0 -31
- package/Components/JsonConfigComponent/ConfigStaticText.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTable.js +13 -105
- package/Components/JsonConfigComponent/ConfigTable.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTabs.js +2 -35
- package/Components/JsonConfigComponent/ConfigTabs.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigText.js +0 -34
- package/Components/JsonConfigComponent/ConfigText.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTextSendTo.js +0 -37
- package/Components/JsonConfigComponent/ConfigTextSendTo.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTimePicker.js +0 -25
- package/Components/JsonConfigComponent/ConfigTimePicker.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTopic.js +0 -29
- package/Components/JsonConfigComponent/ConfigTopic.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigUser.js +2 -40
- package/Components/JsonConfigComponent/ConfigUser.js.map +1 -1
- package/Components/JsonConfigComponent/index.js +5 -81
- package/Components/JsonConfigComponent/index.js.map +1 -1
- package/Components/Loader.js +2 -20
- package/Components/Loader.js.map +1 -1
- package/Components/Loaders/PT.js +2 -20
- package/Components/Loaders/PT.js.map +1 -1
- package/Components/Loaders/Vendor.js +2 -21
- package/Components/Loaders/Vendor.js.map +1 -1
- package/Components/Logo.js +6 -39
- package/Components/Logo.js.map +1 -1
- package/Components/MDUtils.js +3 -27
- package/Components/MDUtils.js.map +1 -1
- package/Components/ObjectBrowser.d.ts +1 -1
- package/Components/ObjectBrowser.js +181 -788
- package/Components/ObjectBrowser.js.map +1 -1
- package/Components/Router.js +7 -31
- package/Components/Router.js.map +1 -1
- package/Components/SaveCloseButtons.js +2 -32
- package/Components/SaveCloseButtons.js.map +1 -1
- package/Components/Schedule.js +29 -251
- package/Components/Schedule.js.map +1 -1
- package/Components/SelectWithIcon.d.ts +1 -1
- package/Components/SelectWithIcon.js +0 -48
- package/Components/SelectWithIcon.js.map +1 -1
- package/Components/SimpleCron/cron2text.js +45 -91
- package/Components/SimpleCron/cron2text.js.map +1 -1
- package/Components/SimpleCron/cronText.js +0 -6
- package/Components/SimpleCron/cronText.js.map +1 -1
- package/Components/SimpleCron/index.js +19 -102
- package/Components/SimpleCron/index.js.map +1 -1
- package/Components/SimpleCron/jquery.cron.locale.js +44 -24
- package/Components/SimpleCron/jquery.cron.locale.js.map +1 -1
- package/Components/TabContainer.js +2 -23
- package/Components/TabContainer.js.map +1 -1
- package/Components/TabContent.js +2 -22
- package/Components/TabContent.js.map +1 -1
- package/Components/TabHeader.js +1 -17
- package/Components/TabHeader.js.map +1 -1
- package/Components/TableResize.js +6 -51
- package/Components/TableResize.js.map +1 -1
- package/Components/TextWithIcon.js +0 -20
- package/Components/TextWithIcon.js.map +1 -1
- package/Components/ToggleThemeMenu.js +5 -13
- package/Components/ToggleThemeMenu.js.map +1 -1
- package/Components/TreeTable.js +4 -121
- package/Components/TreeTable.js.map +1 -1
- package/Components/UploadImage.js +17 -60
- package/Components/UploadImage.js.map +1 -1
- package/Components/Utils.js +87 -263
- package/Components/Utils.js.map +1 -1
- package/Components/copy-to-clipboard.js +16 -38
- package/Components/copy-to-clipboard.js.map +1 -1
- package/Components/withWidth.js +2 -10
- package/Components/withWidth.js.map +1 -1
- package/Connection.d.ts +1 -0
- package/Connection.js +156 -527
- package/Connection.js.map +1 -1
- package/Dialogs/ComplexCron.js +0 -34
- package/Dialogs/ComplexCron.js.map +1 -1
- package/Dialogs/Confirm.js +1 -39
- package/Dialogs/Confirm.js.map +1 -1
- package/Dialogs/Cron.js +1 -37
- package/Dialogs/Cron.js.map +1 -1
- package/Dialogs/Error.d.ts +1 -1
- package/Dialogs/Error.js +2 -29
- package/Dialogs/Error.js.map +1 -1
- package/Dialogs/FileSelect.js +2 -36
- package/Dialogs/FileSelect.js.map +1 -1
- package/Dialogs/Message.js +2 -27
- package/Dialogs/Message.js.map +1 -1
- package/Dialogs/SelectID.d.ts +1 -1
- package/Dialogs/SelectID.js +3 -40
- package/Dialogs/SelectID.js.map +1 -1
- package/Dialogs/SimpleCron.js +1 -33
- package/Dialogs/SimpleCron.js.map +1 -1
- package/Dialogs/TextInput.js +2 -34
- package/Dialogs/TextInput.js.map +1 -1
- package/GenericApp.js +54 -150
- package/GenericApp.js.map +1 -1
- package/Prompt.js +0 -2
- package/Prompt.js.map +1 -1
- package/README.md +8 -4
- package/Theme.js +7 -22
- package/Theme.js.map +1 -1
- package/i18n.d.ts +2 -0
- package/i18n.js +9 -29
- package/i18n.js.map +1 -1
- package/icons/IconAdapter.d.ts +2 -2
- package/icons/IconAdapter.js +2 -6
- package/icons/IconAdapter.js.map +1 -1
- package/icons/IconAlias.d.ts +2 -2
- package/icons/IconAlias.js +2 -6
- package/icons/IconAlias.js.map +1 -1
- package/icons/IconChannel.d.ts +2 -2
- package/icons/IconChannel.js +2 -6
- package/icons/IconChannel.js.map +1 -1
- package/icons/IconClearFilter.d.ts +2 -2
- package/icons/IconClearFilter.js +0 -5
- package/icons/IconClearFilter.js.map +1 -1
- package/icons/IconClosed.d.ts +2 -2
- package/icons/IconClosed.js +0 -5
- package/icons/IconClosed.js.map +1 -1
- package/icons/IconCopy.d.ts +2 -2
- package/icons/IconCopy.js +0 -5
- package/icons/IconCopy.js.map +1 -1
- package/icons/IconDevice.d.ts +2 -2
- package/icons/IconDevice.js +0 -5
- package/icons/IconDevice.js.map +1 -1
- package/icons/IconDocument.d.ts +2 -2
- package/icons/IconDocument.js +0 -5
- package/icons/IconDocument.js.map +1 -1
- package/icons/IconDocumentReadOnly.d.ts +2 -2
- package/icons/IconDocumentReadOnly.js +0 -5
- package/icons/IconDocumentReadOnly.js.map +1 -1
- package/icons/IconExpert.d.ts +2 -2
- package/icons/IconExpert.js +0 -5
- package/icons/IconExpert.js.map +1 -1
- package/icons/IconFx.d.ts +2 -2
- package/icons/IconFx.js +0 -5
- package/icons/IconFx.js.map +1 -1
- package/icons/IconInstance.d.ts +2 -2
- package/icons/IconInstance.js +0 -5
- package/icons/IconInstance.js.map +1 -1
- package/icons/IconLogout.d.ts +2 -2
- package/icons/IconLogout.js +0 -5
- package/icons/IconLogout.js.map +1 -1
- package/icons/IconNoIcon.d.ts +2 -2
- package/icons/IconNoIcon.js +0 -5
- package/icons/IconNoIcon.js.map +1 -1
- package/icons/IconOpen.d.ts +2 -2
- package/icons/IconOpen.js +0 -5
- package/icons/IconOpen.js.map +1 -1
- package/icons/IconState.d.ts +2 -2
- package/icons/IconState.js +0 -6
- package/icons/IconState.js.map +1 -1
- package/package.json +15 -15
|
@@ -1 +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","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","state","deleteFile","isOk","readFile","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","binaryString","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 });\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 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 const binaryString = window.atob(base64);\n const len = binaryString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes.buffer;\n }\n\n loadFile() {\n return this.props.socket.readFile(this.objectID, this.state.value, true);\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('ra_Drop file here') :\n I18n.t('ra_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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"}
|
|
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","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","state","deleteFile","isOk","readFile","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","binaryString","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 });\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 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 const binaryString = window.atob(base64);\n const len = binaryString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes.buffer;\n }\n\n loadFile() {\n return this.props.socket.readFile(this.objectID, this.state.value, true);\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('ra_Drop file here') :\n I18n.t('ra_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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"}
|
|
@@ -1,50 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports["default"] = void 0;
|
|
9
|
-
|
|
10
8
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
9
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
10
|
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
15
|
-
|
|
16
11
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
12
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
-
|
|
20
13
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
-
|
|
22
14
|
var _react = _interopRequireDefault(require("react"));
|
|
23
|
-
|
|
24
15
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
25
|
-
|
|
26
16
|
var _styles = require("@mui/styles");
|
|
27
|
-
|
|
28
17
|
var _InputLabel = _interopRequireDefault(require("@mui/material/InputLabel"));
|
|
29
|
-
|
|
30
18
|
var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
|
|
31
|
-
|
|
32
19
|
var _FormHelperText = _interopRequireDefault(require("@mui/material/FormHelperText"));
|
|
33
|
-
|
|
34
20
|
var _FormControl = _interopRequireDefault(require("@mui/material/FormControl"));
|
|
35
|
-
|
|
36
21
|
var _Select = _interopRequireDefault(require("@mui/material/Select"));
|
|
37
|
-
|
|
38
22
|
var _TextWithIcon = _interopRequireDefault(require("../TextWithIcon"));
|
|
39
|
-
|
|
40
23
|
var _i18n = _interopRequireDefault(require("../../i18n"));
|
|
41
|
-
|
|
42
24
|
var _ConfigGeneric2 = _interopRequireDefault(require("./ConfigGeneric"));
|
|
43
|
-
|
|
44
25
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
45
|
-
|
|
46
26
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
47
|
-
|
|
48
27
|
var styles = function styles(theme) {
|
|
49
28
|
return {
|
|
50
29
|
fullWidth: {
|
|
@@ -52,26 +31,19 @@ var styles = function styles(theme) {
|
|
|
52
31
|
}
|
|
53
32
|
};
|
|
54
33
|
};
|
|
55
|
-
|
|
56
34
|
var ConfigFunc = /*#__PURE__*/function (_ConfigGeneric) {
|
|
57
35
|
(0, _inherits2["default"])(ConfigFunc, _ConfigGeneric);
|
|
58
|
-
|
|
59
36
|
var _super = _createSuper(ConfigFunc);
|
|
60
|
-
|
|
61
37
|
function ConfigFunc() {
|
|
62
38
|
(0, _classCallCheck2["default"])(this, ConfigFunc);
|
|
63
39
|
return _super.apply(this, arguments);
|
|
64
40
|
}
|
|
65
|
-
|
|
66
41
|
(0, _createClass2["default"])(ConfigFunc, [{
|
|
67
42
|
key: "componentDidMount",
|
|
68
43
|
value: function componentDidMount() {
|
|
69
44
|
var _this = this;
|
|
70
|
-
|
|
71
45
|
(0, _get2["default"])((0, _getPrototypeOf2["default"])(ConfigFunc.prototype), "componentDidMount", this).call(this);
|
|
72
|
-
|
|
73
46
|
var value = _ConfigGeneric2["default"].getValue(this.props.data, this.props.attr);
|
|
74
|
-
|
|
75
47
|
this.props.socket.getEnums('functions').then(function (enums) {
|
|
76
48
|
var selectOptions = Object.keys(enums).map(function (id) {
|
|
77
49
|
return {
|
|
@@ -80,7 +52,6 @@ var ConfigFunc = /*#__PURE__*/function (_ConfigGeneric) {
|
|
|
80
52
|
obj: enums[id]
|
|
81
53
|
};
|
|
82
54
|
});
|
|
83
|
-
|
|
84
55
|
_this.setState({
|
|
85
56
|
value: value,
|
|
86
57
|
selectOptions: selectOptions
|
|
@@ -91,11 +62,9 @@ var ConfigFunc = /*#__PURE__*/function (_ConfigGeneric) {
|
|
|
91
62
|
key: "renderItem",
|
|
92
63
|
value: function renderItem(error, disabled, defaultValue) {
|
|
93
64
|
var _this2 = this;
|
|
94
|
-
|
|
95
65
|
if (!this.state.selectOptions) {
|
|
96
66
|
return null;
|
|
97
67
|
}
|
|
98
|
-
|
|
99
68
|
var item = this.state.selectOptions.find(function (item) {
|
|
100
69
|
return item.value === _this2.state.value;
|
|
101
70
|
});
|
|
@@ -138,7 +107,6 @@ var ConfigFunc = /*#__PURE__*/function (_ConfigGeneric) {
|
|
|
138
107
|
}]);
|
|
139
108
|
return ConfigFunc;
|
|
140
109
|
}(_ConfigGeneric2["default"]);
|
|
141
|
-
|
|
142
110
|
ConfigFunc.propTypes = {
|
|
143
111
|
socket: _propTypes["default"].object.isRequired,
|
|
144
112
|
themeType: _propTypes["default"].string,
|
|
@@ -150,8 +118,6 @@ ConfigFunc.propTypes = {
|
|
|
150
118
|
onError: _propTypes["default"].func,
|
|
151
119
|
onChange: _propTypes["default"].func
|
|
152
120
|
};
|
|
153
|
-
|
|
154
121
|
var _default = (0, _styles.withStyles)(styles)(ConfigFunc);
|
|
155
|
-
|
|
156
122
|
exports["default"] = _default;
|
|
157
123
|
//# sourceMappingURL=ConfigFunc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigFunc.js","names":["styles","theme","fullWidth","width","ConfigFunc","value","ConfigGeneric","getValue","props","data","attr","socket","getEnums","then","enums","selectOptions","Object","keys","map","id","schema","replace","label","getText","common","name","obj","setState","error","disabled","defaultValue","state","item","find","classes","val","themeType","I18n","getLanguage","e","target","onChange","DIFFERENT_VALUE","opacity","help","renderHelp","helpLink","noTranslation","propTypes","PropTypes","object","isRequired","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigFunc.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\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';\n\nimport TextWithIcon from '../TextWithIcon';\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigFunc extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n this.props.socket.getEnums('functions')\n .then(enums => {\n const selectOptions = Object.keys(enums)\n .map(id => ({ value: this.props.schema.short ? id.replace('enum.functions.', '') : id, label: this.getText(enums[id].common.name), obj: enums[id]}));\n this.setState({ value, selectOptions });\n });\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n\n const item = this.state.selectOptions.find(item => item.value === this.state.value);\n\n return <FormControl\n variant=\"standard\"\n className={this.props.classes.fullWidth}\n >\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 => item ? <TextWithIcon value={item.obj} themeType={this.props.themeType} lang={I18n.getLanguage()}/> : ''}\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 {this.state.selectOptions.map(item =>\n <MenuItem key={item.value} value={item.value} style={item.value === ConfigGeneric.DIFFERENT_VALUE ? {opacity: 0.5} : {}}>\n <TextWithIcon value={item.obj} themeType={this.props.themeType} lang={I18n.getLanguage()}/>\n </MenuItem>)}\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 }\n}\n\nConfigFunc.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};\n\nexport default withStyles(styles)(ConfigFunc);"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ConfigFunc.js","names":["styles","theme","fullWidth","width","ConfigFunc","value","ConfigGeneric","getValue","props","data","attr","socket","getEnums","then","enums","selectOptions","Object","keys","map","id","schema","replace","label","getText","common","name","obj","setState","error","disabled","defaultValue","state","item","find","classes","val","themeType","I18n","getLanguage","e","target","onChange","DIFFERENT_VALUE","opacity","help","renderHelp","helpLink","noTranslation","propTypes","PropTypes","object","isRequired","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigFunc.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\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';\n\nimport TextWithIcon from '../TextWithIcon';\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigFunc extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n this.props.socket.getEnums('functions')\n .then(enums => {\n const selectOptions = Object.keys(enums)\n .map(id => ({ value: this.props.schema.short ? id.replace('enum.functions.', '') : id, label: this.getText(enums[id].common.name), obj: enums[id]}));\n this.setState({ value, selectOptions });\n });\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n\n const item = this.state.selectOptions.find(item => item.value === this.state.value);\n\n return <FormControl\n variant=\"standard\"\n className={this.props.classes.fullWidth}\n >\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 => item ? <TextWithIcon value={item.obj} themeType={this.props.themeType} lang={I18n.getLanguage()}/> : ''}\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 {this.state.selectOptions.map(item =>\n <MenuItem key={item.value} value={item.value} style={item.value === ConfigGeneric.DIFFERENT_VALUE ? {opacity: 0.5} : {}}>\n <TextWithIcon value={item.obj} themeType={this.props.themeType} lang={I18n.getLanguage()}/>\n </MenuItem>)}\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 }\n}\n\nConfigFunc.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};\n\nexport default withStyles(styles)(ConfigFunc);"],"mappings":"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"}
|