UNPKG

6.63 kBJavaScriptView Raw
1'use strict';
2
3exports.__esModule = true;
4
5var _extends2 = require('babel-runtime/helpers/extends');
6
7var _extends3 = _interopRequireDefault(_extends2);
8
9var _typeof2 = require('babel-runtime/helpers/typeof');
10
11var _typeof3 = _interopRequireDefault(_typeof2);
12
13var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
14
15var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
16
17var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
18
19var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
20
21var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
22
23var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
24
25var _inherits2 = require('babel-runtime/helpers/inherits');
26
27var _inherits3 = _interopRequireDefault(_inherits2);
28
29var _class, _temp, _initialiseProps;
30
31var _react = require('react');
32
33var _react2 = _interopRequireDefault(_react);
34
35var _reactLifecyclesCompat = require('react-lifecycles-compat');
36
37var _classnames2 = require('classnames');
38
39var _classnames3 = _interopRequireDefault(_classnames2);
40
41var _propTypes = require('prop-types');
42
43var PT = _interopRequireWildcard(_propTypes);
44
45var _propTypes2 = require('../prop-types');
46
47var _propTypes3 = _interopRequireDefault(_propTypes2);
48
49var _util = require('../../util');
50
51var _util2 = require('../util');
52
53var _calendar = require('../../calendar2');
54
55var _calendar2 = _interopRequireDefault(_calendar);
56
57var _timePanel = require('./time-panel');
58
59var _timePanel2 = _interopRequireDefault(_timePanel);
60
61function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
62
63function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
64
65var DatePanel = (_temp = _class = function (_React$Component) {
66 (0, _inherits3.default)(DatePanel, _React$Component);
67
68 function DatePanel(props) {
69 (0, _classCallCheck3.default)(this, DatePanel);
70
71 // 默认时间
72 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
73
74 _initialiseProps.call(_this);
75
76 var _props$timePanelProps = props.timePanelProps,
77 timePanelProps = _props$timePanelProps === undefined ? {} : _props$timePanelProps;
78
79 var defaultTime = timePanelProps.defaultValue;
80
81 if (defaultTime) {
82 // fix: https://github.com/alibaba-fusion/next/issues/3203
83 defaultTime = (0, _util.datejs)(defaultTime, typeof defaultTime === 'string' ? timePanelProps.format || 'HH:mm:ss' : undefined);
84 }
85
86 _this.state = {
87 defaultTime: defaultTime
88 };
89 return _this;
90 }
91
92 DatePanel.prototype.render = function render() {
93 var _classnames;
94
95 var _props = this.props,
96 mode = _props.mode,
97 panelMode = _props.panelMode,
98 prefix = _props.prefix,
99 showTime = _props.showTime,
100 value = _props.value,
101 disabledDate = _props.disabledDate,
102 disabledTime = _props.disabledTime,
103 timePanelProps = _props.timePanelProps,
104 dateCellRender = _props.dateCellRender,
105 restProps = (0, _objectWithoutProperties3.default)(_props, ['mode', 'panelMode', 'prefix', 'showTime', 'value', 'disabledDate', 'disabledTime', 'timePanelProps', 'dateCellRender']);
106
107
108 var className = (0, _classnames3.default)(prefix + 'date-picker2-panel', (_classnames = {}, _classnames[prefix + 'date-time-picker2-panel'] = showTime, _classnames));
109
110 // 禁用时间
111 var _disabledTime = void 0;
112 if (showTime && mode === panelMode && disabledTime) {
113 _disabledTime = typeof disabledTime === 'function' ? disabledTime(value) : disabledTime;
114 if ((typeof _disabledTime === 'undefined' ? 'undefined' : (0, _typeof3.default)(_disabledTime)) !== 'object') {
115 _disabledTime = null;
116 }
117 }
118
119 return _react2.default.createElement(
120 'div',
121 { className: className },
122 _react2.default.createElement(_calendar2.default, (0, _extends3.default)({}, _util.obj.pickProps(_calendar2.default.propTypes, restProps), {
123 shape: 'panel',
124 value: value,
125 panelMode: mode,
126 colNum: showTime ? 6 : undefined,
127 onSelect: this.handleSelect,
128 onPanelChange: this.handlePanelChange,
129 disabledDate: disabledDate,
130 dateCellRender: dateCellRender
131 })),
132 showTime && mode === panelMode ? _react2.default.createElement(_timePanel2.default, (0, _extends3.default)({}, _util.obj.pickProps(_timePanel2.default.propTypes, restProps), {
133 prefix: prefix,
134 value: value || this.state.defaultTime,
135 onSelect: this.onTimeSelect,
136 disabledTime: disabledTime,
137 timePanelProps: (0, _extends3.default)({}, _disabledTime, timePanelProps)
138 })) : null
139 );
140 };
141
142 return DatePanel;
143}(_react2.default.Component), _class.propTypes = {
144 rtl: PT.bool,
145 prefix: PT.string,
146 locale: PT.object,
147 mode: _propTypes3.default.mode,
148 panelMode: PT.any,
149 value: _propTypes3.default.date,
150 disabledDate: PT.func,
151 showTime: PT.bool,
152 resetTime: PT.bool,
153 timePanelProps: PT.object,
154 disabledTime: _propTypes3.default.disabledTime,
155 dateCellRender: PT.func
156}, _class.defaultProps = {
157 showTime: false,
158 resetTime: false
159}, _initialiseProps = function _initialiseProps() {
160 var _this2 = this;
161
162 this.onTimeSelect = function (v) {
163 _this2.handleSelect(v, true);
164 };
165
166 this.handleSelect = function (v, fromTimeChange) {
167 var defaultTime = _this2.state.defaultTime;
168
169
170 var timeVal = null;
171
172 if (!_this2.props.resetTime && !fromTimeChange) {
173 timeVal = _this2.props.value || defaultTime || (0, _util.datejs)();
174 }
175
176 v = (0, _util2.setTime)(v, timeVal);
177
178 _util.func.invoke(_this2.props, 'onSelect', [v]);
179 };
180
181 this.handlePanelChange = function (v, mode) {
182 _util.func.invoke(_this2.props, 'onPanelChange', [v, mode]);
183 };
184}, _temp);
185DatePanel.displayName = 'DatePanel';
186exports.default = (0, _reactLifecyclesCompat.polyfill)(DatePanel);
187module.exports = exports['default'];
\No newline at end of file