UNPKG

@fluentui/react-northstar

Version:
36 lines (34 loc) 1.86 kB
"use strict"; 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