UNPKG

hm-react-cli

Version:

Create a Huimei React project by module

135 lines (115 loc) 3.86 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _gregorianCalendar = require('gregorian-calendar'); var _gregorianCalendar2 = _interopRequireDefault(_gregorianCalendar); var _index = require('../util/index'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function noop() {} function getNow() { var value = new _gregorianCalendar2["default"](); value.setTime(Date.now()); return value; } function getNowByCurrentStateValue(value) { var ret = void 0; if (value) { ret = value.clone(); ret.setTime(Date.now()); } else { ret = getNow(); } return ret; } var CalendarMixin = { propTypes: { value: _react.PropTypes.object, defaultValue: _react.PropTypes.object, onKeyDown: _react.PropTypes.func }, getDefaultProps: function getDefaultProps() { return { onKeyDown: noop }; }, getInitialState: function getInitialState() { var props = this.props; var value = props.value || props.defaultValue || getNow(); return { value: value, selectedValue: props.selectedValue || props.defaultSelectedValue }; }, componentWillReceiveProps: function componentWillReceiveProps(nextProps) { var value = nextProps.value; var selectedValue = nextProps.selectedValue; if ('value' in nextProps) { value = value || nextProps.defaultValue || getNowByCurrentStateValue(this.state.value); this.setState({ value: value }); } if ('selectedValue' in nextProps) { this.setState({ selectedValue: selectedValue }); } }, onSelect: function onSelect(value, cause) { if (value) { this.setValue(value); } this.setSelectedValue(value, cause); }, renderRoot: function renderRoot(newProps) { var _className; var props = this.props; var prefixCls = props.prefixCls; var className = (_className = {}, _defineProperty(_className, prefixCls, 1), _defineProperty(_className, prefixCls + '-hidden', !props.visible), _defineProperty(_className, props.className, !!props.className), _defineProperty(_className, newProps.className, !!newProps.className), _className); return _react2["default"].createElement( 'div', { ref: 'root', className: '' + (0, _classnames2["default"])(className), style: this.props.style, tabIndex: '0', onKeyDown: this.onKeyDown }, newProps.children ); }, setSelectedValue: function setSelectedValue(selectedValue, cause) { if (this.isAllowedDate(selectedValue)) { if (!('selectedValue' in this.props)) { this.setState({ selectedValue: selectedValue }); } this.props.onSelect(selectedValue, cause); } }, setValue: function setValue(value) { var originalValue = this.state.value; if (!('value' in this.props)) { this.setState({ value: value }); } if (originalValue && value && originalValue.getTime() !== value.getTime() || !originalValue && value || originalValue && !value) { this.props.onChange(value); } }, isAllowedDate: function isAllowedDate(value) { var disabledDate = this.props.disabledDate; var disabledTime = this.props.disabledTime; return (0, _index.isAllowedDate)(value, disabledDate, disabledTime); } }; exports["default"] = CalendarMixin; module.exports = exports['default'];