material-ui-pickers-fork
Version:
React components, that implements material design pickers for material-ui v1
169 lines (139 loc) • 5.87 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.DatePickerWrapper = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _ModalWrapper = _interopRequireDefault(require("../wrappers/ModalWrapper"));
var _DatePicker = _interopRequireDefault(require("./DatePicker"));
var _propTypes2 = _interopRequireDefault(require("../constants/prop-types"));
var _BasePicker = _interopRequireDefault(require("../_shared/BasePicker"));
var DatePickerWrapper = function DatePickerWrapper(props) {
var allowKeyboardControl = props.allowKeyboardControl,
animateYearScrolling = props.animateYearScrolling,
autoOk = props.autoOk,
disableFuture = props.disableFuture,
disablePast = props.disablePast,
format = props.format,
forwardedRef = props.forwardedRef,
labelFunc = props.labelFunc,
leftArrowIcon = props.leftArrowIcon,
maxDate = props.maxDate,
minDate = props.minDate,
initialFocusedDate = props.initialFocusedDate,
onChange = props.onChange,
openToYearSelection = props.openToYearSelection,
renderDay = props.renderDay,
rightArrowIcon = props.rightArrowIcon,
shouldDisableDate = props.shouldDisableDate,
value = props.value,
other = (0, _objectWithoutPropertiesLoose2.default)(props, ["allowKeyboardControl", "animateYearScrolling", "autoOk", "disableFuture", "disablePast", "format", "forwardedRef", "labelFunc", "leftArrowIcon", "maxDate", "minDate", "initialFocusedDate", "onChange", "openToYearSelection", "renderDay", "rightArrowIcon", "shouldDisableDate", "value"]);
return _react.default.createElement(_BasePicker.default, props, function (_ref) {
var date = _ref.date,
utils = _ref.utils,
handleAccept = _ref.handleAccept,
handleChange = _ref.handleChange,
handleClear = _ref.handleClear,
handleDismiss = _ref.handleDismiss,
handleSetTodayDate = _ref.handleSetTodayDate,
handleTextFieldChange = _ref.handleTextFieldChange,
isAccepted = _ref.isAccepted;
return _react.default.createElement(_ModalWrapper.default, (0, _extends2.default)({
disableFuture: disableFuture,
disablePast: disablePast,
format: format || utils.dateFormat,
labelFunc: labelFunc,
maxDate: maxDate,
minDate: minDate,
onAccept: handleAccept,
onChange: handleTextFieldChange,
onClear: handleClear,
onDismiss: handleDismiss,
onSetToday: handleSetTodayDate,
ref: forwardedRef,
value: value,
isAccepted: isAccepted
}, other), _react.default.createElement(_DatePicker.default, {
date: date,
allowKeyboardControl: allowKeyboardControl,
animateYearScrolling: animateYearScrolling,
disableFuture: disableFuture,
disablePast: disablePast,
leftArrowIcon: leftArrowIcon,
maxDate: maxDate,
minDate: minDate,
onChange: handleChange,
openToYearSelection: openToYearSelection,
renderDay: renderDay,
rightArrowIcon: rightArrowIcon,
shouldDisableDate: shouldDisableDate
}));
});
};
exports.DatePickerWrapper = DatePickerWrapper;
DatePickerWrapper.propTypes = {
/** Datepicker value */
value: _propTypes2.default.date,
/** Min selectable date */
minDate: _propTypes2.default.date,
/** Max selectable date */
maxDate: _propTypes2.default.date,
/** Initial focused date when calendar opens, if no value is provided */
initialFocusedDate: _propTypes2.default.date,
/** Date format string for input */
format: _propTypes.default.string,
/** Callback firing when date accepted */
onChange: _propTypes.default.func.isRequired,
/** Auto accept date on selection */
autoOk: _propTypes.default.bool,
/** Disable past dates */
disablePast: _propTypes.default.bool,
/** Disable future dates */
disableFuture: _propTypes.default.bool,
/** To animate scrolling to current year (with scrollIntoView) */
animateYearScrolling: _propTypes.default.bool,
/** Open datepicker from year selection */
openToYearSelection: _propTypes.default.bool,
/** Allow to specify dynamic label for text field labelFunc(date, invalidLabel) */
labelFunc: _propTypes.default.func,
/** Left arrow icon */
leftArrowIcon: _propTypes.default.node,
/** Right arrow icon */
rightArrowIcon: _propTypes.default.node,
/** Custom renderer for day renderDay(date, selectedDate, dayInCurrentMonth) */
renderDay: _propTypes.default.func,
/** Disable specific date */
shouldDisableDate: _propTypes.default.func,
/** Enables keyboard listener for moving between days in calendar */
allowKeyboardControl: _propTypes.default.bool,
forwardedRef: _propTypes.default.func
};
DatePickerWrapper.defaultProps = {
value: new Date(),
format: undefined,
autoOk: false,
minDate: '1900-01-01',
maxDate: '2100-01-01',
initialFocusedDate: undefined,
disableFuture: false,
disablePast: false,
animateYearScrolling: false,
openToYearSelection: false,
allowKeyboardControl: true,
leftArrowIcon: 'keyboard_arrow_left',
rightArrowIcon: 'keyboard_arrow_right',
renderDay: undefined,
labelFunc: undefined,
shouldDisableDate: undefined,
forwardedRef: undefined
};
var _default = _react.default.forwardRef(function (props, ref) {
return _react.default.createElement(DatePickerWrapper, (0, _extends2.default)({}, props, {
forwardedRef: ref
}));
});
exports.default = _default;