@iobroker/adapter-react-v5 3.1.27 → 3.1.30

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.
Files changed (45) hide show
  1. package/Components/IconPicker.js.map +1 -1
  2. package/Components/JsonConfigComponent/ConfigCustom.js +4 -3
  3. package/Components/JsonConfigComponent/ConfigCustom.js.map +1 -1
  4. package/Components/JsonConfigComponent/ConfigGeneric.d.ts +1 -1
  5. package/Components/JsonConfigComponent/ConfigGeneric.js +9 -7
  6. package/Components/JsonConfigComponent/ConfigGeneric.js.map +1 -1
  7. package/Components/JsonConfigComponent/ConfigLanguage.js +1 -1
  8. package/Components/JsonConfigComponent/ConfigLanguage.js.map +1 -1
  9. package/Components/JsonConfigComponent/ConfigNumber.js +33 -11
  10. package/Components/JsonConfigComponent/ConfigNumber.js.map +1 -1
  11. package/Components/JsonConfigComponent/ConfigPanel.js +1 -0
  12. package/Components/JsonConfigComponent/ConfigPanel.js.map +1 -1
  13. package/Components/JsonConfigComponent/ConfigSelectSendTo.js +3 -3
  14. package/Components/JsonConfigComponent/ConfigSelectSendTo.js.map +1 -1
  15. package/Components/JsonConfigComponent/ConfigSendto.js +85 -24
  16. package/Components/JsonConfigComponent/ConfigSendto.js.map +1 -1
  17. package/Components/JsonConfigComponent/ConfigStaticText.d.ts +1 -1
  18. package/Components/JsonConfigComponent/ConfigStaticText.js +45 -4
  19. package/Components/JsonConfigComponent/ConfigStaticText.js.map +1 -1
  20. package/Components/JsonConfigComponent/ConfigTable.js +36 -25
  21. package/Components/JsonConfigComponent/ConfigTable.js.map +1 -1
  22. package/Components/JsonConfigComponent/ConfigText.js +15 -12
  23. package/Components/JsonConfigComponent/ConfigText.js.map +1 -1
  24. package/Components/JsonConfigComponent/index.js +4 -6
  25. package/Components/JsonConfigComponent/index.js.map +1 -1
  26. package/Components/ObjectBrowser.js +86 -15
  27. package/Components/ObjectBrowser.js.map +1 -1
  28. package/Connection.d.ts +5 -0
  29. package/Connection.js +78 -16
  30. package/Connection.js.map +1 -1
  31. package/Dialogs/FileSelect.js +2 -1
  32. package/Dialogs/FileSelect.js.map +1 -1
  33. package/Dialogs/SelectID.js.map +1 -1
  34. package/README.md +4 -0
  35. package/i18n/de.json +2 -1
  36. package/i18n/en.json +2 -1
  37. package/i18n/es.json +2 -1
  38. package/i18n/fr.json +2 -1
  39. package/i18n/it.json +2 -1
  40. package/i18n/nl.json +2 -1
  41. package/i18n/pl.json +2 -1
  42. package/i18n/pt.json +2 -1
  43. package/i18n/ru.json +2 -1
  44. package/i18n/zh-cn.json +2 -1
  45. package/package.json +1 -1
@@ -35,11 +35,23 @@ var _styles = require("@mui/styles");
35
35
 
36
36
  var _Button = _interopRequireDefault(require("@mui/material/Button"));
37
37
 
38
+ var _Warning = _interopRequireDefault(require("@mui/icons-material/Warning"));
39
+
40
+ var _Error = _interopRequireDefault(require("@mui/icons-material/Error"));
41
+
42
+ var _Info = _interopRequireDefault(require("@mui/icons-material/Info"));
43
+
44
+ var _Key = _interopRequireDefault(require("@mui/icons-material/Key"));
45
+
46
+ var _Send = _interopRequireDefault(require("@mui/icons-material/Send"));
47
+
48
+ var _Public = _interopRequireDefault(require("@mui/icons-material/Public"));
49
+
38
50
  var _i18n = _interopRequireDefault(require("../../i18n"));
39
51
 
40
52
  var _Icon = _interopRequireDefault(require("../Icon"));
41
53
 
42
- var _Error = _interopRequireDefault(require("../../Dialogs/Error"));
54
+ var _Error2 = _interopRequireDefault(require("../../Dialogs/Error"));
43
55
 
