- BEM-блоки инициируют событие
destruct
в процессе удаления (#370). - Исправлены полифилы для
pointerevents
(#354).
- JSDoc блоков исправлен в соответствии с поддержкой bem-jsd (#335).
- Референс на BEMHTML обновлен для соответствия JavaScript-синтаксису шаблонизатора (#355).
- Переход на менеджер зависимостей bower (#367).
- Для современных браузеров
jquery__config
подключает jQuery 2.x (#319). - Добавлена возможность использовать произвольный BEMJSON в качестве значения атрибутов в BEMHTML (#290).
- Исправлены зависимости в
i-bem__collection
(#292). - Удалены CSS-стили блока
page
из уровняtouch.blocks
(#306). - Исправлена ошибка в BEMHTML-шаблоне блока
page
, приводящая к зацикливанию шаблонизатора в production-режиме (#309). - Исправлена возможная ошибка в
next-tick
, возникающая при вставке скрипта в DOM в IE<9 (#324). - Исправлена ошибка в инициализации плагина
FastClick
в модулеjquery__event_type_pointerclick
на уровнеtouch.blocks
(#332). - Исправлена ошибка в технологии
node.js
в Windows (#274). - Исправлена ошибка в
onElemSetMod
вi-bem__dom_elem-instances
(#340). - В технологии
bemhtml
используется bem-xjst (#329).
- Модуль ym обновлен до версии 0.0.12 (#326).
- В ядре локализации
i-bem__i18n
отключен вывод сообщений о неизвестных ключах, если не включен debug-режим (#285). - Инфраструктура сборки тестов и примеров переведена на [email protected] (#323).
- Исправлен jsdoc для метода
dropElemCache()
вi-bem__dom
(#296). - Доработана документация для блока
i-bem.js
на русском языке. - В README проекта добавлен список поддерживаемых браузеров.
- Переход на модульную систему ym.
- Из
i-bem
,i-bem__dom
убраны все deprecated-методы. i-bem
больше не зависит от jQuery.i-bem__dom
продолжает зависеть от jQuery.- BEMHTML-шаблоны можно писать с использованием JS-синтаксиса.
- Новая технология
bemtree
(на базе bem-xjst) для описания процесса динамического построения БЭМ-дерева. - Новая технология
vanilla.js
для описания JS-реализации модулей, не зависящей от конкретного JavaScript движка. - Новые технологии
browser.js
иnode.js
для описания JS-реализаций модулей (блоков) в соответствующих движках. Для совместимости с существующим кодом считаем, что файлы с расширением.js
содержат реализацию блоков в технологииbrowser.js
. - Система модульного тестирования и примеров для блоков в библиотеке.
- Появились полифилы (
jquery__event_type_pointer
иjquery__event_type_pointerclick
как jQuery-плагины), позволяющие использовать универсальные события для десктопных и тач-интерфейсов. - Плагин для jQuery, позволяющий навешивать обработчик события на нажатие левой кнопки мыши, становится модулем
jquery__pointerclick
. - В
i-bem
и BEMHTML добавлена поддержка простых модификаторов (модификаторов без значений).
- Все блоки-модули, кроме
i-bem
, избавились от префиксов. - Блок
i-bem__dom
становится модулемi-bem__dom
. Все BEM.DOM-блоки должны теперь доопределять этот модуль (пример). - Метод для декларации блоков (
.decl()
) больше не принимает первым параметром объект с полемname
. Теперь обязательная форма записи с полемblock
:BEM.decl({ block: 'b1', modName: 'm', modVal: 'v' }, ...)
. - Вместо метода
afterCurrentEvent
у блоков появился методnextTick
, который проверят существование блока в момент исполнения колбэка.BEM.afterCurrentEvent
теперь deprecated. - Вместо
BEM.channel
появился отдельный модульchannels
.BEM.channel
теперь deprecated. - Метод
changeThis
помечен как deprecated. Используйте нативныйbind
. - Метод
del
удален из блокаi-bem
. - Метод
getWindowSize
удален из блокаi-bem__dom
. ИспользуйтеBEMDOM.win.width()
иBEMDOM.win.height()
. - Добавлен модуль-обертка
jquery
, предоставляющий jQuery. Модуль либо предоставляет jQuery, уже присутствующий на странице, либо сам его загружает (версию 1.10.1). $.observable
становится модулемevents
и больше не зависит от jQuery.$.inherit
становится модулемinherit
и больше не зависит от jQuery.$.identify
становится модулемidentify
и больше не зависит от jQuery.$.throttle
разбивается на два модуля:functions__throttle
иfunctions__debounce
, которые больше не зависят от jQuery.$.decodeURI
,$.decodeURIComponent
переезжают в модульquerystring__uri
и больше не зависят от jQuery.$.cookie
становится модулемcookie
и больше не зависит от jQuery.- Вместо
$.browser
появился модульua
с аналогичным интерфейсом. - Блок
i-system
разбит на 2 модуля:idle
иtick
. - Вместо события
leftclick
следует использоватьpointerclick
(предоставляемый полифиломjquery__event_type_pointerclick
). - Триггеры на установку модификаторов теперь разделены на две группы: до установки модификатора (
beforeSetMod
иbeforeElemSetMod
) и после (onSetMod
иonElemSetMod
). Отмена установки модификатора теперь возможна только из триггеров первой группы. - Использовать конструкцию
{ onSetMod : { js : function() { ... } } }
в качестве конструктора теперь deprecated, необходимо использоватьonSetMod: { js : { inited : ... } } }
. - Вместо метода
destruct
вi-bem
появился зеркальный метод дляonSetMod: { js : { inited : ... } } }
—{ onSetMod : { js : { '' : ... } } }
. Методdestruct
теперь deprecated. - Метод
exractParams
вi-bem__dom
теперь deprecated, для доступа к параметрам элементов нужно использовать методelemParams
. - Метод
trigger
вi-bem
теперь deprecated, нужно использоватьemit
. - Метод
onFirst
вi-bem
теперь deprecated, нужно использоватьonce
. - Удалено deprecated поле
e.block
, представляющее блок-источник события для BEM-событий. Вместо него следует использовать полеe.target
. - Для доступа к DOM-элементу блока в обработчике DOM-событий теперь нужно использовать поле
currentTarget
, предоставляемое jQuery. Вместоe.data.domElem
нужно писать$(e.currentTarget)
. - В методе
findElem
добавлен параметр, позволяющий находить элемента блока с учетом вложенных блоков. - Добавлена возможность указывать конкретную функцию для отписки от событий в методах
unbindFrom*
. - Добавлен модуль
objects
для работы с JS-объектами (содержит методыextend
,isEmpty
,each
). - Добавлен модуль
functions
для работы с JS-функциями (содержит методыisFunction
,noop
). - Добавлен модуль
dom
для хелперов при работе с DOM. - Добавлен модуль
querystring
для работы с урлами. - Добавлен модуль
loader_type_js
для загрузки JS. - Добавлен модуль
vow
для работы с промисами. - Добавлен модуль
next-tick
для полифилаnextTick
,setImmediate
,setTimeout(0, ...
и т.п.. - Добавлен модуль
strings__escape
, содержащий методы для эскейпинга XML, HTML и атрибутов. - Модуль
inherit
теперь поддерживает миксины. - В модуле
functions__throttle
добавлен параметрinvokeAsap
, позволяющий отложить первое исполнение.