@iobroker/adapter-react-v5 3.1.24 → 3.1.25

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.
@@ -7,8 +7,14 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports["default"] = void 0;
9
9
 
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
10
12
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
13
 
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
+
12
18
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
19
 
14
20
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -47,6 +53,10 @@ var _Error2 = _interopRequireDefault(require("@mui/icons-material/Error"));
47
53
 
48
54
  var _Info = _interopRequireDefault(require("@mui/icons-material/Info"));
49
55
 
56
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
57
+
58
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
59
+
50
60
  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); }; }
51
61
 
52
62
  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; } }
@@ -64,6 +74,82 @@ var styles = function styles(theme) {
64
74
  };
65
75
  };
66
76
 
77
+ function ip2int(ip) {
78
+ return ip.split('.').reduce(function (ipInt, octet) {
79
+ return (ipInt << 8) + parseInt(octet, 10);
80
+ }, 0) >>> 0;
81
+ } // copied from iobroker.admin/src-rx/src/Utils.js
82
+
83
+
84
+ function findNetworkAddressOfHost(obj, localIp) {
85
+ var _obj$native, _obj$native$hardware;
86
+
87
+ var networkInterfaces = obj === null || obj === void 0 ? void 0 : (_obj$native = obj["native"]) === null || _obj$native === void 0 ? void 0 : (_obj$native$hardware = _obj$native.hardware) === null || _obj$native$hardware === void 0 ? void 0 : _obj$native$hardware.networkInterfaces;
88
+
89
+ if (!networkInterfaces) {
90
+ return null;
91
+ }
92
+
93
+ var hostIp;
94
+ Object.keys(networkInterfaces).forEach(function (inter) {
95
+ return networkInterfaces[inter].forEach(function (ip) {
96
+ if (ip.internal) {
97
+ return;
98
+ } else if (localIp.includes(':') && ip.family !== 'IPv6') {
99
+ return;
100
+ } else if (localIp.includes('.') && !localIp.match(/[^.\d]/) && ip.family !== 'IPv4') {
101
+ return;
102
+ }
103
+
104
+ if (localIp === '127.0.0.0' || localIp === 'localhost' || localIp.match(/[^.\d]/)) {
105
+ // if DNS name
106
+ hostIp = ip.address;
107
+ } else {
108
+ if (ip.family === 'IPv4' && localIp.includes('.') && (ip2int(localIp) & ip2int(ip.netmask)) === (ip2int(ip.address) & ip2int(ip.netmask))) {
109
+ hostIp = ip.address;
110
+ } else {
111
+ hostIp = ip.address;
112
+ }
113
+ }
114
+ });
115
+ });
116
+
117
+ if (!hostIp) {
118
+ Object.keys(networkInterfaces).forEach(function (inter) {
119
+ networkInterfaces[inter].forEach(function (ip) {
120
+ if (ip.internal) {
121
+ return;
122
+ } else if (localIp.includes(':') && ip.family !== 'IPv6') {
123
+ return;
124
+ } else if (localIp.includes('.') && !localIp.match(/[^.\d]/) && ip.family !== 'IPv4') {
125
+ return;
126
+ }
127
+
128
+ if (localIp === '127.0.0.0' || localIp === 'localhost' || localIp.match(/[^.\d]/)) {
129
+ // if DNS name
130
+ hostIp = ip.address;
131
+ } else {
132
+ hostIp = ip.address;
133
+ }
134
+ });
135
+ });
136
+ }
137
+
138
+ if (!hostIp) {
139
+ Object.keys(networkInterfaces).forEach(function (inter) {
140
+ networkInterfaces[inter].forEach(function (ip) {
141
+ if (ip.internal) {
142
+ return;
143
+ }
144
+
145
+ hostIp = ip.address;
146
+ });
147
+ });
148
+ }
149
+
150
+ return hostIp;
151
+ }
152
+
67
153
  var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
68
154
  (0, _inherits2["default"])(ConfigSendto, _ConfigGeneric);
69
155
 
@@ -76,13 +162,72 @@ var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
76
162
 
