import * as React from 'react'; import { DataRowProps, IEditable, DataTableState, DataTableColumnsConfigOptions, DataSourceListProps, DataColumnProps, TableFiltersConfig, DataTableRowProps, DataTableSelectedCellData, Overwrite, DataColumnGroupProps, IHasCX, IHasRawProps } from '@epam/uui-core'; import { DataTableFocusManager } from '@epam/uui-components'; import { VirtualListProps } from '../layout'; import { ColumnsConfigurationModalProps } from './columnsConfigurationModal'; import type { DataTableMods } from './types'; import './variables.scss'; type DataTableRawProps = IHasRawProps, 'role' | 'aria-colcount' | 'aria-rowcount'>>; interface DataTableCoreProps extends IEditable, IHasCX, DataSourceListProps, DataTableColumnsConfigOptions, Pick, DataTableRawProps { /** Callback to get rows that will be rendered in table */ getRows?(): DataRowProps[]; /** Rows that should be rendered in table */ rows?: DataRowProps[]; /** Array of all possible column groups for the table */ columnGroups?: DataColumnGroupProps[]; /** Array of all possible columns for the table */ columns: DataColumnProps[]; /** Render callback for the table row. * If omitted, default DataTableRow implementation will be rendered. * */ renderRow?(props: DataTableRowProps): React.ReactNode; /** Render callback for the 'No results' block. Will be rendered when table doesn't have rows for displaying, e.g. after search applying. * If omitted, default implementation will be rendered. * */ renderNoResultsBlock?(): React.ReactNode; /** Pass true to enable the column configuration button in the last column header. On this button click will show the columns configuration modal. * Note that you need to have at least one column fixed to the right for proper display * */ showColumnsConfig?: boolean; /** Array of filters to be added to the column header. * For each filter, you need to specify the `columnKey` of the column where it will be attached. * */ filters?: TableFiltersConfig[]; /** Called when cell content is copied to other cells via the DataTable cell copying mechanism. * This callback is typically used to update the state according to the changes. * To enable cell copying, provide the canCopy prop for the column. * */ onCopy?: (copyFrom: DataTableSelectedCellData, selectedCells: DataTableSelectedCellData[]) => void; /** Render callback for column configuration modal. * If omitted, default `ColumnsConfigurationModal` implementation will be rendered. */ renderColumnsConfigurationModal?: (props: ColumnsConfigurationModalProps) => React.ReactNode; /** * Focus manipulation manager in tables. */ dataTableFocusManager?: DataTableFocusManager; /** * Enables collapse/expand all functionality. * */ showFoldAll?: boolean; /** * Pass true to disable rows virtualization. * This will disable rows virtualization and remove inner vertical scrollbar from the table * * Note: A table without virtualization could cause performance issues. * Some DataTable features, like sticky header, pinned rows, and scroll to row, will not work with disabled virtualization */ disableVirtualization?: boolean; } export interface DataTableModsOverride { } export interface DataTableProps extends React.PropsWithChildren & Overwrite> { } export declare function DataTable(props: DataTableProps): React.JSX.Element; export {}; //# sourceMappingURL=DataTable.d.ts.map