@roo-ui/components
Version:
109 lines (86 loc) • 4.04 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _dayzed = require('dayzed');
var _dayzed2 = _interopRequireDefault(_dayzed);
var _dateFns = require('date-fns');
var _ = require('../');
var _CalendarNav = require('./components/CalendarNav');
var _CalendarNav2 = _interopRequireDefault(_CalendarNav);
var _CalendarMonth = require('./components/CalendarMonth');
var _CalendarMonth2 = _interopRequireDefault(_CalendarMonth);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
var DatePicker = function DatePicker(_ref) {
var monthNames = _ref.monthNames,
weekdayNames = _ref.weekdayNames,
monthsToDisplay = _ref.monthsToDisplay,
stacked = _ref.stacked,
disabledDates = _ref.disabledDates,
interactiveDisabledDates = _ref.interactiveDisabledDates,
rest = _objectWithoutProperties(_ref, ['monthNames', 'weekdayNames', 'monthsToDisplay', 'stacked', 'disabledDates', 'interactiveDisabledDates']);
return _react2.default.createElement(_dayzed2.default, _extends({}, rest, {
monthsToDisplay: monthsToDisplay,
render: function render(_ref2) {
var calendars = _ref2.calendars,
getBackProps = _ref2.getBackProps,
getForwardProps = _ref2.getForwardProps,
getDateProps = _ref2.getDateProps;
if (!calendars.length) return null;
return _react2.default.createElement(
_.Box,
{ position: 'relative' },
_react2.default.createElement(_CalendarNav2.default, {
prevProps: getBackProps({ calendars: calendars }),
nextProps: getForwardProps({ calendars: calendars })
}),
_react2.default.createElement(
_.Flex,
{ flexWrap: 'wrap' },
calendars.map(function (calendar) {
return _react2.default.createElement(_CalendarMonth2.default, {
key: '' + calendar.month + calendar.year,
monthsToDisplay: monthsToDisplay,
monthName: monthNames[calendar.month],
month: calendar.month,
year: calendar.year,
stacked: stacked,
weekdayNames: weekdayNames,
weeks: calendar.weeks,
getDateProps: getDateProps,
disabledDates: disabledDates,
interactiveDisabledDates: interactiveDisabledDates
});
})
)
);
}
}));
};
DatePicker.defaultProps = {
monthsToDisplay: 1,
firstDayOfWeek: 1,
stacked: false,
minDate: (0, _dateFns.subDays)(new Date(), 1),
disabledDates: [],
monthNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
weekdayNames: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
interactiveDisabledDates: false
};
DatePicker.propTypes = _extends({}, _dayzed2.default.propTypes, {
monthsToDisplay: _propTypes2.default.number,
firstDayOfWeek: _propTypes2.default.number,
stacked: _propTypes2.default.bool,
minDate: _propTypes2.default.instanceOf(Date),
disabledDates: _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(Date)),
interactiveDisabledDates: _propTypes2.default.bool,
monthNames: _propTypes2.default.arrayOf(_propTypes2.default.string),
weekdayNames: _propTypes2.default.arrayOf(_propTypes2.default.string)
});
exports.default = DatePicker;