ohctechv3/.svn/pristine/ca/cac54236c5a52e8111d7dd94f75c4f95a4c5f3aa.svn-base
2024-10-28 15:03:36 +05:30

57 lines
2.5 KiB
Plaintext

import { IRowModel } from './iRowModel';
import { RowNodeTransaction } from './rowNodeTransaction';
import { RowDataTransaction } from './rowDataTransaction';
import { RowNode } from '../entities/rowNode';
import { RowHighlightPosition } from '../interfaces/iRowNode';
import { ChangedPath } from '../utils/changedPath';
export type ClientSideRowModelStep = `${ClientSideRowModelSteps}`;
export declare enum ClientSideRowModelSteps {
EVERYTHING = "group",
FILTER = "filter",
SORT = "sort",
MAP = "map",
AGGREGATE = "aggregate",
FILTER_AGGREGATES = "filter_aggregates",
PIVOT = "pivot",
NOTHING = "nothing"
}
export interface IClientSideRowModel<TData = any> extends IRowModel {
onRowGroupOpened(): void;
updateRowData(rowDataTran: RowDataTransaction<TData>, rowNodeOrder?: {
[id: string]: number;
} | null): RowNodeTransaction<TData> | null;
setRowData(rowData: any[]): void;
refreshModel(paramsOrStep: RefreshModelParams | ClientSideRowModelStep | undefined): void;
expandOrCollapseAll(expand: boolean): void;
forEachLeafNode(callback: (node: RowNode, index: number) => void): void;
forEachNodeAfterFilter(callback: (node: RowNode, index: number) => void, includeFooterNodes?: boolean): void;
forEachNodeAfterFilterAndSort(callback: (node: RowNode, index: number) => void, includeFooterNodes?: boolean): void;
forEachPivotNode(callback: (node: RowNode, index: number) => void, includeFooterNodes?: boolean): void;
resetRowHeights(): void;
onRowHeightChanged(): void;
onRowHeightChangedDebounced(): void;
batchUpdateRowData(rowDataTransaction: RowDataTransaction<TData>, callback?: (res: RowNodeTransaction<TData>) => void): void;
flushAsyncTransactions(): void;
getRootNode(): RowNode;
doAggregate(changedPath?: ChangedPath): void;
getTopLevelNodes(): RowNode[] | null;
ensureRowsAtPixel(rowNode: RowNode[], pixel: number, increment: number): boolean;
highlightRowAtPixel(rowNode: RowNode | null, pixel?: number): void;
getHighlightPosition(pixel: number, rowNode?: RowNode): RowHighlightPosition;
getLastHighlightedRowNode(): RowNode | null;
isRowDataLoaded(): boolean;
}
export interface RefreshModelParams<TData = any> {
step: ClientSideRowModelSteps;
keepRenderedRows?: boolean;
animate?: boolean;
keepEditingRows?: boolean;
rowNodeTransactions?: RowNodeTransaction<TData>[];
rowNodeOrder?: {
[id: string]: number;
};
newData?: boolean;
afterColumnsChanged?: boolean;
keepUndoRedoStack?: boolean;
}