You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gristlabs_grist-core/app/common/ColumnGetters.ts

38 lines
1.0 KiB

import { Sort } from 'app/common/SortSpec';
/**
*
* An interface for accessing the columns of a table by their
* ID in _grist_Tables_column, which is the ID used in sort specifications.
* Implementations of this interface can be supplied to SortFunc to
* sort the rows of a table according to such a specification.
*
*/
export interface ColumnGetters {
/**
*
* Takes a _grist_Tables_column ID and returns a function that maps
* rowIds to values for that column. Those values should be display
* values if available, drawn from a corresponding display column.
*
*/
getColGetter(spec: Sort.ColSpec): ColumnGetter | null;
/**
*
* Returns a getter for the manual sort column if it is available.
*
*/
getManualSortGetter(): ColumnGetter | null;
}
/**
* Like ColumnGetters, but takes the string `colId` rather than a `ColSpec`
* or numeric row ID.
*/
export interface ColumnGettersByColId {
getColGetterByColId(colId: string): ColumnGetter | null;
}
export type ColumnGetter = (rowId: number) => any;