@mui/codemod 6.0.0-alpha.7 → 6.0.0-alpha.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +227 -30
- package/node/deprecations/accordion-props/test-cases/actual.js +6 -3
- package/node/deprecations/accordion-props/test-cases/expected.js +14 -10
- package/node/deprecations/accordion-props/test-cases/theme.expected.js +8 -7
- package/node/deprecations/alert-props/test-cases/expected.js +12 -4
- package/node/deprecations/alert-props/test-cases/theme.expected.js +12 -5
- package/node/deprecations/all/deprecations-all.js +6 -0
- package/node/deprecations/autocomplete-props/test-cases/expected.js +8 -6
- package/node/deprecations/autocomplete-props/test-cases/theme.expected.js +8 -7
- package/node/deprecations/avatar-group-props/avatar-group-props.js +87 -0
- package/node/deprecations/avatar-group-props/index.js +13 -0
- package/node/deprecations/avatar-group-props/test-cases/actual.js +56 -0
- package/node/deprecations/avatar-group-props/test-cases/expected.js +58 -0
- package/node/deprecations/avatar-group-props/test-cases/theme.actual.js +48 -0
- package/node/deprecations/avatar-group-props/test-cases/theme.expected.js +50 -0
- package/node/deprecations/avatar-props/test-cases/expected.js +8 -6
- package/node/deprecations/avatar-props/test-cases/theme.expected.js +8 -7
- package/node/deprecations/backdrop-props/test-cases/actual.js +3 -2
- package/node/deprecations/backdrop-props/test-cases/expected.js +3 -3
- package/node/deprecations/badge-props/test-cases/expected.js +12 -5
- package/node/deprecations/badge-props/test-cases/theme.expected.js +12 -5
- package/node/deprecations/form-control-label-props/test-cases/expected.js +4 -2
- package/node/deprecations/form-control-label-props/test-cases/theme.expected.js +4 -3
- package/node/deprecations/grid-props/grid-props.js +51 -0
- package/node/deprecations/grid-props/index.js +13 -0
- package/node/deprecations/grid-props/test-cases/actual.js +25 -0
- package/node/deprecations/grid-props/test-cases/expected.js +23 -0
- package/node/deprecations/grid-props/test-cases/theme.actual.js +24 -0
- package/node/deprecations/grid-props/test-cases/theme.expected.js +23 -0
- package/node/deprecations/list-item-props/index.js +13 -0
- package/node/deprecations/list-item-props/list-item-props.js +22 -0
- package/node/deprecations/list-item-props/test-cases/actual.js +43 -0
- package/node/deprecations/list-item-props/test-cases/expected.js +40 -0
- package/node/deprecations/list-item-props/test-cases/theme.actual.js +56 -0
- package/node/deprecations/list-item-props/test-cases/theme.expected.js +53 -0
- package/node/deprecations/popper-props/index.js +13 -0
- package/node/deprecations/popper-props/popper-props.js +22 -0
- package/node/deprecations/popper-props/test-cases/actual.js +27 -0
- package/node/deprecations/popper-props/test-cases/expected.js +24 -0
- package/node/deprecations/popper-props/test-cases/theme.actual.js +32 -0
- package/node/deprecations/popper-props/test-cases/theme.expected.js +29 -0
- package/node/deprecations/slider-props/test-cases/expected.js +12 -4
- package/node/deprecations/slider-props/test-cases/theme.expected.js +12 -5
- package/node/deprecations/speed-dial-props/test-cases/actual.js +3 -2
- package/node/deprecations/speed-dial-props/test-cases/expected.js +3 -3
- package/node/deprecations/step-label-props/test-cases/expected.js +8 -3
- package/node/deprecations/step-label-props/test-cases/theme.expected.js +8 -4
- package/node/deprecations/text-field-props/index.js +13 -0
- package/node/deprecations/text-field-props/test-cases/actual.js +27 -0
- package/node/deprecations/text-field-props/test-cases/expected.js +31 -0
- package/node/deprecations/text-field-props/test-cases/theme.actual.js +13 -0
- package/node/deprecations/text-field-props/test-cases/theme.expected.js +15 -0
- package/node/deprecations/text-field-props/text-field-props.js +48 -0
- package/node/deprecations/tooltip-props/index.js +13 -0
- package/node/deprecations/tooltip-props/test-cases/actual.js +92 -0
- package/node/deprecations/tooltip-props/test-cases/expected.js +84 -0
- package/node/deprecations/tooltip-props/test-cases/theme.actual.js +73 -0
- package/node/deprecations/tooltip-props/test-cases/theme.expected.js +65 -0
- package/node/deprecations/tooltip-props/tooltip-props.js +22 -0
- package/node/deprecations/utils/replaceComponentsWithSlots.js +29 -17
- package/node/util/migrateToVariants.js +198 -121
- package/node/v5.0.0/badge-overlap-value.test/actual.js +3 -4
- package/node/v5.0.0/badge-overlap-value.test/expected.js +3 -4
- package/node/v5.0.0/base-remove-component-prop.test/actual.js +4 -4
- package/node/v5.0.0/base-remove-component-prop.test/expected.js +4 -4
- package/node/v5.0.0/box-sx-prop.test/actual.js +4 -4
- package/node/v5.0.0/box-sx-prop.test/expected.js +3 -3
- package/node/v5.0.0/create-theme.test/custom-fn.actual.js +3 -4
- package/node/v5.0.0/create-theme.test/custom-fn.expected.js +3 -4
- package/node/v5.0.0/jss-to-styled.test/first.actual.js +11 -14
- package/node/v5.0.0/jss-to-styled.test/first.expected.js +11 -14
- package/node/v5.0.0/jss-to-styled.test/seventh.actual.js +4 -4
- package/node/v5.0.0/jss-to-styled.test/seventh.expected.js +4 -4
- package/node/v5.0.0/jss-to-styled.test/sixth.actual.js +3 -3
- package/node/v5.0.0/jss-to-styled.test/sixth.expected.js +3 -3
- package/node/v5.0.0/jss-to-styled.test/withCreateStyles.actual.js +3 -3
- package/node/v5.0.0/jss-to-styled.test/withCreateStyles.expected.js +3 -4
- package/node/v5.0.0/jss-to-styled.test/withCreateStyles1.actual.js +3 -3
- package/node/v5.0.0/jss-to-styled.test/withCreateStyles1.expected.js +3 -4
- package/node/v5.0.0/jss-to-styled.test/withCreateStyles2.actual.js +3 -3
- package/node/v5.0.0/jss-to-styled.test/withCreateStyles2.expected.js +3 -4
- package/node/v5.0.0/jss-to-styled.test/withCreateStyles3.actual.js +3 -3
- package/node/v5.0.0/jss-to-styled.test/withCreateStyles3.expected.js +3 -4
- package/node/v5.0.0/jss-to-tss-react.test/actual-mixins-pattern.js +6 -5
- package/node/v5.0.0/jss-to-tss-react.test/expected-mixins-pattern.js +6 -5
- package/node/v5.0.0/preset-safe.test/actual.js +6 -4
- package/node/v5.0.0/preset-safe.test/expected.js +9 -6
- package/node/v5.0.0/table-props.test/actual.js +4 -5
- package/node/v5.0.0/table-props.test/expected.js +4 -5
- package/node/v5.0.0/theme-spacing.test/large-actual.js +10 -10
- package/node/v5.0.0/theme-spacing.test/large-expected.js +10 -10
- package/node/v5.0.0/variant-prop.test/actual.js +12 -6
- package/node/v5.0.0/variant-prop.test/expected.js +15 -12
- package/node/v5.0.0/with-mobile-dialog.test/expected.js +6 -5
- package/node/v5.0.0/with-width.test/expected.js +6 -5
- package/node/v6.0.0/styled/test-cases/BasicStyled.actual.js +55 -44
- package/node/v6.0.0/styled/test-cases/BasicStyled.expected.js +5 -6
- package/node/v6.0.0/styled/test-cases/ConditionalStyled.actual.js +80 -70
- package/node/v6.0.0/styled/test-cases/ConditionalStyled.expected.js +7 -6
- package/node/v6.0.0/styled/test-cases/NestedSpread.actual.js +32 -26
- package/node/v6.0.0/styled/test-cases/NestedSpread.expected.js +7 -6
- package/node/v6.0.0/styled/test-cases/ThemePaletteMode.expected.js +28 -26
- package/node/v6.0.0/styled/test-cases/VariantAndModeStyled.actual.js +6 -5
- package/node/v6.0.0/styled/test-cases/VariantAndModeStyled.expected.js +8 -8
- package/node/v6.0.0/sx-prop/index.js +13 -0
- package/node/v6.0.0/sx-prop/sx-v6.js +355 -0
- package/node/v6.0.0/sx-prop/test-cases/basic-sx.actual.js +36 -0
- package/node/v6.0.0/sx-prop/test-cases/basic-sx.expected.js +46 -0
- package/node/v6.0.0/sx-prop/test-cases/sx-css-vars.actual.js +41 -0
- package/node/v6.0.0/sx-prop/test-cases/sx-css-vars.expected.js +71 -0
- package/node/v6.0.0/sx-prop/test-cases/sx-dynamic.actual.js +87 -0
- package/node/v6.0.0/sx-prop/test-cases/sx-dynamic.expected.js +102 -0
- package/node/v6.0.0/sx-prop/test-cases/sx-dynamic2.actual.js +49 -0
- package/node/v6.0.0/sx-prop/test-cases/sx-dynamic2.expected.js +64 -0
- package/node/v6.0.0/system-props/index.js +13 -0
- package/node/v6.0.0/system-props/removeSystemProps.js +242 -0
- package/node/v6.0.0/system-props/test-cases/system-props.actual.js +79 -0
- package/node/v6.0.0/system-props/test-cases/system-props.expected.js +92 -0
- package/node/v6.0.0/theme-v6/test-cases/basicTheme.actual.js +254 -225
- package/node/v6.0.0/theme-v6/test-cases/basicTheme.expected.js +180 -162
- package/node/v6.0.0/theme-v6/test-cases/themeVariants.actual.js +23 -21
- package/node/v6.0.0/theme-v6/test-cases/themeVariants.expected.js +20 -19
- package/node/v6.0.0/theme-v6/theme-v6.js +2 -2
- package/package.json +4 -4
|
@@ -1,103 +1,187 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.default = migrateToVariants;
|
|
8
|
-
|
|
7
|
+
exports.getCreateBuildStyle = exports.getBuildArrowFunctionAST = exports.getAppendPaletteModeStyles = void 0;
|
|
8
|
+
exports.getIdentifierKey = getIdentifierKey;
|
|
9
|
+
exports.getObjectKey = getObjectKey;
|
|
10
|
+
exports.getObjectToArrowFunction = void 0;
|
|
11
|
+
exports.isThemePaletteMode = isThemePaletteMode;
|
|
12
|
+
exports.removeProperty = removeProperty;
|
|
9
13
|
const MAX_DEPTH = 20;
|
|
14
|
+
|
|
10
15
|
/**
|
|
11
|
-
*
|
|
12
16
|
* @param {import('jscodeshift').API['j']} j
|
|
13
|
-
* @
|
|
17
|
+
* @returns
|
|
14
18
|
*/
|
|
15
|
-
function
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if (key) {
|
|
22
|
-
|
|
23
|
-
return upperBuildStyle(j.objectExpression([j.objectProperty(key, styleExpression)]));
|
|
24
|
-
}
|
|
25
|
-
if (key.type === 'TemplateLiteral' || key.type === 'CallExpression') {
|
|
26
|
-
return upperBuildStyle(j.objectExpression([(0, _extends2.default)({}, j.objectProperty(key, styleExpression), {
|
|
27
|
-
computed: true
|
|
28
|
-
})]));
|
|
29
|
-
}
|
|
19
|
+
const getCreateBuildStyle = j => function createBuildStyle(key, upperBuildStyle, applyStylesMode) {
|
|
20
|
+
if (applyStylesMode) {
|
|
21
|
+
upperBuildStyle = styleExpression => j.objectExpression([j.spreadElement(j.callExpression(j.memberExpression(j.identifier('theme'), j.identifier('applyStyles')), [j.stringLiteral(applyStylesMode), styleExpression]))]);
|
|
22
|
+
}
|
|
23
|
+
return function buildStyle(styleExpression) {
|
|
24
|
+
if (key) {
|
|
25
|
+
if (key.type === 'Identifier' || key.type === 'StringLiteral') {
|
|
26
|
+
return upperBuildStyle(j.objectExpression([j.objectProperty(key, styleExpression)]));
|
|
30
27
|
}
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
if (key.type === 'TemplateLiteral' || key.type === 'CallExpression') {
|
|
29
|
+
return upperBuildStyle(j.objectExpression([{
|
|
30
|
+
...j.objectProperty(key, styleExpression),
|
|
31
|
+
computed: true
|
|
32
|
+
}]));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return upperBuildStyle ? upperBuildStyle(styleExpression) : styleExpression;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @param {import('jscodeshift').API['j']} j
|
|
41
|
+
*/
|
|
42
|
+
exports.getCreateBuildStyle = getCreateBuildStyle;
|
|
43
|
+
const getAppendPaletteModeStyles = j =>
|
|
44
|
+
/**
|
|
45
|
+
*
|
|
46
|
+
* @param {{ properties: any[] }} node
|
|
47
|
+
* @param {Record<string, any[] | import('jscodeshift').ObjectExpression>} modeStyles
|
|
48
|
+
*/
|
|
49
|
+
function appendPaletteModeStyles(node, modeStyles) {
|
|
50
|
+
Object.entries(modeStyles).forEach(([mode, objectStyles]) => {
|
|
51
|
+
node.properties.push(j.spreadElement(j.callExpression(j.memberExpression(j.identifier('theme'), j.identifier('applyStyles')), [j.stringLiteral(mode), Array.isArray(objectStyles) ? j.objectExpression(objectStyles) : objectStyles])));
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
*
|
|
57
|
+
* @param {import('jscodeshift').MemberExpression | import('jscodeshift').Identifier} node
|
|
58
|
+
*/
|
|
59
|
+
exports.getAppendPaletteModeStyles = getAppendPaletteModeStyles;
|
|
60
|
+
function getIdentifierKey(node) {
|
|
61
|
+
if (node.type === 'MemberExpression') {
|
|
62
|
+
return node.property;
|
|
33
63
|
}
|
|
64
|
+
return node;
|
|
65
|
+
}
|
|
34
66
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
67
|
+
/**
|
|
68
|
+
*
|
|
69
|
+
* @param {import('jscodeshift').UnaryExpression | import('jscodeshift').MemberExpression | import('jscodeshift').Identifier} node
|
|
70
|
+
*/
|
|
71
|
+
function getObjectKey(node) {
|
|
72
|
+
let tempNode = {
|
|
73
|
+
...node
|
|
74
|
+
};
|
|
75
|
+
while (tempNode.type === 'UnaryExpression') {
|
|
76
|
+
tempNode = tempNode.argument;
|
|
77
|
+
}
|
|
78
|
+
while (tempNode.type === 'MemberExpression' || tempNode.type === 'OptionMemberExpression') {
|
|
79
|
+
tempNode = tempNode.object;
|
|
44
80
|
}
|
|
81
|
+
return tempNode;
|
|
82
|
+
}
|
|
45
83
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
while (tempNode.type === 'MemberExpression') {
|
|
56
|
-
tempNode = tempNode.object;
|
|
84
|
+
/**
|
|
85
|
+
*
|
|
86
|
+
* @param {import('jscodeshift').ObjectExpression} node
|
|
87
|
+
*/
|
|
88
|
+
function removeProperty(parentNode, child) {
|
|
89
|
+
if (parentNode) {
|
|
90
|
+
if (parentNode.type === 'ObjectExpression') {
|
|
91
|
+
parentNode.properties = parentNode.properties.filter(prop => prop !== child && prop.value !== child);
|
|
57
92
|
}
|
|
58
|
-
return tempNode;
|
|
59
93
|
}
|
|
94
|
+
}
|
|
60
95
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
96
|
+
/**
|
|
97
|
+
* @param {import('jscodeshift').API['j']} j
|
|
98
|
+
*/
|
|
99
|
+
const getBuildArrowFunctionAST = j =>
|
|
100
|
+
/**
|
|
101
|
+
*
|
|
102
|
+
* @param {Set<string> | import('jscodeshift').Expression[]} params
|
|
103
|
+
* @param {import('jscodeshift').BlockStatement} body
|
|
104
|
+
* @returns
|
|
105
|
+
*/
|
|
106
|
+
function buildArrowFunctionAST(params, body) {
|
|
107
|
+
const destructured = [...params].every(param => typeof param === 'string');
|
|
108
|
+
return j.arrowFunctionExpression(destructured ? [j.objectPattern([...params].map(k => ({
|
|
109
|
+
...j.objectProperty(j.identifier(k), j.identifier(k)),
|
|
110
|
+
shorthand: true
|
|
111
|
+
})))] : params, body);
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* @param {import('jscodeshift').API['j']} j
|
|
116
|
+
*/
|
|
117
|
+
exports.getBuildArrowFunctionAST = getBuildArrowFunctionAST;
|
|
118
|
+
const getObjectToArrowFunction = j => {
|
|
119
|
+
const buildArrowFunctionAST = getBuildArrowFunctionAST(j);
|
|
120
|
+
return (
|
|
121
|
+
/**
|
|
122
|
+
*
|
|
123
|
+
* @param {import('jscodeshift').ObjectExpression} objectExpression
|
|
124
|
+
* @param {import('jscodeshift').BinaryExpression} addtional
|
|
125
|
+
*/
|
|
126
|
+
function objectToArrowFunction(objectExpression, addtional) {
|
|
127
|
+
const paramKeys = new Set();
|
|
128
|
+
let left;
|
|
129
|
+
objectExpression.properties.forEach((prop, index) => {
|
|
130
|
+
paramKeys.add(prop.key.name);
|
|
131
|
+
const result = j.binaryExpression('===', prop.key, prop.value);
|
|
132
|
+
if (index === 0) {
|
|
133
|
+
left = result;
|
|
134
|
+
} else {
|
|
135
|
+
left = j.logicalExpression('&&', left, result);
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
if (addtional) {
|
|
139
|
+
paramKeys.add(getObjectKey(addtional.left).name);
|
|
76
140
|
}
|
|
77
|
-
|
|
78
|
-
if (addtional) {
|
|
79
|
-
paramKeys.add(getObjectKey(addtional.left).name);
|
|
141
|
+
return buildArrowFunctionAST(paramKeys, addtional ? j.logicalExpression('&&', left, addtional) : left);
|
|
80
142
|
}
|
|
81
|
-
|
|
82
|
-
|
|
143
|
+
);
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
*
|
|
148
|
+
* @param {undefined | null | import('jscodeshift').Expression} node
|
|
149
|
+
*/
|
|
150
|
+
exports.getObjectToArrowFunction = getObjectToArrowFunction;
|
|
151
|
+
function isThemePaletteMode(node) {
|
|
152
|
+
return (node == null ? void 0 : node.type) === 'MemberExpression' && node.object.type === 'MemberExpression' && node.object.object.name === 'theme' && node.object.property.name === 'palette' && node.property.name === 'mode';
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
*
|
|
157
|
+
* @param {import('jscodeshift').API['j']} j
|
|
158
|
+
* @param {any[]} styles
|
|
159
|
+
*/
|
|
160
|
+
function migrateToVariants(j, styles) {
|
|
161
|
+
const createBuildStyle = getCreateBuildStyle(j);
|
|
162
|
+
const appendPaletteModeStyles = getAppendPaletteModeStyles(j);
|
|
163
|
+
const buildArrowFunctionAST = getBuildArrowFunctionAST(j);
|
|
164
|
+
const objectToArrowFunction = getObjectToArrowFunction(j);
|
|
83
165
|
|
|
84
166
|
/**
|
|
85
167
|
*
|
|
86
|
-
* @param {import('
|
|
168
|
+
* @param {import('jscodeshift').Identifier | import('jscodeshift').BinaryExpression | import('jscodeshift').UnaryExpression | import('jscodeshift').MemberExpression} node
|
|
87
169
|
*/
|
|
88
170
|
function inverseBinaryExpression(node) {
|
|
89
171
|
if (node.type === 'Identifier' || node.type === 'MemberExpression') {
|
|
90
172
|
return j.unaryExpression('!', node);
|
|
91
173
|
}
|
|
92
174
|
if (node.operator === '===') {
|
|
93
|
-
return
|
|
175
|
+
return {
|
|
176
|
+
...node,
|
|
94
177
|
operator: '!=='
|
|
95
|
-
}
|
|
178
|
+
};
|
|
96
179
|
}
|
|
97
180
|
if (node.operator === '!==') {
|
|
98
|
-
return
|
|
181
|
+
return {
|
|
182
|
+
...node,
|
|
99
183
|
operator: '==='
|
|
100
|
-
}
|
|
184
|
+
};
|
|
101
185
|
}
|
|
102
186
|
if (node.operator === '!') {
|
|
103
187
|
var _node$argument;
|
|
@@ -108,18 +192,6 @@ function migrateToVariants(j, styles) {
|
|
|
108
192
|
}
|
|
109
193
|
return node;
|
|
110
194
|
}
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
*
|
|
114
|
-
* @param {import('ast-types').namedTypes.ObjectExpression} node
|
|
115
|
-
*/
|
|
116
|
-
function removeProperty(parentNode, child) {
|
|
117
|
-
if (parentNode) {
|
|
118
|
-
if (parentNode.type === 'ObjectExpression') {
|
|
119
|
-
parentNode.properties = parentNode.properties.filter(prop => prop !== child && prop.value !== child);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
195
|
function buildObjectAST(jsObject) {
|
|
124
196
|
const result = j.objectExpression([]);
|
|
125
197
|
Object.entries(jsObject).forEach(([key, value]) => {
|
|
@@ -127,32 +199,18 @@ function migrateToVariants(j, styles) {
|
|
|
127
199
|
});
|
|
128
200
|
return result;
|
|
129
201
|
}
|
|
130
|
-
function buildArrowFunctionAST(params, body) {
|
|
131
|
-
return j.arrowFunctionExpression([j.objectPattern([...params].map(k => (0, _extends2.default)({}, j.objectProperty(j.identifier(k), j.identifier(k)), {
|
|
132
|
-
shorthand: true
|
|
133
|
-
})))], body);
|
|
134
|
-
}
|
|
135
202
|
|
|
136
203
|
/**
|
|
137
204
|
*
|
|
138
|
-
* @param {
|
|
139
|
-
* @param {Record<string, any[] | import('ast-types').namedTypes.ObjectExpression>} modeStyles
|
|
140
|
-
*/
|
|
141
|
-
function appendPaletteModeStyles(node, modeStyles) {
|
|
142
|
-
Object.entries(modeStyles).forEach(([mode, objectStyles]) => {
|
|
143
|
-
node.properties.push(j.spreadElement(j.callExpression(j.memberExpression(j.identifier('theme'), j.identifier('applyStyles')), [j.stringLiteral(mode), Array.isArray(objectStyles) ? j.objectExpression(objectStyles) : objectStyles])));
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
*
|
|
149
|
-
* @param {import('ast-types').namedTypes.LogicalExpression | import('ast-types').namedTypes.BinaryExpression | import('ast-types').namedTypes.UnaryExpression | import('ast-types').namedTypes.MemberExpression} node
|
|
205
|
+
* @param {import('jscodeshift').LogicalExpression | import('jscodeshift').BinaryExpression | import('jscodeshift').UnaryExpression | import('jscodeshift').MemberExpression} node
|
|
150
206
|
*/
|
|
151
207
|
function buildProps(node) {
|
|
152
208
|
const properties = [];
|
|
153
209
|
const variables = new Set();
|
|
154
210
|
let isAllEqual = true;
|
|
155
|
-
let tempNode =
|
|
211
|
+
let tempNode = {
|
|
212
|
+
...node
|
|
213
|
+
};
|
|
156
214
|
function assignProperties(_node) {
|
|
157
215
|
if (_node.type === 'BinaryExpression') {
|
|
158
216
|
variables.add(getObjectKey(_node.left).name);
|
|
@@ -191,7 +249,9 @@ function migrateToVariants(j, styles) {
|
|
|
191
249
|
assignProperties(tempNode.left);
|
|
192
250
|
break;
|
|
193
251
|
}
|
|
194
|
-
tempNode =
|
|
252
|
+
tempNode = {
|
|
253
|
+
...tempNode.left
|
|
254
|
+
};
|
|
195
255
|
}
|
|
196
256
|
}
|
|
197
257
|
if (!isAllEqual) {
|
|
@@ -211,9 +271,6 @@ function migrateToVariants(j, styles) {
|
|
|
211
271
|
});
|
|
212
272
|
return buildArrowFunctionAST(variables, j.logicalExpression('&&', parentArrow.body, currentArrow.body));
|
|
213
273
|
}
|
|
214
|
-
function isThemePaletteMode(node) {
|
|
215
|
-
return node.type === 'MemberExpression' && node.object.type === 'MemberExpression' && node.object.object.name === 'theme' && node.object.property.name === 'palette' && node.property.name === 'mode';
|
|
216
|
-
}
|
|
217
274
|
|
|
218
275
|
// 2. Find logical spread expressions to convert to variants
|
|
219
276
|
styles.forEach(style => {
|
|
@@ -224,10 +281,13 @@ function migrateToVariants(j, styles) {
|
|
|
224
281
|
parameters.add(prop.key.name);
|
|
225
282
|
});
|
|
226
283
|
}
|
|
284
|
+
if (param.type === 'Identifier') {
|
|
285
|
+
parameters.add(param.name);
|
|
286
|
+
}
|
|
227
287
|
});
|
|
228
288
|
const variants = [];
|
|
229
289
|
if (style.body.type === 'LogicalExpression') {
|
|
230
|
-
if (style.params[0] && style.params[0].type === 'ObjectPattern' && style.params[0].properties.some(prop => prop.key.name !== 'theme')) {
|
|
290
|
+
if (style.params[0] && (style.params[0].type === 'Identifier' || style.params[0].type === 'ObjectPattern' && style.params[0].properties.some(prop => prop.key.name !== 'theme'))) {
|
|
231
291
|
// case: ({ theme, ownerState }) => ownerState.variant === 'regular' && theme.mixins.toolbar
|
|
232
292
|
style.body = j.objectExpression([j.objectProperty(j.identifier('variants'), j.arrayExpression([j.objectExpression([j.objectProperty(j.identifier('props'), buildProps(style.body.left)), j.objectProperty(j.identifier('style'), style.body.right)])]))]);
|
|
233
293
|
}
|
|
@@ -259,7 +319,8 @@ function migrateToVariants(j, styles) {
|
|
|
259
319
|
const modeStyles = {}; // to collect styles from `theme.palette.mode === '...'`
|
|
260
320
|
data.node.properties.forEach(prop => {
|
|
261
321
|
if (prop.type === 'ObjectProperty') {
|
|
262
|
-
recurseObjectExpression(
|
|
322
|
+
recurseObjectExpression({
|
|
323
|
+
...data,
|
|
263
324
|
node: prop.value,
|
|
264
325
|
parentNode: data.node,
|
|
265
326
|
key: prop.key,
|
|
@@ -268,13 +329,14 @@ function migrateToVariants(j, styles) {
|
|
|
268
329
|
prop.value = newValue;
|
|
269
330
|
},
|
|
270
331
|
modeStyles
|
|
271
|
-
})
|
|
332
|
+
});
|
|
272
333
|
} else {
|
|
273
|
-
recurseObjectExpression(
|
|
334
|
+
recurseObjectExpression({
|
|
335
|
+
...data,
|
|
274
336
|
node: prop,
|
|
275
337
|
parentNode: data.node,
|
|
276
338
|
buildStyle: createBuildStyle(prop.key, data.buildStyle)
|
|
277
|
-
})
|
|
339
|
+
});
|
|
278
340
|
}
|
|
279
341
|
});
|
|
280
342
|
appendPaletteModeStyles(data.node, modeStyles);
|
|
@@ -288,7 +350,8 @@ function migrateToVariants(j, styles) {
|
|
|
288
350
|
const mode = data.node.argument.left.right.value;
|
|
289
351
|
data.node.argument.right.properties.forEach(prop => {
|
|
290
352
|
if (prop.type === 'ObjectProperty') {
|
|
291
|
-
recurseObjectExpression(
|
|
353
|
+
recurseObjectExpression({
|
|
354
|
+
...data,
|
|
292
355
|
node: prop.value,
|
|
293
356
|
parentNode: data.node.argument.right,
|
|
294
357
|
key: prop.key,
|
|
@@ -296,13 +359,14 @@ function migrateToVariants(j, styles) {
|
|
|
296
359
|
replaceValue: newValue => {
|
|
297
360
|
prop.value = newValue;
|
|
298
361
|
}
|
|
299
|
-
})
|
|
362
|
+
});
|
|
300
363
|
} else {
|
|
301
|
-
recurseObjectExpression(
|
|
364
|
+
recurseObjectExpression({
|
|
365
|
+
...data,
|
|
302
366
|
node: prop,
|
|
303
367
|
parentNode: data.node.argument.right,
|
|
304
368
|
buildStyle: createBuildStyle(prop.key, data.buildStyle, mode)
|
|
305
|
-
})
|
|
369
|
+
});
|
|
306
370
|
}
|
|
307
371
|
});
|
|
308
372
|
appendPaletteModeStyles(data.parentNode, {
|
|
@@ -326,7 +390,8 @@ function migrateToVariants(j, styles) {
|
|
|
326
390
|
if (variant.style.type === 'ObjectExpression') {
|
|
327
391
|
variant.style.properties.forEach(prop => {
|
|
328
392
|
if (prop.type === 'ObjectProperty') {
|
|
329
|
-
recurseObjectExpression(
|
|
393
|
+
recurseObjectExpression({
|
|
394
|
+
...data,
|
|
330
395
|
node: prop.value,
|
|
331
396
|
parentNode: variant.style,
|
|
332
397
|
props: variant.props,
|
|
@@ -336,14 +401,15 @@ function migrateToVariants(j, styles) {
|
|
|
336
401
|
prop.value = newValue;
|
|
337
402
|
},
|
|
338
403
|
modeStyles
|
|
339
|
-
})
|
|
404
|
+
});
|
|
340
405
|
} else {
|
|
341
|
-
recurseObjectExpression(
|
|
406
|
+
recurseObjectExpression({
|
|
407
|
+
...data,
|
|
342
408
|
node: prop,
|
|
343
409
|
parentNode: variant.style,
|
|
344
410
|
props: variant.props,
|
|
345
411
|
buildStyle: createBuildStyle(prop.key, data.buildStyle)
|
|
346
|
-
})
|
|
412
|
+
});
|
|
347
413
|
}
|
|
348
414
|
});
|
|
349
415
|
}
|
|
@@ -353,10 +419,11 @@ function migrateToVariants(j, styles) {
|
|
|
353
419
|
removeProperty(data.parentNode, data.node);
|
|
354
420
|
}
|
|
355
421
|
if (data.node.argument.type === 'ConditionalExpression') {
|
|
356
|
-
recurseObjectExpression(
|
|
422
|
+
recurseObjectExpression({
|
|
423
|
+
...data,
|
|
357
424
|
node: data.node.argument,
|
|
358
425
|
parentNode: data.node
|
|
359
|
-
})
|
|
426
|
+
});
|
|
360
427
|
removeProperty(data.parentNode, data.node);
|
|
361
428
|
}
|
|
362
429
|
}
|
|
@@ -419,7 +486,8 @@ function migrateToVariants(j, styles) {
|
|
|
419
486
|
if (((_data$parentNode3 = data.parentNode) == null ? void 0 : _data$parentNode3.type) === 'ObjectExpression') {
|
|
420
487
|
const modeStyles = {};
|
|
421
488
|
data.node.expressions.forEach((expression, index) => {
|
|
422
|
-
recurseObjectExpression(
|
|
489
|
+
recurseObjectExpression({
|
|
490
|
+
...data,
|
|
423
491
|
node: expression,
|
|
424
492
|
parentNode: data.parentNode,
|
|
425
493
|
buildStyle: createBuildStyle(data.key, data.buildStyle),
|
|
@@ -427,19 +495,28 @@ function migrateToVariants(j, styles) {
|
|
|
427
495
|
data.node.expressions[index] = newValue;
|
|
428
496
|
},
|
|
429
497
|
modeStyles
|
|
430
|
-
})
|
|
498
|
+
});
|
|
431
499
|
});
|
|
432
500
|
if (data.modeStyles) {
|
|
433
501
|
Object.entries(modeStyles).forEach(([mode, objectStyles]) => {
|
|
434
|
-
const clonedNode =
|
|
435
|
-
|
|
436
|
-
|
|
502
|
+
const clonedNode = {
|
|
503
|
+
...data.node,
|
|
504
|
+
expressions: data.node.expressions.map(expression => ({
|
|
505
|
+
...expression
|
|
506
|
+
}))
|
|
507
|
+
};
|
|
437
508
|
clonedNode.expressions = objectStyles.map(item => item.value);
|
|
438
509
|
if (!data.modeStyles[mode]) {
|
|
439
510
|
data.modeStyles[mode] = [];
|
|
440
511
|
}
|
|
441
512
|
data.modeStyles[mode].push(j.objectProperty(data.key, clonedNode));
|
|
442
513
|
});
|
|
514
|
+
if (data.key) {
|
|
515
|
+
var _data$replaceValue2;
|
|
516
|
+
// to remove the arrow function
|
|
517
|
+
// { ...: theme => `1px solid...` } to { ...: `1px solid...` }
|
|
518
|
+
(_data$replaceValue2 = data.replaceValue) == null || _data$replaceValue2.call(data, data.node);
|
|
519
|
+
}
|
|
443
520
|
}
|
|
444
521
|
}
|
|
445
522
|
}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
5
3
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
6
4
|
/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
7
5
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Badge, {
|
|
@@ -31,9 +29,10 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
31
29
|
'& .MuiBadge-anchorOriginBottomLeftCircle': {}
|
|
32
30
|
}
|
|
33
31
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(Badge, {
|
|
34
|
-
classes:
|
|
32
|
+
classes: {
|
|
33
|
+
...badgeClasses,
|
|
35
34
|
badge: badgeClasses.badge
|
|
36
|
-
}
|
|
35
|
+
},
|
|
37
36
|
children: icon
|
|
38
37
|
})]
|
|
39
38
|
});
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
5
3
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
6
4
|
/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
7
5
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Badge, {
|
|
@@ -31,9 +29,10 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
31
29
|
'& .MuiBadge-anchorOriginBottomLeftCircular': {}
|
|
32
30
|
}
|
|
33
31
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(Badge, {
|
|
34
|
-
classes:
|
|
32
|
+
classes: {
|
|
33
|
+
...badgeClasses,
|
|
35
34
|
badge: badgeClasses.badge
|
|
36
|
-
}
|
|
35
|
+
},
|
|
37
36
|
children: icon
|
|
38
37
|
})]
|
|
39
38
|
});
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
5
4
|
var _Input = _interopRequireDefault(require("@mui/material/Input"));
|
|
6
5
|
var _Input2 = _interopRequireDefault(require("@mui/base/Input"));
|
|
7
6
|
var _Switch = _interopRequireDefault(require("@mui/base/Switch"));
|
|
@@ -15,9 +14,10 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
15
14
|
/*#__PURE__*/(0, _jsxRuntime.jsx)(_Input2.default, {
|
|
16
15
|
component: CustomRoot
|
|
17
16
|
});
|
|
18
|
-
/*#__PURE__*/(0, _jsxRuntime.jsx)(_Input2.default,
|
|
19
|
-
component: CustomRoot
|
|
20
|
-
|
|
17
|
+
/*#__PURE__*/(0, _jsxRuntime.jsx)(_Input2.default, {
|
|
18
|
+
component: CustomRoot,
|
|
19
|
+
...others
|
|
20
|
+
});
|
|
21
21
|
/*#__PURE__*/(0, _jsxRuntime.jsx)(_Switch.default, {
|
|
22
22
|
component: CustomRoot,
|
|
23
23
|
randomProp: "1",
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
5
4
|
var _Input = _interopRequireDefault(require("@mui/material/Input"));
|
|
6
5
|
var _Input2 = _interopRequireDefault(require("@mui/base/Input"));
|
|
7
6
|
var _Switch = _interopRequireDefault(require("@mui/base/Switch"));
|
|
@@ -17,11 +16,12 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
17
16
|
root: CustomRoot
|
|
18
17
|
}
|
|
19
18
|
});
|
|
20
|
-
/*#__PURE__*/(0, _jsxRuntime.jsx)(_Input2.default,
|
|
19
|
+
/*#__PURE__*/(0, _jsxRuntime.jsx)(_Input2.default, {
|
|
21
20
|
slots: {
|
|
22
21
|
root: CustomRoot
|
|
23
|
-
}
|
|
24
|
-
|
|
22
|
+
},
|
|
23
|
+
...others
|
|
24
|
+
});
|
|
25
25
|
/*#__PURE__*/(0, _jsxRuntime.jsx)(_Switch.default, {
|
|
26
26
|
slots: {
|
|
27
27
|
root: CustomRoot
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = BoxComponent;
|
|
8
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
8
|
var React = _interopRequireWildcard(require("react"));
|
|
10
9
|
var _Box = _interopRequireDefault(require("@material-ui/core/Box"));
|
|
11
10
|
var _Button2 = _interopRequireDefault(require("@material-ui/core/Button"));
|
|
@@ -34,8 +33,9 @@ function BoxComponent(props) {
|
|
|
34
33
|
component: "span",
|
|
35
34
|
children: "Save"
|
|
36
35
|
}))
|
|
37
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default,
|
|
38
|
-
p: [1, 2, 4]
|
|
39
|
-
|
|
36
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
37
|
+
p: [1, 2, 4],
|
|
38
|
+
...props
|
|
39
|
+
})]
|
|
40
40
|
});
|
|
41
41
|
}
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = BoxComponent;
|
|
8
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
8
|
var React = _interopRequireWildcard(require("react"));
|
|
10
9
|
var _Box = _interopRequireDefault(require("@material-ui/core/Box"));
|
|
11
10
|
var _Button2 = _interopRequireDefault(require("@material-ui/core/Button"));
|
|
@@ -36,10 +35,11 @@ function BoxComponent(props) {
|
|
|
36
35
|
component: "span",
|
|
37
36
|
children: "Save"
|
|
38
37
|
}))
|
|
39
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default,
|
|
38
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
39
|
+
...props,
|
|
40
40
|
sx: {
|
|
41
41
|
p: [1, 2, 4]
|
|
42
42
|
}
|
|
43
|
-
})
|
|
43
|
+
})]
|
|
44
44
|
});
|
|
45
45
|
}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.createTheme = createTheme;
|
|
8
7
|
exports.createThemeOptions = createThemeOptions;
|
|
9
8
|
exports.createThemeOverrides = createThemeOverrides;
|
|
10
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
9
|
var _core = require("@material-ui/core");
|
|
12
10
|
function createThemeOptions() {
|
|
13
11
|
return {};
|
|
@@ -19,8 +17,9 @@ function createTheme(options) {
|
|
|
19
17
|
const themeOptions = createThemeOptions(options);
|
|
20
18
|
const baseTheme = (0, _core.createMuiTheme)(themeOptions);
|
|
21
19
|
const overrides = createThemeOverrides(baseTheme);
|
|
22
|
-
const theme =
|
|
20
|
+
const theme = {
|
|
21
|
+
...baseTheme,
|
|
23
22
|
overrides
|
|
24
|
-
}
|
|
23
|
+
};
|
|
25
24
|
return theme;
|
|
26
25
|
}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.createTheme = createTheme;
|
|
8
7
|
exports.createThemeOptions = createThemeOptions;
|
|
9
8
|
exports.createThemeOverrides = createThemeOverrides;
|
|
10
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
9
|
var _core = require("@material-ui/core");
|
|
12
10
|
function createThemeOptions() {
|
|
13
11
|
return {};
|
|
@@ -19,8 +17,9 @@ function createTheme(options) {
|
|
|
19
17
|
const themeOptions = createThemeOptions(options);
|
|
20
18
|
const baseTheme = (0, _core.createTheme)(themeOptions);
|
|
21
19
|
const overrides = createThemeOverrides(baseTheme);
|
|
22
|
-
const theme =
|
|
20
|
+
const theme = {
|
|
21
|
+
...baseTheme,
|
|
23
22
|
overrides
|
|
24
|
-
}
|
|
23
|
+
};
|
|
25
24
|
return theme;
|
|
26
25
|
}
|