fixed-react-data-grid-custom
Version:
Excel-like grid component built with React, with editors, keyboard navigation, copy & paste, and the like
53 lines (52 loc) • 2.43 kB
TypeScript
/// <reference types="react" />
import { CellNavigationMode } from '../common/enums';
import { CalculatedColumn, Position, Range, Dimension, RowGetter } from '../common/types';
interface getSelectedDimensionsOpts<R> {
selectedPosition: Position;
columns: CalculatedColumn<R>[];
rowHeight: number;
scrollLeft: number;
}
export declare function getSelectedDimensions<R>({ selectedPosition: { idx, rowIdx }, columns, rowHeight, scrollLeft }: getSelectedDimensionsOpts<R>): Dimension;
interface getSelectedRangeDimensionsOpts<R> {
selectedRange: Range;
columns: CalculatedColumn<R>[];
rowHeight: number;
}
export declare function getSelectedRangeDimensions<R>({ selectedRange: { topLeft, bottomRight }, columns, rowHeight }: getSelectedRangeDimensionsOpts<R>): Dimension;
interface getSelectedCellValueOpts<R> {
selectedPosition: Position;
columns: CalculatedColumn<R>[];
rowGetter: RowGetter<R>;
}
export declare function getSelectedCellValue<R>({ selectedPosition, columns, rowGetter }: getSelectedCellValueOpts<R>): R[keyof R] | null;
interface isSelectedCellEditableOpts<R> {
enableCellSelect: boolean;
selectedPosition: Position;
columns: CalculatedColumn<R>[];
rowGetter: RowGetter<R>;
onCheckCellIsEditable?(arg: {
row: R;
column: CalculatedColumn<R>;
} & Position): boolean;
}
export declare function isSelectedCellEditable<R>({ enableCellSelect, selectedPosition, columns, rowGetter, onCheckCellIsEditable }: isSelectedCellEditableOpts<R>): boolean;
interface getNextSelectedCellPositionOpts<R> {
cellNavigationMode: CellNavigationMode;
columns: CalculatedColumn<R>[];
rowsCount: number;
nextPosition: Position;
}
export interface NextSelectedCellPosition extends Position {
changeRowOrColumn: boolean;
}
export declare function getNextSelectedCellPosition<R>({ cellNavigationMode, columns, rowsCount, nextPosition }: getNextSelectedCellPositionOpts<R>): NextSelectedCellPosition;
interface canExitGridOpts<R> {
cellNavigationMode: CellNavigationMode;
columns: CalculatedColumn<R>[];
rowsCount: number;
selectedPosition: Position;
}
export declare function canExitGrid<R>(event: React.KeyboardEvent, { cellNavigationMode, columns, rowsCount, selectedPosition: { rowIdx, idx } }: canExitGridOpts<R>): boolean;
export declare function selectedRangeIsSingleCell({ topLeft, bottomRight }: Range): boolean;
export {};