UNPKG

@iobroker/adapter-react

Version:

React classes to develop admin interfaces for ioBroker with react.

613 lines (612 loc) 17.4 kB
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";