UNPKG

zent

Version:

一套前端设计语言和基于React的实现

167 lines (132 loc) 4.8 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _formatDate = require('zan-utils/date/formatDate'); var _formatDate2 = _interopRequireDefault(_formatDate); var _TimePanel = require('./time/TimePanel'); var _TimePanel2 = _interopRequireDefault(_TimePanel); var _PanelFooter = require('./common/PanelFooter'); var _PanelFooter2 = _interopRequireDefault(_PanelFooter); var _clickOutside = require('./utils/clickOutside'); var _clickOutside2 = _interopRequireDefault(_clickOutside); var _constants = require('./constants/'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var TimePicker = function (_ref) { (0, _inherits3['default'])(TimePicker, _ref); function TimePicker(props) { (0, _classCallCheck3['default'])(this, TimePicker); var _this = (0, _possibleConstructorReturn3['default'])(this, (TimePicker.__proto__ || Object.getPrototypeOf(TimePicker)).call(this, props)); _this.clickOutside = function (e) { if (!_this.picker.contains(e.target)) { _this.setState({ openPanel: false }); } }; _this.onChangeTime = function (val) { _this.setState({ actived: val }); }; _this.onSelectCurrent = function () { _this.setState({ actived: new Date() }); }; _this.onClickInput = function () { _this.setState({ openPanel: !_this.state.openPanel }); }; _this.onConfirm = function () { var value = (0, _formatDate2['default'])(_this.state.actived, _this.props.format); _this.setState({ value: value, openPanel: false, showPlaceholder: false }); _this.props.onChange(value); }; var showPlaceholder = void 0; var selected = void 0; if (props.value) { showPlaceholder = false; selected = new Date(props.value); } else { showPlaceholder = true; selected = new Date(); } _this.state = { value: (0, _formatDate2['default'])(selected, props.format), actived: selected, selected: selected, openPanel: false, showPlaceholder: showPlaceholder }; return _this; } (0, _createClass3['default'])(TimePicker, [{ key: 'render', value: function render() { var _this2 = this; var state = this.state; var props = this.props; var prefixCls = props.prefix + '-datetime-picker ' + props.className; var inputCls = (0, _classnames2['default'])({ 'picker-input': true, 'picker-input--empty': state.showPlaceholder }); var timePicker = void 0; if (state.openPanel) { timePicker = _react2['default'].createElement( 'div', { className: 'time-picker' }, _react2['default'].createElement(_TimePanel2['default'], { actived: state.actived, format: props.format, disabledTime: props.disabledTime(), onChange: this.onChangeTime }), _react2['default'].createElement(_PanelFooter2['default'], { linkText: '\u6B64\u523B', linkCls: 'link--current', onClickLink: this.onSelectCurrent, onClickButton: this.onConfirm }) ); } return _react2['default'].createElement( 'div', { className: prefixCls, ref: function ref(_ref2) { return _this2.picker = _ref2; } }, _react2['default'].createElement( 'div', { className: 'picker-wrapper' }, _react2['default'].createElement( 'div', { className: inputCls, onClick: this.onClickInput }, state.showPlaceholder ? props.placeholder : state.value ), state.openPanel ? timePicker : '' ) ); } }]); return TimePicker; }(_react.PureComponent || _react.Component); TimePicker.defaultProps = _constants.TIME_PROPS; exports['default'] = (0, _clickOutside2['default'])(TimePicker);