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.FormControlLabelRoot = 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 _FormControl = require("../FormControl");
|
16 | var _zeroStyled = require("../zero-styled");
|
17 | var _memoTheme = _interopRequireDefault(require("../utils/memoTheme"));
|
18 | var _DefaultPropsProvider = require("../DefaultPropsProvider");
|
19 | var _Typography = _interopRequireDefault(require("../Typography"));
|
20 | var _capitalize = _interopRequireDefault(require("../utils/capitalize"));
|
21 | var _formControlLabelClasses = _interopRequireWildcard(require("./formControlLabelClasses"));
|
22 | var _formControlState = _interopRequireDefault(require("../FormControl/formControlState"));
|
23 | var _useSlot = _interopRequireDefault(require("../utils/useSlot"));
|
24 | var _jsxRuntime = require("react/jsx-runtime");
|
25 | const useUtilityClasses = ownerState => {
|
26 | const {
|
27 | classes,
|
28 | disabled,
|
29 | labelPlacement,
|
30 | error,
|
31 | required
|
32 | } = ownerState;
|
33 | const slots = {
|
34 | root: ['root', disabled && 'disabled', `labelPlacement${(0, _capitalize.default)(labelPlacement)}`, error && 'error', required && 'required'],
|
35 | label: ['label', disabled && 'disabled'],
|
36 | asterisk: ['asterisk', error && 'error']
|
37 | };
|
38 | return (0, _composeClasses.default)(slots, _formControlLabelClasses.getFormControlLabelUtilityClasses, classes);
|
39 | };
|
40 | const FormControlLabelRoot = exports.FormControlLabelRoot = (0, _zeroStyled.styled)('label', {
|
41 | name: 'MuiFormControlLabel',
|
42 | slot: 'Root',
|
43 | overridesResolver: (props, styles) => {
|
44 | const {
|
45 | ownerState
|
46 | } = props;
|
47 | return [{
|
48 | [`& .${_formControlLabelClasses.default.label}`]: styles.label
|
49 | }, styles.root, styles[`labelPlacement${(0, _capitalize.default)(ownerState.labelPlacement)}`]];
|
50 | }
|
51 | })((0, _memoTheme.default)(({
|
52 | theme
|
53 | }) => ({
|
54 | display: 'inline-flex',
|
55 | alignItems: 'center',
|
56 | cursor: 'pointer',
|
57 |
|
58 | verticalAlign: 'middle',
|
59 | WebkitTapHighlightColor: 'transparent',
|
60 | marginLeft: -11,
|
61 | marginRight: 16,
|
62 |
|
63 | [`&.${_formControlLabelClasses.default.disabled}`]: {
|
64 | cursor: 'default'
|
65 | },
|
66 | [`& .${_formControlLabelClasses.default.label}`]: {
|
67 | [`&.${_formControlLabelClasses.default.disabled}`]: {
|
68 | color: (theme.vars || theme).palette.text.disabled
|
69 | }
|
70 | },
|
71 | variants: [{
|
72 | props: {
|
73 | labelPlacement: 'start'
|
74 | },
|
75 | style: {
|
76 | flexDirection: 'row-reverse',
|
77 | marginRight: -11
|
78 | }
|
79 | }, {
|
80 | props: {
|
81 | labelPlacement: 'top'
|
82 | },
|
83 | style: {
|
84 | flexDirection: 'column-reverse'
|
85 | }
|
86 | }, {
|
87 | props: {
|
88 | labelPlacement: 'bottom'
|
89 | },
|
90 | style: {
|
91 | flexDirection: 'column'
|
92 | }
|
93 | }, {
|
94 | props: ({
|
95 | labelPlacement
|
96 | }) => labelPlacement === 'start' || labelPlacement === 'top' || labelPlacement === 'bottom',
|
97 | style: {
|
98 | marginLeft: 16
|
99 | }
|
100 | }]
|
101 | })));
|
102 | const AsteriskComponent = (0, _zeroStyled.styled)('span', {
|
103 | name: 'MuiFormControlLabel',
|
104 | slot: 'Asterisk',
|
105 | overridesResolver: (props, styles) => styles.asterisk
|
106 | })((0, _memoTheme.default)(({
|
107 | theme
|
108 | }) => ({
|
109 | [`&.${_formControlLabelClasses.default.error}`]: {
|
110 | color: (theme.vars || theme).palette.error.main
|
111 | }
|
112 | })));
|
113 |
|
114 |
|
115 |
|
116 |
|
117 |
|
118 | const FormControlLabel = React.forwardRef(function FormControlLabel(inProps, ref) {
|
119 | const props = (0, _DefaultPropsProvider.useDefaultProps)({
|
120 | props: inProps,
|
121 | name: 'MuiFormControlLabel'
|
122 | });
|
123 | const {
|
124 | checked,
|
125 | className,
|
126 | componentsProps = {},
|
127 | control,
|
128 | disabled: disabledProp,
|
129 | disableTypography,
|
130 | inputRef,
|
131 | label: labelProp,
|
132 | labelPlacement = 'end',
|
133 | name,
|
134 | onChange,
|
135 | required: requiredProp,
|
136 | slots = {},
|
137 | slotProps = {},
|
138 | value,
|
139 | ...other
|
140 | } = props;
|
141 | const muiFormControl = (0, _FormControl.useFormControl)();
|
142 | const disabled = disabledProp ?? control.props.disabled ?? muiFormControl?.disabled;
|
143 | const required = requiredProp ?? control.props.required;
|
144 | const controlProps = {
|
145 | disabled,
|
146 | required
|
147 | };
|
148 | ['checked', 'name', 'onChange', 'value', 'inputRef'].forEach(key => {
|
149 | if (typeof control.props[key] === 'undefined' && typeof props[key] !== 'undefined') {
|
150 | controlProps[key] = props[key];
|
151 | }
|
152 | });
|
153 | const fcs = (0, _formControlState.default)({
|
154 | props,
|
155 | muiFormControl,
|
156 | states: ['error']
|
157 | });
|
158 | const ownerState = {
|
159 | ...props,
|
160 | disabled,
|
161 | labelPlacement,
|
162 | required,
|
163 | error: fcs.error
|
164 | };
|
165 | const classes = useUtilityClasses(ownerState);
|
166 | const externalForwardedProps = {
|
167 | slots,
|
168 | slotProps: {
|
169 | ...componentsProps,
|
170 | ...slotProps
|
171 | }
|
172 | };
|
173 | const [TypographySlot, typographySlotProps] = (0, _useSlot.default)('typography', {
|
174 | elementType: _Typography.default,
|
175 | externalForwardedProps,
|
176 | ownerState
|
177 | });
|
178 | let label = labelProp;
|
179 | if (label != null && label.type !== _Typography.default && !disableTypography) {
|
180 | label = (0, _jsxRuntime.jsx)(TypographySlot, {
|
181 | component: "span",
|
182 | ...typographySlotProps,
|
183 | className: (0, _clsx.default)(classes.label, typographySlotProps?.className),
|
184 | children: label
|
185 | });
|
186 | }
|
187 | return (0, _jsxRuntime.jsxs)(FormControlLabelRoot, {
|
188 | className: (0, _clsx.default)(classes.root, className),
|
189 | ownerState: ownerState,
|
190 | ref: ref,
|
191 | ...other,
|
192 | children: [React.cloneElement(control, controlProps), required ? (0, _jsxRuntime.jsxs)("div", {
|
193 | children: [label, (0, _jsxRuntime.jsxs)(AsteriskComponent, {
|
194 | ownerState: ownerState,
|
195 | "aria-hidden": true,
|
196 | className: classes.asterisk,
|
197 | children: ["\u2009", '*']
|
198 | })]
|
199 | }) : label]
|
200 | });
|
201 | });
|
202 | process.env.NODE_ENV !== "production" ? FormControlLabel.propTypes = {
|
203 |
|
204 |
|
205 |
|
206 |
|
207 | |
208 |
|
209 |
|
210 | checked: _propTypes.default.bool,
|
211 | |
212 |
|
213 |
|
214 | classes: _propTypes.default.object,
|
215 | |
216 |
|
217 |
|
218 | className: _propTypes.default.string,
|
219 | |
220 |
|
221 |
|
222 |
|
223 |
|
224 | componentsProps: _propTypes.default.shape({
|
225 | typography: _propTypes.default.object
|
226 | }),
|
227 | |
228 |
|
229 |
|
230 | control: _propTypes.default.element.isRequired,
|
231 | |
232 |
|
233 |
|
234 | disabled: _propTypes.default.bool,
|
235 | |
236 |
|
237 |
|
238 | disableTypography: _propTypes.default.bool,
|
239 | |
240 |
|
241 |
|
242 | inputRef: _refType.default,
|
243 | |
244 |
|
245 |
|
246 | label: _propTypes.default.node,
|
247 | |
248 |
|
249 |
|
250 |
|
251 | labelPlacement: _propTypes.default.oneOf(['bottom', 'end', 'start', 'top']),
|
252 | |
253 |
|
254 |
|
255 | name: _propTypes.default.string,
|
256 | |
257 |
|
258 |
|
259 |
|
260 |
|
261 |
|
262 | onChange: _propTypes.default.func,
|
263 | |
264 |
|
265 |
|
266 | required: _propTypes.default.bool,
|
267 | |
268 |
|
269 |
|
270 |
|
271 | slotProps: _propTypes.default.shape({
|
272 | typography: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object])
|
273 | }),
|
274 | |
275 |
|
276 |
|
277 |
|
278 | slots: _propTypes.default.shape({
|
279 | typography: _propTypes.default.elementType
|
280 | }),
|
281 | |
282 |
|
283 |
|
284 | sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
|
285 | |
286 |
|
287 |
|
288 | value: _propTypes.default.any
|
289 | } : void 0;
|
290 | var _default = exports.default = FormControlLabel; |
\ | No newline at end of file |