1 | 'use client';
|
2 |
|
3 | import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
4 | import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
5 | import _extends from "@babel/runtime/helpers/esm/extends";
|
6 | import * as React from 'react';
|
7 | import PropTypes from 'prop-types';
|
8 | import composeClasses from '@mui/utils/composeClasses';
|
9 | import clsx from 'clsx';
|
10 | import formControlState from '../FormControl/formControlState';
|
11 | import useFormControl from '../FormControl/useFormControl';
|
12 | import FormLabel, { formLabelClasses } from '../FormLabel';
|
13 | import { useDefaultProps } from '../DefaultPropsProvider';
|
14 | import capitalize from '../utils/capitalize';
|
15 | import styled, { rootShouldForwardProp } from '../styles/styled';
|
16 | import { getInputLabelUtilityClasses } from './inputLabelClasses';
|
17 | import { jsx as _jsx } from "react/jsx-runtime";
|
18 | var useUtilityClasses = function useUtilityClasses(ownerState) {
|
19 | var classes = ownerState.classes,
|
20 | formControl = ownerState.formControl,
|
21 | size = ownerState.size,
|
22 | shrink = ownerState.shrink,
|
23 | disableAnimation = ownerState.disableAnimation,
|
24 | variant = ownerState.variant,
|
25 | required = ownerState.required;
|
26 | var slots = {
|
27 | root: ['root', formControl && 'formControl', !disableAnimation && 'animated', shrink && 'shrink', size && size !== 'normal' && "size".concat(capitalize(size)), variant],
|
28 | asterisk: [required && 'asterisk']
|
29 | };
|
30 | var composedClasses = composeClasses(slots, getInputLabelUtilityClasses, classes);
|
31 | return _extends({}, classes, composedClasses);
|
32 | };
|
33 | var InputLabelRoot = styled(FormLabel, {
|
34 | shouldForwardProp: function shouldForwardProp(prop) {
|
35 | return rootShouldForwardProp(prop) || prop === 'classes';
|
36 | },
|
37 | name: 'MuiInputLabel',
|
38 | slot: 'Root',
|
39 | overridesResolver: function overridesResolver(props, styles) {
|
40 | var ownerState = props.ownerState;
|
41 | return [_defineProperty({}, "& .".concat(formLabelClasses.asterisk), styles.asterisk), styles.root, ownerState.formControl && styles.formControl, ownerState.size === 'small' && styles.sizeSmall, ownerState.shrink && styles.shrink, !ownerState.disableAnimation && styles.animated, ownerState.focused && styles.focused, styles[ownerState.variant]];
|
42 | }
|
43 | })(function (_ref2) {
|
44 | var theme = _ref2.theme,
|
45 | ownerState = _ref2.ownerState;
|
46 | return _extends({
|
47 | display: 'block',
|
48 | transformOrigin: 'top left',
|
49 | whiteSpace: 'nowrap',
|
50 | overflow: 'hidden',
|
51 | textOverflow: 'ellipsis',
|
52 | maxWidth: '100%'
|
53 | }, ownerState.formControl && {
|
54 | position: 'absolute',
|
55 | left: 0,
|
56 | top: 0,
|
57 |
|
58 | transform: 'translate(0, 20px) scale(1)'
|
59 | }, ownerState.size === 'small' && {
|
60 |
|
61 | transform: 'translate(0, 17px) scale(1)'
|
62 | }, ownerState.shrink && {
|
63 | transform: 'translate(0, -1.5px) scale(0.75)',
|
64 | transformOrigin: 'top left',
|
65 | maxWidth: '133%'
|
66 | }, !ownerState.disableAnimation && {
|
67 | transition: theme.transitions.create(['color', 'transform', 'max-width'], {
|
68 | duration: theme.transitions.duration.shorter,
|
69 | easing: theme.transitions.easing.easeOut
|
70 | })
|
71 | }, ownerState.variant === 'filled' && _extends({
|
72 |
|
73 |
|
74 |
|
75 |
|
76 | zIndex: 1,
|
77 | pointerEvents: 'none',
|
78 | transform: 'translate(12px, 16px) scale(1)',
|
79 | maxWidth: 'calc(100% - 24px)'
|
80 | }, ownerState.size === 'small' && {
|
81 | transform: 'translate(12px, 13px) scale(1)'
|
82 | }, ownerState.shrink && _extends({
|
83 | userSelect: 'none',
|
84 | pointerEvents: 'auto',
|
85 | transform: 'translate(12px, 7px) scale(0.75)',
|
86 | maxWidth: 'calc(133% - 24px)'
|
87 | }, ownerState.size === 'small' && {
|
88 | transform: 'translate(12px, 4px) scale(0.75)'
|
89 | })), ownerState.variant === 'outlined' && _extends({
|
90 |
|
91 | zIndex: 1,
|
92 | pointerEvents: 'none',
|
93 | transform: 'translate(14px, 16px) scale(1)',
|
94 | maxWidth: 'calc(100% - 24px)'
|
95 | }, ownerState.size === 'small' && {
|
96 | transform: 'translate(14px, 9px) scale(1)'
|
97 | }, ownerState.shrink && {
|
98 | userSelect: 'none',
|
99 | pointerEvents: 'auto',
|
100 |
|
101 |
|
102 | maxWidth: 'calc(133% - 32px)',
|
103 | transform: 'translate(14px, -9px) scale(0.75)'
|
104 | }));
|
105 | });
|
106 | var InputLabel = React.forwardRef(function InputLabel(inProps, ref) {
|
107 | var props = useDefaultProps({
|
108 | name: 'MuiInputLabel',
|
109 | props: inProps
|
110 | });
|
111 | var _props$disableAnimati = props.disableAnimation,
|
112 | disableAnimation = _props$disableAnimati === void 0 ? false : _props$disableAnimati,
|
113 | margin = props.margin,
|
114 | shrinkProp = props.shrink,
|
115 | variant = props.variant,
|
116 | className = props.className,
|
117 | other = _objectWithoutProperties(props, ["disableAnimation", "margin", "shrink", "variant", "className"]);
|
118 | var muiFormControl = useFormControl();
|
119 | var shrink = shrinkProp;
|
120 | if (typeof shrink === 'undefined' && muiFormControl) {
|
121 | shrink = muiFormControl.filled || muiFormControl.focused || muiFormControl.adornedStart;
|
122 | }
|
123 | var fcs = formControlState({
|
124 | props: props,
|
125 | muiFormControl: muiFormControl,
|
126 | states: ['size', 'variant', 'required', 'focused']
|
127 | });
|
128 | var ownerState = _extends({}, props, {
|
129 | disableAnimation: disableAnimation,
|
130 | formControl: muiFormControl,
|
131 | shrink: shrink,
|
132 | size: fcs.size,
|
133 | variant: fcs.variant,
|
134 | required: fcs.required,
|
135 | focused: fcs.focused
|
136 | });
|
137 | var classes = useUtilityClasses(ownerState);
|
138 | return _jsx(InputLabelRoot, _extends({
|
139 | "data-shrink": shrink,
|
140 | ownerState: ownerState,
|
141 | ref: ref,
|
142 | className: clsx(classes.root, className)
|
143 | }, other, {
|
144 | classes: classes
|
145 | }));
|
146 | });
|
147 | process.env.NODE_ENV !== "production" ? InputLabel.propTypes = {
|
148 |
|
149 |
|
150 |
|
151 |
|
152 | |
153 |
|
154 |
|
155 | children: PropTypes.node,
|
156 | |
157 |
|
158 |
|
159 | classes: PropTypes.object,
|
160 | |
161 |
|
162 |
|
163 | className: PropTypes.string,
|
164 | |
165 |
|
166 |
|
167 |
|
168 |
|
169 | color: PropTypes .oneOfType([PropTypes.oneOf(['error', 'info', 'primary', 'secondary', 'success', 'warning']), PropTypes.string]),
|
170 | |
171 |
|
172 |
|
173 |
|
174 | disableAnimation: PropTypes.bool,
|
175 | |
176 |
|
177 |
|
178 | disabled: PropTypes.bool,
|
179 | |
180 |
|
181 |
|
182 | error: PropTypes.bool,
|
183 | |
184 |
|
185 |
|
186 | focused: PropTypes.bool,
|
187 | |
188 |
|
189 |
|
190 |
|
191 | margin: PropTypes.oneOf(['dense']),
|
192 | |
193 |
|
194 |
|
195 | required: PropTypes.bool,
|
196 | |
197 |
|
198 |
|
199 | shrink: PropTypes.bool,
|
200 | |
201 |
|
202 |
|
203 |
|
204 | size: PropTypes .oneOfType([PropTypes.oneOf(['normal', 'small']), PropTypes.string]),
|
205 | |
206 |
|
207 |
|
208 | sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
209 | |
210 |
|
211 |
|
212 | variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])
|
213 | } : void 0;
|
214 | export default InputLabel; |
\ | No newline at end of file |