@iobroker/adapter-react-v5 2.1.11 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/Components/JsonConfigComponent/ChipInput.js +925 -0
  2. package/Components/JsonConfigComponent/ChipInput.js.map +1 -0
  3. package/Components/JsonConfigComponent/ConfigAlive.js +135 -0
  4. package/Components/JsonConfigComponent/ConfigAlive.js.map +1 -0
  5. package/Components/JsonConfigComponent/ConfigAutocomplete.js +204 -0
  6. package/Components/JsonConfigComponent/ConfigAutocomplete.js.map +1 -0
  7. package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js +311 -0
  8. package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js.map +1 -0
  9. package/Components/JsonConfigComponent/ConfigCRON.js +195 -0
  10. package/Components/JsonConfigComponent/ConfigCRON.js.map +1 -0
  11. package/Components/JsonConfigComponent/ConfigCertificateSelect.js +178 -0
  12. package/Components/JsonConfigComponent/ConfigCertificateSelect.js.map +1 -0
  13. package/Components/JsonConfigComponent/ConfigCheckbox.js +112 -0
  14. package/Components/JsonConfigComponent/ConfigCheckbox.js.map +1 -0
  15. package/Components/JsonConfigComponent/ConfigChip.js +149 -0
  16. package/Components/JsonConfigComponent/ConfigChip.js.map +1 -0
  17. package/Components/JsonConfigComponent/ConfigColor.js +156 -0
  18. package/Components/JsonConfigComponent/ConfigColor.js.map +1 -0
  19. package/Components/JsonConfigComponent/ConfigCoordinates.js +165 -0
  20. package/Components/JsonConfigComponent/ConfigCoordinates.js.map +1 -0
  21. package/Components/JsonConfigComponent/ConfigCustomEasyAccess.js +180 -0
  22. package/Components/JsonConfigComponent/ConfigCustomEasyAccess.js.map +1 -0
  23. package/Components/JsonConfigComponent/ConfigDatePicker.js +117 -0
  24. package/Components/JsonConfigComponent/ConfigDatePicker.js.map +1 -0
  25. package/Components/JsonConfigComponent/ConfigGeneric.js +660 -0
  26. package/Components/JsonConfigComponent/ConfigGeneric.js.map +1 -0
  27. package/Components/JsonConfigComponent/ConfigIP.js +151 -0
  28. package/Components/JsonConfigComponent/ConfigIP.js.map +1 -0
  29. package/Components/JsonConfigComponent/ConfigImageUpload.js +215 -0
  30. package/Components/JsonConfigComponent/ConfigImageUpload.js.map +1 -0
  31. package/Components/JsonConfigComponent/ConfigInstanceSelect.js +197 -0
  32. package/Components/JsonConfigComponent/ConfigInstanceSelect.js.map +1 -0
  33. package/Components/JsonConfigComponent/ConfigJsonEditor.js +211 -0
  34. package/Components/JsonConfigComponent/ConfigJsonEditor.js.map +1 -0
  35. package/Components/JsonConfigComponent/ConfigLanguage.js +175 -0
  36. package/Components/JsonConfigComponent/ConfigLanguage.js.map +1 -0
  37. package/Components/JsonConfigComponent/ConfigNumber.js +194 -0
  38. package/Components/JsonConfigComponent/ConfigNumber.js.map +1 -0
  39. package/Components/JsonConfigComponent/ConfigObjectId.js +201 -0
  40. package/Components/JsonConfigComponent/ConfigObjectId.js.map +1 -0
  41. package/Components/JsonConfigComponent/ConfigPanel.js +421 -0
  42. package/Components/JsonConfigComponent/ConfigPanel.js.map +1 -0
  43. package/Components/JsonConfigComponent/ConfigPassword.js +236 -0
  44. package/Components/JsonConfigComponent/ConfigPassword.js.map +1 -0
  45. package/Components/JsonConfigComponent/ConfigPattern.js +94 -0
  46. package/Components/JsonConfigComponent/ConfigPattern.js.map +1 -0
  47. package/Components/JsonConfigComponent/ConfigSelect.js +163 -0
  48. package/Components/JsonConfigComponent/ConfigSelect.js.map +1 -0
  49. package/Components/JsonConfigComponent/ConfigSelectSendTo.js +258 -0
  50. package/Components/JsonConfigComponent/ConfigSelectSendTo.js.map +1 -0
  51. package/Components/JsonConfigComponent/ConfigSendto.js +282 -0
  52. package/Components/JsonConfigComponent/ConfigSendto.js.map +1 -0
  53. package/Components/JsonConfigComponent/ConfigSetState.js +266 -0
  54. package/Components/JsonConfigComponent/ConfigSetState.js.map +1 -0
  55. package/Components/JsonConfigComponent/ConfigStaticDivider.js +88 -0
  56. package/Components/JsonConfigComponent/ConfigStaticDivider.js.map +1 -0
  57. package/Components/JsonConfigComponent/ConfigStaticHeader.js +81 -0
  58. package/Components/JsonConfigComponent/ConfigStaticHeader.js.map +1 -0
  59. package/Components/JsonConfigComponent/ConfigStaticImage.js +88 -0
  60. package/Components/JsonConfigComponent/ConfigStaticImage.js.map +1 -0
  61. package/Components/JsonConfigComponent/ConfigStaticText.js +104 -0
  62. package/Components/JsonConfigComponent/ConfigStaticText.js.map +1 -0
  63. package/Components/JsonConfigComponent/ConfigTable.js +651 -0
  64. package/Components/JsonConfigComponent/ConfigTable.js.map +1 -0
  65. package/Components/JsonConfigComponent/ConfigTabs.js +166 -0
  66. package/Components/JsonConfigComponent/ConfigTabs.js.map +1 -0
  67. package/Components/JsonConfigComponent/ConfigText.js +170 -0
  68. package/Components/JsonConfigComponent/ConfigText.js.map +1 -0
  69. package/Components/JsonConfigComponent/ConfigTextSendTo.js +168 -0
  70. package/Components/JsonConfigComponent/ConfigTextSendTo.js.map +1 -0
  71. package/Components/JsonConfigComponent/ConfigTimePicker.js +111 -0
  72. package/Components/JsonConfigComponent/ConfigTimePicker.js.map +1 -0
  73. package/Components/JsonConfigComponent/ConfigTopic.js +140 -0
  74. package/Components/JsonConfigComponent/ConfigTopic.js.map +1 -0
  75. package/Components/JsonConfigComponent/ConfigUser.js +176 -0
  76. package/Components/JsonConfigComponent/ConfigUser.js.map +1 -0
  77. package/Components/JsonConfigComponent/index.js +511 -0
  78. package/Components/JsonConfigComponent/index.js.map +1 -0
  79. package/README.md +3 -0
  80. package/package.json +1 -1
