UNPKG

15.3 kBTypeScriptView Raw
1import { RowNode } from './entities/rowNode';
2import { Column } from './entities/column';
3import { ColDef } from './entities/colDef';
4import { GridApi } from './gridApi';
5import { ColumnApi } from './columns/columnApi';
6import { ProvidedColumnGroup } from './entities/providedColumnGroup';
7import { FilterRequestSource } from './filter/filterManager';
8import { ChartType } from './interfaces/iChartOptions';
9import { IFilterComp } from './interfaces/iFilter';
10import { CellRange, CellRangeParams } from './interfaces/IRangeService';
11import { ServerSideTransactionResult } from "./interfaces/serverSideTransaction";
12import { RowNodeTransaction } from "./interfaces/rowNodeTransaction";
13import { AgChartThemeOverrides } from "./interfaces/iAgChartOptions";
14export { Events } from './eventKeys';
15export interface ModelUpdatedEvent extends AgGridEvent {
16 /** If true, the grid will try and animate the rows to the new positions */
17 animate: boolean | undefined;
18 /** If true, the grid has new data loaded, eg user called setRowData(), otherwise
19 * it's the same data but sorted or filtered, in which case this is true, and rows
20 * can animate around (eg rowNode id 24 is the same row node as last time). */
21 keepRenderedRows: boolean | undefined;
22 /** If true, then this update was a result of setRowData() getting called. This
23 * gets the grid to scroll to the top again. */
24 newData: boolean | undefined;
25 /** True when pagination and a new page is navigated to. */
26 newPage: boolean;
27}
28export interface PaginationChangedEvent extends AgGridEvent {
29 /** True if rows were animated to new position */
30 animate?: boolean;
31 /** True if rows were kept (otherwise complete redraw) */
32 keepRenderedRows?: boolean;
33 /** True if data was new (i.e user set new data) */
34 newData?: boolean;
35 /** True if user went to a new page */
36 newPage: boolean;
37}
38export interface AgEvent {
39 /** Event identifier */
40 type: string;
41}
42export interface AgGridEvent extends AgEvent {
43 api: GridApi;
44 columnApi: ColumnApi;
45}
46export interface ToolPanelVisibleChangedEvent extends AgGridEvent {
47 source: string | undefined;
48}
49export interface ColumnPivotModeChangedEvent extends AgGridEvent {
50}
51export interface VirtualColumnsChangedEvent extends AgGridEvent {
52}
53export interface ColumnEverythingChangedEvent extends AgGridEvent {
54 source: string;
55}
56export interface NewColumnsLoadedEvent extends AgGridEvent {
57}
58export interface GridColumnsChangedEvent extends AgGridEvent {
59}
60export interface DisplayedColumnsChangedEvent extends AgGridEvent {
61}
62export interface RowDataChangedEvent extends AgGridEvent {
63}
64export interface RowDataUpdatedEvent extends AgGridEvent {
65}
66export interface PinnedRowDataChangedEvent extends AgGridEvent {
67}
68export interface SelectionChangedEvent extends AgGridEvent {
69}
70export interface FilterChangedEvent extends AgGridEvent {
71 /** True if the filter was changed as a result of data changing */
72 afterDataChange?: boolean;
73 /** True if filter was changed via floating filter */
74 afterFloatingFilter?: boolean;
75 /**
76 * Columns affected by the filter change. Array contents depend on the source of the event.
77 *
78 * - Expect 1 element for UI-driven column filter changes.
79 * - Expect 0-N elements (all affected columns) for calls to `gridOptions.api.setFilterModel()`.
80 * - Expect 0-N elements (removed columns) for calls to `gridOptions.api.setColumnDefs()`.
81 * - Expect 0 elements for quick-filters and calls to `gridOptions.api.onFilterChanged()`.
82 */
83 columns: Column[];
84}
85export interface FilterModifiedEvent extends AgGridEvent {
86 filterInstance: IFilterComp;
87 column: Column;
88}
89export interface FilterOpenedEvent extends AgGridEvent {
90 /** Column / OriginalColumnGroup that contains the filter */
91 column: Column | ProvidedColumnGroup;
92 /** Source of the open request */
93 source: FilterRequestSource;
94 /** Parent element of the filter */
95 eGui: HTMLElement;
96}
97export interface SortChangedEvent extends AgGridEvent {
98 /** Source of the sort change. */
99 source: string;
100}
101export interface GridReadyEvent extends AgGridEvent {
102}
103export interface DisplayedColumnsWidthChangedEvent extends AgGridEvent {
104}
105export interface ColumnHoverChangedEvent extends AgGridEvent {
106}
107export interface BodyHeightChangedEvent extends AgGridEvent {
108}
109export interface ComponentStateChangedEvent extends AgGridEvent {
110}
111export interface ColumnPanelItemDragStartEvent extends AgEvent {
112 column: Column | ProvidedColumnGroup;
113}
114export interface ColumnPanelItemDragEndEvent extends AgEvent {
115}
116export interface DragEvent extends AgGridEvent {
117 /** One of {'cell','row','headerCell','toolPanel'} */
118 type: string;
119 /** The DOM element that started the event. */
120 target: HTMLElement;
121}
122export interface DragStartedEvent extends DragEvent {
123}
124export interface DragStoppedEvent extends DragEvent {
125}
126export interface CheckboxChangedEvent extends AgEvent {
127 id: string;
128 name: string;
129 selected?: boolean;
130 previousValue: boolean | undefined;
131}
132export interface GridSizeChangedEvent extends AgGridEvent {
133 /** The grid's DIV's clientWidth */
134 clientWidth: number;
135 /** The grid's DIV's clientHeight */
136 clientHeight: number;
137}
138export interface RowDragEvent extends AgGridEvent {
139 /** Event identifier: One of rowDragEnter, rowDragMove, rowDragEnd, rowDragLeave */
140 type: string;
141 /** The row node getting dragged. Also the node that started the drag when multi-row dragging. */
142 node: RowNode;
143 /** The list of nodes being dragged. */
144 nodes: RowNode[];
145 /** The underlying mouse move event associated with the drag. */
146 event: MouseEvent;
147 /** Direction of the drag, either `'up'`, `'down'` or `null` (if mouse is moving horizontally and not vertically). */
148 vDirection: string;
149 /** The row index the mouse is dragging over or -1 if over no row. */
150 overIndex: number;
151 /** The row node the mouse is dragging over or undefined if over no row. */
152 overNode?: RowNode;
153 /** The vertical pixel location the mouse is over, with `0` meaning the top of the first row.
154 * This can be compared to the `rowNode.rowHeight` and `rowNode.rowTop` to work out the mouse position relative to rows.
155 * The provided attributes `overIndex` and `overNode` means the `y` property is mostly redundant.
156 * The `y` property can be handy if you want more information such as 'how close is the mouse to the top or bottom of the row?'
157 */
158 y: number;
159}
160export interface RowDragEnterEvent extends RowDragEvent {
161}
162export interface RowDragEndEvent extends RowDragEvent {
163}
164export interface RowDragMoveEvent extends RowDragEvent {
165}
166export interface RowDragLeaveEvent extends RowDragEvent {
167}
168export interface PasteStartEvent extends AgGridEvent {
169 source: string;
170}
171export interface PasteEndEvent extends AgGridEvent {
172 source: string;
173}
174export interface FillStartEvent extends AgGridEvent {
175}
176export interface FillEndEvent extends AgGridEvent {
177 initialRange: CellRange;
178 finalRange: CellRange;
179}
180export interface ViewportChangedEvent extends AgGridEvent {
181 /** Index of the first rendered row */
182 firstRow: number;
183 /** Index of the last rendered row */
184 lastRow: number;
185}
186export interface FirstDataRenderedEvent extends AgGridEvent {
187 /** Index of the first rendered row */
188 firstRow: number;
189 /** Index of the last rendered row */
190 lastRow: number;
191}
192export interface RangeSelectionChangedEvent extends AgGridEvent {
193 id?: string;
194 /** True for the first change event, otherwise false */
195 started: boolean;
196 /** True for the last change event, otherwise false */
197 finished: boolean;
198}
199export interface ChartCreated extends AgGridEvent {
200 /** Will always be `chartCreated`. */
201 type: string;
202 /** Id of the created chart. This can later be used to reference the chart via api methods. */
203 chartId: string;
204}
205export interface ChartRangeSelectionChanged extends AgGridEvent {
206 /** Will always be `chartRangeSelectionChanged`. */
207 type: string;
208 /** Id of the effected chart. */
209 chartId: string;
210 /** Same as `chartId`. */
211 id: string;
212 /** New cellRange selected. */
213 cellRange: CellRangeParams;
214}
215export interface ChartOptionsChanged extends AgGridEvent {
216 /** Will always be `chartOptionsChanged`. */
217 type: string;
218 /** Id of the effected chart. */
219 chartId: string;
220 /** ChartType */
221 chartType: ChartType;
222 /** Chart theme name of currently selected theme. */
223 chartThemeName: string;
224 /** Chart options. */
225 chartOptions: AgChartThemeOverrides;
226}
227export interface ChartDestroyed extends AgGridEvent {
228 /** Will always be `chartDestroyed`. */
229 type: string;
230 /** Id of the effected chart. */
231 chartId: string;
232}
233export interface ColumnGroupOpenedEvent extends AgGridEvent {
234 columnGroup: ProvidedColumnGroup;
235}
236export interface ItemsAddedEvent extends AgGridEvent {
237 items: RowNode[];
238}
239export declare type ScrollDirection = 'horizontal' | 'vertical';
240export interface BodyScrollEvent extends AgGridEvent {
241 direction: ScrollDirection;
242 left: number;
243 top: number;
244}
245export interface BodyScrollEndEvent extends BodyScrollEvent {
246}
247export interface FlashCellsEvent extends AgGridEvent {
248 cells: any;
249}
250export interface PaginationPixelOffsetChangedEvent extends AgGridEvent {
251}
252export interface CellFocusedEvent extends AgGridEvent {
253 /** Row index of the focused cell */
254 rowIndex: number | null;
255 /** Column of the focused cell */
256 column: Column | null;
257 /** either 'top', 'bottom' or null / undefined (if not pinned) */
258 rowPinned?: string | null;
259 /** Whether the cell a full width cell or a regular cell */
260 isFullWidthCell: boolean;
261 /** Whether browser focus is also set (false when editing) */
262 forceBrowserFocus?: boolean;
263 floating: string | null;
264}
265export interface FullWidthRowFocusedEvent extends CellFocusedEvent {
266 fromBelow: boolean;
267}
268export interface ExpandCollapseAllEvent extends AgGridEvent {
269 source: string;
270}
271/**---------------*/
272/** COLUMN EVENTS */
273/**---------------*/
274export declare type ColumnEventType = "sizeColumnsToFit" | "autosizeColumns" | "alignedGridChanged" | "filterChanged" | "filterDestroyed" | "gridOptionsChanged" | "gridInitializing" | "toolPanelDragAndDrop" | "toolPanelUi" | "uiColumnMoved" | "uiColumnResized" | "uiColumnDragged" | "uiColumnExpanded" | "uiColumnSorted" | "contextMenu" | "columnMenu" | "rowModelUpdated" | "rowDataUpdated" | "api" | "flex" | "pivotChart";
275export interface ColumnEvent extends AgGridEvent {
276 /** The impacted column, only set if action was on one column */
277 column: Column | null;
278 /** List of all impacted columns */
279 columns: Column[] | null;
280 /** String describing where the event is coming from */
281 source: ColumnEventType;
282}
283export interface ColumnResizedEvent extends ColumnEvent {
284 /** Set to true for last event in a sequence of move events */
285 finished: boolean;
286 /** Any columns resized due to flex */
287 flexColumns: Column[] | null;
288}
289export interface ColumnPivotChangedEvent extends ColumnEvent {
290}
291export interface ColumnRowGroupChangedEvent extends ColumnEvent {
292}
293export interface ColumnValueChangedEvent extends ColumnEvent {
294}
295export interface ColumnMovedEvent extends ColumnEvent {
296 /** The position the column was moved to */
297 toIndex?: number;
298}
299export interface ColumnVisibleEvent extends ColumnEvent {
300 /** True if column was set to visible, false if set to hide */
301 visible?: boolean;
302}
303export interface ColumnPinnedEvent extends ColumnEvent {
304 /** Either 'left', 'right', or null (it not pinned) */
305 pinned: string | null;
306}
307/**------------*/
308/** ROW EVENTS */
309/**------------*/
310export interface RowEvent extends AgGridEvent {
311 node: RowNode;
312 /** The user provided data for the row */
313 data: any;
314 /** The visible row index for the row */
315 rowIndex: number | null;
316 /** Either 'top', 'bottom' or null / undefined (if not set) */
317 rowPinned: string | null;
318 /** The context as provided on `gridOptions.context` */
319 context: any;
320 /** If event was due to browser event (eg click), this is the browser event */
321 event?: Event | null;
322}
323export interface RowGroupOpenedEvent extends RowEvent {
324 /** True if the group is expanded. */
325 expanded: boolean;
326}
327export interface RowValueChangedEvent extends RowEvent {
328}
329export interface RowSelectedEvent extends RowEvent {
330}
331export interface VirtualRowRemovedEvent extends RowEvent {
332}
333export interface RowClickedEvent extends RowEvent {
334}
335export interface RowDoubleClickedEvent extends RowEvent {
336}
337export interface RowEditingStartedEvent extends RowEvent {
338}
339export interface RowEditingStoppedEvent extends RowEvent {
340}
341export interface FullWidthCellKeyDownEvent extends RowEvent {
342}
343export interface FullWidthCellKeyPressEvent extends RowEvent {
344}
345/**------------*/
346/** CELL EVENTS */
347/**------------*/
348export interface CellEvent extends RowEvent {
349 column: Column;
350 colDef: ColDef;
351 /** The value for the cell */
352 value: any;
353}
354export interface CellKeyDownEvent extends CellEvent {
355}
356export interface CellKeyPressEvent extends CellEvent {
357}
358/** Cell is clicked */
359export interface CellClickedEvent extends CellEvent {
360}
361export interface CellMouseDownEvent extends CellEvent {
362}
363export interface CellDoubleClickedEvent extends CellEvent {
364}
365export interface CellMouseOverEvent extends CellEvent {
366}
367export interface CellMouseOutEvent extends CellEvent {
368}
369export interface CellContextMenuEvent extends CellEvent {
370}
371export interface CellEditingStartedEvent extends CellEvent {
372}
373export interface CellEditingStoppedEvent extends CellEvent {
374 /** The old value before editing */
375 oldValue: any;
376 /** The new value after editing */
377 newValue: any;
378}
379export interface CellValueChangedEvent extends CellEvent {
380 oldValue: any;
381 newValue: any;
382 source: string | undefined;
383}
384export interface CellEditRequestEvent extends CellEvent {
385 oldValue: any;
386 newValue: any;
387 source: string | undefined;
388}
389export interface AsyncTransactionsFlushed extends AgGridEvent {
390 /**
391 * Array of result objects. for SSRM it's always list of `ServerSideTransactionResult`.
392 * For Client-Side Row Model it's a list of `RowNodeTransaction`.
393 */
394 results: (RowNodeTransaction | ServerSideTransactionResult)[];
395}
396export interface ColumnRequestEvent extends AgGridEvent {
397 columns: Column[];
398}
399export interface ColumnRowGroupChangeRequestEvent extends ColumnRequestEvent {
400}
401export interface ColumnPivotChangeRequestEvent extends ColumnRequestEvent {
402}
403export interface ColumnValueChangeRequestEvent extends ColumnRequestEvent {
404}
405export interface ColumnAggFuncChangeRequestEvent extends ColumnRequestEvent {
406 aggFunc: any;
407}
408export interface ScrollVisibilityChangedEvent extends AgGridEvent {
409}
410export interface StoreUpdatedEvent extends AgEvent {
411}
412export interface LeftPinnedWidthChangedEvent extends AgEvent {
413}
414export interface RightPinnedWidthChangedEvent extends AgEvent {
415}
416export interface RowContainerHeightChanged extends AgEvent {
417}
418export interface DisplayedRowsChangedEvent extends AgEvent {
419}