bug4.js 859 B

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