@iobroker/adapter-react-v5 7.0.2 → 7.1.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 (307) hide show
  1. package/Components/404.d.ts +3 -2
  2. package/Components/404.js +3 -2
  3. package/Components/ColorPicker.d.ts +22 -8
  4. package/Components/ColorPicker.js +34 -17
  5. package/Components/ComplexCron.js +24 -24
  6. package/Components/CopyToClipboard.d.ts +10 -1
  7. package/Components/CopyToClipboard.js +17 -8
  8. package/Components/CustomModal.d.ts +1 -1
  9. package/Components/CustomModal.js +8 -8
  10. package/Components/FileBrowser.d.ts +11 -11
  11. package/Components/FileBrowser.js +135 -152
  12. package/Components/FileViewer.js +34 -23
  13. package/Components/Icon.d.ts +16 -2
  14. package/Components/Icon.js +19 -8
  15. package/Components/IconPicker.js +10 -14
  16. package/Components/IconSelector.d.ts +1 -1
  17. package/Components/IconSelector.js +64 -74
  18. package/Components/Image.d.ts +8 -4
  19. package/Components/Image.js +13 -32
  20. package/Components/Loader.d.ts +2 -2
  21. package/Components/Loader.js +21 -18
  22. package/Components/Loaders/MV.d.ts +6 -1
  23. package/Components/Loaders/MV.js +23 -7
  24. package/Components/Loaders/PT.d.ts +7 -2
  25. package/Components/Loaders/PT.js +20 -7
  26. package/Components/Loaders/Vendor.d.ts +2 -2
  27. package/Components/Loaders/Vendor.js +15 -7
  28. package/Components/Logo.js +16 -18
  29. package/Components/MDUtils.d.ts +1 -1
  30. package/Components/MDUtils.js +8 -4
  31. package/Components/ObjectBrowser.d.ts +40 -39
  32. package/Components/ObjectBrowser.js +550 -435
  33. package/Components/Router.d.ts +1 -3
  34. package/Components/Router.js +3 -1
  35. package/Components/SaveCloseButtons.d.ts +3 -3
  36. package/Components/SaveCloseButtons.js +3 -3
  37. package/Components/Schedule.d.ts +15 -15
  38. package/Components/Schedule.js +177 -154
  39. package/Components/SelectWithIcon.d.ts +2 -2
  40. package/Components/SelectWithIcon.js +45 -34
  41. package/Components/SimpleCron/index.js +83 -43
  42. package/Components/TabContainer.js +2 -2
  43. package/Components/TabContent.js +1 -1
  44. package/Components/TabHeader.js +1 -1
  45. package/Components/TableResize.d.ts +2 -2
  46. package/Components/TableResize.js +5 -5
  47. package/Components/TextWithIcon.d.ts +1 -1
  48. package/Components/TextWithIcon.js +10 -8
  49. package/Components/ToggleThemeMenu.d.ts +2 -2
  50. package/Components/ToggleThemeMenu.js +3 -3
  51. package/Components/TreeTable.d.ts +18 -18
  52. package/Components/TreeTable.js +76 -72
  53. package/Components/UploadImage.d.ts +2 -2
  54. package/Components/UploadImage.js +25 -21
  55. package/Components/Utils.d.ts +42 -22
  56. package/Components/Utils.js +66 -65
  57. package/Components/withWidth.d.ts +2 -2
  58. package/Components/withWidth.js +10 -6
  59. package/Dialogs/ComplexCron.d.ts +2 -2
  60. package/Dialogs/ComplexCron.js +3 -3
  61. package/Dialogs/Confirm.d.ts +4 -4
  62. package/Dialogs/Confirm.js +18 -8
  63. package/Dialogs/Cron.d.ts +3 -3
  64. package/Dialogs/Cron.js +21 -17
  65. package/Dialogs/Error.d.ts +3 -3
  66. package/Dialogs/Error.js +6 -4
  67. package/Dialogs/Message.d.ts +3 -3
  68. package/Dialogs/Message.js +6 -4
  69. package/Dialogs/SelectFile.d.ts +4 -4
  70. package/Dialogs/SelectFile.js +6 -4
  71. package/Dialogs/SelectID.d.ts +12 -10
  72. package/Dialogs/SelectID.js +12 -8
  73. package/Dialogs/SimpleCron.d.ts +2 -2
  74. package/Dialogs/SimpleCron.js +2 -2
  75. package/Dialogs/TextInput.d.ts +2 -2
  76. package/Dialogs/TextInput.js +3 -3
  77. package/GenericApp.d.ts +19 -13
  78. package/GenericApp.js +128 -85
  79. package/LegacyConnection.d.ts +240 -248
  80. package/LegacyConnection.js +500 -525
  81. package/README.md +1234 -1170
  82. package/Theme.d.ts +1 -1
  83. package/Theme.js +9 -12
  84. package/assets/devices.json +1 -0
  85. package/assets/rooms.json +1 -0
  86. package/craco-module-federation.js +3 -12
  87. package/i18n/de.json +434 -434
  88. package/i18n/en.json +434 -434
  89. package/i18n/es.json +434 -434
  90. package/i18n/fr.json +434 -434
  91. package/i18n/it.json +434 -434
  92. package/i18n/nl.json +434 -434
  93. package/i18n/pl.json +434 -434
  94. package/i18n/pt.json +434 -434
  95. package/i18n/ru.json +434 -434
  96. package/i18n/uk.json +434 -434
  97. package/i18n/zh-cn.json +434 -434
  98. package/i18n.d.ts +26 -19
  99. package/i18n.js +28 -22
  100. package/icons/IconAdapter.js +2 -2
  101. package/icons/IconAlias.js +2 -2
  102. package/icons/IconChannel.js +2 -2
  103. package/icons/IconClearFilter.js +2 -2
  104. package/icons/IconClosed.js +2 -2
  105. package/icons/IconCopy.js +2 -2
  106. package/icons/IconDevice.js +2 -2
  107. package/icons/IconDocument.js +2 -2
  108. package/icons/IconDocumentReadOnly.js +2 -2
  109. package/icons/IconExpert.js +2 -2
  110. package/icons/IconFx.js +2 -2
  111. package/icons/IconInstance.js +2 -2
  112. package/icons/IconLogout.js +2 -2
  113. package/icons/IconNoIcon.js +2 -2
  114. package/icons/IconOpen.d.ts +2 -2
  115. package/icons/IconOpen.js +2 -2
  116. package/icons/IconProps.d.ts +4 -3
  117. package/icons/IconState.d.ts +2 -2
  118. package/icons/IconState.js +2 -2
  119. package/index.css +3 -2
  120. package/package.json +1 -1
  121. package/src/Components/404.tsx +32 -31
  122. package/src/Components/ColorPicker.tsx +142 -114
  123. package/src/Components/ComplexCron.tsx +174 -137
  124. package/src/Components/CopyToClipboard.tsx +22 -9
  125. package/src/Components/CustomModal.tsx +76 -69
  126. package/src/Components/FileBrowser.tsx +959 -852
  127. package/src/Components/FileViewer.tsx +146 -127
  128. package/src/Components/Icon.tsx +80 -52
  129. package/src/Components/IconPicker.tsx +83 -67
  130. package/src/Components/IconSelector.tsx +159 -141
  131. package/src/Components/Image.tsx +43 -26
  132. package/src/Components/Loader.tsx +56 -32
  133. package/src/Components/Logo.tsx +62 -52
  134. package/src/Components/MDUtils.tsx +10 -6
  135. package/src/Components/ObjectBrowser.tsx +3198 -2478
  136. package/src/Components/Router.tsx +11 -11
  137. package/src/Components/SaveCloseButtons.tsx +43 -39
  138. package/src/Components/Schedule.tsx +1091 -853
  139. package/src/Components/SelectWithIcon.tsx +135 -93
  140. package/src/Components/TabContainer.tsx +21 -19
  141. package/src/Components/TabContent.tsx +13 -12
  142. package/src/Components/TabHeader.tsx +10 -9
  143. package/src/Components/TableResize.tsx +52 -37
  144. package/src/Components/TextWithIcon.tsx +30 -19
  145. package/src/Components/ToggleThemeMenu.tsx +31 -13
  146. package/src/Components/TreeTable.tsx +468 -385
  147. package/src/Components/UploadImage.tsx +153 -121
  148. package/src/Components/Utils.tsx +135 -127
  149. package/src/Components/loader.css +40 -31
  150. package/src/Components/withWidth.tsx +23 -12
  151. package/src/Connection.tsx +1 -3
  152. package/src/Dialogs/ComplexCron.tsx +55 -61
  153. package/src/Dialogs/Confirm.tsx +88 -65
  154. package/src/Dialogs/Cron.tsx +122 -112
  155. package/src/Dialogs/Error.tsx +37 -42
  156. package/src/Dialogs/Message.tsx +39 -37
  157. package/src/Dialogs/SelectFile.tsx +95 -85
  158. package/src/Dialogs/SelectID.tsx +141 -129
  159. package/src/Dialogs/SimpleCron.tsx +44 -44
  160. package/src/Dialogs/TextInput.tsx +60 -68
  161. package/src/GenericApp.tsx +342 -242
  162. package/src/LegacyConnection.tsx +972 -842
  163. package/src/Prompt.tsx +3 -1
  164. package/src/Theme.tsx +19 -26
  165. package/src/icons/IconAdapter.tsx +16 -14
  166. package/src/icons/IconAlias.tsx +16 -14
  167. package/src/icons/IconChannel.tsx +55 -16
  168. package/src/icons/IconClearFilter.tsx +17 -15
  169. package/src/icons/IconClosed.tsx +16 -11
  170. package/src/icons/IconCopy.tsx +16 -11
  171. package/src/icons/IconDevice.tsx +121 -22
  172. package/src/icons/IconDocument.tsx +16 -11
  173. package/src/icons/IconDocumentReadOnly.tsx +21 -12
  174. package/src/icons/IconExpert.tsx +20 -12
  175. package/src/icons/IconFx.tsx +16 -14
  176. package/src/icons/IconInstance.tsx +16 -14
  177. package/src/icons/IconLogout.tsx +20 -18
  178. package/src/icons/IconNoIcon.tsx +16 -14
  179. package/src/icons/IconOpen.tsx +17 -12
  180. package/src/icons/IconProps.tsx +4 -3
  181. package/src/icons/IconState.tsx +34 -13
  182. package/src/index.css +3 -2
  183. package/tasks.js +91 -0
  184. package/types.d.ts +141 -0
  185. package/Components/Loaders/PT.css +0 -109
  186. package/Components/Loaders/Vendor.css +0 -13
  187. package/Components/loader.css +0 -222
  188. package/Components/types.d.ts +0 -82
  189. package/assets/devices/Alarm Systems.svg +0 -19
  190. package/assets/devices/Amplifier.svg +0 -22
  191. package/assets/devices/Awnings.svg +0 -5
  192. package/assets/devices/Battery Status.svg +0 -5
  193. package/assets/devices/Ceiling Spotlights.svg +0 -16
  194. package/assets/devices/Chandelier.svg +0 -7
  195. package/assets/devices/Climate.svg +0 -12
  196. package/assets/devices/Coffee Makers.svg +0 -6
  197. package/assets/devices/Cold Water.svg +0 -31
  198. package/assets/devices/Computer.svg +0 -21
  199. package/assets/devices/Consumption.svg +0 -8
  200. package/assets/devices/Curtains.svg +0 -43
  201. package/assets/devices/Dishwashers.svg +0 -12
  202. package/assets/devices/Doors.svg +0 -6
  203. package/assets/devices/Doorstep.svg +0 -35
  204. package/assets/devices/Dryer.svg +0 -14
  205. package/assets/devices/Fan.svg +0 -20
  206. package/assets/devices/Floor Lamps.svg +0 -5
  207. package/assets/devices/Garage Doors.svg +0 -9
  208. package/assets/devices/Gates.svg +0 -32
  209. package/assets/devices/Hairdryer.svg +0 -23
  210. package/assets/devices/Handle.svg +0 -6
  211. package/assets/devices/Hanging Lamps.svg +0 -9
  212. package/assets/devices/Heater.svg +0 -44
  213. package/assets/devices/Hoods.svg +0 -12
  214. package/assets/devices/Hot Water.svg +0 -10
  215. package/assets/devices/Humidity.svg +0 -41
  216. package/assets/devices/Iron.svg +0 -5
  217. package/assets/devices/Irrigation.svg +0 -23
  218. package/assets/devices/Led Strip.svg +0 -31
  219. package/assets/devices/Light.svg +0 -30
  220. package/assets/devices/Lightings.svg +0 -46
  221. package/assets/devices/Lock.svg +0 -19
  222. package/assets/devices/Louvre.svg +0 -7
  223. package/assets/devices/Mowing Machine.svg +0 -9
  224. package/assets/devices/Music.svg +0 -13
  225. package/assets/devices/Outdoor Blinds.svg +0 -7
  226. package/assets/devices/People.svg +0 -19
  227. package/assets/devices/Pool.svg +0 -8
  228. package/assets/devices/Power Consumption.svg +0 -13
  229. package/assets/devices/Printer.svg +0 -10
  230. package/assets/devices/Pump.svg +0 -10
  231. package/assets/devices/Receiver.svg +0 -19
  232. package/assets/devices/Sconces.svg +0 -10
  233. package/assets/devices/Security.svg +0 -34
  234. package/assets/devices/Shading.svg +0 -5
  235. package/assets/devices/Shutters.svg +0 -11
  236. package/assets/devices/SmokeDetector.svg +0 -13
  237. package/assets/devices/Sockets.svg +0 -13
  238. package/assets/devices/Speaker.svg +0 -35
  239. package/assets/devices/Stove.svg +0 -12
  240. package/assets/devices/Table Lamps.svg +0 -12
  241. package/assets/devices/Temperature Sensors.svg +0 -28
  242. package/assets/devices/Tv.svg +0 -8
  243. package/assets/devices/Vacuum Cleaner.svg +0 -16
  244. package/assets/devices/Ventilation.svg +0 -12
  245. package/assets/devices/Washing Machines.svg +0 -16
  246. package/assets/devices/Water Consumption.svg +0 -6
  247. package/assets/devices/Water Heater.svg +0 -8
  248. package/assets/devices/Water.svg +0 -40
  249. package/assets/devices/Weather.svg +0 -28
  250. package/assets/devices/Window.svg +0 -8
  251. package/assets/rooms/Anteroom.svg +0 -53
  252. package/assets/rooms/Attic.svg +0 -21
  253. package/assets/rooms/Balcony.svg +0 -13
  254. package/assets/rooms/Barn.svg +0 -6
  255. package/assets/rooms/Basement.svg +0 -5
  256. package/assets/rooms/Bathroom.svg +0 -38
  257. package/assets/rooms/Bedroom.svg +0 -5
  258. package/assets/rooms/Boiler Room.svg +0 -13
  259. package/assets/rooms/Carport.svg +0 -17
  260. package/assets/rooms/Cellar.svg +0 -89
  261. package/assets/rooms/Chamber.svg +0 -9
  262. package/assets/rooms/Corridor.svg +0 -53
  263. package/assets/rooms/Dining Area.svg +0 -37
  264. package/assets/rooms/Dining Room.svg +0 -37
  265. package/assets/rooms/Dining.svg +0 -37
  266. package/assets/rooms/Dressing Room.svg +0 -5
  267. package/assets/rooms/Driveway.svg +0 -15
  268. package/assets/rooms/Entrance.svg +0 -44
  269. package/assets/rooms/Equipment Room.svg +0 -15
  270. package/assets/rooms/Front Yard.svg +0 -64
  271. package/assets/rooms/Gallery.svg +0 -14
  272. package/assets/rooms/Garage.svg +0 -20
  273. package/assets/rooms/Garden.svg +0 -13
  274. package/assets/rooms/Ground Floor.svg +0 -95
  275. package/assets/rooms/Guest Bathroom.svg +0 -33
  276. package/assets/rooms/Guest Room.svg +0 -5
  277. package/assets/rooms/Gym.svg +0 -5
  278. package/assets/rooms/Hall.svg +0 -19
  279. package/assets/rooms/Home Theater.svg +0 -8
  280. package/assets/rooms/Kitchen.svg +0 -18
  281. package/assets/rooms/Laundry Room.svg +0 -12
  282. package/assets/rooms/Living Area.svg +0 -11
  283. package/assets/rooms/Living Room.svg +0 -10
  284. package/assets/rooms/Locker Room.svg +0 -17
  285. package/assets/rooms/Nursery.svg +0 -5
  286. package/assets/rooms/Office.svg +0 -8
  287. package/assets/rooms/Outdoors.svg +0 -7
  288. package/assets/rooms/Playroom.svg +0 -6
  289. package/assets/rooms/Pool.svg +0 -8
  290. package/assets/rooms/Rear Wall.svg +0 -30
  291. package/assets/rooms/Second Floor.svg +0 -95
  292. package/assets/rooms/Shed.svg +0 -16
  293. package/assets/rooms/Sleeping Area.svg +0 -22
  294. package/assets/rooms/Stairway.svg +0 -5
  295. package/assets/rooms/Stairwell.svg +0 -15
  296. package/assets/rooms/Storeroom.svg +0 -5
  297. package/assets/rooms/Summer House.svg +0 -27
  298. package/assets/rooms/Swimming Pool.svg +0 -21
  299. package/assets/rooms/Terrace.svg +0 -7
  300. package/assets/rooms/Toilet.svg +0 -10
  301. package/assets/rooms/Upstairs.svg +0 -6
  302. package/assets/rooms/Wardrobe.svg +0 -60
  303. package/assets/rooms/Washroom.svg +0 -20
  304. package/assets/rooms/Wc.svg +0 -10
  305. package/assets/rooms/Windscreen.svg +0 -60
  306. package/assets/rooms/Workshop.svg +0 -23
  307. package/assets/rooms/Workspace.svg +0 -8
