ag-grid
Version:
Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
453 lines (452 loc) • 19.1 kB
TypeScript
// Type definitions for ag-grid v18.1.2
// Project: http://www.ag-grid.com/
// Definitions by: Niall Crosby <https://github.com/ag-grid/>
import { RowNode } from "./rowNode";
import { GridApi } from "../gridApi";
import { ColumnApi } from "../columnController/columnApi";
import { Column } from "./column";
import { IViewportDatasource } from "../interfaces/iViewportDatasource";
import { ICellRendererComp, ICellRendererFunc } from "../rendering/cellRenderers/iCellRenderer";
import { ColDef, ColGroupDef, IAggFunc } from "./colDef";
import { IDatasource } from "../rowModels/iDatasource";
import { GridCellDef } from "./gridCell";
import { IDateComp } from "../rendering/dateComponent";
import { IServerSideDatasource } from "../interfaces/iServerSideDatasource";
import { CsvExportParams, ProcessCellForExportParams, ProcessHeaderForExportParams } from "../exportParams";
import { BodyScrollEvent, CellClickedEvent, CellContextMenuEvent, CellDoubleClickedEvent, CellEditingStartedEvent, CellEditingStoppedEvent, CellFocusedEvent, CellMouseDownEvent, CellMouseOutEvent, CellMouseOverEvent, CellValueChangedEvent, ColumnAggFuncChangeRequestEvent, ColumnEverythingChangedEvent, ColumnGroupOpenedEvent, ColumnMovedEvent, ColumnPinnedEvent, ColumnPivotChangedEvent, ColumnPivotChangeRequestEvent, ColumnPivotModeChangedEvent, ColumnResizedEvent, ColumnRowGroupChangedEvent, ColumnRowGroupChangeRequestEvent, ColumnValueChangedEvent, ColumnValueChangeRequestEvent, ColumnVisibleEvent, DisplayedColumnsChangedEvent, DragStartedEvent, DragStoppedEvent, FilterChangedEvent, FilterModifiedEvent, GridColumnsChangedEvent, GridReadyEvent, ModelUpdatedEvent, NewColumnsLoadedEvent, PaginationChangedEvent, PasteStartEvent, PasteEndEvent, PinnedRowDataChangedEvent, RangeSelectionChangedEvent, RowClickedEvent, RowDataChangedEvent, RowDataUpdatedEvent, RowDoubleClickedEvent, RowDragEvent, RowEditingStartedEvent, RowEditingStoppedEvent, RowGroupOpenedEvent, RowSelectedEvent, RowValueChangedEvent, SelectionChangedEvent, SortChangedEvent, ViewportChangedEvent, VirtualColumnsChangedEvent, VirtualRowRemovedEvent } from "../events";
import { IComponent } from "../interfaces/iComponent";
import { AgGridRegisteredComponentInput } from "../components/framework/componentProvider";
import { ILoadingOverlayComp } from "../rendering/overlays/loadingOverlayComponent";
import { INoRowsOverlayComp } from "../rendering/overlays/noRowsOverlayComponent";
/****************************************************************
* Don't forget to update ComponentUtil if changing this class. *
****************************************************************/
export interface GridOptions {
/****************************************************************
* Don't forget to update ComponentUtil if changing this class. PLEASE!*
****************************************************************/
rowDragManaged?: boolean;
suppressRowDrag?: boolean;
ensureDomOrder?: boolean;
deltaRowDataMode?: boolean;
scrollbarWidth?: number;
toolPanelSuppressRowGroups?: boolean;
toolPanelSuppressValues?: boolean;
toolPanelSuppressPivots?: boolean;
toolPanelSuppressPivotMode?: boolean;
toolPanelSuppressSideButtons?: boolean;
toolPanelSuppressColumnFilter?: boolean;
toolPanelSuppressColumnSelectAll?: boolean;
toolPanelSuppressColumnExpandAll?: boolean;
contractColumnSelection?: boolean;
suppressRowClickSelection?: boolean;
suppressRowHoverHighlight?: boolean;
suppressCellSelection?: boolean;
sortingOrder?: string[];
suppressMultiSort?: boolean;
multiSortKey?: string;
accentedSort?: boolean;
suppressHorizontalScroll?: boolean;
suppressTabbing?: boolean;
unSortIcon?: boolean;
rowBuffer?: number;
enableRtl?: boolean;
enableColResize?: boolean;
colResizeDefault?: string;
enableCellExpressions?: boolean;
enableSorting?: boolean;
enableServerSideSorting?: boolean;
enableFilter?: boolean;
enableServerSideFilter?: boolean;
enableStatusBar?: boolean;
alwaysShowStatusBar?: boolean;
enableGroupEdit?: boolean;
enterMovesDownAfterEdit?: boolean;
enterMovesDown?: boolean;
suppressMiddleClickScrolls?: boolean;
suppressPreventDefaultOnMouseWheel?: boolean;
suppressScrollOnNewData?: boolean;
suppressMenuHide?: boolean;
singleClickEdit?: boolean;
suppressClickEdit?: boolean;
stopEditingWhenGridLosesFocus?: boolean;
debug?: boolean;
icons?: any;
angularCompileRows?: boolean;
angularCompileFilters?: boolean;
angularCompileHeaders?: boolean;
suppressLoadingOverlay?: boolean;
suppressNoRowsOverlay?: boolean;
suppressAutoSize?: boolean;
autoSizePadding?: number;
animateRows?: boolean;
suppressColumnMoveAnimation?: boolean;
suppressMovableColumns?: boolean;
suppressDragLeaveHidesColumns?: boolean;
suppressMakeColumnVisibleAfterUnGroup?: boolean;
suppressParentsInRowNodes?: boolean;
suppressFieldDotNotation?: boolean;
suppressCopyRowsToClipboard?: boolean;
clipboardDeliminator?: string;
suppressClipboardPaste?: boolean;
suppressAggFuncInHeader?: boolean;
suppressAggAtRootLevel?: boolean;
suppressFocusAfterRefresh?: boolean;
rowModelType?: string;
pivotMode?: boolean;
pivotTotals?: boolean;
pivotColumnGroupTotals?: string;
pivotRowTotals?: string;
suppressEnterpriseResetOnNewColumns?: boolean;
enableRangeSelection?: boolean;
suppressMultiRangeSelection?: boolean;
rowGroupPanelShow?: string;
pivotPanelShow?: string;
suppressContextMenu?: boolean;
allowContextMenuWithControlKey?: boolean;
rememberGroupStateWhenNewData?: boolean;
viewportRowModelPageSize?: number;
viewportRowModelBufferSize?: number;
enableCellChangeFlash?: boolean;
quickFilterText?: string;
cacheQuickFilter?: boolean;
aggFuncs?: {
[key: string]: IAggFunc;
};
suppressColumnVirtualisation?: boolean;
functionsReadOnly?: boolean;
functionsPassive?: boolean;
maxConcurrentDatasourceRequests?: number;
maxBlocksInCache?: number;
purgeClosedRowNodes?: boolean;
gridAutoHeight?: boolean;
domLayout?: string;
suppressChangeDetection?: boolean;
aggregateOnlyChangedColumns?: boolean;
valueCache?: boolean;
valueCacheNeverExpires?: boolean;
batchUpdateWaitMillis?: number;
suppressRowTransform?: boolean;
cacheOverflowSize?: number;
infiniteInitialRowCount?: number;
paginationPageSize?: number;
cacheBlockSize?: number;
paginationAutoPageSize?: boolean;
paginationStartPage?: number;
suppressPaginationPanel?: boolean;
pagination?: boolean;
editType?: string;
suppressTouch?: boolean;
suppressAsyncEvents?: boolean;
embedFullWidthRows?: boolean;
excelStyles?: any[];
floatingFilter?: boolean;
suppressExcelExport?: boolean;
suppressCsvExport?: boolean;
colWidth?: number;
minColWidth?: number;
maxColWidth?: number;
suppressPropertyNamesCheck?: boolean;
serverSideSortingAlwaysResets?: boolean;
/****************************************************************
* Don't forget to update ComponentUtil if changing this class. *
****************************************************************/
localeText?: any;
localeTextFunc?: Function;
suppressAnimationFrame?: boolean;
defaultColGroupDef?: ColGroupDef;
defaultColDef?: ColDef;
defaultExportParams?: CsvExportParams;
/****************************************************************
* Don't forget to update ComponentUtil if changing this class. *
****************************************************************/
groupSuppressAutoColumn?: boolean;
groupSelectsChildren?: boolean;
groupSelectsFiltered?: boolean;
groupIncludeFooter?: boolean;
groupIncludeTotalFooter?: boolean;
groupUseEntireRow?: boolean;
groupRemoveSingleChildren?: boolean;
groupRemoveLowestSingleChildren?: boolean;
groupSuppressRow?: boolean;
groupHideOpenParents?: boolean;
groupMultiAutoColumn?: boolean;
groupSuppressBlankHeader?: boolean;
groupColumnDef?: ColDef;
autoGroupColumnDef?: ColDef;
forPrint?: boolean;
enableOldSetFilterModel?: boolean;
/****************************************************************
* Don't forget to update ComponentUtil if changing this class. *
****************************************************************/
context?: any;
rowStyle?: any;
rowClass?: string | string[];
groupDefaultExpanded?: number;
slaveGrids?: GridOptions[];
alignedGrids?: GridOptions[];
rowSelection?: string;
rowDeselection?: boolean;
rowMultiSelectWithClick?: boolean;
isRowSelectable?: IsRowSelectable;
overlayLoadingTemplate?: string;
overlayNoRowsTemplate?: string;
rowHeight?: number;
detailRowHeight?: number;
popupParent?: HTMLElement;
masterDetail?: boolean;
isRowMaster?: IsRowMaster;
detailCellRenderer?: {
new (): ICellRendererComp;
} | ICellRendererFunc | string;
detailCellRendererFramework?: any;
detailCellRendererParams?: any;
/****************************************************************
* Don't forget to update ComponentUtil if changing this class. *
****************************************************************/
rowData?: any[];
pinnedTopRowData?: any[];
pinnedBottomRowData?: any[];
showToolPanel?: boolean;
columnDefs?: (ColDef | ColGroupDef)[];
columnTypes?: {
[key: string]: ColDef;
};
datasource?: IDatasource;
viewportDatasource?: IViewportDatasource;
serverSideDatasource?: IServerSideDatasource;
headerHeight?: number;
pivotHeaderHeight?: number;
groupHeaderHeight?: number;
pivotGroupHeaderHeight?: number;
floatingFiltersHeight?: number;
/****************************************************************
* Don't forget to update ComponentUtil if changing this class. *
****************************************************************/
paginationNumberFormatter?: (params: PaginationNumberFormatterParams) => string;
postProcessPopup?: (params: PostProcessPopupParams) => void;
frameworkComponents?: {
[p: string]: {
new (): any;
};
};
components?: {
[p: string]: AgGridRegisteredComponentInput<IComponent<any>>;
};
dateComponent?: {
new (): IDateComp;
};
dateComponentFramework?: any;
groupRowRenderer?: {
new (): ICellRendererComp;
} | ICellRendererFunc | string;
groupRowRendererFramework?: any;
groupRowRendererParams?: any;
groupRowInnerRenderer?: {
new (): ICellRendererComp;
} | ICellRendererFunc | string;
groupRowInnerRendererFramework?: any;
isExternalFilterPresent?(): boolean;
doesExternalFilterPass?(node: RowNode): boolean;
getRowStyle?: Function;
getRowClass?: (params: any) => (string | string[]);
rowClassRules?: {
[cssClassName: string]: (Function | string);
};
getRowHeight?: Function;
sendToClipboard?: (params: any) => void;
processDataFromClipboard?: (params: ProcessDataFromClipboardParams) => string[][];
navigateToNextCell?: (params: NavigateToNextCellParams) => GridCellDef;
tabToNextCell?: (params: TabToNextCellParams) => GridCellDef;
getDocument?: () => Document;
defaultGroupSortComparator?: (nodeA: RowNode, nodeB: RowNode) => number;
loadingOverlayComponent?: {
new (): ILoadingOverlayComp;
} | string;
loadingOverlayComponentFramework?: any;
noRowsOverlayComponent?: {
new (): INoRowsOverlayComp;
} | string;
noRowsOverlayComponentFramework?: any;
fullWidthCellRenderer?: {
new (): ICellRendererComp;
} | ICellRendererFunc | string;
fullWidthCellRendererFramework?: any;
fullWidthCellRendererParams?: any;
isFullWidthCell?(rowNode: RowNode): boolean;
groupRowAggNodes?(nodes: RowNode[]): any;
getBusinessKeyForNode?(node: RowNode): string;
getNodeChildDetails?: GetNodeChildDetails;
getDataPath?: GetDataPath;
treeData?: boolean;
getContextMenuItems?: GetContextMenuItems;
getMainMenuItems?: GetMainMenuItems;
getRowNodeId?: GetRowNodeIdFunc;
getChildCount?(dataItem: any): number;
doesDataFlower?(dataItem: any): boolean;
processRowPostCreate?(params: ProcessRowParams): void;
processCellForClipboard?(params: ProcessCellForExportParams): any;
processHeaderForClipboard?(params: ProcessHeaderForExportParams): any;
processCellFromClipboard?(params: ProcessCellForExportParams): any;
processSecondaryColDef?(colDef: ColDef): void;
processSecondaryColGroupDef?(colGroupDef: ColGroupDef): void;
postSort?(nodes: RowNode[]): void;
/****************************************************************
* Don't forget to update ComponentUtil if changing this class. *
****************************************************************/
onColumnEverythingChanged?(event: ColumnEverythingChangedEvent): void;
onNewColumnsLoaded?(event: NewColumnsLoadedEvent): void;
onColumnPivotModeChanged?(event: ColumnPivotModeChangedEvent): void;
onColumnRowGroupChanged?(event: ColumnRowGroupChangedEvent): void;
onColumnPivotChanged?(event: ColumnPivotChangedEvent): void;
onGridColumnsChanged?(event: GridColumnsChangedEvent): void;
onColumnValueChanged?(event: ColumnValueChangedEvent): void;
onColumnMoved?(event: ColumnMovedEvent): void;
onColumnVisible?(event: ColumnVisibleEvent): void;
onColumnPinned?(event: ColumnPinnedEvent): void;
onColumnGroupOpened?(event: ColumnGroupOpenedEvent): void;
onColumnResized?(event: ColumnResizedEvent): void;
onDisplayedColumnsChanged?(event: DisplayedColumnsChangedEvent): void;
onVirtualColumnsChanged?(event: VirtualColumnsChangedEvent): void;
onRowGroupOpened?(event: RowGroupOpenedEvent): void;
onRowDataChanged?(event: RowDataChangedEvent): void;
onRowDataUpdated?(event: RowDataUpdatedEvent): void;
onPinnedRowDataChanged?(event: PinnedRowDataChangedEvent): void;
onRangeSelectionChanged?(event: RangeSelectionChangedEvent): void;
onColumnRowGroupChangeRequest?(event: ColumnRowGroupChangeRequestEvent): void;
onColumnPivotChangeRequest?(event: ColumnPivotChangeRequestEvent): void;
onColumnValueChangeRequest?(event: ColumnValueChangeRequestEvent): void;
onColumnAggFuncChangeRequest?(event: ColumnAggFuncChangeRequestEvent): void;
onModelUpdated?(event: ModelUpdatedEvent): void;
onCellClicked?(event: CellClickedEvent): void;
onCellMouseDown?(event: CellMouseDownEvent): void;
onCellDoubleClicked?(event: CellDoubleClickedEvent): void;
onCellContextMenu?(event: CellContextMenuEvent): void;
onCellValueChanged?(event: CellValueChangedEvent): void;
onCellMouseOver?(event: CellMouseOverEvent): void;
onCellMouseOut?(event: CellMouseOutEvent): void;
onRowValueChanged?(event: RowValueChangedEvent): void;
onRowEditingStarted?(event: RowEditingStartedEvent): void;
onRowEditingStopped?(event: RowEditingStoppedEvent): void;
onCellEditingStarted?(event: CellEditingStartedEvent): void;
onCellEditingStopped?(event: CellEditingStoppedEvent): void;
onCellFocused?(event: CellFocusedEvent): void;
onRowSelected?(event: RowSelectedEvent): void;
onSelectionChanged?(event: SelectionChangedEvent): void;
onFilterChanged?(event: FilterChangedEvent): void;
onFilterModified?(event: FilterModifiedEvent): void;
onSortChanged?(event: SortChangedEvent): void;
onVirtualRowRemoved?(event: VirtualRowRemovedEvent): void;
onRowClicked?(event: RowClickedEvent): void;
onRowDoubleClicked?(event: RowDoubleClickedEvent): void;
onGridReady?(event: GridReadyEvent): void;
onViewportChanged?(event: ViewportChangedEvent): void;
onDragStarted?(event: DragStartedEvent): void;
onDragStopped?(event: DragStoppedEvent): void;
onPaginationChanged?(event: PaginationChangedEvent): void;
onRowDragEnter?(event: RowDragEvent): void;
onRowDragMove?(event: RowDragEvent): void;
onRowDragLeave?(event: RowDragEvent): void;
onRowDragEnd?(event: RowDragEvent): void;
onPasteStart?(event: PasteStartEvent): void;
onPasteEnd?(event: PasteEndEvent): void;
onBodyScroll?(event: BodyScrollEvent): void;
onGridSizeChanged?(event: any): void;
/****************************************************************
* Don't forget to update ComponentUtil if changing this class. *
****************************************************************/
api?: GridApi;
columnApi?: ColumnApi;
}
export interface GetDataPath {
(data: any): string[];
}
export interface GetNodeChildDetails {
(dataItem: any): NodeChildDetails;
}
export interface IsRowMaster {
(dataItem: any): boolean;
}
export interface IsRowSelectable {
(node: RowNode): boolean;
}
export interface NodeChildDetails {
group: boolean;
children?: any[];
expanded?: boolean;
field?: string;
key?: any;
}
export interface GetContextMenuItemsParams {
defaultItems: string[];
column: Column;
node: RowNode;
value: any;
api: GridApi;
columnApi: ColumnApi;
context: any;
}
export interface GetContextMenuItems {
(params: GetContextMenuItemsParams): (string | MenuItemDef)[];
}
export interface MenuItemDef {
name: string;
disabled?: boolean;
shortcut?: string;
action?: () => void;
checked?: boolean;
icon?: HTMLElement | string;
subMenu?: (MenuItemDef | string)[];
cssClasses?: string[];
tooltip?: string;
}
export interface GetMainMenuItemsParams {
column: Column;
api: GridApi;
columnApi: ColumnApi;
context: any;
defaultItems: string[];
}
export interface GetMainMenuItems {
(params: GetMainMenuItemsParams): (string | MenuItemDef)[];
}
export interface GetRowNodeIdFunc {
(data: any): string;
}
export interface ProcessRowParams {
eRow: HTMLElement;
ePinnedLeftRow: HTMLElement;
ePinnedRightRow: HTMLElement;
rowIndex: number;
node: RowNode;
api: GridApi;
columnApi: ColumnApi;
addRenderedRowListener: (eventType: string, listener: Function) => void;
context: any;
}
export interface NavigateToNextCellParams {
key: number;
previousCellDef: GridCellDef;
nextCellDef: GridCellDef;
event: KeyboardEvent;
}
export interface TabToNextCellParams {
backwards: boolean;
editing: boolean;
previousCellDef: GridCellDef;
nextCellDef: GridCellDef;
}
export interface PostProcessPopupParams {
column?: Column;
rowNode?: RowNode;
ePopup: HTMLElement;
type: string;
eventSource?: HTMLElement;
mouseEvent?: MouseEvent | Touch;
}
export interface PaginationNumberFormatterParams {
value: number;
}
export interface ProcessDataFromClipboardParams {
data: string[][];
}