UNPKG

@coreui/react-pro

Version:

UI Components Library for React.js

473 lines (470 loc) 31.6 kB
import { __assign } from '../../node_modules/tslib/tslib.es6.js'; import React, { forwardRef, useRef, useState, useEffect } from 'react'; import PropTypes from 'prop-types'; import classNames from '../../node_modules/classnames/index.js'; import { CButton } from '../button/CButton.js'; import { convertToDateObject, isSameDateAs, getDateBySelectionType, getCalendarDate, createGroupsInArray, getMonthsNames, getMonthDetails, getYears, isDateDisabled, isDateSelected, isDateInRange, isToday, isDisableDateInRange } from './utils.js'; import { useForkedRef } from '../../hooks/useForkedRef.js'; import '@popperjs/core'; import { useStateWithCallback } from '../../hooks/useStateWithCallback.js'; var Calendar = function (props) { var calendarDate = props.calendarDate, dayFormat = props.dayFormat, disabledDates = props.disabledDates, endDate = props.endDate, firstDayOfWeek = props.firstDayOfWeek, hoverDate = props.hoverDate, locale = props.locale, maxDate = props.maxDate, minDate = props.minDate, onCalendarClick = props.onCalendarClick, onCalendarKeyDown = props.onCalendarKeyDown, onCalendarMouseEnter = props.onCalendarMouseEnter, onCalendarMouseLeave = props.onCalendarMouseLeave, selectAdjacementDays = props.selectAdjacementDays, selectEndDate = props.selectEndDate, selectionType = props.selectionType, showWeekNumber = props.showWeekNumber, showAdjacementDays = props.showAdjacementDays, startDate = props.startDate, view = props.view, weekdayFormat = props.weekdayFormat, weekNumbersLabel = props.weekNumbersLabel; var _a = useState([]), listOfMonths = _a[0], setListOfMonths = _a[1]; useEffect(function () { setListOfMonths(createGroupsInArray(getMonthsNames(locale), 4)); }, []); var monthDetails = getMonthDetails(calendarDate.getFullYear(), calendarDate.getMonth(), firstDayOfWeek); var listOfYears = createGroupsInArray(getYears(calendarDate.getFullYear()), 4); var weekDays = monthDetails[0].days; return (React.createElement("table", null, view === 'days' && (React.createElement("thead", null, React.createElement("tr", null, showWeekNumber && (React.createElement("th", { className: "calendar-cell" }, React.createElement("div", { className: "calendar-header-cell-inner" }, weekNumbersLabel))), weekDays.map(function (_a, idx) { var date = _a.date; return (React.createElement("th", { className: "calendar-cell", abbr: date.toLocaleDateString(locale, { weekday: 'long' }), key: idx }, React.createElement("div", { className: "calendar-header-cell-inner" }, typeof weekdayFormat === 'function' ? weekdayFormat(date) : typeof weekdayFormat === 'string' ? date.toLocaleDateString(locale, { weekday: weekdayFormat }) : date .toLocaleDateString(locale, { weekday: 'long' }) .slice(0, weekdayFormat)))); })))), React.createElement("tbody", null, view === 'days' && monthDetails.map(function (week, index) { var date = convertToDateObject(week.weekNumber === 0 ? "".concat(calendarDate.getFullYear(), "W53") : "".concat(calendarDate.getFullYear(), "W").concat(week.weekNumber), selectionType); var isDisabled = isDateDisabled(date, minDate, maxDate, disabledDates); var isSelected = isDateSelected(date, startDate, endDate); var current = week.days.some(function (day) { return day.month === 'current'; }); return (React.createElement("tr", __assign({ className: classNames('calendar-row', { disabled: isDisabled, range: selectionType === 'week' && isDateInRange(date, startDate, endDate), 'range-hover': selectionType === 'week' && hoverDate && selectEndDate ? isDateInRange(date, startDate, hoverDate) : isDateInRange(date, hoverDate, endDate), selected: isSelected, }), key: index, tabIndex: selectionType === 'week' && current && !isDisabled ? 0 : -1 }, (isSelected && { 'aria-selected': true }), (selectionType === 'week' && !isDisabled && { onBlur: function () { return onCalendarMouseLeave(); }, onClick: function () { return onCalendarClick(date); }, onFocus: function () { return onCalendarMouseEnter(date); }, onKeyDown: function (event) { return onCalendarKeyDown(event, date); }, onMouseEnter: function () { return onCalendarMouseEnter(date); }, onMouseLeave: function () { return onCalendarMouseLeave(); }, })), showWeekNumber && (React.createElement("th", { className: "calendar-cell-week-number" }, week.weekNumber === 0 ? 53 : week.weekNumber)), week.days.map(function (_a, idx) { var _b; var date = _a.date, month = _a.month; var isDisabled = isDateDisabled(date, minDate, maxDate, disabledDates); var isSelected = isDateSelected(date, startDate, endDate); return month === 'current' || showAdjacementDays ? (React.createElement("td", __assign({ className: classNames('calendar-cell', __assign(__assign({}, (selectionType === 'day' && { clickable: month !== 'current' && selectAdjacementDays, disabled: isDisabled, 'range-hover': month === 'current' && (hoverDate && selectEndDate ? isDateInRange(date, startDate, hoverDate) : isDateInRange(date, hoverDate, endDate)), range: month === 'current' && isDateInRange(date, startDate, endDate), selected: isSelected, })), (_b = {}, _b[month] = true, _b.today = month === 'current' && isToday(date), _b))), key: idx, tabIndex: selectionType === 'day' && (month === 'current' || selectAdjacementDays) && !isDisabled ? 0 : -1, title: date.toLocaleDateString(locale) }, (isSelected && { 'aria-selected': true }), (selectionType === 'day' && (month === 'current' || selectAdjacementDays) && { onBlur: function () { return onCalendarMouseLeave(); }, onClick: function () { return onCalendarClick(date); }, onFocus: function () { return onCalendarMouseEnter(date); }, onKeyDown: function (event) { return onCalendarKeyDown(event, date); }, onMouseEnter: function () { return onCalendarMouseEnter(date); }, onMouseLeave: function () { return onCalendarMouseLeave(); }, }), (month !== 'current' && !selectAdjacementDays && { onMouseEnter: function () { return onCalendarMouseLeave(); }, })), React.createElement("div", { className: "calendar-cell-inner" }, typeof dayFormat === 'function' ? dayFormat(date) : date.toLocaleDateString(locale, { day: dayFormat })))) : (React.createElement("td", { key: idx })); }))); }), view === 'months' && listOfMonths.map(function (row, index) { return (React.createElement("tr", { key: index }, row.map(function (month, idx) { var monthNumber = index * 3 + idx; var date = new Date(calendarDate.getFullYear(), monthNumber, 1); var isDisabled = isDateDisabled(date, minDate, maxDate, disabledDates); var isSelected = isDateSelected(date, startDate, endDate); return (React.createElement("td", __assign({ className: classNames('calendar-cell', { disabled: isDisabled, selected: isSelected, 'range-hover': selectionType === 'month' && (hoverDate && selectEndDate ? isDateInRange(date, startDate, hoverDate) : isDateInRange(date, hoverDate, endDate)), range: isDateInRange(date, startDate, endDate), }), key: idx, tabIndex: isDisabled ? -1 : 0 }, (isSelected && { 'aria-selected': true }), (!isDisabled && { onBlur: function () { return onCalendarMouseLeave(); }, onClick: function () { return onCalendarClick(date); }, onFocus: function () { return onCalendarMouseEnter(date); }, onKeyDown: function (event) { return onCalendarKeyDown(event, date); }, onMouseEnter: function () { return onCalendarMouseEnter(date); }, onMouseLeave: function () { return onCalendarMouseLeave(); }, })), React.createElement("div", { className: "calendar-cell-inner" }, month))); }))); }), view === 'years' && listOfYears.map(function (row, index) { return (React.createElement("tr", { key: index }, row.map(function (year, idx) { var date = new Date(year, 0, 1); var isDisabled = isDateDisabled(date, minDate, maxDate, disabledDates); var isSelected = isDateSelected(date, startDate, endDate); return (React.createElement("td", __assign({ className: classNames('calendar-cell year', { disabled: isDisabled, selected: isSelected, 'range-hover': selectionType === 'year' && (hoverDate && selectEndDate ? isDateInRange(date, startDate, hoverDate) : isDateInRange(date, hoverDate, endDate)), range: isDateInRange(date, startDate, endDate), }), key: idx, tabIndex: isDisabled ? -1 : 0 }, (isSelected && { 'aria-selected': true }), (!isDisabled && { onBlur: function () { return onCalendarMouseLeave(); }, onClick: function () { return onCalendarClick(date); }, onFocus: function () { return onCalendarMouseEnter(date); }, onKeyDown: function (event) { return onCalendarKeyDown(event, date); }, onMouseEnter: function () { return onCalendarMouseEnter(date); }, onMouseLeave: function () { return onCalendarMouseLeave(); }, })), React.createElement("div", { className: "calendar-cell-inner" }, new Date(year, 0, 1).toLocaleDateString(locale, { year: 'numeric' })))); }))); })))); }; var Navigation = function (props) { var ariaNavNextMonthLabel = props.ariaNavNextMonthLabel, ariaNavNextYearLabel = props.ariaNavNextYearLabel, ariaNavPrevMonthLabel = props.ariaNavPrevMonthLabel, ariaNavPrevYearLabel = props.ariaNavPrevYearLabel, calendarDate = props.calendarDate, locale = props.locale, navigation = props.navigation, navNextDoubleIcon = props.navNextDoubleIcon, navNextIcon = props.navNextIcon, navPrevDoubleIcon = props.navPrevDoubleIcon, navPrevIcon = props.navPrevIcon, navYearFirst = props.navYearFirst, onMonthClick = props.onMonthClick, onNavigationClick = props.onNavigationClick, onYearClick = props.onYearClick, view = props.view; return (React.createElement("div", { className: "calendar-nav" }, navigation && (React.createElement("div", { className: "calendar-nav-prev" }, React.createElement(CButton, { color: "transparent", size: "sm", "aria-label": ariaNavPrevYearLabel, onClick: function () { return onNavigationClick('prev', true); } }, navPrevDoubleIcon !== null && navPrevDoubleIcon !== void 0 ? navPrevDoubleIcon : (React.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-double-prev" }))), view === 'days' && (React.createElement(CButton, { color: "transparent", size: "sm", "aria-label": ariaNavPrevMonthLabel, onClick: function () { return onNavigationClick('prev'); } }, navPrevIcon !== null && navPrevIcon !== void 0 ? navPrevIcon : React.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-prev" }))))), React.createElement("div", __assign({ className: "calendar-nav-date", "aria-live": "polite" }, (navYearFirst && { style: { display: 'flex', justifyContent: 'center' } })), view === 'days' && (React.createElement(CButton, { color: "transparent", size: "sm", onClick: function () { return navigation && onMonthClick(); } }, calendarDate && calendarDate.toLocaleDateString(locale, { month: 'long' }))), React.createElement(CButton, __assign({ color: "transparent", size: "sm", onClick: function () { return navigation && onYearClick(); } }, (navYearFirst && { style: { order: '-1' } })), calendarDate && calendarDate.toLocaleDateString(locale, { year: 'numeric' }))), navigation && (React.createElement("div", { className: "calendar-nav-next" }, view === 'days' && (React.createElement(CButton, { color: "transparent", size: "sm", "aria-label": ariaNavNextMonthLabel, onClick: function () { return onNavigationClick('next'); } }, navNextIcon !== null && navNextIcon !== void 0 ? navNextIcon : React.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-next" }))), React.createElement(CButton, { color: "transparent", size: "sm", "aria-label": ariaNavNextYearLabel, onClick: function () { return onNavigationClick('next', true); } }, navNextDoubleIcon !== null && navNextDoubleIcon !== void 0 ? navNextDoubleIcon : (React.createElement("span", { className: "calendar-nav-icon calendar-nav-icon-double-next" }))))))); }; var CCalendar = forwardRef(function (_a, ref) { var _b; var _c = _a.ariaNavNextMonthLabel, ariaNavNextMonthLabel = _c === void 0 ? 'Next month' : _c, _d = _a.ariaNavNextYearLabel, ariaNavNextYearLabel = _d === void 0 ? 'Next year' : _d, _e = _a.ariaNavPrevMonthLabel, ariaNavPrevMonthLabel = _e === void 0 ? 'Previous month' : _e, _f = _a.ariaNavPrevYearLabel, ariaNavPrevYearLabel = _f === void 0 ? 'Previous year' : _f, startDate = _a.startDate, endDate = _a.endDate, _g = _a.calendarDate, calendarDate = _g === void 0 ? startDate || endDate || null : _g, _h = _a.calendars, calendars = _h === void 0 ? 1 : _h, className = _a.className, _j = _a.dayFormat, dayFormat = _j === void 0 ? 'numeric' : _j, disabledDates = _a.disabledDates, _k = _a.firstDayOfWeek, firstDayOfWeek = _k === void 0 ? 1 : _k, _l = _a.locale, locale = _l === void 0 ? 'default' : _l, maxDate = _a.maxDate, minDate = _a.minDate, _m = _a.navigation, navigation = _m === void 0 ? true : _m, navNextIcon = _a.navNextIcon, navNextDoubleIcon = _a.navNextDoubleIcon, navPrevIcon = _a.navPrevIcon, navPrevDoubleIcon = _a.navPrevDoubleIcon, navYearFirst = _a.navYearFirst, range = _a.range, _o = _a.selectAdjacementDays, selectAdjacementDays = _o === void 0 ? false : _o, selectEndDate = _a.selectEndDate, _p = _a.selectionType, selectionType = _p === void 0 ? 'day' : _p, _q = _a.showAdjacementDays, showAdjacementDays = _q === void 0 ? true : _q, _r = _a.showWeekNumber, showWeekNumber = _r === void 0 ? false : _r, _s = _a.weekdayFormat, weekdayFormat = _s === void 0 ? 2 : _s, weekNumbersLabel = _a.weekNumbersLabel, onCalendarDateChange = _a.onCalendarDateChange, onDateHover = _a.onDateHover, onEndDateChange = _a.onEndDateChange, onStartDateChange = _a.onStartDateChange, onSelectEndChange = _a.onSelectEndChange, onViewChanged = _a.onViewChanged; var calendarRef = useRef(null); var forkedRef = useForkedRef(ref, calendarRef); var isInitialMount = useRef(true); var _t = useState(null), _calendarDate = _t[0], setCalendarDate = _t[1]; useEffect(function () { if (selectionType === 'day' || selectionType === 'week') { setView('days'); return; } if (selectionType === 'month') { setView('months'); return; } if (selectionType === 'year') { setView('years'); return; } }, [selectionType]); useEffect(function () { if (calendarDate === null) { setCalendarDate(new Date()); return; } if (calendarDate) { var date = convertToDateObject(calendarDate, selectionType); !isSameDateAs(_calendarDate, date) && setCalendarDate(date); } }, [calendarDate]); var _u = useStateWithCallback(startDate ? convertToDateObject(startDate, selectionType) : null, function () { return onStartDateChange && onStartDateChange(getDateBySelectionType(_startDate, selectionType)); }, !isInitialMount.current), _startDate = _u[0], setStartDate = _u[1]; useEffect(function () { var date = startDate ? convertToDateObject(startDate, selectionType) : null; if (!isSameDateAs(date, _startDate)) { setStartDate(date); } }, [startDate]); var _v = useStateWithCallback(endDate ? convertToDateObject(endDate, selectionType) : null, function () { return onEndDateChange && onEndDateChange(getDateBySelectionType(_endDate, selectionType)); }, !isInitialMount.current), _endDate = _v[0], setEndDate = _v[1]; useEffect(function () { var date = endDate ? convertToDateObject(endDate, selectionType) : null; if (!isSameDateAs(date, _endDate)) { setEndDate(date); } }, [endDate]); var _w = useState(null), _hoverDate = _w[0], setHoverDate = _w[1]; var _x = useState(maxDate ? convertToDateObject(maxDate, selectionType) : null), _maxDate = _x[0], setMaxDate = _x[1]; useEffect(function () { maxDate && setMaxDate(convertToDateObject(maxDate, selectionType)); }, [maxDate]); var _y = useState(minDate ? convertToDateObject(minDate, selectionType) : null), _minDate = _y[0], setMinDate = _y[1]; useEffect(function () { minDate && setMinDate(convertToDateObject(minDate, selectionType)); }, [minDate]); var _z = useStateWithCallback(selectEndDate, onSelectEndChange), _selectEndDate = _z[0], setSelectEndDate = _z[1]; useEffect(function () { setSelectEndDate(selectEndDate); }, [selectEndDate]); useEffect(function () { !isInitialMount.current && typeof _selectEndDate === 'boolean' && onSelectEndChange && onSelectEndChange(_selectEndDate); }, [_selectEndDate]); var _0 = useStateWithCallback('days', onViewChanged), view = _0[0], setView = _0[1]; useEffect(function () { isInitialMount.current = false; }, []); var setCalendarPage = function (years, months, setMonth) { if (months === void 0) { months = 0; } if (_calendarDate === null) { return; } var year = _calendarDate.getFullYear(); var month = _calendarDate.getMonth(); var d = new Date(year, month, 1); years && d.setFullYear(d.getFullYear() + years); months && d.setMonth(d.getMonth() + months); setCalendarDate(d); onCalendarDateChange && onCalendarDateChange(d); }; var handleCalendarClick = function (date, index) { if (isDateDisabled(date, _minDate, _maxDate, disabledDates)) { return; } var _date = new Date(date); if (view === 'days') { setCalendarDate(index ? new Date(_date.setMonth(_date.getMonth() - index)) : _date); } if (view === 'months' && selectionType !== 'month') { setCalendarDate(index ? new Date(_date.setMonth(_date.getMonth() - index)) : _date); setView('days'); return; } if (view === 'years' && selectionType !== 'year') { setCalendarDate(index ? new Date(_date.setFullYear(_date.getFullYear() - index)) : _date); setView('months'); return; } if (range) { if (_selectEndDate) { setSelectEndDate(false); if (_startDate && _startDate > date) { setStartDate(null); setEndDate(null); return; } if (isDisableDateInRange(_startDate, date, disabledDates)) { setStartDate(null); setEndDate(null); return; } setEndDate(date); return; } if (_endDate && _endDate < date) { setStartDate(null); setEndDate(null); return; } if (isDisableDateInRange(date, _endDate, disabledDates)) { setStartDate(null); setEndDate(null); return; } setSelectEndDate(true); setStartDate(date); return; } setStartDate(date); }; var handleCalendarKeyDown = function (event, date, index) { if (event.code === 'Space' || event.key === 'Enter') { event.preventDefault(); handleCalendarClick(date, index); } if (event.key === 'ArrowRight' || event.key === 'ArrowLeft' || event.key === 'ArrowUp' || event.key === 'ArrowDown') { event.preventDefault(); if (maxDate && date >= convertToDateObject(maxDate, selectionType) && (event.key === 'ArrowRight' || event.key === 'ArrowDown')) { return; } if (minDate && date <= convertToDateObject(minDate, selectionType) && (event.key === 'ArrowLeft' || event.key === 'ArrowUp')) { return; } var element_1 = event.target; if (selectionType === 'week' && element_1.tabIndex === -1) { element_1 = element_1.closest('tr[tabindex="0"]'); } var list_1 = [].concat.apply([], Element.prototype.querySelectorAll.call(calendarRef.current, selectionType === 'week' ? 'tr[tabindex="0"]' : 'td[tabindex="0"]')); var index_1 = list_1.indexOf(element_1); var first = index_1 === 0; var last = index_1 === list_1.length - 1; var toBoundary = { start: index_1, end: list_1.length - (index_1 + 1), }; var gap_1 = { ArrowRight: 1, ArrowLeft: -1, ArrowUp: selectionType === 'week' && view === 'days' ? -1 : view === 'days' ? -7 : -3, ArrowDown: selectionType === 'week' && view === 'days' ? 1 : view === 'days' ? 7 : 3, }; if ((event.key === 'ArrowRight' && last) || (event.key === 'ArrowDown' && toBoundary['end'] < gap_1['ArrowDown']) || (event.key === 'ArrowLeft' && first) || (event.key === 'ArrowUp' && toBoundary['start'] < Math.abs(gap_1['ArrowUp']))) { if (view === 'days') { setCalendarPage(0, event.key === 'ArrowRight' || event.key === 'ArrowDown' ? 1 : -1); } if (view === 'months') { setCalendarPage(event.key === 'ArrowRight' || event.key === 'ArrowDown' ? 1 : -1); } if (view === 'years') { setCalendarPage(event.key === 'ArrowRight' || event.key === 'ArrowDown' ? 10 : -10); } setTimeout(function () { var _a; var _list = [].concat.apply([], Element.prototype.querySelectorAll.call((_a = element_1.parentNode) === null || _a === void 0 ? void 0 : _a.parentNode, 'td[tabindex="0"], tr[tabindex="0"]')); if (_list.length > 0 && event.key === 'ArrowRight') { _list[0].focus(); } if (_list.length > 0 && event.key === 'ArrowLeft') { _list[_list.length - 1].focus(); } if (_list.length > 0 && event.key === 'ArrowDown') { _list[gap_1['ArrowDown'] - (list_1.length - index_1)].focus(); } if (_list.length > 0 && event.key === 'ArrowUp') { _list[_list.length - (Math.abs(gap_1['ArrowUp']) + 1 - (index_1 + 1))].focus(); } }, 1); return; } if (list_1[index_1 + gap_1[event.key]].tabIndex === 0) { list_1[index_1 + gap_1[event.key]].focus(); return; } for (var i = index_1; i < list_1.length; event.key === 'ArrowRight' || event.key === 'ArrowDown' ? i++ : i--) { if (list_1[i + gap_1[event.key]].tabIndex === 0) { list_1[i + gap_1[event.key]].focus(); break; } } } }; var handleCalendarMouseEnter = function (date) { if (isDateDisabled(date, _minDate, _maxDate, disabledDates)) { return; } setHoverDate(date); date && onDateHover && onDateHover(getDateBySelectionType(date, selectionType)); }; var handleCalendarMouseLeave = function () { setHoverDate(null); onDateHover && onDateHover(null); }; var handleNavigationOnClick = function (direction, double) { if (double === void 0) { double = false; } if (direction === 'prev') { if (double) { setCalendarPage(view === 'years' ? -10 : -1); return; } if (view !== 'days') { setCalendarPage(-1); return; } setCalendarPage(0, -1); return; } if (direction === 'next') { if (double) { setCalendarPage(view === 'years' ? 10 : 1); return; } if (view !== 'days') { setCalendarPage(1); return; } setCalendarPage(0, 1); return; } }; return (React.createElement("div", { className: classNames('calendars', (_b = {}, _b["select-".concat(selectionType)] = selectionType && view === 'days', _b['show-week-numbers'] = showWeekNumber, _b), className), ref: forkedRef }, _calendarDate && Array.from({ length: calendars }, function (_, index) { var calendarDate = getCalendarDate(_calendarDate, index, view); return (React.createElement("div", { className: classNames('calendar', view), key: index }, React.createElement(Navigation, { ariaNavNextMonthLabel: ariaNavNextMonthLabel, ariaNavNextYearLabel: ariaNavNextYearLabel, ariaNavPrevMonthLabel: ariaNavPrevMonthLabel, ariaNavPrevYearLabel: ariaNavPrevYearLabel, calendarDate: calendarDate, locale: locale, navigation: navigation, navNextDoubleIcon: navNextDoubleIcon, navNextIcon: navNextIcon, navPrevDoubleIcon: navPrevDoubleIcon, navPrevIcon: navPrevIcon, navYearFirst: navYearFirst, onMonthClick: function () { return setView('months'); }, onNavigationClick: handleNavigationOnClick, onYearClick: function () { return setView('years'); }, view: view }), React.createElement(Calendar, { calendarDate: calendarDate, dayFormat: dayFormat, disabledDates: disabledDates, endDate: _endDate, firstDayOfWeek: firstDayOfWeek, hoverDate: _hoverDate, locale: locale, maxDate: _maxDate, minDate: _minDate, onCalendarClick: function (date) { return handleCalendarClick(date, index); }, onCalendarKeyDown: function (event, date) { return handleCalendarKeyDown(event, date, index); }, onCalendarMouseEnter: handleCalendarMouseEnter, onCalendarMouseLeave: handleCalendarMouseLeave, order: index, selectAdjacementDays: selectAdjacementDays, selectEndDate: _selectEndDate, selectionType: selectionType, showAdjacementDays: showAdjacementDays, showWeekNumber: showWeekNumber, startDate: _startDate, view: view, weekdayFormat: weekdayFormat, weekNumbersLabel: weekNumbersLabel }))); }))); }); CCalendar.propTypes = { ariaNavNextMonthLabel: PropTypes.string, ariaNavNextYearLabel: PropTypes.string, ariaNavPrevMonthLabel: PropTypes.string, ariaNavPrevYearLabel: PropTypes.string, className: PropTypes.string, calendarDate: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.string]), calendars: PropTypes.number, dayFormat: PropTypes.oneOfType([ PropTypes.func, PropTypes.oneOf(['2-digit', 'numeric']), ]), disabledDates: PropTypes.array, endDate: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.string]), firstDayOfWeek: PropTypes.number, locale: PropTypes.string, maxDate: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.string]), minDate: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.string]), navigation: PropTypes.bool, navNextIcon: PropTypes.node, navNextDoubleIcon: PropTypes.node, navPrevIcon: PropTypes.node, navPrevDoubleIcon: PropTypes.node, navYearFirst: PropTypes.bool, range: PropTypes.bool, selectAdjacementDays: PropTypes.bool, selectEndDate: PropTypes.bool, selectionType: PropTypes.oneOf(['day', 'week', 'month', 'year']), showAdjacementDays: PropTypes.bool, showWeekNumber: PropTypes.bool, startDate: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.string]), weekdayFormat: PropTypes.oneOfType([ PropTypes.func, PropTypes.number, PropTypes.oneOf(['long', 'narrow', 'short']), ]), weekNumbersLabel: PropTypes.string, onDateHover: PropTypes.func, onCalendarDateChange: PropTypes.func, onEndDateChange: PropTypes.func, onSelectEndChange: PropTypes.func, onStartDateChange: PropTypes.func, onViewChanged: PropTypes.func, }; CCalendar.displayName = 'CCalendar'; export { CCalendar }; //# sourceMappingURL=CCalendar.js.map