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.
34 lines
806 B
34 lines
806 B
var specificity = require('./specificity'); |
|
|
|
function specificitiesOverlap(selector1, selector2, cache) { |
|
var specificity1; |
|
var specificity2; |
|
var i, l; |
|
var j, m; |
|
|
|
for (i = 0, l = selector1.length; i < l; i++) { |
|
specificity1 = findSpecificity(selector1[i][1], cache); |
|
|
|
for (j = 0, m = selector2.length; j < m; j++) { |
|
specificity2 = findSpecificity(selector2[j][1], cache); |
|
|
|
if (specificity1[0] === specificity2[0] && specificity1[1] === specificity2[1] && specificity1[2] === specificity2[2]) { |
|
return true; |
|
} |
|
} |
|
} |
|
|
|
return false; |
|
} |
|
|
|
function findSpecificity(selector, cache) { |
|
var value; |
|
|
|
if (!(selector in cache)) { |
|
cache[selector] = value = specificity(selector); |
|
} |
|
|
|
return value || cache[selector]; |
|
} |
|
|
|
module.exports = specificitiesOverlap;
|
|
|