Sha256: 9652bc22d3ab0574c8eb107001fc4344989d3017681d1223a54806c1a2020fb1

Contents?: true

Size: 1.1 KB

Versions: 28

Compression:

Stored size: 1.1 KB

Contents

var List = require('css-tree').List;
var walk = require('css-tree').walk;

function processRule(node, item, list) {
    var selectors = node.prelude.children;

    // generate new rule sets:
    // .a, .b { color: red; }
    // ->
    // .a { color: red; }
    // .b { color: red; }

    // while there are more than 1 simple selector split for rulesets
    while (selectors.head !== selectors.tail) {
        var newSelectors = new List();
        newSelectors.insert(selectors.remove(selectors.head));

        list.insert(list.createItem({
            type: 'Rule',
            loc: node.loc,
            prelude: {
                type: 'SelectorList',
                loc: node.prelude.loc,
                children: newSelectors
            },
            block: {
                type: 'Block',
                loc: node.block.loc,
                children: node.block.children.copy()
            },
            pseudoSignature: node.pseudoSignature
        }), item);
    }
}

module.exports = function disjoinRule(ast) {
    walk(ast, {
        visit: 'Rule',
        reverse: true,
        enter: processRule
    });
};

Version data entries

28 entries across 27 versions & 9 rubygems

Version Path
optimacms-0.1.61 spec/dummy/node_modules/csso/lib/restructure/3-disjoinRuleset.js
disco_app-0.18.0 test/dummy/node_modules/csso/lib/restructure/3-disjoinRuleset.js
disco_app-0.18.2 test/dummy/node_modules/csso/lib/restructure/3-disjoinRuleset.js
disco_app-0.16.1 test/dummy/node_modules/csso/lib/restructure/3-disjoinRuleset.js
disco_app-0.15.2 test/dummy/node_modules/csso/lib/restructure/3-disjoinRuleset.js
disco_app-0.18.4 test/dummy/node_modules/csso/lib/restructure/3-disjoinRuleset.js
disco_app-0.18.1 test/dummy/node_modules/csso/lib/restructure/3-disjoinRuleset.js
disco_app-0.12.7.pre.puma.pre.3 test/dummy/node_modules/csso/lib/restructure/3-disjoinRuleset.js
disco_app-0.14.0 test/dummy/node_modules/csso/lib/restructure/3-disjoinRuleset.js
disco_app-0.13.6.pre.puma.pre.3 test/dummy/node_modules/csso/lib/restructure/3-disjoinRuleset.js
tang-0.2.1 spec/tang_app/node_modules/csso/lib/restructure/3-disjoinRuleset.js
groonga-client-model-6.0.0 test/apps/rails6.1.3/node_modules/csso/lib/restructure/3-disjoinRuleset.js
groonga-client-model-6.0.0 test/apps/rails6.0.3.5/node_modules/csso/lib/restructure/3-disjoinRuleset.js
ruby2js-4.0.4 lib/tasks/testrails/node_modules/csso/lib/restructure/3-disjoinRuleset.js
ruby2js-4.0.3 lib/tasks/testrails/node_modules/csso/lib/restructure/3-disjoinRuleset.js
tang-0.2.0 spec/tang_app/node_modules/csso/lib/restructure/3-disjoinRuleset.js
tang-0.1.0 spec/tang_app/node_modules/csso/lib/restructure/3-disjoinRuleset.js
tang-0.0.9 spec/tang_app/node_modules/csso/lib/restructure/3-disjoinRuleset.js
enju_library-0.3.8 spec/dummy/node_modules/csso/lib/restructure/3-disjoinRuleset.js
jester-data-8.0.0 node_modules/csso/lib/restructure/3-disjoinRuleset.js