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.
90 lines (89 loc) • 7.28 kB
TypeScript
import type { Column, ColumnPinningState, ColumnSizingState, ColumnVisibilityState, Header, Row, RowData, SvelteTable, TableState } from '@tanstack/svelte-table';
import type { DataTableColumnMeta } from './types';
import type { DataTableFeatures } from './features';
export type DataTableInstance<T extends RowData> = SvelteTable<DataTableFeatures, T>;
export type DataTableTrackedState = {
columnPinning: ColumnPinningState;
columnResizing: TableState<DataTableFeatures>['columnResizing'];
columnSizing: ColumnSizingState;
columnVisibility: ColumnVisibilityState;
};
export declare function alignClass(align: DataTableColumnMeta['align']): "text-right" | "text-center" | "text-left";
export declare function justifyClass(align: DataTableColumnMeta['align']): "justify-end" | "justify-center" | "justify-start";
export declare function sortButtonDirectionClass(align: DataTableColumnMeta['align']): "flex-row-reverse" | "flex-row";
export declare function columnSizeStyle(size: number): string;
export declare function selectionColumnSizeStyle(): string;
export declare function virtualColumnSizeStyle(size: number): string;
export declare function virtualSelectionColumnSizeStyle(): string;
export declare function tableSizeStyle<T extends RowData>(table: DataTableInstance<T>, isRowSelectionEnabled: boolean, state: DataTableTrackedState): string;
export declare function virtualGrowColumnSizeStyle(): string;
export declare function virtualGroupWithGrowSizeStyle(fixedPortion: number): string;
export declare function resizeHandleStyle<T extends RowData>(table: DataTableInstance<T>, header: Header<DataTableFeatures, T, unknown>, columnResizing: TableState<DataTableFeatures>['columnResizing']): string | undefined;
export declare function resizeHandleClass(headerIndex: number, headerCount: number): import("tailwind-variants").CnReturn;
export declare function getHeaderSortLabel(sortDirection: false | 'asc' | 'desc'): "Sorted ascending" | "Sorted descending" | "Not sorted";
export declare function getHeaderAriaSort(sortDirection: false | 'asc' | 'desc'): "none" | "ascending" | "descending";
export declare function getRowCells<T extends RowData>(row: Row<DataTableFeatures, T>, state: DataTableTrackedState): import("@tanstack/table-core").Cell_Core<{
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, unknown>[];
export declare function getBooleanCellValue(value: unknown): boolean | undefined;
export declare function getPinningStyle<T extends RowData>(column: Column<DataTableFeatures, T, unknown>, table: DataTableInstance<T>, state: DataTableTrackedState, isHeader?: boolean, isRowSelectionEnabled?: boolean): string | undefined;
/**
* Sticky positioning for a group header whose leaf columns are pinned.
*
* A split fragment's subHeaders contain only its own section's children, so the
* fragment over the pinned columns sticks at the first/last pinned leaf's offset
* while the fragment over the scrolling columns gets no style.
*/
export declare function getGroupPinningStyle<T extends RowData>(header: Header<DataTableFeatures, T, unknown>, section: 'left' | 'center' | 'right' | undefined, state: DataTableTrackedState, isRowSelectionEnabled?: boolean): string | undefined;
export declare function getUrlCellValue(value: unknown): string | undefined;
export declare function openUrlCell(value: string): void;
export declare function getPhoneCellValue(value: unknown): string | undefined;
export declare function openPhoneCell(value: string): void;
export declare function getColumnMeta(columnDef: {
meta?: DataTableColumnMeta;
}): DataTableColumnMeta | undefined;
export declare function joinStyles(...styles: Array<string | undefined>): string;
export declare const TYPE_NUMBER_FORMAT_DEFAULTS: Partial<Record<string, Intl.NumberFormatOptions>>;
export declare function formatColumnFooter(meta: DataTableColumnMeta, values: unknown[], locale: string): string | undefined;