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