@alifd/next
Version:
A configurable component library for web built on React.
187 lines (133 loc) • 6.63 kB
JavaScript
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _typeof2 = require('babel-runtime/helpers/typeof');
var _typeof3 = _interopRequireDefault(_typeof2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _class, _temp, _initialiseProps;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactLifecyclesCompat = require('react-lifecycles-compat');
var _classnames2 = require('classnames');
var _classnames3 = _interopRequireDefault(_classnames2);
var _propTypes = require('prop-types');
var PT = _interopRequireWildcard(_propTypes);
var _propTypes2 = require('../prop-types');
var _propTypes3 = _interopRequireDefault(_propTypes2);
var _util = require('../../util');
var _util2 = require('../util');
var _calendar = require('../../calendar2');
var _calendar2 = _interopRequireDefault(_calendar);
var _timePanel = require('./time-panel');
var _timePanel2 = _interopRequireDefault(_timePanel);
function _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; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var DatePanel = (_temp = _class = function (_React$Component) {
(0, _inherits3.default)(DatePanel, _React$Component);
function DatePanel(props) {
(0, _classCallCheck3.default)(this, DatePanel);
// 默认时间
var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
_initialiseProps.call(_this);
var _props$timePanelProps = props.timePanelProps,
timePanelProps = _props$timePanelProps === undefined ? {} : _props$timePanelProps;
var defaultTime = timePanelProps.defaultValue;
if (defaultTime) {
// fix: https://github.com/alibaba-fusion/next/issues/3203
defaultTime = (0, _util.datejs)(defaultTime, typeof defaultTime === 'string' ? timePanelProps.format || 'HH:mm:ss' : undefined);
}
_this.state = {
defaultTime: defaultTime
};
return _this;
}
DatePanel.prototype.render = function render() {
var _classnames;
var _props = this.props,
mode = _props.mode,
panelMode = _props.panelMode,
prefix = _props.prefix,
showTime = _props.showTime,
value = _props.value,
disabledDate = _props.disabledDate,
disabledTime = _props.disabledTime,
timePanelProps = _props.timePanelProps,
dateCellRender = _props.dateCellRender,
restProps = (0, _objectWithoutProperties3.default)(_props, ['mode', 'panelMode', 'prefix', 'showTime', 'value', 'disabledDate', 'disabledTime', 'timePanelProps', 'dateCellRender']);
var className = (0, _classnames3.default)(prefix + 'date-picker2-panel', (_classnames = {}, _classnames[prefix + 'date-time-picker2-panel'] = showTime, _classnames));
// 禁用时间
var _disabledTime = void 0;
if (showTime && mode === panelMode && disabledTime) {
_disabledTime = typeof disabledTime === 'function' ? disabledTime(value) : disabledTime;
if ((typeof _disabledTime === 'undefined' ? 'undefined' : (0, _typeof3.default)(_disabledTime)) !== 'object') {
_disabledTime = null;
}
}
return _react2.default.createElement(
'div',
{ className: className },
_react2.default.createElement(_calendar2.default, (0, _extends3.default)({}, _util.obj.pickProps(_calendar2.default.propTypes, restProps), {
shape: 'panel',
value: value,
panelMode: mode,
colNum: showTime ? 6 : undefined,
onSelect: this.handleSelect,
onPanelChange: this.handlePanelChange,
disabledDate: disabledDate,
dateCellRender: dateCellRender
})),
showTime && mode === panelMode ? _react2.default.createElement(_timePanel2.default, (0, _extends3.default)({}, _util.obj.pickProps(_timePanel2.default.propTypes, restProps), {
prefix: prefix,
value: value || this.state.defaultTime,
onSelect: this.onTimeSelect,
disabledTime: disabledTime,
timePanelProps: (0, _extends3.default)({}, _disabledTime, timePanelProps)
})) : null
);
};
return DatePanel;
}(_react2.default.Component), _class.propTypes = {
rtl: PT.bool,
prefix: PT.string,
locale: PT.object,
mode: _propTypes3.default.mode,
panelMode: PT.any,
value: _propTypes3.default.date,
disabledDate: PT.func,
showTime: PT.bool,
resetTime: PT.bool,
timePanelProps: PT.object,
disabledTime: _propTypes3.default.disabledTime,
dateCellRender: PT.func
}, _class.defaultProps = {
showTime: false,
resetTime: false
}, _initialiseProps = function _initialiseProps() {
var _this2 = this;
this.onTimeSelect = function (v) {
_this2.handleSelect(v, true);
};
this.handleSelect = function (v, fromTimeChange) {
var defaultTime = _this2.state.defaultTime;
var timeVal = null;
if (!_this2.props.resetTime && !fromTimeChange) {
timeVal = _this2.props.value || defaultTime || (0, _util.datejs)();
}
v = (0, _util2.setTime)(v, timeVal);
_util.func.invoke(_this2.props, 'onSelect', [v]);
};
this.handlePanelChange = function (v, mode) {
_util.func.invoke(_this2.props, 'onPanelChange', [v, mode]);
};
}, _temp);
DatePanel.displayName = 'DatePanel';
exports.default = (0, _reactLifecyclesCompat.polyfill)(DatePanel);
module.exports = exports['default'];