@mui/x-codemod 8.0.0-alpha.9 → 8.0.0-beta.0

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 CHANGED
@@ -173,6 +173,24 @@ Replace `row` and `column` values by `horizontal` and `vertical` respectively.
173
173
  />
174
174
  ```
175
175
 
176
+ #### `replace-legend-position-values`
177
+
178
+ Replace `"left" | "middle" | "right"` values `"start" | "center" | "end"` respectively.
179
+ This is to align with the CSS values and reflect the RTL ability of the legend component.
180
+
181
+ ```diff
182
+ <BarChart
183
+ slotProps={{
184
+ legend: {
185
+ position: {
186
+ - horizontal: "left",
187
+ + horizontal: "start",
188
+ }
189
+ }
190
+ }}
191
+ />
192
+ ```
193
+
176
194
  #### `rename-responsive-chart-container`
177
195
 
178
196
  Renames `ResponsiveChartContainer` and `ResponsiveChartContainerPro` by `ChartContainer` and `ChartContainerPro` which have the same behavior in v8.
@@ -188,6 +206,15 @@ Renames `ResponsiveChartContainer` and `ResponsiveChartContainerPro` by `ChartCo
188
206
  +</ChartContainer>
189
207
  ```
190
208
 
209
+ #### `rename-legend-position-type`
210
+
211
+ Renames `LegendPosition` to `Position`.
212
+
213
+ ```diff
214
+ -import { LegendPosition } from '@mui/x-charts/ChartsLegend';
215
+ +import { Position } from '@mui/x-charts/models';
216
+ ```
217
+
191
218
  > [!WARNING]
192
219
  > If you imported both `ResponsiveChartContainer` and `ChartContainer` in the same file, you might end up with duplicated import.
193
220
  > Verify the git diff to remove the duplicate.
@@ -215,6 +242,73 @@ Renames `labelFontSize` and `tickFontSize` props to the corresponding `xxxStyle`
215
242
  />
216
243
  ```
217
244
 
245
+ #### `remove-on-axis-click-handler`
246
+
247
+ Remove the `<ChartsOnAxisClickHandler />` and move the associated `onAxisClick` prop to its parent.
248
+
249
+ > [!WARNING]
250
+ > This codemode does not work if component got renamed or if the handler is not a direct child of the container.
251
+
252
+ ```diff
253
+ + <ChartContainer onAxisClick={() => {}}>
254
+ - <ChartContainer>
255
+ - <ChartsOnAxisClickHandler onAxisClick={() => {}} />
256
+ </ChartContainer>
257
+ ```
258
+
259
+ #### `rename-unstable-use-series`
260
+
261
+ Remove `unstable_` prefix from `useSeries` and `use*Series` hooks, as they have now become stable.
262
+
263
+ ```diff
264
+ import {
265
+ - unstable_useSeries,
266
+ + useSeries,
267
+ - unstable_usePieSeries,
268
+ + usePieSeries,
269
+ - unstable_useLineSeries,
270
+ + useLineSeries,
271
+ - unstable_useBarSeries,
272
+ + useBarSeries,
273
+ - unstable_useScatterSeries,
274
+ + useScatterSeries,
275
+ } from '@mui/x-charts/hooks';
276
+ import {
277
+ - unstable_useHeatmapSeries,
278
+ + useHeatmapSeries,
279
+ } from '@mui/x-charts-pro/hooks';
280
+ ```
281
+
282
+ #### `rename-sparkline-colors-to-color`
283
+
284
+ Renames the `colors` prop of a `SparkLineChart` to `color` and accesses its first element.
285
+
286
+ ```diff
287
+ <SparkLineChart
288
+ - colors={['red']}
289
+ + color={'red'}
290
+ />
291
+ ```
292
+
293
+ If `colors` is a function, it will be wrapped in another function that returns its first element.
294
+
295
+ ```diff
296
+ <SparkLineChart
297
+ - colors={fn}
298
+ + color={typeof fn === 'function' ? mode => fn(mode)[0] : fn[0]}
299
+ />
300
+ ```
301
+
302
+ If there are cases that the codemod cannot handle, you should see a comment with a `mui-x-codemod` prefix in the code.
303
+
304
+ ```diff
305
+ <SparkLineChart
306
+ - colors={(mode) => (mode === 'light' ? ['black'] : ['white'])}
307
+ + /* mui-x-codemod: We renamed the `colors` prop to `color`, but didn't change the value. Please ensure sure this prop receives a string or a function that returns a string. */
308
+ + color={(mode) => (mode === 'light' ? ['black'] : ['white'])}
309
+ />
310
+ ```
311
+
218
312
  ### Data Grid codemods
