@iobroker/adapter-react-v5 2.1.5 → 2.1.9

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 (126) hide show
  1. package/Components/404.js +17 -25
  2. package/Components/404.js.map +1 -1
  3. package/Components/ColorPicker.js +25 -35
  4. package/Components/ColorPicker.js.map +1 -1
  5. package/Components/ComplexCron.js +29 -37
  6. package/Components/ComplexCron.js.map +1 -1
  7. package/Components/FileBrowser.js +41 -62
  8. package/Components/FileBrowser.js.map +1 -1
  9. package/Components/FileViewer.js +18 -28
  10. package/Components/FileViewer.js.map +1 -1
  11. package/Components/Icon.js +15 -25
  12. package/Components/Icon.js.map +1 -1
  13. package/Components/IconPicker.js +6 -6
  14. package/Components/IconPicker.js.map +1 -1
  15. package/Components/IconSelector.js +25 -31
  16. package/Components/IconSelector.js.map +1 -1
  17. package/Components/Image.js +15 -25
  18. package/Components/Image.js.map +1 -1
  19. package/Components/Loader.js +14 -24
  20. package/Components/Loader.js.map +1 -1
  21. package/Components/Loaders/PT.js +13 -23
  22. package/Components/Loaders/PT.js.map +1 -1
  23. package/Components/Loaders/Vendor.js +14 -24
  24. package/Components/Loaders/Vendor.js.map +1 -1
  25. package/Components/Logo.js +18 -28
  26. package/Components/Logo.js.map +1 -1
  27. package/Components/MDUtils.js +14 -11
  28. package/Components/MDUtils.js.map +1 -1
  29. package/Components/ObjectBrowser.js +133 -203
  30. package/Components/ObjectBrowser.js.map +1 -1
  31. package/Components/Router.js +13 -21
  32. package/Components/Router.js.map +1 -1
  33. package/Components/SaveCloseButtons.js +15 -25
  34. package/Components/SaveCloseButtons.js.map +1 -1
  35. package/Components/Schedule.js +23 -37
  36. package/Components/Schedule.js.map +1 -1
  37. package/Components/SelectWithIcon.js +18 -26
  38. package/Components/SelectWithIcon.js.map +1 -1
  39. package/Components/SimpleCron/cron2text.js.map +1 -1
  40. package/Components/SimpleCron/cronText.js +2 -2
  41. package/Components/SimpleCron/cronText.js.map +1 -1
  42. package/Components/SimpleCron/index.js +24 -34
  43. package/Components/SimpleCron/index.js.map +1 -1
  44. package/Components/SimpleCron/jquery.cron.locale.js.map +1 -1
  45. package/Components/TabContainer.js +18 -28
  46. package/Components/TabContainer.js.map +1 -1
  47. package/Components/TabContent.js +17 -27
  48. package/Components/TabContent.js.map +1 -1
  49. package/Components/TabHeader.js +13 -23
  50. package/Components/TabHeader.js.map +1 -1
  51. package/Components/TextWithIcon.js +5 -5
  52. package/Components/TextWithIcon.js.map +1 -1
  53. package/Components/ToggleThemeMenu.js +2 -2
  54. package/Components/ToggleThemeMenu.js.map +1 -1
  55. package/Components/TreeTable.js +21 -42
  56. package/Components/TreeTable.js.map +1 -1
  57. package/Components/Utils.js +34 -42
  58. package/Components/Utils.js.map +1 -1
  59. package/Components/copy-to-clipboard.js.map +1 -1
  60. package/Connection.js +3367 -0
  61. package/Connection.js.map +1 -0
  62. package/Dialogs/ComplexCron.js +15 -25
  63. package/Dialogs/ComplexCron.js.map +1 -1
  64. package/Dialogs/Confirm.js +15 -25
  65. package/Dialogs/Confirm.js.map +1 -1
  66. package/Dialogs/Cron.js +19 -27
  67. package/Dialogs/Cron.js.map +1 -1
  68. package/Dialogs/Error.js +15 -25
  69. package/Dialogs/Error.js.map +1 -1
  70. package/Dialogs/Message.js +15 -25
  71. package/Dialogs/Message.js.map +1 -1
  72. package/Dialogs/SelectID.js +19 -27
  73. package/Dialogs/SelectID.js.map +1 -1
  74. package/Dialogs/SimpleCron.js +15 -25
  75. package/Dialogs/SimpleCron.js.map +1 -1
  76. package/Dialogs/TextInput.js +18 -28
  77. package/Dialogs/TextInput.js.map +1 -1
  78. package/GenericApp.js +41 -50
  79. package/GenericApp.js.map +1 -1
  80. package/Prompt.js +21 -0
  81. package/Prompt.js.map +1 -0
  82. package/README.md +9 -1
  83. package/Theme.js +422 -0
  84. package/Theme.js.map +1 -0
  85. package/i18n/de.json +3 -3
  86. package/i18n/en.json +3 -3
  87. package/i18n/es.json +3 -3
  88. package/i18n/fr.json +3 -3
  89. package/i18n/it.json +3 -3
  90. package/i18n/nl.json +3 -3
  91. package/i18n/pl.json +3 -3
  92. package/i18n/pt.json +3 -3
  93. package/i18n/ru.json +3 -3
  94. package/i18n/zh-cn.json +3 -3
  95. package/i18n.js +180 -0
  96. package/i18n.js.map +1 -0
  97. package/icons/IconAdapter.js +2 -2
  98. package/icons/IconAdapter.js.map +1 -1
  99. package/icons/IconAlias.js +2 -2
  100. package/icons/IconAlias.js.map +1 -1
  101. package/icons/IconChannel.js +2 -2
  102. package/icons/IconChannel.js.map +1 -1
  103. package/icons/IconClearFilter.js +2 -2
  104. package/icons/IconClearFilter.js.map +1 -1
  105. package/icons/IconClosed.js +2 -2
  106. package/icons/IconClosed.js.map +1 -1
  107. package/icons/IconCopy.js +2 -2
  108. package/icons/IconCopy.js.map +1 -1
  109. package/icons/IconDevice.js +2 -2
  110. package/icons/IconDevice.js.map +1 -1
  111. package/icons/IconDocument.js +2 -2
  112. package/icons/IconDocument.js.map +1 -1
  113. package/icons/IconExpert.js +2 -2
  114. package/icons/IconExpert.js.map +1 -1
  115. package/icons/IconFx.js +2 -2
  116. package/icons/IconFx.js.map +1 -1
  117. package/icons/IconInstance.js +2 -2
  118. package/icons/IconInstance.js.map +1 -1
  119. package/icons/IconLogout.js +2 -2
  120. package/icons/IconLogout.js.map +1 -1
  121. package/icons/IconOpen.js +2 -2
  122. package/icons/IconOpen.js.map +1 -1
  123. package/icons/IconState.js +6 -6
  124. package/icons/IconState.js.map +1 -1
  125. package/package.json +11 -9
  126. package/gulpfile.js +0 -113
package/GenericApp.js CHANGED
@@ -1,10 +1,32 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
6
+
3
7
  Object.defineProperty(exports, "__esModule", {
4
8
  value: true
5
9
  });
6
10
  exports["default"] = void 0;
7
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 _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
21
+
22
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
23
+
24
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
25
+
26
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
27
+
28
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
29
+
8
30
  var _react = _interopRequireDefault(require("react"));
9
31
 
10
32
  var _Connection = _interopRequireWildcard(require("./Connection"));
@@ -41,42 +63,16 @@ require("./index.css");
41
63
 
42
64
  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
65
 
44
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(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 _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
47
-
48
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
66
+ 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; }
49
67
 
50
68
  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; }
51
69
 
52
- 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) { _defineProperty(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; }
53
-
54
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
55
-
56
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
57
-
58
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
59
-
60
- function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
61
-
62
- function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
70
+ 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; }
63
71
 
64
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
65
-
66
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
67
-
68
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
69
-
70
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
71
-
72
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
72
+ 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); }; }
73
73
 
74
74
  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; } }
75
75
 
