@iobroker/adapter-react-v5 4.0.8 → 4.0.10
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.map +1 -1
- package/Components/FileBrowser.js.map +1 -1
- package/Components/IconSelector.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCRON.js +13 -15
- package/Components/JsonConfigComponent/ConfigCRON.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCertificateSelect.js +39 -41
- package/Components/JsonConfigComponent/ConfigCertificateSelect.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCheckLicense.js +314 -322
- package/Components/JsonConfigComponent/ConfigCheckLicense.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCustom.js +138 -144
- package/Components/JsonConfigComponent/ConfigCustom.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFile.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFileSelector.js +95 -99
- package/Components/JsonConfigComponent/ConfigFileSelector.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFunc.js +13 -7
- package/Components/JsonConfigComponent/ConfigFunc.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigGeneric.js +4 -6
- package/Components/JsonConfigComponent/ConfigGeneric.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigIP.js +1 -1
- package/Components/JsonConfigComponent/ConfigIP.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigImageUpload.js +21 -23
- package/Components/JsonConfigComponent/ConfigImageUpload.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigInstanceSelect.js +69 -71
- package/Components/JsonConfigComponent/ConfigInstanceSelect.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigJsonEditor.js +17 -19
- package/Components/JsonConfigComponent/ConfigJsonEditor.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigLanguage.js +2 -2
- package/Components/JsonConfigComponent/ConfigLanguage.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigNumber.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigObjectId.js +14 -16
- package/Components/JsonConfigComponent/ConfigObjectId.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigPattern.js +1 -1
- package/Components/JsonConfigComponent/ConfigPattern.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigRoom.js +12 -6
- package/Components/JsonConfigComponent/ConfigRoom.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSelect.js +1 -1
- package/Components/JsonConfigComponent/ConfigSelect.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSendto.js +54 -41
- package/Components/JsonConfigComponent/ConfigSendto.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSetState.js +70 -76
- package/Components/JsonConfigComponent/ConfigSetState.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTable.js +21 -23
- package/Components/JsonConfigComponent/ConfigTable.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTextSendTo.js +2 -2
- package/Components/JsonConfigComponent/ConfigTextSendTo.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigUUID.js +13 -15
- package/Components/JsonConfigComponent/ConfigUUID.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigUser.js +2 -2
- package/Components/JsonConfigComponent/ConfigUser.js.map +1 -1
- package/Components/ObjectBrowser.js +198 -204
- package/Components/ObjectBrowser.js.map +1 -1
- package/Components/Schedule.js.map +1 -1
- package/Components/Utils.js +1 -1
- package/Components/Utils.js.map +1 -1
- package/Dialogs/SelectFile.js.map +1 -1
- package/Dialogs/SelectID.js.map +1 -1
- package/LICENSE +1 -1
- package/README.md +10 -2
- package/_Connection.js +23 -25
- package/_Connection.js.map +1 -1
- package/i18n/de.json +3 -1
- package/i18n/en.json +3 -1
- package/i18n/es.json +3 -1
- package/i18n/fr.json +3 -1
- package/i18n/it.json +3 -1
- package/i18n/nl.json +3 -1
- package/i18n/pl.json +3 -1
- package/i18n/pt.json +3 -1
- package/i18n/ru.json +3 -1
- package/i18n/uk.json +3 -1
- package/i18n/zh-cn.json +3 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigFile.js","names":["styles","theme","fullWidth","width","fullWidthOneButton","marginRight","fullWidthIcon","selectedImage","height","display","IMAGE_EXT","AUDIO_EXT","VIDEO_EXT","DOC_EXT","JS_EXT","ConfigFile","value","ConfigGeneric","getValue","props","data","attr","imagePrefix","undefined","setState","pos","state","indexOf","adapter","substring","path","socket","readFile","loadFile","then","AudioContext","context","buf","ConfigFileSelector","base64ToArrayBuffer","file","decodeAudioData","buffer","source","createBufferSource","connect","destination","start","err","window","alert","extension","split","pop","toLowerCase","includes","classes","backgroundImage","backgroundSize","backgroundRepeat","color","play","showFileBrowser","onChange","schema","trim","selectOnlyFolders","allowUpload","allowDownload","allowCreateFolder","allowView","showToolbar","limitPath","error","disabled","defaultValue","icon","getIcon","maxLength","max","readOnly","disableEdit","e","target","getText","placeholder","label","renderHelp","help","helpLink","noTranslation","renderFileBrowser","toString","propTypes","PropTypes","object","isRequired","themeType","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigFile.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\nimport IconButton from '@mui/material/IconButton';\n\nimport IconText from '@mui/icons-material/Article';\nimport IconVideo from '@mui/icons-material/Videocam';\nimport IconCode from '@mui/icons-material/Code';\nimport IconPlay from '@mui/icons-material/PlayArrow';\n\nimport SelectFileDialog from './wrapper/Dialogs/SelectFile';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport ConfigFileSelector from './ConfigFileSelector';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n fullWidthOneButton: {\n width: 'calc(100% - 69px)',\n marginRight: 4,\n },\n fullWidthIcon: {\n width: 'calc(100% - 119px)',\n marginRight: 4,\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 ConfigFile extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.imagePrefix = this.props.imagePrefix === undefined ? './files' : this.props.imagePrefix;\n this.setState({ value });\n }\n\n static getDerivedStateFromProps(props, state) {\n const value = ConfigGeneric.getValue(props.data, props.attr);\n if (value === null || value === undefined || value.toString().trim() !== (state.value || '').toString().trim()) {\n return { value };\n } else {\n return null;\n }\n }\n\n loadFile() {\n const pos = this.state.value.indexOf('/');\n if (pos !== -1) {\n const adapter = this.state.value.substring(0, pos);\n const path = this.state.value.substring(pos + 1);\n return this.props.socket.readFile(adapter, path, true);\n }\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() {\n const extension = this.state.value.split('.').pop().toLowerCase();\n if (IMAGE_EXT.includes(extension)) {\n return <div className={this.props.classes.selectedImage} style={{\n backgroundImage: `url(${this.imagePrefix}/${this.state.value})`,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n }} />;\n } else if (AUDIO_EXT.includes(extension)) {\n return <IconButton style={{ color: '#00FF00' }} onClick={() => this.play()}><IconPlay /></IconButton>;\n } else if (DOC_EXT.includes(extension)) {\n return <IconText />;\n } else if (VIDEO_EXT.includes(extension)) {\n return <IconVideo />;\n } else if (JS_EXT.includes(extension)) {\n return <IconCode />;\n }\n return null;\n }\n\n renderFileBrowser() {\n if (!this.state.showFileBrowser) {\n return null;\n } else {\n return <SelectFileDialog\n imagePrefix={this.props.imagePrefix}\n socket={this.props.socket}\n selected={this.state.value}\n onClose={() => this.setState({ showFileBrowser: false})}\n onOk={value => {\n this.setState({ value }, () =>\n this.onChange(this.props.attr, this.props.schema.trim === false ? value : (value || '').trim()));\n }}\n selectOnlyFolders={this.props.schema.selectOnlyFolders}\n allowUpload={this.props.schema.allowUpload}\n allowDownload={this.props.schema.allowDownload}\n allowCreateFolder={this.props.schema.allowCreateFolder}\n allowView={this.props.schema.allowView}\n showToolbar={this.props.schema.showToolbar}\n limitPath={this.props.schema.limitPath}\n />;\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n const icon = this.getIcon();\n\n return <div className={this.props.classes.fullWidth}>\n {icon}\n <TextField\n variant=\"standard\"\n className={icon ? this.props.classes.fullWidthIcon : this.props.classes.fullWidthOneButton}\n value={this.state.value === null || this.state.value === undefined ? '' : this.state.value}\n error={!!error}\n disabled={!!disabled}\n inputProps={{\n maxLength: this.props.schema.maxLength || this.props.schema.max || undefined,\n readOnly: !!this.props.schema.disableEdit\n }}\n onChange={e => {\n const value = e.target.value;\n this.setState({ value }, () =>\n this.onChange(this.props.attr, this.props.schema.trim === false ? value : (value || '').trim()));\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />\n <Button variant=\"outlined\" onClick={() => this.setState({ showFileBrowser: true })}>...</Button>\n {this.renderFileBrowser()}\n </div>;\n }\n}\n\nConfigFile.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)(ConfigFile);"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConfigFile.js","names":["styles","theme","fullWidth","width","fullWidthOneButton","marginRight","fullWidthIcon","selectedImage","height","display","IMAGE_EXT","AUDIO_EXT","VIDEO_EXT","DOC_EXT","JS_EXT","ConfigFile","value","ConfigGeneric","getValue","props","data","attr","imagePrefix","undefined","setState","pos","state","indexOf","adapter","substring","path","socket","readFile","loadFile","then","AudioContext","context","buf","ConfigFileSelector","base64ToArrayBuffer","file","decodeAudioData","buffer","source","createBufferSource","connect","destination","start","err","window","alert","extension","split","pop","toLowerCase","includes","classes","backgroundImage","backgroundSize","backgroundRepeat","color","play","showFileBrowser","onChange","schema","trim","selectOnlyFolders","allowUpload","allowDownload","allowCreateFolder","allowView","showToolbar","limitPath","error","disabled","defaultValue","icon","getIcon","maxLength","max","readOnly","disableEdit","e","target","getText","placeholder","label","renderHelp","help","helpLink","noTranslation","renderFileBrowser","toString","propTypes","PropTypes","object","isRequired","themeType","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigFile.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\nimport IconButton from '@mui/material/IconButton';\n\nimport IconText from '@mui/icons-material/Article';\nimport IconVideo from '@mui/icons-material/Videocam';\nimport IconCode from '@mui/icons-material/Code';\nimport IconPlay from '@mui/icons-material/PlayArrow';\n\nimport SelectFileDialog from './wrapper/Dialogs/SelectFile';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport ConfigFileSelector from './ConfigFileSelector';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n fullWidthOneButton: {\n width: 'calc(100% - 69px)',\n marginRight: 4,\n },\n fullWidthIcon: {\n width: 'calc(100% - 119px)',\n marginRight: 4,\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 ConfigFile extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.imagePrefix = this.props.imagePrefix === undefined ? './files' : this.props.imagePrefix;\n this.setState({ value });\n }\n\n static getDerivedStateFromProps(props, state) {\n const value = ConfigGeneric.getValue(props.data, props.attr);\n if (value === null || value === undefined || value.toString().trim() !== (state.value || '').toString().trim()) {\n return { value };\n } else {\n return null;\n }\n }\n\n loadFile() {\n const pos = this.state.value.indexOf('/');\n if (pos !== -1) {\n const adapter = this.state.value.substring(0, pos);\n const path = this.state.value.substring(pos + 1);\n return this.props.socket.readFile(adapter, path, true);\n }\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() {\n const extension = this.state.value.split('.').pop().toLowerCase();\n if (IMAGE_EXT.includes(extension)) {\n return <div className={this.props.classes.selectedImage} style={{\n backgroundImage: `url(${this.imagePrefix}/${this.state.value})`,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n }} />;\n } else if (AUDIO_EXT.includes(extension)) {\n return <IconButton style={{ color: '#00FF00' }} onClick={() => this.play()}><IconPlay /></IconButton>;\n } else if (DOC_EXT.includes(extension)) {\n return <IconText />;\n } else if (VIDEO_EXT.includes(extension)) {\n return <IconVideo />;\n } else if (JS_EXT.includes(extension)) {\n return <IconCode />;\n }\n return null;\n }\n\n renderFileBrowser() {\n if (!this.state.showFileBrowser) {\n return null;\n } else {\n return <SelectFileDialog\n imagePrefix={this.props.imagePrefix}\n socket={this.props.socket}\n selected={this.state.value}\n onClose={() => this.setState({ showFileBrowser: false})}\n onOk={value => {\n this.setState({ value }, () =>\n this.onChange(this.props.attr, this.props.schema.trim === false ? value : (value || '').trim()));\n }}\n selectOnlyFolders={this.props.schema.selectOnlyFolders}\n allowUpload={this.props.schema.allowUpload}\n allowDownload={this.props.schema.allowDownload}\n allowCreateFolder={this.props.schema.allowCreateFolder}\n allowView={this.props.schema.allowView}\n showToolbar={this.props.schema.showToolbar}\n limitPath={this.props.schema.limitPath}\n />;\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n const icon = this.getIcon();\n\n return <div className={this.props.classes.fullWidth}>\n {icon}\n <TextField\n variant=\"standard\"\n className={icon ? this.props.classes.fullWidthIcon : this.props.classes.fullWidthOneButton}\n value={this.state.value === null || this.state.value === undefined ? '' : this.state.value}\n error={!!error}\n disabled={!!disabled}\n inputProps={{\n maxLength: this.props.schema.maxLength || this.props.schema.max || undefined,\n readOnly: !!this.props.schema.disableEdit\n }}\n onChange={e => {\n const value = e.target.value;\n this.setState({ value }, () =>\n this.onChange(this.props.attr, this.props.schema.trim === false ? value : (value || '').trim()));\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />\n <Button variant=\"outlined\" onClick={() => this.setState({ showFileBrowser: true })}>...</Button>\n {this.renderFileBrowser()}\n </div>;\n }\n}\n\nConfigFile.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)(ConfigFile);"],"mappings":"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"}
|
|
@@ -178,63 +178,61 @@ var ConfigFileSelector = /*#__PURE__*/function (_ConfigGeneric) {
|
|
|
178
178
|
var _readFolder = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(folderName, files, filter) {
|
|
179
179
|
var dirFiles, f, file, ok, regExp;
|
|
180
180
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
181
|
-
while (1) {
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
_context.next = 18;
|
|
193
|
-
break;
|
|
194
|
-
}
|
|
195
|
-
file = dirFiles[f];
|
|
196
|
-
if (!file.isDir) {
|
|
197
|
-
_context.next = 12;
|
|
198
|
-
break;
|
|
199
|
-
}
|
|
200
|
-
_context.next = 10;
|
|
201
|
-
return this.readFolder("".concat(folderName + file.file, "/"), files, filter);
|
|
202
|
-
case 10:
|
|
203
|
-
_context.next = 15;
|
|
181
|
+
while (1) switch (_context.prev = _context.next) {
|
|
182
|
+
case 0:
|
|
183
|
+
_context.prev = 0;
|
|
184
|
+
_context.next = 3;
|
|
185
|
+
return this.props.socket.readDir(this.objectID, folderName.replace(/^\//, '') || null);
|
|
186
|
+
case 3:
|
|
187
|
+
dirFiles = _context.sent;
|
|
188
|
+
f = 0;
|
|
189
|
+
case 5:
|
|
190
|
+
if (!(f < dirFiles.length)) {
|
|
191
|
+
_context.next = 18;
|
|
204
192
|
break;
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
} else if (!filter || filter === '*') {
|
|
210
|
-
ok = true;
|
|
211
|
-
} else if (filter === '.*' && file.file.startsWith('.')) {
|
|
212
|
-
ok = true;
|
|
213
|
-
} else {
|
|
214
|
-
regExp = new RegExp('^' + filter.replace(/\./g, '\\.').replace(/\*/g, '.*') + '$');
|
|
215
|
-
ok = regExp.test(file.file);
|
|
216
|
-
}
|
|
217
|
-
ok && files.push({
|
|
218
|
-
name: folderName + file.file,
|
|
219
|
-
size: file.stats ? _Utils["default"].formatBytes(file.stats.size) : '--'
|
|
220
|
-
});
|
|
221
|
-
case 15:
|
|
222
|
-
f++;
|
|
223
|
-
_context.next = 5;
|
|
193
|
+
}
|
|
194
|
+
file = dirFiles[f];
|
|
195
|
+
if (!file.isDir) {
|
|
196
|
+
_context.next = 12;
|
|
224
197
|
break;
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
198
|
+
}
|
|
199
|
+
_context.next = 10;
|
|
200
|
+
return this.readFolder("".concat(folderName + file.file, "/"), files, filter);
|
|
201
|
+
case 10:
|
|
202
|
+
_context.next = 15;
|
|
203
|
+
break;
|
|
204
|
+
case 12:
|
|
205
|
+
ok = false;
|
|
206
|
+
if (filter === '*.*' && file.file.includes('.')) {
|
|
207
|
+
ok = true;
|
|
208
|
+
} else if (!filter || filter === '*') {
|
|
209
|
+
ok = true;
|
|
210
|
+
} else if (filter === '.*' && file.file.startsWith('.')) {
|
|
211
|
+
ok = true;
|
|
212
|
+
} else {
|
|
213
|
+
regExp = new RegExp('^' + filter.replace(/\./g, '\\.').replace(/\*/g, '.*') + '$');
|
|
214
|
+
ok = regExp.test(file.file);
|
|
215
|
+
}
|
|
216
|
+
ok && files.push({
|
|
217
|
+
name: folderName + file.file,
|
|
218
|
+
size: file.stats ? _Utils["default"].formatBytes(file.stats.size) : '--'
|
|
219
|
+
});
|
|
220
|
+
case 15:
|
|
221
|
+
f++;
|
|
222
|
+
_context.next = 5;
|
|
223
|
+
break;
|
|
224
|
+
case 18:
|
|
225
|
+
_context.next = 23;
|
|
226
|
+
break;
|
|
227
|
+
case 20:
|
|
228
|
+
_context.prev = 20;
|
|
229
|
+
_context.t0 = _context["catch"](0);
|
|
230
|
+
console.error("Cannot read \"".concat(folderName, "\": ").concat(_context.t0));
|
|
231
|
+
case 23:
|
|
232
|
+
return _context.abrupt("return", files);
|
|
233
|
+
case 24:
|
|
234
|
+
case "end":
|
|
235
|
+
return _context.stop();
|
|
238
236
|
}
|
|
239
237
|
}, _callee, this, [[0, 20]]);
|
|
240
238
|
}));
|
|
@@ -249,50 +247,48 @@ var ConfigFileSelector = /*#__PURE__*/function (_ConfigGeneric) {
|
|
|
249
247
|
var _readFiles = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(pattern) {
|
|
250
248
|
var files, filter, pos, _pos, folder;
|
|
251
249
|
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
252
|
-
while (1) {
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
_context2.next = 10;
|
|
268
|
-
break;
|
|
269
|
-
}
|
|
270
|
-
_context2.next = 8;
|
|
271
|
-
return this.readFolder('/', files, filter);
|
|
272
|
-
case 8:
|
|
273
|
-
_context2.next = 19;
|
|
250
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
251
|
+
case 0:
|
|
252
|
+
files = [];
|
|
253
|
+
pattern = pattern || this.props.schema.pattern;
|
|
254
|
+
if (!pattern) {
|
|
255
|
+
pattern = '**/*.*';
|
|
256
|
+
}
|
|
257
|
+
pos = pattern.lastIndexOf('/');
|
|
258
|
+
if (pos === -1) {
|
|
259
|
+
filter = pattern;
|
|
260
|
+
} else {
|
|
261
|
+
filter = pattern.substring(pos + 1);
|
|
262
|
+
}
|
|
263
|
+
if (!pattern.startsWith('**')) {
|
|
264
|
+
_context2.next = 10;
|
|
274
265
|
break;
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
_context2.next =
|
|
266
|
+
}
|
|
267
|
+
_context2.next = 8;
|
|
268
|
+
return this.readFolder('/', files, filter);
|
|
269
|
+
case 8:
|
|
270
|
+
_context2.next = 19;
|
|
271
|
+
break;
|
|
272
|
+
case 10:
|
|
273
|
+
_pos = pattern.lastIndexOf('/');
|
|
274
|
+
if (!(_pos === -1)) {
|
|
275
|
+
_context2.next = 16;
|
|
285
276
|
break;
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
277
|
+
}
|
|
278
|
+
_context2.next = 14;
|
|
279
|
+
return this.readFolder('/', files, filter);
|
|
280
|
+
case 14:
|
|
281
|
+
_context2.next = 19;
|
|
282
|
+
break;
|
|
283
|
+
case 16:
|
|
284
|
+
folder = pattern.substring(0, _pos + 1);
|
|
285
|
+
_context2.next = 19;
|
|
286
|
+
return this.readFolder(folder, files, filter);
|
|
287
|
+
case 19:
|
|
288
|
+
return _context2.abrupt("return", files);
|
|
289
|
+
case 20:
|
|
290
|
+
case "end":
|
|
291
|
+
return _context2.stop();
|
|
296
292
|
}
|
|
297
293
|
}, _callee2, this);
|
|
298
294
|
}));
|
|
@@ -472,12 +468,12 @@ var ConfigFileSelector = /*#__PURE__*/function (_ConfigGeneric) {
|
|
|
472
468
|
style: {
|
|
473
469
|
width: "calc(100% - ".concat(buttons * 42, "px)")
|
|
474
470
|
}
|
|
475
|
-
}, /*#__PURE__*/_react["default"].createElement(_InputLabel["default"], null, this.getText(this.props.schema.label)), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
|
|
471
|
+
}, this.props.schema.label ? /*#__PURE__*/_react["default"].createElement(_InputLabel["default"], null, this.getText(this.props.schema.label)) : null, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
|
|
476
472
|
variant: "standard",
|
|
477
473
|
error: !!error,
|
|
478
474
|
disabled: !!disabled,
|
|
479
475
|
value: this.state.value || '_',
|
|
480
|
-
renderValue: function renderValue(
|
|
476
|
+
renderValue: function renderValue() {
|
|
481
477
|
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, _this6.getIcon(item), /*#__PURE__*/_react["default"].createElement("span", null, (item === null || item === void 0 ? void 0 : item.label) || ''));
|
|
482
478
|
},
|
|
483
479
|
onChange: function onChange(e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigFileSelector.js","names":["styles","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 './wrapper/Components/Utils';\nimport I18n from './wrapper/i18n';\nimport ConfirmDialog from './wrapper/Dialogs/Confirm';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = () => ({\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","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","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 './wrapper/Components/Utils';\nimport I18n from './wrapper/i18n';\nimport ConfirmDialog from './wrapper/Dialogs/Confirm';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = () => ({\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 uploadDiv: {\n position: 'relative',\n width: '100%',\n },\n uploadDivDragging: {\n opacity: 1,\n background: 'rgba(128,255,128,0.1)',\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 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 {this.props.schema.label ? <InputLabel>{this.getText(this.props.schema.label)}</InputLabel> : null}\n <Select\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={this.state.value || '_'}\n renderValue={() => <>{this.getIcon(item)}<span>{item?.label || ''}</span></>}\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\n className={this.props.classes.deleteButton}\n size=\"small\"\n onClick={() => this.setState({ deleteFile: item.value })}><IconDelete/>\n </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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"}
|
|
@@ -24,7 +24,7 @@ var _i18n = _interopRequireDefault(require("./wrapper/i18n"));
|
|
|
24
24
|
var _ConfigGeneric2 = _interopRequireDefault(require("./ConfigGeneric"));
|
|
25
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); }; }
|
|
26
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; } }
|
|
27
|
-
var styles = function styles(
|
|
27
|
+
var styles = function styles() {
|
|
28
28
|
return {
|
|
29
29
|
fullWidth: {
|
|
30
30
|
width: '100%'
|
|
@@ -52,6 +52,12 @@ var ConfigFunc = /*#__PURE__*/function (_ConfigGeneric) {
|
|
|
52
52
|
obj: enums[id]
|
|
53
53
|
};
|
|
54
54
|
});
|
|
55
|
+
if (_this.props.schema.allowDeactivate !== false) {
|
|
56
|
+
selectOptions.unshift({
|
|
57
|
+
label: _i18n["default"].t(_ConfigGeneric2["default"].NONE_LABEL),
|
|
58
|
+
value: _ConfigGeneric2["default"].NONE_VALUE
|
|
59
|
+
});
|
|
60
|
+
}
|
|
55
61
|
_this.setState({
|
|
56
62
|
value: value,
|
|
57
63
|
selectOptions: selectOptions
|
|
@@ -71,17 +77,17 @@ var ConfigFunc = /*#__PURE__*/function (_ConfigGeneric) {
|
|
|
71
77
|
return /*#__PURE__*/_react["default"].createElement(_FormControl["default"], {
|
|
72
78
|
variant: "standard",
|
|
73
79
|
className: this.props.classes.fullWidth
|
|
74
|
-
}, /*#__PURE__*/_react["default"].createElement(_InputLabel["default"], null, this.getText(this.props.schema.label)), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
|
|
80
|
+
}, this.props.schema.label ? /*#__PURE__*/_react["default"].createElement(_InputLabel["default"], null, this.getText(this.props.schema.label)) : null, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
|
|
75
81
|
variant: "standard",
|
|
76
82
|
error: !!error,
|
|
77
83
|
disabled: !!disabled,
|
|
78
84
|
value: this.state.value || '_',
|
|
79
|
-
renderValue: function renderValue(
|
|
80
|
-
return item ? /*#__PURE__*/_react["default"].createElement(_TextWithIcon["default"], {
|
|
85
|
+
renderValue: function renderValue() {
|
|
86
|
+
return item ? item.obj ? /*#__PURE__*/_react["default"].createElement(_TextWithIcon["default"], {
|
|
81
87
|
value: item.obj,
|
|
82
88
|
themeType: _this2.props.themeType,
|
|
83
89
|
lang: _i18n["default"].getLanguage()
|
|
84
|
-
}) : '';
|
|
90
|
+
}) : item.label : '';
|
|
85
91
|
},
|
|
86
92
|
onChange: function onChange(e) {
|
|
87
93
|
_this2.setState({
|
|
@@ -97,11 +103,11 @@ var ConfigFunc = /*#__PURE__*/function (_ConfigGeneric) {
|
|
|
97
103
|
style: item.value === _ConfigGeneric2["default"].DIFFERENT_VALUE ? {
|
|
98
104
|
opacity: 0.5
|
|
99
105
|
} : {}
|
|
100
|
-
}, /*#__PURE__*/_react["default"].createElement(_TextWithIcon["default"], {
|
|
106
|
+
}, item.obj ? /*#__PURE__*/_react["default"].createElement(_TextWithIcon["default"], {
|
|
101
107
|
value: item.obj,
|
|
102
108
|
themeType: _this2.props.themeType,
|
|
103
109
|
lang: _i18n["default"].getLanguage()
|
|
104
|
-
}));
|
|
110
|
+
}) : item.label);
|
|
105
111
|
})), this.props.schema.help ? /*#__PURE__*/_react["default"].createElement(_FormHelperText["default"], null, this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)) : null);
|
|
106
112
|
}
|
|
107
113
|
}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigFunc.js","names":["styles","
|
|
1
|
+
{"version":3,"file":"ConfigFunc.js","names":["styles","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","allowDeactivate","unshift","I18n","t","NONE_LABEL","NONE_VALUE","setState","error","disabled","defaultValue","state","item","find","classes","themeType","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 './wrapper/Components/TextWithIcon';\nimport I18n from './wrapper/i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = () => ({\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\n if (this.props.schema.allowDeactivate !== false) {\n selectOptions.unshift({ label: I18n.t(ConfigGeneric.NONE_LABEL), value: ConfigGeneric.NONE_VALUE });\n }\n\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 {this.props.schema.label ? <InputLabel>{this.getText(this.props.schema.label)}</InputLabel> : null}\n <Select\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={this.state.value || '_'}\n renderValue={() => item ? (item.obj ? <TextWithIcon value={item.obj} themeType={this.props.themeType} lang={I18n.getLanguage()} /> : item.label) : ''}\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 {item.obj ? <TextWithIcon value={item.obj} themeType={this.props.themeType} lang={I18n.getLanguage()} /> : item.label}\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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"}
|