UNPKG

suomifi-ui-components

Version:
129 lines (126 loc) 4.19 kB
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