@coreui/react-pro
Version:
UI Components Library for React.js
221 lines (217 loc) • 7.5 kB
JavaScript
var tslib_es6 = require('../../node_modules/tslib/tslib.es6.js');
var convertIsoWeekToDate = function (isoWeek) {
var _a = isoWeek.split(/w/i), year = _a[0], week = _a[1];
// Get date for 4th of January for year
var date = new Date(Number(year), 0, 4);
// Get previous Monday, add 7 days for each week after first
date.setDate(date.getDate() - (date.getDay() || 7) + 1 + (Number(week) - 1) * 7);
return date;
};
var convertToDateObject = function (date, selectionType) {
if (date instanceof Date) {
return date;
}
if (selectionType === 'week') {
return convertIsoWeekToDate(date);
}
return new Date(Date.parse(date));
};
var createGroupsInArray = function (arr, numberOfGroups) {
var perGroup = Math.ceil(arr.length / numberOfGroups);
return Array.from({ length: numberOfGroups })
.fill('')
.map(function (_, i) { return arr.slice(i * perGroup, (i + 1) * perGroup); });
};
var getCalendarDate = function (calendarDate, order, view) {
if (order !== 0 && view === 'days') {
return new Date(calendarDate.getFullYear(), calendarDate.getMonth() + order, 1);
}
if (order !== 0 && view === 'months') {
return new Date(calendarDate.getFullYear() + order, calendarDate.getMonth(), 1);
}
if (order !== 0 && view === 'years') {
return new Date(calendarDate.getFullYear() + 12 * order, calendarDate.getMonth(), 1);
}
return calendarDate;
};
var getDateBySelectionType = function (date, selectionType) {
if (date === null) {
return null;
}
if (selectionType === 'week') {
return "".concat(date.getFullYear(), "W").concat(getWeekNumber(date));
}
if (selectionType === 'month') {
var monthNumber = "0".concat(date.getMonth() + 1).slice(-2);
return "".concat(date.getFullYear(), "-").concat(monthNumber);
}
if (selectionType === 'year') {
return "".concat(date.getFullYear());
}
return date;
};
var getMonthsNames = function (locale) {
var months = [];
var d = new Date();
d.setDate(1);
for (var i = 0; i < 12; i++) {
d.setMonth(i);
months.push(d.toLocaleString(locale, { month: 'short' }));
}
return months;
};
var getYears = function (year) {
var years = [];
for (var _year = year - 6; _year < year + 6; _year++) {
years.push(_year);
}
return years;
};
var getLeadingDays = function (year, month, firstDayOfWeek) {
// 0: sunday
// 1: monday
var dates = [];
var d = new Date(year, month);
var y = d.getFullYear();
var m = d.getMonth();
var firstWeekday = new Date(y, m, 1).getDay();
var leadingDays = 6 - (6 - firstWeekday) - firstDayOfWeek;
if (firstDayOfWeek) {
leadingDays = leadingDays < 0 ? 7 + leadingDays : leadingDays;
}
for (var i = leadingDays * -1; i < 0; i++) {
dates.push({
date: new Date(y, m, i + 1),
month: 'previous',
});
}
return dates;
};
var getMonthDays = function (year, month) {
var dates = [];
var lastDay = new Date(year, month + 1, 0).getDate();
for (var i = 1; i <= lastDay; i++) {
dates.push({
date: new Date(year, month, i),
month: 'current',
});
}
return dates;
};
var getTrailingDays = function (year, month, leadingDays, monthDays) {
var dates = [];
var days = 42 - (leadingDays.length + monthDays.length);
for (var i = 1; i <= days; i++) {
dates.push({
date: new Date(year, month + 1, i),
month: 'next',
});
}
return dates;
};
var getWeekNumber = function (date) {
var week1 = new Date(date.getFullYear(), 0, 4);
return (1 +
Math.round(((date.getTime() - week1.getTime()) / 86400000 - 3 + ((week1.getDay() + 6) % 7)) / 7));
};
var getMonthDetails = function (year, month, firstDayOfWeek) {
var daysPrevMonth = getLeadingDays(year, month, firstDayOfWeek);
var daysThisMonth = getMonthDays(year, month);
var daysNextMonth = getTrailingDays(year, month, daysPrevMonth, daysThisMonth);
var days = tslib_es6.__spreadArray(tslib_es6.__spreadArray(tslib_es6.__spreadArray([], daysPrevMonth, true), daysThisMonth, true), daysNextMonth, true);
var weeks = [];
days.forEach(function (day, index) {
if (index % 7 === 0 || weeks.length === 0) {
weeks.push({
days: [],
});
}
if ((index + 1) % 7 === 0) {
weeks[weeks.length - 1].weekNumber = getWeekNumber(day.date);
}
weeks[weeks.length - 1].days.push(day);
});
return weeks;
};
var isDisableDateInRange = function (startDate, endDate, dates) {
if (startDate && endDate) {
var date = new Date(startDate);
var disabled = false;
while (date < endDate) {
date.setDate(date.getDate() + 1);
if (isDateDisabled(date, null, null, dates)) {
disabled = true;
break;
}
}
return disabled;
}
return false;
};
var isDateDisabled = function (date, min, max, dates) {
var disabled;
if (dates) {
dates.forEach(function (_date) {
if (Array.isArray(_date) && isDateInRange(date, _date[0], _date[1])) {
disabled = true;
}
if (_date instanceof Date && isSameDateAs(date, _date)) {
disabled = true;
}
});
}
if (min && date < min) {
disabled = true;
}
if (max && date > max) {
disabled = true;
}
return disabled;
};
var isDateInRange = function (date, start, end) {
var _date = removeTimeFromDate(date);
var _start = start ? removeTimeFromDate(start) : null;
var _end = end ? removeTimeFromDate(end) : null;
return _start && _end && _start <= _date && _date <= _end;
};
var isDateSelected = function (date, start, end) {
return (start && isSameDateAs(start, date)) || (end && isSameDateAs(end, date));
};
var isSameDateAs = function (date, date2) {
if (date instanceof Date && date2 instanceof Date) {
return (date.getDate() === date2.getDate() &&
date.getMonth() === date2.getMonth() &&
date.getFullYear() === date2.getFullYear());
}
if (date === null && date2 === null) {
return true;
}
return false;
};
var isToday = function (date) {
var today = new Date();
return (date.getDate() === today.getDate() &&
date.getMonth() === today.getMonth() &&
date.getFullYear() === today.getFullYear());
};
var removeTimeFromDate = function (date) {
return new Date(date.getFullYear(), date.getMonth(), date.getDate());
};
exports.convertIsoWeekToDate = convertIsoWeekToDate;
exports.convertToDateObject = convertToDateObject;
exports.createGroupsInArray = createGroupsInArray;
exports.getCalendarDate = getCalendarDate;
exports.getDateBySelectionType = getDateBySelectionType;
exports.getMonthDetails = getMonthDetails;
exports.getMonthsNames = getMonthsNames;
exports.getWeekNumber = getWeekNumber;
exports.getYears = getYears;
exports.isDateDisabled = isDateDisabled;
exports.isDateInRange = isDateInRange;
exports.isDateSelected = isDateSelected;
exports.isDisableDateInRange = isDisableDateInRange;
exports.isSameDateAs = isSameDateAs;
exports.isToday = isToday;
exports.removeTimeFromDate = removeTimeFromDate;
//# sourceMappingURL=utils.js.map
;