@iobroker/adapter-react-v5 4.0.19 → 4.0.21

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 (31) hide show
  1. package/Components/ColorPicker.js +9 -3
  2. package/Components/ColorPicker.js.map +1 -1
  3. package/Components/JsonConfigComponent/ConfigCertCollection.d.ts +14 -0
  4. package/Components/JsonConfigComponent/ConfigCertCollection.js +143 -0
  5. package/Components/JsonConfigComponent/ConfigCertCollection.js.map +1 -0
  6. package/Components/JsonConfigComponent/ConfigCertificateSelect.js +1 -1
  7. package/Components/JsonConfigComponent/ConfigCertificateSelect.js.map +1 -1
  8. package/Components/JsonConfigComponent/ConfigCertificates.d.ts +14 -0
  9. package/Components/JsonConfigComponent/ConfigCertificates.js +297 -0
  10. package/Components/JsonConfigComponent/ConfigCertificates.js.map +1 -0
  11. package/Components/JsonConfigComponent/ConfigCheckLicense.js +216 -93
  12. package/Components/JsonConfigComponent/ConfigCheckLicense.js.map +1 -1
  13. package/Components/JsonConfigComponent/ConfigPanel.js +4 -0
  14. package/Components/JsonConfigComponent/ConfigPanel.js.map +1 -1
  15. package/Components/JsonConfigComponent/ConfigPort.js +22 -8
  16. package/Components/JsonConfigComponent/ConfigPort.js.map +1 -1
  17. package/Components/JsonConfigComponent/index.js +105 -45
  18. package/Components/JsonConfigComponent/index.js.map +1 -1
  19. package/README.md +6 -0
  20. package/i18n/de.json +8 -1
  21. package/i18n/en.json +8 -1
  22. package/i18n/es.json +8 -1
  23. package/i18n/fr.json +8 -1
  24. package/i18n/it.json +8 -1
  25. package/i18n/nl.json +8 -1
  26. package/i18n/pl.json +8 -1
  27. package/i18n/pt.json +8 -1
  28. package/i18n/ru.json +8 -1
  29. package/i18n/uk.json +8 -1
  30. package/i18n/zh-cn.json +8 -1
  31. package/package.json +1 -1
@@ -6,7 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports["default"] = void 0;
9
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
10
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
13
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
14
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
@@ -380,58 +382,116 @@ var JsonConfigComponent = /*#__PURE__*/function (_Component) {
380
382
  }
