diff options
Diffstat (limited to 'node_modules/postcss-minify-params/dist/index.js')
| -rw-r--r-- | node_modules/postcss-minify-params/dist/index.js | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/node_modules/postcss-minify-params/dist/index.js b/node_modules/postcss-minify-params/dist/index.js deleted file mode 100644 index ce373e9f..00000000 --- a/node_modules/postcss-minify-params/dist/index.js +++ /dev/null @@ -1,106 +0,0 @@ -var postcss = require('postcss'); -var valueParser = require('postcss-value-parser'); -var stringify = valueParser.stringify; -var sort = require('alphanum-sort'); -var uniqs = require('uniqs'); - -/** - * Return the greatest common divisor - * of two numbers. - */ - -function gcd(a, b) { - return b ? gcd(b, a % b) : a; -} - -function aspectRatio(a, b) { - var divisor = gcd(a, b); - - return [a / divisor, b / divisor]; -} - -function split(nodes, div) { - var result = []; - var i, max, node; - var last = ''; - - for (i = 0, max = nodes.length; i < max; i += 1) { - node = nodes[i]; - if (node.type === 'div' && node.value === div) { - result.push(last); - last = ''; - } else { - last += stringify(node); - } - } - - result.push(last); - - return result; -} - -function removeNode(node) { - node.value = ''; - node.type = 'word'; -} - -module.exports = postcss.plugin('postcss-minify-params', function () { - return function (css) { - css.walkAtRules(function (rule) { - if (!rule.params) { - return; - } - - var params = valueParser(rule.params); - - params.walk(function (node, index) { - if (node.type === 'div' || node.type === 'function') { - node.before = node.after = ''; - if ( - node.type === 'function' && - node.nodes[4] && - node.nodes[0].value.indexOf('-aspect-ratio') === 3 - ) { - var ref = aspectRatio( - node.nodes[2].value, - node.nodes[4].value - ); - var a = ref[0]; - var b = ref[1]; - node.nodes[2].value = a; - node.nodes[4].value = b; - } - } else if (node.type === 'space') { - node.value = ' '; - } else if (node.type === 'word') { - var prevWord = params.nodes[index - 2]; - if ( - node.value === 'all' && - rule.name === 'media' && - !prevWord - ) { - var nextSpace = params.nodes[index + 1]; - var nextWord = params.nodes[index + 2]; - var secondSpace = params.nodes[index + 3]; - if (nextWord && nextWord.value === 'and') { - removeNode(nextWord); - removeNode(nextSpace); - if (secondSpace) { - removeNode(secondSpace); - } - } - removeNode(node); - } - } - }, true); - - rule.params = sort(uniqs(split(params.nodes, ',')), { - insensitive: true - }).join(); - - if (!rule.params.length) { - rule.raws.afterName = ''; - } - }); - }; -}); |