76
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
77
-
78
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
79
-
80
76
  if (!window.localStorage) {
81
77
  window.localStorage = {
82
78
  getItem: function getItem() {
@@ -93,7 +89,7 @@ if (!window.localStorage) {
93
89
 
94
90
 
95
91
  var GenericApp = /*#__PURE__*/function (_Router) {
96
- _inherits(GenericApp, _Router);
92
+ (0, _inherits2["default"])(GenericApp, _Router);
97
93
 
98
94
  var _super = _createSuper(GenericApp);
99
95
 
@@ -104,8 +100,7 @@ var GenericApp = /*#__PURE__*/function (_Router) {
104
100
  function GenericApp(props, settings) {
105
101
  var _this;
106
102
 
107
- _classCallCheck(this, GenericApp);
108
-
103
+ (0, _classCallCheck2["default"])(this, GenericApp);
109
104
  var ConnectionClass = props.Connection || settings.Connection || _Connection["default"]; // Remove `!Connection.isWeb() && window.adapterName !== 'material'` when iobroker.socket will support native ws
110
105
 
111
106
  if (!ConnectionClass.isWeb() && window.io && window.location.port === '3000') {
@@ -118,8 +113,7 @@ var GenericApp = /*#__PURE__*/function (_Router) {
118
113
  }
119
114
 
120
115
  _this = _super.call(this, props);
121
-
122
- _defineProperty(_assertThisInitialized(_this), "onSystemConfigChanged", function (id, obj) {
116
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onSystemConfigChanged", function (id, obj) {
123
117
  if (obj && id === 'system.config') {
124
118
  var _obj$common;
125
119
 
@@ -140,8 +134,7 @@ var GenericApp = /*#__PURE__*/function (_Router) {
140
134
  }
141
135
  }
142
136
  });
143
-
144
- _defineProperty(_assertThisInitialized(_this), "onReceiveMessage", function (message) {
137
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onReceiveMessage", function (message) {
145
138
  if (message !== null && message !== void 0 && message.data) {
146
139
  if (message.data === 'updateTheme') {
147
140
  var newThemeName = _Utils["default"].getThemeName();
@@ -165,8 +158,7 @@ var GenericApp = /*#__PURE__*/function (_Router) {
165
158
  }
166
159
  }
167
160
  });
168
-
169
- _defineProperty(_assertThisInitialized(_this), "onResize", function () {
161
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onResize", function () {
170
162
  _this.resizeTimer && clearTimeout(_this.resizeTimer);
171
163
  _this.resizeTimer = setTimeout(function () {
172
164
  _this.resizeTimer = null;
@@ -176,7 +168,6 @@ var GenericApp = /*#__PURE__*/function (_Router) {
176
168
  });
177
169
  }, 200);
178
170
  });
179
-
180
171
  (0, _Prompt["default"])();
181
172
  var query = (window.location.search || '').replace(/^\?/, '').replace(/#.*$/, '');
182
173
  var args = {};
@@ -349,7 +340,7 @@ var GenericApp = /*#__PURE__*/function (_Router) {
349
340
  return _this;
350
341
  }
351
342
 
352
- _createClass(GenericApp, [{
343
+ (0, _createClass2["default"])(GenericApp, [{
353
344
  key: "componentDidMount",
354
345
  value:
355
346
  /**
@@ -358,8 +349,7 @@ var GenericApp = /*#__PURE__*/function (_Router) {
358
349
  function componentDidMount() {
359
350
  window.addEventListener('resize', this.onResize, true);
360
351
  window.addEventListener('message', this.onReceiveMessage, false);
361
-
362
- _get(_getPrototypeOf(GenericApp.prototype), "componentDidMount", this).call(this);
352
+ (0, _get2["default"])((0, _getPrototypeOf2["default"])(GenericApp.prototype), "componentDidMount", this).call(this);
363
353
  }
364
354
  /**
365
355
  * Called immediately before a component is destroyed.
@@ -370,8 +360,7 @@ var GenericApp = /*#__PURE__*/function (_Router) {
370
360
  value: function componentWillUnmount() {
371
361
  window.removeEventListener('resize', this.onResize, true);
372
362
  window.removeEventListener('message', this.onReceiveMessage, false);
373
-
374
- _get(_getPrototypeOf(GenericApp.prototype), "componentWillUnmount", this).call(this);
363
+ (0, _get2["default"])((0, _getPrototypeOf2["default"])(GenericApp.prototype), "componentWillUnmount", this).call(this);
375
364
  }
376
365
  }, {
377
366
  key: "createTheme",
@@ -722,7 +711,10 @@ var GenericApp = /*#__PURE__*/function (_Router) {
722
711
  value: function renderToast() {
723
712
  var _this8 = this;
724
713
 
725
- if (!this.state.toast) return null;
714
+ if (!this.state.toast) {
715
+ return null;
716
+ }
717
+
726
718
  return /*#__PURE__*/_react["default"].createElement(_Snackbar["default"], {
727
719
  anchorOrigin: {
728
720
  vertical: 'bottom',
@@ -869,14 +861,14 @@ var GenericApp = /*#__PURE__*/function (_Router) {
869
861
  }, {
870
862
  key: "_updateNativeValue",
871
863
  value: function _updateNativeValue(obj, attrs, value) {
872
- if (_typeof(attrs) !== 'object') {
864
+ if ((0, _typeof2["default"])(attrs) !== 'object') {
873
865
  attrs = attrs.split('.');
874
866
  }
875
867
 
876
868
  var attr = attrs.shift();
877
869
 
878
870
  if (!attrs.length) {
879
- if (value && _typeof(value) === 'object') {
871
+ if (value && (0, _typeof2["default"])(value) === 'object') {
880
872
  if (JSON.stringify(obj[attr]) !== JSON.stringify(value)) {
881
873
  obj[attr] = value;
882
874
  return true;
@@ -890,8 +882,8 @@ var GenericApp = /*#__PURE__*/function (_Router) {
890
882
  } else {
891
883
  obj[attr] = obj[attr] || {};
892
884
 
893
- if (_typeof(obj[attr]) !== 'object') {
894
- throw new Error('attribute ' + attr + ' is no object, but ' + _typeof(obj[attr]));
885
+ if ((0, _typeof2["default"])(obj[attr]) !== 'object') {
886
+ throw new Error('attribute ' + attr + ' is no object, but ' + (0, _typeof2["default"])(obj[attr]));
895
887
  }
896
888
 
897
889
  return this._updateNativeValue(obj[attr], attrs, value);
@@ -1002,7 +994,6 @@ var GenericApp = /*#__PURE__*/function (_Router) {
1002
994
  }
1003
995
  }
1004
996
  }]);
1005
-
1006
997
  return GenericApp;
1007
998
  }(_Router2["default"]);
1008
999
 
package/GenericApp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["GenericApp.js"],"names":["window","localStorage","getItem","setItem","GenericApp","props","settings","ConnectionClass","Connection","isWeb","io","location","port","SocketClient","e","id","obj","socket","systemLang","common","language","I18n","setLanguage","_systemConfig","expertMode","setState","getExpertMode","message","data","newThemeName","Utils","getThemeName","setThemeName","theme","createTheme","themeName","themeType","getThemeType","onThemeChange","onThemeChanged","onToggleExpertMode","console","warn","JSON","stringify","resizeTimer","clearTimeout","setTimeout","width","getWidth","query","search","replace","args","trim","split","filter","t","forEach","b","parts","length","instance","undefined","parseInt","slice","tmp","pathname","adapterName","instanceId","newReact","Router","getLocation","tab","themeInstance","state","selectedTab","selectedTabNum","errorText","changed","connected","loaded","isConfigurationError","toast","bottomButtons","translations","require","Object","keys","lang","assign","setTranslations","savedNative","encryptedFields","sentryDSN","name","doNotLoadAllObjects","onProgress","progress","PROGRESS","CONNECTING","READY","onReady","objects","scripts","subscribeObject","onSystemConfigChanged","then","getSystemConfig","_secret","secret","getObject","instanceObj","waitPromise","sentryEnabled","diag","version","disableDataReporting","host","sentryStarted","Sentry","init","dsn","release","integrations","SentryIntegrations","Dedupe","sentryInited","uuidObj","uuid","configureScope","scope","setUser","Promise","resolve","onPrepareLoad","encryptedNative","parse","onConnectionReady","onError","err","error","showError","addEventListener","onResize","onReceiveMessage","removeEventListener","palette","mode","sessionStorage","value","result","i","String","fromCharCode","charCodeAt","selectTab","index","attr","encrypt","decrypt","includes","push","_socket","emit","doc","rows","item","webExtendable","map","reject","ip","_host","IPs4","address","family","IPs6","hardware","networkInterfaces","eth","inter","isClose","oldObj","_oldObj","a","hasOwnProperty","onPrepareSave","setObject","globalThis","onClose","vertical","horizontal","classes","close","native","isChanged","newNative","getIsChanged","onSave","attrs","shift","Error","_updateNativeValue","cb","text","renderError","renderToast","renderSaveCloseButtons","SIZES","xs","sm","md","lg","xl","innerWidth","reverse","widthComputed","find","key","parent","$iframeDialog","postMessage","propTypes","PropTypes","string","func","object","array","bool"],"mappings":"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","sourcesContent":["/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport Connection, {PROGRESS} from './Connection';\nimport PropTypes from 'prop-types';\nimport * as Sentry from '@sentry/browser';\nimport * as SentryIntegrations from '@sentry/integrations';\n\nimport DialogError from './Dialogs/Error';\nimport Snackbar from '@mui/material/Snackbar';\nimport IconButton from '@mui/material/IconButton';\n\nimport IconClose from '@mui/icons-material/Close';\n\nimport printPrompt from './Prompt';\nimport theme from './Theme';\nimport Loader from './Components/Loader';\nimport Router from './Components/Router';\nimport Utils from './Components/Utils';\nimport SaveCloseButtons from './Components/SaveCloseButtons';\nimport I18n from './i18n';\n\nimport './index.css';\n\nif (!window.localStorage) {\n window.localStorage = {\n getItem: () => null,\n setItem: () => null,\n };\n}\n\n/**\n * @extends {Router<import('./types').GenericAppProps, import('./types').GenericAppState>}\n */\nclass GenericApp extends Router {\n /**\n * @param {import('./types').GenericAppProps} props\n * @param {import('./types').GenericAppSettings | undefined} settings\n */\n constructor(props, settings) {\n const ConnectionClass = props.Connection || settings.Connection || Connection;\n\n // Remove `!Connection.isWeb() && window.adapterName !== 'material'` when iobroker.socket will support native ws\n if (!ConnectionClass.isWeb() && window.io && window.location.port === '3000') {\n try {\n const io = new window.SocketClient();\n delete window.io;\n window.io = io;\n } catch (e) {\n // ignore\n }\n }\n\n super(props);\n\n printPrompt();\n\n let query = (window.location.search || '').replace(/^\\?/, '').replace(/#.*$/, '');\n let args = {};\n query.trim().split('&').filter(t => t.trim()).forEach(b => {\n const parts = b.split('=');\n args[parts[0]] = parts.length === 2 ? parts[1] : true;\n if (args[parts[0]] === 'true') {\n args[parts[0]] = true;\n } else if (args[parts[0]] === 'false') {\n args[parts[0]] = false;\n }\n });\n\n // extract instance from URL\n this.instance = args.instance !== undefined ? parseInt(args.instance, 10) || 0 : (parseInt(window.location.search.slice(1), 10) || 0);\n // extract adapter name from URL\n const tmp = window.location.pathname.split('/');\n this.adapterName = settings?.adapterName || props.adapterName || window.adapterName || tmp[tmp.length - 2] || 'iot';\n this.instanceId = `system.adapter.${this.adapterName}.${this.instance}`;\n this.newReact = args.newReact === true; // it is admin5\n\n const location = Router.getLocation();\n location.tab = location.tab || window.localStorage.getItem(this.adapterName + '-adapter') || '';\n\n const themeInstance = this.createTheme();\n\n this.state = {\n selectedTab: window.localStorage.getItem(this.adapterName + '-adapter') || '',\n selectedTabNum: -1,\n native: {},\n errorText: '',\n changed: false,\n connected: false,\n loaded: false,\n isConfigurationError: '',\n expertMode: false,\n toast: '',\n theme: themeInstance,\n themeName: this.getThemeName(themeInstance),\n themeType: this.getThemeType(themeInstance),\n bottomButtons: (settings && settings.bottomButtons) === false ? false : ((props && props.bottomButtons) === false ? false : true),\n width: GenericApp.getWidth(),\n };\n\n // init translations\n const translations = {\n 'en': require('./i18n/en.json'),\n 'de': require('./i18n/de.json'),\n 'ru': require('./i18n/ru.json'),\n 'pt': require('./i18n/pt.json'),\n 'nl': require('./i18n/nl.json'),\n 'fr': require('./i18n/fr.json'),\n 'it': require('./i18n/it.json'),\n 'es': require('./i18n/es.json'),\n 'pl': require('./i18n/pl.json'),\n 'zh-cn': require('./i18n/zh-cn.json'),\n };\n\n // merge together\n if (settings && settings.translations) {\n Object.keys(settings.translations).forEach(lang => translations[lang] = Object.assign(translations[lang], settings.translations[lang]));\n } else if (props.translations) {\n Object.keys(props.translations).forEach(lang => translations[lang] = Object.assign(translations[lang], props.translations[lang]));\n }\n\n I18n.setTranslations(translations);\n\n this.savedNative = {}; // to detect if the config changed\n\n this.encryptedFields = props.encryptedFields || settings?.encryptedFields || [];\n\n this.sentryDSN = (settings && settings.sentryDSN) || props.sentryDSN;\n\n this.socket = new ConnectionClass({\n ...(props?.socket || settings?.socket),\n name: this.adapterName,\n doNotLoadAllObjects: settings?.doNotLoadAllObjects,\n onProgress: progress => {\n if (progress === PROGRESS.CONNECTING) {\n this.setState({connected: false});\n } else if (progress === PROGRESS.READY) {\n this.setState({connected: true});\n } else {\n this.setState({connected: true});\n }\n },\n onReady: (objects, scripts) => {\n I18n.setLanguage(this.socket.systemLang);\n\n // subscribe because of language and expert mode\n this.socket.subscribeObject('system.config', this.onSystemConfigChanged)\n .then(() => this.getSystemConfig())\n .then(obj => {\n this._secret = (typeof obj !== 'undefined' && obj.native && obj.native.secret) || 'Zgfr56gFe87jJOM';\n this._systemConfig = obj?.common || {};\n return this.socket.getObject(this.instanceId);\n })\n .then(instanceObj => {\n let waitPromise;\n\n const sentryEnabled =\n this._systemConfig.diag !== 'none' &&\n instanceObj &&\n instanceObj.common &&\n instanceObj.common.name &&\n instanceObj.common.version &&\n !instanceObj.common.disableDataReporting &&\n window.location.host !== 'localhost:3000';\n\n // activate sentry plugin\n if (!this.sentryStarted && this.sentryDSN && sentryEnabled) {\n this.sentryStarted = true;\n\n Sentry.init({\n dsn: this.sentryDSN,\n release: `iobroker.${instanceObj.common.name}@${instanceObj.common.version}`,\n integrations: [\n new SentryIntegrations.Dedupe()\n ]\n });\n }\n\n // read UUID and init sentry with it.\n // for backward compatibility it will be processed separately from above logic: some adapters could still have this.sentryDSN as undefined\n if (!this.sentryInited && sentryEnabled) {\n this.sentryInited = true;\n\n waitPromise = this.socket.getObject('system.meta.uuid')\n .then(uuidObj => {\n if (uuidObj && uuidObj.native && uuidObj.native.uuid) {\n Sentry.configureScope(scope =>\n scope.setUser({id: uuidObj.native.uuid}));\n }\n });\n }\n\n waitPromise = waitPromise || Promise.resolve();\n\n waitPromise\n .then(() => {\n if (instanceObj) {\n this.common = instanceObj?.common;\n this.onPrepareLoad(instanceObj.native, instanceObj.encryptedNative); // decode all secrets\n this.savedNative = JSON.parse(JSON.stringify(instanceObj.native));\n this.setState({native: instanceObj.native, loaded: true, expertMode: this.getExpertMode()}, () =>\n this.onConnectionReady && this.onConnectionReady());\n } else {\n console.warn('Cannot load instance settings');\n this.setState({native: {}, loaded: true, expertMode: this.getExpertMode()}, () => this.onConnectionReady && this.onConnectionReady());\n }\n });\n });\n },\n onError: err => {\n console.error(err);\n this.showError(err);\n }\n });\n }\n\n onSystemConfigChanged = (id, obj) => {\n if (obj && id === 'system.config') {\n if (this.socket.systemLang !== obj?.common.language) {\n this.socket.systemLang = obj?.common.language || 'en';\n I18n.setLanguage(this.socket.systemLang);\n }\n\n if (this._systemConfig.expertMode !== !!obj?.common?.expertMode) {\n this._systemConfig = obj?.common || {};\n this.setState({expertMode: this.getExpertMode()});\n } else {\n this._systemConfig = obj?.common || {};\n }\n }\n }\n\n /**\n * Called immediately after a component is mounted. Setting state here will trigger re-rendering.\n */\n componentDidMount() {\n window.addEventListener('resize', this.onResize, true);\n window.addEventListener('message', this.onReceiveMessage, false);\n super.componentDidMount();\n }\n\n /**\n * Called immediately before a component is destroyed.\n */\n componentWillUnmount() {\n window.removeEventListener('resize', this.onResize, true);\n window.removeEventListener('message', this.onReceiveMessage, false);\n super.componentWillUnmount();\n }\n\n onReceiveMessage = message => {\n if (message?.data) {\n if (message.data === 'updateTheme') {\n const newThemeName = Utils.getThemeName()\n Utils.setThemeName(Utils.getThemeName());\n\n const theme = this.createTheme(newThemeName);\n\n this.setState({\n theme,\n themeName: this.getThemeName(theme),\n themeType: this.getThemeType(theme)\n }, () => {\n this.props.onThemeChange && this.props.onThemeChange(newThemeName);\n this.onThemeChanged && this.onThemeChanged(newThemeName);\n });\n } else if (message.data === 'updateExpertMode') {\n this.onToggleExpertMode && this.onToggleExpertMode(this.getExpertMode());\n } else {\n console.warn('Received unknown message: ' + JSON.stringify(message.data));\n }\n }\n };\n\n /**\n * @private\n */\n onResize = () => {\n this.resizeTimer && clearTimeout(this.resizeTimer);\n this.resizeTimer = setTimeout(() => {\n this.resizeTimer = null;\n this.setState({width: GenericApp.getWidth()});\n }, 200);\n };\n\n /**\n * Gets the width depending on the window inner width.\n * @returns {import('./types').Width}\n */\n static getWidth() {\n /**\n * innerWidth |xs sm md lg xl\n * |-------|-------|-------|-------|------>\n * width | xs | sm | md | lg | xl\n */\n\n const SIZES = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n };\n const width = window.innerWidth;\n const keys = Object.keys(SIZES).reverse();\n const widthComputed = keys.find(key => width >= SIZES[key]);\n\n return widthComputed || 'xs';\n }\n\n /**\n * Get a theme\n * @param {string} name Theme name\n * @returns {import('./types').Theme}\n */\n createTheme(name = '') {\n return theme(Utils.getThemeName(name));\n }\n\n /**\n * Get the theme name\n * @param {import('./types').Theme} theme Theme\n * @returns {string} Theme name\n */\n getThemeName(theme) {\n return theme.name;\n }\n\n /**\n * Get the theme type\n * @param {import('./types').Theme} theme Theme\n * @returns {string} Theme type\n */\n getThemeType(theme) {\n return theme.palette.mode;\n }\n\n /**\n * Changes the current theme\n */\n toggleTheme() {\n const themeName = this.state.themeName;\n\n // dark => blue => colored => light => dark\n const newThemeName = themeName === 'dark' ? 'blue' :\n (themeName === 'blue' ? 'colored' :\n (themeName === 'colored' ? 'light' : 'dark'));\n\n Utils.setThemeName(newThemeName);\n\n const theme = this.createTheme(newThemeName);\n\n this.setState({\n theme,\n themeName: this.getThemeName(theme),\n themeType: this.getThemeType(theme)\n }, () => {\n this.props.onThemeChange && this.props.onThemeChange(newThemeName);\n this.onThemeChanged && this.onThemeChanged(newThemeName);\n });\n }\n\n /**\n * Gets the system configuration.\n * @returns {Promise<ioBroker.OtherObject>}\n */\n getSystemConfig() {\n return this.socket.getSystemConfig();\n }\n\n /**\n * Get current expert mode\n * @returns {boolean}\n */\n getExpertMode() {\n return window.sessionStorage.getItem('App.expertMode') === 'true' || !!this._systemConfig.expertMode;\n }\n\n /**\n * Gets called when the socket.io connection is ready.\n * You can overload this function to execute own commands.\n */\n onConnectionReady() {\n }\n\n /**\n * Encrypts a string.\n * @param {string} value\n * @returns {string}\n */\n encrypt(value) {\n let result = '';\n for (let i = 0; i < value.length; i++) {\n result += String.fromCharCode(this._secret[i % this._secret.length].charCodeAt(0) ^ value.charCodeAt(i));\n }\n return result;\n }\n\n /**\n * Decrypts a string.\n * @param {string} value\n * @returns {string}\n */\n decrypt(value) {\n let result = '';\n for (let i = 0; i < value.length; i++) {\n result += String.fromCharCode(this._secret[i % this._secret.length].charCodeAt(0) ^ value.charCodeAt(i));\n }\n return result;\n }\n\n /**\n * Gets called when the navigation hash changes.\n * You may override this if needed.\n */\n onHashChanged() {\n const location = Router.getLocation();\n if (location.tab !== this.state.selectedTab) {\n this.selectTab(location.tab);\n }\n }\n\n /**\n * Selects the given tab.\n * @param {string} tab\n * @param {number} [index]\n */\n selectTab(tab, index) {\n window.localStorage[this.adapterName + '-adapter'] = tab;\n this.setState({selectedTab: tab, selectedTabNum: index})\n }\n\n /**\n * Gets called before the settings are saved.\n * You may override this if needed.\n * @param {Record<string, any>} settings\n */\n onPrepareSave(settings) {\n // here you can encode values\n this.encryptedFields && this.encryptedFields.forEach(attr => {\n if (settings[attr]) {\n settings[attr] = this.encrypt(settings[attr]);\n }\n });\n\n return true;\n }\n\n /**\n * Gets called after the settings are loaded.\n * You may override this if needed.\n * @param {Record<string, any>} settings\n * @param {string[]} encryptedNative optional list of fields to be decrypted\n */\n onPrepareLoad(settings, encryptedNative) {\n // here you can encode values\n this.encryptedFields && this.encryptedFields.forEach(attr => {\n if (settings[attr]) {\n settings[attr] = this.decrypt(settings[attr]);\n }\n });\n encryptedNative && encryptedNative.forEach(attr => {\n this.encryptedFields = this.encryptedFields || [];\n !this.encryptedFields.includes(attr) && this.encryptedFields.push(attr);\n if (settings[attr]) {\n settings[attr] = this.decrypt(settings[attr]);\n }\n });\n }\n\n /**\n * Gets the extendable instances.\n * @returns {Promise<any[]>}\n */\n getExtendableInstances() {\n return new Promise(resolve => {\n this.socket._socket.emit('getObjectView', 'system', 'instance', null, (err, doc) => {\n if (err) {\n resolve([]);\n } else {\n resolve(doc.rows.filter(item => item.value.common.webExtendable).map(item => item.value));\n }\n });\n });\n }\n\n /**\n * Gets the IP addresses of the given host.\n * @param {string} host\n */\n getIpAddresses(host) {\n return new Promise((resolve, reject) => {\n this.socket._socket.emit('getHostByIp', host || this.common.host, (ip, _host) => {\n const IPs4 = [{name: '[IPv4] 0.0.0.0 - ' + I18n.t('ra_Listen on all IPs'), address: '0.0.0.0', family: 'ipv4'}];\n const IPs6 = [{name: '[IPv6] ::', address: '::', family: 'ipv6'}];\n if (_host) {\n host = _host;\n if (host.native.hardware && host.native.hardware.networkInterfaces) {\n Object.keys(host.native.hardware.networkInterfaces).forEach(eth =>\n host.native.hardware.networkInterfaces[eth].forEach(inter => {\n if (inter.family !== 'IPv6') {\n IPs4.push({name: '[' + inter.family + '] ' + inter.address + ' - ' + eth, address: inter.address, family: 'ipv4'});\n } else {\n IPs6.push({name: '[' + inter.family + '] ' + inter.address + ' - ' + eth, address: inter.address, family: 'ipv6'});\n }\n }));\n }\n IPs6.forEach(ip => IPs4.push(ip));\n }\n resolve(IPs4);\n });\n });\n }\n\n /**\n * Saves the settings to the server.\n * @param {boolean} isClose True if the user is closing the dialog.\n */\n onSave(isClose) {\n let oldObj;\n if (this.state.isConfigurationError) {\n this.setState({errorText: this.state.isConfigurationError});\n return;\n }\n\n this.socket.getObject(this.instanceId)\n .then(_oldObj => {\n oldObj = _oldObj || {};\n\n for (const a in this.state.native) {\n if (this.state.native.hasOwnProperty(a)) {\n if (this.state.native[a] === null) {\n oldObj.native[a] = null;\n } else\n if (this.state.native[a] !== undefined) {\n oldObj.native[a] = JSON.parse(JSON.stringify(this.state.native[a]));\n } else {\n delete oldObj.native[a];\n }\n }\n }\n\n if (this.state.common) {\n for (const b in this.state.common) {\n if (this.state.common[b] === null) {\n oldObj.common[b] = null;\n } else\n if (this.state.common[b] !== undefined) {\n oldObj.common[b] = JSON.parse(JSON.stringify(this.state.common[b]));\n } else {\n delete oldObj.common[b];\n }\n }\n }\n\n if (this.onPrepareSave(oldObj.native) !== false) {\n return this.socket.setObject(this.instanceId, oldObj);\n } else {\n return Promise.reject('Invalid configuration');\n }\n })\n .then(() => {\n this.savedNative = oldObj.native;\n globalThis.changed = false;\n this.setState({changed: false});\n isClose && GenericApp.onClose();\n })\n .catch(e => {\n console.error(`Cannot save configuration: ${e}`);\n });\n }\n\n /**\n * Renders the toast.\n * @returns {JSX.Element | null} The JSX element.\n */\n renderToast() {\n if (!this.state.toast) return null;\n return (\n <Snackbar\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left',\n }}\n open={true}\n autoHideDuration={6000}\n onClose={() => this.setState({toast: ''})}\n ContentProps={{\n 'aria-describedby': 'message-id',\n }}\n message={<span id=\"message-id\">{this.state.toast}</span>}\n action={[\n <IconButton\n key=\"close\"\n aria-label=\"Close\"\n color=\"inherit\"\n className={this.props.classes.close}\n onClick={() => this.setState({toast: ''})}\n size=\"large\">\n <IconClose />\n </IconButton>,\n ]}\n />\n );\n }\n\n /**\n * Closes the dialog.\n * @private\n */\n static onClose() {\n if (typeof window.parent !== 'undefined' && window.parent) {\n try {\n if (window.parent.$iframeDialog && typeof window.parent.$iframeDialog.close === 'function') {\n window.parent.$iframeDialog.close();\n } else {\n window.parent.postMessage('close', '*');\n }\n } catch (e) {\n window.parent.postMessage('close', '*');\n }\n }\n }\n\n /**\n * Renders the error dialog.\n * @returns {JSX.Element | null} The JSX element.\n */\n renderError() {\n if (!this.state.errorText) {\n return null;\n } else {\n return <DialogError text={this.state.errorText} onClose={() => this.setState({errorText: ''})}/>;\n }\n }\n\n /**\n * Checks if the configuration has changed.\n * @param {Record<string, any>} [native] the new state\n */\n getIsChanged(native) {\n native = native || this.state.native;\n const isChanged = JSON.stringify(native) !== JSON.stringify(this.savedNative);\n\n if(isChanged) {\n globalThis.changed = true;\n } else {\n globalThis.changed = false;\n }\n\n return isChanged;\n }\n\n /**\n * Gets called when loading the configuration.\n * @param {Record<string, any>} newNative The new configuration object.\n */\n onLoadConfig(newNative) {\n if (JSON.stringify(newNative) !== JSON.stringify(this.state.native)) {\n this.setState({native: newNative, changed: this.getIsChanged(newNative)})\n }\n }\n\n /**\n * Sets the configuration error.\n * @param {string} errorText\n */\n setConfigurationError(errorText) {\n if (this.state.isConfigurationError !== errorText) {\n this.setState({isConfigurationError: errorText});\n }\n }\n\n /**\n * Renders the save and close buttons.\n * @returns {JSX.Element | undefined} The JSX element.\n */\n renderSaveCloseButtons() {\n if (this.state.bottomButtons) {\n return <SaveCloseButtons\n theme={this.state.theme}\n newReact={this.newReact}\n noTextOnButtons={this.state.width === 'xs' || this.state.width === 'sm' || this.state.width === 'md'}\n changed={this.state.changed}\n onSave={(isClose) => this.onSave(isClose)}\n onClose={() => GenericApp.onClose()}\n />;\n } else {\n return null;\n }\n }\n\n /**\n * @private\n * @param {Record<string, any>} obj\n * @param {any} attrs\n * @param {any} value\n * @returns {boolean | undefined}\n */\n _updateNativeValue(obj, attrs, value) {\n if (typeof attrs !== 'object') {\n attrs = attrs.split('.');\n }\n const attr = attrs.shift();\n if (!attrs.length) {\n if (value && typeof value === 'object') {\n if (JSON.stringify(obj[attr]) !== JSON.stringify(value)) {\n obj[attr] = value;\n return true;\n }\n } else if (obj[attr] !== value) {\n obj[attr] = value;\n return true;\n } else {\n return false;\n }\n\n } else {\n obj[attr] = obj[attr] || {};\n if (typeof obj[attr] !== 'object') {\n throw new Error('attribute ' + attr + ' is no object, but ' + typeof obj[attr]);\n }\n return this._updateNativeValue(obj[attr], attrs, value);\n }\n }\n\n /**\n * Update the native value\n * @param {string} attr The attribute name with dots as delimiter.\n * @param {any} value The new value.\n * @param {(() => void)} [cb] Callback which will be called upon completion.\n */\n updateNativeValue(attr, value, cb) {\n const native = JSON.parse(JSON.stringify(this.state.native));\n if (this._updateNativeValue(native, attr, value)) {\n const changed = this.getIsChanged(native);\n this.setState({native, changed}, cb);\n }\n }\n\n /**\n * Set the error text to be shown.\n * @param {string | JSX.Element} text\n */\n showError(text) {\n this.setState({errorText: text});\n }\n\n /**\n * Sets the toast to be shown.\n * @param {string} toast\n */\n showToast(toast) {\n this.setState({toast});\n }\n\n /**\n * Renders this component.\n * @returns {JSX.Element} The JSX element.\n */\n render() {\n if (!this.state.loaded) {\n return <Loader theme={this.state.themeType}/>;\n }\n\n return <div className=\"App\">\n {this.renderError()}\n {this.renderToast()}\n {this.renderSaveCloseButtons()}\n </div>;\n }\n}\n\nGenericApp.propTypes = {\n adapterName: PropTypes.string, // (optional) name of adapter\n onThemeChange: PropTypes.func, // (optional) called by theme change\n socket: PropTypes.object, // (optional) socket information (host, port)\n encryptedFields: PropTypes.array, // (optional) list of native attributes, that must be encrypted\n bottomButtons: PropTypes.bool, // If the bottom buttons (Save/Close) must be shown\n Connection: PropTypes.object, // If the bottom buttons (Save/Close) must be shown\n};\n\nexport default GenericApp;\n"],"file":"GenericApp.js"}
1
+ {"version":3,"file":"GenericApp.js","names":["window","localStorage","getItem","setItem","GenericApp","props","settings","ConnectionClass","Connection","isWeb","io","location","port","SocketClient","e","id","obj","socket","systemLang","common","language","I18n","setLanguage","_systemConfig","expertMode","setState","getExpertMode","message","data","newThemeName","Utils","getThemeName","setThemeName","theme","createTheme","themeName","themeType","getThemeType","onThemeChange","onThemeChanged","onToggleExpertMode","console","warn","JSON","stringify","resizeTimer","clearTimeout","setTimeout","width","getWidth","query","search","replace","args","trim","split","filter","t","forEach","b","parts","length","instance","undefined","parseInt","slice","tmp","pathname","adapterName","instanceId","newReact","Router","getLocation","tab","themeInstance","state","selectedTab","selectedTabNum","errorText","changed","connected","loaded","isConfigurationError","toast","bottomButtons","translations","require","Object","keys","lang","assign","setTranslations","savedNative","encryptedFields","sentryDSN","name","doNotLoadAllObjects","onProgress","progress","PROGRESS","CONNECTING","READY","onReady","objects","scripts","subscribeObject","onSystemConfigChanged","then","getSystemConfig","_secret","secret","getObject","instanceObj","waitPromise","sentryEnabled","diag","version","disableDataReporting","host","sentryStarted","Sentry","init","dsn","release","integrations","SentryIntegrations","Dedupe","sentryInited","uuidObj","uuid","configureScope","scope","setUser","Promise","resolve","onPrepareLoad","encryptedNative","parse","onConnectionReady","onError","err","error","showError","addEventListener","onResize","onReceiveMessage","removeEventListener","palette","mode","sessionStorage","value","result","i","String","fromCharCode","charCodeAt","selectTab","index","attr","encrypt","decrypt","includes","push","_socket","emit","doc","rows","item","webExtendable","map","reject","ip","_host","IPs4","address","family","IPs6","hardware","networkInterfaces","eth","inter","isClose","oldObj","_oldObj","a","hasOwnProperty","onPrepareSave","setObject","globalThis","onClose","vertical","horizontal","classes","close","native","isChanged","newNative","getIsChanged","onSave","attrs","shift","Error","_updateNativeValue","cb","text","renderError","renderToast","renderSaveCloseButtons","SIZES","xs","sm","md","lg","xl","innerWidth","reverse","widthComputed","find","key","parent","$iframeDialog","postMessage","propTypes","PropTypes","string","func","object","array","bool"],"sources":["GenericApp.js"],"sourcesContent":["/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport Connection, {PROGRESS} from './Connection';\nimport PropTypes from 'prop-types';\nimport * as Sentry from '@sentry/browser';\nimport * as SentryIntegrations from '@sentry/integrations';\n\nimport DialogError from './Dialogs/Error';\nimport Snackbar from '@mui/material/Snackbar';\nimport IconButton from '@mui/material/IconButton';\n\nimport IconClose from '@mui/icons-material/Close';\n\nimport printPrompt from './Prompt';\nimport theme from './Theme';\nimport Loader from './Components/Loader';\nimport Router from './Components/Router';\nimport Utils from './Components/Utils';\nimport SaveCloseButtons from './Components/SaveCloseButtons';\nimport I18n from './i18n';\n\nimport './index.css';\n\nif (!window.localStorage) {\n window.localStorage = {\n getItem: () => null,\n setItem: () => null,\n };\n}\n\n/**\n * @extends {Router<import('./types').GenericAppProps, import('./types').GenericAppState>}\n */\nclass GenericApp extends Router {\n /**\n * @param {import('./types').GenericAppProps} props\n * @param {import('./types').GenericAppSettings | undefined} settings\n */\n constructor(props, settings) {\n const ConnectionClass = props.Connection || settings.Connection || Connection;\n\n // Remove `!Connection.isWeb() && window.adapterName !== 'material'` when iobroker.socket will support native ws\n if (!ConnectionClass.isWeb() && window.io && window.location.port === '3000') {\n try {\n const io = new window.SocketClient();\n delete window.io;\n window.io = io;\n } catch (e) {\n // ignore\n }\n }\n\n super(props);\n\n printPrompt();\n\n let query = (window.location.search || '').replace(/^\\?/, '').replace(/#.*$/, '');\n let args = {};\n query.trim().split('&').filter(t => t.trim()).forEach(b => {\n const parts = b.split('=');\n args[parts[0]] = parts.length === 2 ? parts[1] : true;\n if (args[parts[0]] === 'true') {\n args[parts[0]] = true;\n } else if (args[parts[0]] === 'false') {\n args[parts[0]] = false;\n }\n });\n\n // extract instance from URL\n this.instance = args.instance !== undefined ? parseInt(args.instance, 10) || 0 : (parseInt(window.location.search.slice(1), 10) || 0);\n // extract adapter name from URL\n const tmp = window.location.pathname.split('/');\n this.adapterName = settings?.adapterName || props.adapterName || window.adapterName || tmp[tmp.length - 2] || 'iot';\n this.instanceId = `system.adapter.${this.adapterName}.${this.instance}`;\n this.newReact = args.newReact === true; // it is admin5\n\n const location = Router.getLocation();\n location.tab = location.tab || window.localStorage.getItem(this.adapterName + '-adapter') || '';\n\n const themeInstance = this.createTheme();\n\n this.state = {\n selectedTab: window.localStorage.getItem(this.adapterName + '-adapter') || '',\n selectedTabNum: -1,\n native: {},\n errorText: '',\n changed: false,\n connected: false,\n loaded: false,\n isConfigurationError: '',\n expertMode: false,\n toast: '',\n theme: themeInstance,\n themeName: this.getThemeName(themeInstance),\n themeType: this.getThemeType(themeInstance),\n bottomButtons: (settings && settings.bottomButtons) === false ? false : ((props && props.bottomButtons) === false ? false : true),\n width: GenericApp.getWidth(),\n };\n\n // init translations\n const translations = {\n 'en': require('./i18n/en.json'),\n 'de': require('./i18n/de.json'),\n 'ru': require('./i18n/ru.json'),\n 'pt': require('./i18n/pt.json'),\n 'nl': require('./i18n/nl.json'),\n 'fr': require('./i18n/fr.json'),\n 'it': require('./i18n/it.json'),\n 'es': require('./i18n/es.json'),\n 'pl': require('./i18n/pl.json'),\n 'zh-cn': require('./i18n/zh-cn.json'),\n };\n\n // merge together\n if (settings && settings.translations) {\n Object.keys(settings.translations).forEach(lang => translations[lang] = Object.assign(translations[lang], settings.translations[lang]));\n } else if (props.translations) {\n Object.keys(props.translations).forEach(lang => translations[lang] = Object.assign(translations[lang], props.translations[lang]));\n }\n\n I18n.setTranslations(translations);\n\n this.savedNative = {}; // to detect if the config changed\n\n this.encryptedFields = props.encryptedFields || settings?.encryptedFields || [];\n\n this.sentryDSN = (settings && settings.sentryDSN) || props.sentryDSN;\n\n this.socket = new ConnectionClass({\n ...(props?.socket || settings?.socket),\n name: this.adapterName,\n doNotLoadAllObjects: settings?.doNotLoadAllObjects,\n onProgress: progress => {\n if (progress === PROGRESS.CONNECTING) {\n this.setState({connected: false});\n } else if (progress === PROGRESS.READY) {\n this.setState({connected: true});\n } else {\n this.setState({connected: true});\n }\n },\n onReady: (objects, scripts) => {\n I18n.setLanguage(this.socket.systemLang);\n\n // subscribe because of language and expert mode\n this.socket.subscribeObject('system.config', this.onSystemConfigChanged)\n .then(() => this.getSystemConfig())\n .then(obj => {\n this._secret = (typeof obj !== 'undefined' && obj.native && obj.native.secret) || 'Zgfr56gFe87jJOM';\n this._systemConfig = obj?.common || {};\n return this.socket.getObject(this.instanceId);\n })\n .then(instanceObj => {\n let waitPromise;\n\n const sentryEnabled =\n this._systemConfig.diag !== 'none' &&\n instanceObj &&\n instanceObj.common &&\n instanceObj.common.name &&\n instanceObj.common.version &&\n !instanceObj.common.disableDataReporting &&\n window.location.host !== 'localhost:3000';\n\n // activate sentry plugin\n if (!this.sentryStarted && this.sentryDSN && sentryEnabled) {\n this.sentryStarted = true;\n\n Sentry.init({\n dsn: this.sentryDSN,\n release: `iobroker.${instanceObj.common.name}@${instanceObj.common.version}`,\n integrations: [\n new SentryIntegrations.Dedupe()\n ]\n });\n }\n\n // read UUID and init sentry with it.\n // for backward compatibility it will be processed separately from above logic: some adapters could still have this.sentryDSN as undefined\n if (!this.sentryInited && sentryEnabled) {\n this.sentryInited = true;\n\n waitPromise = this.socket.getObject('system.meta.uuid')\n .then(uuidObj => {\n if (uuidObj && uuidObj.native && uuidObj.native.uuid) {\n Sentry.configureScope(scope =>\n scope.setUser({id: uuidObj.native.uuid}));\n }\n });\n }\n\n waitPromise = waitPromise || Promise.resolve();\n\n waitPromise\n .then(() => {\n if (instanceObj) {\n this.common = instanceObj?.common;\n this.onPrepareLoad(instanceObj.native, instanceObj.encryptedNative); // decode all secrets\n this.savedNative = JSON.parse(JSON.stringify(instanceObj.native));\n this.setState({native: instanceObj.native, loaded: true, expertMode: this.getExpertMode()}, () =>\n this.onConnectionReady && this.onConnectionReady());\n } else {\n console.warn('Cannot load instance settings');\n this.setState({native: {}, loaded: true, expertMode: this.getExpertMode()}, () => this.onConnectionReady && this.onConnectionReady());\n }\n });\n });\n },\n onError: err => {\n console.error(err);\n this.showError(err);\n }\n });\n }\n\n onSystemConfigChanged = (id, obj) => {\n if (obj && id === 'system.config') {\n if (this.socket.systemLang !== obj?.common.language) {\n this.socket.systemLang = obj?.common.language || 'en';\n I18n.setLanguage(this.socket.systemLang);\n }\n\n if (this._systemConfig.expertMode !== !!obj?.common?.expertMode) {\n this._systemConfig = obj?.common || {};\n this.setState({expertMode: this.getExpertMode()});\n } else {\n this._systemConfig = obj?.common || {};\n }\n }\n }\n\n /**\n * Called immediately after a component is mounted. Setting state here will trigger re-rendering.\n */\n componentDidMount() {\n window.addEventListener('resize', this.onResize, true);\n window.addEventListener('message', this.onReceiveMessage, false);\n super.componentDidMount();\n }\n\n /**\n * Called immediately before a component is destroyed.\n */\n componentWillUnmount() {\n window.removeEventListener('resize', this.onResize, true);\n window.removeEventListener('message', this.onReceiveMessage, false);\n super.componentWillUnmount();\n }\n\n onReceiveMessage = message => {\n if (message?.data) {\n if (message.data === 'updateTheme') {\n const newThemeName = Utils.getThemeName()\n Utils.setThemeName(Utils.getThemeName());\n\n const theme = this.createTheme(newThemeName);\n\n this.setState({\n theme,\n themeName: this.getThemeName(theme),\n themeType: this.getThemeType(theme)\n }, () => {\n this.props.onThemeChange && this.props.onThemeChange(newThemeName);\n this.onThemeChanged && this.onThemeChanged(newThemeName);\n });\n } else if (message.data === 'updateExpertMode') {\n this.onToggleExpertMode && this.onToggleExpertMode(this.getExpertMode());\n } else {\n console.warn('Received unknown message: ' + JSON.stringify(message.data));\n }\n }\n };\n\n /**\n * @private\n */\n onResize = () => {\n this.resizeTimer && clearTimeout(this.resizeTimer);\n this.resizeTimer = setTimeout(() => {\n this.resizeTimer = null;\n this.setState({width: GenericApp.getWidth()});\n }, 200);\n };\n\n /**\n * Gets the width depending on the window inner width.\n * @returns {import('./types').Width}\n */\n static getWidth() {\n /**\n * innerWidth |xs sm md lg xl\n * |-------|-------|-------|-------|------>\n * width | xs | sm | md | lg | xl\n */\n\n const SIZES = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n };\n const width = window.innerWidth;\n const keys = Object.keys(SIZES).reverse();\n const widthComputed = keys.find(key => width >= SIZES[key]);\n\n return widthComputed || 'xs';\n }\n\n /**\n * Get a theme\n * @param {string} name Theme name\n * @returns {import('./types').Theme}\n */\n createTheme(name = '') {\n return theme(Utils.getThemeName(name));\n }\n\n /**\n * Get the theme name\n * @param {import('./types').Theme} theme Theme\n * @returns {string} Theme name\n */\n getThemeName(theme) {\n return theme.name;\n }\n\n /**\n * Get the theme type\n * @param {import('./types').Theme} theme Theme\n * @returns {string} Theme type\n */\n getThemeType(theme) {\n return theme.palette.mode;\n }\n\n /**\n * Changes the current theme\n */\n toggleTheme() {\n const themeName = this.state.themeName;\n\n // dark => blue => colored => light => dark\n const newThemeName = themeName === 'dark' ? 'blue' :\n (themeName === 'blue' ? 'colored' :\n (themeName === 'colored' ? 'light' : 'dark'));\n\n Utils.setThemeName(newThemeName);\n\n const theme = this.createTheme(newThemeName);\n\n this.setState({\n theme,\n themeName: this.getThemeName(theme),\n themeType: this.getThemeType(theme)\n }, () => {\n this.props.onThemeChange && this.props.onThemeChange(newThemeName);\n this.onThemeChanged && this.onThemeChanged(newThemeName);\n });\n }\n\n /**\n * Gets the system configuration.\n * @returns {Promise<ioBroker.OtherObject>}\n */\n getSystemConfig() {\n return this.socket.getSystemConfig();\n }\n\n /**\n * Get current expert mode\n * @returns {boolean}\n */\n getExpertMode() {\n return window.sessionStorage.getItem('App.expertMode') === 'true' || !!this._systemConfig.expertMode;\n }\n\n /**\n * Gets called when the socket.io connection is ready.\n * You can overload this function to execute own commands.\n */\n onConnectionReady() {\n }\n\n /**\n * Encrypts a string.\n * @param {string} value\n * @returns {string}\n */\n encrypt(value) {\n let result = '';\n for (let i = 0; i < value.length; i++) {\n result += String.fromCharCode(this._secret[i % this._secret.length].charCodeAt(0) ^ value.charCodeAt(i));\n }\n return result;\n }\n\n /**\n * Decrypts a string.\n * @param {string} value\n * @returns {string}\n */\n decrypt(value) {\n let result = '';\n for (let i = 0; i < value.length; i++) {\n result += String.fromCharCode(this._secret[i % this._secret.length].charCodeAt(0) ^ value.charCodeAt(i));\n }\n return result;\n }\n\n /**\n * Gets called when the navigation hash changes.\n * You may override this if needed.\n */\n onHashChanged() {\n const location = Router.getLocation();\n if (location.tab !== this.state.selectedTab) {\n this.selectTab(location.tab);\n }\n }\n\n /**\n * Selects the given tab.\n * @param {string} tab\n * @param {number} [index]\n */\n selectTab(tab, index) {\n window.localStorage[this.adapterName + '-adapter'] = tab;\n this.setState({selectedTab: tab, selectedTabNum: index})\n }\n\n /**\n * Gets called before the settings are saved.\n * You may override this if needed.\n * @param {Record<string, any>} settings\n */\n onPrepareSave(settings) {\n // here you can encode values\n this.encryptedFields && this.encryptedFields.forEach(attr => {\n if (settings[attr]) {\n settings[attr] = this.encrypt(settings[attr]);\n }\n });\n\n return true;\n }\n\n /**\n * Gets called after the settings are loaded.\n * You may override this if needed.\n * @param {Record<string, any>} settings\n * @param {string[]} encryptedNative optional list of fields to be decrypted\n */\n onPrepareLoad(settings, encryptedNative) {\n // here you can encode values\n this.encryptedFields && this.encryptedFields.forEach(attr => {\n if (settings[attr]) {\n settings[attr] = this.decrypt(settings[attr]);\n }\n });\n encryptedNative && encryptedNative.forEach(attr => {\n this.encryptedFields = this.encryptedFields || [];\n !this.encryptedFields.includes(attr) && this.encryptedFields.push(attr);\n if (settings[attr]) {\n settings[attr] = this.decrypt(settings[attr]);\n }\n });\n }\n\n /**\n * Gets the extendable instances.\n * @returns {Promise<any[]>}\n */\n getExtendableInstances() {\n return new Promise(resolve => {\n this.socket._socket.emit('getObjectView', 'system', 'instance', null, (err, doc) => {\n if (err) {\n resolve([]);\n } else {\n resolve(doc.rows.filter(item => item.value.common.webExtendable).map(item => item.value));\n }\n });\n });\n }\n\n /**\n * Gets the IP addresses of the given host.\n * @param {string} host\n */\n getIpAddresses(host) {\n return new Promise((resolve, reject) => {\n this.socket._socket.emit('getHostByIp', host || this.common.host, (ip, _host) => {\n const IPs4 = [{name: '[IPv4] 0.0.0.0 - ' + I18n.t('ra_Listen on all IPs'), address: '0.0.0.0', family: 'ipv4'}];\n const IPs6 = [{name: '[IPv6] ::', address: '::', family: 'ipv6'}];\n if (_host) {\n host = _host;\n if (host.native.hardware && host.native.hardware.networkInterfaces) {\n Object.keys(host.native.hardware.networkInterfaces).forEach(eth =>\n host.native.hardware.networkInterfaces[eth].forEach(inter => {\n if (inter.family !== 'IPv6') {\n IPs4.push({name: '[' + inter.family + '] ' + inter.address + ' - ' + eth, address: inter.address, family: 'ipv4'});\n } else {\n IPs6.push({name: '[' + inter.family + '] ' + inter.address + ' - ' + eth, address: inter.address, family: 'ipv6'});\n }\n }));\n }\n IPs6.forEach(ip => IPs4.push(ip));\n }\n resolve(IPs4);\n });\n });\n }\n\n /**\n * Saves the settings to the server.\n * @param {boolean} isClose True if the user is closing the dialog.\n */\n onSave(isClose) {\n let oldObj;\n if (this.state.isConfigurationError) {\n this.setState({errorText: this.state.isConfigurationError});\n return;\n }\n\n this.socket.getObject(this.instanceId)\n .then(_oldObj => {\n oldObj = _oldObj || {};\n\n for (const a in this.state.native) {\n if (this.state.native.hasOwnProperty(a)) {\n if (this.state.native[a] === null) {\n oldObj.native[a] = null;\n } else\n if (this.state.native[a] !== undefined) {\n oldObj.native[a] = JSON.parse(JSON.stringify(this.state.native[a]));\n } else {\n delete oldObj.native[a];\n }\n }\n }\n\n if (this.state.common) {\n for (const b in this.state.common) {\n if (this.state.common[b] === null) {\n oldObj.common[b] = null;\n } else\n if (this.state.common[b] !== undefined) {\n oldObj.common[b] = JSON.parse(JSON.stringify(this.state.common[b]));\n } else {\n delete oldObj.common[b];\n }\n }\n }\n\n if (this.onPrepareSave(oldObj.native) !== false) {\n return this.socket.setObject(this.instanceId, oldObj);\n } else {\n return Promise.reject('Invalid configuration');\n }\n })\n .then(() => {\n this.savedNative = oldObj.native;\n globalThis.changed = false;\n this.setState({changed: false});\n isClose && GenericApp.onClose();\n })\n .catch(e => {\n console.error(`Cannot save configuration: ${e}`);\n });\n }\n\n /**\n * Renders the toast.\n * @returns {JSX.Element | null} The JSX element.\n */\n renderToast() {\n if (!this.state.toast) {\n return null;\n }\n\n return <Snackbar\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left',\n }}\n open={true}\n autoHideDuration={6000}\n onClose={() => this.setState({toast: ''})}\n ContentProps={{\n 'aria-describedby': 'message-id',\n }}\n message={<span id=\"message-id\">{this.state.toast}</span>}\n action={[\n <IconButton\n key=\"close\"\n aria-label=\"Close\"\n color=\"inherit\"\n className={this.props.classes.close}\n onClick={() => this.setState({toast: ''})}\n size=\"large\">\n <IconClose />\n </IconButton>,\n ]}\n />;\n }\n\n /**\n * Closes the dialog.\n * @private\n */\n static onClose() {\n if (typeof window.parent !== 'undefined' && window.parent) {\n try {\n if (window.parent.$iframeDialog && typeof window.parent.$iframeDialog.close === 'function') {\n window.parent.$iframeDialog.close();\n } else {\n window.parent.postMessage('close', '*');\n }\n } catch (e) {\n window.parent.postMessage('close', '*');\n }\n }\n }\n\n /**\n * Renders the error dialog.\n * @returns {JSX.Element | null} The JSX element.\n */\n renderError() {\n if (!this.state.errorText) {\n return null;\n } else {\n return <DialogError text={this.state.errorText} onClose={() => this.setState({errorText: ''})}/>;\n }\n }\n\n /**\n * Checks if the configuration has changed.\n * @param {Record<string, any>} [native] the new state\n */\n getIsChanged(native) {\n native = native || this.state.native;\n const isChanged = JSON.stringify(native) !== JSON.stringify(this.savedNative);\n\n if(isChanged) {\n globalThis.changed = true;\n } else {\n globalThis.changed = false;\n }\n\n return isChanged;\n }\n\n /**\n * Gets called when loading the configuration.\n * @param {Record<string, any>} newNative The new configuration object.\n */\n onLoadConfig(newNative) {\n if (JSON.stringify(newNative) !== JSON.stringify(this.state.native)) {\n this.setState({native: newNative, changed: this.getIsChanged(newNative)})\n }\n }\n\n /**\n * Sets the configuration error.\n * @param {string} errorText\n */\n setConfigurationError(errorText) {\n if (this.state.isConfigurationError !== errorText) {\n this.setState({isConfigurationError: errorText});\n }\n }\n\n /**\n * Renders the save and close buttons.\n * @returns {JSX.Element | undefined} The JSX element.\n */\n renderSaveCloseButtons() {\n if (this.state.bottomButtons) {\n return <SaveCloseButtons\n theme={this.state.theme}\n newReact={this.newReact}\n noTextOnButtons={this.state.width === 'xs' || this.state.width === 'sm' || this.state.width === 'md'}\n changed={this.state.changed}\n onSave={(isClose) => this.onSave(isClose)}\n onClose={() => GenericApp.onClose()}\n />;\n } else {\n return null;\n }\n }\n\n /**\n * @private\n * @param {Record<string, any>} obj\n * @param {any} attrs\n * @param {any} value\n * @returns {boolean | undefined}\n */\n _updateNativeValue(obj, attrs, value) {\n if (typeof attrs !== 'object') {\n attrs = attrs.split('.');\n }\n const attr = attrs.shift();\n if (!attrs.length) {\n if (value && typeof value === 'object') {\n if (JSON.stringify(obj[attr]) !== JSON.stringify(value)) {\n obj[attr] = value;\n return true;\n }\n } else if (obj[attr] !== value) {\n obj[attr] = value;\n return true;\n } else {\n return false;\n }\n\n } else {\n obj[attr] = obj[attr] || {};\n if (typeof obj[attr] !== 'object') {\n throw new Error('attribute ' + attr + ' is no object, but ' + typeof obj[attr]);\n }\n return this._updateNativeValue(obj[attr], attrs, value);\n }\n }\n\n /**\n * Update the native value\n * @param {string} attr The attribute name with dots as delimiter.\n * @param {any} value The new value.\n * @param {(() => void)} [cb] Callback which will be called upon completion.\n */\n updateNativeValue(attr, value, cb) {\n const native = JSON.parse(JSON.stringify(this.state.native));\n if (this._updateNativeValue(native, attr, value)) {\n const changed = this.getIsChanged(native);\n this.setState({native, changed}, cb);\n }\n }\n\n /**\n * Set the error text to be shown.\n * @param {string | JSX.Element} text\n */\n showError(text) {\n this.setState({errorText: text});\n }\n\n /**\n * Sets the toast to be shown.\n * @param {string} toast\n */\n showToast(toast) {\n this.setState({toast});\n }\n\n /**\n * Renders this component.\n * @returns {JSX.Element} The JSX element.\n */\n render() {\n if (!this.state.loaded) {\n return <Loader theme={this.state.themeType}/>;\n }\n\n return <div className=\"App\">\n {this.renderError()}\n {this.renderToast()}\n {this.renderSaveCloseButtons()}\n </div>;\n }\n}\n\nGenericApp.propTypes = {\n adapterName: PropTypes.string, // (optional) name of adapter\n onThemeChange: PropTypes.func, // (optional) called by theme change\n socket: PropTypes.object, // (optional) socket information (host, port)\n encryptedFields: PropTypes.array, // (optional) list of native attributes, that must be encrypted\n bottomButtons: PropTypes.bool, // If the bottom buttons (Save/Close) must be shown\n Connection: PropTypes.object, // If the bottom buttons (Save/Close) must be shown\n};\n\nexport default GenericApp;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;;;;;;;;;;;;;AAEA,IAAI,CAACA,MAAM,CAACC,YAAZ,EAA0B;EACtBD,MAAM,CAACC,YAAP,GAAsB;IAClBC,OAAO,EAAE;MAAA,OAAM,IAAN;IAAA,CADS;IAElBC,OAAO,EAAE;MAAA,OAAM,IAAN;IAAA;EAFS,CAAtB;AAIH;AAED;AACA;AACA;;;IACMC,U;;;;;EACF;AACJ;AACA;AACA;EACI,oBAAYC,KAAZ,EAAmBC,QAAnB,EAA6B;IAAA;;IAAA;IACzB,IAAMC,eAAe,GAAGF,KAAK,CAACG,UAAN,IAAoBF,QAAQ,CAACE,UAA7B,IAA2CA,sBAAnE,CADyB,CAGzB;;IACA,IAAI,CAACD,eAAe,CAACE,KAAhB,EAAD,IAA4BT,MAAM,CAACU,EAAnC,IAAyCV,MAAM,CAACW,QAAP,CAAgBC,IAAhB,KAAyB,MAAtE,EAA8E;MAC1E,IAAI;QACA,IAAMF,EAAE,GAAG,IAAIV,MAAM,CAACa,YAAX,EAAX;QACA,OAAOb,MAAM,CAACU,EAAd;QACAV,MAAM,CAACU,EAAP,GAAYA,EAAZ;MACH,CAJD,CAIE,OAAOI,CAAP,EAAU,CACR;MACH;IACJ;;IAED,0BAAMT,KAAN;IAdyB,0GAiLL,UAACU,EAAD,EAAKC,GAAL,EAAa;MACjC,IAAIA,GAAG,IAAID,EAAE,KAAK,eAAlB,EAAmC;QAAA;;QAC/B,IAAI,MAAKE,MAAL,CAAYC,UAAZ,MAA2BF,GAA3B,aAA2BA,GAA3B,uBAA2BA,GAAG,CAAEG,MAAL,CAAYC,QAAvC,CAAJ,EAAqD;UACjD,MAAKH,MAAL,CAAYC,UAAZ,GAAyB,CAAAF,GAAG,SAAH,IAAAA,GAAG,WAAH,YAAAA,GAAG,CAAEG,MAAL,CAAYC,QAAZ,KAAwB,IAAjD;;UACAC,iBAAKC,WAAL,CAAiB,MAAKL,MAAL,CAAYC,UAA7B;QACH;;QAED,IAAI,MAAKK,aAAL,CAAmBC,UAAnB,KAAkC,CAAC,EAACR,GAAD,aAACA,GAAD,8BAACA,GAAG,CAAEG,MAAN,wCAAC,YAAaK,UAAd,CAAvC,EAAiE;UAC7D,MAAKD,aAAL,GAAqB,CAAAP,GAAG,SAAH,IAAAA,GAAG,WAAH,YAAAA,GAAG,CAAEG,MAAL,KAAe,EAApC;;UACA,MAAKM,QAAL,CAAc;YAACD,UAAU,EAAE,MAAKE,aAAL;UAAb,CAAd;QACH,CAHD,MAGO;UACH,MAAKH,aAAL,GAAqB,CAAAP,GAAG,SAAH,IAAAA,GAAG,WAAH,YAAAA,GAAG,CAAEG,MAAL,KAAe,EAApC;QACH;MACJ;IACJ,CA/L4B;IAAA,qGAmNV,UAAAQ,OAAO,EAAI;MAC1B,IAAIA,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAEC,IAAb,EAAmB;QACf,IAAID,OAAO,CAACC,IAAR,KAAiB,aAArB,EAAoC;UAChC,IAAMC,YAAY,GAAGC,kBAAMC,YAAN,EAArB;;UACAD,kBAAME,YAAN,CAAmBF,kBAAMC,YAAN,EAAnB;;UAEA,IAAME,MAAK,GAAG,MAAKC,WAAL,CAAiBL,YAAjB,CAAd;;UAEA,MAAKJ,QAAL,CAAc;YACVQ,KAAK,EAALA,MADU;YAEVE,SAAS,EAAE,MAAKJ,YAAL,CAAkBE,MAAlB,CAFD;YAGVG,SAAS,EAAE,MAAKC,YAAL,CAAkBJ,MAAlB;UAHD,CAAd,EAIG,YAAM;YACL,MAAK5B,KAAL,CAAWiC,aAAX,IAA4B,MAAKjC,KAAL,CAAWiC,aAAX,CAAyBT,YAAzB,CAA5B;YACA,MAAKU,cAAL,IAAuB,MAAKA,cAAL,CAAoBV,YAApB,CAAvB;UACH,CAPD;QAQH,CAdD,MAcO,IAAIF,OAAO,CAACC,IAAR,KAAiB,kBAArB,EAAyC;UAC5C,MAAKY,kBAAL,IAA2B,MAAKA,kBAAL,CAAwB,MAAKd,aAAL,EAAxB,CAA3B;QACH,CAFM,MAEA;UACHe,OAAO,CAACC,IAAR,CAAa,+BAA+BC,IAAI,CAACC,SAAL,CAAejB,OAAO,CAACC,IAAvB,CAA5C;QACH;MACJ;IACJ,CAzO4B;IAAA,6FA8OlB,YAAM;MACb,MAAKiB,WAAL,IAAoBC,YAAY,CAAC,MAAKD,WAAN,CAAhC;MACA,MAAKA,WAAL,GAAmBE,UAAU,CAAC,YAAM;QAChC,MAAKF,WAAL,GAAmB,IAAnB;;QACA,MAAKpB,QAAL,CAAc;UAACuB,KAAK,EAAE5C,UAAU,CAAC6C,QAAX;QAAR,CAAd;MACH,CAH4B,EAG1B,GAH0B,CAA7B;IAIH,CApP4B;IAgBzB;IAEA,IAAIC,KAAK,GAAG,CAAClD,MAAM,CAACW,QAAP,CAAgBwC,MAAhB,IAA0B,EAA3B,EAA+BC,OAA/B,CAAuC,KAAvC,EAA8C,EAA9C,EAAkDA,OAAlD,CAA0D,MAA1D,EAAkE,EAAlE,CAAZ;IACA,IAAIC,IAAI,GAAG,EAAX;IACAH,KAAK,CAACI,IAAN,GAAaC,KAAb,CAAmB,GAAnB,EAAwBC,MAAxB,CAA+B,UAAAC,CAAC;MAAA,OAAIA,CAAC,CAACH,IAAF,EAAJ;IAAA,CAAhC,EAA8CI,OAA9C,CAAsD,UAAAC,CAAC,EAAI;MACvD,IAAMC,KAAK,GAAGD,CAAC,CAACJ,KAAF,CAAQ,GAAR,CAAd;MACAF,IAAI,CAACO,KAAK,CAAC,CAAD,CAAN,CAAJ,GAAiBA,KAAK,CAACC,MAAN,KAAiB,CAAjB,GAAqBD,KAAK,CAAC,CAAD,CAA1B,GAAgC,IAAjD;;MACA,IAAIP,IAAI,CAACO,KAAK,CAAC,CAAD,CAAN,CAAJ,KAAmB,MAAvB,EAA+B;QAC3BP,IAAI,CAACO,KAAK,CAAC,CAAD,CAAN,CAAJ,GAAiB,IAAjB;MACH,CAFD,MAEO,IAAIP,IAAI,CAACO,KAAK,CAAC,CAAD,CAAN,CAAJ,KAAmB,OAAvB,EAAgC;QACnCP,IAAI,CAACO,KAAK,CAAC,CAAD,CAAN,CAAJ,GAAiB,KAAjB;MACH;IACJ,CARD,EApByB,CA8BzB;;IACA,MAAKE,QAAL,GAAgBT,IAAI,CAACS,QAAL,KAAkBC,SAAlB,GAA8BC,QAAQ,CAACX,IAAI,CAACS,QAAN,EAAgB,EAAhB,CAAR,IAA+B,CAA7D,GAAkEE,QAAQ,CAAChE,MAAM,CAACW,QAAP,CAAgBwC,MAAhB,CAAuBc,KAAvB,CAA6B,CAA7B,CAAD,EAAkC,EAAlC,CAAR,IAAiD,CAAnI,CA/ByB,CAgCzB;;IACA,IAAMC,GAAG,GAAGlE,MAAM,CAACW,QAAP,CAAgBwD,QAAhB,CAAyBZ,KAAzB,CAA+B,GAA/B,CAAZ;IACA,MAAKa,WAAL,GAAmB,CAAA9D,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAE8D,WAAV,KAAyB/D,KAAK,CAAC+D,WAA/B,IAA8CpE,MAAM,CAACoE,WAArD,IAAoEF,GAAG,CAACA,GAAG,CAACL,MAAJ,GAAa,CAAd,CAAvE,IAA2F,KAA9G;IACA,MAAKQ,UAAL,4BAAqC,MAAKD,WAA1C,cAAyD,MAAKN,QAA9D;IACA,MAAKQ,QAAL,GAAgBjB,IAAI,CAACiB,QAAL,KAAkB,IAAlC,CApCyB,CAoCe;;IAExC,IAAM3D,QAAQ,GAAG4D,oBAAOC,WAAP,EAAjB;;IACA7D,QAAQ,CAAC8D,GAAT,GAAe9D,QAAQ,CAAC8D,GAAT,IAAgBzE,MAAM,CAACC,YAAP,CAAoBC,OAApB,CAA4B,MAAKkE,WAAL,GAAmB,UAA/C,CAAhB,IAA8E,EAA7F;;IAEA,IAAMM,aAAa,GAAG,MAAKxC,WAAL,EAAtB;;IAEA,MAAKyC,KAAL,GAAa;MACTC,WAAW,EAAK5E,MAAM,CAACC,YAAP,CAAoBC,OAApB,CAA4B,MAAKkE,WAAL,GAAmB,UAA/C,KAA8D,EADrE;MAETS,cAAc,EAAE,CAAC,CAFR;MAGT,UAAgB,EAHP;MAITC,SAAS,EAAO,EAJP;MAKTC,OAAO,EAAS,KALP;MAMTC,SAAS,EAAO,KANP;MAOTC,MAAM,EAAU,KAPP;MAQTC,oBAAoB,EAAE,EARb;MAST1D,UAAU,EAAM,KATP;MAUT2D,KAAK,EAAW,EAVP;MAWTlD,KAAK,EAAWyC,aAXP;MAYTvC,SAAS,EAAO,MAAKJ,YAAL,CAAkB2C,aAAlB,CAZP;MAaTtC,SAAS,EAAO,MAAKC,YAAL,CAAkBqC,aAAlB,CAbP;MAcTU,aAAa,EAAG,CAAC9E,QAAQ,IAAIA,QAAQ,CAAC8E,aAAtB,MAAyC,KAAzC,GAAiD,KAAjD,GAA0D,CAAC/E,KAAK,IAAIA,KAAK,CAAC+E,aAAhB,MAAmC,KAAnC,GAA2C,KAA3C,GAAmD,IAdpH;MAeTpC,KAAK,EAAW5C,UAAU,CAAC6C,QAAX;IAfP,CAAb,CA3CyB,CA6DzB;;IACA,IAAMoC,YAAY,GAAG;MACjB,MAAMC,OAAO,CAAC,gBAAD,CADI;MAEjB,MAAMA,OAAO,CAAC,gBAAD,CAFI;MAGjB,MAAMA,OAAO,CAAC,gBAAD,CAHI;MAIjB,MAAMA,OAAO,CAAC,gBAAD,CAJI;MAKjB,MAAMA,OAAO,CAAC,gBAAD,CALI;MAMjB,MAAMA,OAAO,CAAC,gBAAD,CANI;MAOjB,MAAMA,OAAO,CAAC,gBAAD,CAPI;MAQjB,MAAMA,OAAO,CAAC,gBAAD,CARI;MASjB,MAAMA,OAAO,CAAC,gBAAD,CATI;MAUjB,SAASA,OAAO,CAAC,mBAAD;IAVC,CAArB,CA9DyB,CA2EzB;;IACA,IAAIhF,QAAQ,IAAIA,QAAQ,CAAC+E,YAAzB,EAAuC;MACnCE,MAAM,CAACC,IAAP,CAAYlF,QAAQ,CAAC+E,YAArB,EAAmC3B,OAAnC,CAA2C,UAAA+B,IAAI;QAAA,OAAIJ,YAAY,CAACI,IAAD,CAAZ,GAAqBF,MAAM,CAACG,MAAP,CAAcL,YAAY,CAACI,IAAD,CAA1B,EAAkCnF,QAAQ,CAAC+E,YAAT,CAAsBI,IAAtB,CAAlC,CAAzB;MAAA,CAA/C;IACH,CAFD,MAEO,IAAIpF,KAAK,CAACgF,YAAV,EAAwB;MAC3BE,MAAM,CAACC,IAAP,CAAYnF,KAAK,CAACgF,YAAlB,EAAgC3B,OAAhC,CAAwC,UAAA+B,IAAI;QAAA,OAAIJ,YAAY,CAACI,IAAD,CAAZ,GAAqBF,MAAM,CAACG,MAAP,CAAcL,YAAY,CAACI,IAAD,CAA1B,EAAkCpF,KAAK,CAACgF,YAAN,CAAmBI,IAAnB,CAAlC,CAAzB;MAAA,CAA5C;IACH;;IAEDpE,iBAAKsE,eAAL,CAAqBN,YAArB;;IAEA,MAAKO,WAAL,GAAmB,EAAnB,CApFyB,CAoFF;;IAEvB,MAAKC,eAAL,GAAuBxF,KAAK,CAACwF,eAAN,KAAyBvF,QAAzB,aAAyBA,QAAzB,uBAAyBA,QAAQ,CAAEuF,eAAnC,KAAsD,EAA7E;IAEA,MAAKC,SAAL,GAAkBxF,QAAQ,IAAIA,QAAQ,CAACwF,SAAtB,IAAoCzF,KAAK,CAACyF,SAA3D;IAEA,MAAK7E,MAAL,GAAc,IAAIV,eAAJ,iCACN,CAAAF,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEY,MAAP,MAAiBX,QAAjB,aAAiBA,QAAjB,uBAAiBA,QAAQ,CAAEW,MAA3B,CADM;MAEV8E,IAAI,EAAE,MAAK3B,WAFD;MAGV4B,mBAAmB,EAAE1F,QAAF,aAAEA,QAAF,uBAAEA,QAAQ,CAAE0F,mBAHrB;MAIVC,UAAU,EAAE,oBAAAC,QAAQ,EAAI;QACpB,IAAIA,QAAQ,KAAKC,qBAASC,UAA1B,EAAsC;UAClC,MAAK3E,QAAL,CAAc;YAACuD,SAAS,EAAE;UAAZ,CAAd;QACH,CAFD,MAEO,IAAIkB,QAAQ,KAAKC,qBAASE,KAA1B,EAAiC;UACpC,MAAK5E,QAAL,CAAc;YAACuD,SAAS,EAAE;UAAZ,CAAd;QACH,CAFM,MAEA;UACH,MAAKvD,QAAL,CAAc;YAACuD,SAAS,EAAE;UAAZ,CAAd;QACH;MACJ,CAZS;MAaVsB,OAAO,EAAE,iBAACC,OAAD,EAAUC,OAAV,EAAsB;QAC3BnF,iBAAKC,WAAL,CAAiB,MAAKL,MAAL,CAAYC,UAA7B,EAD2B,CAG3B;;;QACA,MAAKD,MAAL,CAAYwF,eAAZ,CAA4B,eAA5B,EAA6C,MAAKC,qBAAlD,EACKC,IADL,CACU;UAAA,OAAM,MAAKC,eAAL,EAAN;QAAA,CADV,EAEKD,IAFL,CAEU,UAAA3F,GAAG,EAAI;UACT,MAAK6F,OAAL,GAAgB,OAAO7F,GAAP,KAAe,WAAf,IAA8BA,GAAG,UAAjC,IAA4CA,GAAG,UAAH,CAAW8F,MAAxD,IAAmE,iBAAlF;UACA,MAAKvF,aAAL,GAAqB,CAAAP,GAAG,SAAH,IAAAA,GAAG,WAAH,YAAAA,GAAG,CAAEG,MAAL,KAAe,EAApC;UACA,OAAO,MAAKF,MAAL,CAAY8F,SAAZ,CAAsB,MAAK1C,UAA3B,CAAP;QACH,CANL,EAOKsC,IAPL,CAOU,UAAAK,WAAW,EAAI;UACjB,IAAIC,WAAJ;UAEA,IAAMC,aAAa,GACf,MAAK3F,aAAL,CAAmB4F,IAAnB,KAA4B,MAA5B,IACAH,WADA,IAEAA,WAAW,CAAC7F,MAFZ,IAGA6F,WAAW,CAAC7F,MAAZ,CAAmB4E,IAHnB,IAIAiB,WAAW,CAAC7F,MAAZ,CAAmBiG,OAJnB,IAKA,CAACJ,WAAW,CAAC7F,MAAZ,CAAmBkG,oBALpB,IAMArH,MAAM,CAACW,QAAP,CAAgB2G,IAAhB,KAAyB,gBAP7B,CAHiB,CAYjB;;UACA,IAAI,CAAC,MAAKC,aAAN,IAAuB,MAAKzB,SAA5B,IAAyCoB,aAA7C,EAA4D;YACxD,MAAKK,aAAL,GAAqB,IAArB;YAEAC,MAAM,CAACC,IAAP,CAAY;cACRC,GAAG,EAAE,MAAK5B,SADF;cAER6B,OAAO,qBAAcX,WAAW,CAAC7F,MAAZ,CAAmB4E,IAAjC,cAAyCiB,WAAW,CAAC7F,MAAZ,CAAmBiG,OAA5D,CAFC;cAGRQ,YAAY,EAAE,CACV,IAAIC,kBAAkB,CAACC,MAAvB,EADU;YAHN,CAAZ;UAOH,CAvBgB,CAyBjB;UACA;;;UACA,IAAI,CAAC,MAAKC,YAAN,IAAsBb,aAA1B,EAAyC;YACrC,MAAKa,YAAL,GAAoB,IAApB;YAEAd,WAAW,GAAG,MAAKhG,MAAL,CAAY8F,SAAZ,CAAsB,kBAAtB,EACTJ,IADS,CACJ,UAAAqB,OAAO,EAAI;cACb,IAAIA,OAAO,IAAIA,OAAO,UAAlB,IAA6BA,OAAO,UAAP,CAAeC,IAAhD,EAAsD;gBAClDT,MAAM,CAACU,cAAP,CAAsB,UAAAC,KAAK;kBAAA,OACvBA,KAAK,CAACC,OAAN,CAAc;oBAACrH,EAAE,EAAEiH,OAAO,UAAP,CAAeC;kBAApB,CAAd,CADuB;gBAAA,CAA3B;cAEH;YACJ,CANS,CAAd;UAOH;;UAEDhB,WAAW,GAAGA,WAAW,IAAIoB,OAAO,CAACC,OAAR,EAA7B;UAEArB,WAAW,CACNN,IADL,CACU,YAAM;YACR,IAAIK,WAAJ,EAAiB;cACb,MAAK7F,MAAL,GAAc6F,WAAd,aAAcA,WAAd,uBAAcA,WAAW,CAAE7F,MAA3B;;cACA,MAAKoH,aAAL,CAAmBvB,WAAW,UAA9B,EAAuCA,WAAW,CAACwB,eAAnD,EAFa,CAEwD;;;cACrE,MAAK5C,WAAL,GAAmBjD,IAAI,CAAC8F,KAAL,CAAW9F,IAAI,CAACC,SAAL,CAAeoE,WAAW,UAA1B,CAAX,CAAnB;;cACA,MAAKvF,QAAL,CAAc;gBAAC,UAAQuF,WAAW,UAApB;gBAA6B/B,MAAM,EAAE,IAArC;gBAA2CzD,UAAU,EAAE,MAAKE,aAAL;cAAvD,CAAd,EAA4F;gBAAA,OACxF,MAAKgH,iBAAL,IAA0B,MAAKA,iBAAL,EAD8D;cAAA,CAA5F;YAEH,CAND,MAMO;cACHjG,OAAO,CAACC,IAAR,CAAa,+BAAb;;cACA,MAAKjB,QAAL,CAAc;gBAAC,UAAQ,EAAT;gBAAawD,MAAM,EAAE,IAArB;gBAA2BzD,UAAU,EAAE,MAAKE,aAAL;cAAvC,CAAd,EAA4E;gBAAA,OAAM,MAAKgH,iBAAL,IAA0B,MAAKA,iBAAL,EAAhC;cAAA,CAA5E;YACH;UACJ,CAZL;QAaH,CA7DL;MA8DH,CA/ES;MAgFVC,OAAO,EAAE,iBAAAC,GAAG,EAAI;QACZnG,OAAO,CAACoG,KAAR,CAAcD,GAAd;;QACA,MAAKE,SAAL,CAAeF,GAAf;MACH;IAnFS,GAAd;IA1FyB;EA+K5B;;;;;IAkBD;AACJ;AACA;IACI,6BAAoB;MAChB5I,MAAM,CAAC+I,gBAAP,CAAwB,QAAxB,EAAkC,KAAKC,QAAvC,EAAiD,IAAjD;MACAhJ,MAAM,CAAC+I,gBAAP,CAAwB,SAAxB,EAAmC,KAAKE,gBAAxC,EAA0D,KAA1D;MACA;IACH;IAED;AACJ;AACA;;;;WACI,gCAAuB;MACnBjJ,MAAM,CAACkJ,mBAAP,CAA2B,QAA3B,EAAqC,KAAKF,QAA1C,EAAoD,IAApD;MACAhJ,MAAM,CAACkJ,mBAAP,CAA2B,SAA3B,EAAsC,KAAKD,gBAA3C,EAA6D,KAA7D;MACA;IACH;;;;IA8DD;AACJ;AACA;AACA;AACA;IACI,uBAAuB;MAAA,IAAXlD,IAAW,uEAAJ,EAAI;MACnB,OAAO,uBAAMjE,kBAAMC,YAAN,CAAmBgE,IAAnB,CAAN,CAAP;IACH;IAED;AACJ;AACA;AACA;AACA;;;;WACI,sBAAa9D,KAAb,EAAoB;MAChB,OAAOA,KAAK,CAAC8D,IAAb;IACH;IAED;AACJ;AACA;AACA;AACA;;;;WACI,sBAAa9D,KAAb,EAAoB;MAChB,OAAOA,KAAK,CAACkH,OAAN,CAAcC,IAArB;IACH;IAED;AACJ;AACA;;;;WACI,uBAAc;MAAA;;MACV,IAAMjH,SAAS,GAAG,KAAKwC,KAAL,CAAWxC,SAA7B,CADU,CAGV;;MACA,IAAMN,YAAY,GAAGM,SAAS,KAAK,MAAd,GAAuB,MAAvB,GAChBA,SAAS,KAAK,MAAd,GAAuB,SAAvB,GACIA,SAAS,KAAK,SAAd,GAA0B,OAA1B,GAAoC,MAF7C;;MAIAL,kBAAME,YAAN,CAAmBH,YAAnB;;MAEA,IAAMI,KAAK,GAAG,KAAKC,WAAL,CAAiBL,YAAjB,CAAd;MAEA,KAAKJ,QAAL,CAAc;QACVQ,KAAK,EAALA,KADU;QAEVE,SAAS,EAAE,KAAKJ,YAAL,CAAkBE,KAAlB,CAFD;QAGVG,SAAS,EAAE,KAAKC,YAAL,CAAkBJ,KAAlB;MAHD,CAAd,EAIG,YAAM;QACL,MAAI,CAAC5B,KAAL,CAAWiC,aAAX,IAA4B,MAAI,CAACjC,KAAL,CAAWiC,aAAX,CAAyBT,YAAzB,CAA5B;QACA,MAAI,CAACU,cAAL,IAAuB,MAAI,CAACA,cAAL,CAAoBV,YAApB,CAAvB;MACH,CAPD;IAQH;IAED;AACJ;AACA;AACA;;;;WACI,2BAAkB;MACd,OAAO,KAAKZ,MAAL,CAAY2F,eAAZ,EAAP;IACH;IAED;AACJ;AACA;AACA;;;;WACI,yBAAgB;MACZ,OAAO5G,MAAM,CAACqJ,cAAP,CAAsBnJ,OAAtB,CAA8B,gBAA9B,MAAoD,MAApD,IAA8D,CAAC,CAAC,KAAKqB,aAAL,CAAmBC,UAA1F;IACH;IAED;AACJ;AACA;AACA;;;;WACI,6BAAoB,CACnB;IAED;AACJ;AACA;AACA;AACA;;;;WACI,iBAAQ8H,KAAR,EAAe;MACX,IAAIC,MAAM,GAAG,EAAb;;MACA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,KAAK,CAACzF,MAA1B,EAAkC2F,CAAC,EAAnC,EAAuC;QACnCD,MAAM,IAAIE,MAAM,CAACC,YAAP,CAAoB,KAAK7C,OAAL,CAAa2C,CAAC,GAAG,KAAK3C,OAAL,CAAahD,MAA9B,EAAsC8F,UAAtC,CAAiD,CAAjD,IAAsDL,KAAK,CAACK,UAAN,CAAiBH,CAAjB,CAA1E,CAAV;MACH;;MACD,OAAOD,MAAP;IACH;IAED;AACJ;AACA;AACA;AACA;;;;WACI,iBAAQD,KAAR,EAAe;MACX,IAAIC,MAAM,GAAG,EAAb;;MACA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,KAAK,CAACzF,MAA1B,EAAkC2F,CAAC,EAAnC,EAAuC;QACnCD,MAAM,IAAIE,MAAM,CAACC,YAAP,CAAoB,KAAK7C,OAAL,CAAa2C,CAAC,GAAG,KAAK3C,OAAL,CAAahD,MAA9B,EAAsC8F,UAAtC,CAAiD,CAAjD,IAAsDL,KAAK,CAACK,UAAN,CAAiBH,CAAjB,CAA1E,CAAV;MACH;;MACD,OAAOD,MAAP;IACH;IAED;AACJ;AACA;AACA;;;;WACI,yBAAgB;MACZ,IAAM5I,QAAQ,GAAG4D,oBAAOC,WAAP,EAAjB;;MACA,IAAI7D,QAAQ,CAAC8D,GAAT,KAAiB,KAAKE,KAAL,CAAWC,WAAhC,EAA6C;QACzC,KAAKgF,SAAL,CAAejJ,QAAQ,CAAC8D,GAAxB;MACH;IACJ;IAED;AACJ;AACA;AACA;AACA;;;;WACI,mBAAUA,GAAV,EAAeoF,KAAf,EAAsB;MAClB7J,MAAM,CAACC,YAAP,CAAoB,KAAKmE,WAAL,GAAmB,UAAvC,IAAqDK,GAArD;MACA,KAAKhD,QAAL,CAAc;QAACmD,WAAW,EAAEH,GAAd;QAAmBI,cAAc,EAAEgF;MAAnC,CAAd;IACH;IAED;AACJ;AACA;AACA;AACA;;;;WACI,uBAAcvJ,QAAd,EAAwB;MAAA;;MACpB;MACA,KAAKuF,eAAL,IAAwB,KAAKA,eAAL,CAAqBnC,OAArB,CAA6B,UAAAoG,IAAI,EAAI;QACzD,IAAIxJ,QAAQ,CAACwJ,IAAD,CAAZ,EAAoB;UAChBxJ,QAAQ,CAACwJ,IAAD,CAAR,GAAiB,MAAI,CAACC,OAAL,CAAazJ,QAAQ,CAACwJ,IAAD,CAArB,CAAjB;QACH;MACJ,CAJuB,CAAxB;MAMA,OAAO,IAAP;IACH;IAED;AACJ;AACA;AACA;AACA;AACA;;;;WACI,uBAAcxJ,QAAd,EAAwBkI,eAAxB,EAAyC;MAAA;;MACrC;MACA,KAAK3C,eAAL,IAAwB,KAAKA,eAAL,CAAqBnC,OAArB,CAA6B,UAAAoG,IAAI,EAAI;QACzD,IAAIxJ,QAAQ,CAACwJ,IAAD,CAAZ,EAAoB;UAChBxJ,QAAQ,CAACwJ,IAAD,CAAR,GAAiB,MAAI,CAACE,OAAL,CAAa1J,QAAQ,CAACwJ,IAAD,CAArB,CAAjB;QACH;MACJ,CAJuB,CAAxB;MAKAtB,eAAe,IAAIA,eAAe,CAAC9E,OAAhB,CAAwB,UAAAoG,IAAI,EAAI;QAC/C,MAAI,CAACjE,eAAL,GAAuB,MAAI,CAACA,eAAL,IAAwB,EAA/C;QACA,CAAC,MAAI,CAACA,eAAL,CAAqBoE,QAArB,CAA8BH,IAA9B,CAAD,IAAwC,MAAI,CAACjE,eAAL,CAAqBqE,IAArB,CAA0BJ,IAA1B,CAAxC;;QACA,IAAIxJ,QAAQ,CAACwJ,IAAD,CAAZ,EAAoB;UAChBxJ,QAAQ,CAACwJ,IAAD,CAAR,GAAiB,MAAI,CAACE,OAAL,CAAa1J,QAAQ,CAACwJ,IAAD,CAArB,CAAjB;QACH;MACJ,CANkB,CAAnB;IAOH;IAED;AACJ;AACA;AACA;;;;WACI,kCAAyB;MAAA;;MACrB,OAAO,IAAIzB,OAAJ,CAAY,UAAAC,OAAO,EAAI;QAC1B,MAAI,CAACrH,MAAL,CAAYkJ,OAAZ,CAAoBC,IAApB,CAAyB,eAAzB,EAA0C,QAA1C,EAAoD,UAApD,EAAgE,IAAhE,EAAsE,UAACxB,GAAD,EAAMyB,GAAN,EAAc;UAChF,IAAIzB,GAAJ,EAAS;YACLN,OAAO,CAAC,EAAD,CAAP;UACH,CAFD,MAEO;YACHA,OAAO,CAAC+B,GAAG,CAACC,IAAJ,CAAS9G,MAAT,CAAgB,UAAA+G,IAAI;cAAA,OAAIA,IAAI,CAACjB,KAAL,CAAWnI,MAAX,CAAkBqJ,aAAtB;YAAA,CAApB,EAAyDC,GAAzD,CAA6D,UAAAF,IAAI;cAAA,OAAIA,IAAI,CAACjB,KAAT;YAAA,CAAjE,CAAD,CAAP;UACH;QACJ,CAND;MAOH,CARM,CAAP;IASH;IAED;AACJ;AACA;AACA;;;;WACI,wBAAehC,IAAf,EAAqB;MAAA;;MACjB,OAAO,IAAIe,OAAJ,CAAY,UAACC,OAAD,EAAUoC,MAAV,EAAqB;QACpC,MAAI,CAACzJ,MAAL,CAAYkJ,OAAZ,CAAoBC,IAApB,CAAyB,aAAzB,EAAwC9C,IAAI,IAAI,MAAI,CAACnG,MAAL,CAAYmG,IAA5D,EAAkE,UAACqD,EAAD,EAAKC,KAAL,EAAe;UAC7E,IAAMC,IAAI,GAAG,CAAC;YAAC9E,IAAI,EAAE,sBAAsB1E,iBAAKoC,CAAL,CAAO,sBAAP,CAA7B;YAA6DqH,OAAO,EAAE,SAAtE;YAAiFC,MAAM,EAAE;UAAzF,CAAD,CAAb;UACA,IAAMC,IAAI,GAAG,CAAC;YAACjF,IAAI,EAAE,WAAP;YAAyB+E,OAAO,EAAE,IAAlC;YAA6CC,MAAM,EAAE;UAArD,CAAD,CAAb;;UACA,IAAIH,KAAJ,EAAW;YACPtD,IAAI,GAAGsD,KAAP;;YACA,IAAItD,IAAI,UAAJ,CAAY2D,QAAZ,IAAwB3D,IAAI,UAAJ,CAAY2D,QAAZ,CAAqBC,iBAAjD,EAAoE;cAChE3F,MAAM,CAACC,IAAP,CAAY8B,IAAI,UAAJ,CAAY2D,QAAZ,CAAqBC,iBAAjC,EAAoDxH,OAApD,CAA4D,UAAAyH,GAAG;gBAAA,OAC3D7D,IAAI,UAAJ,CAAY2D,QAAZ,CAAqBC,iBAArB,CAAuCC,GAAvC,EAA4CzH,OAA5C,CAAoD,UAAA0H,KAAK,EAAI;kBACzD,IAAIA,KAAK,CAACL,MAAN,KAAiB,MAArB,EAA6B;oBACzBF,IAAI,CAACX,IAAL,CAAU;sBAACnE,IAAI,EAAE,MAAMqF,KAAK,CAACL,MAAZ,GAAqB,IAArB,GAA4BK,KAAK,CAACN,OAAlC,GAA4C,KAA5C,GAAoDK,GAA3D;sBAAgEL,OAAO,EAAEM,KAAK,CAACN,OAA/E;sBAAwFC,MAAM,EAAE;oBAAhG,CAAV;kBACH,CAFD,MAEO;oBACHC,IAAI,CAACd,IAAL,CAAU;sBAACnE,IAAI,EAAE,MAAMqF,KAAK,CAACL,MAAZ,GAAqB,IAArB,GAA4BK,KAAK,CAACN,OAAlC,GAA4C,KAA5C,GAAoDK,GAA3D;sBAAgEL,OAAO,EAAEM,KAAK,CAACN,OAA/E;sBAAwFC,MAAM,EAAE;oBAAhG,CAAV;kBACH;gBACJ,CAND,CAD2D;cAAA,CAA/D;YAQH;;YACDC,IAAI,CAACtH,OAAL,CAAa,UAAAiH,EAAE;cAAA,OAAIE,IAAI,CAACX,IAAL,CAAUS,EAAV,CAAJ;YAAA,CAAf;UACH;;UACDrC,OAAO,CAACuC,IAAD,CAAP;QACH,CAlBD;MAmBH,CApBM,CAAP;IAqBH;IAED;AACJ;AACA;AACA;;;;WACI,gBAAOQ,OAAP,EAAgB;MAAA;;MACZ,IAAIC,MAAJ;;MACA,IAAI,KAAK3G,KAAL,CAAWO,oBAAf,EAAqC;QACjC,KAAKzD,QAAL,CAAc;UAACqD,SAAS,EAAE,KAAKH,KAAL,CAAWO;QAAvB,CAAd;QACA;MACH;;MAED,KAAKjE,MAAL,CAAY8F,SAAZ,CAAsB,KAAK1C,UAA3B,EACKsC,IADL,CACU,UAAA4E,OAAO,EAAI;QACbD,MAAM,GAAGC,OAAO,IAAI,EAApB;;QAEA,KAAK,IAAMC,CAAX,IAAgB,MAAI,CAAC7G,KAAL,UAAhB,EAAmC;UAC/B,IAAI,MAAI,CAACA,KAAL,WAAkB8G,cAAlB,CAAiCD,CAAjC,CAAJ,EAAyC;YACrC,IAAI,MAAI,CAAC7G,KAAL,WAAkB6G,CAAlB,MAAyB,IAA7B,EAAmC;cAC/BF,MAAM,UAAN,CAAcE,CAAd,IAAmB,IAAnB;YACH,CAFD,MAGA,IAAI,MAAI,CAAC7G,KAAL,WAAkB6G,CAAlB,MAAyBzH,SAA7B,EAAwC;cACpCuH,MAAM,UAAN,CAAcE,CAAd,IAAmB7I,IAAI,CAAC8F,KAAL,CAAW9F,IAAI,CAACC,SAAL,CAAe,MAAI,CAAC+B,KAAL,WAAkB6G,CAAlB,CAAf,CAAX,CAAnB;YACH,CAFD,MAEO;cACH,OAAOF,MAAM,UAAN,CAAcE,CAAd,CAAP;YACH;UACJ;QACJ;;QAED,IAAI,MAAI,CAAC7G,KAAL,CAAWxD,MAAf,EAAuB;UACnB,KAAK,IAAMwC,CAAX,IAAgB,MAAI,CAACgB,KAAL,CAAWxD,MAA3B,EAAmC;YAC/B,IAAI,MAAI,CAACwD,KAAL,CAAWxD,MAAX,CAAkBwC,CAAlB,MAAyB,IAA7B,EAAmC;cAC/B2H,MAAM,CAACnK,MAAP,CAAcwC,CAAd,IAAmB,IAAnB;YACH,CAFD,MAGA,IAAI,MAAI,CAACgB,KAAL,CAAWxD,MAAX,CAAkBwC,CAAlB,MAAyBI,SAA7B,EAAwC;cACpCuH,MAAM,CAACnK,MAAP,CAAcwC,CAAd,IAAmBhB,IAAI,CAAC8F,KAAL,CAAW9F,IAAI,CAACC,SAAL,CAAe,MAAI,CAAC+B,KAAL,CAAWxD,MAAX,CAAkBwC,CAAlB,CAAf,CAAX,CAAnB;YACH,CAFD,MAEO;cACH,OAAO2H,MAAM,CAACnK,MAAP,CAAcwC,CAAd,CAAP;YACH;UACJ;QACJ;;QAED,IAAI,MAAI,CAAC+H,aAAL,CAAmBJ,MAAM,UAAzB,MAAsC,KAA1C,EAAiD;UAC7C,OAAO,MAAI,CAACrK,MAAL,CAAY0K,SAAZ,CAAsB,MAAI,CAACtH,UAA3B,EAAuCiH,MAAvC,CAAP;QACH,CAFD,MAEO;UACH,OAAOjD,OAAO,CAACqC,MAAR,CAAe,uBAAf,CAAP;QACH;MACJ,CAnCL,EAoCK/D,IApCL,CAoCU,YAAM;QACR,MAAI,CAACf,WAAL,GAAmB0F,MAAM,UAAzB;QACAM,UAAU,CAAC7G,OAAX,GAAqB,KAArB;;QACA,MAAI,CAACtD,QAAL,CAAc;UAACsD,OAAO,EAAE;QAAV,CAAd;;QACAsG,OAAO,IAAIjL,UAAU,CAACyL,OAAX,EAAX;MACH,CAzCL,WA0CW,UAAA/K,CAAC,EAAI;QACR2B,OAAO,CAACoG,KAAR,sCAA4C/H,CAA5C;MACH,CA5CL;IA6CH;IAED;AACJ;AACA;AACA;;;;WACI,uBAAc;MAAA;;MACV,IAAI,CAAC,KAAK6D,KAAL,CAAWQ,KAAhB,EAAuB;QACnB,OAAO,IAAP;MACH;;MAED,oBAAO,gCAAC,oBAAD;QACH,YAAY,EAAE;UACV2G,QAAQ,EAAE,QADA;UAEVC,UAAU,EAAE;QAFF,CADX;QAKH,IAAI,EAAE,IALH;QAMH,gBAAgB,EAAE,IANf;QAOH,OAAO,EAAE;UAAA,OAAM,MAAI,CAACtK,QAAL,CAAc;YAAC0D,KAAK,EAAE;UAAR,CAAd,CAAN;QAAA,CAPN;QAQH,YAAY,EAAE;UACV,oBAAoB;QADV,CARX;QAWH,OAAO,eAAE;UAAM,EAAE,EAAC;QAAT,GAAuB,KAAKR,KAAL,CAAWQ,KAAlC,CAXN;QAYH,MAAM,EAAE,cACJ,gCAAC,sBAAD;UACI,GAAG,EAAC,OADR;UAEI,cAAW,OAFf;UAGI,KAAK,EAAC,SAHV;UAII,SAAS,EAAE,KAAK9E,KAAL,CAAW2L,OAAX,CAAmBC,KAJlC;UAKI,OAAO,EAAE;YAAA,OAAM,MAAI,CAACxK,QAAL,CAAc;cAAC0D,KAAK,EAAE;YAAR,CAAd,CAAN;UAAA,CALb;UAMI,IAAI,EAAC;QANT,gBAOI,gCAAC,iBAAD,OAPJ,CADI;MAZL,EAAP;IAwBH;IAED;AACJ;AACA;AACA;;;;;IAeI;AACJ;AACA;AACA;IACI,uBAAc;MAAA;;MACV,IAAI,CAAC,KAAKR,KAAL,CAAWG,SAAhB,EAA2B;QACvB,OAAO,IAAP;MACH,CAFD,MAEO;QACH,oBAAO,gCAAC,iBAAD;UAAa,IAAI,EAAE,KAAKH,KAAL,CAAWG,SAA9B;UAAyC,OAAO,EAAE;YAAA,OAAM,MAAI,CAACrD,QAAL,CAAc;cAACqD,SAAS,EAAE;YAAZ,CAAd,CAAN;UAAA;QAAlD,EAAP;MACH;IACJ;IAED;AACJ;AACA;AACA;;;;WACI,sBAAaoH,OAAb,EAAqB;MACjBA,OAAM,GAAGA,OAAM,IAAI,KAAKvH,KAAL,UAAnB;MACA,IAAMwH,SAAS,GAAIxJ,IAAI,CAACC,SAAL,CAAesJ,OAAf,MAA2BvJ,IAAI,CAACC,SAAL,CAAe,KAAKgD,WAApB,CAA9C;;MAEA,IAAGuG,SAAH,EAAc;QACVP,UAAU,CAAC7G,OAAX,GAAqB,IAArB;MACH,CAFD,MAEO;QACH6G,UAAU,CAAC7G,OAAX,GAAqB,KAArB;MACH;;MAED,OAAOoH,SAAP;IACH;IAED;AACJ;AACA;AACA;;;;WACI,sBAAaC,SAAb,EAAwB;MACpB,IAAIzJ,IAAI,CAACC,SAAL,CAAewJ,SAAf,MAA8BzJ,IAAI,CAACC,SAAL,CAAe,KAAK+B,KAAL,UAAf,CAAlC,EAAqE;QACjE,KAAKlD,QAAL,CAAc;UAAC,UAAQ2K,SAAT;UAAoBrH,OAAO,EAAE,KAAKsH,YAAL,CAAkBD,SAAlB;QAA7B,CAAd;MACH;IACJ;IAED;AACJ;AACA;AACA;;;;WACI,+BAAsBtH,SAAtB,EAAiC;MAC7B,IAAI,KAAKH,KAAL,CAAWO,oBAAX,KAAoCJ,SAAxC,EAAmD;QAC/C,KAAKrD,QAAL,CAAc;UAACyD,oBAAoB,EAAEJ;QAAvB,CAAd;MACH;IACJ;IAED;AACJ;AACA;AACA;;;;WACI,kCAAyB;MAAA;;MACrB,IAAI,KAAKH,KAAL,CAAWS,aAAf,EAA8B;QAC1B,oBAAO,gCAAC,4BAAD;UACH,KAAK,EAAE,KAAKT,KAAL,CAAW1C,KADf;UAEH,QAAQ,EAAE,KAAKqC,QAFZ;UAGH,eAAe,EAAE,KAAKK,KAAL,CAAW3B,KAAX,KAAqB,IAArB,IAA6B,KAAK2B,KAAL,CAAW3B,KAAX,KAAqB,IAAlD,IAA0D,KAAK2B,KAAL,CAAW3B,KAAX,KAAqB,IAH7F;UAIH,OAAO,EAAE,KAAK2B,KAAL,CAAWI,OAJjB;UAKH,MAAM,EAAE,gBAACsG,OAAD;YAAA,OAAa,OAAI,CAACiB,MAAL,CAAYjB,OAAZ,CAAb;UAAA,CALL;UAMH,OAAO,EAAE;YAAA,OAAMjL,UAAU,CAACyL,OAAX,EAAN;UAAA;QANN,EAAP;MAQH,CATD,MASO;QACH,OAAO,IAAP;MACH;IACJ;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;;WACI,4BAAmB7K,GAAnB,EAAwBuL,KAAxB,EAA+BjD,KAA/B,EAAsC;MAClC,IAAI,yBAAOiD,KAAP,MAAiB,QAArB,EAA+B;QAC3BA,KAAK,GAAGA,KAAK,CAAChJ,KAAN,CAAY,GAAZ,CAAR;MACH;;MACD,IAAMuG,IAAI,GAAGyC,KAAK,CAACC,KAAN,EAAb;;MACA,IAAI,CAACD,KAAK,CAAC1I,MAAX,EAAmB;QACf,IAAIyF,KAAK,IAAI,yBAAOA,KAAP,MAAiB,QAA9B,EAAwC;UACpC,IAAI3G,IAAI,CAACC,SAAL,CAAe5B,GAAG,CAAC8I,IAAD,CAAlB,MAA8BnH,IAAI,CAACC,SAAL,CAAe0G,KAAf,CAAlC,EAAyD;YACrDtI,GAAG,CAAC8I,IAAD,CAAH,GAAYR,KAAZ;YACA,OAAO,IAAP;UACH;QACJ,CALD,MAKO,IAAItI,GAAG,CAAC8I,IAAD,CAAH,KAAcR,KAAlB,EAAyB;UAC5BtI,GAAG,CAAC8I,IAAD,CAAH,GAAYR,KAAZ;UACA,OAAO,IAAP;QACH,CAHM,MAGA;UACH,OAAO,KAAP;QACH;MAEJ,CAbD,MAaO;QACHtI,GAAG,CAAC8I,IAAD,CAAH,GAAY9I,GAAG,CAAC8I,IAAD,CAAH,IAAa,EAAzB;;QACA,IAAI,yBAAO9I,GAAG,CAAC8I,IAAD,CAAV,MAAqB,QAAzB,EAAmC;UAC/B,MAAM,IAAI2C,KAAJ,CAAU,eAAe3C,IAAf,GAAsB,qBAAtB,4BAAqD9I,GAAG,CAAC8I,IAAD,CAAxD,CAAV,CAAN;QACH;;QACD,OAAO,KAAK4C,kBAAL,CAAwB1L,GAAG,CAAC8I,IAAD,CAA3B,EAAmCyC,KAAnC,EAA0CjD,KAA1C,CAAP;MACH;IACJ;IAED;AACJ;AACA;AACA;AACA;AACA;;;;WACI,2BAAkBQ,IAAlB,EAAwBR,KAAxB,EAA+BqD,EAA/B,EAAmC;MAC/B,IAAMT,QAAM,GAAGvJ,IAAI,CAAC8F,KAAL,CAAW9F,IAAI,CAACC,SAAL,CAAe,KAAK+B,KAAL,UAAf,CAAX,CAAf;;MACA,IAAI,KAAK+H,kBAAL,CAAwBR,QAAxB,EAAgCpC,IAAhC,EAAsCR,KAAtC,CAAJ,EAAkD;QAC9C,IAAMvE,OAAO,GAAG,KAAKsH,YAAL,CAAkBH,QAAlB,CAAhB;QACA,KAAKzK,QAAL,CAAc;UAAC,UAAAyK,QAAD;UAASnH,OAAO,EAAPA;QAAT,CAAd,EAAiC4H,EAAjC;MACH;IACJ;IAED;AACJ;AACA;AACA;;;;WACI,mBAAUC,IAAV,EAAgB;MACZ,KAAKnL,QAAL,CAAc;QAACqD,SAAS,EAAE8H;MAAZ,CAAd;IACH;IAED;AACJ;AACA;AACA;;;;WACI,mBAAUzH,KAAV,EAAiB;MACb,KAAK1D,QAAL,CAAc;QAAC0D,KAAK,EAALA;MAAD,CAAd;IACH;IAED;AACJ;AACA;AACA;;;;WACI,kBAAS;MACL,IAAI,CAAC,KAAKR,KAAL,CAAWM,MAAhB,EAAwB;QACpB,oBAAO,gCAAC,kBAAD;UAAQ,KAAK,EAAE,KAAKN,KAAL,CAAWvC;QAA1B,EAAP;MACH;;MAED,oBAAO;QAAK,SAAS,EAAC;MAAf,GACF,KAAKyK,WAAL,EADE,EAEF,KAAKC,WAAL,EAFE,EAGF,KAAKC,sBAAL,EAHE,CAAP;IAKH;;;;IAteD;AACJ;AACA;AACA;IACI,oBAAkB;MACd;AACR;AACA;AACA;AACA;MAEQ,IAAMC,KAAK,GAAG;QACVC,EAAE,EAAE,CADM;QAEVC,EAAE,EAAE,GAFM;QAGVC,EAAE,EAAE,GAHM;QAIVC,EAAE,EAAE,IAJM;QAKVC,EAAE,EAAE;MALM,CAAd;MAOA,IAAMrK,KAAK,GAAGhD,MAAM,CAACsN,UAArB;MACA,IAAM9H,IAAI,GAAGD,MAAM,CAACC,IAAP,CAAYwH,KAAZ,EAAmBO,OAAnB,EAAb;MACA,IAAMC,aAAa,GAAGhI,IAAI,CAACiI,IAAL,CAAU,UAAAC,GAAG;QAAA,OAAI1K,KAAK,IAAIgK,KAAK,CAACU,GAAD,CAAlB;MAAA,CAAb,CAAtB;MAEA,OAAOF,aAAa,IAAI,IAAxB;IACH;;;WA+SD,mBAAiB;MACb,IAAI,OAAOxN,MAAM,CAAC2N,MAAd,KAAyB,WAAzB,IAAwC3N,MAAM,CAAC2N,MAAnD,EAA2D;QACvD,IAAI;UACA,IAAI3N,MAAM,CAAC2N,MAAP,CAAcC,aAAd,IAA+B,OAAO5N,MAAM,CAAC2N,MAAP,CAAcC,aAAd,CAA4B3B,KAAnC,KAA6C,UAAhF,EAA4F;YACxFjM,MAAM,CAAC2N,MAAP,CAAcC,aAAd,CAA4B3B,KAA5B;UACH,CAFD,MAEO;YACHjM,MAAM,CAAC2N,MAAP,CAAcE,WAAd,CAA0B,OAA1B,EAAmC,GAAnC;UACH;QACJ,CAND,CAME,OAAO/M,CAAP,EAAU;UACRd,MAAM,CAAC2N,MAAP,CAAcE,WAAd,CAA0B,OAA1B,EAAmC,GAAnC;QACH;MACJ;IACJ;;;EA7kBoBtJ,mB;;AAouBzBnE,UAAU,CAAC0N,SAAX,GAAuB;EACnB1J,WAAW,EAAE2J,sBAAUC,MADJ;EACY;EAC/B1L,aAAa,EAAEyL,sBAAUE,IAFN;EAEY;EAC/BhN,MAAM,EAAE8M,sBAAUG,MAHC;EAGO;EAC1BrI,eAAe,EAAEkI,sBAAUI,KAJR;EAIe;EAClC/I,aAAa,EAAE2I,sBAAUK,IALN;EAKY;EAC/B5N,UAAU,EAAEuN,sBAAUG,MANH,CAMW;;AANX,CAAvB;eASe9N,U"}
package/Prompt.js ADDED
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ /**
9
+ * Print the ioBroker welcome screen to the developer console.
10
+ */
11
+ function printPrompt() {
12
+ var prompt = "\n\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \n\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2554\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\n\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\n\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2588\u2588\u2557 \u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\n\u2588\u2588\u2551\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2551\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\n\u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D\n";
13
+ console.log(prompt);
14
+ console.log('Nice to see you here! :) Join our dev community here https://github.com/ioBroker/ioBroker or here https://github.com/iobroker-community-adapters');
15
+ console.log('Help us to create open source project with reactJS!');
16
+ console.log('See you :)');
17
+ }
18
+
19
+ var _default = printPrompt;
20
+ exports["default"] = _default;
21
+ //# sourceMappingURL=Prompt.js.map
package/Prompt.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Prompt.js","names":["printPrompt","prompt","console","log"],"sources":["Prompt.js"],"sourcesContent":["\n/**\n * Print the ioBroker welcome screen to the developer console.\n */\nfunction printPrompt() {\n const prompt = `\n██╗ ██████╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗███████╗██████╗ \n██║██╔═══██╗██╔══██╗██╔══██╗██╔═══██╗██║ ██╔╝██╔════╝██╔══██╗\n██║██║ ██║██████╔╝██████╔╝██║ ██║█████╔╝ █████╗ ██████╔╝\n██║██║ ██║██╔══██╗██╔══██╗██║ ██║██╔═██╗ ██╔══╝ ██╔══██╗\n██║╚██████╔╝██████╔╝██║ ██║╚██████╔╝██║ ██╗███████╗██║ ██║\n╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝\n`;\n\n console.log(prompt);\n console.log('Nice to see you here! :) Join our dev community here https://github.com/ioBroker/ioBroker or here https://github.com/iobroker-community-adapters');\n console.log('Help us to create open source project with reactJS!');\n console.log('See you :)');\n}\n\nexport default printPrompt;"],"mappings":";;;;;;;AACA;AACA;AACA;AACA,SAASA,WAAT,GAAuB;EACnB,IAAMC,MAAM,s8DAAZ;EASAC,OAAO,CAACC,GAAR,CAAYF,MAAZ;EACAC,OAAO,CAACC,GAAR,CAAY,kJAAZ;EACAD,OAAO,CAACC,GAAR,CAAY,qDAAZ;EACAD,OAAO,CAACC,GAAR,CAAY,YAAZ;AACH;;eAEcH,W"}
package/README.md CHANGED
@@ -630,6 +630,7 @@ The icons may not be reused in other projects without the proper flaticon licens
630
630
  - Add to all `TextField` and `Select` the property `variant="standard"`
631
631
  - Add to all `Button` that do not have `color` property: `color="grey"`
632
632
  - Replace by `TextField` the `readOnly` attribute (if exists) with `InputProps={{readOnly: true}}`
633
+ - Remove px by all `theme.spacing`: `calc(100% - ${theme.spacing(4)}px)` => `calc(100% - ${theme.spacing(4)})`
633
634
 
634
635
  If you still have questions, try to find an answer [here](https://mui.com/guides/migration-v4/).
635
636
 
@@ -639,7 +640,14 @@ If you still have questions, try to find an answer [here](https://mui.com/guides
639
640
  -->
640
641
 
641
642
  ## Changelog
642
- ### 2.1.5 (2022-03-28)
643
+ ### 2.1.9 (2022-05-16)
644
+ * (bluefox) Corrected expert mode in object browser
645
+
646
+ ### 2.1.7 (2022-05-09)
647
+ * (bluefox) Changes were synchronized with adapter-react-v5
648
+ * (bluefox) Added `I18n.disableWarning` method
649
+
650
+ ### 2.1.6 (2022-03-28)
643
651
  * (bluefox) Added `log` method to connection
644
652
  * (bluefox) Corrected translations
645
653