rsuite
Version:
A suite of react components
72 lines (54 loc) • 2.48 kB
JavaScript
;
exports.__esModule = true;
exports.getSafeCalendarDate = getSafeCalendarDate;
exports.getWeekHoverRange = exports.getMonthHoverRange = exports.isSameRange = void 0;
var _dateUtils = require("../utils/dateUtils");
function getSafeCalendarDate(_ref) {
var _value;
var value = _ref.value,
_ref$calendarKey = _ref.calendarKey,
calendarKey = _ref$calendarKey === void 0 ? 'start' : _ref$calendarKey;
// Update calendarDate if the value is not null
value = (_value = value) !== null && _value !== void 0 ? _value : [];
if (value[0] && value[1]) {
var diffMonth = (0, _dateUtils.differenceInCalendarMonths)(value[1], value[0]);
if (calendarKey === 'start') {
return [value[0], diffMonth <= 0 ? (0, _dateUtils.copyTime)({
from: value[1],
to: (0, _dateUtils.addMonths)(value[0], 1)
}) : value[1]];
} else if (calendarKey === 'end') {
return [diffMonth <= 0 ? (0, _dateUtils.copyTime)({
from: value[0],
to: (0, _dateUtils.addMonths)(value[1], -1)
}) : value[0], value[1]];
} // If only the start date
} else if (value[0]) {
return [value[0], (0, _dateUtils.addMonths)(value[0], 1)];
}
var todayDate = new Date();
return [todayDate, (0, _dateUtils.addMonths)(todayDate, 1)];
}
var isSameRange = function isSameRange(source, dest, format) {
// If both are null, reguard as same
if (null === source && null === dest) return true; // If only one is null, regard as different
if (null === source || null === dest) return false;
var result = (0, _dateUtils.isSameDay)(source[0], dest[0]) && (0, _dateUtils.isSameDay)(source[1], dest[1]);
if ((0, _dateUtils.shouldRenderTime)(format)) {
result && (result = (0, _dateUtils.isSameSecond)(source[0], dest[0]) && (0, _dateUtils.isSameSecond)(source[1], dest[1]));
}
return result;
};
exports.isSameRange = isSameRange;
var getMonthHoverRange = function getMonthHoverRange(date) {
return [(0, _dateUtils.startOfMonth)(date), (0, _dateUtils.endOfMonth)(date)];
};
exports.getMonthHoverRange = getMonthHoverRange;
var getWeekHoverRange = function getWeekHoverRange(isoWeek, date) {
if (isoWeek) {
// set to the first day of this week according to ISO 8601, 12:00 am
return [(0, _dateUtils.startOfISOWeek)(date), (0, _dateUtils.endOfISOWeek)(date)];
}
return [(0, _dateUtils.startOfWeek)(date), (0, _dateUtils.endOfWeek)(date)];
};
exports.getWeekHoverRange = getWeekHoverRange;