import React from 'react'; import type { TableColumnType } from 'antd'; import type { SearchProps } from 'antd/lib/input'; import type { ListToolBarProps } from '../ListToolBar'; import './index.less'; import type { ActionType, ProTableProps } from '../../typing'; import type { LabelTooltipType } from 'antd/lib/form/FormItemLabel'; declare type OptionSearchProps = Omit & { /** 如果 onSearch 返回一个false,直接拦截请求 */ onSearch?: (keyword: string) => boolean | undefined; }; export declare type OptionConfig = { density?: boolean; cellCopy?: OptionsType; fullScreen?: OptionsType; reload?: OptionsType; setting?: boolean | { draggable?: boolean; checkable?: boolean; checkedReset?: boolean; extra?: React.ReactNode; }; search?: (OptionSearchProps & { name?: string; }) | boolean; other?: React.ReactNode | boolean; }; export declare type OptionsType = ((e: React.MouseEvent, action?: ActionType) => void) | boolean; export declare type ToolBarProps = { headerTitle?: React.ReactNode; titleExtraDom?: React.ReactNode; tooltip?: string | LabelTooltipType; /** @deprecated 你可以使用 tooltip,这个更改是为了与 antd 统一 */ tip?: string; toolbar?: ListToolBarProps; toolBarRender?: (action: ActionType | undefined, rows: { selectedRowKeys?: (string | number)[]; selectedRows?: T[]; }) => React.ReactNode[]; action?: React.MutableRefObject; options?: OptionConfig | false; selectedRowKeys?: (string | number)[]; selectedRows?: T[]; className?: string; onSearch?: (keyWords: string) => void; columns: TableColumnType[]; showMoreToolbar?: boolean; }; export declare type ToolbarRenderProps = { hideToolbar: boolean; onFormSearchSubmit: (params: any) => void; searchNode: React.ReactNode; tableColumn: any[]; tooltip?: string | LabelTooltipType; selectedRows: T[]; selectedRowKeys: React.Key[]; headerTitle: React.ReactNode; toolbar: ProTableProps['toolbar']; options: ProTableProps['options']; toolBarRender?: ToolBarProps['toolBarRender']; actionRef: React.MutableRefObject; alertDom: React.ReactNode; titleExtraDom?: React.ReactNode; showMoreToolbar?: boolean; }; /** 这里负责与table交互,并且减少 render次数 */ declare class ToolbarRender extends React.Component> { onSearch: (keyword: string) => void; isEquals: (next: ToolbarRenderProps) => boolean; shouldComponentUpdate: (next: ToolbarRenderProps) => boolean; render: () => JSX.Element | null; } export default ToolbarRender;