@iobroker/adapter-react-v5 7.0.2 → 7.1.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 (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 +1264 -1171
  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 +4 -4
  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 +22 -20
  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,25 +1,15 @@
1
- import React from 'react';
2
-
3
- import {
4
- Button,
5
- DialogTitle,
6
- DialogContent,
7
- DialogActions,
8
- Dialog,
9
- Radio,
10
- } from '@mui/material';
11
-
12
- import {
13
- Check as IconOk,
14
- Cancel as IconCancel,
15
- } from '@mui/icons-material';
1
+ import React, { type JSX } from 'react';
2
+
3
+ import { Button, DialogTitle, DialogContent, DialogActions, Dialog, Radio } from '@mui/material';
4
+
5
+ import { Check as IconOk, Cancel as IconCancel } from '@mui/icons-material';
16
6
 
17
7
  import ComplexCron from '../Components/ComplexCron';
18
8
  import SimpleCron, { cron2state } from '../Components/SimpleCron';
19
9
  import Schedule from '../Components/Schedule';
20
10
 
21
11
  import I18n from '../i18n';
22
- import { IobTheme } from '../types';
12
+ import type { IobTheme } from '../types';
23
13
 
24
14
  // Generate cron expression
25
15
 
@@ -63,119 +53,139 @@ class DialogCron extends React.Component<DialogCronProps, DialogCronState> {
63
53
  }
64
54
  }
65
55
 
66
- this.state = {
56
+ this.state = {
67
57
  cron,
68
- mode: this.props.simple ? 'simple' :
69
- (this.props.complex ? 'complex' :
70
- ((typeof cron === 'object' || cron[0] === '{') && !this.props.noWizard ?
71
- 'wizard' :
72
- (cron2state(this.props.cron || '* * * * *') ? 'simple' : 'complex'))),
58
+ mode: this.props.simple
59
+ ? 'simple'
60
+ : this.props.complex
61
+ ? 'complex'
62
+ : (typeof cron === 'object' || cron[0] === '{') && !this.props.noWizard
63
+ ? 'wizard'
64
+ : cron2state(this.props.cron || '* * * * *')
65
+ ? 'simple'
66
+ : 'complex',
73
67
  };
74
68
  }
75
69
 
