| var SUPPORTED_COMPACT_BLOCK_MATCHER = /^@media\W/; |
| var SUPPORTED_QUOTE_REMOVAL_MATCHER = /^@(?:keyframes|-moz-keyframes|-o-keyframes|-webkit-keyframes)\W/; |
| |
| function tidyBlock(values, spaceAfterClosingBrace) { |
| var withoutSpaceAfterClosingBrace; |
| var withoutQuotes; |
| var i; |
| |
| for (i = values.length - 1; i >= 0; i--) { |
| withoutSpaceAfterClosingBrace = !spaceAfterClosingBrace && SUPPORTED_COMPACT_BLOCK_MATCHER.test(values[i][1]); |
| withoutQuotes = SUPPORTED_QUOTE_REMOVAL_MATCHER.test(values[i][1]); |
| |
| values[i][1] = values[i][1] |
| .replace(/\n|\r\n/g, ' ') |
| .replace(/\s+/g, ' ') |
| .replace(/(,|:|\() /g, '$1') |
| .replace(/ \)/g, ')'); |
| |
| if (withoutQuotes) { |
| values[i][1] = values[i][1] |
| .replace(/'([a-zA-Z][a-zA-Z\d\-_]+)'/, '$1') |
| .replace(/"([a-zA-Z][a-zA-Z\d\-_]+)"/, '$1'); |
| } |
| |
| if (withoutSpaceAfterClosingBrace) { |
| values[i][1] = values[i][1] |
| .replace(/\) /g, ')'); |
| } |
| } |
| |
| return values; |
| } |
| |
| module.exports = tidyBlock; |