219
313
 
220
314
  #### `preset-safe` for Data Grid v8.0.0
@@ -230,6 +324,8 @@ npx @mui/x-codemod@next v8.0.0/data-grid/preset-safe <path|folder>
230
324
  The list includes these transformers
231
325
 
232
326
  - [`remove-stabilized-v8-experimentalFeatures`](#remove-stabilized-v8-experimentalFeatures)
327
+ - [`remove-props`](#remove-props)
328
+ - [`rename-props`](#rename-props)
233
329
 
234
330
  #### `remove-stabilized-v8-experimentalFeatures`
235
331
 
@@ -249,6 +345,49 @@ Remove feature flags for stabilized `experimentalFeatures`.
249
345
  npx @mui/x-codemod@next v8.0.0/data-grid/remove-stabilized-experimentalFeatures <path>
250
346
  ```
251
347
 
348
+ #### `remove-props`
349
+
350
+ Remove props that are no longer supported.
351
+
352
+ The list includes these props:
353
+
354
+ - `indeterminateCheckboxAction`
355
+ - `rowPositionsDebounceMs`
356
+
357
+ ```diff
358
+ <DataGrid
359
+ - indeterminateCheckboxAction="deselect"
360
+ - rowPositionsDebounceMs={100}
361
+ />
362
+ ```
363
+
364
+ <!-- #default-branch-switch -->
365
+
366
+ ```bash
367
+ npx @mui/x-codemod@next v8.0.0/data-grid/remove-props <path>
368
+ ```
369
+
370
+ #### `rename-props`
371
+
372
+ Rename props to the new ones.
373
+
374
+ The list includes these props:
375
+
376
+ - `unstable_rowSpanning` to `rowSpanning`
377
+
378
+ ```diff
379
+ <DataGrid
380
+ - unstable_rowSpanning
381
+ + rowSpanning
382
+ />
383
+ ```
384
+
385
+ <!-- #default-branch-switch -->
386
+
387
+ ```bash
388
+ npx @mui/x-codemod@next v8.0.0/data-grid/rename-props <path>
389
+ ```
390
+
252
391
  ### Pickers codemods
253
392
 
254
393
  #### `preset-safe` for Pickers v8.0.0
@@ -264,7 +403,7 @@ npx @mui/x-codemod@next v8.0.0/pickers/preset-safe <path|folder>
264
403
  The list includes these transformers
265
404
 
266
405
  - [`rename-adapter-date-fns-imports`](#rename-adapter-date-fns-imports)
267
- - [`rename-and-move-field-value-type`](#rename-and-move-field-value-type)
406
+ - [`rename-type-imports`](#rename-type-imports)
268
407
 
269
408
  #### `rename-adapter-date-fns-imports`
270
409
 
@@ -296,13 +435,25 @@ The list includes these transformers
296
435
  npx @mui/x-codemod@next v8.0.0/pickers/rename-adapter-date-fns-imports <path>
297
436
  ```
298
437
 
299
- #### `rename-and-move-field-value-type`
438
+ #### `rename-type-imports`
439
+
440
+ Renames:
300
441
 
301
- Renames `FieldValueType` to `PickerValueType`.
442
+ - `usePickersTranslations` to `usePickerTranslations`
443
+ - `usePickersContext` to `usePickerContext`
444
+ - `FieldValueType` to `PickerValueType`
445
+ - `RangeFieldSection` to `FieldRangeSection`
446
+ - `PickerShortcutChangeImportance` to `PickerChangeImportance`
302
447
 
303
448
  ```diff
449
+ -import { usePickersTranslations, usePickersContext } from '@mui/x-date-pickers/hooks';
450
+ +import { usePickerTranslations, usePickerContext } from '@mui/x-date-pickers/hooks';
304
451
  -import { FieldValueType } from '@mui/x-date-pickers';
305
452
  +import { PickerValueType } from '@mui/x-date-pickers';
453
+ -import { RangeFieldSection } from '@mui/x-date-pickers-pro/models';
454
+ +import { FieldRangeSection } from '@mui/x-date-pickers-pro/models';
455
+ -import { PickerShortcutChangeImportance } from '@mui/x-date-pickers/PickersShortcuts';
456
+ +import { PickerChangeImportance } from '@mui/x-date-pickers/models';
306
457
 
307
458
  interface MyComponentProps {
308
459
  - valueType: FieldValueType;
@@ -315,7 +466,7 @@ Renames `FieldValueType` to `PickerValueType`.
315
466
  <!-- #default-branch-switch -->
316
467
 
317
468
  ```bash
318
- npx @mui/x-codemod@next v8.0.0/pickers/rename-and-move-field-value-type <path>
469
+ npx @mui/x-codemod@next v8.0.0/pickers/rename-type-imports <path>
319
470
  ```
320
471
 
321
472
  ## v7.0.0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-codemod",
3
- "version": "8.0.0-alpha.9",
3
+ "version": "8.0.0-beta.0",
4
4
  "bin": "./codemod.js",
5
5
  "private": false,
6
6
  "author": "MUI Team",
@@ -25,17 +25,17 @@
25
25
  "url": "https://opencollective.com/mui-org"
26
26
  },
27
27
  "dependencies": {
28
- "@babel/core": "^7.26.0",
29
- "@babel/runtime": "^7.26.0",
30
- "@babel/traverse": "^7.26.5",
28
+ "@babel/core": "^7.26.10",
29
+ "@babel/runtime": "^7.26.10",
30
+ "@babel/traverse": "^7.26.10",
31
31
  "jscodeshift": "17.1.2",
32
32
  "yargs": "^17.7.2",
33
- "@mui/x-internals": "8.0.0-alpha.9"
33
+ "@mui/x-internals": "8.0.0-beta.0"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/jscodeshift": "^0.12.0",
37
37
  "dayjs": "^1.11.13",
38
- "moment-timezone": "^0.5.46",
38
+ "moment-timezone": "^0.5.47",
39
39
  "rimraf": "^6.0.1"
40
40
  },
41
41
  "sideEffects": false,
@@ -9,11 +9,20 @@ var _renameLegendToSlotsLegend = _interopRequireDefault(require("../rename-legen
9
9
  var _renameResponsiveChartContainer = _interopRequireDefault(require("../rename-responsive-chart-container"));
10
10
  var _renameLabelAndTickFontSize = _interopRequireDefault(require("../rename-label-and-tick-font-size"));
11
11
  var _replaceLegendDirectionValues = _interopRequireDefault(require("../replace-legend-direction-values"));
12
+ var _replaceLegendPositionValues = _interopRequireDefault(require("../replace-legend-position-values"));
13
+ var _removeExperimentalMarkRendering = _interopRequireDefault(require("../remove-experimental-mark-rendering"));
14
+ var _renameLegendPositionType = _interopRequireDefault(require("../rename-legend-position-type"));
15
+ var _removeOnAxisClickHandler = _interopRequireDefault(require("../remove-on-axis-click-handler"));
16
+ var _renameUnstableUseSeries = _interopRequireDefault(require("../rename-unstable-use-series"));
12
17
  function transformer(file, api, options) {
13
18
  file.source = (0, _renameLegendToSlotsLegend.default)(file, api, options);
14
19
  file.source = (0, _renameResponsiveChartContainer.default)(file, api, options);
15
20
  file.source = (0, _renameLabelAndTickFontSize.default)(file, api, options);
16
- file.source = (0, _renameLabelAndTickFontSize.default)(file, api, options);
17
21
  file.source = (0, _replaceLegendDirectionValues.default)(file, api, options);
22
+ file.source = (0, _replaceLegendPositionValues.default)(file, api, options);
23
+ file.source = (0, _removeExperimentalMarkRendering.default)(file, api, options);
24
+ file.source = (0, _renameLegendPositionType.default)(file, api, options);
25
+ file.source = (0, _removeOnAxisClickHandler.default)(file, api, options);
26
+ file.source = (0, _renameUnstableUseSeries.default)(file, api, options);
18
27
  return file.source;
19
28
  }
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = transformer;
7
+ /**
8
+ * @param {import('jscodeshift').FileInfo} file
9
+ * @param {import('jscodeshift').API} api
10
+ */
11
+ function transformer(file, api, options) {
12
+ const j = api.jscodeshift;
13
+ const printOptions = options.printOptions;
14
+ const root = j(file.source);
15
+
16
+ // Move the handler to the container
17
+ root.findJSXElements().filter(path => Boolean(path.node.openingElement) && path.node.openingElement.name.type === 'JSXIdentifier' && path.node.openingElement.name.name.includes('ChartContainer')).forEach(path => {
18
+ // We find the <ChartsOnAxisClickHandler /> node
19
+ const clickHandler = path.node.children?.find(child => {
20
+ if (child.type !== 'JSXElement') {
21
+ return false;
22
+ }
23
+ if (child.openingElement.name.type !== 'JSXIdentifier') {
24
+ return false;
25
+ }
26
+ return child.openingElement.name.name === 'ChartsOnAxisClickHandler';
27
+ });
28
+ if (!clickHandler) {
29
+ return;
30
+ }
31
+ const clickCallback = clickHandler.openingElement.attributes?.find(attr => attr.type === 'JSXAttribute' && attr.name.name === 'onAxisClick');
32
+ if (!clickCallback) {
33
+ return;
34
+ }
35
+
36
+ // Move the callback to the container
37
+ path.node.openingElement.attributes?.push(clickCallback);
38
+
39
+ // Remove the children
40
+ path.node.children = path.node.children?.filter(child => {
41
+ if (child.type !== 'JSXElement') {
42
+ return true;
43
+ }
44
+ if (child.openingElement.name.type !== 'JSXIdentifier') {
45
+ return true;
46
+ }
47
+ return child.openingElement.name.name !== 'ChartsOnAxisClickHandler';
48
+ });
49
+ });
50
+
51
+ // Remove nested import
52
+ root.find(j.ImportDeclaration, {
53
+ source: {
54
+ value: '@mui/x-charts/ChartsOnAxisClickHandler'
55
+ }
56
+ }).remove();
57
+
58
+ // Remove global import
59
+ root.find(j.ImportDeclaration).forEach(path => {
60
+ if (typeof path.node.source.value !== 'string') {
61
+ return;
62
+ }
63
+ if (!path.node.source.value.includes('@mui/x-charts')) {
64
+ return;
65
+ }
66
+ path.node.specifiers = path.node.specifiers?.filter(specifier => {
67
+ if (specifier.type !== 'ImportSpecifier') {
68
+ return true;
69
+ }
70
+ return specifier.imported.name !== 'ChartsOnAxisClickHandler';
71
+ });
72
+ });
73
+ return root.toSource(printOptions);
74
+ }
@@ -10,16 +10,18 @@ function transformer(file, api, options) {
10
10
  const root = j(file.source);
11
11
  const printOptions = options.printOptions || {
12
12
  quote: 'single',
13
- trailingComma: true
13
+ trailingComma: true,
14
+ wrapColumn: 40
14
15
  };
15
16
  (0, _renameImports.renameImports)({
16
17
  j,
17
18
  root,
18
- packageNames: ['@mui/x-date-pickers', '@mui/x-date-pickers-pro'],
19
+ packageNames: ['@mui/x-charts', '@mui/x-charts-pro'],
19
20
  imports: [{
20
- oldEndpoint: 'models',
21
+ oldEndpoint: 'ChartsLegend',
22
+ newEndpoint: 'models',
21
23
  importsMapping: {
22
- FieldValueType: 'PickerValueType'
24
+ LegendPosition: 'Position'
23
25
  }
24
26
  }]
25
27
  });
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = transformer;
7
+ /**
8
+ * @param {import('jscodeshift').FileInfo} file
9
+ * @param {import('jscodeshift').API} api
10
+ */
11
+ function transformer(file, api, options) {
12
+ const j = api.jscodeshift;
13
+ const printOptions = options.printOptions;
14
+ const root = j(file.source);
15
+ const componentNames = ['SparkLineChart'];
16
+ const props = {
17
+ colors: 'color'
18
+ };
19
+ const colorAttributes = root.find(j.JSXElement).filter(path => {
20
+ return componentNames.includes(path.value.openingElement.name.name);
21
+ }).find(j.JSXAttribute).filter(attribute => Object.keys(props).includes(attribute.node.name.name));
22
+ return colorAttributes.forEach(attribute => {
23
+ const colorsAttributeExpression = attribute.node.value?.type === 'JSXExpressionContainer' ? attribute.node.value.expression : null;
24
+ let colorAttributeExpression;
25
+ if (colorsAttributeExpression?.type === 'ArrayExpression') {
26
+ colorAttributeExpression = colorsAttributeExpression.elements[0];
27
+ } else if (colorsAttributeExpression?.type === 'Identifier') {
28
+ colorAttributeExpression = j.conditionalExpression(j.binaryExpression('===', j.unaryExpression('typeof', colorsAttributeExpression), j.literal('function')), j.arrowFunctionExpression([j.identifier('mode')], j.chainExpression(j.optionalMemberExpression(j.callExpression(colorsAttributeExpression, [j.identifier('mode')]), j.literal(0)))), colorsAttributeExpression);
29
+ } else {
30
+ // Don't know how to handle this case
31
+ }
32
+
33
+ // Only transform the value if we know how to handle it, otherwise rename the prop and add a comment
34
+ if (colorAttributeExpression) {
35
+ j(attribute).replaceWith(j.jsxAttribute(j.jsxIdentifier(props[attribute.node.name.name]), j.jsxExpressionContainer(colorAttributeExpression)));
36
+ } else {
37
+ j(attribute).replaceWith(j.jsxAttribute(j.jsxIdentifier(props[attribute.node.name.name]), attribute.node.value)).insertBefore(j.commentBlock(" mui-x-codemod: We renamed the `colors` prop to `color`, but didn't change the value. Please ensure sure this prop receives a string or a function that returns a string. "));
38
+ }
39
+ }).toSource(printOptions);
40
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = transformer;
7
+ var _renameImports = require("../../../util/renameImports");
8
+ function transformer(file, api, options) {
9
+ const j = api.jscodeshift;
10
+ const root = j(file.source);
11
+ const printOptions = options.printOptions || {
12
+ quote: 'single',
13
+ trailingComma: true,
14
+ wrapColumn: 40
15
+ };
16
+ (0, _renameImports.renameImports)({
17
+ j,
18
+ root,
19
+ packageNames: ['@mui/x-charts', '@mui/x-charts-pro'],
20
+ imports: [{
21
+ oldEndpoint: 'hooks',
22
+ importsMapping: {
23
+ unstable_useSeries: 'useSeries',
24
+ unstable_usePieSeries: 'usePieSeries',
25
+ unstable_useLineSeries: 'useLineSeries',
26
+ unstable_useBarSeries: 'useBarSeries',
27
+ unstable_useScatterSeries: 'useScatterSeries',
28
+ unstable_useHeatmapSeries: 'useHeatmapSeries'
29
+ }
30
+ }]
31
+ });
32
+ return root.toSource(printOptions);
33
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = transformer;
7
+ var _addComponentsSlots = require("../../../util/addComponentsSlots");
8
+ /**
9
+ * @param {import('jscodeshift').FileInfo} file
10
+ * @param {import('jscodeshift').API} api
11
+ */
12
+ function transformer(file, api, options) {
13
+ const j = api.jscodeshift;
14
+ const printOptions = options.printOptions;
15
+ const root = j(file.source);
16
+ root.find(j.ImportDeclaration).filter(({
17
+ node
18
+ }) => {
19
+ return typeof node.source.value === 'string' && node.source.value.startsWith('@mui/x-charts');
20
+ }).forEach(path => {
21
+ path.node.specifiers?.forEach(node => {
22
+ root.findJSXElements(node.local?.name).forEach(elementPath => {
23
+ if (elementPath.node.type !== 'JSXElement') {
24
+ return;
25
+ }
26
+ const slotProps = elementPath.node.openingElement.attributes?.find(elementNode => elementNode.type === 'JSXAttribute' && elementNode.name.name === 'slotProps');
27
+ if (slotProps === null) {
28
+ // No slotProps to manage
29
+ return;
30
+ }
31
+ const position = slotProps?.value?.expression?.properties
32
+ // @ts-expect-error
33
+ ?.find(v => v?.key?.name === 'legend')
34
+ // @ts-expect-error
35
+ ?.value?.properties?.find(v => v?.key?.name === 'position');
36
+ const horizontal = position?.value?.properties?.find(v => v?.key?.name === 'horizontal');
37
+ if (horizontal === undefined || horizontal?.value === undefined || horizontal?.value?.value === undefined) {
38
+ return;
39
+ }
40
+ const horizontalValue = horizontal.value;
41
+ horizontalValue.value = mapFix(horizontalValue.value);
42
+ (0, _addComponentsSlots.transformNestedProp)(elementPath, 'slotProps', 'legend.position.horizontal', horizontalValue, j);
43
+ });
44
+ });
45
+ });
46
+ const transformed = root.findJSXElements();
47
+ return transformed.toSource(printOptions);
48
+ }
49
+ function mapFix(v) {
50
+ switch (v) {
51
+ case 'left':
52
+ return 'start';
53
+ case 'right':
54
+ return 'end';
55
+ case 'middle':
56
+ return 'center';
57
+ default:
58
+ return v;
59
+ }
60
+ }
@@ -6,7 +6,11 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = transformer;
8
8
  var _removeStabilizedExperimentalFeatures = _interopRequireDefault(require("../remove-stabilized-experimentalFeatures"));
9
+ var _removeProps = _interopRequireDefault(require("../remove-props"));
10
+ var _renameProps = _interopRequireDefault(require("../rename-props"));
9
11
  function transformer(file, api, options) {
10
12
  file.source = (0, _removeStabilizedExperimentalFeatures.default)(file, api, options);
13
+ file.source = (0, _renameProps.default)(file, api, options);
14
+ file.source = (0, _removeProps.default)(file, api, options);
11
15
  return file.source;
12
16
  }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = transformer;
8
+ var _removeProps = _interopRequireDefault(require("../../../util/removeProps"));
9
+ const componentNames = ['DataGrid', 'DataGridPro', 'DataGridPremium'];
10
+ const props = ['indeterminateCheckboxAction', 'rowPositionsDebounceMs'];
11
+ function transformer(file, api, options) {
12
+ const j = api.jscodeshift;
13
+ const root = j(file.source);
14
+ const printOptions = options.printOptions || {
15
+ quote: 'single',
16
+ trailingComma: true
17
+ };
18
+ return (0, _removeProps.default)({
19
+ root,
20
+ j,
21
+ props,
22
+ componentNames
23
+ }).toSource(printOptions);
24
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = transformer;
8
+ var _renameProps = _interopRequireDefault(require("../../../util/renameProps"));
9
+ const componentNames = ['DataGrid', 'DataGridPro', 'DataGridPremium'];
10
+ const props = {
11
+ unstable_rowSpanning: 'rowSpanning'
12
+ };
13
+ function transformer(file, api, options) {
14
+ const j = api.jscodeshift;
15
+ const root = j(file.source);
16
+ const printOptions = options.printOptions || {
17
+ quote: 'single',
18
+ trailingComma: true
19
+ };
20
+ return (0, _renameProps.default)({
21
+ root,
22
+ j,
23
+ props,
24
+ componentNames
25
+ }).toSource(printOptions);
26
+ }
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = transformer;
8
8
  var _renameAdapterDateFnsImports = _interopRequireDefault(require("../rename-adapter-date-fns-imports"));
9
- var _renameAndMoveFieldValueType = _interopRequireDefault(require("../rename-and-move-field-value-type"));
9
+ var _renameTypeImports = _interopRequireDefault(require("../rename-type-imports"));
10
10
  function transformer(file, api, options) {
11
11
  file.source = (0, _renameAdapterDateFnsImports.default)(file, api, options);
12
- file.source = (0, _renameAndMoveFieldValueType.default)(file, api, options);
12
+ file.source = (0, _renameTypeImports.default)(file, api, options);
13
13
  return file.source;
14
14
  }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = transformer;
7
+ var _renameImports = require("../../../util/renameImports");
8
+ function transformer(file, api, options) {
9
+ const j = api.jscodeshift;
10
+ let root = j(file.source);
11
+ const printOptions = options.printOptions || {
12
+ quote: 'single',
13
+ trailingComma: true
14
+ };
15
+ root = (0, _renameImports.renameImports)({
16
+ j,
17
+ root,
18
+ packageNames: ['@mui/x-date-pickers', '@mui/x-date-pickers-pro'],
19
+ imports: [{
20
+ oldEndpoint: 'hooks',
21
+ importsMapping: {
22
+ usePickersTranslations: 'usePickerTranslations',
23
+ usePickersContext: 'usePickerContext'
24
+ }
25
+ }, {
26
+ oldEndpoint: 'models',
27
+ importsMapping: {
28
+ FieldValueType: 'PickerValueType'
29
+ }
30
+ }, {
31
+ oldEndpoint: 'PickersShortcuts',
32
+ newEndpoint: 'models',
33
+ importsMapping: {
34
+ PickerShortcutChangeImportance: 'PickerChangeImportance'
35
+ }
36
+ }]
37
+ });
38
+ root = (0, _renameImports.renameImports)({
39
+ j,
40
+ root,
41
+ packageNames: ['@mui/x-date-pickers-pro'],
42
+ imports: [{
43
+ oldEndpoint: 'models',
44
+ importsMapping: {
45
+ RangeFieldSection: 'FieldRangeSection'
46
+ }
47
+ }]
48
+ });
49
+ return root.toSource(printOptions);
50
+ }