UNPKG

899 BJavaScriptView Raw
1const parser = require('slick').parse;
2
3/**
4* Parses a selector and returns the tokens.
5*
6* @param {String} selector
7* @api private.
8*/
9
10function parse(text) {
11 try {
12 return parser(text)[0];
13 } catch (e) {
14 return [];
15 }
16}
17
18module.exports = rule => {
19 let i;
20 let j;
21 let subSelPseudos;
22 const ignoredPseudos = [ 'hover', 'active', 'focus', 'visited', 'link' ];
23
24 // skip rule if the selector has any pseudos which are ignored
25 const parsedSelector = parse(rule[0]);
26
27 for (i = 0; i < parsedSelector.length; ++i) {
28 subSelPseudos = parsedSelector[i].pseudos;
29
30 if (subSelPseudos) {
31 for (j = 0; j < subSelPseudos.length; ++j) {
32 if (ignoredPseudos.indexOf(subSelPseudos[j].name) >= 0) {
33 return true;
34 }
35 }
36 } else {
37 return false;
38 }
39 }
40};