ag-grid-community
Version:
Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
69 lines (68 loc) • 2.88 kB
TypeScript
import { Column } from "../entities/column";
import { RowNode } from "../entities/rowNode";
import { GridApi } from "../gridApi";
import { ColumnApi } from "../columnController/columnApi";
import { ColDef } from "../entities/colDef";
import { IPopupComponent } from "./iPopupComponent";
export interface ICellEditor {
/**
* Return the final value - called by the grid once after editing is complete
*/
getValue(): any;
/** Gets called once after initialised. If you return true, the editor will
* appear in a popup, so is not constrained to the boundaries of the cell.
* This is great if you want to, for example, provide you own custom dropdown list
* for selection. Default is false (ie if you don't provide the method).
*/
isPopup?(): boolean;
/** Gets called once, only if isPopup() returns true. Return "over" if the popup
* should cover the cell, or "under" if it should be positioned below leaving the
* cell value visible. If this method is not present, the default is "over".
*/
getPopupPosition?(): string | undefined;
/** Gets called once after initialised. If you return true, the editor will not be
* used and the grid will continue editing. Use this to make a decision on editing
* inside the init() function, eg maybe you want to only start editing if the user
* hits a numeric key, but not a letter, if the editor is for numbers.
*/
isCancelBeforeStart?(): boolean;
/** Gets called once after editing is complete. If your return true, then the new
* value will not be used. The editing will have no impact on the record. Use this
* if you do not want a new value from your gui, i.e. you want to cancel the editing.
*/
isCancelAfterEnd?(): boolean;
/**
* If doing full line edit, then gets called when focus should be put into the editor
*/
focusIn?(): void;
/**
* If doing full line edit, then gets called when focus is leaving the editor
*/
focusOut?(): void;
/** If using a framework this returns the underlying component instance, so you can call
* methods on it if you want.
*/
getFrameworkComponentInstance?(): any;
}
export interface ICellEditorParams {
value: any;
keyPress: number | null;
charPress: string | null;
column: Column;
colDef: ColDef;
node: RowNode;
data: any;
rowIndex: number;
api: GridApi | null | undefined;
columnApi: ColumnApi | null | undefined;
cellStartedEdit: boolean;
context: any;
$scope: any;
onKeyDown: (event: KeyboardEvent) => void;
stopEditing: (suppressNavigateAfterEdit?: boolean) => void;
eGridCell: HTMLElement;
parseValue: (value: any) => any;
formatValue: (value: any) => any;
}
export interface ICellEditorComp extends ICellEditor, IPopupComponent<ICellEditorParams> {
}