@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.
67 lines (66 loc) • 3.43 kB
TypeScript
import { ColDef, GridApi, IRowNode } from 'ag-grid-community';
import { CsvExportParams } from 'ag-grid-community';
import { ColDefT, GridBaseRow } from '../components';
export type GridFilterExternal<TData extends GridBaseRow> = (data: TData, rowNode: IRowNode) => boolean;
export interface AutoSizeColumnsProps {
skipHeader?: boolean;
colIds?: Set<string> | string[];
userSizedColIds?: Set<string>;
includeFlex?: boolean;
}
export type AutoSizeColumnsResult = {
width: number;
} | null;
export interface GridContextType<TData extends GridBaseRow> {
gridReady: boolean;
gridRenderState: () => null | 'empty' | 'rows-visible';
getColDef: (colId?: string) => ColDef | undefined;
getColumns: (filter?: keyof ColDef | ((r: ColDef) => boolean | undefined | null | number | string)) => ColDefT<TData, any>[];
getColumnIds: (filter?: keyof ColDef | ((r: ColDef) => boolean | undefined | null | number | string)) => string[];
setApis: (gridApi: GridApi | undefined, hasExternallySelectedItems: boolean, dataTestId?: string) => void;
prePopupOps: () => void;
postPopupOps: () => void;
setQuickFilter: (quickFilter: string) => void;
editingCells: () => boolean;
getSelectedRows: <T extends GridBaseRow>() => T[];
getFilteredSelectedRows: <T extends GridBaseRow>() => T[];
getSelectedRowIds: () => number[];
getFilteredSelectedRowIds: () => number[];
selectRowsDiff: (updateFn: () => Promise<any>) => Promise<void>;
selectRowsWithFlashDiff: (updateFn: () => Promise<any>) => Promise<void>;
selectRowsById: (rowIds?: number[]) => void;
selectRowsByIdWithFlash: (rowIds?: number[]) => void;
flashRows: (rowIds?: number[]) => void;
flashRowsDiff: (updateFn: () => Promise<any>) => Promise<void>;
focusByRowById: (rowId: number, ifNoCellFocused?: boolean) => void;
ensureRowVisible: (id: number | string) => boolean;
ensureSelectedRowIsVisible: () => void;
getFirstRowId: () => number;
autoSizeColumns: (props?: AutoSizeColumnsProps) => AutoSizeColumnsResult;
sizeColumnsToFit: () => void;
cancelEdit: () => void;
startCellEditing: ({ rowId, colId }: {
rowId: number;
colId: string;
}) => Promise<void>;
stopEditing: () => void;
updatingCells: (props: {
selectedRows: GridBaseRow[];
field?: string;
}, fnUpdate: (selectedRows: any[]) => Promise<boolean>, setSaving?: (saving: boolean) => void, tabDirection?: 1 | 0 | -1) => Promise<boolean>;
redrawRows: (rowNodes?: IRowNode[]) => void;
externallySelectedItemsAreInSync: boolean;
setExternallySelectedItemsAreInSync: (inSync: boolean) => void;
waitForExternallySelectedItemsToBeInSync: () => Promise<void>;
addExternalFilter: (filter: GridFilterExternal<TData>) => void;
removeExternalFilter: (filter: GridFilterExternal<TData>) => void;
isExternalFilterPresent: () => boolean;
doesExternalFilterPass: (node: IRowNode) => boolean;
invisibleColumnIds: string[] | undefined;
setInvisibleColumnIds: (colIds: string[]) => void;
downloadCsv: (csvExportParams?: CsvExportParams) => void;
setOnCellEditingComplete: (callback: (() => void) | undefined) => void;
showNoRowsOverlay: () => void;
}
export declare const GridContext: import("react").Context<GridContextType<any>>;
export declare const useGridContext: <TData extends GridBaseRow>() => GridContextType<TData>;