'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _vueTypes = require('../../../_util/vue-types'); var _vueTypes2 = _interopRequireDefault(_vueTypes); var _BaseMixin = require('../../../_util/BaseMixin'); var _BaseMixin2 = _interopRequireDefault(_BaseMixin); var _propsUtil = require('../../../_util/props-util'); var _vnode = require('../../../_util/vnode'); 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 }; } function noop() {} var CalendarPart = { mixins: [_BaseMixin2['default']], props: { prefixCls: _vueTypes2['default'].string, value: _vueTypes2['default'].any, hoverValue: _vueTypes2['default'].any, selectedValue: _vueTypes2['default'].any, direction: _vueTypes2['default'].any, locale: _vueTypes2['default'].any, showDateInput: _vueTypes2['default'].bool, showTimePicker: _vueTypes2['default'].bool, showWeekNumber: _vueTypes2['default'].bool, format: _vueTypes2['default'].any, placeholder: _vueTypes2['default'].any, disabledDate: _vueTypes2['default'].any, timePicker: _vueTypes2['default'].any, disabledTime: _vueTypes2['default'].any, disabledMonth: _vueTypes2['default'].any, mode: _vueTypes2['default'].any, // onInputSelect: PropTypes.func, timePickerDisabledTime: _vueTypes2['default'].object, enableNext: _vueTypes2['default'].any, enablePrev: _vueTypes2['default'].any, dateRender: _vueTypes2['default'].func, clearIcon: _vueTypes2['default'].any }, render: function render() { var h = arguments[0]; var props = this.$props, _$listeners = this.$listeners, $listeners = _$listeners === undefined ? {} : _$listeners; 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, enablePrev = props.enablePrev, enableNext = props.enableNext, disabledMonth = props.disabledMonth, showDateInput = props.showDateInput, dateRender = props.dateRender, showWeekNumber = props.showWeekNumber; var clearIcon = (0, _propsUtil.getComponentFromProp)(this, 'clearIcon'); var _$listeners$inputSele = $listeners.inputSelect, inputSelect = _$listeners$inputSele === undefined ? noop : _$listeners$inputSele, _$listeners$valueChan = $listeners.valueChange, valueChange = _$listeners$valueChan === undefined ? noop : _$listeners$valueChan, _$listeners$panelChan = $listeners.panelChange, panelChange = _$listeners$panelChan === undefined ? noop : _$listeners$panelChan, _$listeners$select = $listeners.select, select = _$listeners$select === undefined ? noop : _$listeners$select, _$listeners$dayHover = $listeners.dayHover, dayHover = _$listeners$dayHover === undefined ? noop : _$listeners$dayHover; 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 = null; if (shouldShowTimePicker) { var timePickerProps = (0, _propsUtil.getOptionProps)(timePicker); timePickerEle = (0, _vnode.cloneElement)(timePicker, { props: (0, _extends3['default'])({ showHour: true, showMinute: true, showSecond: true }, timePickerProps, disabledTimeConfig, timePickerDisabledTime, { defaultOpenValue: value, value: selectedValue[index] }), on: { change: inputSelect } }); } var dateInputElement = showDateInput && h(_DateInput2['default'], { attrs: { format: format, locale: locale, prefixCls: prefixCls, timePicker: timePicker, disabledDate: disabledDate, placeholder: placeholder, disabledTime: disabledTime, value: value, showClear: false, selectedValue: selectedValue[index], clearIcon: clearIcon }, on: { 'change': inputSelect } }); var headerProps = { props: (0, _extends3['default'])({}, newProps, { mode: mode, enableNext: enableNext, enablePrev: enablePrev, disabledMonth: disabledMonth }), on: { valueChange: valueChange, panelChange: panelChange } }; var tableProps = { props: (0, _extends3['default'])({}, newProps, { hoverValue: hoverValue, selectedValue: selectedValue, dateRender: dateRender, disabledDate: disabledDate, showWeekNumber: showWeekNumber }), on: { select: select, dayHover: dayHover } }; return h( 'div', { 'class': rangeClassName + '-part ' + rangeClassName + '-' + direction }, [dateInputElement, h( 'div', { style: { outline: 'none' } }, [h(_CalendarHeader2['default'], headerProps), showTimePicker ? h( 'div', { 'class': prefixCls + '-time-picker' }, [h( 'div', { 'class': prefixCls + '-time-picker-panel' }, [timePickerEle] )] ) : null, h( 'div', { 'class': prefixCls + '-body' }, [h(_DateTable2['default'], tableProps)] )] )] ); } }; exports['default'] = CalendarPart;