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.
211 lines (210 loc) • 16.5 kB
TypeScript
import type { Header, HeaderGroup, RowData } from '@tanstack/svelte-table';
import type { DataTableInstance } from './data-table-utils';
import type { DataTableFeatures } from './features';
export type DataTableViewState<T extends RowData> = ReturnType<typeof createTableViewState<T>>;
export type DataTableHeaderSection = 'left' | 'center' | 'right';
/**
* Shared derived state for the standard and virtualized table roots.
*
* Writable slice atoms are rune-backed, so reading them inside a $derived
* registers the dependency. Derived table APIs (getRowModel, header groups,
* getVisibleLeafColumns, …) are not reliably tracked by the beta adapter, so
* each derived below first reads the slices its result depends on.
*/
export declare function createTableViewState<T extends RowData>(getTable: () => DataTableInstance<T>): {
readonly table: DataTableInstance<T>;
readonly columnPinning: import("@tanstack/table-core").ColumnPinningState;
readonly columnResizing: import("@tanstack/table-core").columnResizingState;
readonly columnSizing: import("@tanstack/table-core").ColumnSizingState;
readonly columnVisibility: import("@tanstack/table-core").ColumnVisibilityState;
readonly rowSelection: import("@tanstack/table-core").RowSelectionState;
readonly sorting: import("@tanstack/table-core").SortingState;
readonly rowModel: import("@tanstack/table-core").RowModel<{
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: import("./types").DataTableColumnMeta;
}, T>;
readonly headerGroups: HeaderGroup<{
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: import("./types").DataTableColumnMeta;
}, T>[];
getHeaderSection(header: Header<DataTableFeatures, T, unknown>): DataTableHeaderSection | undefined;
readonly visibleLeafColumns: import("@tanstack/table-core").Column<{
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: import("./types").DataTableColumnMeta;
}, T, unknown>[];
readonly growColumn: import("@tanstack/table-core").Column<{
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: import("./types").DataTableColumnMeta;
}, T, unknown> | undefined;
readonly hasGrowColumn: boolean;
readonly isRowSelectionEnabled: boolean;
readonly isMultiRowSelectionEnabled: boolean;
readonly allRowsSelectionState: boolean | "indeterminate";
readonly selectedRowCount: number;
readonly isColumnResizing: boolean;
readonly hasFooter: boolean;
};