MonthBody.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = exports.MONTH_COL_COUNT = void 0;
  7. var _vue = require("vue");
  8. var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  9. var _dateUtil = require("../../utils/dateUtil");
  10. var _RangeContext = require("../../RangeContext");
  11. var _useCellClassName = _interopRequireDefault(require("../../hooks/useCellClassName"));
  12. var _PanelBody = _interopRequireDefault(require("../PanelBody"));
  13. var _useMergeProps = _interopRequireDefault(require("../../hooks/useMergeProps"));
  14. const MONTH_COL_COUNT = exports.MONTH_COL_COUNT = 3;
  15. const MONTH_ROW_COUNT = 4;
  16. function MonthBody(_props) {
  17. const props = (0, _useMergeProps.default)(_props);
  18. const {
  19. prefixCls,
  20. locale,
  21. value,
  22. viewDate,
  23. generateConfig,
  24. monthCellRender
  25. } = props;
  26. const {
  27. rangedValue,
  28. hoverRangedValue
  29. } = (0, _RangeContext.useInjectRange)();
  30. const cellPrefixCls = `${prefixCls}-cell`;
  31. const getCellClassName = (0, _useCellClassName.default)({
  32. cellPrefixCls,
  33. value,
  34. generateConfig,
  35. rangedValue: rangedValue.value,
  36. hoverRangedValue: hoverRangedValue.value,
  37. isSameCell: (current, target) => (0, _dateUtil.isSameMonth)(generateConfig, current, target),
  38. isInView: () => true,
  39. offsetCell: (date, offset) => generateConfig.addMonth(date, offset)
  40. });
  41. const monthsLocale = locale.shortMonths || (generateConfig.locale.getShortMonths ? generateConfig.locale.getShortMonths(locale.locale) : []);
  42. const baseMonth = generateConfig.setMonth(viewDate, 0);
  43. const getCellNode = monthCellRender ? date => monthCellRender({
  44. current: date,
  45. locale
  46. }) : undefined;
  47. return (0, _vue.createVNode)(_PanelBody.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
  48. "rowNum": MONTH_ROW_COUNT,
  49. "colNum": MONTH_COL_COUNT,
  50. "baseDate": baseMonth,
  51. "getCellNode": getCellNode,
  52. "getCellText": date => locale.monthFormat ? (0, _dateUtil.formatValue)(date, {
  53. locale,
  54. format: locale.monthFormat,
  55. generateConfig
  56. }) : monthsLocale[generateConfig.getMonth(date)],
  57. "getCellClassName": getCellClassName,
  58. "getCellDate": generateConfig.addMonth,
  59. "titleCell": date => (0, _dateUtil.formatValue)(date, {
  60. locale,
  61. format: 'YYYY-MM',
  62. generateConfig
  63. })
  64. }), null);
  65. }
  66. MonthBody.displayName = 'MonthBody';
  67. MonthBody.inheritAttrs = false;
  68. var _default = exports.default = MonthBody;