// TypeScript Version: 2.2 import * as React from 'react'; import { ClassNames, Modifier, Modifiers, DayModifiers, InputClassNames } from './common'; import { LocaleUtils } from './utils'; import { DayPickerInput } from './DayPickerInput'; export interface CaptionElementProps { date: Date; classNames: ClassNames; localeUtils: LocaleUtils; locale: string; months?: string[]; onClick?: React.MouseEventHandler; } export interface NavbarElementProps { className: string; classNames: ClassNames; month: Date; previousMonth: Date; nextMonth: Date; showPreviousButton: boolean; showNextButton: boolean; onPreviousClick(callback?: () => void): void; onNextClick(callback?: () => void): void; dir?: string; labels: { previousMonth: string; nextMonth: string }; localeUtils: LocaleUtils; locale: string; } export interface WeekdayElementProps { weekday: number; className: string; localeUtils: LocaleUtils; locale: string; weekdaysLong?: string[]; weekdaysShort?: string[]; } export interface DayPickerProps { canChangeMonth?: boolean; captionElement?: | React.ReactElement> | React.ComponentClass | React.SFC; className?: string; classNames?: ClassNames; containerProps?: React.DetailedHTMLProps< React.HTMLAttributes, HTMLDivElement >; dir?: string; disabledDays?: Modifier | Modifier[]; showOutsideDays?: boolean; enableOutsideDaysClick?: boolean; firstDayOfWeek?: number; fixedWeeks?: boolean; fromMonth?: Date; initialMonth?: Date; labels?: { previousMonth: string; nextMonth: string }; locale?: string; localeUtils?: LocaleUtils; modifiers?: Partial; modifiersStyles?: object; month?: Date; months?: string[]; navbarElement?: | React.ReactElement> | React.ComponentClass | React.SFC; numberOfMonths?: number; onBlur?(e: React.FocusEvent): void; onCaptionClick?(month: Date, e: React.MouseEvent): void; onDayClick?( day: Date, modifiers: DayModifiers, e: React.MouseEvent ): void; onDayKeyDown?( day: Date, modifiers: DayModifiers, e: React.KeyboardEvent ): void; onDayMouseEnter?( day: Date, modifiers: DayModifiers, e: React.MouseEvent ): void; onDayMouseLeave?( day: Date, modifiers: DayModifiers, e: React.MouseEvent ): void; onDayMouseDown?( day: Date, modifiers: DayModifiers, e: React.MouseEvent ): void; onDayMouseUp?( day: Date, modifiers: DayModifiers, e: React.MouseEvent ): void; onDayTouchEnd?( day: Date, modifiers: DayModifiers, e: React.TouchEvent ): void; onDayTouchStart?( day: Date, modifiers: DayModifiers, e: React.TouchEvent ): void; onFocus?(e: React.FocusEvent): void; onKeyDown?(e: React.KeyboardEvent): void; onMonthChange?(month: Date): void; onTodayButtonClick?( day: Date, modifiers: DayModifiers, e: React.MouseEvent ): void; onWeekClick?( weekNumber: number, days: Date[], e: React.MouseEvent ): void; pagedNavigation?: boolean; renderDay?(date: Date, modifiers: DayModifiers): React.ReactNode; renderWeek?(weekNumber: number, week: Date[], month: Date): React.ReactNode; reverseMonths?: boolean; selectedDays?: Modifier | Modifier[]; showWeekNumbers?: boolean; showWeekDays?: boolean; todayButton?: string; toMonth?: Date; weekdayElement?: | React.ReactElement> | React.ComponentClass | React.SFC; weekdaysLong?: string[]; weekdaysShort?: string[]; } export interface DayPickerInputProps { value?: string | Date; format: string | string[]; placeholder?: string; dayPickerProps?: DayPickerProps; inputProps?: object; formatDate?(date: Date, format: string, locale: string): string; parseDate?(str: string, format: string, locale: string): Date | void; hideOnDayClick?: boolean; clickUnselectsDay?: boolean; showOverlay?: boolean; keepFocus?: boolean; // Not sure React.ComponentClass is the right type for _propTypes2.default.any component?: any; overlayComponent?: any; classNames?: InputClassNames; onDayChange?( day: Date, DayModifiers: DayModifiers, dayPickerInput: DayPickerInput ): void; onDayPickerHide?(): void; onDayPickerShow?(): void; onChange?(e: React.FocusEvent): void; onClick?(e: React.FocusEvent): void; onFocus?(e: React.FocusEvent): void; onBlur?(e: React.FocusEvent): void; onKeyUp?(e: React.FocusEvent): void; }