@iobroker/adapter-react-v5 6.1.10 → 7.0.1

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 (207) hide show
  1. package/Components/404.js +13 -13
  2. package/Components/Loader.js +223 -223
  3. package/Components/Loaders/PT.css +108 -108
  4. package/Components/Loaders/PT.js +103 -103
  5. package/Components/Loaders/Vendor.css +13 -13
  6. package/Components/Loaders/Vendor.js +7 -7
  7. package/Components/ObjectBrowser.js +29 -29
  8. package/Components/UploadImage.js +305 -305
  9. package/Components/loader.css +221 -221
  10. package/Components/types.d.ts +82 -82
  11. package/GenericApp.js +49 -49
  12. package/LICENSE +22 -22
  13. package/Prompt.js +7 -7
  14. package/README.md +1004 -1005
  15. package/Theme.js +8 -7
  16. package/assets/devices/Alarm Systems.svg +18 -18
  17. package/assets/devices/Amplifier.svg +21 -21
  18. package/assets/devices/Awnings.svg +4 -4
  19. package/assets/devices/Battery Status.svg +4 -4
  20. package/assets/devices/Ceiling Spotlights.svg +15 -15
  21. package/assets/devices/Chandelier.svg +6 -6
  22. package/assets/devices/Climate.svg +11 -11
  23. package/assets/devices/Coffee Makers.svg +5 -5
  24. package/assets/devices/Cold Water.svg +31 -31
  25. package/assets/devices/Computer.svg +21 -21
  26. package/assets/devices/Consumption.svg +7 -7
  27. package/assets/devices/Curtains.svg +43 -43
  28. package/assets/devices/Dishwashers.svg +11 -11
  29. package/assets/devices/Doors.svg +5 -5
  30. package/assets/devices/Doorstep.svg +35 -35
  31. package/assets/devices/Dryer.svg +13 -13
  32. package/assets/devices/Fan.svg +20 -20
  33. package/assets/devices/Floor Lamps.svg +4 -4
  34. package/assets/devices/Garage Doors.svg +9 -9
  35. package/assets/devices/Gates.svg +32 -32
  36. package/assets/devices/Hairdryer.svg +23 -23
  37. package/assets/devices/Handle.svg +6 -6
  38. package/assets/devices/Hanging Lamps.svg +8 -8
  39. package/assets/devices/Heater.svg +44 -44
  40. package/assets/devices/Hoods.svg +11 -11
  41. package/assets/devices/Hot Water.svg +9 -9
  42. package/assets/devices/Humidity.svg +41 -41
  43. package/assets/devices/Iron.svg +4 -4
  44. package/assets/devices/Irrigation.svg +22 -22
  45. package/assets/devices/Led Strip.svg +30 -30
  46. package/assets/devices/Light.svg +29 -29
  47. package/assets/devices/Lightings.svg +46 -46
  48. package/assets/devices/Lock.svg +19 -19
  49. package/assets/devices/Louvre.svg +6 -6
  50. package/assets/devices/Mowing Machine.svg +8 -8
  51. package/assets/devices/Music.svg +12 -12
  52. package/assets/devices/Outdoor Blinds.svg +6 -6
  53. package/assets/devices/People.svg +19 -19
  54. package/assets/devices/Pool.svg +7 -7
  55. package/assets/devices/Power Consumption.svg +12 -12
  56. package/assets/devices/Printer.svg +9 -9
  57. package/assets/devices/Pump.svg +9 -9
  58. package/assets/devices/Receiver.svg +18 -18
  59. package/assets/devices/Sconces.svg +9 -9
  60. package/assets/devices/Security.svg +34 -34
  61. package/assets/devices/Shading.svg +4 -4
  62. package/assets/devices/Shutters.svg +10 -10
  63. package/assets/devices/SmokeDetector.svg +12 -12
  64. package/assets/devices/Sockets.svg +13 -13
  65. package/assets/devices/Speaker.svg +35 -35
  66. package/assets/devices/Stove.svg +11 -11
  67. package/assets/devices/Table Lamps.svg +11 -11
  68. package/assets/devices/Temperature Sensors.svg +28 -28
  69. package/assets/devices/Tv.svg +7 -7
  70. package/assets/devices/Vacuum Cleaner.svg +15 -15
  71. package/assets/devices/Ventilation.svg +12 -12
  72. package/assets/devices/Washing Machines.svg +15 -15
  73. package/assets/devices/Water Consumption.svg +5 -5
  74. package/assets/devices/Water Heater.svg +8 -8
  75. package/assets/devices/Water.svg +40 -40
  76. package/assets/devices/Weather.svg +28 -28
  77. package/assets/devices/Window.svg +7 -7
  78. package/assets/lamp_ceiling.svg +8 -8
  79. package/assets/lamp_table.svg +7 -7
  80. package/assets/no_icon.svg +9 -9
  81. package/assets/rooms/Anteroom.svg +52 -52
  82. package/assets/rooms/Attic.svg +21 -21
  83. package/assets/rooms/Balcony.svg +12 -12
  84. package/assets/rooms/Barn.svg +5 -5
  85. package/assets/rooms/Basement.svg +4 -4
  86. package/assets/rooms/Bathroom.svg +38 -38
  87. package/assets/rooms/Bedroom.svg +5 -5
  88. package/assets/rooms/Boiler Room.svg +12 -12
  89. package/assets/rooms/Carport.svg +17 -17
  90. package/assets/rooms/Cellar.svg +89 -89
  91. package/assets/rooms/Chamber.svg +9 -9
  92. package/assets/rooms/Corridor.svg +52 -52
  93. package/assets/rooms/Dining Area.svg +37 -37
  94. package/assets/rooms/Dining Room.svg +37 -37
  95. package/assets/rooms/Dining.svg +37 -37
  96. package/assets/rooms/Dressing Room.svg +4 -4
  97. package/assets/rooms/Driveway.svg +14 -14
  98. package/assets/rooms/Entrance.svg +44 -44
  99. package/assets/rooms/Equipment Room.svg +14 -14
  100. package/assets/rooms/Front Yard.svg +64 -64
  101. package/assets/rooms/Gallery.svg +13 -13
  102. package/assets/rooms/Garage.svg +20 -20
  103. package/assets/rooms/Garden.svg +12 -12
  104. package/assets/rooms/Ground Floor.svg +95 -95
  105. package/assets/rooms/Guest Bathroom.svg +32 -32
  106. package/assets/rooms/Guest Room.svg +5 -5
  107. package/assets/rooms/Gym.svg +4 -4
  108. package/assets/rooms/Hall.svg +19 -19
  109. package/assets/rooms/Home Theater.svg +7 -7
  110. package/assets/rooms/Kitchen.svg +17 -17
  111. package/assets/rooms/Laundry Room.svg +11 -11
  112. package/assets/rooms/Living Area.svg +10 -10
  113. package/assets/rooms/Living Room.svg +10 -10
  114. package/assets/rooms/Locker Room.svg +16 -16
  115. package/assets/rooms/Nursery.svg +4 -4
  116. package/assets/rooms/Office.svg +8 -8
  117. package/assets/rooms/Outdoors.svg +7 -7
  118. package/assets/rooms/Playroom.svg +5 -5
  119. package/assets/rooms/Pool.svg +7 -7
  120. package/assets/rooms/Rear Wall.svg +30 -30
  121. package/assets/rooms/Second Floor.svg +95 -95
  122. package/assets/rooms/Shed.svg +16 -16
  123. package/assets/rooms/Sleeping Area.svg +22 -22
  124. package/assets/rooms/Stairway.svg +4 -4
  125. package/assets/rooms/Stairwell.svg +15 -15
  126. package/assets/rooms/Storeroom.svg +4 -4
  127. package/assets/rooms/Summer House.svg +27 -27
  128. package/assets/rooms/Swimming Pool.svg +21 -21
  129. package/assets/rooms/Terrace.svg +6 -6
  130. package/assets/rooms/Toilet.svg +10 -10
  131. package/assets/rooms/Upstairs.svg +5 -5
  132. package/assets/rooms/Wardrobe.svg +60 -60
  133. package/assets/rooms/Washroom.svg +19 -19
  134. package/assets/rooms/Wc.svg +10 -10
  135. package/assets/rooms/Windscreen.svg +60 -60
  136. package/assets/rooms/Workshop.svg +22 -22
  137. package/assets/rooms/Workspace.svg +8 -8
  138. package/craco-module-federation.js +71 -71
  139. package/icons/IconFx.js +1 -1
  140. package/icons/IconLogout.js +1 -1
  141. package/index.css +54 -54
  142. package/modulefederation.admin.config.js +31 -31
  143. package/package.json +4 -4
  144. package/src/AdminConnection.tsx +3 -3
  145. package/src/Components/404.tsx +121 -121
  146. package/src/Components/ColorPicker.tsx +315 -315
  147. package/src/Components/ComplexCron.tsx +507 -507
  148. package/src/Components/CopyToClipboard.tsx +165 -165
  149. package/src/Components/CustomModal.tsx +163 -163
  150. package/src/Components/FileBrowser.tsx +2414 -2414
  151. package/src/Components/FileViewer.tsx +393 -393
  152. package/src/Components/Icon.tsx +210 -210
  153. package/src/Components/IconPicker.tsx +149 -149
  154. package/src/Components/IconSelector.tsx +2202 -2202
  155. package/src/Components/Image.tsx +176 -176
  156. package/src/Components/Loader.tsx +304 -304
  157. package/src/Components/Logo.tsx +166 -166
  158. package/src/Components/MDUtils.tsx +100 -100
  159. package/src/Components/ObjectBrowser.tsx +8032 -8032
  160. package/src/Components/Router.tsx +90 -90
  161. package/src/Components/SaveCloseButtons.tsx +113 -113
  162. package/src/Components/Schedule.tsx +1724 -1724
  163. package/src/Components/SelectWithIcon.tsx +197 -197
  164. package/src/Components/TabContainer.tsx +55 -55
  165. package/src/Components/TabContent.tsx +37 -37
  166. package/src/Components/TabHeader.tsx +19 -19
  167. package/src/Components/TableResize.tsx +259 -259
  168. package/src/Components/TextWithIcon.tsx +148 -148
  169. package/src/Components/ToggleThemeMenu.tsx +34 -34
  170. package/src/Components/TreeTable.tsx +919 -919
  171. package/src/Components/UploadImage.tsx +599 -599
  172. package/src/Components/Utils.tsx +1794 -1794
  173. package/src/Components/loader.css +221 -221
  174. package/src/Components/withWidth.tsx +21 -21
  175. package/src/Connection.tsx +7 -7
  176. package/src/Dialogs/ComplexCron.tsx +129 -129
  177. package/src/Dialogs/Confirm.tsx +162 -162
  178. package/src/Dialogs/Cron.tsx +182 -182
  179. package/src/Dialogs/Error.tsx +72 -72
  180. package/src/Dialogs/Message.tsx +71 -71
  181. package/src/Dialogs/SelectFile.tsx +270 -270
  182. package/src/Dialogs/SelectID.tsx +298 -298
  183. package/src/Dialogs/SimpleCron.tsx +100 -100
  184. package/src/Dialogs/TextInput.tsx +107 -107
  185. package/src/GenericApp.tsx +976 -976
  186. package/src/LegacyConnection.tsx +3589 -3589
  187. package/src/Prompt.tsx +20 -20
  188. package/src/Theme.tsx +479 -479
  189. package/src/icons/IconAdapter.tsx +20 -20
  190. package/src/icons/IconAlias.tsx +20 -20
  191. package/src/icons/IconChannel.tsx +21 -21
  192. package/src/icons/IconClearFilter.tsx +22 -22
  193. package/src/icons/IconClosed.tsx +17 -17
  194. package/src/icons/IconCopy.tsx +16 -16
  195. package/src/icons/IconDevice.tsx +27 -27
  196. package/src/icons/IconDocument.tsx +17 -17
  197. package/src/icons/IconDocumentReadOnly.tsx +18 -18
  198. package/src/icons/IconExpert.tsx +18 -18
  199. package/src/icons/IconFx.tsx +36 -36
  200. package/src/icons/IconInstance.tsx +20 -20
  201. package/src/icons/IconLogout.tsx +30 -30
  202. package/src/icons/IconNoIcon.tsx +19 -19
  203. package/src/icons/IconOpen.tsx +17 -17
  204. package/src/icons/IconProps.tsx +15 -15
  205. package/src/icons/IconState.tsx +17 -17
  206. package/src/index.css +54 -54
  207. package/types.d.ts +134 -134
