Changelog
2.9.0
Notable changes
jQuerywas updated to 2.2.0 and 1.12.0 (#1249).
Bug fixes
Fixed bug in BEMHTML 1.x which leads to drop of
this.modsinreapply()(#97).
Other changes
jquery__event_type_pointerpressreleasenow exposesoriginalEvent(#1254).dist: Support for
i18nwas added to dist (#1212).page__css.bemhtmltemplate was updated to support newbem-xjstversions (#1228).
2.8.0
Notable changes
New i18n block was introduced, providing support for internationalization (#1074).
Now jQuery is included via
httpsby default (#1202).Dependency on
bemhtml-compatwas dropped (#1186). Users ofbem-toolsneed to runnpm i bemhtml-compat --saveto install it on their projects.
Bug fixes
Bug with undefined handler call in
loader_type_jswas fixed (#1159).
Other changes
BH bundles in
distnow mimic to BEMHTML (#1210).bem createtemplates forbemhtml,bemtree,vanilla.jsandbrowser.jswere improved (#1183).vowwas updated to0.4.10(#1056).
2.7.0
Notable changes
New
detachmethod was added toi-bem__dom(#1102).i-bem.bemhtmlnow supports nested mixes as objects (873).Some minor attribute escaping optimizations were added to
i-bem.bemhtml(#961), (#980) and (#982).Support for bem-xjst 2.x was added to BEMHTML templates (#1021).
clearfixwas optimized to work properly in supported IE browsers (#722).jquerywas updated to 2.1.4 and 1.11.3 (#999).
Bug fixes
An issue in
i-bem__domwas fixed.findElemdidn't update cache of elements that had been found previously (#583).An issue in
i-bem__domwas fixed.dropElemCacheworked incorrectly in some edge cases (#1037).An issue in
i-bem__domwas fixed.setModdidn't add CSS classes if blocks on the same DOM node had overlapping end parts in their names (#1090).An issue in
pagewas fixed.zoomattribute of the block didn't work for touch levels (#1020).An issue in
keyboard__codeswas fixed.insertanddeletekeys had wrong key codes (#1002).An issue in
i-bem.bemhtmlwas fixed.applyNextcalls were skipped in nested templates (b1dc50c).An issue in
jquery__events_type_pointernativewas fixed to work properly in IE 11/Edge (#1066).
Other changes
Russian documentation for every blocks was reworked. Please visit https://ru.bem.info/libs/bem-core/ for new documentation.
Other minor improvements of the documentation.
2.6.0
Notable changes
Since now
i-bem__domprovides module after DOM is ready (#859).Since now
setModandhasModmethods ofi-bem__domconvert theirmodValargument to string in case it is not of type string or boolean (#890).An ability to pass
nonceattribute was added topage, to support related parts of Content Security Policy specification (#882).New
page__conditional-commenttemplate was added (#551).vowwas updated to 0.4.8 (#837).
Bug fixes
An issue in
i-bem.bemhtmlwas fixed. Block CSS class repeated in case of mix with the same block (#792).An issue in
loader_type_bundlewas fixed. Success callback might be applied after timeout error (67ff55f).An issue in
i-bem__domwas fixed.append,prependand other similar methods won't properly work with strings in some cases (#852).An issue in
jquery__event_type_winresizewas fixed. MSIE wasn't detected properly (#862).An issue in
objectwas fixed to proper handlenullvalue astargetargument inextendmethod (#910).An issue in
pagewas fixed. There was no way to disablex-ua-compatiblemeta tag from BEMJSON (#794).
Other changes
Timeout in
loader_type_bundlemodule was increased to 30000 ms (4e27422).Russian documentation for several blocks was fixed.
2.5.1
Bug fixes
An issue in
jquery__pointerpressandjquery__pointerreleasewas fixed. Events work now in Internet Explorer 8 (#792).An issue in
jquery__pointernativewas fixed.pointerenterandpointerleaveevents have bubbled up to the document root, while they shouldn't (#801).An issue in
loader_type_bundlewas fixed. CSS bundle has been always added to the top of the HTML<head>, so CSS rules from the bundle might not work properly (#808).Issues in BH templates for
uawere fixed. There was no possibility to pass the content of the block from BEMJSON (#734).An issue in
pagewas fixed. There was a problem with conditional comments for Internet Explorer in the BH template of the block (#781).
Other changes
jquerywas updated to the 2.1.3 and 1.11.2 (#778).Russian documentation for modules:
clearfix,cookie,identify,idle,inherit,keyboard,loader,next-tick,stringandtickwas added.Russian documentation for
i-bem.jswas updated.English guides to BEMHTM and BEMJSON were updated.
2.5.0
Notable changes
An ability to specify error handler was added to
loader_type_js(#672).BEMContextclass was added tooninitexport context ini-bem.bemtree(#602).reapplystatic method was added to BEMContext class of BEMTREE (#706).bh templates for block
pagewere added to touch level (#689).
Bug fixes
An issue in
i-bem__domwas fixed.findBlocksInsidecould return blocks which weren't inited (#699).An issue in
tickwas fixed. Timer was not removed byTick#stop()(#694).An issue in
i-bem.bemhtmlwas fixed.i-bemCSS class was added to elements by mistake (#633).html-from-bemtreetech was fixed to exposevow,console,setTimeoutinside BEMTREE template context (#438ebb8).
Other changes
English guide to BEMJSON was added.
Russian documentation for
querystringmodule was added.Russian documentation for
i-bem.jswas fixed to satisfy current API.Documentation for BEMHML/BEMTREE for both languages was updated.
2.4.0
Notable changes
bem-xjst was updated to 0.8.0; bemhtml-compat was updated to 0.0.11.
Bug fixes
An issue in
jquery__event_type_pointerpressreleasewas fixed.pointerpress/pointerreleaseevents fired for any press/release of mouse button (#607).An issue in
i-bem__dom.jswas fixed. Baselivemethod was not properly called in some edge cases (#608).
Other changes
English documentation for JS-syntax of BEMHTML was added.
2.3.0
Notable changes
New implementation of pointer events was added. Based on pointer events polyfills from Polymer (#567).
Ability to specify additional data for event was added to
bindTo*methods ofi-bem__dom.js(#568).
Other changes
An issue in
i-bem.bemhtmlwas fixed. There was an error when mix was used as an object (not an array) in BEMJSON and BEMHTML simultaneously (#555).An issue in
pagewas fixed. There was no possibility to apply standard modes topagein BEMHTML template and touch template was broken (516).
2.2.4
Bug fixes
An issue in
i-bem.jswas fixed. Modifier change event has been emitted even ifbeforeSetModhandler had prevented change (#546).String decoding process of
querystring__urimodule was fixed to return original string if decode failed (#554).
2.2.3
Bug fixes
Destruction process of blocks was fixed to prevent unexpected block reinitialization (#540).
An issue in
jquery__event_type_pointerwas fixed. Native mouse events were replaced with pointer events in unexpected cases (#534).unbindFrom*methods ofi-bem__domnow support multiple events to be passed in arguments (#533).Lost
functionsdependency ineventsmodule was restored (#532).
2.2.2
Bug fixes
An issue with block reinitialization on the DOM node, that has been processed with destructor, was fixed in
i-bem__dom(#518).An issue in mod events subscription was fixed in
i-bem.falsecould be used asmodVal(#529).jquerywas updated to the latest minor releases 2.1.1 and 1.11.1 (#515).
2.2.1
An issue in
jquery__event_type_pointerpressreleasewas fixed.pointerpressevent has been triggered twice on each mousedown in IE10 (#505).
2.2.0
Notable changes
New
keyboard__codesmodule has been added (#431).BEMContextclass was added to oninit export context ini-bem.bemhtml(#485).Ability to declare elements with block class has been added (#481).
Behaviour of
isSimplemethod ofBEMContextwas fixed ini-bem.bemhtml(#432).An issue with
liveUnbindFrommethod ofBEMDOMwas fixed ini-bem__dom(#476).An issue with
isFocusablemethod ofdommodule was fixed for cases wheredomElemis a link withtabindexattribute, but withouthref(#501).Short way of module declaration was fixed for
i-bem__dom_elem-instances(#479).A workaround for rendering performance of blocks initialisation in Chrome-based browsers was added to
i-bem__dom_init_auto(#486).vow.jsmodule has been moved tovow.vanilla.js(#412).
Other changes
vowmodule has been updated to 0.4.3 (#504).Russian documentation about BEMTREE technology was added (#500).
Russian documentation for JS-syntax of BEMHTML was updated (#471).
API references for JS-modules has been added as a separate branch
v2-jsdoc(#478).
2.1.0
Notable changes
An issue in
i-bem.jswhen modifiers change event had been emitted beforeonSetModhandlers have been called was fixed (#454).An issue in
i-bem.bemhtmlwas fixed. Since nowthis.modsandthis.ctx.modsuse the same object (#441).Error in modular declaration of element modifiers was fixed in
i-bem__dom_elem-instances(#447).An order of tags in
headsection ofpage.bemhtmlwas fixed (#465).
Other changes
baseMixfield description ofi-bem.jswas added to russian docs (#461).CDN host was changed to
yastatic.net(#444). Previous CDN hostyandex.stis still accessible. Physically they both are the same web servers. DNS records is the only difference.BEMHTML template for
bem createcommand was added (#277).We do not support autobuilding of our tests with Node.js 0.8 in Travis CI any longer (#455).
Travis's build status badge was changed to SVG version :)
2.0.0
Breaking changes
All deprecated methods have been removed from
i-bem.jsandi-bem__dom.js(#318). The following methods were removed:destruct, useonSetMod js '';extractParams, useelemParams;trigger, useemit;afterCurrentEvent, usenext-tickmodule;channel, useevents__channelsmodule;changeThis, use nativeFunction.prototype.bind.
initanddestructevents have been removed fromi-bem.jsin favor of modifiers changes events (see "Notable changes" section below).ecmawas moved to separate repo; ES5-shims should be used for IE < 9 (#230).vowmodule has been updated to 0.4.1 (#350). See Vow's changelog for changes.Support for vow@0.4 has been added to
i-bem.bemhtml(#385).
Notable changes
Support for defining BEMDOM-blocks as ym modules has been added (#382).
Events for modifiers changes have been added to
i-bem.js(#357).Support for passing string values has been added to
BEMDOM.init(#419). andBEMDOM.updatemethods (#420).DOM helpers from
i-bem__dom.jsreplace,append,prepend,before,afternow return new context andupdatereturns updated context as a jQuery object (#410).New
loader_type_bundlehas been added (#358).Default jQuery versions were updated to 2.1.0 and to 1.11.0, for IE < 9 (#356).
Other changes
i-bem.bemhtmlnow uses strings concatination instead of pushing to buffer in it's internals (#401).jQuery no longer removes itself from global scope if it exists (#349).
jquery__event_type_pointerclick.jshas been moved from touch level to common (#393).Modifiers
i-bem_elem-instances_yesandi-bem__dom_elem-instances_yeswere renamed to boolean style (#352).Runtime error in
pagetemplate in development mode has been fixed (#417).Usage of
Function.prototype.bindhas been droped fromi-bem.jsinternals in favor of support for Android 2.3 (#404).Some bugs in
browser-js+bemhtmltech have been fixed (#392).
1.2.0
Notable changes
BEM-blocks are emit
destructevent on destructing (#370).Improvements of
pointereventspolyfills (#354).
Other changes
Russian version of BEMHTML reference was actualized to JavaScript syntax (#355).
1.1.0
Notable changes
jquery__configuses jQuery 2.x by default for modern browsers (#319).Add ability to use any BEMJSON as value of attributes in BEMHTML templates (#290).
Fix dependencies in
i-bem__collection(#292).Remove
pageblock touch styles (#306).Fix
pageBEMHTML wrapping in production mode (#309).Fix possible JavaScript error in script injection in IE<9 in
next-tick (#324).9>Fix
FastClickinitialisation injquery__event_type_pointerclickoftouch.blocks(#332).Fix
node.jstech bug on Windows systems (#274).Fix
i-bem__dom_elem-instancesbug withonElemSetMod(#340).
Other changes
Do not flood
consolewith messages ifi-bem__i18nis not in debug mode (#285).Fix jsdoc for
dropElemCache()method ofi-bem__dommodule (#296).Development infrastructure was updated to bem-pr@v0.5.x (#323).
Russian documentation for
i-bem.jswas updated.List of supported browsers was specified in project README.
1.0.0
Breaking changes
Starts using modular system ym.
Removes all deprecated methods from
i-bemandi-bem__dom.i-bemnow has no dependency on jQuery.i-bem__domstill depends on jQuery.BEMHTML-template can be written with JS-syntax.
Introduces new tech
bemtree(based on bem-xjst) for describing dynamic generation of BEM-tree.Introduces new tech
vanilla.jsfor JS-implementations that does not depend on particular JS-engine.Introduces new techs
browser.jsandnode.jsfor JS-implementations targeted corresponding engines. For backward compatibility we assume that.js-files containsbrowser.jsimplementation.Introduces polyfill (
jquery__event_type_pointerandjquery__event_type_pointerclickas a jQuery-plugins) for universalize desktop and touch pointer events.Introduces system for unit testing and blocks examples generation.
Introduces "simple" modifiers (modifiers without value) support in
i-bemand BEMHTML.
Other changes
Gets rid of prefixes in all block names (except
i-bem).Block
i-bem__dombecomes a module (in terms of ym) and allBEM.DOM-block must define additions toi-bem__dom(example).Method for blocks declaration (
.decl()) does not accept object withnamefield as first parameter. Required form withblockfield:BEM.decl({ block: 'b1', modName: 'm', modVal: 'v' }, ...).Introduces
nextTickmethod as replacement forafterCurrentEventmethod for ensure of block existence in callback invocation time.BEM.afterCurrentEventis deprecated.Introduces new
channelsmodule instead ofBEM.channel.BEM.channelis deprecated.changeThisis deprecated. Use nativebindinstead.Removes
delmethod fromi-bemblock.Removes
getWindowSizemethod fromi-bem__domblock. UseBEMDOM.win.width()andBEMDOM.win.height().Introduces
jquerymodule-wrapper for providing jQuery. If jQuery already included into the page module-wrapper provides it. Otherwise it loads jQuery (version 1.10.1) on its own.$.observablebecomeseventsmodule and not longer depends on jQuery.$.inheritbecomesinheritmodule and not longer depends on jQuery.$.identifybecomesidentifymodule and not longer depends on jQuery.$.throttlesplits into two modules:functions__throttleandfunctions__debounce, they both not longer depend on jQuery.$.decodeURI,$.decodeURIComponentmoves toquerystring__urimodule and not longer depends on jQuery.$.cookiebecomescookiemodule and not longer depends on jQuery.Introduces
uamodule instead of$.browser(with same interface).Use
pointerclickinstead ofleftclick. It provides byjquery__event_type_pointerclickpolyfill.i-systemblock splits into two modules:idleandtick.Triggers for modifiers changes now splitted into two groups: before setting new value (
beforeSetModandbeforeElemSetMod) and after the value has been set (onSetModandonElemSetMod). Cancellation of modifiers change is possible only frombefore*-triggers.Using of
{ onSetMod : { js : function() { ... } } }is deprecated, useonSetMod: { js : { inited : ... } } }.destructmethod fromi-bemblock is deprecated. Use supplementary trigger for_jsmodifiers:onSetMod: { js : { inited : ... } } }—{ onSetMod : { js : { '' : ... } } }.exractParamsmethod fromi-bem__domblock is deprecated. UseelemParamsmethod for access to elements params.triggermethod fromi-bemblock is deprecated in flavor ofemitmethod.onFirstmethod fromi-bemblock is deprecated in flavor ofoncemethod.Deprecated field
e.blockthat provided block-target of BEM-events was removed. Usee.targetfield instead.Field
e.data.domElemthat provided DOM-element of block in DOM-events was removed. Use$(e.currentTarget)(provided by jQuery).Introduces parameter for
findElemmethod that allows to search elements of particular block instance (in case of nested blocks with same name).Introduces possibility to point particular function in
unbindFrom*methods.Introduces
objectsmodule for work with JS-objects. It contains methods:extend,isEmpty,each.Introduces
functionsmodule for work with JS-functions. It contains methods:isFunction,noop.Introduces
dommodule for work with DOM-tree.Introduces
querystringmodule for work with URL-based strings.Introduces
loader_type_jsmodule for JS loading.Introduces
vowmodule for Promises/A+.Introduces
next-tickmodule as polyfill fornextTick,setImmediate,setTimeout(0, ...and etc.Introduces
strings__escapemodule for XML, HTML and attributes escaping.inheritmodule now supports mixins.Introduces
invokeAsapparameter forfunctions__throttlemodule that allows to delay first invocation.