..,-
This commit is contained in:
parent
fdb770fe71
commit
fac6fb4da5
@ -1,186 +1,135 @@
|
||||
_state = {
|
||||
_block = {
|
||||
stack: {}
|
||||
elements: {}
|
||||
block_modifiers: {}
|
||||
|
||||
element_aliases: {}
|
||||
element_modifier_aliases: {}
|
||||
block_modifier_aliases: {}
|
||||
|
||||
element_alias_stack: () ()
|
||||
element_modifier_alias_stack: () ()
|
||||
block_modifier_alias_stack: () ()
|
||||
element_stack: () ()
|
||||
element_modifier_stack: () ()
|
||||
block_modifier_stack: () ()
|
||||
|
||||
current_elements: () ()
|
||||
current_element_modifiers: () ()
|
||||
current_block_modifiers: () ()
|
||||
}
|
||||
|
||||
reset_state()
|
||||
_state.stack = {}
|
||||
reset_block()
|
||||
_block.stack = {}
|
||||
_block.elements = {}
|
||||
_block.block_modifiers = {}
|
||||
|
||||
_state.element_aliases = {}
|
||||
_state.element_modifier_aliases = {}
|
||||
_state.block_modifier_aliases ={}
|
||||
|
||||
_state.element_alias_stack = () ()
|
||||
_state.element_modifier_alias_stack = () ()
|
||||
_state.block_modifier_alias_stack = () ()
|
||||
_block.element_stack = {}
|
||||
_block.element_modifier_stack = {}
|
||||
_block.block_modifier_stack = {}
|
||||
|
||||
push_level(level)
|
||||
push(_state.stack, level)
|
||||
|
||||
set_element_alias(name, alias)
|
||||
_state.element_aliases[name] = alias
|
||||
|
||||
get_element_alias(name)
|
||||
if name in _state.element_aliases
|
||||
return _state.element_aliases[name]
|
||||
else
|
||||
return name
|
||||
_block.current_elements = () ()
|
||||
_block.current_element_modifiers = () ()
|
||||
_block.current_block_modifiers = () ()
|
||||
|
||||
|
||||
set_element_modifier_alias(name, alias)
|
||||
_state.element_modifier_aliases[name] = alias
|
||||
|
||||
get_element_modifier_alias(name)
|
||||
if name in _state.element_modifier_aliases
|
||||
return _state.element_modifier_aliases[name]
|
||||
else
|
||||
return name
|
||||
_include = {
|
||||
elements: {}
|
||||
element_modifires: {}
|
||||
block_modifiers: {}
|
||||
|
||||
element_stack: {}
|
||||
element_modifier_stack: {}
|
||||
block_modifier_stack: {}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
reset_include()
|
||||
_aliases.element_aliases = {}
|
||||
_aliases.element_modifires_aliases = {}
|
||||
_aliases.block_modifiers_aliases = {}
|
||||
|
||||
_aliases.element_alias_stack = {}
|
||||
_aliases.element_modifires_alias_stack = {}
|
||||
_aliases.block_modifiers_alias_stack = {}
|
||||
|
||||
set_block_modifier_alias(name, alias)
|
||||
_state.block_modifier_aliases[name] = alias
|
||||
|
||||
get_block_modifier_alias(name)
|
||||
if name in _state.block_modifier_aliases
|
||||
return _state.block_modifier_aliases[name]
|
||||
else
|
||||
return name
|
||||
_block_map = {}
|
||||
|
||||
RV-Include(block_name, alias = null)
|
||||
|
||||
|
||||
RV-Squash()
|
||||
{block}
|
||||
|
||||
RV-Block(block_name)
|
||||
|
||||
push(_block_name_stack, block_name)
|
||||
|
||||
last_element_selector = null
|
||||
last_element_name = null
|
||||
last_bock_modifier_selector = null
|
||||
last_bock_modifier_name = null
|
||||
|
||||
selector_list = () ()
|
||||
|
||||
.{block_name}
|
||||
|
||||
{block}
|
||||
{block}
|
||||
|
||||
for level in _state.stack
|
||||
push(_block.elements, _block.current_elements)
|
||||
push(_block.block_modifiers, _block.current_block_modifiers)
|
||||
|
||||
if level.type == 'RV-Block__Modifier'
|
||||
last_bock_modifier_name = block_name + '--' + level.name
|
||||
last_bock_modifier_selector = '.' + block_name + '.' + last_bock_modifier_name
|
||||
|
||||
push(selector_list, {
|
||||
selector: last_bock_modifier_selector
|
||||
block_list: level.block_list
|
||||
})
|
||||
|
||||
else
|
||||
if level.type == 'RV-Element'
|
||||
name = get_element_alias(level.name)
|
||||
last_element_name = block_name + '__' + name
|
||||
element_selector = '.' + last_element_name
|
||||
|
||||
if last_bock_modifier_selector != null
|
||||
element_selector = last_bock_modifier_selector + ' ' + element_selector
|
||||
|
||||
last_element_selector = element_selector
|
||||
push(selector_list, {
|
||||
selector: last_element_selector
|
||||
block_list: level.block_list
|
||||
})
|
||||
|
||||
else
|
||||
if level.type == 'RV-Element__Modifier'
|
||||
if last_element_selector != null && last_element_name != null
|
||||
modifier_selector = '.' + last_element_name + '--' + level.name
|
||||
|
||||
push(selector_list, {
|
||||
selector: last_element_selector + modifier_selector
|
||||
block_list: level.block_list
|
||||
})
|
||||
|
||||
reset_state()
|
||||
|
||||
.{block_name}
|
||||
for item in selector_list
|
||||
if item != ()
|
||||
& {item.selector}
|
||||
for block in item.block_list
|
||||
{block}
|
||||
_block_map[block_name] = _block
|
||||
|
||||
reset_block()
|
||||
|
||||
|
||||
RV-Element(element_name)
|
||||
if 'RV-Include' in called-from
|
||||
if 'RV-Element' in called-from
|
||||
push(_include.element_stack, element_name)
|
||||
else
|
||||
for alias in _include.element_stack
|
||||
_include.elements[alias] = element_name
|
||||
_include.elements[element_name] = element_name
|
||||
|
||||
if 'RV-Element' in called-from
|
||||
if lookup('block') != null
|
||||
push(_state.element_alias_stack, {
|
||||
name: element_name,
|
||||
block: block
|
||||
})
|
||||
else
|
||||
push(_state.element_stack, block)
|
||||
else
|
||||
element = {
|
||||
type: 'RV-Element'
|
||||
name: element_name
|
||||
blocks: (block)
|
||||
modifiers: _block.current_element_modifiers
|
||||
}
|
||||
_block.current_element_modifiers = () ()
|
||||
|
||||
for child in _block.element_stack
|
||||
if child != ()
|
||||
push(element.blocks, child)
|
||||
_block.element_stack = () ()
|
||||
|
||||
for alias in _state.element_alias_stack
|
||||
set_element_alias(alias.name, element_name)
|
||||
push(element.block_list, alias.block)
|
||||
_state.element_alias_stack = () ()
|
||||
|
||||
push_level(element)
|
||||
if 'RV-Block__Modifier' in called-from
|
||||
push(_block.current_elements, element)
|
||||
else
|
||||
_block.elements[elemante_name] = element
|
||||
|
||||
|
||||
RV-Element__Modifier(modifier_name)
|
||||
if 'RV-Element__Modifier' in called-from
|
||||
if lookup('block') != null
|
||||
push(_state.element_modifier_alias_stack, {
|
||||
name: modifier_name,
|
||||
block: block
|
||||
})
|
||||
push(_state.element_modifier_stack, block)
|
||||
else
|
||||
modifier = {
|
||||
type: 'RV-Element__Modifier'
|
||||
name: modifier_name
|
||||
block_list: ()
|
||||
blocks: (block)
|
||||
}
|
||||
|
||||
if lookup('block') != null
|
||||
push(modifier.block_list, block)
|
||||
|
||||
for alias in _state.element_modifier_alias_stack
|
||||
if alias != ()
|
||||
set_element_modifier_alias(alias.name, modifier_name)
|
||||
push(modifier.block_list, alias.block)
|
||||
_state.element_modifier_alias_stack = () ()
|
||||
for child in _block.element_modifier_stack
|
||||
if child != ()
|
||||
push(modifier.blocks, child)
|
||||
_block.element_modifier_stack = () ()
|
||||
|
||||
push_level(modifier)
|
||||
push(_block.current_element_modifiers, modifier)
|
||||
|
||||
RV-Block__Modifier(modifier_name)
|
||||
if 'RV-Block__Modifier' in called-from
|
||||
if lookup('block') != null
|
||||
push(_state.block_modifier_alias_stack, {
|
||||
name: modifier_name,
|
||||
block: block
|
||||
})
|
||||
push(_block.block_modifier_stack, block)
|
||||
else
|
||||
modifier = {
|
||||
type: 'RV-Block__Modifier'
|
||||
name: modifier_name
|
||||
block_list: ()
|
||||
blocks: (block)
|
||||
elements: _block.current_elements
|
||||
}
|
||||
_block.current_elements = () ()
|
||||
|
||||
if lookup('block') != null
|
||||
push(modifier.block_list, block)
|
||||
|
||||
for alias in _state.block_modifier_alias_stack
|
||||
if alias != ()
|
||||
set_block_modifier_alias(alias.name, modifier_name)
|
||||
push(modifier.block_list, alias.block)
|
||||
_state.block_modifier_alias_stack = () ()
|
||||
for child in _block.block_modifier_stack
|
||||
if child != ()
|
||||
push(modifier.blocks, child)
|
||||
_block.block_modifier_stack = () ()
|
||||
|
||||
push_level(modifier)
|
||||
_block.block_modifiers[modifier_name] = modifier
|
||||
|
Loading…
Reference in New Issue
Block a user