UNPKG

@material-ui/core

Version:

React components that implement Google's Material Design.

110 lines (90 loc) 3.61 kB
"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;