UNPKG

material-ui-pickers-fork

Version:

React components, that implements material design pickers for material-ui v1

134 lines (106 loc) 4.21 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 = exports.YearSelection = void 0; var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose")); var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _reactDom = require("react-dom"); var _withStyles = _interopRequireDefault(require("@material-ui/core/styles/withStyles")); var _propTypes2 = _interopRequireDefault(require("../constants/prop-types")); var _WithUtils = _interopRequireDefault(require("../_shared/WithUtils")); var _Year = _interopRequireDefault(require("./Year")); var YearSelection = /*#__PURE__*/ function (_PureComponent) { (0, _inheritsLoose2.default)(YearSelection, _PureComponent); function YearSelection() { var _this; for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _PureComponent.call.apply(_PureComponent, [this].concat(args)) || this; _this.componentDidMount = function () { _this.scrollToCurrentYear(); }; _this.onYearSelect = function (year) { var _this$props = _this.props, date = _this$props.date, onChange = _this$props.onChange, utils = _this$props.utils; var newDate = utils.setYear(date, year); onChange(newDate); }; _this.getSelectedYearRef = function (ref) { _this.selectedYearRef = ref; }; _this.scrollToCurrentYear = function () { var animateYearScrolling = _this.props.animateYearScrolling; var currentYearElement = (0, _reactDom.findDOMNode)(_this.selectedYearRef); if (currentYearElement && currentYearElement.scrollIntoView) { currentYearElement.scrollIntoView({ behavior: animateYearScrolling ? 'smooth' : 'auto' }); } }; _this.selectedYearRef = undefined; return _this; } var _proto = YearSelection.prototype; _proto.render = function render() { var _this2 = this; var _this$props2 = this.props, minDate = _this$props2.minDate, maxDate = _this$props2.maxDate, date = _this$props2.date, classes = _this$props2.classes, disablePast = _this$props2.disablePast, disableFuture = _this$props2.disableFuture, utils = _this$props2.utils; var currentYear = utils.getYear(date); return _react.default.createElement("div", { className: classes.container }, utils.getYearRange(minDate, maxDate).map(function (year) { var yearNumber = utils.getYear(year); var selected = yearNumber === currentYear; return _react.default.createElement(_Year.default, { selected: selected, disabled: disablePast && utils.isBeforeYear(year, utils.date()) || disableFuture && utils.isAfterYear(year, utils.date()), value: yearNumber, key: utils.getYearText(year), onSelect: _this2.onYearSelect, ref: selected ? _this2.getSelectedYearRef : undefined }, utils.getYearText(year)); })); }; return YearSelection; }(_react.PureComponent); exports.YearSelection = YearSelection; YearSelection.propTypes = { date: _propTypes.default.shape({}).isRequired, minDate: _propTypes2.default.date.isRequired, maxDate: _propTypes2.default.date.isRequired, classes: _propTypes.default.object.isRequired, onChange: _propTypes.default.func.isRequired, disablePast: _propTypes.default.bool.isRequired, disableFuture: _propTypes.default.bool.isRequired, animateYearScrolling: _propTypes.default.bool, utils: _propTypes.default.object.isRequired }; YearSelection.defaultProps = { animateYearScrolling: false }; var styles = { container: { maxHeight: 300, overflowY: 'auto', justifyContent: 'center' } }; var _default = (0, _withStyles.default)(styles, { name: 'MuiPickersYearSelection' })((0, _WithUtils.default)()(YearSelection)); exports.default = _default;