@ackplus/react-tanstack-data-table
Version:
A powerful React data table component built with MUI and TanStack Table
77 lines • 1.92 kB
TypeScript
import { SortingState } from '@tanstack/react-table';
import { ColumnFilterRule, SelectionState } from '../features';
/**
* Table State and Configuration Types
* Consolidated table-related interfaces from data-table.types.ts
*/
/**
* Table filters configuration
*/
export type TableSize = 'small' | 'medium';
export interface TableState {
columnFilter: ColumnFilterState;
selectionState?: SelectionState;
globalFilter?: string;
sorting?: SortingState;
pagination?: {
pageIndex: number;
pageSize: number;
};
columnOrder?: string[];
columnPinning?: {
left?: string[];
right?: string[];
};
columnVisibility?: Record<string, boolean>;
columnSizing?: Record<string, number>;
}
export interface TableFilters {
globalFilter: string;
columnFilter: ColumnFilterState;
sorting: SortingState;
pagination: {
pageIndex: number;
pageSize: number;
};
columnOrder: string[];
columnPinning: {
left?: string[];
right?: string[];
};
}
export interface TableFiltersForFetch {
search?: string;
page?: number;
pageSize?: number;
sorting?: SortingState;
columnFilter?: ColumnFilterState;
}
export interface ColumnFilterState {
filters: ColumnFilterRule[];
logic: 'AND' | 'OR';
pendingFilters: ColumnFilterRule[];
pendingLogic: 'AND' | 'OR';
}
/**
* Table performance metrics
*/
export interface TablePerformanceMetrics {
renderTime: number;
dataProcessingTime: number;
totalRows: number;
visibleRows: number;
memoryUsage?: number;
}
/**
* Table metrics for debugging and optimization
*/
export interface TableMetrics {
totalRows: number;
visibleRows: number;
totalColumns?: number;
visibleColumns?: number;
pinnedColumns?: number;
renderTime: number;
lastUpdated?: Date;
}
//# sourceMappingURL=table.types.d.ts.map