import type { Data } from "$types"; export interface DataCellType { /** internal use */ index: number; /** column identifier data.id ?? generated */ columnId: string | number; width: string; /** applied inline css style to header */ headerStyle?: string; style?: string; order?: number; /** data field */ field?: string; /** data field title shown in header*/ fieldTitle?: string; /** use as convenience */ fieldType?: string; /** transform data */ getter?: (data: Record) => void; htmlElement?: HTMLElement; } export interface RowType { data?: Data; } export interface groupByOptions { showMainHeader?: boolean; showSubGroupsHeader?: boolean; showEmptyGroup?: boolean; subPaginationSize?: number; } export interface DataListStoreType { config: { isSortable?: boolean; defaultSortByField?: string; defaultSortByOrder: 'asc' | 'desc' | 'none' | string; sortingIcons: Record; noWrap?: boolean; dataTypes?: Record any>; }; sortBy: { activeSortByField?: string; activeSortByOrder?: 'asc' | 'desc' | 'none' | string; }; groupBy: { groupByField: string | string[]; groupByOptions: groupByOptions; }; idField?: string; selectedRowId?: string; columns: Record; headerNodes?: Record; hasColumnsProps?: boolean; data: Data[]; }