choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
114 lines (113 loc) • 4.21 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
import React, { cloneElement } from 'react';
import createReactClass from 'create-react-class';
import PropTypes from 'prop-types';
import CalendarHeader from '../calendar/CalendarHeader';
import DateTable from '../date/DateTable';
import DateInput from '../date/DateInput';
import { getTimeConfig } from '../util/index';
var CalendarPart = createReactClass({
displayName: "CalendarPart",
propTypes: {
prefixCls: PropTypes.string,
value: PropTypes.any,
hoverValue: PropTypes.any,
selectedValue: PropTypes.any,
direction: PropTypes.any,
locale: PropTypes.any,
showDateInput: PropTypes.bool,
showTimePicker: PropTypes.bool,
format: PropTypes.any,
placeholder: PropTypes.any,
disabledDate: PropTypes.any,
timePicker: PropTypes.any,
disabledTime: PropTypes.any,
onInputSelect: PropTypes.func,
timePickerDisabledTime: PropTypes.object,
enableNext: PropTypes.any,
enablePrev: PropTypes.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 ? 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 && cloneElement(timePicker, _objectSpread({
showHour: true,
showMinute: true,
showSecond: true
}, timePicker.props, {}, disabledTimeConfig, {}, timePickerDisabledTime, {
onChange: onInputSelect,
defaultOpenValue: value,
value: selectedValue[index]
}));
var dateInputElement = props.showDateInput && React.createElement(DateInput, {
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.createElement("div", {
className: "".concat(rangeClassName, "-part ").concat(rangeClassName, "-").concat(direction)
}, dateInputElement, React.createElement("div", {
style: {
outline: 'none'
}
}, React.createElement(CalendarHeader, _extends({}, newProps, {
mode: mode,
enableNext: enableNext,
enablePrev: enablePrev,
onValueChange: props.onValueChange,
onPanelChange: props.onPanelChange,
disabledMonth: props.disabledMonth
})), showTimePicker ? React.createElement("div", {
className: "".concat(prefixCls, "-time-picker")
}, React.createElement("div", {
className: "".concat(prefixCls, "-time-picker-panel")
}, timePickerEle)) : null, React.createElement("div", {
className: "".concat(prefixCls, "-body")
}, React.createElement(DateTable, _extends({}, newProps, {
hoverValue: hoverValue,
selectedValue: selectedValue,
dateRender: props.dateRender,
onSelect: props.onSelect,
onDayHover: props.onDayHover,
disabledDate: disabledDate,
showWeekNumber: props.showWeekNumber
})))));
}
});
export default CalendarPart;
//# sourceMappingURL=CalendarPart.js.map