381
383
  }, {
382
384
  key: "loadI18n",
383
- value: function loadI18n(socket, i18n, adapterName) {
384
- if (i18n === true || i18n && typeof i18n === 'string') {
385
- var lang = _i18n["default"].getLanguage();
386
- var path = typeof i18n === 'string' ? i18n : 'i18n';
387
- return socket.fileExists(adapterName + '.admin', "".concat(path, "/").concat(lang, ".json")).then(function (exists) {
388
- if (exists) {
389
- return "".concat(path, "/").concat(lang, ".json");
390
- } else {
391
- return socket.fileExists(adapterName + '.admin', "".concat(path, "/").concat(lang, "/translations.json")).then(function (exists) {
392
- return exists ? "".concat(path, "/").concat(lang, "/translations.json") : '';
393
- }).then(function (fileName) {
394
- if (!fileName && lang !== 'en') {
395
- // fallback to english
396
- return socket.fileExists(adapterName + '.admin', "".concat(path, "/en.json")).then(function (exists) {
397
- if (exists) {
398
- return "".concat(path, "/en.json");
399
- } else {
400
- return socket.fileExists(adapterName + '.admin', "".concat(path, "/en/translations.json")).then(function (exists) {
401
- return exists ? "".concat(path, "/en/translations.json") : '';
402
- });
403
- }
404
- });
385
+ value: function () {
386
+ var _loadI18n = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(socket, i18n, adapterName) {
387
+ var lang, path, exists, fileName, json;
388
+ return _regenerator["default"].wrap(function _callee$(_context) {
389
+ while (1) switch (_context.prev = _context.next) {
390
+ case 0:
391
+ if (!(i18n === true || i18n && typeof i18n === 'string')) {
392
+ _context.next = 50;
393
+ break;
405
394
  }
406
- return fileName;
407
- });
408
- }
409
- }).then(function (fileName) {
410
- if (fileName) {
411
- return socket.readFile(adapterName + '.admin', fileName).then(function (json) {
395
+ lang = _i18n["default"].getLanguage();
396
+ path = typeof i18n === 'string' ? i18n : 'i18n';
397
+ _context.next = 5;
398
+ return socket.fileExists("".concat(adapterName, ".admin"), "".concat(path, "/").concat(lang, ".json"));
399
+ case 5:
400
+ exists = _context.sent;
401
+ if (!exists) {
402
+ _context.next = 10;
403
+ break;
404
+ }
405
+ fileName = "".concat(path, "/").concat(lang, ".json");
406
+ _context.next = 29;
407
+ break;
408
+ case 10:
409
+ _context.next = 12;
410
+ return socket.fileExists("".concat(adapterName, ".admin"), "".concat(path, "/").concat(lang, "/translations.json"));
411
+ case 12:
412
+ exists = _context.sent;
413
+ if (!exists) {
414
+ _context.next = 17;
415
+ break;
416
+ }
417
+ fileName = "".concat(path, "/").concat(lang, "/translations.json");
418
+ _context.next = 29;
419
+ break;
420
+ case 17:
421
+ if (!(lang !== 'en')) {
422
+ _context.next = 29;
423
+ break;
424
+ }
425
+ _context.next = 20;
426
+ return socket.fileExists("".concat(adapterName, ".admin"), "".concat(path, "/en.json"));
427
+ case 20:
428
+ exists = _context.sent;
429
+ if (!exists) {
430
+ _context.next = 25;
431
+ break;
432
+ }
433
+ fileName = "".concat(path, "/en.json");
434
+ _context.next = 29;
435
+ break;
436
+ case 25:
437
+ _context.next = 27;
438
+ return socket.fileExists("".concat(adapterName, ".admin"), "".concat(path, "/en/translations.json"));
439
+ case 27:
440
+ exists = _context.sent;
441
+ if (exists) {
442
+ fileName = "".concat(path, "/en/translations.json");
443
+ }
444
+ case 29:
445
+ if (!fileName) {
446
+ _context.next = 46;
447
+ break;
448
+ }
449
+ _context.next = 32;
450
+ return socket.readFile("".concat(adapterName, ".admin"), fileName);
451
+ case 32:
452
+ json = _context.sent;
412
453
  if (json.file !== undefined) {
413
454
  json = json.file;
414
455
  }
415
- try {
416
- json = JSON.parse(json);
417
- // apply file to I18n
418
- _i18n["default"].extendTranslations(json, lang);
419
- } catch (e) {
420
- console.error("Cannot parse language file \"".concat(adapterName, ".admin/").concat(fileName, ": ").concat(e));
456
+ _context.prev = 34;
457
+ json = JSON.parse(json);
458
+ // apply file to I18n
459
+ _i18n["default"].extendTranslations(json, lang);
460
+ _context.next = 43;
461
+ break;
462
+ case 39:
463
+ _context.prev = 39;
464
+ _context.t0 = _context["catch"](34);
465
+ console.error("Cannot parse language file \"".concat(adapterName, ".admin/").concat(fileName, ": ").concat(_context.t0));
466
+ return _context.abrupt("return", '');
467
+ case 43:
468
+ return _context.abrupt("return", fileName);
469
+ case 46:
470
+ console.warn("Cannot find i18n for ".concat(adapterName, " / ").concat(fileName));
471
+ return _context.abrupt("return", '');
472
+ case 48:
473
+ _context.next = 56;
474
+ break;
475
+ case 50:
476
+ if (!(i18n && (0, _typeof2["default"])(i18n) === 'object')) {
477
+ _context.next = 55;
478
+ break;
421
479
  }
422
- });
423
- } else {
424
- console.warn("Cannot find i18n for ".concat(adapterName, " / ").concat(fileName));
425
- return Promise.resolve();
480
+ _i18n["default"].extendTranslations(i18n);
481
+ return _context.abrupt("return", '');
482
+ case 55:
483
+ return _context.abrupt("return", '');
484
+ case 56:
485
+ case "end":
486
+ return _context.stop();
426
487
  }
427
- });
428
- } else if (i18n && (0, _typeof2["default"])(i18n) === 'object') {
429
- _i18n["default"].extendTranslations(i18n);
430
- return Promise.resolve();
431
- } else {
432
- return Promise.resolve();
488
+ }, _callee, null, [[34, 39]]);
489
+ }));
490
+ function loadI18n(_x, _x2, _x3) {
491
+ return _loadI18n.apply(this, arguments);
433
492
  }
434
- }
493
+ return loadI18n;
494
+ }()
435
495
  }]);
