ag-grid-community
Version:
Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
51 lines (50 loc) • 2.61 kB
TypeScript
import type { ColumnChangedEventType } from '../columns/columnApi';
import type { ColKey, Maybe } from '../columns/columnModel';
import type { ColumnState, ColumnStateParams } from '../columns/columnStateUtils';
import type { AgColumn } from '../entities/agColumn';
import type { ColDef, IAggFunc } from '../entities/colDef';
import type { ColumnEventType } from '../events';
type ColumnProcessorKeys = 'add' | 'remove' | 'set';
export type ColumnProcessor = (column: AgColumn, added: boolean, source: ColumnEventType) => void;
export type ColumnProcessors = Record<ColumnProcessorKeys, ColumnProcessor>;
export type ColumnOrdering = {
enableProp: 'rowGroup' | 'pivot';
initialEnableProp: 'initialRowGroup' | 'initialPivot';
indexProp: 'rowGroupIndex' | 'pivotIndex';
initialIndexProp: 'initialRowGroupIndex' | 'initialPivotIndex';
};
export type ColumnExtractors = {
setFlagFunc: (col: AgColumn, flag: boolean, source: ColumnEventType) => void;
getIndexFunc: (colDef: ColDef) => number | null | undefined;
getInitialIndexFunc: (colDef: ColDef) => number | null | undefined;
getValueFunc: (colDef: ColDef) => boolean | null | undefined;
getInitialValueFunc: (colDef: ColDef) => boolean | undefined;
};
export interface IColsService {
columns: AgColumn[];
eventName: ColumnChangedEventType;
columnProcessors?: ColumnProcessors;
columnOrdering?: ColumnOrdering;
columnExtractors?: ColumnExtractors;
setColumns(colKeys: ColKey[] | undefined, source: ColumnEventType): void;
addColumns(keys: Maybe<ColKey>[] | undefined, source: ColumnEventType): void;
removeColumns(keys: Maybe<ColKey>[] | undefined, source: ColumnEventType): void;
getColumnIndex(colId: string): number | undefined;
extractCols(source: ColumnEventType, oldProvidedCols: AgColumn[] | undefined): void;
syncColumnWithState(column: AgColumn, source: ColumnEventType, getValue: <U extends keyof ColumnStateParams, S extends keyof ColumnStateParams>(key1: U, key2?: S) => {
value1: ColumnStateParams[U] | undefined;
value2: ColumnStateParams[S] | undefined;
}, rowIndex?: {
[key: string]: number;
} | null): void;
sortColumns(compareFn?: (a: AgColumn, b: AgColumn) => number): void;
restoreColumnOrder(columnStateAccumulator: {
[colId: string]: ColumnState;
}, incomingColumnState: {
[colId: string]: ColumnState;
}): {
[colId: string]: ColumnState;
};
setColumnAggFunc?(key: ColKey | undefined, aggFunc: string | IAggFunc | null | undefined, source: ColumnEventType): void;
}
export {};