MonthBody.js 2.6 KB

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