436
496
  return JsonConfigComponent;
437
497
  }(_react.Component);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_styles","_LinearProgress","_i18n","_ConfigTabs","_ConfigPanel","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof3","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","valueOf","e","styles","theme","root","width","height","JsonConfigComponent","_Component","_inherits2","_super","props","_this","_classCallCheck2","_assertThisInitialized2","commandRunning","setState","id","state","val","alive","data","value","cb","saveConfig","onValueChange","newState","_data","attr","startsWith","changed","JSON","stringify","originalData","onChange","error","errorChached","parse","errors","errorTimeout","clearTimeout","setTimeout","onError","forceUpdate","Array","isArray","a","forceUpdateHandlers","updateData","systemConfig","schema","buildDependencies","readData","_createClass2","readSettings","_this2","custom","common","Promise","resolve","socket","getObject","concat","adapterName","instance","then","_this3","getCompactSystemConfig","getState","subscribeState","onAlive","flatten","_list","_this4","items","attrs","_attrs$attr$confirm","_attrs$attr$onChange","_attrs$attr$hidden","_attrs$attr$label","_attrs$attr$help","confirm","alsoDependsOn","_attrs$attr$confirm2","dep","console","warn","replace","confirmDependsOn","depObj","cancel","_attrs$attr$onChange2","onChangeDependsOn","hidden","_attrs$attr$hidden2","hiddenDependsOn","label","_attrs$attr$label2","labelDependsOn","help","_attrs$attr$help2","helpDependsOn","renderItem","item","_this5","type","createElement","onCommandRunning","themeType","themeName","customs","dateFormat","isFloatComma","multiEdit","imagePrefix","customObj","instanceObj","changeLanguage","forceAttrUpdate","registerOnForceUpdate","index","isParentTab","render","className","classes","getDerivedStateFromProps","loadI18n","i18n","lang","I18n","getLanguage","path","fileExists","exists","fileName","readFile","json","file","undefined","extendTranslations","_typeof2","Component","propTypes","PropTypes","isRequired","string","number","bool","style","func","_default","withStyles","exports"],"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 './wrapper/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 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 => exists ? `${path}/${lang}/translations.json` : '')\n .then(fileName => {\n if (!fileName && lang !== 'en') {\n // fallback to english\n return socket.fileExists(adapterName + '.admin', `${path}/en.json`)\n .then(exists => {\n if (exists) {\n return `${path}/en.json`;\n } else {\n return socket.fileExists(adapterName + '.admin', `${path}/en/translations.json`)\n .then(exists => exists ? `${path}/en/translations.json` : '');\n }\n });\n }\n return fileName;\n });\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 newState = { 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 newState.changed = JSON.stringify(_data) !== this.state.originalData;\n\n this.setState(newState, () => {\n this.props.onChange(_data, newState.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 this.errorChached = this.errorChached || JSON.parse(JSON.stringify(this.state.errors));\n const errors = this.errorChached;\n if (error) {\n errors[attr] = error;\n } else {\n delete errors[attr];\n }\n\n this.errorTimeout && clearTimeout(this.errorTimeout);\n if (JSON.stringify(errors) !== JSON.stringify(this.state.errors)) {\n this.errorTimeout = setTimeout(() =>\n this.setState({ errors: this.errorChached }, () => {\n this.errorTimeout = null;\n this.errorChached = null;\n this.props.onError(!!Object.keys(this.state.errors).length);\n }), 50);\n } else {\n this.errorChached = null;\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\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":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_styles","_LinearProgress","_i18n","_ConfigTabs","_ConfigPanel","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof3","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","valueOf","e","styles","theme","root","width","height","JsonConfigComponent","_Component","_inherits2","_super","props","_this","_classCallCheck2","_assertThisInitialized2","commandRunning","setState","id","state","val","alive","data","value","cb","saveConfig","onValueChange","newState","_data","attr","startsWith","changed","JSON","stringify","originalData","onChange","error","errorChached","parse","errors","errorTimeout","clearTimeout","setTimeout","onError","forceUpdate","Array","isArray","a","forceUpdateHandlers","updateData","systemConfig","schema","buildDependencies","readData","_createClass2","readSettings","_this2","custom","common","Promise","resolve","socket","getObject","concat","adapterName","instance","then","_this3","getCompactSystemConfig","getState","subscribeState","onAlive","flatten","_list","_this4","items","attrs","_attrs$attr$confirm","_attrs$attr$onChange","_attrs$attr$hidden","_attrs$attr$label","_attrs$attr$help","confirm","alsoDependsOn","_attrs$attr$confirm2","dep","console","warn","replace","confirmDependsOn","depObj","cancel","_attrs$attr$onChange2","onChangeDependsOn","hidden","_attrs$attr$hidden2","hiddenDependsOn","label","_attrs$attr$label2","labelDependsOn","help","_attrs$attr$help2","helpDependsOn","renderItem","item","_this5","type","createElement","onCommandRunning","themeType","themeName","customs","dateFormat","isFloatComma","multiEdit","imagePrefix","customObj","instanceObj","changeLanguage","forceAttrUpdate","registerOnForceUpdate","index","isParentTab","render","className","classes","getDerivedStateFromProps","_loadI18n","_asyncToGenerator2","_regenerator","mark","_callee","i18n","lang","path","exists","fileName","json","wrap","_callee$","_context","prev","next","I18n","getLanguage","fileExists","sent","readFile","file","undefined","extendTranslations","t0","abrupt","_typeof2","stop","loadI18n","_x","_x2","_x3","Component","propTypes","PropTypes","isRequired","string","number","bool","style","func","_default","withStyles","exports"],"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 './wrapper/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 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 async 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 let exists = await socket.fileExists(`${adapterName}.admin`, `${path}/${lang}.json`);\n let fileName;\n if (exists) {\n fileName = `${path}/${lang}.json`;\n } else {\n exists = await socket.fileExists(`${adapterName}.admin`, `${path}/${lang}/translations.json`);\n if (exists) {\n fileName = `${path}/${lang}/translations.json`;\n } else if (lang !== 'en') {\n // fallback to english\n exists = await socket.fileExists(`${adapterName}.admin`, `${path}/en.json`);\n if (exists) {\n fileName = `${path}/en.json`;\n } else {\n exists = await socket.fileExists(`${adapterName}.admin`, `${path}/en/translations.json`);\n if (exists) {\n fileName = `${path}/en/translations.json`;\n }\n }\n }\n }\n\n if (fileName) {\n let json = await socket.readFile(`${adapterName}.admin`, fileName);\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 return '';\n }\n return fileName;\n } else {\n console.warn(`Cannot find i18n for ${adapterName} / ${fileName}`);\n return '';\n }\n } else if (i18n && typeof i18n === 'object') {\n I18n.extendTranslations(i18n);\n return '';\n } else {\n return '';\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 newState = { 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 newState.changed = JSON.stringify(_data) !== this.state.originalData;\n\n this.setState(newState, () => {\n this.props.onChange(_data, newState.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 this.errorChached = this.errorChached || JSON.parse(JSON.stringify(this.state.errors));\n const errors = this.errorChached;\n if (error) {\n errors[attr] = error;\n } else {\n delete errors[attr];\n }\n\n this.errorTimeout && clearTimeout(this.errorTimeout);\n if (JSON.stringify(errors) !== JSON.stringify(this.state.errors)) {\n this.errorTimeout = setTimeout(() =>\n this.setState({ errors: this.errorChached }, () => {\n this.errorTimeout = null;\n this.errorChached = null;\n this.props.onError(!!Object.keys(this.state.errors).length);\n }), 50);\n } else {\n this.errorChached = null;\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\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
@@ -661,6 +661,12 @@ socket.getObjectViewCustom('custom', 'state', 'startKey', 'endKey')
661
661
  -->
662
662
 
663
663
  ## Changelog
664
+ ### 4.0.21 (2023-03-22)
665
+ * (bluefox) Added translations
666
+
667
+ ### 4.0.20 (2023-03-21)
668
+ * (bluefox) Color picker was improved
669
+
664
670
  ### 4.0.19 (2023-03-20)
665
671
  * (bluefox) Packages were updated
666
672
  * (bluefox) Added new translations
package/i18n/de.json CHANGED
@@ -369,5 +369,12 @@
369
369
  "ra_Use all available let's encrypt certificates": "Verwenden Sie alle verfügbaren Zertifikate von let's encrypt",
370
370
  "ra_Public certificate": "Öffentliches Zertifikat",
371
371
  "ra_Private certificate": "Privates Zertifikat",
372
- "ra_Chained certificate": "Chained Zertifikat"
372
+ "ra_Chained certificate": "Chained Zertifikat",
373
+ "ra_Suitable license not found in license manager": "Passende Lizenz im Lizenzmanager nicht gefunden",
374
+ "ra_Please enter the license": "Bitte geben Sie die Lizenz ein",
375
+ "ra_Checked": "Geprüft",
376
+ "ra_locally": "örtlich",
377
+ "ra_via internet": "übers Internet",
378
+ "ra_Yes": "Ja",
379
+ "ra_License not found in license manager. Do you want to read licenses from iobroker.net?": "Lizenz im Lizenzmanager nicht gefunden. Möchten Sie Lizenzen von iobroker.net aktualisieren?"
373
380
  }
package/i18n/en.json CHANGED
@@ -369,5 +369,12 @@
369
369
  "ra_Use all available let's encrypt certificates": "Use all available let's encrypt certificates",
370
370
  "ra_Public certificate": "Public certificate",
371
371
  "ra_Private certificate": "Private certificate",
372
- "ra_Chained certificate": "Chained certificate"
372
+ "ra_Chained certificate": "Chained certificate",
373
+ "ra_Suitable license not found in license manager": "Suitable license not found in license manager",
374
+ "ra_Please enter the license": "Please enter the license",
375
+ "ra_Checked": "Checked",
376
+ "ra_locally": "locally",
377
+ "ra_via internet": "via internet",
378
+ "ra_Yes": "Yes",
379
+ "ra_License not found in license manager. Do you want to read licenses from iobroker.net?": "License not found in the license manager. Do you want to update licenses from iobroker.net?"
373
380
  }
