UNPKG

@ithinkdt/naive

Version:

iThinkDT Naive UI

49 lines (42 loc) 1.83 kB
/* eslint-disable @typescript-eslint/no-explicit-any */ import { DataTableProps, DataTableInst } from 'ithinkdt-ui' import { PublicProps, GenericCtx, GenericReturn, GenericExposed } from '@ithinkdt/common' import { UnwrapRefTableColumn, SortParam } from '@ithinkdt/core' declare interface _TableProps<T extends {}, K extends 'id' | keyof T | ((row: T) => string | number)> extends Omit<DataTableProps, 'columns' | 'rowKey' | 'data'> { columns?: UnwrapRefTableColumn<T>[] data?: T[] rowKey?: K sorts?: SortParam<T> optimization?: boolean onSort?: (v: SortParam<T>) => any onSelect?: ( v: | { key: K extends keyof T ? T[K] & (string | number) : K extends (...p: any[]) => infer K1 ? K1 : 'id' selected: boolean } | boolean, ) => any } declare interface _TableEmits<T extends {}, K extends 'id' | keyof T | ((row: T) => string | number)> { (e: 'sort', v: SortParam<T>): any ( e: 'select', v: | { key: K extends keyof T ? T[K] & (string | number) : K extends (...p: any[]) => infer K1 ? K1 : 'id' selected: boolean } | boolean, ): any } declare interface _TableInst extends DataTableInst { scrollToRow(index: number): void } export declare const DtTable: <T extends {}, K extends 'id' | keyof T | ((row: T) => string | number) = 'id'>( props: _TableProps<T, K> & PublicProps, ctx?: Pick<GenericCtx<_TableProps<T, K>, _TableEmits<T, K>, {}, _TableInst>, 'attrs' | 'emit' | 'slots'>, expose?: (exposed?: GenericExposed<_TableInst>) => void, setup?: GenericCtx<_TableProps<T, K>, _TableEmits<T, K>, {}, _TableInst>, ) => GenericReturn<_TableProps<T, K>, _TableEmits<T, K>, {}, _TableInst>