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 _integerPropType = _interopRequireDefault(require("@mui/utils/integerPropType"));
|
14 | var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
15 | var _Paper = _interopRequireDefault(require("../Paper"));
|
16 | var _capitalize = _interopRequireDefault(require("../utils/capitalize"));
|
17 | var _LinearProgress = _interopRequireDefault(require("../LinearProgress"));
|
18 | var _zeroStyled = require("../zero-styled");
|
19 | var _memoTheme = _interopRequireDefault(require("../utils/memoTheme"));
|
20 | var _DefaultPropsProvider = require("../DefaultPropsProvider");
|
21 | var _slotShouldForwardProp = _interopRequireDefault(require("../styles/slotShouldForwardProp"));
|
22 | var _mobileStepperClasses = require("./mobileStepperClasses");
|
23 | var _jsxRuntime = require("react/jsx-runtime");
|
24 | const useUtilityClasses = ownerState => {
|
25 | const {
|
26 | classes,
|
27 | position
|
28 | } = ownerState;
|
29 | const slots = {
|
30 | root: ['root', `position${(0, _capitalize.default)(position)}`],
|
31 | dots: ['dots'],
|
32 | dot: ['dot'],
|
33 | dotActive: ['dotActive'],
|
34 | progress: ['progress']
|
35 | };
|
36 | return (0, _composeClasses.default)(slots, _mobileStepperClasses.getMobileStepperUtilityClass, classes);
|
37 | };
|
38 | const MobileStepperRoot = (0, _zeroStyled.styled)(_Paper.default, {
|
39 | name: 'MuiMobileStepper',
|
40 | slot: 'Root',
|
41 | overridesResolver: (props, styles) => {
|
42 | const {
|
43 | ownerState
|
44 | } = props;
|
45 | return [styles.root, styles[`position${(0, _capitalize.default)(ownerState.position)}`]];
|
46 | }
|
47 | })((0, _memoTheme.default)(({
|
48 | theme
|
49 | }) => ({
|
50 | display: 'flex',
|
51 | flexDirection: 'row',
|
52 | justifyContent: 'space-between',
|
53 | alignItems: 'center',
|
54 | background: (theme.vars || theme).palette.background.default,
|
55 | padding: 8,
|
56 | variants: [{
|
57 | props: ({
|
58 | position
|
59 | }) => position === 'top' || position === 'bottom',
|
60 | style: {
|
61 | position: 'fixed',
|
62 | left: 0,
|
63 | right: 0,
|
64 | zIndex: (theme.vars || theme).zIndex.mobileStepper
|
65 | }
|
66 | }, {
|
67 | props: {
|
68 | position: 'top'
|
69 | },
|
70 | style: {
|
71 | top: 0
|
72 | }
|
73 | }, {
|
74 | props: {
|
75 | position: 'bottom'
|
76 | },
|
77 | style: {
|
78 | bottom: 0
|
79 | }
|
80 | }]
|
81 | })));
|
82 | const MobileStepperDots = (0, _zeroStyled.styled)('div', {
|
83 | name: 'MuiMobileStepper',
|
84 | slot: 'Dots',
|
85 | overridesResolver: (props, styles) => styles.dots
|
86 | })({
|
87 | variants: [{
|
88 | props: {
|
89 | variant: 'dots'
|
90 | },
|
91 | style: {
|
92 | display: 'flex',
|
93 | flexDirection: 'row'
|
94 | }
|
95 | }]
|
96 | });
|
97 | const MobileStepperDot = (0, _zeroStyled.styled)('div', {
|
98 | name: 'MuiMobileStepper',
|
99 | slot: 'Dot',
|
100 | shouldForwardProp: prop => (0, _slotShouldForwardProp.default)(prop) && prop !== 'dotActive',
|
101 | overridesResolver: (props, styles) => {
|
102 | const {
|
103 | dotActive
|
104 | } = props;
|
105 | return [styles.dot, dotActive && styles.dotActive];
|
106 | }
|
107 | })((0, _memoTheme.default)(({
|
108 | theme
|
109 | }) => ({
|
110 | variants: [{
|
111 | props: {
|
112 | variant: 'dots'
|
113 | },
|
114 | style: {
|
115 | transition: theme.transitions.create('background-color', {
|
116 | duration: theme.transitions.duration.shortest
|
117 | }),
|
118 | backgroundColor: (theme.vars || theme).palette.action.disabled,
|
119 | borderRadius: '50%',
|
120 | width: 8,
|
121 | height: 8,
|
122 | margin: '0 2px'
|
123 | }
|
124 | }, {
|
125 | props: {
|
126 | variant: 'dots',
|
127 | dotActive: true
|
128 | },
|
129 | style: {
|
130 | backgroundColor: (theme.vars || theme).palette.primary.main
|
131 | }
|
132 | }]
|
133 | })));
|
134 | const MobileStepperProgress = (0, _zeroStyled.styled)(_LinearProgress.default, {
|
135 | name: 'MuiMobileStepper',
|
136 | slot: 'Progress',
|
137 | overridesResolver: (props, styles) => styles.progress
|
138 | })({
|
139 | variants: [{
|
140 | props: {
|
141 | variant: 'progress'
|
142 | },
|
143 | style: {
|
144 | width: '50%'
|
145 | }
|
146 | }]
|
147 | });
|
148 | const MobileStepper = React.forwardRef(function MobileStepper(inProps, ref) {
|
149 | const props = (0, _DefaultPropsProvider.useDefaultProps)({
|
150 | props: inProps,
|
151 | name: 'MuiMobileStepper'
|
152 | });
|
153 | const {
|
154 | activeStep = 0,
|
155 | backButton,
|
156 | className,
|
157 | LinearProgressProps,
|
158 | nextButton,
|
159 | position = 'bottom',
|
160 | steps,
|
161 | variant = 'dots',
|
162 | ...other
|
163 | } = props;
|
164 | const ownerState = {
|
165 | ...props,
|
166 | activeStep,
|
167 | position,
|
168 | variant
|
169 | };
|
170 | let value;
|
171 | if (variant === 'progress') {
|
172 | if (steps === 1) {
|
173 | value = 100;
|
174 | } else {
|
175 | value = Math.ceil(activeStep / (steps - 1) * 100);
|
176 | }
|
177 | }
|
178 | const classes = useUtilityClasses(ownerState);
|
179 | return (0, _jsxRuntime.jsxs)(MobileStepperRoot, {
|
180 | square: true,
|
181 | elevation: 0,
|
182 | className: (0, _clsx.default)(classes.root, className),
|
183 | ref: ref,
|
184 | ownerState: ownerState,
|
185 | ...other,
|
186 | children: [backButton, variant === 'text' && (0, _jsxRuntime.jsxs)(React.Fragment, {
|
187 | children: [activeStep + 1, " / ", steps]
|
188 | }), variant === 'dots' && (0, _jsxRuntime.jsx)(MobileStepperDots, {
|
189 | ownerState: ownerState,
|
190 | className: classes.dots,
|
191 | children: [...new Array(steps)].map((_, index) => (0, _jsxRuntime.jsx)(MobileStepperDot, {
|
192 | className: (0, _clsx.default)(classes.dot, index === activeStep && classes.dotActive),
|
193 | ownerState: ownerState,
|
194 | dotActive: index === activeStep
|
195 | }, index))
|
196 | }), variant === 'progress' && (0, _jsxRuntime.jsx)(MobileStepperProgress, {
|
197 | ownerState: ownerState,
|
198 | className: classes.progress,
|
199 | variant: "determinate",
|
200 | value: value,
|
201 | ...LinearProgressProps
|
202 | }), nextButton]
|
203 | });
|
204 | });
|
205 | process.env.NODE_ENV !== "production" ? MobileStepper.propTypes = {
|
206 |
|
207 |
|
208 |
|
209 |
|
210 | |
211 |
|
212 |
|
213 |
|
214 |
|
215 | activeStep: _integerPropType.default,
|
216 | |
217 |
|
218 |
|
219 | backButton: _propTypes.default.node,
|
220 | |
221 |
|
222 |
|
223 | classes: _propTypes.default.object,
|
224 | |
225 |
|
226 |
|
227 | className: _propTypes.default.string,
|
228 | |
229 |
|
230 |
|
231 | LinearProgressProps: _propTypes.default.object,
|
232 | |
233 |
|
234 |
|
235 | nextButton: _propTypes.default.node,
|
236 | |
237 |
|
238 |
|
239 |
|
240 | position: _propTypes.default.oneOf(['bottom', 'static', 'top']),
|
241 | |
242 |
|
243 |
|
244 | steps: _integerPropType.default.isRequired,
|
245 | |
246 |
|
247 |
|
248 | 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]),
|
249 | |
250 |
|
251 |
|
252 |
|
253 | variant: _propTypes.default.oneOf(['dots', 'progress', 'text'])
|
254 | } : void 0;
|
255 | var _default = exports.default = MobileStepper; |
\ | No newline at end of file |