UNPKG

wix-style-react

Version:
87 lines (69 loc) 2.76 kB
"use strict"; 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;