@fluentui/react-northstar
Version:
A themable React component library.
36 lines (34 loc) • 1.86 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.findAvailableDate = void 0;
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _isRestrictedDate = require("./isRestrictedDate");
var _isAfterMaxDate = require("./isAfterMaxDate");
var _isBeforeMinDate = require("./isBeforeMinDate");
var _dateMath = require("../dateMath/dateMath");
var _excluded = ["targetDate", "initialDate", "direction"];
/**
* Returns closest available date given the restriction `options`, or undefined otherwise
* @param options - list of search options
*/
var findAvailableDate = function findAvailableDate(options) {
var targetDate = options.targetDate,
initialDate = options.initialDate,
direction = options.direction,
restrictedDateOptions = (0, _objectWithoutPropertiesLoose2.default)(options, _excluded);
var availableDate = targetDate;
// if the target date is available, return it immediately
if (!(0, _isRestrictedDate.isRestrictedDate)(targetDate, restrictedDateOptions)) {
return targetDate;
}
while ((0, _dateMath.compareDatePart)(initialDate, availableDate) !== 0 && (0, _isRestrictedDate.isRestrictedDate)(availableDate, restrictedDateOptions) && !(0, _isAfterMaxDate.isAfterMaxDate)(availableDate, restrictedDateOptions) && !(0, _isBeforeMinDate.isBeforeMinDate)(availableDate, restrictedDateOptions)) {
availableDate = (0, _dateMath.addDays)(availableDate, direction);
}
if ((0, _dateMath.compareDatePart)(initialDate, availableDate) !== 0 && !(0, _isRestrictedDate.isRestrictedDate)(availableDate, restrictedDateOptions)) {
return availableDate;
}
return undefined;
};
exports.findAvailableDate = findAvailableDate;
//# sourceMappingURL=findAvailableDate.js.map
;