vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
117 lines (116 loc) • 6.6 kB
TypeScript
import { ClassType, LocaleConfig, StyleType } from '@vexip-ui/config';
import { TooltipTheme } from '../tooltip';
import { ColumnGroupWithKey, ColumnWithKey, Data, ExpandRenderFn, Key, ParsedFilterOptions, ParsedTableSorterOptions, StoreOptions, StoreState, TableCellPropFn, TableCellSpanFn, TableColResizeType, TableColumnRawOptions, TableExpandColumn, TableFootPropFn, TableHeadPropFn, TableKeyConfig, TableRowPropFn, TableRowState, TableSummaryData, TableSummaryOptions } from './symbol';
export declare function useStore(options: StoreOptions): Readonly<{
state: Readonly<StoreState>;
getters: Readonly<{
filteredData: TableRowState[];
sortedData: TableRowState[];
processedData: TableRowState[];
visibleKeys: Set<Key>;
disableCheckRows: Set<Key>;
disableExpandRows: Set<Key>;
disableDragRows: Set<Key>;
usingTree: boolean;
hasDragColumn: boolean;
rowDragging: boolean;
totalWidths: number[];
normalWidths: number[];
leftFixedWidths: number[];
rightFixedWidths: number[];
expandColumn: TableExpandColumn<any, string | number> | undefined;
summaryData: Map<Key, TableSummaryData>;
topFixedHeights: number[];
bottomFixedHeights: number[];
indentedColumn: ColumnWithKey<any, string | number> | undefined;
hasFixedColumn: boolean;
}>;
mutations: Readonly<{
setColumns: (columns: TableColumnRawOptions[]) => Promise<void>;
setSummaries: (summaries: TableSummaryOptions<any, string | number>[]) => Promise<void>;
setData: (data: any[]) => Promise<void>;
updateTotalHeight: () => Promise<void>;
isGroupColumn: (column: any) => column is ColumnGroupWithKey;
buildSummaryKey: (key: Key) => string | symbol;
setColumnProp: (key: Key, prop: string, value: any) => void;
setSummaryProp: (key: Key, prop: string, value: any) => void;
setDataKey: (field: string) => void;
setCurrentPage: (currentPage: number) => void;
setPageSize: (pageSize: number) => void;
setRowClass: (rowClass: ClassType | TableRowPropFn<ClassType>) => void;
setRowStyle: (rowStyle: StyleType | TableRowPropFn<StyleType>) => void;
setRowAttrs: (rowAttrs: Record<string, any> | TableRowPropFn<Record<string, any>>) => void;
setCellClass: (cellClass: ClassType | TableCellPropFn<ClassType>) => void;
setCellStyle: (cellStyle: StyleType | TableCellPropFn<StyleType>) => void;
setCellAttrs: (cellAttrs: Record<string, any> | TableCellPropFn<Record<string, any>>) => void;
setHeadClass: (headClass: ClassType | TableHeadPropFn<ClassType>) => void;
setHeadStyle: (headStyle: StyleType | TableHeadPropFn<StyleType>) => void;
setHeadAttrs: (headAttrs: Record<string, any> | TableHeadPropFn<Record<string, any>>) => void;
setFootClass: (footClass: ClassType | TableFootPropFn<ClassType>) => void;
setFootStyle: (footStyle: StyleType | TableFootPropFn<StyleType>) => void;
setFootAttrs: (footAttrs: Record<string, any> | TableFootPropFn<Record<string, any>>) => void;
setTableWidth: (width: number) => void;
setRowHeight: (height: number) => void;
setRowMinHeight: (height: number) => void;
setCellHeight: (rowKey: Key, columnKey: Key, height: number) => void;
setVirtual: (virtual: boolean) => void;
setRowDraggable: (draggable: boolean) => void;
setBodyYScroll: (scroll: number) => void;
setBodyXScroll: (scroll: number) => void;
setBorder: (able: boolean) => void;
setStripe: (able: boolean) => void;
setHighlight: (able: boolean) => void;
setRowProp: (key: Key, prop: Exclude<keyof TableRowState, "key">, value: any) => void;
setLocale: (locale: LocaleConfig["table"]) => void;
setTooltipTheme: (theme: TooltipTheme) => void;
setTooltipWidth: (theme: number | string) => void;
setSingleSorter: (able: boolean) => void;
setSingleFilter: (able: boolean) => void;
setDragging: (dragging: boolean) => void;
setKeyConfig: (keyConfig: Required<TableKeyConfig>) => void;
setDisabledTree: (disabled: boolean) => void;
setNoCascaded: (noCascaded: boolean) => void;
setColResizable: (resizable: boolean | TableColResizeType) => void;
setCustomSorter: (able: boolean) => void;
setCustomFilter: (able: boolean) => void;
setColumnResizing: (resizing: boolean) => void;
setResizeLeft: (left: number) => void;
setExpandRenderer: (renderer: ExpandRenderFn | null) => void;
setCellSpan: (spanFn: TableCellSpanFn | null) => void;
setSidePadding: (padding: number | number[]) => void;
setBorderWidth: (width: number) => void;
setDataFilter: (filter: (data: Data) => boolean) => void;
setEllipsis: (ellipsis: boolean) => void;
setLocked: (locked: boolean) => void;
setBarScrolling: (scrolling: boolean) => void;
setHoveredRowKey: (key: Key | null) => void;
handleSort: (key: Key, type: ParsedTableSorterOptions["type"]) => void;
clearSort: () => void;
handleFilter: (key: Key, active: ParsedFilterOptions["active"]) => void;
clearFilter: () => void;
toggleFilterItemActive: (options: {
key: Key;
value: number | string | null;
active?: boolean;
disableOthers?: boolean;
}) => void;
refreshRowIndex: () => void;
handleCheck: (key: Key, checked: boolean, single?: boolean) => void;
handleCheckAll: () => void;
clearCheckAll: (includeDisabled?: boolean) => void;
setRenderRows: (start: number, end: number, force?: boolean) => void;
handleExpand: (key: Key, expanded: boolean) => void;
handleDrag: (key: Key, dragging: boolean) => void;
collectUnderRows: (row: TableRowState, result?: TableRowState[]) => TableRowState[];
setTreeExpanded: (key: Key, expanded: boolean) => void;
getParentRow: (key: Key) => TableRowState | null;
handleColumnResize: (keys: Key[], newWidth: number) => void;
getCurrentData: () => any[];
createMinRowState: (key: Key) => TableRowState;
flatTreeRows: () => void;
refreshRowDepth: () => void;
triggerHeightChange: () => void;
queryRow: (keyOrData: Key | Record<any, any>) => TableRowState | undefined;
}>;
}>;
export type TableStore = ReturnType<typeof useStore>;