@iobroker/adapter-react-v5 7.0.2 → 7.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +1264 -1171
- 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 +4 -4
- 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 +22 -20
- 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
package/Dialogs/Error.js
CHANGED
|
@@ -31,7 +31,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
31
31
|
*
|
|
32
32
|
* MIT License
|
|
33
33
|
*
|
|
34
|
-
|
|
34
|
+
*/
|
|
35
35
|
// please do not delete React, as without it other projects could not be compiled: ReferenceError: React is not defined
|
|
36
36
|
const react_1 = __importStar(require("react"));
|
|
37
37
|
const material_1 = require("@mui/material");
|
|
@@ -39,15 +39,17 @@ const icons_material_1 = require("@mui/icons-material");
|
|
|
39
39
|
const i18n_1 = __importDefault(require("../i18n"));
|
|
40
40
|
class DialogError extends react_1.Component {
|
|
41
41
|
handleOk() {
|
|
42
|
-
|
|
42
|
+
if (this.props.onClose) {
|
|
43
|
+
this.props.onClose();
|
|
44
|
+
}
|
|
43
45
|
}
|
|
44
46
|
render() {
|
|
45
|
-
return react_1.default.createElement(material_1.Dialog, { open: !0, maxWidth: "sm", fullWidth: this.props.fullWidth !== undefined ? this.props.fullWidth : true, onClose: () => this.handleOk(), "aria-labelledby": "alert-dialog-title", "aria-describedby": "alert-dialog-description" },
|
|
47
|
+
return (react_1.default.createElement(material_1.Dialog, { open: !0, maxWidth: "sm", fullWidth: this.props.fullWidth !== undefined ? this.props.fullWidth : true, onClose: () => this.handleOk(), "aria-labelledby": "alert-dialog-title", "aria-describedby": "alert-dialog-description" },
|
|
46
48
|
react_1.default.createElement(material_1.DialogTitle, { id: "ar_alert_dialog_title" }, this.props.title || i18n_1.default.t('ra_Error')),
|
|
47
49
|
react_1.default.createElement(material_1.DialogContent, null,
|
|
48
50
|
react_1.default.createElement(material_1.DialogContentText, { id: "ar_alert_dialog_description" }, this.props.text || i18n_1.default.t('ra_Unknown error!'))),
|
|
49
51
|
react_1.default.createElement(material_1.DialogActions, null,
|
|
50
|
-
react_1.default.createElement(material_1.Button, { id: "ar_dialog_error_ok", variant: "contained", onClick: () => this.handleOk(), color: "primary", autoFocus: true, startIcon: react_1.default.createElement(icons_material_1.Check, null) }, i18n_1.default.t('ra_Ok'))));
|
|
52
|
+
react_1.default.createElement(material_1.Button, { id: "ar_dialog_error_ok", variant: "contained", onClick: () => this.handleOk(), color: "primary", autoFocus: true, startIcon: react_1.default.createElement(icons_material_1.Check, null) }, i18n_1.default.t('ra_Ok')))));
|
|
51
53
|
}
|
|
52
54
|
}
|
|
53
55
|
exports.default = DialogError;
|
package/Dialogs/Message.d.ts
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* MIT License
|
|
5
5
|
*
|
|
6
|
-
|
|
7
|
-
import React, { Component } from 'react';
|
|
6
|
+
*/
|
|
7
|
+
import React, { Component, type JSX } from 'react';
|
|
8
8
|
interface DialogMessageProps {
|
|
9
9
|
title?: string;
|
|
10
10
|
text: string | React.JSX.Element;
|
|
@@ -15,6 +15,6 @@ interface DialogMessageProps {
|
|
|
15
15
|
}
|
|
16
16
|
declare class DialogMessage extends Component<DialogMessageProps> {
|
|
17
17
|
handleOk(): void;
|
|
18
|
-
render():
|
|
18
|
+
render(): JSX.Element;
|
|
19
19
|
}
|
|
20
20
|
export default DialogMessage;
|
package/Dialogs/Message.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* MIT License
|
|
6
6
|
*
|
|
7
|
-
|
|
7
|
+
*/
|
|
8
8
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
9
|
if (k2 === undefined) k2 = k;
|
|
10
10
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -39,17 +39,19 @@ const icons_material_1 = require("@mui/icons-material");
|
|
|
39
39
|
const i18n_1 = __importDefault(require("../i18n"));
|
|
40
40
|
class DialogMessage extends react_1.Component {
|
|
41
41
|
handleOk() {
|
|
42
|
-
|
|
42
|
+
if (this.props.onClose) {
|
|
43
|
+
this.props.onClose();
|
|
44
|
+
}
|
|
43
45
|
}
|
|
44
46
|
render() {
|
|
45
|
-
return react_1.default.createElement(material_1.Dialog, { open: !0, maxWidth: "sm", fullWidth: this.props.fullWidth !== undefined ? this.props.fullWidth : true, onClose: () => this.handleOk(), "aria-labelledby": "ar_dialog_message_title", "aria-describedby": "ar_dialog_message_description" },
|
|
47
|
+
return (react_1.default.createElement(material_1.Dialog, { open: !0, maxWidth: "sm", fullWidth: this.props.fullWidth !== undefined ? this.props.fullWidth : true, onClose: () => this.handleOk(), "aria-labelledby": "ar_dialog_message_title", "aria-describedby": "ar_dialog_message_description" },
|
|
46
48
|
react_1.default.createElement(material_1.DialogTitle, { id: "ar_dialog_message_title" }, this.props.title || i18n_1.default.t('ra_Message')),
|
|
47
49
|
react_1.default.createElement(material_1.DialogContent, null,
|
|
48
50
|
react_1.default.createElement(material_1.DialogContentText, { id: "ar_dialog_message_description" },
|
|
49
51
|
react_1.default.createElement("span", { style: { marginRight: this.props.icon ? 8 : 0 } }, this.props.icon || null),
|
|
50
52
|
this.props.text)),
|
|
51
53
|
react_1.default.createElement(material_1.DialogActions, null,
|
|
52
|
-
react_1.default.createElement(material_1.Button, { id: "ar_dialog_message_ok", variant: "contained", onClick: () => this.handleOk(), color: "primary", autoFocus: true, startIcon: react_1.default.createElement(icons_material_1.Close, null) }, this.props.ok || i18n_1.default.t('ra_Close'))));
|
|
54
|
+
react_1.default.createElement(material_1.Button, { id: "ar_dialog_message_ok", variant: "contained", onClick: () => this.handleOk(), color: "primary", autoFocus: true, startIcon: react_1.default.createElement(icons_material_1.Close, null) }, this.props.ok || i18n_1.default.t('ra_Close')))));
|
|
53
55
|
}
|
|
54
56
|
}
|
|
55
57
|
exports.default = DialogMessage;
|
package/Dialogs/SelectFile.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { type JSX } from 'react';
|
|
2
2
|
import type { Connection } from '@iobroker/socket-client';
|
|
3
|
-
import { IobTheme } from '../types';
|
|
3
|
+
import type { IobTheme } from '../types';
|
|
4
4
|
interface DialogSelectFileProps {
|
|
5
5
|
/** where to store settings in localStorage * @property {string} [title] The dialog title; default: Please select object ID... (translated) */
|
|
6
6
|
dialogName?: string;
|
|
@@ -10,7 +10,7 @@ interface DialogSelectFileProps {
|
|
|
10
10
|
multiSelect?: boolean;
|
|
11
11
|
/** Image prefix. Normally, admin has '../..' and the web has '../' */
|
|
12
12
|
imagePrefix?: string;
|
|
13
|
-
/** @
|
|
13
|
+
/** @deprecated Image prefix */
|
|
14
14
|
prefix?: string;
|
|
15
15
|
/** Show the expert button? */
|
|
16
16
|
showExpertButton?: boolean;
|
|
@@ -78,6 +78,6 @@ declare class DialogSelectFile extends React.Component<DialogSelectFileProps, Di
|
|
|
78
78
|
constructor(props: DialogSelectFileProps);
|
|
79
79
|
handleCancel(): void;
|
|
80
80
|
handleOk(): void;
|
|
81
|
-
render():
|
|
81
|
+
render(): JSX.Element;
|
|
82
82
|
}
|
|
83
83
|
export default DialogSelectFile;
|
package/Dialogs/SelectFile.js
CHANGED
|
@@ -55,7 +55,7 @@ class DialogSelectFile extends react_1.default.Component {
|
|
|
55
55
|
try {
|
|
56
56
|
this.filters = JSON.parse(filters);
|
|
57
57
|
}
|
|
58
|
-
catch (
|
|
58
|
+
catch (_a) {
|
|
59
59
|
this.filters = {};
|
|
60
60
|
}
|
|
61
61
|
if (props.filters) {
|
|
@@ -77,7 +77,9 @@ class DialogSelectFile extends react_1.default.Component {
|
|
|
77
77
|
this.props.onClose();
|
|
78
78
|
}
|
|
79
79
|
handleOk() {
|
|
80
|
-
this.props.onOk(this.props.multiSelect || !Array.isArray(this.state.selected)
|
|
80
|
+
this.props.onOk(this.props.multiSelect || !Array.isArray(this.state.selected)
|
|
81
|
+
? this.state.selected
|
|
82
|
+
: this.state.selected[0] || '');
|
|
81
83
|
this.props.onClose();
|
|
82
84
|
}
|
|
83
85
|
render() {
|
|
@@ -103,7 +105,7 @@ class DialogSelectFile extends react_1.default.Component {
|
|
|
103
105
|
else {
|
|
104
106
|
title = this.props.title || i18n_1.default.t('ra_Please select file...');
|
|
105
107
|
}
|
|
106
|
-
return react_1.default.createElement(material_1.Dialog, { onClose: () => { }, maxWidth: false, sx: { '& .MuiDialog-paper': Object.assign(Object.assign({}, styles.dialog), styles.dialogMobile) }, fullWidth: true, open: !0, "aria-labelledby": "ar_dialog_selectfile_title" },
|
|
108
|
+
return (react_1.default.createElement(material_1.Dialog, { onClose: () => { }, maxWidth: false, sx: { '& .MuiDialog-paper': Object.assign(Object.assign({}, styles.dialog), styles.dialogMobile) }, fullWidth: true, open: !0, "aria-labelledby": "ar_dialog_selectfile_title" },
|
|
107
109
|
react_1.default.createElement(material_1.DialogTitle, { id: "ar_dialog_selectfile_title", sx: { '&.MuiDialogTitle-root': styles.titleRoot } }, title),
|
|
108
110
|
react_1.default.createElement(material_1.DialogContent, { style: Object.assign(Object.assign({}, styles.content), styles.contentMobile) },
|
|
109
111
|
react_1.default.createElement(FileBrowser_1.default, { ready: true, imagePrefix: this.props.imagePrefix || this.props.prefix || '../', allowUpload: !!this.props.allowUpload, allowDownload: this.props.allowDownload !== false, allowCreateFolder: !!this.props.allowCreateFolder, allowDelete: !!this.props.allowDelete, allowView: this.props.allowView !== false, showViewTypeButton: this.props.showViewTypeButton !== false, showToolbar: this.props.showToolbar !== false, limitPath: this.props.limitPath, filterFiles: this.props.filterFiles, filterByType: this.props.filterByType, selected: this.props.selected, restrictToFolder: this.props.restrictToFolder, allowNonRestricted: this.props.allowNonRestricted, onSelect: (selected, isDoubleClick, isFolder) => {
|
|
@@ -111,7 +113,7 @@ class DialogSelectFile extends react_1.default.Component {
|
|
|
111
113
|
}, t: this.props.t || i18n_1.default.t, lang: this.props.lang || i18n_1.default.getLanguage(), socket: this.props.socket, themeType: this.props.themeType, themeName: this.props.themeName, theme: this.props.theme, showExpertButton: this.props.showExpertButton, expertMode: this.props.expertMode, showTypeSelector: this.props.showTypeSelector })),
|
|
112
114
|
react_1.default.createElement(material_1.DialogActions, null,
|
|
113
115
|
react_1.default.createElement(material_1.Button, { variant: "contained", onClick: () => this.handleOk(), startIcon: react_1.default.createElement(icons_material_1.Check, null), disabled: !this.state.selected.length, color: "primary" }, this.props.ok || i18n_1.default.t('ra_Ok')),
|
|
114
|
-
react_1.default.createElement(material_1.Button, { color: "grey", variant: "contained", onClick: () => this.handleCancel(), startIcon: react_1.default.createElement(icons_material_1.Cancel, null) }, this.props.cancel || i18n_1.default.t('ra_Cancel'))));
|
|
116
|
+
react_1.default.createElement(material_1.Button, { color: "grey", variant: "contained", onClick: () => this.handleCancel(), startIcon: react_1.default.createElement(icons_material_1.Cancel, null) }, this.props.cancel || i18n_1.default.t('ra_Cancel')))));
|
|
115
117
|
}
|
|
116
118
|
}
|
|
117
119
|
exports.default = DialogSelectFile;
|
package/Dialogs/SelectID.d.ts
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* MIT License
|
|
5
5
|
*
|
|
6
|
-
|
|
7
|
-
import
|
|
6
|
+
*/
|
|
7
|
+
import { Component, type JSX } from 'react';
|
|
8
8
|
import type Connection from '../Connection';
|
|
9
|
-
import { ObjectBrowserColumn, ObjectBrowserCustomFilter, ObjectBrowserType } from '../Components/types';
|
|
10
|
-
import { IobTheme } from '../types';
|
|
9
|
+
import type { ObjectBrowserColumn, ObjectBrowserCustomFilter, ObjectBrowserType } from '../Components/types';
|
|
10
|
+
import type { IobTheme } from '../types';
|
|
11
11
|
export interface SelectIDFilters {
|
|
12
12
|
id?: string;
|
|
13
13
|
name?: string;
|
|
@@ -28,7 +28,7 @@ interface DialogSelectIDProps {
|
|
|
28
28
|
foldersFirst?: boolean;
|
|
29
29
|
/** Path prefix for images (default: '.') */
|
|
30
30
|
imagePrefix?: string;
|
|
31
|
-
/** @deprecated
|
|
31
|
+
/** @deprecated same as imagePrefix */
|
|
32
32
|
prefix?: string;
|
|
33
33
|
/** Show the expert button */
|
|
34
34
|
showExpertButton?: boolean;
|
|
@@ -66,10 +66,12 @@ interface DialogSelectIDProps {
|
|
|
66
66
|
onClose: () => void;
|
|
67
67
|
/** Handler that is called when the user presses OK. */
|
|
68
68
|
onOk: (selected: string | string[] | undefined, name: string) => void;
|
|
69
|
-
/**
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
69
|
+
/**
|
|
70
|
+
* Function to filter out all unnecessary objects. Can be string or function.
|
|
71
|
+
* It cannot be used together with "types".
|
|
72
|
+
* Example for function: `obj => obj.common?.type === 'boolean'` to show only boolean states
|
|
73
|
+
* In case of string, it must look like `obj.common && obj.common.type === 'boolean'`
|
|
74
|
+
*/
|
|
73
75
|
filterFunc?: string | ((obj: ioBroker.Object) => boolean);
|
|
74
76
|
/** predefined filter fields, like {"id":"","name":"","room":"","func":"","role":"level","type":"","custom":""} */
|
|
75
77
|
filters?: SelectIDFilters;
|
|
@@ -87,6 +89,6 @@ declare class DialogSelectID extends Component<DialogSelectIDProps, DialogSelect
|
|
|
87
89
|
constructor(props: DialogSelectIDProps);
|
|
88
90
|
handleCancel(): void;
|
|
89
91
|
handleOk(): void;
|
|
90
|
-
render():
|
|
92
|
+
render(): JSX.Element;
|
|
91
93
|
}
|
|
92
94
|
export default DialogSelectID;
|
package/Dialogs/SelectID.js
CHANGED
|
@@ -31,7 +31,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
31
31
|
*
|
|
32
32
|
* MIT License
|
|
33
33
|
*
|
|
34
|
-
|
|
34
|
+
*/
|
|
35
35
|
// please do not delete React, as without it other projects could not be compiled: ReferenceError: React is not defined
|
|
36
36
|
const react_1 = __importStar(require("react"));
|
|
37
37
|
const material_1 = require("@mui/material");
|
|
@@ -47,7 +47,7 @@ class DialogSelectID extends react_1.Component {
|
|
|
47
47
|
try {
|
|
48
48
|
this.filters = JSON.parse(filters);
|
|
49
49
|
}
|
|
50
|
-
catch (
|
|
50
|
+
catch (_a) {
|
|
51
51
|
this.filters = {};
|
|
52
52
|
}
|
|
53
53
|
if (props.filters) {
|
|
@@ -61,10 +61,9 @@ class DialogSelectID extends react_1.Component {
|
|
|
61
61
|
if (props.filterFunc) {
|
|
62
62
|
if (typeof props.filterFunc === 'string') {
|
|
63
63
|
try {
|
|
64
|
-
// eslint-disable-next-line no-new-func
|
|
65
64
|
this.filterFunc = new Function('obj', props.filterFunc);
|
|
66
65
|
}
|
|
67
|
-
catch (
|
|
66
|
+
catch (_b) {
|
|
68
67
|
console.error(`Cannot parse filter function: "obj => ${props.filterFunc}"`);
|
|
69
68
|
this.filterFunc = undefined;
|
|
70
69
|
}
|
|
@@ -93,7 +92,8 @@ class DialogSelectID extends react_1.Component {
|
|
|
93
92
|
react_1.default.createElement("span", { key: "selected" },
|
|
94
93
|
i18n_1.default.t('ra_Selected'),
|
|
95
94
|
"\u00A0"),
|
|
96
|
-
react_1.default.createElement("span", { key: "id", style: { fontWeight: 'bold', fontStyle: 'italic' } }, (this.state.name || this.state.selected) +
|
|
95
|
+
react_1.default.createElement("span", { key: "id", style: { fontWeight: 'bold', fontStyle: 'italic' } }, (this.state.name || this.state.selected[0]) +
|
|
96
|
+
(this.state.name ? ` [${this.state.selected[0]}]` : '')),
|
|
97
97
|
];
|
|
98
98
|
}
|
|
99
99
|
else {
|
|
@@ -108,7 +108,7 @@ class DialogSelectID extends react_1.Component {
|
|
|
108
108
|
else {
|
|
109
109
|
title = this.props.title || i18n_1.default.t('ra_Please select object ID...');
|
|
110
110
|
}
|
|
111
|
-
return react_1.default.createElement(material_1.Dialog, { onClose: () => { }, maxWidth: false, sx: {
|
|
111
|
+
return (react_1.default.createElement(material_1.Dialog, { onClose: () => { }, maxWidth: false, sx: {
|
|
112
112
|
'& .MuiDialog-paper': {
|
|
113
113
|
height: '95%',
|
|
114
114
|
p: '4px',
|
|
@@ -131,7 +131,11 @@ class DialogSelectID extends react_1.Component {
|
|
|
131
131
|
} },
|
|
132
132
|
react_1.default.createElement(ObjectBrowser_1.default, { foldersFirst: this.props.foldersFirst, imagePrefix: this.props.imagePrefix || this.props.prefix, dateFormat: this.props.dateFormat, defaultFilters: this.filters, dialogName: this.dialogName, isFloatComma: this.props.isFloatComma, showExpertButton: this.props.showExpertButton !== undefined ? this.props.showExpertButton : true, expertMode: this.props.expertMode,
|
|
133
133
|
// style={{ width: '100%', height: '100%' }}
|
|
134
|
-
columns: this.props.columns || ['name', 'type', 'role', 'room', 'func', 'val'], types: this.props.types
|
|
134
|
+
columns: this.props.columns || ['name', 'type', 'role', 'room', 'func', 'val'], types: this.props.types
|
|
135
|
+
? Array.isArray(this.props.types)
|
|
136
|
+
? this.props.types
|
|
137
|
+
: [this.props.types]
|
|
138
|
+
: ['state'], root: this.props.root, t: i18n_1.default.t, lang: this.props.lang || i18n_1.default.getLanguage(), socket: this.props.socket, selected: this.state.selected, multiSelect: this.props.multiSelect, notEditable: this.props.notEditable === undefined ? true : this.props.notEditable,
|
|
135
139
|
// name={this.state.name}
|
|
136
140
|
themeName: this.props.themeName, themeType: this.props.themeType, theme: this.props.theme, customFilter: this.props.customFilter, onFilterChanged: (filterConfig) => {
|
|
137
141
|
this.filters = filterConfig;
|
|
@@ -153,7 +157,7 @@ class DialogSelectID extends react_1.Component {
|
|
|
153
157
|
}, filterFunc: this.filterFunc, title: "", classes: {} })),
|
|
154
158
|
react_1.default.createElement(material_1.DialogActions, null,
|
|
155
159
|
react_1.default.createElement(material_1.Button, { id: `ar_dialog_selectid_ok_${this.props.dialogName || ''}`, variant: "contained", onClick: () => this.handleOk(), startIcon: react_1.default.createElement(icons_material_1.Check, null), disabled: !this.state.selected.length, color: "primary" }, this.props.ok || i18n_1.default.t('ra_Ok')),
|
|
156
|
-
react_1.default.createElement(material_1.Button, { id: `ar_dialog_selectid_cancel_${this.props.dialogName || ''}`, color: "grey", variant: "contained", onClick: () => this.handleCancel(), startIcon: react_1.default.createElement(icons_material_1.Cancel, null) }, this.props.cancel || i18n_1.default.t('ra_Cancel'))));
|
|
160
|
+
react_1.default.createElement(material_1.Button, { id: `ar_dialog_selectid_cancel_${this.props.dialogName || ''}`, color: "grey", variant: "contained", onClick: () => this.handleCancel(), startIcon: react_1.default.createElement(icons_material_1.Cancel, null) }, this.props.cancel || i18n_1.default.t('ra_Cancel')))));
|
|
157
161
|
}
|
|
158
162
|
}
|
|
159
163
|
exports.default = DialogSelectID;
|
package/Dialogs/SimpleCron.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { type JSX } from 'react';
|
|
2
2
|
interface DialogCronProps {
|
|
3
3
|
onClose: () => void;
|
|
4
4
|
onOk: (cron: string) => void;
|
|
@@ -14,6 +14,6 @@ declare class DialogSimpleCron extends React.Component<DialogCronProps, DialogCr
|
|
|
14
14
|
constructor(props: DialogCronProps);
|
|
15
15
|
handleCancel(): void;
|
|
16
16
|
handleOk(): void;
|
|
17
|
-
render():
|
|
17
|
+
render(): JSX.Element;
|
|
18
18
|
}
|
|
19
19
|
export default DialogSimpleCron;
|
package/Dialogs/SimpleCron.js
CHANGED
|
@@ -39,13 +39,13 @@ class DialogSimpleCron extends react_1.default.Component {
|
|
|
39
39
|
this.props.onClose();
|
|
40
40
|
}
|
|
41
41
|
render() {
|
|
42
|
-
return react_1.default.createElement(material_1.Dialog, { onClose: () => { }, maxWidth: "md", fullWidth: true, sx: { '& .MuiDialog-paper': styles.dialogPaper }, open: !0, "aria-labelledby": "cron-dialog-title" },
|
|
42
|
+
return (react_1.default.createElement(material_1.Dialog, { onClose: () => { }, maxWidth: "md", fullWidth: true, sx: { '& .MuiDialog-paper': styles.dialogPaper }, open: !0, "aria-labelledby": "cron-dialog-title" },
|
|
43
43
|
react_1.default.createElement(material_1.DialogTitle, { id: "cron-dialog-title" }, this.props.title || i18n_1.default.t('ra_Define CRON...')),
|
|
44
44
|
react_1.default.createElement(material_1.DialogContent, { style: { height: '100%', overflow: 'hidden' } },
|
|
45
45
|
react_1.default.createElement(SimpleCron_1.default, { cronExpression: this.state.cron, onChange: cron => this.setState({ cron }), language: i18n_1.default.getLanguage() })),
|
|
46
46
|
react_1.default.createElement(material_1.DialogActions, null,
|
|
47
47
|
react_1.default.createElement(material_1.Button, { variant: "contained", onClick: () => this.handleOk(), color: "primary", startIcon: react_1.default.createElement(icons_material_1.Check, null) }, this.props.ok || i18n_1.default.t('ra_Ok')),
|
|
48
|
-
react_1.default.createElement(material_1.Button, { variant: "contained", onClick: () => this.handleCancel(), color: "grey", startIcon: react_1.default.createElement(icons_material_1.Cancel, null) }, this.props.cancel || i18n_1.default.t('ra_Cancel'))));
|
|
48
|
+
react_1.default.createElement(material_1.Button, { variant: "contained", onClick: () => this.handleCancel(), color: "grey", startIcon: react_1.default.createElement(icons_material_1.Cancel, null) }, this.props.cancel || i18n_1.default.t('ra_Cancel')))));
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
exports.default = DialogSimpleCron;
|
package/Dialogs/TextInput.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
declare const _default: (props: Record<string, any>) =>
|
|
1
|
+
import { type JSX } from 'react';
|
|
2
|
+
declare const _default: (props: Record<string, any>) => JSX.Element /** The text replacement callback */;
|
|
3
3
|
export default _default;
|
package/Dialogs/TextInput.js
CHANGED
|
@@ -11,11 +11,11 @@ const withWidth_1 = __importDefault(require("../Components/withWidth"));
|
|
|
11
11
|
function TextInput(props) {
|
|
12
12
|
const [text, setText] = react_1.default.useState(props.input || props.value || '');
|
|
13
13
|
const [error, setError] = react_1.default.useState('');
|
|
14
|
-
return react_1.default.createElement(material_1.Dialog, { open: !0, onClose: () => props.onClose(null), "aria-labelledby": "form-dialog-title", fullWidth: props.fullWidth !== undefined ? props.fullWidth : false },
|
|
14
|
+
return (react_1.default.createElement(material_1.Dialog, { open: !0, onClose: () => props.onClose(null), "aria-labelledby": "form-dialog-title", fullWidth: props.fullWidth !== undefined ? props.fullWidth : false },
|
|
15
15
|
react_1.default.createElement(material_1.DialogTitle, { id: "form-dialog-title" }, props.titleText),
|
|
16
16
|
react_1.default.createElement(material_1.DialogContent, null,
|
|
17
17
|
react_1.default.createElement(material_1.DialogContentText, null, props.promptText),
|
|
18
|
-
react_1.default.createElement(material_1.TextField, { variant: "standard", autoFocus: true, margin: "dense", error: !!error, helperText: error === true || !error ? '' : error, value: text, label: props.labelText || '', type: props.type || 'text', onKeyUp: e => e.
|
|
18
|
+
react_1.default.createElement(material_1.TextField, { variant: "standard", autoFocus: true, margin: "dense", error: !!error, helperText: error === true || !error ? '' : error, value: text, label: props.labelText || '', type: props.type || 'text', onKeyUp: e => e.code === 'Enter' && text && props.onClose(text), onChange: e => {
|
|
19
19
|
let _error = '';
|
|
20
20
|
if (props.verify) {
|
|
21
21
|
_error = !props.verify(e.target.value);
|
|
@@ -30,6 +30,6 @@ function TextInput(props) {
|
|
|
30
30
|
}, fullWidth: true })),
|
|
31
31
|
react_1.default.createElement(material_1.DialogActions, null,
|
|
32
32
|
react_1.default.createElement(material_1.Button, { variant: "contained", disabled: !text || !!error, onClick: () => props.onClose(text), color: "primary", startIcon: react_1.default.createElement(icons_material_1.Check, null) }, props.applyText || i18n_1.default.t('ra_Ok')),
|
|
33
|
-
react_1.default.createElement(material_1.Button, { color: "grey", variant: "contained", onClick: () => props.onClose(null), startIcon: react_1.default.createElement(icons_material_1.Close, null) }, props.cancelText || i18n_1.default.t('ra_Cancel'))));
|
|
33
|
+
react_1.default.createElement(material_1.Button, { color: "grey", variant: "contained", onClick: () => props.onClose(null), startIcon: react_1.default.createElement(icons_material_1.Close, null) }, props.cancelText || i18n_1.default.t('ra_Cancel')))));
|
|
34
34
|
}
|
|
35
35
|
exports.default = (0, withWidth_1.default)()(TextInput);
|
package/GenericApp.d.ts
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* MIT License
|
|
5
5
|
*
|
|
6
|
-
|
|
7
|
-
import React from 'react';
|
|
8
|
-
import { AdminConnection } from '@iobroker/socket-client';
|
|
6
|
+
*/
|
|
7
|
+
import React, { type JSX } from 'react';
|
|
8
|
+
import { type AdminConnection } from '@iobroker/socket-client';
|
|
9
9
|
import Router from './Components/Router';
|
|
10
|
-
import { GenericAppProps, GenericAppState, GenericAppSettings, ThemeName, ThemeType, IobTheme, Width } from './types';
|
|
10
|
+
import type { GenericAppProps, GenericAppState, GenericAppSettings, ThemeName, ThemeType, IobTheme, Width } from './types';
|
|
11
11
|
declare global {
|
|
12
12
|
/** If config has been changed */
|
|
13
13
|
var changed: boolean;
|
|
@@ -42,11 +42,12 @@ declare class GenericApp<TProps extends GenericAppProps = GenericAppProps, TStat
|
|
|
42
42
|
constructor(props: TProps, settings?: GenericAppSettings);
|
|
43
43
|
/**
|
|
44
44
|
* Checks if this connection is running in a web adapter and not in an admin.
|
|
45
|
+
*
|
|
45
46
|
* @returns True if running in a web adapter or in a socketio adapter.
|
|
46
47
|
*/
|
|
47
48
|
static isWeb(): boolean;
|
|
48
49
|
showAlert(message: string, type?: 'info' | 'warning' | 'error' | 'success'): void;
|
|
49
|
-
renderAlertSnackbar():
|
|
50
|
+
renderAlertSnackbar(): JSX.Element;
|
|
50
51
|
onSystemConfigChanged: (id: string, obj: ioBroker.AnyObject | null | undefined) => void;
|
|
51
52
|
/**
|
|
52
53
|
* Called immediately after a component is mounted. Setting state here will trigger re-rendering.
|
|
@@ -62,14 +63,14 @@ declare class GenericApp<TProps extends GenericAppProps = GenericAppProps, TStat
|
|
|
62
63
|
private onResize;
|
|
63
64
|
/**
|
|
64
65
|
* Gets the width depending on the window inner width.
|
|
65
|
-
* @returns {import('./types').Width}
|
|
66
66
|
*/
|
|
67
67
|
static getWidth(): Width;
|
|
68
68
|
/**
|
|
69
69
|
* Get a theme
|
|
70
|
+
*
|
|
70
71
|
* @param name Theme name
|
|
71
72
|
*/
|
|
72
|
-
createTheme(name?: ThemeName | null
|
|
73
|
+
createTheme(name?: ThemeName | null): IobTheme;
|
|
73
74
|
/**
|
|
74
75
|
* Get the theme name
|
|
75
76
|
*/
|
|
@@ -82,11 +83,10 @@ declare class GenericApp<TProps extends GenericAppProps = GenericAppProps, TStat
|
|
|
82
83
|
onToggleExpertMode(_expertMode: boolean): void;
|
|
83
84
|
/**
|
|
84
85
|
* Changes the current theme
|
|
85
|
-
|
|
86
|
+
*/
|
|
86
87
|
toggleTheme(newThemeName?: ThemeName): void;
|
|
87
88
|
/**
|
|
88
89
|
* Gets the system configuration.
|
|
89
|
-
* @returns {Promise<ioBroker.OtherObject>}
|
|
90
90
|
*/
|
|
91
91
|
getSystemConfig(): Promise<ioBroker.SystemConfigObject>;
|
|
92
92
|
/**
|
|
@@ -123,12 +123,13 @@ declare class GenericApp<TProps extends GenericAppProps = GenericAppProps, TStat
|
|
|
123
123
|
/**
|
|
124
124
|
* Gets called after the settings are loaded.
|
|
125
125
|
* You may override this if needed.
|
|
126
|
+
*
|
|
127
|
+
* @param settings instance settings from native part
|
|
126
128
|
* @param encryptedNative optional list of fields to be decrypted
|
|
127
129
|
*/
|
|
128
130
|
onPrepareLoad(settings: Record<string, any>, encryptedNative?: string[]): void;
|
|
129
131
|
/**
|
|
130
132
|
* Gets the extendable instances.
|
|
131
|
-
* @returns {Promise<any[]>}
|
|
132
133
|
*/
|
|
133
134
|
getExtendableInstances(): Promise<ioBroker.InstanceObject[]>;
|
|
134
135
|
/**
|
|
@@ -141,13 +142,14 @@ declare class GenericApp<TProps extends GenericAppProps = GenericAppProps, TStat
|
|
|
141
142
|
}[]>;
|
|
142
143
|
/**
|
|
143
144
|
* Saves the settings to the server.
|
|
145
|
+
*
|
|
144
146
|
* @param isClose True if the user is closing the dialog.
|
|
145
147
|
*/
|
|
146
148
|
onSave(isClose?: boolean): void;
|
|
147
149
|
/**
|
|
148
150
|
* Renders the toast.
|
|
149
151
|
*/
|
|
150
|
-
renderToast():
|
|
152
|
+
renderToast(): JSX.Element | null;
|
|
151
153
|
/**
|
|
152
154
|
* Closes the dialog.
|
|
153
155
|
*/
|
|
@@ -158,11 +160,13 @@ declare class GenericApp<TProps extends GenericAppProps = GenericAppProps, TStat
|
|
|
158
160
|
renderError(): React.JSX.Element | null;
|
|
159
161
|
/**
|
|
160
162
|
* Checks if the configuration has changed.
|
|
161
|
-
*
|
|
163
|
+
*
|
|
164
|
+
* @param native the new state
|
|
162
165
|
*/
|
|
163
166
|
getIsChanged(native: Record<string, any>): boolean;
|
|
164
167
|
/**
|
|
165
168
|
* Gets called when loading the configuration.
|
|
169
|
+
*
|
|
166
170
|
* @param newNative The new configuration object.
|
|
167
171
|
*/
|
|
168
172
|
onLoadConfig(newNative: Record<string, any>): void;
|
|
@@ -177,6 +181,7 @@ declare class GenericApp<TProps extends GenericAppProps = GenericAppProps, TStat
|
|
|
177
181
|
private _updateNativeValue;
|
|
178
182
|
/**
|
|
179
183
|
* Update the native value
|
|
184
|
+
*
|
|
180
185
|
* @param attr The attribute name with dots as delimiter.
|
|
181
186
|
* @param value The new value.
|
|
182
187
|
* @param cb Callback which will be called upon completion.
|
|
@@ -188,7 +193,8 @@ declare class GenericApp<TProps extends GenericAppProps = GenericAppProps, TStat
|
|
|
188
193
|
showError(text: string | React.JSX.Element): void;
|
|
189
194
|
/**
|
|
190
195
|
* Sets the toast to be shown.
|
|
191
|
-
*
|
|
196
|
+
*
|
|
197
|
+
* @param toast Text to be shown.
|
|
192
198
|
*/
|
|
193
199
|
showToast(toast: string | React.JSX.Element): void;
|
|
194
200
|
/**
|