- Changes in the
i-bem
block. See MIGRATION.en.md. - Changes in the
querystring
. See MIGRATION.en.md. - The optional parameter
onlyGet
was removed from theidentify
module (#1028). - All static methods were removed from the
events
module (#1024). - The
result
field inEvent
class ofevents
module was removed (#1023). - The
css
element of thepage
block does not support auto insertion of conditional comments for IE (#379).
- An issue in
getMods()
method ofi-bem
was fixed (#1379).
- Templates: support for escaped mode was introduced (#1406).
- Minor documentation updates.
- An issue with pointer events on iOS devices was fixed (#1253).
- Base templates for
BEMHTML
andBEMTREE
were removed (#1258).bem-xjst
6.3.0+ should be used instead. - File extentions of BEMHTML templates were renamed from
*.bemhtml
to*.bemhtml.js
(#984). Please check that new extention is supported in you build config. i-bem__i18n
element was removed (#1304). Please usei18n
block for internationalization.jquery__events_type_pointerclick
is not using FastClick anymore (#1088).
jQuery
was updated to 2.2.3 and 1.12.3 (#1260).
- An issue in
page
was fixed.<meta name=viewport>
had wronguser-scalable
value on the touch level (#1294). - An issue in
jquery__event_type_pointernative
which led to JS error in IE8 was fixed (1317).
- dist: Autoinitialisation of blocks is optional now (#1271).
jQuery
was updated to 2.2.0 and 1.12.0 (#1249).
- Fixed bug in BEMHTML 1.x which leads to drop of
this.mods
inreapply()
(#97).
jquery__event_type_pointerpressrelease
now exposesoriginalEvent
(#1254).- dist: Support for
i18n
was added to dist (#1212). page__css.bemhtml
template was updated to support newbem-xjst
versions (#1228).
- New i18n block was introduced, providing support for internationalization (#1074).
- Now jQuery is included via
https
by default (#1202). - Dependency on
bemhtml-compat
was dropped (#1186). Users ofbem-tools
need to runnpm i bemhtml-compat --save
to install it on their projects.
- Bug with undefined handler call in
loader_type_js
was fixed (#1159).
- BH bundles in
dist
now mimic to BEMHTML (#1210). bem create
templates forbemhtml
,bemtree
,vanilla.js
andbrowser.js
were improved (#1183).vow
was updated to0.4.10
(#1056).
- New
detach
method was added toi-bem__dom
(#1102). i-bem.bemhtml
now 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).
clearfix
was optimized to work properly in supported IE browsers (#722).jquery
was updated to 2.1.4 and 1.11.3 (#999).
- An issue in
i-bem__dom
was fixed.findElem
didn't update cache of elements that had been found previously (#583). - An issue in
i-bem__dom
was fixed.dropElemCache
worked incorrectly in some edge cases (#1037). - An issue in
i-bem__dom
was fixed.setMod
didn't add CSS classes if blocks on the same DOM node had overlapping end parts in their names (#1090). - An issue in
page
was fixed.zoom
attribute of the block didn't work for touch levels (#1020). - An issue in
keyboard__codes
was fixed.insert
anddelete
keys had wrong key codes (#1002). - An issue in
i-bem.bemhtml
was fixed.applyNext
calls were skipped in nested templates (b1dc50c). - An issue in
jquery__events_type_pointernative
was fixed to work properly in IE 11/Edge (#1066).
- 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.
- Since now
i-bem__dom
provides module after DOM is ready (#859). - Since now
setMod
andhasMod
methods ofi-bem__dom
convert theirmodVal
argument to string in case it is not of type string or boolean (#890). - An ability to pass
nonce
attribute was added topage
, to support related parts of Content Security Policy specification (#882). - New
page__conditional-comment
template was added (#551). vow
was updated to 0.4.8 (#837).
- An issue in
i-bem.bemhtml
was fixed. Block CSS class repeated in case of mix with the same block (#792). - An issue in
loader_type_bundle
was fixed. Success callback might be applied after timeout error (67ff55f). - An issue in
i-bem__dom
was fixed.append
,prepend
and other similar methods won't properly work with strings in some cases (#852). - An issue in
jquery__event_type_winresize
was fixed. MSIE wasn't detected properly (#862). - An issue in
object
was fixed to proper handlenull
value astarget
argument inextend
method (#910). - An issue in
page
was fixed. There was no way to disablex-ua-compatible
meta tag from BEMJSON (#794).
- Timeout in
loader_type_bundle
module was increased to 30000 ms (4e27422). - Russian documentation for several blocks was fixed.
- An issue in
jquery__pointerpress
andjquery__pointerrelease
was fixed. Events work now in Internet Explorer 8 (#792). - An issue in
jquery__pointernative
was fixed.pointerenter
andpointerleave
events have bubbled up to the document root, while they shouldn't (#801). - An issue in
loader_type_bundle
was 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
ua
were fixed. There was no possibility to pass the content of the block from BEMJSON (#734). - An issue in
page
was fixed. There was a problem with conditional comments for Internet Explorer in the BH template of the block (#781).
jquery
was updated to the 2.1.3 and 1.11.2 (#778).- Russian documentation for modules:
clearfix
,cookie
,identify
,idle
,inherit
,keyboard
,loader
,next-tick
,string
andtick
was added. - Russian documentation for
i-bem.js
was updated. - English guides to BEMHTM and BEMJSON were updated.
- bem-core in now published under the MPL 2.0 license (#443).
- An ability to specify error handler was added to
loader_type_js
(#672). BEMContext
class was added tooninit
export context ini-bem.bemtree
(#602).reapply
static method was added to BEMContext class of BEMTREE (#706).- bh templates for block
page
were added to touch level (#689). - bem-xjst was updated to 0.9.0 (#709).
- An issue in
i-bem__dom
was fixed.findBlocksInside
could return blocks which weren't inited (#699). - An issue in
tick
was fixed. Timer was not removed byTick#stop()
(#694). - An issue in
i-bem.bemhtml
was fixed.i-bem
CSS class was added to elements by mistake (#633). html-from-bemtree
tech was fixed to exposevow
,console
,setTimeout
inside BEMTREE template context (#438ebb8).
- English guide to BEMJSON was added.
- Russian documentation for
querystring
module was added. - Russian documentation for
i-bem.js
was fixed to satisfy current API. - Documentation for BEMHML/BEMTREE for both languages was updated.
- bem-xjst was updated to 0.8.0; bemhtml-compat was updated to 0.0.11.
- An issue in
jquery__event_type_pointerpressrelease
was fixed.pointerpress
/pointerrelease
events fired for any press/release of mouse button (#607). - An issue in
i-bem__dom.js
was fixed. Baselive
method was not properly called in some edge cases (#608).
- English documentation for JS-syntax of BEMHTML was added.
- 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).
- An issue in
i-bem.bemhtml
was fixed. There was an error when mix was used as an object (not an array) in BEMJSON and BEMHTML simultaneously (#555). - An issue in
page
was fixed. There was no possibility to apply standard modes topage
in BEMHTML template and touch template was broken (516).
- An issue in
i-bem.js
was fixed. Modifier change event has been emitted even ifbeforeSetMod
handler had prevented change (#546). - String decoding process of
querystring__uri
module was fixed to return original string if decode failed (#554).
- Destruction process of blocks was fixed to prevent unexpected block reinitialization (#540).
- An issue in
jquery__event_type_pointer
was fixed. Native mouse events were replaced with pointer events in unexpected cases (#534). unbindFrom*
methods ofi-bem__dom
now support multiple events to be passed in arguments (#533).- Lost
functions
dependency inevents
module was restored (#532).
- 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
.false
could be used asmodVal
(#529). jquery
was updated to the latest minor releases 2.1.1 and 1.11.1 (#515).
- An issue in
jquery__event_type_pointerpressrelease
was fixed.pointerpress
event has been triggered twice on each mousedown in IE10 (#505).
- New
keyboard__codes
module has been added (#431). BEMContext
class was added to oninit export context ini-bem.bemhtml
(#485).- Ability to declare elements with block class has been added (#481).
- Behaviour of
isSimple
method ofBEMContext
was fixed ini-bem.bemhtml
(#432). - An issue with
liveUnbindFrom
method ofBEMDOM
was fixed ini-bem__dom
(#476). - An issue with
isFocusable
method ofdom
module was fixed for cases wheredomElem
is a link withtabindex
attribute, 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.js
module has been moved tovow.vanilla.js
(#412).
vow
module 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).
- An issue in
i-bem.js
when modifiers change event had been emitted beforeonSetMod
handlers have been called was fixed (#454). - An issue in
i-bem.bemhtml
was fixed. Since nowthis.mods
andthis.ctx.mods
use the same object (#441). - Error in modular declaration of element modifiers was fixed in
i-bem__dom_elem-instances
(#447). - inherit module was updated to 2.2.1 (#466).
- An order of tags in
head
section ofpage.bemhtml
was fixed (#465).
baseMix
field description ofi-bem.js
was added to russian docs (#461).- CDN host was changed to
yastatic.net
(#444). Previous CDN hostyandex.st
is still accessible. Physically they both are the same web servers. DNS records is the only difference. - BEMHTML template for
bem create
command 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 :)
-
All deprecated methods have been removed from
i-bem.js
andi-bem__dom.js
(#318). The following methods were removed:destruct
, useonSetMod js ''
;extractParams
, useelemParams
;trigger
, useemit
;afterCurrentEvent
, usenext-tick
module;channel
, useevents__channels
module;changeThis
, use nativeFunction.prototype.bind
.
-
init
anddestruct
events have been removed fromi-bem.js
in favor of modifiers changes events (see "Notable changes" section below). -
ecma
was moved to separate repo; ES5-shims should be used for IE < 9 (#230). -
vow
module has been updated to 0.4.1 (#350). See Vow's changelog for changes. -
Support for [email protected] has been added to
i-bem.bemhtml
(#385).
- 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.update
methods (#420). - DOM helpers from
i-bem__dom.js
replace
,append
,prepend
,before
,after
now return new context andupdate
returns updated context as a jQuery object (#410). - New
loader_type_bundle
has been added (#358). - Default jQuery versions were updated to 2.1.0 and to 1.11.0, for IE < 9 (#356).
i-bem.bemhtml
now 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.js
has been moved from touch level to common (#393).- Modifiers
i-bem_elem-instances_yes
andi-bem__dom_elem-instances_yes
were renamed to boolean style (#352). - Runtime error in
page
template in development mode has been fixed (#417). - Usage of
Function.prototype.bind
has been droped fromi-bem.js
internals in favor of support for Android 2.3 (#404). - Some bugs in
browser-js+bemhtml
tech have been fixed (#392). - Up to [email protected] (#414).
- BEM-blocks are emit
destruct
event on destructing (#370). - Improvements of
pointerevents
polyfills (#354).
- All JSDocs were fixed so bem-jsd could parse them (#335).
- Russian version of BEMHTML reference was actualized to JavaScript syntax (#355).
- Use bower for dependency management (#367).
jquery__config
uses 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
page
block touch styles (#306). - Fix
page
BEMHTML wrapping in production mode (#309). - Fix possible JavaScript error in script injection in IE<9 in
next-tick
(#324). - Fix
FastClick
initialisation injquery__event_type_pointerclick
oftouch.blocks
(#332). - Fix
node.js
tech bug on Windows systems (#274). - Fix
i-bem__dom_elem-instances
bug withonElemSetMod
(#340). - Use bemhtml from bem-xjst (#329).
- ym was updated to 0.0.12 (#326).
- Do not flood
console
with messages ifi-bem__i18n
is not in debug mode (#285). - Fix jsdoc for
dropElemCache()
method ofi-bem__dom
module (#296). - Development infrastructure was updated to [email protected] (#323).
- Russian documentation for
i-bem.js
was updated. - List of supported browsers was specified in project README.
- Starts using modular system ym.
- Removes all deprecated methods from
i-bem
andi-bem__dom
. i-bem
now has no dependency on jQuery.i-bem__dom
still 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.js
for JS-implementations that does not depend on particular JS-engine. - Introduces new techs
browser.js
andnode.js
for JS-implementations targeted corresponding engines. For backward compatibility we assume that.js
-files containsbrowser.js
implementation. - Introduces polyfill (
jquery__event_type_pointer
andjquery__event_type_pointerclick
as 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-bem
and BEMHTML.
- Gets rid of prefixes in all block names (except
i-bem
). - Block
i-bem__dom
becomes 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 withname
field as first parameter. Required form withblock
field:BEM.decl({ block: 'b1', modName: 'm', modVal: 'v' }, ...)
. - Introduces
nextTick
method as replacement forafterCurrentEvent
method for ensure of block existence in callback invocation time.BEM.afterCurrentEvent
is deprecated. - Introduces new
channels
module instead ofBEM.channel
.BEM.channel
is deprecated. changeThis
is deprecated. Use nativebind
instead.- Removes
del
method fromi-bem
block. - Removes
getWindowSize
method fromi-bem__dom
block. UseBEMDOM.win.width()
andBEMDOM.win.height()
. - Introduces
jquery
module-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. $.observable
becomesevents
module and not longer depends on jQuery.$.inherit
becomesinherit
module and not longer depends on jQuery.$.identify
becomesidentify
module and not longer depends on jQuery.$.throttle
splits into two modules:functions__throttle
andfunctions__debounce
, they both not longer depend on jQuery.$.decodeURI
,$.decodeURIComponent
moves toquerystring__uri
module and not longer depends on jQuery.$.cookie
becomescookie
module and not longer depends on jQuery.- Introduces
ua
module instead of$.browser
(with same interface). - Use
pointerclick
instead ofleftclick
. It provides byjquery__event_type_pointerclick
polyfill. i-system
block splits into two modules:idle
andtick
.- Triggers for modifiers changes now splitted into two groups:
before setting new value (
beforeSetMod
andbeforeElemSetMod
) and after the value has been set (onSetMod
andonElemSetMod
). Cancellation of modifiers change is possible only frombefore*
-triggers. - Using of
{ onSetMod : { js : function() { ... } } }
is deprecated, useonSetMod: { js : { inited : ... } } }
. destruct
method fromi-bem
block is deprecated. Use supplementary trigger for_js
modifiers:onSetMod: { js : { inited : ... } } }
—{ onSetMod : { js : { '' : ... } } }
.exractParams
method fromi-bem__dom
block is deprecated. UseelemParams
method for access to elements params.trigger
method fromi-bem
block is deprecated in flavor ofemit
method.onFirst
method fromi-bem
block is deprecated in flavor ofonce
method.- Deprecated field
e.block
that provided block-target of BEM-events was removed. Usee.target
field instead. - Field
e.data.domElem
that provided DOM-element of block in DOM-events was removed. Use$(e.currentTarget)
(provided by jQuery). - Introduces parameter for
findElem
method 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
objects
module for work with JS-objects. It contains methods:extend
,isEmpty
,each
. - Introduces
functions
module for work with JS-functions. It contains methods:isFunction
,noop
. - Introduces
dom
module for work with DOM-tree. - Introduces
querystring
module for work with URL-based strings. - Introduces
loader_type_js
module for JS loading. - Introduces
vow
module for Promises/A+. - Introduces
next-tick
module as polyfill fornextTick
,setImmediate
,setTimeout(0, ...
and etc. - Introduces
strings__escape
module for XML, HTML and attributes escaping. inherit
module now supports mixins.- Introduces
invokeAsap
parameter forfunctions__throttle
module that allows to delay first invocation.