@@ -1,19 +1,19 @@
1
- import React from 'react';
2
- import type IconProps from './IconProps';
3
-
4
- const IconNoIcon = (props: IconProps) => <svg
5
- xmlns="http://www.w3.org/2000/svg"
6
- onClick={e => props.onClick && props.onClick(e)}
7
- viewBox="0 0 512 512"
8
- width={props.width || (props.fontSize === 'small' ? 16 : 20)}
9
- height={props.height || props.width || (props.fontSize === 'small' ? 16 : 20)}
10
- className={props.className}
11
- style={props.style}
12
- >
13
- <path
14
- fill="#EE3333"
15
- d="M256,0C114.844,0,0,114.844,0,256s114.844,256,256,256s256-114.844,256-256S397.156,0,256,0z M256,448 c-105.865,0-192-86.135-192-192c0-40.406,12.25-78.604,35.542-111.198l267.656,267.656C334.604,435.75,296.406,448,256,448z M412.458,367.198L144.802,99.542C177.396,76.25,215.594,64,256,64c105.865,0,192,86.135,192,192 C448,296.406,435.75,334.604,412.458,367.198z"
16
- />
17
- </svg>;
18
-
19
- export default IconNoIcon;
1
+ import React from 'react';
2
+ import type IconProps from './IconProps';
3
+
4
+ const IconNoIcon = (props: IconProps) => <svg
5
+ xmlns="http://www.w3.org/2000/svg"
6
+ onClick={e => props.onClick && props.onClick(e)}
7
+ viewBox="0 0 512 512"
8
+ width={props.width || (props.fontSize === 'small' ? 16 : 20)}
9
+ height={props.height || props.width || (props.fontSize === 'small' ? 16 : 20)}
10
+ className={props.className}
11
+ style={props.style}
12
+ >
13
+ <path
14
+ fill="#EE3333"
15
+ d="M256,0C114.844,0,0,114.844,0,256s114.844,256,256,256s256-114.844,256-256S397.156,0,256,0z M256,448 c-105.865,0-192-86.135-192-192c0-40.406,12.25-78.604,35.542-111.198l267.656,267.656C334.604,435.75,296.406,448,256,448z M412.458,367.198L144.802,99.542C177.396,76.25,215.594,64,256,64c105.865,0,192,86.135,192,192 C448,296.406,435.75,334.604,412.458,367.198z"
16
+ />
17
+ </svg>;
18
+
19
+ export default IconNoIcon;
@@ -1,17 +1,17 @@
1
- import React from 'react';
2
- import type IconProps from './IconProps';
3
-
4
- // Icon copied from https://github.com/FortAwesome/Font-Awesome/blob/0d1f27efb836eb2ab994ba37221849ed64a73e5c/svgs/regular/
5
- const IconOpen = (props: IconProps) => <svg
6
- xmlns="http://www.w3.org/2000/svg"
7
- onClick={e => props.onClick && props.onClick(e)}
8
- viewBox="0 0 650 512"
9
- width={props.width || (props.fontSize === 'small' ? 16 : 20)}
10
- height={props.height || props.width || (props.fontSize === 'small' ? 16 : 20)}
11
- className={props.className}
12
- style={props.style}
13
- >
14
- <path fill="currentColor" d="M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z" />
15
- </svg>;
16
-
17
- export default IconOpen;
1
+ import React from 'react';
2
+ import type IconProps from './IconProps';
3
+
4
+ // Icon copied from https://github.com/FortAwesome/Font-Awesome/blob/0d1f27efb836eb2ab994ba37221849ed64a73e5c/svgs/regular/
5
+ const IconOpen = (props: IconProps) => <svg
6
+ xmlns="http://www.w3.org/2000/svg"
7
+ onClick={e => props.onClick && props.onClick(e)}
8
+ viewBox="0 0 650 512"
9
+ width={props.width || (props.fontSize === 'small' ? 16 : 20)}
10
+ height={props.height || props.width || (props.fontSize === 'small' ? 16 : 20)}
11
+ className={props.className}
12
+ style={props.style}
13
+ >
14
+ <path fill="currentColor" d="M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z" />
15
+ </svg>;
16
+
17
+ export default IconOpen;
@@ -1,15 +1,15 @@
1
- import React from 'react';
2
-
3
- export default interface IconProps {
4
- /** The width in pixels or percentage of the icon. */
5
- width?: number | string;
6
- /** The height in pixels or percentage of the icon. */
7
- height?: number | string;
8
- /** Click handler. */
9
- onClick?: (e: React.MouseEvent) => void;
10
- /** The class name for the SVG element. */
11
- className?: string;
12
- /** Styles for the SVG element. */
13
- style?: React.CSSProperties;
14
- fontSize?: 'small';
15
- }
1
+ import React from 'react';
2
+
3
+ export default interface IconProps {
4
+ /** The width in pixels or percentage of the icon. */
5
+ width?: number | string;
6
+ /** The height in pixels or percentage of the icon. */
7
+ height?: number | string;
8
+ /** Click handler. */
9
+ onClick?: (e: React.MouseEvent) => void;
10
+ /** The class name for the SVG element. */
11
+ className?: string;
12
+ /** Styles for the SVG element. */
13
+ style?: React.CSSProperties;
14
+ fontSize?: 'small';
15
+ }
@@ -1,17 +1,17 @@
1
- import React from 'react';
2
- import type IconProps from './IconProps';
3
-
4
- const IconState = (props: IconProps) => <svg
5
- xmlns="http://www.w3.org/2000/svg"
6
- onClick={e => props.onClick && props.onClick(e)}
7
- viewBox="0 0 320 320"
8
- width={props.width || (props.fontSize === 'small' ? 16 : 20)}
9
- height={props.height || props.width || (props.fontSize === 'small' ? 16 : 20)}
10
- className={props.className}
11
- style={props.style}
12
- >
13
- <rect fill="none" rx="32" height="272" width="267" y="25" x="25" strokeWidth="15" stroke="currentColor" />
14
- <ellipse fill="none" ry="54" rx="54" cy="160" cx="160" fillOpacity="null" strokeOpacity="null" strokeWidth="15" stroke="currentColor" />
15
- </svg>;
16
-
17
- export default IconState;
1
+ import React from 'react';
2
+ import type IconProps from './IconProps';
3
+
4
+ const IconState = (props: IconProps) => <svg
5
+ xmlns="http://www.w3.org/2000/svg"
6
+ onClick={e => props.onClick && props.onClick(e)}
7
+ viewBox="0 0 320 320"
8
+ width={props.width || (props.fontSize === 'small' ? 16 : 20)}
9
+ height={props.height || props.width || (props.fontSize === 'small' ? 16 : 20)}
10
+ className={props.className}
11
+ style={props.style}
12
+ >
13
+ <rect fill="none" rx="32" height="272" width="267" y="25" x="25" strokeWidth="15" stroke="currentColor" />
14
+ <ellipse fill="none" ry="54" rx="54" cy="160" cx="160" fillOpacity="null" strokeOpacity="null" strokeWidth="15" stroke="currentColor" />
15
+ </svg>;
16
+
17
+ export default IconState;
package/src/index.css CHANGED
@@ -1,55 +1,55 @@
1
- /**
2
- * Copyright 2018-2023 Denis Haev (bluefox) <dogafox@gmail.com>
3
- *
4
- * MIT License
5
- *
6
- **/
7
-
8
- html {
9
- height: 100%;
10
- }
11
-
12
- body {
13
- margin: 0;
14
- padding: 0;
15
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
16
- -webkit-font-smoothing: antialiased;
17
- -moz-osx-font-smoothing: grayscale;
18
- width: 100%;
19
- height: 100%;
20
- overflow: hidden;
21
- }
22
-
23
- /* scrollbar */
24
- ::-webkit-scrollbar-track {
25
- background-color: #ccc;
26
- border-radius: 5px;
27
- }
28
-
29
- ::-webkit-scrollbar {
30
- width: 5px;
31
- height: 5px;
32
- background-color: #ccc;
33
- }
34
-
35
- ::-webkit-scrollbar-thumb {
36
- background-color: #575757;
37
- border-radius: 5px;
38
- }
39
-
40
- #root {
41
- height: 100%;
42
- }
43
-
44
- .App {
45
- height: 100%;
46
- }
47
-
48
- @keyframes glow {
49
- from {
50
- background-color: initial;
51
- }
52
- to {
53
- background-color: #58c458;
54
- }
1
+ /**
2
+ * Copyright 2018-2023 Denis Haev (bluefox) <dogafox@gmail.com>
3
+ *
4
+ * MIT License
5
+ *
6
+ **/
7
+
8
+ html {
9
+ height: 100%;
10
+ }
11
+
12
+ body {
13
+ margin: 0;
14
+ padding: 0;
15
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
16
+ -webkit-font-smoothing: antialiased;
17
+ -moz-osx-font-smoothing: grayscale;
18
+ width: 100%;
19
+ height: 100%;
20
+ overflow: hidden;
21
+ }
22
+
23
+ /* scrollbar */
24
+ ::-webkit-scrollbar-track {
25
+ background-color: #ccc;
26
+ border-radius: 5px;
27
+ }
28
+
29
+ ::-webkit-scrollbar {
30
+ width: 5px;
31
+ height: 5px;
32
+ background-color: #ccc;
33
+ }
34
+
35
+ ::-webkit-scrollbar-thumb {
36
+ background-color: #575757;
37
+ border-radius: 5px;
38
+ }
39
+
40
+ #root {
41
+ height: 100%;
42
+ }
43
+
44
+ .App {
45
+ height: 100%;
46
+ }
47
+
48
+ @keyframes glow {
49
+ from {
50
+ background-color: initial;
51
+ }
52
+ to {
53
+ background-color: #58c458;
54
+ }
55
55
  }
