@material-ui/core
Version:
React components that implement Google's Material Design.
110 lines (90 loc) • 3.61 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
/**
* @ignore - internal component.
*/
function NativeSelectInput(props) {
var _classNames;
var children = props.children,
classes = props.classes,
className = props.className,
disabled = props.disabled,
IconComponent = props.IconComponent,
inputRef = props.inputRef,
name = props.name,
onChange = props.onChange,
value = props.value,
variant = props.variant,
other = (0, _objectWithoutProperties2.default)(props, ["children", "classes", "className", "disabled", "IconComponent", "inputRef", "name", "onChange", "value", "variant"]);
return _react.default.createElement("div", {
className: classes.root
}, _react.default.createElement("select", (0, _extends2.default)({
className: (0, _classnames.default)(classes.select, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.filled, variant === 'filled'), (0, _defineProperty2.default)(_classNames, classes.outlined, variant === 'outlined'), (0, _defineProperty2.default)(_classNames, classes.disabled, disabled), _classNames), className),
name: name,
disabled: disabled,
onChange: onChange,
value: value,
ref: inputRef
}, other), children), _react.default.createElement(IconComponent, {
className: classes.icon
}));
}
NativeSelectInput.propTypes = process.env.NODE_ENV !== "production" ? {
/**
* The option elements to populate the select with.
* Can be some `<option>` elements.
*/
children: _propTypes.default.node,
/**
* Override or extend the styles applied to the component.
* See [CSS API](#css-api) below for more details.
*/
classes: _propTypes.default.object.isRequired,
/**
* The CSS class name of the select element.
*/
className: _propTypes.default.string,
/**
* If `true`, the select will be disabled.
*/
disabled: _propTypes.default.bool,
/**
* The icon that displays the arrow.
*/
IconComponent: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),
/**
* Use that property to pass a ref callback to the native select element.
*/
inputRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
/**
* Name attribute of the `select` or hidden `input` element.
*/
name: _propTypes.default.string,
/**
* Callback function fired when a menu item is selected.
*
* @param {object} event The event source of the callback.
* You can pull out the new value by accessing `event.target.value`.
*/
onChange: _propTypes.default.func,
/**
* The input value.
*/
value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.bool]),
/**
* The variant to use.
*/
variant: _propTypes.default.oneOf(['standard', 'outlined', 'filled'])
} : {};
var _default = NativeSelectInput;
exports.default = _default;