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.
94 lines (93 loc) • 7.87 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: <TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(rowA: Row<TFeatures, TData>, rowB: Row<TFeatures, TData>, columnId: string) => number;
alphanumericCaseSensitive: <TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(rowA: Row<TFeatures, TData>, rowB: Row<TFeatures, TData>, columnId: string) => number;
basic: <TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(rowA: Row<TFeatures, TData>, rowB: Row<TFeatures, TData>, columnId: string) => 0 | 1 | -1;
datetime: <TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(rowA: Row<TFeatures, TData>, rowB: Row<TFeatures, TData>, columnId: string) => 0 | 1 | -1;
text: <TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(rowA: Row<TFeatures, TData>, rowB: Row<TFeatures, TData>, columnId: string) => 0 | 1 | -1;
textCaseSensitive: <TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(rowA: Row<TFeatures, TData>, rowB: Row<TFeatures, TData>, columnId: string) => 0 | 1 | -1;
};
filterFns: {
arrIncludes: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string, filterValue: Array<unknown>) => boolean) & {
autoRemove: (val: any) => boolean;
};
arrIncludesAll: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string, filterValue: Array<unknown>) => boolean) & {
autoRemove: (val: any) => boolean;
};
arrHas: <TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string, filterValue: Array<unknown>) => boolean;
arrIncludesSome: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string, filterValue: Array<unknown>) => boolean) & {
autoRemove: (val: any) => boolean;
};
between: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string, filterValues: [unknown, unknown]) => boolean) & {
autoRemove: (val: any) => boolean;
};
betweenInclusive: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string, filterValues: [unknown, unknown]) => boolean) & {
autoRemove: (val: any) => boolean;
};
equals: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
autoRemove: (val: any) => boolean;
};
equalsString: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
autoRemove: (val: any) => boolean;
};
inNumberRange: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string, filterValue: [number, number]) => boolean) & {
resolveFilterValue: (val: [any, any]) => readonly [number, number];
autoRemove: (val: any) => boolean;
};
includesString: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
autoRemove: (val: any) => boolean;
};
includesStringSensitive: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
autoRemove: (val: any) => boolean;
};
weakEquals: (<TFeatures extends import("@tanstack/table-core").TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string, filterValue: unknown) => boolean) & {
autoRemove: (val: any) => boolean;
};
};
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;