UNPKG

8.68 kBJavaScriptView Raw
1'use strict';
2
3exports.__esModule = true;
4
5var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
6
7var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
8
9var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
10
11var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
12
13var _inherits2 = require('babel-runtime/helpers/inherits');
14
15var _inherits3 = _interopRequireDefault(_inherits2);
16
17var _class, _temp2; /* istanbul ignore file */
18
19
20var _react = require('react');
21
22var _react2 = _interopRequireDefault(_react);
23
24var _icon = require('../../icon');
25
26var _icon2 = _interopRequireDefault(_icon);
27
28var _dropdown = require('../../dropdown');
29
30var _dropdown2 = _interopRequireDefault(_dropdown);
31
32var _menu = require('./menu');
33
34var _menu2 = _interopRequireDefault(_menu);
35
36var _utils = require('../utils');
37
38function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39
40/* eslint-disable */
41var DatePanelHeader = (_temp2 = _class = function (_React$PureComponent) {
42 (0, _inherits3.default)(DatePanelHeader, _React$PureComponent);
43
44 function DatePanelHeader() {
45 var _temp, _this, _ret;
46
47 (0, _classCallCheck3.default)(this, DatePanelHeader);
48
49 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
50 args[_key] = arguments[_key];
51 }
52
53 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.selectContainerHandler = function (target) {
54 return target.parentNode;
55 }, _this.onYearChange = function (year) {
56 var _this$props = _this.props,
57 visibleMonth = _this$props.visibleMonth,
58 changeVisibleMonth = _this$props.changeVisibleMonth;
59
60 changeVisibleMonth(visibleMonth.clone().year(year), 'yearSelect');
61 }, _this.changeVisibleMonth = function (month) {
62 var _this$props2 = _this.props,
63 visibleMonth = _this$props2.visibleMonth,
64 changeVisibleMonth = _this$props2.changeVisibleMonth;
65
66 changeVisibleMonth(visibleMonth.clone().month(month), 'monthSelect');
67 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
68 }
69
70 DatePanelHeader.prototype.render = function render() {
71 var _this2 = this;
72
73 var _props = this.props,
74 prefix = _props.prefix,
75 visibleMonth = _props.visibleMonth,
76 momentLocale = _props.momentLocale,
77 locale = _props.locale,
78 changeMode = _props.changeMode,
79 goNextMonth = _props.goNextMonth,
80 goNextYear = _props.goNextYear,
81 goPrevMonth = _props.goPrevMonth,
82 goPrevYear = _props.goPrevYear,
83 disableChangeMode = _props.disableChangeMode,
84 yearRangeOffset = _props.yearRangeOffset,
85 _props$yearRange = _props.yearRange,
86 yearRange = _props$yearRange === undefined ? [] : _props$yearRange;
87
88
89 var localedMonths = momentLocale.months();
90 var monthLabel = localedMonths[visibleMonth.month()];
91 var yearLabel = visibleMonth.year();
92 var btnCls = prefix + 'calendar-btn';
93
94 var monthButton = _react2.default.createElement(
95 'button',
96 {
97 role: 'button',
98 type: 'button',
99 className: btnCls,
100 title: monthLabel,
101 onClick: function onClick() {
102 return changeMode('month', 'start');
103 }
104 },
105 monthLabel
106 );
107
108 var yearButton = _react2.default.createElement(
109 'button',
110 {
111 role: 'button',
112 type: 'button',
113 className: btnCls,
114 title: yearLabel,
115 onClick: function onClick() {
116 return changeMode('year', 'start');
117 }
118 },
119 yearLabel
120 );
121
122 if (disableChangeMode) {
123 var months = (0, _utils.getMonths)(momentLocale);
124 var years = (0, _utils.getYears)(yearRange, yearRangeOffset, visibleMonth.year());
125
126 monthButton = _react2.default.createElement(
127 _dropdown2.default,
128 {
129 align: 'tc bc',
130 container: this.selectContainerHandler,
131 trigger: _react2.default.createElement(
132 'button',
133 { role: 'button', type: 'button', className: btnCls, title: monthLabel },
134 monthLabel,
135 _react2.default.createElement(_icon2.default, { type: 'arrow-down' })
136 ),
137 triggerType: 'click'
138 },
139 _react2.default.createElement(_menu2.default, {
140 prefix: prefix,
141 value: visibleMonth.month(),
142 dataSource: months,
143 onChange: function onChange(value) {
144 return _this2.changeVisibleMonth(value);
145 }
146 })
147 );
148
149 yearButton = _react2.default.createElement(
150 _dropdown2.default,
151 {
152 align: 'tc bc',
153 container: this.selectContainerHandler,
154 trigger: _react2.default.createElement(
155 'button',
156 { role: 'button', type: 'button', className: btnCls, title: yearLabel },
157 yearLabel,
158 _react2.default.createElement(_icon2.default, { type: 'arrow-down' })
159 ),
160 triggerType: 'click'
161 },
162 _react2.default.createElement(_menu2.default, {
163 prefix: prefix,
164 value: visibleMonth.year(),
165 dataSource: years,
166 onChange: this.onYearChange
167 })
168 );
169 }
170
171 return _react2.default.createElement(
172 'div',
173 { className: prefix + 'calendar-panel-header' },
174 _react2.default.createElement(
175 'button',
176 {
177 role: 'button',
178 type: 'button',
179 title: locale.prevYear,
180 className: btnCls + ' ' + btnCls + '-prev-year',
181 onClick: goPrevYear
182 },
183 _react2.default.createElement(_icon2.default, { type: 'arrow-double-left', className: prefix + 'calendar-symbol-prev-super' })
184 ),
185 _react2.default.createElement(
186 'button',
187 {
188 role: 'button',
189 type: 'button',
190 title: locale.prevMonth,
191 className: btnCls + ' ' + btnCls + '-prev-month',
192 onClick: goPrevMonth
193 },
194 _react2.default.createElement(_icon2.default, { type: 'arrow-left', className: prefix + 'calendar-symbol-prev' })
195 ),
196 _react2.default.createElement(
197 'div',
198 { className: prefix + 'calendar-panel-header-full' },
199 monthButton,
200 yearButton
201 ),
202 _react2.default.createElement(
203 'button',
204 {
205 role: 'button',
206 type: 'button',
207 title: locale.nextMonth,
208 className: btnCls + ' ' + btnCls + '-next-month',
209 onClick: goNextMonth
210 },
211 _react2.default.createElement(_icon2.default, { type: 'arrow-right', className: prefix + 'calendar-symbol-next' })
212 ),
213 _react2.default.createElement(
214 'button',
215 {
216 role: 'button',
217 type: 'button',
218 title: locale.nextYear,
219 className: btnCls + ' ' + btnCls + '-next-year',
220 onClick: goNextYear
221 },
222 _react2.default.createElement(_icon2.default, { type: 'arrow-double-right', className: prefix + 'calendar-symbol-next-super' })
223 )
224 );
225 };
226
227 return DatePanelHeader;
228}(_react2.default.PureComponent), _class.defaultProps = {
229 yearRangeOffset: 10
230}, _temp2);
231exports.default = DatePanelHeader;
232module.exports = exports['default'];
\No newline at end of file