suomifi-ui-components
Version:
Suomi.fi UI component library
149 lines (145 loc) • 4.63 kB
JavaScript
;
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