DecadeHeader.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
  2. import { createVNode as _createVNode, createTextVNode as _createTextVNode } from "vue";
  3. import Header from '../Header';
  4. import { DECADE_DISTANCE_COUNT } from '.';
  5. import { useInjectPanel } from '../../PanelContext';
  6. import useMergeProps from '../../hooks/useMergeProps';
  7. function DecadeHeader(_props) {
  8. const props = useMergeProps(_props);
  9. const {
  10. prefixCls,
  11. generateConfig,
  12. viewDate,
  13. onPrevDecades,
  14. onNextDecades
  15. } = props;
  16. const {
  17. hideHeader
  18. } = useInjectPanel();
  19. if (hideHeader) {
  20. return null;
  21. }
  22. const headerPrefixCls = `${prefixCls}-header`;
  23. const yearNumber = generateConfig.getYear(viewDate);
  24. const startYear = Math.floor(yearNumber / DECADE_DISTANCE_COUNT) * DECADE_DISTANCE_COUNT;
  25. const endYear = startYear + DECADE_DISTANCE_COUNT - 1;
  26. return _createVNode(Header, _objectSpread(_objectSpread({}, props), {}, {
  27. "prefixCls": headerPrefixCls,
  28. "onSuperPrev": onPrevDecades,
  29. "onSuperNext": onNextDecades
  30. }), {
  31. default: () => [startYear, _createTextVNode("-"), endYear]
  32. });
  33. }
  34. DecadeHeader.displayName = 'DecadeHeader';
  35. DecadeHeader.inheritAttrs = false;
  36. export default DecadeHeader;