@iobroker/adapter-react-v5 3.1.10 → 3.1.13
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/CustomModal.js +33 -13
- package/Components/CustomModal.js.map +1 -1
- package/Components/JsonConfigComponent/ChipInput.js +10 -10
- package/Components/JsonConfigComponent/ChipInput.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js +1 -1
- package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFile.js +106 -12
- package/Components/JsonConfigComponent/ConfigFile.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFileSelector.js +11 -13
- package/Components/JsonConfigComponent/ConfigFileSelector.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFunc.js +157 -0
- package/Components/JsonConfigComponent/ConfigFunc.js.map +1 -0
- package/Components/JsonConfigComponent/ConfigGeneric.js +1 -1
- package/Components/JsonConfigComponent/ConfigGeneric.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigImageUpload.js +3 -3
- package/Components/JsonConfigComponent/ConfigImageUpload.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigInstanceSelect.js +17 -4
- package/Components/JsonConfigComponent/ConfigInstanceSelect.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigNumber.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigPanel.js +9 -1
- package/Components/JsonConfigComponent/ConfigPanel.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigRoom.js +157 -0
- package/Components/JsonConfigComponent/ConfigRoom.js.map +1 -0
- package/Components/JsonConfigComponent/ConfigSelectSendTo.js +116 -24
- package/Components/JsonConfigComponent/ConfigSelectSendTo.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSendto.js +1 -1
- package/Components/JsonConfigComponent/ConfigSendto.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSlider.js +147 -0
- package/Components/JsonConfigComponent/ConfigSlider.js.map +1 -0
- package/Components/JsonConfigComponent/ConfigTable.js +4 -4
- package/Components/JsonConfigComponent/ConfigTable.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTextSendTo.js +1 -1
- package/Components/JsonConfigComponent/ConfigTextSendTo.js.map +1 -1
- package/Components/Loader.js +9 -4
- package/Components/Loader.js.map +1 -1
- package/Components/UploadImage.js +11 -10
- package/Components/UploadImage.js.map +1 -1
- package/Connection.js +31 -26
- package/Connection.js.map +1 -1
- package/README.md +6 -0
- package/i18n/de.json +4 -1
- package/i18n/en.json +4 -1
- package/i18n/es.json +4 -1
- package/i18n/fr.json +4 -1
- package/i18n/it.json +4 -1
- package/i18n/nl.json +4 -1
- package/i18n/pl.json +4 -1
- package/i18n/pt.json +4 -1
- package/i18n/ru.json +4 -1
- package/i18n/zh-cn.json +4 -1
- package/package.json +1 -1
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
15
|
+
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
+
|
|
18
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
+
|
|
20
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
+
|
|
22
|
+
var _react = _interopRequireDefault(require("react"));
|
|
23
|
+
|
|
24
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
25
|
+
|
|
26
|
+
var _styles = require("@mui/styles");
|
|
27
|
+
|
|
28
|
+
var _InputLabel = _interopRequireDefault(require("@mui/material/InputLabel"));
|
|
29
|
+
|
|
30
|
+
var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
|
|
31
|
+
|
|
32
|
+
var _FormHelperText = _interopRequireDefault(require("@mui/material/FormHelperText"));
|
|
33
|
+
|
|
34
|
+
var _FormControl = _interopRequireDefault(require("@mui/material/FormControl"));
|
|
35
|
+
|
|
36
|
+
var _Select = _interopRequireDefault(require("@mui/material/Select"));
|
|
37
|
+
|
|
38
|
+
var _TextWithIcon = _interopRequireDefault(require("../TextWithIcon"));
|
|
39
|
+
|
|
40
|
+
var _i18n = _interopRequireDefault(require("../../i18n"));
|
|
41
|
+
|
|
42
|
+
var _ConfigGeneric2 = _interopRequireDefault(require("./ConfigGeneric"));
|
|
43
|
+
|
|
44
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
45
|
+
|
|
46
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
47
|
+
|
|
48
|
+
var styles = function styles(theme) {
|
|
49
|
+
return {
|
|
50
|
+
fullWidth: {
|
|
51
|
+
width: '100%'
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
var ConfigFunc = /*#__PURE__*/function (_ConfigGeneric) {
|
|
57
|
+
(0, _inherits2["default"])(ConfigFunc, _ConfigGeneric);
|
|
58
|
+
|
|
59
|
+
var _super = _createSuper(ConfigFunc);
|
|
60
|
+
|
|
61
|
+
function ConfigFunc() {
|
|
62
|
+
(0, _classCallCheck2["default"])(this, ConfigFunc);
|
|
63
|
+
return _super.apply(this, arguments);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
(0, _createClass2["default"])(ConfigFunc, [{
|
|
67
|
+
key: "componentDidMount",
|
|
68
|
+
value: function componentDidMount() {
|
|
69
|
+
var _this = this;
|
|
70
|
+
|
|
71
|
+
(0, _get2["default"])((0, _getPrototypeOf2["default"])(ConfigFunc.prototype), "componentDidMount", this).call(this);
|
|
72
|
+
|
|
73
|
+
var value = _ConfigGeneric2["default"].getValue(this.props.data, this.props.attr);
|
|
74
|
+
|
|
75
|
+
this.props.socket.getEnums('functions').then(function (enums) {
|
|
76
|
+
var selectOptions = Object.keys(enums).map(function (id) {
|
|
77
|
+
return {
|
|
78
|
+
value: _this.props.schema["short"] ? id.replace('enum.functions.', '') : id,
|
|
79
|
+
label: _this.getText(enums[id].common.name),
|
|
80
|
+
obj: enums[id]
|
|
81
|
+
};
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
_this.setState({
|
|
85
|
+
value: value,
|
|
86
|
+
selectOptions: selectOptions
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}, {
|
|
91
|
+
key: "renderItem",
|
|
92
|
+
value: function renderItem(error, disabled, defaultValue) {
|
|
93
|
+
var _this2 = this;
|
|
94
|
+
|
|
95
|
+
if (!this.state.selectOptions) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
var item = this.state.selectOptions.find(function (item) {
|
|
100
|
+
return item.value === _this2.state.value;
|
|
101
|
+
});
|
|
102
|
+
return /*#__PURE__*/_react["default"].createElement(_FormControl["default"], {
|
|
103
|
+
variant: "standard",
|
|
104
|
+
className: this.props.classes.fullWidth
|
|
105
|
+
}, /*#__PURE__*/_react["default"].createElement(_InputLabel["default"], null, this.getText(this.props.schema.label)), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
|
|
106
|
+
variant: "standard",
|
|
107
|
+
error: !!error,
|
|
108
|
+
disabled: !!disabled,
|
|
109
|
+
value: this.state.value || '_',
|
|
110
|
+
renderValue: function renderValue(val) {
|
|
111
|
+
return item ? /*#__PURE__*/_react["default"].createElement(_TextWithIcon["default"], {
|
|
112
|
+
value: item.obj,
|
|
113
|
+
themeType: _this2.props.themeType,
|
|
114
|
+
lang: _i18n["default"].getLanguage()
|
|
115
|
+
}) : '';
|
|
116
|
+
},
|
|
117
|
+
onChange: function onChange(e) {
|
|
118
|
+
_this2.setState({
|
|
119
|
+
value: e.target.value === '_' ? '' : e.target.value
|
|
120
|
+
}, function () {
|
|
121
|
+
return _this2.onChange(_this2.props.attr, _this2.state.value);
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}, this.state.selectOptions.map(function (item) {
|
|
125
|
+
return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
|
|
126
|
+
key: item.value,
|
|
127
|
+
value: item.value,
|
|
128
|
+
style: item.value === _ConfigGeneric2["default"].DIFFERENT_VALUE ? {
|
|
129
|
+
opacity: 0.5
|
|
130
|
+
} : {}
|
|
131
|
+
}, /*#__PURE__*/_react["default"].createElement(_TextWithIcon["default"], {
|
|
132
|
+
value: item.obj,
|
|
133
|
+
themeType: _this2.props.themeType,
|
|
134
|
+
lang: _i18n["default"].getLanguage()
|
|
135
|
+
}));
|
|
136
|
+
})), 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);
|
|
137
|
+
}
|
|
138
|
+
}]);
|
|
139
|
+
return ConfigFunc;
|
|
140
|
+
}(_ConfigGeneric2["default"]);
|
|
141
|
+
|
|
142
|
+
ConfigFunc.propTypes = {
|
|
143
|
+
socket: _propTypes["default"].object.isRequired,
|
|
144
|
+
themeType: _propTypes["default"].string,
|
|
145
|
+
themeName: _propTypes["default"].string,
|
|
146
|
+
style: _propTypes["default"].object,
|
|
147
|
+
className: _propTypes["default"].string,
|
|
148
|
+
data: _propTypes["default"].object.isRequired,
|
|
149
|
+
schema: _propTypes["default"].object,
|
|
150
|
+
onError: _propTypes["default"].func,
|
|
151
|
+
onChange: _propTypes["default"].func
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
var _default = (0, _styles.withStyles)(styles)(ConfigFunc);
|
|
155
|
+
|
|
156
|
+
exports["default"] = _default;
|
|
157
|
+
//# sourceMappingURL=ConfigFunc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigFunc.js","names":["styles","theme","fullWidth","width","ConfigFunc","value","ConfigGeneric","getValue","props","data","attr","socket","getEnums","then","enums","selectOptions","Object","keys","map","id","schema","replace","label","getText","common","name","obj","setState","error","disabled","defaultValue","state","item","find","classes","val","themeType","I18n","getLanguage","e","target","onChange","DIFFERENT_VALUE","opacity","help","renderHelp","helpLink","noTranslation","propTypes","PropTypes","object","isRequired","string","themeName","style","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigFunc.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\n\nimport TextWithIcon from '../TextWithIcon';\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigFunc extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n this.props.socket.getEnums('functions')\n .then(enums => {\n const selectOptions = Object.keys(enums)\n .map(id => ({ value: this.props.schema.short ? id.replace('enum.functions.', '') : id, label: this.getText(enums[id].common.name), obj: enums[id]}));\n this.setState({ value, selectOptions });\n });\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n\n const item = this.state.selectOptions.find(item => item.value === this.state.value);\n\n return <FormControl\n variant=\"standard\"\n className={this.props.classes.fullWidth}\n >\n <InputLabel>{this.getText(this.props.schema.label)}</InputLabel>\n <Select\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={this.state.value || '_'}\n renderValue={val => item ? <TextWithIcon value={item.obj} themeType={this.props.themeType} lang={I18n.getLanguage()}/> : ''}\n onChange={e => {\n this.setState({value: e.target.value === '_' ? '' : e.target.value}, () =>\n this.onChange(this.props.attr, this.state.value));\n }}\n >\n {this.state.selectOptions.map(item =>\n <MenuItem key={item.value} value={item.value} style={item.value === ConfigGeneric.DIFFERENT_VALUE ? {opacity: 0.5} : {}}>\n <TextWithIcon value={item.obj} themeType={this.props.themeType} lang={I18n.getLanguage()}/>\n </MenuItem>)}\n </Select>\n {this.props.schema.help ? <FormHelperText>{this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}</FormHelperText> : null}\n </FormControl>;\n }\n}\n\nConfigFunc.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigFunc);"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AAEA;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;EAAA,OAAK;IACrBC,SAAS,EAAE;MACPC,KAAK,EAAE;IADA;EADU,CAAL;AAAA,CAApB;;IAMMC,U;;;;;;;;;;;;WACF,6BAAoB;MAAA;;MAChB;;MACA,IAAMC,KAAK,GAAGC,0BAAA,CAAcC,QAAd,CAAuB,KAAKC,KAAL,CAAWC,IAAlC,EAAwC,KAAKD,KAAL,CAAWE,IAAnD,CAAd;;MAEA,KAAKF,KAAL,CAAWG,MAAX,CAAkBC,QAAlB,CAA2B,WAA3B,EACKC,IADL,CACU,UAAAC,KAAK,EAAI;QACX,IAAMC,aAAa,GAAGC,MAAM,CAACC,IAAP,CAAYH,KAAZ,EACjBI,GADiB,CACb,UAAAC,EAAE;UAAA,OAAK;YAAEd,KAAK,EAAE,KAAI,CAACG,KAAL,CAAWY,MAAX,YAA0BD,EAAE,CAACE,OAAH,CAAW,iBAAX,EAA8B,EAA9B,CAA1B,GAA8DF,EAAvE;YAA2EG,KAAK,EAAE,KAAI,CAACC,OAAL,CAAaT,KAAK,CAACK,EAAD,CAAL,CAAUK,MAAV,CAAiBC,IAA9B,CAAlF;YAAuHC,GAAG,EAAEZ,KAAK,CAACK,EAAD;UAAjI,CAAL;QAAA,CADW,CAAtB;;QAEA,KAAI,CAACQ,QAAL,CAAc;UAAEtB,KAAK,EAALA,KAAF;UAASU,aAAa,EAAbA;QAAT,CAAd;MACH,CALL;IAMH;;;WAED,oBAAWa,KAAX,EAAkBC,QAAlB,EAA4BC,YAA5B,EAA0C;MAAA;;MACtC,IAAI,CAAC,KAAKC,KAAL,CAAWhB,aAAhB,EAA+B;QAC3B,OAAO,IAAP;MACH;;MAED,IAAMiB,IAAI,GAAG,KAAKD,KAAL,CAAWhB,aAAX,CAAyBkB,IAAzB,CAA8B,UAAAD,IAAI;QAAA,OAAIA,IAAI,CAAC3B,KAAL,KAAe,MAAI,CAAC0B,KAAL,CAAW1B,KAA9B;MAAA,CAAlC,CAAb;MAEA,oBAAO,gCAAC,uBAAD;QACH,OAAO,EAAC,UADL;QAEH,SAAS,EAAE,KAAKG,KAAL,CAAW0B,OAAX,CAAmBhC;MAF3B,gBAIH,gCAAC,sBAAD,QAAa,KAAKqB,OAAL,CAAa,KAAKf,KAAL,CAAWY,MAAX,CAAkBE,KAA/B,CAAb,CAJG,eAKH,gCAAC,kBAAD;QACI,OAAO,EAAC,UADZ;QAEI,KAAK,EAAE,CAAC,CAACM,KAFb;QAGI,QAAQ,EAAE,CAAC,CAACC,QAHhB;QAII,KAAK,EAAE,KAAKE,KAAL,CAAW1B,KAAX,IAAoB,GAJ/B;QAKI,WAAW,EAAE,qBAAA8B,GAAG;UAAA,OAAIH,IAAI,gBAAG,gCAAC,wBAAD;YAAc,KAAK,EAAEA,IAAI,CAACN,GAA1B;YAA+B,SAAS,EAAE,MAAI,CAAClB,KAAL,CAAW4B,SAArD;YAAgE,IAAI,EAAEC,gBAAA,CAAKC,WAAL;UAAtE,EAAH,GAAiG,EAAzG;QAAA,CALpB;QAMI,QAAQ,EAAE,kBAAAC,CAAC,EAAI;UACX,MAAI,CAACZ,QAAL,CAAc;YAACtB,KAAK,EAAEkC,CAAC,CAACC,MAAF,CAASnC,KAAT,KAAmB,GAAnB,GAAyB,EAAzB,GAA8BkC,CAAC,CAACC,MAAF,CAASnC;UAA/C,CAAd,EAAqE;YAAA,OACjE,MAAI,CAACoC,QAAL,CAAc,MAAI,CAACjC,KAAL,CAAWE,IAAzB,EAA+B,MAAI,CAACqB,KAAL,CAAW1B,KAA1C,CADiE;UAAA,CAArE;QAEH;MATL,GAWK,KAAK0B,KAAL,CAAWhB,aAAX,CAAyBG,GAAzB,CAA6B,UAAAc,IAAI;QAAA,oBAC9B,gCAAC,oBAAD;UAAU,GAAG,EAAEA,IAAI,CAAC3B,KAApB;UAA2B,KAAK,EAAE2B,IAAI,CAAC3B,KAAvC;UAA8C,KAAK,EAAE2B,IAAI,CAAC3B,KAAL,KAAeC,0BAAA,CAAcoC,eAA7B,GAA+C;YAACC,OAAO,EAAE;UAAV,CAA/C,GAAgE;QAArH,gBACI,gCAAC,wBAAD;UAAc,KAAK,EAAEX,IAAI,CAACN,GAA1B;UAA+B,SAAS,EAAE,MAAI,CAAClB,KAAL,CAAW4B,SAArD;UAAgE,IAAI,EAAEC,gBAAA,CAAKC,WAAL;QAAtE,EADJ,CAD8B;MAAA,CAAjC,CAXL,CALG,EAqBF,KAAK9B,KAAL,CAAWY,MAAX,CAAkBwB,IAAlB,gBAAyB,gCAAC,0BAAD,QAAiB,KAAKC,UAAL,CAAgB,KAAKrC,KAAL,CAAWY,MAAX,CAAkBwB,IAAlC,EAAwC,KAAKpC,KAAL,CAAWY,MAAX,CAAkB0B,QAA1D,EAAoE,KAAKtC,KAAL,CAAWY,MAAX,CAAkB2B,aAAtF,CAAjB,CAAzB,GAAmK,IArBjK,CAAP;IAuBH;;;EA3CoBzC,0B;;AA8CzBF,UAAU,CAAC4C,SAAX,GAAuB;EACnBrC,MAAM,EAAEsC,qBAAA,CAAUC,MAAV,CAAiBC,UADN;EAEnBf,SAAS,EAAEa,qBAAA,CAAUG,MAFF;EAGnBC,SAAS,EAAEJ,qBAAA,CAAUG,MAHF;EAInBE,KAAK,EAAEL,qBAAA,CAAUC,MAJE;EAKnBK,SAAS,EAAEN,qBAAA,CAAUG,MALF;EAMnB3C,IAAI,EAAEwC,qBAAA,CAAUC,MAAV,CAAiBC,UANJ;EAOnB/B,MAAM,EAAE6B,qBAAA,CAAUC,MAPC;EAQnBM,OAAO,EAAEP,qBAAA,CAAUQ,IARA;EASnBhB,QAAQ,EAAEQ,qBAAA,CAAUQ;AATD,CAAvB;;eAYe,IAAAC,kBAAA,EAAW1D,MAAX,EAAmBI,UAAnB,C"}
|
|
@@ -157,7 +157,7 @@ var ConfigGeneric = /*#__PURE__*/function (_Component) {
|
|
|
157
157
|
data = null;
|
|
158
158
|
}
|
|
159
159
|
|
|
160
|
-
this.props.socket.sendTo(this.props.adapterName
|
|
160
|
+
this.props.socket.sendTo("".concat(this.props.adapterName, ".").concat(this.props.instance), this.props.schema.defaultSendTo, data).then(function (value) {
|
|
161
161
|
if (value !== null && value !== undefined) {
|
|
162
162
|
if (_this3.props.custom) {
|
|
163
163
|
_this3.props.onChange(_this3.props.attr, value, function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigGeneric.js","names":["ConfigGeneric","props","data","value","getValue","attr","state","setState","forceUpdate","confirmDialog","confirmNewValue","confirmAttr","confirmData","isError","schema","custom","defaultValue","defaultFunc","executeCustom","instanceObj","arrayIndex","globalData","execute","lang","I18n","getLanguage","registerOnForceUpdate","onUpdate","LIKE_SELECT","undefined","includes","type","setTimeout","onChange","setValue","defaultSendTo","sendTo","alive","defaultSendToDone","jsonData","getPattern","JSON","parse","e","console","error","socket","adapterName","instance","then","onError","t","sendToTimeout","clearTimeout","text","noTranslation","func","en","confirm","icon","getText","title","ok","cancel","isOk","stringify","confirmDepAttr","confirmDepNewValue","confirmOldValue","newValue","condition","confirmDependsOn","z","length","dep","val","changed","onChangeDependsOn","calculateFunc","customObj","push","hiddenDependsOn","hidden","labelDependsOn","helpDependsOn","ignoreOwnChanges","forEach","_attr","i","f","Function","result","originalData","systemConfig","common","log","disabled","validator","label","link","Utils","renderTextWithA","color","themeType","pattern","replace","calculate","Object","keys","hideOnlyControl","item","xs","lg","md","sm","assign","marginBottom","textAlign","style","darkStyle","newLine","flexBasis","height","validatorNoSaveOnError","validatorErrorText","renderedItem","renderItem","commandRunning","tooltip","width","button","buttonTooltip","buttonTooltipNoTranslation","renderConfirmDialog","split","part","shift","Component","getPrototypeOf","constructor","propTypes","PropTypes","object","isRequired","string","any","themeName","customs","bool","number","dateFormat","isFloatComma"],"sources":["JsonConfigComponent/ConfigGeneric.jsx"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Grid from '@mui/material/Grid';\nimport Button from '@mui/material/Button';\n\nimport IconInfo from '@mui/icons-material/Info';\nimport IconWarning from '@mui/icons-material/Warning';\nimport IconError from '@mui/icons-material/Error';\n\nimport I18n from '../../i18n';\nimport Utils from '../Utils';\nimport ConfirmDialog from '../../Dialogs/Confirm';\n\nclass ConfigGeneric extends Component {\n static DIFFERENT_VALUE = '__different__';\n static DIFFERENT_LABEL = 'ra___different__';\n static NONE_VALUE = '';\n static NONE_LABEL = 'ra_none';\n static AsyncFunction = Object.getPrototypeOf(async function(){}).constructor;\n\n constructor(props) {\n super(props);\n\n this.state = {\n confirmDialog: false,\n confirmNewValue: null,\n confirmAttr: null,\n confirmData: null,\n };\n\n this.isError = {};\n\n if (this.props.schema) {\n if (this.props.custom) {\n this.defaultValue = this.props.schema.defaultFunc ? this.executeCustom(this.props.schema.defaultFunc, this.props.schema.default, this.props.data, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : this.props.schema.default;\n } else {\n this.defaultValue = this.props.schema.defaultFunc ? this.execute(this.props.schema.defaultFunc, this.props.schema.default, this.props.data, this.props.arrayIndex, this.props.globalData) : this.props.schema.default;\n }\n }\n\n this.lang = I18n.getLanguage();\n }\n\n componentDidMount() {\n this.props.registerOnForceUpdate && this.props.registerOnForceUpdate(this.props.attr, this.onUpdate);\n const LIKE_SELECT = ['select', 'autocomplete', 'autocompleteSendTo'];\n // init default value\n if (this.defaultValue !== undefined) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n if (value === undefined || (LIKE_SELECT.includes(this.props.schema.type) && (value === '' || value === null))) {\n setTimeout(() => {\n if (this.props.custom) {\n this.props.onChange(this.props.attr, this.defaultValue, () =>\n this.props.forceUpdate([this.props.attr], this.props.data));\n //this.onChange(this.props.attr, this.defaultValue);\n } else {\n ConfigGeneric.setValue(this.props.data, this.props.attr, this.defaultValue);\n this.props.onChange(this.props.data, undefined, () =>\n this.props.forceUpdate([this.props.attr], this.props.data));\n }\n }, 100);\n }\n } else if (this.props.schema.defaultSendTo) {\n this.sendTo();\n }\n }\n\n sendTo() {\n if (this.props.alive) {\n this.defaultSendToDone = true;\n let data = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n data = this.getPattern(this.props.schema.jsonData);\n try {\n data = JSON.parse(data);\n } catch (e) {\n console.error('Cannot parse json data: ' + data);\n }\n } else {\n data = {\n attr: this.props.attr,\n value: ConfigGeneric.getValue(this.props.data, this.props.attr),\n };\n }\n\n if (data === undefined) {\n data = null;\n }\n\n this.props.socket.sendTo(this.props.adapterName + '.' + this.props.instance, this.props.schema.defaultSendTo, data)\n .then(value => {\n if (value !== null && value !== undefined) {\n if (this.props.custom) {\n this.props.onChange(this.props.attr, value, () =>\n this.props.forceUpdate([this.props.attr], this.props.data));\n //this.onChange(this.props.attr, this.defaultValue);\n } else {\n ConfigGeneric.setValue(this.props.data, this.props.attr, value);\n this.props.onChange(this.props.data, undefined, () =>\n this.props.forceUpdate([this.props.attr], this.props.data));\n }\n }\n });\n } else {\n this.defaultSendToDone = false;\n // show error, that instance does not started\n this.onError(this.props.attr, I18n.t('ra_Instance %s is not alive', this.props.instance));\n }\n }\n\n componentWillUnmount() {\n this.props.registerOnForceUpdate && this.props.registerOnForceUpdate(this.props.attr)\n if (this.sendToTimeout) {\n clearTimeout(this.sendToTimeout);\n this.sendToTimeout = null;\n }\n }\n\n onUpdate = data => {\n const value = ConfigGeneric.getValue(data || this.props.data, this.props.attr) || '';\n if (this.state.value !== value) {\n this.setState({ value });\n } else {\n this.forceUpdate();\n }\n }\n\n static getValue(data, attr) {\n if (typeof attr === 'string') {\n return ConfigGeneric.getValue(data, attr.split('.'));\n } else {\n if (attr.length === 1) {\n return data[attr[0]];\n } else {\n const part = attr.shift();\n if (typeof data[part] === 'object') {\n return ConfigGeneric.getValue(data[part], attr);\n } else {\n return null;\n }\n }\n }\n }\n\n static setValue(data, attr, value) {\n if (typeof attr === 'string') {\n return ConfigGeneric.setValue(data, attr.split('.'), value);\n } else {\n if (attr.length === 1) {\n if (value === null) {\n delete data[attr[0]];\n } else {\n data[attr[0]] = value;\n }\n } else {\n const part = attr.shift();\n if (!data[part] || typeof data[part] === 'object') {\n data[part] = data[part] || {};\n }\n return ConfigGeneric.setValue(data[part], attr, value);\n }\n }\n }\n\n getText(text, noTranslation) {\n if (!text) {\n return '';\n }\n\n if (typeof text === 'string') {\n text = noTranslation ? text : I18n.t(text);\n if (text.includes('${')) {\n return this.getPattern(text);\n } else {\n return text;\n }\n } else if (text && typeof text === 'object') {\n if (text.func) {\n // calculate pattern\n if (typeof text.func === 'object') {\n return this.getPattern(text.func[this.lang] || text.func.en || '');\n } else {\n this.getPattern(text.func);\n }\n } else {\n return text[this.lang] || text.en || '';\n }\n }\n }\n\n renderConfirmDialog() {\n if (!this.state.confirmDialog) {\n return null;\n }\n const confirm = this.state.confirmData || this.props.schema.confirm;\n let icon = null;\n if (confirm.type === 'warning') {\n icon = <IconWarning />;\n } else if (confirm.type === 'error') {\n icon = <IconError />;\n } else if (confirm.type === 'info') {\n icon = <IconInfo />;\n }\n\n return <ConfirmDialog\n title={ this.getText(confirm.title) || I18n.t('ra_Please confirm') }\n text={ this.getText(confirm.text) }\n ok={ this.getText(confirm.ok) || I18n.t('ra_Ok') }\n cancel={ this.getText(confirm.cancel) || I18n.t('ra_Cancel') }\n icon={icon}\n onClose={isOk =>\n this.setState({ confirmDialog: false}, () => {\n if (isOk) {\n const data = JSON.parse(JSON.stringify(this.props.data));\n if (this.state.confirmDepAttr) {\n ConfigGeneric.setValue(data, this.state.confirmDepAttr, this.state.confirmDepNewValue);\n }\n\n ConfigGeneric.setValue(data, this.state.confirmAttr, this.state.confirmNewValue);\n this.setState({confirmDialog: false, confirmDepAttr: null, confirmDepNewValue: null, confirmNewValue: null, confirmAttr: null, confirmOldValue: null, confirmData: null}, () =>\n this.props.onChange(data));\n } else {\n this.setState({confirmDialog: false, confirmDepAttr: null, confirmDepNewValue: null, confirmNewValue: null, confirmAttr: null, confirmOldValue: null, confirmData: null});\n }\n })\n }\n />;\n }\n\n onChange(attr, newValue) {\n const data = JSON.parse(JSON.stringify(this.props.data));\n ConfigGeneric.setValue(data, attr, newValue);\n\n if (this.props.schema.confirm && this.execute(this.props.schema.confirm.condition, false, data, this.props.arrayIndex, this.props.globalData)) {\n return this.setState({\n confirmDialog: true,\n confirmNewValue: newValue,\n confirmAttr: attr,\n confirmData: null,\n });\n } else {\n // find any inputs with confirmation\n if (this.props.schema.confirmDependsOn) {\n for (let z = 0; z < this.props.schema.confirmDependsOn.length; z++) {\n const dep = this.props.schema.confirmDependsOn[z];\n if (dep.confirm) {\n const val = ConfigGeneric.getValue(data, dep.attr);\n\n if (this.execute(dep.confirm.condition, false, data, this.props.arrayIndex, this.props.globalData)) {\n return this.setState({\n confirmDialog: true,\n confirmNewValue: newValue,\n confirmAttr: attr,\n confirmDepNewValue: val,\n confirmDepAttr: dep.attr,\n confirmData: dep.confirm,\n });\n }\n }\n }\n }\n\n const changed = [];\n if (this.props.schema.onChangeDependsOn) {\n for (let z = 0; z < this.props.schema.onChangeDependsOn.length; z++) {\n const dep = this.props.schema.onChangeDependsOn[z];\n if (dep.onChange) {\n const val = ConfigGeneric.getValue(data, dep.attr);\n\n const newValue = this.props.custom ?\n this.executeCustom(dep.onChange.calculateFunc, data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData)\n :\n this.execute(dep.onChange.calculateFunc, val, data, this.props.arrayIndex, this.props.globalData);\n\n if (newValue !== val) {\n ConfigGeneric.setValue(data, dep.attr, newValue);\n changed.push(dep.attr);\n }\n }\n }\n }\n\n if (this.props.schema.hiddenDependsOn) {\n for (let z = 0; z < this.props.schema.hiddenDependsOn.length; z++) {\n const dep = this.props.schema.hiddenDependsOn[z];\n dep.hidden && changed.push(dep.attr);\n }\n }\n\n if (this.props.schema.labelDependsOn) {\n for (let z = 0; z < this.props.schema.labelDependsOn.length; z++) {\n const dep = this.props.schema.labelDependsOn[z];\n dep.hidden && changed.push(dep.attr);\n }\n }\n\n if (this.props.schema.helpDependsOn) {\n for (let z = 0; z < this.props.schema.helpDependsOn.length; z++) {\n const dep = this.props.schema.helpDependsOn[z];\n dep.hidden && changed.push(dep.attr);\n }\n }\n\n if (this.props.schema.onChange && !this.props.schema.onChange.ignoreOwnChanges) {\n const val = ConfigGeneric.getValue(data, this.props.attr);\n\n const newValue = this.props.custom ?\n this.executeCustom(this.props.schema.onChange.calculateFunc, data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData)\n :\n this.execute(this.props.schema.onChange.calculateFunc, val, data, this.props.arrayIndex, this.props.globalData);\n if (newValue !== val) {\n ConfigGeneric.setValue(data, this.props.attr, newValue);\n }\n }\n\n if (this.props.custom) {\n this.props.onChange(attr, newValue);\n\n changed && changed.length && changed.forEach((_attr, i) =>\n setTimeout(() => this.props.onChange(_attr, ConfigGeneric.getValue(data, attr)), i * 50));\n } else {\n this.props.onChange(data, undefined, () =>\n changed.length && this.props.forceUpdate(changed, data));\n }\n }\n }\n\n execute(func, defaultValue, data, arrayIndex, globalData) {\n if (func && typeof func === 'object') {\n func = func.func;\n }\n\n if (!func) {\n return defaultValue;\n } else {\n try {\n // eslint-disable-next-line no-new-func\n const f = new Function('data', 'originalData', '_system', '_alive', '_common', '_socket', '_instance', 'arrayIndex', 'globalData', func.includes('return') ? func : 'return ' + func);\n const result = f(data || this.props.data, this.props.originalData, this.props.systemConfig, this.props.alive, this.props.common, this.props.socket, this.props.instance, arrayIndex, globalData);\n // console.log(result);\n return result;\n } catch (e) {\n console.error(`Cannot execute ${func}: ${e}`);\n return defaultValue;\n }\n }\n }\n\n executeCustom(func, data, customObj, instanceObj, arrayIndex, globalData) {\n if (func && typeof func === 'object') {\n func = func.func;\n }\n\n if (!func) {\n return null;\n } else {\n try {\n // eslint-disable-next-line no-new-func\n const f = new Function('data', 'originalData', '_system', 'instanceObj', 'customObj', '_socket', 'arrayIndex', 'globalData', func.includes('return') ? func : 'return ' + func);\n const result = f(data || this.props.data, this.props.originalData, this.props.systemConfig, instanceObj, customObj, this.props.socket, arrayIndex, globalData);\n console.log(result);\n return result;\n } catch (e) {\n console.error(`Cannot execute ${func}: ${e}`);\n return null;\n }\n }\n }\n\n calculate(schema) {\n let error;\n let disabled;\n let hidden;\n let defaultValue;\n\n if (this.props.custom) {\n error = schema.validator ? !this.executeCustom(schema.validator, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : false;\n disabled = schema.disabled ? this.executeCustom(schema.disabled, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : false;\n hidden = schema.hidden ? this.executeCustom(schema.hidden, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : false;\n defaultValue = schema.defaultFunc ? this.executeCustom(schema.defaultFunc, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : schema.default;\n } else {\n error = schema.validator ? !this.execute(schema.validator, false, this.props.data, this.props.arrayIndex, this.props.globalData) : false;\n disabled = schema.disabled ? this.execute(schema.disabled, false, this.props.data, this.props.arrayIndex, this.props.globalData) : false;\n hidden = schema.hidden ? this.execute(schema.hidden, false, this.props.data, this.props.arrayIndex, this.props.globalData) : false;\n defaultValue = schema.defaultFunc ? this.execute(schema.defaultFunc, schema.default, this.props.data, this.props.arrayIndex, this.props.globalData) : schema.default;\n }\n\n return { error, disabled, hidden, defaultValue };\n }\n\n onError(attr, error) {\n if (!error) {\n delete this.isError[attr];\n } else {\n this.isError[attr] = error;\n }\n\n this.props.onError && this.props.onError(attr, error);\n }\n\n renderItem(error, disabled, defaultValue) {\n return this.getText(this.props.schema.label) || this.getText(this.props.schema.text)\n }\n\n renderHelp(text, link, noTranslation) {\n if (!link) {\n text = this.getText(text, noTranslation) || '';\n if (text && text.includes('<a ')) {\n return Utils.renderTextWithA(text);\n } else {\n return text;\n }\n } else {\n return <a\n href={link}\n target=\"_blank\"\n rel=\"noreferrer\"\n style={{color: this.props.themeType === 'dark' ? '#eee' : '#111'}}\n >{this.getText(text, noTranslation)}</a>;\n }\n }\n\n getPattern(pattern) {\n if (!pattern) {\n return '';\n } else {\n if (typeof pattern === 'object') {\n pattern = pattern.func;\n }\n\n try {\n if (this.props.custom) {\n // eslint-disable-next-line no-new-func\n const f = new Function('data', 'originalData', '_system', 'instanceObj', 'customObj', '_socket', 'return `' + pattern.replace(/`/g, '\\\\`') + '`');\n const result = f(this.props.data, this.props.originalData, this.props.systemConfig, this.props.instanceObj, this.props.customObj, this.props.socket);\n return result;\n } else {\n // eslint-disable-next-line no-new-func\n const f = new Function('data', 'originalData', '_system', '_alive', '_common', '_socket', 'return `' + pattern.replace(/`/g, '\\\\`') + '`');\n return f(this.props.data, this.props.originalData, this.props.systemConfig, this.props.alive, this.props.common, this.props.socket);\n }\n } catch (e) {\n console.error(`Cannot execute ${pattern}: ${e}`);\n return pattern;\n }\n }\n }\n\n render() {\n const schema = this.props.schema;\n\n if (!schema) {\n return null;\n }\n\n if (this.props.alive && this.defaultSendToDone === false) {\n this.sendToTimeout = setTimeout(() => {this.sendToTimeout = null; this.sendTo();}, 200);\n }\n\n const { error, disabled, hidden, defaultValue } = this.calculate(schema);\n\n if (hidden) {\n // Remove all errors if element is hidden\n if (Object.keys(this.isError).length) {\n setTimeout(isError =>\n Object.keys(isError).forEach(attr => this.props.onError(attr)),\n 100, JSON.parse(JSON.stringify(this.isError)));\n this.isError = {};\n }\n\n if (schema.hideOnlyControl) {\n const item = <Grid\n item\n xs={schema.xs || undefined}\n lg={schema.lg || undefined}\n md={schema.md || undefined}\n sm={schema.sm || undefined}\n style={Object.assign(\n {},\n {marginBottom: 0, /*marginRight: 8, */textAlign: 'left'},\n schema.style,\n this.props.themeType === 'dark' ? schema.darkStyle : {}\n )}\n />;\n\n if (schema.newLine) {\n return <>\n <div style={{flexBasis: '100%', height: 0}} />\n {item}\n </>;\n } else {\n return item;\n }\n } else {\n return null;\n }\n } else {\n // Add error\n if (schema.validatorNoSaveOnError) {\n if (error && !Object.keys(this.isError).length) {\n this.isError = {[this.props.attr]: schema.validatorErrorText ? I18n.t(schema.validatorErrorText) : true};\n setTimeout(isError =>\n Object.keys(isError).forEach(attr => this.props.onError(attr, isError[attr])),\n 100, JSON.parse(JSON.stringify(this.isError)));\n } else if (!error && Object.keys(this.isError).length) {\n setTimeout(isError =>\n Object.keys(isError).forEach(attr => this.props.onError(attr)),\n 100, JSON.parse(JSON.stringify(this.isError)));\n this.isError = {};\n }\n }\n\n const renderedItem = this.renderItem(error, disabled || this.props.commandRunning || this.props.disabled, defaultValue);\n\n const item = <Grid\n item\n title={this.getText(schema.tooltip)}\n xs={schema.xs || undefined}\n lg={schema.lg || undefined}\n md={schema.md || undefined}\n sm={schema.sm || undefined}\n style={Object.assign({}, {\n marginBottom: 0,\n // marginRight: 8,\n textAlign: 'left',\n width: schema.type === 'divider' || schema.type === 'header' ? schema.width || '100%' : undefined\n }, schema.style, this.props.themeType === 'dark' ? schema.darkStyle : {})}>\n { this.props.schema.defaultSendTo && this.props.schema.button ? <Grid container style={{ width: '100%' }}>\n <Grid item flex={1}>{renderedItem}</Grid>\n <Grid item><Button\n variant=\"outlined\"\n onClick={() => this.sendTo()}\n title={this.props.schema.buttonTooltip ? this.getText(this.props.schema.buttonTooltip, this.props.schema.buttonTooltipNoTranslation) : I18n.t('ra_Request data by instance')}\n >{this.getText(this.props.schema.button)}</Button></Grid>\n </Grid>\n :\n renderedItem\n }\n </Grid>;\n\n if (schema.newLine) {\n return <>\n <div style={{flexBasis: '100%', height: 0}} />\n {this.renderConfirmDialog()}\n {item}\n </>;\n } else {\n if (this.state.confirmDialog) {\n return <>\n {this.renderConfirmDialog()}\n {item}\n </>;\n } else {\n return item;\n }\n }\n }\n }\n}\n\nConfigGeneric.propTypes = {\n socket: PropTypes.object.isRequired,\n data: PropTypes.object,\n originalData: PropTypes.object,\n schema: PropTypes.object,\n attr: PropTypes.string,\n value: PropTypes.any,\n themeName: PropTypes.string,\n style: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n customs: PropTypes.object,\n forceUpdate: PropTypes.func.isRequired,\n disabled: PropTypes.bool,\n\n systemConfig: PropTypes.object,\n alive: PropTypes.bool,\n common: PropTypes.object,\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n dateFormat: PropTypes.string,\n isFloatComma: PropTypes.bool,\n\n customObj: PropTypes.object,\n instanceObj: PropTypes.object,\n custom: PropTypes.bool,\n};\n\nexport default ConfigGeneric;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConfigGeneric.js","names":["ConfigGeneric","props","data","value","getValue","attr","state","setState","forceUpdate","confirmDialog","confirmNewValue","confirmAttr","confirmData","isError","schema","custom","defaultValue","defaultFunc","executeCustom","instanceObj","arrayIndex","globalData","execute","lang","I18n","getLanguage","registerOnForceUpdate","onUpdate","LIKE_SELECT","undefined","includes","type","setTimeout","onChange","setValue","defaultSendTo","sendTo","alive","defaultSendToDone","jsonData","getPattern","JSON","parse","e","console","error","socket","adapterName","instance","then","onError","t","sendToTimeout","clearTimeout","text","noTranslation","func","en","confirm","icon","getText","title","ok","cancel","isOk","stringify","confirmDepAttr","confirmDepNewValue","confirmOldValue","newValue","condition","confirmDependsOn","z","length","dep","val","changed","onChangeDependsOn","calculateFunc","customObj","push","hiddenDependsOn","hidden","labelDependsOn","helpDependsOn","ignoreOwnChanges","forEach","_attr","i","f","Function","result","originalData","systemConfig","common","log","disabled","validator","label","link","Utils","renderTextWithA","color","themeType","pattern","replace","calculate","Object","keys","hideOnlyControl","item","xs","lg","md","sm","assign","marginBottom","textAlign","style","darkStyle","newLine","flexBasis","height","validatorNoSaveOnError","validatorErrorText","renderedItem","renderItem","commandRunning","tooltip","width","button","buttonTooltip","buttonTooltipNoTranslation","renderConfirmDialog","split","part","shift","Component","getPrototypeOf","constructor","propTypes","PropTypes","object","isRequired","string","any","themeName","customs","bool","number","dateFormat","isFloatComma"],"sources":["JsonConfigComponent/ConfigGeneric.jsx"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Grid from '@mui/material/Grid';\nimport Button from '@mui/material/Button';\n\nimport IconInfo from '@mui/icons-material/Info';\nimport IconWarning from '@mui/icons-material/Warning';\nimport IconError from '@mui/icons-material/Error';\n\nimport I18n from '../../i18n';\nimport Utils from '../Utils';\nimport ConfirmDialog from '../../Dialogs/Confirm';\n\nclass ConfigGeneric extends Component {\n static DIFFERENT_VALUE = '__different__';\n static DIFFERENT_LABEL = 'ra___different__';\n static NONE_VALUE = '';\n static NONE_LABEL = 'ra_none';\n static AsyncFunction = Object.getPrototypeOf(async function(){}).constructor;\n\n constructor(props) {\n super(props);\n\n this.state = {\n confirmDialog: false,\n confirmNewValue: null,\n confirmAttr: null,\n confirmData: null,\n };\n\n this.isError = {};\n\n if (this.props.schema) {\n if (this.props.custom) {\n this.defaultValue = this.props.schema.defaultFunc ? this.executeCustom(this.props.schema.defaultFunc, this.props.schema.default, this.props.data, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : this.props.schema.default;\n } else {\n this.defaultValue = this.props.schema.defaultFunc ? this.execute(this.props.schema.defaultFunc, this.props.schema.default, this.props.data, this.props.arrayIndex, this.props.globalData) : this.props.schema.default;\n }\n }\n\n this.lang = I18n.getLanguage();\n }\n\n componentDidMount() {\n this.props.registerOnForceUpdate && this.props.registerOnForceUpdate(this.props.attr, this.onUpdate);\n const LIKE_SELECT = ['select', 'autocomplete', 'autocompleteSendTo'];\n // init default value\n if (this.defaultValue !== undefined) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n if (value === undefined || (LIKE_SELECT.includes(this.props.schema.type) && (value === '' || value === null))) {\n setTimeout(() => {\n if (this.props.custom) {\n this.props.onChange(this.props.attr, this.defaultValue, () =>\n this.props.forceUpdate([this.props.attr], this.props.data));\n //this.onChange(this.props.attr, this.defaultValue);\n } else {\n ConfigGeneric.setValue(this.props.data, this.props.attr, this.defaultValue);\n this.props.onChange(this.props.data, undefined, () =>\n this.props.forceUpdate([this.props.attr], this.props.data));\n }\n }, 100);\n }\n } else if (this.props.schema.defaultSendTo) {\n this.sendTo();\n }\n }\n\n sendTo() {\n if (this.props.alive) {\n this.defaultSendToDone = true;\n let data = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n data = this.getPattern(this.props.schema.jsonData);\n try {\n data = JSON.parse(data);\n } catch (e) {\n console.error('Cannot parse json data: ' + data);\n }\n } else {\n data = {\n attr: this.props.attr,\n value: ConfigGeneric.getValue(this.props.data, this.props.attr),\n };\n }\n\n if (data === undefined) {\n data = null;\n }\n\n this.props.socket.sendTo(`${this.props.adapterName}.${this.props.instance}`, this.props.schema.defaultSendTo, data)\n .then(value => {\n if (value !== null && value !== undefined) {\n if (this.props.custom) {\n this.props.onChange(this.props.attr, value, () =>\n this.props.forceUpdate([this.props.attr], this.props.data));\n //this.onChange(this.props.attr, this.defaultValue);\n } else {\n ConfigGeneric.setValue(this.props.data, this.props.attr, value);\n this.props.onChange(this.props.data, undefined, () =>\n this.props.forceUpdate([this.props.attr], this.props.data));\n }\n }\n });\n } else {\n this.defaultSendToDone = false;\n // show error, that instance does not started\n this.onError(this.props.attr, I18n.t('ra_Instance %s is not alive', this.props.instance));\n }\n }\n\n componentWillUnmount() {\n this.props.registerOnForceUpdate && this.props.registerOnForceUpdate(this.props.attr)\n if (this.sendToTimeout) {\n clearTimeout(this.sendToTimeout);\n this.sendToTimeout = null;\n }\n }\n\n onUpdate = data => {\n const value = ConfigGeneric.getValue(data || this.props.data, this.props.attr) || '';\n if (this.state.value !== value) {\n this.setState({ value });\n } else {\n this.forceUpdate();\n }\n }\n\n static getValue(data, attr) {\n if (typeof attr === 'string') {\n return ConfigGeneric.getValue(data, attr.split('.'));\n } else {\n if (attr.length === 1) {\n return data[attr[0]];\n } else {\n const part = attr.shift();\n if (typeof data[part] === 'object') {\n return ConfigGeneric.getValue(data[part], attr);\n } else {\n return null;\n }\n }\n }\n }\n\n static setValue(data, attr, value) {\n if (typeof attr === 'string') {\n return ConfigGeneric.setValue(data, attr.split('.'), value);\n } else {\n if (attr.length === 1) {\n if (value === null) {\n delete data[attr[0]];\n } else {\n data[attr[0]] = value;\n }\n } else {\n const part = attr.shift();\n if (!data[part] || typeof data[part] === 'object') {\n data[part] = data[part] || {};\n }\n return ConfigGeneric.setValue(data[part], attr, value);\n }\n }\n }\n\n getText(text, noTranslation) {\n if (!text) {\n return '';\n }\n\n if (typeof text === 'string') {\n text = noTranslation ? text : I18n.t(text);\n if (text.includes('${')) {\n return this.getPattern(text);\n } else {\n return text;\n }\n } else if (text && typeof text === 'object') {\n if (text.func) {\n // calculate pattern\n if (typeof text.func === 'object') {\n return this.getPattern(text.func[this.lang] || text.func.en || '');\n } else {\n this.getPattern(text.func);\n }\n } else {\n return text[this.lang] || text.en || '';\n }\n }\n }\n\n renderConfirmDialog() {\n if (!this.state.confirmDialog) {\n return null;\n }\n const confirm = this.state.confirmData || this.props.schema.confirm;\n let icon = null;\n if (confirm.type === 'warning') {\n icon = <IconWarning />;\n } else if (confirm.type === 'error') {\n icon = <IconError />;\n } else if (confirm.type === 'info') {\n icon = <IconInfo />;\n }\n\n return <ConfirmDialog\n title={ this.getText(confirm.title) || I18n.t('ra_Please confirm') }\n text={ this.getText(confirm.text) }\n ok={ this.getText(confirm.ok) || I18n.t('ra_Ok') }\n cancel={ this.getText(confirm.cancel) || I18n.t('ra_Cancel') }\n icon={icon}\n onClose={isOk =>\n this.setState({ confirmDialog: false}, () => {\n if (isOk) {\n const data = JSON.parse(JSON.stringify(this.props.data));\n if (this.state.confirmDepAttr) {\n ConfigGeneric.setValue(data, this.state.confirmDepAttr, this.state.confirmDepNewValue);\n }\n\n ConfigGeneric.setValue(data, this.state.confirmAttr, this.state.confirmNewValue);\n this.setState({confirmDialog: false, confirmDepAttr: null, confirmDepNewValue: null, confirmNewValue: null, confirmAttr: null, confirmOldValue: null, confirmData: null}, () =>\n this.props.onChange(data));\n } else {\n this.setState({confirmDialog: false, confirmDepAttr: null, confirmDepNewValue: null, confirmNewValue: null, confirmAttr: null, confirmOldValue: null, confirmData: null});\n }\n })\n }\n />;\n }\n\n onChange(attr, newValue) {\n const data = JSON.parse(JSON.stringify(this.props.data));\n ConfigGeneric.setValue(data, attr, newValue);\n\n if (this.props.schema.confirm && this.execute(this.props.schema.confirm.condition, false, data, this.props.arrayIndex, this.props.globalData)) {\n return this.setState({\n confirmDialog: true,\n confirmNewValue: newValue,\n confirmAttr: attr,\n confirmData: null,\n });\n } else {\n // find any inputs with confirmation\n if (this.props.schema.confirmDependsOn) {\n for (let z = 0; z < this.props.schema.confirmDependsOn.length; z++) {\n const dep = this.props.schema.confirmDependsOn[z];\n if (dep.confirm) {\n const val = ConfigGeneric.getValue(data, dep.attr);\n\n if (this.execute(dep.confirm.condition, false, data, this.props.arrayIndex, this.props.globalData)) {\n return this.setState({\n confirmDialog: true,\n confirmNewValue: newValue,\n confirmAttr: attr,\n confirmDepNewValue: val,\n confirmDepAttr: dep.attr,\n confirmData: dep.confirm,\n });\n }\n }\n }\n }\n\n const changed = [];\n if (this.props.schema.onChangeDependsOn) {\n for (let z = 0; z < this.props.schema.onChangeDependsOn.length; z++) {\n const dep = this.props.schema.onChangeDependsOn[z];\n if (dep.onChange) {\n const val = ConfigGeneric.getValue(data, dep.attr);\n\n const newValue = this.props.custom ?\n this.executeCustom(dep.onChange.calculateFunc, data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData)\n :\n this.execute(dep.onChange.calculateFunc, val, data, this.props.arrayIndex, this.props.globalData);\n\n if (newValue !== val) {\n ConfigGeneric.setValue(data, dep.attr, newValue);\n changed.push(dep.attr);\n }\n }\n }\n }\n\n if (this.props.schema.hiddenDependsOn) {\n for (let z = 0; z < this.props.schema.hiddenDependsOn.length; z++) {\n const dep = this.props.schema.hiddenDependsOn[z];\n dep.hidden && changed.push(dep.attr);\n }\n }\n\n if (this.props.schema.labelDependsOn) {\n for (let z = 0; z < this.props.schema.labelDependsOn.length; z++) {\n const dep = this.props.schema.labelDependsOn[z];\n dep.hidden && changed.push(dep.attr);\n }\n }\n\n if (this.props.schema.helpDependsOn) {\n for (let z = 0; z < this.props.schema.helpDependsOn.length; z++) {\n const dep = this.props.schema.helpDependsOn[z];\n dep.hidden && changed.push(dep.attr);\n }\n }\n\n if (this.props.schema.onChange && !this.props.schema.onChange.ignoreOwnChanges) {\n const val = ConfigGeneric.getValue(data, this.props.attr);\n\n const newValue = this.props.custom ?\n this.executeCustom(this.props.schema.onChange.calculateFunc, data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData)\n :\n this.execute(this.props.schema.onChange.calculateFunc, val, data, this.props.arrayIndex, this.props.globalData);\n if (newValue !== val) {\n ConfigGeneric.setValue(data, this.props.attr, newValue);\n }\n }\n\n if (this.props.custom) {\n this.props.onChange(attr, newValue);\n\n changed && changed.length && changed.forEach((_attr, i) =>\n setTimeout(() => this.props.onChange(_attr, ConfigGeneric.getValue(data, attr)), i * 50));\n } else {\n this.props.onChange(data, undefined, () =>\n changed.length && this.props.forceUpdate(changed, data));\n }\n }\n }\n\n execute(func, defaultValue, data, arrayIndex, globalData) {\n if (func && typeof func === 'object') {\n func = func.func;\n }\n\n if (!func) {\n return defaultValue;\n } else {\n try {\n // eslint-disable-next-line no-new-func\n const f = new Function('data', 'originalData', '_system', '_alive', '_common', '_socket', '_instance', 'arrayIndex', 'globalData', func.includes('return') ? func : 'return ' + func);\n const result = f(data || this.props.data, this.props.originalData, this.props.systemConfig, this.props.alive, this.props.common, this.props.socket, this.props.instance, arrayIndex, globalData);\n // console.log(result);\n return result;\n } catch (e) {\n console.error(`Cannot execute ${func}: ${e}`);\n return defaultValue;\n }\n }\n }\n\n executeCustom(func, data, customObj, instanceObj, arrayIndex, globalData) {\n if (func && typeof func === 'object') {\n func = func.func;\n }\n\n if (!func) {\n return null;\n } else {\n try {\n // eslint-disable-next-line no-new-func\n const f = new Function('data', 'originalData', '_system', 'instanceObj', 'customObj', '_socket', 'arrayIndex', 'globalData', func.includes('return') ? func : 'return ' + func);\n const result = f(data || this.props.data, this.props.originalData, this.props.systemConfig, instanceObj, customObj, this.props.socket, arrayIndex, globalData);\n console.log(result);\n return result;\n } catch (e) {\n console.error(`Cannot execute ${func}: ${e}`);\n return null;\n }\n }\n }\n\n calculate(schema) {\n let error;\n let disabled;\n let hidden;\n let defaultValue;\n\n if (this.props.custom) {\n error = schema.validator ? !this.executeCustom(schema.validator, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : false;\n disabled = schema.disabled ? this.executeCustom(schema.disabled, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : false;\n hidden = schema.hidden ? this.executeCustom(schema.hidden, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : false;\n defaultValue = schema.defaultFunc ? this.executeCustom(schema.defaultFunc, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : schema.default;\n } else {\n error = schema.validator ? !this.execute(schema.validator, false, this.props.data, this.props.arrayIndex, this.props.globalData) : false;\n disabled = schema.disabled ? this.execute(schema.disabled, false, this.props.data, this.props.arrayIndex, this.props.globalData) : false;\n hidden = schema.hidden ? this.execute(schema.hidden, false, this.props.data, this.props.arrayIndex, this.props.globalData) : false;\n defaultValue = schema.defaultFunc ? this.execute(schema.defaultFunc, schema.default, this.props.data, this.props.arrayIndex, this.props.globalData) : schema.default;\n }\n\n return { error, disabled, hidden, defaultValue };\n }\n\n onError(attr, error) {\n if (!error) {\n delete this.isError[attr];\n } else {\n this.isError[attr] = error;\n }\n\n this.props.onError && this.props.onError(attr, error);\n }\n\n renderItem(error, disabled, defaultValue) {\n return this.getText(this.props.schema.label) || this.getText(this.props.schema.text)\n }\n\n renderHelp(text, link, noTranslation) {\n if (!link) {\n text = this.getText(text, noTranslation) || '';\n if (text && text.includes('<a ')) {\n return Utils.renderTextWithA(text);\n } else {\n return text;\n }\n } else {\n return <a\n href={link}\n target=\"_blank\"\n rel=\"noreferrer\"\n style={{color: this.props.themeType === 'dark' ? '#eee' : '#111'}}\n >{this.getText(text, noTranslation)}</a>;\n }\n }\n\n getPattern(pattern) {\n if (!pattern) {\n return '';\n } else {\n if (typeof pattern === 'object') {\n pattern = pattern.func;\n }\n\n try {\n if (this.props.custom) {\n // eslint-disable-next-line no-new-func\n const f = new Function('data', 'originalData', '_system', 'instanceObj', 'customObj', '_socket', 'return `' + pattern.replace(/`/g, '\\\\`') + '`');\n const result = f(this.props.data, this.props.originalData, this.props.systemConfig, this.props.instanceObj, this.props.customObj, this.props.socket);\n return result;\n } else {\n // eslint-disable-next-line no-new-func\n const f = new Function('data', 'originalData', '_system', '_alive', '_common', '_socket', 'return `' + pattern.replace(/`/g, '\\\\`') + '`');\n return f(this.props.data, this.props.originalData, this.props.systemConfig, this.props.alive, this.props.common, this.props.socket);\n }\n } catch (e) {\n console.error(`Cannot execute ${pattern}: ${e}`);\n return pattern;\n }\n }\n }\n\n render() {\n const schema = this.props.schema;\n\n if (!schema) {\n return null;\n }\n\n if (this.props.alive && this.defaultSendToDone === false) {\n this.sendToTimeout = setTimeout(() => {this.sendToTimeout = null; this.sendTo();}, 200);\n }\n\n const { error, disabled, hidden, defaultValue } = this.calculate(schema);\n\n if (hidden) {\n // Remove all errors if element is hidden\n if (Object.keys(this.isError).length) {\n setTimeout(isError =>\n Object.keys(isError).forEach(attr => this.props.onError(attr)),\n 100, JSON.parse(JSON.stringify(this.isError)));\n this.isError = {};\n }\n\n if (schema.hideOnlyControl) {\n const item = <Grid\n item\n xs={schema.xs || undefined}\n lg={schema.lg || undefined}\n md={schema.md || undefined}\n sm={schema.sm || undefined}\n style={Object.assign(\n {},\n {marginBottom: 0, /*marginRight: 8, */textAlign: 'left'},\n schema.style,\n this.props.themeType === 'dark' ? schema.darkStyle : {}\n )}\n />;\n\n if (schema.newLine) {\n return <>\n <div style={{flexBasis: '100%', height: 0}} />\n {item}\n </>;\n } else {\n return item;\n }\n } else {\n return null;\n }\n } else {\n // Add error\n if (schema.validatorNoSaveOnError) {\n if (error && !Object.keys(this.isError).length) {\n this.isError = {[this.props.attr]: schema.validatorErrorText ? I18n.t(schema.validatorErrorText) : true};\n setTimeout(isError =>\n Object.keys(isError).forEach(attr => this.props.onError(attr, isError[attr])),\n 100, JSON.parse(JSON.stringify(this.isError)));\n } else if (!error && Object.keys(this.isError).length) {\n setTimeout(isError =>\n Object.keys(isError).forEach(attr => this.props.onError(attr)),\n 100, JSON.parse(JSON.stringify(this.isError)));\n this.isError = {};\n }\n }\n\n const renderedItem = this.renderItem(error, disabled || this.props.commandRunning || this.props.disabled, defaultValue);\n\n const item = <Grid\n item\n title={this.getText(schema.tooltip)}\n xs={schema.xs || undefined}\n lg={schema.lg || undefined}\n md={schema.md || undefined}\n sm={schema.sm || undefined}\n style={Object.assign({}, {\n marginBottom: 0,\n // marginRight: 8,\n textAlign: 'left',\n width: schema.type === 'divider' || schema.type === 'header' ? schema.width || '100%' : undefined\n }, schema.style, this.props.themeType === 'dark' ? schema.darkStyle : {})}>\n { this.props.schema.defaultSendTo && this.props.schema.button ? <Grid container style={{ width: '100%' }}>\n <Grid item flex={1}>{renderedItem}</Grid>\n <Grid item><Button\n variant=\"outlined\"\n onClick={() => this.sendTo()}\n title={this.props.schema.buttonTooltip ? this.getText(this.props.schema.buttonTooltip, this.props.schema.buttonTooltipNoTranslation) : I18n.t('ra_Request data by instance')}\n >{this.getText(this.props.schema.button)}</Button></Grid>\n </Grid>\n :\n renderedItem\n }\n </Grid>;\n\n if (schema.newLine) {\n return <>\n <div style={{flexBasis: '100%', height: 0}} />\n {this.renderConfirmDialog()}\n {item}\n </>;\n } else {\n if (this.state.confirmDialog) {\n return <>\n {this.renderConfirmDialog()}\n {item}\n </>;\n } else {\n return item;\n }\n }\n }\n }\n}\n\nConfigGeneric.propTypes = {\n socket: PropTypes.object.isRequired,\n data: PropTypes.object,\n originalData: PropTypes.object,\n schema: PropTypes.object,\n attr: PropTypes.string,\n value: PropTypes.any,\n themeName: PropTypes.string,\n style: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n customs: PropTypes.object,\n forceUpdate: PropTypes.func.isRequired,\n disabled: PropTypes.bool,\n\n systemConfig: PropTypes.object,\n alive: PropTypes.bool,\n common: PropTypes.object,\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n dateFormat: PropTypes.string,\n isFloatComma: PropTypes.bool,\n\n customObj: PropTypes.object,\n instanceObj: PropTypes.object,\n custom: PropTypes.bool,\n};\n\nexport default ConfigGeneric;\n"],"mappings":"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"}
|
|
@@ -35,10 +35,10 @@ var _FormHelperText = _interopRequireDefault(require("@mui/material/FormHelperTe
|
|
|
35
35
|
|
|
36
36
|
var _FormControl = _interopRequireDefault(require("@mui/material/FormControl"));
|
|
37
37
|
|
|
38
|
-
var _ConfigGeneric2 = _interopRequireDefault(require("./ConfigGeneric"));
|
|
39
|
-
|
|
40
38
|
var _UploadImage = _interopRequireDefault(require("../UploadImage"));
|
|
41
39
|
|
|
40
|
+
var _ConfigGeneric2 = _interopRequireDefault(require("./ConfigGeneric"));
|
|
41
|
+
|
|
42
42
|
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); }; }
|
|
43
43
|
|
|
44
44
|
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; } }
|
|
@@ -120,7 +120,7 @@ var ConfigCertificateSelect = /*#__PURE__*/function (_ConfigGeneric) {
|
|
|
120
120
|
var url = "files/".concat(this.props.adapterName, ".").concat(this.props.instance, "/").concat(this.props.attr, "?t=").concat(this.index);
|
|
121
121
|
|
|
122
122
|
if (window.location.port === '3000') {
|
|
123
|
-
url = window.location.protocol
|
|
123
|
+
url = "".concat(window.location.protocol, "//").concat(window.location.hostname, ":8081/").concat(url);
|
|
124
124
|
}
|
|
125
125
|
|
|
126
126
|
return url;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigImageUpload.js","names":["styles","theme","fullWidth","width","image","ConfigCertificateSelect","props","imageRef","React","createRef","index","Date","now","schema","base64","value","ConfigGeneric","getValue","data","attr","setState","socket","fileExists","adapterName","instance","then","exist","current","src","_getUrl","style","display","update","url","window","location","port","protocol","hostname","error","disabled","defaultValue","classes","getText","label","accept","crop","maxSize","state","undefined","onChange","deleteFile","startsWith","split","writeFile64","t","help","renderHelp","helpLink","noTranslation","propTypes","PropTypes","object","isRequired","themeType","string","themeName","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigImageUpload.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport UploadImage from '../UploadImage';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n image: {\n width: 100\n }\n});\n\nclass ConfigCertificateSelect extends ConfigGeneric {\n constructor(props) {\n super(props);\n this.imageRef = React.createRef();\n this.index = Date.now();\n }\n async componentDidMount() {\n super.componentDidMount();\n\n if (this.props.schema.base64) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value });\n } else {\n this.props.socket.fileExists(this.props.adapterName + '.' + this.props.instance, this.props.attr)\n .then(exist => {\n if (exist && this.imageRef.current) {\n this.imageRef.current.src = this._getUrl();\n this.imageRef.current.style.display = 'block';\n }\n });\n }\n }\n\n _getUrl(update) {\n if (update) {\n this.index = Date.now();\n }\n let url = `files/${this.props.adapterName}.${this.props.instance}/${this.props.attr}?t=${this.index}`;\n if (window.location.port === '3000') {\n url = window.location.protocol + '//' + window.location.hostname + ':8081/' + url;\n }\n\n return url;\n }\n\n renderItem(error, disabled, defaultValue) {\n // eslint-disable-next-line\n return <FormControl className={this.props.classes.fullWidth} variant=\"standard\">\n <InputLabel shrink>{this.getText(this.props.schema.label)}</InputLabel>\n <UploadImage\n error={!!error}\n disabled={disabled}\n accept={this.props.schema.accept}\n crop={this.props.schema.crop}\n maxSize={this.props.schema.maxSize || 256 * 1024}\n icon={this.state.value || undefined}\n removeIconFunc={() => {\n if (this.props.schema.base64) {\n this.setState({ value: null }, () =>\n this.onChange(this.props.attr, this.state.value));\n } else {\n // delete file to /instance/attr\n this.props.socket.deleteFile(this.props.adapterName + '.' + this.props.instance, this.props.attr);\n // update image\n if (this.imageRef.current) {\n this.imageRef.current.style.display = 'none';\n this.imageRef.current.src = '';\n }\n }\n }}\n onChange={base64 => {\n if (this.props.schema.base64) {\n this.setState({ value: base64 }, () =>\n this.onChange(this.props.attr, this.state.value));\n } else {\n if (base64.startsWith('data')) {\n base64 = base64.split(',')[1];\n }\n // upload file to /instance/attr\n this.props.socket.writeFile64(this.props.adapterName + '.' + this.props.instance, this.props.attr, base64)\n .then(() => {\n if (this.imageRef.current) {\n this.imageRef.current.style.display = 'block';\n this.imageRef.current.src = this._getUrl(true);\n }\n });\n }\n }}\n t={this.props.t}\n />\n {this.props.schema.help ? <FormHelperText>{this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}</FormHelperText> : null}\n {this.props.schema.base64 ? null : <img\n src={this._getUrl()}\n ref={this.imageRef}\n className={this.props.classes.image}\n style={{display: 'none'}}\n alt=\"Background\"\n />}\n </FormControl>;\n }\n}\n\nConfigCertificateSelect.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)(ConfigCertificateSelect);"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConfigImageUpload.js","names":["styles","theme","fullWidth","width","image","ConfigCertificateSelect","props","imageRef","React","createRef","index","Date","now","schema","base64","value","ConfigGeneric","getValue","data","attr","setState","socket","fileExists","adapterName","instance","then","exist","current","src","_getUrl","style","display","update","url","window","location","port","protocol","hostname","error","disabled","defaultValue","classes","getText","label","accept","crop","maxSize","state","undefined","onChange","deleteFile","startsWith","split","writeFile64","t","help","renderHelp","helpLink","noTranslation","propTypes","PropTypes","object","isRequired","themeType","string","themeName","className","onError","func","withStyles"],"sources":["JsonConfigComponent/ConfigImageUpload.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\n\nimport UploadImage from '../UploadImage';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n image: {\n width: 100\n }\n});\n\nclass ConfigCertificateSelect extends ConfigGeneric {\n constructor(props) {\n super(props);\n this.imageRef = React.createRef();\n this.index = Date.now();\n }\n async componentDidMount() {\n super.componentDidMount();\n\n if (this.props.schema.base64) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value });\n } else {\n this.props.socket.fileExists(this.props.adapterName + '.' + this.props.instance, this.props.attr)\n .then(exist => {\n if (exist && this.imageRef.current) {\n this.imageRef.current.src = this._getUrl();\n this.imageRef.current.style.display = 'block';\n }\n });\n }\n }\n\n _getUrl(update) {\n if (update) {\n this.index = Date.now();\n }\n let url = `files/${this.props.adapterName}.${this.props.instance}/${this.props.attr}?t=${this.index}`;\n if (window.location.port === '3000') {\n url = `${window.location.protocol}//${window.location.hostname}:8081/${url}`;\n }\n\n return url;\n }\n\n renderItem(error, disabled, defaultValue) {\n // eslint-disable-next-line\n return <FormControl className={this.props.classes.fullWidth} variant=\"standard\">\n <InputLabel shrink>{this.getText(this.props.schema.label)}</InputLabel>\n <UploadImage\n error={!!error}\n disabled={disabled}\n accept={this.props.schema.accept}\n crop={this.props.schema.crop}\n maxSize={this.props.schema.maxSize || 256 * 1024}\n icon={this.state.value || undefined}\n removeIconFunc={() => {\n if (this.props.schema.base64) {\n this.setState({ value: null }, () =>\n this.onChange(this.props.attr, this.state.value));\n } else {\n // delete file to /instance/attr\n this.props.socket.deleteFile(this.props.adapterName + '.' + this.props.instance, this.props.attr);\n // update image\n if (this.imageRef.current) {\n this.imageRef.current.style.display = 'none';\n this.imageRef.current.src = '';\n }\n }\n }}\n onChange={base64 => {\n if (this.props.schema.base64) {\n this.setState({ value: base64 }, () =>\n this.onChange(this.props.attr, this.state.value));\n } else {\n if (base64.startsWith('data')) {\n base64 = base64.split(',')[1];\n }\n // upload file to /instance/attr\n this.props.socket.writeFile64(this.props.adapterName + '.' + this.props.instance, this.props.attr, base64)\n .then(() => {\n if (this.imageRef.current) {\n this.imageRef.current.style.display = 'block';\n this.imageRef.current.src = this._getUrl(true);\n }\n });\n }\n }}\n t={this.props.t}\n />\n {this.props.schema.help ? <FormHelperText>{this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}</FormHelperText> : null}\n {this.props.schema.base64 ? null : <img\n src={this._getUrl()}\n ref={this.imageRef}\n className={this.props.classes.image}\n style={{display: 'none'}}\n alt=\"Background\"\n />}\n </FormControl>;\n }\n}\n\nConfigCertificateSelect.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)(ConfigCertificateSelect);"],"mappings":"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"}
|
|
@@ -157,6 +157,10 @@ var ConfigInstanceSelect = /*#__PURE__*/function (_ConfigGeneric) {
|
|
|
157
157
|
instances = instances.filter(function (instance) {
|
|
158
158
|
return instance && instance.common && instance.common.getHistory;
|
|
159
159
|
});
|
|
160
|
+
} else if (_this2.props.schema.adapter) {
|
|
161
|
+
instances = instances.filter(function (instance) {
|
|
162
|
+
return instance && instance._id.startsWith('system.adapter.' + _this2.props.schema.adapter + '.');
|
|
163
|
+
});
|
|
160
164
|
}
|
|
161
165
|
|
|
162
166
|
selectOptions = instances.map(function (instance) {
|
|
@@ -165,6 +169,15 @@ var ConfigInstanceSelect = /*#__PURE__*/function (_ConfigGeneric) {
|
|
|
165
169
|
label: "".concat(instance.common.name, " [").concat(instance._id.replace(/^system\.adapter\./, ''), "]")
|
|
166
170
|
};
|
|
167
171
|
});
|
|
172
|
+
selectOptions.sort(function (a, b) {
|
|
173
|
+
if (a.value > b.value) {
|
|
174
|
+
return 1;
|
|
175
|
+
} else if (a.value < b.value) {
|
|
176
|
+
return -1;
|
|
177
|
+
} else {
|
|
178
|
+
return 0;
|
|
179
|
+
}
|
|
180
|
+
});
|
|
168
181
|
selectOptions.unshift({
|
|
169
182
|
label: _i18n["default"].t(_ConfigGeneric2["default"].NONE_LABEL),
|
|
170
183
|
value: _ConfigGeneric2["default"].NONE_VALUE
|
|
@@ -182,10 +195,10 @@ var ConfigInstanceSelect = /*#__PURE__*/function (_ConfigGeneric) {
|
|
|
182
195
|
selectOptions: selectOptions
|
|
183
196
|
});
|
|
184
197
|
|
|
185
|
-
_context.next =
|
|
198
|
+
_context.next = 8;
|
|
186
199
|
return _this2.props.socket.subscribeObject("system.adapter.".concat(adapter ? adapter + '.' : '', "*"), _this2.onInstancesUpdate);
|
|
187
200
|
|
|
188
|
-
case
|
|
201
|
+
case 8:
|
|
189
202
|
case "end":
|
|
190
203
|
return _context.stop();
|
|
191
204
|
}
|
|
@@ -235,9 +248,9 @@ var ConfigInstanceSelect = /*#__PURE__*/function (_ConfigGeneric) {
|
|
|
235
248
|
className: this.props.classes.fullWidth,
|
|
236
249
|
key: this.props.attr,
|
|
237
250
|
variant: "standard"
|
|
238
|
-
}, /*#__PURE__*/_react["default"].createElement(_InputLabel["default"], {
|
|
251
|
+
}, this.props.schema.label ? /*#__PURE__*/_react["default"].createElement(_InputLabel["default"], {
|
|
239
252
|
shrink: true
|
|
240
|
-
}, this.getText(this.props.schema.label)), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
|
|
253
|
+
}, this.getText(this.props.schema.label)) : null, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
|
|
241
254
|
variant: "standard",
|
|
242
255
|
error: !!error,
|
|
243
256
|
displayEmpty: true,
|