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;
 |