Mayor upgrade: modifers are squashed when any parent is nested
This commit is contained in:
		@@ -73,14 +73,22 @@ is_nested_in(parent_name)
 | 
			
		||||
	
 | 
			
		||||
not_nested_in(parent_name)
 | 
			
		||||
	return !(parent_name in called-from)
 | 
			
		||||
	
 | 
			
		||||
is_any_parent_nested()
 | 
			
		||||
	//RV-Level RV-Element--modifier RV-Element RV-Block--modifier RV-BreakPoint--horizontal RV-Block--modifier 	RV-Fan--horizontal RV-Block
 | 
			
		||||
	for i in (length(called-from)...0)
 | 
			
		||||
		i = i - 1
 | 
			
		||||
		if i != index(called-from, called-from[i])
 | 
			
		||||
			return true
 | 
			
		||||
	return false
 | 
			
		||||
 | 
			
		||||
RV-Level(name, name_delimiter, allowed_parent_levels, selector_callback)
 | 
			
		||||
RV-Level(name, name_delimiter, allowed_parent_levels, selector_callback, squash_if_parent_nested=false)
 | 
			
		||||
	if name == null
 | 
			
		||||
		name = auto_name(name_delimiter)
 | 
			
		||||
	not_in_parent = true
 | 
			
		||||
	for parent_level in allowed_parent_levels
 | 
			
		||||
		not_in_parent = not_in_parent && not_nested_in(parent_level)
 | 
			
		||||
	if is_nested_in('RV-Squash') || not_in_parent
 | 
			
		||||
	if not_in_parent || is_nested_in('RV-Squash')
 | 
			
		||||
		{block}
 | 
			
		||||
	else if is_nested()
 | 
			
		||||
		store_alias(name)
 | 
			
		||||
@@ -91,8 +99,11 @@ RV-Level(name, name_delimiter, allowed_parent_levels, selector_callback)
 | 
			
		||||
		name = lookup_alias(name)
 | 
			
		||||
		apply_alias_stack(name)
 | 
			
		||||
		
 | 
			
		||||
		{selector_callback(name)}
 | 
			
		||||
		if squash_if_parent_nested && is_any_parent_nested()
 | 
			
		||||
			{block}
 | 
			
		||||
		else
 | 
			
		||||
			{selector_callback(name)}
 | 
			
		||||
				{block}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -116,11 +127,11 @@ RV-Element(name=null)
 | 
			
		||||
		
 | 
			
		||||
		
 | 
			
		||||
RV-Element--modifier(name=null)
 | 
			
		||||
	+RV-Level(name, '--', ('RV-Element'), @(name){return '&--' + name})
 | 
			
		||||
	+RV-Level(name, '--', ('RV-Element'), @(name){return '&--' + name}, true)
 | 
			
		||||
		{block}
 | 
			
		||||
		
 | 
			
		||||
RV-Block--modifier(name=null)
 | 
			
		||||
	+RV-Level(name, '--', ('RV-Block'), @(name){return '&--' + name})
 | 
			
		||||
	+RV-Level(name, '--', ('RV-Block'), @(name){return '&--' + name}, true)
 | 
			
		||||
		{block}
 | 
			
		||||
		
 | 
			
		||||
RV-Squash()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user