You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
var resolveKeyword = require('css-tree').keyword; var walk = require('css-tree').walk; var generate = require('css-tree').generate; var createDeclarationIndexer = require('./createDeclarationIndexer'); var processSelector = require('./processSelector');
module.exports = function prepare(ast, options) { var markDeclaration = createDeclarationIndexer();
walk(ast, { visit: 'Rule', enter: function processRule(node) { node.block.children.each(markDeclaration); processSelector(node, options.usage); } });
walk(ast, { visit: 'Atrule', enter: function(node) { if (node.prelude) { node.prelude.id = null; // pre-init property to avoid multiple hidden class for generate
node.prelude.id = generate(node.prelude); }
// compare keyframe selectors by its values
// NOTE: still no clarification about problems with keyframes selector grouping (issue #197)
if (resolveKeyword(node.name).basename === 'keyframes') { node.block.avoidRulesMerge = true; /* probably we don't need to prevent those merges for @keyframes TODO: need to be checked */ node.block.children.each(function(rule) { rule.prelude.children.each(function(simpleselector) { simpleselector.compareMarker = simpleselector.id; }); }); } } });
return { declaration: markDeclaration }; };
|