UNPKG

3.44 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
5var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
7Object.defineProperty(exports, "__esModule", {
8 value: true
9});
10exports.default = void 0;
11
12var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
14var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
16var React = _interopRequireWildcard(require("react"));
17
18var _propTypes = _interopRequireDefault(require("prop-types"));
19
20var _clsx = _interopRequireDefault(require("clsx"));
21
22var _utils = require("@material-ui/utils");
23
24var _capitalize = _interopRequireDefault(require("../utils/capitalize"));
25
26/**
27 * @ignore - internal component.
28 */
29var NativeSelectInput = /*#__PURE__*/React.forwardRef(function NativeSelectInput(props, ref) {
30 var classes = props.classes,
31 className = props.className,
32 disabled = props.disabled,
33 IconComponent = props.IconComponent,
34 inputRef = props.inputRef,
35 _props$variant = props.variant,
36 variant = _props$variant === void 0 ? 'standard' : _props$variant,
37 other = (0, _objectWithoutProperties2.default)(props, ["classes", "className", "disabled", "IconComponent", "inputRef", "variant"]);
38 return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("select", (0, _extends2.default)({
39 className: (0, _clsx.default)(classes.root, // TODO v5: merge root and select
40 classes.select, classes[variant], className, disabled && classes.disabled),
41 disabled: disabled,
42 ref: inputRef || ref
43 }, other)), props.multiple ? null : /*#__PURE__*/React.createElement(IconComponent, {
44 className: (0, _clsx.default)(classes.icon, classes["icon".concat((0, _capitalize.default)(variant))], disabled && classes.disabled)
45 }));
46});
47process.env.NODE_ENV !== "production" ? NativeSelectInput.propTypes = {
48 /**
49 * The option elements to populate the select with.
50 * Can be some `<option>` elements.
51 */
52 children: _propTypes.default.node,
53
54 /**
55 * Override or extend the styles applied to the component.
56 * See [CSS API](#css) below for more details.
57 */
58 classes: _propTypes.default.object.isRequired,
59
60 /**
61 * The CSS class name of the select element.
62 */
63 className: _propTypes.default.string,
64
65 /**
66 * If `true`, the select will be disabled.
67 */
68 disabled: _propTypes.default.bool,
69
70 /**
71 * The icon that displays the arrow.
72 */
73 IconComponent: _propTypes.default.elementType.isRequired,
74
75 /**
76 * Use that prop to pass a ref to the native select element.
77 * @deprecated
78 */
79 inputRef: _utils.refType,
80
81 /**
82 * @ignore
83 */
84 multiple: _propTypes.default.bool,
85
86 /**
87 * Name attribute of the `select` or hidden `input` element.
88 */
89 name: _propTypes.default.string,
90
91 /**
92 * Callback function fired when a menu item is selected.
93 *
94 * @param {object} event The event source of the callback.
95 * You can pull out the new value by accessing `event.target.value` (string).
96 */
97 onChange: _propTypes.default.func,
98
99 /**
100 * The input value.
101 */
102 value: _propTypes.default.any,
103
104 /**
105 * The variant to use.
106 */
107 variant: _propTypes.default.oneOf(['standard', 'outlined', 'filled'])
108} : void 0;
109var _default = NativeSelectInput;
110exports.default = _default;
\No newline at end of file