wix-style-react
Version:
87 lines (69 loc) • 2.76 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.CalendarView = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _addMonths = _interopRequireDefault(require("date-fns/addMonths"));
var _startOfMonth = _interopRequireDefault(require("date-fns/startOfMonth"));
var _endOfMonth = _interopRequireDefault(require("date-fns/endOfMonth"));
var _endOfDay = _interopRequireDefault(require("date-fns/endOfDay"));
var _isWithinInterval = _interopRequireDefault(require("date-fns/isWithinInterval"));
var _isAfter = _interopRequireDefault(require("date-fns/isAfter"));
var _isBefore = _interopRequireDefault(require("date-fns/isBefore"));
var _differenceInCalendarDays = _interopRequireDefault(require("date-fns/differenceInCalendarDays"));
/**
* Date utils for a multi-month calendar view.
*/
var CalendarView = /*#__PURE__*/function () {
/**
* @param {*} firstMonthDate a date that represents the first displayed month in the calendar view. (Does not have to be the 1st of that month)
* @param {*} numOfMonths number of months that are displayed in the view
*/
function CalendarView(firstMonthDate, numOfMonths) {
(0, _classCallCheck2["default"])(this, CalendarView);
this.startDate = (0, _startOfMonth["default"])(firstMonthDate);
this.endDate = (0, _endOfDay["default"])((0, _endOfMonth["default"])((0, _addMonths["default"])(this.startDate, numOfMonths - 1)));
}
/**
* Is the given date contained in the calendar view
*
* @param {*} date
* @returns
* @memberof CalendarView
*/
(0, _createClass2["default"])(CalendarView, [{
key: "isContained",
value: function isContained(date) {
return (0, _isWithinInterval["default"])(date, {
start: this.startDate,
end: this.endDate
});
}
}, {
key: "isRangeFits",
value: function isRangeFits(from, to) {
return (0, _differenceInCalendarDays["default"])(to, from) <= (0, _differenceInCalendarDays["default"])(this.endDate, this.startDate);
}
/**
* Is the given date after the view's end date
*/
}, {
key: "isAfterView",
value: function isAfterView(date) {
return (0, _isAfter["default"])(date, this.endDate);
}
/**
* Is the given date before the view's start date
*/
}, {
key: "isBeforeView",
value: function isBeforeView(date) {
return (0, _isBefore["default"])(date, this.startDate);
}
}]);
return CalendarView;
}();
exports.CalendarView = CalendarView;