package/i18n/es.json CHANGED
@@ -369,5 +369,12 @@
369
369
  "ra_Use all available let's encrypt certificates": "Utilice todos los certificados let's encrypt disponibles",
370
370
  "ra_Public certificate": "Certificado público",
371
371
  "ra_Private certificate": "certificado privado",
372
- "ra_Chained certificate": "certificado encadenado"
372
+ "ra_Chained certificate": "certificado encadenado",
373
+ "ra_Suitable license not found in license manager": "Licencia adecuada no encontrada en el administrador de licencias",
374
+ "ra_Please enter the license": "Por favor ingrese la licencia",
375
+ "ra_Checked": "Comprobado",
376
+ "ra_locally": "en la zona",
377
+ "ra_via internet": "vía Internet",
378
+ "ra_Yes": "Sí",
379
+ "ra_License not found in license manager. Do you want to read licenses from iobroker.net?": "Licencia no encontrada en el administrador de licencias. ¿Quieres actualizar las licencias de iobroker.net?"
373
380
  }
package/i18n/fr.json CHANGED
@@ -369,5 +369,12 @@
369
369
  "ra_Use all available let's encrypt certificates": "Utilisez tous les certificats let's encrypt disponibles",
370
370
  "ra_Public certificate": "Certificat public",
371
371
  "ra_Private certificate": "Certificat privé",
