UNPKG

@roo-ui/components

Version:

112 lines (89 loc) 4.08 kB
'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 _styledSystem = require('styled-system'); var _styledComponents = require('styled-components'); var _styledComponents2 = _interopRequireDefault(_styledComponents); var _ = require('../../../'); var _CalendarWeekdays = require('../CalendarWeekdays'); var _CalendarWeekdays2 = _interopRequireDefault(_CalendarWeekdays); var _CalendarDays = require('../CalendarDays'); var _CalendarDays2 = _interopRequireDefault(_CalendarDays); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } var MonthWrapper = (0, _styledComponents2.default)(_.Box).withConfig({ displayName: 'CalendarMonth__MonthWrapper' })(['text-align:center;padding:0 ', ';width:', ';', ';'], (0, _styledSystem.themeGet)('space.4'), function (props) { return 100 / props.monthsToDisplay + '%'; }, function (props) { return props.stacked && (0, _styledComponents.css)(['width:100%;margin-top:', ';&:first-of-type{margin-top:0;}'], (0, _styledSystem.themeGet)('space.8')); }); MonthWrapper.displayName = 'MonthWrapper'; var CalendarMonth = function CalendarMonth(_ref) { var monthsToDisplay = _ref.monthsToDisplay, month = _ref.month, monthName = _ref.monthName, year = _ref.year, stacked = _ref.stacked, weekdayNames = _ref.weekdayNames, weeks = _ref.weeks, getDateProps = _ref.getDateProps, disabledDates = _ref.disabledDates, interactiveDisabledDates = _ref.interactiveDisabledDates, onMouseEnterOfDay = _ref.onMouseEnterOfDay, isInRange = _ref.isInRange; return _react2.default.createElement( MonthWrapper, { monthsToDisplay: monthsToDisplay, stacked: stacked }, _react2.default.createElement( _.Text, { textStyle: 'caps' }, monthName, ' ', year ), _react2.default.createElement(_CalendarWeekdays2.default, { month: month, year: year, weekdayNames: weekdayNames }), _react2.default.createElement(_CalendarDays2.default, { weeks: weeks, month: month, year: year, getDateProps: getDateProps, disabledDates: disabledDates, interactiveDisabledDates: interactiveDisabledDates, onMouseEnterOfDay: onMouseEnterOfDay, isInRange: isInRange }) ); }; MonthWrapper.defaultProps = _extends({}, _.Box.defaultProps, { blacklist: [].concat(_toConsumableArray(Object.keys(_.Box.propTypes)), ['monthsToDisplay', 'stacked']) }); CalendarMonth.defaultProps = { monthsToDisplay: 1, stacked: false, disabledDates: [], interactiveDisabledDates: false, isInRange: function isInRange() {}, onMouseEnterOfDay: function onMouseEnterOfDay() {} }; CalendarMonth.propTypes = { month: _propTypes2.default.number.isRequired, year: _propTypes2.default.number.isRequired, monthName: _propTypes2.default.string.isRequired, weeks: _propTypes2.default.arrayOf(_propTypes2.default.array).isRequired, weekdayNames: _propTypes2.default.arrayOf(_propTypes2.default.string).isRequired, disabledDates: _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(Date)), interactiveDisabledDates: _propTypes2.default.bool, monthsToDisplay: _propTypes2.default.number, stacked: _propTypes2.default.bool, getDateProps: _propTypes2.default.func.isRequired, onMouseEnterOfDay: _propTypes2.default.func, isInRange: _propTypes2.default.func }; exports.default = CalendarMonth;