UNPKG

@kubit-ui-web/react-components

Version:

Kubit React Components is a customizable, accessible library of React web components, designed to enhance your application's user experience

98 lines 4.17 kB
const ONE_DAY = 1; const DAYS_PER_WEEK = 7; const isSameMonthAndYear = (date1, date2) => { return date1.getMonth() === date2.getMonth() && date1.getFullYear() === date2.getFullYear(); }; export const getFirstEmptyAndDisabledDays = (emptyDaysList, minDate, currentDate) => isSameMonthAndYear(minDate, currentDate) ? emptyDaysList.length + minDate.getDate() - 1 : emptyDaysList.length; export const getDaysAndEmptyDaysUntilMaxDate = (emptyDaysList, maxDate, currentDate) => isSameMonthAndYear(maxDate, currentDate) ? emptyDaysList.length + maxDate.getDate() - 1 : emptyDaysList.length; export const handleKeyUpMove = ({ dayList, maxDate, minDate, firstEmptyAndDisabledDays, daysAndEmptyDaysUntilMaxDate, currentDate, }) => { return previous => { if (isSameMonthAndYear(minDate, currentDate)) { if (previous === firstEmptyAndDisabledDays) { return dayList.length - 1; } } if (previous === firstEmptyAndDisabledDays) { return isSameMonthAndYear(maxDate, currentDate) ? daysAndEmptyDaysUntilMaxDate : dayList.length - 1; } if (previous <= firstEmptyAndDisabledDays + 7) { return firstEmptyAndDisabledDays; } return previous - DAYS_PER_WEEK; }; }; export const handleKeyDownMove = ({ dayList, maxDate, minDate, firstEmptyAndDisabledDays, daysAndEmptyDaysUntilMaxDate, currentDate, }) => { return previous => { if (isSameMonthAndYear(minDate, currentDate) && previous === dayList.length - 1) { return firstEmptyAndDisabledDays; } if (isSameMonthAndYear(maxDate, currentDate)) { if (previous === daysAndEmptyDaysUntilMaxDate) { return firstEmptyAndDisabledDays; } // to go to max date if next day below is disabled unless it is the max date if (previous + firstEmptyAndDisabledDays + 1 >= maxDate.getDate() + firstEmptyAndDisabledDays - 7 && previous !== daysAndEmptyDaysUntilMaxDate) { return maxDate.getDate() + firstEmptyAndDisabledDays - 1; } } if (previous === dayList.length - 1) { return firstEmptyAndDisabledDays; } if (previous >= dayList.length - 7) { return dayList.length - 1; } return previous + DAYS_PER_WEEK; }; }; export const handleKeyLeftMove = ({ dayList, maxDate, minDate, firstEmptyAndDisabledDays, daysAndEmptyDaysUntilMaxDate, currentDate, }) => { return previous => { if (previous === firstEmptyAndDisabledDays) { if (isSameMonthAndYear(minDate, currentDate)) { return dayList.length - 1; } else if (isSameMonthAndYear(maxDate, currentDate)) { return daysAndEmptyDaysUntilMaxDate; } return dayList.length - 1; } return previous - ONE_DAY; }; }; export const handleKeyRightMove = ({ dayList, maxDate, minDate, firstEmptyAndDisabledDays, daysAndEmptyDaysUntilMaxDate, currentDate, }) => { return previous => { if (isSameMonthAndYear(minDate, currentDate) && previous === dayList.length - 1) { return firstEmptyAndDisabledDays; } if (isSameMonthAndYear(maxDate, currentDate)) { if (previous === daysAndEmptyDaysUntilMaxDate) { return firstEmptyAndDisabledDays; } } if (previous === dayList.length - 1) { return firstEmptyAndDisabledDays; } return previous + ONE_DAY; }; }; export const handleKeyTabMove = (previous) => previous; export const handleKeyPageUpMove = ({ firstEmptyAndDisabledDays, }) => { return () => { return firstEmptyAndDisabledDays; }; }; export const handleKeyPageDownMove = ({ dayList, maxDate, currentDate, daysAndEmptyDaysUntilMaxDate, }) => { return () => { return isSameMonthAndYear(maxDate, currentDate) ? daysAndEmptyDaysUntilMaxDate : dayList.length - 1; }; }; //# sourceMappingURL=handleKeysmoves.js.map