for the most part switched out the grid's internals for the new table component
This commit is contained in:
parent
6d74950495
commit
d219ae1f9a
8 changed files with 151 additions and 218 deletions
|
@ -1,13 +1,13 @@
|
|||
|
||||
|
||||
export type RowNode<T> = { kind: 'row', key: string, value: T }
|
||||
export type GroupNode<T> = { kind: 'group', key: string, groupedBy: keyof T, nodes: Node<T>[] };
|
||||
export type Node<T> = RowNode<T> | GroupNode<T>;
|
||||
export type DataSetRowNode<T> = { kind: 'row', key: string, value: T }
|
||||
export type DataSetGroupNode<T> = { kind: 'group', key: string, groupedBy: keyof T, nodes: DataSetNode<T>[] };
|
||||
export type DataSetNode<T> = DataSetRowNode<T> | DataSetGroupNode<T>;
|
||||
|
||||
export type DataSet<T extends Record<string, any>> = Node<T>[];
|
||||
export type DataSet<T extends Record<string, any>> = DataSetNode<T>[];
|
||||
|
||||
export const createDataSet = <T extends Record<string, any>>(data: T[]): Node<T>[] => {
|
||||
return Object.entries(data).map<RowNode<T>>(([key, value]) => ({ kind: 'row', key, value }));
|
||||
export const createDataSet = <T extends Record<string, any>>(data: T[]): DataSetNode<T>[] => {
|
||||
return Object.entries(data).map<DataSetRowNode<T>>(([key, value]) => ({ kind: 'row', key, value }));
|
||||
};
|
||||
|
||||
type SortingFunction<T> = (a: T, b: T) => -1 | 0 | 1;
|
||||
|
@ -22,6 +22,6 @@ export const toSorted = <T extends Record<string, any>>(dataSet: DataSet<T>, sor
|
|||
return sorted;
|
||||
};
|
||||
|
||||
type GroupingFunction<T> = (nodes: RowNode<T>[]) => Node<T>[];
|
||||
type GroupingFunction<T> = (nodes: DataSetRowNode<T>[]) => DataSetNode<T>[];
|
||||
type GroupOptions<T extends Record<string, any>> = { by: keyof T, with: GroupingFunction<T> };
|
||||
export const toGrouped = <T extends Record<string, any>>(dataSet: DataSet<T>, group: GroupOptions<T>): DataSet<T> => group.with(dataSet as any);
|
Loading…
Add table
Add a link
Reference in a new issue