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.

68 lines (67 loc) 3.26 kB
import { ColDef, ColGroupDef, GridOptions, RowClickedEvent, RowDoubleClickedEvent } from 'ag-grid-community'; import { ReactElement } from 'react'; import { GridContextMenuComponent } from './gridHook'; import { GridBaseRow, GridOnRowDragEndProps } from './types'; export interface GridProps<TData extends GridBaseRow = GridBaseRow> { ['data-testid']?: string; theme?: string; loading?: boolean; readOnly?: boolean; suppressReadOnlyStyle?: boolean; columnDefs: ColDef<TData>[] | ColGroupDef<TData>[]; defaultColDef?: GridOptions['defaultColDef']; defaultPostSort?: boolean; domLayout?: GridOptions['domLayout']; pinnedBottomRowData?: GridOptions['pinnedBottomRowData']; pinnedTopRowData?: GridOptions['pinnedTopRowData']; rowData: GridOptions['rowData']; rowClassRules?: GridOptions['rowClassRules']; rowHeight?: number; rowSelection?: 'single' | 'multiple'; sizeColumns?: 'fit' | 'auto' | 'auto-skip-headers' | 'none'; autoSelectFirstRow?: boolean; enableClickSelection?: boolean; enableRangeSelection?: boolean; enableSelectionWithoutKeys?: boolean; externalSelectedIds?: TData['id'][]; externalSelectedItems?: TData[]; hideSelectColumn?: boolean; selectColumnPinned?: ColDef['pinned']; selectable?: boolean; setExternalSelectedIds?: (ids: TData['id'][]) => void; setExternalSelectedItems?: (items: TData[]) => void; onBulkEditingComplete?: () => Promise<void> | void; singleClickEdit?: boolean; stopEditingWhenCellsLoseFocus?: boolean; contextMenu?: GridContextMenuComponent<TData>; contextMenuSelectRow?: boolean; onCellFocused?: (props: { colDef: ColDef<TData>; data: TData; }) => void; onColumnMoved?: GridOptions['onColumnMoved']; onContentSize?: (props: { width: number; }) => void; /** * @deprecated You should drive your app off selection states. This will be deleted. */ onRowClicked?: (event: RowClickedEvent) => void; /** * @deprecated You should drive your app off selection states. This will be deleted. */ onRowDoubleClicked?: (event: RowDoubleClickedEvent) => void; onRowDragEnd?: (props: GridOnRowDragEndProps<TData>) => Promise<void> | void; animateRows?: boolean; alwaysShowVerticalScroll?: boolean; rowDragText?: GridOptions['rowDragText']; noRowsOverlayText?: string; noRowsMatchingOverlayText?: string; maxInitialWidth?: number; suppressCellFocus?: boolean; suppressColumnVirtualization?: GridOptions['suppressColumnVirtualisation']; } /** * Wrapper for AgGrid to add commonly used functionality. */ export declare const Grid: <TData extends GridBaseRow = GridBaseRow>({ theme, "data-testid": dataTestId, suppressReadOnlyStyle, defaultPostSort, rowData, rowHeight, rowSelection, sizeColumns, autoSelectFirstRow, enableRangeSelection, externalSelectedIds, externalSelectedItems, selectColumnPinned, selectable, setExternalSelectedIds, setExternalSelectedItems, singleClickEdit, stopEditingWhenCellsLoseFocus, contextMenuSelectRow, contextMenu, onCellFocused: paramsOnCellFocused, onColumnMoved, suppressColumnVirtualization, maxInitialWidth, ...params }: GridProps<TData>) => ReactElement;