@@ -1,3 +1,4 @@
1
- import React from 'react';
2
- declare function Page404(): React.JSX.Element;
1
+ import { type JSX } from 'react';
2
+ /** Generates the 404 error page */
3
+ declare function Page404(): JSX.Element;
3
4
  export default Page404;
package/Components/404.js CHANGED
@@ -86,8 +86,9 @@ const styles = {
86
86
  color: 'white',
87
87
  },
88
88
  };
89
+ /** Generates the 404 error page */
89
90
  function Page404() {
90
- return react_1.default.createElement("div", { style: styles.content },
91
+ return (react_1.default.createElement("div", { style: styles.content },
91
92
  react_1.default.createElement("div", { style: styles.root },
92
93
  react_1.default.createElement(material_1.Box, { component: "div", sx: styles.overlay },
93
94
  react_1.default.createElement("div", { style: styles.terminal },
@@ -95,6 +96,6 @@ function Page404() {
95
96
  i18n_1.default.t('ra_Error'),
96
97
  react_1.default.createElement("span", { style: styles.errorCode }, "404")),
97
98
  react_1.default.createElement(material_1.Box, { component: "p", sx: styles.output }, i18n_1.default.t('ra_The page you are looking for was not found')),
98
- react_1.default.createElement(material_1.Box, { component: "p", sx: styles.output }, i18n_1.default.t('ra_Good luck'))))));
99
+ react_1.default.createElement(material_1.Box, { component: "p", sx: styles.output }, i18n_1.default.t('ra_Good luck')))))));
99
100
  }
