47 lines
2.1 KiB
JavaScript
47 lines
2.1 KiB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
import classNames from 'classnames';
|
|
import * as React from 'react';
|
|
import { isInRange, isSameWeek } from "../../utils/dateUtil";
|
|
import DatePanel from "../DatePanel";
|
|
export default function WeekPanel(props) {
|
|
var prefixCls = props.prefixCls,
|
|
generateConfig = props.generateConfig,
|
|
locale = props.locale,
|
|
value = props.value,
|
|
hoverValue = props.hoverValue,
|
|
hoverRangeValue = props.hoverRangeValue;
|
|
|
|
// =============================== Row ================================
|
|
var localeName = locale.locale;
|
|
var rowPrefixCls = "".concat(prefixCls, "-week-panel-row");
|
|
var rowClassName = function rowClassName(currentDate) {
|
|
var rangeCls = {};
|
|
if (hoverRangeValue) {
|
|
var _hoverRangeValue = _slicedToArray(hoverRangeValue, 2),
|
|
rangeStart = _hoverRangeValue[0],
|
|
rangeEnd = _hoverRangeValue[1];
|
|
var isRangeStart = isSameWeek(generateConfig, localeName, rangeStart, currentDate);
|
|
var isRangeEnd = isSameWeek(generateConfig, localeName, rangeEnd, currentDate);
|
|
rangeCls["".concat(rowPrefixCls, "-range-start")] = isRangeStart;
|
|
rangeCls["".concat(rowPrefixCls, "-range-end")] = isRangeEnd;
|
|
rangeCls["".concat(rowPrefixCls, "-range-hover")] = !isRangeStart && !isRangeEnd && isInRange(generateConfig, rangeStart, rangeEnd, currentDate);
|
|
}
|
|
if (hoverValue) {
|
|
rangeCls["".concat(rowPrefixCls, "-hover")] = hoverValue.some(function (date) {
|
|
return isSameWeek(generateConfig, localeName, currentDate, date);
|
|
});
|
|
}
|
|
return classNames(rowPrefixCls, _defineProperty({}, "".concat(rowPrefixCls, "-selected"), !hoverRangeValue && isSameWeek(generateConfig, localeName, value, currentDate)),
|
|
// Patch for hover range
|
|
rangeCls);
|
|
};
|
|
|
|
// ============================== Render ==============================
|
|
return /*#__PURE__*/React.createElement(DatePanel, _extends({}, props, {
|
|
mode: "week",
|
|
panelName: "week",
|
|
rowClassName: rowClassName
|
|
}));
|
|
} |