import { type ReactNode } from 'react'; import type { DataGridColumns, DataGridRow, DataGridRowOptions, DataGridSort } from './types'; export type DataGridProps = DataGridRow, TSortField extends keyof TData = keyof TData> = { /** * Название класса, применяется к корневому компоненту */ className?: string; /** * Массив данных для таблицы */ rows: Array; /** * @example * Конфигурация колонок для таблицы */ columns: DataGridColumns[]; /** * Идентификатор активного элемента массива rows. Выделяет активную строку в таблице */ activeRowId?: string; keyId: keyof TData; /** * Обработчик клика строки таблицы */ onRowClick?: (row: TData) => void; /** * @example * Массив выбранных строк */ selectedRows?: TData[]; /** * Обработчик выбора строки */ onSelectRow?: (row: TData[]) => void; /** * @example * Параметры сортируемой колонки */ sorting?: DataGridSort; /** * @example console.log('sorted')} /> * Обработчик сортировки */ onSort?: (sorting: DataGridSort | undefined) => void; /** * Компонент кастомного футера (н-р Pagination) */ Footer?: ReactNode; /** * Используется для отображения placeholder при отсутствии данных в таблице */ noDataPlaceholder?: ReactNode; /** * Максимальная высота для таблицы */ maxHeight?: number; /** * Флажок загрузки данных */ loading?: boolean; /** * Флажок блокировки таблицы */ disabled?: boolean; /** * Заглушка для пустых ячеек (если отсутствует field и filter и renderCell) * @default '-' */ emptyCellValue?: ReactNode; /** * Используется для отображения переданного кол-ва строк при отсутствии данных * @default 10 */ minDisplayRows?: number; }; /** * @deprecated * Используйте NewDateGrid. Причина отказа от поддержки: DataGrid построен на неконтролируемой табличной верстке, которая не поддерживает вложенность */ export declare const DataGrid: = DataGridRow, TSortField extends keyof TData = keyof TData>({ columns, rows, selectedRows, sorting, maxHeight, minDisplayRows, onRowClick, onSelectRow, Footer, noDataPlaceholder, loading, disabled, onSort, keyId, activeRowId, emptyCellValue, className, }: DataGridProps) => JSX.Element;