100
101
  exports.default = Page404;
@@ -13,9 +13,9 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import React, { Component } from 'react';
16
+ import React, { Component, type CSSProperties } from 'react';
17
17
  import { type RGBColor } from 'react-color';
18
- import { IobTheme } from '../types';
18
+ import type { IobTheme } from '../types';
19
19
  interface ColorPickerProps {
20
20
  /** Set to true to disable the color picker. */
21
21
  disabled?: boolean;
@@ -30,7 +30,7 @@ interface ColorPickerProps {
30
30
  /** @deprecated TLabel of the color picker use label */
31
31
  name?: string;
32
32
  /** Additional styling for this component. */
33
- style?: React.CSSProperties;
33
+ style?: CSSProperties;
34
34
  /** The CSS class name. */
35
35
  className?: string;
36
36
  customPalette?: string[];
@@ -44,29 +44,43 @@ interface ColorPickerState {
44
44
  color: string | RGBColor;
45
45
  anchorEl: HTMLDivElement | null;
46
46
  }
47
+ /**
48
+ * A color picker component.
49
+ */
47
50
  declare class ColorPicker extends Component<ColorPickerProps, ColorPickerState> {
51
+ /**
52
+ * Constructor for the color picker.
53
+ *
54
+ * @param props The properties.
55
+ */
48
56
  constructor(props: ColorPickerProps);
49
57
  private handleClick;
50
58
  private handleClose;
51
59
  /**
52
60
  * Convert the given color to hex ('#rrggbb') or rgba ('rgba(r,g,b,a)') format.
61
+ *
62
+ * @param color The color to convert.
63
+ * @param isHex If true, the color will be converted to hex format.
53
64
  * @returns the hex or rgba representation of the given color.
54
65
  */
55
66
  static getColor(color: string | {
56
67
  rgb: RGBColor;
57
- } | RGBColor,
58
- /** The returning string should be in hex format */
59
- isHex?: boolean): string;
68
+ } | RGBColor, isHex?: boolean): string;
60
69
  /**
61
70
  * Convert rgb() or rgba() format to hex format #rrggbb.
71
+ *
72
+ * @param rgb The color in rgb() or rgba() format. if not in this format, the color will be returned as is.
62
73
  */
63
74
  static rgb2hex(rgb: string): string;
64
75
  private handleChange;
65
76
  /**
66
- * IF the props are updated from outside, they should override the state
77
+ * If the props are updated from outside, they should override the state
78
+ *
79
+ * @param _prevProps The previous properties.
80
+ * @param prevState The previous state.
67
81
  */
68
82
  componentDidUpdate(_prevProps: ColorPickerProps, prevState: ColorPickerState): void;
69
- renderCustomPalette(): React.JSX.Element;
83
+ renderCustomPalette(): React.JSX.Element | null;
70
84
  render(): React.JSX.Element;
71
85
  }
