@iobroker/adapter-react-v5 4.10.1 → 4.10.4
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/CustomModal.d.ts +24 -2
- package/Components/CustomModal.js +77 -145
- package/Components/FileBrowser.d.ts +68 -130
- package/Components/FileBrowser.js +1405 -1987
- package/Components/FileViewer.d.ts +9 -82
- package/Components/FileViewer.js +248 -321
- package/Components/IconSelector.d.ts +28 -22
- package/Components/IconSelector.js +2122 -2073
- package/Components/Loader.d.ts +8 -3
- package/Components/Loader.js +4 -2
- package/Components/Loaders/MV.d.ts +12 -0
- package/Components/Loaders/MV.js +51 -0
- package/Components/Loaders/PT.d.ts +19 -38
- package/Components/Loaders/PT.js +153 -78
- package/Components/Loaders/Vendor.d.ts +19 -31
- package/Components/Loaders/Vendor.js +61 -79
- package/Components/SelectWithIcon.d.ts +23 -20
- package/Components/SelectWithIcon.js +143 -204
- package/Components/types.d.ts +0 -47
- package/Dialogs/Error.d.ts +3 -5
- package/Dialogs/Error.js +1 -3
- package/Dialogs/SelectFile.d.ts +53 -170
- package/Dialogs/SelectFile.js +100 -257
- package/README.md +3 -0
- package/icons/IconClearFilter.js.map +1 -1
- package/icons/IconClosed.js.map +1 -1
- package/icons/IconCopy.js.map +1 -1
- package/icons/IconDocumentReadOnly.js.map +1 -1
- package/icons/IconExpert.d.ts +10 -36
- package/icons/IconExpert.js +8 -42
- package/index.d.ts +2 -0
- package/index.js +5 -2
- package/package.json +2 -2
- package/types.d.ts +9 -7
- package/Components/CustomModal.js.map +0 -1
- package/Components/FileBrowser.js.map +0 -1
- package/Components/FileViewer.js.map +0 -1
- package/Components/IconSelector.js.map +0 -1
- package/Components/Loaders/PT.js.map +0 -1
- package/Components/Loaders/Vendor.js.map +0 -1
- package/Components/SelectWithIcon.js.map +0 -1
- package/Dialogs/SelectFile.js.map +0 -1
- package/icons/IconExpert.js.map +0 -1
|
@@ -1,3 +1,25 @@
|
|
|
1
|
-
declare const _default: React.JSXElementConstructor<any>;
|
|
2
|
-
export default _default;
|
|
3
1
|
import React from 'react';
|
|
2
|
+
interface CustomModalProps {
|
|
3
|
+
icon?: any;
|
|
4
|
+
open: boolean;
|
|
5
|
+
onClose: () => void;
|
|
6
|
+
children: React.JSX.Element | null;
|
|
7
|
+
titleButtonClose?: string;
|
|
8
|
+
titleButtonApply?: string;
|
|
9
|
+
onApply: (result: string) => void;
|
|
10
|
+
fullWidth?: boolean;
|
|
11
|
+
maxWidth?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
12
|
+
applyButton?: boolean;
|
|
13
|
+
applyDisabled?: boolean;
|
|
14
|
+
overflowHidden?: boolean;
|
|
15
|
+
help?: string;
|
|
16
|
+
noTranslation?: boolean;
|
|
17
|
+
toggleTranslation?: () => void;
|
|
18
|
+
title?: string;
|
|
19
|
+
progress?: boolean;
|
|
20
|
+
classes: Record<string, string>;
|
|
21
|
+
textInput?: boolean;
|
|
22
|
+
defaultValue?: string;
|
|
23
|
+
}
|
|
24
|
+
declare const _default: React.JSXElementConstructor<Omit<CustomModalProps, "classes"> & import("@mui/styles").StyledComponentProps<string> & object>;
|
|
25
|
+
export default _default;
|
|
@@ -1,161 +1,93 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
7
17
|
});
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
var
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
const react_1 = __importStar(require("react"));
|
|
30
|
+
const styles_1 = require("@mui/styles");
|
|
31
|
+
const material_1 = require("@mui/material");
|
|
32
|
+
const icons_material_1 = require("@mui/icons-material");
|
|
33
|
+
const Utils_1 = __importDefault(require("./Utils"));
|
|
34
|
+
const i18n_1 = __importDefault(require("../i18n"));
|
|
35
|
+
const styles = (theme) => ({
|
|
21
36
|
modalDialog: {
|
|
22
|
-
|
|
23
|
-
|
|
37
|
+
minWidth: 400,
|
|
38
|
+
maxWidth: 800,
|
|
24
39
|
},
|
|
25
40
|
overflowHidden: {
|
|
26
|
-
|
|
27
|
-
|
|
41
|
+
display: 'flex',
|
|
42
|
+
overflow: 'hidden',
|
|
28
43
|
},
|
|
29
44
|
titleIcon: {
|
|
30
|
-
|
|
45
|
+
marginRight: 5,
|
|
31
46
|
},
|
|
32
47
|
content: {
|
|
33
|
-
|
|
48
|
+
fontSize: 16,
|
|
34
49
|
},
|
|
35
50
|
languageButton: {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
51
|
+
position: 'absolute',
|
|
52
|
+
right: theme.spacing(1),
|
|
53
|
+
top: theme.spacing(1),
|
|
39
54
|
},
|
|
40
55
|
languageButtonActive: {
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
};
|
|
45
|
-
var CustomModal = function CustomModal(_ref) {
|
|
46
|
-
var open = _ref.open,
|
|
47
|
-
toggleTranslation = _ref.toggleTranslation,
|
|
48
|
-
noTranslation = _ref.noTranslation,
|
|
49
|
-
title = _ref.title,
|
|
50
|
-
fullWidth = _ref.fullWidth,
|
|
51
|
-
help = _ref.help,
|
|
52
|
-
maxWidth = _ref.maxWidth,
|
|
53
|
-
progress = _ref.progress,
|
|
54
|
-
icon = _ref.icon,
|
|
55
|
-
applyDisabled = _ref.applyDisabled,
|
|
56
|
-
applyButton = _ref.applyButton,
|
|
57
|
-
classes = _ref.classes,
|
|
58
|
-
onClose = _ref.onClose,
|
|
59
|
-
children = _ref.children,
|
|
60
|
-
titleButtonApply = _ref.titleButtonApply,
|
|
61
|
-
titleButtonClose = _ref.titleButtonClose,
|
|
62
|
-
onApply = _ref.onApply,
|
|
63
|
-
textInput = _ref.textInput,
|
|
64
|
-
defaultValue = _ref.defaultValue,
|
|
65
|
-
overflowHidden = _ref.overflowHidden;
|
|
66
|
-
var _useState = (0, _react.useState)(defaultValue),
|
|
67
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
68
|
-
value = _useState2[0],
|
|
69
|
-
setValue = _useState2[1];
|
|
70
|
-
(0, _react.useEffect)(function () {
|
|
71
|
-
setValue(defaultValue);
|
|
72
|
-
}, [defaultValue]);
|
|
73
|
-
var Icon = null;
|
|
74
|
-
if (icon) {
|
|
75
|
-
Icon = icon;
|
|
76
|
-
}
|
|
77
|
-
return /*#__PURE__*/_react["default"].createElement(_material.Dialog, {
|
|
78
|
-
open: open,
|
|
79
|
-
maxWidth: maxWidth || 'md',
|
|
80
|
-
fullWidth: !!fullWidth,
|
|
81
|
-
disableEscapeKeyDown: false,
|
|
82
|
-
onClose: onClose,
|
|
83
|
-
classes: {
|
|
84
|
-
paper: classes.modalDialog /* paper: classes.background */
|
|
85
|
-
}
|
|
86
|
-
}, title && /*#__PURE__*/_react["default"].createElement(_material.DialogTitle, null, icon ? /*#__PURE__*/_react["default"].createElement(Icon, {
|
|
87
|
-
className: classes.titleIcon
|
|
88
|
-
}) : null, title, _i18n["default"].getLanguage() !== 'en' && toggleTranslation ? /*#__PURE__*/_react["default"].createElement(_material.IconButton, {
|
|
89
|
-
size: "large",
|
|
90
|
-
className: _Utils["default"].clsx(classes.languageButton, noTranslation && classes.languageButtonActive),
|
|
91
|
-
onClick: function onClick() {
|
|
92
|
-
return toggleTranslation();
|
|
56
|
+
color: theme.palette.primary.main,
|
|
93
57
|
},
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
fullWidth: true,
|
|
105
|
-
autoFocus: true,
|
|
106
|
-
variant: "outlined",
|
|
107
|
-
size: "medium"
|
|
108
|
-
// rows={10}
|
|
109
|
-
,
|
|
110
|
-
multiline: true,
|
|
111
|
-
value: value,
|
|
112
|
-
onChange: function onChange(e) {
|
|
113
|
-
return setValue(e.target.value);
|
|
58
|
+
});
|
|
59
|
+
const CustomModal = (props) => {
|
|
60
|
+
const { open, toggleTranslation, noTranslation, title, fullWidth, help, maxWidth, progress, icon, applyDisabled, applyButton, classes, onClose, children, titleButtonApply, titleButtonClose, onApply, textInput, defaultValue, overflowHidden, } = props;
|
|
61
|
+
const [value, setValue] = (0, react_1.useState)(defaultValue || '');
|
|
62
|
+
(0, react_1.useEffect)(() => {
|
|
63
|
+
setValue(defaultValue || '');
|
|
64
|
+
}, [defaultValue]);
|
|
65
|
+
let Icon = null;
|
|
66
|
+
if (icon) {
|
|
67
|
+
Icon = icon;
|
|
114
68
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
titleButtonClose: 'Cancel',
|
|
139
|
-
titleButtonApply: 'Ok',
|
|
140
|
-
overflowHidden: false,
|
|
141
|
-
help: ''
|
|
142
|
-
};
|
|
143
|
-
CustomModal.propTypes = {
|
|
144
|
-
icon: _propTypes["default"].object,
|
|
145
|
-
open: _propTypes["default"].bool,
|
|
146
|
-
onClose: _propTypes["default"].func,
|
|
147
|
-
children: _propTypes["default"].any,
|
|
148
|
-
titleButtonClose: _propTypes["default"].string,
|
|
149
|
-
titleButtonApply: _propTypes["default"].string,
|
|
150
|
-
onApply: _propTypes["default"].func,
|
|
151
|
-
fullWidth: _propTypes["default"].bool,
|
|
152
|
-
maxWidth: _propTypes["default"].string,
|
|
153
|
-
applyButton: _propTypes["default"].bool,
|
|
154
|
-
applyDisabled: _propTypes["default"].bool,
|
|
155
|
-
overflowHidden: _propTypes["default"].bool,
|
|
156
|
-
help: _propTypes["default"].string,
|
|
157
|
-
noTranslation: _propTypes["default"].bool,
|
|
158
|
-
toggleTranslation: _propTypes["default"].func
|
|
69
|
+
return react_1.default.createElement(material_1.Dialog, { open: open, maxWidth: maxWidth || 'md', fullWidth: !!fullWidth, disableEscapeKeyDown: false, onClose: onClose, classes: { paper: classes.modalDialog /* paper: classes.background */ } },
|
|
70
|
+
title && react_1.default.createElement(material_1.DialogTitle, null,
|
|
71
|
+
icon ? react_1.default.createElement(Icon, { className: classes.titleIcon }) : null,
|
|
72
|
+
title,
|
|
73
|
+
i18n_1.default.getLanguage() !== 'en' && toggleTranslation ? react_1.default.createElement(material_1.IconButton, { size: "large", className: Utils_1.default.clsx(classes.languageButton, noTranslation && classes.languageButtonActive), onClick: () => toggleTranslation(), title: i18n_1.default.t('Disable/Enable translation') },
|
|
74
|
+
react_1.default.createElement(icons_material_1.Language, null)) : null),
|
|
75
|
+
react_1.default.createElement(material_1.DialogContent, { className: Utils_1.default.clsx(overflowHidden ? classes.overflowHidden : null, classes.content), style: { paddingTop: 8 } },
|
|
76
|
+
textInput && react_1.default.createElement(material_1.TextField
|
|
77
|
+
// className={className}
|
|
78
|
+
, {
|
|
79
|
+
// className={className}
|
|
80
|
+
autoComplete: "off", fullWidth: true, autoFocus: true, variant: "outlined", size: "medium",
|
|
81
|
+
// rows={10}
|
|
82
|
+
multiline: true, value: value, onChange: e => setValue(e.target.value) }),
|
|
83
|
+
children,
|
|
84
|
+
help ? react_1.default.createElement("div", null, help) : null),
|
|
85
|
+
react_1.default.createElement(material_1.DialogActions, null,
|
|
86
|
+
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')),
|
|
87
|
+
react_1.default.createElement(material_1.Button
|
|
88
|
+
// @ts-expect-error grey is valid color
|
|
89
|
+
, {
|
|
90
|
+
// @ts-expect-error grey is valid color
|
|
91
|
+
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'))));
|
|
159
92
|
};
|
|
160
|
-
|
|
161
|
-
//# sourceMappingURL=CustomModal.js.map
|
|
93
|
+
exports.default = (0, styles_1.withStyles)(styles)(CustomModal);
|
|
@@ -1,132 +1,70 @@
|
|
|
1
|
-
export default _export;
|
|
2
|
-
/** @type {typeof FileBrowser} */
|
|
3
|
-
declare const _export: typeof FileBrowser;
|
|
4
1
|
/**
|
|
5
|
-
*
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
loadAllFolders: boolean;
|
|
11
|
-
};
|
|
12
|
-
static getEditFile(ext: any): boolean;
|
|
13
|
-
/**
|
|
14
|
-
* @param {Readonly<import("./types").FileBrowserProps>} props
|
|
15
|
-
*/
|
|
16
|
-
constructor(props: Readonly<import("./types").FileBrowserProps>);
|
|
17
|
-
limitToObjectID: any;
|
|
18
|
-
limitToPath: any;
|
|
19
|
-
state: {
|
|
20
|
-
viewType: any;
|
|
21
|
-
folders: {};
|
|
22
|
-
filterEmpty: boolean;
|
|
23
|
-
expanded: any;
|
|
24
|
-
currentDir: string;
|
|
25
|
-
expertMode: boolean;
|
|
26
|
-
addFolder: boolean;
|
|
27
|
-
uploadFile: boolean;
|
|
28
|
-
deleteItem: string;
|
|
29
|
-
viewer: string;
|
|
30
|
-
formatEditFile: string;
|
|
31
|
-
path: any;
|
|
32
|
-
selected: any;
|
|
33
|
-
errorText: string;
|
|
34
|
-
modalEditOfAccess: boolean;
|
|
35
|
-
backgroundImage: any;
|
|
36
|
-
queueLength: number;
|
|
37
|
-
loadAllFolders: boolean;
|
|
38
|
-
fileErrors: any[];
|
|
39
|
-
filterByType: string;
|
|
40
|
-
showTypesMenu: any;
|
|
41
|
-
restrictToFolder: any;
|
|
42
|
-
};
|
|
43
|
-
imagePrefix: string;
|
|
44
|
-
levelPadding: any;
|
|
45
|
-
mounted: boolean;
|
|
46
|
-
suppressDeleteConfirm: number;
|
|
47
|
-
browseList: any[];
|
|
48
|
-
browseListRunning: boolean;
|
|
49
|
-
initialReadFinished: boolean;
|
|
50
|
-
supportSubscribes: any;
|
|
51
|
-
_tempTimeout: {};
|
|
52
|
-
loadFolders(): Promise<void>;
|
|
53
|
-
scrollToSelected(): void;
|
|
54
|
-
componentDidMount(): Promise<void>;
|
|
55
|
-
componentWillUnmount(): void;
|
|
56
|
-
browseFolders(foldersList: any, _newFolders: any, _resolve: any): any;
|
|
57
|
-
readDirSerial(adapter: any, relPath: any): Promise<any>;
|
|
58
|
-
processBrowseList(level: any): void;
|
|
59
|
-
browseFolder(folderId: any, _newFolders: any, _checkEmpty: any, force: any): any;
|
|
60
|
-
toggleFolder(item: any, e: any): void;
|
|
61
|
-
onFileChange: (id: any, fileName: any, size: any) => void;
|
|
62
|
-
changeFolder(e: any, folder: any): any;
|
|
63
|
-
lastSelect: number;
|
|
64
|
-
select(id: any, e: any, cb: any): void;
|
|
65
|
-
renderFolder(item: any, expanded: any): React.JSX.Element;
|
|
66
|
-
renderBackFolder(): React.JSX.Element;
|
|
67
|
-
formatSize(size: any): React.JSX.Element;
|
|
68
|
-
formatAcl(acl: any): React.JSX.Element;
|
|
69
|
-
getFileIcon(ext: any): React.JSX.Element;
|
|
70
|
-
setStateBackgroundImage: () => void;
|
|
71
|
-
getClassBackgroundImage: () => any;
|
|
72
|
-
renderFile(item: any): React.JSX.Element;
|
|
73
|
-
renderItems(folderId: any): any;
|
|
74
|
-
renderToolbar(): React.JSX.Element;
|
|
75
|
-
findItem(id: any, folders: any): any;
|
|
76
|
-
renderInputDialog(): void | React.JSX.Element;
|
|
77
|
-
componentDidUpdate(): void;
|
|
78
|
-
setOpacityTimer: any;
|
|
79
|
-
uploadFile(fileName: any, data: any): Promise<void>;
|
|
80
|
-
findFirstFolder(id: any): any;
|
|
81
|
-
renderUpload(): React.JSX.Element[];
|
|
82
|
-
deleteRecursive(id: any): Promise<void>;
|
|
83
|
-
deleteItem(deleteItem: any): void;
|
|
84
|
-
renderDeleteDialog(): false | React.JSX.Element;
|
|
85
|
-
renderViewDialog(): React.JSX.Element;
|
|
86
|
-
renderError(): React.JSX.Element;
|
|
87
|
-
updateItemsAcl(info: any): void;
|
|
88
|
-
cacheFolders: any;
|
|
89
|
-
cacheFoldersTimeout: any;
|
|
90
|
-
changeToPath(): void;
|
|
91
|
-
renderBreadcrumb(): React.JSX.Element;
|
|
92
|
-
renderPath(): React.JSX.Element;
|
|
93
|
-
render(): React.JSX.Element;
|
|
94
|
-
foldersLoading: boolean;
|
|
95
|
-
}
|
|
96
|
-
declare namespace FileBrowser {
|
|
97
|
-
namespace defaultProps {
|
|
98
|
-
function modalEditOfAccessControl(): void;
|
|
99
|
-
}
|
|
100
|
-
namespace propTypes {
|
|
101
|
-
export let style: PropTypes.Requireable<object>;
|
|
102
|
-
export let className: PropTypes.Requireable<string>;
|
|
103
|
-
export let t: PropTypes.Validator<(...args: any[]) => any>;
|
|
104
|
-
export let lang: PropTypes.Validator<string>;
|
|
105
|
-
export let socket: PropTypes.Validator<object>;
|
|
106
|
-
export let ready: PropTypes.Requireable<boolean>;
|
|
107
|
-
export let expertMode: PropTypes.Requireable<boolean>;
|
|
108
|
-
export let showTypeSelector: PropTypes.Requireable<boolean>;
|
|
109
|
-
export let showToolbar: PropTypes.Requireable<boolean>;
|
|
110
|
-
export let allowUpload: PropTypes.Requireable<boolean>;
|
|
111
|
-
export let allowDownload: PropTypes.Requireable<boolean>;
|
|
112
|
-
export let allowCreateFolder: PropTypes.Requireable<boolean>;
|
|
113
|
-
export let allowDelete: PropTypes.Requireable<boolean>;
|
|
114
|
-
export let allowView: PropTypes.Requireable<boolean>;
|
|
115
|
-
export let imagePrefix: PropTypes.Requireable<string>;
|
|
116
|
-
export let showExpertButton: PropTypes.Requireable<boolean>;
|
|
117
|
-
export let viewType: PropTypes.Requireable<string>;
|
|
118
|
-
export let showViewTypeButton: PropTypes.Requireable<boolean>;
|
|
119
|
-
export let themeType: PropTypes.Requireable<string>;
|
|
120
|
-
export let restrictToFolder: PropTypes.Requireable<string>;
|
|
121
|
-
export let allowNonRestricted: PropTypes.Requireable<boolean>;
|
|
122
|
-
export let selected: PropTypes.Requireable<string>;
|
|
123
|
-
export let tileView: PropTypes.Requireable<boolean>;
|
|
124
|
-
export let filterFiles: PropTypes.Requireable<any[]>;
|
|
125
|
-
export let filterByType: PropTypes.Requireable<string>;
|
|
126
|
-
export let onSelect: PropTypes.Requireable<(...args: any[]) => any>;
|
|
127
|
-
let modalEditOfAccessControl_1: PropTypes.Requireable<(...args: any[]) => any>;
|
|
128
|
-
export { modalEditOfAccessControl_1 as modalEditOfAccessControl };
|
|
129
|
-
}
|
|
130
|
-
}
|
|
2
|
+
* Copyright 2020-2024, Denis Haev <dogafox@gmail.com>
|
|
3
|
+
*
|
|
4
|
+
* MIT License
|
|
5
|
+
*
|
|
6
|
+
* */
|
|
131
7
|
import React from 'react';
|
|
132
|
-
import
|
|
8
|
+
import type { Connection } from '@iobroker/socket-client';
|
|
9
|
+
import { ThemeName, ThemeType, Translator } from '../types';
|
|
10
|
+
export interface FileBrowserProps {
|
|
11
|
+
/** The key to identify this component. */
|
|
12
|
+
key?: string;
|
|
13
|
+
/** Additional styling for this component. */
|
|
14
|
+
style?: React.CSSProperties;
|
|
15
|
+
/** The CSS class name. */
|
|
16
|
+
className?: string;
|
|
17
|
+
/** Translation function. */
|
|
18
|
+
t: Translator;
|
|
19
|
+
/** The selected language. */
|
|
20
|
+
lang: ioBroker.Languages;
|
|
21
|
+
/** The socket connection. */
|
|
22
|
+
socket: Connection;
|
|
23
|
+
/** Is the component data ready. */
|
|
24
|
+
ready?: boolean;
|
|
25
|
+
/** Is expert mode enabled? (default: false) */
|
|
26
|
+
expertMode?: boolean;
|
|
27
|
+
/** Show the toolbar? (default: false) */
|
|
28
|
+
showToolbar?: boolean;
|
|
29
|
+
/** If defined, allow selecting only files from this folder and subfolders */
|
|
30
|
+
limitPath?: string;
|
|
31
|
+
/** Allow upload of new files? (default: false) */
|
|
32
|
+
allowUpload?: boolean;
|
|
33
|
+
/** Allow download of files? (default: false) */
|
|
34
|
+
allowDownload?: boolean;
|
|
35
|
+
/** Allow creation of new folders? (default: false) */
|
|
36
|
+
allowCreateFolder?: boolean;
|
|
37
|
+
/** Allow deleting files? (default: false) */
|
|
38
|
+
allowDelete?: boolean;
|
|
39
|
+
/** Allow viewing files? (default: false) */
|
|
40
|
+
allowView?: boolean;
|
|
41
|
+
/** Prefix (default: '.') */
|
|
42
|
+
imagePrefix?: string;
|
|
43
|
+
/** Show the expert button? */
|
|
44
|
+
showExpertButton?: boolean;
|
|
45
|
+
/** Type of view */
|
|
46
|
+
viewType?: 'Table' | 'Tile';
|
|
47
|
+
/** Show the buttons to switch the view from table to tile? (default: false) */
|
|
48
|
+
showViewTypeButton?: boolean;
|
|
49
|
+
/** The ID of the selected file. */
|
|
50
|
+
selected?: string | string[];
|
|
51
|
+
/** The file extensions to show, like ['png', 'svg', 'bmp', 'jpg', 'jpeg', 'gif']. */
|
|
52
|
+
filterFiles?: string[];
|
|
53
|
+
/** The file extension categories to show. */
|
|
54
|
+
filterByType?: 'images' | 'code' | 'txt';
|
|
55
|
+
/** Callback for file selection. */
|
|
56
|
+
onSelect?: (id: string | string[], isDoubleClick?: boolean, isFolder?: boolean) => void;
|
|
57
|
+
/** Theme name */
|
|
58
|
+
themeName?: ThemeName;
|
|
59
|
+
/** Theme type. */
|
|
60
|
+
themeType?: ThemeType;
|
|
61
|
+
/** Padding in pixels for folder levels */
|
|
62
|
+
levelPadding?: number;
|
|
63
|
+
restrictToFolder?: string;
|
|
64
|
+
classes: Record<string, string>;
|
|
65
|
+
modalEditOfAccessControl?: (obj: any) => React.JSX.Element | null;
|
|
66
|
+
allowNonRestricted?: boolean;
|
|
67
|
+
showTypeSelector?: boolean;
|
|
68
|
+
}
|
|
69
|
+
declare const _default: (props: any) => React.JSX.Element;
|
|
70
|
+
export default _default;
|