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.

pseudoCheck.js 899B

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