@fluentui/react-northstar
Version:
A themable React component library.
31 lines (29 loc) • 1.48 kB
JavaScript
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
var _excluded = ["targetDate", "initialDate", "direction"];
import { isRestrictedDate } from './isRestrictedDate';
import { isAfterMaxDate } from './isAfterMaxDate';
import { isBeforeMinDate } from './isBeforeMinDate';
import { compareDatePart, addDays } from '../dateMath/dateMath';
/**
* Returns closest available date given the restriction `options`, or undefined otherwise
* @param options - list of search options
*/
export var findAvailableDate = function findAvailableDate(options) {
var targetDate = options.targetDate,
initialDate = options.initialDate,
direction = options.direction,
restrictedDateOptions = _objectWithoutPropertiesLoose(options, _excluded);
var availableDate = targetDate;
// if the target date is available, return it immediately
if (!isRestrictedDate(targetDate, restrictedDateOptions)) {
return targetDate;
}
while (compareDatePart(initialDate, availableDate) !== 0 && isRestrictedDate(availableDate, restrictedDateOptions) && !isAfterMaxDate(availableDate, restrictedDateOptions) && !isBeforeMinDate(availableDate, restrictedDateOptions)) {
availableDate = addDays(availableDate, direction);
}
if (compareDatePart(initialDate, availableDate) !== 0 && !isRestrictedDate(availableDate, restrictedDateOptions)) {
return availableDate;
}
return undefined;
};
//# sourceMappingURL=findAvailableDate.js.map