UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

114 lines (113 loc) 4.21 kB
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