/** * Date range picker component * * @author Fedorov Platon * @date 2021-06-25 */ import * as React from 'react'; import { CalendarProps } from '../calendar/Calendar.types'; import moment from 'moment'; import { TemplateDate } from '../date_picker/AdditionalTemplates'; export declare type DateRangePickerProps = Omit & { autoFocus?: boolean; allowClear?: boolean; errorMessage?: React.ReactNode; viewFormat: string; valueFormat: string; isReadOnly?: boolean; isDisabled?: boolean; placeholder?: [string, string]; mode?: 'month' | 'year'; isDefaultOpen?: boolean; isOpen?: boolean; isUtc?: boolean; onVisibleChange?: (isOpen: boolean) => void; onClose?: () => void; onBlur?: () => void; value?: [string, string]; defaultValue?: [string, string]; onChange?: (dateArray: [string, string]) => void; pickerType?: 'dateRange' | 'dateTimeRange'; isInline?: boolean; additionalDateTemplates?: DateRangeTemplate[]; errorTimeMessage: string; }; export declare type DateRangeTemplate = { date: [string, string] | [moment.Moment, moment.Moment]; name: string; }; interface IState { isOpen: boolean; textFrom: string; textTo: string; dateFrom: moment.Moment | undefined; dateTo: moment.Moment | undefined; timeFrom: string; timeTo: string; isFocused: boolean; isSetFrom: boolean; isTargetHovered: boolean; textFromPossible: string | undefined; textToPossible: string | undefined; } export declare class DateRangePicker extends React.Component { static defaultProps: { mode: string; pickerType: string; isInline: boolean; }; constructor(props: DateRangePickerProps); wrapperContainer: React.RefObject; inputFrom: React.RefObject; inputTo: React.RefObject; calendar: React.RefObject; isFromFilled: boolean; isToFilled: boolean; isPanelChanged: boolean; isMount: boolean; componentDidMount(): void; get viewFormat(): string; get valueFormat(): string; get timeFormat(): string; get viewMask(): string; get viewEmptyMask(): string; private getMoment; private get isUTC(); isDateDisabled: (isFrom: boolean) => (date: moment.Moment) => boolean; isValidRange: (date: moment.Moment) => boolean; onInputKeyDown: (e: React.KeyboardEvent) => void; onInputFocus: () => void; onInputBlur: (isFrom: boolean) => () => void; onInputChange: (isFrom: boolean) => (e: React.ChangeEvent) => void; onInputFromClick: () => void; onWrapperMouseEnter: () => void; onWrapperMouseLeave: () => void; onWrapperClickOutside: () => void; onDatePickerBlur: () => void; onClear: () => void; onVisibleChange: (visible: boolean) => void; onDropDownClose: (e: React.SyntheticEvent | Event) => void; onChange: (dateFrom?: moment.Moment | undefined, dateTo?: moment.Moment | undefined) => void; switchInput: (isFrom: boolean) => () => void; onCalendarPanelChange: (date: moment.Moment, mode: 'year' | 'month') => void; onCalendarSelect: (isFrom: boolean) => (date: moment.Moment) => void; onAdditionalTemplateClickCallback: () => void; onAdditionalTemplateClick: (date: TemplateDate) => void; onTimeInputBlur: (isFrom: boolean) => () => void; onTimeInputChange: (isFrom: boolean) => (e: React.ChangeEvent) => void; onCellMouseEnter: (date: moment.Moment) => () => void; onCellMouseLeave: () => void; renderDateFullCell: (date: moment.Moment) => React.ReactNode; renderWrapper: (textFrom: string, textTo: string) => JSX.Element; renderSecondCalendarHeader: () => null; renderCalendar: (dateFrom: moment.Moment, dateTo: moment.Moment, isFrom: boolean, props: any) => JSX.Element; render(): JSX.Element; } export {};