/// import { TableColumnType, FormInstance } from 'antd'; import { SorterResult, TableCurrentDataSource } from 'antd/es/table/interface'; import { BizFieldValueType, BizFieldValueEnum, WithFieldProps } from '../biz-field'; import { BizFormItemAddressProps, BizFormItemAutoCompleteProps, BizFormItemCaptchaProps, BizFormItemCascaderProps, BizFormItemCheckboxProps, BizFormItemColorPickerProps, BizFormItemDateProps, BizFormItemDateRangeProps, BizFormItemInputProps, BizFormItemNumberProps, BizFormItemPasswordProps, BizFormItemProps, BizFormItemRadioProps, BizFormItemSelectProps, BizFormItemSliderProps, BizFormItemSwitchProps, BizFormItemTextAreaProps, BizFormItemTimeProps, BizFormItemTimeRangeProps, BizFormItemUploadProps } from '../biz-form'; import { WithTooltipProps } from '../biz-descriptions/WithTooltip'; import { ItemTypes } from './_util/constants'; export interface AsyncFnReturn extends Record { data: D[]; total?: number; } export type BizTableActionType = { reload: () => void; reset: () => void; submit: () => void; submitAndCurrent: (current: number) => void; }; export interface RequestParams extends Record { pageSize: number; current: number; } export type RequestFilters = Record; export type RequestSorter = SorterResult | SorterResult[]; export type BizTableRequest = (params: RequestParams, filters: RequestFilters, sorter: RequestSorter, extra: TableCurrentDataSource) => Promise>; type AssignItemTypeProps = { itemType: IType; valueType?: undefined; }; type MixedItemTypeProps = AssignItemTypeProps | { itemType?: undefined; valueType: ValueType; }; type ExtendFormItemProps = (AssignItemTypeProps<'address'> & BizFormItemAddressProps & { name?: undefined; }) | (AssignItemTypeProps<'autoComplete'> & BizFormItemAutoCompleteProps) | (AssignItemTypeProps<'captcha'> & BizFormItemCaptchaProps) | (AssignItemTypeProps<'cascader'> & BizFormItemCascaderProps) | (AssignItemTypeProps<'checkbox'> & BizFormItemCheckboxProps & { valueEnum?: BizFieldValueEnum; }) | (MixedItemTypeProps<'color', 'color'> & BizFormItemColorPickerProps) | (MixedItemTypeProps<'date', 'date' | 'dateWeek' | 'dateMonth' | 'dateQuarter' | 'dateYear' | 'dateTime' | 'fromNow'> & BizFormItemDateProps) | (MixedItemTypeProps<'dateRange', 'dateRange' | 'dateTimeRange'> & BizFormItemDateRangeProps) | (MixedItemTypeProps<'input', 'text'> & BizFormItemInputProps) | (MixedItemTypeProps<'number', 'money' | 'index' | 'indexBorder' | 'progress' | 'percent'> & BizFormItemNumberProps) | (AssignItemTypeProps<'password'> & BizFormItemPasswordProps) | (AssignItemTypeProps<'radio'> & BizFormItemRadioProps & { valueEnum?: BizFieldValueEnum; }) | (MixedItemTypeProps<'select', 'enum' | 'enumTag' | 'enumBadge'> & BizFormItemSelectProps & { valueEnum?: BizFieldValueEnum; }) | (AssignItemTypeProps<'textarea'> & BizFormItemTextAreaProps) | (MixedItemTypeProps<'time', 'time'> & BizFormItemTimeProps) | (MixedItemTypeProps<'timeRange', 'timeRange'> & BizFormItemTimeRangeProps) | (AssignItemTypeProps<'slider'> & BizFormItemSliderProps) | (AssignItemTypeProps<'switch'> & BizFormItemSwitchProps) | (MixedItemTypeProps<'upload', 'image'> & BizFormItemUploadProps) | (BizFormItemProps & { itemType?: undefined; valueType?: undefined; valueEnum?: BizFieldValueEnum; }); type InternalColumnFormProps = Partial, 'dataIndex' | 'title'>> & { order?: number; render?: (originItem: InternalColumnType & WithFieldProps, dom: React.ReactElement, form: FormInstance) => React.ReactElement; }; export type SearchProps = InternalColumnFormProps & { order?: number; } & ExtendFormItemProps; type BaseColumnType = Omit, 'dataIndex'> & { tooltip?: WithTooltipProps['tooltip']; nowrap?: boolean; search?: boolean | SearchProps; }; type InternalColumnType = BaseColumnType & { dataIndex?: string | number | (string | number)[]; }; type ColumnGroupType = BaseColumnType & { children: BizTableColumnsType; }; export type BizTableColumnsType = ((ColumnGroupType | InternalColumnType) & WithFieldProps)[]; type ToolbarActionConfig = { fullScreen?: boolean; density?: boolean; reload?: boolean; columnSetting?: boolean; }; export interface ToolbarActionProps { config?: boolean | ToolbarActionConfig; } export {};