material-ui-pickers-fork
Version:
React components, that implements material design pickers for material-ui v1
174 lines (146 loc) • 5.54 kB
JavaScript
"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.DatePicker = void 0;
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _Calendar = _interopRequireDefault(require("./Calendar"));
var _YearSelection = _interopRequireDefault(require("./YearSelection"));
var _PickerToolbar = _interopRequireDefault(require("../_shared/PickerToolbar"));
var _ToolbarButton = _interopRequireDefault(require("../_shared/ToolbarButton"));
var _propTypes2 = _interopRequireDefault(require("../constants/prop-types"));
var _WithUtils = _interopRequireDefault(require("../_shared/WithUtils"));
var DatePicker =
/*#__PURE__*/
function (_PureComponent) {
(0, _inheritsLoose2.default)(DatePicker, _PureComponent);
function DatePicker() {
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.state = {
showYearSelection: _this.props.openToYearSelection
};
_this.handleYearSelect = function (date) {
_this.props.onChange(date, false);
_this.openCalendar();
};
_this.openYearSelection = function () {
_this.setState({
showYearSelection: true
});
};
_this.openCalendar = function () {
_this.setState({
showYearSelection: false
});
};
return _this;
}
var _proto = DatePicker.prototype;
_proto.render = function render() {
var _this$props = this.props,
disablePast = _this$props.disablePast,
disableFuture = _this$props.disableFuture,
onChange = _this$props.onChange,
animateYearScrolling = _this$props.animateYearScrolling,
leftArrowIcon = _this$props.leftArrowIcon,
rightArrowIcon = _this$props.rightArrowIcon,
renderDay = _this$props.renderDay,
utils = _this$props.utils,
shouldDisableDate = _this$props.shouldDisableDate,
allowKeyboardControl = _this$props.allowKeyboardControl;
var showYearSelection = this.state.showYearSelection;
return _react.default.createElement(_react.Fragment, null, _react.default.createElement(_PickerToolbar.default, null, _react.default.createElement(_ToolbarButton.default, {
variant: "subheading",
onClick: this.openYearSelection,
selected: showYearSelection,
label: utils.getYearText(this.date)
}), _react.default.createElement(_ToolbarButton.default, {
variant: "display1",
onClick: this.openCalendar,
selected: !showYearSelection,
label: utils.getDatePickerHeaderText(this.date)
})), this.props.children, showYearSelection ? _react.default.createElement(_YearSelection.default, {
date: this.date,
onChange: this.handleYearSelect,
minDate: this.minDate,
maxDate: this.maxDate,
disablePast: disablePast,
disableFuture: disableFuture,
animateYearScrolling: animateYearScrolling,
utils: utils
}) : _react.default.createElement(_Calendar.default, {
date: this.date,
onChange: onChange,
disablePast: disablePast,
disableFuture: disableFuture,
minDate: this.minDate,
maxDate: this.maxDate,
leftArrowIcon: leftArrowIcon,
rightArrowIcon: rightArrowIcon,
renderDay: renderDay,
utils: utils,
shouldDisableDate: shouldDisableDate,
allowKeyboardControl: allowKeyboardControl
}));
};
(0, _createClass2.default)(DatePicker, [{
key: "date",
get: function get() {
return this.props.utils.startOfDay(this.props.date);
}
}, {
key: "minDate",
get: function get() {
return this.props.utils.date(this.props.minDate);
}
}, {
key: "maxDate",
get: function get() {
return this.props.utils.date(this.props.maxDate);
}
}]);
return DatePicker;
}(_react.PureComponent);
exports.DatePicker = DatePicker;
DatePicker.propTypes = {
date: _propTypes.default.object.isRequired,
minDate: _propTypes2.default.date,
maxDate: _propTypes2.default.date,
onChange: _propTypes.default.func.isRequired,
disablePast: _propTypes.default.bool,
disableFuture: _propTypes.default.bool,
animateYearScrolling: _propTypes.default.bool,
openToYearSelection: _propTypes.default.bool,
children: _propTypes.default.node,
leftArrowIcon: _propTypes.default.node,
rightArrowIcon: _propTypes.default.node,
renderDay: _propTypes.default.func,
utils: _propTypes.default.object.isRequired,
shouldDisableDate: _propTypes.default.func,
allowKeyboardControl: _propTypes.default.bool
};
DatePicker.defaultProps = {
minDate: '1900-01-01',
maxDate: '2100-01-01',
disablePast: false,
disableFuture: false,
allowKeyboardControl: false,
animateYearScrolling: undefined,
openToYearSelection: false,
children: null,
leftArrowIcon: undefined,
rightArrowIcon: undefined,
renderDay: undefined,
shouldDisableDate: undefined
};
var _default = (0, _WithUtils.default)()(DatePicker);
exports.default = _default;