@iobroker/adapter-react-v5 3.1.33 → 3.1.35

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 (243) hide show
  1. package/Components/404.js +0 -23
  2. package/Components/404.js.map +1 -1
  3. package/Components/ColorPicker.js +6 -37
  4. package/Components/ColorPicker.js.map +1 -1
  5. package/Components/ComplexCron.js +10 -84
  6. package/Components/ComplexCron.js.map +1 -1
  7. package/Components/CustomModal.js +29 -54
  8. package/Components/CustomModal.js.map +1 -1
  9. package/Components/FileBrowser.js +15 -265
  10. package/Components/FileBrowser.js.map +1 -1
  11. package/Components/FileViewer.js +7 -68
  12. package/Components/FileViewer.js.map +1 -1
  13. package/Components/Icon.d.ts +1 -1
  14. package/Components/Icon.js +2 -42
  15. package/Components/Icon.js.map +1 -1
  16. package/Components/IconPicker.js +6 -28
  17. package/Components/IconPicker.js.map +1 -1
  18. package/Components/IconSelector.js +3 -55
  19. package/Components/IconSelector.js.map +1 -1
  20. package/Components/Image.js +1 -38
  21. package/Components/Image.js.map +1 -1
  22. package/Components/JsonConfigComponent/ChipInput.js +66 -197
  23. package/Components/JsonConfigComponent/ChipInput.js.map +1 -1
  24. package/Components/JsonConfigComponent/ConfigAlive.js +0 -31
  25. package/Components/JsonConfigComponent/ConfigAlive.js.map +1 -1
  26. package/Components/JsonConfigComponent/ConfigAutocomplete.js +6 -39
  27. package/Components/JsonConfigComponent/ConfigAutocomplete.js.map +1 -1
  28. package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js +6 -52
  29. package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js.map +1 -1
  30. package/Components/JsonConfigComponent/ConfigCRON.js +5 -39
  31. package/Components/JsonConfigComponent/ConfigCRON.js.map +1 -1
  32. package/Components/JsonConfigComponent/ConfigCertificateSelect.js +4 -42
  33. package/Components/JsonConfigComponent/ConfigCertificateSelect.js.map +1 -1
  34. package/Components/JsonConfigComponent/ConfigCheckbox.js +0 -28
  35. package/Components/JsonConfigComponent/ConfigCheckbox.js.map +1 -1
  36. package/Components/JsonConfigComponent/ConfigChip.js +4 -33
  37. package/Components/JsonConfigComponent/ConfigChip.js.map +1 -1
  38. package/Components/JsonConfigComponent/ConfigColor.js +0 -34
  39. package/Components/JsonConfigComponent/ConfigColor.js.map +1 -1
  40. package/Components/JsonConfigComponent/ConfigCoordinates.js +0 -33
  41. package/Components/JsonConfigComponent/ConfigCoordinates.js.map +1 -1
  42. package/Components/JsonConfigComponent/ConfigCustom.js +14 -73
  43. package/Components/JsonConfigComponent/ConfigCustom.js.map +1 -1
  44. package/Components/JsonConfigComponent/ConfigDatePicker.js +0 -25
  45. package/Components/JsonConfigComponent/ConfigDatePicker.js.map +1 -1
  46. package/Components/JsonConfigComponent/ConfigFile.js +0 -46
  47. package/Components/JsonConfigComponent/ConfigFile.js.map +1 -1
  48. package/Components/JsonConfigComponent/ConfigFileSelector.js +7 -126
  49. package/Components/JsonConfigComponent/ConfigFileSelector.js.map +1 -1
  50. package/Components/JsonConfigComponent/ConfigFunc.js +0 -34
  51. package/Components/JsonConfigComponent/ConfigFunc.js.map +1 -1
  52. package/Components/JsonConfigComponent/ConfigGeneric.js +15 -110
  53. package/Components/JsonConfigComponent/ConfigGeneric.js.map +1 -1
  54. package/Components/JsonConfigComponent/ConfigIP.js +2 -35
  55. package/Components/JsonConfigComponent/ConfigIP.js.map +1 -1
  56. package/Components/JsonConfigComponent/ConfigImageUpload.js +4 -44
  57. package/Components/JsonConfigComponent/ConfigImageUpload.js.map +1 -1
  58. package/Components/JsonConfigComponent/ConfigInstanceSelect.js +1 -59
  59. package/Components/JsonConfigComponent/ConfigInstanceSelect.js.map +1 -1
  60. package/Components/JsonConfigComponent/ConfigJsonEditor.js +7 -40
  61. package/Components/JsonConfigComponent/ConfigJsonEditor.js.map +1 -1
  62. package/Components/JsonConfigComponent/ConfigLanguage.js +2 -42
  63. package/Components/JsonConfigComponent/ConfigLanguage.js.map +1 -1
  64. package/Components/JsonConfigComponent/ConfigNumber.js +2 -45
  65. package/Components/JsonConfigComponent/ConfigNumber.js.map +1 -1
  66. package/Components/JsonConfigComponent/ConfigObjectId.js +6 -40
  67. package/Components/JsonConfigComponent/ConfigObjectId.js.map +1 -1
  68. package/Components/JsonConfigComponent/ConfigPanel.js +7 -91
  69. package/Components/JsonConfigComponent/ConfigPanel.js.map +1 -1
  70. package/Components/JsonConfigComponent/ConfigPassword.js +0 -42
  71. package/Components/JsonConfigComponent/ConfigPassword.js.map +1 -1
  72. package/Components/JsonConfigComponent/ConfigPattern.js +0 -25
  73. package/Components/JsonConfigComponent/ConfigPattern.js.map +1 -1
  74. package/Components/JsonConfigComponent/ConfigRoom.js +0 -34
  75. package/Components/JsonConfigComponent/ConfigRoom.js.map +1 -1
  76. package/Components/JsonConfigComponent/ConfigSelect.js +4 -34
  77. package/Components/JsonConfigComponent/ConfigSelect.js.map +1 -1
  78. package/Components/JsonConfigComponent/ConfigSelectSendTo.js +11 -67
  79. package/Components/JsonConfigComponent/ConfigSelectSendTo.js.map +1 -1
  80. package/Components/JsonConfigComponent/ConfigSendto.js +8 -91
  81. package/Components/JsonConfigComponent/ConfigSendto.js.map +1 -1
  82. package/Components/JsonConfigComponent/ConfigSetState.js +0 -55
  83. package/Components/JsonConfigComponent/ConfigSetState.js.map +1 -1
  84. package/Components/JsonConfigComponent/ConfigSlider.js +0 -28
  85. package/Components/JsonConfigComponent/ConfigSlider.js.map +1 -1
  86. package/Components/JsonConfigComponent/ConfigStaticDivider.js +0 -21
  87. package/Components/JsonConfigComponent/ConfigStaticDivider.js.map +1 -1
  88. package/Components/JsonConfigComponent/ConfigStaticHeader.js +0 -24
  89. package/Components/JsonConfigComponent/ConfigStaticHeader.js.map +1 -1
  90. package/Components/JsonConfigComponent/ConfigStaticImage.js +0 -23
  91. package/Components/JsonConfigComponent/ConfigStaticImage.js.map +1 -1
  92. package/Components/JsonConfigComponent/ConfigStaticText.js +0 -31
  93. package/Components/JsonConfigComponent/ConfigStaticText.js.map +1 -1
  94. package/Components/JsonConfigComponent/ConfigTable.js +13 -105
  95. package/Components/JsonConfigComponent/ConfigTable.js.map +1 -1
  96. package/Components/JsonConfigComponent/ConfigTabs.js +2 -35
  97. package/Components/JsonConfigComponent/ConfigTabs.js.map +1 -1
  98. package/Components/JsonConfigComponent/ConfigText.js +0 -34
  99. package/Components/JsonConfigComponent/ConfigText.js.map +1 -1
  100. package/Components/JsonConfigComponent/ConfigTextSendTo.js +0 -37
  101. package/Components/JsonConfigComponent/ConfigTextSendTo.js.map +1 -1
  102. package/Components/JsonConfigComponent/ConfigTimePicker.js +0 -25
  103. package/Components/JsonConfigComponent/ConfigTimePicker.js.map +1 -1
  104. package/Components/JsonConfigComponent/ConfigTopic.js +0 -29
  105. package/Components/JsonConfigComponent/ConfigTopic.js.map +1 -1
  106. package/Components/JsonConfigComponent/ConfigUser.js +2 -40
  107. package/Components/JsonConfigComponent/ConfigUser.js.map +1 -1
  108. package/Components/JsonConfigComponent/index.js +5 -81
  109. package/Components/JsonConfigComponent/index.js.map +1 -1
  110. package/Components/Loader.js +2 -20
  111. package/Components/Loader.js.map +1 -1
  112. package/Components/Loaders/PT.js +2 -20
  113. package/Components/Loaders/PT.js.map +1 -1
  114. package/Components/Loaders/Vendor.js +2 -21
  115. package/Components/Loaders/Vendor.js.map +1 -1
  116. package/Components/Logo.js +6 -39
  117. package/Components/Logo.js.map +1 -1
  118. package/Components/MDUtils.js +3 -27
  119. package/Components/MDUtils.js.map +1 -1
  120. package/Components/ObjectBrowser.d.ts +1 -1
  121. package/Components/ObjectBrowser.js +206 -794
  122. package/Components/ObjectBrowser.js.map +1 -1
  123. package/Components/Router.js +7 -31
  124. package/Components/Router.js.map +1 -1
  125. package/Components/SaveCloseButtons.js +2 -32
  126. package/Components/SaveCloseButtons.js.map +1 -1
  127. package/Components/Schedule.js +29 -251
  128. package/Components/Schedule.js.map +1 -1
  129. package/Components/SelectWithIcon.d.ts +1 -1
  130. package/Components/SelectWithIcon.js +0 -48
  131. package/Components/SelectWithIcon.js.map +1 -1
  132. package/Components/SimpleCron/cron2text.js +45 -91
  133. package/Components/SimpleCron/cron2text.js.map +1 -1
  134. package/Components/SimpleCron/cronText.js +0 -6
  135. package/Components/SimpleCron/cronText.js.map +1 -1
  136. package/Components/SimpleCron/index.js +19 -102
  137. package/Components/SimpleCron/index.js.map +1 -1
  138. package/Components/SimpleCron/jquery.cron.locale.js +44 -24
  139. package/Components/SimpleCron/jquery.cron.locale.js.map +1 -1
  140. package/Components/TabContainer.js +2 -23
  141. package/Components/TabContainer.js.map +1 -1
  142. package/Components/TabContent.js +2 -22
  143. package/Components/TabContent.js.map +1 -1
  144. package/Components/TabHeader.js +1 -17
  145. package/Components/TabHeader.js.map +1 -1
  146. package/Components/TableResize.js +6 -51
  147. package/Components/TableResize.js.map +1 -1
  148. package/Components/TextWithIcon.js +0 -20
  149. package/Components/TextWithIcon.js.map +1 -1
  150. package/Components/ToggleThemeMenu.js +5 -13
  151. package/Components/ToggleThemeMenu.js.map +1 -1
  152. package/Components/TreeTable.js +4 -121
  153. package/Components/TreeTable.js.map +1 -1
  154. package/Components/UploadImage.js +17 -60
  155. package/Components/UploadImage.js.map +1 -1
  156. package/Components/Utils.js +87 -263
  157. package/Components/Utils.js.map +1 -1
  158. package/Components/copy-to-clipboard.js +16 -38
  159. package/Components/copy-to-clipboard.js.map +1 -1
  160. package/Components/withWidth.js +2 -10
  161. package/Components/withWidth.js.map +1 -1
  162. package/Connection.d.ts +1 -0
  163. package/Connection.js +156 -527
  164. package/Connection.js.map +1 -1
  165. package/Dialogs/ComplexCron.js +0 -34
  166. package/Dialogs/ComplexCron.js.map +1 -1
  167. package/Dialogs/Confirm.js +1 -39
  168. package/Dialogs/Confirm.js.map +1 -1
  169. package/Dialogs/Cron.js +1 -37
  170. package/Dialogs/Cron.js.map +1 -1
  171. package/Dialogs/Error.d.ts +1 -1
  172. package/Dialogs/Error.js +2 -29
  173. package/Dialogs/Error.js.map +1 -1
  174. package/Dialogs/FileSelect.js +2 -36
  175. package/Dialogs/FileSelect.js.map +1 -1
  176. package/Dialogs/Message.js +2 -27
  177. package/Dialogs/Message.js.map +1 -1
  178. package/Dialogs/SelectID.d.ts +1 -1
  179. package/Dialogs/SelectID.js +3 -40
  180. package/Dialogs/SelectID.js.map +1 -1
  181. package/Dialogs/SimpleCron.js +1 -33
  182. package/Dialogs/SimpleCron.js.map +1 -1
  183. package/Dialogs/TextInput.js +2 -34
  184. package/Dialogs/TextInput.js.map +1 -1
  185. package/GenericApp.js +54 -150
  186. package/GenericApp.js.map +1 -1
  187. package/Prompt.js +0 -2
  188. package/Prompt.js.map +1 -1
  189. package/README.md +11 -4
  190. package/Theme.js +7 -22
  191. package/Theme.js.map +1 -1
  192. package/i18n.d.ts +2 -0
  193. package/i18n.js +14 -25
  194. package/i18n.js.map +1 -1
  195. package/icons/IconAdapter.d.ts +2 -2
  196. package/icons/IconAdapter.js +2 -6
  197. package/icons/IconAdapter.js.map +1 -1
  198. package/icons/IconAlias.d.ts +2 -2
  199. package/icons/IconAlias.js +2 -6
  200. package/icons/IconAlias.js.map +1 -1
  201. package/icons/IconChannel.d.ts +2 -2
  202. package/icons/IconChannel.js +2 -6
  203. package/icons/IconChannel.js.map +1 -1
  204. package/icons/IconClearFilter.d.ts +2 -2
  205. package/icons/IconClearFilter.js +0 -5
  206. package/icons/IconClearFilter.js.map +1 -1
  207. package/icons/IconClosed.d.ts +2 -2
  208. package/icons/IconClosed.js +0 -5
  209. package/icons/IconClosed.js.map +1 -1
  210. package/icons/IconCopy.d.ts +2 -2
  211. package/icons/IconCopy.js +0 -5
  212. package/icons/IconCopy.js.map +1 -1
  213. package/icons/IconDevice.d.ts +2 -2
  214. package/icons/IconDevice.js +0 -5
  215. package/icons/IconDevice.js.map +1 -1
  216. package/icons/IconDocument.d.ts +2 -2
  217. package/icons/IconDocument.js +0 -5
  218. package/icons/IconDocument.js.map +1 -1
  219. package/icons/IconDocumentReadOnly.d.ts +2 -2
  220. package/icons/IconDocumentReadOnly.js +0 -5
  221. package/icons/IconDocumentReadOnly.js.map +1 -1
  222. package/icons/IconExpert.d.ts +2 -2
  223. package/icons/IconExpert.js +0 -5
  224. package/icons/IconExpert.js.map +1 -1
  225. package/icons/IconFx.d.ts +2 -2
  226. package/icons/IconFx.js +0 -5
  227. package/icons/IconFx.js.map +1 -1
  228. package/icons/IconInstance.d.ts +2 -2
  229. package/icons/IconInstance.js +0 -5
  230. package/icons/IconInstance.js.map +1 -1
  231. package/icons/IconLogout.d.ts +2 -2
  232. package/icons/IconLogout.js +0 -5
  233. package/icons/IconLogout.js.map +1 -1
  234. package/icons/IconNoIcon.d.ts +2 -2
  235. package/icons/IconNoIcon.js +0 -5
  236. package/icons/IconNoIcon.js.map +1 -1
  237. package/icons/IconOpen.d.ts +2 -2
  238. package/icons/IconOpen.js +0 -5
  239. package/icons/IconOpen.js.map +1 -1
  240. package/icons/IconState.d.ts +2 -2
  241. package/icons/IconState.js +0 -6
  242. package/icons/IconState.js.map +1 -1
  243. package/package.json +15 -15
