DateHeader.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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 _Header = _interopRequireDefault(require("../Header"));
  10. var _PanelContext = require("../../PanelContext");
  11. var _dateUtil = require("../../utils/dateUtil");
  12. var _useMergeProps = _interopRequireDefault(require("../../hooks/useMergeProps"));
  13. function DateHeader(_props) {
  14. const props = (0, _useMergeProps.default)(_props);
  15. const {
  16. prefixCls,
  17. generateConfig,
  18. locale,
  19. viewDate,
  20. onNextMonth,
  21. onPrevMonth,
  22. onNextYear,
  23. onPrevYear,
  24. onYearClick,
  25. onMonthClick
  26. } = props;
  27. const {
  28. hideHeader
  29. } = (0, _PanelContext.useInjectPanel)();
  30. if (hideHeader.value) {
  31. return null;
  32. }
  33. const headerPrefixCls = `${prefixCls}-header`;
  34. const monthsLocale = locale.shortMonths || (generateConfig.locale.getShortMonths ? generateConfig.locale.getShortMonths(locale.locale) : []);
  35. const month = generateConfig.getMonth(viewDate);
  36. // =================== Month & Year ===================
  37. const yearNode = (0, _vue.createVNode)("button", {
  38. "type": "button",
  39. "key": "year",
  40. "onClick": onYearClick,
  41. "tabindex": -1,
  42. "class": `${prefixCls}-year-btn`
  43. }, [(0, _dateUtil.formatValue)(viewDate, {
  44. locale,
  45. format: locale.yearFormat,
  46. generateConfig
  47. })]);
  48. const monthNode = (0, _vue.createVNode)("button", {
  49. "type": "button",
  50. "key": "month",
  51. "onClick": onMonthClick,
  52. "tabindex": -1,
  53. "class": `${prefixCls}-month-btn`
  54. }, [locale.monthFormat ? (0, _dateUtil.formatValue)(viewDate, {
  55. locale,
  56. format: locale.monthFormat,
  57. generateConfig
  58. }) : monthsLocale[month]]);
  59. const monthYearNodes = locale.monthBeforeYear ? [monthNode, yearNode] : [yearNode, monthNode];
  60. return (0, _vue.createVNode)(_Header.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
  61. "prefixCls": headerPrefixCls,
  62. "onSuperPrev": onPrevYear,
  63. "onPrev": onPrevMonth,
  64. "onNext": onNextMonth,
  65. "onSuperNext": onNextYear
  66. }), {
  67. default: () => [monthYearNodes]
  68. });
  69. }
  70. DateHeader.displayName = 'DateHeader';
  71. DateHeader.inheritAttrs = false;
  72. var _default = exports.default = DateHeader;