372
- "ra_Chained certificate": "Certificat chaîné"
372
+ "ra_Chained certificate": "Certificat chaîné",
373
+ "ra_Suitable license not found in license manager": "Licence appropriée introuvable dans le gestionnaire de licences",
374
+ "ra_Please enter the license": "Veuillez entrer la licence",
375
+ "ra_Checked": "Vérifié",
376
+ "ra_locally": "localement",
377
+ "ra_via internet": "par Internet",
378
+ "ra_Yes": "Oui",
379
+ "ra_License not found in license manager. Do you want to read licenses from iobroker.net?": "Licence introuvable dans le gestionnaire de licences. Voulez-vous mettre à jour les licences depuis iobroker.net ?"
373
380
  }
package/i18n/it.json CHANGED
@@ -369,5 +369,12 @@
369
369
  "ra_Use all available let's encrypt certificates": "Usa tutti i certificati Let's Encrypt disponibili",
370
370
  "ra_Public certificate": "Certificato pubblico",
371
371
  "ra_Private certificate": "Certificato privato",
372
- "ra_Chained certificate": "Certificato incatenato"
372
+ "ra_Chained certificate": "Certificato incatenato",
373
+ "ra_Suitable license not found in license manager": "Licenza adatta non trovata nel gestore delle licenze",
374
+ "ra_Please enter the license": "Inserisci la licenza",
375
+ "ra_Checked": "Controllato",
376
+ "ra_locally": "localmente",
377
+ "ra_via internet": "attraverso internet",
378
+ "ra_Yes": "SÌ",
379
+ "ra_License not found in license manager. Do you want to read licenses from iobroker.net?": "Licenza non trovata nel gestore delle licenze. Vuoi aggiornare le licenze da iobroker.net?"
373
380
  }
