1 | import _extends from 'babel-runtime/helpers/extends';
|
2 | import _classCallCheck from 'babel-runtime/helpers/classCallCheck';
|
3 | import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';
|
4 | import _inherits from 'babel-runtime/helpers/inherits';
|
5 |
|
6 | var _class, _temp2;
|
7 |
|
8 | import React from 'react';
|
9 | import { polyfill } from 'react-lifecycles-compat';
|
10 | import * as PT from 'prop-types';
|
11 | import TimePickerPanel from '../../time-picker2/panel';
|
12 | import SharedPT from '../prop-types';
|
13 | import { func } from '../../util';
|
14 |
|
15 | var DECADE_TIME_FORMAT = 'HH:mm:ss';
|
16 |
|
17 | var 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 |
|
129 | export default polyfill(TimePanel); |
\ | No newline at end of file |