/** * @description 自定义日期范围时间选择器组件 */ import React from 'react'; import type { Moment } from 'moment'; import moment from 'moment'; import type { DateRangePickerProps } from '../../types'; interface DateRangePickerState { isOpened: boolean; isFocused: boolean; /** 开始时间 */ startDate?: moment.Moment; /** 结束时间 */ endDate?: moment.Moment; /** 最近一次confirm的开始时间 */ oldStartDate?: moment.Moment; /** 最近一次confirm的结束时间 */ oldEndDate?: moment.Moment; /** 开始时间输入值 */ startInputValue?: string; /** 结束时间输入值 */ endInputValue?: string; /** * 当前聚焦的模式 */ focusedMode?: 'start' | 'end' | ''; /** * 当前更新来源的mode */ changedFromMode?: 'start' | 'end'; } export declare class DateRangePicker extends React.Component> { static defaultProps: Partial; static formatValue(newValue: { startDate: Moment; endDate: Moment; }, format: string, joinValues: boolean, delimiter: string, utc?: boolean): string | string[]; static unFormatValue(value: any, format: string, joinValues: boolean, delimiter: string): { startDate?: Moment; endDate?: Moment; }; innerDom: any; popover: any; input?: HTMLInputElement; isFirstClick: boolean; dom: React.RefObject; calendarRef: React.RefObject; startInputRef: React.RefObject; endInputRef: React.RefObject; separatorRef: React.RefObject; constructor(props: DateRangePickerProps); componentDidMount(): void; componentWillUnmount(): void; componentDidUpdate(prevProps: DateRangePickerProps): void; formatValue: (startDate: Moment, endDate: Moment) => string | string[]; handleOutClick(e: Event): void; focus(): void; blur(): void; handleFocus(e: React.SyntheticEvent): void; handleBlur(e: React.SyntheticEvent): void; open(): void; toggleOpen: () => void; openStart(): void; openEnd(): void; close(isConfirm?: boolean): void; handleClick: () => void; handlePopOverClick(e: React.MouseEvent): void; handleKeyPress(e: React.KeyboardEvent): void; confirm: () => void; filterDate(date: moment.Moment, originValue?: moment.Moment, timeFormat?: string, type?: 'start' | 'end'): moment.Moment; isTimeRange: () => boolean; handleChangeStartDate: (newValue: moment.Moment) => void; handleChangeEndDate(newValue: moment.Moment): void; handleDateChange: (newState: Partial, nextStartDate?: Moment, nextEndDate?: Moment) => void; handleChangeStartInput(e: React.ChangeEvent): void; endInputChange(e: React.ChangeEvent): void; /** * 根据 maxDate/minDate/minDuration/maxDuration 修复结束时间 */ adjustEndDate: (newValue: moment.Moment, startDate?: Moment | undefined) => Moment; /** * 根据 minDate/maxDate/minDuration/maxDuration 修复起始时间 */ adjustStartDate: (newValue: moment.Moment, endDate?: Moment) => Moment; handleTimeStartChange: (newValue: moment.Moment) => void; handleTimeEndChange(newValue: moment.Moment): void; handleMobileChange(data: any, callback?: () => void): void; setRangeDate: (range: { startDate: (now: Moment) => Moment; endDate: (now: Moment) => Moment; }) => void; renderRanges: (ranges: DateRangePickerProps["ranges"]) => JSX.Element | null; clearValue(e: React.MouseEvent): void; clear(): void; reset(): void; checkValidStartDate(currentDate: moment.Moment): boolean; checkValidEndDate(currentDate: moment.Moment): boolean; makeRenderDay: (pickerMode: "start" | "end", startViewDate: Moment, endViewDate: Moment) => (props: any, currentDate: moment.Moment) => JSX.Element; renderMonth: (props: any, month: number, year: number, date: any) => JSX.Element; renderQuarter: (props: any, quarter: number, year: number) => JSX.Element; renderYear: (props: any, year: number) => JSX.Element; renderCalendar(): JSX.Element; /** * 获取宽度类型变量的值 */ getValidWidthValue(element: HTMLElement, propsName: string): number; renderMobileCalendar: () => JSX.Element; render(): JSX.Element; } export default DateRangePicker;