UNPKG

vexip-ui

Version:

A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good

211 lines (210 loc) 12.1 kB
import { ExtractPropTypes, PropType } from 'vue'; import { ClassType, ConfigurableProps, StyleType } from '@vexip-ui/config'; import { Accessor, ColumnCellSpanFn, ColumnRenderFn, ColumnSummaryRenderFn, Data, DropType, ExpandRenderFn, FilterRenderFn, HeadRenderFn, SummaryCellSpanFn, SummaryRenderFn, TableCellPayload, TableCellPropFn, TableCellSpanFn, TableColumnRawOptions, TableFilterProfile, TableFootPayload, TableFootPropFn, TableHeadPayload, TableHeadPropFn, TableKeyConfig, TableRowPayload, TableRowPropFn, TableSlots, TableSorterOptions, TableSorterProfile, TableSummaryOptions } from './symbol'; export declare const tableProps: { inherit: PropType<boolean>; locale: PropType<Partial<{ empty: string; filterConfirm: string; filterReset: string; filterAll: string; }>>; columns: PropType<TableColumnRawOptions[]>; summaries: PropType<TableSummaryOptions<any, any>[]>; data: PropType<Data[]>; width: PropType<string | number>; height: PropType<number>; minHeight: PropType<number>; rowClass: PropType<string | Record<string, any> | (string | Record<string, any>)[] | TableRowPropFn<ClassType>>; rowStyle: PropType<string | import('vue').CSSProperties | (string | import('vue').CSSProperties)[] | TableRowPropFn<StyleType>>; rowAttrs: PropType<Record<string, any> | TableRowPropFn<Record<string, any>>>; stripe: PropType<boolean>; border: PropType<boolean>; highlight: PropType<boolean>; useXBar: PropType<boolean>; useYBar: PropType<boolean>; barFade: PropType<number>; rowDraggable: PropType<boolean>; rowHeight: PropType<number>; rowMinHeight: PropType<number>; virtual: PropType<boolean>; bufferCount: PropType<number>; scrollClass: PropType<{ horizontal?: ClassType; major?: ClassType; left?: ClassType; right?: ClassType; }>; expandRenderer: PropType<ExpandRenderFn>; currentPage: PropType<number>; pageSize: PropType<number>; transparent: PropType<boolean>; tooltipTheme: PropType<"light" | "dark">; tooltipWidth: PropType<string | number>; singleSorter: PropType<boolean>; singleFilter: PropType<boolean>; cellClass: PropType<string | Record<string, any> | (string | Record<string, any>)[] | TableCellPropFn<any, ClassType>>; cellStyle: PropType<string | import('vue').CSSProperties | (string | import('vue').CSSProperties)[] | TableCellPropFn<any, StyleType>>; cellAttrs: PropType<Record<string, any> | TableCellPropFn<any, Record<string, any>>>; headClass: PropType<string | Record<string, any> | (string | Record<string, any>)[] | TableHeadPropFn<ClassType>>; headStyle: PropType<string | import('vue').CSSProperties | (string | import('vue').CSSProperties)[] | TableHeadPropFn<StyleType>>; headAttrs: PropType<Record<string, any> | TableHeadPropFn<Record<string, any>>>; footClass: PropType<string | Record<string, any> | (string | Record<string, any>)[] | TableFootPropFn<ClassType>>; footStyle: PropType<string | import('vue').CSSProperties | (string | import('vue').CSSProperties)[] | TableFootPropFn<StyleType>>; footAttrs: PropType<Record<string, any> | TableFootPropFn<Record<string, any>>>; customSorter: PropType<boolean>; customFilter: PropType<boolean>; keyConfig: PropType<TableKeyConfig>; disabledTree: PropType<boolean>; rowIndent: PropType<string | number>; noCascaded: PropType<boolean>; colResizable: PropType<boolean | "responsive" | "lazy">; cellSpan: PropType<TableCellSpanFn>; sidePadding: PropType<number | number[]>; icons: PropType<Partial<Record<import('./symbol').TableIconName, Record<string, any> | (() => any)>>>; borderWidth: PropType<number>; dataFilter: PropType<(data: Data) => boolean>; noTransition: PropType<boolean>; ellipsis: PropType<boolean>; slots: PropType<TableSlots>; onScroll: PropType<((payload: { type: "horizontal" | "vertical"; client: number; percent: number; }) => void) | ((payload: { type: "horizontal" | "vertical"; client: number; percent: number; }) => void)[]>; onRowEnter: PropType<((payload: TableRowPayload) => void) | ((payload: TableRowPayload) => void)[]>; onRowLeave: PropType<((payload: TableRowPayload) => void) | ((payload: TableRowPayload) => void)[]>; onRowClick: PropType<((payload: TableRowPayload) => void) | ((payload: TableRowPayload) => void)[]>; onRowDblclick: PropType<((payload: TableRowPayload) => void) | ((payload: TableRowPayload) => void)[]>; onRowContextmenu: PropType<((payload: TableRowPayload) => void) | ((payload: TableRowPayload) => void)[]>; onRowCheck: PropType<((payload: TableRowPayload) => void) | ((payload: TableRowPayload) => void)[]>; onRowCheckAll: PropType<((checked: boolean, partial: boolean) => void) | ((checked: boolean, partial: boolean) => void)[]>; onRowExpand: PropType<((payload: TableRowPayload) => void) | ((payload: TableRowPayload) => void)[]>; onRowTreeExpand: PropType<((payload: TableRowPayload) => void) | ((payload: TableRowPayload) => void)[]>; onRowDragStart: PropType<((row: Data, event: DragEvent) => void) | ((row: Data, event: DragEvent) => void)[]>; onRowDragOver: PropType<((row: Data, event: DragEvent) => void) | ((row: Data, event: DragEvent) => void)[]>; onRowDrop: PropType<((row: Data, type: DropType, event: DragEvent) => void) | ((row: Data, type: DropType, event: DragEvent) => void)[]>; onRowDragEnd: PropType<((row: Data, allRows: Data[], event: DragEvent) => void) | ((row: Data, allRows: Data[], event: DragEvent) => void)[]>; onRowFilter: PropType<((profiles: TableFilterProfile[], filteredRow: Data[]) => void) | ((profiles: TableFilterProfile[], filteredRow: Data[]) => void)[]>; onRowSort: PropType<((profiles: TableSorterProfile[], sortedRow: Data[]) => void) | ((profiles: TableSorterProfile[], sortedRow: Data[]) => void)[]>; onCellEnter: PropType<((payload: TableCellPayload) => void) | ((payload: TableCellPayload) => void)[]>; onCellLeave: PropType<((payload: TableCellPayload) => void) | ((payload: TableCellPayload) => void)[]>; onCellClick: PropType<((payload: TableCellPayload) => void) | ((payload: TableCellPayload) => void)[]>; onCellDblclick: PropType<((payload: TableCellPayload) => void) | ((payload: TableCellPayload) => void)[]>; onCellContextmenu: PropType<((payload: TableCellPayload) => void) | ((payload: TableCellPayload) => void)[]>; onHeadEnter: PropType<((payload: TableHeadPayload) => void) | ((payload: TableHeadPayload) => void)[]>; onHeadLeave: PropType<((payload: TableHeadPayload) => void) | ((payload: TableHeadPayload) => void)[]>; onHeadClick: PropType<((payload: TableHeadPayload) => void) | ((payload: TableHeadPayload) => void)[]>; onHeadDblclick: PropType<((payload: TableHeadPayload) => void) | ((payload: TableHeadPayload) => void)[]>; onHeadContextmenu: PropType<((payload: TableHeadPayload) => void) | ((payload: TableHeadPayload) => void)[]>; onColResizeStart: PropType<((payload: TableHeadPayload) => void) | ((payload: TableHeadPayload) => void)[]>; onColResizeMove: PropType<((payload: TableHeadPayload) => void) | ((payload: TableHeadPayload) => void)[]>; onColResizeEnd: PropType<((payload: TableHeadPayload) => void) | ((payload: TableHeadPayload) => void)[]>; onFootEnter: PropType<((payload: TableFootPayload) => void) | ((payload: TableFootPayload) => void)[]>; onFootLeave: PropType<((payload: TableFootPayload) => void) | ((payload: TableFootPayload) => void)[]>; onFootClick: PropType<((payload: TableFootPayload) => void) | ((payload: TableFootPayload) => void)[]>; onFootDblclick: PropType<((payload: TableFootPayload) => void) | ((payload: TableFootPayload) => void)[]>; onFootContextmenu: PropType<((payload: TableFootPayload) => void) | ((payload: TableFootPayload) => void)[]>; }; export type TableProps = ExtractPropTypes<typeof tableProps>; export type TableCProps = ConfigurableProps<TableProps, 'columns' | 'data' | 'currentPage' | 'summaries'>; export declare const tableColumnProps: { inherit: PropType<boolean>; idKey: PropType<string | number>; name: PropType<string>; accessor: PropType<Accessor>; fixed: PropType<boolean | "right" | "left">; class: PropType<string | Record<string, any> | (string | Record<string, any>)[]>; style: PropType<string | import('vue').CSSProperties | (string | import('vue').CSSProperties)[]>; attrs: PropType<any>; type: PropType<"drag" | "order" | "expand" | "selection">; width: PropType<number | `${number}%`>; minWidth: PropType<number>; maxWidth: PropType<number>; filter: PropType<{ able?: boolean; custom?: false; options?: (string | { value: any; label?: string; active?: boolean; })[] | undefined; multiple?: false; active?: any; method?: ((active: any, data: any) => boolean) | null | undefined; meta?: any; } | { able?: boolean; custom?: false; options?: (string | { value: any; label?: string; active?: boolean; })[] | undefined; multiple: true; active?: any[] | null | undefined; method?: ((active: any[], data: any) => boolean) | null | undefined; meta?: any; } | { able?: boolean; custom: true; options?: never; multiple?: false; active?: any; method?: ((active: any, data: any) => boolean) | null | undefined; meta?: any; }>; sorter: PropType<boolean | TableSorterOptions<any>>; renderer: PropType<ColumnRenderFn>; headRenderer: PropType<HeadRenderFn>; filterRenderer: PropType<FilterRenderFn>; order: PropType<number>; ellipsis: PropType<boolean>; checkboxSize: PropType<"default" | "small" | "large">; selectionSize: PropType<"default" | "small" | "large">; disableRow: PropType<(data: Data) => boolean>; truthIndex: PropType<boolean>; orderLabel: PropType<(index: number) => string | number>; meta: PropType<any>; textAlign: PropType<"center" | "right" | "left">; headSpan: PropType<number>; cellSpan: PropType<ColumnCellSpanFn>; noSummary: PropType<boolean>; summaryRenderer: PropType<ColumnSummaryRenderFn>; indented: PropType<boolean>; formatter: PropType<(value: any) => unknown>; singleSelect: PropType<boolean>; }; export type TableColumnProps = ExtractPropTypes<typeof tableColumnProps>; export type TableColumnCProps = ConfigurableProps<TableColumnProps, 'idKey' | 'name' | 'accessor' | 'fixed' | 'type' | 'renderer' | 'headRenderer' | 'order' | 'headSpan' | 'summaryRenderer'>; export declare const tableColumnGroupProps: { inherit: PropType<boolean>; name: PropType<string>; fixed: PropType<boolean | "right" | "left">; order: PropType<number>; ellipsis: PropType<boolean>; textAlign: PropType<"center" | "right" | "left">; renderer: PropType<() => any>; children: PropType<TableColumnRawOptions[]>; }; export type TableColumnGroupProps = ExtractPropTypes<typeof tableColumnGroupProps>; export type TableColumnGroupCProps = ConfigurableProps<TableColumnProps, 'name' | 'fixed' | 'order'>; export declare const tableSummaryProps: { inherit: PropType<boolean>; idKey: PropType<string | number>; name: PropType<string>; class: PropType<string | Record<string, any> | (string | Record<string, any>)[]>; style: PropType<string | import('vue').CSSProperties | (string | import('vue').CSSProperties)[]>; attrs: PropType<any>; cellSpan: PropType<SummaryCellSpanFn>; order: PropType<number>; above: PropType<boolean>; meta: PropType<any>; renderer: PropType<SummaryRenderFn>; }; export type TableSummaryProps = ExtractPropTypes<typeof tableSummaryProps>; export type TableSummaryCProps = ConfigurableProps<TableSummaryProps, 'idKey' | 'name' | 'renderer' | 'colSpan' | 'order' | 'above'>;