@material-ui/lab
Version:
Material-UI Lab - Incubator for Material-UI React components.
71 lines (60 loc) • 2.02 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.PureDateInput = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var React = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _utils = require("./utils");
var _useUtils = require("./hooks/useUtils");
var _textFieldHelper = require("./text-field-helper");
const PureDateInput = ({
containerRef,
disabled,
forwardedRef,
getOpenDialogAriaText = _textFieldHelper.getTextFieldAriaText,
inputFormat,
InputProps,
label,
openPicker: onOpen,
rawValue,
renderInput,
TextFieldProps = {},
validationError
}) => {
const utils = (0, _useUtils.useUtils)();
const PureDateInputProps = React.useMemo(() => (0, _extends2.default)({}, InputProps, {
readOnly: true
}), [InputProps]);
const inputValue = (0, _textFieldHelper.getDisplayDate)(utils, rawValue, inputFormat);
return renderInput((0, _extends2.default)({
label,
disabled,
ref: containerRef,
inputRef: forwardedRef,
error: validationError,
InputProps: PureDateInputProps,
inputProps: {
disabled,
readOnly: true,
'aria-readonly': true,
'aria-label': getOpenDialogAriaText(rawValue, utils),
value: inputValue,
onClick: onOpen,
onKeyDown: (0, _utils.onSpaceOrEnter)(onOpen)
}
}, TextFieldProps));
};
exports.PureDateInput = PureDateInput;
PureDateInput.propTypes = {
acceptRegex: _propTypes.default.instanceOf(RegExp),
getOpenDialogAriaText: _propTypes.default.func,
mask: _propTypes.default.string,
OpenPickerButtonProps: _propTypes.default.object,
openPickerIcon: _propTypes.default.node,
renderInput: _propTypes.default.func.isRequired,
rifmFormatter: _propTypes.default.func
};