2021-11-03 11:44:28 +00:00
|
|
|
import { Sort } from 'app/common/SortSpec';
|
|
|
|
|
2020-07-21 13:20:51 +00:00
|
|
|
/**
|
|
|
|
*
|
|
|
|
* 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.
|
|
|
|
*
|
|
|
|
*/
|
2021-11-03 11:44:28 +00:00
|
|
|
getColGetter(spec: Sort.ColSpec): ColumnGetter | null;
|
2020-07-21 13:20:51 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* Returns a getter for the manual sort column if it is available.
|
|
|
|
*
|
|
|
|
*/
|
2021-11-03 11:44:28 +00:00
|
|
|
getManualSortGetter(): ColumnGetter | null;
|
2020-07-21 13:20:51 +00:00
|
|
|
}
|
2021-11-03 11:44:28 +00:00
|
|
|
|
2023-07-19 17:37:22 +00:00
|
|
|
/**
|
|
|
|
* Like ColumnGetters, but takes the string `colId` rather than a `ColSpec`
|
|
|
|
* or numeric row ID.
|
|
|
|
*/
|
|
|
|
export interface ColumnGettersByColId {
|
|
|
|
getColGetterByColId(colId: string): ColumnGetter | null;
|
|
|
|
}
|
|
|
|
|
2021-11-03 11:44:28 +00:00
|
|
|
export type ColumnGetter = (rowId: number) => any;
|