UNPKG

yanzhen-design-vue

Version:

109 lines (108 loc) 3.95 kB
import { VxeTableDefines } from 'vxe-pc-ui/types/components/table'; import { Ref } from 'vue'; import { VxeTableInstance } from 'vxe-pc-ui'; import { ResizeObserverEntry } from '@vueuse/core'; import { ColRecord, RowRecord } from '../utils'; export type ScrollParams = { [K in keyof VxeTableDefines.ScrollParams]: VxeTableDefines.ScrollParams[K]; }; export interface ScrollDOMRect { type: string; scrollTop: number; scrollLeft: number; scrollHeight: number; scrollWidth: number; bodyWidth: number; bodyHeight: number; isX: boolean; isY: boolean; virtualX?: boolean; virtualY?: boolean; params: any[]; } export interface TableWrapperDOMRect { target?: Element; parent?: Element; tbody?: Element; parentRect?: DOMRect; contentRect?: DOMRect; bodyWidth: number; bodyHeight: number; parentHeight: number; parentWidth: number; scrollWidth: number; scrollHeight: number; scrollLeft: number; scrollTop: number; } export interface TableWrapperOptions { scroll?: { debounce?: number; }; onTrResizeObserver?: (entries: ReadonlyArray<ResizeObserverEntry>) => void; onResizeBodyRowRecord?: (record: RowRecord) => void; onResizeBodyColRecord?: (record: ColRecord) => void; onTableResizeObserver?: (rect: TableWrapperDOMRect) => void; onScroll?: (rect: TableWrapperDOMRect, scroll: any) => void; } export declare function useVxeTableObserver(tableRef: Ref<VxeTableInstance | undefined>, options?: TableWrapperOptions): { observer: { mutation: { isSupported: import('vue').ComputedRef<boolean>; stop: () => void; takeRecords: () => MutationRecord[] | undefined; }; resize: { key: symbol; isSupported: boolean; add: { (target: Element, callback?: import('@yanzhen-libs/utils-vue/src/observer/types').TargetObserver["observer"], options?: import('@vueuse/core').UseResizeObserverOptions): import('@yanzhen-libs/utils-vue/src/observer/types').TargetObserver | null | undefined; (target: Element[], callback?: import('@yanzhen-libs/utils-vue/src/observer/types').TargetObserver["observer"], options?: import('@vueuse/core').UseResizeObserverOptions): (import('@yanzhen-libs/utils-vue/src/observer/types').TargetObserver | null | undefined)[]; }; delete: (target: Element | Element[], callback?: import('@yanzhen-libs/utils-vue/src/observer/types').TargetObserver["observer"]) => import('@yanzhen-libs/utils-vue/src/observer/types').ReturnObserverType<undefined | null>; stop: () => void; }; tableResize: { isSupported: import('vue').ComputedRef<boolean>; stop: () => void; }; }; tableWrapperRef: import('vue').ComputedRef<never>; tableWrapper: import('vue').ComputedRef<TableWrapperDOMRect | { target?: Element; parent?: Element; tbody?: Element; parentRect?: { height: number; width: number; x: number; y: number; readonly bottom: number; readonly left: number; readonly right: number; readonly top: number; toJSON: () => any; }; contentRect?: { height: number; width: number; x: number; y: number; readonly bottom: number; readonly left: number; readonly right: number; readonly top: number; toJSON: () => any; }; bodyWidth: number; bodyHeight: number; parentHeight: number; parentWidth: number; scrollWidth: number; scrollHeight: number; scrollLeft: number; scrollTop: number; }>; stop: () => void; onTableScroll: (data: ScrollParams) => void; };