@linzjs/step-ag-grid
Version:
[](https://github.com/semantic-release/semantic-release) > Reusable [ag-grid](https://www.ag-grid.com/) component for LINZ / Toitū te whenua.
26 lines (25 loc) • 1.13 kB
TypeScript
import { CellMouseDownEvent, CellMouseOverEvent, IRowNode } from 'ag-grid-community';
import { MutableRefObject, RefObject } from 'react';
import { GridBaseRow } from '../types';
export interface CellLocation {
rowId: string;
colId: string;
timestamp: number;
}
export interface GridRanges<TData extends GridBaseRow> {
selectedColIds: string[];
selectedNodes: IRowNode<TData>[];
}
export declare const useGridRangeSelection: <TData extends GridBaseRow>({ enableRangeSelection, gridDivRef, rangeStartRef, rangeEndRef, hasSelectedMoreThanOneCellRef, rangeSortedNodesRef, }: {
enableRangeSelection: boolean;
gridDivRef: RefObject<HTMLDivElement>;
rangeStartRef: MutableRefObject<CellLocation | null>;
rangeEndRef: MutableRefObject<CellLocation | null>;
hasSelectedMoreThanOneCellRef: MutableRefObject<boolean>;
rangeSortedNodesRef: MutableRefObject<IRowNode<TData>[] | null>;
}) => {
clearRangeSelection: () => void;
ranges: () => GridRanges<TData>;
onCellMouseDown: (e: CellMouseDownEvent) => void;
onCellMouseOver: (e: CellMouseOverEvent, mouseDown?: boolean) => void;
};