Вместо 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
— базовый попап.