@iobroker/adapter-react-v5 7.0.1 → 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 +16 -15
- 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 +173 -164
- 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 +244 -241
- 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 +123 -110
- package/Components/Loaders/Vendor.d.ts +2 -2
- package/Components/Loaders/Vendor.js +22 -14
- package/Components/Logo.js +16 -18
- package/Components/MDUtils.d.ts +1 -1
- package/Components/MDUtils.js +8 -4
- package/Components/ObjectBrowser.d.ts +49 -38
- package/Components/ObjectBrowser.js +757 -494
- 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 +330 -326
- 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 +177 -134
- package/LICENSE +22 -22
- package/LegacyConnection.d.ts +240 -248
- package/LegacyConnection.js +500 -525
- package/Prompt.js +7 -7
- package/README.md +1239 -1166
- package/Theme.d.ts +1 -1
- package/Theme.js +9 -12
- package/assets/devices.json +1 -0
- package/assets/lamp_ceiling.svg +8 -8
- package/assets/lamp_table.svg +7 -7
- package/assets/no_icon.svg +9 -9
- package/assets/rooms.json +1 -0
- package/craco-module-federation.js +62 -71
- package/i18n/de.json +434 -431
- package/i18n/en.json +434 -431
- package/i18n/es.json +434 -431
- package/i18n/fr.json +434 -431
- package/i18n/it.json +434 -431
- package/i18n/nl.json +434 -431
- package/i18n/pl.json +434 -431
- package/i18n/pt.json +434 -431
- package/i18n/ru.json +434 -431
- package/i18n/uk.json +434 -431
- package/i18n/zh-cn.json +434 -431
- 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 +56 -55
- package/modulefederation.admin.config.js +31 -31
- package/package.json +5 -5
- package/src/AdminConnection.tsx +3 -3
- package/src/Components/404.tsx +122 -121
- package/src/Components/ColorPicker.tsx +343 -315
- package/src/Components/ComplexCron.tsx +544 -507
- package/src/Components/CopyToClipboard.tsx +178 -165
- package/src/Components/CustomModal.tsx +170 -163
- package/src/Components/FileBrowser.tsx +2550 -2414
- package/src/Components/FileViewer.tsx +412 -393
- package/src/Components/Icon.tsx +238 -210
- package/src/Components/IconPicker.tsx +165 -149
- package/src/Components/IconSelector.tsx +2220 -2202
- package/src/Components/Image.tsx +193 -176
- package/src/Components/Loader.tsx +328 -304
- package/src/Components/Logo.tsx +176 -166
- package/src/Components/MDUtils.tsx +104 -100
- package/src/Components/ObjectBrowser.tsx +8935 -8032
- package/src/Components/Router.tsx +90 -90
- package/src/Components/SaveCloseButtons.tsx +117 -113
- package/src/Components/Schedule.tsx +1962 -1724
- package/src/Components/SelectWithIcon.tsx +239 -197
- package/src/Components/TabContainer.tsx +57 -55
- package/src/Components/TabContent.tsx +38 -37
- package/src/Components/TabHeader.tsx +20 -19
- package/src/Components/TableResize.tsx +274 -259
- package/src/Components/TextWithIcon.tsx +159 -148
- package/src/Components/ToggleThemeMenu.tsx +52 -34
- package/src/Components/TreeTable.tsx +1002 -919
- package/src/Components/UploadImage.tsx +631 -599
- package/src/Components/Utils.tsx +1802 -1794
- package/src/Components/loader.css +231 -222
- package/src/Components/withWidth.tsx +32 -21
- package/src/Connection.tsx +5 -7
- package/src/Dialogs/ComplexCron.tsx +123 -129
- package/src/Dialogs/Confirm.tsx +185 -162
- package/src/Dialogs/Cron.tsx +192 -182
- package/src/Dialogs/Error.tsx +67 -72
- package/src/Dialogs/Message.tsx +73 -71
- package/src/Dialogs/SelectFile.tsx +280 -270
- package/src/Dialogs/SelectID.tsx +310 -298
- package/src/Dialogs/SimpleCron.tsx +100 -100
- package/src/Dialogs/TextInput.tsx +99 -107
- package/src/GenericApp.tsx +1076 -976
- package/src/LegacyConnection.tsx +3719 -3589
- package/src/Prompt.tsx +22 -20
- package/src/Theme.tsx +472 -479
- package/src/icons/IconAdapter.tsx +22 -20
- package/src/icons/IconAlias.tsx +22 -20
- package/src/icons/IconChannel.tsx +60 -21
- package/src/icons/IconClearFilter.tsx +24 -22
- package/src/icons/IconClosed.tsx +22 -17
- package/src/icons/IconCopy.tsx +21 -16
- package/src/icons/IconDevice.tsx +126 -27
- package/src/icons/IconDocument.tsx +22 -17
- package/src/icons/IconDocumentReadOnly.tsx +27 -18
- package/src/icons/IconExpert.tsx +26 -18
- package/src/icons/IconFx.tsx +38 -36
- package/src/icons/IconInstance.tsx +22 -20
- package/src/icons/IconLogout.tsx +32 -30
- package/src/icons/IconNoIcon.tsx +21 -19
- package/src/icons/IconOpen.tsx +22 -17
- package/src/icons/IconProps.tsx +16 -15
- package/src/icons/IconState.tsx +38 -17
- package/src/index.css +56 -55
- package/tasks.js +91 -0
- package/types.d.ts +141 -134
- 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
package/Components/404.d.ts
CHANGED
package/Components/404.js
CHANGED
|
@@ -28,17 +28,17 @@ const styles = {
|
|
|
28
28
|
fontFamily: "'Inconsolata', Helvetica, sans-serif",
|
|
29
29
|
fontSize: '1.5rem',
|
|
30
30
|
color: 'rgba(128, 175, 255, 0.8)',
|
|
31
|
-
textShadow: `0 0 1ex rgba(51, 70, 255, 1),
|
|
31
|
+
textShadow: `0 0 1ex rgba(51, 70, 255, 1),
|
|
32
32
|
0 0 2px rgba(255, 255, 255, 0.8)`,
|
|
33
33
|
},
|
|
34
34
|
overlay: {
|
|
35
35
|
pointerEvents: 'none',
|
|
36
36
|
width: '100%',
|
|
37
37
|
height: '100%',
|
|
38
|
-
background: `repeating-linear-gradient(
|
|
39
|
-
180deg,
|
|
40
|
-
rgba(0, 0, 0, 0) 0,
|
|
41
|
-
rgba(0, 0, 0, 0.3) 50%,
|
|
38
|
+
background: `repeating-linear-gradient(
|
|
39
|
+
180deg,
|
|
40
|
+
rgba(0, 0, 0, 0) 0,
|
|
41
|
+
rgba(0, 0, 0, 0.3) 50%,
|
|
42
42
|
rgba(0, 0, 0, 0) 100%)`,
|
|
43
43
|
backgroundSize: 'auto 4px',
|
|
44
44
|
zIndex: 99,
|
|
@@ -53,12 +53,12 @@ const styles = {
|
|
|
53
53
|
bottom: 0,
|
|
54
54
|
width: '100%',
|
|
55
55
|
height: '100%',
|
|
56
|
-
backgroundImage: `linear-gradient(
|
|
57
|
-
0deg,
|
|
58
|
-
transparent 0%,
|
|
59
|
-
rgba(32, 50, 128, 0.2) 2%,
|
|
60
|
-
rgba(32, 50, 128, 0.8) 3%,
|
|
61
|
-
rgba(32, 50, 128, 0.2) 3%,
|
|
56
|
+
backgroundImage: `linear-gradient(
|
|
57
|
+
0deg,
|
|
58
|
+
transparent 0%,
|
|
59
|
+
rgba(32, 50, 128, 0.2) 2%,
|
|
60
|
+
rgba(32, 50, 128, 0.8) 3%,
|
|
61
|
+
rgba(32, 50, 128, 0.2) 3%,
|
|
62
62
|
transparent 100%)`,
|
|
63
63
|
backgroundRepeat: 'no-repeat',
|
|
64
64
|
animation: 'scan 7.5s linear 0s infinite',
|
|
@@ -75,8 +75,8 @@ const styles = {
|
|
|
75
75
|
},
|
|
76
76
|
output: {
|
|
77
77
|
color: 'rgba(128, 175, 255, 0.8)',
|
|
78
|
-
textShadow: `
|
|
79
|
-
0 0 1px rgba(51, 70, 255, 0.4),
|
|
78
|
+
textShadow: `
|
|
79
|
+
0 0 1px rgba(51, 70, 255, 0.4),
|
|
80
80
|
0 0 2px rgba(255, 255, 255, 0.8)`,
|
|
81
81
|
'&::before': {
|
|
82
82
|
content: '"> "',
|
|
@@ -86,8 +86,9 @@ const styles = {
|
|
|
86
86
|
color: 'white',
|
|
87
87
|
},
|
|
88
88
|
};
|
|
89
|
+
/** Generates the 404 error page */
|
|
89
90
|
function Page404() {
|
|
90
|
-
return react_1.default.createElement("div", { style: styles.content },
|
|
91
|
+
return (react_1.default.createElement("div", { style: styles.content },
|
|
91
92
|
react_1.default.createElement("div", { style: styles.root },
|
|
92
93
|
react_1.default.createElement(material_1.Box, { component: "div", sx: styles.overlay },
|
|
93
94
|
react_1.default.createElement("div", { style: styles.terminal },
|
|
@@ -95,6 +96,6 @@ function Page404() {
|
|
|
95
96
|
i18n_1.default.t('ra_Error'),
|
|
96
97
|
react_1.default.createElement("span", { style: styles.errorCode }, "404")),
|
|
97
98
|
react_1.default.createElement(material_1.Box, { component: "p", sx: styles.output }, i18n_1.default.t('ra_The page you are looking for was not found')),
|
|
98
|
-
react_1.default.createElement(material_1.Box, { component: "p", sx: styles.output }, i18n_1.default.t('ra_Good luck'))))));
|
|
99
|
+
react_1.default.createElement(material_1.Box, { component: "p", sx: styles.output }, i18n_1.default.t('ra_Good luck')))))));
|
|
99
100
|
}
|
|
100
101
|
exports.default = Page404;
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import React, { Component } from 'react';
|
|
16
|
+
import React, { Component, type CSSProperties } from 'react';
|
|
17
17
|
import { type RGBColor } from 'react-color';
|
|
18
|
-
import { IobTheme } from '../types';
|
|
18
|
+
import type { IobTheme } from '../types';
|
|
19
19
|
interface ColorPickerProps {
|
|
20
20
|
/** Set to true to disable the color picker. */
|
|
21
21
|
disabled?: boolean;
|
|
@@ -30,7 +30,7 @@ interface ColorPickerProps {
|
|
|
30
30
|
/** @deprecated TLabel of the color picker use label */
|
|
31
31
|
name?: string;
|
|
32
32
|
/** Additional styling for this component. */
|
|
33
|
-
style?:
|
|
33
|
+
style?: CSSProperties;
|
|
34
34
|
/** The CSS class name. */
|
|
35
35
|
className?: string;
|
|
36
36
|
customPalette?: string[];
|
|
@@ -44,29 +44,43 @@ interface ColorPickerState {
|
|
|
44
44
|
color: string | RGBColor;
|
|
45
45
|
anchorEl: HTMLDivElement | null;
|
|
46
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* A color picker component.
|
|
49
|
+
*/
|
|
47
50
|
declare class ColorPicker extends Component<ColorPickerProps, ColorPickerState> {
|
|
51
|
+
/**
|
|
52
|
+
* Constructor for the color picker.
|
|
53
|
+
*
|
|
54
|
+
* @param props The properties.
|
|
55
|
+
*/
|
|
48
56
|
constructor(props: ColorPickerProps);
|
|
49
57
|
private handleClick;
|
|
50
58
|
private handleClose;
|
|
51
59
|
/**
|
|
52
60
|
* Convert the given color to hex ('#rrggbb') or rgba ('rgba(r,g,b,a)') format.
|
|
61
|
+
*
|
|
62
|
+
* @param color The color to convert.
|
|
63
|
+
* @param isHex If true, the color will be converted to hex format.
|
|
53
64
|
* @returns the hex or rgba representation of the given color.
|
|
54
65
|
*/
|
|
55
66
|
static getColor(color: string | {
|
|
56
67
|
rgb: RGBColor;
|
|
57
|
-
} | RGBColor,
|
|
58
|
-
/** The returning string should be in hex format */
|
|
59
|
-
isHex?: boolean): string;
|
|
68
|
+
} | RGBColor, isHex?: boolean): string;
|
|
60
69
|
/**
|
|
61
70
|
* Convert rgb() or rgba() format to hex format #rrggbb.
|
|
71
|
+
*
|
|
72
|
+
* @param rgb The color in rgb() or rgba() format. if not in this format, the color will be returned as is.
|
|
62
73
|
*/
|
|
63
74
|
static rgb2hex(rgb: string): string;
|
|
64
75
|
private handleChange;
|
|
65
76
|
/**
|
|
66
|
-
*
|
|
77
|
+
* If the props are updated from outside, they should override the state
|
|
78
|
+
*
|
|
79
|
+
* @param _prevProps The previous properties.
|
|
80
|
+
* @param prevState The previous state.
|
|
67
81
|
*/
|
|
68
82
|
componentDidUpdate(_prevProps: ColorPickerProps, prevState: ColorPickerState): void;
|
|
69
|
-
renderCustomPalette(): React.JSX.Element;
|
|
83
|
+
renderCustomPalette(): React.JSX.Element | null;
|
|
70
84
|
render(): React.JSX.Element;
|
|
71
85
|
}
|
|
72
86
|
export default ColorPicker;
|
|
@@ -111,7 +111,15 @@ const styles = {
|
|
|
111
111
|
minHeight: 32,
|
|
112
112
|
},
|
|
113
113
|
};
|
|
114
|
+
/**
|
|
115
|
+
* A color picker component.
|
|
116
|
+
*/
|
|
114
117
|
class ColorPicker extends react_1.Component {
|
|
118
|
+
/**
|
|
119
|
+
* Constructor for the color picker.
|
|
120
|
+
*
|
|
121
|
+
* @param props The properties.
|
|
122
|
+
*/
|
|
115
123
|
constructor(props) {
|
|
116
124
|
super(props);
|
|
117
125
|
this.handleClick = (e) => {
|
|
@@ -134,11 +142,12 @@ class ColorPicker extends react_1.Component {
|
|
|
134
142
|
}
|
|
135
143
|
/**
|
|
136
144
|
* Convert the given color to hex ('#rrggbb') or rgba ('rgba(r,g,b,a)') format.
|
|
145
|
+
*
|
|
146
|
+
* @param color The color to convert.
|
|
147
|
+
* @param isHex If true, the color will be converted to hex format.
|
|
137
148
|
* @returns the hex or rgba representation of the given color.
|
|
138
149
|
*/
|
|
139
|
-
static getColor(color,
|
|
140
|
-
/** The returning string should be in hex format */
|
|
141
|
-
isHex) {
|
|
150
|
+
static getColor(color, isHex) {
|
|
142
151
|
if (color && typeof color === 'object') {
|
|
143
152
|
const oColor = color;
|
|
144
153
|
if (oColor.rgb) {
|
|
@@ -153,10 +162,15 @@ class ColorPicker extends react_1.Component {
|
|
|
153
162
|
}
|
|
154
163
|
return `rgba(${rColor.r},${rColor.g},${rColor.b},${rColor.a})`;
|
|
155
164
|
}
|
|
156
|
-
|
|
165
|
+
if (typeof color === 'string') {
|
|
166
|
+
return isHex ? ColorPicker.rgb2hex(color || '') : color || '';
|
|
167
|
+
}
|
|
168
|
+
return '';
|
|
157
169
|
}
|
|
158
170
|
/**
|
|
159
171
|
* Convert rgb() or rgba() format to hex format #rrggbb.
|
|
172
|
+
*
|
|
173
|
+
* @param rgb The color in rgb() or rgba() format. if not in this format, the color will be returned as is.
|
|
160
174
|
*/
|
|
161
175
|
static rgb2hex(rgb) {
|
|
162
176
|
const m = rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);
|
|
@@ -169,7 +183,10 @@ class ColorPicker extends react_1.Component {
|
|
|
169
183
|
return rgb;
|
|
170
184
|
}
|
|
171
185
|
/**
|
|
172
|
-
*
|
|
186
|
+
* If the props are updated from outside, they should override the state
|
|
187
|
+
*
|
|
188
|
+
* @param _prevProps The previous properties.
|
|
189
|
+
* @param prevState The previous state.
|
|
173
190
|
*/
|
|
174
191
|
componentDidUpdate(_prevProps, prevState) {
|
|
175
192
|
const color = ColorPicker.getColor(this.props.color || this.props.value || '');
|
|
@@ -181,28 +198,28 @@ class ColorPicker extends react_1.Component {
|
|
|
181
198
|
if (!this.props.customPalette) {
|
|
182
199
|
return null;
|
|
183
200
|
}
|
|
184
|
-
return react_1.default.createElement("div", { style: { width: '100%', display: 'flex', flexWrap: 'wrap' } }, this.props.customPalette.map(color => react_1.default.createElement(material_1.Button, { style: styles.button, key: color, onClick: () => {
|
|
201
|
+
return (react_1.default.createElement("div", { style: { width: '100%', display: 'flex', flexWrap: 'wrap' } }, this.props.customPalette.map(color => (react_1.default.createElement(material_1.Button, { style: styles.button, key: color, onClick: () => {
|
|
185
202
|
this.handleChange(color);
|
|
186
203
|
setTimeout(() => this.handleClose(), 300);
|
|
187
204
|
} },
|
|
188
|
-
react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.iconButton), { background: color }) }))));
|
|
205
|
+
react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.iconButton), { background: color }) }))))));
|
|
189
206
|
}
|
|
190
207
|
render() {
|
|
191
208
|
var _a;
|
|
192
209
|
const style = Object.assign({}, (this.props.style || {}));
|
|
193
210
|
style.position = 'relative';
|
|
194
211
|
const { color } = this.state;
|
|
195
|
-
return react_1.default.createElement(material_1.Box, { component: "div", style: style, sx: this.props.sx || undefined, className: this.props.className || '' },
|
|
196
|
-
this.props.noInputField ? null : react_1.default.createElement(material_1.TextField, { disabled: this.props.disabled, variant: "standard", id: "ar_color_picker_name", label: this.props.label || this.props.name, value: color || '', margin: "dense", sx: {
|
|
212
|
+
return (react_1.default.createElement(material_1.Box, { component: "div", style: style, sx: this.props.sx || undefined, className: this.props.className || '' },
|
|
213
|
+
this.props.noInputField ? null : (react_1.default.createElement(material_1.TextField, { disabled: this.props.disabled, variant: "standard", id: "ar_color_picker_name", label: this.props.label || this.props.name, value: color || '', margin: "dense", sx: {
|
|
197
214
|
'&.MuiFormControl-root': styles.textDense,
|
|
198
215
|
width: color ? 'calc(100% - 80px)' : 'calc(100% - 56px)',
|
|
199
216
|
mr: color ? undefined : 1,
|
|
200
|
-
}, onChange: e => this.handleChange(e.target.value) }),
|
|
201
|
-
!this.props.noInputField && color ? react_1.default.createElement(material_1.IconButton, { disabled: this.props.disabled, onClick: () => this.handleChange(''), size: "small", style: Object.assign(Object.assign({}, (this.props.label || this.props.name ? styles.delButton : undefined)), (color ? undefined : { opacity: 0, cursor: 'default' })) },
|
|
202
|
-
react_1.default.createElement(icons_material_1.Delete, null)) : null,
|
|
217
|
+
}, onChange: e => this.handleChange(e.target.value) })),
|
|
218
|
+
!this.props.noInputField && color ? (react_1.default.createElement(material_1.IconButton, { disabled: this.props.disabled, onClick: () => this.handleChange(''), size: "small", style: Object.assign(Object.assign({}, (this.props.label || this.props.name ? styles.delButton : undefined)), (color ? undefined : { opacity: 0, cursor: 'default' })) },
|
|
219
|
+
react_1.default.createElement(icons_material_1.Delete, null))) : null,
|
|
203
220
|
react_1.default.createElement(material_1.Box, { component: "div", onClick: e => !this.props.disabled && this.handleClick(e), title: i18n_1.default.t('ra_Select color'), sx: Object.assign(Object.assign(Object.assign({}, styles.swatch), (this.props.disabled ? styles.swatchDisabled : undefined)), { background: color ? undefined : 'transparent', border: color ? undefined : '1px dashed #ccc', boxSizing: 'border-box', marginTop: this.props.noInputField || !(this.props.label || this.props.name) ? 0 : undefined }) },
|
|
204
|
-
react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.color), { background: ColorPicker.getColor(color), width: this.props.noInputField ?
|
|
205
|
-
this.state.displayColorPicker && !this.props.disabled ? react_1.default.createElement(material_1.Menu, { sx: Object.assign(Object.assign({}, styles.popover), { '&. MuiMenu-list': styles.popoverList }), anchorEl: this.state.anchorEl, open: !0, onClose: () => this.handleClose() },
|
|
221
|
+
react_1.default.createElement("div", { style: Object.assign(Object.assign({}, styles.color), { background: ColorPicker.getColor(color), width: this.props.noInputField ? this.props.barWidth || 16 : this.props.barWidth || 36 }) })),
|
|
222
|
+
this.state.displayColorPicker && !this.props.disabled ? (react_1.default.createElement(material_1.Menu, { sx: Object.assign(Object.assign({}, styles.popover), { '&. MuiMenu-list': styles.popoverList }), anchorEl: this.state.anchorEl, open: !0, onClose: () => this.handleClose() },
|
|
206
223
|
react_1.default.createElement(react_color_1.ChromePicker, { color: this.state.color || undefined, onChangeComplete: (_color) => this.handleChange(_color.rgb), styles: {
|
|
207
224
|
default: {
|
|
208
225
|
picker: {
|
|
@@ -210,11 +227,11 @@ class ColorPicker extends react_1.Component {
|
|
|
210
227
|
},
|
|
211
228
|
},
|
|
212
229
|
} }),
|
|
213
|
-
color && this.props.noInputField ? react_1.default.createElement(material_1.IconButton, { sx: styles.closeButton, onClick: () => this.handleChange('') },
|
|
214
|
-
react_1.default.createElement(icons_material_1.Delete, null)) : null,
|
|
230
|
+
color && this.props.noInputField ? (react_1.default.createElement(material_1.IconButton, { sx: styles.closeButton, onClick: () => this.handleChange('') },
|
|
231
|
+
react_1.default.createElement(icons_material_1.Delete, null))) : null,
|
|
215
232
|
react_1.default.createElement(material_1.IconButton, { sx: styles.closeButton, onClick: () => this.handleClose() },
|
|
216
233
|
react_1.default.createElement(icons_material_1.Close, null)),
|
|
217
|
-
this.renderCustomPalette()) : null);
|
|
234
|
+
this.renderCustomPalette())) : null));
|
|
218
235
|
}
|
|
219
236
|
}
|
|
220
237
|
exports.default = ColorPicker;
|
|
@@ -62,16 +62,7 @@ const styles = {
|
|
|
62
62
|
color: 'white',
|
|
63
63
|
},
|
|
64
64
|
};
|
|
65
|
-
const WEEKDAYS = [
|
|
66
|
-
'Sunday',
|
|
67
|
-
'Monday',
|
|
68
|
-
'Tuesday',
|
|
69
|
-
'Wednesday',
|
|
70
|
-
'Thursday',
|
|
71
|
-
'Friday',
|
|
72
|
-
'Saturday',
|
|
73
|
-
'Sunday',
|
|
74
|
-
];
|
|
65
|
+
const WEEKDAYS = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
|
|
75
66
|
const MONTHS = [
|
|
76
67
|
'January',
|
|
77
68
|
'February',
|
|
@@ -172,8 +163,9 @@ function convertArrayIntoMinus(value, max) {
|
|
|
172
163
|
class ComplexCron extends react_1.Component {
|
|
173
164
|
constructor(props) {
|
|
174
165
|
super(props);
|
|
175
|
-
let cron = typeof this.props.cronExpression === 'string'
|
|
176
|
-
this.props.cronExpression.replace(/^["']/, '').replace(/["']\n?$/, '')
|
|
166
|
+
let cron = typeof this.props.cronExpression === 'string'
|
|
167
|
+
? this.props.cronExpression.replace(/^["']/, '').replace(/["']\n?$/, '')
|
|
168
|
+
: '';
|
|
177
169
|
if (cron[0] === '{') {
|
|
178
170
|
cron = '';
|
|
179
171
|
}
|
|
@@ -283,12 +275,13 @@ class ComplexCron extends react_1.Component {
|
|
|
283
275
|
react_1.default.createElement(material_1.Button, { key: "addall", variant: "contained",
|
|
284
276
|
// style={{paddingBottom: 20}}
|
|
285
277
|
style: styles.numberButton, color: "secondary", onClick: () => this.onToggle(true, type, max) }, i18n_1.default.t('ra_Select all')),
|
|
286
|
-
react_1.default.createElement("div", { key: "all" }, values.map(i => [
|
|
278
|
+
react_1.default.createElement("div", { key: "all" }, values.map(i => [
|
|
279
|
+
(max === 7 && i === 4) ||
|
|
287
280
|
(max === 12 && i === 7) ||
|
|
288
281
|
(max === 31 && !((i - 1) % 10)) ||
|
|
289
282
|
(max === 60 && i && !(i % 10)) ||
|
|
290
|
-
(max === 24 && i && !(i % 6)))
|
|
291
|
-
|
|
283
|
+
(max === 24 && i && !(i % 6)) ? (react_1.default.createElement("div", { key: `allInner${i}`, style: { width: '100%' } })) : null,
|
|
284
|
+
react_1.default.createElement(material_1.Button, { key: `_${i}`, variant: parts.indexOf(i) !== -1 ? 'contained' : 'outlined', style: styles.numberButton, color: parts.indexOf(i) !== -1 ? 'secondary' : 'primary', onClick: () => this.onToggle(i, type, max) }, max === 7 ? i18n_1.default.t(WEEKDAYS[i]) : max === 12 ? MONTHS[i - 1] : i),
|
|
292
285
|
])),
|
|
293
286
|
];
|
|
294
287
|
}
|
|
@@ -298,7 +291,7 @@ class ComplexCron extends react_1.Component {
|
|
|
298
291
|
let everyN = value === undefined || value === null ? false : value.toString().includes('/');
|
|
299
292
|
let select;
|
|
300
293
|
if (this.state.modes[type] === null) {
|
|
301
|
-
select = every ? 'every' :
|
|
294
|
+
select = every ? 'every' : everyN ? 'everyN' : 'specific';
|
|
302
295
|
const modes = JSON.parse(JSON.stringify(this.state.modes));
|
|
303
296
|
modes[type] = select;
|
|
304
297
|
setTimeout(() => this.setState({ modes }, () => this.recalcCron()), 100);
|
|
@@ -311,7 +304,7 @@ class ComplexCron extends react_1.Component {
|
|
|
311
304
|
if (everyN && value) {
|
|
312
305
|
valueNumber = parseInt(value.replace('*/', ''), 10) || 1;
|
|
313
306
|
}
|
|
314
|
-
return react_1.default.createElement("div", null,
|
|
307
|
+
return (react_1.default.createElement("div", null,
|
|
315
308
|
react_1.default.createElement(material_1.Select, { variant: "standard", style: Object.assign(Object.assign({}, styles.periodSelect), { verticalAlign: 'bottom' }), value: select, onChange: e => {
|
|
316
309
|
const modes = JSON.parse(JSON.stringify(this.state.modes));
|
|
317
310
|
modes[type] = e.target.value;
|
|
@@ -333,12 +326,19 @@ class ComplexCron extends react_1.Component {
|
|
|
333
326
|
react_1.default.createElement(material_1.MenuItem, { key: "every", value: "every" }, i18n_1.default.t(`sc_every_${type}`)),
|
|
334
327
|
react_1.default.createElement(material_1.MenuItem, { key: "everyN", value: "everyN" }, i18n_1.default.t(`sc_everyN_${type}`)),
|
|
335
328
|
react_1.default.createElement(material_1.MenuItem, { key: "specific", value: "specific" }, i18n_1.default.t(`sc_specific_${type}`))),
|
|
336
|
-
everyN &&
|
|
337
|
-
|
|
329
|
+
everyN && (react_1.default.createElement(material_1.TextField, { variant: "standard", key: "interval", label: i18n_1.default.t(`sc_${type}`), value: valueNumber, slotProps: {
|
|
330
|
+
htmlInput: {
|
|
331
|
+
min: 1,
|
|
332
|
+
max,
|
|
333
|
+
},
|
|
334
|
+
inputLabel: {
|
|
335
|
+
shrink: true,
|
|
336
|
+
},
|
|
337
|
+
}, onChange: e => {
|
|
338
338
|
// @ts-expect-error is allowed
|
|
339
339
|
this.setState({ [type]: `*/${e.target.value}` }, () => this.recalcCron());
|
|
340
|
-
},
|
|
341
|
-
!every && !everyN && this.getDigitsSelector(type, max));
|
|
340
|
+
}, type: "number", margin: "normal" })),
|
|
341
|
+
!every && !everyN && this.getDigitsSelector(type, max)));
|
|
342
342
|
}
|
|
343
343
|
static convertCronToText(cron, lang) {
|
|
344
344
|
if (cron.split(' ').includes('-')) {
|
|
@@ -391,14 +391,14 @@ class ComplexCron extends react_1.Component {
|
|
|
391
391
|
}
|
|
392
392
|
render() {
|
|
393
393
|
const tab = this.state.seconds !== false ? this.state.tab : this.state.tab + 1;
|
|
394
|
-
return react_1.default.createElement("div", { style: styles.mainDiv },
|
|
394
|
+
return (react_1.default.createElement("div", { style: styles.mainDiv },
|
|
395
395
|
react_1.default.createElement("div", { style: { paddingLeft: 8, width: '100%' } },
|
|
396
396
|
react_1.default.createElement(material_1.TextField, { variant: "standard", style: { width: '100%' }, value: this.state.cron, disabled: true })),
|
|
397
397
|
react_1.default.createElement("div", { style: { paddingLeft: 8, width: '100%', height: 60 } }, ComplexCron.convertCronToText(this.state.cron, this.props.language || 'en')),
|
|
398
398
|
react_1.default.createElement(material_1.FormControlLabel, { control: react_1.default.createElement(material_1.Checkbox, { checked: !!this.state.seconds, onChange: e => this.setState({ seconds: e.target.checked ? '*' : false }, () => this.recalcCron()) }), label: i18n_1.default.t('ra_use seconds') }),
|
|
399
399
|
react_1.default.createElement(material_1.AppBar, { position: "static", sx: { '&.MuiAppBar-root': styles.appBar }, color: "secondary" },
|
|
400
400
|
react_1.default.createElement(material_1.Tabs, { value: this.state.tab, style: styles.appBar, color: "secondary", onChange: (active, _tab) => this.setState({ tab: _tab }) },
|
|
401
|
-
this.state.seconds !== false && react_1.default.createElement(material_1.Tab, { id: "sc_seconds", label: i18n_1.default.t('sc_seconds') }),
|
|
401
|
+
this.state.seconds !== false && (react_1.default.createElement(material_1.Tab, { id: "sc_seconds", label: i18n_1.default.t('sc_seconds') })),
|
|
402
402
|
react_1.default.createElement(material_1.Tab, { id: "minutes", label: i18n_1.default.t('sc_minutes') }),
|
|
403
403
|
react_1.default.createElement(material_1.Tab, { id: "hours", label: i18n_1.default.t('sc_hours') }),
|
|
404
404
|
react_1.default.createElement(material_1.Tab, { id: "dates", label: i18n_1.default.t('sc_dates') }),
|
|
@@ -409,7 +409,7 @@ class ComplexCron extends react_1.Component {
|
|
|
409
409
|
tab === 2 && react_1.default.createElement("div", { style: styles.tabContent }, this.getPeriodsTab('hours', 24)),
|
|
410
410
|
tab === 3 && react_1.default.createElement("div", { style: styles.tabContent }, this.getPeriodsTab('dates', 31)),
|
|
411
411
|
tab === 4 && react_1.default.createElement("div", { style: styles.tabContent }, this.getPeriodsTab('months', 12)),
|
|
412
|
-
tab === 5 && react_1.default.createElement("div", { style: styles.tabContent }, this.getPeriodsTab('dow', 7)));
|
|
412
|
+
tab === 5 && react_1.default.createElement("div", { style: styles.tabContent }, this.getPeriodsTab('dow', 7))));
|
|
413
413
|
}
|
|
414
414
|
}
|
|
415
415
|
exports.default = ComplexCron;
|
|
@@ -1,6 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copy text to clipboard
|
|
3
|
+
*
|
|
4
|
+
* @param text Text to copy
|
|
5
|
+
* @param options Options
|
|
6
|
+
* @param options.debug Debug mode
|
|
7
|
+
* @param options.format Format of the data
|
|
8
|
+
* @param options.message Message to show in prompt
|
|
9
|
+
*/
|
|
1
10
|
declare function copy(text: string, options?: {
|
|
2
11
|
debug?: boolean;
|
|
3
|
-
format?:
|
|
12
|
+
format?: 'text/plain' | 'text/html';
|
|
4
13
|
message?: string;
|
|
5
14
|
}): boolean;
|
|
6
15
|
export default copy;
|
|
@@ -34,7 +34,8 @@ function deselectCurrent() {
|
|
|
34
34
|
for (let i = 0; i < selection.rangeCount; i++) {
|
|
35
35
|
ranges.push(selection.getRangeAt(i));
|
|
36
36
|
}
|
|
37
|
-
switch (active === null || active === void 0 ? void 0 : active.tagName.toUpperCase()
|
|
37
|
+
switch (active === null || active === void 0 ? void 0 : active.tagName.toUpperCase() // .toUpperCase handles XHTML
|
|
38
|
+
) {
|
|
38
39
|
case 'INPUT':
|
|
39
40
|
case 'TEXTAREA':
|
|
40
41
|
active.blur();
|
|
@@ -45,8 +46,7 @@ function deselectCurrent() {
|
|
|
45
46
|
}
|
|
46
47
|
selection.removeAllRanges();
|
|
47
48
|
return () => {
|
|
48
|
-
selection.type === 'Caret' &&
|
|
49
|
-
selection.removeAllRanges();
|
|
49
|
+
selection.type === 'Caret' && selection.removeAllRanges();
|
|
50
50
|
if (!selection.rangeCount) {
|
|
51
51
|
ranges.forEach(range => selection.addRange(range));
|
|
52
52
|
}
|
|
@@ -64,6 +64,15 @@ function format(message) {
|
|
|
64
64
|
const copyKey = `${/mac os x/i.test(navigator.userAgent) ? '⌘' : 'Ctrl'}+C`;
|
|
65
65
|
return message.replace(/#{\s*key\s*}/g, copyKey);
|
|
66
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Copy text to clipboard
|
|
69
|
+
*
|
|
70
|
+
* @param text Text to copy
|
|
71
|
+
* @param options Options
|
|
72
|
+
* @param options.debug Debug mode
|
|
73
|
+
* @param options.format Format of the data
|
|
74
|
+
* @param options.message Message to show in prompt
|
|
75
|
+
*/
|
|
67
76
|
function copy(text, options) {
|
|
68
77
|
let reselectPrevious;
|
|
69
78
|
let range;
|
|
@@ -89,23 +98,22 @@ function copy(text, options) {
|
|
|
89
98
|
// used to preserve spaces and line breaks
|
|
90
99
|
mark.style.whiteSpace = 'pre';
|
|
91
100
|
// do not inherit user-select (it may be `none`)
|
|
92
|
-
mark.style.webkitUserSelect = 'text';
|
|
93
|
-
mark.style.MozUserSelect = 'text';
|
|
94
|
-
mark.style.msUserSelect = 'text';
|
|
95
101
|
mark.style.userSelect = 'text';
|
|
96
102
|
mark.addEventListener('copy', e => {
|
|
97
103
|
var _a, _b, _c, _d;
|
|
98
104
|
e.stopPropagation();
|
|
99
105
|
if (options === null || options === void 0 ? void 0 : options.format) {
|
|
100
106
|
e.preventDefault();
|
|
101
|
-
if (typeof e.clipboardData === 'undefined') {
|
|
107
|
+
if (typeof e.clipboardData === 'undefined') {
|
|
108
|
+
// IE 11
|
|
102
109
|
debug && console.warn('unable to use e.clipboardData');
|
|
103
110
|
debug && console.warn('trying IE specific stuff');
|
|
104
111
|
(_a = window.clipboardData) === null || _a === void 0 ? void 0 : _a.clearData();
|
|
105
112
|
const _format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting.default;
|
|
106
113
|
(_b = window.clipboardData) === null || _b === void 0 ? void 0 : _b.setData(_format, text);
|
|
107
114
|
}
|
|
108
|
-
else {
|
|
115
|
+
else {
|
|
116
|
+
// all other browsers
|
|
109
117
|
(_c = e.clipboardData) === null || _c === void 0 ? void 0 : _c.clearData();
|
|
110
118
|
(_d = e.clipboardData) === null || _d === void 0 ? void 0 : _d.setData(options.format, text);
|
|
111
119
|
}
|
|
@@ -114,6 +122,7 @@ function copy(text, options) {
|
|
|
114
122
|
document.body.appendChild(mark);
|
|
115
123
|
range.selectNodeContents(mark);
|
|
116
124
|
selection === null || selection === void 0 ? void 0 : selection.addRange(range);
|
|
125
|
+
// there is no alternative for execCommand
|
|
117
126
|
const successful = document.execCommand('copy');
|
|
118
127
|
if (!successful) {
|
|
119
128
|
throw new Error('copy command was unsuccessful');
|
|
@@ -65,24 +65,24 @@ const CustomModal = (props) => {
|
|
|
65
65
|
if (icon) {
|
|
66
66
|
Icon = icon;
|
|
67
67
|
}
|
|
68
|
-
return react_1.default.createElement(material_1.Dialog, { open: open, maxWidth: maxWidth || 'md', fullWidth: !!fullWidth, disableEscapeKeyDown: false, onClose: onClose, sx: { '& .MuiDialog-paper': styles.modalDialog } },
|
|
69
|
-
title && react_1.default.createElement(material_1.DialogTitle, null,
|
|
68
|
+
return (react_1.default.createElement(material_1.Dialog, { open: open, maxWidth: maxWidth || 'md', fullWidth: !!fullWidth, disableEscapeKeyDown: false, onClose: onClose, sx: { '& .MuiDialog-paper': styles.modalDialog } },
|
|
69
|
+
title && (react_1.default.createElement(material_1.DialogTitle, null,
|
|
70
70
|
icon ? react_1.default.createElement(Icon, { style: styles.titleIcon }) : null,
|
|
71
71
|
title,
|
|
72
|
-
i18n_1.default.getLanguage() !== 'en' && toggleTranslation ? react_1.default.createElement(material_1.IconButton, { size: "large", sx: Utils_1.default.getStyle(props.theme, styles.languageButton, noTranslation && styles.languageButtonActive), onClick: () => toggleTranslation(), title: i18n_1.default.t('Disable/Enable translation') },
|
|
73
|
-
react_1.default.createElement(icons_material_1.Language, null)) : null),
|
|
72
|
+
i18n_1.default.getLanguage() !== 'en' && toggleTranslation ? (react_1.default.createElement(material_1.IconButton, { size: "large", sx: Utils_1.default.getStyle(props.theme, styles.languageButton, noTranslation && styles.languageButtonActive), onClick: () => toggleTranslation(), title: i18n_1.default.t('Disable/Enable translation') },
|
|
73
|
+
react_1.default.createElement(icons_material_1.Language, null))) : null)),
|
|
74
74
|
react_1.default.createElement(material_1.DialogContent, { style: Object.assign(Object.assign(Object.assign({}, styles.content), (overflowHidden ? styles.overflowHidden : undefined)), { paddingTop: 8 }) },
|
|
75
|
-
textInput && react_1.default.createElement(material_1.TextField
|
|
75
|
+
textInput && (react_1.default.createElement(material_1.TextField
|
|
76
76
|
// className={className}
|
|
77
77
|
, {
|
|
78
78
|
// className={className}
|
|
79
79
|
autoComplete: "off", fullWidth: true, autoFocus: true, variant: "outlined", size: "medium",
|
|
80
80
|
// rows={10}
|
|
81
|
-
multiline: true, value: value, onChange: e => setValue(e.target.value) }),
|
|
81
|
+
multiline: true, value: value, onChange: e => setValue(e.target.value) })),
|
|
82
82
|
children,
|
|
83
83
|
help ? react_1.default.createElement("div", null, help) : null),
|
|
84
84
|
react_1.default.createElement(material_1.DialogActions, null,
|
|
85
|
-
applyButton !== false && react_1.default.createElement(material_1.Button, { startIcon: react_1.default.createElement(icons_material_1.Check, null), disabled: progress || (applyDisabled && defaultValue === value), onClick: () => onApply(textInput ? value : ''), variant: "contained", color: "primary" }, i18n_1.default.t(titleButtonApply || 'ra_Ok')),
|
|
86
|
-
react_1.default.createElement(material_1.Button, { color: "grey", onClick: onClose, disabled: progress, variant: "contained", startIcon: react_1.default.createElement(icons_material_1.Close, null) }, i18n_1.default.t(titleButtonClose || 'ra_Cancel'))));
|
|
85
|
+
applyButton !== false && (react_1.default.createElement(material_1.Button, { startIcon: react_1.default.createElement(icons_material_1.Check, null), disabled: progress || (applyDisabled && defaultValue === value), onClick: () => onApply(textInput ? value : ''), variant: "contained", color: "primary" }, i18n_1.default.t(titleButtonApply || 'ra_Ok'))),
|
|
86
|
+
react_1.default.createElement(material_1.Button, { color: "grey", onClick: onClose, disabled: progress, variant: "contained", startIcon: react_1.default.createElement(icons_material_1.Close, null) }, i18n_1.default.t(titleButtonClose || 'ra_Cancel')))));
|
|
87
87
|
};
|
|
88
88
|
exports.default = CustomModal;
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
*
|
|
4
4
|
* MIT License
|
|
5
5
|
*
|
|
6
|
-
|
|
6
|
+
*/
|
|
7
7
|
import React, { Component } from 'react';
|
|
8
8
|
import type { Connection } from '@iobroker/socket-client';
|
|
9
|
-
import { ThemeName, ThemeType, Translate, IobTheme } from '../types';
|
|
9
|
+
import type { ThemeName, ThemeType, Translate, IobTheme } from '../types';
|
|
10
10
|
export interface MetaACL extends ioBroker.ObjectACL {
|
|
11
11
|
file: number;
|
|
12
12
|
}
|
|
@@ -147,7 +147,7 @@ export declare class FileBrowserClass extends Component<FileBrowserProps, FileBr
|
|
|
147
147
|
browseFolder(folderId: string, _newFolders?: Folders | null, _checkEmpty?: boolean, force?: boolean): Promise<Folders>;
|
|
148
148
|
toggleFolder(item: FolderOrFileItem, e: React.MouseEvent<Element>): void;
|
|
149
149
|
onFileChange: (id: string, fileName: string, size: number | null) => void;
|
|
150
|
-
changeFolder(e: React.MouseEvent<HTMLDivElement>, folder?: string): void
|
|
150
|
+
changeFolder(e: React.MouseEvent<HTMLDivElement>, folder?: string): void;
|
|
151
151
|
select(id: string, e?: React.MouseEvent<HTMLDivElement> | null, cb?: () => void): void;
|
|
152
152
|
getText(text?: ioBroker.StringOrTranslated | null): string | undefined;
|
|
153
153
|
renderFolder(item: FolderOrFileItem, expanded?: boolean): React.JSX.Element | null;
|
|
@@ -157,21 +157,21 @@ export declare class FileBrowserClass extends Component<FileBrowserProps, FileBr
|
|
|
157
157
|
getFileIcon(ext: string | null): React.JSX.Element;
|
|
158
158
|
static getEditFile(ext: string | null): boolean;
|
|
159
159
|
setStateBackgroundImage: () => void;
|
|
160
|
-
getStyleBackgroundImage: () =>
|
|
160
|
+
getStyleBackgroundImage: () => React.CSSProperties | null;
|
|
161
161
|
renderFile(item: FolderOrFileItem): React.JSX.Element;
|
|
162
162
|
renderItems(folderId: string): React.JSX.Element | (React.JSX.Element | null)[];
|
|
163
163
|
renderToolbar(): React.JSX.Element;
|
|
164
|
-
findItem(id: string, folders?: Folders | null): FolderOrFileItem;
|
|
165
|
-
renderInputDialog(): React.JSX.Element;
|
|
164
|
+
findItem(id: string, folders?: Folders | null): null | FolderOrFileItem;
|
|
165
|
+
renderInputDialog(): React.JSX.Element | null;
|
|
166
166
|
componentDidUpdate(): void;
|
|
167
|
-
findFirstFolder(id: string): string;
|
|
167
|
+
findFirstFolder(id: string): string | null;
|
|
168
168
|
uploadFile(fileName: string, data: string): Promise<void>;
|
|
169
|
-
renderUpload(): React.JSX.Element[];
|
|
169
|
+
renderUpload(): React.JSX.Element[] | null;
|
|
170
170
|
deleteRecursive(id: string): Promise<void>;
|
|
171
171
|
deleteItem(deleteItem: string): void;
|
|
172
|
-
renderDeleteDialog():
|
|
173
|
-
renderViewDialog(): React.JSX.Element;
|
|
174
|
-
renderError(): React.JSX.Element;
|
|
172
|
+
renderDeleteDialog(): React.JSX.Element | null;
|
|
173
|
+
renderViewDialog(): React.JSX.Element | null;
|
|
174
|
+
renderError(): React.JSX.Element | null;
|
|
175
175
|
updateItemsAcl(info: FolderOrFileItem[]): void;
|
|
176
176
|
changeToPath(): void;
|
|
177
177
|
renderBreadcrumb(): React.JSX.Element;
|