Change: alias stack for each level type, leads to consistent 'modifier last' rule
This commit is contained in:
parent
933dbbe2eb
commit
baf47d315e
@ -1,6 +1,7 @@
|
|||||||
_bem_context = {
|
_bem_context = {
|
||||||
_alias_map: {}
|
_alias_map: {}
|
||||||
_alias_stack: () ()
|
_alias_stacks: {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
work_stack(stack, callback)
|
work_stack(stack, callback)
|
||||||
@ -12,24 +13,37 @@ work_stack(stack, callback)
|
|||||||
set_alias(alias, name)
|
set_alias(alias, name)
|
||||||
if name != null && alias != null
|
if name != null && alias != null
|
||||||
_bem_context._alias_map[alias] = name
|
_bem_context._alias_map[alias] = name
|
||||||
|
|
||||||
lookup_alias(name)
|
lookup_alias(name)
|
||||||
if name in _bem_context._alias_map
|
if name in _bem_context._alias_map
|
||||||
return _bem_context._alias_map[name]
|
return _bem_context._alias_map[name]
|
||||||
else
|
else
|
||||||
return name
|
return name
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
store_alias(alias)
|
store_alias(alias)
|
||||||
|
level_name = called-from[1]
|
||||||
|
if not level_name in _bem_context._alias_stacks
|
||||||
|
_bem_context._alias_stacks[level_name] = () ()
|
||||||
|
|
||||||
if alias != null
|
if alias != null
|
||||||
push(_bem_context._alias_stack, alias)
|
push(_bem_context._alias_stacks[level_name], alias)
|
||||||
|
|
||||||
pop_last_alias()
|
pop_last_alias()
|
||||||
return pop(_bem_context._alias_stack)
|
level_name = called-from[1]
|
||||||
|
if not level_name in _bem_context._alias_stacks
|
||||||
|
return null
|
||||||
|
return pop(_bem_context._alias_stacks[level_name])
|
||||||
|
|
||||||
apply_alias_stack(name)
|
apply_alias_stack(name)
|
||||||
work_stack(_bem_context._alias_stack, @(element){
|
level_name = called-from[1]
|
||||||
set_alias(element, name)
|
if level_name in _bem_context._alias_stacks
|
||||||
})
|
work_stack(_bem_context._alias_stacks[level_name], @(element){
|
||||||
|
set_alias(element, name)
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
auto_name(delimiter)
|
auto_name(delimiter)
|
||||||
if length(called-from) < 3
|
if length(called-from) < 3
|
||||||
@ -87,7 +101,7 @@ RV-Block(name)
|
|||||||
{block}
|
{block}
|
||||||
|
|
||||||
_bem_context._alias_map = {}
|
_bem_context._alias_map = {}
|
||||||
_bem_context._alias_stack = () ()
|
_bem_context._alias_stacks = {}
|
||||||
|
|
||||||
RV-Element(name=null)
|
RV-Element(name=null)
|
||||||
+RV-Level(name, '__', ('RV-Block' 'RV-Block--modifier'), @(name){
|
+RV-Level(name, '__', ('RV-Block' 'RV-Block--modifier'), @(name){
|
||||||
|
Loading…
Reference in New Issue
Block a user