UNPKG

office-ui-fabric-react

Version:

Reusable React components for building experiences for Office 365.

80 lines (79 loc) 2.88 kB
/// <reference types="react" /> import * as React from 'react'; import { BaseComponent } from '../../Utilities'; import { ICalendarStrings, ICalendarIconStrings, ICalendarFormatDateCallbacks } from './Calendar.types'; import { DayOfWeek, FirstWeekOfYear, DateRangeType } from '../../utilities/dateValues/DateValues'; export interface IDayInfo { key: string; date: string; originalDate: Date; isInMonth: boolean; isToday: boolean; isSelected: boolean; isInBounds: boolean; onSelected: () => void; } export interface ICalendarDay { focus(): void; } export interface ICalendarDayProps extends React.Props<CalendarDay> { componentRef?: (c: ICalendarDay) => void; strings: ICalendarStrings; selectedDate: Date; navigatedDate: Date; onSelectDate: (date: Date, selectedDateRangeArray?: Date[]) => void; onNavigateDate: (date: Date, focusOnNavigatedDay: boolean) => void; onDismiss?: () => void; firstDayOfWeek: DayOfWeek; dateRangeType: DateRangeType; autoNavigateOnSelection: boolean; navigationIcons: ICalendarIconStrings; today?: Date; onHeaderSelect?: (focus: boolean) => void; showWeekNumbers?: boolean; firstWeekOfYear: FirstWeekOfYear; dateTimeFormatter: ICalendarFormatDateCallbacks; showSixWeeksByDefault?: boolean; minDate?: Date; maxDate?: Date; workWeekDays?: DayOfWeek[]; showCloseButton?: boolean; allFocusable?: boolean; } export interface ICalendarDayState { activeDescendantId?: string; weeks?: IDayInfo[][]; } export declare class CalendarDay extends BaseComponent<ICalendarDayProps, ICalendarDayState> { private navigatedDay; private days; constructor(props: ICalendarDayProps); componentWillReceiveProps(nextProps: ICalendarDayProps): void; render(): JSX.Element; focus(): void; private _setDayRef(element, day, isNavigatedDate); private _setDayCellRef(element, day, isNavigatedDate); private _getWeekCornerStyles(weeks, dateRangeType); private _getHighlightedCornerStyle(weekCorners, dayIndex, weekIndex); private _navigateMonthEdge(ev, date, weekIndex, dayIndex); private _onKeyDown; private _onDayKeyDown; private _onDayMouseDown; private _onDayMouseUp; private _onDayMouseOver; private _onDayMouseLeave; private _onTableMouseLeave; private _onTableMouseUp; private _applyFunctionToDayRefs(func); private _onSelectDate; private _onSelectNextMonth; private _onSelectPrevMonth; private _onClose; private _onHeaderSelect; private _onHeaderKeyDown; private _onPrevMonthKeyDown; private _onNextMonthKeyDown; private _onCloseButtonKeyDown; private _getWeeks(propsToUse); private _getBoundedDateRange(dateRange, minDate?, maxDate?); }