UNPKG

yqcloud-ui

Version:

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

135 lines (112 loc) 5.06 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _createReactClass = require('create-react-class'); var _createReactClass2 = _interopRequireDefault(_createReactClass); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _CalendarHeader = require('../calendar/CalendarHeader'); var _CalendarHeader2 = _interopRequireDefault(_CalendarHeader); var _DateTable = require('../date/DateTable'); var _DateTable2 = _interopRequireDefault(_DateTable); var _DateInput = require('../date/DateInput'); var _DateInput2 = _interopRequireDefault(_DateInput); var _index = require('../util/index'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var CalendarPart = (0, _createReactClass2['default'])({ displayName: 'CalendarPart', propTypes: { prefixCls: _propTypes2['default'].string, value: _propTypes2['default'].any, hoverValue: _propTypes2['default'].any, selectedValue: _propTypes2['default'].any, direction: _propTypes2['default'].any, locale: _propTypes2['default'].any, showDateInput: _propTypes2['default'].bool, showTimePicker: _propTypes2['default'].bool, format: _propTypes2['default'].any, placeholder: _propTypes2['default'].any, disabledDate: _propTypes2['default'].any, timePicker: _propTypes2['default'].any, disabledTime: _propTypes2['default'].any, onInputSelect: _propTypes2['default'].func, timePickerDisabledTime: _propTypes2['default'].object, enableNext: _propTypes2['default'].any, enablePrev: _propTypes2['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 = prefixCls + '-range'; var newProps = { locale: locale, value: value, prefixCls: prefixCls, showTimePicker: showTimePicker }; var index = direction === 'left' ? 0 : 1; var timePickerEle = shouldShowTimePicker && _react2['default'].cloneElement(timePicker, (0, _extends3['default'])({ showHour: true, showMinute: true, showSecond: true }, timePicker.props, disabledTimeConfig, timePickerDisabledTime, { onChange: onInputSelect, defaultOpenValue: value, value: selectedValue[index] })); var dateInputElement = props.showDateInput && _react2['default'].createElement(_DateInput2['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 _react2['default'].createElement('div', { className: rangeClassName + '-part ' + rangeClassName + '-' + direction }, dateInputElement, _react2['default'].createElement('div', { style: { outline: 'none' } }, _react2['default'].createElement(_CalendarHeader2['default'], (0, _extends3['default'])({}, newProps, { mode: mode, enableNext: enableNext, enablePrev: enablePrev, onValueChange: props.onValueChange, onPanelChange: props.onPanelChange, disabledMonth: props.disabledMonth })), showTimePicker ? _react2['default'].createElement('div', { className: prefixCls + '-time-picker' }, _react2['default'].createElement('div', { className: prefixCls + '-time-picker-panel' }, timePickerEle)) : null, _react2['default'].createElement('div', { className: prefixCls + '-body' }, _react2['default'].createElement(_DateTable2['default'], (0, _extends3['default'])({}, newProps, { hoverValue: hoverValue, selectedValue: selectedValue, dateRender: props.dateRender, onSelect: props.onSelect, onDayHover: props.onDayHover, disabledDate: disabledDate, showWeekNumber: props.showWeekNumber }))))); } }); exports['default'] = CalendarPart; module.exports = exports['default'];