YearBody.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = exports.YEAR_COL_COUNT = void 0;
  7. var _vue = require("vue");
  8. var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  9. var _ = require(".");
  10. var _useCellClassName = _interopRequireDefault(require("../../hooks/useCellClassName"));
  11. var _dateUtil = require("../../utils/dateUtil");
  12. var _RangeContext = require("../../RangeContext");
  13. var _PanelBody = _interopRequireDefault(require("../PanelBody"));
  14. var _useMergeProps = _interopRequireDefault(require("../../hooks/useMergeProps"));
  15. var YEAR_COL_COUNT = 3;
  16. exports.YEAR_COL_COUNT = YEAR_COL_COUNT;
  17. var YEAR_ROW_COUNT = 4;
  18. function YearBody(_props) {
  19. var props = (0, _useMergeProps.default)(_props);
  20. var prefixCls = props.prefixCls,
  21. value = props.value,
  22. viewDate = props.viewDate,
  23. locale = props.locale,
  24. generateConfig = props.generateConfig;
  25. var _useInjectRange = (0, _RangeContext.useInjectRange)(),
  26. rangedValue = _useInjectRange.rangedValue,
  27. hoverRangedValue = _useInjectRange.hoverRangedValue;
  28. var yearPrefixCls = "".concat(prefixCls, "-cell");
  29. // =============================== Year ===============================
  30. var yearNumber = generateConfig.getYear(viewDate);
  31. var startYear = Math.floor(yearNumber / _.YEAR_DECADE_COUNT) * _.YEAR_DECADE_COUNT;
  32. var endYear = startYear + _.YEAR_DECADE_COUNT - 1;
  33. var baseYear = generateConfig.setYear(viewDate, startYear - Math.ceil((YEAR_COL_COUNT * YEAR_ROW_COUNT - _.YEAR_DECADE_COUNT) / 2));
  34. var isInView = function isInView(date) {
  35. var currentYearNumber = generateConfig.getYear(date);
  36. return startYear <= currentYearNumber && currentYearNumber <= endYear;
  37. };
  38. var getCellClassName = (0, _useCellClassName.default)({
  39. cellPrefixCls: yearPrefixCls,
  40. value: value,
  41. generateConfig: generateConfig,
  42. rangedValue: rangedValue.value,
  43. hoverRangedValue: hoverRangedValue.value,
  44. isSameCell: function isSameCell(current, target) {
  45. return (0, _dateUtil.isSameYear)(generateConfig, current, target);
  46. },
  47. isInView: isInView,
  48. offsetCell: function offsetCell(date, offset) {
  49. return generateConfig.addYear(date, offset);
  50. }
  51. });
  52. return (0, _vue.createVNode)(_PanelBody.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
  53. "rowNum": YEAR_ROW_COUNT,
  54. "colNum": YEAR_COL_COUNT,
  55. "baseDate": baseYear,
  56. "getCellText": generateConfig.getYear,
  57. "getCellClassName": getCellClassName,
  58. "getCellDate": generateConfig.addYear,
  59. "titleCell": function titleCell(date) {
  60. return (0, _dateUtil.formatValue)(date, {
  61. locale: locale,
  62. format: 'YYYY',
  63. generateConfig: generateConfig
  64. });
  65. }
  66. }), null);
  67. }
  68. YearBody.displayName = 'YearBody';
  69. YearBody.inheritAttrs = false;
  70. var _default = YearBody;
  71. exports.default = _default;