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

110 lines 4.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleKeyPageDownMove = exports.handleKeyPageUpMove = exports.handleKeyTabMove = exports.handleKeyRightMove = exports.handleKeyLeftMove = exports.handleKeyDownMove = exports.handleKeyUpMove = exports.getDaysAndEmptyDaysUntilMaxDate = exports.getFirstEmptyAndDisabledDays = void 0; const ONE_DAY = 1; const DAYS_PER_WEEK = 7; const isSameMonthAndYear = (date1, date2) => { return date1.getMonth() === date2.getMonth() && date1.getFullYear() === date2.getFullYear(); }; const getFirstEmptyAndDisabledDays = (emptyDaysList, minDate, currentDate) => isSameMonthAndYear(minDate, currentDate) ? emptyDaysList.length + minDate.getDate() - 1 : emptyDaysList.length; exports.getFirstEmptyAndDisabledDays = getFirstEmptyAndDisabledDays; const getDaysAndEmptyDaysUntilMaxDate = (emptyDaysList, maxDate, currentDate) => isSameMonthAndYear(maxDate, currentDate) ? emptyDaysList.length + maxDate.getDate() - 1 : emptyDaysList.length; exports.getDaysAndEmptyDaysUntilMaxDate = getDaysAndEmptyDaysUntilMaxDate; 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; }; }; exports.handleKeyUpMove = handleKeyUpMove; 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; }; }; exports.handleKeyDownMove = handleKeyDownMove; 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; }; }; exports.handleKeyLeftMove = handleKeyLeftMove; 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; }; }; exports.handleKeyRightMove = handleKeyRightMove; const handleKeyTabMove = (previous) => previous; exports.handleKeyTabMove = handleKeyTabMove; const handleKeyPageUpMove = ({ firstEmptyAndDisabledDays, }) => { return () => { return firstEmptyAndDisabledDays; }; }; exports.handleKeyPageUpMove = handleKeyPageUpMove; const handleKeyPageDownMove = ({ dayList, maxDate, currentDate, daysAndEmptyDaysUntilMaxDate, }) => { return () => { return isSameMonthAndYear(maxDate, currentDate) ? daysAndEmptyDaysUntilMaxDate : dayList.length - 1; }; }; exports.handleKeyPageDownMove = handleKeyPageDownMove; //# sourceMappingURL=handleKeysmoves.js.map