index.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import _extends from "@babel/runtime/helpers/esm/extends";
  2. import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
  3. import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
  4. import classNames from 'classnames';
  5. import * as React from 'react';
  6. import { isInRange, isSameWeek } from "../../utils/dateUtil";
  7. import DatePanel from "../DatePanel";
  8. export default function WeekPanel(props) {
  9. var prefixCls = props.prefixCls,
  10. generateConfig = props.generateConfig,
  11. locale = props.locale,
  12. value = props.value,
  13. hoverValue = props.hoverValue,
  14. hoverRangeValue = props.hoverRangeValue;
  15. // =============================== Row ================================
  16. var localeName = locale.locale;
  17. var rowPrefixCls = "".concat(prefixCls, "-week-panel-row");
  18. var rowClassName = function rowClassName(currentDate) {
  19. var rangeCls = {};
  20. if (hoverRangeValue) {
  21. var _hoverRangeValue = _slicedToArray(hoverRangeValue, 2),
  22. rangeStart = _hoverRangeValue[0],
  23. rangeEnd = _hoverRangeValue[1];
  24. var isRangeStart = isSameWeek(generateConfig, localeName, rangeStart, currentDate);
  25. var isRangeEnd = isSameWeek(generateConfig, localeName, rangeEnd, currentDate);
  26. rangeCls["".concat(rowPrefixCls, "-range-start")] = isRangeStart;
  27. rangeCls["".concat(rowPrefixCls, "-range-end")] = isRangeEnd;
  28. rangeCls["".concat(rowPrefixCls, "-range-hover")] = !isRangeStart && !isRangeEnd && isInRange(generateConfig, rangeStart, rangeEnd, currentDate);
  29. }
  30. if (hoverValue) {
  31. rangeCls["".concat(rowPrefixCls, "-hover")] = hoverValue.some(function (date) {
  32. return isSameWeek(generateConfig, localeName, currentDate, date);
  33. });
  34. }
  35. return classNames(rowPrefixCls, _defineProperty({}, "".concat(rowPrefixCls, "-selected"), !hoverRangeValue && isSameWeek(generateConfig, localeName, value, currentDate)),
  36. // Patch for hover range
  37. rangeCls);
  38. };
  39. // ============================== Render ==============================
  40. return /*#__PURE__*/React.createElement(DatePanel, _extends({}, props, {
  41. mode: "week",
  42. panelName: "week",
  43. rowClassName: rowClassName
  44. }));
  45. }