@iobroker/json-config 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. package/LICENSE +21 -0
  2. package/build/JsonConfig.d.ts +22 -0
  3. package/build/JsonConfig.js +535 -0
  4. package/build/JsonConfig.js.map +1 -0
  5. package/build/JsonConfigComponent/ChipInput.d.ts +12 -0
  6. package/build/JsonConfigComponent/ChipInput.js +595 -0
  7. package/build/JsonConfigComponent/ChipInput.js.map +1 -0
  8. package/build/JsonConfigComponent/ConfigAccordion.d.ts +15 -0
  9. package/build/JsonConfigComponent/ConfigAccordion.js +185 -0
  10. package/build/JsonConfigComponent/ConfigAccordion.js.map +1 -0
  11. package/build/JsonConfigComponent/ConfigAlive.d.ts +10 -0
  12. package/build/JsonConfigComponent/ConfigAlive.js +63 -0
  13. package/build/JsonConfigComponent/ConfigAlive.js.map +1 -0
  14. package/build/JsonConfigComponent/ConfigAutocomplete.d.ts +37 -0
  15. package/build/JsonConfigComponent/ConfigAutocomplete.js +69 -0
  16. package/build/JsonConfigComponent/ConfigAutocomplete.js.map +1 -0
  17. package/build/JsonConfigComponent/ConfigAutocompleteSendTo.d.ts +17 -0
  18. package/build/JsonConfigComponent/ConfigAutocompleteSendTo.js +127 -0
  19. package/build/JsonConfigComponent/ConfigAutocompleteSendTo.js.map +1 -0
  20. package/build/JsonConfigComponent/ConfigCRON.d.ts +15 -0
  21. package/build/JsonConfigComponent/ConfigCRON.js +55 -0
  22. package/build/JsonConfigComponent/ConfigCRON.js.map +1 -0
  23. package/build/JsonConfigComponent/ConfigCertCollection.d.ts +14 -0
  24. package/build/JsonConfigComponent/ConfigCertCollection.js +50 -0
  25. package/build/JsonConfigComponent/ConfigCertCollection.js.map +1 -0
  26. package/build/JsonConfigComponent/ConfigCertificateSelect.d.ts +14 -0
  27. package/build/JsonConfigComponent/ConfigCertificateSelect.js +59 -0
  28. package/build/JsonConfigComponent/ConfigCertificateSelect.js.map +1 -0
  29. package/build/JsonConfigComponent/ConfigCertificates.d.ts +14 -0
  30. package/build/JsonConfigComponent/ConfigCertificates.js +104 -0
  31. package/build/JsonConfigComponent/ConfigCertificates.js.map +1 -0
  32. package/build/JsonConfigComponent/ConfigCheckLicense.d.ts +3 -0
  33. package/build/JsonConfigComponent/ConfigCheckLicense.js +546 -0
  34. package/build/JsonConfigComponent/ConfigCheckLicense.js.map +1 -0
  35. package/build/JsonConfigComponent/ConfigCheckbox.d.ts +15 -0
  36. package/build/JsonConfigComponent/ConfigCheckbox.js +36 -0
  37. package/build/JsonConfigComponent/ConfigCheckbox.js.map +1 -0
  38. package/build/JsonConfigComponent/ConfigChip.d.ts +14 -0
  39. package/build/JsonConfigComponent/ConfigChip.js +67 -0
  40. package/build/JsonConfigComponent/ConfigChip.js.map +1 -0
  41. package/build/JsonConfigComponent/ConfigColor.d.ts +22 -0
  42. package/build/JsonConfigComponent/ConfigColor.js +57 -0
  43. package/build/JsonConfigComponent/ConfigColor.js.map +1 -0
  44. package/build/JsonConfigComponent/ConfigCoordinates.d.ts +14 -0
  45. package/build/JsonConfigComponent/ConfigCoordinates.js +146 -0
  46. package/build/JsonConfigComponent/ConfigCoordinates.js.map +1 -0
  47. package/build/JsonConfigComponent/ConfigCustom.d.ts +26 -0
  48. package/build/JsonConfigComponent/ConfigCustom.js +195 -0
  49. package/build/JsonConfigComponent/ConfigCustom.js.map +1 -0
  50. package/build/JsonConfigComponent/ConfigDatePicker.d.ts +14 -0
  51. package/build/JsonConfigComponent/ConfigDatePicker.js +39 -0
  52. package/build/JsonConfigComponent/ConfigDatePicker.js.map +1 -0
  53. package/build/JsonConfigComponent/ConfigDeviceManager.d.ts +6 -0
  54. package/build/JsonConfigComponent/ConfigDeviceManager.js +14 -0
  55. package/build/JsonConfigComponent/ConfigDeviceManager.js.map +1 -0
  56. package/build/JsonConfigComponent/ConfigFile.d.ts +15 -0
  57. package/build/JsonConfigComponent/ConfigFile.js +131 -0
  58. package/build/JsonConfigComponent/ConfigFile.js.map +1 -0
  59. package/build/JsonConfigComponent/ConfigFileSelector.d.ts +3 -0
  60. package/build/JsonConfigComponent/ConfigFileSelector.js +434 -0
  61. package/build/JsonConfigComponent/ConfigFileSelector.js.map +1 -0
  62. package/build/JsonConfigComponent/ConfigFunc.d.ts +14 -0
  63. package/build/JsonConfigComponent/ConfigFunc.js +56 -0
  64. package/build/JsonConfigComponent/ConfigFunc.js.map +1 -0
  65. package/build/JsonConfigComponent/ConfigGeneric.d.ts +95 -0
  66. package/build/JsonConfigComponent/ConfigGeneric.js +632 -0
  67. package/build/JsonConfigComponent/ConfigGeneric.js.map +1 -0
  68. package/build/JsonConfigComponent/ConfigIP.d.ts +14 -0
  69. package/build/JsonConfigComponent/ConfigIP.js +64 -0
  70. package/build/JsonConfigComponent/ConfigIP.js.map +1 -0
  71. package/build/JsonConfigComponent/ConfigImageSendTo.d.ts +10 -0
  72. package/build/JsonConfigComponent/ConfigImageSendTo.js +62 -0
  73. package/build/JsonConfigComponent/ConfigImageSendTo.js.map +1 -0
  74. package/build/JsonConfigComponent/ConfigImageUpload.d.ts +14 -0
  75. package/build/JsonConfigComponent/ConfigImageUpload.js +91 -0
  76. package/build/JsonConfigComponent/ConfigImageUpload.js.map +1 -0
  77. package/build/JsonConfigComponent/ConfigInstanceSelect.d.ts +14 -0
  78. package/build/JsonConfigComponent/ConfigInstanceSelect.js +133 -0
  79. package/build/JsonConfigComponent/ConfigInstanceSelect.js.map +1 -0
  80. package/build/JsonConfigComponent/ConfigInterface.d.ts +14 -0
  81. package/build/JsonConfigComponent/ConfigInterface.js +74 -0
  82. package/build/JsonConfigComponent/ConfigInterface.js.map +1 -0
  83. package/build/JsonConfigComponent/ConfigJsonEditor.d.ts +13 -0
  84. package/build/JsonConfigComponent/ConfigJsonEditor.js +59 -0
  85. package/build/JsonConfigComponent/ConfigJsonEditor.js.map +1 -0
  86. package/build/JsonConfigComponent/ConfigLanguage.d.ts +7 -0
  87. package/build/JsonConfigComponent/ConfigLanguage.js +105 -0
  88. package/build/JsonConfigComponent/ConfigLanguage.js.map +1 -0
  89. package/build/JsonConfigComponent/ConfigLicense.d.ts +24 -0
  90. package/build/JsonConfigComponent/ConfigLicense.js +95 -0
  91. package/build/JsonConfigComponent/ConfigLicense.js.map +1 -0
  92. package/build/JsonConfigComponent/ConfigNumber.d.ts +17 -0
  93. package/build/JsonConfigComponent/ConfigNumber.js +114 -0
  94. package/build/JsonConfigComponent/ConfigNumber.js.map +1 -0
  95. package/build/JsonConfigComponent/ConfigObjectId.d.ts +17 -0
  96. package/build/JsonConfigComponent/ConfigObjectId.js +59 -0
  97. package/build/JsonConfigComponent/ConfigObjectId.js.map +1 -0
  98. package/build/JsonConfigComponent/ConfigPanel.d.ts +3 -0
  99. package/build/JsonConfigComponent/ConfigPanel.js +271 -0
  100. package/build/JsonConfigComponent/ConfigPanel.js.map +1 -0
  101. package/build/JsonConfigComponent/ConfigPassword.d.ts +14 -0
  102. package/build/JsonConfigComponent/ConfigPassword.js +105 -0
  103. package/build/JsonConfigComponent/ConfigPassword.js.map +1 -0
  104. package/build/JsonConfigComponent/ConfigPattern.d.ts +21 -0
  105. package/build/JsonConfigComponent/ConfigPattern.js +32 -0
  106. package/build/JsonConfigComponent/ConfigPattern.js.map +1 -0
  107. package/build/JsonConfigComponent/ConfigPort.d.ts +3 -0
  108. package/build/JsonConfigComponent/ConfigPort.js +174 -0
  109. package/build/JsonConfigComponent/ConfigPort.js.map +1 -0
  110. package/build/JsonConfigComponent/ConfigRoom.d.ts +14 -0
  111. package/build/JsonConfigComponent/ConfigRoom.js +56 -0
  112. package/build/JsonConfigComponent/ConfigRoom.js.map +1 -0
  113. package/build/JsonConfigComponent/ConfigSelect.d.ts +14 -0
  114. package/build/JsonConfigComponent/ConfigSelect.js +90 -0
  115. package/build/JsonConfigComponent/ConfigSelect.js.map +1 -0
  116. package/build/JsonConfigComponent/ConfigSelectSendTo.d.ts +17 -0
  117. package/build/JsonConfigComponent/ConfigSelectSendTo.js +175 -0
  118. package/build/JsonConfigComponent/ConfigSelectSendTo.js.map +1 -0
  119. package/build/JsonConfigComponent/ConfigSendto.d.ts +24 -0
  120. package/build/JsonConfigComponent/ConfigSendto.js +290 -0
  121. package/build/JsonConfigComponent/ConfigSendto.js.map +1 -0
  122. package/build/JsonConfigComponent/ConfigSetState.d.ts +18 -0
  123. package/build/JsonConfigComponent/ConfigSetState.js +93 -0
  124. package/build/JsonConfigComponent/ConfigSetState.js.map +1 -0
  125. package/build/JsonConfigComponent/ConfigSlider.d.ts +14 -0
  126. package/build/JsonConfigComponent/ConfigSlider.js +62 -0
  127. package/build/JsonConfigComponent/ConfigSlider.js.map +1 -0
  128. package/build/JsonConfigComponent/ConfigStaticDivider.d.ts +14 -0
  129. package/build/JsonConfigComponent/ConfigStaticDivider.js +39 -0
  130. package/build/JsonConfigComponent/ConfigStaticDivider.js.map +1 -0
  131. package/build/JsonConfigComponent/ConfigStaticHeader.d.ts +14 -0
  132. package/build/JsonConfigComponent/ConfigStaticHeader.js +45 -0
  133. package/build/JsonConfigComponent/ConfigStaticHeader.js.map +1 -0
  134. package/build/JsonConfigComponent/ConfigStaticImage.d.ts +14 -0
  135. package/build/JsonConfigComponent/ConfigStaticImage.js +36 -0
  136. package/build/JsonConfigComponent/ConfigStaticImage.js.map +1 -0
  137. package/build/JsonConfigComponent/ConfigStaticText.d.ts +14 -0
  138. package/build/JsonConfigComponent/ConfigStaticText.js +51 -0
  139. package/build/JsonConfigComponent/ConfigStaticText.js.map +1 -0
  140. package/build/JsonConfigComponent/ConfigTable.d.ts +3 -0
  141. package/build/JsonConfigComponent/ConfigTable.js +670 -0
  142. package/build/JsonConfigComponent/ConfigTable.js.map +1 -0
  143. package/build/JsonConfigComponent/ConfigTabs.d.ts +34 -0
  144. package/build/JsonConfigComponent/ConfigTabs.js +90 -0
  145. package/build/JsonConfigComponent/ConfigTabs.js.map +1 -0
  146. package/build/JsonConfigComponent/ConfigText.d.ts +14 -0
  147. package/build/JsonConfigComponent/ConfigText.js +105 -0
  148. package/build/JsonConfigComponent/ConfigText.js.map +1 -0
  149. package/build/JsonConfigComponent/ConfigTextSendTo.d.ts +10 -0
  150. package/build/JsonConfigComponent/ConfigTextSendTo.js +76 -0
  151. package/build/JsonConfigComponent/ConfigTextSendTo.js.map +1 -0
  152. package/build/JsonConfigComponent/ConfigTimePicker.d.ts +14 -0
  153. package/build/JsonConfigComponent/ConfigTimePicker.js +37 -0
  154. package/build/JsonConfigComponent/ConfigTimePicker.js.map +1 -0
  155. package/build/JsonConfigComponent/ConfigTopic.d.ts +17 -0
  156. package/build/JsonConfigComponent/ConfigTopic.js +61 -0
  157. package/build/JsonConfigComponent/ConfigTopic.js.map +1 -0
  158. package/build/JsonConfigComponent/ConfigUUID.d.ts +15 -0
  159. package/build/JsonConfigComponent/ConfigUUID.js +31 -0
  160. package/build/JsonConfigComponent/ConfigUUID.js.map +1 -0
  161. package/build/JsonConfigComponent/ConfigUser.d.ts +14 -0
  162. package/build/JsonConfigComponent/ConfigUser.js +70 -0
  163. package/build/JsonConfigComponent/ConfigUser.js.map +1 -0
  164. package/build/JsonConfigComponent/index.d.ts +26 -0
  165. package/build/JsonConfigComponent/index.js +312 -0
  166. package/build/JsonConfigComponent/index.js.map +1 -0
  167. package/build/JsonConfigComponent/wrapper/AdminConnection.d.ts +2 -0
  168. package/build/JsonConfigComponent/wrapper/AdminConnection.js +3 -0
  169. package/build/JsonConfigComponent/wrapper/AdminConnection.js.map +1 -0
  170. package/build/JsonConfigComponent/wrapper/Components/ColorPicker.d.ts +2 -0
  171. package/build/JsonConfigComponent/wrapper/Components/ColorPicker.js +3 -0
  172. package/build/JsonConfigComponent/wrapper/Components/ColorPicker.js.map +1 -0
  173. package/build/JsonConfigComponent/wrapper/Components/CustomModal.d.ts +3 -0
  174. package/build/JsonConfigComponent/wrapper/Components/CustomModal.js +87 -0
  175. package/build/JsonConfigComponent/wrapper/Components/CustomModal.js.map +1 -0
  176. package/build/JsonConfigComponent/wrapper/Components/Editor.d.ts +14 -0
  177. package/build/JsonConfigComponent/wrapper/Components/Editor.js +43 -0
  178. package/build/JsonConfigComponent/wrapper/Components/Editor.js.map +1 -0
  179. package/build/JsonConfigComponent/wrapper/Components/Icon.d.ts +2 -0
  180. package/build/JsonConfigComponent/wrapper/Components/Icon.js +3 -0
  181. package/build/JsonConfigComponent/wrapper/Components/Icon.js.map +1 -0
  182. package/build/JsonConfigComponent/wrapper/Components/TextWithIcon.d.ts +2 -0
  183. package/build/JsonConfigComponent/wrapper/Components/TextWithIcon.js +3 -0
  184. package/build/JsonConfigComponent/wrapper/Components/TextWithIcon.js.map +1 -0
  185. package/build/JsonConfigComponent/wrapper/Components/UploadImage.d.ts +2 -0
  186. package/build/JsonConfigComponent/wrapper/Components/UploadImage.js +3 -0
  187. package/build/JsonConfigComponent/wrapper/Components/UploadImage.js.map +1 -0
  188. package/build/JsonConfigComponent/wrapper/Components/Utils.d.ts +2 -0
  189. package/build/JsonConfigComponent/wrapper/Components/Utils.js +3 -0
  190. package/build/JsonConfigComponent/wrapper/Components/Utils.js.map +1 -0
  191. package/build/JsonConfigComponent/wrapper/Dialogs/Confirm.d.ts +2 -0
  192. package/build/JsonConfigComponent/wrapper/Dialogs/Confirm.js +3 -0
  193. package/build/JsonConfigComponent/wrapper/Dialogs/Confirm.js.map +1 -0
  194. package/build/JsonConfigComponent/wrapper/Dialogs/Cron.d.ts +2 -0
  195. package/build/JsonConfigComponent/wrapper/Dialogs/Cron.js +3 -0
  196. package/build/JsonConfigComponent/wrapper/Dialogs/Cron.js.map +1 -0
  197. package/build/JsonConfigComponent/wrapper/Dialogs/Error.d.ts +2 -0
  198. package/build/JsonConfigComponent/wrapper/Dialogs/Error.js +3 -0
  199. package/build/JsonConfigComponent/wrapper/Dialogs/Error.js.map +1 -0
  200. package/build/JsonConfigComponent/wrapper/Dialogs/Message.d.ts +2 -0
  201. package/build/JsonConfigComponent/wrapper/Dialogs/Message.js +3 -0
  202. package/build/JsonConfigComponent/wrapper/Dialogs/Message.js.map +1 -0
  203. package/build/JsonConfigComponent/wrapper/Dialogs/SelectFile.d.ts +2 -0
  204. package/build/JsonConfigComponent/wrapper/Dialogs/SelectFile.js +3 -0
  205. package/build/JsonConfigComponent/wrapper/Dialogs/SelectFile.js.map +1 -0
  206. package/build/JsonConfigComponent/wrapper/Dialogs/SelectID.d.ts +2 -0
  207. package/build/JsonConfigComponent/wrapper/Dialogs/SelectID.js +3 -0
  208. package/build/JsonConfigComponent/wrapper/Dialogs/SelectID.js.map +1 -0
  209. package/build/JsonConfigComponent/wrapper/i18n.d.ts +2 -0
  210. package/build/JsonConfigComponent/wrapper/i18n.js +3 -0
  211. package/build/JsonConfigComponent/wrapper/i18n.js.map +1 -0
  212. package/build/JsonConfigComponent/wrapper/icons/IconCopy.d.ts +2 -0
  213. package/build/JsonConfigComponent/wrapper/icons/IconCopy.js +3 -0
  214. package/build/JsonConfigComponent/wrapper/icons/IconCopy.js.map +1 -0
  215. package/build/Utils.d.ts +376 -0
  216. package/build/Utils.js +1595 -0
  217. package/build/Utils.js.map +1 -0
  218. package/build/index.d.ts +5 -0
  219. package/build/index.js +6 -0
  220. package/build/index.js.map +1 -0
  221. package/package.json +17 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2014-2023 bluefox <dogafox@gmail.com>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ import { I18n, AdminConnection } from '@iobroker/adapter-react-v5';
