UNPKG

1.02 kBJavaScriptView Raw
1var postcss = require('postcss');
2
3function shouldSetZeroBasis(basisValue) {
4 if (!basisValue) {
5 return false;
6 }
7 return basisValue === '0' || basisValue.replace(/\s/g, '') === '0px';
8}
9
10function properBasis(basis) {
11 if (shouldSetZeroBasis(basis)) {
12 return '0%';
13 }
14 return basis;
15}
16
17module.exports = function(decl) {
18 if (decl.prop === 'flex') {
19 var values = postcss.list.space(decl.value);
20
21 // set default values
22 var flexGrow = '0';
23 var flexShrink = '1';
24 var flexBasis = '0%';
25
26 if (values[0]) {
27 flexGrow = values[0];
28 }
29
30 if (values[1]) {
31 if (!isNaN(values[1])) {
32 flexShrink = values[1];
33 } else {
34 flexBasis = values[1];
35 }
36 }
37
38 if (values[2]) {
39 flexBasis = values[2];
40 }
41
42 decl.value = flexGrow + ' ' + flexShrink + ' ' + properBasis(flexBasis);
43 }
44};