Вместо IThenable теперь используется Promise. Достаточно заменить IThenable на Promise в местах использования компонент из ui.
Миграция не подразумевает каких-либо изменений.
Миграция не подразумевает каких-либо изменений.
Миграция не подразумевает каких-либо изменений.
Управление зависимостями было изменено с библиотеки google Closure (goog.require и goog.provide) на ECMAScript
модули (import и export). В результате эта версия полностью несовместима со старыми проектами.
Миграция кодовой базы довольно проста: goog.require должен быть заменен соответствующими операторами import,
а goog.provide — export, конфигурация проекта так же должна быть обновлена.
Пример использования ECMAScript модулей:
import DataList from 'ui/data/list';
import Button from 'ui/widgets/button/button';
import AbstractKeyboard, {Action as AbstractKeyboardAction} from 'ui/widgets/keyboard/abstract-keyboard';- Все виджеты перенесены в неймспейс
widgets. Например,zb.ui.Button->zb.ui.widgets.Button. Следует обновить неймспейсы во всех местах использования; - CSS-классам виджетов добавлен префикс
zbui. Например,.w-help-bar -> .w-zbui-help-bar. Следует обновить классы во всех местах использования; - Сущности
zb.ui.DataList,zb.ui.DynamicList,zb.ui.CyclicalDataList,zb.ui.IDataListперенесены в неймспейсdata. Следует обновить неймспейсы во всех местах использования; - Класс
zb.ui.Keyboardпереименован вzb.ui.widgets.AbstractKeyboard. Следует использовать новое название; - Класс
zb.ui.BaseListBufferпереименован вzb.ui.widgets.AbstractBaseListBuffer. Следует использовать новое название; - Методы
zb.ui.imagePreloadтеперь возвращают промис с объектомImage. Чтобы получить, ссылку на изображение, которая возвращалась ранее, следует обратиться к свойствуImage#src; - Удалены файлы относящиеся к Google analytics
lib/analytics.jsиzb.ui.GoogleAnalytics. Вместо их использования предлагается сделать свою реализацию; - Класс
zb.ui.popups.Baseпереименован вzb.ui.popups.AbstractBase. Следует использовать новое название; - У класса
zb.ui.popups.Baseудалено событиеEVENT_CLOSEи метод_onClose. Вместо их использования предлагается сделать свою реализацию; - Объект
zb.ui.widgets.DivInput.AnimationPropertyNamesпереименован вzb.ui.widgets.DivInput.AnimationPropertyName. Следует использовать новое название; - Виджет
zb.ui.widgets.Throbberтеперь сбрасывает свое состояние при старте. Если требуется использовать предыдущее состояние виджета, следует реализовать логику запоминания состояния при наследовании.
В связи с изменением обработки настроек zb.ui.DynamicList нужно соблюдать следующие условия при их задании:
startLoadingOnItemsLeft,frameSize,initialBufferSizeиbufferSizeдолжны быть больше нуля и не равныNaN;frameSizeдолжен быть больше или равенstartLoadingOnItemsLeft;initialBufferSizeдолжен быть больше или равенframeSize;bufferSizeдолжен быть больше или равенframeSize;- комбинация настроек
bufferSize - startLoadingOnItemsLeft * 2 < frameSizeвызыват рекурсию и не должа быть использована.
Миграция не подразумевает каких-либо изменений.
Миграция не подразумевает каких-либо изменений.
- Удален метод
getLocalSize(). Вместо него нужно использоватьgetSize(); - Удален метод
getLocalIndex(). Вместо него нужно использоватьgetCurrentIndex().
- Удален метод
isMyKey(). Вместо него нужно использоватьhasKey().
- Удален метод
getFrameSize(). ПолучитьframeSizeтеперь можно только отнаследовавшись.
- Удален класс
zb.ui.MatrixDataList. Вместо него нужно использоватьzb.ui.BaseListс опциейlineSize.
zb.ui.Keyboard.Typeперенесен вzb.ui.KeyboardLayout.Type;zb.ui.Keyboard.Langперенесен вzb.ui.KeyboardLayout.Lang;zb.ui.Keyboard.Actionперенесен вzb.ui.KeyboardLayout.Action;zb.ui.Keyboard.Dataперенесен вzb.ui.KeyboardLayout.Data.
- Запрещен метод
getLocalSize(). Вместо него следует использоватьgetSize(); - Запрещен метод
getLocalIndex(). Вместо него следует использоватьgetCurrentIndex().
- Запрещен метод
isMyKey(). Вместо него следует использоватьhasKey().
- Запрещен класс
zb.ui.MatrixDataList. Вместо него следует использоватьzb.ui.BaseListс опциейlineSize.
Миграция не подразумевает каких-либо изменений.
- Обращаться к CSS-классу
zb.ui.BaseListItemтеперь нужно не.w-base-list__item, а.w-base-list-item; zb.ui.BaseListItemтеперь не принимает на входfocusClassчерез конструктор и методsetFocusClass(). Изменить его можно отнаследовавшись;zb.ui.BaseListItemтеперь реализует интерфейсzb.IFocusable;focus()иblur()уzb.ui.BaseListItemтеперь вызываются приfocus()иblur()самогоzb.ui.BaseList;focus()иblur()уzb.ui.BaseListItemпри выборе элемента теперь вызываются только еслиzb.ui.BaseListнаходится в фокусе;- Опции (
padding,lineSize,loadOnLeft) теперь не передаются через методsetSource()и второй аргумент конструктора. Задать их можно добавив в первый агумент конструктора свойствоoptions:new zb.ui.BaseList({options: {padding: 5}}); - Удален метод
setItemClass(). Задать класс элемента можно теперь только через агумент конструктора; - Удален метод
setVertical(). Задать направление можно теперь только через агумент конструктора; - Удален метод
setDataList(). Вместо него нужно использоватьsetSource(); - Удален метод
getCurrentData(). Вместо него нужно использоватьgetSource().current(); - Удален метод
getGlobalSize(). Вместо него нужно использоватьgetSource().size(); - Удален метод
isEmpty(). Вместо него нужно использовать!hasSource(); - Удален метод
getGlobalIndex(). Вместо него нужно использоватьgetSource().currentIndex().
- Создавать инпут типа
passwordследует теперь неnew zb.ui.DivInputPassword, аnew zb.ui.NativeInput({type: zb.ui.AbstractInput.Type.PASSWORD})илиnew zb.ui.DivInput({type: zb.ui.AbstractInput.Type.PASSWORD}); - CSS для инпута типа
passwordследует привязывать не к.w-zbui-div-input._password {}, а к.w-zbui-div-input._type-password {}; - Секретный символ для пароля следует задавать не через наследование конструктора, а передавать как аргумент:
new zb.ui.DivInput({passwordSymbol: '*'}); - Для вызова ранее публичного метода
fireFinish()нужно отнаследоваться, создать его и вызвать_fireFinish()внутри.
- CSS-класс и лейбл больше не сохраняются в
_cssClassи_label. Сохранение, если требуется, теперь нужно реализовывать на уровне проекта; - Чтобы использовать виджеты внутри
zb.ui.HelpBarItemпотребуется переопределить метод_renderTemplate()и реализовать добавление виджетов.
- Все параметры
zb.ui.Throbberстали опциональными.
- Вместо виджета
zb.ui.widgets.VideoProgressBarследует использоватьzb.ui.PlayerProgress.
- Вместо метода
zb.ui.DynamicList#loadInitialBuffer()следует использоватьzb.ui.DynamicList#preload().
zb.ui.limit— реализует методыdebounce()иthrottle();zb.ui.ExtendedList— объединяет в себе функционалzb.ui.ArrowListиzb.ui.ScrollList;zb.ui.popups.Base— базовый попап.