UNPKG

@oiij/naive-ui

Version:

Some Composable Functions And Components for Vue 3

59 lines (58 loc) 3.2 kB
import { DataObject, DataRequestFields, UseDataRequestReturns } from "../../composables/useDataRequest.js"; import { RemoteRequestEmits, RemoteRequestProps } from "../remote-request/index.js"; import { SearchInputProps } from "../search-input/index.js"; import { _default } from "./DataTablePlus.vue.js"; import { CSSProperties, Ref, ShallowRef } from "vue"; import { ButtonProps, DataTableColumns, DataTableFilterState, DataTableInst, DataTableProps, DataTableSortState, PaginationProps } from "naive-ui"; import { ComponentExposed } from "vue-component-type-helpers"; import { FilterState, TableBaseColumn } from "naive-ui/es/data-table/src/interface"; //#region src/components/data-table-plus/index.d.ts type ClassStyle = { class?: string; style?: CSSProperties | string; }; type DataTablePlusExpose<P extends DataObject = DataObject, D extends DataObject = DataObject, R extends DataObject = DataObject> = UseDataRequestReturns<P, D, R> & { filters: Ref<DataTableFilterState | undefined>; sorters: Ref<Record<string, DataTableSortState> | undefined>; dataTableRef: Readonly<ShallowRef<DataTableInst | null>>; }; type DataTablePlusFields = DataRequestFields & { filter?: string; sorter?: string; rowKey?: string; search?: string; children?: string; }; type DataTablePlusProps<P extends DataObject = DataObject, D extends DataObject = DataObject, R extends DataObject = DataObject> = RemoteRequestProps<P, D> & { title?: string; scrollTop?: number | boolean | { top?: number; buttonProps?: ButtonProps & ClassStyle; }; columns?: DataTableColumns<R>; fields?: DataTablePlusFields; search?: SearchInputProps & ClassStyle | boolean; pagination?: Omit<PaginationProps, 'page' | 'pageSize' | 'itemCount'> & ClassStyle | boolean; columnsFilterOptions?: (filters: DataTableFilterState) => Record<string, any>; columnsSorterOptions?: (sorters: Record<string, DataTableSortState>) => Record<string, any>; dataTableProps?: DataTableProps & ClassStyle; }; type DataTablePlusEmits<P extends DataObject = DataObject, D extends DataObject = DataObject, R extends DataObject = DataObject> = RemoteRequestEmits<P, D> & { (e: 'clickRow', row: R, index: number, event: MouseEvent, currentData: R[]): void; (e: 'contextMenuRow', row: R, index: number, event: MouseEvent, currentData: R[]): void; (e: 'load', row: R): Promise<void>; (e: 'scroll', ev: Event): void; (e: 'scrollBottom', ev: Event): void; (e: 'update:checkedRowKeys', keys: (string | number)[], rows: (R | undefined)[], meta: { row: R | undefined; action: 'check' | 'uncheck' | 'checkAll' | 'uncheckAll'; }, currentData: R[]): void; (e: 'update:expandedRowKeys', keys: (string | number)[], currentData: R[]): void; (e: 'update:filters', filterState: FilterState, sourceColumn: TableBaseColumn): void; (e: 'update:sorter', options: DataTableSortState | DataTableSortState[] | null): void; (e: 'update:page', page: number): void; (e: 'update:pageSize', pageSize: number): void; }; type DataTablePlusInst = ComponentExposed<typeof _default>; //#endregion export { ClassStyle, DataTablePlusEmits, DataTablePlusExpose, DataTablePlusFields, DataTablePlusInst, DataTablePlusProps };