DateBody.js 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = void 0;
  7. var _vue = require("vue");
  8. var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  9. var _dateUtil = require("../../utils/dateUtil");
  10. var _useCellClassName = _interopRequireDefault(require("../../hooks/useCellClassName"));
  11. var _PanelBody = _interopRequireDefault(require("../PanelBody"));
  12. var _RangeContext = require("../../RangeContext");
  13. var _useMergeProps = _interopRequireDefault(require("../../hooks/useMergeProps"));
  14. function DateBody(_props) {
  15. const props = (0, _useMergeProps.default)(_props);
  16. const {
  17. prefixCls,
  18. generateConfig,
  19. prefixColumn,
  20. locale,
  21. rowCount,
  22. viewDate,
  23. value,
  24. dateRender
  25. } = props;
  26. const {
  27. rangedValue,
  28. hoverRangedValue
  29. } = (0, _RangeContext.useInjectRange)();
  30. const baseDate = (0, _dateUtil.getWeekStartDate)(locale.locale, generateConfig, viewDate);
  31. const cellPrefixCls = `${prefixCls}-cell`;
  32. const weekFirstDay = generateConfig.locale.getWeekFirstDay(locale.locale);
  33. const today = generateConfig.getNow();
  34. // ============================== Header ==============================
  35. const headerCells = [];
  36. const weekDaysLocale = locale.shortWeekDays || (generateConfig.locale.getShortWeekDays ? generateConfig.locale.getShortWeekDays(locale.locale) : []);
  37. if (prefixColumn) {
  38. headerCells.push((0, _vue.createVNode)("th", {
  39. "key": "empty",
  40. "aria-label": "empty cell"
  41. }, null));
  42. }
  43. for (let i = 0; i < _dateUtil.WEEK_DAY_COUNT; i += 1) {
  44. headerCells.push((0, _vue.createVNode)("th", {
  45. "key": i
  46. }, [weekDaysLocale[(i + weekFirstDay) % _dateUtil.WEEK_DAY_COUNT]]));
  47. }
  48. // =============================== Body ===============================
  49. const getCellClassName = (0, _useCellClassName.default)({
  50. cellPrefixCls,
  51. today,
  52. value,
  53. generateConfig,
  54. rangedValue: prefixColumn ? null : rangedValue.value,
  55. hoverRangedValue: prefixColumn ? null : hoverRangedValue.value,
  56. isSameCell: (current, target) => (0, _dateUtil.isSameDate)(generateConfig, current, target),
  57. isInView: date => (0, _dateUtil.isSameMonth)(generateConfig, date, viewDate),
  58. offsetCell: (date, offset) => generateConfig.addDate(date, offset)
  59. });
  60. const getCellNode = dateRender ? date => dateRender({
  61. current: date,
  62. today
  63. }) : undefined;
  64. return (0, _vue.createVNode)(_PanelBody.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
  65. "rowNum": rowCount,
  66. "colNum": _dateUtil.WEEK_DAY_COUNT,
  67. "baseDate": baseDate,
  68. "getCellNode": getCellNode,
  69. "getCellText": generateConfig.getDate,
  70. "getCellClassName": getCellClassName,
  71. "getCellDate": generateConfig.addDate,
  72. "titleCell": date => (0, _dateUtil.formatValue)(date, {
  73. locale,
  74. format: 'YYYY-MM-DD',
  75. generateConfig
  76. }),
  77. "headerCells": headerCells
  78. }), null);
  79. }
  80. DateBody.displayName = 'DateBody';
  81. DateBody.inheritAttrs = false;
  82. DateBody.props = ['prefixCls', 'generateConfig', 'value?', 'viewDate', 'locale', 'rowCount', 'onSelect', 'dateRender?', 'disabledDate?',
  83. // Used for week panel
  84. 'prefixColumn?', 'rowClassName?'];
  85. var _default = exports.default = DateBody;