compote-ui
Version:
An opinionated UI component library for Svelte, built on top of [Ark UI](https://ark-ui.com) with additional components and features not available in the core Ark UI library.
77 lines (76 loc) • 5.46 kB
TypeScript
import { type ColumnPinningState, type ColumnResizeMode, type ColumnSizingState, type ColumnVisibilityState, type Row, type RowData, type RowSelectionState } from '@tanstack/svelte-table';
import { type DataTableFeatures } from './features';
import { type DataTableInstance } from './data-table-utils';
import type { DataTableColumn, DataTableLeafColumn, DataTableColumnMeta } from './types';
export type { DataTableInstance };
export type CreateDataTableOptions<T extends RowData> = {
data: T[];
columns: DataTableColumn<T>[];
columnResizeMode?: ColumnResizeMode;
initialState?: {
columnVisibility?: ColumnVisibilityState;
columnSizing?: ColumnSizingState;
columnPinning?: ColumnPinningState;
rowSelection?: RowSelectionState;
sorting?: {
id: string;
desc: boolean;
}[];
columnFilters?: {
id: string;
value: unknown;
}[];
};
getRowId?: (row: T, index: number, parent?: Row<DataTableFeatures, T>) => string;
enableRowSelection?: boolean | ((row: Row<DataTableFeatures, T>) => boolean);
enableMultiRowSelection?: boolean | ((row: Row<DataTableFeatures, T>) => boolean);
enableSorting?: boolean;
debugTable?: boolean;
onColumnVisibilityChange?: (visibility: ColumnVisibilityState) => void;
};
export declare function createTable<T extends RowData>(options: CreateDataTableOptions<T>): import("@tanstack/svelte-table").SvelteTable<{
rowSortingFeature: import("@tanstack/table-core").TableFeature;
rowSelectionFeature: import("@tanstack/table-core").TableFeature;
columnFilteringFeature: import("@tanstack/table-core").TableFeature;
columnFacetingFeature: import("@tanstack/table-core").TableFeature;
globalFilteringFeature: import("@tanstack/table-core").TableFeature;
columnVisibilityFeature: import("@tanstack/table-core").TableFeature;
columnPinningFeature: import("@tanstack/table-core").TableFeature;
columnSizingFeature: import("@tanstack/table-core").TableFeature;
columnResizingFeature: import("@tanstack/table-core").TableFeature;
sortedRowModel: (table: import("@tanstack/table-core").Table<any, any>) => () => import("@tanstack/table-core").RowModel<any, any>;
filteredRowModel: (table: import("@tanstack/table-core").Table<any, any>) => () => import("@tanstack/table-core").RowModel<any, any>;
facetedRowModel: (table: import("@tanstack/table-core").Table<any, any>, columnId: string) => () => import("@tanstack/table-core").RowModel<any, any>;
facetedUniqueValues: (table: import("@tanstack/table-core").Table<import("@tanstack/table-core").TableFeatures, any>, columnId: string) => () => Map<any, number>;
facetedMinMaxValues: (table: import("@tanstack/table-core").Table<import("@tanstack/table-core").TableFeatures, any>, columnId: string) => () => undefined | [number, number];
sortFns: {
alphanumeric: import("@tanstack/table-core").CreatedSortFn<any, any>;
alphanumericCaseSensitive: import("@tanstack/table-core").CreatedSortFn<any, any>;
basic: import("@tanstack/table-core").CreatedSortFn<any, any>;
datetime: import("@tanstack/table-core").CreatedSortFn<any, any>;
text: import("@tanstack/table-core").CreatedSortFn<any, any>;
textCaseSensitive: import("@tanstack/table-core").CreatedSortFn<any, any>;
};
filterFns: {
arrIncludes: import("@tanstack/table-core").CreatedFilterFn<any, any>;
arrIncludesAll: import("@tanstack/table-core").CreatedFilterFn<any, any>;
arrHas: import("@tanstack/table-core").CreatedFilterFn<any, any>;
arrIncludesSome: import("@tanstack/table-core").CreatedFilterFn<any, any>;
between: import("@tanstack/table-core").CreatedFilterFn<any, any>;
betweenInclusive: import("@tanstack/table-core").CreatedFilterFn<any, any>;
empty: import("@tanstack/table-core").CreatedFilterFn<any, any>;
endsWith: import("@tanstack/table-core").CreatedFilterFn<any, any>;
equals: import("@tanstack/table-core").CreatedFilterFn<any, any>;
equalsString: import("@tanstack/table-core").CreatedFilterFn<any, any>;
equalsStringSensitive: import("@tanstack/table-core").CreatedFilterFn<any, any>;
inDateRange: import("@tanstack/table-core").CreatedFilterFn<any, any>;
inNumberRange: import("@tanstack/table-core").CreatedFilterFn<any, any>;
includesString: import("@tanstack/table-core").CreatedFilterFn<any, any>;
includesStringSensitive: import("@tanstack/table-core").CreatedFilterFn<any, any>;
notEmpty: import("@tanstack/table-core").CreatedFilterFn<any, any>;
startsWith: import("@tanstack/table-core").CreatedFilterFn<any, any>;
weakEquals: import("@tanstack/table-core").CreatedFilterFn<any, any>;
};
columnMeta: DataTableColumnMeta;
}, T, import("@tanstack/table-core").TableState_ColumnFiltering & import("@tanstack/table-core").TableState_ColumnPinning & import("@tanstack/table-core").TableState_ColumnResizing & import("@tanstack/table-core").TableState_ColumnSizing & import("@tanstack/table-core").TableState_ColumnVisibility & import("@tanstack/table-core").TableState_GlobalFiltering & import("@tanstack/table-core").TableState_RowSelection & import("@tanstack/table-core").TableState_RowSorting>;
export declare function getColumnId<T extends RowData>(column: DataTableLeafColumn<T>): string;