77
163
  (0, _createClass2["default"])(ConfigSendto, [{
78
164
  key: "componentDidMount",
79
- value: function componentDidMount() {
80
- (0, _get2["default"])((0, _getPrototypeOf2["default"])(ConfigSendto.prototype), "componentDidMount", this).call(this);
81
- this.setState({
82
- _error: '',
83
- _message: ''
84
- });
85
- }
165
+ value: function () {
166
+ var _componentDidMount = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
167
+ var hostname, adminInstance, instanceObj, hostObj, ip;
168
+ return _regenerator["default"].wrap(function _callee$(_context) {
169
+ while (1) {
170
+ switch (_context.prev = _context.next) {
171
+ case 0:
172
+ (0, _get2["default"])((0, _getPrototypeOf2["default"])(ConfigSendto.prototype), "componentDidMount", this).call(this);
173
+ hostname = window.location.hostname;
174
+
175
+ if (!this.props.schema.openUrl) {
176
+ _context.next = 19;
177
+ break;
178
+ }
179
+
180
+ _context.next = 5;
181
+ return this.props.socket.getCurrentInstance();
182
+
183
+ case 5:
184
+ adminInstance = _context.sent;
185
+ _context.next = 8;
186
+ return this.props.socket.getObject("system.adapter.".concat(adminInstance));
187
+
188
+ case 8:
189
+ instanceObj = _context.sent;
190
+ _context.next = 11;
191
+ return this.props.socket.getObject("system.host.".concat(instanceObj.common.host));
192
+
193
+ case 11:
194
+ hostObj = _context.sent;
195
+ ip = findNetworkAddressOfHost(hostObj, window.location.hostname);
196
+
197
+ if (!ip) {
198
+ _context.next = 17;
199
+ break;
200
+ }
201
+
202
+ hostname = ip + ':' + window.location.port;
203
+ _context.next = 19;
204
+ break;
205
+
206
+ case 17:
207
+ console.warn("Cannot find suitable IP in host ".concat(instanceObj.common.host, " for ").concat(instanceObj._id));
208
+ return _context.abrupt("return", null);
209
+
210
+ case 19:
211
+ this.setState({
212
+ _error: '',
213
+ _message: '',
214
+ hostname: hostname
215
+ });
216
+
217
+ case 20:
218
+ case "end":
219
+ return _context.stop();
220
+ }
221
+ }
222
+ }, _callee, this);
223
+ }));
224
+
225
+ function componentDidMount() {
226
+ return _componentDidMount.apply(this, arguments);
227
+ }
228
+
229
+ return componentDidMount;
230
+ }()
86
231
  }, {
87
232
  key: "renderErrorDialog",
88
233
  value: function renderErrorDialog() {
@@ -127,10 +272,15 @@ var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
127
272
  var _this3 = this;
128
273
 
129
274
  this.props.onCommandRunning(true);
275
+
276
+ var _origin = "".concat(window.location.protocol, "//").concat(this.state.hostname).concat(window.location.pathname.replace(/\/index\.html$/, ''));
277
+
130
278
  var data = this.props.schema.data;
131
279
 
132
280
  if (data === undefined && this.props.schema.jsonData) {
133
- data = this.getPattern(this.props.schema.jsonData, {}, this.props.data);
281
+ data = this.getPattern(this.props.schema.jsonData, {}, _objectSpread({
282
+ _origin: _origin
283
+ }, this.props.data));
134
284
 
135
285
  try {
136
286
  data = JSON.parse(data);
@@ -143,6 +293,12 @@ var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
143
293
  data = null;
144
294
  }
145
295
 
296
+ if (this.props.schema.openUrl && !data) {
297
+ data = {
298
+ _origin: "".concat(window.location.protocol, "//").concat(this.state.hostname).concat(window.location.pathname.replace(/\/index\.html$/, ''))
299
+ };
300
+ }
301
+
146
302
  this.props.socket.sendTo("".concat(this.props.adapterName, ".").concat(this.props.instance), this.props.schema.command || 'send', data).then(function (response) {
147
303
  if (response !== null && response !== void 0 && response.error) {
148
304
  if (_this3.props.schema.error && _this3.props.schema.error[response.error]) {
@@ -163,7 +319,9 @@ var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
163
319
  });
164
320
  }
165
321
  } else {
166
- if (response !== null && response !== void 0 && response.result && _this3.props.schema.result && _this3.props.schema.result[response.result]) {
322
+ if (response !== null && response !== void 0 && response.openUrl && _this3.props.schema.openUrl) {
323
+ window.open(response.openUrl, response.window || _this3.props.schema.window || '_blank');
324
+ } else if (response !== null && response !== void 0 && response.result && _this3.props.schema.result && _this3.props.schema.result[response.result]) {
167
325
  var text = _this3.getText(_this3.props.schema.result[response.result]);
168
326
 
169
327
  if (response.args) {
@@ -180,6 +338,10 @@ var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
180
338
  window.alert(_i18n["default"].t('ra_Ok'));
181
339
  }
182
340
  }
341
+
342
+ if (response !== null && response !== void 0 && response.saveConfig) {
343
+ _this3.props.onChange(null, null, null, true);
344
+ }
183
345
  }
184
346
  })["catch"](function (e) {
185
347
  if (_this3.props.schema.error && _this3.props.schema.error[e.toString()]) {
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigSendto.js","names":["styles","theme","fullWidth","width","icon","height","marginRight","ConfigSendto","setState","_error","_message","state","undefined","props","onCommandRunning","data","schema","jsonData","getPattern","JSON","parse","e","console","error","socket","sendTo","adapterName","instance","command","then","response","getText","args","forEach","arg","replace","I18n","t","result","text","window","alert","stringify","toString","confirmDialog","confirm","confirmData","type","title","ok","cancel","isOk","_onClick","disabled","defaultValue","classes","variant","color","label","noTranslation","renderErrorDialog","renderMessageDialog","ConfigGeneric","propTypes","PropTypes","object","isRequired","themeType","string","themeName","style","className","onError","func","onChange","number","commandRunning","bool","withStyles"],"sources":["JsonConfigComponent/ConfigSendto.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport Button from '@mui/material/Button';\n\nimport I18n from '../../i18n';\nimport Icon from '../Icon';\nimport DialogError from '../../Dialogs/Error';\nimport DialogMessage from '../../Dialogs/Message';\nimport ConfirmDialog from '../../Dialogs/Confirm';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport IconWarning from '@mui/icons-material/Warning';\nimport IconError from '@mui/icons-material/Error';\nimport IconInfo from '@mui/icons-material/Info';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n icon: {\n width: 24,\n height: 24,\n marginRight: 4\n }\n});\n\nclass ConfigSendto extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n\n this.setState( {_error: '', _message: ''});\n }\n\n renderErrorDialog() {\n if (this.state._error) {\n return <DialogError text={this.state._error} classes={undefined} onClose={() => this.setState({_error: ''})} />;\n } else {\n return null;\n }\n }\n\n renderMessageDialog() {\n if (this.state._message) {\n return <DialogMessage text={this.state._message} classes={undefined} onClose={() => this.setState({_error: ''})} />;\n } else {\n return null;\n }\n }\n\n _onClick() {\n this.props.onCommandRunning(true);\n\n let data = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n data = this.getPattern(this.props.schema.jsonData, {}, this.props.data);\n try {\n data = JSON.parse(data);\n } catch (e) {\n console.error('Cannot parse json data: ' + data);\n }\n }\n if (data === undefined) {\n data = null;\n }\n\n this.props.socket.sendTo(\n `${this.props.adapterName}.${this.props.instance}`,\n this.props.schema.command || 'send',\n data\n )\n .then(response => {\n if (response?.error) {\n if (this.props.schema.error && this.props.schema.error[response.error]) {\n let error = this.getText(this.props.schema.error[response.error]);\n if (response.args) {\n response.args.forEach(arg => error = error.replace('%s', arg));\n }\n this.setState({_error: error});\n } else {\n this.setState({_error: response.error ? I18n.t(response.error) : I18n.t('ra_Error')});\n }\n } else {\n if (response?.result && this.props.schema.result && this.props.schema.result[response.result]) {\n let text = this.getText(this.props.schema.result[response.result]);\n if (response.args) {\n response.args.forEach(arg => text = text.replace('%s', arg));\n }\n window.alert(text);\n } else {\n if (response?.result) {\n window.alert(typeof response.result === 'object' ? JSON.stringify(response.result) : response.result);\n } else {\n window.alert(I18n.t('ra_Ok'));\n }\n }\n }\n })\n .catch(e => {\n if (this.props.schema.error && this.props.schema.error[e.toString()]) {\n this.setState({_error: this.getText(this.props.schema.error[e.toString()])});\n } else {\n this.setState({_error: I18n.t(e.toString()) || I18n.t('ra_Error')});\n }\n })\n .then(() => this.props.onCommandRunning(false))\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 isOk && this._onClick())\n }\n />;\n }\n\n renderItem(error, disabled, defaultValue) {\n return <div className={this.props.classes.fullWidth}>\n <Button\n variant={this.props.schema.variant || undefined}\n color={this.props.schema.color || 'grey'}\n className={this.props.classes.fullWidth}\n disabled={disabled}\n onClick={() => {\n if (this.props.schema.confirm) {\n this.setState({confirmDialog: true});\n } else {\n this._onClick();\n }\n }}\n >\n {this.props.schema.icon ? <Icon src={this.props.schema.icon} className={this.props.classes.icon}/> : null}\n {this.getText(this.props.schema.label, this.props.schema.noTranslation)}\n </Button>\n {this.renderErrorDialog()}\n {this.renderMessageDialog()}\n </div>;\n }\n}\n\nConfigSendto.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 adapterName: PropTypes.string,\n instance: PropTypes.number,\n commandRunning: PropTypes.bool,\n onCommandRunning: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigSendto);"],"mappings":"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"}
1
+ {"version":3,"file":"ConfigSendto.js","names":["styles","theme","fullWidth","width","icon","height","marginRight","ip2int","ip","split","reduce","ipInt","octet","parseInt","findNetworkAddressOfHost","obj","localIp","networkInterfaces","hardware","hostIp","Object","keys","forEach","inter","internal","includes","family","match","address","netmask","ConfigSendto","hostname","window","location","props","schema","openUrl","socket","getCurrentInstance","adminInstance","getObject","instanceObj","common","host","hostObj","port","console","warn","_id","setState","_error","_message","state","undefined","onCommandRunning","_origin","protocol","pathname","replace","data","jsonData","getPattern","JSON","parse","e","error","sendTo","adapterName","instance","command","then","response","getText","args","arg","I18n","t","open","result","text","alert","stringify","saveConfig","onChange","toString","confirmDialog","confirm","confirmData","type","title","ok","cancel","isOk","_onClick","disabled","defaultValue","classes","variant","color","label","noTranslation","renderErrorDialog","renderMessageDialog","ConfigGeneric","propTypes","PropTypes","object","isRequired","themeType","string","themeName","style","className","onError","func","number","commandRunning","bool","withStyles"],"sources":["JsonConfigComponent/ConfigSendto.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport Button from '@mui/material/Button';\n\nimport I18n from '../../i18n';\nimport Icon from '../Icon';\nimport DialogError from '../../Dialogs/Error';\nimport DialogMessage from '../../Dialogs/Message';\nimport ConfirmDialog from '../../Dialogs/Confirm';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport IconWarning from '@mui/icons-material/Warning';\nimport IconError from '@mui/icons-material/Error';\nimport IconInfo from '@mui/icons-material/Info';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n icon: {\n width: 24,\n height: 24,\n marginRight: 4\n }\n});\n\nfunction ip2int(ip) {\n return ip.split('.').reduce((ipInt, octet) => (ipInt << 8) + parseInt(octet, 10), 0) >>> 0;\n}\n\n// copied from iobroker.admin/src-rx/src/Utils.js\nfunction findNetworkAddressOfHost(obj, localIp) {\n const networkInterfaces = obj?.native?.hardware?.networkInterfaces;\n if (!networkInterfaces) {\n return null;\n }\n\n let hostIp;\n Object.keys(networkInterfaces).forEach(inter =>\n networkInterfaces[inter].forEach(ip => {\n if (ip.internal) {\n return;\n } else if (localIp.includes(':') && ip.family !== 'IPv6') {\n return;\n } else if (localIp.includes('.') && !localIp.match(/[^.\\d]/) && ip.family !== 'IPv4') {\n return;\n }\n if (localIp === '127.0.0.0' || localIp === 'localhost' || localIp.match(/[^.\\d]/)) { // if DNS name\n hostIp = ip.address;\n } else {\n if (ip.family === 'IPv4' && localIp.includes('.') &&\n (ip2int(localIp) & ip2int(ip.netmask)) === (ip2int(ip.address) & ip2int(ip.netmask))) {\n hostIp = ip.address;\n } else {\n hostIp = ip.address;\n }\n }\n }));\n\n if (!hostIp) {\n Object.keys(networkInterfaces).forEach(inter => {\n networkInterfaces[inter].forEach(ip => {\n if (ip.internal) {\n return;\n } else if (localIp.includes(':') && ip.family !== 'IPv6') {\n return;\n } else if (localIp.includes('.') && !localIp.match(/[^.\\d]/) && ip.family !== 'IPv4') {\n return;\n }\n if (localIp === '127.0.0.0' || localIp === 'localhost' || localIp.match(/[^.\\d]/)) { // if DNS name\n hostIp = ip.address;\n } else {\n hostIp = ip.address;\n }\n });\n });\n }\n\n if (!hostIp) {\n Object.keys(networkInterfaces).forEach(inter => {\n networkInterfaces[inter].forEach(ip => {\n if (ip.internal) {\n return;\n }\n hostIp = ip.address;\n });\n });\n }\n\n return hostIp;\n}\n\n\nclass ConfigSendto extends ConfigGeneric {\n async componentDidMount() {\n super.componentDidMount();\n\n let hostname = window.location.hostname;\n if (this.props.schema.openUrl) {\n // read admin host\n const adminInstance = await this.props.socket.getCurrentInstance();\n const instanceObj = await this.props.socket.getObject(`system.adapter.${adminInstance}`);\n const hostObj = await this.props.socket.getObject(`system.host.${instanceObj.common.host}`);\n\n const ip = findNetworkAddressOfHost(hostObj, window.location.hostname);\n if (ip) {\n hostname = ip + ':' + window.location.port;\n } else {\n console.warn(`Cannot find suitable IP in host ${instanceObj.common.host} for ${instanceObj._id}`);\n return null;\n }\n }\n this.setState( { _error: '', _message: '', hostname });\n }\n\n renderErrorDialog() {\n if (this.state._error) {\n return <DialogError text={this.state._error} classes={undefined} onClose={() => this.setState({_error: ''})} />;\n } else {\n return null;\n }\n }\n\n renderMessageDialog() {\n if (this.state._message) {\n return <DialogMessage text={this.state._message} classes={undefined} onClose={() => this.setState({_error: ''})} />;\n } else {\n return null;\n }\n }\n\n _onClick() {\n this.props.onCommandRunning(true);\n\n const _origin = `${window.location.protocol}//${this.state.hostname}${window.location.pathname.replace(/\\/index\\.html$/, '')}`\n\n let data = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n data = this.getPattern(this.props.schema.jsonData, {}, {\n _origin,\n ...this.props.data\n });\n try {\n data = JSON.parse(data);\n } catch (e) {\n console.error('Cannot parse json data: ' + data);\n }\n }\n if (data === undefined) {\n data = null;\n }\n if (this.props.schema.openUrl && !data) {\n data = { _origin: `${window.location.protocol}//${this.state.hostname}${window.location.pathname.replace(/\\/index\\.html$/, '')}` };\n }\n\n this.props.socket.sendTo(\n `${this.props.adapterName}.${this.props.instance}`,\n this.props.schema.command || 'send',\n data\n )\n .then(response => {\n if (response?.error) {\n if (this.props.schema.error && this.props.schema.error[response.error]) {\n let error = this.getText(this.props.schema.error[response.error]);\n if (response.args) {\n response.args.forEach(arg => error = error.replace('%s', arg));\n }\n this.setState({_error: error});\n } else {\n this.setState({_error: response.error ? I18n.t(response.error) : I18n.t('ra_Error')});\n }\n } else {\n if (response?.openUrl && this.props.schema.openUrl) {\n window.open(response.openUrl, response.window || this.props.schema.window || '_blank');\n } else\n if (response?.result && this.props.schema.result && this.props.schema.result[response.result]) {\n let text = this.getText(this.props.schema.result[response.result]);\n if (response.args) {\n response.args.forEach(arg => text = text.replace('%s', arg));\n }\n window.alert(text);\n } else {\n if (response?.result) {\n window.alert(typeof response.result === 'object' ? JSON.stringify(response.result) : response.result);\n } else {\n window.alert(I18n.t('ra_Ok'));\n }\n }\n\n if (response?.saveConfig) {\n this.props.onChange(null, null, null, true);\n }\n }\n })\n .catch(e => {\n if (this.props.schema.error && this.props.schema.error[e.toString()]) {\n this.setState({_error: this.getText(this.props.schema.error[e.toString()])});\n } else {\n this.setState({_error: I18n.t(e.toString()) || I18n.t('ra_Error')});\n }\n })\n .then(() => this.props.onCommandRunning(false))\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 isOk && this._onClick())\n }\n />;\n }\n\n renderItem(error, disabled, defaultValue) {\n return <div className={this.props.classes.fullWidth}>\n <Button\n variant={this.props.schema.variant || undefined}\n color={this.props.schema.color || 'grey'}\n className={this.props.classes.fullWidth}\n disabled={disabled}\n onClick={() => {\n if (this.props.schema.confirm) {\n this.setState({confirmDialog: true});\n } else {\n this._onClick();\n }\n }}\n >\n {this.props.schema.icon ? <Icon src={this.props.schema.icon} className={this.props.classes.icon}/> : null}\n {this.getText(this.props.schema.label, this.props.schema.noTranslation)}\n </Button>\n {this.renderErrorDialog()}\n {this.renderMessageDialog()}\n </div>;\n }\n}\n\nConfigSendto.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 adapterName: PropTypes.string,\n instance: PropTypes.number,\n commandRunning: PropTypes.bool,\n onCommandRunning: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigSendto);"],"mappings":"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"}
@@ -82,29 +82,33 @@ var JsonConfigComponent = /*#__PURE__*/function (_Component) {
82
82
  });
