UNPKG

dareway-rui

Version:

352 lines (297 loc) 14.5 kB
'use strict'; var _interopRequireWildcard = require('@babel/runtime/helpers/interopRequireWildcard'); var _interopRequireDefault = require('@babel/runtime/helpers/interopRequireDefault'); Object.defineProperty(exports, '__esModule', { value: true }); exports.default = createPicker; var _extends2 = _interopRequireDefault(require('@babel/runtime/helpers/extends')); var _classCallCheck2 = _interopRequireDefault(require('@babel/runtime/helpers/classCallCheck')); var _possibleConstructorReturn2 = _interopRequireDefault(require('@babel/runtime/helpers/possibleConstructorReturn')); var _getPrototypeOf2 = _interopRequireDefault(require('@babel/runtime/helpers/getPrototypeOf')); var _assertThisInitialized2 = _interopRequireDefault(require('@babel/runtime/helpers/assertThisInitialized')); var _createClass2 = _interopRequireDefault(require('@babel/runtime/helpers/createClass')); var _inherits2 = _interopRequireDefault(require('@babel/runtime/helpers/inherits')); var _defineProperty2 = _interopRequireDefault(require('@babel/runtime/helpers/defineProperty')); var React = _interopRequireWildcard(require('react')); var moment = _interopRequireWildcard(require('moment')); var _reactLifecyclesCompat = require('react-lifecycles-compat'); var _MonthCalendar = _interopRequireDefault(require('./RcCalendar/MonthCalendar')); var _Picker = _interopRequireDefault(require('./RcCalendar/Picker')); var _classnames = _interopRequireDefault(require('classnames')); var _omit = _interopRequireDefault(require('omit.js')); var _ruiIcon = _interopRequireDefault(require('rui-icon')); var _warning = _interopRequireDefault(require('antd/lib/_util/warning')); var _interopDefault = _interopRequireDefault(require('antd/lib/_util/interopDefault')); function createPicker(TheCalendar) { var CalenderWrapper = /*#__PURE__*/ (function(_React$Component) { (0, _inherits2.default)(CalenderWrapper, _React$Component); (0, _createClass2.default)(CalenderWrapper, null, [ { key: 'getDerivedStateFromProps', value: function getDerivedStateFromProps(nextProps, prevState) { var state = {}; var open = prevState.open; if ('open' in nextProps) { state.open = nextProps.open; open = nextProps.open || false; } if ('value' in nextProps) { state.value = nextProps.value; if ( nextProps.value !== prevState.value || (!open && nextProps.value !== prevState.showDate) ) { state.showDate = nextProps.value; } } return state; } } ]); function CalenderWrapper(_props) { var _this; (0, _classCallCheck2.default)(this, CalenderWrapper); _this = (0, _possibleConstructorReturn2.default)( this, (0, _getPrototypeOf2.default)(CalenderWrapper).call(this, _props) ); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'renderFooter', function() { var _this$props = _this.props, prefixCls = _this$props.prefixCls, renderExtraFooter = _this$props.renderExtraFooter; return renderExtraFooter ? React.createElement( 'div', { className: ''.concat(prefixCls, '-footer-extra') }, renderExtraFooter.apply(void 0, arguments) ) : null; }); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'clearSelection', function( e ) { e.preventDefault(); e.stopPropagation(); _this.handleChange(null); }); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'handleChange', function( value ) { var props = _this.props; if (!('value' in props)) { _this.setState({ value: value, showDate: value }); } props.onChange(value, (value && value.format(props.format)) || ''); _this.focus(); }); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'handleDateChange', function( value ) { var props = _this.props; if (!('value' in props)) { _this.setState({ value: value, showDate: value }); } if (props.onDateChange) { props.onDateChange(value, (value && value.format(props.format)) || ''); } _this.focus(); }); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'handleTimeChange', function( value ) { var props = _this.props; if (!('value' in props)) { _this.setState({ value: value, showDate: value }); } if (props.onTimeChange) { props.onTimeChange(value, (value && value.format(props.format)) || ''); } _this.focus(); }); (0, _defineProperty2.default)( (0, _assertThisInitialized2.default)(_this), 'handleIconClick', function() { var onIconClick = _this.props.onIconClick; if (onIconClick) { onIconClick(); } } ); (0, _defineProperty2.default)( (0, _assertThisInitialized2.default)(_this), 'handleCalendarChange', function(value) { _this.setState({ showDate: value }); } ); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'handleOpenChange', function( open ) { var onOpenChange = _this.props.onOpenChange; if (!('open' in _this.props)) { _this.setState({ open: open }); } if (onOpenChange) { onOpenChange(open); } }); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'saveInput', function( node ) {}); var _value = _props.value || _props.defaultValue; if (_value && !(0, _interopDefault.default)(moment).isMoment(_value)) { throw new Error( 'The value/defaultValue of DatePicker or MonthPicker must be ' + 'a moment object after `antd@2.0`, see: https://u.ant.design/date-picker-value' ); } _this.state = { value: _value, showDate: _value, open: false }; _this.input; return _this; } (0, _createClass2.default)(CalenderWrapper, [ { key: 'focus', value: function focus() {} }, { key: 'blur', value: function blur() {} }, { key: 'render', value: function render() { var _classNames, _this2 = this; var _this$state = this.state, value = _this$state.value, showDate = _this$state.showDate, open = _this$state.open; var props = (0, _omit.default)(this.props, ['onChange']); var prefixCls = props.prefixCls, locale = props.locale, localeCode = props.localeCode, suffixIcon = props.suffixIcon; var placeholder = 'placeholder' in props ? props.placeholder : locale.lang.placeholder; var disabledTime = props.showTime ? props.disabledTime : null; var calendarClassName = (0, _classnames.default)( ((_classNames = {}), (0, _defineProperty2.default)(_classNames, ''.concat(prefixCls, '-time'), props.showTime), (0, _defineProperty2.default)( _classNames, ''.concat(prefixCls, '-month'), _MonthCalendar.default === TheCalendar ), _classNames) ); if (value && localeCode) { value.locale(localeCode); } var pickerProps = {}; var calendarProps = {}; var pickerStyle = {}; if (props.showTime) { calendarProps = { // fix https://github.com/ant-design/ant-design/issues/1902 onSelect: this.handleTimeChange }; pickerStyle.width = 195; } else { pickerProps = { onChange: this.handleDateChange }; } if ('mode' in props) { calendarProps.mode = props.mode; } (0, _warning.default)( !('onOK' in props), 'It should be `DatePicker[onOk]` or `MonthPicker[onOk]`, instead of `onOK`!' ); var calendar = React.createElement( TheCalendar, (0, _extends2.default)({}, calendarProps, { disabledDate: props.disabledDate, disabledTime: disabledTime, locale: locale.lang, timePicker: props.timePicker, defaultValue: props.defaultPickerValue || (0, _interopDefault.default)(moment)(), dateInputPlaceholder: placeholder, prefixCls: prefixCls, className: calendarClassName, onOk: props.onOk, dateRender: props.dateRender, format: props.format, showToday: props.showToday, monthCellContentRender: props.monthCellContentRender, renderFooter: this.renderFooter, onPanelChange: props.onPanelChange, onChange: this.handleCalendarChange, value: showDate }) ); var input = function input(_ref) { var inputValue = _ref.value; return React.createElement( 'div', { onClick: _this2.handleIconClick }, React.createElement(_ruiIcon.default, { style: { cursor: 'pointer' }, type: 'calendar', className: ''.concat(prefixCls, '-picker-icon') }) ); }; return React.createElement( _Picker.default, (0, _extends2.default)({}, props, pickerProps, { calendar: calendar, value: value, prefixCls: ''.concat(prefixCls, '-picker-container'), style: props.popupStyle, open: open, onOpenChange: this.handleOpenChange }), input ); } } ]); return CalenderWrapper; })(React.Component); (0, _defineProperty2.default)(CalenderWrapper, 'defaultProps', { prefixCls: 'ant-calendar', allowClear: true, showToday: true }); (0, _reactLifecyclesCompat.polyfill)(CalenderWrapper); return CalenderWrapper; } //@ sourceMappingURL=createPicker.js.map