import { type ReactNode } from 'react'; import { Variant } from './enums'; import { type NoDataProps } from './NoData'; import type { CellValue, DataGridColumns, DataGridRow, DataGridRowWithOptions, DataGridSort } from './types'; export type NewDataGridProps = DataGridRow, TSortField extends keyof TData = keyof TData> = { /** * Название класса, применяется к корневому компоненту */ className?: string; /** * Массив данных для таблицы */ rows: DataGridRowWithOptions[]; /** * @example * Конфигурация колонок для таблицы */ columns: DataGridColumns[]; /** * Идентификатор активного элемента массива rows. Выделяет активную строку в таблице */ activeRowId?: string; /** * Поле, которое будет использоваться в качестве ключа */ keyId: keyof TData; /** * @example * Массив выбранных строк */ selectedRows?: TData[]; /** * @example * Параметры сортируемой колонки */ sorting?: DataGridSort; /** * Компонент кастомного футера (например Pagination) */ footer?: ReactNode; /** * Используется для отображения placeholder при отсутствии данных в таблице */ noDataPlaceholder?: ReactNode; /** * Максимальная высота для таблицы */ maxHeight?: number; /** * Если true, показывается анимация загрузки */ isLoading?: boolean; /** * Если true, таблица будет заблокирована для взаимодействия */ isDisabled?: boolean; /** * Флаг состояния ошибки */ isError?: boolean; /** * Текст ошибки */ errorMsg?: string; /** * Вариант отображения вложенных элементов * @default 'tree' */ variant?: `${Variant}`; /** * Опции для отображения древовидных списков * Применяется если variant="tree" */ tree?: { /** * Если true, то дерево будет раскрыто по умолчанию * @default 'false' */ isInitialExpanded?: boolean; /** * Уровень раскрытия дерева по умолчанию, при `isInitialExpanded=true` * @default '1' */ expandedLevel?: number; /** * Количество отображаемых по умолчанию дочерних элементов * @default '2' */ initialVisibleChildrenCount?: number; }; /** * Опции для отображения вложенных списков * Применяется если variant="subrows" */ subrows?: { /** * Уровень раскрытия дочерних элементов по умолчанию, при `isInitialExpanded=true` * @default '1' */ expandedLevel?: number; /** * Количество отображаемых по умолчанию дочерних элементов * @default '2' */ initialVisibleChildrenCount?: number; /** * Номер колонки, в которой будет расположена кнопка "Показать все" * @default 1 */ moreButtonColumnPosition?: number; /** * Если false, кнопка разворачивания элементов не показывается * @default true */ isVisibleCollapseButton?: boolean; }; /** * Заглушка для пустых ячеек (если отсутствует field и filter и renderCell) * @default '—' */ emptyCellValue?: ReactNode; /** * Используется для отображения переданного кол-ва строк при отсутствии данных * @default 10 */ minDisplayRows?: number; /** * Функция обработки нажатия на кнопку "Повторить запрос" */ onRetry: () => void; /** * Обработчик клика строки таблицы */ onRowClick?: (row: TData) => void; /** * Обработчик выбора строки */ onSelectRow?: (row: TData[]) => void; /** * @example console.log('sorted')} /> * Обработчик сортировки */ onSort?: (sorting: DataGridSort | undefined) => void; /** * Используется для кастомизации компонента, использующегося в сценарии отсутствия данных */ noDataOptions?: NoDataProps; /** * Используется для скрытия чекбокса "Выбрать все" */ isHideSelectAll?: boolean; }; export declare const NewDataGrid: = DataGridRow, TSortField extends keyof TData = keyof TData>(props: NewDataGridProps) => JSX.Element;