Releases: bem/bem-core
Releases · bem/bem-core
1.0.0
Major changes
- 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 (TODO: link to documentation).
- 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
иnode.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.
Other changes
- 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.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.