'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); 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 _MonthTable = require('./MonthTable'); var _MonthTable2 = _interopRequireDefault(_MonthTable); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function goYear(direction) { var next = this.sValue.clone(); next.add(direction, 'year'); this.setAndChangeValue(next); } function noop() {} var MonthPanel = { mixins: [_BaseMixin2['default']], props: { value: _vueTypes2['default'].any, defaultValue: _vueTypes2['default'].any, cellRender: _vueTypes2['default'].any, contentRender: _vueTypes2['default'].any, locale: _vueTypes2['default'].any, rootPrefixCls: _vueTypes2['default'].string, // onChange: PropTypes.func, disabledDate: _vueTypes2['default'].func // onSelect: PropTypes.func, }, data: function data() { var value = this.value, defaultValue = this.defaultValue; // bind methods this.nextYear = goYear.bind(this, 1); this.previousYear = goYear.bind(this, -1); return { sValue: value || defaultValue }; }, watch: { value: function value(val) { this.setState({ sValue: val }); } }, methods: { setAndChangeValue: function setAndChangeValue(value) { this.setValue(value); this.__emit('change', value); }, setAndSelectValue: function setAndSelectValue(value) { this.setValue(value); this.__emit('select', value); }, setValue: function setValue(value) { if (!(0, _propsUtil.hasProp)(this, 'value')) { this.setState({ sValue: value }); } } }, render: function render() { var h = arguments[0]; var sValue = this.sValue, cellRender = this.cellRender, contentRender = this.contentRender, locale = this.locale, rootPrefixCls = this.rootPrefixCls, disabledDate = this.disabledDate, _$listeners = this.$listeners, $listeners = _$listeners === undefined ? {} : _$listeners; var year = sValue.year(); var prefixCls = rootPrefixCls + '-month-panel'; return h( 'div', { 'class': prefixCls }, [h('div', [h( 'div', { 'class': prefixCls + '-header' }, [h('a', { 'class': prefixCls + '-prev-year-btn', attrs: { role: 'button', title: locale.previousYear }, on: { 'click': this.previousYear } }), h( 'a', { 'class': prefixCls + '-year-select', attrs: { role: 'button', title: locale.yearSelect }, on: { 'click': $listeners.yearPanelShow || noop } }, [h( 'span', { 'class': prefixCls + '-year-select-content' }, [year] ), h( 'span', { 'class': prefixCls + '-year-select-arrow' }, ['x'] )] ), h('a', { 'class': prefixCls + '-next-year-btn', attrs: { role: 'button', title: locale.nextYear }, on: { 'click': this.nextYear } })] ), h( 'div', { 'class': prefixCls + '-body' }, [h(_MonthTable2['default'], { attrs: { disabledDate: disabledDate, locale: locale, value: sValue, cellRender: cellRender, contentRender: contentRender, prefixCls: prefixCls }, on: { 'select': this.setAndSelectValue } })] )])] ); } }; exports['default'] = MonthPanel;