ag-grid-community
Version:
Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
70 lines (69 loc) • 4.16 kB
TypeScript
import type { NamedBean } from '../context/bean';
import { BeanStub } from '../context/beanStub';
import type { Column } from '../interfaces/iColumn';
import type { EditMap, EditPositionValue, EditRow, EditRowValidationMap, EditState, EditValidation, EditValidationMap, EditValue, GetEditsParams, ReadonlyEditMap } from '../interfaces/iEditModelService';
import type { EditPosition, EditRowPosition } from '../interfaces/iEditService';
import type { IRowNode } from '../interfaces/iRowNode';
export declare class EditModelService extends BeanStub implements NamedBean {
beanName: "editModelSvc";
private readonly edits;
private editingCount;
private cellValidations;
private rowValidations;
private suspendEdits;
suspend(suspend: boolean): void;
hasOpenEditors(): boolean;
removeEdits({ rowNode, column }: EditPosition): void;
getEditRow(rowNode: IRowNode, checkSiblings?: boolean): EditRow | undefined;
getEditRowDataValue(rowNode: IRowNode): any;
getEdit(position?: EditPosition): EditValue | undefined;
/** Direct single-cell lookup — allocation-free, no pinned-sibling fallback (see {@link getCellEditWithSibling}). */
getCellEdit(rowNode: IRowNode | null | undefined, column: Column | null | undefined): EditValue | undefined;
/** Single-cell lookup that falls back to the pinned sibling, since pinned rows mirror their sibling's edits. */
getCellEditWithSibling(rowNode: IRowNode | null | undefined, column: Column | null | undefined): EditValue | undefined;
/** The live edit map, or null while edits are suspended. Read-only: mutating it would break editingCount. */
getEditMap(): ReadonlyEditMap | null;
/** A deep copy of the edit map — a mutable snapshot, safe to hold and mutate across model changes. */
getEditMapCopy(): EditMap;
setEditMap(newEdits: ReadonlyEditMap): void;
setEdit(position: Required<EditPosition>, edit: Partial<EditValue>): Readonly<EditValue>;
clearEditValue(position: EditPosition): void;
getState(position: EditPosition): EditState | undefined;
getEditPositions(editMap?: EditMap): EditPositionValue[];
hasRowEdits(rowNode: IRowNode, checkSiblings?: boolean): boolean;
hasEdits(position?: EditPosition, params?: GetEditsParams): boolean;
start(position: Required<EditPosition>): void;
stop(position: Required<EditPosition>, preserveBatch: boolean, cancel: boolean): void;
clear(): void;
/**
* Side-effect-free "is anything invalid?". Scope follows the position: omitted means the whole grid,
* a rowNode without a column means that row. Callers that must not repopulate/refresh use this.
*/
hasValidationErrors(position?: EditPosition): boolean;
getCellValidationModel(): EditCellValidationModel;
getRowValidationModel(): EditRowValidationModel;
setCellValidationModel(model: EditCellValidationModel): void;
setRowValidationModel(model: EditRowValidationModel): void;
destroy(): void;
}
export declare class EditCellValidationModel {
private cellValidations;
getCellValidation(position?: EditPosition): EditValidation | undefined;
/** Scope follows the position: no rowNode means the whole grid, a rowNode without a column means that row. */
hasCellValidation(position?: EditPosition): boolean;
setCellValidation(position: Required<EditPosition>, validation: EditValidation): void;
clearCellValidation(position: Required<EditPosition>): void;
setCellValidationMap(validationMap: EditValidationMap): void;
getCellValidationMap(): EditValidationMap;
clearCellValidationMap(): void;
}
export declare class EditRowValidationModel {
private rowValidations;
getRowValidation(position?: EditRowPosition): EditValidation | undefined;
hasRowValidation(position?: EditRowPosition): boolean;
setRowValidation({ rowNode }: Required<EditRowPosition>, rowValidation: EditValidation): void;
clearRowValidation({ rowNode }: Required<EditRowPosition>): void;
setRowValidationMap(validationMap: EditRowValidationMap): void;
getRowValidationMap(): EditRowValidationMap;
clearRowValidationMap(): void;
}