UNPKG

@jiaozhiye/qm-design-vue

Version:

A Component Library for Vue3.0

55 lines (54 loc) 2.33 kB
import { Ref, ComputedRef, CSSProperties } from 'vue'; import { getRowKeyType } from '../table/types'; import type { IColumn, IMergeCellItem, IRecord, IRowKey, ITableProps } from '../table/types'; import type { ITableState } from './useTableRef'; import type { ITableRef } from './useTableVar'; import type { ComponentSize } from '../../../_utils/types'; type IExtra = { getRowKey: getRowKeyType; tableVar: ITableRef; topElementRef: Ref<HTMLDivElement | undefined>; tableElementRef: Ref<HTMLDivElement | undefined>; $size: ComputedRef<ComponentSize>; tableColumns: ComputedRef<IColumn[]>; flattenColumns: ComputedRef<IColumn[]>; leftFixedColumns: ComputedRef<IColumn[]>; derivedMergeCells: ComputedRef<IMergeCellItem[]>; layout: Ref<ITableState['layout']>; scrollX: Ref<boolean>; scrollY: Ref<boolean>; showFooter: ComputedRef<boolean>; showPagination: ComputedRef<boolean>; isFullScreen: Ref<boolean>; setLayout: (layout: ITableState['layout']) => void; setScrollX: (scrollX: boolean) => void; setScrollY: (scrollY: boolean) => void; setElementStore: (key: string, value: HTMLElement) => void; setScrollXStore: (option: ITableRef['scrollXStore']) => void; setScrollYStore: (option: ITableRef['scrollYStore']) => void; setShouldToTop: (value: boolean) => void; }; declare const useTableLayout: <T extends ITableProps>(props: T, extra: IExtra) => { createElementStore: () => void; tableStyles: ComputedRef<CSSProperties>; getSpan: (row: IRecord, column: IColumn, rowIndex: number, columnIndex: number, tableData: IRecord[]) => { rowSpan: number; colSpan: number; }; getStickyLeft: (dataIndex: string) => number; getStickyRight: (dataIndex: string, part?: string) => number; scrollXToColumn: (dataIndex: string, index?: number) => void; scrollYToRecord: (rowKey: IRowKey, index?: number) => void; rowInViewport: (index: number) => boolean; calcTableHeight: () => void; resetTableScroll: () => void; computeVirtualX: (sl: number, tableWidth: number) => { toVisibleIndex: number; visibleSize: number; }; computeVirtualY: (st: number, rowHeight: number) => { toVisibleIndex: number; }; doLayout: () => void; }; export default useTableLayout;