@material-ui/lab
Version:
Material-UI Lab - Incubator for Material-UI React components.
62 lines (59 loc) • 3.19 kB
JavaScript
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
import _extends from "@babel/runtime/helpers/esm/extends";
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
import * as React from 'react';
import PropTypes from 'prop-types';
import IconButton from '@material-ui/core/IconButton';
import InputAdornment from '@material-ui/core/InputAdornment';
import { useForkRef } from '@material-ui/core/utils';
import { useUtils } from './hooks/useUtils';
import CalendarIcon from '../svg-icons/Calendar';
import { useMaskedInput } from './hooks/useMaskedInput';
import { getTextFieldAriaText } from './text-field-helper';
var _ref2 = /*#__PURE__*/React.createElement(CalendarIcon, null);
export var KeyboardDateInput = function KeyboardDateInput(_ref) {
var containerRef = _ref.containerRef,
_ref$inputRef = _ref.inputRef,
inputRef = _ref$inputRef === void 0 ? null : _ref$inputRef,
_ref$forwardedRef = _ref.forwardedRef,
forwardedRef = _ref$forwardedRef === void 0 ? null : _ref$forwardedRef,
hideOpenPickerButton = _ref.disableOpenPicker,
_ref$getOpenDialogAri = _ref.getOpenDialogAriaText,
getOpenDialogAriaText = _ref$getOpenDialogAri === void 0 ? getTextFieldAriaText : _ref$getOpenDialogAri,
InputAdornmentProps = _ref.InputAdornmentProps,
InputProps = _ref.InputProps,
onOpen = _ref.openPicker,
OpenPickerButtonProps = _ref.OpenPickerButtonProps,
_ref$openPickerIcon = _ref.openPickerIcon,
openPickerIcon = _ref$openPickerIcon === void 0 ? _ref2 : _ref$openPickerIcon,
renderInput = _ref.renderInput,
other = _objectWithoutProperties(_ref, ["containerRef", "inputRef", "forwardedRef", "disableOpenPicker", "getOpenDialogAriaText", "InputAdornmentProps", "InputProps", "openPicker", "OpenPickerButtonProps", "openPickerIcon", "renderInput"]);
var utils = useUtils();
var inputRefHandle = useForkRef(inputRef, forwardedRef);
var textFieldProps = useMaskedInput(other);
var adornmentPosition = (InputAdornmentProps === null || InputAdornmentProps === void 0 ? void 0 : InputAdornmentProps.position) || 'end';
return renderInput(_extends({
ref: containerRef,
inputRef: inputRefHandle
}, textFieldProps, {
InputProps: _extends({}, InputProps, _defineProperty({}, "".concat(adornmentPosition, "Adornment"), hideOpenPickerButton ? undefined : /*#__PURE__*/React.createElement(InputAdornment, _extends({
position: adornmentPosition
}, InputAdornmentProps), /*#__PURE__*/React.createElement(IconButton, _extends({
edge: adornmentPosition,
disabled: other.disabled,
"aria-label": getOpenDialogAriaText(other.rawValue, utils)
}, OpenPickerButtonProps, {
onClick: onOpen
}), openPickerIcon))))
}));
};
process.env.NODE_ENV !== "production" ? KeyboardDateInput.propTypes = {
acceptRegex: PropTypes.instanceOf(RegExp),
getOpenDialogAriaText: PropTypes.func,
mask: PropTypes.string,
OpenPickerButtonProps: PropTypes.object,
openPickerIcon: PropTypes.node,
renderInput: PropTypes.func.isRequired,
rifmFormatter: PropTypes.func
} : void 0;
export default KeyboardDateInput;