useRangeDisabledDate.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = useRangeDisabledDate;
  7. var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  8. var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
  9. var _dateUtil = require("../../utils/dateUtil");
  10. var _miscUtil = require("../../utils/miscUtil");
  11. /**
  12. * RangePicker need additional logic to handle the `disabled` case. e.g.
  13. * [disabled, enabled] should end date not before start date
  14. */
  15. function useRangeDisabledDate(values, disabled, activeIndexList, generateConfig, locale, disabledDate) {
  16. var activeIndex = activeIndexList[activeIndexList.length - 1];
  17. var rangeDisabledDate = function rangeDisabledDate(date, info) {
  18. var _values = (0, _slicedToArray2.default)(values, 2),
  19. start = _values[0],
  20. end = _values[1];
  21. var mergedInfo = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, info), {}, {
  22. from: (0, _miscUtil.getFromDate)(values, activeIndexList)
  23. });
  24. // ============================ Disabled ============================
  25. // Should not select days before the start date
  26. if (activeIndex === 1 && disabled[0] && start &&
  27. // Same date isOK
  28. !(0, _dateUtil.isSame)(generateConfig, locale, start, date, mergedInfo.type) &&
  29. // Before start date
  30. generateConfig.isAfter(start, date)) {
  31. return true;
  32. }
  33. // Should not select days after the end date
  34. if (activeIndex === 0 && disabled[1] && end &&
  35. // Same date isOK
  36. !(0, _dateUtil.isSame)(generateConfig, locale, end, date, mergedInfo.type) &&
  37. // After end date
  38. generateConfig.isAfter(date, end)) {
  39. return true;
  40. }
  41. // ============================= Origin =============================
  42. return disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date, mergedInfo);
  43. };
  44. return rangeDisabledDate;
  45. }