fixed-react-data-grid-custom
Version:
Excel-like grid component built with React, with editors, keyboard navigation, copy & paste, and the like
36 lines (35 loc) • 1.93 kB
TypeScript
import React from 'react';
import { ScrollState } from './Viewport';
import { HeaderRowData, CellMetaData, RowSelection, InteractionMasksMetaData, SelectedRow } from './common/types';
import { DEFINE_SORT } from './common/enums';
import { DataGridProps, DataGridState } from './ReactDataGrid';
import { EventBus } from './masks';
declare type SharedDataGridProps<R> = Pick<DataGridProps<R>, 'rowKey' | 'draggableHeaderCell' | 'getValidFilterValues' | 'rowGetter' | 'rowsCount' | 'rowHeight' | 'rowRenderer' | 'rowGroupRenderer' | 'minHeight' | 'scrollToRowIndex' | 'contextMenu' | 'enableCellSelect' | 'enableCellAutoFocus' | 'cellNavigationMode' | 'onScroll' | 'RowsContainer' | 'emptyRowsView' | 'onHeaderDrop' | 'getSubRowDetails' | 'editorPortalTarget'>;
declare type SharedDataGridState<R> = Pick<DataGridState<R>, 'columnMetrics' | 'sortColumn' | 'sortDirection'>;
export interface GridProps<R> extends SharedDataGridProps<R>, SharedDataGridState<R> {
headerRows: HeaderRowData<R>[];
cellMetaData: CellMetaData<R>;
selectedRows?: SelectedRow<R>[];
rowSelection?: RowSelection;
rowOffsetHeight: number;
onSort(columnKey: keyof R, sortDirection: DEFINE_SORT): void;
totalWidth: number | string;
onViewportKeydown(e: React.KeyboardEvent<HTMLDivElement>): void;
onViewportKeyup(e: React.KeyboardEvent<HTMLDivElement>): void;
onColumnResize(idx: number, width: number): void;
eventBus: EventBus;
interactionMasksMetaData: InteractionMasksMetaData<R>;
}
export default class Grid<R> extends React.Component<GridProps<R>> {
static displayName: string;
private readonly header;
private readonly viewport;
private _scrollLeft?;
_onScroll(): void;
areFrozenColumnsScrolledLeft(scrollLeft: number): boolean;
onScroll: (scrollState: ScrollState) => void;
componentDidMount(): void;
componentDidUpdate(): void;
render(): JSX.Element;
}
export {};