index.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
  2. import { createVNode as _createVNode } from "vue";
  3. import DatePanel from '../DatePanel';
  4. import { isSameWeek } from '../../utils/dateUtil';
  5. import classNames from '../../../_util/classNames';
  6. import useMergeProps from '../../hooks/useMergeProps';
  7. function WeekPanel(_props) {
  8. const props = useMergeProps(_props);
  9. const {
  10. prefixCls,
  11. generateConfig,
  12. locale,
  13. value
  14. } = props;
  15. // Render additional column
  16. const cellPrefixCls = `${prefixCls}-cell`;
  17. const prefixColumn = date => _createVNode("td", {
  18. "key": "week",
  19. "class": classNames(cellPrefixCls, `${cellPrefixCls}-week`)
  20. }, [generateConfig.locale.getWeek(locale.locale, date)]);
  21. // Add row className
  22. const rowPrefixCls = `${prefixCls}-week-panel-row`;
  23. const rowClassName = date => classNames(rowPrefixCls, {
  24. [`${rowPrefixCls}-selected`]: isSameWeek(generateConfig, locale.locale, value, date)
  25. });
  26. return _createVNode(DatePanel, _objectSpread(_objectSpread({}, props), {}, {
  27. "panelName": "week",
  28. "prefixColumn": prefixColumn,
  29. "rowClassName": rowClassName,
  30. "keyboardConfig": {
  31. onLeftRight: null
  32. }
  33. }), null);
  34. }
  35. WeekPanel.displayName = 'WeekPanel';
  36. WeekPanel.inheritAttrs = false;
  37. export default WeekPanel;