choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
137 lines (121 loc) • 5.16 kB
JavaScript
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _react = _interopRequireWildcard(require("react"));
var _createReactClass = _interopRequireDefault(require("create-react-class"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _CalendarHeader = _interopRequireDefault(require("../calendar/CalendarHeader"));
var _DateTable = _interopRequireDefault(require("../date/DateTable"));
var _DateInput = _interopRequireDefault(require("../date/DateInput"));
var _index = require("../util/index");
var CalendarPart = (0, _createReactClass["default"])({
displayName: "CalendarPart",
propTypes: {
prefixCls: _propTypes["default"].string,
value: _propTypes["default"].any,
hoverValue: _propTypes["default"].any,
selectedValue: _propTypes["default"].any,
direction: _propTypes["default"].any,
locale: _propTypes["default"].any,
showDateInput: _propTypes["default"].bool,
showTimePicker: _propTypes["default"].bool,
format: _propTypes["default"].any,
placeholder: _propTypes["default"].any,
disabledDate: _propTypes["default"].any,
timePicker: _propTypes["default"].any,
disabledTime: _propTypes["default"].any,
onInputSelect: _propTypes["default"].func,
timePickerDisabledTime: _propTypes["default"].object,
enableNext: _propTypes["default"].any,
enablePrev: _propTypes["default"].any
},
render: function render() {
var props = this.props;
var prefixCls = props.prefixCls,
value = props.value,
hoverValue = props.hoverValue,
selectedValue = props.selectedValue,
mode = props.mode,
direction = props.direction,
locale = props.locale,
format = props.format,
placeholder = props.placeholder,
disabledDate = props.disabledDate,
timePicker = props.timePicker,
disabledTime = props.disabledTime,
timePickerDisabledTime = props.timePickerDisabledTime,
showTimePicker = props.showTimePicker,
onInputSelect = props.onInputSelect,
enablePrev = props.enablePrev,
enableNext = props.enableNext;
var shouldShowTimePicker = showTimePicker && timePicker;
var disabledTimeConfig = shouldShowTimePicker && disabledTime ? (0, _index.getTimeConfig)(selectedValue, disabledTime) : null;
var rangeClassName = "".concat(prefixCls, "-range");
var newProps = {
locale: locale,
value: value,
prefixCls: prefixCls,
showTimePicker: showTimePicker
};
var index = direction === 'left' ? 0 : 1;
var timePickerEle = shouldShowTimePicker && (0, _react.cloneElement)(timePicker, (0, _objectSpread2["default"])({
showHour: true,
showMinute: true,
showSecond: true
}, timePicker.props, {}, disabledTimeConfig, {}, timePickerDisabledTime, {
onChange: onInputSelect,
defaultOpenValue: value,
value: selectedValue[index]
}));
var dateInputElement = props.showDateInput && _react["default"].createElement(_DateInput["default"], {
format: format,
locale: locale,
prefixCls: prefixCls,
timePicker: timePicker,
disabledDate: disabledDate,
placeholder: placeholder,
disabledTime: disabledTime,
value: value,
showClear: false,
selectedValue: selectedValue[index],
onChange: onInputSelect
});
return _react["default"].createElement("div", {
className: "".concat(rangeClassName, "-part ").concat(rangeClassName, "-").concat(direction)
}, dateInputElement, _react["default"].createElement("div", {
style: {
outline: 'none'
}
}, _react["default"].createElement(_CalendarHeader["default"], (0, _extends2["default"])({}, newProps, {
mode: mode,
enableNext: enableNext,
enablePrev: enablePrev,
onValueChange: props.onValueChange,
onPanelChange: props.onPanelChange,
disabledMonth: props.disabledMonth
})), showTimePicker ? _react["default"].createElement("div", {
className: "".concat(prefixCls, "-time-picker")
}, _react["default"].createElement("div", {
className: "".concat(prefixCls, "-time-picker-panel")
}, timePickerEle)) : null, _react["default"].createElement("div", {
className: "".concat(prefixCls, "-body")
}, _react["default"].createElement(_DateTable["default"], (0, _extends2["default"])({}, newProps, {
hoverValue: hoverValue,
selectedValue: selectedValue,
dateRender: props.dateRender,
onSelect: props.onSelect,
onDayHover: props.onDayHover,
disabledDate: disabledDate,
showWeekNumber: props.showWeekNumber
})))));
}
});
var _default = CalendarPart;
exports["default"] = _default;
//# sourceMappingURL=CalendarPart.js.map