44
56
  var _Message = _interopRequireDefault(require("../../Dialogs/Message"));
45
57
 
@@ -47,12 +59,6 @@ var _Confirm = _interopRequireDefault(require("../../Dialogs/Confirm"));
47
59
 
48
60
  var _ConfigGeneric2 = _interopRequireDefault(require("./ConfigGeneric"));
49
61
 
50
- var _Warning = _interopRequireDefault(require("@mui/icons-material/Warning"));
51
-
52
- var _Error2 = _interopRequireDefault(require("@mui/icons-material/Error"));
53
-
54
- var _Info = _interopRequireDefault(require("@mui/icons-material/Info"));
55
-
56
62
  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
63
 
58
64
  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; }
@@ -61,7 +67,7 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
61
67
 
62
68
  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; } }
63
69
 
64
- var styles = function styles(theme) {
70
+ var styles = function styles() {
65
71
  return {
66
72
  fullWidth: {
67
73
  width: '100%'
@@ -90,7 +96,8 @@ function findNetworkAddressOfHost(obj, localIp) {
90
96
  return null;
91
97
  }
92
98
 
93
- var hostIp;
99
+ var hostIp; // check ipv4 addresses
100
+
94
101
  Object.keys(networkInterfaces).forEach(function (inter) {
95
102
  return networkInterfaces[inter].forEach(function (ip) {
96
103
  if (ip.internal) {
@@ -99,12 +106,13 @@ function findNetworkAddressOfHost(obj, localIp) {
99
106
  return;
100
107
  } else if (localIp.includes('.') && !localIp.match(/[^.\d]/) && ip.family !== 'IPv4') {
101
108
  return;
102
- }
109
+ } // if ip4 and not docker or wsl
103
110
 
104
- if (localIp === '127.0.0.0' || localIp === 'localhost' || localIp.match(/[^.\d]/)) {
111
+
112
+ if (ip.family === 'IPv4' && !ip.address.startsWith('172') && (localIp === '127.0.0.0' || localIp === 'localhost' || localIp.match(/[^.\d]/))) {
105
113
  // if DNS name
106
114
  hostIp = ip.address;
107
- } else {
115
+ } else if (!hostIp) {
108
116
  if (ip.family === 'IPv4' && localIp.includes('.') && (ip2int(localIp) & ip2int(ip.netmask)) === (ip2int(ip.address) & ip2int(ip.netmask))) {
109
117
  hostIp = ip.address;
110
118
  } else {
@@ -112,7 +120,32 @@ function findNetworkAddressOfHost(obj, localIp) {
112
120
  }
113
121
  }
114
122
  });
115
- });
123
+ }); // check ipv6 addresses
124
+
125
+ if (!hostIp) {
126
+ Object.keys(networkInterfaces).forEach(function (inter) {
127
+ return networkInterfaces[inter].forEach(function (ip) {
128
+ if (ip.internal) {
129
+ return;
130
+ } else if (localIp.includes(':') && ip.family !== 'IPv6') {
131
+ return;
132
+ } else if (localIp.includes('.') && !localIp.match(/[^.\d]/) && ip.family !== 'IPv4') {
133
+ return;
134
+ }
135
+
136
+ if (ip.family === 'IPv6' && (localIp === '127.0.0.0' || localIp === 'localhost' || localIp.match(/[^.\d]/))) {
137
+ // if DNS name
138
+ hostIp = ip.address;
139
+ } else if (!hostIp) {
140
+ if (ip.family === 'IPv4' && localIp.includes('.') && (ip2int(localIp) & ip2int(ip.netmask)) === (ip2int(ip.address) & ip2int(ip.netmask))) {
141
+ hostIp = ip.address;
142
+ } else {
143
+ hostIp = ip.address;
144
+ }
145
+ }
146
+ });
147
+ });
148
+ }
116
149
 
117
150
  if (!hostIp) {
118
151
  Object.keys(networkInterfaces).forEach(function (inter) {
@@ -199,7 +232,7 @@ var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
199
232
  break;
200
233
  }
201
234
 
202
- hostname = ip + ':' + window.location.port;
235
+ hostname = "".concat(ip, ":").concat(window.location.port);
203
236
  _context.next = 19;
204
237
  break;
205
238
 
@@ -234,7 +267,7 @@ var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
234
267
  var _this = this;
235
268
 
236
269
  if (this.state._error) {
237
- return /*#__PURE__*/_react["default"].createElement(_Error["default"], {
270
+ return /*#__PURE__*/_react["default"].createElement(_Error2["default"], {
238
271
  text: this.state._error,
239
272
  classes: undefined,
240
273
  onClose: function onClose() {
@@ -273,13 +306,16 @@ var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
273
306
 
274
307
  this.props.onCommandRunning(true);
275
308
 
276
- var _origin = "".concat(window.location.protocol, "//").concat(this.state.hostname).concat(window.location.pathname.replace(/\/index\.html$/, ''));
309
+ var _origin = "".concat(window.location.protocol, "//").concat(window.location.host).concat(window.location.pathname.replace(/\/index\.html$/, ''));
310
+
311
+ var _originIp = "".concat(window.location.protocol, "//").concat(this.state.hostname.split(':').length > 3 ? "[".concat(this.state.hostname, "]") : this.state.hostname).concat(window.location.pathname.replace(/\/index\.html$/, ''));
277
312
 
278
313
  var data = this.props.schema.data;
279
314
 
280
315
  if (data === undefined && this.props.schema.jsonData) {
281
- data = this.getPattern(this.props.schema.jsonData, {}, _objectSpread({
282
- _origin: _origin
316
+ data = this.getPattern(this.props.schema.jsonData, _objectSpread({
317
+ _origin: _origin,
318
+ _originIp: _originIp
283
319
  }, this.props.data));
284
320
 
285
321
  try {
@@ -295,7 +331,8 @@ var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
295
331
 
296
332
  if (this.props.schema.openUrl && !data) {
297
333
  data = {
298
- _origin: "".concat(window.location.protocol, "//").concat(this.state.hostname).concat(window.location.pathname.replace(/\/index\.html$/, ''))
334
+ _origin: _origin,
335
+ _originIp: _originIp
299
336
  };
300
337
  }
301
338
 
@@ -372,7 +409,7 @@ var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
372
409
  if (confirm.type === 'warning') {
373
410
  icon = /*#__PURE__*/_react["default"].createElement(_Warning["default"], null);
374
411
  } else if (confirm.type === 'error') {
375
- icon = /*#__PURE__*/_react["default"].createElement(_Error2["default"], null);
412
+ icon = /*#__PURE__*/_react["default"].createElement(_Error["default"], null);
376
413
  } else if (confirm.type === 'info') {
377
414
  icon = /*#__PURE__*/_react["default"].createElement(_Info["default"], null);
378
415
  }
@@ -392,11 +429,37 @@ var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
392
429
  }
393
430
  });
394
431
  }
432
+ }, {
433
+ key: "getIcon",
434
+ value: function getIcon() {
435
+ var icon = null;
436
+
437
+ if (this.props.schema.icon === 'auth') {
438
+ icon = /*#__PURE__*/_react["default"].createElement(_Key["default"], null);
439
+ } else if (this.props.schema.icon === 'send') {
440
+ icon = /*#__PURE__*/_react["default"].createElement(_Send["default"], null);
441
+ } else if (this.props.schema.icon === 'web') {
442
+ icon = /*#__PURE__*/_react["default"].createElement(_Public["default"], null);
443
+ } else if (this.props.schema.icon === 'warning') {
444
+ icon = /*#__PURE__*/_react["default"].createElement(_Warning["default"], null);
445
+ } else if (this.props.schema.icon === 'error') {
446
+ icon = /*#__PURE__*/_react["default"].createElement(_Error["default"], null);
447
+ } else if (this.props.schema.icon === 'info') {
448
+ icon = /*#__PURE__*/_react["default"].createElement(_Info["default"], null);
449
+ } else if (this.props.schema.icon) {
450
+ icon = /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
451
+ src: this.props.schema.icon
452
+ });
453
+ }
454
+
455
+ return icon;
456
+ }
395
457
  }, {
396
458
  key: "renderItem",
397
459
  value: function renderItem(error, disabled, defaultValue) {
398
460
  var _this5 = this;
399
461
 
462
+ var icon = this.getIcon();
400
463
  return /*#__PURE__*/_react["default"].createElement("div", {
401
464
  className: this.props.classes.fullWidth
402
465
  }, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
@@ -404,6 +467,7 @@ var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
404
467
  color: this.props.schema.color || 'grey',
405
468
  className: this.props.classes.fullWidth,
406
469
  disabled: disabled,
470
+ startIcon: icon,
407
471
  onClick: function onClick() {
408
472
  if (_this5.props.schema.confirm) {
409
473
  _this5.setState({
@@ -413,10 +477,7 @@ var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
413
477
  _this5._onClick();
414
478
  }
415
479
  }
416
- }, this.props.schema.icon ? /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
417
- src: this.props.schema.icon,
418
- className: this.props.classes.icon
419
- }) : null, this.getText(this.props.schema.label, this.props.schema.noTranslation)), this.renderErrorDialog(), this.renderMessageDialog());
480
+ }, this.getText(this.props.schema.label, this.props.schema.noTranslation)), this.renderErrorDialog(), this.renderMessageDialog());
420
481
  }
421
482
  }]);
422
483
  return ConfigSendto;
@@ -1 +1 @@
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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"}
1
+ {"version":3,"file":"ConfigSendto.js","names":["styles","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","startsWith","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","_originIp","length","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","getIcon","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 IconWarning from '@mui/icons-material/Warning';\nimport IconError from '@mui/icons-material/Error';\nimport IconInfo from '@mui/icons-material/Info';\nimport IconAuth from '@mui/icons-material/Key';\nimport IconSend from '@mui/icons-material/Send';\nimport IconWeb from '@mui/icons-material/Public';\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';\n\nconst styles = () => ({\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\n // check ipv4 addresses\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 ip4 and not docker or wsl\n if (ip.family === 'IPv4' && !ip.address.startsWith('172') && (localIp === '127.0.0.0' || localIp === 'localhost' || localIp.match(/[^.\\d]/))) { // if DNS name\n hostIp = ip.address;\n } else if (!hostIp) {\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 // check ipv6 addresses\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 (ip.family === 'IPv6' && (localIp === '127.0.0.0' || localIp === 'localhost' || localIp.match(/[^.\\d]/))) { // if DNS name\n hostIp = ip.address;\n } else if (!hostIp) {\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\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}//${window.location.host}${window.location.pathname.replace(/\\/index\\.html$/, '')}`\n const _originIp = `${window.location.protocol}//${this.state.hostname.split(':').length > 3 ? `[${this.state.hostname}]` : 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 _originIp,\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 = {\n _origin,\n _originIp,\n }\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 getIcon() {\n let icon = null;\n if (this.props.schema.icon === 'auth') {\n icon = <IconAuth />;\n } else if (this.props.schema.icon === 'send') {\n icon = <IconSend />;\n } else if (this.props.schema.icon === 'web') {\n icon = <IconWeb />;\n } else if (this.props.schema.icon === 'warning') {\n icon = <IconWarning />;\n } else if (this.props.schema.icon === 'error') {\n icon = <IconError />;\n } else if (this.props.schema.icon === 'info') {\n icon = <IconInfo />;\n } else if (this.props.schema.icon) {\n icon = <Icon src={this.props.schema.icon} />;\n }\n\n return icon;\n }\n\n renderItem(error, disabled, defaultValue) {\n let icon = this.getIcon();\n\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 startIcon={icon}\n onClick={() => {\n if (this.props.schema.confirm) {\n this.setState({ confirmDialog: true });\n } else {\n this._onClick();\n }\n }}\n >\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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"}
@@ -8,7 +8,7 @@ declare const _default: React.JSXElementConstructor<Omit<PropTypes.InferProps<{
8
8
  schema: PropTypes.Requireable<object>;
9
9
  onError: PropTypes.Requireable<(...args: any[]) => any>;
10
10
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
11
- }>, "classes"> & import("@mui/styles").StyledComponentProps<"fullWidth"> & object>;
11
+ }>, "classes"> & import("@mui/styles").StyledComponentProps<"link" | "fullWidth"> & object>;
12
12
  export default _default;
13
13
  import PropTypes from "prop-types";
14
14
  import React from "react";
@@ -27,6 +27,18 @@ var _Button = _interopRequireDefault(require("@mui/material/Button"));
27
27
 
28
28
  var _Icon = _interopRequireDefault(require("../Icon"));
29
29
 
30
+ var _Key = _interopRequireDefault(require("@mui/icons-material/Key"));
31
+
32
+ var _Send = _interopRequireDefault(require("@mui/icons-material/Send"));
33
+
34
+ var _Public = _interopRequireDefault(require("@mui/icons-material/Public"));
35
+
36
+ var _Warning = _interopRequireDefault(require("@mui/icons-material/Warning"));
37
+
38
+ var _Error = _interopRequireDefault(require("@mui/icons-material/Error"));
39
+
40
+ var _Info = _interopRequireDefault(require("@mui/icons-material/Info"));
41
+
30
42
  var _ConfigGeneric2 = _interopRequireDefault(require("./ConfigGeneric"));
31
43
 
32
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); }; }
@@ -38,6 +50,10 @@ var styles = function styles(theme) {
38
50
  fullWidth: {
39
51
  height: '100%',
40
52
  width: '100%'
53
+ },
54
+ link: {
55
+ textDecoration: 'underline',
56
+ color: theme.palette.mode === 'dark' ? '#a147ff' : '#5b238f'
41
57
  }
42
58
  };
