suomifi-ui-components
Version:
Suomi.fi UI component library
129 lines (126 loc) • 4.19 kB
JavaScript
import { eachMonthOfInterval, startOfMonth, endOfMonth, addYears, isWithinInterval, isBefore, isAfter, isSameMonth, eachWeekOfInterval, endOfWeek, eachDayOfInterval, isToday, getDay, format, parse, addDays, addMonths, startOfWeek, isSameDay } from 'date-fns';
var weekStartsOn = 1;
var defaultDateAdapter = function defaultDateAdapter(formatString) {
if (formatString === void 0) {
formatString = 'd.M.y';
}
return {
format: function format$1(date) {
return format(date, formatString);
},
parse: function parse$1(value) {
return parse(value, formatString, new Date());
}
};
};
var yearOptions = function yearOptions(minDate, maxDate) {
var min = minDate.getFullYear();
var max = maxDate.getFullYear();
return Array.from({
length: max - min + 1
}, function (_, i) {
return min + i;
});
};
var monthOptions = function monthOptions(selectedDate, minDate, maxDate, texts) {
var year = selectedDate.getFullYear();
var months = eachMonthOfInterval({
start: new Date(year, 0, 1),
end: new Date(year, 11, 31)
});
return months.reduce(function (array, month, index) {
if (startOfMonth(minDate) > month || endOfMonth(maxDate) < month) ; else {
array.push({
name: texts.monthNames[index],
value: index
});
}
return array;
}, []);
};
var moveDays = function moveDays(date, days) {
return addDays(date, days);
};
var moveMonths = function moveMonths(date, months) {
return addMonths(date, months);
};
var moveYears = function moveYears(date, years) {
return addYears(date, years);
};
var firstDayOfMonth = function firstDayOfMonth(date) {
return startOfMonth(date);
};
var lastDayOfMonth = function lastDayOfMonth(date) {
return endOfMonth(date);
};
var firstDayOfWeek = function firstDayOfWeek(date) {
return startOfWeek(date, {
weekStartsOn: weekStartsOn
});
};
var lastDayOfWeek = function lastDayOfWeek(date) {
return endOfWeek(date, {
weekStartsOn: weekStartsOn
});
};
var daysMatch = function daysMatch(first, second) {
return isSameDay(first, second);
};
var dayIsInRange = function dayIsInRange(date, start, end) {
return isWithinInterval(date, {
start: start,
end: end
});
};
var dayIsBefore = function dayIsBefore(date, dateToCompare) {
return isBefore(date, dateToCompare);
};
var dayIsAfter = function dayIsAfter(date, dateToCompare) {
return isAfter(date, dateToCompare);
};
var monthIsSame = function monthIsSame(date, dateToCompare) {
return isSameMonth(date, dateToCompare);
};
var monthIsAfter = function monthIsAfter(date, dateToCompare) {
return isAfter(date, endOfMonth(dateToCompare));
};
var monthIsBefore = function monthIsBefore(date, dateToCompare) {
return isBefore(date, startOfMonth(dateToCompare));
};
var weekRows = function weekRows(month, minDate, maxDate) {
var start = startOfMonth(month);
var end = endOfMonth(month);
var firstDaysOfWeek = eachWeekOfInterval({
start: start,
end: end
}, {
weekStartsOn: weekStartsOn
});
var rows = firstDaysOfWeek.map(function (firstDay) {
var lastDay = endOfWeek(firstDay, {
weekStartsOn: weekStartsOn
});
var daysOfWeek = eachDayOfInterval({
start: firstDay,
end: lastDay
});
return daysOfWeek.map(function (date) {
return {
date: date,
number: date.getDate(),
current: isToday(date),
disabled: !isSameMonth(date, month) || !dayIsInRange(date, minDate, maxDate)
};
});
});
return rows;
};
var cellDateAriaLabel = function cellDateAriaLabel(date, texts) {
var month = texts.monthNames[date.getMonth()];
var dayIndex = getDay(date);
var index = dayIndex === 0 ? 6 : dayIndex - 1;
var weekDay = texts.weekDays[index];
return "".concat(date.getDate(), " ").concat(weekDay, " ").concat(month, " ").concat(date.getFullYear());
};
export { cellDateAriaLabel, dayIsAfter, dayIsBefore, dayIsInRange, daysMatch, defaultDateAdapter, firstDayOfMonth, firstDayOfWeek, lastDayOfMonth, lastDayOfWeek, monthIsAfter, monthIsBefore, monthIsSame, monthOptions, moveDays, moveMonths, moveYears, weekRows, yearOptions };
//# sourceMappingURL=dateUtils.js.map