1 | import _extends from 'babel-runtime/helpers/extends';
|
2 | import _typeof from 'babel-runtime/helpers/typeof';
|
3 | import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';
|
4 | import _classCallCheck from 'babel-runtime/helpers/classCallCheck';
|
5 | import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';
|
6 | import _inherits from 'babel-runtime/helpers/inherits';
|
7 |
|
8 | var _class, _temp, _initialiseProps;
|
9 |
|
10 | import React from 'react';
|
11 | import { polyfill } from 'react-lifecycles-compat';
|
12 | import classnames from 'classnames';
|
13 | import * as PT from 'prop-types';
|
14 |
|
15 | import SharedPT from '../prop-types';
|
16 | import { func, obj, datejs } from '../../util';
|
17 | import { setTime } from '../util';
|
18 |
|
19 | import Calendar from '../../calendar2';
|
20 | import TimePanel from './time-panel';
|
21 |
|
22 | var DatePanel = (_temp = _class = function (_React$Component) {
|
23 | _inherits(DatePanel, _React$Component);
|
24 |
|
25 | function DatePanel(props) {
|
26 | _classCallCheck(this, DatePanel);
|
27 |
|
28 |
|
29 | var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));
|
30 |
|
31 | _initialiseProps.call(_this);
|
32 |
|
33 | var _props$timePanelProps = props.timePanelProps,
|
34 | timePanelProps = _props$timePanelProps === undefined ? {} : _props$timePanelProps;
|
35 |
|
36 | var defaultTime = timePanelProps.defaultValue;
|
37 |
|
38 | if (defaultTime) {
|
39 |
|
40 | defaultTime = datejs(defaultTime, typeof defaultTime === 'string' ? timePanelProps.format || 'HH:mm:ss' : undefined);
|
41 | }
|
42 |
|
43 | _this.state = {
|
44 | defaultTime: defaultTime
|
45 | };
|
46 | return _this;
|
47 | }
|
48 |
|
49 | DatePanel.prototype.render = function render() {
|
50 | var _classnames;
|
51 |
|
52 | var _props = this.props,
|
53 | mode = _props.mode,
|
54 | panelMode = _props.panelMode,
|
55 | prefix = _props.prefix,
|
56 | showTime = _props.showTime,
|
57 | value = _props.value,
|
58 | disabledDate = _props.disabledDate,
|
59 | disabledTime = _props.disabledTime,
|
60 | timePanelProps = _props.timePanelProps,
|
61 | dateCellRender = _props.dateCellRender,
|
62 | restProps = _objectWithoutProperties(_props, ['mode', 'panelMode', 'prefix', 'showTime', 'value', 'disabledDate', 'disabledTime', 'timePanelProps', 'dateCellRender']);
|
63 |
|
64 | var className = classnames(prefix + 'date-picker2-panel', (_classnames = {}, _classnames[prefix + 'date-time-picker2-panel'] = showTime, _classnames));
|
65 |
|
66 |
|
67 | var _disabledTime = void 0;
|
68 | if (showTime && mode === panelMode && disabledTime) {
|
69 | _disabledTime = typeof disabledTime === 'function' ? disabledTime(value) : disabledTime;
|
70 | if ((typeof _disabledTime === 'undefined' ? 'undefined' : _typeof(_disabledTime)) !== 'object') {
|
71 | _disabledTime = null;
|
72 | }
|
73 | }
|
74 |
|
75 | return React.createElement(
|
76 | 'div',
|
77 | { className: className },
|
78 | React.createElement(Calendar, _extends({}, obj.pickProps(Calendar.propTypes, restProps), {
|
79 | shape: 'panel',
|
80 | value: value,
|
81 | panelMode: mode,
|
82 | colNum: showTime ? 6 : undefined,
|
83 | onSelect: this.handleSelect,
|
84 | onPanelChange: this.handlePanelChange,
|
85 | disabledDate: disabledDate,
|
86 | dateCellRender: dateCellRender
|
87 | })),
|
88 | showTime && mode === panelMode ? React.createElement(TimePanel, _extends({}, obj.pickProps(TimePanel.propTypes, restProps), {
|
89 | prefix: prefix,
|
90 | value: value || this.state.defaultTime,
|
91 | onSelect: this.onTimeSelect,
|
92 | disabledTime: disabledTime,
|
93 | timePanelProps: _extends({}, _disabledTime, timePanelProps)
|
94 | })) : null
|
95 | );
|
96 | };
|
97 |
|
98 | return DatePanel;
|
99 | }(React.Component), _class.propTypes = {
|
100 | rtl: PT.bool,
|
101 | prefix: PT.string,
|
102 | locale: PT.object,
|
103 | mode: SharedPT.mode,
|
104 | panelMode: PT.any,
|
105 | value: SharedPT.date,
|
106 | disabledDate: PT.func,
|
107 | showTime: PT.bool,
|
108 | resetTime: PT.bool,
|
109 | timePanelProps: PT.object,
|
110 | disabledTime: SharedPT.disabledTime,
|
111 | dateCellRender: PT.func
|
112 | }, _class.defaultProps = {
|
113 | showTime: false,
|
114 | resetTime: false
|
115 | }, _initialiseProps = function _initialiseProps() {
|
116 | var _this2 = this;
|
117 |
|
118 | this.onTimeSelect = function (v) {
|
119 | _this2.handleSelect(v, true);
|
120 | };
|
121 |
|
122 | this.handleSelect = function (v, fromTimeChange) {
|
123 | var defaultTime = _this2.state.defaultTime;
|
124 |
|
125 |
|
126 | var timeVal = null;
|
127 |
|
128 | if (!_this2.props.resetTime && !fromTimeChange) {
|
129 | timeVal = _this2.props.value || defaultTime || datejs();
|
130 | }
|
131 |
|
132 | v = setTime(v, timeVal);
|
133 |
|
134 | func.invoke(_this2.props, 'onSelect', [v]);
|
135 | };
|
136 |
|
137 | this.handlePanelChange = function (v, mode) {
|
138 | func.invoke(_this2.props, 'onPanelChange', [v, mode]);
|
139 | };
|
140 | }, _temp);
|
141 | DatePanel.displayName = 'DatePanel';
|
142 |
|
143 |
|
144 | export default polyfill(DatePanel); |
\ | No newline at end of file |