@vkontakte/vkui-codemods 0.0.7 → 1.0.0-beta.1

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.
Files changed (100) hide show
  1. package/README.md +69 -21
  2. package/dist/autoDetectVKUIVersion.js +77 -0
  3. package/dist/cli.js +86 -30
  4. package/dist/codemod-helpers.js +76 -4
  5. package/dist/getAvailableCodemods.js +31 -4
  6. package/dist/index.js +57 -64
  7. package/dist/report.js +1 -2
  8. package/dist/testHelpers/testHelper.js +3 -3
  9. package/dist/transforms/{accordion.js → v6/accordion.js} +3 -3
  10. package/dist/transforms/{action-sheet-item.js → v6/action-sheet-item.js} +2 -2
  11. package/dist/transforms/{action-sheet.js → v6/action-sheet.js} +3 -3
  12. package/dist/transforms/{alert.js → v6/alert.js} +2 -2
  13. package/dist/transforms/{appearance-provider.js → v6/appearance-provider.js} +2 -2
  14. package/dist/transforms/{banner.js → v6/banner.js} +3 -3
  15. package/dist/transforms/{calendar-range.js → v6/calendar-range.js} +2 -2
  16. package/dist/transforms/{calendar.js → v6/calendar.js} +2 -2
  17. package/dist/transforms/{card-scroll.js → v6/card-scroll.js} +2 -2
  18. package/dist/transforms/{chip.js → v6/chip.js} +2 -2
  19. package/dist/transforms/{chips-input.js → v6/chips-input.js} +2 -2
  20. package/dist/transforms/{config-provider.js → v6/config-provider.js} +2 -2
  21. package/dist/transforms/{content-card.js → v6/content-card.js} +2 -2
  22. package/dist/transforms/{custom-scroll-view.js → v6/custom-scroll-view.js} +3 -3
  23. package/dist/transforms/{date-input.js → v6/date-input.js} +2 -2
  24. package/dist/transforms/{date-range-input.js → v6/date-range-input.js} +2 -2
  25. package/dist/transforms/{fixed-layout.js → v6/fixed-layout.js} +2 -2
  26. package/dist/transforms/{forbid-imports.js → v6/forbid-imports.js} +2 -2
  27. package/dist/transforms/{form-item.js → v6/form-item.js} +2 -2
  28. package/dist/transforms/{form-layout.js → v6/form-layout.js} +3 -3
  29. package/dist/transforms/{gallery.js → v6/gallery.js} +2 -2
  30. package/dist/transforms/{gradient-prop-change.js → v6/gradient-prop-change.js} +3 -3
  31. package/dist/transforms/{image-base.js → v6/image-base.js} +2 -2
  32. package/dist/transforms/{modal-card.js → v6/modal-card.js} +3 -3
  33. package/dist/transforms/{modal-page-header.js → v6/modal-page-header.js} +2 -2
  34. package/dist/transforms/{pagination.js → v6/pagination.js} +3 -3
  35. package/dist/transforms/{panel-header-content.js → v6/panel-header-content.js} +3 -3
  36. package/dist/transforms/{panel-header.js → v6/panel-header.js} +3 -3
  37. package/dist/transforms/{placeholder.js → v6/placeholder.js} +2 -2
  38. package/dist/transforms/{popout-wrapper.js → v6/popout-wrapper.js} +3 -3
  39. package/dist/transforms/{popover.js → v6/popover.js} +2 -2
  40. package/dist/transforms/{popper.js → v6/popper.js} +2 -2
  41. package/dist/transforms/{rich-tooltip.js → v6/rich-tooltip.js} +3 -3
  42. package/dist/transforms/{search.js → v6/search.js} +2 -2
  43. package/dist/transforms/{select.js → v6/select.js} +2 -2
  44. package/dist/transforms/{simple-cell.js → v6/simple-cell.js} +3 -3
  45. package/dist/transforms/{split-col.js → v6/split-col.js} +2 -2
  46. package/dist/transforms/{tabbar.js → v6/tabbar.js} +2 -2
  47. package/dist/transforms/{tappable.js → v6/tappable.js} +3 -3
  48. package/dist/transforms/{text-tooltip.js → v6/text-tooltip.js} +2 -2
  49. package/dist/transforms/{tooltip-container.js → v6/tooltip-container.js} +2 -2
  50. package/dist/transforms/{tooltip.js → v6/tooltip.js} +2 -2
  51. package/dist/transforms/{typography.js → v6/typography.js} +3 -3
  52. package/dist/transforms/{users-stack.js → v6/users-stack.js} +3 -3
  53. package/dist/transforms/v7/action-sheet.js +16 -0
  54. package/dist/transforms/v7/alert.js +16 -0
  55. package/dist/transforms/v7/appearance-provider.js +35 -0
  56. package/dist/transforms/v7/appearance.js +45 -0
  57. package/dist/transforms/v7/banner.js +47 -0
  58. package/dist/transforms/v7/card-grid.js +16 -0
  59. package/dist/transforms/v7/card-scroll.js +59 -0
  60. package/dist/transforms/v7/cell-button.js +49 -0
  61. package/dist/transforms/v7/cell.js +18 -0
  62. package/dist/transforms/v7/chips-select.js +20 -0
  63. package/dist/transforms/v7/common/remapSizePropValue.js +43 -0
  64. package/dist/transforms/v7/common/swapGapPropElements.js +25 -0
  65. package/dist/transforms/v7/config-provider.js +136 -0
  66. package/dist/transforms/v7/content-card.js +21 -0
  67. package/dist/transforms/v7/custom-scroll-view.js +21 -0
  68. package/dist/transforms/v7/custom-select.js +20 -0
  69. package/dist/transforms/v7/flex.js +18 -0
  70. package/dist/transforms/v7/form-item.js +128 -0
  71. package/dist/transforms/v7/form-status.js +18 -0
  72. package/dist/transforms/v7/header.js +28 -0
  73. package/dist/transforms/v7/horizontal-cell-show-more.js +58 -0
  74. package/dist/transforms/v7/horizontal-cell.js +16 -0
  75. package/dist/transforms/v7/horizontal-scroll.js +38 -0
  76. package/dist/transforms/v7/image-overlay.js +125 -0
  77. package/dist/transforms/v7/mini-info-cell.js +18 -0
  78. package/dist/transforms/v7/modal-card.js +29 -0
  79. package/dist/transforms/v7/onboarding-tooltip.js +16 -0
  80. package/dist/transforms/v7/panel-header-content.js +16 -0
  81. package/dist/transforms/v7/placeholder.js +19 -0
  82. package/dist/transforms/v7/rich-cell.js +20 -0
  83. package/dist/transforms/v7/screen-spinner.js +61 -0
  84. package/dist/transforms/v7/scroll-arrow.js +52 -0
  85. package/dist/transforms/v7/select.js +20 -0
  86. package/dist/transforms/v7/separator.js +18 -0
  87. package/dist/transforms/v7/simple-cell.js +18 -0
  88. package/dist/transforms/v7/simple-grid.js +18 -0
  89. package/dist/transforms/v7/spacing.js +26 -0
  90. package/dist/transforms/v7/spinner.js +29 -0
  91. package/dist/transforms/v7/subnavigation-bar.js +60 -0
  92. package/dist/transforms/v7/subnavigation-button.js +18 -0
  93. package/dist/transforms/v7/tabbar-item.js +16 -0
  94. package/dist/transforms/v7/tooltip.js +16 -0
  95. package/dist/transforms/v7/typography.js +79 -0
  96. package/dist/transforms/v7/users-stack.js +50 -0
  97. package/package.json +7 -7
  98. package/dist/transforms/{horizontal-cell-show-more.js → v6/horizontal-cell-show-more.js} +1 -1
  99. package/dist/transforms/{range-slider.js → v6/range-slider.js} +1 -1
  100. package/dist/transforms/{visually-hidden-input.js → v6/visually-hidden-input.js} +1 -1
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.parser = void 0;
7
+ exports.default = transformer;
8
+ var chalk_1 = __importDefault(require("chalk"));
9
+ var codemod_helpers_1 = require("../../codemod-helpers");
10
+ var report_1 = require("../../report");
11
+ exports.parser = 'tsx';
12
+ function transformer(file, api, options) {
13
+ var alias = options.alias;
14
+ var j = api.jscodeshift;
15
+ var source = j(file.source);
16
+ var ImageLocalName = (0, codemod_helpers_1.getImportInfo)(j, file, 'Image', alias).localName;
17
+ var ImageBaseLocalName = (0, codemod_helpers_1.getImportInfo)(j, file, 'ImageBase', alias).localName;
18
+ if (!ImageLocalName && !ImageBaseLocalName) {
19
+ return source.toSource();
20
+ }
21
+ var findAttribute = function (attributes, attributeName) {
22
+ return ((attributes === null || attributes === void 0 ? void 0 : attributes.find(function (attr) {
23
+ return attr.type === 'JSXAttribute' && attr.name.name === attributeName;
24
+ })) || null);
25
+ };
26
+ var showReport = function (localName, additionalMessage) {
27
+ (0, report_1.report)(api, ": ".concat(chalk_1.default.white.bgBlue("".concat(localName, ".Overlay")), " has been changed. Manual changes required: ").concat(additionalMessage));
28
+ };
29
+ var showDisableInteractivePropReport = function (localName) {
30
+ showReport(localName, "\"disableInteractive\" has been removed, please use \"onClick\" if you want to make ".concat(localName, ".Overlay interactive."));
31
+ };
32
+ var calcDisableInteractiveValue = function (disableInteractiveAttribute) {
33
+ var _a, _b;
34
+ if (((_a = disableInteractiveAttribute.value) === null || _a === void 0 ? void 0 : _a.type) === 'BooleanLiteral') {
35
+ return disableInteractiveAttribute.value.value;
36
+ }
37
+ else if (disableInteractiveAttribute.value === null) {
38
+ return true;
39
+ }
40
+ else if (((_b = disableInteractiveAttribute.value) === null || _b === void 0 ? void 0 : _b.type) === 'JSXExpressionContainer') {
41
+ var expression = disableInteractiveAttribute.value.expression;
42
+ if (expression.type === 'BooleanLiteral') {
43
+ return expression.value;
44
+ }
45
+ if (expression.type === 'Identifier' && expression.name === 'undefined') {
46
+ return false;
47
+ }
48
+ }
49
+ return null;
50
+ };
51
+ var handleImageComponent = function (localName) {
52
+ source
53
+ .find(j.JSXElement, {
54
+ openingElement: {
55
+ name: {
56
+ type: 'JSXMemberExpression',
57
+ object: { name: localName },
58
+ property: { name: 'Overlay' },
59
+ },
60
+ },
61
+ })
62
+ .forEach(function (path) {
63
+ var _a;
64
+ var overlay = path.node;
65
+ var overlayItemAttributes = overlay.openingElement.attributes;
66
+ var onClickAttribute = findAttribute(overlayItemAttributes, 'onClick');
67
+ var disableInteractiveAttribute = findAttribute(overlayItemAttributes, 'disableInteractive');
68
+ // Кейс, когда disableInteractive не был задан, значит overlay interactive.
69
+ // Сейчас у него обязательно должен быть onClick, чтобы не лоймать обратную совместимость
70
+ if (!disableInteractiveAttribute) {
71
+ // Проверяем наличие onClick, и если его нет, то пользователь должен добавить onClick
72
+ if (!onClickAttribute) {
73
+ showReport(localName, "If you want to make ".concat(localName, ".Overlay interactive, please add \"onClick\" prop."));
74
+ }
75
+ return;
76
+ }
77
+ // Рассчитываем значение disableInteractive в boolean
78
+ var disableInteractiveValue = calcDisableInteractiveValue(disableInteractiveAttribute);
79
+ if (disableInteractiveValue === null) {
80
+ // Если у disableInteractive используется сложное выражение,
81
+ // то пользователь сам должен удалить этот проп, как ему нужно
82
+ showDisableInteractivePropReport(localName);
83
+ }
84
+ // Удаляем аттрибут disableInteractive
85
+ (0, codemod_helpers_1.removeAttribute)(overlayItemAttributes, disableInteractiveAttribute);
86
+ if (disableInteractiveValue) {
87
+ // Если disableInteractive = true, то все, что нам нужно, это удалить атрибут onClick
88
+ // Важно: мы можем его спокойно удалить, так как в этом кейсе он может быть только undefined
89
+ if (onClickAttribute) {
90
+ (0, codemod_helpers_1.removeAttribute)(overlayItemAttributes, onClickAttribute);
91
+ }
92
+ return;
93
+ }
94
+ if (!onClickAttribute) {
95
+ // Если disableInteractive = false и onClick пропа нет, то пользователь должен его добавить
96
+ showDisableInteractivePropReport(localName);
97
+ return;
98
+ }
99
+ // Если disableInteractive = false и onClick не пустой, надо обработать следующие кейсы:
100
+ // onClick=undefined: надо добавить колбэк
101
+ // onClick=identifier: все хорошо, оставляем как есть
102
+ // В остальных случаях надо, чтобы пользователь убедился, что onClick устанавливается корректно
103
+ if (((_a = onClickAttribute.value) === null || _a === void 0 ? void 0 : _a.type) === 'JSXExpressionContainer') {
104
+ var expression = onClickAttribute.value.expression;
105
+ if (expression.type === 'Identifier') {
106
+ if (expression.name === 'undefined') {
107
+ showDisableInteractivePropReport(localName);
108
+ }
109
+ return;
110
+ }
111
+ if (expression.type === 'ArrowFunctionExpression') {
112
+ return;
113
+ }
114
+ }
115
+ showReport(localName, "\"disableInteractive\" has been removed, please validate that \"onClick\" prop value not falsy.");
116
+ });
117
+ };
118
+ if (ImageLocalName) {
119
+ handleImageComponent(ImageLocalName);
120
+ }
121
+ if (ImageBaseLocalName) {
122
+ handleImageComponent(ImageBaseLocalName);
123
+ }
124
+ return source.toSource();
125
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parser = void 0;
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
6
+ exports.parser = 'tsx';
7
+ function transformer(file, api, options) {
8
+ var alias = options.alias;
9
+ var j = api.jscodeshift;
10
+ var source = j(file.source);
11
+ var localName = (0, codemod_helpers_1.getImportInfo)(j, file, 'MiniInfoCell', alias).localName;
12
+ if (localName) {
13
+ (0, codemod_helpers_1.renameProp)(j, source, localName, {
14
+ expandable: 'chevron',
15
+ });
16
+ }
17
+ return source.toSource();
18
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parser = void 0;
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
6
+ exports.parser = 'tsx';
7
+ var RENAME_MAP = {
8
+ header: 'title',
9
+ subheader: 'description',
10
+ headerComponent: 'titleComponent',
11
+ subheaderComponent: 'descriptionComponent',
12
+ };
13
+ function transformer(file, api, options) {
14
+ var alias = options.alias;
15
+ var j = api.jscodeshift;
16
+ var source = j(file.source);
17
+ var modalCardName = (0, codemod_helpers_1.getImportInfo)(j, file, 'ModalCard', alias).localName;
18
+ var modalCardBaseName = (0, codemod_helpers_1.getImportInfo)(j, file, 'ModalCardBase', alias).localName;
19
+ if (!modalCardName && !modalCardBaseName) {
20
+ return source.toSource();
21
+ }
22
+ if (modalCardName) {
23
+ (0, codemod_helpers_1.renameProp)(j, source, modalCardName, RENAME_MAP);
24
+ }
25
+ if (modalCardBaseName) {
26
+ (0, codemod_helpers_1.renameProp)(j, source, modalCardBaseName, RENAME_MAP);
27
+ }
28
+ return source.toSource();
29
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parser = void 0;
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
6
+ exports.parser = 'tsx';
7
+ function transformer(file, api, options) {
8
+ var alias = options.alias;
9
+ var j = api.jscodeshift;
10
+ var source = j(file.source);
11
+ var localName = (0, codemod_helpers_1.getImportInfo)(j, file, 'OnboardingTooltip', alias).localName;
12
+ if (localName) {
13
+ (0, codemod_helpers_1.renameProp)(j, source, localName, { text: 'description', header: 'title' });
14
+ }
15
+ return source.toSource();
16
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parser = void 0;
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
6
+ exports.parser = 'tsx';
7
+ function transformer(file, api, options) {
8
+ var alias = options.alias;
9
+ var j = api.jscodeshift;
10
+ var source = j(file.source);
11
+ var localName = (0, codemod_helpers_1.getImportInfo)(j, file, 'PanelHeaderContent', alias).localName;
12
+ if (localName) {
13
+ (0, codemod_helpers_1.renameProp)(j, source, localName, { status: 'subtitle' });
14
+ }
15
+ return source.toSource();
16
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parser = void 0;
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
6
+ exports.parser = 'tsx';
7
+ function transformer(file, api, options) {
8
+ var alias = options.alias;
9
+ var j = api.jscodeshift;
10
+ var source = j(file.source);
11
+ var localName = (0, codemod_helpers_1.getImportInfo)(j, file, 'Placeholder', alias).localName;
12
+ if (!localName) {
13
+ return source.toSource();
14
+ }
15
+ (0, codemod_helpers_1.renameProp)(j, source, localName, { header: 'title' });
16
+ (0, codemod_helpers_1.renameSubComponent)(j, source, localName, 'Header', 'Title');
17
+ (0, codemod_helpers_1.renameSubComponent)(j, source, localName, 'Text', 'Description');
18
+ return source.toSource();
19
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parser = void 0;
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
6
+ exports.parser = 'tsx';
7
+ function transformer(file, api, options) {
8
+ var alias = options.alias;
9
+ var j = api.jscodeshift;
10
+ var source = j(file.source);
11
+ var localName = (0, codemod_helpers_1.getImportInfo)(j, file, 'RichCell', alias).localName;
12
+ if (localName) {
13
+ (0, codemod_helpers_1.renameProp)(j, source, localName, {
14
+ subhead: 'overTitle',
15
+ text: 'subtitle',
16
+ caption: 'extraSubtitle',
17
+ });
18
+ }
19
+ return source.toSource();
20
+ }
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parser = void 0;
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
6
+ exports.parser = 'tsx';
7
+ function transformer(file, api, options) {
8
+ var alias = options.alias;
9
+ var j = api.jscodeshift;
10
+ var source = j(file.source);
11
+ var localName = (0, codemod_helpers_1.getImportInfo)(j, file, 'ScreenSpinner', alias).localName;
12
+ if (!localName) {
13
+ return source.toSource();
14
+ }
15
+ function removeSizeProp(attribute) {
16
+ if (attribute.node.name.name === 'size') {
17
+ j(attribute).remove();
18
+ }
19
+ }
20
+ function renameLabelToCaption(attribute) {
21
+ if (attribute.node.name.name === 'caption') {
22
+ j(attribute).replaceWith(j.jsxAttribute(j.jsxIdentifier('label'), attribute.node.value));
23
+ }
24
+ }
25
+ // Обработка ScreenSpinner
26
+ source
27
+ .find(j.JSXOpeningElement)
28
+ .filter(function (path) { return path.value.name.type === 'JSXIdentifier' && path.value.name.name === localName; })
29
+ .find(j.JSXAttribute)
30
+ .forEach(function (attr) {
31
+ removeSizeProp(attr);
32
+ renameLabelToCaption(attr);
33
+ });
34
+ // Обработка ScreenSpinner.Loader
35
+ source
36
+ .find(j.JSXElement, {
37
+ openingElement: {
38
+ name: {
39
+ type: 'JSXMemberExpression',
40
+ object: { name: localName },
41
+ property: { name: 'Loader' },
42
+ },
43
+ },
44
+ })
45
+ .find(j.JSXAttribute)
46
+ .forEach(removeSizeProp);
47
+ // Обработка ScreenSpinner.Container
48
+ source
49
+ .find(j.JSXElement, {
50
+ openingElement: {
51
+ name: {
52
+ type: 'JSXMemberExpression',
53
+ object: { name: localName },
54
+ property: { name: 'Container' },
55
+ },
56
+ },
57
+ })
58
+ .find(j.JSXAttribute)
59
+ .forEach(renameLabelToCaption);
60
+ return source.toSource();
61
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parser = void 0;
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
6
+ var report_1 = require("../../report");
7
+ exports.parser = 'tsx';
8
+ var componentName = 'ScrollArrow';
9
+ var affectedComponents = ['HorizontalScroll', 'Gallery'];
10
+ function arrowSizeManipulator(api, attribute) {
11
+ var _a;
12
+ var node = attribute.node;
13
+ if (((_a = node.value) === null || _a === void 0 ? void 0 : _a.type) === 'StringLiteral') {
14
+ var oldValue = node.value.value;
15
+ var newValue = oldValue === 'm' ? 's' : oldValue === 'l' ? 'm' : undefined;
16
+ if (newValue) {
17
+ node.value = api.jscodeshift.stringLiteral(newValue);
18
+ }
19
+ }
20
+ else {
21
+ (0, report_1.report)(api, "Manual changes required for ".concat(componentName, "'s \"size\" prop. Use \"s\" or \"m\" value only."));
22
+ }
23
+ }
24
+ function transformer(file, api, options) {
25
+ var alias = options.alias;
26
+ var j = api.jscodeshift;
27
+ var source = j(file.source);
28
+ var localName = (0, codemod_helpers_1.getImportInfo)(j, file, componentName, alias).localName;
29
+ var horizontalScrollLocalName = (0, codemod_helpers_1.getImportInfo)(j, file, affectedComponents[0], alias).localName;
30
+ var galleryLocalName = (0, codemod_helpers_1.getImportInfo)(j, file, affectedComponents[1], alias).localName;
31
+ if (!localName) {
32
+ return source.toSource();
33
+ }
34
+ source
35
+ .find(j.JSXOpeningElement)
36
+ .filter(function (path) { return path.value.name.type === 'JSXIdentifier' && path.value.name.name === localName; })
37
+ .find(j.JSXAttribute, { name: { name: 'size' } })
38
+ .forEach(function (attribute) {
39
+ arrowSizeManipulator(api, attribute);
40
+ });
41
+ source
42
+ .find(j.JSXOpeningElement)
43
+ .filter(function (path) {
44
+ return path.value.name.type === 'JSXIdentifier' &&
45
+ [horizontalScrollLocalName, galleryLocalName].includes(path.value.name.name);
46
+ })
47
+ .find(j.JSXAttribute, { name: { name: 'arrowSize' } })
48
+ .forEach(function (attribute) {
49
+ arrowSizeManipulator(api, attribute);
50
+ });
51
+ return source.toSource();
52
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parser = void 0;
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
6
+ exports.parser = 'tsx';
7
+ var PROPS_TO_REMOVE = ['autoHideScrollbar', 'autoHideScrollbarDelay'];
8
+ function transformer(file, api, options) {
9
+ var alias = options.alias;
10
+ var j = api.jscodeshift;
11
+ var source = j(file.source);
12
+ var localName = (0, codemod_helpers_1.getImportInfo)(j, file, 'Select', alias).localName;
13
+ if (!localName) {
14
+ return source.toSource();
15
+ }
16
+ (0, codemod_helpers_1.removeProps)(j, api, source, localName, PROPS_TO_REMOVE, function () {
17
+ return "need to remove props ".concat(PROPS_TO_REMOVE.join(', '));
18
+ });
19
+ return source.toSource();
20
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parser = void 0;
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
6
+ exports.parser = 'tsx';
7
+ var componentName = 'Separator';
8
+ function transformer(file, api, options) {
9
+ var alias = options.alias;
10
+ var j = api.jscodeshift;
11
+ var source = j(file.source);
12
+ var localName = (0, codemod_helpers_1.getImportInfo)(j, file, componentName, alias).localName;
13
+ if (localName) {
14
+ (0, codemod_helpers_1.renameProp)(j, source, localName, { mode: 'appearance' });
15
+ (0, codemod_helpers_1.swapBooleanValue)(api, source, localName, 'wide', 'padding');
16
+ }
17
+ return source.toSource();
18
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parser = void 0;
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
6
+ exports.parser = 'tsx';
7
+ function transformer(file, api, options) {
8
+ var alias = options.alias;
9
+ var j = api.jscodeshift;
10
+ var source = j(file.source);
11
+ var localName = (0, codemod_helpers_1.getImportInfo)(j, file, 'SimpleCell', alias).localName;
12
+ if (localName) {
13
+ (0, codemod_helpers_1.renameProp)(j, source, localName, {
14
+ expandable: 'chevron',
15
+ });
16
+ }
17
+ return source.toSource();
18
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parser = void 0;
4
+ exports.default = transformer;
5
+ var swapGapPropElements_1 = require("./common/swapGapPropElements");
6
+ var codemod_helpers_1 = require("../../codemod-helpers");
7
+ exports.parser = 'tsx';
8
+ function transformer(file, api, options) {
9
+ var alias = options.alias;
10
+ var j = api.jscodeshift;
11
+ var source = j(file.source);
12
+ var localName = (0, codemod_helpers_1.getImportInfo)(j, file, 'SimpleGrid', alias).localName;
13
+ if (!localName) {
14
+ return source.toSource();
15
+ }
16
+ (0, swapGapPropElements_1.swapGapPropElements)(j, source, localName);
17
+ return source.toSource();
18
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parser = void 0;
4
+ exports.default = transformer;
5
+ var remapSizePropValue_1 = require("./common/remapSizePropValue");
6
+ var codemod_helpers_1 = require("../../codemod-helpers");
7
+ exports.parser = 'tsx';
8
+ function transformer(file, api, options) {
9
+ var alias = options.alias;
10
+ var j = api.jscodeshift;
11
+ var source = j(file.source);
12
+ var localName = (0, codemod_helpers_1.getImportInfo)(j, file, 'Spacing', alias).localName;
13
+ if (!localName) {
14
+ return source.toSource();
15
+ }
16
+ (0, remapSizePropValue_1.remapSizePropValue)({
17
+ j: j,
18
+ api: api,
19
+ source: source,
20
+ componentName: localName,
21
+ sizesMap: {
22
+ '3xs': '2xs',
23
+ },
24
+ });
25
+ return source.toSource();
26
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parser = void 0;
4
+ exports.default = transformer;
5
+ var remapSizePropValue_1 = require("./common/remapSizePropValue");
6
+ var codemod_helpers_1 = require("../../codemod-helpers");
7
+ exports.parser = 'tsx';
8
+ function transformer(file, api, options) {
9
+ var alias = options.alias;
10
+ var j = api.jscodeshift;
11
+ var source = j(file.source);
12
+ var localName = (0, codemod_helpers_1.getImportInfo)(j, file, 'Spinner', alias).localName;
13
+ if (!localName) {
14
+ return source.toSource();
15
+ }
16
+ (0, remapSizePropValue_1.remapSizePropValue)({
17
+ j: j,
18
+ api: api,
19
+ source: source,
20
+ componentName: localName,
21
+ sizesMap: {
22
+ large: 'xl',
23
+ medium: 'l',
24
+ regular: 'm',
25
+ small: 's',
26
+ },
27
+ });
28
+ return source.toSource();
29
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parser = void 0;
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
6
+ var report_1 = require("../../report");
7
+ exports.parser = 'tsx';
8
+ function replaceModeToFixed(j, source, api, localName) {
9
+ var getValueFromAttribute = function (attribute) {
10
+ var _a, _b;
11
+ if (((_a = attribute.value) === null || _a === void 0 ? void 0 : _a.type) === 'StringLiteral') {
12
+ return attribute.value.value;
13
+ }
14
+ if (((_b = attribute.value) === null || _b === void 0 ? void 0 : _b.type) === 'JSXExpressionContainer') {
15
+ var expression = attribute.value.expression;
16
+ if (expression.type === 'StringLiteral') {
17
+ return expression.value;
18
+ }
19
+ return null;
20
+ }
21
+ return null;
22
+ };
23
+ source
24
+ .find(j.JSXElement, {
25
+ openingElement: {
26
+ name: {
27
+ name: localName,
28
+ },
29
+ },
30
+ })
31
+ .find(j.JSXAttribute)
32
+ .filter(function (attribute) { return attribute.node.name.name === 'mode'; })
33
+ .forEach(function (attr) {
34
+ var value = getValueFromAttribute(attr.node);
35
+ if (value === null) {
36
+ (0, report_1.report)(api, ": ".concat(localName, " has been changed. Manual changes required: change prop mode to flag fixed"));
37
+ return;
38
+ }
39
+ if (value === 'overflow') {
40
+ j(attr).remove();
41
+ }
42
+ else if (value === 'fixed') {
43
+ j(attr).replaceWith(j.jsxAttribute(j.jsxIdentifier('fixed')));
44
+ }
45
+ });
46
+ }
47
+ function transformer(file, api, options) {
48
+ var alias = options.alias;
49
+ var j = api.jscodeshift;
50
+ var source = j(file.source);
51
+ var localName = (0, codemod_helpers_1.getImportInfo)(j, file, 'SubnavigationBar', alias).localName;
52
+ if (!localName) {
53
+ return source.toSource();
54
+ }
55
+ (0, codemod_helpers_1.renameProp)(j, source, localName, {
56
+ subheader: 'subtitle',
57
+ });
58
+ replaceModeToFixed(j, source, api, localName);
59
+ return source.toSource();
60
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parser = void 0;
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
6
+ exports.parser = 'tsx';
7
+ function transformer(file, api, options) {
8
+ var alias = options.alias;
9
+ var j = api.jscodeshift;
10
+ var source = j(file.source);
11
+ var localName = (0, codemod_helpers_1.getImportInfo)(j, file, 'SubnavigationButton', alias).localName;
12
+ if (localName) {
13
+ (0, codemod_helpers_1.renameProp)(j, source, localName, {
14
+ expandable: 'chevron',
15
+ });
16
+ }
17
+ return source.toSource();
18
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parser = void 0;
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
6
+ exports.parser = 'tsx';
7
+ function transformer(file, api, options) {
8
+ var alias = options.alias;
9
+ var j = api.jscodeshift;
10
+ var source = j(file.source);
11
+ var localName = (0, codemod_helpers_1.getImportInfo)(j, file, 'TabbarItem', alias).localName;
12
+ if (localName) {
13
+ (0, codemod_helpers_1.renameProp)(j, source, localName, { text: 'label' });
14
+ }
15
+ return source.toSource();
16
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parser = void 0;
4
+ exports.default = transformer;
5
+ var codemod_helpers_1 = require("../../codemod-helpers");
6
+ exports.parser = 'tsx';
7
+ function transformer(file, api, options) {
8
+ var alias = options.alias;
9
+ var j = api.jscodeshift;
10
+ var source = j(file.source);
11
+ var localName = (0, codemod_helpers_1.getImportInfo)(j, file, 'Tooltip', alias).localName;
12
+ if (localName) {
13
+ (0, codemod_helpers_1.renameProp)(j, source, localName, { text: 'description', header: 'title' });
14
+ }
15
+ return source.toSource();
16
+ }