UNPKG

4.69 kBJavaScriptView Raw
1import _extends from 'babel-runtime/helpers/extends';
2import _classCallCheck from 'babel-runtime/helpers/classCallCheck';
3import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';
4import _inherits from 'babel-runtime/helpers/inherits';
5
6var _class, _temp2;
7
8import React from 'react';
9import { polyfill } from 'react-lifecycles-compat';
10import * as PT from 'prop-types';
11import TimePickerPanel from '../../time-picker2/panel';
12import SharedPT from '../prop-types';
13import { func } from '../../util';
14
15var DECADE_TIME_FORMAT = 'HH:mm:ss';
16
17var TimePanel = (_temp2 = _class = function (_React$PureComponent) {
18 _inherits(TimePanel, _React$PureComponent);
19
20 function TimePanel() {
21 var _temp, _this, _ret;
22
23 _classCallCheck(this, TimePanel);
24
25 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
26 args[_key] = arguments[_key];
27 }
28
29 return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.formater = function (v) {
30 var _this$props$timePanel = _this.props.timePanelProps,
31 timePanelProps = _this$props$timePanel === undefined ? {} : _this$props$timePanel;
32
33 var _this$getShow = _this.getShow(),
34 showHour = _this$getShow.showHour,
35 showMinute = _this$getShow.showMinute,
36 showSecond = _this$getShow.showSecond;
37
38 var fmt = void 0;
39 if ('format' in timePanelProps) {
40 fmt = timePanelProps.format;
41 } else {
42 var fmtArr = [];
43
44 showHour && fmtArr.push('HH');
45 showMinute && fmtArr.push('mm');
46 showSecond && fmtArr.push('ss');
47
48 fmt = fmtArr.join(':');
49 }
50
51 return typeof fmt === 'function' ? fmt(v) : v.format(fmt);
52 }, _this.getShow = function () {
53 var _this$props$timePanel2 = _this.props.timePanelProps,
54 props = _this$props$timePanel2 === undefined ? {} : _this$props$timePanel2;
55
56
57 var fmt = props.format || DECADE_TIME_FORMAT;
58
59 var showHour = void 0;
60 var showMinute = void 0;
61 var showSecond = void 0;
62
63 if (typeof fmt === 'string') {
64 showHour = fmt.indexOf('H') > -1;
65 showSecond = fmt.indexOf('s') > -1;
66 showMinute = fmt.indexOf('m') > -1;
67 }
68
69 return {
70 showHour: 'showHour' in props ? props.showHour : showHour,
71 showMinute: 'showMinute' in props ? props.showMinute : showMinute,
72 showSecond: 'showSecond' in props ? props.showSecond : showSecond
73 };
74 }, _this.onSelect = function (v) {
75 func.invoke(_this.props, 'onSelect', [v]);
76 }, _temp), _possibleConstructorReturn(_this, _ret);
77 }
78
79 TimePanel.prototype.render = function render() {
80 var _props = this.props,
81 prefix = _props.prefix,
82 rtl = _props.rtl,
83 locale = _props.locale,
84 _props$timePanelProps = _props.timePanelProps,
85 timePanelProps = _props$timePanelProps === undefined ? {} : _props$timePanelProps,
86 value = _props.value;
87
88 var _getShow = this.getShow(),
89 showHour = _getShow.showHour,
90 showMinute = _getShow.showMinute,
91 showSecond = _getShow.showSecond;
92
93 return React.createElement(
94 'div',
95 { dir: rtl ? 'rtl' : undefined, className: prefix + 'date-time-picker-wrapper ' + prefix + 'calendar2-panel' },
96 React.createElement(
97 'div',
98 { className: prefix + 'calendar2-header' },
99 React.createElement(
100 'div',
101 { className: prefix + 'calendar2-header-text-field' },
102 value ? this.formater(value) : null
103 )
104 ),
105 React.createElement(TimePickerPanel, _extends({
106 prefix: prefix,
107 locale: locale,
108 onSelect: this.onSelect,
109 showHour: showHour,
110 showSecond: showSecond,
111 showMinute: showMinute
112 }, timePanelProps, {
113 value: value
114 }))
115 );
116 };
117
118 return TimePanel;
119}(React.PureComponent), _class.propTypes = {
120 rtl: PT.bool,
121 prefix: PT.string,
122 locale: PT.object,
123 value: SharedPT.date,
124 timePanelProps: PT.object,
125 onSelect: PT.func
126}, _temp2);
127
128
129export default polyfill(TimePanel);
\No newline at end of file