1 | import _extends from "@babel/runtime/helpers/esm/extends";
|
2 | import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
3 | const _excluded = ["defaultProps", "mixins", "overrides", "palette", "props", "styleOverrides"],
|
4 | _excluded2 = ["type", "mode"];
|
5 | import { createBreakpoints, createSpacing } from '@mui/system';
|
6 | export default function adaptV4Theme(inputTheme) {
|
7 | if (process.env.NODE_ENV !== 'production') {
|
8 | console.warn(['MUI: adaptV4Theme() is deprecated.', 'Follow the upgrade guide on https://mui.com/r/migration-v4#theme.'].join('\n'));
|
9 | }
|
10 |
|
11 | const {
|
12 | defaultProps = {},
|
13 | mixins = {},
|
14 | overrides = {},
|
15 | palette = {},
|
16 | props = {},
|
17 | styleOverrides = {}
|
18 | } = inputTheme,
|
19 | other = _objectWithoutPropertiesLoose(inputTheme, _excluded);
|
20 |
|
21 | const theme = _extends({}, other, {
|
22 | components: {}
|
23 | });
|
24 |
|
25 |
|
26 | Object.keys(defaultProps).forEach(component => {
|
27 | const componentValue = theme.components[component] || {};
|
28 | componentValue.defaultProps = defaultProps[component];
|
29 | theme.components[component] = componentValue;
|
30 | });
|
31 | Object.keys(props).forEach(component => {
|
32 | const componentValue = theme.components[component] || {};
|
33 | componentValue.defaultProps = props[component];
|
34 | theme.components[component] = componentValue;
|
35 | });
|
36 |
|
37 | Object.keys(styleOverrides).forEach(component => {
|
38 | const componentValue = theme.components[component] || {};
|
39 | componentValue.styleOverrides = styleOverrides[component];
|
40 | theme.components[component] = componentValue;
|
41 | });
|
42 | Object.keys(overrides).forEach(component => {
|
43 | const componentValue = theme.components[component] || {};
|
44 | componentValue.styleOverrides = overrides[component];
|
45 | theme.components[component] = componentValue;
|
46 | });
|
47 |
|
48 | theme.spacing = createSpacing(inputTheme.spacing);
|
49 |
|
50 | const breakpoints = createBreakpoints(inputTheme.breakpoints || {});
|
51 | const spacing = theme.spacing;
|
52 | theme.mixins = _extends({
|
53 | gutters: (styles = {}) => {
|
54 | return _extends({
|
55 | paddingLeft: spacing(2),
|
56 | paddingRight: spacing(2)
|
57 | }, styles, {
|
58 | [breakpoints.up('sm')]: _extends({
|
59 | paddingLeft: spacing(3),
|
60 | paddingRight: spacing(3)
|
61 | }, styles[breakpoints.up('sm')])
|
62 | });
|
63 | }
|
64 | }, mixins);
|
65 |
|
66 | const {
|
67 | type: typeInput,
|
68 | mode: modeInput
|
69 | } = palette,
|
70 | paletteRest = _objectWithoutPropertiesLoose(palette, _excluded2);
|
71 |
|
72 | const finalMode = modeInput || typeInput || 'light';
|
73 | theme.palette = _extends({
|
74 |
|
75 | text: {
|
76 | hint: finalMode === 'dark' ? 'rgba(255, 255, 255, 0.5)' : 'rgba(0, 0, 0, 0.38)'
|
77 | },
|
78 | mode: finalMode,
|
79 | type: finalMode
|
80 | }, paletteRest);
|
81 | return theme;
|
82 | } |
\ | No newline at end of file |