import React from 'react'; import PropTypes from 'prop-types'; import DateInputFoundation, { DateInputAdapter, DateInputFoundationProps, RangeType, InsetInputChangeProps, InsetInputChangeFoundationProps } from '@douyinfe/semi-foundation/lib/es/datePicker/inputFoundation'; import { noop } from '@douyinfe/semi-foundation/lib/es/utils/function'; import { ValueType } from '@douyinfe/semi-foundation/lib/es/datePicker/foundation'; import BaseComponent, { BaseProps } from '../_base/baseComponent'; export interface DateInputProps extends DateInputFoundationProps, BaseProps { insetLabel?: React.ReactNode; prefix?: React.ReactNode; onClick?: (e: React.MouseEvent) => void; onChange?: (value: string, e: React.MouseEvent) => void; onEnterPress?: (e: React.KeyboardEvent) => void; onBlur?: (e: React.MouseEvent) => void; onFocus?: (e: React.MouseEvent, rangeType?: RangeType) => void; onClear?: (e: React.MouseEvent) => void; onInsetInputChange?: (options: InsetInputChangeProps) => void; value?: Date[]; inputRef?: React.RefObject; rangeInputStartRef?: React.RefObject; rangeInputEndRef?: React.RefObject; showClearIgnoreDisabled?: boolean; /** Only affects rendering of the separator between range inputs */ rangeSeparatorNode?: React.ReactNode; } export default class DateInput extends BaseComponent { static propTypes: { borderless: PropTypes.Requireable; onClick: PropTypes.Requireable<(...args: any[]) => any>; onChange: PropTypes.Requireable<(...args: any[]) => any>; onEnterPress: PropTypes.Requireable<(...args: any[]) => any>; onBlur: PropTypes.Requireable<(...args: any[]) => any>; onClear: PropTypes.Requireable<(...args: any[]) => any>; onFocus: PropTypes.Requireable<(...args: any[]) => any>; value: PropTypes.Requireable; disabled: PropTypes.Requireable; type: PropTypes.Requireable<"date" | "month" | "dateTime" | "dateRange" | "year" | "monthRange" | "dateTimeRange">; showClear: PropTypes.Requireable; format: PropTypes.Requireable; inputStyle: PropTypes.Requireable; inputReadOnly: PropTypes.Requireable; insetLabel: PropTypes.Requireable; validateStatus: PropTypes.Requireable; prefix: PropTypes.Requireable; prefixCls: PropTypes.Requireable; dateFnsLocale: PropTypes.Validator; placeholder: PropTypes.Requireable>; rangeInputFocus: PropTypes.Requireable>; rangeInputStartRef: PropTypes.Requireable; rangeInputEndRef: PropTypes.Requireable; rangeSeparator: PropTypes.Requireable; rangeSeparatorNode: PropTypes.Requireable; insetInput: PropTypes.Requireable>; insetInputValue: PropTypes.Requireable; defaultPickerValue: PropTypes.Requireable>; }; static defaultProps: { borderless: boolean; showClear: boolean; onClick: typeof noop; onChange: typeof noop; onEnterPress: typeof noop; onBlur: typeof noop; onClear: typeof noop; onFocus: typeof noop; type: string; inputStyle: {}; inputReadOnly: boolean; prefixCls: "semi-datepicker"; rangeSeparator: " ~ "; }; foundation: DateInputFoundation; constructor(props: DateInputProps); get adapter(): DateInputAdapter; componentDidMount(): void; componentWillUnmount(): void; formatText(value: ValueType): string; handleChange: (value: string, e: React.ChangeEvent) => void; handleEnterPress: (e: React.KeyboardEvent) => void; handleInputClear: (e: React.MouseEvent) => void; handleRangeInputChange: (rangeStart: string, rangeEnd: string, e: React.ChangeEvent) => void; handleRangeInputClear: React.MouseEventHandler; handleRangeInputEnterPress: (e: React.KeyboardEvent, rangeStart: string, rangeEnd: string) => void; handleRangeInputEndKeyPress: (e: React.KeyboardEvent) => void; handleRangeInputFocus: (e: React.MouseEvent, rangeType: RangeType) => void; handleRangeStartFocus: React.MouseEventHandler; handleInsetInputChange: (options: InsetInputChangeFoundationProps) => void; getRangeInputValue: (rangeStart: string, rangeEnd: string) => string; renderRangePrefix(): React.JSX.Element; renderRangeSeparator(rangeStart: string, rangeEnd: string): React.JSX.Element; renderRangeClearBtn(rangeStart: string, rangeEnd: string): React.JSX.Element; renderRangeSuffix(suffix: React.ReactNode): React.JSX.Element; renderRangeInput(rangeProps: DateInputProps): React.JSX.Element; isRenderMultipleInputs(): boolean; renderInputInset(): React.JSX.Element; renderTriggerInput(): React.JSX.Element; render(): React.JSX.Element; }