@iobroker/adapter-react-v5 5.0.4 → 5.0.5
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/ColorPicker.d.ts +0 -1
- package/Components/ColorPicker.js +1 -1
- package/Components/ComplexCron.js +20 -28
- package/Components/CopyToClipboard.js +0 -4
- package/Components/CustomModal.js +1 -5
- package/Components/FileBrowser.js +13 -18
- package/Components/FileViewer.js +4 -11
- package/Components/Icon.d.ts +2 -2
- package/Components/Icon.js +2 -2
- package/Components/IconSelector.js +2 -10
- package/Components/Image.js +3 -1
- package/Components/Loader.d.ts +2 -2
- package/Components/Loader.js +1 -1
- package/Components/Loaders/PT.d.ts +1 -1
- package/Components/Loaders/PT.js +1 -1
- package/Components/Loaders/Vendor.d.ts +1 -1
- package/Components/Loaders/Vendor.js +2 -2
- package/Components/Logo.js +1 -1
- package/Components/MDUtils.js +2 -0
- package/Components/ObjectBrowser.d.ts +526 -2
- package/Components/ObjectBrowser.js +100 -84
- package/Components/SaveCloseButtons.js +9 -18
- package/Components/Schedule.js +2 -2
- package/Components/SimpleCron/cron2text.js +5 -3
- package/Components/SimpleCron/cronText.js +1 -1
- package/Components/SimpleCron/index.js +29 -35
- package/Components/TableResize.d.ts +1 -1
- package/Components/TableResize.js +1 -1
- package/Components/TextWithIcon.js +1 -1
- package/Components/TreeTable.js +5 -4
- package/Components/Utils.d.ts +58 -60
- package/Components/Utils.js +239 -197
- package/Dialogs/ComplexCron.js +2 -10
- package/Dialogs/Confirm.d.ts +1 -1
- package/Dialogs/Confirm.js +2 -4
- package/Dialogs/Cron.js +1 -3
- package/Dialogs/Error.d.ts +1 -11
- package/Dialogs/Error.js +1 -7
- package/Dialogs/Message.d.ts +1 -12
- package/Dialogs/Message.js +1 -8
- package/Dialogs/SelectFile.js +1 -5
- package/Dialogs/SelectID.d.ts +1 -1
- package/Dialogs/SelectID.js +13 -7
- package/Dialogs/SimpleCron.js +1 -3
- package/Dialogs/TextInput.js +1 -5
- package/GenericApp.d.ts +2 -3
- package/GenericApp.js +11 -9
- package/LegacyConnection.d.ts +11 -12
- package/LegacyConnection.js +350 -222
- package/README.md +3 -0
- package/i18n.d.ts +1 -1
- package/i18n.js +6 -8
- package/package.json +1 -1
- package/types.d.ts +27 -27
|
@@ -4,7 +4,15 @@
|
|
|
4
4
|
* MIT License
|
|
5
5
|
*
|
|
6
6
|
* */
|
|
7
|
-
import React from 'react';
|
|
7
|
+
import React, { Component } from 'react';
|
|
8
|
+
import type Router from './Router';
|
|
9
|
+
import type { ThemeType, ThemeName, IobTheme, Translate } from '../types';
|
|
10
|
+
import Connection from '../Connection';
|
|
11
|
+
declare module '@mui/material/Button' {
|
|
12
|
+
interface ButtonPropsColorOverrides {
|
|
13
|
+
grey: true;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
8
16
|
declare global {
|
|
9
17
|
interface Window {
|
|
10
18
|
sparkline: {
|
|
@@ -12,6 +20,26 @@ declare global {
|
|
|
12
20
|
};
|
|
13
21
|
}
|
|
14
22
|
}
|
|
23
|
+
type ObjectEventType = 'new' | 'changed' | 'deleted';
|
|
24
|
+
interface ObjectEvent {
|
|
25
|
+
id: string;
|
|
26
|
+
obj?: ioBroker.Object;
|
|
27
|
+
type: ObjectEventType;
|
|
28
|
+
oldObj?: ioBroker.Object;
|
|
29
|
+
}
|
|
30
|
+
interface ObjectsWorker {
|
|
31
|
+
getObjects(update?: boolean): Promise<void | Record<string, ioBroker.Object>>;
|
|
32
|
+
registerHandler(cb: (events: ObjectEvent[]) => void): void;
|
|
33
|
+
unregisterHandler(cb: (events: ObjectEvent[]) => void, doNotUnsubscribe?: boolean): void;
|
|
34
|
+
}
|
|
35
|
+
interface CustomAdminColumnStored {
|
|
36
|
+
path: string;
|
|
37
|
+
name: string;
|
|
38
|
+
objTypes?: ioBroker.ObjectType[];
|
|
39
|
+
width?: number;
|
|
40
|
+
edit?: boolean;
|
|
41
|
+
type?: ioBroker.CommonType;
|
|
42
|
+
}
|
|
15
43
|
export interface TreeItemData {
|
|
16
44
|
id: string;
|
|
17
45
|
name: string;
|
|
@@ -49,12 +77,19 @@ export interface TreeItemData {
|
|
|
49
77
|
per?: boolean;
|
|
50
78
|
lang?: ioBroker.Languages;
|
|
51
79
|
state?: {
|
|
52
|
-
valFullRx?: React.JSX.Element[] | null;
|
|
53
80
|
valTextRx?: React.JSX.Element[] | null;
|
|
54
81
|
style?: React.CSSProperties;
|
|
55
82
|
};
|
|
56
83
|
aclTooltip?: null | React.JSX.Element;
|
|
57
84
|
}
|
|
85
|
+
interface ObjectBrowserCustomFilter {
|
|
86
|
+
type?: ioBroker.ObjectType | ioBroker.ObjectType[];
|
|
87
|
+
common?: {
|
|
88
|
+
type?: ioBroker.CommonType | ioBroker.CommonType[];
|
|
89
|
+
role?: string | string[];
|
|
90
|
+
custom?: '_' | '_dataSources' | true | string | string[];
|
|
91
|
+
};
|
|
92
|
+
}
|
|
58
93
|
export interface TreeItem {
|
|
59
94
|
id?: string;
|
|
60
95
|
data: TreeItemData;
|
|
@@ -62,5 +97,494 @@ export interface TreeItem {
|
|
|
62
97
|
}
|
|
63
98
|
export declare function getSelectIdIconFromObjects(objects: Record<string, ioBroker.Object>, id: string, imagePrefix?: string): string | React.JSX.Element | null;
|
|
64
99
|
export declare const ITEM_IMAGES: Record<string, React.JSX.Element>;
|
|
100
|
+
export interface ObjectBrowserFilter {
|
|
101
|
+
id?: string;
|
|
102
|
+
name?: string;
|
|
103
|
+
room?: string;
|
|
104
|
+
func?: string;
|
|
105
|
+
role?: string;
|
|
106
|
+
type?: string;
|
|
107
|
+
custom?: string;
|
|
108
|
+
expertMode?: boolean;
|
|
109
|
+
}
|
|
110
|
+
interface AdapterColumn {
|
|
111
|
+
adapter: string;
|
|
112
|
+
id: string;
|
|
113
|
+
name: string;
|
|
114
|
+
path: string[];
|
|
115
|
+
pathText: string;
|
|
116
|
+
edit?: boolean;
|
|
117
|
+
type?: 'boolean' | 'string' | 'number';
|
|
118
|
+
objTypes?: ioBroker.ObjectType[];
|
|
119
|
+
align?: 'center' | 'left' | 'right';
|
|
120
|
+
}
|
|
121
|
+
interface ObjectBrowserEditRoleProps {
|
|
122
|
+
classes: Record<string, string>;
|
|
123
|
+
roles: string[];
|
|
124
|
+
id: string;
|
|
125
|
+
socket: Connection;
|
|
126
|
+
onClose: (obj?: ioBroker.Object | null) => void;
|
|
127
|
+
t: Translate;
|
|
128
|
+
}
|
|
129
|
+
interface ObjectViewFileDialogProps {
|
|
130
|
+
t: Translate;
|
|
131
|
+
socket: Connection;
|
|
132
|
+
obj: ioBroker.AnyObject;
|
|
133
|
+
onClose: () => void;
|
|
134
|
+
}
|
|
135
|
+
interface DragWrapperProps {
|
|
136
|
+
item: TreeItem;
|
|
137
|
+
className: string;
|
|
138
|
+
children: React.JSX.Element | null;
|
|
139
|
+
}
|
|
140
|
+
interface ObjectCustomDialogProps {
|
|
141
|
+
t: Translate;
|
|
142
|
+
lang: ioBroker.Languages;
|
|
143
|
+
expertMode?: boolean;
|
|
144
|
+
objects: Record<string, ioBroker.Object>;
|
|
145
|
+
socket: Connection;
|
|
146
|
+
theme: IobTheme;
|
|
147
|
+
themeName: ThemeName;
|
|
148
|
+
themeType: ThemeType;
|
|
149
|
+
customsInstances: string[];
|
|
150
|
+
objectIDs: string[];
|
|
151
|
+
onClose: () => void;
|
|
152
|
+
reportChangedIds: (ids: string[]) => void;
|
|
153
|
+
isFloatComma: boolean;
|
|
154
|
+
classes: Record<string, string>;
|
|
155
|
+
allVisibleObjects: boolean;
|
|
156
|
+
systemConfig: ioBroker.SystemConfigObject;
|
|
157
|
+
}
|
|
158
|
+
interface ObjectBrowserValueProps {
|
|
159
|
+
/** Css classes */
|
|
160
|
+
classes: Record<string, string>;
|
|
161
|
+
/** State type */
|
|
162
|
+
type: 'states' | 'string' | 'number' | 'boolean' | 'json';
|
|
163
|
+
/** State role */
|
|
164
|
+
role: string;
|
|
165
|
+
/** common.states */
|
|
166
|
+
states: Record<string, string> | null;
|
|
167
|
+
/** The state value */
|
|
168
|
+
value: string | number | boolean | null;
|
|
169
|
+
/** If expert mode is enabled */
|
|
170
|
+
expertMode: boolean;
|
|
171
|
+
onClose: (newValue?: {
|
|
172
|
+
val: ioBroker.StateValue;
|
|
173
|
+
ack: boolean;
|
|
174
|
+
q: ioBroker.STATE_QUALITY[keyof ioBroker.STATE_QUALITY];
|
|
175
|
+
expire: number | undefined;
|
|
176
|
+
}) => void;
|
|
177
|
+
/** Configured theme */
|
|
178
|
+
themeType: ThemeType;
|
|
179
|
+
socket: Connection;
|
|
180
|
+
defaultHistory: string;
|
|
181
|
+
dateFormat: string;
|
|
182
|
+
object: ioBroker.StateObject;
|
|
183
|
+
isFloatComma: boolean;
|
|
184
|
+
t: Translate;
|
|
185
|
+
lang: ioBroker.Languages;
|
|
186
|
+
}
|
|
187
|
+
interface ObjectBrowserEditObjectProps {
|
|
188
|
+
classes: Record<string, string>;
|
|
189
|
+
socket: Connection;
|
|
190
|
+
obj: ioBroker.AnyObject;
|
|
191
|
+
roleArray: string[];
|
|
192
|
+
expertMode: boolean;
|
|
193
|
+
themeType: ThemeType;
|
|
194
|
+
aliasTab: boolean;
|
|
195
|
+
onClose: (obj?: ioBroker.AnyObject) => void;
|
|
196
|
+
dialogName?: string;
|
|
197
|
+
objects: Record<string, ioBroker.AnyObject>;
|
|
198
|
+
dateFormat: string;
|
|
199
|
+
isFloatComma: boolean;
|
|
200
|
+
onNewObject: (obj: ioBroker.AnyObject) => void;
|
|
201
|
+
t: Translate;
|
|
202
|
+
}
|
|
203
|
+
interface ObjectAliasEditorProps {
|
|
204
|
+
t: Translate;
|
|
205
|
+
socket: Connection;
|
|
206
|
+
objects: Record<string, ioBroker.AnyObject>;
|
|
207
|
+
onRedirect: (id: string, delay?: number) => void;
|
|
208
|
+
obj: ioBroker.AnyObject;
|
|
209
|
+
onClose: () => void;
|
|
210
|
+
}
|
|
211
|
+
interface ObjectBrowserProps {
|
|
212
|
+
/** where to store settings in localStorage */
|
|
213
|
+
dialogName?: string;
|
|
214
|
+
classes: Record<string, string>;
|
|
215
|
+
defaultFilters?: ObjectBrowserFilter;
|
|
216
|
+
selected?: string | string[];
|
|
217
|
+
onSelect?: (selected: string | string[], name: string, isDouble?: boolean) => void;
|
|
218
|
+
onFilterChanged?: (newFilter: ObjectBrowserFilter) => void;
|
|
219
|
+
socket: Connection;
|
|
220
|
+
showExpertButton?: boolean;
|
|
221
|
+
expertMode?: boolean;
|
|
222
|
+
imagePrefix?: string;
|
|
223
|
+
themeName: ThemeName;
|
|
224
|
+
themeType: ThemeType;
|
|
225
|
+
/** will be filled by withWidth */
|
|
226
|
+
width?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
227
|
+
theme: IobTheme;
|
|
228
|
+
t: Translate;
|
|
229
|
+
lang: ioBroker.Languages;
|
|
230
|
+
multiSelect?: boolean;
|
|
231
|
+
notEditable?: boolean;
|
|
232
|
+
foldersFirst?: boolean;
|
|
233
|
+
disableColumnSelector?: boolean;
|
|
234
|
+
isFloatComma?: boolean;
|
|
235
|
+
dateFormat?: string;
|
|
236
|
+
levelPadding?: number;
|
|
237
|
+
objectCustomDialog?: React.FC<ObjectCustomDialogProps>;
|
|
238
|
+
objectAddBoolean?: boolean;
|
|
239
|
+
objectEditBoolean?: boolean;
|
|
240
|
+
objectStatesView?: boolean;
|
|
241
|
+
objectImportExport?: boolean;
|
|
242
|
+
objectEditOfAccessControl?: boolean;
|
|
243
|
+
/** modal add object */
|
|
244
|
+
modalNewObject?: (oBrowser: ObjectBrowserClass) => React.JSX.Element;
|
|
245
|
+
/** modal Edit Of Access Control */
|
|
246
|
+
modalEditOfAccessControl: (oBrowser: ObjectBrowserClass, data: TreeItemData) => React.JSX.Element;
|
|
247
|
+
onObjectDelete?: (id: string, hasChildren: boolean, objectExists: boolean, childrenCount: number) => void;
|
|
248
|
+
/** optional filter
|
|
249
|
+
* `{common: {custom: true}}` - show only objects with some custom settings
|
|
250
|
+
* `{common: {custom: 'sql.0'}}` - show only objects with sql.0 custom settings (only of the specific instance)
|
|
251
|
+
* `{common: {custom: '_dataSources'}}` - show only objects of adapters `influxdb' or 'sql' or 'history'
|
|
252
|
+
* `{common: {custom: 'adapterName.'}}` - show only objects of custom settings of specific adapter (all instances)
|
|
253
|
+
* `{type: 'channel'}` - show only channels
|
|
254
|
+
* `{type: ['channel', 'device']}` - show only channels and devices
|
|
255
|
+
* `{common: {type: 'number'}` - show only states of type 'number
|
|
256
|
+
* `{common: {type: ['number', 'string']}` - show only states of type 'number and string
|
|
257
|
+
* `{common: {role: ['switch']}` - show only states with roles starting from switch
|
|
258
|
+
* `{common: {role: ['switch', 'button']}` - show only states with roles starting from `switch` and `button`
|
|
259
|
+
*/
|
|
260
|
+
customFilter: ObjectBrowserCustomFilter;
|
|
261
|
+
objectBrowserValue?: React.FC<ObjectBrowserValueProps>;
|
|
262
|
+
objectBrowserEditObject?: React.FC<ObjectBrowserEditObjectProps>;
|
|
263
|
+
/** on edit alias */
|
|
264
|
+
objectBrowserAliasEditor?: React.FC<ObjectAliasEditorProps>;
|
|
265
|
+
/** on Edit role */
|
|
266
|
+
objectBrowserEditRole?: React.FC<ObjectBrowserEditRoleProps>;
|
|
267
|
+
/** on view file state */
|
|
268
|
+
objectBrowserViewFile?: React.FC<ObjectViewFileDialogProps>;
|
|
269
|
+
router?: typeof Router;
|
|
270
|
+
types?: ioBroker.ObjectType[];
|
|
271
|
+
/** Possible columns: ['name', 'type', 'role', 'room', 'func', 'val', 'buttons'] */
|
|
272
|
+
columns?: string[];
|
|
273
|
+
/** Shows only elements of this root */
|
|
274
|
+
root?: string;
|
|
275
|
+
/** cache of objects */
|
|
276
|
+
objectsWorker?: ObjectsWorker;
|
|
277
|
+
/** function to filter out all unnecessary objects. It cannot be used together with "types"
|
|
278
|
+
* Example for function: `obj => obj.common?.type === 'boolean'` to show only boolean states
|
|
279
|
+
* */
|
|
280
|
+
filterFunc?: (obj: ioBroker.Object) => boolean;
|
|
281
|
+
/** Used for enums dragging */
|
|
282
|
+
DragWrapper?: React.FC<DragWrapperProps>;
|
|
283
|
+
/** let DragWrapper know about objects to get the icons */
|
|
284
|
+
setObjectsReference?: (objects: Record<string, ioBroker.Object>) => void;
|
|
285
|
+
dragEnabled?: boolean;
|
|
286
|
+
}
|
|
287
|
+
interface ObjectBrowserState {
|
|
288
|
+
loaded: boolean;
|
|
289
|
+
foldersFirst: boolean;
|
|
290
|
+
selected: string[];
|
|
291
|
+
selectedNonObject: string;
|
|
292
|
+
filter: ObjectBrowserFilter;
|
|
293
|
+
filterKey: number;
|
|
294
|
+
depth: number;
|
|
295
|
+
expandAllVisible: boolean;
|
|
296
|
+
expanded: string[];
|
|
297
|
+
toast: string;
|
|
298
|
+
scrollBarWidth: number;
|
|
299
|
+
customDialog: null | string[];
|
|
300
|
+
customDialogAll?: boolean;
|
|
301
|
+
editObjectDialog: string;
|
|
302
|
+
editObjectAlias: boolean;
|
|
303
|
+
viewFileDialog: string;
|
|
304
|
+
showAliasEditor: string;
|
|
305
|
+
enumDialog: null | {
|
|
306
|
+
item: TreeItem;
|
|
307
|
+
type: 'room' | 'func';
|
|
308
|
+
enumsOriginal: string;
|
|
309
|
+
};
|
|
310
|
+
enumDialogEnums?: null | string[];
|
|
311
|
+
roleDialog: null | string;
|
|
312
|
+
statesView: boolean;
|
|
313
|
+
/** ['name', 'type', 'role', 'room', 'func', 'val', 'buttons'] */
|
|
314
|
+
columns: string[] | null;
|
|
315
|
+
columnsForAdmin: Record<string, CustomAdminColumnStored[]> | null;
|
|
316
|
+
columnsSelectorShow: boolean;
|
|
317
|
+
columnsAuto: boolean;
|
|
318
|
+
columnsWidths: Record<string, number>;
|
|
319
|
+
columnsDialogTransparent: number;
|
|
320
|
+
columnsEditCustomDialog: null | {
|
|
321
|
+
obj: ioBroker.Object;
|
|
322
|
+
item: TreeItem;
|
|
323
|
+
it: AdapterColumn;
|
|
324
|
+
};
|
|
325
|
+
customColumnDialogValueChanged: boolean;
|
|
326
|
+
showExportDialog: false | number;
|
|
327
|
+
showAllExportOptions: boolean;
|
|
328
|
+
linesEnabled: boolean;
|
|
329
|
+
showDescription: boolean;
|
|
330
|
+
showContextMenu: {
|
|
331
|
+
item: TreeItem;
|
|
332
|
+
subItem?: string;
|
|
333
|
+
subAnchor?: HTMLLIElement;
|
|
334
|
+
} | null;
|
|
335
|
+
noStatesByExportImport: boolean;
|
|
336
|
+
beautifyJsonExport: boolean;
|
|
337
|
+
excludeSystemRepositoriesFromExport: boolean;
|
|
338
|
+
excludeTranslations: boolean;
|
|
339
|
+
updating?: boolean;
|
|
340
|
+
modalNewObj?: null | {
|
|
341
|
+
id: string;
|
|
342
|
+
initialType?: ioBroker.ObjectType;
|
|
343
|
+
initialStateType?: ioBroker.CommonType;
|
|
344
|
+
};
|
|
345
|
+
error?: undefined | any;
|
|
346
|
+
modalEditOfAccess?: boolean;
|
|
347
|
+
modalEditOfAccessObjData?: TreeItemData;
|
|
348
|
+
updateOpened?: boolean;
|
|
349
|
+
tooltipInfo: null | {
|
|
350
|
+
el: React.JSX.Element[];
|
|
351
|
+
id: string;
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
export declare class ObjectBrowserClass extends Component<ObjectBrowserProps, ObjectBrowserState> {
|
|
355
|
+
#private;
|
|
356
|
+
private info;
|
|
357
|
+
private localStorage;
|
|
358
|
+
private lastSelectedItems;
|
|
359
|
+
private lastAppliedFilter;
|
|
360
|
+
private readonly tableRef;
|
|
361
|
+
private readonly filterRefs;
|
|
362
|
+
private pausedSubscribes;
|
|
363
|
+
private selectedFound;
|
|
364
|
+
private root;
|
|
365
|
+
private readonly states;
|
|
366
|
+
private subscribes;
|
|
367
|
+
private unsubscribeTimer;
|
|
368
|
+
private statesUpdateTimer;
|
|
369
|
+
private objectsUpdateTimer;
|
|
370
|
+
private filterTimer;
|
|
371
|
+
private readonly visibleCols;
|
|
372
|
+
private readonly texts;
|
|
373
|
+
private readonly possibleCols;
|
|
374
|
+
private readonly imagePrefix;
|
|
375
|
+
private adapterColumns;
|
|
376
|
+
private edit;
|
|
377
|
+
private readonly levelPadding;
|
|
378
|
+
private customWidth;
|
|
379
|
+
private resizeTimeout;
|
|
380
|
+
private resizerNextName;
|
|
381
|
+
private resizerActiveName;
|
|
382
|
+
private resizerCurrentWidths;
|
|
383
|
+
private resizeLeft;
|
|
384
|
+
private resizerOldWidth;
|
|
385
|
+
private resizerMin;
|
|
386
|
+
private resizerNextMin;
|
|
387
|
+
private resizerOldWidthNext;
|
|
388
|
+
private resizerPosition;
|
|
389
|
+
private resizerActiveDiv;
|
|
390
|
+
private resizerNextDiv;
|
|
391
|
+
private storedWidths;
|
|
392
|
+
private systemConfig;
|
|
393
|
+
objects: Record<string, ioBroker.Object>;
|
|
394
|
+
private defaultHistory;
|
|
395
|
+
private columnsVisibility;
|
|
396
|
+
private changedIds;
|
|
397
|
+
private contextMenu;
|
|
398
|
+
private recordStates;
|
|
399
|
+
private customColumnDialog;
|
|
400
|
+
constructor(props: ObjectBrowserProps);
|
|
401
|
+
loadAllObjects(update?: boolean): Promise<void>;
|
|
402
|
+
/**
|
|
403
|
+
* Check if it is a non-expert id
|
|
404
|
+
*/
|
|
405
|
+
static isNonExpertId(
|
|
406
|
+
/** id to test */
|
|
407
|
+
id: string): boolean;
|
|
408
|
+
private expandAllSelected;
|
|
409
|
+
/**
|
|
410
|
+
* @param isDouble is double click
|
|
411
|
+
*/
|
|
412
|
+
private onAfterSelect;
|
|
413
|
+
private static getDerivedStateFromProps;
|
|
414
|
+
/**
|
|
415
|
+
* Called when component is mounted.
|
|
416
|
+
*/
|
|
417
|
+
componentDidMount(): Promise<void>;
|
|
418
|
+
/**
|
|
419
|
+
* Called when component is unmounted.
|
|
420
|
+
*/
|
|
421
|
+
componentWillUnmount(): void;
|
|
422
|
+
/**
|
|
423
|
+
* Show the deletion dialog for a given object
|
|
424
|
+
*/
|
|
425
|
+
showDeleteDialog(options: {
|
|
426
|
+
id: string;
|
|
427
|
+
obj: ioBroker.Object;
|
|
428
|
+
item: TreeItem;
|
|
429
|
+
}): void;
|
|
430
|
+
/**
|
|
431
|
+
* Context menu handler.
|
|
432
|
+
*/
|
|
433
|
+
onContextMenu: (e: MouseEvent) => void;
|
|
434
|
+
/**
|
|
435
|
+
* Called when component is mounted.
|
|
436
|
+
*/
|
|
437
|
+
refreshComponent(): void;
|
|
438
|
+
/**
|
|
439
|
+
* Renders the error dialog.
|
|
440
|
+
*/
|
|
441
|
+
renderErrorDialog(): React.JSX.Element | null;
|
|
442
|
+
/**
|
|
443
|
+
* Show the error dialog.
|
|
444
|
+
*/
|
|
445
|
+
showError(error: any): void;
|
|
446
|
+
/**
|
|
447
|
+
* Called when an item is selected/deselected.
|
|
448
|
+
*/
|
|
449
|
+
onSelect(toggleItem: string, isDouble?: boolean, cb?: () => void): void;
|
|
450
|
+
private _renderDefinedList;
|
|
451
|
+
/**
|
|
452
|
+
* Renders the columns' selector.
|
|
453
|
+
*/
|
|
454
|
+
renderColumnsSelectorDialog(): React.JSX.Element | null;
|
|
455
|
+
private getAdditionalColumns;
|
|
456
|
+
private checkUnsubscribes;
|
|
457
|
+
/**
|
|
458
|
+
* Find an item.
|
|
459
|
+
*/
|
|
460
|
+
findItem(id: string, _parts?: string[], _root?: TreeItem | null, _partyId?: string): TreeItem | null;
|
|
461
|
+
/**
|
|
462
|
+
* Called when a state changes.
|
|
463
|
+
*/
|
|
464
|
+
onStateChange: (id: string, state?: ioBroker.State | null) => void;
|
|
465
|
+
private parseObjectForAdmins;
|
|
466
|
+
onObjectChangeFromWorker: (events: ObjectEvent[]) => void;
|
|
467
|
+
onObjectChange: (id: string, obj?: ioBroker.Object | null) => void;
|
|
468
|
+
afterObjectUpdated(): void;
|
|
469
|
+
/**
|
|
470
|
+
* Processes a single element in regard to certain filters, columns for admin and updates object dict
|
|
471
|
+
* @returns Returns an object containing the new state (if any) and whether the object was filtered.
|
|
472
|
+
*/
|
|
473
|
+
processOnObjectChangeElement(
|
|
474
|
+
/** The id of the object */
|
|
475
|
+
id: string,
|
|
476
|
+
/** The object itself */
|
|
477
|
+
obj?: ioBroker.Object | null): {
|
|
478
|
+
filtered: boolean;
|
|
479
|
+
newInnerState: null | {
|
|
480
|
+
columnsForAdmin: Record<string, CustomAdminColumnStored[]> | null;
|
|
481
|
+
};
|
|
482
|
+
};
|
|
483
|
+
private subscribe;
|
|
484
|
+
private unsubscribe;
|
|
485
|
+
private pauseSubscribe;
|
|
486
|
+
private onFilter;
|
|
487
|
+
clearFilter(): void;
|
|
488
|
+
isFilterEmpty(): boolean;
|
|
489
|
+
private getFilterInput;
|
|
490
|
+
private getFilterSelect;
|
|
491
|
+
private getFilterSelectRole;
|
|
492
|
+
private getFilterSelectRoom;
|
|
493
|
+
private getFilterSelectFunction;
|
|
494
|
+
private getFilterSelectType;
|
|
495
|
+
private getFilterSelectCustoms;
|
|
496
|
+
private onExpandAll;
|
|
497
|
+
private onCollapseAll;
|
|
498
|
+
private expandDepth;
|
|
499
|
+
private static collapseDepth;
|
|
500
|
+
private onExpandVisible;
|
|
501
|
+
private onStatesViewVisible;
|
|
502
|
+
private onCollapseVisible;
|
|
503
|
+
private getEnumsForId;
|
|
504
|
+
private _createAllEnums;
|
|
505
|
+
private loadObjects;
|
|
506
|
+
_getSelectedIdsForExport(): any[];
|
|
507
|
+
/**
|
|
508
|
+
* Exports the selected objects based on the given options and triggers file generation
|
|
509
|
+
*/
|
|
510
|
+
private _exportObjects;
|
|
511
|
+
renderExportDialog(): React.JSX.Element;
|
|
512
|
+
private handleJsonUpload;
|
|
513
|
+
toolTipObjectCreating: () => string | React.JSX.Element[];
|
|
514
|
+
/**
|
|
515
|
+
* Renders the toolbar.
|
|
516
|
+
*/
|
|
517
|
+
getToolbar(): React.JSX.Element;
|
|
518
|
+
private toggleExpanded;
|
|
519
|
+
private onCopy;
|
|
520
|
+
renderTooltipAccessControl: (acl: ioBroker.StateACL) => null | React.JSX.Element;
|
|
521
|
+
renderColumnButtons(id: string, item: TreeItem, classes: Record<string, string>): React.JSX.Element | React.JSX.Element[];
|
|
522
|
+
private readHistory;
|
|
523
|
+
private getTooltipInfo;
|
|
524
|
+
private renderColumnValue;
|
|
525
|
+
private _syncEnum;
|
|
526
|
+
private syncEnum;
|
|
527
|
+
private renderEnumDialog;
|
|
528
|
+
private renderEditRoleDialog;
|
|
529
|
+
private onColumnsEditCustomDialogClose;
|
|
530
|
+
private renderColumnsEditCustomDialog;
|
|
531
|
+
private static getCustomValue;
|
|
532
|
+
private static setCustomValue;
|
|
533
|
+
/**
|
|
534
|
+
* Renders a custom value.
|
|
535
|
+
*/
|
|
536
|
+
renderCustomValue(obj: ioBroker.Object, it: AdapterColumn, item: TreeItem): React.JSX.Element | null;
|
|
537
|
+
/**
|
|
538
|
+
* Renders a leaf.
|
|
539
|
+
*/
|
|
540
|
+
renderLeaf(item: TreeItem, isExpanded: boolean | undefined, classes: Record<string, string>, counter: {
|
|
541
|
+
count: number;
|
|
542
|
+
}): React.JSX.Element;
|
|
543
|
+
/**
|
|
544
|
+
* Renders an item.
|
|
545
|
+
*/
|
|
546
|
+
renderItem(root: TreeItem, isExpanded: boolean | undefined, classes: Record<string, string>, counter?: {
|
|
547
|
+
count: number;
|
|
548
|
+
}): React.JSX.Element[];
|
|
549
|
+
private calculateColumnsVisibility;
|
|
550
|
+
resizerMouseMove: (e: MouseEvent) => void;
|
|
551
|
+
resizerMouseUp: () => void;
|
|
552
|
+
resizerMouseDown: (e: React.MouseEvent<HTMLDivElement>) => void;
|
|
553
|
+
/**
|
|
554
|
+
* Handle keyboard events for navigation
|
|
555
|
+
*/
|
|
556
|
+
navigateKeyPress(event: React.KeyboardEvent): void;
|
|
557
|
+
/**
|
|
558
|
+
* Find the id from the root
|
|
559
|
+
*/
|
|
560
|
+
private static getItemFromRoot;
|
|
561
|
+
resizerReset: () => void;
|
|
562
|
+
/**
|
|
563
|
+
* Render the right handle for resizing
|
|
564
|
+
*/
|
|
565
|
+
renderHandleRight(): React.JSX.Element;
|
|
566
|
+
private renderHeader;
|
|
567
|
+
private renderToast;
|
|
568
|
+
/**
|
|
569
|
+
* Called when component is updated.
|
|
570
|
+
*/
|
|
571
|
+
componentDidUpdate(): void;
|
|
572
|
+
scrollToItem(id: string): void;
|
|
573
|
+
private renderCustomDialog;
|
|
574
|
+
private onUpdate;
|
|
575
|
+
private renderEditObjectDialog;
|
|
576
|
+
private renderViewObjectFileDialog;
|
|
577
|
+
private renderAliasEditorDialog;
|
|
578
|
+
showAddDataPointDialog(id: string, initialType: ioBroker.ObjectType, initialStateType?: ioBroker.CommonType): void;
|
|
579
|
+
/**
|
|
580
|
+
* Renders the right mouse button context menu
|
|
581
|
+
*/
|
|
582
|
+
private renderContextMenu;
|
|
583
|
+
private renderEditValueDialog;
|
|
584
|
+
/**
|
|
585
|
+
* The rendering method of this component.
|
|
586
|
+
*/
|
|
587
|
+
render(): React.JSX.Element;
|
|
588
|
+
}
|
|
65
589
|
declare const _default: (props: Record<string, any>) => React.JSX.Element;
|
|
66
590
|
export default _default;
|