package/i18n/nl.json CHANGED
@@ -369,5 +369,12 @@
369
369
  "ra_Use all available let's encrypt certificates": "Gebruik alle beschikbare Let's Encrypt-certificaten",
370
370
  "ra_Public certificate": "Openbaar certificaat",
371
371
  "ra_Private certificate": "Privé certificaat",
372
- "ra_Chained certificate": "Geketend certificaat"
372
+ "ra_Chained certificate": "Geketend certificaat",
373
+ "ra_Suitable license not found in license manager": "Geschikte licentie niet gevonden in licentiebeheer",
374
+ "ra_Please enter the license": "Voer de licentie in",
375
+ "ra_Checked": "Gecontroleerd",
376
+ "ra_locally": "plaatselijk",
377
+ "ra_via internet": "via internet",
378
+ "ra_Yes": "Ja",
379
+ "ra_License not found in license manager. Do you want to read licenses from iobroker.net?": "Licentie niet gevonden in licentiebeheer. Wilt u licenties van iobroker.net bijwerken?"
373
380
  }
package/i18n/pl.json CHANGED
@@ -369,5 +369,12 @@
369
369
  "ra_Use all available let's encrypt certificates": "Użyj wszystkich dostępnych certyfikatów Let's Encrypt",
370
370
  "ra_Public certificate": "Certyfikat publiczny",
371
371
  "ra_Private certificate": "Prywatny certyfikat",
372
- "ra_Chained certificate": "Certyfikat łańcuchowy"
372
+ "ra_Chained certificate": "Certyfikat łańcuchowy",
373
+ "ra_Suitable license not found in license manager": "Nie znaleziono odpowiedniej licencji w menedżerze licencji",
374
+ "ra_Please enter the license": "Proszę wprowadzić licencję",
375
+ "ra_Checked": "Sprawdzony",
376
+ "ra_locally": "lokalnie",
377
+ "ra_via internet": "przez internet",
378
+ "ra_Yes": "Tak",
379
+ "ra_License not found in license manager. Do you want to read licenses from iobroker.net?": "Nie znaleziono licencji w menedżerze licencji. Chcesz zaktualizować licencje z iobroker.net?"
373
380
  }
package/i18n/pt.json CHANGED
@@ -369,5 +369,12 @@
369
369
  "ra_Use all available let's encrypt certificates": "Use todos os certificados disponíveis vamos criptografar",