72
86
  export default ColorPicker;
@@ -111,7 +111,15 @@ const styles = {
111
111
  minHeight: 32,
112
112
  },
113
113
  };
114
+ /**
115
+ * A color picker component.
116
+ */
114
117
  class ColorPicker extends react_1.Component {
118
+ /**
119
+ * Constructor for the color picker.
120
+ *
121
+ * @param props The properties.
122
+ */
115
123
  constructor(props) {
116
124
  super(props);
117
125
  this.handleClick = (e) => {
@@ -134,11 +142,12 @@ class ColorPicker extends react_1.Component {
134
142
  }
135
143
  /**
136
144
  * Convert the given color to hex ('#rrggbb') or rgba ('rgba(r,g,b,a)') format.
145
+ *
146
+ * @param color The color to convert.
147
+ * @param isHex If true, the color will be converted to hex format.
137
148
  * @returns the hex or rgba representation of the given color.
138
149
  */
139
- static getColor(color,
140
- /** The returning string should be in hex format */
141
- isHex) {
150
+ static getColor(color, isHex) {
142
151
  if (color && typeof color === 'object') {
143
152
  const oColor = color;
144
153
  if (oColor.rgb) {
@@ -153,10 +162,15 @@ class ColorPicker extends react_1.Component {
153
162
  }
154
163
  return `rgba(${rColor.r},${rColor.g},${rColor.b},${rColor.a})`;
155
164
  }
156
- return isHex ? ColorPicker.rgb2hex(color || '') : color || '';
165
+ if (typeof color === 'string') {
166
+ return isHex ? ColorPicker.rgb2hex(color || '') : color || '';
167
+ }
168
+ return '';
157
169
  }
158
170
  /**
159
171
  * Convert rgb() or rgba() format to hex format #rrggbb.
172
+ *
173
+ * @param rgb The color in rgb() or rgba() format. if not in this format, the color will be returned as is.
160
174
  */
161
175
  static rgb2hex(rgb) {
162
176
  const m = rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);
@@ -169,7 +183,10 @@ class ColorPicker extends react_1.Component {
169
183
  return rgb;
170
184
  }
171
185
  /**
172
- * IF the props are updated from outside, they should override the state
186
+ * If the props are updated from outside, they should override the state
187
+ *
188
+ * @param _prevProps The previous properties.
189
+ * @param prevState The previous state.
173
190
  */
174
191
  componentDidUpdate(_prevProps, prevState) {
175
192
  const color = ColorPicker.getColor(this.props.color || this.props.value || '');
@@ -181,28 +198,28 @@ class ColorPicker extends react_1.Component {
181
198
  if (!this.props.customPalette) {
182
199
  return null;
183
200
  }
184
- return react_1.default.createElement("div", { style: { width: '100%', display: 'flex', flexWrap: 'wrap' } }, this.props.customPalette.map(color => react_1.default.createElement(material_1.Button, { style: styles.button, key: color, onClick: () => {
201
+ return (react_1.default.createElement("div", { style: { width: '100%', display: 'flex', flexWrap: 'wrap' } }, this.props.customPalette.map(color => (react_1.default.createElement(material_1.Button, { style: styles.button, key: color, onClick: () => {
185
202
  this.handleChange(color);
186
203
  setTimeout(() => this.handleClose(), 300);
187
204
  } },
188
- react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.iconButton), { background: color }) }))));
205
+ react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.iconButton), { background: color }) }))))));
189
206
  }
