import range from 'lodash/range'; import isNil from 'lodash/isNil'; import * as React from 'react'; import BaseCalendarView, { BaseCalendarViewProps, CalendarWithHeaderViewProps, HeadingValueProps, RangeSelectionCalendarViewProps, } from './BaseCalendarView'; import Calendar from './Calendar'; import Body from './CalendarBody/Body'; import Header from './CalendarHeader/Header'; import { DAY_CALENDAR_ROW_WIDTH, WEEKS_TO_DISPLAY, } from './DayView'; import { findHTMLElement } from '../lib'; const DAY_POSITIONS = range(WEEKS_TO_DISPLAY * 7); function getActive(start: number, end: number): number | number[] | undefined { if (isNil(start) && isNil(end)) { return; } if (!isNil(start) && isNil(end)) { return start; } if (!isNil(start) && !isNil(end)) { return DAY_POSITIONS.slice(start, end + 1); } } type DatesRangeViewProps = BaseCalendarViewProps & HeadingValueProps & RangeSelectionCalendarViewProps & CalendarWithHeaderViewProps; class DatesRangeView extends BaseCalendarView { public static defaultProps = { active: { start: undefined, end: undefined, }, }; public render() { const { values, onNextPageBtnClick, onPrevPageBtnClick, onValueClick, hasPrevPage, hasNextPage, currentHeadingValue, onHeaderClick, activeRange, disabledItemIndexes, currentRangeHeadingValue, hoveredItemIndex, onCellHover, onMount, inline, markColor, markedItemIndexes, localization, ...rest } = this.props; const { start, end, } = activeRange; return ( this.calendarNode = findHTMLElement(e)} outlineOnFocus={inline} {...rest}>
); } } export default DatesRangeView;