react-calendar-full
Version:
A full-featured React calendar component with event scheduling and monthly, weekly, and daily views.
98 lines (97 loc) • 2.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.formatDateToYYYYMMDD = exports.areDatesEqual = exports.datesOfWeek = exports.startOfWeek = exports.moveMonth = exports.moveDate = exports.getDateInfo = exports.monthsOfYear = exports.daysOfWeekShort = exports.daysOfWeek = void 0;
exports.daysOfWeek = [
'Sunday',
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday',
];
exports.daysOfWeekShort = [
'Sun',
'Mon',
'Tue',
'Wed',
'Thu',
'Fri',
'Sat',
];
exports.monthsOfYear = [
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December',
];
function getDateInfo(inputDate) {
const dayOfWeek = exports.daysOfWeek[inputDate.getDay()];
const month = exports.monthsOfYear[inputDate.getMonth()];
const dayOfMonth = inputDate.getDate();
const year = inputDate.getFullYear();
const startOfWeek = new Date(inputDate);
startOfWeek.setDate(startOfWeek.getDate() - startOfWeek.getDay());
const endOfWeek = new Date(startOfWeek);
endOfWeek.setDate(endOfWeek.getDate() + 6);
return {
dayOfWeek,
month,
startOfWeek,
endOfWeek,
dayOfMonth,
year,
};
}
exports.getDateInfo = getDateInfo;
function moveDate(date, amount) {
const nextDate = new Date(date);
nextDate.setDate(date.getDate() + amount);
return nextDate;
}
exports.moveDate = moveDate;
function moveMonth(date, amount) {
const newDate = new Date(date);
newDate.setMonth(date.getMonth() + amount);
return newDate;
}
exports.moveMonth = moveMonth;
function startOfWeek(date) {
const startOfWeek = new Date(date);
startOfWeek.setDate(startOfWeek.getDate() - startOfWeek.getDay());
return startOfWeek;
}
exports.startOfWeek = startOfWeek;
function datesOfWeek(date) {
let currentDate = startOfWeek(date);
const datesOfWeek = [];
Array(7)
.fill(null)
.forEach(() => {
datesOfWeek.push(currentDate);
currentDate = moveDate(currentDate, 1);
});
return datesOfWeek;
}
exports.datesOfWeek = datesOfWeek;
function areDatesEqual(date1, date2) {
return (date1.getFullYear() === date2.getFullYear() &&
date1.getMonth() === date2.getMonth() &&
date1.getDate() === date2.getDate());
}
exports.areDatesEqual = areDatesEqual;
function formatDateToYYYYMMDD(date) {
const year = date.getFullYear();
const month = (date.getMonth() + 1).toString().padStart(2, '0'); // Months are 0-indexed, so +1 is needed
const day = date.getDate().toString().padStart(2, '0');
return `${year}-${month}-${day}`;
}
exports.formatDateToYYYYMMDD = formatDateToYYYYMMDD;