@zohodesk/react-cli 1.0.3-exp.4 → 1.0.3-exp.5
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.
|
@@ -25,7 +25,38 @@ const {
|
|
|
25
25
|
errHandler
|
|
26
26
|
} = require('../postcss-plugins/variableModificationPlugin/index');
|
|
27
27
|
|
|
28
|
-
const supportedProps = ['font-size', 'margin', 'margin-top', 'margin-bottom', 'margin-left', 'margin-right', 'padding', 'padding-top', 'padding-bottom', 'padding-left', 'padding-right', '^top', '^right', '^bottom', '^left', '^width', 'min-width', 'max-width', '^height', 'min-height', 'max-height', 'text-indent', 'clip', 'flex-basis', 'row-gap', 'gap', 'column-gap', 'flex'];
|
|
28
|
+
const supportedProps = ['font-size', 'margin', 'margin-top', 'margin-bottom', 'margin-left', 'margin-right', 'padding', 'padding-top', 'padding-bottom', 'padding-left', 'padding-right', '^top', '^right', '^bottom', '^left', '^width', 'min-width', 'max-width', '^height', 'min-height', 'max-height', 'text-indent', 'clip', 'flex-basis', 'row-gap', 'gap', 'column-gap', 'flex'];
|
|
29
|
+
|
|
30
|
+
function convertCalcValue(pxReplacement, parsedValue) {
|
|
31
|
+
Object.keys(parsedValue).forEach(key => {
|
|
32
|
+
if (parsedValue[key].includes('px')) {
|
|
33
|
+
parsedValue[key] = pxReplacement.replace('$$', parsedValue[key].replace('px', ''));
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
return parsedValue;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function parseCalcValue(calcValue) {
|
|
40
|
+
// Remove "calc(" and ")" from the string
|
|
41
|
+
const value = calcValue.replace(/calc\(/gi, '').replace(/\)/gi, '').trim(); // Split the string by "*" or "/"
|
|
42
|
+
|
|
43
|
+
const parts = value.split(/[\\/*]/); // Parse the first part as a number
|
|
44
|
+
|
|
45
|
+
const num1 = parts[0].trim(); // Parse the second part as a number
|
|
46
|
+
|
|
47
|
+
const num2 = parts[1].trim();
|
|
48
|
+
return {
|
|
49
|
+
valOne: num1,
|
|
50
|
+
valTwo: num2
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function convertToCalc(pxReplacement, value) {
|
|
55
|
+
const parsedValue = parseFloat(value, 10);
|
|
56
|
+
const sign = parsedValue < 0 ? '-' : '';
|
|
57
|
+
const varName = `${parsedValue < 0 ? parsedValue * -1 : parsedValue}`;
|
|
58
|
+
return `calc( ${pxReplacement.replace('$$', varName)} * ${sign}1 )`;
|
|
59
|
+
} // const avoidProps = [];
|
|
29
60
|
// -- is issue IO --
|
|
30
61
|
|
|
31
62
|
/*
|
|
@@ -39,6 +70,7 @@ comment :
|
|
|
39
70
|
do not execute when --zd_size comes as prop
|
|
40
71
|
*/
|
|
41
72
|
|
|
73
|
+
|
|
42
74
|
function isIgnoreValuePresent(ignoreVals, prop) {
|
|
43
75
|
let present = false;
|
|
44
76
|
ignoreVals.forEach(issue => {
|
|
@@ -89,6 +121,25 @@ function variableConvertor(rootOriginal, variables, settingsObject) {
|
|
|
89
121
|
const valArr = decl.value.split(' '); // single values are considered in the above array and converted below
|
|
90
122
|
|
|
91
123
|
valArr.forEach((value, index) => {
|
|
124
|
+
if (value.includes('px')) {
|
|
125
|
+
if (value.includes('calc')) {
|
|
126
|
+
const res = convertCalcValue(pxReplacement, parseCalcValue(value));
|
|
127
|
+
valArr[index] = `calc( ${res.valOne.trim()} * ${res.valTwo.trim()} )`;
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
if (/-(\d+)/gi.test(value)) {
|
|
132
|
+
valArr[index] = convertToCalc(pxReplacement, value);
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
const num = value.replace('px', '');
|
|
137
|
+
|
|
138
|
+
if (value) {
|
|
139
|
+
valArr[index] = pxReplacement.replace('$$', num);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
92
143
|
if (value.includes('px')) {
|
|
93
144
|
const num = value.replace('px', '');
|
|
94
145
|
valArr[index] = pxReplacement.replace('$$', num);
|
|
@@ -38,6 +38,37 @@ function isIgnoreValuePresent(ignoreVals, prop) {
|
|
|
38
38
|
return present;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
+
function convertCalcValue(pxReplacement, parsedValue) {
|
|
42
|
+
Object.keys(parsedValue).forEach(key => {
|
|
43
|
+
if (parsedValue[key].includes('px')) {
|
|
44
|
+
parsedValue[key] = pxReplacement.replace('$$', parsedValue[key].replace('px', ''));
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
return parsedValue;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function parseCalcValue(calcValue) {
|
|
51
|
+
// Remove "calc(" and ")" from the string
|
|
52
|
+
const value = calcValue.replace(/calc\(/gi, '').replace(/\)/gi, '').trim(); // Split the string by "*" or "/"
|
|
53
|
+
|
|
54
|
+
const parts = value.split(/[\\/*]/); // Parse the first part as a number
|
|
55
|
+
|
|
56
|
+
const num1 = parts[0].trim(); // Parse the second part as a number
|
|
57
|
+
|
|
58
|
+
const num2 = parts[1].trim();
|
|
59
|
+
return {
|
|
60
|
+
valOne: num1,
|
|
61
|
+
valTwo: num2
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function convertToCalc(pxReplacement, value) {
|
|
66
|
+
const parsedValue = parseFloat(value, 10);
|
|
67
|
+
const sign = parsedValue < 0 ? '-' : '';
|
|
68
|
+
const varName = `${parsedValue < 0 ? parsedValue * -1 : parsedValue}`;
|
|
69
|
+
return `calc( ${pxReplacement.replace('$$', varName)} * ${sign}1 )`;
|
|
70
|
+
}
|
|
71
|
+
|
|
41
72
|
function variableConverter(rootOriginal, variables, settingsObject) {
|
|
42
73
|
rootOriginal.walkRules(rule => {
|
|
43
74
|
rule.nodes.forEach((decl, index) => {
|
|
@@ -63,6 +94,25 @@ function variableConverter(rootOriginal, variables, settingsObject) {
|
|
|
63
94
|
const valArr = decl.value.split(' '); // single values are considered in the above array and converted below
|
|
64
95
|
|
|
65
96
|
valArr.forEach((value, index) => {
|
|
97
|
+
if (value.includes('px')) {
|
|
98
|
+
if (value.includes('calc')) {
|
|
99
|
+
const res = convertCalcValue(pxReplacement, parseCalcValue(value));
|
|
100
|
+
valArr[index] = `calc( ${res.valOne.trim()} * ${res.valTwo.trim()} )`;
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
if (/-(\d+)/gi.test(value)) {
|
|
105
|
+
valArr[index] = convertToCalc(pxReplacement, value);
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
const num = value.replace('px', '');
|
|
110
|
+
|
|
111
|
+
if (value) {
|
|
112
|
+
valArr[index] = pxReplacement.replace('$$', num);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
66
116
|
if (value.includes('px')) {
|
|
67
117
|
const num = value.replace('px', '');
|
|
68
118
|
valArr[index] = pxReplacement.replace('$$', num);
|