33 lines
594 B
JavaScript
33 lines
594 B
JavaScript
var MODIFIER_PATTERN = /--.+$/;
|
|
|
|
function rulesOverlap(rule1, rule2, bemMode) {
|
|
var scope1;
|
|
var scope2;
|
|
var i, l;
|
|
var j, m;
|
|
|
|
for (i = 0, l = rule1.length; i < l; i++) {
|
|
scope1 = rule1[i][1];
|
|
|
|
for (j = 0, m = rule2.length; j < m; j++) {
|
|
scope2 = rule2[j][1];
|
|
|
|
if (scope1 == scope2) {
|
|
return true;
|
|
}
|
|
|
|
if (bemMode && withoutModifiers(scope1) == withoutModifiers(scope2)) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
function withoutModifiers(scope) {
|
|
return scope.replace(MODIFIER_PATTERN, '');
|
|
}
|
|
|
|
module.exports = rulesOverlap;
|