UNPKG

@linzjs/step-ag-grid

Version:

[![semantic-release: angular](https://img.shields.io/badge/semantic--release-angular-e10079?logo=semantic-release)](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
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>;