370
370
  "ra_Public certificate": "certificado público",
371
371
  "ra_Private certificate": "certificado privado",
372
- "ra_Chained certificate": "certificado encadeado"
372
+ "ra_Chained certificate": "certificado encadeado",
373
+ "ra_Suitable license not found in license manager": "Licença adequada não encontrada no gerenciador de licenças",
374
+ "ra_Please enter the license": "Por favor, insira a licença",
375
+ "ra_Checked": "Verificado",
376
+ "ra_locally": "localmente",
377
+ "ra_via internet": "via internet",
378
+ "ra_Yes": "Sim",
379
+ "ra_License not found in license manager. Do you want to read licenses from iobroker.net?": "Licença não encontrada no gerenciador de licenças. Deseja atualizar as licenças do iobroker.net?"
373
380
  }
package/i18n/ru.json CHANGED
@@ -369,5 +369,12 @@
369
369
  "ra_Use all available let's encrypt certificates": "Используйте все доступные сертификаты let’s encrypt",
370
370
  "ra_Public certificate": "Публичный сертификат",
371
371
  "ra_Private certificate": "Частный сертификат",
372
- "ra_Chained certificate": "Chained сертификат"
372
+ "ra_Chained certificate": "Chained сертификат",
373
+ "ra_Suitable license not found in license manager": "Подходящая лицензия не найдена в менеджере лицензий",
374
+ "ra_Please enter the license": "Пожалуйста, введите лицензию",
375
+ "ra_Checked": "Проверено",
376
+ "ra_locally": "локально",
377
+ "ra_via internet": "через интернет",
378
+ "ra_Yes": "Да",
379
+ "ra_License not found in license manager. Do you want to read licenses from iobroker.net?": "Лицензия не найдена в диспетчере лицензий. Вы хотите обновить лицензии от iobroker.net?"
373
380
  }
package/i18n/uk.json CHANGED
@@ -369,5 +369,12 @@
369
369
  "ra_Use all available let's encrypt certificates": "Використовуйте всі доступні сертифікати let's encrypt",
370
370
  "ra_Public certificate": "Публічний сертифікат",
371
371
  "ra_Private certificate": "Приватний сертифікат",
372
- "ra_Chained certificate": "Прикутий сертифікат"
372
+ "ra_Chained certificate": "Прикутий сертифікат",
373
+ "ra_Suitable license not found in license manager": "Відповідна ліцензія не знайдена в менеджері ліцензій",
374
+ "ra_Please enter the license": "Будь ласка, введіть ліцензію",
375
+ "ra_Checked": "Перевірено",
376
+ "ra_locally": "локально",
377
+ "ra_via internet": "через інтернет",
378
+ "ra_Yes": "Так",
379
+ "ra_License not found in license manager. Do you want to read licenses from iobroker.net?": "Ліцензія не знайдена в менеджері ліцензій. Хочете оновити ліцензії з iobroker.net?"
373
380
  }
package/i18n/zh-cn.json CHANGED
@@ -369,5 +369,12 @@
369
369
  "ra_Use all available let's encrypt certificates": "使用所有可用的让我们加密证书",
370
370
  "ra_Public certificate": "公共证书",
371
371
  "ra_Private certificate": "私有证书",
372
- "ra_Chained certificate": "链式证书"
372
+ "ra_Chained certificate": "链式证书",
373
+ "ra_Suitable license not found in license manager": "在许可证管理器中找不到合适的许可证",
374
+ "ra_Please enter the license": "请输入许可证",
375
+ "ra_Checked": "勾选",
376
+ "ra_locally": "本地",
377
+ "ra_via internet": "通过互联网",
378
+ "ra_Yes": "是的",
379
+ "ra_License not found in license manager. Do you want to read licenses from iobroker.net?": "在许可证管理器中找不到许可证。您要从 iobroker.net 更新许可证吗?"
373
380
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iobroker/adapter-react-v5",
3
- "version": "4.0.19",
3
+ "version": "4.0.21",
4
4
  "description": "React classes to develop admin interfaces for ioBroker with react.",
5
5
  "author": {
6
6
  "name": "bluefox",