UNPKG

oui-antd

Version:

An enterprise-class UI design language and React-based implementation

196 lines (157 loc) 7.42 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); 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 React = _interopRequireWildcard(_react); var _moment = require('moment'); var moment = _interopRequireWildcard(_moment); var _reactLifecyclesCompat = require('react-lifecycles-compat'); var _rcCalendar = require('rc-calendar'); var _rcCalendar2 = _interopRequireDefault(_rcCalendar); var _Picker = require('rc-calendar/lib/Picker'); var _Picker2 = _interopRequireDefault(_Picker); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _icon = require('../icon'); var _icon2 = _interopRequireDefault(_icon); var _interopDefault = require('../_util/interopDefault'); var _interopDefault2 = _interopRequireDefault(_interopDefault); 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 }; } function formatValue(value, format) { return value && value.format(format) || ''; } var WeekPicker = function (_React$Component) { (0, _inherits3['default'])(WeekPicker, _React$Component); function WeekPicker(props) { (0, _classCallCheck3['default'])(this, WeekPicker); var _this = (0, _possibleConstructorReturn3['default'])(this, (WeekPicker.__proto__ || Object.getPrototypeOf(WeekPicker)).call(this, props)); _this.weekDateRender = function (current) { var selectedValue = _this.state.value; var prefixCls = _this.props.prefixCls; if (selectedValue && current.year() === selectedValue.year() && current.week() === selectedValue.week()) { return React.createElement( 'div', { className: prefixCls + '-selected-day' }, React.createElement( 'div', { className: prefixCls + '-date' }, current.date() ) ); } return React.createElement( 'div', { className: prefixCls + '-date' }, current.date() ); }; _this.handleChange = function (value) { if (!('value' in _this.props)) { _this.setState({ value: value }); } _this.props.onChange(value, formatValue(value, _this.props.format)); }; _this.clearSelection = function (e) { e.preventDefault(); e.stopPropagation(); _this.handleChange(null); }; _this.saveInput = function (node) { _this.input = node; }; var value = props.value || props.defaultValue; if (value && !(0, _interopDefault2['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 }; return _this; } (0, _createClass3['default'])(WeekPicker, [{ key: 'focus', value: function focus() { this.input.focus(); } }, { key: 'blur', value: function blur() { this.input.blur(); } }, { key: 'render', value: function render() { var _this2 = this; var _props = this.props, prefixCls = _props.prefixCls, className = _props.className, disabled = _props.disabled, pickerClass = _props.pickerClass, popupStyle = _props.popupStyle, pickerInputClass = _props.pickerInputClass, format = _props.format, allowClear = _props.allowClear, locale = _props.locale, localeCode = _props.localeCode, disabledDate = _props.disabledDate, style = _props.style, onFocus = _props.onFocus, onBlur = _props.onBlur, id = _props.id; var pickerValue = this.state.value; if (pickerValue && localeCode) { pickerValue.locale(localeCode); } var placeholder = 'placeholder' in this.props ? this.props.placeholder : locale.lang.placeholder; var calendar = React.createElement(_rcCalendar2['default'], { showWeekNumber: true, dateRender: this.weekDateRender, prefixCls: prefixCls, format: format, locale: locale.lang, showDateInput: false, showToday: false, disabledDate: disabledDate }); var clearIcon = !disabled && allowClear && this.state.value ? React.createElement(_icon2['default'], { type: 'cross-circle', className: prefixCls + '-picker-clear', onClick: this.clearSelection }) : null; var input = function input(_ref) { var value = _ref.value; return React.createElement( 'span', null, React.createElement('input', { ref: _this2.saveInput, disabled: disabled, readOnly: true, value: value && value.format(format) || '', placeholder: placeholder, className: pickerInputClass, onFocus: onFocus, onBlur: onBlur }), clearIcon, React.createElement('span', { className: prefixCls + '-picker-icon' }) ); }; return React.createElement( 'span', { className: (0, _classnames2['default'])(className, pickerClass), style: style, id: id }, React.createElement( _Picker2['default'], (0, _extends3['default'])({}, this.props, { calendar: calendar, prefixCls: prefixCls + '-picker-container', value: pickerValue, onChange: this.handleChange, style: popupStyle }), input ) ); } }], [{ key: 'getDerivedStateFromProps', value: function getDerivedStateFromProps(nextProps) { if ('value' in nextProps) { return { value: nextProps.value }; } return null; } }]); return WeekPicker; }(React.Component); WeekPicker.defaultProps = { format: 'gggg-wo', allowClear: true }; (0, _reactLifecyclesCompat.polyfill)(WeekPicker); exports['default'] = WeekPicker; module.exports = exports['default'];