package/types.d.ts CHANGED
@@ -1,134 +1,134 @@
1
- import React from 'react';
2
- import { Theme as MuiTheme, Palette as MuiPalette } from '@mui/material/styles';
3
- import { AdminConnection, Connection } from '@iobroker/socket-client';
4
- import LegacyConnection from './LegacyConnection';
5
-
6
- export type Translate = (key: string, ...args: (string | number | boolean)[]) => string;
7
-
8
- export interface ConnectionProps {
9
- /** The socket name. */
10
- name?: string;
11
- /** State IDs to always automatically subscribe to. */
12
- autoSubscribes?: string[];
13
- /** Automatically subscribe to logging. */
14
- autoSubscribeLog?: boolean;
15
- /** The protocol to use for the socket.io connection. */
16
- protocol?: string;
17
- /** The host name to use for the socket.io connection. */
18
- host?: string;
19
- /** The port to use for the socket.io connection. */
20
- port?: string | number;
21
- /** The socket.io connection timeout. */
22
- ioTimeout?: number;
23
- /** Flag to indicate if all objects should be loaded or not. Default true (not loaded) */
24
- doNotLoadAllObjects?: boolean;
25
- /** Flag to indicate if AccessControlList for current user will be loaded or not. Default true (not loaded) */
26
- doNotLoadACL?: boolean;
27
- /** Progress callback. */
28
- onProgress?: (progress: number) => void;
29
- /** Ready callback. */
30
- onReady?: (objects: Record<string, ioBroker.Object>) => void;
31
- /** Log callback. */
32
- onLog?: (text: string) => void;
33
- /** Error callback. */
34
- onError?: (error: any) => void;
35
- /** Object change callback. */
36
- onObjectChange?: ioBroker.ObjectChangeHandler;
37
- /** Language callback */
38
- onLanguage?: (lang: ioBroker.Languages) => void;
39
- }
40
-
41
- export interface OldObject {
42
- _id: string;
43
- type: string;
44
- }
45
-
46
- export type ObjectChangeHandler = (id: string, obj: ioBroker.Object | null | undefined, oldObj: OldObject) => void | Promise<void>;
47
-
48
- export type ThemeName = 'dark' | 'light' | 'colored' | 'blue' | 'PT' | 'DX';
49
- export type ThemeType = 'dark' | 'light';
50
-
51
- export interface GenericAppProps {
52
- /** Adapter instance number if known, else will be determined from url */
53
- instance?: number;
54
- /** The name of the adapter. */
55
- adapterName?: string;
56
- /** Should the bottom buttons be shown (default: true). */
57
- bottomButtons?: boolean;
58
- /** Additional translations. */
59
- translations?: { [lang in ioBroker.Languages]?: Record<string, string>; };
60
- /** Fields that should be encrypted/decrypted. */
61
- encryptedFields?: string[];
62
- /** Socket.io configuration. */
63
- socket?: ConnectionProps;
64
- /** Desired connection object */
65
- Connection?: LegacyConnection | Connection | AdminConnection;
66
- /** sentry DNS */
67
- sentryDSN?: string;
68
- /** Callback if user changes the theme. Call it to trigger change */
69
- onThemeChange?: (newThemeName: ThemeName) => void;
70
- classes?: Record<string, string>;
71
- }
72
-
73
- export interface GenericAppSettings extends GenericAppProps {
74
- /** Don't load all objects on start-up. */
75
- doNotLoadAllObjects?: boolean;
76
- }
77
-
78
- interface Palette extends MuiPalette {
79
- mode: ThemeType;
80
- expert: string;
81
- grey: {
82
- main: string;
83
- dark: string;
84
- 50: string;
85
- 100: string;
86
- 200: string;
87
- 300: string;
88
- 400: string;
89
- 500: string;
90
- 600: string;
91
- 700: string;
92
- 800: string;
93
- 900: string;
94
- A100: string;
95
- A200: string;
96
- A400: string;
97
- A700: string;
98
- };
99
- }
100
-
101
- export interface IobTheme extends MuiTheme {
102
- name: ThemeName;
103
- palette: Palette;
104
- toolbar: React.CSSProperties;
105
- saveToolbar: {
106
- background: string;
107
- button: React.CSSProperties;
108
- };
109
- }
110
-
111
- export type Width = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
112
-
113
- export interface GenericAppState {
114
- loaded: boolean;
115
- themeType: ThemeType;
116
- themeName: ThemeName;
117
- theme: IobTheme;
118
- expertMode: boolean;
119
- selectedTab: string;
120
- selectedTabNum: number | undefined;
121
- native: Record<string, any>;
122
- errorText: string | React.JSX.Element;
123
- changed: boolean;
124
- connected: boolean;
125
- isConfigurationError: string;
126
- toast: string | React.JSX.Element;
127
- bottomButtons: boolean;
128
- width: Width;
129
- confirmClose: boolean;
130
- _alert: boolean;
131
- _alertType: 'info' | 'warning' | 'error' | 'success';
132
- _alertMessage: string | React.JSX.Element;
133
- common?: Record<string, any>;
134
- }
1
+ import React from 'react';
2
+ import { Theme as MuiTheme, Palette as MuiPalette } from '@mui/material/styles';
3
+ import { AdminConnection, Connection } from '@iobroker/socket-client';
4
+ import LegacyConnection from './LegacyConnection';
5
+
6
+ export type Translate = (key: string, ...args: (string | number | boolean)[]) => string;
7
+
8
+ export interface ConnectionProps {
9
+ /** The socket name. */
10
+ name?: string;
11
+ /** State IDs to always automatically subscribe to. */
12
+ autoSubscribes?: string[];
13
+ /** Automatically subscribe to logging. */
14
+ autoSubscribeLog?: boolean;
15
+ /** The protocol to use for the socket.io connection. */
16
+ protocol?: string;
17
+ /** The host name to use for the socket.io connection. */
18
+ host?: string;
19
+ /** The port to use for the socket.io connection. */
20
+ port?: string | number;
21
+ /** The socket.io connection timeout. */
22
+ ioTimeout?: number;
23
+ /** Flag to indicate if all objects should be loaded or not. Default true (not loaded) */
24
+ doNotLoadAllObjects?: boolean;
25
+ /** Flag to indicate if AccessControlList for current user will be loaded or not. Default true (not loaded) */
26
+ doNotLoadACL?: boolean;
27
+ /** Progress callback. */
28
+ onProgress?: (progress: number) => void;
29
+ /** Ready callback. */
30
+ onReady?: (objects: Record<string, ioBroker.Object>) => void;
31
+ /** Log callback. */
32
+ onLog?: (text: string) => void;
33
+ /** Error callback. */
34
+ onError?: (error: any) => void;
35
+ /** Object change callback. */
36
+ onObjectChange?: ioBroker.ObjectChangeHandler;
37
+ /** Language callback */
38
+ onLanguage?: (lang: ioBroker.Languages) => void;
39
+ }
40
+
41
+ export interface OldObject {
42
+ _id: string;
43
+ type: string;
44
+ }
45
+
46
+ export type ObjectChangeHandler = (id: string, obj: ioBroker.Object | null | undefined, oldObj: OldObject) => void | Promise<void>;
47
+
48
+ export type ThemeName = 'dark' | 'light' | 'colored' | 'blue' | 'PT' | 'DX';
49
+ export type ThemeType = 'dark' | 'light';
50
+
51
+ export interface GenericAppProps {
52
+ /** Adapter instance number if known, else will be determined from url */
53
+ instance?: number;
54
+ /** The name of the adapter. */
55
+ adapterName?: string;
56
+ /** Should the bottom buttons be shown (default: true). */
57
+ bottomButtons?: boolean;
58
+ /** Additional translations. */
59
+ translations?: { [lang in ioBroker.Languages]?: Record<string, string>; };
60
+ /** Fields that should be encrypted/decrypted. */
61
+ encryptedFields?: string[];
62
+ /** Socket.io configuration. */
63
+ socket?: ConnectionProps;
64
+ /** Desired connection object */
65
+ Connection?: LegacyConnection | Connection | AdminConnection;
66
+ /** sentry DNS */
67
+ sentryDSN?: string;
68
+ /** Callback if user changes the theme. Call it to trigger change */
69
+ onThemeChange?: (newThemeName: ThemeName) => void;
70
+ classes?: Record<string, string>;
71
+ }
72
+
73
+ export interface GenericAppSettings extends GenericAppProps {
74
+ /** Don't load all objects on start-up. */
75
+ doNotLoadAllObjects?: boolean;
76
+ }
77
+
78
+ interface Palette extends MuiPalette {
79
+ mode: ThemeType;
80
+ expert: string;
81
+ grey: {
82
+ main: string;
83
+ dark: string;
84
+ 50: string;
85
+ 100: string;
86
+ 200: string;
87
+ 300: string;
88
+ 400: string;
89
+ 500: string;
90
+ 600: string;
91
+ 700: string;
92
+ 800: string;
93
+ 900: string;
94
+ A100: string;
95
+ A200: string;
96
+ A400: string;
97
+ A700: string;
98
+ };
99
+ }
100
+
101
+ export interface IobTheme extends MuiTheme {
102
+ name: ThemeName;
103
+ palette: Palette;
104
+ toolbar: React.CSSProperties;
105
+ saveToolbar: {
106
+ background: string;
107
+ button: React.CSSProperties;
108
+ };
109
+ }
110
+
111
+ export type Width = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
112
+
113
+ export interface GenericAppState {
114
+ loaded: boolean;
115
+ themeType: ThemeType;
116
+ themeName: ThemeName;
117
+ theme: IobTheme;
118
+ expertMode: boolean;
119
+ selectedTab: string;
120
+ selectedTabNum: number | undefined;
121
+ native: Record<string, any>;
122
+ errorText: string | React.JSX.Element;
123
+ changed: boolean;
124
+ connected: boolean;
125
+ isConfigurationError: string;
126
+ toast: string | React.JSX.Element;
127
+ bottomButtons: boolean;
128
+ width: Width;
129
+ confirmClose: boolean;
130
+ _alert: boolean;
131
+ _alertType: 'info' | 'warning' | 'error' | 'success';
132
+ _alertMessage: string | React.JSX.Element;
133
+ common?: Record<string, any>;
134
+ }