76
- handleCancel() {
70
+ handleCancel(): void {
77
71
  this.props.onClose();
78
72
  }
79
73
 
80
- handleOk() {
74
+ handleOk(): void {
81
75
  this.props.onOk(this.state.cron);
82
76
  this.props.onClose();
83
77
  }
84
78
 
85
- setMode(mode: 'simple' | 'complex' | 'wizard') {
79
+ setMode(mode: 'simple' | 'complex' | 'wizard'): void {
86
80
  this.setState({ mode });
87
81
  }
88
82
 
89
- render() {
90
- return <Dialog
91
- onClose={() => {}}
92
- maxWidth="md"
93
- fullWidth
94
- sx={{ '& .MuiDialog-paper': styles.dialogPaper }}
95
- open={!0}
96
- aria-labelledby="cron-dialog-title"
97
- >
98
- <DialogTitle id="cron-dialog-title">{this.props.title || I18n.t('ra_Define schedule...')}</DialogTitle>
99
- <DialogContent style={{ height: '100%', overflow: 'hidden' }}>
100
- {(this.props.simple && this.props.complex) || (!this.props.simple && !this.props.complex) ? <div>
101
- {!this.props.simple && !this.props.complex && !this.props.noWizard && <>
102
- <Radio
103
- key="wizard"
104
- checked={this.state.mode === 'wizard'}
105
- onChange={() => this.setMode('wizard')}
83
+ render(): JSX.Element {
84
+ return (
85
+ <Dialog
86
+ onClose={() => {}}
87
+ maxWidth="md"
88
+ fullWidth
89
+ sx={{ '& .MuiDialog-paper': styles.dialogPaper }}
90
+ open={!0}
91
+ aria-labelledby="cron-dialog-title"
92
+ >
93
+ <DialogTitle id="cron-dialog-title">{this.props.title || I18n.t('ra_Define schedule...')}</DialogTitle>
94
+ <DialogContent style={{ height: '100%', overflow: 'hidden' }}>
95
+ {(this.props.simple && this.props.complex) || (!this.props.simple && !this.props.complex) ? (
96
+ <div>
97
+ {!this.props.simple && !this.props.complex && !this.props.noWizard && (
98
+ <>
99
+ <Radio
100
+ key="wizard"
101
+ checked={this.state.mode === 'wizard'}
102
+ onChange={() => this.setMode('wizard')}
103
+ />
104
+ <label
105
+ onClick={() => this.setMode('wizard')}
106
+ style={this.state.mode !== 'wizard' ? { color: 'lightgrey' } : {}}
107
+ >
108
+ {I18n.t('sc_wizard')}
109
+ </label>
110
+ </>
111
+ )}
112
+
113
+ {((!this.props.simple && !this.props.complex) || this.props.simple) && (
114
+ <>
115
+ <Radio
116
+ key="simple"
117
+ checked={this.state.mode === 'simple'}
118
+ onChange={() => this.setMode('simple')}
119
+ />
120
+ <label
121
+ onClick={() => this.setMode('simple')}
122
+ style={this.state.mode !== 'simple' ? { color: 'lightgrey' } : {}}
123
+ >
124
+ {I18n.t('sc_simple')}
125
+ </label>
126
+ </>
127
+ )}
128
+
129
+ {((!this.props.simple && !this.props.complex) || this.props.complex) && (
130
+ <>
131
+ <Radio
132
+ key="complex"
133
+ checked={this.state.mode === 'complex'}
134
+ onChange={() => this.setMode('complex')}
135
+ />
136
+ <label
137
+ onClick={() => this.setMode('complex')}
138
+ style={this.state.mode !== 'complex' ? { color: 'lightgrey' } : {}}
139
+ >
140
+ {I18n.t('sc_cron')}
141
+ </label>
142
+ </>
143
+ )}
144
+ </div>
145
+ ) : null}
146
+
147
+ {this.state.mode === 'simple' && (
148
+ <SimpleCron
149
+ cronExpression={this.state.cron}
150
+ onChange={cron => this.setState({ cron })}
151
+ language={I18n.getLanguage()}
106
152
  />
107
- <label
108
- onClick={() => this.setMode('wizard')}
109
- style={this.state.mode !== 'wizard' ? { color: 'lightgrey' } : {}}
110
- >
111
- {I18n.t('sc_wizard')}
112
- </label>
113
- </>}
114
-
115
- {((!this.props.simple && !this.props.complex) || this.props.simple) && <>
116
- <Radio
117
- key="simple"
118
- checked={this.state.mode === 'simple'}
119
- onChange={() => this.setMode('simple')}
153
+ )}
154
+ {this.state.mode === 'wizard' && (
155
+ <Schedule
156
+ theme={this.props.theme}
157
+ schedule={this.state.cron}
158
+ onChange={(cron: string) => this.setState({ cron })}
120
159
  />
121
- <label
122
- onClick={() => this.setMode('simple')}
123
- style={this.state.mode !== 'simple' ? { color: 'lightgrey' } : {}}
124
- >
125
- {I18n.t('sc_simple')}
126
- </label>
127
- </>}
128
-
129
- {((!this.props.simple && !this.props.complex) || this.props.complex) && <>
130
- <Radio
131
- key="complex"
132
- checked={this.state.mode === 'complex'}
133
- onChange={() => this.setMode('complex')}
160
+ )}
161
+ {this.state.mode === 'complex' && (
162
+ <ComplexCron
163
+ cronExpression={this.state.cron}
164
+ onChange={cron => this.setState({ cron })}
165
+ language={I18n.getLanguage()}
134
166
  />
135
- <label
136
- onClick={() => this.setMode('complex')}
137
- style={this.state.mode !== 'complex' ? { color: 'lightgrey' } : {}}
138
- >
139
- {I18n.t('sc_cron')}
140
- </label>
141
- </>}
142
- </div> : null}
143
-
144
- {this.state.mode === 'simple' && <SimpleCron
145
- cronExpression={this.state.cron}
146
- onChange={cron => this.setState({ cron })}
147
- language={I18n.getLanguage()}
148
- />}
149
- {this.state.mode === 'wizard' && <Schedule
150
- theme={this.props.theme}
151
- schedule={this.state.cron}
152
- onChange={(cron: string) => this.setState({ cron })}
153
- />}
154
- {this.state.mode === 'complex' && <ComplexCron
155
- cronExpression={this.state.cron}
156
- onChange={cron => this.setState({ cron })}
157
- language={I18n.getLanguage()}
158
- />}
159
- </DialogContent>
160
- <DialogActions>
161
- <Button
162
- variant="contained"
163
- onClick={() => this.handleOk()}
164
- color="primary"
165
- startIcon={<IconOk />}
166
- >
167
- {this.props.ok || I18n.t('ra_Ok')}
168
- </Button>
169
- <Button
170
- variant="contained"
171
- onClick={() => this.handleCancel()}
172
- color="grey"
173
- startIcon={<IconCancel />}
174
- >
175
- {this.props.cancel || I18n.t('ra_Cancel')}
176
- </Button>
177
- </DialogActions>
178
- </Dialog>;
167
+ )}
168
+ </DialogContent>
169
+ <DialogActions>
170
+ <Button
171
+ variant="contained"
172
+ onClick={() => this.handleOk()}
173
+ color="primary"
174
+ startIcon={<IconOk />}
175
+ >
176
+ {this.props.ok || I18n.t('ra_Ok')}
177
+ </Button>
178
+ <Button
179
+ variant="contained"
180
+ onClick={() => this.handleCancel()}
181
+ color="grey"
182
+ startIcon={<IconCancel />}
183
+ >
184
+ {this.props.cancel || I18n.t('ra_Cancel')}
185
+ </Button>
186
+ </DialogActions>
187
+ </Dialog>
188
+ );
179
189
  }
180
190
  }
181
191
 
@@ -3,18 +3,11 @@
3
3
  *
4
4
  * MIT License
5
5
  *
6
- * */
6
+ */
7
7
  // please do not delete React, as without it other projects could not be compiled: ReferenceError: React is not defined
8
- import React, { Component } from 'react';
8
+ import React, { Component, type JSX } from 'react';
9
9
 
10
- import {
11
- Button,
12
- Dialog,
13
- DialogActions,
14
- DialogContent,
15
- DialogContentText,
16
- DialogTitle,
17
- } from '@mui/material';
10
+ import { Button, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle } from '@mui/material';
18
11
 
19
12
  import { Check as IconCheck } from '@mui/icons-material';
20
13
 
@@ -32,40 +25,42 @@ interface DialogErrorProps {
32
25
  }
33
26
 
34
27
  class DialogError extends Component<DialogErrorProps> {
35
- handleOk() {
36
- this.props.onClose && this.props.onClose();
28
+ handleOk(): void {
29
+ if (this.props.onClose) {
30
+ this.props.onClose();
31
+ }
37
32
  }
38
33
 
39
- render() {
40
- return <Dialog
41
- open={!0}
42
- maxWidth="sm"
43
- fullWidth={this.props.fullWidth !== undefined ? this.props.fullWidth : true}
44
- onClose={() => this.handleOk()}
45
- aria-labelledby="alert-dialog-title"
46
- aria-describedby="alert-dialog-description"
47
- >
48
- <DialogTitle id="ar_alert_dialog_title">
49
- {this.props.title || I18n.t('ra_Error')}
50
- </DialogTitle>
51
- <DialogContent>
52
- <DialogContentText id="ar_alert_dialog_description">
53
- {this.props.text || I18n.t('ra_Unknown error!')}
54
- </DialogContentText>
55
- </DialogContent>
56
- <DialogActions>
57
- <Button
58
- id="ar_dialog_error_ok"
59
- variant="contained"
60
- onClick={() => this.handleOk()}
61
- color="primary"
62
- autoFocus
63
- startIcon={<IconCheck />}
64
- >
65
- {I18n.t('ra_Ok')}
66
- </Button>
67
- </DialogActions>
68
- </Dialog>;
34
+ render(): JSX.Element {
35
+ return (
36
+ <Dialog
37
+ open={!0}
38
+ maxWidth="sm"
39
+ fullWidth={this.props.fullWidth !== undefined ? this.props.fullWidth : true}
40
+ onClose={() => this.handleOk()}
41
+ aria-labelledby="alert-dialog-title"
42
+ aria-describedby="alert-dialog-description"
43
+ >
44
+ <DialogTitle id="ar_alert_dialog_title">{this.props.title || I18n.t('ra_Error')}</DialogTitle>
45
+ <DialogContent>
46
+ <DialogContentText id="ar_alert_dialog_description">
47
+ {this.props.text || I18n.t('ra_Unknown error!')}
48
+ </DialogContentText>
49
+ </DialogContent>
50
+ <DialogActions>
51
+ <Button
52
+ id="ar_dialog_error_ok"
53
+ variant="contained"
54
+ onClick={() => this.handleOk()}
55
+ color="primary"
56
+ autoFocus
57
+ startIcon={<IconCheck />}
58
+ >
59
+ {I18n.t('ra_Ok')}
60
+ </Button>
61
+ </DialogActions>
62
+ </Dialog>
63
+ );
69
64
  }
70
65
  }
71
66
 
@@ -3,23 +3,14 @@
3
3
  *
4
4
  * MIT License
5
5
  *
6
- * */
6
+ */
7
7
 
8
8
  // please do not delete React, as without it other projects could not be compiled: ReferenceError: React is not defined
9
- import React, { Component } from 'react';
9
+ import React, { Component, type JSX } from 'react';
10
10
 
11
- import {
12
- Button,
13
- Dialog,
14
- DialogActions,
15
- DialogContent,
16
- DialogContentText,
17
- DialogTitle,
18
- } from '@mui/material';
11
+ import { Button, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle } from '@mui/material';
19
12
 
20
- import {
21
- Close as IconClose,
22
- } from '@mui/icons-material';
13
+ import { Close as IconClose } from '@mui/icons-material';
23
14
 
24
15
  import I18n from '../i18n';
25
16
 
@@ -39,32 +30,43 @@ interface DialogMessageProps {
39
30
  }
40
31
 
41
32
  class DialogMessage extends Component<DialogMessageProps> {
42
- handleOk() {
43
- this.props.onClose && this.props.onClose();
33
+ handleOk(): void {
34
+ if (this.props.onClose) {
35
+ this.props.onClose();
36
+ }
44
37
  }
45
38
 
46
- render() {
47
- return <Dialog
48
- open={!0}
49
- maxWidth="sm"
50
- fullWidth={this.props.fullWidth !== undefined ? this.props.fullWidth : true}
51
- onClose={() => this.handleOk()}
52
- aria-labelledby="ar_dialog_message_title"
53
- aria-describedby="ar_dialog_message_description"
54
- >
55
- <DialogTitle id="ar_dialog_message_title">{this.props.title || I18n.t('ra_Message')}</DialogTitle>
56
- <DialogContent>
57
- <DialogContentText id="ar_dialog_message_description">
58
- <span style={{ marginRight: this.props.icon ? 8 : 0 }}>
59
- {this.props.icon || null}
60
- </span>
61
- {this.props.text}
62
- </DialogContentText>
63
- </DialogContent>
64
- <DialogActions>
65
- <Button id="ar_dialog_message_ok" variant="contained" onClick={() => this.handleOk()} color="primary" autoFocus startIcon={<IconClose />}>{this.props.ok || I18n.t('ra_Close')}</Button>
66
- </DialogActions>
67
- </Dialog>;
39
+ render(): JSX.Element {
40
+ return (
41
+ <Dialog
42
+ open={!0}
43
+ maxWidth="sm"
44
+ fullWidth={this.props.fullWidth !== undefined ? this.props.fullWidth : true}
45
+ onClose={() => this.handleOk()}
46
+ aria-labelledby="ar_dialog_message_title"
47
+ aria-describedby="ar_dialog_message_description"
48
+ >
49
+ <DialogTitle id="ar_dialog_message_title">{this.props.title || I18n.t('ra_Message')}</DialogTitle>
50
+ <DialogContent>
51
+ <DialogContentText id="ar_dialog_message_description">
52
+ <span style={{ marginRight: this.props.icon ? 8 : 0 }}>{this.props.icon || null}</span>
53
+ {this.props.text}
54
+ </DialogContentText>
55
+ </DialogContent>
56
+ <DialogActions>
57
+ <Button
58
+ id="ar_dialog_message_ok"
59
+ variant="contained"
60
+ onClick={() => this.handleOk()}
61
+ color="primary"
62
+ autoFocus
63
+ startIcon={<IconClose />}
64
+ >
65
+ {this.props.ok || I18n.t('ra_Close')}
66
+ </Button>
67
+ </DialogActions>
68
+ </Dialog>
69
+ );
68
70
  }
69
71
  }
70
72