83
83
  }
84
84
  });
85
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChange", function (data, value, cb) {
85
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChange", function (data, value, cb, saveConfig) {
86
86
  if (_this.props.onValueChange) {
87
- _this.props.onValueChange(data, value);
87
+ _this.props.onValueChange(data, value, saveConfig);
88
88
 
89
89
  cb && cb();
90
90
  } else {
91
- var state = {
92
- data: data
93
- };
94
- var _data = {}; // remove all attributes starting with "_"
91
+ if (data) {
92
+ var state = {
93
+ data: data
94
+ };
95
+ var _data = {}; // remove all attributes starting with "_"
96
+
97
+ Object.keys(data).forEach(function (attr) {
98
+ return !attr.startsWith('_') && (_data[attr] = data[attr]);
99
+ });
100
+ state.changed = JSON.stringify(_data) !== _this.state.originalData;
95
101
 
96
- Object.keys(data).forEach(function (attr) {
97
- return !attr.startsWith('_') && (_data[attr] = data[attr]);
98
- });
99
- state.changed = JSON.stringify(_data) !== _this.state.originalData;
102
+ _this.setState({
103
+ state: state
104
+ }, function () {
105
+ _this.props.onChange(_data, state.changed, saveConfig);
100
106
 
101
- _this.setState({
102
- state: state
103
- }, function () {
104
- _this.props.onChange(_data, state.changed);
105
-
106
- cb && cb();
107
- });
107
+ cb && cb();
108
+ });
109
+ } else if (saveConfig) {
110
+ _this.props.onChange(null, null, saveConfig);
111
+ }
108
112
  }
