import React from 'react'; import { Rule } from '../Rule/type'; import { PopoverProps } from '../Popover/type'; export interface BaseInputProps extends Omit, 'size' | 'prefix' | 'type' | 'value' | 'onChange' | 'defaultValue' | 'width' | 'onError'> { rules?: Rule[]; className?: string; clearable?: boolean; defaultValue?: Value; digits?: number; maxLength?: number; name?: string; onChange?: (value: Value) => void; onEnterPress?: (value: Value, evt: React.KeyboardEvent) => void; placeholder?: string; size?: 'large' | 'default' | 'small'; style?: React.CSSProperties; type?: HTMLInputElement['type']; value?: Value; forwardedRef?: React.MutableRefObject | React.RefCallback; onError?: (error: Error) => void; disabled?: boolean; tip?: React.ReactNode | ((value: string | number) => React.ReactNode); popoverProps?: Omit; onBlur?: (e: React.FocusEvent) => void; onFocus?: (e: React.FocusEvent) => void; border?: boolean; width?: React.CSSProperties['width']; autoFocus?: boolean; trim?: boolean; prefix?: React.ReactNode; suffix?: React.ReactNode; } export interface InputProps extends Omit, 'onChange' | 'onEnterPress'> { onChange?: (value: string) => void; onEnterPress?: (value: string, evt: React.KeyboardEvent) => void; } export interface InputNumberProps extends Omit, 'onInput' | 'onEnterPress'> { hideArrow?: boolean; max?: number; min?: number; step?: number; onInput?: (str: string) => void; onEnterPress?: (value: number, evt: React.KeyboardEvent) => void; } export interface InputPasswordProps extends BaseInputProps { iconRender?: (visible: boolean) => React.ReactNode; } export interface InputGroupProps { disabled?: boolean; tip?: React.ReactNode; popoverProps?: Omit; onBlur?: (e: React.FocusEvent) => void; onFocus?: (e: React.FocusEvent) => void; border?: boolean; width?: React.CSSProperties['width']; style?: React.CSSProperties; size?: 'large' | 'default' | 'small'; className?: string; } export interface IInputProps extends BaseInputProps { htmlName?: string; }