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.
107 lines (106 loc) • 9.69 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: <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, 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;