import { FlattenData, GroupFlattenData } from '@douyinfe/semi-foundation/lib/es/table/bodyFoundation'; import Store from '@douyinfe/semi-foundation/lib/es/utils/Store'; import { BaseProps } from '../../_base/baseComponent'; import type { ExpandedRowRender, Virtualized, GetVirtualizedListRef, ColumnProps, Size, BodyScrollEvent, Scroll, Fixed, TableComponents, RowExpandable, VirtualizedOnScroll, RowKey } from '../interface'; import { CombineProps, VueJsxNode } from '../../interface'; import { CSSProperties, PropType } from 'vue'; export interface BodyProps extends BaseProps { tableLayout?: 'fixed' | 'auto'; anyColumnFixed?: boolean; columns?: ColumnProps[]; dataSource?: Record[]; disabledRowKeysSet: Set; emptySlot?: VueJsxNode; expandedRowKeys?: (string | number)[]; expandedRowRender?: ExpandedRowRender>; fixed?: Fixed; forwardedRef?: any; handleBodyScroll?: (e: BodyScrollEvent) => void; handleWheel?: (e: WheelEvent) => void; includeHeader?: boolean; prefixCls?: string; scroll?: Scroll; selectedRowKeysSet: Set; showHeader?: boolean; size?: Size; virtualized?: Virtualized; components?: TableComponents; store: Store; groups?: Map[]>[]; rowKey?: RowKey>; childrenRecordName?: string; rowExpandable?: RowExpandable>; renderExpandIcon: (record: Record, isNested: boolean) => VueJsxNode | null; headerRef?: any; onScroll?: VirtualizedOnScroll; keepDOM?: boolean; bodyWrapperRef?: any; expandRowByClick?: boolean; tableWidth?: number; expandIcon?: any; expandCellFixed?: any; title?: string; indentSize?: any; defaultExpandAllRows?: any; expandAllRows?: any; defaultExpandAllGroupRows?: any; expandAllGroupRows?: any; defaultExpandedRowKeys?: any; footer?: any; empty?: any; groupBy?: any; renderGroupSection?: any; clickGroupedRowToExpand?: any; dropdownPrefixCls?: any; cachedColumns?: any; cachedChildren?: any; flattenColumns?: any; queries?: any; flattenData?: any; pagination?: any; allRowKeys?: any; disabledRowKeys?: any; bodyHasScrollBar?: any; prePropRowSelection?: any; prePagination?: any; hideExpandedColumn?: any; filteredColumns?: any; useFixedHeader?: any; bodyRef?: any; onExpandedRowsChange?: any; onExpand?: any; onChange?: any; onRow?: any; onGroupedRow?: any; } export interface BodyState { virtualizedData?: Array; cache?: { virtualizedScrollTop?: number; virtualizedScrollLeft?: number; }; cachedExpandBtnShouldInRow?: boolean; cachedExpandRelatedProps?: any[]; } export interface BodyContext { getVirtualizedListRef: GetVirtualizedListRef; flattenedColumns: ColumnProps[]; getCellWidths: (flattenedColumns: ColumnProps[]) => number[]; } declare const propTypes: CombineProps; export { propTypes as BodyPropTypes }; export declare const vuePropsType: CombineProps; declare const Body: import("vue").DefineComponent | { type: PropType<"fixed" | "auto">; default?: any; required?: false; }; anyColumnFixed: PropType | { type: PropType; default?: any; required?: false; }; columns: PropType[]> | { type: PropType[]>; default?: any; required?: false; }; dataSource: PropType[]> | { type: PropType[]>; default?: any; required?: false; }; disabledRowKeysSet: { type: PropType>; default?: any; required: true; }; emptySlot: PropType | { type: PropType; default?: any; required?: false; }; expandedRowKeys: PropType<(string | number)[]> | { type: PropType<(string | number)[]>; default?: any; required?: false; }; expandedRowRender: PropType>> | { type: PropType>>; default?: any; required?: false; }; fixed: PropType | { type: PropType; default?: any; required?: false; }; forwardedRef: PropType | { type: PropType; default?: any; required?: false; }; handleBodyScroll: PropType<(e: BodyScrollEvent) => void> | { type: PropType<(e: BodyScrollEvent) => void>; default?: any; required?: false; }; handleWheel: PropType<(e: WheelEvent) => void> | { type: PropType<(e: WheelEvent) => void>; default?: any; required?: false; }; includeHeader: PropType | { type: PropType; default?: any; required?: false; }; prefixCls: PropType | { type: PropType; default?: any; required?: false; }; scroll: PropType | { type: PropType; default?: any; required?: false; }; selectedRowKeysSet: { type: PropType>; default?: any; required: true; }; showHeader: PropType | { type: PropType; default?: any; required?: false; }; size: PropType<"small" | "default" | "middle"> | { type: PropType<"small" | "default" | "middle">; default?: any; required?: false; }; virtualized: PropType | { type: PropType; default?: any; required?: false; }; components: PropType | { type: PropType; default?: any; required?: false; }; store: { type: PropType>>; default?: any; required: true; }; groups: PropType[]>[]> | { type: PropType[]>[]>; default?: any; required?: false; }; rowKey: PropType>> | { type: PropType>>; default?: any; required?: false; }; childrenRecordName: PropType | { type: PropType; default?: any; required?: false; }; rowExpandable: PropType>> | { type: PropType>>; default?: any; required?: false; }; renderExpandIcon: { type: PropType<(record: Record, isNested: boolean) => VueJsxNode | null>; default?: any; required: true; }; headerRef: PropType | { type: PropType; default?: any; required?: false; }; onScroll: PropType | { type: PropType; default?: any; required?: false; }; keepDOM: PropType | { type: PropType; default?: any; required?: false; }; bodyWrapperRef: PropType | { type: PropType; default?: any; required?: false; }; expandRowByClick: PropType | { type: PropType; default?: any; required?: false; }; tableWidth: PropType | { type: PropType; default?: any; required?: false; }; expandIcon: PropType | { type: PropType; default?: any; required?: false; }; expandCellFixed: PropType | { type: PropType; default?: any; required?: false; }; title: PropType | { type: PropType; default?: any; required?: false; }; indentSize: PropType | { type: PropType; default?: any; required?: false; }; defaultExpandAllRows: PropType | { type: PropType; default?: any; required?: false; }; expandAllRows: PropType | { type: PropType; default?: any; required?: false; }; defaultExpandAllGroupRows: PropType | { type: PropType; default?: any; required?: false; }; expandAllGroupRows: PropType | { type: PropType; default?: any; required?: false; }; defaultExpandedRowKeys: PropType | { type: PropType; default?: any; required?: false; }; footer: PropType | { type: PropType; default?: any; required?: false; }; empty: PropType | { type: PropType; default?: any; required?: false; }; groupBy: PropType | { type: PropType; default?: any; required?: false; }; renderGroupSection: PropType | { type: PropType; default?: any; required?: false; }; clickGroupedRowToExpand: PropType | { type: PropType; default?: any; required?: false; }; dropdownPrefixCls: PropType | { type: PropType; default?: any; required?: false; }; cachedColumns: PropType | { type: PropType; default?: any; required?: false; }; cachedChildren: PropType | { type: PropType; default?: any; required?: false; }; flattenColumns: PropType | { type: PropType; default?: any; required?: false; }; queries: PropType | { type: PropType; default?: any; required?: false; }; flattenData: PropType | { type: PropType; default?: any; required?: false; }; pagination: PropType | { type: PropType; default?: any; required?: false; }; allRowKeys: PropType | { type: PropType; default?: any; required?: false; }; disabledRowKeys: PropType | { type: PropType; default?: any; required?: false; }; bodyHasScrollBar: PropType | { type: PropType; default?: any; required?: false; }; prePropRowSelection: PropType | { type: PropType; default?: any; required?: false; }; prePagination: PropType | { type: PropType; default?: any; required?: false; }; hideExpandedColumn: PropType | { type: PropType; default?: any; required?: false; }; filteredColumns: PropType | { type: PropType; default?: any; required?: false; }; useFixedHeader: PropType | { type: PropType; default?: any; required?: false; }; bodyRef: PropType | { type: PropType; default?: any; required?: false; }; onExpandedRowsChange: PropType | { type: PropType; default?: any; required?: false; }; onExpand: PropType | { type: PropType; default?: any; required?: false; }; onChange: PropType | { type: PropType; default?: any; required?: false; }; onRow: PropType | { type: PropType; default?: any; required?: false; }; onGroupedRow: PropType | { type: PropType; default?: any; required?: false; }; style: PropType | { type: PropType; default?: any; required?: false; }; className: PropType | { type: PropType; default?: any; required?: false; }; }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly | { type: PropType<"fixed" | "auto">; default?: any; required?: false; }; anyColumnFixed: PropType | { type: PropType; default?: any; required?: false; }; columns: PropType[]> | { type: PropType[]>; default?: any; required?: false; }; dataSource: PropType[]> | { type: PropType[]>; default?: any; required?: false; }; disabledRowKeysSet: { type: PropType>; default?: any; required: true; }; emptySlot: PropType | { type: PropType; default?: any; required?: false; }; expandedRowKeys: PropType<(string | number)[]> | { type: PropType<(string | number)[]>; default?: any; required?: false; }; expandedRowRender: PropType>> | { type: PropType>>; default?: any; required?: false; }; fixed: PropType | { type: PropType; default?: any; required?: false; }; forwardedRef: PropType | { type: PropType; default?: any; required?: false; }; handleBodyScroll: PropType<(e: BodyScrollEvent) => void> | { type: PropType<(e: BodyScrollEvent) => void>; default?: any; required?: false; }; handleWheel: PropType<(e: WheelEvent) => void> | { type: PropType<(e: WheelEvent) => void>; default?: any; required?: false; }; includeHeader: PropType | { type: PropType; default?: any; required?: false; }; prefixCls: PropType | { type: PropType; default?: any; required?: false; }; scroll: PropType | { type: PropType; default?: any; required?: false; }; selectedRowKeysSet: { type: PropType>; default?: any; required: true; }; showHeader: PropType | { type: PropType; default?: any; required?: false; }; size: PropType<"small" | "default" | "middle"> | { type: PropType<"small" | "default" | "middle">; default?: any; required?: false; }; virtualized: PropType | { type: PropType; default?: any; required?: false; }; components: PropType | { type: PropType; default?: any; required?: false; }; store: { type: PropType>>; default?: any; required: true; }; groups: PropType[]>[]> | { type: PropType[]>[]>; default?: any; required?: false; }; rowKey: PropType>> | { type: PropType>>; default?: any; required?: false; }; childrenRecordName: PropType | { type: PropType; default?: any; required?: false; }; rowExpandable: PropType>> | { type: PropType>>; default?: any; required?: false; }; renderExpandIcon: { type: PropType<(record: Record, isNested: boolean) => VueJsxNode | null>; default?: any; required: true; }; headerRef: PropType | { type: PropType; default?: any; required?: false; }; onScroll: PropType | { type: PropType; default?: any; required?: false; }; keepDOM: PropType | { type: PropType; default?: any; required?: false; }; bodyWrapperRef: PropType | { type: PropType; default?: any; required?: false; }; expandRowByClick: PropType | { type: PropType; default?: any; required?: false; }; tableWidth: PropType | { type: PropType; default?: any; required?: false; }; expandIcon: PropType | { type: PropType; default?: any; required?: false; }; expandCellFixed: PropType | { type: PropType; default?: any; required?: false; }; title: PropType | { type: PropType; default?: any; required?: false; }; indentSize: PropType | { type: PropType; default?: any; required?: false; }; defaultExpandAllRows: PropType | { type: PropType; default?: any; required?: false; }; expandAllRows: PropType | { type: PropType; default?: any; required?: false; }; defaultExpandAllGroupRows: PropType | { type: PropType; default?: any; required?: false; }; expandAllGroupRows: PropType | { type: PropType; default?: any; required?: false; }; defaultExpandedRowKeys: PropType | { type: PropType; default?: any; required?: false; }; footer: PropType | { type: PropType; default?: any; required?: false; }; empty: PropType | { type: PropType; default?: any; required?: false; }; groupBy: PropType | { type: PropType; default?: any; required?: false; }; renderGroupSection: PropType | { type: PropType; default?: any; required?: false; }; clickGroupedRowToExpand: PropType | { type: PropType; default?: any; required?: false; }; dropdownPrefixCls: PropType | { type: PropType; default?: any; required?: false; }; cachedColumns: PropType | { type: PropType; default?: any; required?: false; }; cachedChildren: PropType | { type: PropType; default?: any; required?: false; }; flattenColumns: PropType | { type: PropType; default?: any; required?: false; }; queries: PropType | { type: PropType; default?: any; required?: false; }; flattenData: PropType | { type: PropType; default?: any; required?: false; }; pagination: PropType | { type: PropType; default?: any; required?: false; }; allRowKeys: PropType | { type: PropType; default?: any; required?: false; }; disabledRowKeys: PropType | { type: PropType; default?: any; required?: false; }; bodyHasScrollBar: PropType | { type: PropType; default?: any; required?: false; }; prePropRowSelection: PropType | { type: PropType; default?: any; required?: false; }; prePagination: PropType | { type: PropType; default?: any; required?: false; }; hideExpandedColumn: PropType | { type: PropType; default?: any; required?: false; }; filteredColumns: PropType | { type: PropType; default?: any; required?: false; }; useFixedHeader: PropType | { type: PropType; default?: any; required?: false; }; bodyRef: PropType | { type: PropType; default?: any; required?: false; }; onExpandedRowsChange: PropType | { type: PropType; default?: any; required?: false; }; onExpand: PropType | { type: PropType; default?: any; required?: false; }; onChange: PropType | { type: PropType; default?: any; required?: false; }; onRow: PropType | { type: PropType; default?: any; required?: false; }; onGroupedRow: PropType | { type: PropType; default?: any; required?: false; }; style: PropType | { type: PropType; default?: any; required?: false; }; className: PropType | { type: PropType; default?: any; required?: false; }; }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; export default Body; export interface RenderExpandedRowProps { style?: CSSProperties; components?: TableComponents; renderExpandIcon: (record?: Record, isNested?: boolean) => VueJsxNode | null; expandedRowRender?: ExpandedRowRender>; record?: Record; columns?: ColumnProps[]; expanded?: boolean; index?: number; rowKey?: RowKey>; virtualized?: Virtualized; level?: number; keepDOM?: boolean; displayNone?: boolean; } export interface RenderSectionRowProps { dataSource?: Record[]; columns?: ColumnProps[]; rowKey?: RowKey>; group?: any; groupKey: string | number; index?: number; expanded?: boolean; }