Skip to content

Instantly share code, notes, and snippets.

@indutny

indutny/bench.js Secret

Created April 27, 2015 22:45
Show Gist options
  • Save indutny/d4b83e1bc5277bbffcd8 to your computer and use it in GitHub Desktop.
Save indutny/d4b83e1bc5277bbffcd8 to your computer and use it in GitHub Desktop.
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));
}
/* 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 */
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)'
]
}
]
}
}
]
}
]
}
]
});
/* 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 = { '"' : '&quot;', '&' : '&amp;', '<' : '&lt;', '>' : '&gt;' },
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 */
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 = {
'"': "&quot;",
"&": "&amp;",
"<": "&lt;",
">": "&gt;"
}, 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