109
113
  });
110
114
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onError", function (attr, error) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["styles","theme","root","width","height","JsonConfigComponent","props","commandRunning","setState","id","state","val","alive","data","value","cb","onValueChange","_data","Object","keys","forEach","attr","startsWith","changed","JSON","stringify","originalData","onChange","error","errors","parse","onError","length","forceUpdate","Array","isArray","a","forceUpdateHandlers","updateData","systemConfig","schema","buildDependencies","readData","custom","common","Promise","resolve","socket","getObject","adapterName","instance","then","obj","readSettings","getCompactSystemConfig","getState","subscribeState","onAlive","_list","items","flatten","attrs","confirm","alsoDependsOn","dep","console","warn","replace","confirmDependsOn","depObj","cancel","push","onChangeDependsOn","hidden","hiddenDependsOn","label","labelDependsOn","help","helpDependsOn","item","type","onCommandRunning","themeType","themeName","customs","dateFormat","isFloatComma","multiEdit","imagePrefix","customObj","instanceObj","changeLanguage","forceAttrUpdate","registerOnForceUpdate","classes","renderItem","i18n","lang","I18n","getLanguage","path","fileExists","exists","fileName","readFile","json","file","undefined","extendTranslations","e","Component","propTypes","PropTypes","object","isRequired","string","number","bool","style","className","func","withStyles"],"sources":["JsonConfigComponent/index.jsx"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport LinearProgress from '@mui/material/LinearProgress';\n\nimport I18n from '../../i18n';\n\nimport ConfigTabs from './ConfigTabs';\nimport ConfigPanel from './ConfigPanel';\n\nconst styles = theme => ({\n root: {\n width: '100%',\n height: '100%'\n }\n});\n\nclass JsonConfigComponent extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n originalData: JSON.stringify(this.props.data),\n changed: false,\n errors: {\n\n },\n updateData: this.props.updateData,\n systemConfig: null,\n alive: false,\n commandRunning: false,\n schema: JSON.parse(JSON.stringify(this.props.schema))\n };\n\n this.forceUpdateHandlers = {};\n\n this.buildDependencies(this.state.schema);\n\n this.readData();\n }\n\n static getDerivedStateFromProps(props, state) {\n if (props.updateData !== state.updateData) {\n return {\n updateData: props.updateData,\n originalData: JSON.stringify(props.data),\n schema: JSON.parse(JSON.stringify(props.schema)),\n };\n } else {\n return null;\n }\n }\n\n static loadI18n(socket, i18n, adapterName) {\n if (i18n === true || (i18n && typeof i18n === 'string')) {\n const lang = I18n.getLanguage();\n const path = typeof i18n === 'string' ? i18n : 'i18n';\n return socket.fileExists(adapterName + '.admin', `${path}/${lang}.json`)\n .then(exists => {\n if (exists) {\n return `${path}/${lang}.json`;\n } else {\n return socket.fileExists(adapterName + '.admin', `${path}/${lang}/translations.json`)\n .then(exists =>\n exists ? `${path}/${lang}/translations.json` : '')\n }\n })\n .then(fileName => {\n if (fileName) {\n return socket.readFile(adapterName + '.admin', fileName)\n .then(json => {\n if (json.file !== undefined) {\n json = json.file;\n }\n try {\n json = JSON.parse(json);\n // apply file to I18n\n I18n.extendTranslations(json, lang);\n } catch (e) {\n console.error(`Cannot parse language file \"${adapterName}.admin/${fileName}: ${e}`);\n }\n })\n } else {\n console.warn(`Cannot find i18n for ${adapterName} / ${fileName}`);\n return Promise.resolve();\n }\n });\n } else if (i18n && typeof i18n === 'object') {\n I18n.extendTranslations(i18n);\n return Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n\n onCommandRunning = commandRunning => this.setState( {commandRunning});\n\n readSettings() {\n if ((this.props.custom || this.props.common) && this.props.data) {\n return Promise.resolve();\n } else {\n return this.props.socket.getObject(`system.adapter.${this.props.adapterName}.${this.props.instance}`)\n .then(obj => this.setState({common: obj.common, data: this.props.data || obj.native}));\n }\n }\n\n readData() {\n this.readSettings()\n .then(() => this.props.socket.getCompactSystemConfig())\n .then(systemConfig =>\n this.props.socket.getState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`)\n .then(state => {\n if (this.props.custom) {\n this.setState({systemConfig: systemConfig.common, alive: !!(state && state.val)});\n } else {\n this.setState({systemConfig: systemConfig.common, alive: !!(state && state.val)}, () =>\n this.props.socket.subscribeState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`, this.onAlive));\n }\n }));\n }\n\n onAlive = (id, state) => {\n if ((state?.val || false) !== this.state.alive) {\n this.setState({alive: state?.val || false});\n }\n }\n\n onChange = (data, value, cb) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(data, value);\n cb && cb();\n } else {\n const state = {data};\n\n const _data = {};\n // remove all attributes starting with \"_\"\n Object.keys(data).forEach(attr => !attr.startsWith('_') && (_data[attr] = data[attr]));\n\n state.changed = JSON.stringify(_data) !== this.state.originalData;\n\n this.setState({state}, () => {\n this.props.onChange(_data, state.changed);\n cb && cb();\n });\n }\n }\n\n onError = (attr, error) => {\n const errors = JSON.parse(JSON.stringify(this.state.errors));\n if (error) {\n errors[attr] = error;\n } else {\n delete errors[attr];\n }\n\n if (JSON.stringify(errors) !== JSON.parse(JSON.stringify(this.state.errors))) {\n this.setState({errors}, () =>\n this.props.onError(!!Object.keys(this.state.errors).length));\n }\n }\n\n flatten(schema, _list) {\n _list = _list || {};\n if (schema.items) {\n Object.keys(schema.items).forEach(attr => {\n _list[attr] = schema.items[attr];\n this.flatten(schema.items[attr], _list);\n });\n }\n\n return _list;\n }\n\n buildDependencies(schema) {\n const attrs = this.flatten(schema);\n Object.keys(attrs).forEach(attr => {\n if (attrs[attr].confirm?.alsoDependsOn) {\n attrs[attr].confirm?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].confirmDependsOn = attrs[dep].confirmDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n if (depObj.confirm) {\n depObj.confirm.cancel = 'Undo';\n }\n\n attrs[dep].confirmDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].onChange?.alsoDependsOn) {\n attrs[attr].onChange?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].onChangeDependsOn = attrs[dep].onChangeDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].onChangeDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].hidden?.alsoDependsOn) {\n attrs[attr].hidden?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].hiddenDependsOn = attrs[dep].hiddenDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].hiddenDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].label?.alsoDependsOn) {\n attrs[attr].label?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].labelDependsOn = attrs[dep].labelDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].labelDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].help?.alsoDependsOn) {\n attrs[attr].help?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].helpDependsOn = attrs[dep].helpDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].helpDependsOn.push(depObj);\n }\n });\n }\n });\n }\n\n renderItem(item) {\n if (item.type === 'tabs') {\n return <ConfigTabs\n onCommandRunning={this.onCommandRunning}\n commandRunning={this.state.commandRunning}\n socket={this.props.socket}\n adapterName={this.props.adapterName}\n instance={this.props.instance}\n common={this.props.common}\n alive={this.state.alive}\n themeType={this.props.themeType}\n themeName={this.props.themeName}\n data={this.props.data}\n originalData={JSON.parse(this.state.originalData)}\n schema={item}\n systemConfig={this.state.systemConfig}\n customs={this.props.customs}\n dateFormat={this.props.dateFormat}\n isFloatComma={this.props.isFloatComma}\n multiEdit={this.props.multiEdit}\n imagePrefix={this.props.imagePrefix}\n\n custom={this.props.custom}\n customObj={this.props.customObj}\n instanceObj={this.props.instanceObj}\n\n changeLanguage={this.changeLanguage}\n forceUpdate={this.forceAttrUpdate}\n registerOnForceUpdate={this.registerOnForceUpdate}\n\n onChange={this.onChange}\n onError={(attr, error) => this.onError(attr, error)}\n />;\n } else if (item.type === 'panel' || !item.type) {\n return <ConfigPanel\n index={1000}\n isParentTab={true}\n onCommandRunning={this.onCommandRunning}\n commandRunning={this.state.commandRunning}\n socket={this.props.socket}\n adapterName={this.props.adapterName}\n instance={this.props.instance}\n common={this.props.common}\n alive={this.state.alive}\n themeType={this.props.themeType}\n themeName={this.props.themeName}\n data={this.props.data}\n originalData={JSON.parse(this.state.originalData)}\n schema={item}\n systemConfig={this.state.systemConfig}\n customs={this.props.customs}\n dateFormat={this.props.dateFormat}\n isFloatComma={this.props.isFloatComma}\n multiEdit={this.props.multiEdit}\n imagePrefix={this.props.imagePrefix}\n\n custom={this.props.custom}\n customObj={this.props.customObj}\n instanceObj={this.props.instanceObj}\n\n changeLanguage={this.changeLanguage}\n forceUpdate={this.forceAttrUpdate}\n registerOnForceUpdate={this.registerOnForceUpdate}\n\n onChange={this.onChange}\n onError={(attr, error) => this.onError(attr, error)}\n />;\n }\n }\n\n changeLanguage = () => {\n this.forceUpdate();\n }\n\n forceAttrUpdate = (attr, data) => {\n if (Array.isArray(attr)) {\n attr.forEach(a =>\n this.forceUpdateHandlers[a] && this.forceUpdateHandlers[a](data));\n } else {\n if (this.forceUpdateHandlers[attr]) {\n this.forceUpdateHandlers[attr](data);\n }\n }\n }\n\n registerOnForceUpdate = (attr, cb) => {\n if (cb) {\n this.forceUpdateHandlers[attr] = cb;\n } else if (this.forceUpdateHandlers[attr]) {\n delete this.forceUpdateHandlers[attr];\n }\n }\n\n render() {\n if (!this.state.systemConfig) {\n return <LinearProgress />;\n }\n\n return <div className={this.props.classes.root}>\n {this.renderItem(this.state.schema)}\n </div>;\n }\n}\n\nJsonConfigComponent.propTypes = {\n socket: PropTypes.object.isRequired,\n\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n common: PropTypes.object,\n customs: PropTypes.object, // custom components\n\n custom: PropTypes.bool, // is the customs settings must be shown\n customObj: PropTypes.object,\n multiEdit: PropTypes.bool, // set if user edits more than one object simultaneously\n instanceObj: PropTypes.object,\n dateFormat: PropTypes.string,\n isFloatComma: PropTypes.bool,\n imagePrefix: PropTypes.string,\n\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n updateData: PropTypes.number,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n onValueChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(JsonConfigComponent);"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["styles","theme","root","width","height","JsonConfigComponent","props","commandRunning","setState","id","state","val","alive","data","value","cb","saveConfig","onValueChange","_data","Object","keys","forEach","attr","startsWith","changed","JSON","stringify","originalData","onChange","error","errors","parse","onError","length","forceUpdate","Array","isArray","a","forceUpdateHandlers","updateData","systemConfig","schema","buildDependencies","readData","custom","common","Promise","resolve","socket","getObject","adapterName","instance","then","obj","readSettings","getCompactSystemConfig","getState","subscribeState","onAlive","_list","items","flatten","attrs","confirm","alsoDependsOn","dep","console","warn","replace","confirmDependsOn","depObj","cancel","push","onChangeDependsOn","hidden","hiddenDependsOn","label","labelDependsOn","help","helpDependsOn","item","type","onCommandRunning","themeType","themeName","customs","dateFormat","isFloatComma","multiEdit","imagePrefix","customObj","instanceObj","changeLanguage","forceAttrUpdate","registerOnForceUpdate","classes","renderItem","i18n","lang","I18n","getLanguage","path","fileExists","exists","fileName","readFile","json","file","undefined","extendTranslations","e","Component","propTypes","PropTypes","object","isRequired","string","number","bool","style","className","func","withStyles"],"sources":["JsonConfigComponent/index.jsx"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport LinearProgress from '@mui/material/LinearProgress';\n\nimport I18n from '../../i18n';\n\nimport ConfigTabs from './ConfigTabs';\nimport ConfigPanel from './ConfigPanel';\n\nconst styles = theme => ({\n root: {\n width: '100%',\n height: '100%'\n }\n});\n\nclass JsonConfigComponent extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n originalData: JSON.stringify(this.props.data),\n changed: false,\n errors: {\n\n },\n updateData: this.props.updateData,\n systemConfig: null,\n alive: false,\n commandRunning: false,\n schema: JSON.parse(JSON.stringify(this.props.schema))\n };\n\n this.forceUpdateHandlers = {};\n\n this.buildDependencies(this.state.schema);\n\n this.readData();\n }\n\n static getDerivedStateFromProps(props, state) {\n if (props.updateData !== state.updateData) {\n return {\n updateData: props.updateData,\n originalData: JSON.stringify(props.data),\n schema: JSON.parse(JSON.stringify(props.schema)),\n };\n } else {\n return null;\n }\n }\n\n static loadI18n(socket, i18n, adapterName) {\n if (i18n === true || (i18n && typeof i18n === 'string')) {\n const lang = I18n.getLanguage();\n const path = typeof i18n === 'string' ? i18n : 'i18n';\n return socket.fileExists(adapterName + '.admin', `${path}/${lang}.json`)\n .then(exists => {\n if (exists) {\n return `${path}/${lang}.json`;\n } else {\n return socket.fileExists(adapterName + '.admin', `${path}/${lang}/translations.json`)\n .then(exists =>\n exists ? `${path}/${lang}/translations.json` : '')\n }\n })\n .then(fileName => {\n if (fileName) {\n return socket.readFile(adapterName + '.admin', fileName)\n .then(json => {\n if (json.file !== undefined) {\n json = json.file;\n }\n try {\n json = JSON.parse(json);\n // apply file to I18n\n I18n.extendTranslations(json, lang);\n } catch (e) {\n console.error(`Cannot parse language file \"${adapterName}.admin/${fileName}: ${e}`);\n }\n })\n } else {\n console.warn(`Cannot find i18n for ${adapterName} / ${fileName}`);\n return Promise.resolve();\n }\n });\n } else if (i18n && typeof i18n === 'object') {\n I18n.extendTranslations(i18n);\n return Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n\n onCommandRunning = commandRunning => this.setState( {commandRunning});\n\n readSettings() {\n if ((this.props.custom || this.props.common) && this.props.data) {\n return Promise.resolve();\n } else {\n return this.props.socket.getObject(`system.adapter.${this.props.adapterName}.${this.props.instance}`)\n .then(obj => this.setState({common: obj.common, data: this.props.data || obj.native}));\n }\n }\n\n readData() {\n this.readSettings()\n .then(() => this.props.socket.getCompactSystemConfig())\n .then(systemConfig =>\n this.props.socket.getState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`)\n .then(state => {\n if (this.props.custom) {\n this.setState({systemConfig: systemConfig.common, alive: !!(state && state.val)});\n } else {\n this.setState({systemConfig: systemConfig.common, alive: !!(state && state.val)}, () =>\n this.props.socket.subscribeState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`, this.onAlive));\n }\n }));\n }\n\n onAlive = (id, state) => {\n if ((state?.val || false) !== this.state.alive) {\n this.setState({alive: state?.val || false});\n }\n }\n\n onChange = (data, value, cb, saveConfig) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(data, value, saveConfig);\n cb && cb();\n } else {\n if (data) {\n const state = { data };\n\n const _data = {};\n // remove all attributes starting with \"_\"\n Object.keys(data).forEach(attr => !attr.startsWith('_') && (_data[attr] = data[attr]));\n\n state.changed = JSON.stringify(_data) !== this.state.originalData;\n\n this.setState({ state }, () => {\n this.props.onChange(_data, state.changed, saveConfig);\n cb && cb();\n });\n } else if (saveConfig) {\n this.props.onChange(null, null, saveConfig);\n }\n }\n }\n\n onError = (attr, error) => {\n const errors = JSON.parse(JSON.stringify(this.state.errors));\n if (error) {\n errors[attr] = error;\n } else {\n delete errors[attr];\n }\n\n if (JSON.stringify(errors) !== JSON.parse(JSON.stringify(this.state.errors))) {\n this.setState({errors}, () =>\n this.props.onError(!!Object.keys(this.state.errors).length));\n }\n }\n\n flatten(schema, _list) {\n _list = _list || {};\n if (schema.items) {\n Object.keys(schema.items).forEach(attr => {\n _list[attr] = schema.items[attr];\n this.flatten(schema.items[attr], _list);\n });\n }\n\n return _list;\n }\n\n buildDependencies(schema) {\n const attrs = this.flatten(schema);\n Object.keys(attrs).forEach(attr => {\n if (attrs[attr].confirm?.alsoDependsOn) {\n attrs[attr].confirm?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].confirmDependsOn = attrs[dep].confirmDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n if (depObj.confirm) {\n depObj.confirm.cancel = 'Undo';\n }\n\n attrs[dep].confirmDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].onChange?.alsoDependsOn) {\n attrs[attr].onChange?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].onChangeDependsOn = attrs[dep].onChangeDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].onChangeDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].hidden?.alsoDependsOn) {\n attrs[attr].hidden?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].hiddenDependsOn = attrs[dep].hiddenDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].hiddenDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].label?.alsoDependsOn) {\n attrs[attr].label?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].labelDependsOn = attrs[dep].labelDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].labelDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].help?.alsoDependsOn) {\n attrs[attr].help?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].helpDependsOn = attrs[dep].helpDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].helpDependsOn.push(depObj);\n }\n });\n }\n });\n }\n\n renderItem(item) {\n if (item.type === 'tabs') {\n return <ConfigTabs\n onCommandRunning={this.onCommandRunning}\n commandRunning={this.state.commandRunning}\n socket={this.props.socket}\n adapterName={this.props.adapterName}\n instance={this.props.instance}\n common={this.props.common}\n alive={this.state.alive}\n themeType={this.props.themeType}\n themeName={this.props.themeName}\n data={this.props.data}\n originalData={JSON.parse(this.state.originalData)}\n schema={item}\n systemConfig={this.state.systemConfig}\n customs={this.props.customs}\n dateFormat={this.props.dateFormat}\n isFloatComma={this.props.isFloatComma}\n multiEdit={this.props.multiEdit}\n imagePrefix={this.props.imagePrefix}\n\n custom={this.props.custom}\n customObj={this.props.customObj}\n instanceObj={this.props.instanceObj}\n\n changeLanguage={this.changeLanguage}\n forceUpdate={this.forceAttrUpdate}\n registerOnForceUpdate={this.registerOnForceUpdate}\n\n onChange={this.onChange}\n onError={(attr, error) => this.onError(attr, error)}\n />;\n } else if (item.type === 'panel' || !item.type) {\n return <ConfigPanel\n index={1000}\n isParentTab={true}\n onCommandRunning={this.onCommandRunning}\n commandRunning={this.state.commandRunning}\n socket={this.props.socket}\n adapterName={this.props.adapterName}\n instance={this.props.instance}\n common={this.props.common}\n alive={this.state.alive}\n themeType={this.props.themeType}\n themeName={this.props.themeName}\n data={this.props.data}\n originalData={JSON.parse(this.state.originalData)}\n schema={item}\n systemConfig={this.state.systemConfig}\n customs={this.props.customs}\n dateFormat={this.props.dateFormat}\n isFloatComma={this.props.isFloatComma}\n multiEdit={this.props.multiEdit}\n imagePrefix={this.props.imagePrefix}\n\n custom={this.props.custom}\n customObj={this.props.customObj}\n instanceObj={this.props.instanceObj}\n\n changeLanguage={this.changeLanguage}\n forceUpdate={this.forceAttrUpdate}\n registerOnForceUpdate={this.registerOnForceUpdate}\n\n onChange={this.onChange}\n onError={(attr, error) => this.onError(attr, error)}\n />;\n }\n }\n\n changeLanguage = () => {\n this.forceUpdate();\n }\n\n forceAttrUpdate = (attr, data) => {\n if (Array.isArray(attr)) {\n attr.forEach(a =>\n this.forceUpdateHandlers[a] && this.forceUpdateHandlers[a](data));\n } else {\n if (this.forceUpdateHandlers[attr]) {\n this.forceUpdateHandlers[attr](data);\n }\n }\n }\n\n registerOnForceUpdate = (attr, cb) => {\n if (cb) {\n this.forceUpdateHandlers[attr] = cb;\n } else if (this.forceUpdateHandlers[attr]) {\n delete this.forceUpdateHandlers[attr];\n }\n }\n\n render() {\n if (!this.state.systemConfig) {\n return <LinearProgress />;\n }\n\n return <div className={this.props.classes.root}>\n {this.renderItem(this.state.schema)}\n </div>;\n }\n}\n\nJsonConfigComponent.propTypes = {\n socket: PropTypes.object.isRequired,\n\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n common: PropTypes.object,\n customs: PropTypes.object, // custom components\n\n custom: PropTypes.bool, // is the customs settings must be shown\n customObj: PropTypes.object,\n multiEdit: PropTypes.bool, // set if user edits more than one object simultaneously\n instanceObj: PropTypes.object,\n dateFormat: PropTypes.string,\n isFloatComma: PropTypes.bool,\n imagePrefix: PropTypes.string,\n\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n updateData: PropTypes.number,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n onValueChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(JsonConfigComponent);"],"mappings":"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"}
package/README.md CHANGED
@@ -642,6 +642,9 @@ If you still have questions, try to find an answer [here](https://mui.com/guides
642
642
  -->
643
643
 
644
644
  ## Changelog
645
+ ### 3.1.25 (2022-08-01)
646
+ * (bluefox) Added translations
647
+
645
648
  ### 3.1.24 (2022-07-28)
646
649
  * (bluefox) Updated file browser and object browser
647
650
 
package/i18n/de.json CHANGED
@@ -316,5 +316,8 @@
316
316
  "ra_File is too big. Max %sk allowed. Try use SVG.": "Datei ist zu groß. Max %sk erlaubt. Versuchen Sie, SVG zu verwenden.",
317
317
  "ra_Cannot upload": "Kann nicht hochladen",
318
318
  "ra_Crop": "Ernte",
319
- "ra_tooltip_comment": "Kommentar"
319
+ "ra_tooltip_comment": "Kommentar",
320
+ "ra_Disconnected": "Getrennt",
321
+ "ra_Connected": "Verbunden",
322
+ "ra_Configure": "Konfigurieren"
320
323
  }
package/i18n/en.json CHANGED
@@ -316,5 +316,8 @@
316
316
  "ra_File is too big. Max %sk allowed. Try use SVG.": "File is too big. Max %sk allowed. Try use SVG.",
317
317
  "ra_Cannot upload": "Cannot upload",
318
318
  "ra_Crop": "Crop",
319
- "ra_tooltip_comment": "Comment"
319
+ "ra_tooltip_comment": "Comment",
320
+ "ra_Disconnected": "Disconnected",
321
+ "ra_Connected": "Connected",
322
+ "ra_Configure": "Configure"
320
323
  }
package/i18n/es.json CHANGED
@@ -303,5 +303,8 @@
303
303
  "ra_File is too big. Max %sk allowed. Try use SVG.": "El archivo es demasiado grande. Máximo de %sk permitido. Intenta usar SVG.",
304
304
  "ra_Cannot upload": "no se puede cargar",
305
305
  "ra_Crop": "Cultivo",
306
- "ra_tooltip_comment": "Comentario"
306
+ "ra_tooltip_comment": "Comentario",
307
+ "ra_Disconnected": "Desconectado",
308
+ "ra_Connected": "Conectado",
309
+ "ra_Configure": "Configurar"
307
310
  }
package/i18n/fr.json CHANGED
@@ -303,5 +303,8 @@
303
303
  "ra_File is too big. Max %sk allowed. Try use SVG.": "Le fichier est trop volumineux. Max %sk autorisé. Essayez d'utiliser SVG.",
304
304
  "ra_Cannot upload": "Impossible de télécharger",
305
305
  "ra_Crop": "Recadrer",
306
- "ra_tooltip_comment": "Commentaire"
306
+ "ra_tooltip_comment": "Commentaire",
307
+ "ra_Disconnected": "Débranché",
308
+ "ra_Connected": "Lié",
309
+ "ra_Configure": "Configurer"
307
310
  }
package/i18n/it.json CHANGED
@@ -303,5 +303,8 @@
303
303
  "ra_File is too big. Max %sk allowed. Try use SVG.": "Il file è troppo grande. Max %sk consentito. Prova a usare SVG.",
304
304
  "ra_Cannot upload": "Impossibile caricare",
305
305
  "ra_Crop": "Raccolto",
306
- "ra_tooltip_comment": "Commento"
306
+ "ra_tooltip_comment": "Commento",
307
+ "ra_Disconnected": "Disconnesso",
308
+ "ra_Connected": "Collegato",
309
+ "ra_Configure": "Configura"
307
310
  }
package/i18n/nl.json CHANGED
@@ -303,5 +303,8 @@
303
303
  "ra_File is too big. Max %sk allowed. Try use SVG.": "Bestand is te groot. Max. %sk toegestaan. Probeer SVG te gebruiken.",
304
304
  "ra_Cannot upload": "Kan niet uploaden",
305
305
  "ra_Crop": "Bijsnijden",
306
- "ra_tooltip_comment": "Opmerking"
306
+ "ra_tooltip_comment": "Opmerking",
307
+ "ra_Disconnected": "Verbinding verbroken",
308
+ "ra_Connected": "Verbonden",
309
+ "ra_Configure": "Configureren"
307
310
  }
package/i18n/pl.json CHANGED
@@ -303,5 +303,8 @@
303
303
  "ra_File is too big. Max %sk allowed. Try use SVG.": "Plik jest za duży. Maksymalna dozwolona liczba %sk. Spróbuj użyć SVG.",
304
304
  "ra_Cannot upload": "Nie można przesłać",
305
305
  "ra_Crop": "Przyciąć",
306
- "ra_tooltip_comment": "Komentarz"
306
+ "ra_tooltip_comment": "Komentarz",
307
+ "ra_Disconnected": "Niepowiązany",
308
+ "ra_Connected": "Połączony",
309
+ "ra_Configure": "Konfiguruj"
307
310
  }
package/i18n/pt.json CHANGED
@@ -303,5 +303,8 @@
303
303
  "ra_File is too big. Max %sk allowed. Try use SVG.": "O arquivo é muito grande. Max %sk permitido. Tente usar SVG.",
304
304
  "ra_Cannot upload": "Não é possível fazer upload",
305
305
  "ra_Crop": "Colheita",
306
- "ra_tooltip_comment": "Comente"
306
+ "ra_tooltip_comment": "Comente",
307
+ "ra_Disconnected": "Desconectado",
308
+ "ra_Connected": "Conectado",
309
+ "ra_Configure": "Configurar"
307
310
  }
package/i18n/ru.json CHANGED
@@ -316,5 +316,8 @@
316
316
  "ra_File is too big. Max %sk allowed. Try use SVG.": "Файл слишком большой. Разрешено максимальное количество %sk. Попробуйте использовать SVG.",
317
317
  "ra_Cannot upload": "Невозможно загрузить",
318
318
  "ra_Crop": "Обрезать",
319
- "ra_tooltip_comment": "Комментарий"
319
+ "ra_tooltip_comment": "Комментарий",
320
+ "ra_Disconnected": "Отключено",
321
+ "ra_Connected": "Соединение установлено",
322
+ "ra_Configure": "Настроить"
320
323
  }
package/i18n/zh-cn.json CHANGED
@@ -303,5 +303,8 @@
303
303
  "ra_File is too big. Max %sk allowed. Try use SVG.": "文件太大。允许的最大字节%s数。尝试使用 SVG。",
304
304
  "ra_Cannot upload": "无法上传",
305
305
  "ra_Crop": "庄稼",
306
- "ra_tooltip_comment": "评论"
306
+ "ra_tooltip_comment": "评论",
307
+ "ra_Disconnected": "断开连接",
308
+ "ra_Connected": "连接的",
309
+ "ra_Configure": "配置"
307
310
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iobroker/adapter-react-v5",
3
- "version": "3.1.24",
3
+ "version": "3.1.25",
4
4
  "description": "React classes to develop admin interfaces for ioBroker with react.",
5
5
  "author": {
6
6
  "name": "bluefox",