useCellClassName.js 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = useCellClassName;
  7. var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
  8. var _dateUtil = require("../utils/dateUtil");
  9. var _miscUtil = require("../utils/miscUtil");
  10. function useCellClassName(_ref) {
  11. var cellPrefixCls = _ref.cellPrefixCls,
  12. generateConfig = _ref.generateConfig,
  13. rangedValue = _ref.rangedValue,
  14. hoverRangedValue = _ref.hoverRangedValue,
  15. isInView = _ref.isInView,
  16. isSameCell = _ref.isSameCell,
  17. offsetCell = _ref.offsetCell,
  18. today = _ref.today,
  19. value = _ref.value;
  20. function getClassName(currentDate) {
  21. var _ref2;
  22. var prevDate = offsetCell(currentDate, -1);
  23. var nextDate = offsetCell(currentDate, 1);
  24. var rangeStart = (0, _miscUtil.getValue)(rangedValue, 0);
  25. var rangeEnd = (0, _miscUtil.getValue)(rangedValue, 1);
  26. var hoverStart = (0, _miscUtil.getValue)(hoverRangedValue, 0);
  27. var hoverEnd = (0, _miscUtil.getValue)(hoverRangedValue, 1);
  28. var isRangeHovered = (0, _dateUtil.isInRange)(generateConfig, hoverStart, hoverEnd, currentDate);
  29. function isRangeStart(date) {
  30. return isSameCell(rangeStart, date);
  31. }
  32. function isRangeEnd(date) {
  33. return isSameCell(rangeEnd, date);
  34. }
  35. var isHoverStart = isSameCell(hoverStart, currentDate);
  36. var isHoverEnd = isSameCell(hoverEnd, currentDate);
  37. var isHoverEdgeStart = (isRangeHovered || isHoverEnd) && (!isInView(prevDate) || isRangeEnd(prevDate));
  38. var isHoverEdgeEnd = (isRangeHovered || isHoverStart) && (!isInView(nextDate) || isRangeStart(nextDate));
  39. return _ref2 = {}, (0, _defineProperty2.default)(_ref2, "".concat(cellPrefixCls, "-in-view"), isInView(currentDate)), (0, _defineProperty2.default)(_ref2, "".concat(cellPrefixCls, "-in-range"), (0, _dateUtil.isInRange)(generateConfig, rangeStart, rangeEnd, currentDate)), (0, _defineProperty2.default)(_ref2, "".concat(cellPrefixCls, "-range-start"), isRangeStart(currentDate)), (0, _defineProperty2.default)(_ref2, "".concat(cellPrefixCls, "-range-end"), isRangeEnd(currentDate)), (0, _defineProperty2.default)(_ref2, "".concat(cellPrefixCls, "-range-start-single"), isRangeStart(currentDate) && !rangeEnd), (0, _defineProperty2.default)(_ref2, "".concat(cellPrefixCls, "-range-end-single"), isRangeEnd(currentDate) && !rangeStart), (0, _defineProperty2.default)(_ref2, "".concat(cellPrefixCls, "-range-start-near-hover"), isRangeStart(currentDate) && (isSameCell(prevDate, hoverStart) || (0, _dateUtil.isInRange)(generateConfig, hoverStart, hoverEnd, prevDate))), (0, _defineProperty2.default)(_ref2, "".concat(cellPrefixCls, "-range-end-near-hover"), isRangeEnd(currentDate) && (isSameCell(nextDate, hoverEnd) || (0, _dateUtil.isInRange)(generateConfig, hoverStart, hoverEnd, nextDate))), (0, _defineProperty2.default)(_ref2, "".concat(cellPrefixCls, "-range-hover"), isRangeHovered), (0, _defineProperty2.default)(_ref2, "".concat(cellPrefixCls, "-range-hover-start"), isHoverStart), (0, _defineProperty2.default)(_ref2, "".concat(cellPrefixCls, "-range-hover-end"), isHoverEnd), (0, _defineProperty2.default)(_ref2, "".concat(cellPrefixCls, "-range-hover-edge-start"), isHoverEdgeStart), (0, _defineProperty2.default)(_ref2, "".concat(cellPrefixCls, "-range-hover-edge-end"), isHoverEdgeEnd), (0, _defineProperty2.default)(_ref2, "".concat(cellPrefixCls, "-range-hover-edge-start-near-range"), isHoverEdgeStart && isSameCell(prevDate, rangeEnd)), (0, _defineProperty2.default)(_ref2, "".concat(cellPrefixCls, "-range-hover-edge-end-near-range"), isHoverEdgeEnd && isSameCell(nextDate, rangeStart)), (0, _defineProperty2.default)(_ref2, "".concat(cellPrefixCls, "-today"), isSameCell(today, currentDate)), (0, _defineProperty2.default)(_ref2, "".concat(cellPrefixCls, "-selected"), isSameCell(value, currentDate)), _ref2;
  40. }
  41. return getClassName;
  42. }