dareway-rui
Version:
213 lines (188 loc) • 9.06 kB
JavaScript
'use strict';
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 _assertThisInitialized2 = _interopRequireDefault(require('@babel/runtime/helpers/assertThisInitialized'));
var _inherits2 = _interopRequireDefault(require('@babel/runtime/helpers/inherits'));
var _defineProperty2 = _interopRequireDefault(require('@babel/runtime/helpers/defineProperty'));
var _react = _interopRequireDefault(require('react'));
var _propTypes = _interopRequireDefault(require('prop-types'));
var _reactLifecyclesCompat = require('react-lifecycles-compat');
var _MonthTable = _interopRequireDefault(require('./MonthTable'));
function goYear(direction) {
var next = this.state.value.clone();
next.add(direction, 'year');
this.setAndChangeValue(next);
}
function noop() {}
var MonthPanel =
/*#__PURE__*/
(function(_React$Component) {
(0, _inherits2.default)(MonthPanel, _React$Component);
function MonthPanel(props) {
var _this;
(0, _classCallCheck2.default)(this, MonthPanel);
_this = (0, _possibleConstructorReturn2.default)(
this,
(0, _getPrototypeOf2.default)(MonthPanel).call(this, props)
);
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'setAndChangeValue', function(
value
) {
_this.setValue(value);
_this.props.onChange(value);
});
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'setAndSelectValue', function(
value
) {
_this.setValue(value);
_this.props.onSelect(value);
});
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'setValue', function(value) {
if (!('value' in _this.props)) {
_this.setState({
value: value
});
}
});
_this.nextYear = goYear.bind((0, _assertThisInitialized2.default)(_this), 1);
_this.previousYear = goYear.bind((0, _assertThisInitialized2.default)(_this), -1);
_this.prefixCls = ''.concat(props.rootPrefixCls, '-month-panel');
_this.state = {
value: props.value || props.defaultValue
};
return _this;
}
(0, _createClass2.default)(
MonthPanel,
[
{
key: 'render',
value: function render() {
var props = this.props;
var value = this.state.value;
var locale = props.locale,
cellRender = props.cellRender,
contentRender = props.contentRender,
renderFooter = props.renderFooter;
var year = value.year();
var prefixCls = this.prefixCls;
var footer = renderFooter && renderFooter('month');
return _react.default.createElement(
'div',
{
className: prefixCls,
style: props.style
},
_react.default.createElement(
'div',
null,
_react.default.createElement(
'div',
{
className: ''.concat(prefixCls, '-header')
},
_react.default.createElement('a', {
className: ''.concat(prefixCls, '-prev-year-btn'),
role: 'button',
onClick: this.previousYear,
title: locale.previousYear
}),
_react.default.createElement(
'a',
{
className: ''.concat(prefixCls, '-year-select'),
role: 'button',
onClick: props.onYearPanelShow,
title: locale.yearSelect
},
_react.default.createElement(
'span',
{
className: ''.concat(prefixCls, '-year-select-content')
},
year
),
_react.default.createElement(
'span',
{
className: ''.concat(prefixCls, '-year-select-arrow')
},
'x'
)
),
_react.default.createElement('a', {
className: ''.concat(prefixCls, '-next-year-btn'),
role: 'button',
onClick: this.nextYear,
title: locale.nextYear
})
),
_react.default.createElement(
'div',
{
className: ''.concat(prefixCls, '-body')
},
_react.default.createElement(_MonthTable.default, {
disabledDate: props.disabledDate,
onSelect: this.setAndSelectValue,
locale: locale,
value: value,
cellRender: cellRender,
contentRender: contentRender,
prefixCls: prefixCls
})
),
footer &&
_react.default.createElement(
'div',
{
className: ''.concat(prefixCls, '-footer')
},
footer
)
)
);
}
}
],
[
{
key: 'getDerivedStateFromProps',
value: function getDerivedStateFromProps(nextProps) {
var newState = {};
if ('value' in nextProps) {
newState = {
value: nextProps.value
};
}
return newState;
}
}
]
);
return MonthPanel;
})(_react.default.Component);
(0, _defineProperty2.default)(MonthPanel, 'propTypes', {
onChange: _propTypes.default.func,
disabledDate: _propTypes.default.func,
onSelect: _propTypes.default.func,
renderFooter: _propTypes.default.func,
rootPrefixCls: _propTypes.default.string,
value: _propTypes.default.object,
defaultValue: _propTypes.default.object
});
(0, _defineProperty2.default)(MonthPanel, 'defaultProps', {
onChange: noop,
onSelect: noop
});
(0, _reactLifecyclesCompat.polyfill)(MonthPanel);
var _default = MonthPanel;
exports.default = _default;
//@ sourceMappingURL=MonthPanel.js.map