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 = void 0;
|
10 | var React = _interopRequireWildcard(require("react"));
|
11 | var _propTypes = _interopRequireDefault(require("prop-types"));
|
12 | var _clsx = _interopRequireDefault(require("clsx"));
|
13 | var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
14 | var _FormGroup = _interopRequireDefault(require("../FormGroup"));
|
15 | var _radioGroupClasses = require("./radioGroupClasses");
|
16 | var _useForkRef = _interopRequireDefault(require("../utils/useForkRef"));
|
17 | var _useControlled = _interopRequireDefault(require("../utils/useControlled"));
|
18 | var _RadioGroupContext = _interopRequireDefault(require("./RadioGroupContext"));
|
19 | var _useId = _interopRequireDefault(require("../utils/useId"));
|
20 | var _jsxRuntime = require("react/jsx-runtime");
|
21 | const useUtilityClasses = props => {
|
22 | const {
|
23 | classes,
|
24 | row,
|
25 | error
|
26 | } = props;
|
27 | const slots = {
|
28 | root: ['root', row && 'row', error && 'error']
|
29 | };
|
30 | return (0, _composeClasses.default)(slots, _radioGroupClasses.getRadioGroupUtilityClass, classes);
|
31 | };
|
32 | const RadioGroup = React.forwardRef(function RadioGroup(props, ref) {
|
33 | const {
|
34 |
|
35 |
|
36 | actions,
|
37 | children,
|
38 | className,
|
39 | defaultValue,
|
40 | name: nameProp,
|
41 | onChange,
|
42 | value: valueProp,
|
43 | ...other
|
44 | } = props;
|
45 | const rootRef = React.useRef(null);
|
46 | const classes = useUtilityClasses(props);
|
47 | const [value, setValueState] = (0, _useControlled.default)({
|
48 | controlled: valueProp,
|
49 | default: defaultValue,
|
50 | name: 'RadioGroup'
|
51 | });
|
52 | React.useImperativeHandle(actions, () => ({
|
53 | focus: () => {
|
54 | let input = rootRef.current.querySelector('input:not(:disabled):checked');
|
55 | if (!input) {
|
56 | input = rootRef.current.querySelector('input:not(:disabled)');
|
57 | }
|
58 | if (input) {
|
59 | input.focus();
|
60 | }
|
61 | }
|
62 | }), []);
|
63 | const handleRef = (0, _useForkRef.default)(ref, rootRef);
|
64 | const name = (0, _useId.default)(nameProp);
|
65 | const contextValue = React.useMemo(() => ({
|
66 | name,
|
67 | onChange(event) {
|
68 | setValueState(event.target.value);
|
69 | if (onChange) {
|
70 | onChange(event, event.target.value);
|
71 | }
|
72 | },
|
73 | value
|
74 | }), [name, onChange, setValueState, value]);
|
75 | return (0, _jsxRuntime.jsx)(_RadioGroupContext.default.Provider, {
|
76 | value: contextValue,
|
77 | children: (0, _jsxRuntime.jsx)(_FormGroup.default, {
|
78 | role: "radiogroup",
|
79 | ref: handleRef,
|
80 | className: (0, _clsx.default)(classes.root, className),
|
81 | ...other,
|
82 | children: children
|
83 | })
|
84 | });
|
85 | });
|
86 | process.env.NODE_ENV !== "production" ? RadioGroup.propTypes = {
|
87 |
|
88 |
|
89 |
|
90 |
|
91 | |
92 |
|
93 |
|
94 | children: _propTypes.default.node,
|
95 | |
96 |
|
97 |
|
98 | className: _propTypes.default.string,
|
99 | |
100 |
|
101 |
|
102 | defaultValue: _propTypes.default.any,
|
103 | |
104 |
|
105 |
|
106 |
|
107 | name: _propTypes.default.string,
|
108 | |
109 |
|
110 |
|
111 |
|
112 |
|
113 |
|
114 |
|
115 | onChange: _propTypes.default.func,
|
116 | |
117 |
|
118 |
|
119 | value: _propTypes.default.any
|
120 | } : void 0;
|
121 | var _default = exports.default = RadioGroup; |
\ | No newline at end of file |