@iobroker/adapter-react
Version:
React classes to develop admin interfaces for ioBroker with react.
613 lines (612 loc) • 17.4 kB
TypeScript
export default _export;
/** @type {typeof ObjectBrowser} */
declare const _export: typeof ObjectBrowser;
/**
* @extends {React.Component<import('./types').ObjectBrowserProps>}
*/
declare class ObjectBrowser extends React.Component<import("./types").ObjectBrowserProps, any, any> {
/**
* @private
* @param {import('./types').ObjectBrowserProps} props
* @param {any} state
*/
private static getDerivedStateFromProps;
/**
* @param {import('./types').ObjectBrowserProps} props
*/
constructor(props: import('./types').ObjectBrowserProps);
lastSelectedItems: any;
tableRef: React.RefObject<any>;
filterRefs: {};
lastAppliedFilter: any;
pausedSubscribes: boolean;
selectedFound: boolean;
root: {
data: {
name: string;
id: string;
};
children: any[];
};
states: {};
subscribes: any[];
statesUpdateTimer: any;
objectsUpdateTimer: any;
visibleCols: any[];
possibleCols: string[];
imagePrefix: string;
state: {
loaded: boolean;
foldersFirst: string;
selected: string[];
selectedNonObject: string;
filter: string | import("./types").ObjectBrowserTableFilter;
filterKey: number;
depth: number;
expandAllVisible: boolean;
expanded: string;
toast: string;
lang: ioBroker.Languages;
scrollBarWidth: number;
customDialog: any[];
editObjectDialog: string;
viewFileDialog: string;
enumDialog: any;
roleDialog: any;
modalEmptyId: any;
statesView: any;
columns: string;
columnsForAdmin: any;
columnsSelectorShow: boolean;
columnsAuto: boolean;
columnsWidths: string;
columnsDialogTransparent: number;
columnsEditCustomDialog: any;
customColumnDialogValueChanged: boolean;
showExportDialog: boolean;
linesEnabled: boolean;
};
edit: {};
texts: {
value: string;
ack: string;
ts: string;
lc: string;
from: string;
user: string;
quality: string;
editObject: string;
deleteObject: string;
customConfig: string;
copyState: string;
editState: string;
close: string;
filter_id: string;
filter_name: string;
filter_type: string;
filter_role: string;
filter_room: string;
filter_func: string;
filter_custom: string;
objectChangedByUser: string;
objectChangedBy: string;
objectChangedFrom: string;
stateChangedBy: string;
stateChangedFrom: string;
ownerGroup: string;
ownerUser: string;
deviceError: string;
deviceDisconnected: string;
deviceConnected: string;
aclOwner_read_object: string;
aclOwner_read_state: string;
aclOwner_write_object: string;
aclOwner_write_state: string;
aclGroup_read_object: string;
aclGroup_read_state: string;
aclGroup_write_object: string;
aclGroup_write_state: string;
aclEveryone_read_object: string;
aclEveryone_read_state: string;
aclEveryone_write_object: string;
aclEveryone_write_state: string;
};
levelPadding: any;
loadAllObjects(update: any): Promise<void>;
systemConfig: any;
objects: any;
defaultHistory: any;
info: {
funcEnums: any[];
roomEnums: any[];
roles: any[];
ids: any[];
types: any[];
objects: any;
customs: any[];
enums: any[];
hasSomeCustoms: boolean;
};
/**
* @private
* @param {ioBroker.EmptyCallback} cb
*/
private expandAllSelected;
/**
* @private
* @param {boolean} [isDouble]
*/
private onAfterSelect;
/**
* Called when component is mounted.
*/
componentDidMount(): void;
/**
* Called when component is unmounted.
*/
componentWillUnmount(): void;
/**
* Called when component is mounted.
*/
refreshComponent(): void;
/**
* Renders the error dialog.
* @returns {JSX.Element | null}
*/
renderErrorDialog(): JSX.Element | null;
/**
* Show the error dialog.
* @param {any} error
*/
showError(error: any): void;
/**
* Called when an item is selected/deselected.
* @param {string} toggleItem
* @param {boolean} [isDouble]
*/
onSelect(toggleItem: string, isDouble?: boolean): void;
/**
* @private
* @param {boolean} isLast
*/
private _renderDefinedList;
/**
* Renders the columns selector.
* @returns {JSX.Element | null}
*/
renderColumnsSelectorDialog(): JSX.Element | null;
/**
* @private
*/
private getAdditionalColumns;
/**
* @private
*/
private checkUnsubscribes;
recordStates: any[];
/**
* Find an item.
* @param {string} id
* @param {string[] | undefined} [_parts]
* @param {{ data: { name: string; id: string; }; children: never[]; } | null | undefined} [_root]
* @param {string | undefined} [_partyId]
* @returns {any}
*/
findItem(id: string, _parts?: string[] | undefined, _root?: {
data: {
name: string;
id: string;
};
children: never[];
}, _partyId?: string | undefined): any;
/**
* Called when a state changes.
* @param {string} id
* @param {ioBroker.State} state
*/
onStateChange: (id: string, state: ioBroker.State) => void;
/**
* @private
* @param {{ [x: string]: any; }} columnsForAdmin
* @param {any} obj
*/
private parseObjectForAdmins;
/**
* @param {string} id
* @param {ioBroker.Object} obj
* @param {import('./types').OldObject} oldObj
*/
onObjectChange: (id: string, obj: ioBroker.Object, oldObj: any) => void;
/**
* @private
* @param {string} id
*/
private subscribe;
/**
* @private
* @param {string} id
*/
private unsubscribe;
/**
* @private
* @param {boolean} isPause
*/
private pauseSubscribe;
/**
* @private
* @param {string} [name]
* @param {boolean} [value]
*/
private onFilter;
filterTimer: NodeJS.Timeout;
clearFilter(): void;
isFilterEmpty(): boolean;
/**
* @private
* @param {string} name
*/
private getFilterInput;
/**
* @private
* @param {string} name
* @param {any[]} values
*/
private getFilterSelect;
/**
* @private
*/
private getFilterSelectRole;
/**
* @private
*/
private getFilterSelectRoom;
/**
* @private
*/
private getFilterSelectFunction;
/**
* @private
*/
private getFilterSelectType;
/**
* @private
*/
private getFilterSelectCustoms;
/**
* @private
* @param {any} [root]
* @param {any[]} [expanded]
*/
private onExpandAll;
/**
* @private
*/
private onCollapseAll;
/**
* @private
* @param {any} root
* @param {number} depth
* @param {any[]} expanded
*/
private expandDepth;
/**
* @private
* @param {number} depth
* @param {any[]} expanded
*/
private collapseDepth;
/**
* @private
*/
private onExpandVisible;
/**
* @private
*/
private onStatesViewVisible;
/**
* @private
*/
private onCollapseVisible;
/**
* @private
* @param {string} id
*/
private getEnumsForId;
/**
* @private
* @param {array} enums
* @param {string} objId
*/
private _createAllEnums;
/**
* @private
* @param {any} callback
*/
private loadObjects;
_getSelectedIdsForExport(): string[];
_exportObjects(isAll: any): void;
renderExportDialog(): JSX.Element;
/**
* @private
* @param {object} evt
*/
private handleJsonUpload;
toolTipObjectCreating: () => string | JSX.Element[];
/**
* Renders the toolbar.
* @returns {JSX.Element}
*/
getToolbar(): JSX.Element;
/**
* @private
* @param {string} id
*/
private toggleExpanded;
/**
* @private
* @param {Event} e
* @param {string} text
*/
private onCopy;
renderTooltipAccessControl: (acl: any) => "" | JSX.Element;
/**
* @param {string} id
* @param {{ data: { obj: { type: string; }; hasCustoms: any; }; }} item
* @param {{ cellButtonsButton: string | undefined; cellButtonsButtonAlone: any; cellButtonsButtonIcon: string | undefined; cellButtonsButtonWithCustoms: any; }} classes
*/
renderColumnButtons(id: string, item: {
data: {
obj: {
type: string;
};
hasCustoms: any;
};
}, classes: {
cellButtonsButton: string | undefined;
cellButtonsButtonAlone: any;
cellButtonsButtonIcon: string | undefined;
cellButtonsButtonWithCustoms: any;
}): JSX.Element | JSX.Element[];
/**
* @private
* @param {string} id
*/
private readHistory;
/**
* @private
* @param {string} id
* @param {any} item
* @param {Record<string, any>} classes
* @returns {JSX.Element | null}
*/
private renderColumnValue;
/**
* @private
* @returns {undefined}
*/
private _syncEnum;
/**
* @private
* @returns {Promise}
*/
private syncEnum;
/**
* @private
* @returns {JSX.Element | null}
*/
private renderEnumDialog;
/**
* @private
* @returns {JSX.Element | null}
*/
private renderEditRoleDialog;
/**
* @private
* @param {boolean} [isSave]
*/
private onColumnsEditCustomDialogClose;
customColumnDialog: {
type: any;
initValue: any;
value: any;
};
/**
* @private
*/
private renderColumnsEditCustomDialog;
/**
* @private
* @param {any} obj
* @param {any} it
*/
private getCustomValue;
/**
* @private
* @param {any} obj
* @param {any} it
* @param {any} value
*/
private setCustomValue;
/**
* Renders a custom value.
* @param {any} obj
* @param {any} it
* @param {any} item
* @returns {JSX.Element | null}
*/
renderCustomValue(obj: any, it: any, item: any): JSX.Element | null;
/**
* Renders a leaf.
* @param {any} item
* @param {boolean} isExpanded
* @param {Record<string, any>} classes
* @param {{ count: number; }} counter
* @returns {JSX.Element}
*/
renderLeaf(item: any, isExpanded: boolean, classes: Record<string, any>, counter: {
count: number;
}): JSX.Element;
/**
* Renders an item.
* @param {any} root
* @param {boolean} isExpanded
* @param {Record<string, any>} classes
* @param {{ count: any; }} [counter]
* @returns {JSX.Element[]}
*/
renderItem(root: any, isExpanded: boolean, classes: Record<string, any>, counter?: {
count: any;
}): JSX.Element[];
/**
* @private
* @param {boolean} [columnsAuto]
* @param {string[]} [columns]
* @param {any} [columnsForAdmin]
* @param {Record<string, number>} [columnsWidths]
*/
private calculateColumnsVisibility;
adapterColumns: any[];
columnsVisibility: {
id: string | number;
name: any;
type: any;
role: any;
room: any;
func: any;
changedFrom: any;
qualityCode: any;
timestamp: any;
lastChange: any;
val: any;
buttons: any;
} | {
id: string | number;
name: any;
type: any;
role: any;
room: any;
func: any;
changedFrom?: undefined;
qualityCode?: undefined;
timestamp?: undefined;
lastChange?: undefined;
val?: undefined;
buttons?: undefined;
};
/**
* @private
* @returns {JSX.Element}
*/
private renderHeader;
/**
* @private
* @returns {JSX.Element}
*/
private renderToast;
/**
* Called when component is updated.
*/
componentDidUpdate(): void;
scrollToItem(id: any): void;
/**
* @private
* @returns {JSX.Element | null}
*/
private renderCustomDialog;
changedIds: any[];
/**
* @private
* @param {Partial<ioBroker.State>} valAck
*/
private onUpdate;
/**
* @private
* @returns {JSX.Element | null}
*/
private renderEditObjectDialog;
/**
* @private
* @returns {JSX.Element | null}
*/
private renderViewObjectFileDialog;
/**
* @private
* @returns {JSX.Element | null}
*/
private renderEditValueDialog;
extendObject: (id: any, data: any) => Promise<any>;
setObject: (id: any, data: any) => Promise<void>;
/**
* The rendering method of this component.
* @returns {JSX.Element}
*/
render(): JSX.Element;
unsubscribeTimer: any;
}
declare namespace ObjectBrowser {
namespace defaultProps {
const objectAddBoolean: boolean;
const objectEditBoolean: boolean;
const objectStatesView: boolean;
const objectImportExport: boolean;
const objectEditOfAccessControl: boolean;
function modalNewObject(): void;
function modalEditOfAccessControl(): void;
}
namespace propTypes {
export const dialogName: PropTypes.Requireable<string>;
export const classes: PropTypes.Requireable<object>;
export const defaultFilters: PropTypes.Requireable<object>;
export const selected: PropTypes.Requireable<string | any[]>;
export const onSelect: PropTypes.Requireable<(...args: any[]) => any>;
export const onFilterChanged: PropTypes.Requireable<(...args: any[]) => any>;
export const socket: PropTypes.Requireable<object>;
export const showExpertButton: PropTypes.Requireable<boolean>;
export const expertMode: PropTypes.Requireable<boolean>;
export const imagePrefix: PropTypes.Requireable<string>;
export const themeName: PropTypes.Requireable<string>;
export const themeType: PropTypes.Requireable<string>;
export const theme: PropTypes.Requireable<object>;
export const t: PropTypes.Requireable<(...args: any[]) => any>;
export const lang: PropTypes.Validator<string>;
export const multiSelect: PropTypes.Requireable<boolean>;
export const notEditable: PropTypes.Requireable<boolean>;
export const foldersFirst: PropTypes.Requireable<boolean>;
export const disableColumnSelector: PropTypes.Requireable<boolean>;
export const isFloatComma: PropTypes.Requireable<boolean>;
export const dateFormat: PropTypes.Requireable<string>;
export const levelPadding: PropTypes.Requireable<number>;
export const objectCustomDialog: PropTypes.Requireable<object>;
const objectAddBoolean_1: PropTypes.Requireable<boolean>;
export { objectAddBoolean_1 as objectAddBoolean };
const objectEditBoolean_1: PropTypes.Requireable<boolean>;
export { objectEditBoolean_1 as objectEditBoolean };
const objectStatesView_1: PropTypes.Requireable<boolean>;
export { objectStatesView_1 as objectStatesView };
const objectImportExport_1: PropTypes.Requireable<boolean>;
export { objectImportExport_1 as objectImportExport };
const objectEditOfAccessControl_1: PropTypes.Requireable<boolean>;
export { objectEditOfAccessControl_1 as objectEditOfAccessControl };
const modalNewObject_1: PropTypes.Requireable<(...args: any[]) => any>;
export { modalNewObject_1 as modalNewObject };
const modalEditOfAccessControl_1: PropTypes.Requireable<(...args: any[]) => any>;
export { modalEditOfAccessControl_1 as modalEditOfAccessControl };
export const onObjectDelete: PropTypes.Requireable<(...args: any[]) => any>;
export const customFilter: PropTypes.Requireable<object>;
export const objectBrowserValue: PropTypes.Requireable<object>;
export const objectBrowserEditObject: PropTypes.Requireable<object>;
export const objectBrowserEditRole: PropTypes.Requireable<object>;
export const objectBrowserViewFile: PropTypes.Requireable<(...args: any[]) => any>;
export const router: PropTypes.Requireable<object>;
export const types: PropTypes.Requireable<any[]>;
export const columns: PropTypes.Requireable<any[]>;
export const objectsWorker: PropTypes.Requireable<object>;
export const filterFunc: PropTypes.Requireable<(...args: any[]) => any>;
export const dragSettings: PropTypes.Requireable<object>;
export const DragWrapper: PropTypes.Requireable<(...args: any[]) => any>;
export const dragEnabled: PropTypes.Requireable<boolean>;
export const useDrag: PropTypes.Requireable<(...args: any[]) => any>;
}
}
import React from "react";
import PropTypes from "prop-types";