1 | "use strict";
|
2 | 'use client';
|
3 |
|
4 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
5 | var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
6 | Object.defineProperty(exports, "__esModule", {
|
7 | value: true
|
8 | });
|
9 | exports.default = exports.StyledSelectSelect = exports.StyledSelectIcon = void 0;
|
10 | var React = _interopRequireWildcard(require("react"));
|
11 | var _propTypes = _interopRequireDefault(require("prop-types"));
|
12 | var _clsx = _interopRequireDefault(require("clsx"));
|
13 | var _refType = _interopRequireDefault(require("@mui/utils/refType"));
|
14 | var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
15 | var _capitalize = _interopRequireDefault(require("../utils/capitalize"));
|
16 | var _nativeSelectClasses = _interopRequireWildcard(require("./nativeSelectClasses"));
|
17 | var _zeroStyled = require("../zero-styled");
|
18 | var _rootShouldForwardProp = _interopRequireDefault(require("../styles/rootShouldForwardProp"));
|
19 | var _jsxRuntime = require("react/jsx-runtime");
|
20 | const useUtilityClasses = ownerState => {
|
21 | const {
|
22 | classes,
|
23 | variant,
|
24 | disabled,
|
25 | multiple,
|
26 | open,
|
27 | error
|
28 | } = ownerState;
|
29 | const slots = {
|
30 | select: ['select', variant, disabled && 'disabled', multiple && 'multiple', error && 'error'],
|
31 | icon: ['icon', `icon${(0, _capitalize.default)(variant)}`, open && 'iconOpen', disabled && 'disabled']
|
32 | };
|
33 | return (0, _composeClasses.default)(slots, _nativeSelectClasses.getNativeSelectUtilityClasses, classes);
|
34 | };
|
35 | const StyledSelectSelect = exports.StyledSelectSelect = (0, _zeroStyled.styled)('select')(({
|
36 | theme
|
37 | }) => ({
|
38 |
|
39 | MozAppearance: 'none',
|
40 |
|
41 | WebkitAppearance: 'none',
|
42 |
|
43 |
|
44 | userSelect: 'none',
|
45 |
|
46 | borderRadius: 0,
|
47 | cursor: 'pointer',
|
48 | '&:focus': {
|
49 |
|
50 | borderRadius: 0
|
51 | },
|
52 | [`&.${_nativeSelectClasses.default.disabled}`]: {
|
53 | cursor: 'default'
|
54 | },
|
55 | '&[multiple]': {
|
56 | height: 'auto'
|
57 | },
|
58 | '&:not([multiple]) option, &:not([multiple]) optgroup': {
|
59 | backgroundColor: (theme.vars || theme).palette.background.paper
|
60 | },
|
61 | variants: [{
|
62 | props: ({
|
63 | ownerState
|
64 | }) => ownerState.variant !== 'filled' && ownerState.variant !== 'outlined',
|
65 | style: {
|
66 |
|
67 | '&&&': {
|
68 | paddingRight: 24,
|
69 | minWidth: 16
|
70 | }
|
71 | }
|
72 | }, {
|
73 | props: {
|
74 | variant: 'filled'
|
75 | },
|
76 | style: {
|
77 | '&&&': {
|
78 | paddingRight: 32
|
79 | }
|
80 | }
|
81 | }, {
|
82 | props: {
|
83 | variant: 'outlined'
|
84 | },
|
85 | style: {
|
86 | borderRadius: (theme.vars || theme).shape.borderRadius,
|
87 | '&:focus': {
|
88 | borderRadius: (theme.vars || theme).shape.borderRadius
|
89 | },
|
90 | '&&&': {
|
91 | paddingRight: 32
|
92 | }
|
93 | }
|
94 | }]
|
95 | }));
|
96 | const NativeSelectSelect = (0, _zeroStyled.styled)(StyledSelectSelect, {
|
97 | name: 'MuiNativeSelect',
|
98 | slot: 'Select',
|
99 | shouldForwardProp: _rootShouldForwardProp.default,
|
100 | overridesResolver: (props, styles) => {
|
101 | const {
|
102 | ownerState
|
103 | } = props;
|
104 | return [styles.select, styles[ownerState.variant], ownerState.error && styles.error, {
|
105 | [`&.${_nativeSelectClasses.default.multiple}`]: styles.multiple
|
106 | }];
|
107 | }
|
108 | })({});
|
109 | const StyledSelectIcon = exports.StyledSelectIcon = (0, _zeroStyled.styled)('svg')(({
|
110 | theme
|
111 | }) => ({
|
112 |
|
113 |
|
114 | position: 'absolute',
|
115 | right: 0,
|
116 |
|
117 | top: 'calc(50% - .5em)',
|
118 |
|
119 | pointerEvents: 'none',
|
120 | color: (theme.vars || theme).palette.action.active,
|
121 | [`&.${_nativeSelectClasses.default.disabled}`]: {
|
122 | color: (theme.vars || theme).palette.action.disabled
|
123 | },
|
124 | variants: [{
|
125 | props: ({
|
126 | ownerState
|
127 | }) => ownerState.open,
|
128 | style: {
|
129 | transform: 'rotate(180deg)'
|
130 | }
|
131 | }, {
|
132 | props: {
|
133 | variant: 'filled'
|
134 | },
|
135 | style: {
|
136 | right: 7
|
137 | }
|
138 | }, {
|
139 | props: {
|
140 | variant: 'outlined'
|
141 | },
|
142 | style: {
|
143 | right: 7
|
144 | }
|
145 | }]
|
146 | }));
|
147 | const NativeSelectIcon = (0, _zeroStyled.styled)(StyledSelectIcon, {
|
148 | name: 'MuiNativeSelect',
|
149 | slot: 'Icon',
|
150 | overridesResolver: (props, styles) => {
|
151 | const {
|
152 | ownerState
|
153 | } = props;
|
154 | return [styles.icon, ownerState.variant && styles[`icon${(0, _capitalize.default)(ownerState.variant)}`], ownerState.open && styles.iconOpen];
|
155 | }
|
156 | })({});
|
157 |
|
158 |
|
159 |
|
160 |
|
161 | const NativeSelectInput = React.forwardRef(function NativeSelectInput(props, ref) {
|
162 | const {
|
163 | className,
|
164 | disabled,
|
165 | error,
|
166 | IconComponent,
|
167 | inputRef,
|
168 | variant = 'standard',
|
169 | ...other
|
170 | } = props;
|
171 | const ownerState = {
|
172 | ...props,
|
173 | disabled,
|
174 | variant,
|
175 | error
|
176 | };
|
177 | const classes = useUtilityClasses(ownerState);
|
178 | return (0, _jsxRuntime.jsxs)(React.Fragment, {
|
179 | children: [(0, _jsxRuntime.jsx)(NativeSelectSelect, {
|
180 | ownerState: ownerState,
|
181 | className: (0, _clsx.default)(classes.select, className),
|
182 | disabled: disabled,
|
183 | ref: inputRef || ref,
|
184 | ...other
|
185 | }), props.multiple ? null : (0, _jsxRuntime.jsx)(NativeSelectIcon, {
|
186 | as: IconComponent,
|
187 | ownerState: ownerState,
|
188 | className: classes.icon
|
189 | })]
|
190 | });
|
191 | });
|
192 | process.env.NODE_ENV !== "production" ? NativeSelectInput.propTypes = {
|
193 | |
194 |
|
195 |
|
196 |
|
197 | children: _propTypes.default.node,
|
198 | |
199 |
|
200 |
|
201 | classes: _propTypes.default.object,
|
202 | |
203 |
|
204 |
|
205 | className: _propTypes.default.string,
|
206 | |
207 |
|
208 |
|
209 | disabled: _propTypes.default.bool,
|
210 | |
211 |
|
212 |
|
213 | error: _propTypes.default.bool,
|
214 | |
215 |
|
216 |
|
217 | IconComponent: _propTypes.default.elementType.isRequired,
|
218 | |
219 |
|
220 |
|
221 |
|
222 | inputRef: _refType.default,
|
223 | |
224 |
|
225 |
|
226 | multiple: _propTypes.default.bool,
|
227 | |
228 |
|
229 |
|
230 | name: _propTypes.default.string,
|
231 | |
232 |
|
233 |
|
234 |
|
235 |
|
236 |
|
237 | onChange: _propTypes.default.func,
|
238 | |
239 |
|
240 |
|
241 | value: _propTypes.default.any,
|
242 | |
243 |
|
244 |
|
245 | variant: _propTypes.default.oneOf(['standard', 'outlined', 'filled'])
|
246 | } : void 0;
|
247 | var _default = exports.default = NativeSelectInput; |
\ | No newline at end of file |