import { ButtonProps } from 'antd/es/button'; import { FormProps } from 'antd/es/form'; import { TablePaginationConfig } from 'antd/es/table/Table'; import React from 'react'; export type TypePropsType = 'Input' | 'InputNumber' | 'InputRange' | 'TextArea' | 'Select' | 'Switch' | 'DatePicker' | 'RangePicker' | 'Cascader' | 'Checkbox' | 'Radio'; export type editTypePropsType = 'single' | 'multiple'; export type insertTypePropsType = 'before' | 'after'; export interface IAddOptionsPropsType { insertType: string; } export interface IRowDataPropsType { editable?: boolean; isFirst?: boolean; [key: string]: any; } export interface IActionReturnPropsType { nextList: IRowDataPropsType[]; list: IRowDataPropsType[]; rowData: IRowDataPropsType; rowIndex: number; } export interface IAddButtonPropsType extends ButtonProps { isCanAdd?: boolean; isCanMultipleDelete?: boolean; position?: string; insertType?: insertTypePropsType; buttonText?: any; emptyButtonText?: any; onMultipleDelete?: Function; multipleDeleteModalProps?: any; multipleDeleteErrorMessage?: string; onlyAddOneLineAlertMessage?: string; } export interface TActionRefPropsType { onUpdateRowData: Function; onAdd: Function; onDelete: Function; onMultipleDelete: Function; onEdit: Function; onSave: Function; onCancel: Function; tableNode: HTMLDivElement; validateFields: Function; setDataSource: Function; getPureDataSource: Function; data: IRowDataPropsType[]; selectedRows: IRowDataPropsType[]; selectedRowKeys: React.Key[]; setSelectedRowKeys: React.Dispatch>; setSelectedRows: React.Dispatch>; } export interface ProEditableTablePropsType { addButtonProps?: IAddButtonPropsType; name?: string; editType: editTypePropsType; columns: any; dataSource: any; rowKey: string; pagination?: TablePaginationConfig; formProps?: FormProps; isAllEditable?: boolean; [key: string]: any; } export interface FormItemComponentPropsType { type?: TypePropsType; name?: string[]; [key: string]: any; }