UNPKG

dareway-rui

Version:

254 lines (233 loc) 10.3 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 = void 0; var _classCallCheck2 = _interopRequireDefault(require('@babel/runtime/helpers/classCallCheck')); var _createClass2 = _interopRequireDefault(require('@babel/runtime/helpers/createClass')); var _possibleConstructorReturn2 = _interopRequireDefault(require('@babel/runtime/helpers/possibleConstructorReturn')); var _getPrototypeOf2 = _interopRequireDefault(require('@babel/runtime/helpers/getPrototypeOf')); var _inherits2 = _interopRequireDefault(require('@babel/runtime/helpers/inherits')); var _react = _interopRequireWildcard(require('react')); var _propTypes = _interopRequireDefault(require('prop-types')); var _util = require('../util'); function noop() {} var CalendarHeader = /*#__PURE__*/ (function(_Component) { (0, _inherits2.default)(CalendarHeader, _Component); function CalendarHeader() { (0, _classCallCheck2.default)(this, CalendarHeader); return (0, _possibleConstructorReturn2.default)( this, (0, _getPrototypeOf2.default)(CalendarHeader).apply(this, arguments) ); } (0, _createClass2.default)(CalendarHeader, [ { key: 'onYearChange', value: function onYearChange(year) { var newValue = this.props.value.clone(); newValue.year(parseInt(year, 10)); this.props.onValueChange(newValue); } }, { key: 'onMonthChange', value: function onMonthChange(month) { var newValue = this.props.value.clone(); newValue.month(parseInt(month, 10)); this.props.onValueChange(newValue); } }, { key: 'yearSelectElement', value: function yearSelectElement(year) { var _this$props = this.props, yearSelectOffset = _this$props.yearSelectOffset, yearSelectTotal = _this$props.yearSelectTotal, prefixCls = _this$props.prefixCls, Select = _this$props.Select; var start = year - yearSelectOffset; var end = start + yearSelectTotal; var options = []; for (var index = start; index < end; index++) { options.push( _react.default.createElement( Select.Option, { key: ''.concat(index) }, index ) ); } return _react.default.createElement( Select, { className: ''.concat(prefixCls, '-header-year-select'), onChange: this.onYearChange.bind(this), dropdownStyle: { zIndex: 2000 }, dropdownMenuStyle: { maxHeight: 250, overflow: 'auto', fontSize: 12 }, optionLabelProp: 'children', value: String(year), showSearch: false }, options ); } }, { key: 'monthSelectElement', value: function monthSelectElement(month) { var props = this.props; var t = props.value.clone(); var prefixCls = props.prefixCls; var options = []; var Select = props.Select; for (var index = 0; index < 12; index++) { t.month(index); options.push( _react.default.createElement( Select.Option, { key: ''.concat(index) }, (0, _util.getMonthName)(t) ) ); } return _react.default.createElement( Select, { className: ''.concat(prefixCls, '-header-month-select'), dropdownStyle: { zIndex: 2000 }, dropdownMenuStyle: { maxHeight: 250, overflow: 'auto', overflowX: 'hidden', fontSize: 12 }, optionLabelProp: 'children', value: String(month), showSearch: false, onChange: this.onMonthChange.bind(this) }, options ); } }, { key: 'changeTypeToDate', value: function changeTypeToDate() { this.props.onTypeChange('date'); } }, { key: 'changeTypeToMonth', value: function changeTypeToMonth() { this.props.onTypeChange('month'); } }, { key: 'render', value: function render() { var _this$props2 = this.props, value = _this$props2.value, locale = _this$props2.locale, prefixCls = _this$props2.prefixCls, type = _this$props2.type, showTypeSwitch = _this$props2.showTypeSwitch, headerComponents = _this$props2.headerComponents; var year = value.year(); var month = value.month(); var yearSelect = this.yearSelectElement(year); var monthSelect = type === 'month' ? null : this.monthSelectElement(month); var switchCls = ''.concat(prefixCls, '-header-switcher'); var typeSwitcher = showTypeSwitch ? _react.default.createElement( 'span', { className: switchCls }, type === 'date' ? _react.default.createElement( 'span', { className: ''.concat(switchCls, '-focus') }, locale.month ) : _react.default.createElement( 'span', { onClick: this.changeTypeToDate.bind(this), className: ''.concat(switchCls, '-normal') }, locale.month ), type === 'month' ? _react.default.createElement( 'span', { className: ''.concat(switchCls, '-focus') }, locale.year ) : _react.default.createElement( 'span', { onClick: this.changeTypeToMonth.bind(this), className: ''.concat(switchCls, '-normal') }, locale.year ) ) : null; return _react.default.createElement( 'div', { className: ''.concat(prefixCls, '-header') }, typeSwitcher, monthSelect, yearSelect, headerComponents ); } } ]); return CalendarHeader; })(_react.Component); CalendarHeader.propTypes = { value: _propTypes.default.object, locale: _propTypes.default.object, yearSelectOffset: _propTypes.default.number, yearSelectTotal: _propTypes.default.number, onValueChange: _propTypes.default.func, onTypeChange: _propTypes.default.func, Select: _propTypes.default.func, prefixCls: _propTypes.default.string, type: _propTypes.default.string, showTypeSwitch: _propTypes.default.bool, headerComponents: _propTypes.default.array }; CalendarHeader.defaultProps = { yearSelectOffset: 10, yearSelectTotal: 20, onValueChange: noop, onTypeChange: noop }; var _default = CalendarHeader; exports.default = _default; //@ sourceMappingURL=CalendarHeader.js.map