import { VNode } from 'vue'; import { ThinUIComponent } from '../component'; export interface ScrollOption { x: number | string; y: number | string; } export interface RenderResult { rowSpan?: number; colSpan?: number; } export interface Column { prop?: number | string; title?: string; fixed?: 'left' | 'right'; width?: number | string; align?: 'left' | 'center' | 'right'; headSlot?: string; customRender?(row: any, index?: number): RenderResult; } export default class ThinTable extends ThinUIComponent { private readonly border; private readonly scroll; private readonly columns; private readonly data; private minTableWidth; private isScroll; /** browser scrollbar height */ private scrollbarHeight; /** scroll to the extreme left flag */ private isScrollLeft; /** scroll to the extreme right flag */ private isScrollRight; private hScrollDebounce; private vScrollDebounce; private readonly independentHeadRef; private readonly tableBodyRef; readonly isEmptyData: boolean; readonly cssScroll: { x: string; y: string; }; readonly useIndependentHeader: boolean; /** * vue 'mounted' hook */ mounted(): void; /** * get scrollbar height dynamically */ initScrollbarHeight(): void; resetScroll(): void; /** * sync the Horizontal scrolling of independent head and main body; * @param scrollLeft */ syncHorizontalScroll(scrollLeft: number): void; handleHeadScroll(): void; handleBodyScroll(): void; renderColgroup(): VNode; renderHeader(): VNode; renderIndependentHeader(colGroupVNode: VNode, headVNode: VNode, minWidth: string): VNode | null; renderBody(): VNode; /** * vue 'render' function */ render(): VNode; }