material-ui-pickers-fork
Version:
React components, that implements material design pickers for material-ui v1
207 lines (171 loc) • 6.96 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.DateTimePickerWrapper = 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 _withStyles = _interopRequireDefault(require("@material-ui/core/styles/withStyles"));
var _propTypes2 = _interopRequireDefault(require("../constants/prop-types"));
var _ModalWrapper = _interopRequireDefault(require("../wrappers/ModalWrapper"));
var _DateTimePicker = _interopRequireDefault(require("./DateTimePicker"));
var _BasePicker = _interopRequireDefault(require("../_shared/BasePicker"));
var DateTimePickerWrapper = function DateTimePickerWrapper(props) {
var value = props.value,
format = props.format,
autoOk = props.autoOk,
openTo = props.openTo,
classes = props.classes,
minDate = props.minDate,
maxDate = props.maxDate,
initialFocusedDate = props.initialFocusedDate,
showTabs = props.showTabs,
autoSubmit = props.autoSubmit,
disablePast = props.disablePast,
disableFuture = props.disableFuture,
leftArrowIcon = props.leftArrowIcon,
rightArrowIcon = props.rightArrowIcon,
dateRangeIcon = props.dateRangeIcon,
timeIcon = props.timeIcon,
renderDay = props.renderDay,
ampm = props.ampm,
shouldDisableDate = props.shouldDisableDate,
animateYearScrolling = props.animateYearScrolling,
forwardedRef = props.forwardedRef,
allowKeyboardControl = props.allowKeyboardControl,
other = (0, _objectWithoutPropertiesLoose2.default)(props, ["value", "format", "autoOk", "openTo", "classes", "minDate", "maxDate", "initialFocusedDate", "showTabs", "autoSubmit", "disablePast", "disableFuture", "leftArrowIcon", "rightArrowIcon", "dateRangeIcon", "timeIcon", "renderDay", "ampm", "shouldDisableDate", "animateYearScrolling", "forwardedRef", "allowKeyboardControl"]);
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,
pick12hOr24hFormat = _ref.pick12hOr24hFormat;
return _react.default.createElement(_ModalWrapper.default, (0, _extends2.default)({
ref: forwardedRef,
dialogContentClassName: classes.dialogContent,
disableFuture: disableFuture,
disablePast: disablePast,
maxDate: maxDate,
minDate: minDate,
onAccept: handleAccept,
onChange: handleTextFieldChange,
onClear: handleClear,
onDismiss: handleDismiss,
onSetToday: handleSetTodayDate,
value: value,
isAccepted: isAccepted,
format: pick12hOr24hFormat(utils.dateTime12hFormat, utils.dateTime24hFormat)
}, other), _react.default.createElement(_DateTimePicker.default, {
allowKeyboardControl: allowKeyboardControl,
ampm: ampm,
animateYearScrolling: animateYearScrolling,
autoSubmit: autoSubmit,
date: date,
dateRangeIcon: dateRangeIcon,
disableFuture: disableFuture,
disablePast: disablePast,
leftArrowIcon: leftArrowIcon,
maxDate: maxDate,
minDate: minDate,
onChange: handleChange,
openTo: openTo,
renderDay: renderDay,
rightArrowIcon: rightArrowIcon,
shouldDisableDate: shouldDisableDate,
showTabs: showTabs,
timeIcon: timeIcon
}));
});
};
exports.DateTimePickerWrapper = DateTimePickerWrapper;
DateTimePickerWrapper.propTypes = {
classes: _propTypes.default.object.isRequired,
/** DateTimepicker value */
value: _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 minute selection */
autoOk: _propTypes.default.bool,
/** Move to the next part of date on select (year -> date -> hour -> minute) */
autoSubmit: _propTypes.default.bool,
/** Disable future dates */
disableFuture: _propTypes.default.bool,
/** Disable past dates */
disablePast: _propTypes.default.bool,
/** 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,
/** Show date/time tabs */
showTabs: _propTypes.default.bool,
/** Left arrow icon */
leftArrowIcon: _propTypes.default.node,
/** Right arrow icon */
rightArrowIcon: _propTypes.default.node,
/** Date tab icon */
dateRangeIcon: _propTypes.default.node,
/** Time tab icon */
timeIcon: _propTypes.default.node,
/** Custom renderer for day renderDay(date, selectedDate, dayInCurrentMonth) */
renderDay: _propTypes.default.func,
/** 12h/24h view for hour selection clock */
ampm: _propTypes.default.bool,
/** Disable specific date */
shouldDisableDate: _propTypes.default.func,
/** Enable animated scrolling to current year */
animateYearScrolling: _propTypes.default.bool,
/** Open directly to particular view */
openTo: _propTypes.default.oneOf(['year', 'date', 'hour', 'minutes']),
/** Enables keyboard listener for moving between days in calendar */
allowKeyboardControl: _propTypes.default.bool,
forwardedRef: _propTypes.default.func
};
DateTimePickerWrapper.defaultProps = {
value: new Date(),
format: undefined,
autoOk: false,
autoSubmit: true,
openTo: 'date',
disableFuture: false,
disablePast: false,
minDate: '1900-01-01',
maxDate: '2100-01-01',
initialFocusedDate: undefined,
showTabs: true,
leftArrowIcon: 'keyboard_arrow_left',
rightArrowIcon: 'keyboard_arrow_right',
dateRangeIcon: 'date_range',
timeIcon: 'access_time',
renderDay: undefined,
ampm: true,
shouldDisableDate: undefined,
animateYearScrolling: false,
forwardedRef: undefined,
allowKeyboardControl: true
};
var styles = {
dialogContent: {
width: 310
}
};
var EnhancedWrapper = (0, _withStyles.default)(styles, {
name: 'MuiPickerDTPickerModal'
})(DateTimePickerWrapper);
var _default = _react.default.forwardRef(function (props, ref) {
return _react.default.createElement(EnhancedWrapper, (0, _extends2.default)({}, props, {
forwardedRef: ref
}));
});
exports.default = _default;