190
207
  render() {
191
208
  var _a;
192
209
  const style = Object.assign({}, (this.props.style || {}));
193
210
  style.position = 'relative';
194
211
  const { color } = this.state;
195
- return react_1.default.createElement(material_1.Box, { component: "div", style: style, sx: this.props.sx || undefined, className: this.props.className || '' },
196
- this.props.noInputField ? null : react_1.default.createElement(material_1.TextField, { disabled: this.props.disabled, variant: "standard", id: "ar_color_picker_name", label: this.props.label || this.props.name, value: color || '', margin: "dense", sx: {
212
+ return (react_1.default.createElement(material_1.Box, { component: "div", style: style, sx: this.props.sx || undefined, className: this.props.className || '' },
213
+ this.props.noInputField ? null : (react_1.default.createElement(material_1.TextField, { disabled: this.props.disabled, variant: "standard", id: "ar_color_picker_name", label: this.props.label || this.props.name, value: color || '', margin: "dense", sx: {
197
214
  '&.MuiFormControl-root': styles.textDense,
198
215
  width: color ? 'calc(100% - 80px)' : 'calc(100% - 56px)',
199
216
  mr: color ? undefined : 1,
200
- }, onChange: e => this.handleChange(e.target.value) }),
201
- !this.props.noInputField && color ? react_1.default.createElement(material_1.IconButton, { disabled: this.props.disabled, onClick: () => this.handleChange(''), size: "small", style: Object.assign(Object.assign({}, (this.props.label || this.props.name ? styles.delButton : undefined)), (color ? undefined : { opacity: 0, cursor: 'default' })) },
202
- react_1.default.createElement(icons_material_1.Delete, null)) : null,
217
+ }, onChange: e => this.handleChange(e.target.value) })),
218
+ !this.props.noInputField && color ? (react_1.default.createElement(material_1.IconButton, { disabled: this.props.disabled, onClick: () => this.handleChange(''), size: "small", style: Object.assign(Object.assign({}, (this.props.label || this.props.name ? styles.delButton : undefined)), (color ? undefined : { opacity: 0, cursor: 'default' })) },
219
+ react_1.default.createElement(icons_material_1.Delete, null))) : null,
203
220
  react_1.default.createElement(material_1.Box, { component: "div", onClick: e => !this.props.disabled && this.handleClick(e), title: i18n_1.default.t('ra_Select color'), sx: Object.assign(Object.assign(Object.assign({}, styles.swatch), (this.props.disabled ? styles.swatchDisabled : undefined)), { background: color ? undefined : 'transparent', border: color ? undefined : '1px dashed #ccc', boxSizing: 'border-box', marginTop: this.props.noInputField || !(this.props.label || this.props.name) ? 0 : undefined }) },
204
- react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.color), { background: ColorPicker.getColor(color), width: this.props.noInputField ? (this.props.barWidth || 16) : this.props.barWidth || 36 }) })),
205
- this.state.displayColorPicker && !this.props.disabled ? react_1.default.createElement(material_1.Menu, { sx: Object.assign(Object.assign({}, styles.popover), { '&. MuiMenu-list': styles.popoverList }), anchorEl: this.state.anchorEl, open: !0, onClose: () => this.handleClose() },
221
+ react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.color), { background: ColorPicker.getColor(color), width: this.props.noInputField ? this.props.barWidth || 16 : this.props.barWidth || 36 }) })),
222
+ this.state.displayColorPicker && !this.props.disabled ? (react_1.default.createElement(material_1.Menu, { sx: Object.assign(Object.assign({}, styles.popover), { '&. MuiMenu-list': styles.popoverList }), anchorEl: this.state.anchorEl, open: !0, onClose: () => this.handleClose() },
206
223
  react_1.default.createElement(react_color_1.ChromePicker, { color: this.state.color || undefined, onChangeComplete: (_color) => this.handleChange(_color.rgb), styles: {
207
224
  default: {
208
225
  picker: {
@@ -210,11 +227,11 @@ class ColorPicker extends react_1.Component {
210
227
  },
211
228
  },
212
229
  } }),
213
- color && this.props.noInputField ? react_1.default.createElement(material_1.IconButton, { sx: styles.closeButton, onClick: () => this.handleChange('') },
214
- react_1.default.createElement(icons_material_1.Delete, null)) : null,
230
+ color && this.props.noInputField ? (react_1.default.createElement(material_1.IconButton, { sx: styles.closeButton, onClick: () => this.handleChange('') },
231
+ react_1.default.createElement(icons_material_1.Delete, null))) : null,
215
232
  react_1.default.createElement(material_1.IconButton, { sx: styles.closeButton, onClick: () => this.handleClose() },
216
233
  react_1.default.createElement(icons_material_1.Close, null)),
217
- this.renderCustomPalette()) : null);
234
+ this.renderCustomPalette())) : null));
218
235
  }
219
236
  }
220
237
  exports.default = ColorPicker;
@@ -62,16 +62,7 @@ const styles = {
62
62
  color: 'white',
63
63
  },
64
64
  };