@@ -0,0 +1,511 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
+
20
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
+
22
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
+
24
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
+
26
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
+
28
+ var _react = _interopRequireWildcard(require("react"));
29
+
30
+ var _propTypes = _interopRequireDefault(require("prop-types"));
31
+
32
+ var _styles = require("@mui/styles");
33
+
34
+ var _LinearProgress = _interopRequireDefault(require("@mui/material/LinearProgress"));
35
+
36
+ var _i18n = _interopRequireDefault(require("@iobroker/adapter-react-v5/i18n"));
37
+
38
+ var _ConfigTabs = _interopRequireDefault(require("./ConfigTabs"));
39
+
40
+ var _ConfigPanel = _interopRequireDefault(require("./ConfigPanel"));
41
+
42
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
43
+
44
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
45
+
46
+ 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; }
47
+
48
+ 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; }
49
+
50
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
51
+
52
+ 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; } }
53
+
54
+ var styles = function styles(theme) {
55
+ return {
56
+ root: {
57
+ width: '100%',
58
+ height: '100%'
59
+ }
60
+ };
61
+ };
62
+
63
+ var JsonConfigComponent = /*#__PURE__*/function (_Component) {
64
+ (0, _inherits2["default"])(JsonConfigComponent, _Component);
65
+
66
+ var _super = _createSuper(JsonConfigComponent);
67
+
68
+ function JsonConfigComponent(props) {
69
+ var _this;
70
+
71
+ (0, _classCallCheck2["default"])(this, JsonConfigComponent);
72
+ _this = _super.call(this, props);
73
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onCommandRunning", function (commandRunning) {
74
+ return _this.setState({
75
+ commandRunning: commandRunning
76
+ });
77
+ });
78
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAlive", function (id, state) {
79
+ if (((state === null || state === void 0 ? void 0 : state.val) || false) !== _this.state.alive) {
80
+ _this.setState({
81
+ alive: (state === null || state === void 0 ? void 0 : state.val) || false
82
+ });
83
+ }
84
+ });
85
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChange", function (data, value, cb) {
86
+ if (_this.props.onValueChange) {
87
+ _this.props.onValueChange(data, value);
88
+
89
+ cb && cb();
90
+ } else {
91
+ var state = {
92
+ data: data
93
+ };
94
+ var _data = {}; // remove all attributes starting with "_"
95
+
96
+ Object.keys(data).forEach(function (attr) {
97
+ return !attr.startsWith('_') && (_data[attr] = data[attr]);
98
+ });
99
+ state.changed = JSON.stringify(_data) !== _this.state.originalData;
100
+
101
+ _this.setState({
102
+ state: state
103
+ }, function () {
104
+ _this.props.onChange(_data, state.changed);
105
+
106
+ cb && cb();
107
+ });
108
+ }
109
+ });
110
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onError", function (attr, error) {
111
+ var errors = JSON.parse(JSON.stringify(_this.state.errors));
112
+
113
+ if (error) {
114
+ errors[attr] = error;
115
+ } else {
116
+ delete errors[attr];
117
+ }
118
+
119
+ if (JSON.stringify(errors) !== JSON.parse(JSON.stringify(_this.state.errors))) {
120
+ _this.setState({
121
+ errors: errors
122
+ }, function () {
123
+ return _this.props.onError(!!Object.keys(_this.state.errors).length);
124
+ });
125
+ }
126
+ });
127
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "forceUpdate", function (attr, data) {
128
+ if (Array.isArray(attr)) {
129
+ attr.forEach(function (a) {
130
+ return _this.forceUpdateHandlers[a] && _this.forceUpdateHandlers[a](data);
131
+ });
132
+ } else {
133
+ if (_this.forceUpdateHandlers[attr]) {
134
+ _this.forceUpdateHandlers[attr](data);
135
+ }
136
+ }
137
+ });
138
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "registerOnForceUpdate", function (attr, cb) {
139
+ if (cb) {
140
+ _this.forceUpdateHandlers[attr] = cb;
141
+ } else if (_this.forceUpdateHandlers[attr]) {
142
+ delete _this.forceUpdateHandlers[attr];
143
+ }
144
+ });
145
+ _this.state = {
146
+ originalData: JSON.stringify(_this.props.data),
147
+ changed: false,
148
+ errors: {},
149
+ updateData: _this.props.updateData,
150
+ systemConfig: null,
151
+ alive: false,
152
+ commandRunning: false
153
+ };
154
+ _this.forceUpdateHandlers = {};
155
+ _this.schema = JSON.parse(JSON.stringify(_this.props.schema));
156
+
157
+ _this.buildDependencies(_this.schema);
158
+
159
+ _this.readData();
160
+
161
+ return _this;
162
+ }
163
+
164
+ (0, _createClass2["default"])(JsonConfigComponent, [{
165
+ key: "readSettings",
166
+ value: function readSettings() {
167
+ var _this2 = this;
168
+
169
+ if ((this.props.custom || this.props.common) && this.props.data) {
170
+ return Promise.resolve();
171
+ } else {
172
+ return this.props.socket.getObject("system.adapter.".concat(this.props.adapterName, ".").concat(this.props.instance)).then(function (obj) {
173
+ return _this2.setState({
174
+ common: obj.common,
175
+ data: _this2.props.data || obj["native"]
176
+ });
177
+ });
178
+ }
179
+ }
180
+ }, {
181
+ key: "readData",
182
+ value: function readData() {
183
+ var _this3 = this;
184
+
185
+ this.readSettings().then(function () {
186
+ return _this3.props.socket.getCompactSystemConfig();
187
+ }).then(function (systemConfig) {
188
+ return _this3.props.socket.getState("system.adapter.".concat(_this3.props.adapterName, ".").concat(_this3.props.instance, ".alive")).then(function (state) {
189
+ if (_this3.props.custom) {
190
+ _this3.setState({
191
+ systemConfig: systemConfig.common,
192
+ alive: !!(state && state.val)
193
+ });
194
+ } else {
195
+ _this3.setState({
196
+ systemConfig: systemConfig.common,
197
+ alive: !!(state && state.val)
198
+ }, function () {
199
+ return _this3.props.socket.subscribeState("system.adapter.".concat(_this3.props.adapterName, ".").concat(_this3.props.instance, ".alive"), _this3.onAlive);
200
+ });
201
+ }
202
+ });
203
+ });
204
+ }
205
+ }, {
206
+ key: "flatten",
207
+ value: function flatten(schema, _list) {
208
+ var _this4 = this;
209
+
210
+ _list = _list || {};
211
+
212
+ if (schema.items) {
213
+ Object.keys(schema.items).forEach(function (attr) {
214
+ _list[attr] = schema.items[attr];
215
+
216
+ _this4.flatten(schema.items[attr], _list);
217
+ });
218
+ }
219
+
220
+ return _list;
221
+ }
222
+ }, {
223
+ key: "buildDependencies",
224
+ value: function buildDependencies(schema) {
225
+ var attrs = this.flatten(schema);
226
+ Object.keys(attrs).forEach(function (attr) {
227
+ var _attrs$attr$confirm, _attrs$attr$onChange, _attrs$attr$hidden, _attrs$attr$label, _attrs$attr$help;
228
+
229
+ if ((_attrs$attr$confirm = attrs[attr].confirm) !== null && _attrs$attr$confirm !== void 0 && _attrs$attr$confirm.alsoDependsOn) {
230
+ var _attrs$attr$confirm2;
231
+
232
+ (_attrs$attr$confirm2 = attrs[attr].confirm) === null || _attrs$attr$confirm2 === void 0 ? void 0 : _attrs$attr$confirm2.alsoDependsOn.forEach(function (dep) {
233
+ if (!attrs[dep]) {
234
+ console.error("[JsonConfigComponent] Attribute ".concat(dep, " does not exist!"));
235
+
236
+ if (dep.startsWith('data.')) {
237
+ console.warn("[JsonConfigComponent] please use \"".concat(dep.replace(/^data\./, ''), "\" instead of \"").concat(dep, "\""));
238
+ }
239
+ } else {
240
+ attrs[dep].confirmDependsOn = attrs[dep].confirmDependsOn || [];
241
+
242
+ var depObj = _objectSpread(_objectSpread({}, attrs[attr]), {}, {
243
+ attr: attr
244
+ });
245
+
246
+ if (depObj.confirm) {
247
+ depObj.confirm.cancel = 'Undo';
248
+ }
249
+
250
+ attrs[dep].confirmDependsOn.push(depObj);
251
+ }
252
+ });
253
+ }
254
+
255
+ if ((_attrs$attr$onChange = attrs[attr].onChange) !== null && _attrs$attr$onChange !== void 0 && _attrs$attr$onChange.alsoDependsOn) {
256
+ var _attrs$attr$onChange2;
257
+
258
+ (_attrs$attr$onChange2 = attrs[attr].onChange) === null || _attrs$attr$onChange2 === void 0 ? void 0 : _attrs$attr$onChange2.alsoDependsOn.forEach(function (dep) {
259
+ if (!attrs[dep]) {
260
+ console.error("[JsonConfigComponent] Attribute ".concat(dep, " does not exist!"));
261
+
262
+ if (dep.startsWith('data.')) {
263
+ console.warn("[JsonConfigComponent] please use \"".concat(dep.replace(/^data\./, ''), "\" instead of \"").concat(dep, "\""));
264
+ }
265
+ } else {
266
+ attrs[dep].onChangeDependsOn = attrs[dep].onChangeDependsOn || [];
267
+
268
+ var depObj = _objectSpread(_objectSpread({}, attrs[attr]), {}, {
269
+ attr: attr
270
+ });
271
+
272
+ attrs[dep].onChangeDependsOn.push(depObj);
273
+ }
274
+ });
275
+ }
276
+
277
+ if ((_attrs$attr$hidden = attrs[attr].hidden) !== null && _attrs$attr$hidden !== void 0 && _attrs$attr$hidden.alsoDependsOn) {
278
+ var _attrs$attr$hidden2;
279
+
280
+ (_attrs$attr$hidden2 = attrs[attr].hidden) === null || _attrs$attr$hidden2 === void 0 ? void 0 : _attrs$attr$hidden2.alsoDependsOn.forEach(function (dep) {
281
+ if (!attrs[dep]) {
282
+ console.error("[JsonConfigComponent] Attribute ".concat(dep, " does not exist!"));
283
+
284
+ if (dep.startsWith('data.')) {
285
+ console.warn("[JsonConfigComponent] please use \"".concat(dep.replace(/^data\./, ''), "\" instead of \"").concat(dep, "\""));
286
+ }
287
+ } else {
288
+ attrs[dep].hiddenDependsOn = attrs[dep].hiddenDependsOn || [];
289
+
290
+ var depObj = _objectSpread(_objectSpread({}, attrs[attr]), {}, {
291
+ attr: attr
292
+ });
293
+
294
+ attrs[dep].hiddenDependsOn.push(depObj);
295
+ }
296
+ });
297
+ }
298
+
299
+ if ((_attrs$attr$label = attrs[attr].label) !== null && _attrs$attr$label !== void 0 && _attrs$attr$label.alsoDependsOn) {
300
+ var _attrs$attr$label2;
301
+
302
+ (_attrs$attr$label2 = attrs[attr].label) === null || _attrs$attr$label2 === void 0 ? void 0 : _attrs$attr$label2.alsoDependsOn.forEach(function (dep) {
303
+ if (!attrs[dep]) {
304
+ console.error("[JsonConfigComponent] Attribute ".concat(dep, " does not exist!"));
305
+
306
+ if (dep.startsWith('data.')) {
307
+ console.warn("[JsonConfigComponent] please use \"".concat(dep.replace(/^data\./, ''), "\" instead of \"").concat(dep, "\""));
308
+ }
309
+ } else {
310
+ attrs[dep].labelDependsOn = attrs[dep].labelDependsOn || [];
311
+
312
+ var depObj = _objectSpread(_objectSpread({}, attrs[attr]), {}, {
313
+ attr: attr
314
+ });
315
+
316
+ attrs[dep].labelDependsOn.push(depObj);
317
+ }
318
+ });
319
+ }
320
+
321
+ if ((_attrs$attr$help = attrs[attr].help) !== null && _attrs$attr$help !== void 0 && _attrs$attr$help.alsoDependsOn) {
322
+ var _attrs$attr$help2;
323
+
324
+ (_attrs$attr$help2 = attrs[attr].help) === null || _attrs$attr$help2 === void 0 ? void 0 : _attrs$attr$help2.alsoDependsOn.forEach(function (dep) {
325
+ if (!attrs[dep]) {
326
+ console.error("[JsonConfigComponent] Attribute ".concat(dep, " does not exist!"));
327
+
328
+ if (dep.startsWith('data.')) {
329
+ console.warn("[JsonConfigComponent] please use \"".concat(dep.replace(/^data\./, ''), "\" instead of \"").concat(dep, "\""));
330
+ }
331
+ } else {
332
+ attrs[dep].helpDependsOn = attrs[dep].helpDependsOn || [];
333
+
334
+ var depObj = _objectSpread(_objectSpread({}, attrs[attr]), {}, {
335
+ attr: attr
336
+ });
337
+
338
+ attrs[dep].helpDependsOn.push(depObj);
339
+ }
340
+ });
341
+ }
342
+ });
343
+ }
344
+ }, {
345
+ key: "renderItem",
346
+ value: function renderItem(item) {
347
+ var _this5 = this;
348
+
349
+ if (item.type === 'tabs') {
350
+ return /*#__PURE__*/_react["default"].createElement(_ConfigTabs["default"], {
351
+ onCommandRunning: this.onCommandRunning,
352
+ commandRunning: this.state.commandRunning,
353
+ socket: this.props.socket,
354
+ adapterName: this.props.adapterName,
355
+ instance: this.props.instance,
356
+ common: this.props.common,
357
+ alive: this.state.alive,
358
+ themeType: this.props.themeType,
359
+ themeName: this.props.themeName,
360
+ data: this.props.data,
361
+ originalData: JSON.parse(this.state.originalData),
362
+ schema: item,
363
+ systemConfig: this.state.systemConfig,
364
+ customs: this.props.customs,
365
+ dateFormat: this.props.dateFormat,
366
+ isFloatComma: this.props.isFloatComma,
367
+ multiEdit: this.props.multiEdit,
368
+ custom: this.props.custom,
369
+ customObj: this.props.customObj,
370
+ instanceObj: this.props.instanceObj,
371
+ forceUpdate: this.forceUpdate,
372
+ registerOnForceUpdate: this.registerOnForceUpdate,
373
+ onChange: this.onChange,
374
+ onError: function onError(attr, error) {
375
+ return _this5.onError(attr, error);
376
+ }
377
+ });
378
+ } else if (item.type === 'panel' || !item.type) {
379
+ return /*#__PURE__*/_react["default"].createElement(_ConfigPanel["default"], {
380
+ index: 1000,
381
+ isParentTab: true,
382
+ onCommandRunning: this.onCommandRunning,
383
+ commandRunning: this.state.commandRunning,
384
+ socket: this.props.socket,
385
+ adapterName: this.props.adapterName,
386
+ instance: this.props.instance,
387
+ common: this.props.common,
388
+ alive: this.state.alive,
389
+ themeType: this.props.themeType,
390
+ themeName: this.props.themeName,
391
+ data: this.props.data,
392
+ originalData: JSON.parse(this.state.originalData),
393
+ schema: item,
394
+ systemConfig: this.state.systemConfig,
395
+ customs: this.props.customs,
396
+ dateFormat: this.props.dateFormat,
397
+ isFloatComma: this.props.isFloatComma,
398
+ multiEdit: this.props.multiEdit,
399
+ forceUpdate: this.forceUpdate,
400
+ registerOnForceUpdate: this.registerOnForceUpdate,
401
+ custom: this.props.custom,
402
+ customObj: this.props.customObj,
403
+ instanceObj: this.props.instanceObj,
404
+ onChange: this.onChange,
405
+ onError: function onError(attr, error) {
406
+ return _this5.onError(attr, error);
407
+ }
408
+ });
409
+ }
410
+ }
411
+ }, {
412
+ key: "render",
413
+ value: function render() {
414
+ if (!this.state.systemConfig) {
415
+ return /*#__PURE__*/_react["default"].createElement(_LinearProgress["default"], null);
416
+ }
417
+
418
+ return /*#__PURE__*/_react["default"].createElement("div", {
419
+ className: this.props.classes.root
420
+ }, this.renderItem(this.schema));
421
+ }
422
+ }], [{
423
+ key: "getDerivedStateFromProps",
424
+ value: function getDerivedStateFromProps(props, state) {
425
+ if (JSON.stringify(props.updateData) !== JSON.stringify(state.updateData)) {
426
+ return {
427
+ updateData: props.updateData,
428
+ originalData: JSON.stringify(props.data)
429
+ };
430
+ } else {
431
+ return null;
432
+ }
433
+ }
434
+ }, {
435
+ key: "loadI18n",
436
+ value: function loadI18n(socket, i18n, adapterName) {
437
+ if (i18n === true || i18n && typeof i18n === 'string') {
438
+ var lang = _i18n["default"].getLanguage();
439
+
440
+ var path = typeof i18n === 'string' ? i18n : 'i18n';
441
+ return socket.fileExists(adapterName + '.admin', "".concat(path, "/").concat(lang, ".json")).then(function (exists) {
442
+ if (exists) {
443
+ return "".concat(path, "/").concat(lang, ".json");
444
+ } else {
445
+ return socket.fileExists(adapterName + '.admin', "".concat(path, "/").concat(lang, "/translations.json")).then(function (exists) {
446
+ return exists ? "".concat(path, "/").concat(lang, "/translations.json") : '';
447
+ });
448
+ }
449
+ }).then(function (fileName) {
450
+ if (fileName) {
451
+ return socket.readFile(adapterName + '.admin', fileName).then(function (json) {
452
+ if (json.file !== undefined) {
453
+ json = json.file;
454
+ }
455
+
456
+ try {
457
+ json = JSON.parse(json); // apply file to I18n
458
+
459
+ _i18n["default"].extendTranslations(json, lang);
460
+ } catch (e) {
461
+ console.error("Cannot parse language file \"".concat(adapterName, ".admin/").concat(fileName, ": ").concat(e));
462
+ }
463
+ });
464
+ } else {
465
+ console.warn("Cannot find i18n for ".concat(adapterName, " / ").concat(fileName));
466
+ return Promise.resolve();
467
+ }
468
+ });
469
+ } else if (i18n && (0, _typeof2["default"])(i18n) === 'object') {
470
+ _i18n["default"].extendTranslations(i18n);
471
+
472
+ return Promise.resolve();
473
+ } else {
474
+ return Promise.resolve();
475
+ }
476
+ }
477
+ }]);
478
+ return JsonConfigComponent;
479
+ }(_react.Component);
480
+
481
+ JsonConfigComponent.propTypes = {
482
+ socket: _propTypes["default"].object.isRequired,
483
+ adapterName: _propTypes["default"].string,
484
+ instance: _propTypes["default"].number,
485
+ common: _propTypes["default"].object,
486
+ customs: _propTypes["default"].object,
487
+ // custom components
488
+ custom: _propTypes["default"].bool,
489
+ // is the customs settings must be shown
490
+ customObj: _propTypes["default"].object,
491
+ multiEdit: _propTypes["default"].bool,
492
+ // set if user edits more than one object simultaneously
493
+ instanceObj: _propTypes["default"].object,
494
+ dateFormat: _propTypes["default"].string,
495
+ isFloatComma: _propTypes["default"].bool,
496
+ themeType: _propTypes["default"].string,
497
+ themeName: _propTypes["default"].string,
498
+ style: _propTypes["default"].object,
499
+ className: _propTypes["default"].string,
500
+ data: _propTypes["default"].object.isRequired,
501
+ updateData: _propTypes["default"].number,
502
+ schema: _propTypes["default"].object,
503
+ onError: _propTypes["default"].func,
504
+ onChange: _propTypes["default"].func,
505
+ onValueChange: _propTypes["default"].func
506
+ };
507
+
508
+ var _default = (0, _styles.withStyles)(styles)(JsonConfigComponent);
509
+
510
+ exports["default"] = _default;
511
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["styles","theme","root","width","height","JsonConfigComponent","props","commandRunning","setState","id","state","val","alive","data","value","cb","onValueChange","_data","Object","keys","forEach","attr","startsWith","changed","JSON","stringify","originalData","onChange","error","errors","parse","onError","length","Array","isArray","a","forceUpdateHandlers","updateData","systemConfig","schema","buildDependencies","readData","custom","common","Promise","resolve","socket","getObject","adapterName","instance","then","obj","readSettings","getCompactSystemConfig","getState","subscribeState","onAlive","_list","items","flatten","attrs","confirm","alsoDependsOn","dep","console","warn","replace","confirmDependsOn","depObj","cancel","push","onChangeDependsOn","hidden","hiddenDependsOn","label","labelDependsOn","help","helpDependsOn","item","type","onCommandRunning","themeType","themeName","customs","dateFormat","isFloatComma","multiEdit","customObj","instanceObj","forceUpdate","registerOnForceUpdate","classes","renderItem","i18n","lang","I18n","getLanguage","path","fileExists","exists","fileName","readFile","json","file","undefined","extendTranslations","e","Component","propTypes","PropTypes","object","isRequired","string","number","bool","style","className","func","withStyles"],"sources":["JsonConfigComponent/index.jsx"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport LinearProgress from '@mui/material/LinearProgress';\n\nimport I18n from '@iobroker/adapter-react-v5/i18n';\n\nimport ConfigTabs from './ConfigTabs';\nimport ConfigPanel from './ConfigPanel';\n\nconst styles = theme => ({\n root: {\n width: '100%',\n height: '100%'\n }\n});\n\nclass JsonConfigComponent extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n originalData: JSON.stringify(this.props.data),\n changed: false,\n errors: {\n\n },\n updateData: this.props.updateData,\n systemConfig: null,\n alive: false,\n commandRunning: false,\n };\n\n this.forceUpdateHandlers = {};\n\n this.schema = JSON.parse(JSON.stringify(this.props.schema));\n this.buildDependencies(this.schema);\n\n this.readData();\n }\n\n static getDerivedStateFromProps(props, state) {\n if (JSON.stringify(props.updateData) !== JSON.stringify(state.updateData)) {\n return {updateData: props.updateData, originalData: JSON.stringify(props.data)};\n } else {\n return null;\n }\n }\n\n static loadI18n(socket, i18n, adapterName) {\n if (i18n === true || (i18n && typeof i18n === 'string')) {\n const lang = I18n.getLanguage();\n const path = typeof i18n === 'string' ? i18n : 'i18n';\n return socket.fileExists(adapterName + '.admin', `${path}/${lang}.json`)\n .then(exists => {\n if (exists) {\n return `${path}/${lang}.json`;\n } else {\n return socket.fileExists(adapterName + '.admin', `${path}/${lang}/translations.json`)\n .then(exists =>\n exists ? `${path}/${lang}/translations.json` : '')\n }\n })\n .then(fileName => {\n if (fileName) {\n return socket.readFile(adapterName + '.admin', fileName)\n .then(json => {\n if (json.file !== undefined) {\n json = json.file;\n }\n try {\n json = JSON.parse(json);\n // apply file to I18n\n I18n.extendTranslations(json, lang);\n } catch (e) {\n console.error(`Cannot parse language file \"${adapterName}.admin/${fileName}: ${e}`);\n }\n })\n } else {\n console.warn(`Cannot find i18n for ${adapterName} / ${fileName}`);\n return Promise.resolve();\n }\n });\n } else if (i18n && typeof i18n === 'object') {\n I18n.extendTranslations(i18n);\n return Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n\n onCommandRunning = commandRunning => this.setState( {commandRunning});\n\n readSettings() {\n if ((this.props.custom || this.props.common) && this.props.data) {\n return Promise.resolve();\n } else {\n return this.props.socket.getObject(`system.adapter.${this.props.adapterName}.${this.props.instance}`)\n .then(obj => this.setState({common: obj.common, data: this.props.data || obj.native}));\n }\n }\n\n readData() {\n this.readSettings()\n .then(() => this.props.socket.getCompactSystemConfig())\n .then(systemConfig =>\n this.props.socket.getState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`)\n .then(state => {\n if (this.props.custom) {\n this.setState({systemConfig: systemConfig.common, alive: !!(state && state.val)});\n } else {\n this.setState({systemConfig: systemConfig.common, alive: !!(state && state.val)}, () =>\n this.props.socket.subscribeState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`, this.onAlive));\n }\n }));\n }\n\n onAlive = (id, state) => {\n if ((state?.val || false) !== this.state.alive) {\n this.setState({alive: state?.val || false});\n }\n }\n\n onChange = (data, value, cb) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(data, value);\n cb && cb();\n } else {\n const state = {data};\n\n const _data = {};\n // remove all attributes starting with \"_\"\n Object.keys(data).forEach(attr => !attr.startsWith('_') && (_data[attr] = data[attr]));\n\n state.changed = JSON.stringify(_data) !== this.state.originalData;\n\n this.setState({state}, () => {\n this.props.onChange(_data, state.changed);\n cb && cb();\n });\n }\n }\n\n onError = (attr, error) => {\n const errors = JSON.parse(JSON.stringify(this.state.errors));\n if (error) {\n errors[attr] = error;\n } else {\n delete errors[attr];\n }\n\n if (JSON.stringify(errors) !== JSON.parse(JSON.stringify(this.state.errors))) {\n this.setState({errors}, () =>\n this.props.onError(!!Object.keys(this.state.errors).length));\n }\n }\n\n flatten(schema, _list) {\n _list = _list || {};\n if (schema.items) {\n Object.keys(schema.items).forEach(attr => {\n _list[attr] = schema.items[attr];\n this.flatten(schema.items[attr], _list);\n });\n }\n\n return _list;\n }\n\n buildDependencies(schema) {\n const attrs = this.flatten(schema);\n Object.keys(attrs).forEach(attr => {\n if (attrs[attr].confirm?.alsoDependsOn) {\n attrs[attr].confirm?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].confirmDependsOn = attrs[dep].confirmDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n if (depObj.confirm) {\n depObj.confirm.cancel = 'Undo';\n }\n\n attrs[dep].confirmDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].onChange?.alsoDependsOn) {\n attrs[attr].onChange?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].onChangeDependsOn = attrs[dep].onChangeDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].onChangeDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].hidden?.alsoDependsOn) {\n attrs[attr].hidden?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].hiddenDependsOn = attrs[dep].hiddenDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].hiddenDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].label?.alsoDependsOn) {\n attrs[attr].label?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].labelDependsOn = attrs[dep].labelDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].labelDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].help?.alsoDependsOn) {\n attrs[attr].help?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].helpDependsOn = attrs[dep].helpDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].helpDependsOn.push(depObj);\n }\n });\n }\n });\n }\n\n renderItem(item) {\n if (item.type === 'tabs') {\n return <ConfigTabs\n onCommandRunning={this.onCommandRunning}\n commandRunning={this.state.commandRunning}\n socket={this.props.socket}\n adapterName={this.props.adapterName}\n instance={this.props.instance}\n common={this.props.common}\n alive={this.state.alive}\n themeType={this.props.themeType}\n themeName={this.props.themeName}\n data={this.props.data}\n originalData={JSON.parse(this.state.originalData)}\n schema={item}\n systemConfig={this.state.systemConfig}\n customs={this.props.customs}\n dateFormat={this.props.dateFormat}\n isFloatComma={this.props.isFloatComma}\n multiEdit={this.props.multiEdit}\n\n custom={this.props.custom}\n customObj={this.props.customObj}\n instanceObj={this.props.instanceObj}\n\n forceUpdate={this.forceUpdate}\n registerOnForceUpdate={this.registerOnForceUpdate}\n\n onChange={this.onChange}\n onError={(attr, error) => this.onError(attr, error)}\n />;\n } else if (item.type === 'panel' || !item.type) {\n return <ConfigPanel\n index={1000}\n isParentTab={true}\n onCommandRunning={this.onCommandRunning}\n commandRunning={this.state.commandRunning}\n socket={this.props.socket}\n adapterName={this.props.adapterName}\n instance={this.props.instance}\n common={this.props.common}\n alive={this.state.alive}\n themeType={this.props.themeType}\n themeName={this.props.themeName}\n data={this.props.data}\n originalData={JSON.parse(this.state.originalData)}\n schema={item}\n systemConfig={this.state.systemConfig}\n customs={this.props.customs}\n dateFormat={this.props.dateFormat}\n isFloatComma={this.props.isFloatComma}\n multiEdit={this.props.multiEdit}\n\n forceUpdate={this.forceUpdate}\n registerOnForceUpdate={this.registerOnForceUpdate}\n\n custom={this.props.custom}\n customObj={this.props.customObj}\n instanceObj={this.props.instanceObj}\n\n onChange={this.onChange}\n onError={(attr, error) => this.onError(attr, error)}\n />\n }\n }\n\n forceUpdate = (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.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\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
@@ -641,6 +641,9 @@ If you still have questions, try to find an answer [here](https://mui.com/guides
641
641
  -->
642
642
 
643
643
  ## Changelog
644
+ ### 3.0.0 (2022-05-24)
645
+ * (bluefox) Added JsonConfigComponent
646
+
644
647
  ### 2.1.11 (2022-05-24)
645
648
  * (bluefox) Update file browser. It supports now the file changed events.
646
649
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iobroker/adapter-react-v5",
3
- "version": "2.1.11",
3
+ "version": "3.0.0",
4
4
  "description": "React classes to develop admin interfaces for ioBroker with react.",
5
5
  "author": {
6
6
  "name": "bluefox",