UNPKG

@iobroker/adapter-react-v5

Version:

React components to develop ioBroker interfaces with react.

80 lines (79 loc) 3.27 kB
import React, { Component, type JSX } from 'react'; import type { Connection } from '../Connection'; import type { IobTheme } from '../types'; interface Column { cellStyle?: Record<string, any>; editComponent?: React.FC<{ value: any; rowData: Record<string, any>; onChange: (newValue: any) => void; }>; field: string; headerStyle?: Record<string, any>; hidden?: boolean; lookup?: Record<string, string>; editable?: boolean | 'never'; title?: string; type?: 'string' | 'boolean' | 'numeric' | 'icon' | 'oid' | 'color'; subField?: string; subLookup?: Record<string, string>; subStyle?: Record<string, any>; } interface TreeTableProps { data: Record<string, any>[]; className?: string; /** name of table to save settings in localStorage */ name?: string; columns: Column[]; noSort?: boolean; onUpdate?: ((newData: Record<string, any>, oldData: Record<string, any>) => void) | ((addNew: true) => void); onDelete?: (oldData: Record<string, any>) => void; /** hide add button */ noAdd?: boolean; themeType?: string; glowOnChange?: boolean; /** only if an oid type is used */ socket?: Connection; /** Shift in pixels for every level */ levelShift?: number; adapterName: string; theme: IobTheme; } interface TreeTableState { opened: string[]; editMode: number | false; deleteMode: number | false; editData: Record<string, any> | null; order: 'desc' | 'asc'; update: string[] | null; orderBy: string; showSelectColor: boolean; selectIdValue?: string | null; showSelectId?: boolean; data?: Record<string, any>[]; } export declare class TreeTable extends Component<TreeTableProps, TreeTableState> { private selectCallback; private updateTimeout; constructor(props: TreeTableProps); static getDerivedStateFromProps(props: TreeTableProps, state: TreeTableState): Partial<TreeTableState>; renderCellEdit(item: Record<string, any>, col: Column): JSX.Element | null; onChange(col: Column, oldValue: string | number | boolean, newValue: string | number | boolean): void; renderCellEditSelect(col: Column, val: string | number): JSX.Element; renderCellEditString(col: Column, val: string): JSX.Element; renderCellEditNumber(col: Column, val: number): JSX.Element; renderCellEditCustom(col: Column, val: any, item: Record<string, any>): JSX.Element | null; renderCellEditBoolean(col: Column, val: boolean): JSX.Element; renderSelectColorDialog(): JSX.Element; renderCellEditColor(col: Column, val: string): JSX.Element; renderSelectIdDialog(): JSX.Element | null; renderCellEditObjectID(col: Column, val: string): JSX.Element; static renderCellNonEdit(item: Record<string, any>, col: Column): JSX.Element | string | number | null; renderCell(item: Record<string, any>, col: Column, level: number, i: number): JSX.Element; static renderCellWithSubField(item: Record<string, any>, col: Column): JSX.Element; renderLine(item: Record<string, any>, level?: number): JSX.Element | JSX.Element[] | null; handleRequestSort(property: string): void; renderHead(): JSX.Element; render(): JSX.Element | null; } export {};