@@ -1,72 +1,40 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = void 0;
9
-
10
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
9
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
-
14
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
11
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
-
18
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
19
-
20
13
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
21
-
22
14
  var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
23
-
24
15
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
25
-
26
16
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
27
-
28
17
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
29
-
30
18
  var _react = _interopRequireDefault(require("react"));
31
-
32
19
  var _propTypes = _interopRequireDefault(require("prop-types"));
33
-
34
20
  var _styles = require("@mui/styles");
35
-
36
21
  var _Button = _interopRequireDefault(require("@mui/material/Button"));
37
-
38
22
  var _Warning = _interopRequireDefault(require("@mui/icons-material/Warning"));
39
-
40
23
  var _Error = _interopRequireDefault(require("@mui/icons-material/Error"));
41
-
42
24
  var _Info = _interopRequireDefault(require("@mui/icons-material/Info"));
43
-
44
25
  var _Key = _interopRequireDefault(require("@mui/icons-material/Key"));
45
-
46
26
  var _Send = _interopRequireDefault(require("@mui/icons-material/Send"));
47
-
48
27
  var _Public = _interopRequireDefault(require("@mui/icons-material/Public"));
49
-
50
28
  var _i18n = _interopRequireDefault(require("../../i18n"));
51
-
52
29
  var _Icon = _interopRequireDefault(require("../Icon"));
53
-
54
30
  var _Error2 = _interopRequireDefault(require("../../Dialogs/Error"));
55
-
56
31
  var _Message = _interopRequireDefault(require("../../Dialogs/Message"));
57
-
58
32
  var _Confirm = _interopRequireDefault(require("../../Dialogs/Confirm"));
59
-
60
33
  var _ConfigGeneric2 = _interopRequireDefault(require("./ConfigGeneric"));
61
-
62
34
  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; }
63
-
64
35
  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; }
65
-
66
36
  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); }; }
67
-
68
37
  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; } }
69
-
70
38
  var styles = function styles() {
71
39
  return {
72
40
  fullWidth: {
@@ -79,25 +47,22 @@ var styles = function styles() {
79
47
  }
80
48
  };
81
49
  };
82
-
83
50
  function ip2int(ip) {
84
51
  return ip.split('.').reduce(function (ipInt, octet) {
85
52
  return (ipInt << 8) + parseInt(octet, 10);
86
53
  }, 0) >>> 0;
87
- } // copied from iobroker.admin/src-rx/src/Utils.js
88
-
54
+ }
89
55
 
56
+ // copied from iobroker.admin/src-rx/src/Utils.js
90
57
  function findNetworkAddressOfHost(obj, localIp) {
91
58
  var _obj$native, _obj$native$hardware;
92
-
93
59
  var networkInterfaces = obj === null || obj === void 0 ? void 0 : (_obj$native = obj["native"]) === null || _obj$native === void 0 ? void 0 : (_obj$native$hardware = _obj$native.hardware) === null || _obj$native$hardware === void 0 ? void 0 : _obj$native$hardware.networkInterfaces;
94
-
95
60
  if (!networkInterfaces) {
96
61
  return null;
97
62
  }
63
+ var hostIp;
98
64
 
99
- var hostIp; // check ipv4 addresses
100
-
65
+ // check ipv4 addresses
101
66
  Object.keys(networkInterfaces).forEach(function (inter) {
102
67
  return networkInterfaces[inter].forEach(function (ip) {
103
68
  if (ip.internal) {
@@ -106,9 +71,8 @@ function findNetworkAddressOfHost(obj, localIp) {
106
71
  return;
107
72
  } else if (localIp.includes('.') && !localIp.match(/[^.\d]/) && ip.family !== 'IPv4') {
108
73
  return;
109
- } // if ip4 and not docker or wsl
110
-
111
-
74
+ }
75
+ // if ip4 and not docker or wsl
112
76
  if (ip.family === 'IPv4' && !ip.address.startsWith('172') && (localIp === '127.0.0.0' || localIp === 'localhost' || localIp.match(/[^.\d]/))) {
113
77
  // if DNS name
114
78
  hostIp = ip.address;
@@ -120,8 +84,9 @@ function findNetworkAddressOfHost(obj, localIp) {
120
84
  }
121
85
  }
122
86
  });
123
- }); // check ipv6 addresses
87
+ });
124
88
 
