UNPKG

@fluentui/react-northstar

Version:
50 lines (49 loc) 1.97 kB
import { addMonths, findAvailableDate, addDays, addWeeks, isAfterMaxDate, isBeforeMinDate } from '../../utils/date-time-utilities'; export var contstraintNavigatedDate = function contstraintNavigatedDate(initialDate, targetDate, direction, restrictedDatesOptions, navigateToDisabledDates) { if (!targetDate) { // if we couldn't find a target date at all, do nothing return undefined; } var findAvailableDateOptions = Object.assign({ initialDate: initialDate, targetDate: targetDate, direction: direction }, !navigateToDisabledDates && restrictedDatesOptions); var newNavigatedDate = findAvailableDate(findAvailableDateOptions); if (!newNavigatedDate) { // if no dates available in initial direction, try going backwards findAvailableDateOptions.direction = -direction; newNavigatedDate = findAvailableDate(findAvailableDateOptions); } if (!navigateToDisabledDates && isAfterMaxDate(targetDate, restrictedDatesOptions)) { newNavigatedDate = restrictedDatesOptions.maxDate; } else if (!navigateToDisabledDates && isBeforeMinDate(targetDate, restrictedDatesOptions)) { newNavigatedDate = restrictedDatesOptions.minDate; } return newNavigatedDate; }; export var navigateToNewDate = function navigateToNewDate(originalDate, kind, step, restrictedDatesOptions, navigateToDisabledDates) { var targetDate = null; var targetDayDirection = step > 0 ? 1 : -1; switch (kind) { case 'Month': { targetDate = addMonths(originalDate, targetDayDirection); break; } case 'Week': { targetDate = addWeeks(originalDate, targetDayDirection); break; } case 'Day': { targetDate = addDays(originalDate, targetDayDirection); break; } default: break; } return contstraintNavigatedDate(originalDate, targetDate, step, restrictedDatesOptions, navigateToDisabledDates); }; //# sourceMappingURL=navigateToNewDate.js.map