3
+ interface JsonConfigProps {
4
+ menuPadding: number;
5
+ adapterName: string;
6
+ instance: number;
7
+ isFloatComma: boolean;
8
+ dateFormat: string;
9
+ secret: string;
10
+ socket: AdminConnection;
11
+ theme: Record<string, any>;
12
+ themeName: string;
13
+ themeType: string;
14
+ /** CSS classes */
15
+ classes: Record<string, any>;
16
+ /** Translate method */
17
+ t: typeof I18n.t;
18
+ configStored: (notChanged: boolean) => void;
19
+ width: 'xs' | 'sm' | 'md';
20
+ }
21
+ declare const _default: React.JSXElementConstructor<Omit<JsonConfigProps, "classes"> & import("@mui/styles").StyledComponentProps<"button" | "scroll" | "root" | "exportImportButtons"> & object>;
22
+ export default _default;
@@ -0,0 +1,535 @@
1
+ import React from 'react';
2
+ import { withStyles } from '@mui/styles';
3
+ import JSON5 from 'json5';
4
+ import MD5 from 'crypto-js/md5';
5
+ import LinearProgress from '@mui/material/LinearProgress';
6
+ import Tooltip from '@mui/material/Tooltip';
7
+ import Fab from '@mui/material/Fab';
8
+ import PublishIcon from '@mui/icons-material/Publish';
9
+ import { I18n, Router, SaveCloseButtons, Theme as theme, Confirm as ConfirmDialog, } from '@iobroker/adapter-react-v5';
10
+ import Utils from '@/Utils';
11
+ import ConfigGeneric from './JsonConfigComponent/ConfigGeneric';
12
+ import JsonConfigComponent from './JsonConfigComponent';
13
+ const styles = {
14
+ root: {
15
+ width: '100%',
16
+ height: '100%',
17
+ overflow: 'hidden',
18
+ position: 'relative',
19
+ },
20
+ scroll: {
21
+ height: 'calc(100% - 48px - 48px)',
22
+ overflowY: 'auto',
23
+ },
24
+ exportImportButtons: {
25
+ position: 'absolute',
26
+ top: 5,
27
+ right: 0,
28
+ zIndex: 3,
29
+ },
30
+ button: {
31
+ marginRight: 5,
32
+ },
33
+ };
34
+ /**
35
+ * Decrypt the password/value with given key
36
+ * @param key - Secret key
37
+ * @param value - value to decrypt
38
+ */
39
+ function decryptLegacy(key, value) {
40
+ let result = '';
41
+ for (let i = 0; i < value.length; i++) {
42
+ // eslint-disable-next-line no-bitwise
43
+ result += String.fromCharCode(key[i % key.length].charCodeAt(0) ^ value.charCodeAt(i));
44
+ }
45
+ return result;
46
+ }
47
+ /**
48
+ * Encrypt the password/value with given key
49
+ * @param key - Secret key
50
+ * @param value - value to encrypt
51
+ */
52
+ function encryptLegacy(key, value) {
53
+ let result = '';
54
+ for (let i = 0; i < value.length; i++) {
55
+ // eslint-disable-next-line no-bitwise
56
+ result += String.fromCharCode(key[i % key.length].charCodeAt(0) ^ value.charCodeAt(i));
57
+ }
58
+ return result;
59
+ }
60
+ /**
61
+ * Decrypt the password/value with given key
62
+ * Usage:
63
+ * ```js
64
+ * function load(settings, onChange) {
65
+ * if (settings.password) {
66
+ * settings.password = decrypt(systemSecret, settings.password);
67
+ * // same as
68
+ * settings.password = decrypt(settings.password);
69
+ * }
70
+ * // ...
71
+ * }
72
+ * ```
73
+ * @param key - Secret key
74
+ * @param value - value to decrypt
75
+ */
76
+ function decrypt(key, value) {
77
+ if (typeof value !== 'string') {
78
+ return value;
79
+ }
80
+ // if not encrypted as aes-192 or key not a valid 48-digit hex -> fallback
81
+ if (!value.startsWith('$/aes-192-cbc:') || !/^[0-9a-f]{48}$/.test(key)) {
82
+ return decryptLegacy(key, value);
83
+ }
84
+ // algorithm:iv:encryptedValue
85
+ const textParts = value.split(':', 3);
86
+ const _key = window.CryptoJS.enc.Hex.parse(key);
87
+ const iv = window.CryptoJS.enc.Hex.parse(textParts[1]);
88
+ const cipherParams = window.CryptoJS.lib.CipherParams.create({ ciphertext: window.CryptoJS.enc.Hex.parse(textParts[2]) });
89
+ const decryptedBinary = window.CryptoJS.AES.decrypt(cipherParams, _key, { iv });
90
+ return window.CryptoJS.enc.Utf8.stringify(decryptedBinary);
91
+ }
92
+ /**
93
+ * Encrypt the password/value with given key
94
+ * Usage:
95
+ * ```
96
+ * function save(callback) {
97
+ * ...
98
+ * if (obj.password) {
99
+ * obj.password = encrypt(systemSecret, obj.password);
100
+ * // same as
101
+ * obj.password = decrypt(obj.password);
102
+ * }
103
+ * ...
104
+ * }
105
+ * ```
106
+ * @param key - Secret key
107
+ * @param value - value to encrypt
108
+ * @param _iv - optional initial vector for tests
109
+ */
110
+ function encrypt(key, value, _iv) {
111
+ if (typeof value !== 'string') {
112
+ return value;
113
+ }
114
+ if (!/^[0-9a-f]{48}$/.test(key)) {
115
+ // key length is not matching for AES-192-CBC or key is no valid hex - fallback to old encryption
116
+ return encryptLegacy(key, value);
117
+ }
118
+ let iv;
119
+ if (_iv) {
120
+ iv = window.CryptoJS.enc.Hex.parse(_iv);
121
+ }
122
+ else {
123
+ iv = window.CryptoJS.lib.WordArray.random(128 / 8);
124
+ }
125
+ const _key = window.CryptoJS.enc.Hex.parse(key);
126
+ const encrypted = window.CryptoJS.AES.encrypt(value, _key, { iv }).ciphertext;
127
+ return `$/aes-192-cbc:${window.CryptoJS.enc.Hex.stringify(iv)}:${encrypted}`;
128
+ }
129
+ function loadScript(src, id) {
130
+ if (!id || !document.getElementById(id)) {
131
+ return new Promise(resolve => {
132
+ const script = document.createElement('script');
133
+ script.setAttribute('id', id);
134
+ script.onload = resolve;
135
+ script.src = src;
136
+ document.getElementsByTagName('head')[0].appendChild(script);
137
+ });
138
+ }
139
+ return document.getElementById(id)?.onload;
140
+ }
141
+ class JsonConfig extends Router {
142
+ fileSubscribed = '';
143
+ fileLangSubscribed = '';
144
+ secret = '';
145
+ constructor(props) {
146
+ super(props);
147
+ this.state = {
148
+ updateData: 0,
149
+ changed: false,
150
+ confirmDialog: false,
151
+ theme: theme(props.themeName),
152
+ saveConfigDialog: false,
153
+ hash: '_',
154
+ };
155
+ this.getInstanceObject()
156
+ .then(obj => this.getConfigFile()
157
+ .then(schema =>
158
+ // load language
159
+ // @ts-expect-error it has the static method
160
+ JsonConfigComponent.loadI18n(this.props.socket, schema?.i18n, this.props.adapterName)
161
+ .then((langFileName) => {
162
+ if (langFileName) {
163
+ // subscribe on changes
164
+ if (!this.fileLangSubscribed) {
165
+ this.fileLangSubscribed = langFileName;
166
+ this.props.socket.subscribeFiles(`${this.props.adapterName}.admin`, this.fileLangSubscribed, this.onFileChange);
167
+ }
168
+ }
169
+ if (obj) {
170
+ this.setState({
171
+ schema,
172
+ data: obj.native,
173
+ common: obj.common,
174
+ // @ts-expect-error really no string?
175
+ hash: MD5(JSON.stringify(schema)),
176
+ });
177
+ }
178
+ else {
179
+ window.alert(`Instance system.adapter.${this.props.adapterName}.${this.props.instance} not found!`);
180
+ }
181
+ })));
182
+ }
183
+ componentWillUnmount() {
184
+ super.componentWillUnmount();
185
+ if (this.fileSubscribed) {
186
+ this.props.socket.unsubscribeFiles(`${this.props.adapterName}.admin`, this.fileSubscribed, this.onFileChange);
187
+ this.fileSubscribed = '';
188
+ }
189
+ if (this.fileLangSubscribed) {
190
+ this.props.socket.unsubscribeFiles(`${this.props.adapterName}.admin`, this.fileLangSubscribed, this.onFileChange);
191
+ this.fileLangSubscribed = '';
192
+ }
193
+ }
194
+ /**
195
+ * @private
196
+ * @param evt
197
+ */
198
+ handleFileSelect = (evt) => {
199
+ const f = evt.target.files[0];
200
+ if (f) {
201
+ const r = new FileReader();
202
+ r.onload = async (e) => {
203
+ if (!e.target) {
204
+ return;
205
+ }
206
+ const contents = e.target.result;
207
+ try {
208
+ const data = JSON.parse(contents);
209
+ this.setState({ data, changed: JSON.stringify(data) !== JSON.stringify(this.state.originalData) });
210
+ }
211
+ catch (err) {
212
+ window.alert(I18n.t('[JsonConfig] Failed to parse JSON file'));
213
+ }
214
+ };
215
+ r.readAsText(f);
216
+ }
217
+ else {
218
+ window.alert(I18n.t('[JsonConfig] Failed to open JSON File'));
219
+ }
220
+ };
221
+ getExportImportButtons() {
222
+ return React.createElement("div", { className: this.props.classes.exportImportButtons },
223
+ React.createElement(Tooltip, { title: this.props.t('Import settings from JSON file') },
224
+ React.createElement(Fab, { size: "small", classes: { root: this.props.classes.button }, onClick: () => {
225
+ const input = document.createElement('input');
226
+ input.setAttribute('type', 'file');
227
+ input.setAttribute('id', 'files');
228
+ // @ts-expect-error check
229
+ input.setAttribute('opacity', 0);
230
+ input.addEventListener('change', e => this.handleFileSelect(e), false);
231
+ input.click();
232
+ } },
233
+ React.createElement(PublishIcon, null))),
234
+ React.createElement(Tooltip, { title: this.props.t('Export setting to JSON file') },
235
+ React.createElement(Fab, { size: "small", classes: { root: this.props.classes.button }, onClick: () => {
236
+ if (!this.state.data) {
237
+ return;
238
+ }
239
+ Utils.generateFile(`${this.props.adapterName}.${this.props.instance}.json`, this.state.data);
240
+ } },
241
+ React.createElement(PublishIcon, { style: { transform: 'rotate(180deg)' } }))));
242
+ }
243
+ onFileChange = async (id, fileName, size) => {
244
+ if (id === `${this.props.adapterName}.admin` && size) {
245
+ if (fileName === this.fileLangSubscribed) {
246
+ try {
247
+ // @ts-expect-error needs types
248
+ await JsonConfigComponent.loadI18n(this.props.socket, this.state.schema?.i18n, this.props.adapterName);
249
+ this.setState({ hash: `${this.state.hash}1` });
250
+ }
251
+ catch {
252
+ // ignore errors
253
+ }
254
+ }
255
+ else if (fileName === this.fileSubscribed) {
256
+ try {
257
+ const schema = await this.getConfigFile(this.fileSubscribed);
258
+ // @ts-expect-error really no string?
259
+ this.setState({ schema, hash: MD5(JSON.stringify(schema)) });
260
+ }
261
+ catch {
262
+ // ignore errors
263
+ }
264
+ }
265
+ }
266
+ };
267
+ getInstanceObject() {
268
+ return this.props.socket.getObject(`system.adapter.${this.props.adapterName}.${this.props.instance}`)
269
+ .then((obj) => {
270
+ // decode all native attributes listed in obj.encryptedNative
271
+ if (Array.isArray(obj.encryptedNative)) {
272
+ return this.props.socket.getSystemConfig()
273
+ .then(async (systemConfig) => {
274
+ await loadScript('../../lib/js/crypto-js/crypto-js.js', 'crypto-js');
275
+ this.secret = systemConfig.native.secret;
276
+ obj.encryptedNative?.forEach(attr => {
277
+ if (obj.native[attr]) {
278
+ obj.native[attr] = decrypt(this.secret, obj.native[attr]);
279
+ }
280
+ });
281
+ return obj;
282
+ });
283
+ }
284
+ return obj;
285
+ })
286
+ .catch((e) => window.alert(`[JsonConfig] Cannot read instance object: ${e}`));
287
+ }
288
+ renderConfirmDialog() {
289
+ if (!this.state.confirmDialog) {
290
+ return null;
291
+ }
292
+ return React.createElement(ConfirmDialog, { title: I18n.t('ra_Please confirm'), text: I18n.t('ra_Some data are not stored. Discard?'), ok: I18n.t('ra_Discard'), cancel: I18n.t('ra_Cancel'), onClose: isYes => this.setState({ confirmDialog: false }, () => isYes && Router.doNavigate()) });
293
+ }
294
+ getConfigFile(fileName) {
295
+ fileName = fileName || 'jsonConfig.json5';
296
+ return this.props.socket.fileExists(`${this.props.adapterName}.admin`, fileName)
297
+ .then((exist) => {
298
+ if (!exist) {
299
+ fileName = 'jsonConfig.json';
300
+ }
301
+ return this.props.socket.readFile(`${this.props.adapterName}.admin`, fileName);
302
+ })
303
+ .then(data => {
304
+ let content = '';
305
+ let file = '';
306
+ if (data.file !== undefined) {
307
+ file = data.file;
308
+ }
309
+ if (typeof file === 'string') {
310
+ content = file;
311
+ // @ts-expect-error revisit
312
+ }
313
+ else if (file.type === 'Buffer') {
314
+ let binary = '';
315
+ // @ts-expect-error revisit
316
+ const bytes = new Uint8Array(file.data);
317
+ const len = bytes.byteLength;
318
+ for (let i = 0; i < len; i++) {
319
+ binary += String.fromCharCode(bytes[i]);
320
+ }
321
+ content = binary;
322
+ }
323
+ // subscribe on changes
324
+ if (!this.fileSubscribed) {
325
+ this.fileSubscribed = fileName ?? '';
326
+ this.props.socket.subscribeFiles(`${this.props.adapterName}.admin`, this.fileSubscribed, this.onFileChange);
327
+ }
328
+ try {
329
+ return JSON5.parse(content);
330
+ }
331
+ catch (e) {
332
+ window.alert('[JsonConfig] Cannot parse json5 config!');
333
+ console.log(e);
334
+ return null;
335
+ }
336
+ })
337
+ .catch((e) => !this.state.schema && window.alert(`[JsonConfig] Cannot read file: ${e}`));
338
+ }
339
+ renderSaveConfigDialog() {
340
+ if (!this.state.saveConfigDialog) {
341
+ return null;
342
+ }
343
+ return React.createElement(ConfirmDialog, { title: I18n.t('ra_Please confirm'), text: I18n.t('Save configuration?'), ok: I18n.t('ra_Save'), cancel: I18n.t('ra_Cancel'), onClose: isYes => this.setState({ saveConfigDialog: false }, () => isYes && this.onSave(true)) });
344
+ }
345
+ findAttr(attr, schema) {
346
+ schema = schema || this.state.schema;
347
+ if (schema?.items) {
348
+ if (attr in schema.items) {
349
+ return schema.items[attr];
350
+ }
351
+ for (const _item of Object.values(schema.items)) {
352
+ const item = this.findAttr(attr, _item);
353
+ if (item) {
354
+ return item;
355
+ }
356
+ }
357
+ }
358
+ return null;
359
+ }
360
+ // this function is called recursively and trims all text fields, that must be trimmed
361
+ postProcessing(data, attr, schema) {
362
+ schema = schema || this.state.schema;
363
+ if (!data) {
364
+ // should not happen
365
+ console.error(`Data is empty in postProcessing: ${attr}, ${JSON.stringify(schema)}`);
366
+ return;
367
+ }
368
+ const dataAttr = data[attr];
369
+ if (schema.items) {
370
+ if (schema.type === 'table') {
371
+ const table = dataAttr;
372
+ if (!Array.isArray(table)) {
373
+ return;
374
+ }
375
+ for (const entry of table) {
376
+ for (const tItem of schema.items) {
377
+ this.postProcessing(entry, tItem.attr, tItem);
378
+ }
379
+ }
380
+ }
381
+ else {
382
+ for (const [_attr, item] of Object.entries(schema.items)) {
383
+ if (item.type === 'panel' || item.type === 'tabs' || item.type === 'accordion') {
384
+ return;
385
+ }
386
+ this.postProcessing(data, _attr, item);
387
+ }
388
+ }
389
+ }
390
+ else if (attr && typeof dataAttr === 'string') {
391
+ // postprocessing
392
+ if (schema.type === 'text') {
393
+ if (schema.trim !== false) {
394
+ data[attr] = dataAttr.trim();
395
+ }
396
+ }
397
+ else if (schema.type === 'ip') {
398
+ // should not happen
399
+ data[attr] = dataAttr.trim();
400
+ }
401
+ else if (schema.type === 'number') {
402
+ const dataVal = parseFloat(dataAttr.toString().replace(',', '.'));
403
+ if (schema.min !== undefined && dataVal < schema.min) {
404
+ data[attr] = schema.min;
405
+ }
406
+ else if (schema.max !== undefined && dataVal > schema.max) {
407
+ data[attr] = schema.max;
408
+ }
409
+ else {
410
+ data[attr] = dataVal;
411
+ }
412
+ }
413
+ else if (schema.type === 'port') {
414
+ const dataVal = parseInt(dataAttr.toString(), 10);
415
+ if (schema.min !== undefined && dataVal < schema.min) {
416
+ data[attr] = schema.min;
417
+ }
418
+ else if (schema.max !== undefined && dataVal > schema.max) {
419
+ data[attr] = schema.max;
420
+ }
421
+ if (data[attr] !== 0 && dataVal < 20) {
422
+ data[attr] = 20;
423
+ }
424
+ else if (dataVal > 0xFFFF) {
425
+ data[attr] = 0xFFFF;
426
+ }
427
+ else {
428
+ data[attr] = dataVal;
429
+ }
430
+ }
431
+ else if (schema.type === 'checkbox') {
432
+ // should not happen
433
+ data[attr] = data[attr] === true || data[attr] === 'true' || data[attr] === 'on' || data[attr] === 1 || data[attr] === '1';
434
+ }
435
+ }
436
+ }
437
+ async onSave(doSave, close) {
438
+ if (doSave) {
439
+ const obj = await this.getInstanceObject();
440
+ if (!obj) {
441
+ console.error('Something went wrong: may be no connection?');
442
+ window.alert('Something went wrong: may be no connection?');
443
+ return;
444
+ }
445
+ if (!this.state.data || !this.state.schema) {
446
+ return;
447
+ }
448
+ const doNotSaveAttributes = {};
449
+ for (const attr of Object.keys(this.state.data)) {
450
+ const item = this.findAttr(attr);
451
+ if ((!item || !item.doNotSave) && !attr.startsWith('_')) {
452
+ ConfigGeneric.setValue(obj.native, attr, this.state.data[attr]);
453
+ }
454
+ else {
455
+ ConfigGeneric.setValue(obj.native, attr, null);
456
+ doNotSaveAttributes[attr] = this.state.data[attr];
457
+ }
458
+ }
459
+ try {
460
+ const encryptedObj = JSON.parse(JSON.stringify(obj));
461
+ // encode all native attributes listed in obj.encryptedNative
462
+ if (Array.isArray(encryptedObj.encryptedNative)) {
463
+ await loadScript('../../lib/js/crypto-js/crypto-js.js', 'crypto-js');
464
+ for (const attr of encryptedObj.encryptedNative) {
465
+ if (encryptedObj.native[attr]) {
466
+ encryptedObj.native[attr] = encrypt(this.secret, encryptedObj.native[attr]);
467
+ }
468
+ }
469
+ }
470
+ await this.props.socket.setObject(encryptedObj._id, encryptedObj);
471
+ }
472
+ catch (e) {
473
+ window.alert(`[JsonConfig] Cannot set object: ${e}`);
474
+ }
475
+ /** We want to preserve the doNotSaveAttributes too, just not save it */
476
+ const nativeWithNonSaved = { ...obj.native, ...doNotSaveAttributes };
477
+ console.log(nativeWithNonSaved);
478
+ this.setState({
479
+ changed: false,
480
+ data: nativeWithNonSaved,
481
+ updateData: this.state.updateData + 1,
482
+ originalData: nativeWithNonSaved,
483
+ }, () => close && Router.doNavigate(null));
484
+ }
485
+ else if (this.state.changed) {
486
+ this.setState({ confirmDialog: true });
487
+ }
488
+ else {
489
+ Router.doNavigate(null);
490
+ }
491
+ }
492
+ componentDidUpdate(_prevProps, prevState) {
493
+ if (prevState.changed !== this.state.changed) {
494
+ this.props.configStored(!this.state.changed);
495
+ }
496
+ }
497
+ /**
498
+ * Validate the JSON config once on mount
499
+ */
500
+ async componentDidMount() {
501
+ const link = `${window.location.protocol}//${window.location.host}${window.location.pathname}validate_config/${this.props.adapterName}`;
502
+ console.log(`fetch ${link}`);
503
+ await fetch(link);
504
+ }
505
+ render() {
506
+ const { classes } = this.props;
507
+ if (!this.state.data || !this.state.schema) {
508
+ return React.createElement(LinearProgress, null);
509
+ }
510
+ return React.createElement("div", { className: this.props.classes.root },
511
+ this.renderConfirmDialog(),
512
+ this.getExportImportButtons(),
513
+ this.renderSaveConfigDialog(),
514
+ React.createElement(JsonConfigComponent, { key: this.state.hash,
515
+ // @ts-expect-error types not correct yet
516
+ className: classes.scroll, socket: this.props.socket, theme: this.props.theme, themeName: this.props.themeName, themeType: this.props.themeType, adapterName: this.props.adapterName, instance: this.props.instance, isFloatComma: this.props.isFloatComma, dateFormat: this.props.dateFormat, schema: this.state.schema, common: this.state.common, data: this.state.data, updateData: this.state.updateData, onError: error => this.setState({ error }), onChange: (data, changed, saveConfigDialog) => {
517
+ if (saveConfigDialog && this.state.error) {
518
+ window.alert(I18n.t('Cannot save configuration because of error in configuration'));
519
+ saveConfigDialog = false;
520
+ }
521
+ if (saveConfigDialog && !this.state.changed && !changed) {
522
+ saveConfigDialog = false;
523
+ }
524
+ if (data) {
525
+ this.setState({ data, changed, saveConfigDialog });
526
+ }
527
+ else if (saveConfigDialog !== undefined) {
528
+ this.setState({ saveConfigDialog });
529
+ }
530
+ } }),
531
+ React.createElement(SaveCloseButtons, { isIFrame: false, dense: true, paddingLeft: 0, newReact: true, theme: this.state.theme, noTextOnButtons: this.props.width === 'xs' || this.props.width === 'sm' || this.props.width === 'md', changed: !!(this.state.error || this.state.changed), error: !!this.state.error, onSave: (close) => this.onSave(true, close), onClose: () => this.onSave(false) }));
532
+ }
533
+ }
534
+ export default withStyles(styles)(JsonConfig);
535
+ //# sourceMappingURL=JsonConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonConfig.js","sourceRoot":"./src/","sources":["JsonConfig.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export function defaultChipRenderer({ text, isFocused, isDisabled, isReadOnly, handleClick, handleDelete, className, }: {
2
+ text: any;
3
+ isFocused: any;
4
+ isDisabled: any;
5
+ isReadOnly: any;
6
+ handleClick: any;
7
+ handleDelete: any;
8
+ className: any;
9
+ }, key: any): React.JSX.Element;
10
+ declare const _default: React.JSXElementConstructor<any>;
11
+ export default _default;
12
+ import React from 'react';