UNPKG

office-ui-fabric-react

Version:

Reusable React components for building experiences for Office 365.

68 lines (67 loc) 2.64 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 ICalendarDayProps extends React.Props<CalendarDay> { componentRef?: () => 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[]; } export interface ICalendarDayState { activeDescendantId?: string; weeks?: IDayInfo[][]; } export declare class CalendarDay extends BaseComponent<ICalendarDayProps, ICalendarDayState> { refs: { [key: string]: React.ReactInstance; navigatedDay: HTMLElement; }; constructor(props: ICalendarDayProps); componentWillReceiveProps(nextProps: ICalendarDayProps): void; render(): JSX.Element; focus(): void; private _findCornerIndexes(week); private _populateCornerStyles(weekCornersStyled, weekIndex, cornerIndexes, singleCornerStyle, leftCornerStyle, rightCornerStyle); private _getWeekCornerStyles(weeks); private _getHighlightedCornerStyle(weekCorners, dayIndex, weekIndex); private _navigateMonthEdge(ev, date, weekIndex, dayIndex); private _onKeyDown(callback, ev); private _onDayKeyDown(originalDate, weekIndex, dayIndex); private _onSelectDate(selectedDate); private _onSelectNextMonth(); private _onSelectPrevMonth(); private _onHeaderSelect(); private _onHeaderKeyDown(ev); private _onPrevMonthKeyDown(ev); private _onNextMonthKeyDown(ev); private _getWeeks(propsToUse); private _getBoundedDateRange(dateRange, minDate?, maxDate?); }