Skip to content

Latest commit

 

History

History
107 lines (92 loc) · 12.1 KB

CHANGELOG.ru.md

File metadata and controls

107 lines (92 loc) · 12.1 KB

История изменений

1.2.0

Крупные изменения

  • BEM-блоки инициируют событие destruct в процессе удаления (#370).
  • Исправлены полифилы для pointerevents (#354).

Также в релиз вошли следующие изменения

  • JSDoc блоков исправлен в соответствии с поддержкой bem-jsd (#335).
  • Референс на BEMHTML обновлен для соответствия JavaScript-синтаксису шаблонизатора (#355).
  • Переход на менеджер зависимостей bower (#367).

1.1.0

Крупные изменения

  • Для современных браузеров 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 проекта добавлен список поддерживаемых браузеров.

1.0.0

Крупные изменения

  • Переход на модульную систему 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, позволяющий отложить первое исполнение.