You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

171 line
5.0 KiB

  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
  6. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  7. var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
  8. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  9. var _createClass2 = require('babel-runtime/helpers/createClass');
  10. var _createClass3 = _interopRequireDefault(_createClass2);
  11. var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
  12. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  13. var _inherits2 = require('babel-runtime/helpers/inherits');
  14. var _inherits3 = _interopRequireDefault(_inherits2);
  15. var _react = require('react');
  16. var _react2 = _interopRequireDefault(_react);
  17. var _propTypes = require('prop-types');
  18. var _propTypes2 = _interopRequireDefault(_propTypes);
  19. var _dateUtils = require('./dateUtils');
  20. var _DayButton = require('./DayButton');
  21. var _DayButton2 = _interopRequireDefault(_DayButton);
  22. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  23. var styles = {
  24. root: {
  25. display: 'flex',
  26. flexDirection: 'column',
  27. justifyContent: 'flex-start',
  28. fontWeight: 400,
  29. height: 228,
  30. lineHeight: 2,
  31. position: 'relative',
  32. textAlign: 'center',
  33. MozPaddingStart: 0
  34. },
  35. week: {
  36. display: 'flex',
  37. flexDirection: 'row',
  38. justifyContent: 'space-around',
  39. height: 34,
  40. marginBottom: 2
  41. }
  42. };
  43. var CalendarMonth = function (_Component) {
  44. (0, _inherits3.default)(CalendarMonth, _Component);
  45. function CalendarMonth() {
  46. var _ref;
  47. var _temp, _this, _ret;
  48. (0, _classCallCheck3.default)(this, CalendarMonth);
  49. for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
  50. args[_key] = arguments[_key];
  51. }
  52. return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = CalendarMonth.__proto__ || (0, _getPrototypeOf2.default)(CalendarMonth)).call.apply(_ref, [this].concat(args))), _this), _this.handleClickDay = function (event, date) {
  53. if (_this.props.onClickDay) {
  54. _this.props.onClickDay(event, date);
  55. }
  56. }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
  57. }
  58. (0, _createClass3.default)(CalendarMonth, [{
  59. key: 'isSelectedDateDisabled',
  60. value: function isSelectedDateDisabled() {
  61. return this.selectedDateDisabled;
  62. }
  63. }, {
  64. key: 'shouldDisableDate',
  65. value: function shouldDisableDate(day) {
  66. if (day === null) return false;
  67. var disabled = !(0, _dateUtils.isBetweenDates)(day, this.props.minDate, this.props.maxDate);
  68. if (!disabled && this.props.shouldDisableDate) disabled = this.props.shouldDisableDate(day);
  69. return disabled;
  70. }
  71. }, {
  72. key: 'getWeekElements',
  73. value: function getWeekElements() {
  74. var _this2 = this;
  75. var weekArray = this.props.utils.getWeekArray(this.props.displayDate, this.props.firstDayOfWeek);
  76. return weekArray.map(function (week, i) {
  77. return _react2.default.createElement(
  78. 'div',
  79. { key: i, style: styles.week },
  80. _this2.getDayElements(week, i)
  81. );
  82. }, this);
  83. }
  84. }, {
  85. key: 'getDayElements',
  86. value: function getDayElements(week, i) {
  87. var _this3 = this;
  88. var _props = this.props,
  89. DateTimeFormat = _props.DateTimeFormat,
  90. locale = _props.locale,
  91. selectedDate = _props.selectedDate;
  92. return week.map(function (day, j) {
  93. var isSameDate = (0, _dateUtils.isEqualDate)(selectedDate, day);
  94. var disabled = _this3.shouldDisableDate(day);
  95. var selected = !disabled && isSameDate;
  96. if (isSameDate) {
  97. _this3.selectedDateDisabled = disabled;
  98. }
  99. return _react2.default.createElement(_DayButton2.default, {
  100. DateTimeFormat: DateTimeFormat,
  101. locale: locale,
  102. date: day,
  103. disabled: disabled,
  104. key: 'db' + (i + j),
  105. onClick: _this3.handleClickDay,
  106. selected: selected
  107. });
  108. }, this);
  109. }
  110. }, {
  111. key: 'render',
  112. value: function render() {
  113. return _react2.default.createElement(
  114. 'div',
  115. { style: styles.root },
  116. this.getWeekElements()
  117. );
  118. }
  119. }]);
  120. return CalendarMonth;
  121. }(_react.Component);
  122. CalendarMonth.propTypes = process.env.NODE_ENV !== "production" ? {
  123. DateTimeFormat: _propTypes2.default.func.isRequired,
  124. autoOk: _propTypes2.default.bool,
  125. displayDate: _propTypes2.default.object.isRequired,
  126. firstDayOfWeek: _propTypes2.default.number,
  127. locale: _propTypes2.default.string.isRequired,
  128. maxDate: _propTypes2.default.object,
  129. minDate: _propTypes2.default.object,
  130. onClickDay: _propTypes2.default.func,
  131. selectedDate: _propTypes2.default.object.isRequired,
  132. shouldDisableDate: _propTypes2.default.func,
  133. utils: _propTypes2.default.object.isRequired
  134. } : {};
  135. exports.default = CalendarMonth;