89
+ // check ipv6 addresses
125
90
  if (!hostIp) {
126
91
  Object.keys(networkInterfaces).forEach(function (inter) {
127
92
  return networkInterfaces[inter].forEach(function (ip) {
@@ -132,7 +97,6 @@ function findNetworkAddressOfHost(obj, localIp) {
132
97
  } else if (localIp.includes('.') && !localIp.match(/[^.\d]/) && ip.family !== 'IPv4') {
133
98
  return;
134
99
  }
135
-
136
100
  if (ip.family === 'IPv6' && (localIp === '127.0.0.0' || localIp === 'localhost' || localIp.match(/[^.\d]/))) {
137
101
  // if DNS name
138
102
  hostIp = ip.address;
@@ -146,7 +110,6 @@ function findNetworkAddressOfHost(obj, localIp) {
146
110
  });
147
111
  });
148
112
  }
149
-
150
113
  if (!hostIp) {
151
114
  Object.keys(networkInterfaces).forEach(function (inter) {
152
115
  networkInterfaces[inter].forEach(function (ip) {
@@ -157,7 +120,6 @@ function findNetworkAddressOfHost(obj, localIp) {
157
120
  } else if (localIp.includes('.') && !localIp.match(/[^.\d]/) && ip.family !== 'IPv4') {
158
121
  return;
159
122
  }
160
-
161
123
  if (localIp === '127.0.0.0' || localIp === 'localhost' || localIp.match(/[^.\d]/)) {
162
124
  // if DNS name
163
125
  hostIp = ip.address;
@@ -167,32 +129,25 @@ function findNetworkAddressOfHost(obj, localIp) {
167
129
  });
168
130
  });
169
131
  }
170
-
171
132
  if (!hostIp) {
172
133
  Object.keys(networkInterfaces).forEach(function (inter) {
173
134
  networkInterfaces[inter].forEach(function (ip) {
174
135
  if (ip.internal) {
175
136
  return;
176
137
  }
177
-
178
138
  hostIp = ip.address;
179
139
  });
180
140
  });
181
141
  }
182
-
183
142
  return hostIp;
184
143
  }
185
-
186
144
  var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
187
145
  (0, _inherits2["default"])(ConfigSendto, _ConfigGeneric);
188
-
189
146
  var _super = _createSuper(ConfigSendto);
190
-
191
147
  function ConfigSendto() {
192
148
  (0, _classCallCheck2["default"])(this, ConfigSendto);
193
149
  return _super.apply(this, arguments);
194
150
  }
195
-
196
151
  (0, _createClass2["default"])(ConfigSendto, [{
197
152
  key: "componentDidMount",
198
153
  value: function () {
@@ -204,49 +159,39 @@ var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
204
159
  case 0:
205
160
  (0, _get2["default"])((0, _getPrototypeOf2["default"])(ConfigSendto.prototype), "componentDidMount", this).call(this);
206
161
  hostname = window.location.hostname;
207
-
208
162
  if (!this.props.schema.openUrl) {
209
163
  _context.next = 19;
210
164
  break;
211
165
  }
212
-
213
166
  _context.next = 5;
214
167
  return this.props.socket.getCurrentInstance();
215
-
216
168
  case 5:
217
169
  adminInstance = _context.sent;
218
170
  _context.next = 8;
219
171
  return this.props.socket.getObject("system.adapter.".concat(adminInstance));
220
-
221
172
  case 8:
222
173
  instanceObj = _context.sent;
223
174
  _context.next = 11;
224
175
  return this.props.socket.getObject("system.host.".concat(instanceObj.common.host));
225
-
226
176
  case 11:
227
177
  hostObj = _context.sent;
228
178
  ip = findNetworkAddressOfHost(hostObj, window.location.hostname);
229
-
230
179
  if (!ip) {
231
180
  _context.next = 17;
232
181
  break;
233
182
  }
234
-
235
183
  hostname = "".concat(ip, ":").concat(window.location.port);
236
184
  _context.next = 19;
237
185
  break;
238
-
239
186
  case 17:
240
187
  console.warn("Cannot find suitable IP in host ".concat(instanceObj.common.host, " for ").concat(instanceObj._id));
241
188
  return _context.abrupt("return", null);
242
-
243
189
  case 19:
244
190
  this.setState({
245
191
  _error: '',
246
192
  _message: '',
247
193
  hostname: hostname
248
194
  });
249
-
250
195
  case 20:
251
196
  case "end":
252
197
  return _context.stop();
@@ -254,18 +199,15 @@ var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
254
199
  }
255
200
  }, _callee, this);
256
201
  }));
257
-
258
202
  function componentDidMount() {
259
203
  return _componentDidMount.apply(this, arguments);
260
204
  }
261
-
262
205
  return componentDidMount;
263
206
  }()
