UNPKG

element-plus

Version:

A Component Library for Vue 3

127 lines (126 loc) 4.24 kB
import type { ComponentInternalInstance, PropType, Ref, VNode } from 'vue'; import type { Table } from '../table/defaults'; declare type CI<T> = { column: TableColumnCtx<T>; $index: number; }; declare type Filters = { text: string; value: string; }[]; declare type FilterMethods<T> = (value: any, row: T, column: TableColumnCtx<T>) => void; declare type ValueOf<T> = T[keyof T]; interface TableColumnCtx<T> { id: string; realWidth: number; type: string; label: string; className: string; labelClassName: string; property: string; prop: string; width: string | number; minWidth: string | number; renderHeader: (data: CI<T>) => VNode; sortable: boolean | string; sortMethod: (a: T, b: T) => number; sortBy: string | ((row: T, index: number) => string) | string[]; resizable: boolean; columnKey: string; rawColumnKey: string; align: string; headerAlign: string; showTooltipWhenOverflow: boolean; showOverflowTooltip: boolean; fixed: boolean | string; formatter: (row: T, column: TableColumnCtx<T>, cellValue: any, index: number) => VNode | string; selectable: (row: T, index: number) => boolean; reserveSelection: boolean; filterMethod: FilterMethods<T>; filteredValue: string[]; filters: Filters; filterPlacement: string; filterMultiple: boolean; index: number | ((index: number) => number); sortOrders: ('ascending' | 'descending' | null)[]; renderCell: (data: any) => void; colSpan: number; rowSpan: number; children: TableColumnCtx<T>[]; level: number; filterable: boolean | FilterMethods<T> | Filters; order: string; isColumnGroup: boolean; isSubColumn: boolean; columns: TableColumnCtx<T>[]; getColumnIndex: () => number; no: number; filterOpened?: boolean; } interface TableColumn<T> extends ComponentInternalInstance { vnode: { vParent: TableColumn<T> | Table<T>; } & VNode; vParent: TableColumn<T> | Table<T>; columnId: string; columnConfig: Ref<Partial<TableColumnCtx<T>>>; } export type { Filters, FilterMethods, TableColumnCtx, TableColumn, ValueOf }; declare const _default: { type: { type: StringConstructor; default: string; }; label: StringConstructor; className: StringConstructor; labelClassName: StringConstructor; property: StringConstructor; prop: StringConstructor; width: { type: (StringConstructor | NumberConstructor)[]; default: string; }; minWidth: { type: (StringConstructor | NumberConstructor)[]; default: string; }; renderHeader: PropType<(data: CI<any>) => VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>>; sortable: { type: (BooleanConstructor | StringConstructor)[]; default: boolean; }; sortMethod: PropType<(a: any, b: any) => number>; sortBy: PropType<string | string[] | ((row: any, index: number) => string)>; resizable: { type: BooleanConstructor; default: boolean; }; columnKey: StringConstructor; align: StringConstructor; headerAlign: StringConstructor; showTooltipWhenOverflow: BooleanConstructor; showOverflowTooltip: BooleanConstructor; fixed: (BooleanConstructor | StringConstructor)[]; formatter: PropType<(row: any, column: TableColumnCtx<any>, cellValue: any, index: number) => string | VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>>; selectable: PropType<(row: any, index: number) => boolean>; reserveSelection: BooleanConstructor; filterMethod: PropType<FilterMethods<any>>; filteredValue: PropType<string[]>; filters: PropType<Filters>; filterPlacement: StringConstructor; filterMultiple: { type: BooleanConstructor; default: boolean; }; index: PropType<number | ((index: number) => number)>; sortOrders: { type: PropType<("ascending" | "descending" | null)[]>; default: () => (string | null)[]; validator: (val: TableColumnCtx<unknown>['sortOrders']) => boolean; }; }; export default _default;