@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.
- package/Components/404.d.ts +3 -2
- package/Components/404.js +3 -2
- package/Components/ColorPicker.d.ts +22 -8
- package/Components/ColorPicker.js +34 -17
- package/Components/ComplexCron.js +24 -24
- package/Components/CopyToClipboard.d.ts +10 -1
- package/Components/CopyToClipboard.js +17 -8
- package/Components/CustomModal.d.ts +1 -1
- package/Components/CustomModal.js +8 -8
- package/Components/FileBrowser.d.ts +11 -11
- package/Components/FileBrowser.js +135 -152
- package/Components/FileViewer.js +34 -23
- package/Components/Icon.d.ts +16 -2
- package/Components/Icon.js +19 -8
- package/Components/IconPicker.js +10 -14
- package/Components/IconSelector.d.ts +1 -1
- package/Components/IconSelector.js +64 -74
- package/Components/Image.d.ts +8 -4
- package/Components/Image.js +13 -32
- package/Components/Loader.d.ts +2 -2
- package/Components/Loader.js +21 -18
- package/Components/Loaders/MV.d.ts +6 -1
- package/Components/Loaders/MV.js +23 -7
- package/Components/Loaders/PT.d.ts +7 -2
- package/Components/Loaders/PT.js +20 -7
- package/Components/Loaders/Vendor.d.ts +2 -2
- package/Components/Loaders/Vendor.js +15 -7
- package/Components/Logo.js +16 -18
- package/Components/MDUtils.d.ts +1 -1
- package/Components/MDUtils.js +8 -4
- package/Components/ObjectBrowser.d.ts +40 -39
- package/Components/ObjectBrowser.js +550 -435
- package/Components/Router.d.ts +1 -3
- package/Components/Router.js +3 -1
- package/Components/SaveCloseButtons.d.ts +3 -3
- package/Components/SaveCloseButtons.js +3 -3
- package/Components/Schedule.d.ts +15 -15
- package/Components/Schedule.js +177 -154
- package/Components/SelectWithIcon.d.ts +2 -2
- package/Components/SelectWithIcon.js +45 -34
- package/Components/SimpleCron/index.js +83 -43
- package/Components/TabContainer.js +2 -2
- package/Components/TabContent.js +1 -1
- package/Components/TabHeader.js +1 -1
- package/Components/TableResize.d.ts +2 -2
- package/Components/TableResize.js +5 -5
- package/Components/TextWithIcon.d.ts +1 -1
- package/Components/TextWithIcon.js +10 -8
- package/Components/ToggleThemeMenu.d.ts +2 -2
- package/Components/ToggleThemeMenu.js +3 -3
- package/Components/TreeTable.d.ts +18 -18
- package/Components/TreeTable.js +76 -72
- package/Components/UploadImage.d.ts +2 -2
- package/Components/UploadImage.js +25 -21
- package/Components/Utils.d.ts +42 -22
- package/Components/Utils.js +66 -65
- package/Components/withWidth.d.ts +2 -2
- package/Components/withWidth.js +10 -6
- package/Dialogs/ComplexCron.d.ts +2 -2
- package/Dialogs/ComplexCron.js +3 -3
- package/Dialogs/Confirm.d.ts +4 -4
- package/Dialogs/Confirm.js +18 -8
- package/Dialogs/Cron.d.ts +3 -3
- package/Dialogs/Cron.js +21 -17
- package/Dialogs/Error.d.ts +3 -3
- package/Dialogs/Error.js +6 -4
- package/Dialogs/Message.d.ts +3 -3
- package/Dialogs/Message.js +6 -4
- package/Dialogs/SelectFile.d.ts +4 -4
- package/Dialogs/SelectFile.js +6 -4
- package/Dialogs/SelectID.d.ts +12 -10
- package/Dialogs/SelectID.js +12 -8
- package/Dialogs/SimpleCron.d.ts +2 -2
- package/Dialogs/SimpleCron.js +2 -2
- package/Dialogs/TextInput.d.ts +2 -2
- package/Dialogs/TextInput.js +3 -3
- package/GenericApp.d.ts +19 -13
- package/GenericApp.js +128 -85
- package/LegacyConnection.d.ts +240 -248
- package/LegacyConnection.js +500 -525
- package/README.md +1234 -1170
- package/Theme.d.ts +1 -1
- package/Theme.js +9 -12
- package/assets/devices.json +1 -0
- package/assets/rooms.json +1 -0
- package/craco-module-federation.js +3 -12
- package/i18n/de.json +434 -434
- package/i18n/en.json +434 -434
- package/i18n/es.json +434 -434
- package/i18n/fr.json +434 -434
- package/i18n/it.json +434 -434
- package/i18n/nl.json +434 -434
- package/i18n/pl.json +434 -434
- package/i18n/pt.json +434 -434
- package/i18n/ru.json +434 -434
- package/i18n/uk.json +434 -434
- package/i18n/zh-cn.json +434 -434
- package/i18n.d.ts +26 -19
- package/i18n.js +28 -22
- package/icons/IconAdapter.js +2 -2
- package/icons/IconAlias.js +2 -2
- package/icons/IconChannel.js +2 -2
- package/icons/IconClearFilter.js +2 -2
- package/icons/IconClosed.js +2 -2
- package/icons/IconCopy.js +2 -2
- package/icons/IconDevice.js +2 -2
- package/icons/IconDocument.js +2 -2
- package/icons/IconDocumentReadOnly.js +2 -2
- package/icons/IconExpert.js +2 -2
- package/icons/IconFx.js +2 -2
- package/icons/IconInstance.js +2 -2
- package/icons/IconLogout.js +2 -2
- package/icons/IconNoIcon.js +2 -2
- package/icons/IconOpen.d.ts +2 -2
- package/icons/IconOpen.js +2 -2
- package/icons/IconProps.d.ts +4 -3
- package/icons/IconState.d.ts +2 -2
- package/icons/IconState.js +2 -2
- package/index.css +3 -2
- package/package.json +1 -1
- package/src/Components/404.tsx +32 -31
- package/src/Components/ColorPicker.tsx +142 -114
- package/src/Components/ComplexCron.tsx +174 -137
- package/src/Components/CopyToClipboard.tsx +22 -9
- package/src/Components/CustomModal.tsx +76 -69
- package/src/Components/FileBrowser.tsx +959 -852
- package/src/Components/FileViewer.tsx +146 -127
- package/src/Components/Icon.tsx +80 -52
- package/src/Components/IconPicker.tsx +83 -67
- package/src/Components/IconSelector.tsx +159 -141
- package/src/Components/Image.tsx +43 -26
- package/src/Components/Loader.tsx +56 -32
- package/src/Components/Logo.tsx +62 -52
- package/src/Components/MDUtils.tsx +10 -6
- package/src/Components/ObjectBrowser.tsx +3198 -2478
- package/src/Components/Router.tsx +11 -11
- package/src/Components/SaveCloseButtons.tsx +43 -39
- package/src/Components/Schedule.tsx +1091 -853
- package/src/Components/SelectWithIcon.tsx +135 -93
- package/src/Components/TabContainer.tsx +21 -19
- package/src/Components/TabContent.tsx +13 -12
- package/src/Components/TabHeader.tsx +10 -9
- package/src/Components/TableResize.tsx +52 -37
- package/src/Components/TextWithIcon.tsx +30 -19
- package/src/Components/ToggleThemeMenu.tsx +31 -13
- package/src/Components/TreeTable.tsx +468 -385
- package/src/Components/UploadImage.tsx +153 -121
- package/src/Components/Utils.tsx +135 -127
- package/src/Components/loader.css +40 -31
- package/src/Components/withWidth.tsx +23 -12
- package/src/Connection.tsx +1 -3
- package/src/Dialogs/ComplexCron.tsx +55 -61
- package/src/Dialogs/Confirm.tsx +88 -65
- package/src/Dialogs/Cron.tsx +122 -112
- package/src/Dialogs/Error.tsx +37 -42
- package/src/Dialogs/Message.tsx +39 -37
- package/src/Dialogs/SelectFile.tsx +95 -85
- package/src/Dialogs/SelectID.tsx +141 -129
- package/src/Dialogs/SimpleCron.tsx +44 -44
- package/src/Dialogs/TextInput.tsx +60 -68
- package/src/GenericApp.tsx +342 -242
- package/src/LegacyConnection.tsx +972 -842
- package/src/Prompt.tsx +3 -1
- package/src/Theme.tsx +19 -26
- package/src/icons/IconAdapter.tsx +16 -14
- package/src/icons/IconAlias.tsx +16 -14
- package/src/icons/IconChannel.tsx +55 -16
- package/src/icons/IconClearFilter.tsx +17 -15
- package/src/icons/IconClosed.tsx +16 -11
- package/src/icons/IconCopy.tsx +16 -11
- package/src/icons/IconDevice.tsx +121 -22
- package/src/icons/IconDocument.tsx +16 -11
- package/src/icons/IconDocumentReadOnly.tsx +21 -12
- package/src/icons/IconExpert.tsx +20 -12
- package/src/icons/IconFx.tsx +16 -14
- package/src/icons/IconInstance.tsx +16 -14
- package/src/icons/IconLogout.tsx +20 -18
- package/src/icons/IconNoIcon.tsx +16 -14
- package/src/icons/IconOpen.tsx +17 -12
- package/src/icons/IconProps.tsx +4 -3
- package/src/icons/IconState.tsx +34 -13
- package/src/index.css +3 -2
- package/tasks.js +91 -0
- package/types.d.ts +141 -0
- package/Components/Loaders/PT.css +0 -109
- package/Components/Loaders/Vendor.css +0 -13
- package/Components/loader.css +0 -222
- package/Components/types.d.ts +0 -82
- package/assets/devices/Alarm Systems.svg +0 -19
- package/assets/devices/Amplifier.svg +0 -22
- package/assets/devices/Awnings.svg +0 -5
- package/assets/devices/Battery Status.svg +0 -5
- package/assets/devices/Ceiling Spotlights.svg +0 -16
- package/assets/devices/Chandelier.svg +0 -7
- package/assets/devices/Climate.svg +0 -12
- package/assets/devices/Coffee Makers.svg +0 -6
- package/assets/devices/Cold Water.svg +0 -31
- package/assets/devices/Computer.svg +0 -21
- package/assets/devices/Consumption.svg +0 -8
- package/assets/devices/Curtains.svg +0 -43
- package/assets/devices/Dishwashers.svg +0 -12
- package/assets/devices/Doors.svg +0 -6
- package/assets/devices/Doorstep.svg +0 -35
- package/assets/devices/Dryer.svg +0 -14
- package/assets/devices/Fan.svg +0 -20
- package/assets/devices/Floor Lamps.svg +0 -5
- package/assets/devices/Garage Doors.svg +0 -9
- package/assets/devices/Gates.svg +0 -32
- package/assets/devices/Hairdryer.svg +0 -23
- package/assets/devices/Handle.svg +0 -6
- package/assets/devices/Hanging Lamps.svg +0 -9
- package/assets/devices/Heater.svg +0 -44
- package/assets/devices/Hoods.svg +0 -12
- package/assets/devices/Hot Water.svg +0 -10
- package/assets/devices/Humidity.svg +0 -41
- package/assets/devices/Iron.svg +0 -5
- package/assets/devices/Irrigation.svg +0 -23
- package/assets/devices/Led Strip.svg +0 -31
- package/assets/devices/Light.svg +0 -30
- package/assets/devices/Lightings.svg +0 -46
- package/assets/devices/Lock.svg +0 -19
- package/assets/devices/Louvre.svg +0 -7
- package/assets/devices/Mowing Machine.svg +0 -9
- package/assets/devices/Music.svg +0 -13
- package/assets/devices/Outdoor Blinds.svg +0 -7
- package/assets/devices/People.svg +0 -19
- package/assets/devices/Pool.svg +0 -8
- package/assets/devices/Power Consumption.svg +0 -13
- package/assets/devices/Printer.svg +0 -10
- package/assets/devices/Pump.svg +0 -10
- package/assets/devices/Receiver.svg +0 -19
- package/assets/devices/Sconces.svg +0 -10
- package/assets/devices/Security.svg +0 -34
- package/assets/devices/Shading.svg +0 -5
- package/assets/devices/Shutters.svg +0 -11
- package/assets/devices/SmokeDetector.svg +0 -13
- package/assets/devices/Sockets.svg +0 -13
- package/assets/devices/Speaker.svg +0 -35
- package/assets/devices/Stove.svg +0 -12
- package/assets/devices/Table Lamps.svg +0 -12
- package/assets/devices/Temperature Sensors.svg +0 -28
- package/assets/devices/Tv.svg +0 -8
- package/assets/devices/Vacuum Cleaner.svg +0 -16
- package/assets/devices/Ventilation.svg +0 -12
- package/assets/devices/Washing Machines.svg +0 -16
- package/assets/devices/Water Consumption.svg +0 -6
- package/assets/devices/Water Heater.svg +0 -8
- package/assets/devices/Water.svg +0 -40
- package/assets/devices/Weather.svg +0 -28
- package/assets/devices/Window.svg +0 -8
- package/assets/rooms/Anteroom.svg +0 -53
- package/assets/rooms/Attic.svg +0 -21
- package/assets/rooms/Balcony.svg +0 -13
- package/assets/rooms/Barn.svg +0 -6
- package/assets/rooms/Basement.svg +0 -5
- package/assets/rooms/Bathroom.svg +0 -38
- package/assets/rooms/Bedroom.svg +0 -5
- package/assets/rooms/Boiler Room.svg +0 -13
- package/assets/rooms/Carport.svg +0 -17
- package/assets/rooms/Cellar.svg +0 -89
- package/assets/rooms/Chamber.svg +0 -9
- package/assets/rooms/Corridor.svg +0 -53
- package/assets/rooms/Dining Area.svg +0 -37
- package/assets/rooms/Dining Room.svg +0 -37
- package/assets/rooms/Dining.svg +0 -37
- package/assets/rooms/Dressing Room.svg +0 -5
- package/assets/rooms/Driveway.svg +0 -15
- package/assets/rooms/Entrance.svg +0 -44
- package/assets/rooms/Equipment Room.svg +0 -15
- package/assets/rooms/Front Yard.svg +0 -64
- package/assets/rooms/Gallery.svg +0 -14
- package/assets/rooms/Garage.svg +0 -20
- package/assets/rooms/Garden.svg +0 -13
- package/assets/rooms/Ground Floor.svg +0 -95
- package/assets/rooms/Guest Bathroom.svg +0 -33
- package/assets/rooms/Guest Room.svg +0 -5
- package/assets/rooms/Gym.svg +0 -5
- package/assets/rooms/Hall.svg +0 -19
- package/assets/rooms/Home Theater.svg +0 -8
- package/assets/rooms/Kitchen.svg +0 -18
- package/assets/rooms/Laundry Room.svg +0 -12
- package/assets/rooms/Living Area.svg +0 -11
- package/assets/rooms/Living Room.svg +0 -10
- package/assets/rooms/Locker Room.svg +0 -17
- package/assets/rooms/Nursery.svg +0 -5
- package/assets/rooms/Office.svg +0 -8
- package/assets/rooms/Outdoors.svg +0 -7
- package/assets/rooms/Playroom.svg +0 -6
- package/assets/rooms/Pool.svg +0 -8
- package/assets/rooms/Rear Wall.svg +0 -30
- package/assets/rooms/Second Floor.svg +0 -95
- package/assets/rooms/Shed.svg +0 -16
- package/assets/rooms/Sleeping Area.svg +0 -22
- package/assets/rooms/Stairway.svg +0 -5
- package/assets/rooms/Stairwell.svg +0 -15
- package/assets/rooms/Storeroom.svg +0 -5
- package/assets/rooms/Summer House.svg +0 -27
- package/assets/rooms/Swimming Pool.svg +0 -21
- package/assets/rooms/Terrace.svg +0 -7
- package/assets/rooms/Toilet.svg +0 -10
- package/assets/rooms/Upstairs.svg +0 -6
- package/assets/rooms/Wardrobe.svg +0 -60
- package/assets/rooms/Washroom.svg +0 -20
- package/assets/rooms/Wc.svg +0 -10
- package/assets/rooms/Windscreen.svg +0 -60
- package/assets/rooms/Workshop.svg +0 -23
- 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?:
|
|
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
|
-
|
|
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
|
-
*
|
|
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
|
|
214
|
-
{
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
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
|
|
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
|
-
|
|
265
|
-
|
|
266
|
-
|
|
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
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
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
|
-
|
|
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
|
|