-
-
Save indutny/d4b83e1bc5277bbffcd8 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var xjst = require('./'); | |
var fs = require('fs'); | |
var bench = { | |
next: true, | |
prev: true | |
}; | |
var json = require('./next.bemjson'); | |
json = JSON.parse(JSON.stringify(json)); | |
if (bench.next) { | |
var source = fs.readFileSync('./next.bemhtml') + ''; | |
console.time('compile'); | |
var template = xjst.compile(source); | |
console.timeEnd('compile'); | |
} | |
if (bench.prev) { | |
var prev = require('./prev.bemhtml.js'); | |
var prevJSON = JSON.stringify(json); | |
} | |
// console.log(template.apply(json)); | |
// console.log(prev.apply(JSON.parse(prevJSON))); | |
// Warm-up | |
if (bench.next) { | |
for (var i = 0; i < 1000; i++) | |
template.apply(json); | |
console.log('warmed up next'); | |
} | |
if (bench.prev) { | |
for (var i = 0; i < 1000; i++) | |
prev.apply(JSON.parse(prevJSON)); | |
console.log('warmed up prev'); | |
} | |
var iterationCount = 1e4; | |
if (bench.next) { | |
var start = +new Date; | |
for (var i = 0; i < iterationCount; i++) | |
template.apply(json); | |
var end = +new Date; | |
console.log('next: %d RPS', 1e3 * iterationCount / (end - start)); | |
} | |
if (bench.prev) { | |
var start = +new Date; | |
for (var i = 0; i < iterationCount; i++) | |
prev.apply(JSON.parse(prevJSON)); | |
var end = +new Date; | |
console.log('prev: %d RPS', 1e3 * iterationCount / (end - start)); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* end: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/i-bem/i-bem.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/page/page.bemhtml */ | |
block('page')( | |
def()(function() { | |
var ctx = this.ctx; | |
this._nonceCsp = ctx.nonce; | |
return applyCtx([ | |
ctx.doctype || '<!DOCTYPE html>', | |
{ | |
tag : 'html', | |
cls : 'ua_js_no', | |
content : [ | |
{ | |
elem : 'head', | |
content : [ | |
{ tag : 'meta', attrs : { charset : 'utf-8' } }, | |
ctx.uaCompatible === false? '' : { | |
tag : 'meta', | |
attrs: { | |
'http-equiv' : 'X-UA-Compatible', | |
content : ctx.uaCompatible || 'IE=edge' | |
} | |
}, | |
{ tag : 'title', content : ctx.title }, | |
{ block : 'ua', attrs : { nonce : ctx.nonce } }, | |
ctx.head, | |
ctx.styles, | |
ctx.favicon? { elem : 'favicon', url : ctx.favicon } : '' | |
] | |
}, | |
ctx | |
] | |
} | |
]); | |
}), | |
tag()('body'), | |
content()(function() { | |
return [ | |
applyNext(), | |
this.ctx.scripts | |
]; | |
}), | |
elem('head')( | |
bem()(false), | |
tag()('head') | |
), | |
elem('meta')( | |
bem()(false), | |
tag()('meta') | |
), | |
elem('link')( | |
bem()(false), | |
tag()('link') | |
), | |
elem('favicon')( | |
bem()(false), | |
tag()('link'), | |
attrs()(function() { return { rel : 'shortcut icon', href : this.ctx.url }; }) | |
) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/page/page.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/ua/ua.bemhtml */ | |
block('ua')( | |
tag()('script'), | |
bem()(false), | |
content()([ | |
'(function(e,c){', | |
'e[c]=e[c].replace(/(ua_js_)no/g,"$1yes");', | |
'})(document.documentElement,"className");' | |
]) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/ua/ua.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/page/__css/page__css.bemhtml */ | |
block('page').elem('css')( | |
bem()(false), | |
tag()('style'), | |
match(function() { return this.ctx.url; })( | |
tag()('link'), | |
attrs()(function() { return { rel : 'stylesheet', href : this.ctx.url }; }) | |
) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/page/__css/page__css.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/libs/bem-core/desktop.blocks/page/__css/page__css.bemhtml */ | |
block('page').elem('css')( | |
def() | |
.match(function() { return this.ctx.hasOwnProperty('ie'); }) | |
.match(function() { return !this.ctx._ieCommented; })( | |
function() { | |
var ie = this.ctx.ie, | |
hideRule = !ie? | |
['gt IE 9', '<!-->', '<!--'] : | |
ie === '!IE'? | |
[ie, '<!-->', '<!--'] : | |
[ie, '', '']; | |
return local({ 'ctx._ieCommented': true })(function() { | |
return applyCtx( | |
{ | |
ctx : [ | |
'<!--[if ' + hideRule[0] + ']>' + hideRule[1], | |
this.ctx, | |
hideRule[2] + '<![endif]-->' | |
] | |
} | |
); | |
}); | |
}, | |
match(function() { return this.ctx.ie === true; })(function() { | |
var url = this.ctx.url; | |
return applyCtx([6, 7, 8, 9].map(function(v) { | |
return { elem : 'css', url : url + '.ie' + v + '.css', ie : 'IE ' + v }; | |
})); | |
})) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/libs/bem-core/desktop.blocks/page/__css/page__css.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/page/__js/page__js.bemhtml */ | |
block('page').elem('js')( | |
bem()(false), | |
tag()('script'), | |
attrs()(function() { | |
var attrs = {}; | |
if(this.ctx.url) { | |
attrs.src = this.ctx.url; | |
} else if(this._nonceCsp) { | |
attrs.nonce = this._nonceCsp; | |
} | |
return attrs; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/page/__js/page__js.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/ua/__svg/ua__svg.bemhtml */ | |
block('ua').content()(function() { | |
return [ | |
applyNext(), | |
'(function(d,n){', | |
'd.documentElement.className+=', | |
'" ua_svg_"+(d[n]&&d[n]("http://www.w3.org/2000/svg","svg").createSVGRect?"yes":"no");', | |
'})(document,"createElementNS");' | |
]; | |
}); | |
/* end: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/ua/__svg/ua__svg.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/libs/bem-core/desktop.blocks/page/__conditional-comment/page__conditional-comment.bemhtml */ | |
block('page').elem('conditional-comment')( | |
tag()(false), | |
content()(function() { | |
var ctx = this.ctx, | |
cond = ctx.condition | |
.replace('<', 'lt') | |
.replace('>', 'gt') | |
.replace('=', 'e'), | |
hasNegation = cond.indexOf('!') > -1, | |
includeOthers = ctx.msieOnly === false, | |
hasNegationOrIncludeOthers = hasNegation || includeOthers; | |
return [ | |
'<!--[if ' + cond + ']>', | |
includeOthers? '<!' : '', | |
hasNegationOrIncludeOthers? '-->' : '', | |
applyNext(), | |
hasNegationOrIncludeOthers? '<!--' : '', | |
'<![endif]-->' | |
]; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/libs/bem-core/desktop.blocks/page/__conditional-comment/page__conditional-comment.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/test.blocks/table/table.bemhtml */ | |
block('table')( | |
tag()('table'), | |
elem('row').tag()('tr'), | |
elem('title').tag()('th'), | |
elem('cell').tag()('td') | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/test.blocks/table/table.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/button/button.bemhtml */ | |
block('button')( | |
tag()(function() { | |
return this.ctx.tag || 'button'; | |
}), | |
js()(true), | |
// NOTE: mix below is to satisfy interface of `control` | |
mix()({ elem : 'control' }), | |
attrs()( | |
// Common attributes | |
function() { | |
var ctx = this.ctx; | |
return { | |
role : 'button', | |
tabindex : ctx.tabIndex, | |
id : ctx.id, | |
title : ctx.title | |
}; | |
}, | |
// Attributes for button variant | |
match(function() { return !this.mods.type || this.mods.type === 'submit'; })(function() { | |
var ctx = this.ctx, | |
attrs = { | |
type : this.mods.type || 'button', | |
name : ctx.name, | |
value : ctx.val | |
}; | |
this.mods.disabled && (attrs.disabled = 'disabled'); | |
return this.extend(applyNext(), attrs); | |
}) | |
), | |
content()( | |
function() { | |
var ctx = this.ctx, | |
content = [ctx.icon]; | |
// NOTE: wasn't moved to separate template for optimization | |
'text' in ctx && content.push({ elem : 'text', content : ctx.text }); | |
return content; | |
}, | |
match(function() { return typeof this.ctx.content !== 'undefined'; })(function() { | |
return this.ctx.content; | |
}) | |
) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/button/button.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/button/__text/button__text.bemhtml */ | |
block('button').elem('text').tag()('span'); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/button/__text/button__text.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/button/_focused/button_focused.bemhtml */ | |
block('button').mod('focused', true).js()(function() { | |
return this.extend(applyNext(), { live : false }); | |
}); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/button/_focused/button_focused.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/checkbox-group/checkbox-group.bemhtml */ | |
block('checkbox-group')( | |
tag()('span'), | |
js()(true), | |
mix()([{ block : 'control-group' }]), | |
content()(function() { | |
var mods = this.mods, | |
ctx = this.ctx, | |
val = ctx.val, | |
isValDef = typeof val !== 'undefined'; | |
if(isValDef && !Array.isArray(val)) throw Error('checkbox-group: val must be an array'); | |
return (ctx.options || []).map(function(option, i) { | |
return [ | |
!!i && !mods.type && { tag : 'br' }, | |
{ | |
block : 'checkbox', | |
mods : { | |
type : mods.type, | |
theme : mods.theme, | |
size : mods.size, | |
checked : isValDef && val.indexOf(option.val) > -1, | |
disabled : option.disabled || mods.disabled | |
}, | |
name : ctx.name, | |
val : option.val, | |
text : option.text, | |
title : option.title, | |
icon : option.icon | |
} | |
]; | |
}); | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/checkbox-group/checkbox-group.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/checkbox/checkbox.bemhtml */ | |
block('checkbox')( | |
tag()('label'), | |
js()(true), | |
content()(function() { | |
var ctx = this.ctx, | |
mods = this.mods; | |
return [ | |
{ | |
elem : 'box', | |
content : { | |
elem : 'control', | |
checked : mods.checked, | |
disabled : mods.disabled, | |
name : ctx.name, | |
val : ctx.val | |
} | |
}, | |
ctx.text | |
]; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/checkbox/checkbox.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/checkbox/__box/checkbox__box.bemhtml */ | |
block('checkbox').elem('box').tag()('span'); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/checkbox/__box/checkbox__box.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/checkbox/__control/checkbox__control.bemhtml */ | |
block('checkbox').elem('control')( | |
tag()('input'), | |
attrs()(function() { | |
// NOTE: don't remove autocomplete attribute, otherwise js and DOM may be desynced | |
var attrs = { type : 'checkbox', autocomplete : 'off' }, | |
ctx = this.ctx; | |
attrs.name = ctx.name; | |
attrs.value = ctx.val; | |
ctx.checked && (attrs.checked = 'checked'); | |
ctx.disabled && (attrs.disabled = 'disabled'); | |
return attrs; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/checkbox/__control/checkbox__control.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/input/input.bemhtml */ | |
block('input')( | |
tag()('span'), | |
js()(true), | |
def()(function() { | |
return applyNext({ _input : this.ctx }); | |
}), | |
content()({ elem : 'box', content : { elem : 'control' } }) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/input/input.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/input/__box/input__box.bemhtml */ | |
block('input').elem('box').tag()('span'); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/input/__box/input__box.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/input/__control/input__control.bemhtml */ | |
block('input').elem('control')( | |
tag()('input'), | |
attrs()(function() { | |
var input = this._input, | |
attrs = { | |
id : input.id, | |
name : input.name, | |
value : input.val, | |
maxlength : input.maxLength, | |
tabindex : input.tabIndex, | |
placeholder : input.placeholder | |
}; | |
input.autocomplete === false && (attrs.autocomplete = 'off'); | |
this.mods.disabled && (attrs.disabled = 'disabled'); | |
return attrs; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/input/__control/input__control.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/input/_has-clear/input_has-clear.bemhtml */ | |
block('input').mod('has-clear', true).elem('box') | |
.content()(function() { | |
return [this.ctx.content, { elem : 'clear' }]; | |
}); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/input/_has-clear/input_has-clear.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/input/__clear/input__clear.bemhtml */ | |
block('input').elem('clear').tag()('i'); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/input/__clear/input__clear.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/menu/menu.bemhtml */ | |
block('menu')( | |
def()(function() { | |
var ctx = this.ctx, | |
mods = this.mods, | |
firstItem, | |
checkedItems = []; | |
if(ctx.content) { | |
var isValDef = typeof ctx.val !== 'undefined', | |
containsVal = function(val) { | |
return isValDef && | |
(mods.mode === 'check'? | |
ctx.val.indexOf(val) > -1 : | |
ctx.val === val); | |
}, | |
iterateItems = function(content) { | |
var i = 0, itemOrGroup; | |
while(itemOrGroup = content[i++]) { | |
if(itemOrGroup.block === 'menu-item') { | |
firstItem || (firstItem = itemOrGroup); | |
if(containsVal(itemOrGroup.val)) { | |
(itemOrGroup.mods = itemOrGroup.mods || {}).checked = true; | |
checkedItems.push(itemOrGroup); | |
} | |
} else { // menu__group | |
iterateItems(itemOrGroup.content); | |
} | |
} | |
}; | |
if(!this.isArray(ctx.content)) throw Error('menu: content must be an array of the menu items'); | |
iterateItems(ctx.content); | |
} | |
this._firstItem = firstItem; | |
this._checkedItems = checkedItems; | |
return applyNext({ | |
_menuMods : { | |
theme : mods.theme, | |
disabled : mods.disabled | |
} | |
}); | |
}), | |
attrs()(function() { | |
var attrs = { role : 'menu' }; | |
this.mods.disabled || (attrs.tabindex = 0); | |
return attrs; | |
}), | |
js()(true), | |
mix()([{ elem : 'control' }]) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/menu/menu.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/menu-item/menu-item.bemhtml */ | |
block('menu-item')( | |
js()(function() { | |
return { val : this.ctx.val }; | |
}), | |
attrs()({ role : 'menuitem' }), | |
match(function() { return this._menuMods; }).def()(function() { | |
var mods = this.mods; | |
mods.theme = mods.theme || this._menuMods.theme; | |
mods.disabled = mods.disabled || this._menuMods.disabled; | |
return applyNext(); | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/menu-item/menu-item.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/menu/_focused/menu_focused.bemhtml */ | |
block('menu').mod('focused', true).js()(function() { | |
return this.extend(applyNext(), { live : false }); | |
}); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/menu/_focused/menu_focused.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/menu/__group/menu__group.bemhtml */ | |
block('menu').elem('group')( | |
attrs()({ role : 'group' }), | |
match(function() { return typeof this.ctx.title !== 'undefined'; })( | |
attrs()(function() { | |
return this.extend(applyNext(), { 'aria-label' : this.ctx.title }); | |
}), | |
content()(function() { | |
return [ | |
{ elem : 'group-title', content : this.ctx.title }, | |
applyNext() | |
]; | |
}) | |
) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/menu/__group/menu__group.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/menu/__group-title/menu__group-title.bemhtml */ | |
block('menu').elem('group-title').attrs()({ role : 'presentation' }); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/menu/__group-title/menu__group-title.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/menu/_mode/menu_mode_radio.bemhtml */ | |
block('menu') | |
.mod('mode', 'radio') | |
.match(function() { | |
return this._firstItem && this._checkedItems && !this._checkedItems.length; | |
})( | |
def()(function() { | |
(this._firstItem.mods = this._firstItem.mods || {}).checked = true; | |
return applyNext(); | |
})); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/menu/_mode/menu_mode_radio.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/select/select.bemhtml */ | |
block('select')( | |
def().match(function() { | |
return !this._select; | |
})(function() { // TODO: check BEM-XJST for proper applyNext | |
if(!this.mods.mode) throw Error('Can\'t build select without mode modifier'); | |
var ctx = this.ctx, | |
isValDef = typeof ctx.val !== 'undefined', | |
isModeCheck = this.mods.mode === 'check', | |
firstOption, checkedOptions = [], | |
containsVal = function(val) { | |
return isValDef && | |
(isModeCheck? | |
ctx.val.indexOf(val) > -1 : | |
ctx.val === val); | |
}, | |
iterateOptions = function(content) { | |
var i = 0, option; | |
while(option = content[i++]) { | |
if(option.group) { | |
iterateOptions(option.group); | |
} else { | |
firstOption || (firstOption = option); | |
if(containsVal(option.val)) { | |
option.checked = true; | |
checkedOptions.push(option); | |
} | |
} | |
} | |
}; | |
iterateOptions(ctx.options); | |
return applyNext({ | |
_select : this.ctx, | |
_checkedOptions : checkedOptions, | |
_firstOption : firstOption | |
}); | |
}), | |
js()(function() { | |
var ctx = this.ctx; | |
return { | |
name : ctx.name, | |
optionsMaxHeight : ctx.optionsMaxHeight | |
}; | |
}), | |
content()(function() { | |
return [ | |
{ elem : 'button' }, | |
{ | |
block : 'popup', | |
mods : { target : 'anchor', theme : this.mods.theme, autoclosable : true }, | |
directions : ['bottom-left', 'bottom-right', 'top-left', 'top-right'], | |
content : { block : this.block, mods : this.mods, elem : 'menu' } | |
} | |
]; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/select/select.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/select/_focused/select_focused.bemhtml */ | |
block('select').mod('focused', true).js()(function() { | |
return this.extend(applyNext(), { live : false }); | |
}); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/select/_focused/select_focused.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/select/__control/select__control.bemhtml */ | |
block('select').elem('control')( | |
tag()('input'), | |
attrs()(function() { | |
return { | |
type : 'hidden', | |
name : this._select.name, | |
value : this.ctx.val, | |
disabled : this.mods.disabled? 'disabled' : undefined | |
}; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/select/__control/select__control.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/select/__button/select__button.bemhtml */ | |
block('select').elem('button')( | |
def()(function() { | |
var mods = this.mods; | |
return applyCtx({ | |
block : 'button', | |
mix : { block : this.block, elem : this.elem }, | |
mods : { | |
size : mods.size, | |
theme : mods.theme, | |
view : mods.view, | |
focused : mods.focused, | |
disabled : mods.disabled, | |
checked : mods.mode !== 'radio' && !!this._checkedOptions.length | |
}, | |
id : this._select.id, | |
tabIndex : this._select.tabIndex, | |
content : [ | |
apply('content'), | |
{ block : 'icon', mix : { block : 'select', elem : 'tick' } } | |
] | |
}); | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/select/__button/select__button.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/select/__menu/select__menu.bemhtml */ | |
block('select').elem('menu')( | |
def()(function() { | |
var mods = this.mods, | |
optionToMenuItem = function(option) { | |
var res = { | |
block : 'menu-item', | |
mods : { disabled : mods.disabled || option.disabled }, | |
val : option.val, | |
js : { checkedText : option.checkedText }, | |
content : option.text | |
}; | |
if(option.icon) { | |
res.js.text = option.text; | |
res.content = [ | |
option.icon, | |
res.content | |
]; | |
} | |
return res; | |
}; | |
return applyCtx({ | |
block : 'menu', | |
mix : { block : this.block, elem : this.elem }, | |
mods : { | |
size : mods.size, | |
theme : mods.theme, | |
disabled : mods.disabled, | |
mode : mods.mode | |
}, | |
val : this._select.val, | |
attrs : { tabindex : undefined }, | |
content : this._select.options.map(function(optionOrGroup) { | |
return optionOrGroup.group? | |
{ | |
elem : 'group', | |
mods : { 'has-title' : !!optionOrGroup.title }, | |
title : optionOrGroup.title, | |
content : optionOrGroup.group.map(optionToMenuItem) | |
} : | |
optionToMenuItem(optionOrGroup); | |
}) | |
}); | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/select/__menu/select__menu.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/popup/popup.bemhtml */ | |
block('popup')( | |
js()(function() { | |
var ctx = this.ctx; | |
return { | |
mainOffset : ctx.mainOffset, | |
secondaryOffset : ctx.secondaryOffset, | |
viewportOffset : ctx.viewportOffset, | |
directions : ctx.directions, | |
zIndexGroupLevel : ctx.zIndexGroupLevel | |
}; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/popup/popup.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/select/_mode/select_mode_check.bemhtml */ | |
block('select').mod('mode', 'check')( | |
js()(function() { | |
return this.extend(applyNext(), { text : this.ctx.text }); | |
}), | |
elem('button').content()(function() { | |
var checkedOptions = this._checkedOptions; | |
return [ | |
{ | |
elem : 'text', | |
content : checkedOptions.length === 1? | |
checkedOptions[0].text : | |
checkedOptions.reduce(function(res, option) { | |
return res + (res? ', ' : '') + (option.checkedText || option.text); | |
}, '') || | |
this._select.text | |
} | |
// TODO: with icons | |
]; | |
}), | |
match(function() { return this._checkedOptions[0]; }).content()(function() { | |
var res = this._checkedOptions.map(function(option) { | |
return { | |
elem : 'control', | |
val : option.val | |
}; | |
}); | |
res.push(applyNext()); | |
return res; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/select/_mode/select_mode_check.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/icon/icon.bemhtml */ | |
block('icon')( | |
tag()('i'), | |
attrs()(function() { | |
var attrs = { 'aria-hidden' : 'true' }, | |
url = this.ctx.url; | |
if(url) attrs.style = 'background-image:url(' + url + ')'; | |
return attrs; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/icon/icon.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/radio-group/radio-group.bemhtml */ | |
block('radio-group')( | |
tag()('span'), | |
js()(true), | |
mix()([{ block : 'control-group' }]), | |
content()(function() { | |
var mods = this.mods, | |
ctx = this.ctx, | |
isValDef = typeof ctx.val !== 'undefined'; | |
return (ctx.options || []).map(function(option, i) { | |
return [ | |
!!i && !mods.type && { tag : 'br' }, | |
{ | |
block : 'radio', | |
mods : { | |
type : mods.type, | |
mode : mods.mode, | |
theme : mods.theme, | |
size : mods.size, | |
checked : isValDef && ctx.val === option.val, | |
disabled : option.disabled || mods.disabled | |
}, | |
name : ctx.name, | |
val : option.val, | |
text : option.text, | |
title : option.title, | |
icon : option.icon | |
} | |
]; | |
}); | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/radio-group/radio-group.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/radio/radio.bemhtml */ | |
block('radio')( | |
tag()('label'), | |
js()(true), | |
content()(function() { | |
var ctx = this.ctx; | |
return [ | |
{ | |
elem : 'box', | |
content : { | |
elem : 'control', | |
checked : this.mods.checked, | |
disabled : this.mods.disabled, | |
name : ctx.name, | |
val : ctx.val | |
} | |
}, | |
ctx.text | |
]; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/radio/radio.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/radio/__box/radio__box.bemhtml */ | |
block('radio').elem('box').tag()('span'); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/radio/__box/radio__box.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/radio/__control/radio__control.bemhtml */ | |
block('radio').elem('control')( | |
tag()('input'), | |
attrs()(function() { | |
// NOTE: don't remove autocomplete attribute, otherwise js and DOM may be desynced | |
var ctx = this.ctx, | |
attrs = { | |
type : 'radio', | |
autocomplete : 'off', | |
name : ctx.name, | |
value : ctx.val | |
}; | |
ctx.checked && (attrs.checked = 'checked'); | |
ctx.disabled && (attrs.disabled = 'disabled'); | |
return attrs; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/radio/__control/radio__control.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/radio/_type/radio_type_button.bemhtml */ | |
block('radio').mod('type', 'button')( | |
content()(function() { | |
var ctx = this.ctx, | |
mods = this.mods; | |
return [{ | |
block : 'button', | |
mods : { | |
togglable : mods.mode === 'radio-check'? | |
'check' : | |
'radio', | |
checked : mods.checked, | |
disabled : mods.disabled, | |
theme : mods.theme, | |
size : mods.size | |
}, | |
title : ctx.title, | |
content : [ | |
ctx.icon, | |
typeof ctx.text !== 'undefined'? | |
{ elem : 'text', content : ctx.text } : | |
'' | |
] | |
}, { | |
block : 'radio', | |
elem : 'control', | |
checked : mods.checked, | |
disabled : mods.disabled, | |
name : ctx.name, | |
val : ctx.val | |
}]; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/radio/_type/radio_type_button.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/spin/spin.bemhtml */ | |
block('spin')( | |
tag()('span') | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/spin/spin.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/progressbar/progressbar.bemhtml */ | |
block('progressbar')( | |
js()(function(){ | |
return { val : this.ctx.val }; | |
}), | |
content()( | |
function() { | |
return { | |
elem : 'bar', | |
attrs : { style : 'width:' + this.ctx.val + '%' } | |
}; | |
}, | |
match(function() { return typeof this.ctx.content !== 'undefined'; })(function() { | |
return this.ctx.content; | |
}) | |
) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/progressbar/progressbar.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/select/_mode/select_mode_radio-check.bemhtml */ | |
block('select').mod('mode', 'radio-check')( | |
js()(function() { | |
return this.extend(applyNext(), { text : this.ctx.text }); | |
}), | |
elem('button').content()(function() { | |
return [ | |
{ elem : 'text', content : (this._checkedOptions[0] || this._select).text } | |
// TODO: with icons | |
]; | |
}), | |
match(function() { return this._checkedOptions[0]; })( | |
content()(function() { | |
return [ | |
{ | |
elem : 'control', | |
val : this._checkedOptions[0].val | |
}, | |
applyNext() | |
]; | |
}) | |
) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/select/_mode/select_mode_radio-check.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/i-bem/__i18n/_dummy/i-bem__i18n_dummy_yes.bemhtml */ | |
/*global oninit, BEM, exports */ | |
oninit(function() { | |
(function(global, bem_) { | |
if(bem_.I18N) { | |
return; | |
} | |
/** @global points to global context */ | |
global.BEM = bem_; | |
/** | |
* `BEM.I18N` API stub | |
*/ | |
var i18n = global.BEM.I18N = function(keyset, key) { | |
return key; | |
}; | |
i18n.keyset = function() { return i18n; }; | |
i18n.key = function(key) { return key; }; | |
i18n.lang = function() { return; }; | |
})(this, typeof BEM === 'undefined'? {} : BEM); | |
}); | |
/* end: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/i-bem/__i18n/_dummy/i-bem__i18n_dummy_yes.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/i-bem/__i18n/i-bem__i18n.bemhtml */ | |
/* global exports, BEM */ | |
block('i-bem').elem('i18n').def()(function() { | |
if(!this.ctx) return ''; | |
var ctx = this.ctx, | |
keyset = ctx.keyset, | |
key = ctx.key, | |
params = ctx.params || {}; | |
if(!(keyset || key)) | |
return ''; | |
/** | |
* Consider `content` is a reserved param that contains | |
* valid bemjson data | |
*/ | |
if(typeof ctx.content === 'undefined' || ctx.content !== null) { | |
params.content = exports.apply(ctx.content); | |
} | |
this._buf.push(BEM.I18N(keyset, key, params)); | |
}); | |
/* end: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/i-bem/__i18n/i-bem__i18n.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/attach/attach.bemhtml */ | |
block('attach')( | |
def()(function() { return applyNext({ _attach : this.ctx }); }), | |
tag()('span'), | |
js()(true), | |
content()( | |
function() { | |
var ctx = this.ctx, | |
button = ctx.button; | |
this.isSimple(button) && (button = { | |
block : 'button', | |
tag : 'span', | |
text : button | |
}); | |
var attachMods = this.mods, | |
buttonMods = button.mods || (button.mods = {}); | |
['size', 'theme', 'disabled', 'focused'].forEach(function(mod) { | |
buttonMods[mod] || (buttonMods[mod] = attachMods[mod]); | |
}); | |
return [ | |
button, | |
{ | |
elem : 'no-file', | |
content : this.ctx.noFileText | |
} | |
]; | |
} | |
) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/attach/attach.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/attach/__button/attach__button.bemhtml */ | |
block('button') | |
.match(function() { return this._attach; })( | |
tag()('span'), | |
content()(function() { | |
return [ | |
{ block : 'attach', elem : 'control' }, | |
applyNext() | |
]; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/attach/__button/attach__button.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/attach/__control/attach__control.bemhtml */ | |
block('attach').elem('control')( | |
tag()('input'), | |
attrs()(function() { | |
var attrs = { type : 'file' }, | |
attach = this._attach; | |
// в js генерим html для attach__control без самого attach | |
if(attach) { | |
attrs.name = attach.name; | |
attach.mods && attach.mods.disabled && (attrs.disabled = 'disabled'); | |
attach.tabIndex && (attrs.tabindex = attach.tabIndex); | |
} | |
return attrs; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/attach/__control/attach__control.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/attach/__no-file/attach__no-file.bemhtml */ | |
block('attach').elem('no-file').tag()('span'); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/attach/__no-file/attach__no-file.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/attach/__file/attach__file.bemhtml */ | |
block('attach').elem('file').tag()('span'); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/attach/__file/attach__file.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/attach/__text/attach__text.bemhtml */ | |
block('attach').elem('text').tag()('span'); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/attach/__text/attach__text.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/attach/__clear/attach__clear.bemhtml */ | |
block('attach').elem('clear').tag()('i'); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/attach/__clear/attach__clear.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/textarea/textarea.bemhtml */ | |
block('textarea')( | |
js()(true), | |
tag()('textarea'), | |
// NOTE: mix below is to satisfy interface of `control` | |
mix()({ elem : 'control' }), | |
attrs()(function() { | |
var ctx = this.ctx, | |
attrs = { | |
id : ctx.id, | |
name : ctx.name, | |
tabindex : ctx.tabIndex, | |
placeholder : ctx.placeholder | |
}; | |
ctx.autocomplete === false && (attrs.autocomplete = 'off'); | |
this.mods.disabled && (attrs.disabled = 'disabled'); | |
return attrs; | |
}), | |
content()(function() { | |
return this.ctx.val; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/textarea/textarea.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/link/link.bemhtml */ | |
block('link')( | |
def()(function() { | |
var ctx = this.ctx; | |
typeof ctx.url === 'object' && // url could contain bemjson | |
(ctx.url = applyCtx(ctx.url)); | |
return applyNext(); | |
}), | |
tag()('a'), | |
js()(true), | |
// NOTE: mix below is to satisfy interface of `control` | |
mix()([{ elem : 'control' }]), | |
attrs()(function() { | |
var ctx = this.ctx, | |
attrs = {}, | |
tabIndex; | |
if(!this.mods.disabled) { | |
if(ctx.url) { | |
attrs.href = ctx.url; | |
tabIndex = ctx.tabIndex; | |
} else { | |
tabIndex = ctx.tabIndex || 0; | |
} | |
} | |
typeof tabIndex === 'undefined' || (attrs.tabindex = tabIndex); | |
ctx.title && (attrs.title = ctx.title); | |
ctx.target && (attrs.target = ctx.target); | |
return attrs; | |
}), | |
mod('disabled', true) | |
.js()(function() { | |
return this.extend(applyNext(), { url : this.ctx.url }); | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/link/link.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/link/_pseudo/link_pseudo.bemhtml */ | |
block('link').mod('pseudo', true)( | |
tag().match(function() { return !this.ctx.url; })('span') | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/link/_pseudo/link_pseudo.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/modal/modal.bemhtml */ | |
block('modal')( | |
js()(true), | |
mix()(function() { | |
return { | |
block : 'popup', | |
js : { zIndexGroupLevel : this.ctx.zIndexGroupLevel || 20 }, | |
mods : { autoclosable : this.mods.autoclosable } | |
}; | |
}), | |
content()(function() { | |
return { | |
elem : 'table', | |
content : { | |
elem : 'cell', | |
content : { | |
elem : 'content', | |
content : applyNext() | |
} | |
} | |
}; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/modal/modal.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/checkbox/_type/checkbox_type_button.bemhtml */ | |
block('checkbox').mod('type', 'button')( | |
content()(function() { | |
var ctx = this.ctx, | |
mods = this.mods; | |
return [{ | |
block : 'button', | |
mods : { | |
togglable : 'check', | |
checked : mods.checked, | |
disabled : mods.disabled, | |
theme : mods.theme, | |
size : mods.size | |
}, | |
title : ctx.title, | |
content : [ | |
ctx.icon, | |
typeof ctx.text !== 'undefined'? | |
{ elem : 'text', content : ctx.text } : | |
'' | |
] | |
}, { | |
block : 'checkbox', | |
elem : 'control', | |
checked : mods.checked, | |
disabled : mods.disabled, | |
name : ctx.name, | |
val : ctx.val | |
}]; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/checkbox/_type/checkbox_type_button.bemhtml */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module.exports = ({ | |
block : 'page', | |
title : 'Showcase', | |
mods : { theme : 'islands' }, | |
head : [ | |
{ | |
elem : 'conditional-comment', | |
condition : '> IE 8', | |
msieOnly : false, | |
content : { elem : 'css', url : '_showcase.css' } | |
}, | |
{ | |
elem : 'conditional-comment', | |
condition : '<= IE 8', | |
content : { elem : 'css', url : '_showcase.ie.css' } | |
} | |
], | |
scripts : [{ elem : 'js', url : '_showcase.js' }], | |
content : [ | |
{ | |
block : 'table', | |
content : [ | |
{ | |
elem : 'row', | |
content : [ | |
{ | |
elem : 'cell', | |
content : { | |
block : 'button', | |
mods : { theme : 'islands', size : 's' }, | |
text : 'size S' | |
} | |
}, | |
{ | |
elem : 'cell', | |
content : { | |
block : 'checkbox-group', | |
name : 'islands', | |
mods : { theme : 'islands', size : 'l' }, | |
val : [ 2, 4 ], | |
options : [ | |
{ val : 1, text : 'Small' }, | |
{ val : 2, text : 'Normal' }, | |
{ val : 3, text : 'Big', disabled : true }, | |
{ val : 4, text : 'Beautiful', disabled : true } | |
] | |
} | |
}, | |
{ | |
elem : 'cell', | |
content : [ | |
{ | |
block : 'input', | |
mods : { theme : 'islands', 'has-clear' : true, size : 'l' }, | |
val : 'Find images', | |
placeholder : 'type a question' | |
}, | |
{ | |
block : 'menu', | |
mods : { mode : 'radio', theme : 'islands', size : 'l', custom : true }, | |
val : 3, | |
content : [ | |
{ | |
block : 'menu-item', | |
val : 1, | |
content : 'Show on the site' | |
}, | |
{ | |
block : 'menu-item', | |
val : 2, | |
content : 'Cached version' | |
}, | |
{ | |
block : 'menu-item', | |
val : 3, | |
content : 'Search in your pocket' | |
} | |
] | |
} | |
] | |
}, | |
{ | |
elem : 'cell', | |
content : { | |
block : 'select', | |
mods : { mode : 'check', theme : 'islands', size : 'l' }, | |
name : 'select', | |
text : 'Language', | |
options : [ | |
{ val : 1, text : 'Русский' }, | |
{ val : 2, text : 'English' }, | |
{ val : 3, text : 'Deutsch' }, | |
{ val : 4, text : 'Português' }, | |
{ val : 5, text : '中國' } | |
] | |
} | |
} | |
] | |
}, | |
{ | |
elem : 'row', | |
content : [ | |
{ | |
elem : 'cell', | |
content : { | |
block : 'button', | |
mods : { theme : 'islands', size : 'm', view : 'action' }, | |
text : 'Action' | |
} | |
}, | |
{ | |
elem : 'cell', | |
content : [ | |
{ | |
block : 'radio-group', | |
name : 'islands-radios-1', | |
mods : { theme : 'islands', size : 'l' }, | |
val : 2, | |
options : [ | |
{ val : 1, text : 'Radio is off' }, | |
{ val : 2, text : 'Radio is on' } | |
] | |
}, | |
{ tag : 'br' }, | |
{ | |
block : 'radio-group', | |
name : 'islands-radios-2', | |
mods : { theme : 'islands', size : 'l' }, | |
val : 2, | |
options : [ | |
{ val : 1, text : 'No, you can\'t', disabled : true }, | |
{ val : 2, text : 'You have no choice', disabled : true } | |
] | |
} | |
] | |
}, | |
{ | |
block: 'test2', | |
js: true | |
}, | |
{ | |
elem : 'cell', | |
content : [ | |
{ | |
block : 'radio-group', | |
name : 'islands-button', | |
mods : { theme : 'islands', size : 'l', type : 'button' }, | |
val : 2, | |
options : [ | |
{ val : 1, text : 'Black & white' }, | |
{ val : 2, text : 'Colored' }, | |
{ val : 3, text : 'Any colors' } | |
] | |
}, | |
{ | |
block : 'spin-container', | |
content : ['s', 'm', 'l', 'xl'].map(function(size) { | |
return { | |
block : 'spin', | |
mods : { theme : 'islands', size : size, visible : true } | |
}; | |
}) | |
}, | |
{ | |
block: 'progressbar-example', | |
js: true, | |
content: [{ | |
block : 'button', | |
mods : { | |
theme : 'islands', | |
size : 's', | |
togglable : 'check', | |
checked : true | |
}, | |
text : 'Pause' | |
}, | |
{ | |
block : 'progressbar', | |
mods : { theme : 'islands' }, | |
val : 25 | |
}] | |
} | |
] | |
}, | |
{ | |
elem : 'cell', | |
content : { | |
block : 'select', | |
mods : { mode : 'radio-check', theme : 'islands', size : 'l' }, | |
name : 'select-radio', | |
text : 'Your mood', | |
options : [ | |
{ val : 1, text : 'Bad' }, | |
{ val : 2, text : 'Normal' }, | |
{ val : 3, text : 'Great!' } | |
] | |
} | |
} | |
] | |
}, | |
{ | |
elem : 'row', | |
content : [ | |
{ | |
elem : 'cell', | |
content : { | |
block : 'button', | |
mods : { theme : 'islands', size : 'l', togglable : 'check' }, | |
text : 'Togglable' | |
} | |
}, | |
{ | |
elem : 'cell', | |
content : [ | |
{ | |
block : 'attach', | |
mods : { theme : 'islands', size : 'l' }, | |
button : { | |
block : 'button', | |
mods : { theme : 'islands', size : 'l' }, | |
icon : { block : 'icon', mods : { action : 'download' } }, | |
text : 'Load image' | |
}, | |
noFileText : 'file is not selected' | |
} | |
] | |
}, | |
{ | |
elem : 'cell', | |
content : { | |
block : 'textarea', | |
mods : { theme : 'islands', size : 'l' }, | |
val : 'Write a review', | |
placeholder : 'nothing to say' | |
} | |
}, | |
{ | |
elem : 'cell', | |
content : { | |
block : 'test', | |
js : true, | |
content : [ | |
{ | |
block : 'link', | |
mods : { theme : 'islands', size : 'l', pseudo : true }, | |
content : 'Open your mind' | |
}, | |
{ | |
block : 'modal', | |
mods : { theme : 'islands', autoclosable : true }, | |
content : [ | |
{ | |
block : 'text', | |
content : 'Your mind was opened!' | |
}, | |
'(Click outside the box to close)' | |
] | |
} | |
] | |
} | |
} | |
] | |
} | |
] | |
} | |
] | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* begin: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/i-bem/i-bem.bemhtml */ | |
/* global oninit */ | |
oninit(function(exports, context) { | |
var undef, | |
BEM_ = {}, | |
toString = Object.prototype.toString, | |
slice = Array.prototype.slice, | |
isArray = Array.isArray || function(obj) { | |
return toString.call(obj) === '[object Array]'; | |
}, | |
SHORT_TAGS = { // хэш для быстрого определения, является ли тэг коротким | |
area : 1, base : 1, br : 1, col : 1, command : 1, embed : 1, hr : 1, img : 1, | |
input : 1, keygen : 1, link : 1, meta : 1, param : 1, source : 1, wbr : 1 }; | |
(function(BEM, undefined) { | |
/** | |
* Separator for modifiers and their values | |
* @const | |
* @type String | |
*/ | |
var MOD_DELIM = '_', | |
/** | |
* Separator between block names and a nested element | |
* @const | |
* @type String | |
*/ | |
ELEM_DELIM = '__', | |
/** | |
* Pattern for acceptable names of elements and modifiers | |
* @const | |
* @type String | |
*/ | |
NAME_PATTERN = '[a-zA-Z0-9-]+'; | |
function buildModPostfix(modName, modVal) { | |
var res = MOD_DELIM + modName; | |
if(modVal !== true) res += MOD_DELIM + modVal; | |
return res; | |
} | |
function buildBlockClass(name, modName, modVal) { | |
var res = name; | |
if(modVal) res += buildModPostfix(modName, modVal); | |
return res; | |
} | |
function buildElemClass(block, name, modName, modVal) { | |
var res = buildBlockClass(block) + ELEM_DELIM + name; | |
if(modVal) res += buildModPostfix(modName, modVal); | |
return res; | |
} | |
BEM.INTERNAL = { | |
NAME_PATTERN : NAME_PATTERN, | |
MOD_DELIM : MOD_DELIM, | |
ELEM_DELIM : ELEM_DELIM, | |
buildModPostfix : buildModPostfix, | |
/** | |
* Builds the class for a block or element with a modifier | |
* @private | |
* @param {String} block Block name | |
* @param {String} [elem] Element name | |
* @param {String} [modName] Modifier name | |
* @param {String} [modVal] Element name | |
* @returns {String} Class string | |
*/ | |
buildClass : function(block, elem, modName, modVal) { | |
var typeOfModName = typeof modName; | |
if(typeOfModName === 'string' || typeOfModName === 'boolean') { | |
var typeOfModVal = typeof modVal; | |
if(typeOfModVal !== 'string' && typeOfModVal !== 'boolean') { | |
modVal = modName; | |
modName = elem; | |
elem = undef; | |
} | |
} else if(typeOfModName !== 'undefined') { | |
modName = undef; | |
} else if(elem && typeof elem !== 'string') { | |
elem = undef; | |
} | |
if(!(elem || modName)) { // simple case optimization | |
return block; | |
} | |
return elem? | |
buildElemClass(block, elem, modName, modVal) : | |
buildBlockClass(block, modName, modVal); | |
}, | |
/** | |
* Builds modifier classes | |
* @private | |
* @param {String} block Block name | |
* @param {String} [elem] Element name | |
* @param {Object} [mods] Modifier name | |
* @returns {String} Class string | |
*/ | |
buildModsClasses : function(block, elem, mods) { | |
var res = ''; | |
if(mods) { | |
var modName; // TODO: do something with OmetaJS and YUI Compressor | |
for(modName in mods) { | |
if(!mods.hasOwnProperty(modName)) continue; | |
var modVal = mods[modName]; | |
if(!modVal && modVal !== 0) continue; | |
typeof modVal !== 'boolean' && (modVal += ''); | |
res += ' ' + (elem? | |
buildElemClass(block, elem, modName, modVal) : | |
buildBlockClass(block, modName, modVal)); | |
} | |
} | |
return res; | |
}, | |
/** | |
* Builds full classes for a block or element with modifiers | |
* @private | |
* @param {String} block Block name | |
* @param {String} [elem] Element name | |
* @param {Object} [mods] Modifier name | |
* @returns {String} Class string | |
*/ | |
buildClasses : function(block, elem, mods) { | |
var res = ''; | |
res += elem? | |
buildElemClass(block, elem) : | |
buildBlockClass(block); | |
res += this.buildModsClasses(block, elem, mods); | |
return res; | |
} | |
}; | |
})(BEM_); | |
var buildEscape = (function() { | |
var ts = { '"' : '"', '&' : '&', '<' : '<', '>' : '>' }, | |
f = function(t) { return ts[t] || t; }; | |
return function(r) { | |
r = new RegExp(r, 'g'); | |
return function(s) { return ('' + s).replace(r, f); }; | |
}; | |
})(); | |
context.BEMContext = BEMContext; | |
function BEMContext(context, apply_) { | |
this.ctx = typeof context === 'undefined'? '' : context; | |
this.apply = apply_; | |
this._str = ''; | |
// Compatibility stuff, just in case | |
var _this = this; | |
this._buf = { | |
push : function() { | |
var chunks = slice.call(arguments).join(''); | |
_this._str += chunks; | |
}, | |
join : function() { | |
return this._str; | |
} | |
}; | |
this._ = this; | |
// Stub out fields that will be used later | |
this._start = true; | |
this._mode = ''; | |
this._listLength = 0; | |
this._notNewList = false; | |
this.position = 0; | |
this.block = undef; | |
this.elem = undef; | |
this.mods = undef; | |
this.elemMods = undef; | |
} | |
BEMContext.prototype.isArray = isArray; | |
BEMContext.prototype.isSimple = function isSimple(obj) { | |
if(!obj || obj === true) return true; | |
var t = typeof obj; | |
return t === 'string' || t === 'number'; | |
}; | |
BEMContext.prototype.isShortTag = function isShortTag(t) { | |
return SHORT_TAGS.hasOwnProperty(t); | |
}; | |
BEMContext.prototype.extend = function extend(o1, o2) { | |
if(!o1 || !o2) return o1 || o2; | |
var res = {}, n; | |
for(n in o1) o1.hasOwnProperty(n) && (res[n] = o1[n]); | |
for(n in o2) o2.hasOwnProperty(n) && (res[n] = o2[n]); | |
return res; | |
}; | |
BEMContext.prototype.identify = (function() { | |
var cnt = 0, | |
id = (+new Date()), | |
expando = '__' + id, | |
get = function() { return 'uniq' + id + (++cnt); }; | |
return function(obj, onlyGet) { | |
if(!obj) return get(); | |
if(onlyGet || obj[expando]) { | |
return obj[expando]; | |
} else { | |
return (obj[expando] = get()); | |
} | |
}; | |
})(); | |
BEMContext.prototype.xmlEscape = buildEscape('[&<>]'); | |
BEMContext.prototype.attrEscape = buildEscape('["&<>]'); | |
BEMContext.prototype.BEM = BEM_; | |
BEMContext.prototype.isFirst = function isFirst() { | |
return this.position === 1; | |
}; | |
BEMContext.prototype.isLast = function isLast() { | |
return this.position === this._listLength; | |
}; | |
BEMContext.prototype.generateId = function generateId() { | |
return this.identify(this.ctx); | |
}; | |
// Wrap xjst's apply and export our own | |
var oldApply = exports.apply; | |
exports.apply = BEMContext.apply = function BEMContext_apply(context) { | |
var ctx = new BEMContext(context || this, oldApply); | |
ctx.apply(); | |
return ctx._str; | |
}; | |
BEMContext.prototype.reapply = BEMContext.apply; | |
}); // oninit | |
match(this._mode === '')( | |
match()(function() { | |
this.ctx || (this.ctx = {}); | |
var vBlock = this.ctx.block, | |
vElem = this.ctx.elem, | |
block = this._currBlock || this.block; | |
local('default', { | |
block : vBlock || (vElem? block : undefined), | |
_currBlock : vBlock || vElem? undefined : block, | |
elem : vElem, | |
mods : vBlock? this.ctx.mods || (this.ctx.mods = {}) : this.mods, | |
elemMods : this.ctx.elemMods || {} | |
})(function() { | |
(this.block || this.elem)? | |
(this.position = (this.position || 0) + 1) : | |
this._listLength--; | |
apply(); | |
}); | |
}), | |
match(function() { return this.isArray(this.ctx); })(function() { | |
var ctx = this.ctx, | |
len = ctx.length, | |
i = 0, | |
prevPos = this.position, | |
prevNotNewList = this._notNewList; | |
if(prevNotNewList) { | |
this._listLength += len - 1; | |
} else { | |
this.position = 0; | |
this._listLength = len; | |
} | |
this._notNewList = true; | |
while(i < len) | |
apply({ ctx : ctx[i++] }); | |
prevNotNewList || (this.position = prevPos); | |
}), | |
match(!this.ctx)(function() { | |
this._listLength--; | |
}), | |
match(function() { return this.isSimple(this.ctx); })(function() { | |
this._listLength--; | |
var ctx = this.ctx; | |
if(ctx && ctx !== true || ctx === 0) { | |
this._str += ctx + ''; | |
} | |
}), | |
// hack-check for Vow-promise | |
match(this.ctx && this.ctx._vow)(function() { | |
applyCtx(this.ctx._value); | |
}) | |
); | |
def()(function() { | |
var BEM_INTERNAL = this.BEM.INTERNAL, | |
ctx = this.ctx, | |
isBEM, | |
tag, | |
res; | |
local({ _str : '' })(function() { | |
var vBlock = this.block; | |
tag = apply('tag'); | |
typeof tag !== 'undefined' || (tag = ctx.tag); | |
typeof tag !== 'undefined' || (tag = 'div'); | |
if(tag) { | |
var jsParams, js; | |
if(vBlock && ctx.js !== false) { | |
js = apply('js'); | |
js = js? this.extend(ctx.js, js === true? {} : js) : ctx.js === true? {} : ctx.js; | |
js && ((jsParams = {})[BEM_INTERNAL.buildClass(vBlock, ctx.elem)] = js); | |
} | |
this._str += '<' + tag; | |
isBEM = apply('bem'); | |
typeof isBEM !== 'undefined' || | |
(isBEM = typeof ctx.bem !== 'undefined'? ctx.bem : ctx.block || ctx.elem); | |
var cls = apply('cls'); | |
cls || (cls = ctx.cls); | |
var addJSInitClass = ctx.block && jsParams && !ctx.elem; | |
if(isBEM || cls) { | |
this._str += ' class="'; | |
if(isBEM) { | |
this._str += BEM_INTERNAL.buildClasses(vBlock, ctx.elem, ctx.elemMods || ctx.mods); | |
var mix = apply('mix'); | |
ctx.mix && (mix = mix? [].concat(mix, ctx.mix) : ctx.mix); | |
if(mix) { | |
var visited = {}, | |
visitedKey = function(block, elem) { | |
return (block || '') + '__' + (elem || ''); | |
}; | |
visited[visitedKey(vBlock, this.elem)] = true; | |
// Transform mix to the single-item array if it's not array | |
this.isArray(mix) || (mix = [mix]); | |
for(var i = 0; i < mix.length; i++) { | |
var mixItem = mix[i], | |
hasItem = (mixItem.block && (vBlock !== ctx.block || mixItem.block !== vBlock)) || mixItem.elem, | |
mixBlock = mixItem.block || mixItem._block || this.block, | |
mixElem = mixItem.elem || mixItem._elem || this.elem; | |
hasItem && (this._str += ' '); | |
this._str += BEM_INTERNAL[hasItem? 'buildClasses' : 'buildModsClasses']( | |
mixBlock, | |
mixItem.elem || mixItem._elem || | |
(mixItem.block? undefined : this.elem), | |
mixItem.elemMods || mixItem.mods); | |
if(mixItem.js) { | |
(jsParams || | |
(jsParams = {}))[BEM_INTERNAL.buildClass(mixBlock, mixItem.elem)] = mixItem.js === true? | |
{} : | |
mixItem.js; | |
addJSInitClass || (addJSInitClass = mixBlock && !mixItem.elem); | |
} | |
// Process nested mixes | |
if(hasItem && !visited[visitedKey(mixBlock, mixElem)]) { | |
visited[visitedKey(mixBlock, mixElem)] = true; | |
var nestedMix = apply('mix', { | |
block : mixBlock, | |
elem : mixElem | |
}); | |
if(nestedMix) { | |
for(var j = 0; j < nestedMix.length; j++) { | |
var nestedItem = nestedMix[j]; | |
if(!nestedItem.block && | |
!nestedItem.elem || | |
!visited[visitedKey( | |
nestedItem.block, | |
nestedItem.elem | |
)]) { | |
nestedItem._block = mixBlock; | |
nestedItem._elem = mixElem; | |
mix.splice(i + 1, 0, nestedItem); | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
cls && (this._str += isBEM? ' ' + cls : cls); | |
this._str += addJSInitClass? ' i-bem"' : '"'; | |
} | |
if(isBEM && jsParams) { | |
this._str += ' data-bem="' + | |
this.attrEscape(JSON.stringify(jsParams)) + | |
'"'; | |
} | |
var attrs = apply('attrs'); | |
// NOTE: maybe we need to make an array for quicker serialization | |
attrs = this.extend(attrs, ctx.attrs); | |
if(attrs) { | |
var name, attr; // TODO: do something with OmetaJS and YUI Compressor | |
for(name in attrs) { | |
attr = attrs[name]; | |
if(typeof attr === 'undefined') continue; | |
this._str += ' ' + name + '="' + | |
this.attrEscape(this.isSimple(attr)? | |
attr : | |
this.reapply(attr)) + | |
'"'; | |
} | |
} | |
} | |
if(this.isShortTag(tag)) { | |
this._str += '/>'; | |
} else { | |
tag && (this._str += '>'); | |
var content = apply('content'); | |
if(content || content === 0) { | |
isBEM = vBlock || this.elem; | |
apply('', { | |
_notNewList : false, | |
position : isBEM? 1 : this.position, | |
_listLength : isBEM? 1 : this._listLength, | |
ctx : content | |
}); | |
} | |
tag && (this._str += '</' + tag + '>'); | |
} | |
// If the buffer was replaced, pretend that we're pushing to the buffer | |
res = this._str; | |
}); | |
this._buf.push(res); | |
}); | |
tag()(undefined); | |
attrs()(undefined); | |
cls()(undefined); | |
js()(undefined); | |
bem()(undefined); | |
mix()(undefined); | |
content()(function() { return this.ctx.content; }); | |
/* end: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/i-bem/i-bem.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/page/page.bemhtml */ | |
block('page')( | |
def()(function() { | |
var ctx = this.ctx; | |
this._nonceCsp = ctx.nonce; | |
applyCtx([ | |
ctx.doctype || '<!DOCTYPE html>', | |
{ | |
tag : 'html', | |
cls : 'ua_js_no', | |
content : [ | |
{ | |
elem : 'head', | |
content : [ | |
{ tag : 'meta', attrs : { charset : 'utf-8' } }, | |
ctx.uaCompatible === false? '' : { | |
tag : 'meta', | |
attrs: { | |
'http-equiv' : 'X-UA-Compatible', | |
content : ctx.uaCompatible || 'IE=edge' | |
} | |
}, | |
{ tag : 'title', content : ctx.title }, | |
{ block : 'ua', attrs : { nonce : ctx.nonce } }, | |
ctx.head, | |
ctx.styles, | |
ctx.favicon? { elem : 'favicon', url : ctx.favicon } : '' | |
] | |
}, | |
ctx | |
] | |
} | |
]); | |
}), | |
tag()('body'), | |
content()(function() { | |
return [ | |
applyNext(), | |
this.ctx.scripts | |
]; | |
}), | |
elem('head')( | |
bem()(false), | |
tag()('head') | |
), | |
elem('meta')( | |
bem()(false), | |
tag()('meta') | |
), | |
elem('link')( | |
bem()(false), | |
tag()('link') | |
), | |
elem('favicon')( | |
bem()(false), | |
tag()('link'), | |
attrs()(function() { return { rel : 'shortcut icon', href : this.ctx.url }; }) | |
) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/page/page.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/ua/ua.bemhtml */ | |
block('ua')( | |
tag()('script'), | |
bem()(false), | |
content()([ | |
'(function(e,c){', | |
'e[c]=e[c].replace(/(ua_js_)no/g,"$1yes");', | |
'})(document.documentElement,"className");' | |
]) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/ua/ua.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/page/__css/page__css.bemhtml */ | |
block('page').elem('css')( | |
bem()(false), | |
tag()('style'), | |
match(function() { return this.ctx.url; })( | |
tag()('link'), | |
attrs()(function() { return { rel : 'stylesheet', href : this.ctx.url }; }) | |
) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/page/__css/page__css.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/libs/bem-core/desktop.blocks/page/__css/page__css.bemhtml */ | |
block('page').elem('css')( | |
def() | |
.match(function() { return this.ctx.hasOwnProperty('ie'); }) | |
.match(function() { return !this.ctx._ieCommented; })( | |
function() { | |
var ie = this.ctx.ie, | |
hideRule = !ie? | |
['gt IE 9', '<!-->', '<!--'] : | |
ie === '!IE'? | |
[ie, '<!-->', '<!--'] : | |
[ie, '', '']; | |
apply( | |
'', | |
{ 'ctx._ieCommented' : true }, | |
{ | |
ctx : [ | |
'<!--[if ' + hideRule[0] + ']>' + hideRule[1], | |
this.ctx, | |
hideRule[2] + '<![endif]-->' | |
] | |
} | |
); | |
}, | |
match(function() { return this.ctx.ie === true; })(function() { | |
var url = this.ctx.url; | |
applyCtx([6, 7, 8, 9].map(function(v) { | |
return { elem : 'css', url : url + '.ie' + v + '.css', ie : 'IE ' + v }; | |
})); | |
})) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/libs/bem-core/desktop.blocks/page/__css/page__css.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/page/__js/page__js.bemhtml */ | |
block('page').elem('js')( | |
bem()(false), | |
tag()('script'), | |
attrs()(function() { | |
var attrs = {}; | |
if(this.ctx.url) { | |
attrs.src = this.ctx.url; | |
} else if(this._nonceCsp) { | |
attrs.nonce = this._nonceCsp; | |
} | |
return attrs; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/page/__js/page__js.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/ua/__svg/ua__svg.bemhtml */ | |
block('ua').content()(function() { | |
return [ | |
applyNext(), | |
'(function(d,n){', | |
'd.documentElement.className+=', | |
'" ua_svg_"+(d[n]&&d[n]("http://www.w3.org/2000/svg","svg").createSVGRect?"yes":"no");', | |
'})(document,"createElementNS");' | |
]; | |
}); | |
/* end: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/ua/__svg/ua__svg.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/libs/bem-core/desktop.blocks/page/__conditional-comment/page__conditional-comment.bemhtml */ | |
block('page').elem('conditional-comment')( | |
tag()(false), | |
content()(function() { | |
var ctx = this.ctx, | |
cond = ctx.condition | |
.replace('<', 'lt') | |
.replace('>', 'gt') | |
.replace('=', 'e'), | |
hasNegation = cond.indexOf('!') > -1, | |
includeOthers = ctx.msieOnly === false, | |
hasNegationOrIncludeOthers = hasNegation || includeOthers; | |
return [ | |
'<!--[if ' + cond + ']>', | |
includeOthers? '<!' : '', | |
hasNegationOrIncludeOthers? '-->' : '', | |
applyNext(), | |
hasNegationOrIncludeOthers? '<!--' : '', | |
'<![endif]-->' | |
]; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/libs/bem-core/desktop.blocks/page/__conditional-comment/page__conditional-comment.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/test.blocks/table/table.bemhtml */ | |
block('table')( | |
tag()('table'), | |
elem('row').tag()('tr'), | |
elem('title').tag()('th'), | |
elem('cell').tag()('td') | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/test.blocks/table/table.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/button/button.bemhtml */ | |
block('button')( | |
tag()(function() { | |
return this.ctx.tag || 'button'; | |
}), | |
js()(true), | |
// NOTE: mix below is to satisfy interface of `control` | |
mix()({ elem : 'control' }), | |
attrs()( | |
// Common attributes | |
function() { | |
var ctx = this.ctx; | |
return { | |
role : 'button', | |
tabindex : ctx.tabIndex, | |
id : ctx.id, | |
title : ctx.title | |
}; | |
}, | |
// Attributes for button variant | |
match(function() { return !this.mods.type || this.mods.type === 'submit'; })(function() { | |
var ctx = this.ctx, | |
attrs = { | |
type : this.mods.type || 'button', | |
name : ctx.name, | |
value : ctx.val | |
}; | |
this.mods.disabled && (attrs.disabled = 'disabled'); | |
return this.extend(applyNext(), attrs); | |
}) | |
), | |
content()( | |
function() { | |
var ctx = this.ctx, | |
content = [ctx.icon]; | |
// NOTE: wasn't moved to separate template for optimization | |
'text' in ctx && content.push({ elem : 'text', content : ctx.text }); | |
return content; | |
}, | |
match(function() { return typeof this.ctx.content !== 'undefined'; })(function() { | |
return this.ctx.content; | |
}) | |
) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/button/button.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/button/__text/button__text.bemhtml */ | |
block('button').elem('text').tag()('span'); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/button/__text/button__text.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/button/_focused/button_focused.bemhtml */ | |
block('button').mod('focused', true).js()(function() { | |
return this.extend(applyNext(), { live : false }); | |
}); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/button/_focused/button_focused.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/checkbox-group/checkbox-group.bemhtml */ | |
block('checkbox-group')( | |
tag()('span'), | |
js()(true), | |
mix()([{ block : 'control-group' }]), | |
content()(function() { | |
var mods = this.mods, | |
ctx = this.ctx, | |
val = ctx.val, | |
isValDef = typeof val !== 'undefined'; | |
if(isValDef && !Array.isArray(val)) throw Error('checkbox-group: val must be an array'); | |
return (ctx.options || []).map(function(option, i) { | |
return [ | |
!!i && !mods.type && { tag : 'br' }, | |
{ | |
block : 'checkbox', | |
mods : { | |
type : mods.type, | |
theme : mods.theme, | |
size : mods.size, | |
checked : isValDef && val.indexOf(option.val) > -1, | |
disabled : option.disabled || mods.disabled | |
}, | |
name : ctx.name, | |
val : option.val, | |
text : option.text, | |
title : option.title, | |
icon : option.icon | |
} | |
]; | |
}); | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/checkbox-group/checkbox-group.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/checkbox/checkbox.bemhtml */ | |
block('checkbox')( | |
tag()('label'), | |
js()(true), | |
content()(function() { | |
var ctx = this.ctx, | |
mods = this.mods; | |
return [ | |
{ | |
elem : 'box', | |
content : { | |
elem : 'control', | |
checked : mods.checked, | |
disabled : mods.disabled, | |
name : ctx.name, | |
val : ctx.val | |
} | |
}, | |
ctx.text | |
]; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/checkbox/checkbox.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/checkbox/__box/checkbox__box.bemhtml */ | |
block('checkbox').elem('box').tag()('span'); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/checkbox/__box/checkbox__box.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/checkbox/__control/checkbox__control.bemhtml */ | |
block('checkbox').elem('control')( | |
tag()('input'), | |
attrs()(function() { | |
// NOTE: don't remove autocomplete attribute, otherwise js and DOM may be desynced | |
var attrs = { type : 'checkbox', autocomplete : 'off' }, | |
ctx = this.ctx; | |
attrs.name = ctx.name; | |
attrs.value = ctx.val; | |
ctx.checked && (attrs.checked = 'checked'); | |
ctx.disabled && (attrs.disabled = 'disabled'); | |
return attrs; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/checkbox/__control/checkbox__control.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/input/input.bemhtml */ | |
block('input')( | |
tag()('span'), | |
js()(true), | |
def()(function() { | |
applyNext({ _input : this.ctx }); | |
}), | |
content()({ elem : 'box', content : { elem : 'control' } }) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/input/input.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/input/__box/input__box.bemhtml */ | |
block('input').elem('box').tag()('span'); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/input/__box/input__box.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/input/__control/input__control.bemhtml */ | |
block('input').elem('control')( | |
tag()('input'), | |
attrs()(function() { | |
var input = this._input, | |
attrs = { | |
id : input.id, | |
name : input.name, | |
value : input.val, | |
maxlength : input.maxLength, | |
tabindex : input.tabIndex, | |
placeholder : input.placeholder | |
}; | |
input.autocomplete === false && (attrs.autocomplete = 'off'); | |
this.mods.disabled && (attrs.disabled = 'disabled'); | |
return attrs; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/input/__control/input__control.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/input/_has-clear/input_has-clear.bemhtml */ | |
block('input').mod('has-clear', true).elem('box') | |
.content()(function() { | |
return [this.ctx.content, { elem : 'clear' }]; | |
}); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/input/_has-clear/input_has-clear.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/input/__clear/input__clear.bemhtml */ | |
block('input').elem('clear').tag()('i'); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/input/__clear/input__clear.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/menu/menu.bemhtml */ | |
block('menu')( | |
def()(function() { | |
var ctx = this.ctx, | |
mods = this.mods, | |
firstItem, | |
checkedItems = []; | |
if(ctx.content) { | |
var isValDef = typeof ctx.val !== 'undefined', | |
containsVal = function(val) { | |
return isValDef && | |
(mods.mode === 'check'? | |
ctx.val.indexOf(val) > -1 : | |
ctx.val === val); | |
}, | |
iterateItems = function(content) { | |
var i = 0, itemOrGroup; | |
while(itemOrGroup = content[i++]) { | |
if(itemOrGroup.block === 'menu-item') { | |
firstItem || (firstItem = itemOrGroup); | |
if(containsVal(itemOrGroup.val)) { | |
(itemOrGroup.mods = itemOrGroup.mods || {}).checked = true; | |
checkedItems.push(itemOrGroup); | |
} | |
} else { // menu__group | |
iterateItems(itemOrGroup.content); | |
} | |
} | |
}; | |
if(!this.isArray(ctx.content)) throw Error('menu: content must be an array of the menu items'); | |
iterateItems(ctx.content); | |
} | |
this._firstItem = firstItem; | |
this._checkedItems = checkedItems; | |
applyNext({ | |
_menuMods : { | |
theme : mods.theme, | |
disabled : mods.disabled | |
} | |
}); | |
}), | |
attrs()(function() { | |
var attrs = { role : 'menu' }; | |
this.mods.disabled || (attrs.tabindex = 0); | |
return attrs; | |
}), | |
js()(true), | |
mix()([{ elem : 'control' }]) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/menu/menu.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/menu-item/menu-item.bemhtml */ | |
block('menu-item')( | |
js()(function() { | |
return { val : this.ctx.val }; | |
}), | |
attrs()({ role : 'menuitem' }), | |
match(this._menuMods).def()(function() { | |
var mods = this.mods; | |
mods.theme = mods.theme || this._menuMods.theme; | |
mods.disabled = mods.disabled || this._menuMods.disabled; | |
applyNext(); | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/menu-item/menu-item.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/menu/_focused/menu_focused.bemhtml */ | |
block('menu').mod('focused', true).js()(function() { | |
return this.extend(applyNext(), { live : false }); | |
}); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/menu/_focused/menu_focused.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/menu/__group/menu__group.bemhtml */ | |
block('menu').elem('group')( | |
attrs()({ role : 'group' }), | |
match(function() { return typeof this.ctx.title !== 'undefined'; })( | |
attrs()(function() { | |
return this.extend(applyNext(), { 'aria-label' : this.ctx.title }); | |
}), | |
content()(function() { | |
return [ | |
{ elem : 'group-title', content : this.ctx.title }, | |
applyNext() | |
]; | |
}) | |
) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/menu/__group/menu__group.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/menu/__group-title/menu__group-title.bemhtml */ | |
block('menu').elem('group-title').attrs()({ role : 'presentation' }); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/menu/__group-title/menu__group-title.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/menu/_mode/menu_mode_radio.bemhtml */ | |
block('menu') | |
.mod('mode', 'radio') | |
.match(this._firstItem && this._checkedItems && !this._checkedItems.length)( | |
def()(function() { | |
(this._firstItem.mods = this._firstItem.mods || {}).checked = true; | |
applyNext(); | |
})); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/menu/_mode/menu_mode_radio.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/select/select.bemhtml */ | |
block('select')( | |
def().match(!this._select)(function() { // TODO: check BEM-XJST for proper applyNext | |
if(!this.mods.mode) throw Error('Can\'t build select without mode modifier'); | |
var ctx = this.ctx, | |
isValDef = typeof ctx.val !== 'undefined', | |
isModeCheck = this.mods.mode === 'check', | |
firstOption, checkedOptions = [], | |
containsVal = function(val) { | |
return isValDef && | |
(isModeCheck? | |
ctx.val.indexOf(val) > -1 : | |
ctx.val === val); | |
}, | |
iterateOptions = function(content) { | |
var i = 0, option; | |
while(option = content[i++]) { | |
if(option.group) { | |
iterateOptions(option.group); | |
} else { | |
firstOption || (firstOption = option); | |
if(containsVal(option.val)) { | |
option.checked = true; | |
checkedOptions.push(option); | |
} | |
} | |
} | |
}; | |
iterateOptions(ctx.options); | |
applyNext({ | |
_select : this.ctx, | |
_checkedOptions : checkedOptions, | |
_firstOption : firstOption | |
}); | |
}), | |
js()(function() { | |
var ctx = this.ctx; | |
return { | |
name : ctx.name, | |
optionsMaxHeight : ctx.optionsMaxHeight | |
}; | |
}), | |
content()(function() { | |
return [ | |
{ elem : 'button' }, | |
{ | |
block : 'popup', | |
mods : { target : 'anchor', theme : this.mods.theme, autoclosable : true }, | |
directions : ['bottom-left', 'bottom-right', 'top-left', 'top-right'], | |
content : { block : this.block, mods : this.mods, elem : 'menu' } | |
} | |
]; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/select/select.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/select/_focused/select_focused.bemhtml */ | |
block('select').mod('focused', true).js()(function() { | |
return this.extend(applyNext(), { live : false }); | |
}); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/select/_focused/select_focused.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/select/__control/select__control.bemhtml */ | |
block('select').elem('control')( | |
tag()('input'), | |
attrs()(function() { | |
return { | |
type : 'hidden', | |
name : this._select.name, | |
value : this.ctx.val, | |
disabled : this.mods.disabled? 'disabled' : undefined | |
}; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/select/__control/select__control.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/select/__button/select__button.bemhtml */ | |
block('select').elem('button')( | |
def()(function() { | |
var mods = this.mods; | |
applyCtx({ | |
block : 'button', | |
mix : { block : this.block, elem : this.elem }, | |
mods : { | |
size : mods.size, | |
theme : mods.theme, | |
view : mods.view, | |
focused : mods.focused, | |
disabled : mods.disabled, | |
checked : mods.mode !== 'radio' && !!this._checkedOptions.length | |
}, | |
id : this._select.id, | |
tabIndex : this._select.tabIndex, | |
content : [ | |
apply('content'), | |
{ block : 'icon', mix : { block : 'select', elem : 'tick' } } | |
] | |
}); | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/select/__button/select__button.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/select/__menu/select__menu.bemhtml */ | |
block('select').elem('menu')( | |
def()(function() { | |
var mods = this.mods, | |
optionToMenuItem = function(option) { | |
var res = { | |
block : 'menu-item', | |
mods : { disabled : mods.disabled || option.disabled }, | |
val : option.val, | |
js : { checkedText : option.checkedText }, | |
content : option.text | |
}; | |
if(option.icon) { | |
res.js.text = option.text; | |
res.content = [ | |
option.icon, | |
res.content | |
]; | |
} | |
return res; | |
}; | |
applyCtx({ | |
block : 'menu', | |
mix : { block : this.block, elem : this.elem }, | |
mods : { | |
size : mods.size, | |
theme : mods.theme, | |
disabled : mods.disabled, | |
mode : mods.mode | |
}, | |
val : this._select.val, | |
attrs : { tabindex : undefined }, | |
content : this._select.options.map(function(optionOrGroup) { | |
return optionOrGroup.group? | |
{ | |
elem : 'group', | |
mods : { 'has-title' : !!optionOrGroup.title }, | |
title : optionOrGroup.title, | |
content : optionOrGroup.group.map(optionToMenuItem) | |
} : | |
optionToMenuItem(optionOrGroup); | |
}) | |
}); | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/select/__menu/select__menu.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/popup/popup.bemhtml */ | |
block('popup')( | |
js()(function() { | |
var ctx = this.ctx; | |
return { | |
mainOffset : ctx.mainOffset, | |
secondaryOffset : ctx.secondaryOffset, | |
viewportOffset : ctx.viewportOffset, | |
directions : ctx.directions, | |
zIndexGroupLevel : ctx.zIndexGroupLevel | |
}; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/popup/popup.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/select/_mode/select_mode_check.bemhtml */ | |
block('select').mod('mode', 'check')( | |
js()(function() { | |
return this.extend(applyNext(), { text : this.ctx.text }); | |
}), | |
elem('button').content()(function() { | |
var checkedOptions = this._checkedOptions; | |
return [ | |
{ | |
elem : 'text', | |
content : checkedOptions.length === 1? | |
checkedOptions[0].text : | |
checkedOptions.reduce(function(res, option) { | |
return res + (res? ', ' : '') + (option.checkedText || option.text); | |
}, '') || | |
this._select.text | |
} | |
// TODO: with icons | |
]; | |
}), | |
match(function() { return this._checkedOptions[0]; }).content()(function() { | |
var res = this._checkedOptions.map(function(option) { | |
return { | |
elem : 'control', | |
val : option.val | |
}; | |
}); | |
res.push(applyNext()); | |
return res; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/select/_mode/select_mode_check.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/icon/icon.bemhtml */ | |
block('icon')( | |
tag()('i'), | |
attrs()(function() { | |
var attrs = { 'aria-hidden' : 'true' }, | |
url = this.ctx.url; | |
if(url) attrs.style = 'background-image:url(' + url + ')'; | |
return attrs; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/icon/icon.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/radio-group/radio-group.bemhtml */ | |
block('radio-group')( | |
tag()('span'), | |
js()(true), | |
mix()([{ block : 'control-group' }]), | |
content()(function() { | |
var mods = this.mods, | |
ctx = this.ctx, | |
isValDef = typeof ctx.val !== 'undefined'; | |
return (ctx.options || []).map(function(option, i) { | |
return [ | |
!!i && !mods.type && { tag : 'br' }, | |
{ | |
block : 'radio', | |
mods : { | |
type : mods.type, | |
mode : mods.mode, | |
theme : mods.theme, | |
size : mods.size, | |
checked : isValDef && ctx.val === option.val, | |
disabled : option.disabled || mods.disabled | |
}, | |
name : ctx.name, | |
val : option.val, | |
text : option.text, | |
title : option.title, | |
icon : option.icon | |
} | |
]; | |
}); | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/radio-group/radio-group.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/radio/radio.bemhtml */ | |
block('radio')( | |
tag()('label'), | |
js()(true), | |
content()(function() { | |
var ctx = this.ctx; | |
return [ | |
{ | |
elem : 'box', | |
content : { | |
elem : 'control', | |
checked : this.mods.checked, | |
disabled : this.mods.disabled, | |
name : ctx.name, | |
val : ctx.val | |
} | |
}, | |
ctx.text | |
]; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/radio/radio.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/radio/__box/radio__box.bemhtml */ | |
block('radio').elem('box').tag()('span'); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/radio/__box/radio__box.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/radio/__control/radio__control.bemhtml */ | |
block('radio').elem('control')( | |
tag()('input'), | |
attrs()(function() { | |
// NOTE: don't remove autocomplete attribute, otherwise js and DOM may be desynced | |
var ctx = this.ctx, | |
attrs = { | |
type : 'radio', | |
autocomplete : 'off', | |
name : ctx.name, | |
value : ctx.val | |
}; | |
ctx.checked && (attrs.checked = 'checked'); | |
ctx.disabled && (attrs.disabled = 'disabled'); | |
return attrs; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/radio/__control/radio__control.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/radio/_type/radio_type_button.bemhtml */ | |
block('radio').mod('type', 'button')( | |
content()(function() { | |
var ctx = this.ctx, | |
mods = this.mods; | |
return [{ | |
block : 'button', | |
mods : { | |
togglable : mods.mode === 'radio-check'? | |
'check' : | |
'radio', | |
checked : mods.checked, | |
disabled : mods.disabled, | |
theme : mods.theme, | |
size : mods.size | |
}, | |
title : ctx.title, | |
content : [ | |
ctx.icon, | |
typeof ctx.text !== 'undefined'? | |
{ elem : 'text', content : ctx.text } : | |
'' | |
] | |
}, { | |
block : 'radio', | |
elem : 'control', | |
checked : mods.checked, | |
disabled : mods.disabled, | |
name : ctx.name, | |
val : ctx.val | |
}]; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/radio/_type/radio_type_button.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/spin/spin.bemhtml */ | |
block('spin')( | |
tag()('span') | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/spin/spin.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/progressbar/progressbar.bemhtml */ | |
block('progressbar')( | |
js()(function(){ | |
return { val : this.ctx.val }; | |
}), | |
content()( | |
function() { | |
return { | |
elem : 'bar', | |
attrs : { style : 'width:' + this.ctx.val + '%' } | |
}; | |
}, | |
match(function() { return typeof this.ctx.content !== 'undefined'; })(function() { | |
return this.ctx.content; | |
}) | |
) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/progressbar/progressbar.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/select/_mode/select_mode_radio-check.bemhtml */ | |
block('select').mod('mode', 'radio-check')( | |
js()(function() { | |
return this.extend(applyNext(), { text : this.ctx.text }); | |
}), | |
elem('button').content()(function() { | |
return [ | |
{ elem : 'text', content : (this._checkedOptions[0] || this._select).text } | |
// TODO: with icons | |
]; | |
}), | |
match(function() { return this._checkedOptions[0]; })( | |
content()(function() { | |
return [ | |
{ | |
elem : 'control', | |
val : this._checkedOptions[0].val | |
}, | |
applyNext() | |
]; | |
}) | |
) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/select/_mode/select_mode_radio-check.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/i-bem/__i18n/_dummy/i-bem__i18n_dummy_yes.bemhtml */ | |
/*global oninit, BEM, exports */ | |
oninit(function() { | |
(function(global, bem_) { | |
if(bem_.I18N) { | |
return; | |
} | |
/** @global points to global context */ | |
global.BEM = bem_; | |
/** | |
* `BEM.I18N` API stub | |
*/ | |
var i18n = global.BEM.I18N = function(keyset, key) { | |
return key; | |
}; | |
i18n.keyset = function() { return i18n; }; | |
i18n.key = function(key) { return key; }; | |
i18n.lang = function() { return; }; | |
})(this, typeof BEM === 'undefined'? {} : BEM); | |
}); | |
/* end: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/i-bem/__i18n/_dummy/i-bem__i18n_dummy_yes.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/i-bem/__i18n/i-bem__i18n.bemhtml */ | |
/* global exports, BEM */ | |
block('i-bem').elem('i18n').def()(function() { | |
if(!this.ctx) return ''; | |
var ctx = this.ctx, | |
keyset = ctx.keyset, | |
key = ctx.key, | |
params = ctx.params || {}; | |
if(!(keyset || key)) | |
return ''; | |
/** | |
* Consider `content` is a reserved param that contains | |
* valid bemjson data | |
*/ | |
if(typeof ctx.content === 'undefined' || ctx.content !== null) { | |
params.content = exports.apply(ctx.content); | |
} | |
this._buf.push(BEM.I18N(keyset, key, params)); | |
}); | |
/* end: /Users/indutny/Code/bem/bem-components/libs/bem-core/common.blocks/i-bem/__i18n/i-bem__i18n.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/attach/attach.bemhtml */ | |
block('attach')( | |
def()(function() { applyNext({ _attach : this.ctx }); }), | |
tag()('span'), | |
js()(true), | |
content()( | |
function() { | |
var ctx = this.ctx, | |
button = ctx.button; | |
this.isSimple(button) && (button = { | |
block : 'button', | |
tag : 'span', | |
text : button | |
}); | |
var attachMods = this.mods, | |
buttonMods = button.mods || (button.mods = {}); | |
['size', 'theme', 'disabled', 'focused'].forEach(function(mod) { | |
buttonMods[mod] || (buttonMods[mod] = attachMods[mod]); | |
}); | |
return [ | |
button, | |
{ | |
elem : 'no-file', | |
content : this.ctx.noFileText | |
} | |
]; | |
} | |
) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/attach/attach.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/attach/__button/attach__button.bemhtml */ | |
block('button') | |
.match(this._attach)( | |
tag()('span'), | |
content()(function() { | |
return [ | |
{ block : 'attach', elem : 'control' }, | |
applyNext() | |
]; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/attach/__button/attach__button.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/attach/__control/attach__control.bemhtml */ | |
block('attach').elem('control')( | |
tag()('input'), | |
attrs()(function() { | |
var attrs = { type : 'file' }, | |
attach = this._attach; | |
// в js генерим html для attach__control без самого attach | |
if(attach) { | |
attrs.name = attach.name; | |
attach.mods && attach.mods.disabled && (attrs.disabled = 'disabled'); | |
attach.tabIndex && (attrs.tabindex = attach.tabIndex); | |
} | |
return attrs; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/attach/__control/attach__control.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/attach/__no-file/attach__no-file.bemhtml */ | |
block('attach').elem('no-file').tag()('span'); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/attach/__no-file/attach__no-file.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/attach/__file/attach__file.bemhtml */ | |
block('attach').elem('file').tag()('span'); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/attach/__file/attach__file.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/attach/__text/attach__text.bemhtml */ | |
block('attach').elem('text').tag()('span'); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/attach/__text/attach__text.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/attach/__clear/attach__clear.bemhtml */ | |
block('attach').elem('clear').tag()('i'); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/attach/__clear/attach__clear.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/textarea/textarea.bemhtml */ | |
block('textarea')( | |
js()(true), | |
tag()('textarea'), | |
// NOTE: mix below is to satisfy interface of `control` | |
mix()({ elem : 'control' }), | |
attrs()(function() { | |
var ctx = this.ctx, | |
attrs = { | |
id : ctx.id, | |
name : ctx.name, | |
tabindex : ctx.tabIndex, | |
placeholder : ctx.placeholder | |
}; | |
ctx.autocomplete === false && (attrs.autocomplete = 'off'); | |
this.mods.disabled && (attrs.disabled = 'disabled'); | |
return attrs; | |
}), | |
content()(function() { | |
return this.ctx.val; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/textarea/textarea.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/link/link.bemhtml */ | |
block('link')( | |
def()(function() { | |
var ctx = this.ctx; | |
typeof ctx.url === 'object' && // url could contain bemjson | |
(ctx.url = this.reapply(ctx.url)); | |
applyNext(); | |
}), | |
tag()('a'), | |
js()(true), | |
// NOTE: mix below is to satisfy interface of `control` | |
mix()([{ elem : 'control' }]), | |
attrs()(function() { | |
var ctx = this.ctx, | |
attrs = {}, | |
tabIndex; | |
if(!this.mods.disabled) { | |
if(ctx.url) { | |
attrs.href = ctx.url; | |
tabIndex = ctx.tabIndex; | |
} else { | |
tabIndex = ctx.tabIndex || 0; | |
} | |
} | |
typeof tabIndex === 'undefined' || (attrs.tabindex = tabIndex); | |
ctx.title && (attrs.title = ctx.title); | |
ctx.target && (attrs.target = ctx.target); | |
return attrs; | |
}), | |
mod('disabled', true) | |
.js()(function() { | |
return this.extend(applyNext(), { url : this.ctx.url }); | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/link/link.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/link/_pseudo/link_pseudo.bemhtml */ | |
block('link').mod('pseudo', true)( | |
tag().match(function() { return !this.ctx.url; })('span') | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/link/_pseudo/link_pseudo.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/modal/modal.bemhtml */ | |
block('modal')( | |
js()(true), | |
mix()(function() { | |
return { | |
block : 'popup', | |
js : { zIndexGroupLevel : this.ctx.zIndexGroupLevel || 20 }, | |
mods : { autoclosable : this.mods.autoclosable } | |
}; | |
}), | |
content()(function() { | |
return { | |
elem : 'table', | |
content : { | |
elem : 'cell', | |
content : { | |
elem : 'content', | |
content : applyNext() | |
} | |
} | |
}; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/modal/modal.bemhtml */ | |
/* begin: /Users/indutny/Code/bem/bem-components/common.blocks/checkbox/_type/checkbox_type_button.bemhtml */ | |
block('checkbox').mod('type', 'button')( | |
content()(function() { | |
var ctx = this.ctx, | |
mods = this.mods; | |
return [{ | |
block : 'button', | |
mods : { | |
togglable : 'check', | |
checked : mods.checked, | |
disabled : mods.disabled, | |
theme : mods.theme, | |
size : mods.size | |
}, | |
title : ctx.title, | |
content : [ | |
ctx.icon, | |
typeof ctx.text !== 'undefined'? | |
{ elem : 'text', content : ctx.text } : | |
'' | |
] | |
}, { | |
block : 'checkbox', | |
elem : 'control', | |
checked : mods.checked, | |
disabled : mods.disabled, | |
name : ctx.name, | |
val : ctx.val | |
}]; | |
}) | |
); | |
/* end: /Users/indutny/Code/bem/bem-components/common.blocks/checkbox/_type/checkbox_type_button.bemhtml */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var $$mode = "", $$block = "", $$elem = "", $$elemMods = null, $$mods = null; | |
var __$ref = {}; | |
function apply(ctx) { | |
ctx = ctx || this; | |
$$mods = ctx["mods"]; | |
$$elemMods = ctx["elemMods"]; | |
$$elem = ctx["elem"]; | |
$$block = ctx["block"]; | |
$$mode = ctx["_mode"]; | |
try { | |
return applyc(ctx, __$ref); | |
} catch (e) { | |
e.xjstContext = ctx; | |
throw e; | |
} | |
} | |
exports.apply = apply; | |
function applyc(__$ctx, __$ref) { | |
var __$t = $$mode; | |
if (__$t === "content") { | |
var __$r = __$g0(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} else if (__$t === "mix") { | |
var __$t = $$block; | |
if (__$t === "button") { | |
if (!$$elem) { | |
return { | |
elem: "control" | |
}; | |
} | |
} else if (__$t === "modal") { | |
if (!$$elem) { | |
return { | |
block: "popup", | |
js: { | |
zIndexGroupLevel: __$ctx.ctx.zIndexGroupLevel || 20 | |
}, | |
mods: { | |
autoclosable: $$mods.autoclosable | |
} | |
}; | |
} | |
} else if (__$t === "link") { | |
if (!$$elem) { | |
return [ { | |
elem: "control" | |
} ]; | |
} | |
} else if (__$t === "textarea") { | |
if (!$$elem) { | |
return { | |
elem: "control" | |
}; | |
} | |
} else if (__$t === "radio-group") { | |
if (!$$elem) { | |
return [ { | |
block: "control-group" | |
} ]; | |
} | |
} else if (__$t === "menu") { | |
if (!$$elem) { | |
return [ { | |
elem: "control" | |
} ]; | |
} | |
} else if (__$t === "checkbox-group") { | |
if (!$$elem) { | |
return [ { | |
block: "control-group" | |
} ]; | |
} | |
} | |
return undefined; | |
} else if (__$t === "js") { | |
var __$r = __$g1(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} else if (__$t === "tag") { | |
var __$r = __$g2(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} else if (__$t === "attrs") { | |
var __$r = __$g3(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} else if (__$t === "default") { | |
var __$r = __$g4(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} else if (__$t === "bem") { | |
var __$t = $$block; | |
if (__$t === "page") { | |
var __$t = $$elem; | |
if (__$t === "js") { | |
return false; | |
} else if (__$t === "link") { | |
return false; | |
} else if (__$t === "css") { | |
return false; | |
} else if (__$t === "favicon") { | |
return false; | |
} else if (__$t === "meta") { | |
return false; | |
} else if (__$t === "head") { | |
return false; | |
} | |
} else if (__$t === "ua") { | |
if (!$$elem) { | |
return false; | |
} | |
} | |
return undefined; | |
} else if (__$t === "cls") { | |
return undefined; | |
} else if (__$t === "") { | |
if (__$ctx.ctx && __$ctx.ctx._vow && (__$ctx.__$a0 & 134217728) === 0) { | |
var __$r = __$b142(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
if (__$ctx.isSimple(__$ctx.ctx)) { | |
var __$r = __$b143(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
if (!__$ctx.ctx) { | |
var __$r = __$b144(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
if (__$ctx.isArray(__$ctx.ctx)) { | |
var __$r = __$b145(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
var __$r = __$b146(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} | |
[ function(exports, context) { | |
var undef, BEM_ = {}, toString = Object.prototype.toString, slice = Array.prototype.slice, isArray = Array.isArray || function(obj) { | |
return toString.call(obj) === "[object Array]"; | |
}, SHORT_TAGS = { | |
area: 1, | |
base: 1, | |
br: 1, | |
col: 1, | |
command: 1, | |
embed: 1, | |
hr: 1, | |
img: 1, | |
input: 1, | |
keygen: 1, | |
link: 1, | |
meta: 1, | |
param: 1, | |
source: 1, | |
wbr: 1 | |
}; | |
(function(BEM, undefined) { | |
var MOD_DELIM = "_", ELEM_DELIM = "__", NAME_PATTERN = "[a-zA-Z0-9-]+"; | |
function buildModPostfix(modName, modVal) { | |
var res = MOD_DELIM + modName; | |
if (modVal !== true) res += MOD_DELIM + modVal; | |
return res; | |
} | |
function buildBlockClass(name, modName, modVal) { | |
var res = name; | |
if (modVal) res += buildModPostfix(modName, modVal); | |
return res; | |
} | |
function buildElemClass(block, name, modName, modVal) { | |
var res = buildBlockClass(block) + ELEM_DELIM + name; | |
if (modVal) res += buildModPostfix(modName, modVal); | |
return res; | |
} | |
BEM.INTERNAL = { | |
NAME_PATTERN: NAME_PATTERN, | |
MOD_DELIM: MOD_DELIM, | |
ELEM_DELIM: ELEM_DELIM, | |
buildModPostfix: buildModPostfix, | |
buildClass: function(block, elem, modName, modVal) { | |
var typeOfModName = typeof modName; | |
if (typeOfModName === "string" || typeOfModName === "boolean") { | |
var typeOfModVal = typeof modVal; | |
if (typeOfModVal !== "string" && typeOfModVal !== "boolean") { | |
modVal = modName; | |
modName = elem; | |
elem = undef; | |
} | |
} else if (typeOfModName !== "undefined") { | |
modName = undef; | |
} else if (elem && typeof elem !== "string") { | |
elem = undef; | |
} | |
if (!(elem || modName)) { | |
return block; | |
} | |
return elem ? buildElemClass(block, elem, modName, modVal) : buildBlockClass(block, modName, modVal); | |
}, | |
buildModsClasses: function(block, elem, mods) { | |
var res = ""; | |
if (mods) { | |
var modName; | |
for (modName in mods) { | |
if (!mods.hasOwnProperty(modName)) continue; | |
var modVal = mods[modName]; | |
if (!modVal && modVal !== 0) continue; | |
typeof modVal !== "boolean" && (modVal += ""); | |
res += " " + (elem ? buildElemClass(block, elem, modName, modVal) : buildBlockClass(block, modName, modVal)); | |
} | |
} | |
return res; | |
}, | |
buildClasses: function(block, elem, mods) { | |
var res = ""; | |
res += elem ? buildElemClass(block, elem) : buildBlockClass(block); | |
res += this.buildModsClasses(block, elem, mods); | |
return res; | |
} | |
}; | |
})(BEM_); | |
var ts = { | |
'"': """, | |
"&": "&", | |
"<": "<", | |
">": ">" | |
}, f = function(t) { | |
return ts[t] || t; | |
}; | |
var buildEscape = function(r) { | |
r = new RegExp(r, "g"); | |
return function(s) { | |
return ("" + s).replace(r, f); | |
}; | |
}; | |
context.BEMContext = BEMContext; | |
function BEMContext(context, apply_) { | |
this.ctx = typeof context === "undefined" ? "" : context; | |
this.apply = apply_; | |
this._str = ""; | |
var _this = this; | |
this._buf = { | |
push: function() { | |
var chunks = slice.call(arguments).join(""); | |
_this._str += chunks; | |
}, | |
join: function() { | |
return this._str; | |
} | |
}; | |
this._ = this; | |
this._start = true; | |
this._mode = ""; | |
this._listLength = 0; | |
this._notNewList = false; | |
this.position = 0; | |
this.block = undef; | |
this.elem = undef; | |
this.mods = undef; | |
this.elemMods = undef; | |
} | |
BEMContext.prototype.isArray = isArray; | |
BEMContext.prototype.isSimple = function isSimple(obj) { | |
if (!obj || obj === true) return true; | |
var t = typeof obj; | |
return t === "string" || t === "number"; | |
}; | |
BEMContext.prototype.isShortTag = function isShortTag(t) { | |
return SHORT_TAGS.hasOwnProperty(t); | |
}; | |
BEMContext.prototype.extend = function extend(o1, o2) { | |
if (!o1 || !o2) return o1 || o2; | |
var res = {}, n; | |
for (n in o1) o1.hasOwnProperty(n) && (res[n] = o1[n]); | |
for (n in o2) o2.hasOwnProperty(n) && (res[n] = o2[n]); | |
return res; | |
}; | |
var cnt = 0, id = +new Date(), expando = "__" + id, get = function() { | |
return "uniq" + id + ++cnt; | |
}; | |
BEMContext.prototype.identify = function(obj, onlyGet) { | |
if (!obj) return get(); | |
if (onlyGet || obj[expando]) { | |
return obj[expando]; | |
} else { | |
return obj[expando] = get(); | |
} | |
}; | |
BEMContext.prototype.xmlEscape = buildEscape("[&<>]"); | |
BEMContext.prototype.attrEscape = buildEscape('["&<>]'); | |
BEMContext.prototype.BEM = BEM_; | |
BEMContext.prototype.isFirst = function isFirst() { | |
return this.position === 1; | |
}; | |
BEMContext.prototype.isLast = function isLast() { | |
return this.position === this._listLength; | |
}; | |
BEMContext.prototype.generateId = function generateId() { | |
return this.identify(this.ctx); | |
}; | |
var oldApply = exports.apply; | |
exports.apply = BEMContext.apply = function BEMContext_apply(context) { | |
var ctx = new BEMContext(context || this, oldApply); | |
ctx.apply(); | |
return ctx._str; | |
}; | |
BEMContext.prototype.reapply = BEMContext.apply; | |
}, function() { | |
(function(global, bem_) { | |
if (bem_.I18N) { | |
return; | |
} | |
global.BEM = bem_; | |
var i18n = global.BEM.I18N = function(keyset, key) { | |
return key; | |
}; | |
i18n.keyset = function() { | |
return i18n; | |
}; | |
i18n.key = function(key) { | |
return key; | |
}; | |
i18n.lang = function() { | |
return; | |
}; | |
})(this, typeof BEM === "undefined" ? {} : BEM); | |
} ].forEach(function(fn) { | |
fn(exports, this); | |
}, { | |
recordExtensions: function(ctx) { | |
ctx["__$a0"] = 0; | |
ctx["_attach"] = undefined; | |
ctx["_mode"] = undefined; | |
ctx["ctx"] = undefined; | |
ctx["_select"] = undefined; | |
ctx["_checkedOptions"] = undefined; | |
ctx["_firstOption"] = undefined; | |
ctx["_menuMods"] = undefined; | |
ctx["_input"] = undefined; | |
ctx["_ieCommented"] = undefined; | |
ctx["_str"] = undefined; | |
ctx["block"] = undefined; | |
ctx["elem"] = undefined; | |
ctx["_notNewList"] = undefined; | |
ctx["position"] = undefined; | |
ctx["_listLength"] = undefined; | |
ctx["_currBlock"] = undefined; | |
ctx["mods"] = undefined; | |
ctx["elemMods"] = undefined; | |
}, | |
resetApplyNext: function(ctx) { | |
ctx["__$a0"] = 0; | |
} | |
}); | |
function __$b3(__$ctx, __$ref) { | |
var ctx__$153 = __$ctx.ctx, content__$154 = [ ctx__$153.icon ]; | |
"text" in ctx__$153 && content__$154.push({ | |
elem: "text", | |
content: ctx__$153.text | |
}); | |
return content__$154; | |
} | |
function __$b4(__$ctx, __$ref) { | |
var ctx__$0 = __$ctx.ctx, mods__$1 = $$mods; | |
return [ { | |
block: "button", | |
mods: { | |
togglable: "check", | |
checked: mods__$1.checked, | |
disabled: mods__$1.disabled, | |
theme: mods__$1.theme, | |
size: mods__$1.size | |
}, | |
title: ctx__$0.title, | |
content: [ ctx__$0.icon, typeof ctx__$0.text !== "undefined" ? { | |
elem: "text", | |
content: ctx__$0.text | |
} : "" ] | |
}, { | |
block: "checkbox", | |
elem: "control", | |
checked: mods__$1.checked, | |
disabled: mods__$1.disabled, | |
name: ctx__$0.name, | |
val: ctx__$0.val | |
} ]; | |
} | |
function __$b5(__$ctx, __$ref) { | |
var ctx__$144 = __$ctx.ctx, mods__$145 = $$mods; | |
return [ { | |
elem: "box", | |
content: { | |
elem: "control", | |
checked: mods__$145.checked, | |
disabled: mods__$145.disabled, | |
name: ctx__$144.name, | |
val: ctx__$144.val | |
} | |
}, ctx__$144.text ]; | |
} | |
function __$b8(__$ctx, __$ref) { | |
var ctx__$22 = __$ctx.ctx, button__$23 = ctx__$22.button; | |
__$ctx.isSimple(button__$23) && (button__$23 = { | |
block: "button", | |
tag: "span", | |
text: button__$23 | |
}); | |
var attachMods__$24 = $$mods, buttonMods__$25 = button__$23.mods || (button__$23.mods = {}); | |
[ "size", "theme", "disabled", "focused" ].forEach(function(mod) { | |
buttonMods__$25[mod] || (buttonMods__$25[mod] = attachMods__$24[mod]); | |
}); | |
return [ button__$23, { | |
elem: "no-file", | |
content: __$ctx.ctx.noFileText | |
} ]; | |
} | |
function __$b11(__$ctx, __$ref) { | |
var res__$52 = __$ctx._checkedOptions.map(function(option) { | |
return { | |
elem: "control", | |
val: option.val | |
}; | |
}); | |
res__$52.push(function __$lb__$53() { | |
var __$r__$54; | |
var __$l0__$55 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 128; | |
__$r__$54 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l0__$55; | |
return __$r__$54; | |
}()); | |
return res__$52; | |
} | |
function __$b12(__$ctx, __$ref) { | |
var checkedOptions__$56 = __$ctx._checkedOptions; | |
return [ { | |
elem: "text", | |
content: checkedOptions__$56.length === 1 ? checkedOptions__$56[0].text : checkedOptions__$56.reduce(function(res, option) { | |
return res + (res ? ", " : "") + (option.checkedText || option.text); | |
}, "") || __$ctx._select.text | |
} ]; | |
} | |
function __$b16(__$ctx, __$ref) { | |
var ctx__$42 = __$ctx.ctx, mods__$43 = $$mods; | |
return [ { | |
block: "button", | |
mods: { | |
togglable: mods__$43.mode === "radio-check" ? "check" : "radio", | |
checked: mods__$43.checked, | |
disabled: mods__$43.disabled, | |
theme: mods__$43.theme, | |
size: mods__$43.size | |
}, | |
title: ctx__$42.title, | |
content: [ ctx__$42.icon, typeof ctx__$42.text !== "undefined" ? { | |
elem: "text", | |
content: ctx__$42.text | |
} : "" ] | |
}, { | |
block: "radio", | |
elem: "control", | |
checked: mods__$43.checked, | |
disabled: mods__$43.disabled, | |
name: ctx__$42.name, | |
val: ctx__$42.val | |
} ]; | |
} | |
function __$b17(__$ctx, __$ref) { | |
var ctx__$46 = __$ctx.ctx; | |
return [ { | |
elem: "box", | |
content: { | |
elem: "control", | |
checked: $$mods.checked, | |
disabled: $$mods.disabled, | |
name: ctx__$46.name, | |
val: ctx__$46.val | |
} | |
}, ctx__$46.text ]; | |
} | |
function __$b18(__$ctx, __$ref) { | |
var mods__$47 = $$mods, ctx__$48 = __$ctx.ctx, isValDef__$49 = typeof ctx__$48.val !== "undefined"; | |
return (ctx__$48.options || []).map(function(option, i) { | |
return [ !!i && !mods__$47.type && { | |
tag: "br" | |
}, { | |
block: "radio", | |
mods: { | |
type: mods__$47.type, | |
mode: mods__$47.mode, | |
theme: mods__$47.theme, | |
size: mods__$47.size, | |
checked: isValDef__$49 && ctx__$48.val === option.val, | |
disabled: option.disabled || mods__$47.disabled | |
}, | |
name: ctx__$48.name, | |
val: option.val, | |
text: option.text, | |
title: option.title, | |
icon: option.icon | |
} ]; | |
}); | |
} | |
function __$b22(__$ctx, __$ref) { | |
var mods__$146 = $$mods, ctx__$147 = __$ctx.ctx, val__$148 = ctx__$147.val, isValDef__$149 = typeof val__$148 !== "undefined"; | |
if (isValDef__$149 && !Array.isArray(val__$148)) throw Error("checkbox-group: val must be an array"); | |
return (ctx__$147.options || []).map(function(option, i) { | |
return [ !!i && !mods__$146.type && { | |
tag: "br" | |
}, { | |
block: "checkbox", | |
mods: { | |
type: mods__$146.type, | |
theme: mods__$146.theme, | |
size: mods__$146.size, | |
checked: isValDef__$149 && val__$148.indexOf(option.val) > -1, | |
disabled: option.disabled || mods__$146.disabled | |
}, | |
name: ctx__$147.name, | |
val: option.val, | |
text: option.text, | |
title: option.title, | |
icon: option.icon | |
} ]; | |
}); | |
} | |
function __$b23(__$ctx, __$ref) { | |
var ctx__$161 = __$ctx.ctx, cond__$162 = ctx__$161.condition.replace("<", "lt").replace(">", "gt").replace("=", "e"), hasNegation__$163 = cond__$162.indexOf("!") > -1, includeOthers__$164 = ctx__$161.msieOnly === false, hasNegationOrIncludeOthers__$165 = hasNegation__$163 || includeOthers__$164; | |
return [ "<!--[if " + cond__$162 + "]>", includeOthers__$164 ? "<!" : "", hasNegationOrIncludeOthers__$165 ? "-->" : "", function __$lb__$166() { | |
var __$r__$167; | |
var __$l0__$168 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 4194304; | |
__$r__$167 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l0__$168; | |
return __$r__$167; | |
}(), hasNegationOrIncludeOthers__$165 ? "<!--" : "", "<![endif]-->" ]; | |
} | |
function __$b47(__$ctx, __$ref) { | |
var ctx__$84 = __$ctx.ctx; | |
return { | |
name: ctx__$84.name, | |
optionsMaxHeight: ctx__$84.optionsMaxHeight | |
}; | |
} | |
function __$b51(__$ctx, __$ref) { | |
var ctx__$60 = __$ctx.ctx; | |
return { | |
mainOffset: ctx__$60.mainOffset, | |
secondaryOffset: ctx__$60.secondaryOffset, | |
viewportOffset: ctx__$60.viewportOffset, | |
directions: ctx__$60.directions, | |
zIndexGroupLevel: ctx__$60.zIndexGroupLevel | |
}; | |
} | |
function __$b100(__$ctx, __$ref) { | |
var ctx__$155 = __$ctx.ctx, attrs__$156 = { | |
type: $$mods.type || "button", | |
name: ctx__$155.name, | |
value: ctx__$155.val | |
}; | |
$$mods.disabled && (attrs__$156.disabled = "disabled"); | |
return __$ctx.extend(function __$lb__$157() { | |
var __$r__$158; | |
var __$l0__$159 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 2097152; | |
__$r__$158 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l0__$159; | |
return __$r__$158; | |
}(), attrs__$156); | |
} | |
function __$b101(__$ctx, __$ref) { | |
var ctx__$160 = __$ctx.ctx; | |
return { | |
role: "button", | |
tabindex: ctx__$160.tabIndex, | |
id: ctx__$160.id, | |
title: ctx__$160.title | |
}; | |
} | |
function __$b102(__$ctx, __$ref) { | |
var attrs__$142 = { | |
type: "checkbox", | |
autocomplete: "off" | |
}, ctx__$143 = __$ctx.ctx; | |
attrs__$142.name = ctx__$143.name; | |
attrs__$142.value = ctx__$143.val; | |
ctx__$143.checked && (attrs__$142.checked = "checked"); | |
ctx__$143.disabled && (attrs__$142.disabled = "disabled"); | |
return attrs__$142; | |
} | |
function __$b103(__$ctx, __$ref) { | |
var ctx__$8 = __$ctx.ctx, attrs__$9 = {}, tabIndex__$10; | |
if (!$$mods.disabled) { | |
if (ctx__$8.url) { | |
attrs__$9.href = ctx__$8.url; | |
tabIndex__$10 = ctx__$8.tabIndex; | |
} else { | |
tabIndex__$10 = ctx__$8.tabIndex || 0; | |
} | |
} | |
typeof tabIndex__$10 === "undefined" || (attrs__$9.tabindex = tabIndex__$10); | |
ctx__$8.title && (attrs__$9.title = ctx__$8.title); | |
ctx__$8.target && (attrs__$9.target = ctx__$8.target); | |
return attrs__$9; | |
} | |
function __$b104(__$ctx, __$ref) { | |
var ctx__$15 = __$ctx.ctx, attrs__$16 = { | |
id: ctx__$15.id, | |
name: ctx__$15.name, | |
tabindex: ctx__$15.tabIndex, | |
placeholder: ctx__$15.placeholder | |
}; | |
ctx__$15.autocomplete === false && (attrs__$16.autocomplete = "off"); | |
$$mods.disabled && (attrs__$16.disabled = "disabled"); | |
return attrs__$16; | |
} | |
function __$b105(__$ctx, __$ref) { | |
var attrs__$17 = { | |
type: "file" | |
}, attach__$18 = __$ctx._attach; | |
if (attach__$18) { | |
attrs__$17.name = attach__$18.name; | |
attach__$18.mods && attach__$18.mods.disabled && (attrs__$17.disabled = "disabled"); | |
attach__$18.tabIndex && (attrs__$17.tabindex = attach__$18.tabIndex); | |
} | |
return attrs__$17; | |
} | |
function __$b107(__$ctx, __$ref) { | |
var ctx__$44 = __$ctx.ctx, attrs__$45 = { | |
type: "radio", | |
autocomplete: "off", | |
name: ctx__$44.name, | |
value: ctx__$44.val | |
}; | |
ctx__$44.checked && (attrs__$45.checked = "checked"); | |
ctx__$44.disabled && (attrs__$45.disabled = "disabled"); | |
return attrs__$45; | |
} | |
function __$b108(__$ctx, __$ref) { | |
var attrs__$50 = { | |
"aria-hidden": "true" | |
}, url__$51 = __$ctx.ctx.url; | |
if (url__$51) attrs__$50.style = "background-image:url(" + url__$51 + ")"; | |
return attrs__$50; | |
} | |
function __$b112(__$ctx, __$ref) { | |
var attrs__$118 = { | |
role: "menu" | |
}; | |
$$mods.disabled || (attrs__$118.tabindex = 0); | |
return attrs__$118; | |
} | |
function __$b114(__$ctx, __$ref) { | |
var input__$134 = __$ctx._input, attrs__$135 = { | |
id: input__$134.id, | |
name: input__$134.name, | |
value: input__$134.val, | |
maxlength: input__$134.maxLength, | |
tabindex: input__$134.tabIndex, | |
placeholder: input__$134.placeholder | |
}; | |
input__$134.autocomplete === false && (attrs__$135.autocomplete = "off"); | |
$$mods.disabled && (attrs__$135.disabled = "disabled"); | |
return attrs__$135; | |
} | |
function __$b115(__$ctx, __$ref) { | |
var attrs__$172 = {}; | |
if (__$ctx.ctx.url) { | |
attrs__$172.src = __$ctx.ctx.url; | |
} else if (__$ctx._nonceCsp) { | |
attrs__$172.nonce = __$ctx._nonceCsp; | |
} | |
return attrs__$172; | |
} | |
function __$b119(__$ctx, __$ref) { | |
var ctx__$11 = __$ctx.ctx; | |
typeof ctx__$11.url === "object" && (ctx__$11.url = __$ctx.reapply(ctx__$11.url)); | |
var __$r__$13; | |
var __$l0__$14 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 4; | |
__$r__$13 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l0__$14; | |
return; | |
} | |
function __$b120(__$ctx, __$ref) { | |
var __$r__$27; | |
var __$l0__$28 = __$ctx._attach; | |
__$ctx._attach = __$ctx.ctx; | |
var __$r__$30; | |
var __$l1__$31 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 16; | |
__$r__$30 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l1__$31; | |
__$r__$27 = __$r__$30; | |
__$ctx._attach = __$l0__$28; | |
return; | |
} | |
function __$b121(__$ctx, __$ref) { | |
if (!__$ctx.ctx) return ""; | |
var ctx__$32 = __$ctx.ctx, keyset__$33 = ctx__$32.keyset, key__$34 = ctx__$32.key, params__$35 = ctx__$32.params || {}; | |
if (!(keyset__$33 || key__$34)) return ""; | |
if (typeof ctx__$32.content === "undefined" || ctx__$32.content !== null) { | |
params__$35.content = exports.apply(ctx__$32.content); | |
} | |
__$ctx._buf.push(BEM.I18N(keyset__$33, key__$34, params__$35)); | |
return; | |
} | |
function __$b122(__$ctx, __$ref) { | |
var mods__$71 = $$mods; | |
var __$r__$73; | |
var __$l0__$74 = $$mode; | |
$$mode = ""; | |
var __$l1__$75 = __$ctx.ctx; | |
__$ctx.ctx = { | |
block: "button", | |
mix: { | |
block: $$block, | |
elem: $$elem | |
}, | |
mods: { | |
size: mods__$71.size, | |
theme: mods__$71.theme, | |
view: mods__$71.view, | |
focused: mods__$71.focused, | |
disabled: mods__$71.disabled, | |
checked: mods__$71.mode !== "radio" && !!__$ctx._checkedOptions.length | |
}, | |
id: __$ctx._select.id, | |
tabIndex: __$ctx._select.tabIndex, | |
content: [ function __$lb__$76() { | |
var __$r__$77; | |
var __$l3__$78 = $$mode; | |
$$mode = "content"; | |
__$r__$77 = applyc(__$ctx, __$ref); | |
$$mode = __$l3__$78; | |
return __$r__$77; | |
}(), { | |
block: "icon", | |
mix: { | |
block: "select", | |
elem: "tick" | |
} | |
} ] | |
}; | |
var __$r__$79; | |
var __$l2__$80 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 1024; | |
__$r__$79 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l2__$80; | |
__$r__$73 = __$r__$79; | |
$$mode = __$l0__$74; | |
__$ctx.ctx = __$l1__$75; | |
return; | |
} | |
function __$b123(__$ctx, __$ref) { | |
var mods__$61 = $$mods, optionToMenuItem__$62 = function(option) { | |
var res__$63 = { | |
block: "menu-item", | |
mods: { | |
disabled: mods__$61.disabled || option.disabled | |
}, | |
val: option.val, | |
js: { | |
checkedText: option.checkedText | |
}, | |
content: option.text | |
}; | |
if (option.icon) { | |
res__$63.js.text = option.text; | |
res__$63.content = [ option.icon, res__$63.content ]; | |
} | |
return res__$63; | |
}; | |
var __$r__$65; | |
var __$l0__$66 = $$mode; | |
$$mode = ""; | |
var __$l1__$67 = __$ctx.ctx; | |
__$ctx.ctx = { | |
block: "menu", | |
mix: { | |
block: $$block, | |
elem: $$elem | |
}, | |
mods: { | |
size: mods__$61.size, | |
theme: mods__$61.theme, | |
disabled: mods__$61.disabled, | |
mode: mods__$61.mode | |
}, | |
val: __$ctx._select.val, | |
attrs: { | |
tabindex: undefined | |
}, | |
content: __$ctx._select.options.map(function(optionOrGroup) { | |
return optionOrGroup.group ? { | |
elem: "group", | |
mods: { | |
"has-title": !!optionOrGroup.title | |
}, | |
title: optionOrGroup.title, | |
content: optionOrGroup.group.map(optionToMenuItem__$62) | |
} : optionToMenuItem__$62(optionOrGroup); | |
}) | |
}; | |
var __$r__$69; | |
var __$l2__$70 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 512; | |
__$r__$69 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l2__$70; | |
__$r__$65 = __$r__$69; | |
$$mode = __$l0__$66; | |
__$ctx.ctx = __$l1__$67; | |
return; | |
} | |
function __$b124(__$ctx, __$ref) { | |
if (!$$mods.mode) throw Error("Can't build select without mode modifier"); | |
var ctx__$85 = __$ctx.ctx, isValDef__$86 = typeof ctx__$85.val !== "undefined", isModeCheck__$87 = $$mods.mode === "check", firstOption__$88, checkedOptions__$89 = [], containsVal__$90 = function(val) { | |
return isValDef__$86 && (isModeCheck__$87 ? ctx__$85.val.indexOf(val) > -1 : ctx__$85.val === val); | |
}, iterateOptions__$91 = function(content) { | |
var i__$92 = 0, option__$93; | |
while (option__$93 = content[i__$92++]) { | |
if (option__$93.group) { | |
iterateOptions__$91(option__$93.group); | |
} else { | |
firstOption__$88 || (firstOption__$88 = option__$93); | |
if (containsVal__$90(option__$93.val)) { | |
option__$93.checked = true; | |
checkedOptions__$89.push(option__$93); | |
} | |
} | |
} | |
}; | |
iterateOptions__$91(ctx__$85.options); | |
var __$r__$95; | |
var __$l0__$96 = __$ctx._select; | |
__$ctx._select = __$ctx.ctx; | |
var __$l1__$97 = __$ctx._checkedOptions; | |
__$ctx._checkedOptions = checkedOptions__$89; | |
var __$l2__$98 = __$ctx._firstOption; | |
__$ctx._firstOption = firstOption__$88; | |
var __$r__$100; | |
var __$l3__$101 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 4096; | |
__$r__$100 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l3__$101; | |
__$r__$95 = __$r__$100; | |
__$ctx._select = __$l0__$96; | |
__$ctx._checkedOptions = __$l1__$97; | |
__$ctx._firstOption = __$l2__$98; | |
return; | |
} | |
function __$b125(__$ctx, __$ref) { | |
(__$ctx._firstItem.mods = __$ctx._firstItem.mods || {}).checked = true; | |
var __$r__$103; | |
var __$l0__$104 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 8192; | |
__$r__$103 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l0__$104; | |
return; | |
} | |
function __$b126(__$ctx, __$ref) { | |
var ctx__$119 = __$ctx.ctx, mods__$120 = $$mods, firstItem__$121, checkedItems__$122 = []; | |
if (ctx__$119.content) { | |
var isValDef__$123 = typeof ctx__$119.val !== "undefined", containsVal__$124 = function(val) { | |
return isValDef__$123 && (mods__$120.mode === "check" ? ctx__$119.val.indexOf(val) > -1 : ctx__$119.val === val); | |
}, iterateItems__$125 = function(content) { | |
var i__$126 = 0, itemOrGroup__$127; | |
while (itemOrGroup__$127 = content[i__$126++]) { | |
if (itemOrGroup__$127.block === "menu-item") { | |
firstItem__$121 || (firstItem__$121 = itemOrGroup__$127); | |
if (containsVal__$124(itemOrGroup__$127.val)) { | |
(itemOrGroup__$127.mods = itemOrGroup__$127.mods || {}).checked = true; | |
checkedItems__$122.push(itemOrGroup__$127); | |
} | |
} else { | |
iterateItems__$125(itemOrGroup__$127.content); | |
} | |
} | |
}; | |
if (!__$ctx.isArray(ctx__$119.content)) throw Error("menu: content must be an array of the menu items"); | |
iterateItems__$125(ctx__$119.content); | |
} | |
__$ctx._firstItem = firstItem__$121; | |
__$ctx._checkedItems = checkedItems__$122; | |
var __$r__$129; | |
var __$l0__$130 = __$ctx._menuMods; | |
__$ctx._menuMods = { | |
theme: mods__$120.theme, | |
disabled: mods__$120.disabled | |
}; | |
var __$r__$132; | |
var __$l1__$133 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 262144; | |
__$r__$132 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l1__$133; | |
__$r__$129 = __$r__$132; | |
__$ctx._menuMods = __$l0__$130; | |
return; | |
} | |
function __$b127(__$ctx, __$ref) { | |
var mods__$114 = $$mods; | |
mods__$114.theme = mods__$114.theme || __$ctx._menuMods.theme; | |
mods__$114.disabled = mods__$114.disabled || __$ctx._menuMods.disabled; | |
var __$r__$116; | |
var __$l0__$117 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 131072; | |
__$r__$116 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l0__$117; | |
return; | |
} | |
function __$b128(__$ctx, __$ref) { | |
var __$r__$137; | |
var __$l0__$138 = __$ctx._input; | |
__$ctx._input = __$ctx.ctx; | |
var __$r__$140; | |
var __$l1__$141 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 524288; | |
__$r__$140 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l1__$141; | |
__$r__$137 = __$r__$140; | |
__$ctx._input = __$l0__$138; | |
return; | |
} | |
function __$b129(__$ctx, __$ref) { | |
var url__$173 = __$ctx.ctx.url; | |
var __$r__$175; | |
var __$l0__$176 = $$mode; | |
$$mode = ""; | |
var __$l1__$177 = __$ctx.ctx; | |
__$ctx.ctx = [ 6, 7, 8, 9 ].map(function(v) { | |
return { | |
elem: "css", | |
url: url__$173 + ".ie" + v + ".css", | |
ie: "IE " + v | |
}; | |
}); | |
var __$r__$179; | |
var __$l2__$180 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 16777216; | |
__$r__$179 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l2__$180; | |
__$r__$175 = __$r__$179; | |
$$mode = __$l0__$176; | |
__$ctx.ctx = __$l1__$177; | |
return; | |
} | |
function __$b130(__$ctx, __$ref) { | |
var ie__$181 = __$ctx.ctx.ie, hideRule__$182 = !ie__$181 ? [ "gt IE 9", "<!-->", "<!--" ] : ie__$181 === "!IE" ? [ ie__$181, "<!-->", "<!--" ] : [ ie__$181, "", "" ]; | |
var __$r__$184; | |
var __$l0__$185 = $$mode; | |
$$mode = ""; | |
var __$l3__$186 = __$ctx.ctx; | |
var __$l1__$187 = __$l3__$186._ieCommented; | |
__$l3__$186._ieCommented = true; | |
var __$l2__$188 = __$ctx.ctx; | |
__$ctx.ctx = [ "<!--[if " + hideRule__$182[0] + "]>" + hideRule__$182[1], __$ctx.ctx, hideRule__$182[2] + "<![endif]-->" ]; | |
__$r__$184 = applyc(__$ctx, __$ref); | |
$$mode = __$l0__$185; | |
__$l3__$186._ieCommented = __$l1__$187; | |
__$ctx.ctx = __$l2__$188; | |
return; | |
} | |
function __$b131(__$ctx, __$ref) { | |
var ctx__$192 = __$ctx.ctx; | |
__$ctx._nonceCsp = ctx__$192.nonce; | |
var __$r__$194; | |
var __$l0__$195 = $$mode; | |
$$mode = ""; | |
var __$l1__$196 = __$ctx.ctx; | |
__$ctx.ctx = [ ctx__$192.doctype || "<!DOCTYPE html>", { | |
tag: "html", | |
cls: "ua_js_no", | |
content: [ { | |
elem: "head", | |
content: [ { | |
tag: "meta", | |
attrs: { | |
charset: "utf-8" | |
} | |
}, ctx__$192.uaCompatible === false ? "" : { | |
tag: "meta", | |
attrs: { | |
"http-equiv": "X-UA-Compatible", | |
content: ctx__$192.uaCompatible || "IE=edge" | |
} | |
}, { | |
tag: "title", | |
content: ctx__$192.title | |
}, { | |
block: "ua", | |
attrs: { | |
nonce: ctx__$192.nonce | |
} | |
}, ctx__$192.head, ctx__$192.styles, ctx__$192.favicon ? { | |
elem: "favicon", | |
url: ctx__$192.favicon | |
} : "" ] | |
}, ctx__$192 ] | |
} ]; | |
var __$r__$198; | |
var __$l2__$199 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 67108864; | |
__$r__$198 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l2__$199; | |
__$r__$194 = __$r__$198; | |
$$mode = __$l0__$195; | |
__$ctx.ctx = __$l1__$196; | |
return; | |
} | |
function __$b132(__$ctx, __$ref) { | |
var BEM_INTERNAL__$200 = __$ctx.BEM.INTERNAL, ctx__$201 = __$ctx.ctx, isBEM__$202, tag__$203, res__$204; | |
var __$r__$206; | |
var __$l0__$207 = __$ctx._str; | |
__$ctx._str = ""; | |
var vBlock__$208 = $$block; | |
var __$r__$210; | |
var __$l1__$211 = $$mode; | |
$$mode = "tag"; | |
__$r__$210 = applyc(__$ctx, __$ref); | |
$$mode = __$l1__$211; | |
tag__$203 = __$r__$210; | |
typeof tag__$203 !== "undefined" || (tag__$203 = ctx__$201.tag); | |
typeof tag__$203 !== "undefined" || (tag__$203 = "div"); | |
if (tag__$203) { | |
var jsParams__$212, js__$213; | |
if (vBlock__$208 && ctx__$201.js !== false) { | |
var __$r__$214; | |
var __$l2__$215 = $$mode; | |
$$mode = "js"; | |
__$r__$214 = applyc(__$ctx, __$ref); | |
$$mode = __$l2__$215; | |
js__$213 = __$r__$214; | |
js__$213 = js__$213 ? __$ctx.extend(ctx__$201.js, js__$213 === true ? {} : js__$213) : ctx__$201.js === true ? {} : ctx__$201.js; | |
js__$213 && ((jsParams__$212 = {})[BEM_INTERNAL__$200.buildClass(vBlock__$208, ctx__$201.elem)] = js__$213); | |
} | |
__$ctx._str += "<" + tag__$203; | |
var __$r__$216; | |
var __$l3__$217 = $$mode; | |
$$mode = "bem"; | |
__$r__$216 = applyc(__$ctx, __$ref); | |
$$mode = __$l3__$217; | |
isBEM__$202 = __$r__$216; | |
typeof isBEM__$202 !== "undefined" || (isBEM__$202 = typeof ctx__$201.bem !== "undefined" ? ctx__$201.bem : ctx__$201.block || ctx__$201.elem); | |
var __$r__$219; | |
var __$l4__$220 = $$mode; | |
$$mode = "cls"; | |
__$r__$219 = applyc(__$ctx, __$ref); | |
$$mode = __$l4__$220; | |
var cls__$218 = __$r__$219; | |
cls__$218 || (cls__$218 = ctx__$201.cls); | |
var addJSInitClass__$221 = ctx__$201.block && jsParams__$212 && !ctx__$201.elem; | |
if (isBEM__$202 || cls__$218) { | |
__$ctx._str += ' class="'; | |
if (isBEM__$202) { | |
__$ctx._str += BEM_INTERNAL__$200.buildClasses(vBlock__$208, ctx__$201.elem, ctx__$201.elemMods || ctx__$201.mods); | |
var __$r__$223; | |
var __$l5__$224 = $$mode; | |
$$mode = "mix"; | |
__$r__$223 = applyc(__$ctx, __$ref); | |
$$mode = __$l5__$224; | |
var mix__$222 = __$r__$223; | |
ctx__$201.mix && (mix__$222 = mix__$222 ? [].concat(mix__$222, ctx__$201.mix) : ctx__$201.mix); | |
if (mix__$222) { | |
var visited__$225 = {}, visitedKey__$226 = function(block, elem) { | |
return (block || "") + "__" + (elem || ""); | |
}; | |
visited__$225[visitedKey__$226(vBlock__$208, $$elem)] = true; | |
__$ctx.isArray(mix__$222) || (mix__$222 = [ mix__$222 ]); | |
for (var i__$227 = 0; i__$227 < mix__$222.length; i__$227++) { | |
var mixItem__$228 = mix__$222[i__$227], hasItem__$229 = mixItem__$228.block && (vBlock__$208 !== ctx__$201.block || mixItem__$228.block !== vBlock__$208) || mixItem__$228.elem, mixBlock__$230 = mixItem__$228.block || mixItem__$228._block || $$block, mixElem__$231 = mixItem__$228.elem || mixItem__$228._elem || $$elem; | |
hasItem__$229 && (__$ctx._str += " "); | |
__$ctx._str += BEM_INTERNAL__$200[hasItem__$229 ? "buildClasses" : "buildModsClasses"](mixBlock__$230, mixItem__$228.elem || mixItem__$228._elem || (mixItem__$228.block ? undefined : $$elem), mixItem__$228.elemMods || mixItem__$228.mods); | |
if (mixItem__$228.js) { | |
(jsParams__$212 || (jsParams__$212 = {}))[BEM_INTERNAL__$200.buildClass(mixBlock__$230, mixItem__$228.elem)] = mixItem__$228.js === true ? {} : mixItem__$228.js; | |
addJSInitClass__$221 || (addJSInitClass__$221 = mixBlock__$230 && !mixItem__$228.elem); | |
} | |
if (hasItem__$229 && !visited__$225[visitedKey__$226(mixBlock__$230, mixElem__$231)]) { | |
visited__$225[visitedKey__$226(mixBlock__$230, mixElem__$231)] = true; | |
var __$r__$233; | |
var __$l6__$234 = $$mode; | |
$$mode = "mix"; | |
var __$l7__$235 = $$block; | |
$$block = mixBlock__$230; | |
var __$l8__$236 = $$elem; | |
$$elem = mixElem__$231; | |
__$r__$233 = applyc(__$ctx, __$ref); | |
$$mode = __$l6__$234; | |
$$block = __$l7__$235; | |
$$elem = __$l8__$236; | |
var nestedMix__$232 = __$r__$233; | |
if (nestedMix__$232) { | |
for (var j__$237 = 0; j__$237 < nestedMix__$232.length; j__$237++) { | |
var nestedItem__$238 = nestedMix__$232[j__$237]; | |
if (!nestedItem__$238.block && !nestedItem__$238.elem || !visited__$225[visitedKey__$226(nestedItem__$238.block, nestedItem__$238.elem)]) { | |
nestedItem__$238._block = mixBlock__$230; | |
nestedItem__$238._elem = mixElem__$231; | |
mix__$222.splice(i__$227 + 1, 0, nestedItem__$238); | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
cls__$218 && (__$ctx._str += isBEM__$202 ? " " + cls__$218 : cls__$218); | |
__$ctx._str += addJSInitClass__$221 ? ' i-bem"' : '"'; | |
} | |
if (isBEM__$202 && jsParams__$212) { | |
__$ctx._str += ' data-bem="' + __$ctx.attrEscape(JSON.stringify(jsParams__$212)) + '"'; | |
} | |
var __$r__$240; | |
var __$l9__$241 = $$mode; | |
$$mode = "attrs"; | |
__$r__$240 = applyc(__$ctx, __$ref); | |
$$mode = __$l9__$241; | |
var attrs__$239 = __$r__$240; | |
attrs__$239 = __$ctx.extend(attrs__$239, ctx__$201.attrs); | |
if (attrs__$239) { | |
var name__$242, attr__$243; | |
for (name__$242 in attrs__$239) { | |
attr__$243 = attrs__$239[name__$242]; | |
if (typeof attr__$243 === "undefined") continue; | |
__$ctx._str += " " + name__$242 + '="' + __$ctx.attrEscape(__$ctx.isSimple(attr__$243) ? attr__$243 : __$ctx.reapply(attr__$243)) + '"'; | |
} | |
} | |
} | |
if (__$ctx.isShortTag(tag__$203)) { | |
__$ctx._str += "/>"; | |
} else { | |
tag__$203 && (__$ctx._str += ">"); | |
var __$r__$245; | |
var __$l10__$246 = $$mode; | |
$$mode = "content"; | |
__$r__$245 = applyc(__$ctx, __$ref); | |
$$mode = __$l10__$246; | |
var content__$244 = __$r__$245; | |
if (content__$244 || content__$244 === 0) { | |
isBEM__$202 = vBlock__$208 || $$elem; | |
var __$r__$247; | |
var __$l11__$248 = $$mode; | |
$$mode = ""; | |
var __$l12__$249 = __$ctx._notNewList; | |
__$ctx._notNewList = false; | |
var __$l13__$250 = __$ctx.position; | |
__$ctx.position = isBEM__$202 ? 1 : __$ctx.position; | |
var __$l14__$251 = __$ctx._listLength; | |
__$ctx._listLength = isBEM__$202 ? 1 : __$ctx._listLength; | |
var __$l15__$252 = __$ctx.ctx; | |
__$ctx.ctx = content__$244; | |
__$r__$247 = applyc(__$ctx, __$ref); | |
$$mode = __$l11__$248; | |
__$ctx._notNewList = __$l12__$249; | |
__$ctx.position = __$l13__$250; | |
__$ctx._listLength = __$l14__$251; | |
__$ctx.ctx = __$l15__$252; | |
} | |
tag__$203 && (__$ctx._str += "</" + tag__$203 + ">"); | |
} | |
res__$204 = __$ctx._str; | |
__$r__$206 = undefined; | |
__$ctx._str = __$l0__$207; | |
__$ctx._buf.push(res__$204); | |
return; | |
} | |
function __$b142(__$ctx, __$ref) { | |
var __$r__$254; | |
var __$l0__$255 = $$mode; | |
$$mode = ""; | |
var __$l1__$256 = __$ctx.ctx; | |
__$ctx.ctx = __$ctx.ctx._value; | |
var __$r__$258; | |
var __$l2__$259 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 134217728; | |
__$r__$258 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l2__$259; | |
__$r__$254 = __$r__$258; | |
$$mode = __$l0__$255; | |
__$ctx.ctx = __$l1__$256; | |
return; | |
} | |
function __$b143(__$ctx, __$ref) { | |
__$ctx._listLength--; | |
var ctx__$260 = __$ctx.ctx; | |
if (ctx__$260 && ctx__$260 !== true || ctx__$260 === 0) { | |
__$ctx._str += ctx__$260 + ""; | |
} | |
return; | |
} | |
function __$b144(__$ctx, __$ref) { | |
__$ctx._listLength--; | |
return; | |
} | |
function __$b145(__$ctx, __$ref) { | |
var ctx__$261 = __$ctx.ctx, len__$262 = ctx__$261.length, i__$263 = 0, prevPos__$264 = __$ctx.position, prevNotNewList__$265 = __$ctx._notNewList; | |
if (prevNotNewList__$265) { | |
__$ctx._listLength += len__$262 - 1; | |
} else { | |
__$ctx.position = 0; | |
__$ctx._listLength = len__$262; | |
} | |
__$ctx._notNewList = true; | |
while (i__$263 < len__$262) (function __$lb__$266() { | |
var __$r__$267; | |
var __$l0__$268 = __$ctx.ctx; | |
__$ctx.ctx = ctx__$261[i__$263++]; | |
__$r__$267 = applyc(__$ctx, __$ref); | |
__$ctx.ctx = __$l0__$268; | |
return __$r__$267; | |
})(); | |
prevNotNewList__$265 || (__$ctx.position = prevPos__$264); | |
return; | |
} | |
function __$b146(__$ctx, __$ref) { | |
__$ctx.ctx || (__$ctx.ctx = {}); | |
var vBlock__$269 = __$ctx.ctx.block, vElem__$270 = __$ctx.ctx.elem, block__$271 = __$ctx._currBlock || $$block; | |
var __$r__$273; | |
var __$l0__$274 = $$mode; | |
$$mode = "default"; | |
var __$l1__$275 = $$block; | |
$$block = vBlock__$269 || (vElem__$270 ? block__$271 : undefined); | |
var __$l2__$276 = __$ctx._currBlock; | |
__$ctx._currBlock = vBlock__$269 || vElem__$270 ? undefined : block__$271; | |
var __$l3__$277 = $$elem; | |
$$elem = vElem__$270; | |
var __$l4__$278 = $$mods; | |
$$mods = vBlock__$269 ? __$ctx.ctx.mods || (__$ctx.ctx.mods = {}) : $$mods; | |
var __$l5__$279 = $$elemMods; | |
$$elemMods = __$ctx.ctx.elemMods || {}; | |
$$block || $$elem ? __$ctx.position = (__$ctx.position || 0) + 1 : __$ctx._listLength--; | |
applyc(__$ctx, __$ref); | |
__$r__$273 = undefined; | |
$$mode = __$l0__$274; | |
$$block = __$l1__$275; | |
__$ctx._currBlock = __$l2__$276; | |
$$elem = __$l3__$277; | |
$$mods = __$l4__$278; | |
$$elemMods = __$l5__$279; | |
return; | |
} | |
function __$g0(__$ctx, __$ref) { | |
var __$t = $$block; | |
if (__$t === "button") { | |
var __$t = !$$elem; | |
if (__$t) { | |
if (__$ctx._attach && (__$ctx.__$a0 & 8) === 0) { | |
return [ { | |
block: "attach", | |
elem: "control" | |
}, function __$lb__$19() { | |
var __$r__$20; | |
var __$l0__$21 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 8; | |
__$r__$20 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l0__$21; | |
return __$r__$20; | |
}() ]; | |
} | |
if (typeof __$ctx.ctx.content !== "undefined") { | |
return __$ctx.ctx.content; | |
} | |
var __$r = __$b3(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "checkbox") { | |
var __$t = !$$elem; | |
if (__$t) { | |
if ($$mods && $$mods["type"] === "button") { | |
var __$r = __$b4(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
var __$r = __$b5(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "modal") { | |
if (!$$elem && (__$ctx.__$a0 & 1) === 0) { | |
return { | |
elem: "table", | |
content: { | |
elem: "cell", | |
content: { | |
elem: "content", | |
content: function __$lb__$2() { | |
var __$r__$3; | |
var __$l0__$4 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 1; | |
__$r__$3 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l0__$4; | |
return __$r__$3; | |
}() | |
} | |
} | |
}; | |
} | |
} else if (__$t === "textarea") { | |
if (!$$elem) { | |
return __$ctx.ctx.val; | |
} | |
} else if (__$t === "attach") { | |
if (!$$elem) { | |
var __$r = __$b8(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "select") { | |
if (!$$elem && $$mods && $$mods["mode"] === "radio-check" && __$ctx._checkedOptions[0] && (__$ctx.__$a0 & 32) === 0) { | |
return [ { | |
elem: "control", | |
val: __$ctx._checkedOptions[0].val | |
}, function __$lb__$36() { | |
var __$r__$37; | |
var __$l0__$38 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 32; | |
__$r__$37 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l0__$38; | |
return __$r__$37; | |
}() ]; | |
} | |
if ($$elem === "button" && $$mods && $$mods["mode"] === "radio-check") { | |
return [ { | |
elem: "text", | |
content: (__$ctx._checkedOptions[0] || __$ctx._select).text | |
} ]; | |
} | |
if (!$$elem && $$mods && $$mods["mode"] === "check" && __$ctx._checkedOptions[0] && (__$ctx.__$a0 & 128) === 0) { | |
var __$r = __$b11(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
if ($$elem === "button" && $$mods && $$mods["mode"] === "check") { | |
var __$r = __$b12(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
if (!$$elem) { | |
return [ { | |
elem: "button" | |
}, { | |
block: "popup", | |
mods: { | |
target: "anchor", | |
theme: $$mods.theme, | |
autoclosable: true | |
}, | |
directions: [ "bottom-left", "bottom-right", "top-left", "top-right" ], | |
content: { | |
block: $$block, | |
mods: $$mods, | |
elem: "menu" | |
} | |
} ]; | |
} | |
} else if (__$t === "progressbar") { | |
var __$t = !$$elem; | |
if (__$t) { | |
if (typeof __$ctx.ctx.content !== "undefined") { | |
return __$ctx.ctx.content; | |
} | |
return { | |
elem: "bar", | |
attrs: { | |
style: "width:" + __$ctx.ctx.val + "%" | |
} | |
}; | |
} | |
} else if (__$t === "radio") { | |
var __$t = !$$elem; | |
if (__$t) { | |
if ($$mods && $$mods["type"] === "button") { | |
var __$r = __$b16(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
var __$r = __$b17(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "radio-group") { | |
if (!$$elem) { | |
var __$r = __$b18(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "menu") { | |
if ($$elem === "group" && typeof __$ctx.ctx.title !== "undefined" && (__$ctx.__$a0 & 16384) === 0) { | |
return [ { | |
elem: "group-title", | |
content: __$ctx.ctx.title | |
}, function __$lb__$105() { | |
var __$r__$106; | |
var __$l0__$107 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 16384; | |
__$r__$106 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l0__$107; | |
return __$r__$106; | |
}() ]; | |
} | |
} else if (__$t === "input") { | |
if ($$elem === "box" && $$mods && $$mods["has-clear"] === true) { | |
return [ __$ctx.ctx.content, { | |
elem: "clear" | |
} ]; | |
} | |
if (!$$elem) { | |
return { | |
elem: "box", | |
content: { | |
elem: "control" | |
} | |
}; | |
} | |
} else if (__$t === "checkbox-group") { | |
if (!$$elem) { | |
var __$r = __$b22(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "page") { | |
if ($$elem === "conditional-comment" && (__$ctx.__$a0 & 4194304) === 0) { | |
var __$r = __$b23(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
if (!$$elem && (__$ctx.__$a0 & 33554432) === 0) { | |
return [ function __$lb__$189() { | |
var __$r__$190; | |
var __$l0__$191 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 33554432; | |
__$r__$190 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l0__$191; | |
return __$r__$190; | |
}(), __$ctx.ctx.scripts ]; | |
} | |
} else if (__$t === "ua") { | |
var __$t = !$$elem; | |
if (__$t) { | |
if ((__$ctx.__$a0 & 8388608) === 0) { | |
return [ function __$lb__$169() { | |
var __$r__$170; | |
var __$l0__$171 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 8388608; | |
__$r__$170 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l0__$171; | |
return __$r__$170; | |
}(), "(function(d,n){", "d.documentElement.className+=", '" ua_svg_"+(d[n]&&d[n]("http://www.w3.org/2000/svg","svg").createSVGRect?"yes":"no");', '})(document,"createElementNS");' ]; | |
} | |
return [ "(function(e,c){", 'e[c]=e[c].replace(/(ua_js_)no/g,"$1yes");', '})(document.documentElement,"className");' ]; | |
} | |
} | |
return __$ctx.ctx.content; | |
return __$ref; | |
} | |
function __$g1(__$ctx, __$ref) { | |
var __$t = $$block; | |
if (__$t === "button") { | |
var __$t = !$$elem; | |
if (__$t) { | |
if ($$mods && $$mods["focused"] === true && (__$ctx.__$a0 & 1048576) === 0) { | |
var __$r = __$ctx.extend(function __$lb__$150() { | |
var __$r__$151; | |
var __$l0__$152 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 1048576; | |
__$r__$151 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l0__$152; | |
return __$r__$151; | |
}(), { | |
live: false | |
}); | |
if (__$r !== __$ref) return __$r; | |
} | |
return true; | |
} | |
} else if (__$t === "checkbox") { | |
if (!$$elem) { | |
return true; | |
} | |
} else if (__$t === "modal") { | |
if (!$$elem) { | |
return true; | |
} | |
} else if (__$t === "link") { | |
var __$t = !$$elem; | |
if (__$t) { | |
if ($$mods && $$mods["disabled"] === true && (__$ctx.__$a0 & 2) === 0) { | |
var __$r = __$ctx.extend(function __$lb__$5() { | |
var __$r__$6; | |
var __$l0__$7 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 2; | |
__$r__$6 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l0__$7; | |
return __$r__$6; | |
}(), { | |
url: __$ctx.ctx.url | |
}); | |
if (__$r !== __$ref) return __$r; | |
} | |
return true; | |
} | |
} else if (__$t === "textarea") { | |
if (!$$elem) { | |
return true; | |
} | |
} else if (__$t === "attach") { | |
if (!$$elem) { | |
return true; | |
} | |
} else if (__$t === "select") { | |
var __$t = !$$elem; | |
if (__$t) { | |
var __$t = $$mods; | |
if (__$t) { | |
var __$t = $$mods["mode"]; | |
if (__$t === "radio-check") { | |
if ((__$ctx.__$a0 & 64) === 0) { | |
var __$r = __$ctx.extend(function __$lb__$39() { | |
var __$r__$40; | |
var __$l0__$41 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 64; | |
__$r__$40 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l0__$41; | |
return __$r__$40; | |
}(), { | |
text: __$ctx.ctx.text | |
}); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "check") { | |
if ((__$ctx.__$a0 & 256) === 0) { | |
var __$r = __$ctx.extend(function __$lb__$57() { | |
var __$r__$58; | |
var __$l0__$59 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 256; | |
__$r__$58 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l0__$59; | |
return __$r__$58; | |
}(), { | |
text: __$ctx.ctx.text | |
}); | |
if (__$r !== __$ref) return __$r; | |
} | |
} | |
if ($$mods["focused"] === true && (__$ctx.__$a0 & 2048) === 0) { | |
var __$r = __$ctx.extend(function __$lb__$81() { | |
var __$r__$82; | |
var __$l0__$83 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 2048; | |
__$r__$82 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l0__$83; | |
return __$r__$82; | |
}(), { | |
live: false | |
}); | |
if (__$r !== __$ref) return __$r; | |
} | |
} | |
var __$r = __$b47(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "progressbar") { | |
if (!$$elem) { | |
return { | |
val: __$ctx.ctx.val | |
}; | |
} | |
} else if (__$t === "radio") { | |
if (!$$elem) { | |
return true; | |
} | |
} else if (__$t === "radio-group") { | |
if (!$$elem) { | |
return true; | |
} | |
} else if (__$t === "popup") { | |
if (!$$elem) { | |
var __$r = __$b51(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "menu") { | |
var __$t = !$$elem; | |
if (__$t) { | |
if ($$mods && $$mods["focused"] === true && (__$ctx.__$a0 & 65536) === 0) { | |
var __$r = __$ctx.extend(function __$lb__$111() { | |
var __$r__$112; | |
var __$l0__$113 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 65536; | |
__$r__$112 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l0__$113; | |
return __$r__$112; | |
}(), { | |
live: false | |
}); | |
if (__$r !== __$ref) return __$r; | |
} | |
return true; | |
} | |
} else if (__$t === "menu-item") { | |
if (!$$elem) { | |
return { | |
val: __$ctx.ctx.val | |
}; | |
} | |
} else if (__$t === "input") { | |
if (!$$elem) { | |
return true; | |
} | |
} else if (__$t === "checkbox-group") { | |
if (!$$elem) { | |
return true; | |
} | |
} | |
return undefined; | |
return __$ref; | |
} | |
function __$g2(__$ctx, __$ref) { | |
var __$t = $$block; | |
if (__$t === "button") { | |
if (!$$elem && __$ctx._attach) { | |
return "span"; | |
} | |
if ($$elem === "text") { | |
return "span"; | |
} | |
if (!$$elem) { | |
return __$ctx.ctx.tag || "button"; | |
} | |
} else if (__$t === "checkbox") { | |
var __$t = $$elem; | |
if (__$t === "control") { | |
return "input"; | |
} else if (__$t === "box") { | |
return "span"; | |
} | |
if (!$$elem) { | |
return "label"; | |
} | |
} else if (__$t === "link") { | |
var __$t = !$$elem; | |
if (__$t) { | |
if ($$mods && $$mods["pseudo"] === true && !__$ctx.ctx.url) { | |
return "span"; | |
} | |
return "a"; | |
} | |
} else if (__$t === "textarea") { | |
if (!$$elem) { | |
return "textarea"; | |
} | |
} else if (__$t === "attach") { | |
var __$t = $$elem; | |
if (__$t === "clear") { | |
return "i"; | |
} else if (__$t === "text") { | |
return "span"; | |
} else if (__$t === "file") { | |
return "span"; | |
} else if (__$t === "no-file") { | |
return "span"; | |
} else if (__$t === "control") { | |
return "input"; | |
} | |
if (!$$elem) { | |
return "span"; | |
} | |
} else if (__$t === "select") { | |
if ($$elem === "control") { | |
return "input"; | |
} | |
} else if (__$t === "spin") { | |
if (!$$elem) { | |
return "span"; | |
} | |
} else if (__$t === "radio") { | |
var __$t = $$elem; | |
if (__$t === "control") { | |
return "input"; | |
} else if (__$t === "box") { | |
return "span"; | |
} | |
if (!$$elem) { | |
return "label"; | |
} | |
} else if (__$t === "radio-group") { | |
if (!$$elem) { | |
return "span"; | |
} | |
} else if (__$t === "icon") { | |
if (!$$elem) { | |
return "i"; | |
} | |
} else if (__$t === "input") { | |
var __$t = $$elem; | |
if (__$t === "clear") { | |
return "i"; | |
} else if (__$t === "control") { | |
return "input"; | |
} else if (__$t === "box") { | |
return "span"; | |
} | |
if (!$$elem) { | |
return "span"; | |
} | |
} else if (__$t === "checkbox-group") { | |
if (!$$elem) { | |
return "span"; | |
} | |
} else if (__$t === "table") { | |
var __$t = $$elem; | |
if (__$t === "cell") { | |
return "td"; | |
} else if (__$t === "title") { | |
return "th"; | |
} else if (__$t === "row") { | |
return "tr"; | |
} | |
if (!$$elem) { | |
return "table"; | |
} | |
} else if (__$t === "page") { | |
var __$t = $$elem; | |
if (__$t === "js") { | |
return "script"; | |
} else if (__$t === "link") { | |
return "link"; | |
} else if (__$t === "conditional-comment") { | |
return false; | |
} else if (__$t === "css") { | |
if (__$ctx.ctx.url) { | |
return "link"; | |
} | |
return "style"; | |
} else if (__$t === "favicon") { | |
return "link"; | |
} else if (__$t === "meta") { | |
return "meta"; | |
} else if (__$t === "head") { | |
return "head"; | |
} | |
if (!$$elem) { | |
return "body"; | |
} | |
} else if (__$t === "ua") { | |
if (!$$elem) { | |
return "script"; | |
} | |
} | |
return undefined; | |
return __$ref; | |
} | |
function __$g3(__$ctx, __$ref) { | |
var __$t = $$block; | |
if (__$t === "button") { | |
var __$t = !$$elem; | |
if (__$t) { | |
if ((!$$mods.type || $$mods.type === "submit") && (__$ctx.__$a0 & 2097152) === 0) { | |
var __$r = __$b100(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
var __$r = __$b101(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "checkbox") { | |
if ($$elem === "control") { | |
var __$r = __$b102(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "link") { | |
if (!$$elem) { | |
var __$r = __$b103(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "textarea") { | |
if (!$$elem) { | |
var __$r = __$b104(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "attach") { | |
if ($$elem === "control") { | |
var __$r = __$b105(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "select") { | |
if ($$elem === "control") { | |
return { | |
type: "hidden", | |
name: __$ctx._select.name, | |
value: __$ctx.ctx.val, | |
disabled: $$mods.disabled ? "disabled" : undefined | |
}; | |
} | |
} else if (__$t === "radio") { | |
if ($$elem === "control") { | |
var __$r = __$b107(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "icon") { | |
if (!$$elem) { | |
var __$r = __$b108(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "menu") { | |
var __$t = $$elem; | |
if (__$t === "group-title") { | |
return { | |
role: "presentation" | |
}; | |
} else if (__$t === "group") { | |
if (typeof __$ctx.ctx.title !== "undefined" && (__$ctx.__$a0 & 32768) === 0) { | |
var __$r = __$ctx.extend(function __$lb__$108() { | |
var __$r__$109; | |
var __$l0__$110 = __$ctx.__$a0; | |
__$ctx.__$a0 = __$ctx.__$a0 | 32768; | |
__$r__$109 = applyc(__$ctx, __$ref); | |
__$ctx.__$a0 = __$l0__$110; | |
return __$r__$109; | |
}(), { | |
"aria-label": __$ctx.ctx.title | |
}); | |
if (__$r !== __$ref) return __$r; | |
} | |
return { | |
role: "group" | |
}; | |
} | |
if (!$$elem) { | |
var __$r = __$b112(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "menu-item") { | |
if (!$$elem) { | |
return { | |
role: "menuitem" | |
}; | |
} | |
} else if (__$t === "input") { | |
if ($$elem === "control") { | |
var __$r = __$b114(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "page") { | |
var __$t = $$elem; | |
if (__$t === "js") { | |
var __$r = __$b115(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} else if (__$t === "css") { | |
if (__$ctx.ctx.url) { | |
return { | |
rel: "stylesheet", | |
href: __$ctx.ctx.url | |
}; | |
} | |
} else if (__$t === "favicon") { | |
return { | |
rel: "shortcut icon", | |
href: __$ctx.ctx.url | |
}; | |
} | |
} | |
return undefined; | |
return __$ref; | |
} | |
function __$g4(__$ctx, __$ref) { | |
var __$t = $$block; | |
if (__$t === "link") { | |
if (!$$elem && (__$ctx.__$a0 & 4) === 0) { | |
var __$r = __$b119(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "attach") { | |
if (!$$elem && (__$ctx.__$a0 & 16) === 0) { | |
var __$r = __$b120(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "i-bem") { | |
if ($$elem === "i18n") { | |
var __$r = __$b121(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "select") { | |
var __$t = $$elem; | |
if (__$t === "button") { | |
if ((__$ctx.__$a0 & 1024) === 0) { | |
var __$r = __$b122(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "menu") { | |
if ((__$ctx.__$a0 & 512) === 0) { | |
var __$r = __$b123(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} | |
if (!$$elem && !__$ctx._select && (__$ctx.__$a0 & 4096) === 0) { | |
var __$r = __$b124(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "menu") { | |
var __$t = !$$elem; | |
if (__$t) { | |
if ($$mods && $$mods["mode"] === "radio" && __$ctx._firstItem && __$ctx._checkedItems && !__$ctx._checkedItems.length && (__$ctx.__$a0 & 8192) === 0) { | |
var __$r = __$b125(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
if ((__$ctx.__$a0 & 262144) === 0) { | |
var __$r = __$b126(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} | |
} else if (__$t === "menu-item") { | |
if (!$$elem && __$ctx._menuMods && (__$ctx.__$a0 & 131072) === 0) { | |
var __$r = __$b127(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "input") { | |
if (!$$elem && (__$ctx.__$a0 & 524288) === 0) { | |
var __$r = __$b128(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} else if (__$t === "page") { | |
var __$t = $$elem; | |
if (__$t === "css") { | |
var __$t = !__$ctx.ctx._ieCommented; | |
if (__$t) { | |
var __$t = __$ctx.ctx.hasOwnProperty("ie"); | |
if (__$t) { | |
if (__$ctx.ctx.ie === true && (__$ctx.__$a0 & 16777216) === 0) { | |
var __$r = __$b129(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
var __$r = __$b130(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} | |
} | |
if (!$$elem && (__$ctx.__$a0 & 67108864) === 0) { | |
var __$r = __$b131(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
} | |
} | |
var __$r = __$b132(__$ctx, __$ref); | |
if (__$r !== __$ref) return __$r; | |
return __$ref; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment