for the most part switched out the grid's internals for the new table component

This commit is contained in:
Chris Kruining 2024-12-11 16:24:54 +01:00
parent 6d74950495
commit d219ae1f9a
No known key found for this signature in database
GPG key ID: EB894A3560CCCAD2
8 changed files with 151 additions and 218 deletions

View file

@ -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);