@iobroker/adapter-react-v5 4.7.15 → 4.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Components/JsonConfigComponent/ConfigAccordion.d.ts +1 -1
- package/Components/JsonConfigComponent/ConfigAccordion.js +4 -6
- package/Components/JsonConfigComponent/ConfigAccordion.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigAlive.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigAutocomplete.d.ts +36 -13
- package/Components/JsonConfigComponent/ConfigAutocomplete.js +66 -164
- package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.d.ts +16 -13
- package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js +119 -251
- package/Components/JsonConfigComponent/ConfigCRON.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigCertCollection.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigCertificateSelect.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigCertificates.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigCheckbox.d.ts +14 -13
- package/Components/JsonConfigComponent/ConfigCheckbox.js +37 -79
- package/Components/JsonConfigComponent/ConfigChip.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigColor.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigCoordinates.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigDatePicker.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigDeviceManager.d.ts +6 -0
- package/Components/JsonConfigComponent/ConfigDeviceManager.js +18 -0
- package/Components/JsonConfigComponent/ConfigFile.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigFile.js +2 -2
- package/Components/JsonConfigComponent/ConfigFile.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFileSelector.js +8 -5
- package/Components/JsonConfigComponent/ConfigFileSelector.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFunc.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigGeneric.d.ts +12 -4
- package/Components/JsonConfigComponent/ConfigGeneric.js +11 -2
- package/Components/JsonConfigComponent/ConfigIP.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigImageSendTo.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigImageUpload.js +38 -44
- package/Components/JsonConfigComponent/ConfigImageUpload.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigInstanceSelect.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigInterface.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigInterface.js +1 -1
- package/Components/JsonConfigComponent/ConfigInterface.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigJsonEditor.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigJsonEditor.js +0 -1
- package/Components/JsonConfigComponent/ConfigJsonEditor.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigLanguage.d.ts +6 -13
- package/Components/JsonConfigComponent/ConfigLanguage.js +105 -154
- package/Components/JsonConfigComponent/ConfigLicense.d.ts +1 -1
- package/Components/JsonConfigComponent/ConfigNumber.d.ts +1 -1
- package/Components/JsonConfigComponent/ConfigObjectId.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigPanel.js +8 -1
- package/Components/JsonConfigComponent/ConfigPanel.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigPassword.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigPattern.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigRoom.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigSelect.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigSelectSendTo.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigSendto.d.ts +23 -17
- package/Components/JsonConfigComponent/ConfigSendto.js +259 -399
- package/Components/JsonConfigComponent/ConfigSetState.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigSlider.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigStaticDivider.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigStaticHeader.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigStaticImage.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigStaticText.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigText.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigText.js +18 -0
- package/Components/JsonConfigComponent/ConfigText.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTextSendTo.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigTimePicker.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigTopic.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigUUID.d.ts +2 -2
- package/Components/JsonConfigComponent/ConfigUser.d.ts +2 -2
- package/Components/JsonConfigComponent/DeviceManager/Communication.d.ts +63 -0
- package/Components/JsonConfigComponent/DeviceManager/Communication.js +268 -0
- package/Components/JsonConfigComponent/DeviceManager/DeviceActionButton.d.ts +11 -0
- package/Components/JsonConfigComponent/DeviceManager/DeviceActionButton.js +15 -0
- package/Components/JsonConfigComponent/DeviceManager/DeviceCard.d.ts +53 -0
- package/Components/JsonConfigComponent/DeviceManager/DeviceCard.js +340 -0
- package/Components/JsonConfigComponent/DeviceManager/DeviceControl.d.ts +45 -0
- package/Components/JsonConfigComponent/DeviceManager/DeviceControl.js +146 -0
- package/Components/JsonConfigComponent/DeviceManager/DeviceImageUpload.d.ts +12 -0
- package/Components/JsonConfigComponent/DeviceManager/DeviceImageUpload.js +69 -0
- package/Components/JsonConfigComponent/DeviceManager/DeviceList.d.ts +51 -0
- package/Components/JsonConfigComponent/DeviceManager/DeviceList.js +216 -0
- package/Components/JsonConfigComponent/DeviceManager/DeviceStatus.d.ts +13 -0
- package/Components/JsonConfigComponent/DeviceManager/DeviceStatus.js +111 -0
- package/Components/JsonConfigComponent/DeviceManager/InstanceActionButton.d.ts +7 -0
- package/Components/JsonConfigComponent/DeviceManager/InstanceActionButton.js +16 -0
- package/Components/JsonConfigComponent/DeviceManager/JsonConfig.d.ts +11 -0
- package/Components/JsonConfigComponent/DeviceManager/JsonConfig.js +94 -0
- package/Components/JsonConfigComponent/DeviceManager/TooltipButton.d.ts +10 -0
- package/Components/JsonConfigComponent/DeviceManager/TooltipButton.js +22 -0
- package/Components/JsonConfigComponent/DeviceManager/Utils.d.ts +12 -0
- package/Components/JsonConfigComponent/DeviceManager/Utils.js +158 -0
- package/Components/JsonConfigComponent/DeviceManager/i18n/de.json +21 -0
- package/Components/JsonConfigComponent/DeviceManager/i18n/en.json +21 -0
- package/Components/JsonConfigComponent/DeviceManager/i18n/es.json +21 -0
- package/Components/JsonConfigComponent/DeviceManager/i18n/fr.json +21 -0
- package/Components/JsonConfigComponent/DeviceManager/i18n/i18n.d.ts +26 -0
- package/Components/JsonConfigComponent/DeviceManager/i18n/it.json +21 -0
- package/Components/JsonConfigComponent/DeviceManager/i18n/nl.json +21 -0
- package/Components/JsonConfigComponent/DeviceManager/i18n/pl.json +21 -0
- package/Components/JsonConfigComponent/DeviceManager/i18n/pt.json +21 -0
- package/Components/JsonConfigComponent/DeviceManager/i18n/ru.json +21 -0
- package/Components/JsonConfigComponent/DeviceManager/i18n/uk.json +21 -0
- package/Components/JsonConfigComponent/DeviceManager/i18n/zh-cn.json +21 -0
- package/Components/JsonConfigComponent/DeviceManager/index.d.ts +2 -0
- package/Components/JsonConfigComponent/DeviceManager/index.js +10 -0
- package/Components/JsonConfigComponent/DeviceManager/index.js.map +1 -0
- package/Components/JsonConfigComponent/index.js +2 -7
- package/Components/JsonConfigComponent/index.js.map +1 -1
- package/Components/TextWithIcon.d.ts +1 -1
- package/Dialogs/ComplexCron.js +15 -17
- package/Dialogs/ComplexCron.js.map +1 -1
- package/Dialogs/Confirm.d.ts +20 -44
- package/Dialogs/Confirm.js +102 -158
- package/Dialogs/Error.d.ts +20 -39
- package/Dialogs/Error.js +50 -76
- package/Dialogs/Message.d.ts +22 -32
- package/Dialogs/Message.js +51 -83
- package/LegacyConnection.d.ts +3 -3
- package/README.md +7 -4
- package/i18n.d.ts +6 -6
- package/package.json +6 -5
- package/Components/JsonConfigComponent/ConfigAutocomplete.js.map +0 -1
- package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js.map +0 -1
- package/Components/JsonConfigComponent/ConfigCheckbox.js.map +0 -1
- package/Components/JsonConfigComponent/ConfigLanguage.js.map +0 -1
- package/Components/JsonConfigComponent/ConfigSendto.js.map +0 -1
- package/Dialogs/Confirm.js.map +0 -1
- package/Dialogs/Error.js.map +0 -1
- package/Dialogs/Message.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
declare const _default: React.JSXElementConstructor<Omit<PropTypes.InferProps<{
|
|
1
|
+
declare const _default: React.JSXElementConstructor<Omit<Pick<import("./ConfigGeneric").ConfigGenericProps, "classes" | "disabled" | "data" | "onChange" | "onError" | "originalData" | "instanceObj" | "customObj" | "schema" | "attr" | "custom" | "forceUpdate" | "alive" | "systemConfig" | "socket" | "changed" | "adapterName" | "instance" | "common" | "themeType"> & Pick<PropTypes.InferProps<{
|
|
2
2
|
socket: PropTypes.Validator<object>;
|
|
3
3
|
themeType: PropTypes.Requireable<string>;
|
|
4
4
|
themeName: PropTypes.Requireable<string>;
|
|
@@ -8,7 +8,7 @@ declare const _default: React.JSXElementConstructor<Omit<PropTypes.InferProps<{
|
|
|
8
8
|
schema: PropTypes.Requireable<object>;
|
|
9
9
|
onError: PropTypes.Requireable<(...args: any[]) => any>;
|
|
10
10
|
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
11
|
-
}>, "classes"> & import("@mui/styles").StyledComponentProps<"width" | "width50"> & object>;
|
|
11
|
+
}>, "style" | "className" | "themeName"> & Pick<import("./ConfigGeneric").ConfigGenericProps, "classes" | "disabled" | "originalData" | "instanceObj" | "customObj" | "arrayIndex" | "globalData" | "registerOnForceUpdate" | "attr" | "custom" | "forceUpdate" | "alive" | "systemConfig" | "changed" | "adapterName" | "instance" | "common" | "commandRunning">, "classes"> & import("@mui/styles").StyledComponentProps<"width" | "width50"> & object>;
|
|
12
12
|
export default _default;
|
|
13
13
|
import PropTypes from 'prop-types';
|
|
14
14
|
import React from 'react';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
declare const _default: React.JSXElementConstructor<Omit<PropTypes.InferProps<{
|
|
1
|
+
declare const _default: React.JSXElementConstructor<Omit<Pick<import("./ConfigGeneric").ConfigGenericProps, "classes" | "disabled" | "data" | "onChange" | "onError" | "originalData" | "instanceObj" | "customObj" | "schema" | "attr" | "custom" | "forceUpdate" | "alive" | "systemConfig" | "socket" | "changed" | "adapterName" | "instance" | "common" | "themeType"> & Pick<PropTypes.InferProps<{
|
|
2
2
|
socket: PropTypes.Validator<object>;
|
|
3
3
|
themeType: PropTypes.Requireable<string>;
|
|
4
4
|
themeName: PropTypes.Requireable<string>;
|
|
@@ -8,7 +8,7 @@ declare const _default: React.JSXElementConstructor<Omit<PropTypes.InferProps<{
|
|
|
8
8
|
schema: PropTypes.Requireable<object>;
|
|
9
9
|
onError: PropTypes.Requireable<(...args: any[]) => any>;
|
|
10
10
|
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
11
|
-
}>, "classes"> & import("@mui/styles").StyledComponentProps<"indeterminate"> & object>;
|
|
11
|
+
}>, "style" | "className" | "themeName"> & Pick<import("./ConfigGeneric").ConfigGenericProps, "classes" | "disabled" | "originalData" | "instanceObj" | "customObj" | "arrayIndex" | "globalData" | "registerOnForceUpdate" | "attr" | "custom" | "forceUpdate" | "alive" | "systemConfig" | "changed" | "adapterName" | "instance" | "common" | "commandRunning">, "classes"> & import("@mui/styles").StyledComponentProps<"indeterminate"> & object>;
|
|
12
12
|
export default _default;
|
|
13
13
|
import PropTypes from 'prop-types';
|
|
14
14
|
import React from 'react';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import ConfigGeneric, { ConfigGenericProps, ConfigGenericState } from './ConfigGeneric';
|
|
3
|
+
declare class ConfigDeviceManager extends ConfigGeneric<ConfigGenericProps, ConfigGenericState> {
|
|
4
|
+
renderItem(): React.JSX.Element | null;
|
|
5
|
+
}
|
|
6
|
+
export default ConfigDeviceManager;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const react_1 = __importDefault(require("react"));
|
|
7
|
+
const ConfigGeneric_1 = __importDefault(require("./ConfigGeneric"));
|
|
8
|
+
const DeviceManager_1 = __importDefault(require("./DeviceManager"));
|
|
9
|
+
class ConfigDeviceManager extends ConfigGeneric_1.default {
|
|
10
|
+
renderItem() {
|
|
11
|
+
const schema = this.props.schema;
|
|
12
|
+
if (!schema) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
return react_1.default.createElement(DeviceManager_1.default, { uploadImagesToInstance: `${this.props.adapterName}.${this.props.instance}`, title: this.props.schema.label, socket: this.props.socket, selectedInstance: `${this.props.adapterName}.${this.props.instance}` });
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.default = ConfigDeviceManager;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
declare const _default: React.JSXElementConstructor<Omit<PropTypes.InferProps<{
|
|
1
|
+
declare const _default: React.JSXElementConstructor<Omit<Pick<import("./ConfigGeneric").ConfigGenericProps, "classes" | "disabled" | "data" | "onChange" | "onError" | "originalData" | "instanceObj" | "customObj" | "schema" | "attr" | "custom" | "forceUpdate" | "alive" | "systemConfig" | "socket" | "changed" | "adapterName" | "instance" | "common" | "themeType"> & Pick<PropTypes.InferProps<{
|
|
2
2
|
socket: PropTypes.Validator<object>;
|
|
3
3
|
themeType: PropTypes.Requireable<string>;
|
|
4
4
|
themeName: PropTypes.Requireable<string>;
|
|
@@ -9,7 +9,7 @@ declare const _default: React.JSXElementConstructor<Omit<PropTypes.InferProps<{
|
|
|
9
9
|
onError: PropTypes.Requireable<(...args: any[]) => any>;
|
|
10
10
|
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
11
11
|
imagePrefix: PropTypes.Requireable<(...args: any[]) => any>;
|
|
12
|
-
}>, "classes"> & import("@mui/styles").StyledComponentProps<"fullWidth" | "fullWidthOneButton" | "selectedImage" | "fullWidthIcon"> & object>;
|
|
12
|
+
}>, "style" | "className" | "themeName" | "imagePrefix"> & Pick<import("./ConfigGeneric").ConfigGenericProps, "classes" | "disabled" | "originalData" | "instanceObj" | "customObj" | "arrayIndex" | "globalData" | "registerOnForceUpdate" | "attr" | "custom" | "forceUpdate" | "alive" | "systemConfig" | "changed" | "adapterName" | "instance" | "common" | "commandRunning">, "classes"> & import("@mui/styles").StyledComponentProps<"fullWidth" | "fullWidthOneButton" | "selectedImage" | "fullWidthIcon"> & object>;
|
|
13
13
|
export default _default;
|
|
14
14
|
import PropTypes from 'prop-types';
|
|
15
15
|
import React from 'react';
|
|
@@ -61,7 +61,7 @@ var ConfigFile = /*#__PURE__*/function (_ConfigGeneric) {
|
|
|
61
61
|
var value = _ConfigGeneric2["default"].getValue(this.props.data, this.props.attr);
|
|
62
62
|
this.imagePrefix = this.props.imagePrefix === undefined ? './files' : this.props.imagePrefix;
|
|
63
63
|
this.setState({
|
|
64
|
-
value: value
|
|
64
|
+
value: value !== null && value !== void 0 ? value : ''
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
67
|
}, {
|
|
@@ -204,7 +204,7 @@ var ConfigFile = /*#__PURE__*/function (_ConfigGeneric) {
|
|
|
204
204
|
var value = _ConfigGeneric2["default"].getValue(props.data, props.attr);
|
|
205
205
|
if (value === null || value === undefined || value.toString().trim() !== (state.value || '').toString().trim()) {
|
|
206
206
|
return {
|
|
207
|
-
value: value
|
|
207
|
+
value: value !== null && value !== void 0 ? value : ''
|
|
208
208
|
};
|
|
209
209
|
}
|
|
210
210
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigFile.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_material","_iconsMaterial","_SelectFile","_ConfigGeneric2","_ConfigFileSelector","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","styles","fullWidth","width","fullWidthOneButton","marginRight","fullWidthIcon","selectedImage","height","display","IMAGE_EXT","AUDIO_EXT","VIDEO_EXT","DOC_EXT","JS_EXT","ConfigFile","_ConfigGeneric","_inherits2","_super","_classCallCheck2","_createClass2","key","value","componentDidMount","_get2","ConfigGeneric","getValue","props","data","attr","imagePrefix","undefined","setState","loadFile","pos","state","indexOf","adapter","substring","path","socket","readFile","Promise","resolve","play","then","AudioContext","file","context","buf","ConfigFileSelector","base64ToArrayBuffer","decodeAudioData","buffer","source","createBufferSource","connect","destination","start","err","window","alert","concat","getIcon","_this","extension","split","pop","toLowerCase","includes","createElement","className","classes","style","backgroundImage","backgroundSize","backgroundRepeat","IconButton","color","onClick","PlayArrow","Article","Videocam","Code","renderFileBrowser","_this2","showFileBrowser","selected","onClose","onOk","onChange","schema","trim","selectOnlyFolders","allowUpload","allowDownload","allowCreateFolder","allowView","showToolbar","limitPath","renderItem","error","disabled","_this3","icon","TextField","variant","inputProps","maxLength","max","readOnly","disableEdit","target","placeholder","getText","label","helperText","renderHelp","help","helpLink","noTranslation","Button","getDerivedStateFromProps","toString","propTypes","PropTypes","object","isRequired","themeType","string","themeName","onError","func","_default","exports","withStyles"],"sources":["JsonConfigComponent/ConfigFile.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport {\n Button,\n TextField,\n IconButton,\n} from '@mui/material';\n\nimport {\n Article as IconText,\n Code as IconCode,\n PlayArrow as IconPlay,\n Videocam as IconVideo,\n} from '@mui/icons-material';\n\nimport SelectFileDialog from './wrapper/Dialogs/SelectFile';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport ConfigFileSelector from './ConfigFileSelector';\n\nconst styles = () => ({\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', 'gif', 'apng', 'avif', '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 }\n return null;\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 return Promise.resolve(null);\n }\n\n play() {\n this.loadFile()\n .then(data => {\n if (typeof AudioContext !== 'undefined' && data?.file) {\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 sounds 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\n className={this.props.classes.selectedImage}\n style={{\n backgroundImage: `url(${this.imagePrefix}/${this.state.value})`,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n }}\n />;\n } if (AUDIO_EXT.includes(extension)) {\n return <IconButton style={{ color: '#00FF00' }} onClick={() => this.play()}><IconPlay /></IconButton>;\n } if (DOC_EXT.includes(extension)) {\n return <IconText />;\n } if (VIDEO_EXT.includes(extension)) {\n return <IconVideo />;\n } 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 }\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 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);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConfigFile.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_material","_iconsMaterial","_SelectFile","_ConfigGeneric2","_ConfigFileSelector","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","styles","fullWidth","width","fullWidthOneButton","marginRight","fullWidthIcon","selectedImage","height","display","IMAGE_EXT","AUDIO_EXT","VIDEO_EXT","DOC_EXT","JS_EXT","ConfigFile","_ConfigGeneric","_inherits2","_super","_classCallCheck2","_createClass2","key","value","componentDidMount","_get2","ConfigGeneric","getValue","props","data","attr","imagePrefix","undefined","setState","loadFile","pos","state","indexOf","adapter","substring","path","socket","readFile","Promise","resolve","play","then","AudioContext","file","context","buf","ConfigFileSelector","base64ToArrayBuffer","decodeAudioData","buffer","source","createBufferSource","connect","destination","start","err","window","alert","concat","getIcon","_this","extension","split","pop","toLowerCase","includes","createElement","className","classes","style","backgroundImage","backgroundSize","backgroundRepeat","IconButton","color","onClick","PlayArrow","Article","Videocam","Code","renderFileBrowser","_this2","showFileBrowser","selected","onClose","onOk","onChange","schema","trim","selectOnlyFolders","allowUpload","allowDownload","allowCreateFolder","allowView","showToolbar","limitPath","renderItem","error","disabled","_this3","icon","TextField","variant","inputProps","maxLength","max","readOnly","disableEdit","target","placeholder","getText","label","helperText","renderHelp","help","helpLink","noTranslation","Button","getDerivedStateFromProps","toString","propTypes","PropTypes","object","isRequired","themeType","string","themeName","onError","func","_default","exports","withStyles"],"sources":["JsonConfigComponent/ConfigFile.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport {\n Button,\n TextField,\n IconButton,\n} from '@mui/material';\n\nimport {\n Article as IconText,\n Code as IconCode,\n PlayArrow as IconPlay,\n Videocam as IconVideo,\n} from '@mui/icons-material';\n\nimport SelectFileDialog from './wrapper/Dialogs/SelectFile';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport ConfigFileSelector from './ConfigFileSelector';\n\nconst styles = () => ({\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', 'gif', 'apng', 'avif', '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: 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: value ?? '' };\n }\n return null;\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 return Promise.resolve(null);\n }\n\n play() {\n this.loadFile()\n .then(data => {\n if (typeof AudioContext !== 'undefined' && data?.file) {\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 sounds 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\n className={this.props.classes.selectedImage}\n style={{\n backgroundImage: `url(${this.imagePrefix}/${this.state.value})`,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n }}\n />;\n } if (AUDIO_EXT.includes(extension)) {\n return <IconButton style={{ color: '#00FF00' }} onClick={() => this.play()}><IconPlay /></IconButton>;\n } if (DOC_EXT.includes(extension)) {\n return <IconText />;\n } if (VIDEO_EXT.includes(extension)) {\n return <IconVideo />;\n } 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 }\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 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);\n"],"mappings":"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"}
|
|
@@ -399,7 +399,7 @@ var ConfigFileSelector = /*#__PURE__*/function (_ConfigGeneric) {
|
|
|
399
399
|
}
|
|
400
400
|
}, {
|
|
401
401
|
key: "renderItem",
|
|
402
|
-
value: function renderItem(error, disabled
|
|
402
|
+
value: function renderItem(error, disabled) {
|
|
403
403
|
var _this6 = this;
|
|
404
404
|
if (!this.state.files) {
|
|
405
405
|
return null;
|
|
@@ -420,6 +420,9 @@ var ConfigFileSelector = /*#__PURE__*/function (_ConfigGeneric) {
|
|
|
420
420
|
}
|
|
421
421
|
});
|
|
422
422
|
}
|
|
423
|
+
|
|
424
|
+
/** @typedef {{ value: string, label: string, extension?: string }} Item */
|
|
425
|
+
/** @type {Item[]} */
|
|
423
426
|
var selectOptions = this.state.files.map(function (file) {
|
|
424
427
|
return {
|
|
425
428
|
value: file.name,
|
|
@@ -434,9 +437,9 @@ var ConfigFileSelector = /*#__PURE__*/function (_ConfigGeneric) {
|
|
|
434
437
|
});
|
|
435
438
|
}
|
|
436
439
|
|
|
437
|
-
|
|
438
|
-
var item = selectOptions.find(function (
|
|
439
|
-
return
|
|
440
|
+
/** @type {Item | undefined } */
|
|
441
|
+
var item = selectOptions.find(function (_item) {
|
|
442
|
+
return _item.value === _this6.state.value;
|
|
440
443
|
});
|
|
441
444
|
var buttons = 0;
|
|
442
445
|
if (this.props.schema.upload) {
|
|
@@ -476,7 +479,7 @@ var ConfigFileSelector = /*#__PURE__*/function (_ConfigGeneric) {
|
|
|
476
479
|
return /*#__PURE__*/_react["default"].createElement(_material.MenuItem, {
|
|
477
480
|
key: it.value,
|
|
478
481
|
value: it.value
|
|
479
|
-
}, /*#__PURE__*/_react["default"].createElement(_material.ListItemIcon, null, _this6.getIcon(
|
|
482
|
+
}, /*#__PURE__*/_react["default"].createElement(_material.ListItemIcon, null, _this6.getIcon(it)), /*#__PURE__*/_react["default"].createElement(_material.ListItemText, null, it.label), _this6.props.schema["delete"] && item.value ? /*#__PURE__*/_react["default"].createElement(_material.IconButton, {
|
|
480
483
|
className: _this6.props.classes.deleteButton,
|
|
481
484
|
size: "small",
|
|
482
485
|
onClick: function onClick() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigFileSelector.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_reactDropzone","_material","_iconsMaterial","_fa","_Utils","_i18n","_Confirm","_ConfigGeneric2","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","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","_ConfigGeneric","_inherits2","_super","props","_this","_classCallCheck2","dropzoneRef","React","createRef","imagePrefix","undefined","_createClass2","key","value","componentDidMount","_this2","_get2","objectID","schema","replace","instance","path","upload","endsWith","concat","updateFiles","then","ConfigGeneric","getValue","data","attr","setState","_this3","readFiles","pattern","files","_readFolder","_asyncToGenerator2","_regenerator","mark","_callee","folderName","filter","dirFiles","f","file","ok","regExp","wrap","_callee$","_context","prev","next","socket","readDir","sent","length","isDir","readFolder","includes","startsWith","RegExp","test","push","name","size","stats","Utils","formatBytes","t0","console","abrupt","stop","_x","_x2","_x3","_readFiles","_callee2","pos","pos_","folder","_callee2$","_context2","lastIndexOf","substring","_x4","onDrop","acceptedFiles","_this4","reader","FileReader","maxSize","onabort","log","onerror","onload","ext","split","pop","toLowerCase","window","alert","I18n","t","Math","round","base64","btoa","Uint8Array","reduce","byte","String","fromCharCode","writeFile64","readAsArrayBuffer","renderDeleteDialog","_this5","state","deleteFile","createElement","title","text","cancel","onClose","isOk","loadFile","readFile","play","AudioContext","context","buf","base64ToArrayBuffer","decodeAudioData","buffer","source","createBufferSource","connect","destination","start","err","getIcon","item","extension","className","classes","style","backgroundImage","backgroundSize","backgroundRepeat","MusicNote","Article","Videocam","Code","renderItem","disabled","_this6","folders","withFolder","forEach","selectOptions","map","label","noSize","noNone","unshift","find","buttons","refresh","element","FormControl","variant","InputLabel","getText","Select","renderValue","Fragment","onChange","target","it","MenuItem","ListItemIcon","ListItemText","IconButton","onClick","Delete","help","FormHelperText","renderHelp","helpLink","noTranslation","Refresh","_this6$dropzoneRef$cu","current","open","UploadFile","color","PlayArrow","accept","fileTypes","last","ref","multiple","noKeyboard","noClick","onDragEnter","uploadFile","onDragLeave","errors","message","_ref","getRootProps","getInputProps","_extends2","clsx","uploadError","FaFileUpload","binaryString","atob","len","bytes","i","charCodeAt","propTypes","PropTypes","object","isRequired","themeType","string","themeName","onError","func","_default","exports","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 {\n InputLabel,\n MenuItem,\n FormHelperText,\n FormControl,\n Select,\n IconButton,\n ListItemText,\n ListItemIcon,\n} from '@mui/material';\n\nimport {\n Refresh as IconRefresh,\n UploadFile as IconUpload,\n Delete as IconDelete,\n PlayArrow as IconPlay,\n MusicNote as IconAudio,\n Videocam as IconVideo,\n Article as IconText,\n Code as IconCode,\n} from '@mui/icons-material';\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', 'gif', 'apng', 'avif', '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 if (!this.path.endsWith('/')) {\n this.path = `${this.path}/`;\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 window.alert(I18n.t('File is too big. Max %sk allowed. Try use SVG.', Math.round(maxSize / 1024)));\n return;\n }\n const base64 = `data:${ext};base64,${btoa(\n new Uint8Array(reader.result)\n .reduce((data, byte) => data + String.fromCharCode(byte), ''),\n )}`;\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\n className={this.props.classes.selectedImage}\n style={{\n backgroundImage: `url(${this.imagePrefix}/${this.objectID}/${item.value})`,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n }}\n />;\n } if (AUDIO_EXT.includes(item.extension)) {\n return <IconAudio />;\n } if (DOC_EXT.includes(item.extension)) {\n return <IconText />;\n } if (VIDEO_EXT.includes(item.extension)) {\n return <IconVideo />;\n } 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 const 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 const 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={() => <>\n {this.getIcon(item)}\n <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(it => <MenuItem key={it.value} value={it.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 })}\n >\n <IconDelete />\n </IconButton> : null}\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 { 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 <>\n {element}\n {this.renderDeleteDialog()}\n </>;\n }\n let accept = { '*/*': [] };\n if (this.props.schema.fileTypes === 'image') {\n accept = {\n 'image/*': ['.png', '.jpg', '.svg', '.gif', '.apng', '.avif', '.webp'],\n };\n } else if (this.props.schema.fileTypes === 'audio') {\n accept = {\n 'audio/*': ['.mp3', '.ogg', '.wav', '.mp4'],\n };\n } else if (this.props.schema.fileTypes === 'text') {\n accept = {\n 'text/plain': ['.txt'],\n };\n }\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' || last === 'gif' || last === 'apng' || last === 'avif' || last === 'webp') {\n accept = {\n 'image/*': ['.png', '.jpg', '.svg', '.gif', '.apng', '.avif', '.webp'],\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': ['.ics'],\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 {\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 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 {\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')\n }\n </div>\n </div>\n </div> : null}\n {element}\n {this.renderDeleteDialog()}\n </div>}\n </Dropzone>;\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);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConfigFileSelector.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_reactDropzone","_material","_iconsMaterial","_fa","_Utils","_i18n","_Confirm","_ConfigGeneric2","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","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","_ConfigGeneric","_inherits2","_super","props","_this","_classCallCheck2","dropzoneRef","React","createRef","imagePrefix","undefined","_createClass2","key","value","componentDidMount","_this2","_get2","objectID","schema","replace","instance","path","upload","endsWith","concat","updateFiles","then","ConfigGeneric","getValue","data","attr","setState","_this3","readFiles","pattern","files","_readFolder","_asyncToGenerator2","_regenerator","mark","_callee","folderName","filter","dirFiles","f","file","ok","regExp","wrap","_callee$","_context","prev","next","socket","readDir","sent","length","isDir","readFolder","includes","startsWith","RegExp","test","push","name","size","stats","Utils","formatBytes","t0","console","abrupt","stop","_x","_x2","_x3","_readFiles","_callee2","pos","pos_","folder","_callee2$","_context2","lastIndexOf","substring","_x4","onDrop","acceptedFiles","_this4","reader","FileReader","maxSize","onabort","log","onerror","onload","ext","split","pop","toLowerCase","window","alert","I18n","t","Math","round","base64","btoa","Uint8Array","reduce","byte","String","fromCharCode","writeFile64","readAsArrayBuffer","renderDeleteDialog","_this5","state","deleteFile","createElement","title","text","cancel","onClose","isOk","loadFile","readFile","play","AudioContext","context","buf","base64ToArrayBuffer","decodeAudioData","buffer","source","createBufferSource","connect","destination","start","err","getIcon","item","extension","className","classes","style","backgroundImage","backgroundSize","backgroundRepeat","MusicNote","Article","Videocam","Code","renderItem","disabled","_this6","folders","withFolder","forEach","selectOptions","map","label","noSize","noNone","unshift","find","_item","buttons","refresh","element","FormControl","variant","InputLabel","getText","Select","renderValue","Fragment","onChange","target","it","MenuItem","ListItemIcon","ListItemText","IconButton","onClick","Delete","help","FormHelperText","renderHelp","helpLink","noTranslation","Refresh","_this6$dropzoneRef$cu","current","open","UploadFile","color","PlayArrow","accept","fileTypes","last","ref","multiple","noKeyboard","noClick","onDragEnter","uploadFile","onDragLeave","errors","message","_ref","getRootProps","getInputProps","_extends2","clsx","uploadError","FaFileUpload","binaryString","atob","len","bytes","i","charCodeAt","propTypes","PropTypes","object","isRequired","themeType","string","themeName","onError","func","_default","exports","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 {\n InputLabel,\n MenuItem,\n FormHelperText,\n FormControl,\n Select,\n IconButton,\n ListItemText,\n ListItemIcon,\n} from '@mui/material';\n\nimport {\n Refresh as IconRefresh,\n UploadFile as IconUpload,\n Delete as IconDelete,\n PlayArrow as IconPlay,\n MusicNote as IconAudio,\n Videocam as IconVideo,\n Article as IconText,\n Code as IconCode,\n} from '@mui/icons-material';\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', 'gif', 'apng', 'avif', '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 if (!this.path.endsWith('/')) {\n this.path = `${this.path}/`;\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 window.alert(I18n.t('File is too big. Max %sk allowed. Try use SVG.', Math.round(maxSize / 1024)));\n return;\n }\n const base64 = `data:${ext};base64,${btoa(\n new Uint8Array(reader.result)\n .reduce((data, byte) => data + String.fromCharCode(byte), ''),\n )}`;\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\n className={this.props.classes.selectedImage}\n style={{\n backgroundImage: `url(${this.imagePrefix}/${this.objectID}/${item.value})`,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n }}\n />;\n } if (AUDIO_EXT.includes(item.extension)) {\n return <IconAudio />;\n } if (DOC_EXT.includes(item.extension)) {\n return <IconText />;\n } if (VIDEO_EXT.includes(item.extension)) {\n return <IconVideo />;\n } if (JS_EXT.includes(item.extension)) {\n return <IconCode />;\n }\n return null;\n }\n\n renderItem(error, disabled) {\n if (!this.state.files) {\n return null;\n }\n const 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 /** @typedef {{ value: string, label: string, extension?: string }} Item */\n /** @type {Item[]} */\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 /** @type {Item | undefined } */\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 const 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={() => <>\n {this.getIcon(item)}\n <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(it => <MenuItem key={it.value} value={it.value}>\n <ListItemIcon>{this.getIcon(it)}</ListItemIcon>\n <ListItemText>{it.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 })}\n >\n <IconDelete />\n </IconButton> : null}\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 { 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 <>\n {element}\n {this.renderDeleteDialog()}\n </>;\n }\n let accept = { '*/*': [] };\n if (this.props.schema.fileTypes === 'image') {\n accept = {\n 'image/*': ['.png', '.jpg', '.svg', '.gif', '.apng', '.avif', '.webp'],\n };\n } else if (this.props.schema.fileTypes === 'audio') {\n accept = {\n 'audio/*': ['.mp3', '.ogg', '.wav', '.mp4'],\n };\n } else if (this.props.schema.fileTypes === 'text') {\n accept = {\n 'text/plain': ['.txt'],\n };\n }\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' || last === 'gif' || last === 'apng' || last === 'avif' || last === 'webp') {\n accept = {\n 'image/*': ['.png', '.jpg', '.svg', '.gif', '.apng', '.avif', '.webp'],\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': ['.ics'],\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 {\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 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 {\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')\n }\n </div>\n </div>\n </div> : null}\n {element}\n {this.renderDeleteDialog()}\n </div>}\n </Dropzone>;\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);\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
declare const _default: React.JSXElementConstructor<Omit<PropTypes.InferProps<{
|
|
1
|
+
declare const _default: React.JSXElementConstructor<Omit<Pick<import("./ConfigGeneric").ConfigGenericProps, "classes" | "disabled" | "data" | "onChange" | "onError" | "originalData" | "instanceObj" | "customObj" | "schema" | "attr" | "custom" | "forceUpdate" | "alive" | "systemConfig" | "socket" | "changed" | "adapterName" | "instance" | "common" | "themeType"> & Pick<PropTypes.InferProps<{
|
|
2
2
|
socket: PropTypes.Validator<object>;
|
|
3
3
|
themeType: PropTypes.Requireable<string>;
|
|
4
4
|
themeName: PropTypes.Requireable<string>;
|
|
@@ -8,7 +8,7 @@ declare const _default: React.JSXElementConstructor<Omit<PropTypes.InferProps<{
|
|
|
8
8
|
schema: PropTypes.Requireable<object>;
|
|
9
9
|
onError: PropTypes.Requireable<(...args: any[]) => any>;
|
|
10
10
|
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
11
|
-
}>, "classes"> & import("@mui/styles").StyledComponentProps<"fullWidth"> & object>;
|
|
11
|
+
}>, "style" | "className" | "themeName"> & Pick<import("./ConfigGeneric").ConfigGenericProps, "classes" | "disabled" | "originalData" | "instanceObj" | "customObj" | "arrayIndex" | "globalData" | "registerOnForceUpdate" | "attr" | "custom" | "forceUpdate" | "alive" | "systemConfig" | "changed" | "adapterName" | "instance" | "common" | "commandRunning">, "classes"> & import("@mui/styles").StyledComponentProps<"fullWidth"> & object>;
|
|
12
12
|
export default _default;
|
|
13
13
|
import PropTypes from 'prop-types';
|
|
14
14
|
import React from 'react';
|
|
@@ -26,6 +26,7 @@ export interface ConfigGenericProps {
|
|
|
26
26
|
themeType: string;
|
|
27
27
|
commandRunning: any;
|
|
28
28
|
disabled?: boolean;
|
|
29
|
+
classes: Record<string, any>;
|
|
29
30
|
}
|
|
30
31
|
export interface ConfigGenericState {
|
|
31
32
|
confirmDialog: boolean;
|
|
@@ -36,7 +37,7 @@ export interface ConfigGenericState {
|
|
|
36
37
|
confirmDepAttr?: any;
|
|
37
38
|
confirmDepNewValue?: any;
|
|
38
39
|
}
|
|
39
|
-
export default class ConfigGeneric<Props extends ConfigGenericProps, State extends ConfigGenericState> extends Component<Props, State> {
|
|
40
|
+
export default class ConfigGeneric<Props extends ConfigGenericProps = ConfigGenericProps, State extends ConfigGenericState = ConfigGenericState> extends Component<Props, State> {
|
|
40
41
|
static DIFFERENT_VALUE: string;
|
|
41
42
|
static DIFFERENT_LABEL: string;
|
|
42
43
|
static NONE_VALUE: string;
|
|
@@ -62,7 +63,14 @@ export default class ConfigGeneric<Props extends ConfigGenericProps, State exten
|
|
|
62
63
|
static setValue(data: Record<string, any>, attr: string | string[], value: any): void;
|
|
63
64
|
getText(text: unknown, noTranslation?: boolean): string;
|
|
64
65
|
renderConfirmDialog(): React.JSX.Element;
|
|
65
|
-
getIcon(iconSettings
|
|
66
|
+
getIcon(iconSettings?: string | null): React.JSX.Element | null;
|
|
67
|
+
/**
|
|
68
|
+
* Trigger onChange, to activate save button on change
|
|
69
|
+
*
|
|
70
|
+
* @param attr the changed attribute
|
|
71
|
+
* @param newValue new value of the attribute
|
|
72
|
+
*/
|
|
73
|
+
onChangeAsync(attr: string, newValue: unknown): Promise<void>;
|
|
66
74
|
/**
|
|
67
75
|
* Trigger onChange, to activate save button on change
|
|
68
76
|
*
|
|
@@ -70,7 +78,7 @@ export default class ConfigGeneric<Props extends ConfigGenericProps, State exten
|
|
|
70
78
|
* @param newValue new value of the attribute
|
|
71
79
|
* @param cb optional callback function, else returns a Promise
|
|
72
80
|
*/
|
|
73
|
-
onChange(attr: string, newValue:
|
|
81
|
+
onChange(attr: string, newValue: unknown, cb?: () => void): Promise<void>;
|
|
74
82
|
execute(func: string | Record<string, string>, defaultValue: any, data: Record<string, any>, arrayIndex: number, globalData: Record<string, any>): any;
|
|
75
83
|
executeCustom(func: string | Record<string, string>, data: Record<string, any>, customObj: Record<string, any>, instanceObj: ioBroker.InstanceObject, arrayIndex: number, globalData: Record<string, any>): any;
|
|
76
84
|
calculate(schema: Record<string, any>): {
|
|
@@ -80,7 +88,7 @@ export default class ConfigGeneric<Props extends ConfigGenericProps, State exten
|
|
|
80
88
|
defaultValue: any;
|
|
81
89
|
};
|
|
82
90
|
onError(attr: string, error?: unknown): void;
|
|
83
|
-
renderItem(_error: unknown, _disabled: boolean, _defaultValue?: unknown): React.JSX.Element | string;
|
|
91
|
+
renderItem(_error: unknown, _disabled: boolean, _defaultValue?: unknown): React.JSX.Element | string | null;
|
|
84
92
|
renderHelp(text: string, link: string, noTranslation: boolean): string | React.JSX.Element | JSX.Element[];
|
|
85
93
|
getPattern(pattern: any, data?: any): any;
|
|
86
94
|
render(): string | React.JSX.Element | null;
|
|
@@ -129,7 +129,6 @@ class ConfigGeneric extends react_1.Component {
|
|
|
129
129
|
if (value !== null && value !== undefined) {
|
|
130
130
|
if (this.props.custom) {
|
|
131
131
|
this.props.onChange(this.props.attr, value, () => this.props.forceUpdate([this.props.attr], this.props.data));
|
|
132
|
-
// this.onChange(this.props.attr, this.defaultValue);
|
|
133
132
|
}
|
|
134
133
|
else {
|
|
135
134
|
ConfigGeneric.setValue(this.props.data, this.props.attr, value);
|
|
@@ -140,7 +139,7 @@ class ConfigGeneric extends react_1.Component {
|
|
|
140
139
|
}
|
|
141
140
|
else {
|
|
142
141
|
this.defaultSendToDone = false;
|
|
143
|
-
// show error, that instance
|
|
142
|
+
// show error, that instance did not start
|
|
144
143
|
this.onError(this.props.attr, i18n_1.default.t('ra_Instance %s is not alive', this.props.instance.toString()));
|
|
145
144
|
}
|
|
146
145
|
}
|
|
@@ -305,6 +304,15 @@ class ConfigGeneric extends react_1.Component {
|
|
|
305
304
|
}
|
|
306
305
|
return icon;
|
|
307
306
|
}
|
|
307
|
+
/**
|
|
308
|
+
* Trigger onChange, to activate save button on change
|
|
309
|
+
*
|
|
310
|
+
* @param attr the changed attribute
|
|
311
|
+
* @param newValue new value of the attribute
|
|
312
|
+
*/
|
|
313
|
+
onChangeAsync(attr, newValue) {
|
|
314
|
+
return new Promise(resolve => this.onChange(attr, newValue, resolve));
|
|
315
|
+
}
|
|
308
316
|
/**
|
|
309
317
|
* Trigger onChange, to activate save button on change
|
|
310
318
|
*
|
|
@@ -314,6 +322,7 @@ class ConfigGeneric extends react_1.Component {
|
|
|
314
322
|
*/
|
|
315
323
|
// eslint-disable-next-line react/no-unused-class-component-methods
|
|
316
324
|
onChange(attr, newValue, cb) {
|
|
325
|
+
// Do not use here deep copy, as it is not JsonConfig
|
|
317
326
|
const data = JSON.parse(JSON.stringify(this.props.data));
|
|
318
327
|
ConfigGeneric.setValue(data, attr, newValue);
|
|
319
328
|
if (this.props.schema.confirm &&
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
declare const _default: React.JSXElementConstructor<Omit<PropTypes.InferProps<{
|
|
1
|
+
declare const _default: React.JSXElementConstructor<Omit<Pick<import("./ConfigGeneric").ConfigGenericProps, "classes" | "disabled" | "data" | "onChange" | "onError" | "originalData" | "instanceObj" | "customObj" | "schema" | "attr" | "custom" | "forceUpdate" | "alive" | "systemConfig" | "socket" | "changed" | "adapterName" | "instance" | "common" | "themeType"> & Pick<PropTypes.InferProps<{
|
|
2
2
|
socket: PropTypes.Validator<object>;
|
|
3
3
|
themeType: PropTypes.Requireable<string>;
|
|
4
4
|
themeName: PropTypes.Requireable<string>;
|
|
@@ -8,7 +8,7 @@ declare const _default: React.JSXElementConstructor<Omit<PropTypes.InferProps<{
|
|
|
8
8
|
schema: PropTypes.Requireable<object>;
|
|
9
9
|
onError: PropTypes.Requireable<(...args: any[]) => any>;
|
|
10
10
|
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
11
|
-
}>, "classes"> & import("@mui/styles").StyledComponentProps<"fullWidth"> & object>;
|
|
11
|
+
}>, "style" | "className" | "themeName"> & Pick<import("./ConfigGeneric").ConfigGenericProps, "classes" | "disabled" | "originalData" | "instanceObj" | "customObj" | "arrayIndex" | "globalData" | "registerOnForceUpdate" | "attr" | "custom" | "forceUpdate" | "alive" | "systemConfig" | "changed" | "adapterName" | "instance" | "common" | "commandRunning">, "classes"> & import("@mui/styles").StyledComponentProps<"fullWidth"> & object>;
|
|
12
12
|
export default _default;
|
|
13
13
|
import PropTypes from 'prop-types';
|
|
14
14
|
import React from 'react';
|