@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
@@ -13,23 +13,16 @@
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 { ChromePicker, type RGBColor } from 'react-color';
18
18
 
19
- import {
20
- TextField, Menu,
21
- IconButton, Button,
22
- Box,
23
- } from '@mui/material';
19
+ import { TextField, Menu, IconButton, Button, Box } from '@mui/material';
24
20
 
25
- import {
26
- Delete as IconDelete,
27
- Close as IconClose,
28
- } from '@mui/icons-material';
21
+ import { Delete as IconDelete, Close as IconClose } from '@mui/icons-material';
29
22
 
30
23
  import I18n from '../i18n';
31
24
 
32
- import { IobTheme } from '../types';
25
+ import type { IobTheme } from '../types';
33
26
 
34
27
  const styles: Record<string, any> = {
35
28
  color: {
@@ -111,7 +104,7 @@ interface ColorPickerProps {
111
104
  /** @deprecated TLabel of the color picker use label */
112
105
  name?: string;
113
106
  /** Additional styling for this component. */
114
- style?: React.CSSProperties;
107
+ style?: CSSProperties;
115
108
  /** The CSS class name. */
116
109
  className?: string;
117
110
  customPalette?: string[];
@@ -127,7 +120,15 @@ interface ColorPickerState {
127
120
  anchorEl: HTMLDivElement | null;
128
121
  }
129
122
 
123
+ /**
124
+ * A color picker component.
125
+ */
130
126
  class ColorPicker extends Component<ColorPickerProps, ColorPickerState> {
127
+ /**
128
+ * Constructor for the color picker.
129
+ *
130
+ * @param props The properties.
131
+ */
131
132
  constructor(props: ColorPickerProps) {
132
133
  super(props);
133
134
  this.state = {
@@ -137,26 +138,25 @@ class ColorPicker extends Component<ColorPickerProps, ColorPickerState> {
137
138
  };
138
139
  }
139
140
 
140
- private handleClick = (e: React.MouseEvent<HTMLDivElement>) => {
141
+ private handleClick = (e: React.MouseEvent<HTMLDivElement>): void => {
141
142
  this.setState({
142
143
  displayColorPicker: !this.state.displayColorPicker,
143
144
  anchorEl: this.state.displayColorPicker ? null : e.currentTarget,
144
145
  });
145
146
  };
146
147
 
147
- private handleClose = () => {
148
+ private handleClose = (): void => {
148
149
  this.setState({ displayColorPicker: false, anchorEl: null });
149
150
  };
150
151
 
151
152
  /**
152
153
  * Convert the given color to hex ('#rrggbb') or rgba ('rgba(r,g,b,a)') format.
154
+ *
155
+ * @param color The color to convert.
156
+ * @param isHex If true, the color will be converted to hex format.
153
157
  * @returns the hex or rgba representation of the given color.
154
158
  */
155
- static getColor(
156
- color: string | { rgb: RGBColor } | RGBColor,
157
- /** The returning string should be in hex format */
158
- isHex?: boolean,
159
- ): string {
159
+ static getColor(color: string | { rgb: RGBColor } | RGBColor, isHex?: boolean): string {
160
160
  if (color && typeof color === 'object') {
161
161
  const oColor = color as { rgb: RGBColor };
162
162
  if (oColor.rgb) {
@@ -171,11 +171,16 @@ class ColorPicker extends Component<ColorPickerProps, ColorPickerState> {
171
171
  }
172
172
  return `rgba(${rColor.r},${rColor.g},${rColor.b},${rColor.a})`;
173
173
  }
174
- return isHex ? ColorPicker.rgb2hex(color as string || '') : color as string || '';
174
+ if (typeof color === 'string') {
175
+ return isHex ? ColorPicker.rgb2hex(color || '') : color || '';
176
+ }
177
+ return '';
175
178
  }
176
179
 
177
180
  /**
178
181
  * Convert rgb() or rgba() format to hex format #rrggbb.
182
+ *
183
+ * @param rgb The color in rgb() or rgba() format. if not in this format, the color will be returned as is.
179
184
  */
180
185
  static rgb2hex(rgb: string): string {
181
186
  const m = rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);
@@ -190,15 +195,17 @@ class ColorPicker extends Component<ColorPickerProps, ColorPickerState> {
190
195
  return rgb;
191
196
  }
192
197
 
193
- private handleChange = (color: string | RGBColor) => {
194
- this.setState({ color }, () =>
195
- this.props.onChange && this.props.onChange(ColorPicker.getColor(color)));
198
+ private handleChange = (color: string | RGBColor): void => {
199
+ this.setState({ color }, () => this.props.onChange && this.props.onChange(ColorPicker.getColor(color)));
196
200
  };
197
201
 
198
202
  /**
199
- * IF the props are updated from outside, they should override the state
203
+ * If the props are updated from outside, they should override the state
204
+ *
205
+ * @param _prevProps The previous properties.
206
+ * @param prevState The previous state.
200
207
  */
201
- componentDidUpdate(_prevProps: ColorPickerProps, prevState: ColorPickerState) {
208
+ componentDidUpdate(_prevProps: ColorPickerProps, prevState: ColorPickerState): void {
202
209
  const color = ColorPicker.getColor(this.props.color || this.props.value || '');
203
210
 
204
211
  if (color !== prevState.color) {
@@ -206,109 +213,130 @@ class ColorPicker extends Component<ColorPickerProps, ColorPickerState> {
206
213
  }
207
214
  }
208
215
 
209
- renderCustomPalette() {
216
+ renderCustomPalette(): React.JSX.Element | null {
210
217
  if (!this.props.customPalette) {
211
218
  return null;
212
219
  }
213
- return <div style={{ width: '100%', display: 'flex', flexWrap: 'wrap' }}>
214
- {this.props.customPalette.map(color => <Button
215
- style={styles.button}
216
- key={color}
217
- onClick={() => {
218
- this.handleChange(color);
219
- setTimeout(() => this.handleClose(), 300);
220
- }}
221
- >
222
- <div
223
- style={{ ...styles.iconButton, background: color }}
224
- />
225
- </Button>)}
226
- </div>;
220
+ return (
221
+ <div style={{ width: '100%', display: 'flex', flexWrap: 'wrap' }}>
222
+ {this.props.customPalette.map(color => (
223
+ <Button
224
+ style={styles.button}
225
+ key={color}
226
+ onClick={() => {
227
+ this.handleChange(color);
228
+ setTimeout(() => this.handleClose(), 300);
229
+ }}
230
+ >
231
+ <div style={{ ...styles.iconButton, background: color }} />
232
+ </Button>
233
+ ))}
234
+ </div>
235
+ );
227
236
  }
228
237
 
229
- render() {
238
+ render(): React.JSX.Element {
230
239
  const style = { ...(this.props.style || {}) };
231
240
  style.position = 'relative';
232
241
  const { color } = this.state;
233
242
 
234
- return <Box
235
- component="div"
236
- style={style}
237
- sx={this.props.sx || undefined}
238
- className={this.props.className || ''}
239
- >
240
- {this.props.noInputField ? null : <TextField
241
- disabled={this.props.disabled}
242
- variant="standard"
243
- id="ar_color_picker_name"
244
- label={this.props.label || this.props.name}
245
- value={color || ''}
246
- margin="dense"
247
- sx={{
248
- '&.MuiFormControl-root': styles.textDense,
249
- width: color ? 'calc(100% - 80px)' : 'calc(100% - 56px)',
250
- mr: color ? undefined : 1,
251
- }}
252
- onChange={e => this.handleChange(e.target.value)}
253
- />}
254
- {!this.props.noInputField && color ? <IconButton
255
- disabled={this.props.disabled}
256
- onClick={() => this.handleChange('')}
257
- size="small"
258
- style={{ ...(this.props.label || this.props.name ? styles.delButton : undefined), ...(color ? undefined : { opacity: 0, cursor: 'default' }) }}
259
- >
260
- <IconDelete />
261
- </IconButton> : null}
243
+ return (
262
244
  <Box
263
245
  component="div"
264
- onClick={e => !this.props.disabled && this.handleClick(e)}
265
- title={I18n.t('ra_Select color')}
266
- sx={{
267
- ...styles.swatch,
268
- ...(this.props.disabled ? styles.swatchDisabled : undefined),
269
- background: color ? undefined : 'transparent',
270
- border: color ? undefined : '1px dashed #ccc',
271
- boxSizing: 'border-box',
272
- marginTop: this.props.noInputField || !(this.props.label || this.props.name) ? 0 : undefined,
273
- }}
246
+ style={style}
247
+ sx={this.props.sx || undefined}
248
+ className={this.props.className || ''}
274
249
  >
275
- <div
276
- style={{
277
- ...styles.color,
278
- background: ColorPicker.getColor(color),
279
- width: this.props.noInputField ? (this.props.barWidth || 16) : this.props.barWidth || 36,
250
+ {this.props.noInputField ? null : (
251
+ <TextField
252
+ disabled={this.props.disabled}
253
+ variant="standard"
254
+ id="ar_color_picker_name"
255
+ label={this.props.label || this.props.name}
256
+ value={color || ''}
257
+ margin="dense"
258
+ sx={{
259
+ '&.MuiFormControl-root': styles.textDense,
260
+ width: color ? 'calc(100% - 80px)' : 'calc(100% - 56px)',
261
+ mr: color ? undefined : 1,
262
+ }}
263
+ onChange={e => this.handleChange(e.target.value)}
264
+ />
265
+ )}
266
+ {!this.props.noInputField && color ? (
267
+ <IconButton
268
+ disabled={this.props.disabled}
269
+ onClick={() => this.handleChange('')}
270
+ size="small"
271
+ style={{
272
+ ...(this.props.label || this.props.name ? styles.delButton : undefined),
273
+ ...(color ? undefined : { opacity: 0, cursor: 'default' }),
274
+ }}
275
+ >
276
+ <IconDelete />
277
+ </IconButton>
278
+ ) : null}
279
+ <Box
280
+ component="div"
281
+ onClick={e => !this.props.disabled && this.handleClick(e)}
282
+ title={I18n.t('ra_Select color')}
283
+ sx={{
284
+ ...styles.swatch,
285
+ ...(this.props.disabled ? styles.swatchDisabled : undefined),
286
+ background: color ? undefined : 'transparent',
287
+ border: color ? undefined : '1px dashed #ccc',
288
+ boxSizing: 'border-box',
289
+ marginTop: this.props.noInputField || !(this.props.label || this.props.name) ? 0 : undefined,
280
290
  }}
281
- />
291
+ >
292
+ <div
293
+ style={{
294
+ ...styles.color,
295
+ background: ColorPicker.getColor(color),
296
+ width: this.props.noInputField ? this.props.barWidth || 16 : this.props.barWidth || 36,
297
+ }}
298
+ />
299
+ </Box>
300
+ {this.state.displayColorPicker && !this.props.disabled ? (
301
+ <Menu
302
+ sx={{
303
+ ...styles.popover,
304
+ '&. MuiMenu-list': styles.popoverList,
305
+ }}
306
+ anchorEl={this.state.anchorEl}
307
+ open={!0}
308
+ onClose={() => this.handleClose()}
309
+ >
310
+ <ChromePicker
311
+ color={this.state.color || undefined}
312
+ onChangeComplete={(_color: { rgb: RGBColor }) => this.handleChange(_color.rgb)}
313
+ styles={{
314
+ default: {
315
+ picker: {
316
+ backgroundColor: this.props.theme?.palette.background.paper || '#888',
317
+ },
318
+ },
319
+ }}
320
+ />
321
+ {color && this.props.noInputField ? (
322
+ <IconButton
323
+ sx={styles.closeButton}
324
+ onClick={() => this.handleChange('')}
325
+ >
326
+ <IconDelete />
327
+ </IconButton>
328
+ ) : null}
329
+ <IconButton
330
+ sx={styles.closeButton}
331
+ onClick={() => this.handleClose()}
332
+ >
333
+ <IconClose />
334
+ </IconButton>
335
+ {this.renderCustomPalette()}
336
+ </Menu>
337
+ ) : null}
282
338
  </Box>
283
- {this.state.displayColorPicker && !this.props.disabled ? <Menu
284
- sx={{
285
- ...styles.popover,
286
- '&. MuiMenu-list': styles.popoverList,
287
- }}
288
- anchorEl={this.state.anchorEl}
289
- open={!0}
290
- onClose={() => this.handleClose()}
291
- >
292
- <ChromePicker
293
- color={this.state.color || undefined}
294
- onChangeComplete={(_color: { rgb: RGBColor }) => this.handleChange(_color.rgb)}
295
- styles={{
296
- default: {
297
- picker: {
298
- backgroundColor: this.props.theme?.palette.background.paper || '#888',
299
- },
300
- },
301
- }}
302
- />
303
- {color && this.props.noInputField ? <IconButton sx={styles.closeButton} onClick={() => this.handleChange('')}>
304
- <IconDelete />
305
- </IconButton> : null}
306
- <IconButton sx={styles.closeButton} onClick={() => this.handleClose()}>
307
- <IconClose />
308
- </IconButton>
309
- {this.renderCustomPalette()}
310
- </Menu> : null}
311
- </Box>;
339
+ );
312
340
  }
313
341
  }
314
342