UNPKG

7.98 kBJavaScriptView Raw
1'use strict';
2
3exports.__esModule = true;
4
5var _extends2 = require('babel-runtime/helpers/extends');
6
7var _extends3 = _interopRequireDefault(_extends2);
8
9var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
10
11var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
12
13var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
14
15var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
16
17var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
18
19var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
20
21var _inherits2 = require('babel-runtime/helpers/inherits');
22
23var _inherits3 = _interopRequireDefault(_inherits2);
24
25var _class, _temp2;
26
27var _react = require('react');
28
29var _react2 = _interopRequireDefault(_react);
30
31var _propTypes = require('prop-types');
32
33var _propTypes2 = _interopRequireDefault(_propTypes);
34
35var _classnames = require('classnames');
36
37var _classnames2 = _interopRequireDefault(_classnames);
38
39var _moment = require('moment');
40
41var _moment2 = _interopRequireDefault(_moment);
42
43var _zhCn = require('../locale/zh-cn');
44
45var _zhCn2 = _interopRequireDefault(_zhCn);
46
47var _util = require('../util');
48
49var _timeMenu = require('./module/time-menu');
50
51var _timeMenu2 = _interopRequireDefault(_timeMenu);
52
53var _utils = require('./utils');
54
55function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
56
57var noop = _util.func.noop;
58var TimePickerPanel = (_temp2 = _class = function (_Component) {
59 (0, _inherits3.default)(TimePickerPanel, _Component);
60
61 function TimePickerPanel() {
62 var _temp, _this, _ret;
63
64 (0, _classCallCheck3.default)(this, TimePickerPanel);
65
66 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
67 args[_key] = arguments[_key];
68 }
69
70 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.onSelectMenuItem = function (index, type) {
71 var value = _this.props.value;
72
73 var clonedValue = value ? value.clone() : (0, _moment2.default)('00:00:00', 'HH:mm:ss', true);
74 switch (type) {
75 case 'hour':
76 clonedValue.hour(index);
77 break;
78 case 'minute':
79 clonedValue.minute(index);
80 break;
81 case 'second':
82 clonedValue.second(index);
83 break;
84 }
85 _this.props.onSelect(clonedValue);
86 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
87 }
88
89 TimePickerPanel.prototype.render = function render() {
90 var _props = this.props,
91 prefix = _props.prefix,
92 value = _props.value,
93 locale = _props.locale,
94 className = _props.className,
95 disabled = _props.disabled,
96 showHour = _props.showHour,
97 showMinute = _props.showMinute,
98 showSecond = _props.showSecond,
99 hourStep = _props.hourStep,
100 minuteStep = _props.minuteStep,
101 secondStep = _props.secondStep,
102 disabledHours = _props.disabledHours,
103 disabledMinutes = _props.disabledMinutes,
104 disabledSeconds = _props.disabledSeconds,
105 renderTimeMenuItems = _props.renderTimeMenuItems,
106 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'value', 'locale', 'className', 'disabled', 'showHour', 'showMinute', 'showSecond', 'hourStep', 'minuteStep', 'secondStep', 'disabledHours', 'disabledMinutes', 'disabledSeconds', 'renderTimeMenuItems']);
107
108
109 var colLen = [showHour, showMinute, showSecond].filter(function (v) {
110 return v;
111 }).length;
112 var classNames = (0, _classnames2.default)(prefix + 'time-picker-panel', prefix + 'time-picker-panel-col-' + colLen, className);
113
114 var commonProps = {
115 prefix: prefix,
116 disabled: disabled,
117 onSelect: this.onSelectMenuItem,
118 renderTimeMenuItems: renderTimeMenuItems,
119 value: value
120 };
121
122 var activeHour = void 0;
123 var activeMinute = void 0;
124 var activeSecond = void 0;
125
126 if (value && _moment2.default.isMoment(value)) {
127 activeHour = value.hour();
128 activeMinute = value.minute();
129 activeSecond = value.second();
130 }
131
132 return _react2.default.createElement(
133 'div',
134 (0, _extends3.default)({}, others, { className: classNames }),
135 showHour ? _react2.default.createElement(_timeMenu2.default, (0, _extends3.default)({}, commonProps, {
136 activeIndex: activeHour,
137 title: locale.hour,
138 mode: 'hour',
139 step: hourStep,
140 disabledItems: disabledHours
141 })) : null,
142 showMinute ? _react2.default.createElement(_timeMenu2.default, (0, _extends3.default)({}, commonProps, {
143 activeIndex: activeMinute,
144 title: locale.minute,
145 mode: 'minute',
146 step: minuteStep,
147 disabledItems: disabledMinutes
148 })) : null,
149 showSecond ? _react2.default.createElement(_timeMenu2.default, (0, _extends3.default)({}, commonProps, {
150 activeIndex: activeSecond,
151 title: locale.second,
152 step: secondStep,
153 mode: 'second',
154 disabledItems: disabledSeconds
155 })) : null
156 );
157 };
158
159 return TimePickerPanel;
160}(_react.Component), _class.propTypes = {
161 prefix: _propTypes2.default.string,
162 /**
163 * 时间值(moment 对象)
164 */
165 value: _utils.checkMomentObj,
166 /**
167 * 是否显示小时
168 */
169 showHour: _propTypes2.default.bool,
170 /**
171 * 是否显示分钟
172 */
173 showMinute: _propTypes2.default.bool,
174 /**
175 * 是否显示秒
176 */
177 showSecond: _propTypes2.default.bool,
178 /**
179 * 小时选项步长
180 */
181 hourStep: _propTypes2.default.number,
182 /**
183 * 分钟选项步长
184 */
185 minuteStep: _propTypes2.default.number,
186 /**
187 * 秒钟选项步长
188 */
189 secondStep: _propTypes2.default.number,
190 /**
191 * 禁用小时函数
192 * @param {Number} index 时 0 - 23
193 * @return {Boolean} 是否禁用
194 */
195 disabledHours: _propTypes2.default.func,
196 /**
197 * 禁用分钟函数
198 * @param {Number} index 分 0 - 59
199 * @return {Boolean} 是否禁用
200 */
201 disabledMinutes: _propTypes2.default.func,
202 /**
203 * 禁用秒函数
204 * @param {Number} index 秒 0 - 59
205 * @return {Boolean} 是否禁用
206 */
207 disabledSeconds: _propTypes2.default.func,
208 /**
209 * 渲染的可选择时间列表
210 * [{
211 * label: '01',
212 * value: 1
213 * }]
214 * @param {Array} list 默认渲染的列表
215 * @param {String} mode 渲染的菜单 hour, minute, second
216 * @param {moment} value 当前时间,可能为 null
217 * @return {Array} 返回需要渲染的数据
218 */
219 renderTimeMenuItems: _propTypes2.default.func,
220 /**
221 * 选择某个日期值时的回调
222 * @param {Object} 选中后的日期值
223 */
224 onSelect: _propTypes2.default.func,
225 locale: _propTypes2.default.object,
226 disabled: _propTypes2.default.bool,
227 className: _propTypes2.default.string
228}, _class.defaultProps = {
229 prefix: 'next-',
230 showHour: true,
231 showSecond: true,
232 showMinute: true,
233 disabledHours: noop,
234 disabledMinutes: noop,
235 disabledSeconds: noop,
236 onSelect: noop,
237 disabled: false,
238 locale: _zhCn2.default.TimePicker
239}, _temp2);
240TimePickerPanel.displayName = 'TimePickerPanel';
241exports.default = TimePickerPanel;
242module.exports = exports['default'];
\No newline at end of file