264
207
  }, {
265
208
  key: "renderErrorDialog",
266
209
  value: function renderErrorDialog() {
267
210
  var _this = this;
268
-
269
211
  if (this.state._error) {
270
212
  return /*#__PURE__*/_react["default"].createElement(_Error2["default"], {
271
213
  text: this.state._error,
@@ -284,7 +226,6 @@ var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
284
226
  key: "renderMessageDialog",
285
227
  value: function renderMessageDialog() {
286
228
  var _this2 = this;
287
-
288
229
  if (this.state._message) {
289
230
  return /*#__PURE__*/_react["default"].createElement(_Message["default"], {
290
231
  text: this.state._message,
@@ -303,50 +244,39 @@ var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
303
244
  key: "_onClick",
304
245
  value: function _onClick() {
305
246
  var _this3 = this;
306
-
307
247
  this.props.onCommandRunning(true);
308
-
309
248
  var _origin = "".concat(window.location.protocol, "//").concat(window.location.host).concat(window.location.pathname.replace(/\/index\.html$/, ''));
310
-
311
249
  var _originIp = "".concat(window.location.protocol, "//").concat(this.state.hostname.split(':').length > 3 ? "[".concat(this.state.hostname, "]") : this.state.hostname).concat(window.location.pathname.replace(/\/index\.html$/, ''));
312
-
313
250
  var data = this.props.schema.data;
314
-
315
251
  if (data === undefined && this.props.schema.jsonData) {
316
252
  data = this.getPattern(this.props.schema.jsonData, _objectSpread({
317
253
  _origin: _origin,
318
254
  _originIp: _originIp
319
255
  }, this.props.data));
320
-
321
256
  try {
322
257
  data = JSON.parse(data);
323
258
  } catch (e) {
324
259
  console.error('Cannot parse json data: ' + data);
325
260
  }
326
261
  }
327
-
328
262
  if (data === undefined) {
329
263
  data = null;
330
264
  }
331
-
332
265
  if (this.props.schema.openUrl && !data) {
333
266
  data = {
334
267
  _origin: _origin,
335
268
  _originIp: _originIp
336
269
  };
337
270
  }
338
-
339
271
  this.props.socket.sendTo("".concat(this.props.adapterName, ".").concat(this.props.instance), this.props.schema.command || 'send', data).then(function (response) {
340
272
  if (response !== null && response !== void 0 && response.error) {
341
273
  if (_this3.props.schema.error && _this3.props.schema.error[response.error]) {
342
274
  var error = _this3.getText(_this3.props.schema.error[response.error]);
343
-
344
275
  if (response.args) {
345
276
  response.args.forEach(function (arg) {
346
277
  return error = error.replace('%s', arg);
347
278
  });
348
279
  }
349
-
350
280
  _this3.setState({
351
281
  _error: error
352
282
  });
@@ -360,13 +290,11 @@ var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
360
290
  window.open(response.openUrl, response.window || _this3.props.schema.window || '_blank');
361
291
  } else if (response !== null && response !== void 0 && response.result && _this3.props.schema.result && _this3.props.schema.result[response.result]) {
362
292
  var text = _this3.getText(_this3.props.schema.result[response.result]);
363
-
364
293
  if (response.args) {
365
294
  response.args.forEach(function (arg) {
366
295
  return text = text.replace('%s', arg);
367
296
  });
368
297
  }
369
-
370
298
  window.alert(text);
371
299
  } else {
372
300
  if (response !== null && response !== void 0 && response.result) {
@@ -375,7 +303,6 @@ var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
375
303
  window.alert(_i18n["default"].t('ra_Ok'));
376
304
  }
377
305
  }
378
-
379
306
  if (response !== null && response !== void 0 && response.saveConfig) {
380
307
  _this3.props.onChange(null, null, null, true);
381
308
  }
@@ -398,14 +325,11 @@ var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
398
325
  key: "renderConfirmDialog",
399
326
  value: function renderConfirmDialog() {
400
327
  var _this4 = this;
401
-
402
328
  if (!this.state.confirmDialog) {
403
329
  return null;
404
330
  }
405
-
406
331
  var confirm = this.state.confirmData || this.props.schema.confirm;
407
332
  var icon = null;
408
-
409
333
  if (confirm.type === 'warning') {
410
334
  icon = /*#__PURE__*/_react["default"].createElement(_Warning["default"], null);
411
335
  } else if (confirm.type === 'error') {
@@ -413,7 +337,6 @@ var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
413
337
  } else if (confirm.type === 'info') {
414
338
  icon = /*#__PURE__*/_react["default"].createElement(_Info["default"], null);
415
339
  }
416
-
417
340
  return /*#__PURE__*/_react["default"].createElement(_Confirm["default"], {
418
341
  title: this.getText(confirm.title) || _i18n["default"].t('ra_Please confirm'),
419
342
  text: this.getText(confirm.text),
@@ -433,7 +356,6 @@ var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
433
356
  key: "getIcon",
434
357
  value: function getIcon() {
435
358
  var icon = null;
436
-
437
359
  if (this.props.schema.icon === 'auth') {
438
360
  icon = /*#__PURE__*/_react["default"].createElement(_Key["default"], null);
439
361
  } else if (this.props.schema.icon === 'send') {
@@ -451,14 +373,12 @@ var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
451
373
  src: this.props.schema.icon
452
374
  });
453
375
  }
454
-
455
376
  return icon;
456
377
  }
457
378
  }, {
458
379
  key: "renderItem",
459
380
  value: function renderItem(error, disabled, defaultValue) {
460
381
  var _this5 = this;
461
-
462
382
  var icon = this.getIcon();
463
383
  return /*#__PURE__*/_react["default"].createElement("div", {
464
384
  className: this.props.classes.fullWidth
@@ -482,7 +402,6 @@ var ConfigSendto = /*#__PURE__*/function (_ConfigGeneric) {
482
402
  }]);
483
403
  return ConfigSendto;
484
404
  }(_ConfigGeneric2["default"]);
485
-
486
405
  ConfigSendto.propTypes = {
487
406
  socket: _propTypes["default"].object.isRequired,
488
407
  themeType: _propTypes["default"].string,
@@ -498,8 +417,6 @@ ConfigSendto.propTypes = {
498
417
  commandRunning: _propTypes["default"].bool,
499
418
  onCommandRunning: _propTypes["default"].func
500
419
  };
501
-
502
420
  var _default = (0, _styles.withStyles)(styles)(ConfigSendto);
503
-
504
421
  exports["default"] = _default;
505
422
  //# sourceMappingURL=ConfigSendto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigSendto.js","names":["styles","fullWidth","width","icon","height","marginRight","ip2int","ip","split","reduce","ipInt","octet","parseInt","findNetworkAddressOfHost","obj","localIp","networkInterfaces","hardware","hostIp","Object","keys","forEach","inter","internal","includes","family","match","address","startsWith","netmask","ConfigSendto","hostname","window","location","props","schema","openUrl","socket","getCurrentInstance","adminInstance","getObject","instanceObj","common","host","hostObj","port","console","warn","_id","setState","_error","_message","state","undefined","onCommandRunning","_origin","protocol","pathname","replace","_originIp","length","data","jsonData","getPattern","JSON","parse","e","error","sendTo","adapterName","instance","command","then","response","getText","args","arg","I18n","t","open","result","text","alert","stringify","saveConfig","onChange","toString","confirmDialog","confirm","confirmData","type","title","ok","cancel","isOk","_onClick","disabled","defaultValue","getIcon","classes","variant","color","label","noTranslation","renderErrorDialog","renderMessageDialog","ConfigGeneric","propTypes","PropTypes","object","isRequired","themeType","string","themeName","style","className","onError","func","number","commandRunning","bool","withStyles"],"sources":["JsonConfigComponent/ConfigSendto.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport Button from '@mui/material/Button';\n\nimport IconWarning from '@mui/icons-material/Warning';\nimport IconError from '@mui/icons-material/Error';\nimport IconInfo from '@mui/icons-material/Info';\nimport IconAuth from '@mui/icons-material/Key';\nimport IconSend from '@mui/icons-material/Send';\nimport IconWeb from '@mui/icons-material/Public';\n\nimport I18n from '../../i18n';\nimport Icon from '../Icon';\nimport DialogError from '../../Dialogs/Error';\nimport DialogMessage from '../../Dialogs/Message';\nimport ConfirmDialog from '../../Dialogs/Confirm';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = () => ({\n fullWidth: {\n width: '100%'\n },\n icon: {\n width: 24,\n height: 24,\n marginRight: 4\n }\n});\n\nfunction ip2int(ip) {\n return ip.split('.').reduce((ipInt, octet) => (ipInt << 8) + parseInt(octet, 10), 0) >>> 0;\n}\n\n// copied from iobroker.admin/src-rx/src/Utils.js\nfunction findNetworkAddressOfHost(obj, localIp) {\n const networkInterfaces = obj?.native?.hardware?.networkInterfaces;\n if (!networkInterfaces) {\n return null;\n }\n\n let hostIp;\n\n // check ipv4 addresses\n Object.keys(networkInterfaces).forEach(inter =>\n networkInterfaces[inter].forEach(ip => {\n if (ip.internal) {\n return;\n } else if (localIp.includes(':') && ip.family !== 'IPv6') {\n return;\n } else if (localIp.includes('.') && !localIp.match(/[^.\\d]/) && ip.family !== 'IPv4') {\n return;\n }\n // if ip4 and not docker or wsl\n if (ip.family === 'IPv4' && !ip.address.startsWith('172') && (localIp === '127.0.0.0' || localIp === 'localhost' || localIp.match(/[^.\\d]/))) { // if DNS name\n hostIp = ip.address;\n } else if (!hostIp) {\n if (ip.family === 'IPv4' && localIp.includes('.') &&\n (ip2int(localIp) & ip2int(ip.netmask)) === (ip2int(ip.address) & ip2int(ip.netmask))) {\n hostIp = ip.address;\n } else {\n hostIp = ip.address;\n }\n }\n }));\n\n // check ipv6 addresses\n if (!hostIp) {\n Object.keys(networkInterfaces).forEach(inter =>\n networkInterfaces[inter].forEach(ip => {\n if (ip.internal) {\n return;\n } else if (localIp.includes(':') && ip.family !== 'IPv6') {\n return;\n } else if (localIp.includes('.') && !localIp.match(/[^.\\d]/) && ip.family !== 'IPv4') {\n return;\n }\n if (ip.family === 'IPv6' && (localIp === '127.0.0.0' || localIp === 'localhost' || localIp.match(/[^.\\d]/))) { // if DNS name\n hostIp = ip.address;\n } else if (!hostIp) {\n if (ip.family === 'IPv4' && localIp.includes('.') &&\n (ip2int(localIp) & ip2int(ip.netmask)) === (ip2int(ip.address) & ip2int(ip.netmask))) {\n hostIp = ip.address;\n } else {\n hostIp = ip.address;\n }\n }\n }));\n }\n\n if (!hostIp) {\n Object.keys(networkInterfaces).forEach(inter => {\n networkInterfaces[inter].forEach(ip => {\n if (ip.internal) {\n return;\n } else if (localIp.includes(':') && ip.family !== 'IPv6') {\n return;\n } else if (localIp.includes('.') && !localIp.match(/[^.\\d]/) && ip.family !== 'IPv4') {\n return;\n }\n if (localIp === '127.0.0.0' || localIp === 'localhost' || localIp.match(/[^.\\d]/)) { // if DNS name\n hostIp = ip.address;\n } else {\n hostIp = ip.address;\n }\n });\n });\n }\n\n if (!hostIp) {\n Object.keys(networkInterfaces).forEach(inter => {\n networkInterfaces[inter].forEach(ip => {\n if (ip.internal) {\n return;\n }\n hostIp = ip.address;\n });\n });\n }\n\n return hostIp;\n}\n\n\nclass ConfigSendto extends ConfigGeneric {\n async componentDidMount() {\n super.componentDidMount();\n\n let hostname = window.location.hostname;\n if (this.props.schema.openUrl) {\n // read admin host\n const adminInstance = await this.props.socket.getCurrentInstance();\n const instanceObj = await this.props.socket.getObject(`system.adapter.${adminInstance}`);\n const hostObj = await this.props.socket.getObject(`system.host.${instanceObj.common.host}`);\n\n const ip = findNetworkAddressOfHost(hostObj, window.location.hostname);\n if (ip) {\n hostname = `${ip}:${window.location.port}`;\n } else {\n console.warn(`Cannot find suitable IP in host ${instanceObj.common.host} for ${instanceObj._id}`);\n return null;\n }\n }\n this.setState( { _error: '', _message: '', hostname });\n }\n\n renderErrorDialog() {\n if (this.state._error) {\n return <DialogError text={this.state._error} classes={undefined} onClose={() => this.setState({_error: ''})} />;\n } else {\n return null;\n }\n }\n\n renderMessageDialog() {\n if (this.state._message) {\n return <DialogMessage text={this.state._message} classes={undefined} onClose={() => this.setState({_error: ''})} />;\n } else {\n return null;\n }\n }\n\n _onClick() {\n this.props.onCommandRunning(true);\n\n const _origin = `${window.location.protocol}//${window.location.host}${window.location.pathname.replace(/\\/index\\.html$/, '')}`\n const _originIp = `${window.location.protocol}//${this.state.hostname.split(':').length > 3 ? `[${this.state.hostname}]` : this.state.hostname}${window.location.pathname.replace(/\\/index\\.html$/, '')}`\n\n let data = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n data = this.getPattern(this.props.schema.jsonData, {\n _origin,\n _originIp,\n ...this.props.data\n });\n try {\n data = JSON.parse(data);\n } catch (e) {\n console.error('Cannot parse json data: ' + data);\n }\n }\n if (data === undefined) {\n data = null;\n }\n if (this.props.schema.openUrl && !data) {\n data = {\n _origin,\n _originIp,\n }\n }\n\n this.props.socket.sendTo(\n `${this.props.adapterName}.${this.props.instance}`,\n this.props.schema.command || 'send',\n data\n )\n .then(response => {\n if (response?.error) {\n if (this.props.schema.error && this.props.schema.error[response.error]) {\n let error = this.getText(this.props.schema.error[response.error]);\n if (response.args) {\n response.args.forEach(arg => error = error.replace('%s', arg));\n }\n this.setState({_error: error});\n } else {\n this.setState({_error: response.error ? I18n.t(response.error) : I18n.t('ra_Error')});\n }\n } else {\n if (response?.openUrl && this.props.schema.openUrl) {\n window.open(response.openUrl, response.window || this.props.schema.window || '_blank');\n } else\n if (response?.result && this.props.schema.result && this.props.schema.result[response.result]) {\n let text = this.getText(this.props.schema.result[response.result]);\n if (response.args) {\n response.args.forEach(arg => text = text.replace('%s', arg));\n }\n window.alert(text);\n } else {\n if (response?.result) {\n window.alert(typeof response.result === 'object' ? JSON.stringify(response.result) : response.result);\n } else {\n window.alert(I18n.t('ra_Ok'));\n }\n }\n\n if (response?.saveConfig) {\n this.props.onChange(null, null, null, true);\n }\n }\n })\n .catch(e => {\n if (this.props.schema.error && this.props.schema.error[e.toString()]) {\n this.setState({_error: this.getText(this.props.schema.error[e.toString()])});\n } else {\n this.setState({_error: I18n.t(e.toString()) || I18n.t('ra_Error')});\n }\n })\n .then(() => this.props.onCommandRunning(false))\n }\n\n renderConfirmDialog() {\n if (!this.state.confirmDialog) {\n return null;\n }\n const confirm = this.state.confirmData || this.props.schema.confirm;\n let icon = null;\n if (confirm.type === 'warning') {\n icon = <IconWarning />;\n } else if (confirm.type === 'error') {\n icon = <IconError />;\n } else if (confirm.type === 'info') {\n icon = <IconInfo />;\n }\n\n return <ConfirmDialog\n title={ this.getText(confirm.title) || I18n.t('ra_Please confirm') }\n text={ this.getText(confirm.text) }\n ok={ this.getText(confirm.ok) || I18n.t('ra_Ok') }\n cancel={ this.getText(confirm.cancel) || I18n.t('ra_Cancel') }\n icon={icon}\n onClose={isOk =>\n this.setState({ confirmDialog: false}, () =>\n isOk && this._onClick())\n }\n />;\n }\n\n getIcon() {\n let icon = null;\n if (this.props.schema.icon === 'auth') {\n icon = <IconAuth />;\n } else if (this.props.schema.icon === 'send') {\n icon = <IconSend />;\n } else if (this.props.schema.icon === 'web') {\n icon = <IconWeb />;\n } else if (this.props.schema.icon === 'warning') {\n icon = <IconWarning />;\n } else if (this.props.schema.icon === 'error') {\n icon = <IconError />;\n } else if (this.props.schema.icon === 'info') {\n icon = <IconInfo />;\n } else if (this.props.schema.icon) {\n icon = <Icon src={this.props.schema.icon} />;\n }\n\n return icon;\n }\n\n renderItem(error, disabled, defaultValue) {\n let icon = this.getIcon();\n\n return <div className={this.props.classes.fullWidth}>\n <Button\n variant={this.props.schema.variant || undefined}\n color={this.props.schema.color || 'grey'}\n className={this.props.classes.fullWidth}\n disabled={disabled}\n startIcon={icon}\n onClick={() => {\n if (this.props.schema.confirm) {\n this.setState({ confirmDialog: true });\n } else {\n this._onClick();\n }\n }}\n >\n {this.getText(this.props.schema.label, this.props.schema.noTranslation)}\n </Button>\n {this.renderErrorDialog()}\n {this.renderMessageDialog()}\n </div>;\n }\n}\n\nConfigSendto.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n commandRunning: PropTypes.bool,\n onCommandRunning: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigSendto);"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAEA;;;;;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS;EAAA,OAAO;IAClBC,SAAS,EAAE;MACPC,KAAK,EAAE;IADA,CADO;IAIlBC,IAAI,EAAE;MACFD,KAAK,EAAE,EADL;MAEFE,MAAM,EAAE,EAFN;MAGFC,WAAW,EAAE;IAHX;EAJY,CAAP;AAAA,CAAf;;AAWA,SAASC,MAAT,CAAgBC,EAAhB,EAAoB;EAChB,OAAOA,EAAE,CAACC,KAAH,CAAS,GAAT,EAAcC,MAAd,CAAqB,UAACC,KAAD,EAAQC,KAAR;IAAA,OAAkB,CAACD,KAAK,IAAI,CAAV,IAAeE,QAAQ,CAACD,KAAD,EAAQ,EAAR,CAAzC;EAAA,CAArB,EAA2E,CAA3E,MAAkF,CAAzF;AACH,C,CAED;;;AACA,SAASE,wBAAT,CAAkCC,GAAlC,EAAuCC,OAAvC,EAAgD;EAAA;;EAC5C,IAAMC,iBAAiB,GAAGF,GAAH,aAAGA,GAAH,sCAAGA,GAAG,UAAN,wEAAG,YAAaG,QAAhB,yDAAG,qBAAuBD,iBAAjD;;EACA,IAAI,CAACA,iBAAL,EAAwB;IACpB,OAAO,IAAP;EACH;;EAED,IAAIE,MAAJ,CAN4C,CAQ5C;;EACAC,MAAM,CAACC,IAAP,CAAYJ,iBAAZ,EAA+BK,OAA/B,CAAuC,UAAAC,KAAK;IAAA,OACxCN,iBAAiB,CAACM,KAAD,CAAjB,CAAyBD,OAAzB,CAAiC,UAAAd,EAAE,EAAI;MACnC,IAAIA,EAAE,CAACgB,QAAP,EAAiB;QACb;MACH,CAFD,MAEO,IAAIR,OAAO,CAACS,QAAR,CAAiB,GAAjB,KAAyBjB,EAAE,CAACkB,MAAH,KAAc,MAA3C,EAAmD;QACtD;MACH,CAFM,MAEA,IAAIV,OAAO,CAACS,QAAR,CAAiB,GAAjB,KAAyB,CAACT,OAAO,CAACW,KAAR,CAAc,QAAd,CAA1B,IAAqDnB,EAAE,CAACkB,MAAH,KAAc,MAAvE,EAA+E;QAClF;MACH,CAPkC,CAQnC;;;MACA,IAAIlB,EAAE,CAACkB,MAAH,KAAc,MAAd,IAAwB,CAAClB,EAAE,CAACoB,OAAH,CAAWC,UAAX,CAAsB,KAAtB,CAAzB,KAA0Db,OAAO,KAAK,WAAZ,IAA2BA,OAAO,KAAK,WAAvC,IAAsDA,OAAO,CAACW,KAAR,CAAc,QAAd,CAAhH,CAAJ,EAA8I;QAAE;QAC5IR,MAAM,GAAGX,EAAE,CAACoB,OAAZ;MACH,CAFD,MAEO,IAAI,CAACT,MAAL,EAAa;QAChB,IAAIX,EAAE,CAACkB,MAAH,KAAc,MAAd,IAAwBV,OAAO,CAACS,QAAR,CAAiB,GAAjB,CAAxB,IACA,CAAClB,MAAM,CAACS,OAAD,CAAN,GAAkBT,MAAM,CAACC,EAAE,CAACsB,OAAJ,CAAzB,OAA4CvB,MAAM,CAACC,EAAE,CAACoB,OAAJ,CAAN,GAAqBrB,MAAM,CAACC,EAAE,CAACsB,OAAJ,CAAvE,CADJ,EAC0F;UACtFX,MAAM,GAAGX,EAAE,CAACoB,OAAZ;QACH,CAHD,MAGO;UACHT,MAAM,GAAGX,EAAE,CAACoB,OAAZ;QACH;MACJ;IACJ,CAnBD,CADwC;EAAA,CAA5C,EAT4C,CA+B5C;;EACA,IAAI,CAACT,MAAL,EAAa;IACTC,MAAM,CAACC,IAAP,CAAYJ,iBAAZ,EAA+BK,OAA/B,CAAuC,UAAAC,KAAK;MAAA,OACxCN,iBAAiB,CAACM,KAAD,CAAjB,CAAyBD,OAAzB,CAAiC,UAAAd,EAAE,EAAI;QACnC,IAAIA,EAAE,CAACgB,QAAP,EAAiB;UACb;QACH,CAFD,MAEO,IAAIR,OAAO,CAACS,QAAR,CAAiB,GAAjB,KAAyBjB,EAAE,CAACkB,MAAH,KAAc,MAA3C,EAAmD;UACtD;QACH,CAFM,MAEA,IAAIV,OAAO,CAACS,QAAR,CAAiB,GAAjB,KAAyB,CAACT,OAAO,CAACW,KAAR,CAAc,QAAd,CAA1B,IAAqDnB,EAAE,CAACkB,MAAH,KAAc,MAAvE,EAA+E;UAClF;QACH;;QACD,IAAIlB,EAAE,CAACkB,MAAH,KAAc,MAAd,KAAyBV,OAAO,KAAK,WAAZ,IAA2BA,OAAO,KAAK,WAAvC,IAAsDA,OAAO,CAACW,KAAR,CAAc,QAAd,CAA/E,CAAJ,EAA6G;UAAE;UAC3GR,MAAM,GAAGX,EAAE,CAACoB,OAAZ;QACH,CAFD,MAEO,IAAI,CAACT,MAAL,EAAa;UAChB,IAAIX,EAAE,CAACkB,MAAH,KAAc,MAAd,IAAwBV,OAAO,CAACS,QAAR,CAAiB,GAAjB,CAAxB,IACA,CAAClB,MAAM,CAACS,OAAD,CAAN,GAAkBT,MAAM,CAACC,EAAE,CAACsB,OAAJ,CAAzB,OAA4CvB,MAAM,CAACC,EAAE,CAACoB,OAAJ,CAAN,GAAqBrB,MAAM,CAACC,EAAE,CAACsB,OAAJ,CAAvE,CADJ,EAC0F;YACtFX,MAAM,GAAGX,EAAE,CAACoB,OAAZ;UACH,CAHD,MAGO;YACHT,MAAM,GAAGX,EAAE,CAACoB,OAAZ;UACH;QACJ;MACJ,CAlBD,CADwC;IAAA,CAA5C;EAoBH;;EAED,IAAI,CAACT,MAAL,EAAa;IACTC,MAAM,CAACC,IAAP,CAAYJ,iBAAZ,EAA+BK,OAA/B,CAAuC,UAAAC,KAAK,EAAI;MAC5CN,iBAAiB,CAACM,KAAD,CAAjB,CAAyBD,OAAzB,CAAiC,UAAAd,EAAE,EAAI;QACnC,IAAIA,EAAE,CAACgB,QAAP,EAAiB;UACb;QACH,CAFD,MAEO,IAAIR,OAAO,CAACS,QAAR,CAAiB,GAAjB,KAAyBjB,EAAE,CAACkB,MAAH,KAAc,MAA3C,EAAmD;UACtD;QACH,CAFM,MAEA,IAAIV,OAAO,CAACS,QAAR,CAAiB,GAAjB,KAAyB,CAACT,OAAO,CAACW,KAAR,CAAc,QAAd,CAA1B,IAAqDnB,EAAE,CAACkB,MAAH,KAAc,MAAvE,EAA+E;UAClF;QACH;;QACD,IAAIV,OAAO,KAAK,WAAZ,IAA2BA,OAAO,KAAK,WAAvC,IAAsDA,OAAO,CAACW,KAAR,CAAc,QAAd,CAA1D,EAAmF;UAAE;UACjFR,MAAM,GAAGX,EAAE,CAACoB,OAAZ;QACH,CAFD,MAEO;UACHT,MAAM,GAAGX,EAAE,CAACoB,OAAZ;QACH;MACJ,CAbD;IAcH,CAfD;EAgBH;;EAED,IAAI,CAACT,MAAL,EAAa;IACTC,MAAM,CAACC,IAAP,CAAYJ,iBAAZ,EAA+BK,OAA/B,CAAuC,UAAAC,KAAK,EAAI;MAC5CN,iBAAiB,CAACM,KAAD,CAAjB,CAAyBD,OAAzB,CAAiC,UAAAd,EAAE,EAAI;QACnC,IAAIA,EAAE,CAACgB,QAAP,EAAiB;UACb;QACH;;QACDL,MAAM,GAAGX,EAAE,CAACoB,OAAZ;MACH,CALD;IAMH,CAPD;EAQH;;EAED,OAAOT,MAAP;AACH;;IAGKY,Y;;;;;;;;;;;;;6GACF;QAAA;QAAA;UAAA;YAAA;cAAA;gBACI;gBAEIC,QAHR,GAGmBC,MAAM,CAACC,QAAP,CAAgBF,QAHnC;;gBAAA,KAIQ,KAAKG,KAAL,CAAWC,MAAX,CAAkBC,OAJ1B;kBAAA;kBAAA;gBAAA;;gBAAA;gBAAA,OAMoC,KAAKF,KAAL,CAAWG,MAAX,CAAkBC,kBAAlB,EANpC;;cAAA;gBAMcC,aANd;gBAAA;gBAAA,OAOkC,KAAKL,KAAL,CAAWG,MAAX,CAAkBG,SAAlB,0BAA8CD,aAA9C,EAPlC;;cAAA;gBAOcE,WAPd;gBAAA;gBAAA,OAQ8B,KAAKP,KAAL,CAAWG,MAAX,CAAkBG,SAAlB,uBAA2CC,WAAW,CAACC,MAAZ,CAAmBC,IAA9D,EAR9B;;cAAA;gBAQcC,OARd;gBAUcrC,EAVd,GAUmBM,wBAAwB,CAAC+B,OAAD,EAAUZ,MAAM,CAACC,QAAP,CAAgBF,QAA1B,CAV3C;;gBAAA,KAWYxB,EAXZ;kBAAA;kBAAA;gBAAA;;gBAYYwB,QAAQ,aAAMxB,EAAN,cAAYyB,MAAM,CAACC,QAAP,CAAgBY,IAA5B,CAAR;gBAZZ;gBAAA;;cAAA;gBAcYC,OAAO,CAACC,IAAR,2CAAgDN,WAAW,CAACC,MAAZ,CAAmBC,IAAnE,kBAA+EF,WAAW,CAACO,GAA3F;gBAdZ,iCAemB,IAfnB;;cAAA;gBAkBI,KAAKC,QAAL,CAAe;kBAAEC,MAAM,EAAE,EAAV;kBAAcC,QAAQ,EAAE,EAAxB;kBAA4BpB,QAAQ,EAARA;gBAA5B,CAAf;;cAlBJ;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAqBA,6BAAoB;MAAA;;MAChB,IAAI,KAAKqB,KAAL,CAAWF,MAAf,EAAuB;QACnB,oBAAO,gCAAC,kBAAD;UAAa,IAAI,EAAE,KAAKE,KAAL,CAAWF,MAA9B;UAAsC,OAAO,EAAEG,SAA/C;UAA0D,OAAO,EAAE;YAAA,OAAM,KAAI,CAACJ,QAAL,CAAc;cAACC,MAAM,EAAE;YAAT,CAAd,CAAN;UAAA;QAAnE,EAAP;MACH,CAFD,MAEO;QACH,OAAO,IAAP;MACH;IACJ;;;WAED,+BAAsB;MAAA;;MAClB,IAAI,KAAKE,KAAL,CAAWD,QAAf,EAAyB;QACrB,oBAAO,gCAAC,mBAAD;UAAe,IAAI,EAAE,KAAKC,KAAL,CAAWD,QAAhC;UAA0C,OAAO,EAAEE,SAAnD;UAA8D,OAAO,EAAE;YAAA,OAAM,MAAI,CAACJ,QAAL,CAAc;cAACC,MAAM,EAAE;YAAT,CAAd,CAAN;UAAA;QAAvE,EAAP;MACH,CAFD,MAEO;QACH,OAAO,IAAP;MACH;IACJ;;;WAED,oBAAW;MAAA;;MACP,KAAKhB,KAAL,CAAWoB,gBAAX,CAA4B,IAA5B;;MAEA,IAAMC,OAAO,aAAMvB,MAAM,CAACC,QAAP,CAAgBuB,QAAtB,eAAmCxB,MAAM,CAACC,QAAP,CAAgBU,IAAnD,SAA0DX,MAAM,CAACC,QAAP,CAAgBwB,QAAhB,CAAyBC,OAAzB,CAAiC,gBAAjC,EAAmD,EAAnD,CAA1D,CAAb;;MACA,IAAMC,SAAS,aAAM3B,MAAM,CAACC,QAAP,CAAgBuB,QAAtB,eAAmC,KAAKJ,KAAL,CAAWrB,QAAX,CAAoBvB,KAApB,CAA0B,GAA1B,EAA+BoD,MAA/B,GAAwC,CAAxC,cAAgD,KAAKR,KAAL,CAAWrB,QAA3D,SAAyE,KAAKqB,KAAL,CAAWrB,QAAvH,SAAkIC,MAAM,CAACC,QAAP,CAAgBwB,QAAhB,CAAyBC,OAAzB,CAAiC,gBAAjC,EAAmD,EAAnD,CAAlI,CAAf;;MAEA,IAAIG,IAAI,GAAG,KAAK3B,KAAL,CAAWC,MAAX,CAAkB0B,IAA7B;;MACA,IAAIA,IAAI,KAAKR,SAAT,IAAsB,KAAKnB,KAAL,CAAWC,MAAX,CAAkB2B,QAA5C,EAAsD;QAClDD,IAAI,GAAG,KAAKE,UAAL,CAAgB,KAAK7B,KAAL,CAAWC,MAAX,CAAkB2B,QAAlC;UACHP,OAAO,EAAPA,OADG;UAEHI,SAAS,EAATA;QAFG,GAGA,KAAKzB,KAAL,CAAW2B,IAHX,EAAP;;QAKA,IAAI;UACAA,IAAI,GAAGG,IAAI,CAACC,KAAL,CAAWJ,IAAX,CAAP;QACH,CAFD,CAEE,OAAOK,CAAP,EAAU;UACRpB,OAAO,CAACqB,KAAR,CAAc,6BAA6BN,IAA3C;QACH;MACJ;;MACD,IAAIA,IAAI,KAAKR,SAAb,EAAwB;QACpBQ,IAAI,GAAG,IAAP;MACH;;MACD,IAAI,KAAK3B,KAAL,CAAWC,MAAX,CAAkBC,OAAlB,IAA6B,CAACyB,IAAlC,EAAwC;QACpCA,IAAI,GAAG;UACHN,OAAO,EAAPA,OADG;UAEHI,SAAS,EAATA;QAFG,CAAP;MAIH;;MAED,KAAKzB,KAAL,CAAWG,MAAX,CAAkB+B,MAAlB,WACO,KAAKlC,KAAL,CAAWmC,WADlB,cACiC,KAAKnC,KAAL,CAAWoC,QAD5C,GAEI,KAAKpC,KAAL,CAAWC,MAAX,CAAkBoC,OAAlB,IAA6B,MAFjC,EAGIV,IAHJ,EAKKW,IALL,CAKU,UAAAC,QAAQ,EAAI;QACd,IAAIA,QAAJ,aAAIA,QAAJ,eAAIA,QAAQ,CAAEN,KAAd,EAAqB;UACjB,IAAI,MAAI,CAACjC,KAAL,CAAWC,MAAX,CAAkBgC,KAAlB,IAA2B,MAAI,CAACjC,KAAL,CAAWC,MAAX,CAAkBgC,KAAlB,CAAwBM,QAAQ,CAACN,KAAjC,CAA/B,EAAwE;YACpE,IAAIA,KAAK,GAAG,MAAI,CAACO,OAAL,CAAa,MAAI,CAACxC,KAAL,CAAWC,MAAX,CAAkBgC,KAAlB,CAAwBM,QAAQ,CAACN,KAAjC,CAAb,CAAZ;;YACA,IAAIM,QAAQ,CAACE,IAAb,EAAmB;cACfF,QAAQ,CAACE,IAAT,CAActD,OAAd,CAAsB,UAAAuD,GAAG;gBAAA,OAAIT,KAAK,GAAGA,KAAK,CAACT,OAAN,CAAc,IAAd,EAAoBkB,GAApB,CAAZ;cAAA,CAAzB;YACH;;YACD,MAAI,CAAC3B,QAAL,CAAc;cAACC,MAAM,EAAEiB;YAAT,CAAd;UACH,CAND,MAMO;YACH,MAAI,CAAClB,QAAL,CAAc;cAACC,MAAM,EAAEuB,QAAQ,CAACN,KAAT,GAAiBU,gBAAA,CAAKC,CAAL,CAAOL,QAAQ,CAACN,KAAhB,CAAjB,GAA0CU,gBAAA,CAAKC,CAAL,CAAO,UAAP;YAAnD,CAAd;UACH;QACJ,CAVD,MAUO;UACH,IAAIL,QAAQ,SAAR,IAAAA,QAAQ,WAAR,IAAAA,QAAQ,CAAErC,OAAV,IAAqB,MAAI,CAACF,KAAL,CAAWC,MAAX,CAAkBC,OAA3C,EAAoD;YAChDJ,MAAM,CAAC+C,IAAP,CAAYN,QAAQ,CAACrC,OAArB,EAA8BqC,QAAQ,CAACzC,MAAT,IAAmB,MAAI,CAACE,KAAL,CAAWC,MAAX,CAAkBH,MAArC,IAA+C,QAA7E;UACH,CAFD,MAGA,IAAIyC,QAAQ,SAAR,IAAAA,QAAQ,WAAR,IAAAA,QAAQ,CAAEO,MAAV,IAAoB,MAAI,CAAC9C,KAAL,CAAWC,MAAX,CAAkB6C,MAAtC,IAAgD,MAAI,CAAC9C,KAAL,CAAWC,MAAX,CAAkB6C,MAAlB,CAAyBP,QAAQ,CAACO,MAAlC,CAApD,EAA+F;YAC3F,IAAIC,IAAI,GAAG,MAAI,CAACP,OAAL,CAAa,MAAI,CAACxC,KAAL,CAAWC,MAAX,CAAkB6C,MAAlB,CAAyBP,QAAQ,CAACO,MAAlC,CAAb,CAAX;;YACA,IAAIP,QAAQ,CAACE,IAAb,EAAmB;cACfF,QAAQ,CAACE,IAAT,CAActD,OAAd,CAAsB,UAAAuD,GAAG;gBAAA,OAAIK,IAAI,GAAGA,IAAI,CAACvB,OAAL,CAAa,IAAb,EAAmBkB,GAAnB,CAAX;cAAA,CAAzB;YACH;;YACD5C,MAAM,CAACkD,KAAP,CAAaD,IAAb;UACH,CAND,MAMO;YACH,IAAIR,QAAJ,aAAIA,QAAJ,eAAIA,QAAQ,CAAEO,MAAd,EAAsB;cAClBhD,MAAM,CAACkD,KAAP,CAAa,yBAAOT,QAAQ,CAACO,MAAhB,MAA2B,QAA3B,GAAsChB,IAAI,CAACmB,SAAL,CAAeV,QAAQ,CAACO,MAAxB,CAAtC,GAAwEP,QAAQ,CAACO,MAA9F;YACH,CAFD,MAEO;cACHhD,MAAM,CAACkD,KAAP,CAAaL,gBAAA,CAAKC,CAAL,CAAO,OAAP,CAAb;YACH;UACJ;;UAED,IAAIL,QAAJ,aAAIA,QAAJ,eAAIA,QAAQ,CAAEW,UAAd,EAA0B;YACtB,MAAI,CAAClD,KAAL,CAAWmD,QAAX,CAAoB,IAApB,EAA0B,IAA1B,EAAgC,IAAhC,EAAsC,IAAtC;UACH;QACJ;MACJ,CAtCL,WAuCW,UAAAnB,CAAC,EAAI;QACR,IAAI,MAAI,CAAChC,KAAL,CAAWC,MAAX,CAAkBgC,KAAlB,IAA2B,MAAI,CAACjC,KAAL,CAAWC,MAAX,CAAkBgC,KAAlB,CAAwBD,CAAC,CAACoB,QAAF,EAAxB,CAA/B,EAAsE;UAClE,MAAI,CAACrC,QAAL,CAAc;YAACC,MAAM,EAAE,MAAI,CAACwB,OAAL,CAAa,MAAI,CAACxC,KAAL,CAAWC,MAAX,CAAkBgC,KAAlB,CAAwBD,CAAC,CAACoB,QAAF,EAAxB,CAAb;UAAT,CAAd;QACH,CAFD,MAEO;UACH,MAAI,CAACrC,QAAL,CAAc;YAACC,MAAM,EAAE2B,gBAAA,CAAKC,CAAL,CAAOZ,CAAC,CAACoB,QAAF,EAAP,KAAwBT,gBAAA,CAAKC,CAAL,CAAO,UAAP;UAAjC,CAAd;QACH;MACJ,CA7CL,EA8CKN,IA9CL,CA8CU;QAAA,OAAM,MAAI,CAACtC,KAAL,CAAWoB,gBAAX,CAA4B,KAA5B,CAAN;MAAA,CA9CV;IA+CH;;;WAED,+BAAsB;MAAA;;MAClB,IAAI,CAAC,KAAKF,KAAL,CAAWmC,aAAhB,EAA+B;QAC3B,OAAO,IAAP;MACH;;MACD,IAAMC,OAAO,GAAG,KAAKpC,KAAL,CAAWqC,WAAX,IAA0B,KAAKvD,KAAL,CAAWC,MAAX,CAAkBqD,OAA5D;MACA,IAAIrF,IAAI,GAAG,IAAX;;MACA,IAAIqF,OAAO,CAACE,IAAR,KAAiB,SAArB,EAAgC;QAC5BvF,IAAI,gBAAG,gCAAC,mBAAD,OAAP;MACH,CAFD,MAEO,IAAIqF,OAAO,CAACE,IAAR,KAAiB,OAArB,EAA8B;QACjCvF,IAAI,gBAAG,gCAAC,iBAAD,OAAP;MACH,CAFM,MAEA,IAAIqF,OAAO,CAACE,IAAR,KAAiB,MAArB,EAA6B;QAChCvF,IAAI,gBAAG,gCAAC,gBAAD,OAAP;MACH;;MAED,oBAAO,gCAAC,mBAAD;QACH,KAAK,EAAG,KAAKuE,OAAL,CAAac,OAAO,CAACG,KAArB,KAA+Bd,gBAAA,CAAKC,CAAL,CAAO,mBAAP,CADpC;QAEH,IAAI,EAAG,KAAKJ,OAAL,CAAac,OAAO,CAACP,IAArB,CAFJ;QAGH,EAAE,EAAG,KAAKP,OAAL,CAAac,OAAO,CAACI,EAArB,KAA4Bf,gBAAA,CAAKC,CAAL,CAAO,OAAP,CAH9B;QAIH,MAAM,EAAG,KAAKJ,OAAL,CAAac,OAAO,CAACK,MAArB,KAAgChB,gBAAA,CAAKC,CAAL,CAAO,WAAP,CAJtC;QAKH,IAAI,EAAE3E,IALH;QAMH,OAAO,EAAE,iBAAA2F,IAAI;UAAA,OACT,MAAI,CAAC7C,QAAL,CAAc;YAAEsC,aAAa,EAAE;UAAjB,CAAd,EAAuC;YAAA,OACnCO,IAAI,IAAI,MAAI,CAACC,QAAL,EAD2B;UAAA,CAAvC,CADS;QAAA;MANV,EAAP;IAWH;;;WAED,mBAAU;MACN,IAAI5F,IAAI,GAAG,IAAX;;MACA,IAAI,KAAK+B,KAAL,CAAWC,MAAX,CAAkBhC,IAAlB,KAA2B,MAA/B,EAAuC;QACnCA,IAAI,gBAAG,gCAAC,eAAD,OAAP;MACH,CAFD,MAEO,IAAI,KAAK+B,KAAL,CAAWC,MAAX,CAAkBhC,IAAlB,KAA2B,MAA/B,EAAuC;QAC1CA,IAAI,gBAAG,gCAAC,gBAAD,OAAP;MACH,CAFM,MAEA,IAAI,KAAK+B,KAAL,CAAWC,MAAX,CAAkBhC,IAAlB,KAA2B,KAA/B,EAAsC;QACzCA,IAAI,gBAAG,gCAAC,kBAAD,OAAP;MACH,CAFM,MAEA,IAAI,KAAK+B,KAAL,CAAWC,MAAX,CAAkBhC,IAAlB,KAA2B,SAA/B,EAA0C;QAC7CA,IAAI,gBAAG,gCAAC,mBAAD,OAAP;MACH,CAFM,MAEA,IAAI,KAAK+B,KAAL,CAAWC,MAAX,CAAkBhC,IAAlB,KAA2B,OAA/B,EAAwC;QAC3CA,IAAI,gBAAG,gCAAC,iBAAD,OAAP;MACH,CAFM,MAEA,IAAI,KAAK+B,KAAL,CAAWC,MAAX,CAAkBhC,IAAlB,KAA2B,MAA/B,EAAuC;QAC1CA,IAAI,gBAAG,gCAAC,gBAAD,OAAP;MACH,CAFM,MAEA,IAAI,KAAK+B,KAAL,CAAWC,MAAX,CAAkBhC,IAAtB,EAA4B;QAC/BA,IAAI,gBAAG,gCAAC,gBAAD;UAAM,GAAG,EAAE,KAAK+B,KAAL,CAAWC,MAAX,CAAkBhC;QAA7B,EAAP;MACH;;MAED,OAAOA,IAAP;IACH;;;WAED,oBAAWgE,KAAX,EAAkB6B,QAAlB,EAA4BC,YAA5B,EAA0C;MAAA;;MACtC,IAAI9F,IAAI,GAAG,KAAK+F,OAAL,EAAX;MAEA,oBAAO;QAAK,SAAS,EAAE,KAAKhE,KAAL,CAAWiE,OAAX,CAAmBlG;MAAnC,gBACH,gCAAC,kBAAD;QACI,OAAO,EAAE,KAAKiC,KAAL,CAAWC,MAAX,CAAkBiE,OAAlB,IAA6B/C,SAD1C;QAEI,KAAK,EAAE,KAAKnB,KAAL,CAAWC,MAAX,CAAkBkE,KAAlB,IAA2B,MAFtC;QAGI,SAAS,EAAE,KAAKnE,KAAL,CAAWiE,OAAX,CAAmBlG,SAHlC;QAII,QAAQ,EAAE+F,QAJd;QAKI,SAAS,EAAE7F,IALf;QAMI,OAAO,EAAE,mBAAM;UACX,IAAI,MAAI,CAAC+B,KAAL,CAAWC,MAAX,CAAkBqD,OAAtB,EAA+B;YAC3B,MAAI,CAACvC,QAAL,CAAc;cAAEsC,aAAa,EAAE;YAAjB,CAAd;UACH,CAFD,MAEO;YACH,MAAI,CAACQ,QAAL;UACH;QACJ;MAZL,GAcK,KAAKrB,OAAL,CAAa,KAAKxC,KAAL,CAAWC,MAAX,CAAkBmE,KAA/B,EAAsC,KAAKpE,KAAL,CAAWC,MAAX,CAAkBoE,aAAxD,CAdL,CADG,EAiBF,KAAKC,iBAAL,EAjBE,EAkBF,KAAKC,mBAAL,EAlBE,CAAP;IAoBH;;;EA3LsBC,0B;;AA8L3B5E,YAAY,CAAC6E,SAAb,GAAyB;EACrBtE,MAAM,EAAEuE,qBAAA,CAAUC,MAAV,CAAiBC,UADJ;EAErBC,SAAS,EAAEH,qBAAA,CAAUI,MAFA;EAGrBC,SAAS,EAAEL,qBAAA,CAAUI,MAHA;EAIrBE,KAAK,EAAEN,qBAAA,CAAUC,MAJI;EAKrBM,SAAS,EAAEP,qBAAA,CAAUI,MALA;EAMrBnD,IAAI,EAAE+C,qBAAA,CAAUC,MAAV,CAAiBC,UANF;EAOrB3E,MAAM,EAAEyE,qBAAA,CAAUC,MAPG;EAQrBO,OAAO,EAAER,qBAAA,CAAUS,IARE;EASrBhC,QAAQ,EAAEuB,qBAAA,CAAUS,IATC;EAUrBhD,WAAW,EAAEuC,qBAAA,CAAUI,MAVF;EAWrB1C,QAAQ,EAAEsC,qBAAA,CAAUU,MAXC;EAYrBC,cAAc,EAAEX,qBAAA,CAAUY,IAZL;EAarBlE,gBAAgB,EAAEsD,qBAAA,CAAUS;AAbP,CAAzB;;eAgBe,IAAAI,kBAAA,EAAWzH,MAAX,EAAmB8B,YAAnB,C"}
1
+ {"version":3,"file":"ConfigSendto.js","names":["styles","fullWidth","width","icon","height","marginRight","ip2int","ip","split","reduce","ipInt","octet","parseInt","findNetworkAddressOfHost","obj","localIp","networkInterfaces","hardware","hostIp","Object","keys","forEach","inter","internal","includes","family","match","address","startsWith","netmask","ConfigSendto","hostname","window","location","props","schema","openUrl","socket","getCurrentInstance","adminInstance","getObject","instanceObj","common","host","hostObj","port","console","warn","_id","setState","_error","_message","state","undefined","onCommandRunning","_origin","protocol","pathname","replace","_originIp","length","data","jsonData","getPattern","JSON","parse","e","error","sendTo","adapterName","instance","command","then","response","getText","args","arg","I18n","t","open","result","text","alert","stringify","saveConfig","onChange","toString","confirmDialog","confirm","confirmData","type","title","ok","cancel","isOk","_onClick","disabled","defaultValue","getIcon","classes","variant","color","label","noTranslation","renderErrorDialog","renderMessageDialog","ConfigGeneric","propTypes","PropTypes","object","isRequired","themeType","string","themeName","style","className","onError","func","number","commandRunning","bool","withStyles"],"sources":["JsonConfigComponent/ConfigSendto.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport Button from '@mui/material/Button';\n\nimport IconWarning from '@mui/icons-material/Warning';\nimport IconError from '@mui/icons-material/Error';\nimport IconInfo from '@mui/icons-material/Info';\nimport IconAuth from '@mui/icons-material/Key';\nimport IconSend from '@mui/icons-material/Send';\nimport IconWeb from '@mui/icons-material/Public';\n\nimport I18n from '../../i18n';\nimport Icon from '../Icon';\nimport DialogError from '../../Dialogs/Error';\nimport DialogMessage from '../../Dialogs/Message';\nimport ConfirmDialog from '../../Dialogs/Confirm';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = () => ({\n fullWidth: {\n width: '100%'\n },\n icon: {\n width: 24,\n height: 24,\n marginRight: 4\n }\n});\n\nfunction ip2int(ip) {\n return ip.split('.').reduce((ipInt, octet) => (ipInt << 8) + parseInt(octet, 10), 0) >>> 0;\n}\n\n// copied from iobroker.admin/src-rx/src/Utils.js\nfunction findNetworkAddressOfHost(obj, localIp) {\n const networkInterfaces = obj?.native?.hardware?.networkInterfaces;\n if (!networkInterfaces) {\n return null;\n }\n\n let hostIp;\n\n // check ipv4 addresses\n Object.keys(networkInterfaces).forEach(inter =>\n networkInterfaces[inter].forEach(ip => {\n if (ip.internal) {\n return;\n } else if (localIp.includes(':') && ip.family !== 'IPv6') {\n return;\n } else if (localIp.includes('.') && !localIp.match(/[^.\\d]/) && ip.family !== 'IPv4') {\n return;\n }\n // if ip4 and not docker or wsl\n if (ip.family === 'IPv4' && !ip.address.startsWith('172') && (localIp === '127.0.0.0' || localIp === 'localhost' || localIp.match(/[^.\\d]/))) { // if DNS name\n hostIp = ip.address;\n } else if (!hostIp) {\n if (ip.family === 'IPv4' && localIp.includes('.') &&\n (ip2int(localIp) & ip2int(ip.netmask)) === (ip2int(ip.address) & ip2int(ip.netmask))) {\n hostIp = ip.address;\n } else {\n hostIp = ip.address;\n }\n }\n }));\n\n // check ipv6 addresses\n if (!hostIp) {\n Object.keys(networkInterfaces).forEach(inter =>\n networkInterfaces[inter].forEach(ip => {\n if (ip.internal) {\n return;\n } else if (localIp.includes(':') && ip.family !== 'IPv6') {\n return;\n } else if (localIp.includes('.') && !localIp.match(/[^.\\d]/) && ip.family !== 'IPv4') {\n return;\n }\n if (ip.family === 'IPv6' && (localIp === '127.0.0.0' || localIp === 'localhost' || localIp.match(/[^.\\d]/))) { // if DNS name\n hostIp = ip.address;\n } else if (!hostIp) {\n if (ip.family === 'IPv4' && localIp.includes('.') &&\n (ip2int(localIp) & ip2int(ip.netmask)) === (ip2int(ip.address) & ip2int(ip.netmask))) {\n hostIp = ip.address;\n } else {\n hostIp = ip.address;\n }\n }\n }));\n }\n\n if (!hostIp) {\n Object.keys(networkInterfaces).forEach(inter => {\n networkInterfaces[inter].forEach(ip => {\n if (ip.internal) {\n return;\n } else if (localIp.includes(':') && ip.family !== 'IPv6') {\n return;\n } else if (localIp.includes('.') && !localIp.match(/[^.\\d]/) && ip.family !== 'IPv4') {\n return;\n }\n if (localIp === '127.0.0.0' || localIp === 'localhost' || localIp.match(/[^.\\d]/)) { // if DNS name\n hostIp = ip.address;\n } else {\n hostIp = ip.address;\n }\n });\n });\n }\n\n if (!hostIp) {\n Object.keys(networkInterfaces).forEach(inter => {\n networkInterfaces[inter].forEach(ip => {\n if (ip.internal) {\n return;\n }\n hostIp = ip.address;\n });\n });\n }\n\n return hostIp;\n}\n\n\nclass ConfigSendto extends ConfigGeneric {\n async componentDidMount() {\n super.componentDidMount();\n\n let hostname = window.location.hostname;\n if (this.props.schema.openUrl) {\n // read admin host\n const adminInstance = await this.props.socket.getCurrentInstance();\n const instanceObj = await this.props.socket.getObject(`system.adapter.${adminInstance}`);\n const hostObj = await this.props.socket.getObject(`system.host.${instanceObj.common.host}`);\n\n const ip = findNetworkAddressOfHost(hostObj, window.location.hostname);\n if (ip) {\n hostname = `${ip}:${window.location.port}`;\n } else {\n console.warn(`Cannot find suitable IP in host ${instanceObj.common.host} for ${instanceObj._id}`);\n return null;\n }\n }\n this.setState( { _error: '', _message: '', hostname });\n }\n\n renderErrorDialog() {\n if (this.state._error) {\n return <DialogError text={this.state._error} classes={undefined} onClose={() => this.setState({_error: ''})} />;\n } else {\n return null;\n }\n }\n\n renderMessageDialog() {\n if (this.state._message) {\n return <DialogMessage text={this.state._message} classes={undefined} onClose={() => this.setState({_error: ''})} />;\n } else {\n return null;\n }\n }\n\n _onClick() {\n this.props.onCommandRunning(true);\n\n const _origin = `${window.location.protocol}//${window.location.host}${window.location.pathname.replace(/\\/index\\.html$/, '')}`\n const _originIp = `${window.location.protocol}//${this.state.hostname.split(':').length > 3 ? `[${this.state.hostname}]` : this.state.hostname}${window.location.pathname.replace(/\\/index\\.html$/, '')}`\n\n let data = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n data = this.getPattern(this.props.schema.jsonData, {\n _origin,\n _originIp,\n ...this.props.data\n });\n try {\n data = JSON.parse(data);\n } catch (e) {\n console.error('Cannot parse json data: ' + data);\n }\n }\n if (data === undefined) {\n data = null;\n }\n if (this.props.schema.openUrl && !data) {\n data = {\n _origin,\n _originIp,\n }\n }\n\n this.props.socket.sendTo(\n `${this.props.adapterName}.${this.props.instance}`,\n this.props.schema.command || 'send',\n data\n )\n .then(response => {\n if (response?.error) {\n if (this.props.schema.error && this.props.schema.error[response.error]) {\n let error = this.getText(this.props.schema.error[response.error]);\n if (response.args) {\n response.args.forEach(arg => error = error.replace('%s', arg));\n }\n this.setState({_error: error});\n } else {\n this.setState({_error: response.error ? I18n.t(response.error) : I18n.t('ra_Error')});\n }\n } else {\n if (response?.openUrl && this.props.schema.openUrl) {\n window.open(response.openUrl, response.window || this.props.schema.window || '_blank');\n } else\n if (response?.result && this.props.schema.result && this.props.schema.result[response.result]) {\n let text = this.getText(this.props.schema.result[response.result]);\n if (response.args) {\n response.args.forEach(arg => text = text.replace('%s', arg));\n }\n window.alert(text);\n } else {\n if (response?.result) {\n window.alert(typeof response.result === 'object' ? JSON.stringify(response.result) : response.result);\n } else {\n window.alert(I18n.t('ra_Ok'));\n }\n }\n\n if (response?.saveConfig) {\n this.props.onChange(null, null, null, true);\n }\n }\n })\n .catch(e => {\n if (this.props.schema.error && this.props.schema.error[e.toString()]) {\n this.setState({_error: this.getText(this.props.schema.error[e.toString()])});\n } else {\n this.setState({_error: I18n.t(e.toString()) || I18n.t('ra_Error')});\n }\n })\n .then(() => this.props.onCommandRunning(false))\n }\n\n renderConfirmDialog() {\n if (!this.state.confirmDialog) {\n return null;\n }\n const confirm = this.state.confirmData || this.props.schema.confirm;\n let icon = null;\n if (confirm.type === 'warning') {\n icon = <IconWarning />;\n } else if (confirm.type === 'error') {\n icon = <IconError />;\n } else if (confirm.type === 'info') {\n icon = <IconInfo />;\n }\n\n return <ConfirmDialog\n title={ this.getText(confirm.title) || I18n.t('ra_Please confirm') }\n text={ this.getText(confirm.text) }\n ok={ this.getText(confirm.ok) || I18n.t('ra_Ok') }\n cancel={ this.getText(confirm.cancel) || I18n.t('ra_Cancel') }\n icon={icon}\n onClose={isOk =>\n this.setState({ confirmDialog: false}, () =>\n isOk && this._onClick())\n }\n />;\n }\n\n getIcon() {\n let icon = null;\n if (this.props.schema.icon === 'auth') {\n icon = <IconAuth />;\n } else if (this.props.schema.icon === 'send') {\n icon = <IconSend />;\n } else if (this.props.schema.icon === 'web') {\n icon = <IconWeb />;\n } else if (this.props.schema.icon === 'warning') {\n icon = <IconWarning />;\n } else if (this.props.schema.icon === 'error') {\n icon = <IconError />;\n } else if (this.props.schema.icon === 'info') {\n icon = <IconInfo />;\n } else if (this.props.schema.icon) {\n icon = <Icon src={this.props.schema.icon} />;\n }\n\n return icon;\n }\n\n renderItem(error, disabled, defaultValue) {\n let icon = this.getIcon();\n\n return <div className={this.props.classes.fullWidth}>\n <Button\n variant={this.props.schema.variant || undefined}\n color={this.props.schema.color || 'grey'}\n className={this.props.classes.fullWidth}\n disabled={disabled}\n startIcon={icon}\n onClick={() => {\n if (this.props.schema.confirm) {\n this.setState({ confirmDialog: true });\n } else {\n this._onClick();\n }\n }}\n >\n {this.getText(this.props.schema.label, this.props.schema.noTranslation)}\n </Button>\n {this.renderErrorDialog()}\n {this.renderMessageDialog()}\n </div>;\n }\n}\n\nConfigSendto.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n commandRunning: PropTypes.bool,\n onCommandRunning: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigSendto);"],"mappings":"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"}