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 _zeroStyled = require("../zero-styled");
|
15 | var _memoTheme = _interopRequireDefault(require("../utils/memoTheme"));
|
16 | var _DefaultPropsProvider = require("../DefaultPropsProvider");
|
17 | var _Add = _interopRequireDefault(require("../internal/svg-icons/Add"));
|
18 | var _speedDialIconClasses = _interopRequireWildcard(require("./speedDialIconClasses"));
|
19 | var _jsxRuntime = require("react/jsx-runtime");
|
20 | const useUtilityClasses = ownerState => {
|
21 | const {
|
22 | classes,
|
23 | open,
|
24 | openIcon
|
25 | } = ownerState;
|
26 | const slots = {
|
27 | root: ['root'],
|
28 | icon: ['icon', open && 'iconOpen', openIcon && open && 'iconWithOpenIconOpen'],
|
29 | openIcon: ['openIcon', open && 'openIconOpen']
|
30 | };
|
31 | return (0, _composeClasses.default)(slots, _speedDialIconClasses.getSpeedDialIconUtilityClass, classes);
|
32 | };
|
33 | const SpeedDialIconRoot = (0, _zeroStyled.styled)('span', {
|
34 | name: 'MuiSpeedDialIcon',
|
35 | slot: 'Root',
|
36 | overridesResolver: (props, styles) => {
|
37 | const {
|
38 | ownerState
|
39 | } = props;
|
40 | return [{
|
41 | [`& .${_speedDialIconClasses.default.icon}`]: styles.icon
|
42 | }, {
|
43 | [`& .${_speedDialIconClasses.default.icon}`]: ownerState.open && styles.iconOpen
|
44 | }, {
|
45 | [`& .${_speedDialIconClasses.default.icon}`]: ownerState.open && ownerState.openIcon && styles.iconWithOpenIconOpen
|
46 | }, {
|
47 | [`& .${_speedDialIconClasses.default.openIcon}`]: styles.openIcon
|
48 | }, {
|
49 | [`& .${_speedDialIconClasses.default.openIcon}`]: ownerState.open && styles.openIconOpen
|
50 | }, styles.root];
|
51 | }
|
52 | })((0, _memoTheme.default)(({
|
53 | theme
|
54 | }) => ({
|
55 | height: 24,
|
56 | [`& .${_speedDialIconClasses.default.icon}`]: {
|
57 | transition: theme.transitions.create(['transform', 'opacity'], {
|
58 | duration: theme.transitions.duration.short
|
59 | })
|
60 | },
|
61 | [`& .${_speedDialIconClasses.default.openIcon}`]: {
|
62 | position: 'absolute',
|
63 | transition: theme.transitions.create(['transform', 'opacity'], {
|
64 | duration: theme.transitions.duration.short
|
65 | }),
|
66 | opacity: 0,
|
67 | transform: 'rotate(-45deg)'
|
68 | },
|
69 | variants: [{
|
70 | props: ({
|
71 | ownerState
|
72 | }) => ownerState.open,
|
73 | style: {
|
74 | [`& .${_speedDialIconClasses.default.icon}`]: {
|
75 | transform: 'rotate(45deg)'
|
76 | }
|
77 | }
|
78 | }, {
|
79 | props: ({
|
80 | ownerState
|
81 | }) => ownerState.open && ownerState.openIcon,
|
82 | style: {
|
83 | [`& .${_speedDialIconClasses.default.icon}`]: {
|
84 | opacity: 0
|
85 | }
|
86 | }
|
87 | }, {
|
88 | props: ({
|
89 | ownerState
|
90 | }) => ownerState.open,
|
91 | style: {
|
92 | [`& .${_speedDialIconClasses.default.openIcon}`]: {
|
93 | transform: 'rotate(0deg)',
|
94 | opacity: 1
|
95 | }
|
96 | }
|
97 | }]
|
98 | })));
|
99 | const SpeedDialIcon = React.forwardRef(function SpeedDialIcon(inProps, ref) {
|
100 | const props = (0, _DefaultPropsProvider.useDefaultProps)({
|
101 | props: inProps,
|
102 | name: 'MuiSpeedDialIcon'
|
103 | });
|
104 | const {
|
105 | className,
|
106 | icon: iconProp,
|
107 | open,
|
108 | openIcon: openIconProp,
|
109 | ...other
|
110 | } = props;
|
111 | const ownerState = props;
|
112 | const classes = useUtilityClasses(ownerState);
|
113 | function formatIcon(icon, newClassName) {
|
114 | if (React.isValidElement(icon)) {
|
115 | return React.cloneElement(icon, {
|
116 | className: newClassName
|
117 | });
|
118 | }
|
119 | return icon;
|
120 | }
|
121 | return (0, _jsxRuntime.jsxs)(SpeedDialIconRoot, {
|
122 | className: (0, _clsx.default)(classes.root, className),
|
123 | ref: ref,
|
124 | ownerState: ownerState,
|
125 | ...other,
|
126 | children: [openIconProp ? formatIcon(openIconProp, classes.openIcon) : null, iconProp ? formatIcon(iconProp, classes.icon) : (0, _jsxRuntime.jsx)(_Add.default, {
|
127 | className: classes.icon
|
128 | })]
|
129 | });
|
130 | });
|
131 | process.env.NODE_ENV !== "production" ? SpeedDialIcon.propTypes = {
|
132 |
|
133 |
|
134 |
|
135 |
|
136 | |
137 |
|
138 |
|
139 | classes: _propTypes.default.object,
|
140 | |
141 |
|
142 |
|
143 | className: _propTypes.default.string,
|
144 | |
145 |
|
146 |
|
147 | icon: _propTypes.default.node,
|
148 | |
149 |
|
150 |
|
151 |
|
152 | open: _propTypes.default.bool,
|
153 | |
154 |
|
155 |
|
156 | openIcon: _propTypes.default.node,
|
157 | |
158 |
|
159 |
|
160 | 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])
|
161 | } : void 0;
|
162 | SpeedDialIcon.muiName = 'SpeedDialIcon';
|
163 | var _default = exports.default = SpeedDialIcon; |
\ | No newline at end of file |