43
59
  };
@@ -53,27 +69,52 @@ var ConfigStaticText = /*#__PURE__*/function (_ConfigGeneric) {
53
69
  }
54
70
 
55
71
  (0, _createClass2["default"])(ConfigStaticText, [{
72
+ key: "getIcon",
73
+ value: function getIcon() {
74
+ var icon = null;
75
+
76
+ if (this.props.schema.icon === 'auth') {
77
+ icon = /*#__PURE__*/_react["default"].createElement(_Key["default"], null);
78
+ } else if (this.props.schema.icon === 'send') {
79
+ icon = /*#__PURE__*/_react["default"].createElement(_Send["default"], null);
80
+ } else if (this.props.schema.icon === 'web') {
81
+ icon = /*#__PURE__*/_react["default"].createElement(_Public["default"], null);
82
+ } else if (this.props.schema.icon === 'warning') {
83
+ icon = /*#__PURE__*/_react["default"].createElement(_Warning["default"], null);
84
+ } else if (this.props.schema.icon === 'error') {
85
+ icon = /*#__PURE__*/_react["default"].createElement(_Error["default"], null);
86
+ } else if (this.props.schema.icon === 'info') {
87
+ icon = /*#__PURE__*/_react["default"].createElement(_Info["default"], null);
88
+ } else if (this.props.schema.icon) {
89
+ icon = /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
90
+ src: this.props.schema.icon
91
+ });
92
+ }
93
+
94
+ return icon;
95
+ }
96
+ }, {
56
97
  key: "renderItem",
57
98
  value: function renderItem(error, disabled) {
58
99
  var _this = this;
59
100
 
60
101
  if (this.props.schema.button) {
102
+ var icon = this.getIcon();
61
103
  return /*#__PURE__*/_react["default"].createElement(_Button["default"], {
62
104
  variant: this.props.schema.variant || undefined,
63
105
  color: this.props.schema.color || 'grey',
64
106
  className: this.props.classes.fullWidth,
65
107
  disabled: disabled,
108
+ startIcon: icon,
66
109
  onClick: this.props.schema.href ? function () {
67
110
  // calculate one more time just before call
68
111
  var href = _this.props.schema.href ? _this.getText(_this.props.schema.href, true) : null;
69
112
  href && window.open(href, '_blank');
70
113
  } : null
71
- }, this.props.schema.icon ? /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
72
- src: this.props.schema.icon,
73
- className: this.props.classes.icon
74
- }) : null, this.getText(this.props.schema.text || this.props.schema.label, this.props.schema.noTranslation));
114
+ }, this.getText(this.props.schema.text || this.props.schema.label, this.props.schema.noTranslation));
75
115
  } else {
76
116
  return /*#__PURE__*/_react["default"].createElement("span", {
117
+ className: this.props.schema.href ? this.props.classes.link : '',
77
118
  onClick: this.props.schema.href ? function () {
78
119
  // calculate one more time just before call
79
120
  var href = _this.props.schema.href ? _this.getText(_this.props.schema.href, true) : null;
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigStaticText.js","names":["styles","theme","fullWidth","height","width","ConfigStaticText","error","disabled","props","schema","button","variant","undefined","color","classes","href","getText","window","open","icon","text","label","noTranslation","ConfigGeneric","propTypes","socket","PropTypes","object","isRequired","themeType","string","themeName","style","className","data","onError","func","onChange","withStyles"],"sources":["JsonConfigComponent/ConfigStaticText.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 Icon from '../Icon';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n height: '100%',\n width: '100%',\n }\n});\n\nclass ConfigStaticText extends ConfigGeneric {\n renderItem(error, disabled) {\n if (this.props.schema.button) {\n return <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={this.props.schema.href ? () => {\n // calculate one more time just before call\n const href = this.props.schema.href ? this.getText(this.props.schema.href, true) : null;\n href && window.open(href, '_blank');\n } : null}\n >\n {this.props.schema.icon ? <Icon src={this.props.schema.icon} className={this.props.classes.icon}/> : null}\n {this.getText(this.props.schema.text || this.props.schema.label, this.props.schema.noTranslation)}\n </Button>\n } else {\n\n return <span onClick={this.props.schema.href ? () => {\n // calculate one more time just before call\n const href = this.props.schema.href ? this.getText(this.props.schema.href, true) : null;\n href && window.open(href, '_blank');\n } : null}>\n {this.getText(this.props.schema.text || this.props.schema.label)}\n </span>;\n }\n }\n}\n\nConfigStaticText.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)(ConfigStaticText);\n"],"mappings":"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"}
1
+ {"version":3,"file":"ConfigStaticText.js","names":["styles","theme","fullWidth","height","width","link","textDecoration","color","palette","mode","ConfigStaticText","icon","props","schema","error","disabled","button","getIcon","variant","undefined","classes","href","getText","window","open","text","label","noTranslation","ConfigGeneric","propTypes","socket","PropTypes","object","isRequired","themeType","string","themeName","style","className","data","onError","func","onChange","withStyles"],"sources":["JsonConfigComponent/ConfigStaticText.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 Icon from '../Icon';\nimport IconAuth from '@mui/icons-material/Key';\nimport IconSend from '@mui/icons-material/Send';\nimport IconWeb from '@mui/icons-material/Public';\nimport IconWarning from '@mui/icons-material/Warning';\nimport IconError from '@mui/icons-material/Error';\nimport IconInfo from '@mui/icons-material/Info';\n\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n height: '100%',\n width: '100%',\n },\n link: {\n textDecoration: 'underline',\n color: theme.palette.mode === 'dark' ? '#a147ff' : '#5b238f',\n },\n});\n\nclass ConfigStaticText extends ConfigGeneric {\n getIcon() {\n let icon = null;\n if (this.props.schema.icon === 'auth') {\n icon = <IconAuth />;\n } else if (this.props.schema.icon === 'send') {\n icon = <IconSend />;\n } else if (this.props.schema.icon === 'web') {\n icon = <IconWeb />;\n } else if (this.props.schema.icon === 'warning') {\n icon = <IconWarning />;\n } else if (this.props.schema.icon === 'error') {\n icon = <IconError />;\n } else if (this.props.schema.icon === 'info') {\n icon = <IconInfo />;\n } else if (this.props.schema.icon) {\n icon = <Icon src={this.props.schema.icon} />;\n }\n\n return icon;\n }\n\n renderItem(error, disabled) {\n if (this.props.schema.button) {\n let icon = this.getIcon();\n return <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 startIcon={icon}\n onClick={this.props.schema.href ? () => {\n // calculate one more time just before call\n const href = this.props.schema.href ? this.getText(this.props.schema.href, true) : null;\n href && window.open(href, '_blank');\n } : null}\n >\n {this.getText(this.props.schema.text || this.props.schema.label, this.props.schema.noTranslation)}\n </Button>\n } else {\n return <span\n className={this.props.schema.href ? this.props.classes.link : ''}\n onClick={this.props.schema.href ? () => {\n // calculate one more time just before call\n const href = this.props.schema.href ? this.getText(this.props.schema.href, true) : null;\n href && window.open(href, '_blank');\n } : null}>\n {this.getText(this.props.schema.text || this.props.schema.label)}\n </span>;\n }\n }\n}\n\nConfigStaticText.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)(ConfigStaticText);\n"],"mappings":"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"}
@@ -123,7 +123,8 @@ var styles = function styles(theme) {
123
123
  opacity: 0.2
124
124
  },
125
125
  flex: {
126
- display: 'flex'
126
+ display: 'flex',
127
+ alignItems: 'baseline'
127
128
  },
128
129
  filteredOut: {
129
130
  padding: 10,
@@ -131,7 +132,7 @@ var styles = function styles(theme) {
131
132
  textAlign: 'center'
132
133
  },
133
134
  buttonEmpty: {
134
- width: 30,
135
+ width: 34,
135
136
  display: 'inline-block'
136
137
  },
137
138
  buttonCell: {
@@ -401,9 +402,7 @@ var ConfigTable = /*#__PURE__*/function (_ConfigGeneric) {
401
402
  value: function itemTable(attrItem, data, idx) {
402
403
  var _this2 = this;
403
404
 
404
- var _this$state2 = this.state,
405
- value = _this$state2.value,
406
- systemConfig = _this$state2.systemConfig;
405
+ var value = this.state.value;
407
406
  var schema = this.props.schema;
408
407
  var schemaForAttribute = schema.items && schema.items.find(function (el) {
409
408
  return el.attr === attrItem;
@@ -431,7 +430,8 @@ var ConfigTable = /*#__PURE__*/function (_ConfigGeneric) {
431
430
  table: true,
432
431
  custom: true,
433
432
  schema: schemaItem,
434
- systemConfig: systemConfig,
433
+ systemConfig: this.props.systemConfig,
434
+ originalData: this.props.originalData,
435
435
  customs: this.props.customs,
436
436
  onChange: function onChange(attr, valueChange) {
437
437
  var newObj = JSON.parse(JSON.stringify(value));
@@ -450,28 +450,35 @@ var ConfigTable = /*#__PURE__*/function (_ConfigGeneric) {
450
450
  }
451
451
  }, {
452
452
  key: "enhancedTableHead",
453
- value: function enhancedTableHead(buttonsWidth) {
453
+ value: function enhancedTableHead(buttonsWidth, doAnyFilterSet) {
454
454
  var _this3 = this;
455
455
 
456
456
  var _this$props = this.props,
457
457
  schema = _this$props.schema,
458
458
  classes = _this$props.classes;
459
- var _this$state3 = this.state,
460
- order = _this$state3.order,
461
- orderBy = _this$state3.orderBy;
462
- return /*#__PURE__*/_react["default"].createElement(_material.TableHead, null, /*#__PURE__*/_react["default"].createElement(_material.TableRow, null, schema.items && schema.items.map(function (headCell) {
459
+ var _this$state2 = this.state,
460
+ order = _this$state2.order,
461
+ orderBy = _this$state2.orderBy;
462
+ return /*#__PURE__*/_react["default"].createElement(_material.TableHead, null, /*#__PURE__*/_react["default"].createElement(_material.TableRow, null, schema.items && schema.items.map(function (headCell, i) {
463
463
  var _this3$filterRefs$hea, _this3$filterRefs$hea2, _this3$filterRefs$hea3, _this3$filterRefs$hea4;
464
464
 
465
465
  return /*#__PURE__*/_react["default"].createElement(_material.TableCell, {
466
466
  style: {
467
467
  width: typeof headCell.width === 'string' && headCell.width.endsWith('%') ? headCell.width : headCell.width
468
468
  },
469
- key: headCell.attr,
469
+ key: headCell.attr + '_' + i,
470
470
  align: "left",
471
471
  sortDirection: orderBy === headCell.attr ? order : false
472
472
  }, /*#__PURE__*/_react["default"].createElement("div", {
473
473
  className: classes.flex
474
- }, headCell.sort && /*#__PURE__*/_react["default"].createElement(_material.TableSortLabel, {
474
+ }, !i && !schema.noDelete ? /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
475
+ title: doAnyFilterSet ? _i18n["default"].t('ra_Cannot add items with set filter') : _i18n["default"].t('ra_Add row')
476
+ }, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_material.IconButton, {
477
+ size: "small",
478
+ color: "primary",
479
+ disabled: !!doAnyFilterSet && !_this3.props.schema.allowAddByFilter,
480
+ onClick: _this3.onAdd
481
+ }, /*#__PURE__*/_react["default"].createElement(_Add["default"], null)))) : null, headCell.sort && /*#__PURE__*/_react["default"].createElement(_material.TableSortLabel, {
475
482
  active: true,
476
483
  className: (0, _clsx["default"])(orderBy !== headCell.attr && classes.silver),
477
484
  direction: orderBy === headCell.attr ? order : 'asc',
@@ -590,9 +597,9 @@ var ConfigTable = /*#__PURE__*/function (_ConfigGeneric) {
590
597
  var _this$props2 = this.props,
591
598
  classes = _this$props2.classes,
592
599
  schema = _this$props2.schema;
593
- var _this$state4 = this.state,
594
- value = _this$state4.value,
595
- visibleValue = _this$state4.visibleValue;
600
+ var _this$state3 = this.state,
601
+ value = _this$state3.value,
602
+ visibleValue = _this$state3.visibleValue;
596
603
 
597
604
  if (!value) {
598
605
  return null;
@@ -611,18 +618,13 @@ var ConfigTable = /*#__PURE__*/function (_ConfigGeneric) {
611
618
  variant: "h6",
612
619
  id: "tableTitle",
613
620
  component: "div"
614
- }, this.getText(schema.label))) : null, !schema.noDelete ? /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
615
- title: doAnyFilterSet ? _i18n["default"].t('ra_Cannot add items with set filter') : _i18n["default"].t('ra_Add row')
616
- }, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_material.IconButton, {
617
- disabled: !!doAnyFilterSet && !this.props.schema.allowAddByFilter,
618
- onClick: this.onAdd
619
- }, /*#__PURE__*/_react["default"].createElement(_Add["default"], null)))) : null), /*#__PURE__*/_react["default"].createElement(_material.TableContainer, null, /*#__PURE__*/_react["default"].createElement(_material.Table, {
621
+ }, this.getText(schema.label))) : null), /*#__PURE__*/_react["default"].createElement(_material.TableContainer, null, /*#__PURE__*/_react["default"].createElement(_material.Table, {
620
622
  className: classes.table,
621
623
  size: "small"
622
- }, this.enhancedTableHead(!doAnyFilterSet && !this.state.orderBy ? 120 : 64), /*#__PURE__*/_react["default"].createElement(_material.TableBody, null, visibleValue.map(function (idx, i) {
624
+ }, this.enhancedTableHead(!doAnyFilterSet && !this.state.orderBy ? 120 : 64, doAnyFilterSet), /*#__PURE__*/_react["default"].createElement(_material.TableBody, null, visibleValue.map(function (idx, i) {
623
625
  return /*#__PURE__*/_react["default"].createElement(_material.TableRow, {
624
626
  hover: true,
625
- key: idx
627
+ key: idx + '_' + i
626
628
  }, schema.items && schema.items.map(function (headCell) {
627
629
  return /*#__PURE__*/_react["default"].createElement(_material.TableCell, {
628
630
  key: headCell.attr + '_' + idx,
@@ -655,7 +657,16 @@ var ConfigTable = /*#__PURE__*/function (_ConfigGeneric) {
655
657
  size: "small",
656
658
  onClick: _this7.onDelete(idx)
657
659
  }, /*#__PURE__*/_react["default"].createElement(_Delete["default"], null)))));
658
- }))), !visibleValue.length && value.length ? /*#__PURE__*/_react["default"].createElement("div", {
660
+ }), !schema.noDelete && visibleValue.length >= (schema.showSecondAddAt || 5) ? /*#__PURE__*/_react["default"].createElement(_material.TableRow, null, /*#__PURE__*/_react["default"].createElement(_material.TableCell, {
661
+ colSpan: schema.items.length + 1
662
+ }, /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
663
+ title: doAnyFilterSet ? _i18n["default"].t('ra_Cannot add items with set filter') : _i18n["default"].t('ra_Add row')
664
+ }, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_material.IconButton, {
665
+ size: "small",
666
+ color: "primary",
667
+ disabled: !!doAnyFilterSet && !this.props.schema.allowAddByFilter,
668
+ onClick: this.onAdd
669
+ }, /*#__PURE__*/_react["default"].createElement(_Add["default"], null)))))) : null)), !visibleValue.length && value.length ? /*#__PURE__*/_react["default"].createElement("div", {
659
670
  className: classes.filteredOut
660
671
  }, /*#__PURE__*/_react["default"].createElement(_material.Typography, {
661
672
  className: classes.title,