65
- const WEEKDAYS = [
66
- 'Sunday',
67
- 'Monday',
68
- 'Tuesday',
69
- 'Wednesday',
70
- 'Thursday',
71
- 'Friday',
72
- 'Saturday',
73
- 'Sunday',
74
- ];
65
+ const WEEKDAYS = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
75
66
  const MONTHS = [
76
67
  'January',
77
68
  'February',
@@ -172,8 +163,9 @@ function convertArrayIntoMinus(value, max) {
172
163
  class ComplexCron extends react_1.Component {
173
164
  constructor(props) {
174
165
  super(props);
175
- let cron = typeof this.props.cronExpression === 'string' ?
176
- this.props.cronExpression.replace(/^["']/, '').replace(/["']\n?$/, '') : '';
166
+ let cron = typeof this.props.cronExpression === 'string'
167
+ ? this.props.cronExpression.replace(/^["']/, '').replace(/["']\n?$/, '')
168
+ : '';
177
169
  if (cron[0] === '{') {
178
170
  cron = '';
179
171
  }
@@ -283,12 +275,13 @@ class ComplexCron extends react_1.Component {
283
275
  react_1.default.createElement(material_1.Button, { key: "addall", variant: "contained",
284
276
  // style={{paddingBottom: 20}}
285
277
  style: styles.numberButton, color: "secondary", onClick: () => this.onToggle(true, type, max) }, i18n_1.default.t('ra_Select all')),
286
- react_1.default.createElement("div", { key: "all" }, values.map(i => [((max === 7 && i === 4) ||
278
+ react_1.default.createElement("div", { key: "all" }, values.map(i => [
279
+ (max === 7 && i === 4) ||
287
280
  (max === 12 && i === 7) ||
288
281
  (max === 31 && !((i - 1) % 10)) ||
289
282
  (max === 60 && i && !(i % 10)) ||
290
- (max === 24 && i && !(i % 6))) ?
291
- react_1.default.createElement("div", { key: `allInner${i}`, style: { width: '100%' } }) : null, react_1.default.createElement(material_1.Button, { key: `_${i}`, variant: parts.indexOf(i) !== -1 ? 'contained' : 'outlined', style: styles.numberButton, color: parts.indexOf(i) !== -1 ? 'secondary' : 'primary', onClick: () => this.onToggle(i, type, max) }, max === 7 ? i18n_1.default.t(WEEKDAYS[i]) : (max === 12 ? MONTHS[i - 1] : i)),
283
+ (max === 24 && i && !(i % 6)) ? (react_1.default.createElement("div", { key: `allInner${i}`, style: { width: '100%' } })) : null,
284
+ react_1.default.createElement(material_1.Button, { key: `_${i}`, variant: parts.indexOf(i) !== -1 ? 'contained' : 'outlined', style: styles.numberButton, color: parts.indexOf(i) !== -1 ? 'secondary' : 'primary', onClick: () => this.onToggle(i, type, max) }, max === 7 ? i18n_1.default.t(WEEKDAYS[i]) : max === 12 ? MONTHS[i - 1] : i),
292
285
  ])),
293
286
  ];
294
287
  }
@@ -298,7 +291,7 @@ class ComplexCron extends react_1.Component {
298
291
  let everyN = value === undefined || value === null ? false : value.toString().includes('/');
299
292
  let select;
300
293
  if (this.state.modes[type] === null) {
301
- select = every ? 'every' : (everyN ? 'everyN' : 'specific');
294
+ select = every ? 'every' : everyN ? 'everyN' : 'specific';
302
295
  const modes = JSON.parse(JSON.stringify(this.state.modes));
303
296
  modes[type] = select;
304
297
  setTimeout(() => this.setState({ modes }, () => this.recalcCron()), 100);
@@ -311,7 +304,7 @@ class ComplexCron extends react_1.Component {
311
304
  if (everyN && value) {
312
305
  valueNumber = parseInt(value.replace('*/', ''), 10) || 1;
313
306
  }
314
- return react_1.default.createElement("div", null,
307
+ return (react_1.default.createElement("div", null,
315
308
  react_1.default.createElement(material_1.Select, { variant: "standard", style: Object.assign(Object.assign({}, styles.periodSelect), { verticalAlign: 'bottom' }), value: select, onChange: e => {
316
309
  const modes = JSON.parse(JSON.stringify(this.state.modes));
317
310
  modes[type] = e.target.value;
@@ -333,12 +326,19 @@ class ComplexCron extends react_1.Component {
333
326
  react_1.default.createElement(material_1.MenuItem, { key: "every", value: "every" }, i18n_1.default.t(`sc_every_${type}`)),
334
327
  react_1.default.createElement(material_1.MenuItem, { key: "everyN", value: "everyN" }, i18n_1.default.t(`sc_everyN_${type}`)),
335
328
  react_1.default.createElement(material_1.MenuItem, { key: "specific", value: "specific" }, i18n_1.default.t(`sc_specific_${type}`))),
336
- everyN && false && react_1.default.createElement("span", null, value),
337
- everyN && react_1.default.createElement(material_1.TextField, { variant: "standard", key: "interval", label: i18n_1.default.t(`sc_${type}`), value: valueNumber, inputProps: { min: 1, max }, onChange: e => {
329
+ everyN && (react_1.default.createElement(material_1.TextField, { variant: "standard", key: "interval", label: i18n_1.default.t(`sc_${type}`), value: valueNumber, slotProps: {
330
+ htmlInput: {
331
+ min: 1,
332
+ max,
333
+ },
334
+ inputLabel: {
335
+ shrink: true,
336
+ },
337
+ }, onChange: e => {
338
338
  // @ts-expect-error is allowed
339
339
  this.setState({ [type]: `*/${e.target.value}` }, () => this.recalcCron());
340
- }, InputLabelProps: { shrink: true }, type: "number", margin: "normal" }),
341
- !every && !everyN && this.getDigitsSelector(type, max));
340
+ }, type: "number", margin: "normal" })),
341
+ !every && !everyN && this.getDigitsSelector(type, max)));
342
342
  }
343
343
  static convertCronToText(cron, lang) {
344
344
  if (cron.split(' ').includes('-')) {
@@ -391,14 +391,14 @@ class ComplexCron extends react_1.Component {
391
391
  }
392
392
  render() {
393
393
  const tab = this.state.seconds !== false ? this.state.tab : this.state.tab + 1;
394
- return react_1.default.createElement("div", { style: styles.mainDiv },
394
+ return (react_1.default.createElement("div", { style: styles.mainDiv },
395
395
  react_1.default.createElement("div", { style: { paddingLeft: 8, width: '100%' } },
396
396
  react_1.default.createElement(material_1.TextField, { variant: "standard", style: { width: '100%' }, value: this.state.cron, disabled: true })),
397
397
  react_1.default.createElement("div", { style: { paddingLeft: 8, width: '100%', height: 60 } }, ComplexCron.convertCronToText(this.state.cron, this.props.language || 'en')),
398
398
  react_1.default.createElement(material_1.FormControlLabel, { control: react_1.default.createElement(material_1.Checkbox, { checked: !!this.state.seconds, onChange: e => this.setState({ seconds: e.target.checked ? '*' : false }, () => this.recalcCron()) }), label: i18n_1.default.t('ra_use seconds') }),
399
399
  react_1.default.createElement(material_1.AppBar, { position: "static", sx: { '&.MuiAppBar-root': styles.appBar }, color: "secondary" },
400
400
  react_1.default.createElement(material_1.Tabs, { value: this.state.tab, style: styles.appBar, color: "secondary", onChange: (active, _tab) => this.setState({ tab: _tab }) },
401
- this.state.seconds !== false && react_1.default.createElement(material_1.Tab, { id: "sc_seconds", label: i18n_1.default.t('sc_seconds') }),
401
+ this.state.seconds !== false && (react_1.default.createElement(material_1.Tab, { id: "sc_seconds", label: i18n_1.default.t('sc_seconds') })),
402
402
  react_1.default.createElement(material_1.Tab, { id: "minutes", label: i18n_1.default.t('sc_minutes') }),
403
403
  react_1.default.createElement(material_1.Tab, { id: "hours", label: i18n_1.default.t('sc_hours') }),
404
404
  react_1.default.createElement(material_1.Tab, { id: "dates", label: i18n_1.default.t('sc_dates') }),
@@ -409,7 +409,7 @@ class ComplexCron extends react_1.Component {
409
409
  tab === 2 && react_1.default.createElement("div", { style: styles.tabContent }, this.getPeriodsTab('hours', 24)),
410
410
  tab === 3 && react_1.default.createElement("div", { style: styles.tabContent }, this.getPeriodsTab('dates', 31)),
411
411
  tab === 4 && react_1.default.createElement("div", { style: styles.tabContent }, this.getPeriodsTab('months', 12)),
412
- tab === 5 && react_1.default.createElement("div", { style: styles.tabContent }, this.getPeriodsTab('dow', 7)));
412
+ tab === 5 && react_1.default.createElement("div", { style: styles.tabContent }, this.getPeriodsTab('dow', 7))));
413
413
  }
414
414
  }
415
415
  exports.default = ComplexCron;
@@ -1,6 +1,15 @@
1
+ /**
2
+ * Copy text to clipboard
3
+ *
4
+ * @param text Text to copy
5
+ * @param options Options
6
+ * @param options.debug Debug mode
7
+ * @param options.format Format of the data
8
+ * @param options.message Message to show in prompt
9
+ */
1
10
  declare function copy(text: string, options?: {
2
11
  debug?: boolean;
3
- format?: string;
12
+ format?: 'text/plain' | 'text/html';
4
13
  message?: string;
5
14
  }): boolean;
6
15
  export default copy;
@@ -34,7 +34,8 @@ function deselectCurrent() {
34
34
  for (let i = 0; i < selection.rangeCount; i++) {
35
35
  ranges.push(selection.getRangeAt(i));
36
36
  }
37
- switch (active === null || active === void 0 ? void 0 : active.tagName.toUpperCase()) { // .toUpperCase handles XHTML
37
+ switch (active === null || active === void 0 ? void 0 : active.tagName.toUpperCase() // .toUpperCase handles XHTML
38
+ ) {
38
39
  case 'INPUT':
39
40
  case 'TEXTAREA':
40
41
  active.blur();
@@ -45,8 +46,7 @@ function deselectCurrent() {
45
46
  }
46
47
  selection.removeAllRanges();
47
48
  return () => {
48
- selection.type === 'Caret' &&
49
- selection.removeAllRanges();
49
+ selection.type === 'Caret' && selection.removeAllRanges();
50
50
  if (!selection.rangeCount) {
51
51
  ranges.forEach(range => selection.addRange(range));
52
52
  }
@@ -64,6 +64,15 @@ function format(message) {
64
64
  const copyKey = `${/mac os x/i.test(navigator.userAgent) ? '⌘' : 'Ctrl'}+C`;
65
65
  return message.replace(/#{\s*key\s*}/g, copyKey);
66
66
  }
67
+ /**
68
+ * Copy text to clipboard
69
+ *
70
+ * @param text Text to copy
71
+ * @param options Options
72
+ * @param options.debug Debug mode
73
+ * @param options.format Format of the data
74
+ * @param options.message Message to show in prompt
75
+ */
67
76
  function copy(text, options) {
68
77
  let reselectPrevious;
69
78
  let range;
@@ -89,23 +98,22 @@ function copy(text, options) {
89
98
  // used to preserve spaces and line breaks
90
99
  mark.style.whiteSpace = 'pre';
91
100
  // do not inherit user-select (it may be `none`)
92
- mark.style.webkitUserSelect = 'text';
93
- mark.style.MozUserSelect = 'text';
94
- mark.style.msUserSelect = 'text';
95
101
  mark.style.userSelect = 'text';
96
102
  mark.addEventListener('copy', e => {
97
103
  var _a, _b, _c, _d;
98
104
  e.stopPropagation();
99
105
  if (options === null || options === void 0 ? void 0 : options.format) {
100
106
  e.preventDefault();
101
- if (typeof e.clipboardData === 'undefined') { // IE 11
107
+ if (typeof e.clipboardData === 'undefined') {
108
+ // IE 11
102
109
  debug && console.warn('unable to use e.clipboardData');
103
110
  debug && console.warn('trying IE specific stuff');
104
111
  (_a = window.clipboardData) === null || _a === void 0 ? void 0 : _a.clearData();
105
112
  const _format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting.default;
106
113
  (_b = window.clipboardData) === null || _b === void 0 ? void 0 : _b.setData(_format, text);
107
114
  }
108
- else { // all other browsers
115
+ else {
116
+ // all other browsers
109
117
  (_c = e.clipboardData) === null || _c === void 0 ? void 0 : _c.clearData();
110
118
  (_d = e.clipboardData) === null || _d === void 0 ? void 0 : _d.setData(options.format, text);
111
119
  }
@@ -114,6 +122,7 @@ function copy(text, options) {
114
122
  document.body.appendChild(mark);
115
123
  range.selectNodeContents(mark);
116
124
  selection === null || selection === void 0 ? void 0 : selection.addRange(range);
125
+ // there is no alternative for execCommand
117
126
  const successful = document.execCommand('copy');
118
127
  if (!successful) {
119
128
  throw new Error('copy command was unsuccessful');
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { IobTheme } from '../types';
2
+ import { type IobTheme } from '../types';
3
3
  interface CustomModalProps {
4
4
  icon?: any;
5
5
  open: boolean;
@@ -65,24 +65,24 @@ const CustomModal = (props) => {
65
65
  if (icon) {
66
66
  Icon = icon;
67
67
  }
68
- return react_1.default.createElement(material_1.Dialog, { open: open, maxWidth: maxWidth || 'md', fullWidth: !!fullWidth, disableEscapeKeyDown: false, onClose: onClose, sx: { '& .MuiDialog-paper': styles.modalDialog } },
69
- title && react_1.default.createElement(material_1.DialogTitle, null,
68
+ return (react_1.default.createElement(material_1.Dialog, { open: open, maxWidth: maxWidth || 'md', fullWidth: !!fullWidth, disableEscapeKeyDown: false, onClose: onClose, sx: { '& .MuiDialog-paper': styles.modalDialog } },
69
+ title && (react_1.default.createElement(material_1.DialogTitle, null,
70
70
  icon ? react_1.default.createElement(Icon, { style: styles.titleIcon }) : null,
71
71
  title,
72
- i18n_1.default.getLanguage() !== 'en' && toggleTranslation ? react_1.default.createElement(material_1.IconButton, { size: "large", sx: Utils_1.default.getStyle(props.theme, styles.languageButton, noTranslation && styles.languageButtonActive), onClick: () => toggleTranslation(), title: i18n_1.default.t('Disable/Enable translation') },
73
- react_1.default.createElement(icons_material_1.Language, null)) : null),
72
+ i18n_1.default.getLanguage() !== 'en' && toggleTranslation ? (react_1.default.createElement(material_1.IconButton, { size: "large", sx: Utils_1.default.getStyle(props.theme, styles.languageButton, noTranslation && styles.languageButtonActive), onClick: () => toggleTranslation(), title: i18n_1.default.t('Disable/Enable translation') },
73
+ react_1.default.createElement(icons_material_1.Language, null))) : null)),
74
74
  react_1.default.createElement(material_1.DialogContent, { style: Object.assign(Object.assign(Object.assign({}, styles.content), (overflowHidden ? styles.overflowHidden : undefined)), { paddingTop: 8 }) },
75
- textInput && react_1.default.createElement(material_1.TextField
75
+ textInput && (react_1.default.createElement(material_1.TextField
76
76
  // className={className}
77
77
  , {
78
78
  // className={className}
79
79
  autoComplete: "off", fullWidth: true, autoFocus: true, variant: "outlined", size: "medium",
80
80
  // rows={10}
81
- multiline: true, value: value, onChange: e => setValue(e.target.value) }),
81
+ multiline: true, value: value, onChange: e => setValue(e.target.value) })),
82
82
  children,
83
83
  help ? react_1.default.createElement("div", null, help) : null),
84
84
  react_1.default.createElement(material_1.DialogActions, null,
85
- applyButton !== false && react_1.default.createElement(material_1.Button, { startIcon: react_1.default.createElement(icons_material_1.Check, null), disabled: progress || (applyDisabled && defaultValue === value), onClick: () => onApply(textInput ? value : ''), variant: "contained", color: "primary" }, i18n_1.default.t(titleButtonApply || 'ra_Ok')),
86
- react_1.default.createElement(material_1.Button, { color: "grey", onClick: onClose, disabled: progress, variant: "contained", startIcon: react_1.default.createElement(icons_material_1.Close, null) }, i18n_1.default.t(titleButtonClose || 'ra_Cancel'))));
85
+ applyButton !== false && (react_1.default.createElement(material_1.Button, { startIcon: react_1.default.createElement(icons_material_1.Check, null), disabled: progress || (applyDisabled && defaultValue === value), onClick: () => onApply(textInput ? value : ''), variant: "contained", color: "primary" }, i18n_1.default.t(titleButtonApply || 'ra_Ok'))),
86
+ react_1.default.createElement(material_1.Button, { color: "grey", onClick: onClose, disabled: progress, variant: "contained", startIcon: react_1.default.createElement(icons_material_1.Close, null) }, i18n_1.default.t(titleButtonClose || 'ra_Cancel')))));
87
87
  };
88
88
  exports.default = CustomModal;
@@ -3,10 +3,10 @@
3
3
  *
4
4
  * MIT License
5
5
  *
6
- * */
6
+ */
7
7
  import React, { Component } from 'react';
8
8
  import type { Connection } from '@iobroker/socket-client';
9
- import { ThemeName, ThemeType, Translate, IobTheme } from '../types';
9
+ import type { ThemeName, ThemeType, Translate, IobTheme } from '../types';
10
10
  export interface MetaACL extends ioBroker.ObjectACL {
11
11
  file: number;
12
12
  }
@@ -147,7 +147,7 @@ export declare class FileBrowserClass extends Component<FileBrowserProps, FileBr
147
147
  browseFolder(folderId: string, _newFolders?: Folders | null, _checkEmpty?: boolean, force?: boolean): Promise<Folders>;
148
148
  toggleFolder(item: FolderOrFileItem, e: React.MouseEvent<Element>): void;
149
149
  onFileChange: (id: string, fileName: string, size: number | null) => void;
150
- changeFolder(e: React.MouseEvent<HTMLDivElement>, folder?: string): void | Promise<void>;
150
+ changeFolder(e: React.MouseEvent<HTMLDivElement>, folder?: string): void;
151
151
  select(id: string, e?: React.MouseEvent<HTMLDivElement> | null, cb?: () => void): void;
152
152
  getText(text?: ioBroker.StringOrTranslated | null): string | undefined;
153
153
  renderFolder(item: FolderOrFileItem, expanded?: boolean): React.JSX.Element | null;
@@ -157,21 +157,21 @@ export declare class FileBrowserClass extends Component<FileBrowserProps, FileBr
157
157
  getFileIcon(ext: string | null): React.JSX.Element;
158
158
  static getEditFile(ext: string | null): boolean;
159
159
  setStateBackgroundImage: () => void;
160
- getStyleBackgroundImage: () => any;
160
+ getStyleBackgroundImage: () => React.CSSProperties | null;
161
161
  renderFile(item: FolderOrFileItem): React.JSX.Element;
162
162
  renderItems(folderId: string): React.JSX.Element | (React.JSX.Element | null)[];
163
163
  renderToolbar(): React.JSX.Element;
164
- findItem(id: string, folders?: Folders | null): FolderOrFileItem;
165
- renderInputDialog(): React.JSX.Element;
164
+ findItem(id: string, folders?: Folders | null): null | FolderOrFileItem;
165
+ renderInputDialog(): React.JSX.Element | null;
166
166
  componentDidUpdate(): void;
167
- findFirstFolder(id: string): string;
167
+ findFirstFolder(id: string): string | null;
168
168
  uploadFile(fileName: string, data: string): Promise<void>;
169
- renderUpload(): React.JSX.Element[];
169
+ renderUpload(): React.JSX.Element[] | null;
170
170
  deleteRecursive(id: string): Promise<void>;
171
171
  deleteItem(deleteItem: string): void;
172
- renderDeleteDialog(): false | React.JSX.Element;
173
- renderViewDialog(): React.JSX.Element;
174
- renderError(): React.JSX.Element;
172
+ renderDeleteDialog(): React.JSX.Element | null;
173
+ renderViewDialog(): React.JSX.Element | null;
174
+ renderError(): React.JSX.Element | null;
175
175
  updateItemsAcl(info: FolderOrFileItem[]): void;
176
176
  changeToPath(): void;
177
177
  renderBreadcrumb(): React.JSX.Element;