UNPKG

suomifi-ui-components

Version:
149 lines (145 loc) 4.63 kB
'use strict'; var dateFns = require('date-fns'); var weekStartsOn = 1; var defaultDateAdapter = function defaultDateAdapter(formatString) { if (formatString === void 0) { formatString = 'd.M.y'; } return { format: function format(date) { return dateFns.format(date, formatString); }, parse: function parse(value) { return dateFns.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 = dateFns.eachMonthOfInterval({ start: new Date(year, 0, 1), end: new Date(year, 11, 31) }); return months.reduce(function (array, month, index) { if (dateFns.startOfMonth(minDate) > month || dateFns.endOfMonth(maxDate) < month) ; else { array.push({ name: texts.monthNames[index], value: index }); } return array; }, []); }; var moveDays = function moveDays(date, days) { return dateFns.addDays(date, days); }; var moveMonths = function moveMonths(date, months) { return dateFns.addMonths(date, months); }; var moveYears = function moveYears(date, years) { return dateFns.addYears(date, years); }; var firstDayOfMonth = function firstDayOfMonth(date) { return dateFns.startOfMonth(date); }; var lastDayOfMonth = function lastDayOfMonth(date) { return dateFns.endOfMonth(date); }; var firstDayOfWeek = function firstDayOfWeek(date) { return dateFns.startOfWeek(date, { weekStartsOn: weekStartsOn }); }; var lastDayOfWeek = function lastDayOfWeek(date) { return dateFns.endOfWeek(date, { weekStartsOn: weekStartsOn }); }; var daysMatch = function daysMatch(first, second) { return dateFns.isSameDay(first, second); }; var dayIsInRange = function dayIsInRange(date, start, end) { return dateFns.isWithinInterval(date, { start: start, end: end }); }; var dayIsBefore = function dayIsBefore(date, dateToCompare) { return dateFns.isBefore(date, dateToCompare); }; var dayIsAfter = function dayIsAfter(date, dateToCompare) { return dateFns.isAfter(date, dateToCompare); }; var monthIsSame = function monthIsSame(date, dateToCompare) { return dateFns.isSameMonth(date, dateToCompare); }; var monthIsAfter = function monthIsAfter(date, dateToCompare) { return dateFns.isAfter(date, dateFns.endOfMonth(dateToCompare)); }; var monthIsBefore = function monthIsBefore(date, dateToCompare) { return dateFns.isBefore(date, dateFns.startOfMonth(dateToCompare)); }; var weekRows = function weekRows(month, minDate, maxDate) { var start = dateFns.startOfMonth(month); var end = dateFns.endOfMonth(month); var firstDaysOfWeek = dateFns.eachWeekOfInterval({ start: start, end: end }, { weekStartsOn: weekStartsOn }); var rows = firstDaysOfWeek.map(function (firstDay) { var lastDay = dateFns.endOfWeek(firstDay, { weekStartsOn: weekStartsOn }); var daysOfWeek = dateFns.eachDayOfInterval({ start: firstDay, end: lastDay }); return daysOfWeek.map(function (date) { return { date: date, number: date.getDate(), current: dateFns.isToday(date), disabled: !dateFns.isSameMonth(date, month) || !dayIsInRange(date, minDate, maxDate) }; }); }); return rows; }; var cellDateAriaLabel = function cellDateAriaLabel(date, texts) { var month = texts.monthNames[date.getMonth()]; var dayIndex = dateFns.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()); }; exports.cellDateAriaLabel = cellDateAriaLabel; exports.dayIsAfter = dayIsAfter; exports.dayIsBefore = dayIsBefore; exports.dayIsInRange = dayIsInRange; exports.daysMatch = daysMatch; exports.defaultDateAdapter = defaultDateAdapter; exports.firstDayOfMonth = firstDayOfMonth; exports.firstDayOfWeek = firstDayOfWeek; exports.lastDayOfMonth = lastDayOfMonth; exports.lastDayOfWeek = lastDayOfWeek; exports.monthIsAfter = monthIsAfter; exports.monthIsBefore = monthIsBefore; exports.monthIsSame = monthIsSame; exports.monthOptions = monthOptions; exports.moveDays = moveDays; exports.moveMonths = moveMonths; exports.moveYears = moveYears; exports.weekRows = weekRows; exports.yearOptions = yearOptions; //# sourceMappingURL=dateUtils.js.map