@chayns-components/date
Version:
A set of beautiful React components for developing your own applications with chayns.
73 lines (72 loc) • 2.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.isDateInRange = exports.getYearsBetween = exports.getNewDate = exports.getMonthAndYear = exports.formatMonth = exports.findNextDate = void 0;
var _date = require("./date");
const getMonthAndYear = date => {
const month = date.getMonth() + 1;
const year = date.getFullYear();
return {
month,
year
};
};
exports.getMonthAndYear = getMonthAndYear;
const isDateInRange = ({
minDate,
maxDate,
currentDate
}) => {
const monthStartOfCurrentDate = (0, _date.startOfMonth)(currentDate);
const monthStartOfMaxDate = (0, _date.startOfMonth)(maxDate);
const monthStartOfMinDate = (0, _date.startOfMonth)(minDate);
switch (true) {
case (0, _date.isAfter)(monthStartOfCurrentDate, monthStartOfMaxDate):
return monthStartOfMaxDate;
case (0, _date.isBefore)(monthStartOfCurrentDate, monthStartOfMinDate):
return monthStartOfMinDate;
default:
return monthStartOfCurrentDate;
}
};
exports.isDateInRange = isDateInRange;
const getNewDate = (index, currentDate) => {
const newDate = new Date(currentDate);
newDate.setMonth(currentDate.getMonth() + index);
if (currentDate.getMonth() === 11 && newDate.getMonth() === 0) {
newDate.setFullYear(currentDate.getFullYear() + 1);
}
if (currentDate.getMonth() === 0 && newDate.getMonth() === 11) {
newDate.setFullYear(currentDate.getFullYear() - 1);
}
return newDate;
};
exports.getNewDate = getNewDate;
const formatMonth = ({
month,
locale
}) => {
const date = new Date(2022, month - 1, 1);
return date.toLocaleString(locale, {
month: 'long'
});
};
exports.formatMonth = formatMonth;
const findNextDate = (date, dateArray) => {
const futureDates = dateArray.filter(d => d > date);
futureDates.sort((a, b) => a.getTime() - b.getTime());
return futureDates[0];
};
exports.findNextDate = findNextDate;
const getYearsBetween = (startDate, endDate) => {
const startYear = startDate.getFullYear();
const endYear = endDate.getFullYear();
const years = [];
for (let year = startYear; year <= endYear; year++) {
years.push(year);
}
return years;
};
exports.getYearsBetween = getYearsBetween;
//# sourceMappingURL=calendar.js.map