bitmovin-player-ui 4.0.0-beta.5 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (508) hide show
  1. package/CHANGELOG.md +257 -19
  2. package/CONTRIBUTING.md +50 -55
  3. package/README.md +19 -18
  4. package/dist/css/bitmovinplayer-ui.css +2 -3412
  5. package/dist/css/bitmovinplayer-ui.css.map +1 -0
  6. package/dist/css/demo.css +2 -13
  7. package/dist/css/demo.css.map +1 -0
  8. package/dist/demo.js +0 -0
  9. package/dist/index.html +899 -767
  10. package/dist/js/bitmovinplayer-ui.js +2 -17044
  11. package/dist/js/bitmovinplayer-ui.js.map +1 -0
  12. package/dist/js/framework/DOM.js +2 -4
  13. package/dist/js/framework/EventDispatcher.js +2 -3
  14. package/dist/js/framework/UIFactory.js +13 -45
  15. package/dist/js/framework/UIManager.js +22 -12
  16. package/dist/js/framework/components/Component.d.ts +17 -17
  17. package/dist/js/framework/components/Component.js +25 -24
  18. package/dist/js/framework/components/Container.js +4 -4
  19. package/dist/js/framework/components/ControlBar.js +1 -1
  20. package/dist/js/framework/components/DummyComponent.js +1 -2
  21. package/dist/js/framework/components/EcoModeContainer.js +4 -1
  22. package/dist/js/framework/components/Icon.js +1 -1
  23. package/dist/js/framework/components/RecommendationItem.js +4 -4
  24. package/dist/js/framework/components/TitleBar.js +4 -8
  25. package/dist/js/framework/components/TvNoiseCanvas.js +2 -2
  26. package/dist/js/framework/components/UIContainer.js +28 -19
  27. package/dist/js/framework/components/ads/AdSkipButton.js +2 -2
  28. package/dist/js/framework/components/ads/AdStatusOverlay.js +1 -4
  29. package/dist/js/framework/components/buttons/Button.js +11 -10
  30. package/dist/js/framework/components/buttons/PlaybackToggleButton.js +2 -1
  31. package/dist/js/framework/components/buttons/VRToggleButton.js +2 -2
  32. package/dist/js/framework/components/labels/Label.js +6 -6
  33. package/dist/js/framework/components/labels/MetadataLabel.js +1 -1
  34. package/dist/js/framework/components/labels/PlaybackTimeLabel.js +5 -3
  35. package/dist/js/framework/components/lists/ItemSelectionList.js +10 -7
  36. package/dist/js/framework/components/overlays/DismissClickOverlay.js +6 -2
  37. package/dist/js/framework/components/overlays/RecommendationOverlay.js +5 -7
  38. package/dist/js/framework/components/overlays/SubtitleOverlay.js +8 -9
  39. package/dist/js/framework/components/overlays/TouchControlOverlay.js +30 -15
  40. package/dist/js/framework/components/seekbar/SeekBar.js +53 -45
  41. package/dist/js/framework/components/seekbar/SeekBarLabel.js +12 -14
  42. package/dist/js/framework/components/settings/DynamicSettingsPanelItem.js +3 -4
  43. package/dist/js/framework/components/settings/SelectBox.js +6 -9
  44. package/dist/js/framework/components/settings/SettingsPanel.js +3 -2
  45. package/dist/js/framework/components/settings/SettingsPanelItem.js +4 -4
  46. package/dist/js/framework/components/settings/SettingsPanelPage.js +3 -2
  47. package/dist/js/framework/components/settings/subtitlesettings/CharacterEdgeSelectBox.js +4 -1
  48. package/dist/js/framework/components/settings/subtitlesettings/SubtitleSettingsPanelPage.js +4 -3
  49. package/dist/js/framework/localization/i18n.d.ts +27 -27
  50. package/dist/js/framework/localization/i18n.js +14 -17
  51. package/dist/js/framework/localization/languages/de.json +1 -1
  52. package/dist/js/framework/localization/languages/en.json +14 -14
  53. package/dist/js/framework/localization/languages/es.json +14 -14
  54. package/dist/js/framework/localization/languages/nl.json +1 -1
  55. package/dist/js/framework/main.d.ts +5 -5
  56. package/dist/js/framework/main.js +1 -1
  57. package/dist/js/framework/spatialnavigation/FocusableContainer.js +1 -2
  58. package/dist/js/framework/spatialnavigation/NavigationAlgorithm.js +6 -8
  59. package/dist/js/framework/spatialnavigation/NavigationGroup.js +7 -7
  60. package/dist/js/framework/spatialnavigation/SeekBarHandler.js +2 -2
  61. package/dist/js/framework/spatialnavigation/TypeGuards.js +6 -7
  62. package/dist/js/framework/spatialnavigation/getKeyMapForPlatform.js +2 -10
  63. package/dist/js/framework/spatialnavigation/helper/resolveAllComponents.js +1 -2
  64. package/dist/js/framework/spatialnavigation/helper/toHtmlElement.js +1 -2
  65. package/dist/js/framework/spatialnavigation/types.js +2 -2
  66. package/dist/js/framework/utils/ArrayUtils.js +1 -1
  67. package/dist/js/framework/utils/BrowserUtils.js +13 -7
  68. package/dist/js/framework/utils/ErrorUtils.js +3 -3
  69. package/dist/js/framework/utils/FocusVisibilityTracker.js +2 -2
  70. package/dist/js/framework/utils/GroupPlaybackAPI.js +1 -1
  71. package/dist/js/framework/utils/Guid.js +1 -1
  72. package/dist/js/framework/utils/MobileV3PlayerAPI.js +3 -3
  73. package/dist/js/framework/utils/PlayerUtils.js +3 -3
  74. package/dist/js/framework/utils/SeekBarController.js +4 -5
  75. package/dist/js/framework/utils/StorageUtils.js +1 -1
  76. package/dist/js/framework/utils/StringUtils.js +13 -10
  77. package/dist/js/framework/utils/SubtitleSettingsManager.js +1 -2
  78. package/dist/js/framework/utils/SubtitleUtils.d.ts +0 -4
  79. package/dist/js/framework/utils/SubtitleUtils.js +11 -26
  80. package/dist/js/framework/utils/TimelineMarkersHandler.js +23 -17
  81. package/dist/js/framework/utils/UIUtils.js +1 -1
  82. package/dist/js/framework/utils/VolumeController.js +2 -1
  83. package/dist/js/framework/utils/VttUtils.js +6 -8
  84. package/dist/js/framework/utils/getMinBufferLevel.js +2 -3
  85. package/dist/simple.html +34 -33
  86. package/docs/.nojekyll +1 -0
  87. package/docs/assets/hierarchy.js +1 -0
  88. package/docs/assets/highlight.css +71 -0
  89. package/docs/assets/icons.js +18 -0
  90. package/docs/assets/icons.svg +1 -0
  91. package/docs/assets/main.js +60 -0
  92. package/docs/assets/navigation.js +1 -0
  93. package/docs/assets/search.js +1 -0
  94. package/docs/assets/style.css +1633 -0
  95. package/docs/classes/AdClickOverlay.html +88 -0
  96. package/docs/classes/AdControlBar.html +107 -0
  97. package/docs/classes/AdCounterLabel.html +93 -0
  98. package/docs/classes/AdMessageLabel.html +93 -0
  99. package/docs/classes/AdSkipButton.html +84 -0
  100. package/docs/classes/AdStatusOverlay.html +113 -0
  101. package/docs/classes/AirPlayToggleButton.html +102 -0
  102. package/docs/classes/AudioQualitySelectBox.html +123 -0
  103. package/docs/classes/AudioTrackListBox.html +123 -0
  104. package/docs/classes/AudioTrackSelectBox.html +123 -0
  105. package/docs/classes/BackgroundColorSelectBox.html +124 -0
  106. package/docs/classes/BackgroundOpacitySelectBox.html +124 -0
  107. package/docs/classes/BrowserUtils.html +17 -0
  108. package/docs/classes/BufferingOverlay.html +98 -0
  109. package/docs/classes/Button.html +84 -0
  110. package/docs/classes/CastStatusOverlay.html +98 -0
  111. package/docs/classes/CastToggleButton.html +102 -0
  112. package/docs/classes/CastUIContainer.html +103 -0
  113. package/docs/classes/CharacterEdgeSelectBox.html +124 -0
  114. package/docs/classes/ClickOverlay.html +88 -0
  115. package/docs/classes/CloseButton.html +84 -0
  116. package/docs/classes/Component.html +83 -0
  117. package/docs/classes/Container.html +112 -0
  118. package/docs/classes/ControlBar.html +99 -0
  119. package/docs/classes/ErrorMessageOverlay.html +99 -0
  120. package/docs/classes/FontColorSelectBox.html +124 -0
  121. package/docs/classes/FontFamilySelectBox.html +124 -0
  122. package/docs/classes/FontOpacitySelectBox.html +124 -0
  123. package/docs/classes/FontSizeSelectBox.html +125 -0
  124. package/docs/classes/FullscreenToggleButton.html +102 -0
  125. package/docs/classes/HugePlaybackToggleButton.html +102 -0
  126. package/docs/classes/HugeReplayButton.html +84 -0
  127. package/docs/classes/I18n.html +5 -0
  128. package/docs/classes/Icon.html +80 -0
  129. package/docs/classes/ItemSelectionList.html +121 -0
  130. package/docs/classes/Label.html +99 -0
  131. package/docs/classes/ListBox.html +138 -0
  132. package/docs/classes/ListSelector.html +123 -0
  133. package/docs/classes/MetadataLabel.html +93 -0
  134. package/docs/classes/NavigationGroup.html +57 -0
  135. package/docs/classes/PictureInPictureToggleButton.html +102 -0
  136. package/docs/classes/PlaybackSpeedSelectBox.html +125 -0
  137. package/docs/classes/PlaybackTimeLabel.html +98 -0
  138. package/docs/classes/PlaybackToggleButton.html +102 -0
  139. package/docs/classes/PlaybackToggleOverlay.html +98 -0
  140. package/docs/classes/PlayerUtils.LiveStreamDetector.html +18 -0
  141. package/docs/classes/PlayerUtils.TimeShiftAvailabilityDetector.html +4 -0
  142. package/docs/classes/PlayerWrapper.html +9 -0
  143. package/docs/classes/QuickSeekButton.html +83 -0
  144. package/docs/classes/RecommendationItem.html +80 -0
  145. package/docs/classes/RecommendationOverlay.html +100 -0
  146. package/docs/classes/ReplayButton.html +84 -0
  147. package/docs/classes/RootNavigationGroup.html +35 -0
  148. package/docs/classes/SeekBar.html +120 -0
  149. package/docs/classes/SeekBarLabel.html +111 -0
  150. package/docs/classes/SelectBox.html +130 -0
  151. package/docs/classes/SettingsPanel.html +138 -0
  152. package/docs/classes/SettingsPanelItem.html +106 -0
  153. package/docs/classes/SettingsPanelNavigationGroup.html +36 -0
  154. package/docs/classes/SettingsPanelPage.html +110 -0
  155. package/docs/classes/SettingsPanelPageBackButton.html +87 -0
  156. package/docs/classes/SettingsPanelPageOpenButton.html +87 -0
  157. package/docs/classes/SettingsToggleButton.html +102 -0
  158. package/docs/classes/Spacer.html +79 -0
  159. package/docs/classes/SpatialNavigation.html +11 -0
  160. package/docs/classes/SubtitleListBox.html +123 -0
  161. package/docs/classes/SubtitleOverlay.html +110 -0
  162. package/docs/classes/SubtitleSelectBox.html +123 -0
  163. package/docs/classes/SubtitleSettingSelectBox.html +124 -0
  164. package/docs/classes/SubtitleSettingsPanelPage.html +109 -0
  165. package/docs/classes/SubtitleSettingsResetButton.html +84 -0
  166. package/docs/classes/TitleBar.html +98 -0
  167. package/docs/classes/ToggleButton.html +102 -0
  168. package/docs/classes/UIContainer.html +103 -0
  169. package/docs/classes/UIInstanceManager.html +32 -0
  170. package/docs/classes/UIManager.html +53 -0
  171. package/docs/classes/VRToggleButton.html +102 -0
  172. package/docs/classes/VideoQualitySelectBox.html +125 -0
  173. package/docs/classes/VolumeControlButton.html +103 -0
  174. package/docs/classes/VolumeSlider.html +113 -0
  175. package/docs/classes/VolumeToggleButton.html +102 -0
  176. package/docs/classes/Watermark.html +88 -0
  177. package/docs/classes/WindowColorSelectBox.html +124 -0
  178. package/docs/classes/WindowOpacitySelectBox.html +124 -0
  179. package/docs/enums/ButtonStyle.html +12 -0
  180. package/docs/enums/LabelStyle.html +9 -0
  181. package/docs/enums/MetadataLabelContent.html +6 -0
  182. package/docs/enums/PlaybackTimeLabelMode.html +10 -0
  183. package/docs/enums/PlayerUtils.PlayerState.html +6 -0
  184. package/docs/enums/UIUtils.KeyCode.html +8 -0
  185. package/docs/functions/ArrayUtils.remove.html +5 -0
  186. package/docs/functions/ErrorUtils.defaultMobileV3ErrorMessageTranslator.html +1 -0
  187. package/docs/functions/PlayerUtils.clampValueToRange.html +1 -0
  188. package/docs/functions/PlayerUtils.getCurrentTimeRelativeToSeekableRange.html +3 -0
  189. package/docs/functions/PlayerUtils.getSeekableRangeRespectingLive.html +3 -0
  190. package/docs/functions/PlayerUtils.getSeekableRangeStart.html +4 -0
  191. package/docs/functions/PlayerUtils.getState.html +1 -0
  192. package/docs/functions/PlayerUtils.isTimeShiftAvailable.html +1 -0
  193. package/docs/functions/StorageUtils.getItem.html +4 -0
  194. package/docs/functions/StorageUtils.getObject.html +8 -0
  195. package/docs/functions/StorageUtils.setItem.html +4 -0
  196. package/docs/functions/StorageUtils.setObject.html +8 -0
  197. package/docs/functions/StorageUtils.setStorageApiDisabled.html +1 -0
  198. package/docs/functions/StringUtils.replaceAdMessagePlaceholders.html +29 -0
  199. package/docs/functions/StringUtils.secondsToText.html +1 -0
  200. package/docs/functions/StringUtils.secondsToTime.html +5 -0
  201. package/docs/functions/UIFactory.buildCastReceiverUI.html +8 -0
  202. package/docs/functions/UIFactory.buildSmallScreenUI.html +10 -0
  203. package/docs/functions/UIFactory.buildTvUI.html +8 -0
  204. package/docs/functions/UIFactory.buildUI.html +14 -0
  205. package/docs/functions/UIUtils.traverseTree.html +1 -0
  206. package/docs/hierarchy.html +1 -0
  207. package/docs/index.html +33 -0
  208. package/docs/interfaces/ActiveUiChangedArgs.html +5 -0
  209. package/docs/interfaces/AdSkipButtonConfig.html +40 -0
  210. package/docs/interfaces/BufferingOverlayConfig.html +32 -0
  211. package/docs/interfaces/ButtonConfig.html +34 -0
  212. package/docs/interfaces/ClickOverlayConfig.html +36 -0
  213. package/docs/interfaces/CloseButtonConfig.html +36 -0
  214. package/docs/interfaces/ComponentConfig.html +27 -0
  215. package/docs/interfaces/ComponentHoverChangedEventArgs.html +3 -0
  216. package/docs/interfaces/ContainerConfig.html +28 -0
  217. package/docs/interfaces/ControlBarConfig.html +28 -0
  218. package/docs/interfaces/ErrorMessageMap.html +1 -0
  219. package/docs/interfaces/ErrorMessageOverlayConfig.html +79 -0
  220. package/docs/interfaces/ErrorMessageTranslator.html +1 -0
  221. package/docs/interfaces/ExternalRecommendationLink.html +7 -0
  222. package/docs/interfaces/IconConfig.html +29 -0
  223. package/docs/interfaces/InternalUIConfig.html +57 -0
  224. package/docs/interfaces/LabelConfig.html +33 -0
  225. package/docs/interfaces/ListItem.html +6 -0
  226. package/docs/interfaces/ListItemFilter.html +7 -0
  227. package/docs/interfaces/ListItemLabelTranslator.html +7 -0
  228. package/docs/interfaces/ListSelectorConfig.html +29 -0
  229. package/docs/interfaces/LocalizationConfig.html +7 -0
  230. package/docs/interfaces/MetadataLabelConfig.html +35 -0
  231. package/docs/interfaces/PlaybackTimeLabelConfig.html +37 -0
  232. package/docs/interfaces/PlaybackToggleButtonConfig.html +52 -0
  233. package/docs/interfaces/PlaybackToggleOverlayConfig.html +31 -0
  234. package/docs/interfaces/PlayerUtils.LiveStreamDetectorEventArgs.html +2 -0
  235. package/docs/interfaces/PlayerUtils.TimeShiftAvailabilityChangedArgs.html +2 -0
  236. package/docs/interfaces/QuickSeekButtonConfig.html +37 -0
  237. package/docs/interfaces/RecommendationConfig.html +14 -0
  238. package/docs/interfaces/RecommendationItemConfig.html +28 -0
  239. package/docs/interfaces/SeekBarConfig.html +48 -0
  240. package/docs/interfaces/SeekBarLabelConfig.html +28 -0
  241. package/docs/interfaces/SeekBarMarker.html +5 -0
  242. package/docs/interfaces/SeekPreviewArgs.html +5 -0
  243. package/docs/interfaces/SeekPreviewEventArgs.html +8 -0
  244. package/docs/interfaces/SettingsPanelConfig.html +35 -0
  245. package/docs/interfaces/SettingsToggleButtonConfig.html +54 -0
  246. package/docs/interfaces/SubtitleSettingsPanelPageConfig.html +32 -0
  247. package/docs/interfaces/TimelineMarker.html +21 -0
  248. package/docs/interfaces/TitleBarConfig.html +32 -0
  249. package/docs/interfaces/ToggleButtonConfig.html +49 -0
  250. package/docs/interfaces/UIConditionContext.html +20 -0
  251. package/docs/interfaces/UIConditionResolver.html +4 -0
  252. package/docs/interfaces/UIConfig.html +54 -0
  253. package/docs/interfaces/UIContainerConfig.html +42 -0
  254. package/docs/interfaces/UIUtils.TreeTraversalCallback.html +1 -0
  255. package/docs/interfaces/UIVariant.html +5 -0
  256. package/docs/interfaces/Vocabularies.html +1 -0
  257. package/docs/interfaces/Vocabulary.html +72 -0
  258. package/docs/interfaces/VolumeControlButtonConfig.html +37 -0
  259. package/docs/interfaces/VolumeSliderConfig.html +55 -0
  260. package/docs/interfaces/WatermarkConfig.html +36 -0
  261. package/docs/interfaces/WrappedPlayer.html +367 -0
  262. package/docs/media/CHANGELOG.md +1692 -0
  263. package/docs/media/CONTRIBUTING.md +56 -0
  264. package/docs/modules/ArrayUtils.html +1 -0
  265. package/docs/modules/ErrorUtils.html +1 -0
  266. package/docs/modules/PlayerUtils.html +1 -0
  267. package/docs/modules/StorageUtils.html +1 -0
  268. package/docs/modules/StringUtils.html +1 -0
  269. package/docs/modules/UIFactory.html +2 -0
  270. package/docs/modules/UIUtils.html +1 -0
  271. package/docs/modules.html +1 -0
  272. package/docs/types/CustomVocabulary.html +1 -0
  273. package/docs/types/LocalizableText.html +1 -0
  274. package/docs/types/Localizer.html +1 -0
  275. package/docs/variables/ErrorUtils.defaultErrorMessages.html +1 -0
  276. package/docs/variables/ErrorUtils.defaultWebErrorMessageTranslator.html +1 -0
  277. package/docs/variables/StringUtils.FORMAT_HHMMSS.html +1 -0
  278. package/docs/variables/StringUtils.FORMAT_MMSS.html +1 -0
  279. package/docs/variables/i18n.html +1 -0
  280. package/docs/variables/version.html +1 -0
  281. package/package.json +36 -28
  282. package/src/html/index.html +899 -767
  283. package/src/html/simple.html +34 -33
  284. package/src/html/tts-testing.html +341 -0
  285. package/src/scss/_ads.scss +1 -1
  286. package/src/scss/_cast-receiver.scss +4 -6
  287. package/src/scss/_mixins.scss +24 -13
  288. package/src/scss/_small-screen.scss +3 -6
  289. package/src/scss/_tv.scss +1 -1
  290. package/src/scss/_variables.scss +104 -14
  291. package/src/scss/bitmovinplayer-ui.scss +1 -1
  292. package/src/scss/components/_control-bar.scss +7 -9
  293. package/src/scss/components/_icon.scss +1 -1
  294. package/src/scss/components/_title-bar.scss +5 -7
  295. package/src/scss/components/_uicontainer.scss +1 -1
  296. package/src/scss/components/_watermark.scss +1 -1
  297. package/src/scss/components/ads/_ad-control-bar.scss +11 -7
  298. package/src/scss/components/ads/_ad-skip-button.scss +3 -3
  299. package/src/scss/components/ads/_ad-status-overlay.scss +2 -2
  300. package/src/scss/components/buttons/_button.scss +5 -5
  301. package/src/scss/components/buttons/_huge-playback-toggle-button.scss +3 -3
  302. package/src/scss/components/buttons/_volume-control-button.scss +4 -4
  303. package/src/scss/components/labels/_playback-time-label.scss +1 -1
  304. package/src/scss/components/overlays/_buffering-overlay.scss +5 -5
  305. package/src/scss/components/overlays/_recommendation-overlay.scss +11 -7
  306. package/src/scss/components/overlays/_subtitle-overlay-cea608.scss +0 -1
  307. package/src/scss/components/overlays/_touch-control-overlay.scss +2 -2
  308. package/src/scss/components/seekbar/_seek-bar-label.scss +5 -5
  309. package/src/scss/components/seekbar/_seek-bar.scss +18 -12
  310. package/src/scss/components/seekbar/_volume-slider.scss +1 -1
  311. package/src/scss/components/settings/_select-box.scss +1 -1
  312. package/src/scss/components/settings/_settings-panel-item.scss +1 -1
  313. package/src/scss/components/settings/_settings-panel-navigation-text-button.scss +1 -0
  314. package/src/scss/components/settings/_settings-panel-page-back-button.scss +2 -2
  315. package/src/scss/components/settings/_settings-panel-page-open-button.scss +1 -1
  316. package/src/scss/components/settings/_settings-panel.scss +12 -5
  317. package/src/scss/components/settings/_settings-toggle-button.scss +1 -0
  318. package/src/scss/components/settings/subtitlesettings/_subtitle-overlay-settings.scss +7 -7
  319. package/src/ts/DOM.ts +60 -67
  320. package/src/ts/EventDispatcher.ts +4 -10
  321. package/src/ts/UIFactory.ts +23 -59
  322. package/src/ts/UIManager.ts +81 -59
  323. package/src/ts/components/CastUIContainer.ts +4 -5
  324. package/src/ts/components/Component.ts +46 -39
  325. package/src/ts/components/Container.ts +23 -16
  326. package/src/ts/components/ControlBar.ts +18 -14
  327. package/src/ts/components/DummyComponent.ts +12 -12
  328. package/src/ts/components/EcoModeContainer.ts +134 -131
  329. package/src/ts/components/Icon.ts +8 -4
  330. package/src/ts/components/RecommendationItem.ts +32 -21
  331. package/src/ts/components/Spacer.ts +9 -7
  332. package/src/ts/components/TitleBar.ts +19 -19
  333. package/src/ts/components/TvNoiseCanvas.ts +12 -9
  334. package/src/ts/components/UIContainer.ts +129 -108
  335. package/src/ts/components/Watermark.ts +13 -10
  336. package/src/ts/components/ads/AdClickOverlay.ts +7 -3
  337. package/src/ts/components/ads/AdControlBar.ts +14 -11
  338. package/src/ts/components/ads/AdCounterLabel.ts +8 -4
  339. package/src/ts/components/ads/AdMessageLabel.ts +10 -6
  340. package/src/ts/components/ads/AdSkipButton.ts +14 -11
  341. package/src/ts/components/ads/AdStatusOverlay.ts +1 -4
  342. package/src/ts/components/buttons/AirPlayToggleButton.ts +11 -8
  343. package/src/ts/components/buttons/Button.ts +32 -29
  344. package/src/ts/components/buttons/CastToggleButton.ts +11 -8
  345. package/src/ts/components/buttons/CloseButton.ts +12 -9
  346. package/src/ts/components/buttons/EcoModeToggleButton.ts +92 -89
  347. package/src/ts/components/buttons/FullscreenToggleButton.ts +9 -9
  348. package/src/ts/components/buttons/HugePlaybackToggleButton.ts +12 -9
  349. package/src/ts/components/buttons/HugeReplayButton.ts +12 -9
  350. package/src/ts/components/buttons/PictureInPictureToggleButton.ts +10 -7
  351. package/src/ts/components/buttons/PlaybackToggleButton.ts +16 -13
  352. package/src/ts/components/buttons/QuickSeekButton.ts +1 -1
  353. package/src/ts/components/buttons/ReplayButton.ts +9 -6
  354. package/src/ts/components/buttons/SmallCenteredPlaybackToggleButton.ts +12 -9
  355. package/src/ts/components/buttons/ToggleButton.ts +2 -3
  356. package/src/ts/components/buttons/VRToggleButton.ts +15 -10
  357. package/src/ts/components/buttons/VolumeControlButton.ts +15 -12
  358. package/src/ts/components/buttons/VolumeToggleButton.ts +2 -3
  359. package/src/ts/components/labels/Label.ts +28 -17
  360. package/src/ts/components/labels/MetadataLabel.ts +10 -7
  361. package/src/ts/components/labels/PlaybackTimeLabel.ts +18 -15
  362. package/src/ts/components/lists/AudioTrackListBox.ts +2 -3
  363. package/src/ts/components/lists/ItemSelectionList.ts +25 -17
  364. package/src/ts/components/lists/ListBox.ts +10 -6
  365. package/src/ts/components/lists/ListSelector.ts +19 -16
  366. package/src/ts/components/lists/SubtitleListBox.ts +2 -3
  367. package/src/ts/components/overlays/BufferingOverlay.ts +15 -12
  368. package/src/ts/components/overlays/CastStatusOverlay.ts +20 -18
  369. package/src/ts/components/overlays/ClickOverlay.ts +10 -7
  370. package/src/ts/components/overlays/DismissClickOverlay.ts +14 -6
  371. package/src/ts/components/overlays/ErrorMessageOverlay.ts +18 -12
  372. package/src/ts/components/overlays/PlaybackToggleOverlay.ts +11 -8
  373. package/src/ts/components/overlays/RecommendationOverlay.ts +19 -19
  374. package/src/ts/components/overlays/SubtitleOverlay.ts +40 -37
  375. package/src/ts/components/overlays/TouchControlOverlay.ts +53 -29
  376. package/src/ts/components/seekbar/SeekBar.ts +151 -119
  377. package/src/ts/components/seekbar/SeekBarLabel.ts +28 -29
  378. package/src/ts/components/seekbar/VolumeSlider.ts +15 -8
  379. package/src/ts/components/settings/AudioQualitySelectBox.ts +11 -8
  380. package/src/ts/components/settings/AudioTrackSelectBox.ts +12 -9
  381. package/src/ts/components/settings/DynamicSettingsPanelItem.ts +15 -12
  382. package/src/ts/components/settings/PlaybackSpeedSelectBox.ts +11 -7
  383. package/src/ts/components/settings/SelectBox.ts +20 -15
  384. package/src/ts/components/settings/SettingsPanel.ts +9 -6
  385. package/src/ts/components/settings/SettingsPanelItem.ts +20 -13
  386. package/src/ts/components/settings/SettingsPanelPage.ts +17 -12
  387. package/src/ts/components/settings/SettingsPanelPageBackButton.ts +9 -6
  388. package/src/ts/components/settings/SettingsPanelPageNavigatorButton.ts +3 -2
  389. package/src/ts/components/settings/SettingsPanelPageOpenButton.ts +11 -7
  390. package/src/ts/components/settings/SettingsPanelSelectOption.ts +9 -5
  391. package/src/ts/components/settings/SettingsToggleButton.ts +15 -13
  392. package/src/ts/components/settings/SubtitleSelectBox.ts +12 -9
  393. package/src/ts/components/settings/VideoQualitySelectBox.ts +11 -8
  394. package/src/ts/components/settings/subtitlesettings/BackgroundColorSelectBox.ts +10 -6
  395. package/src/ts/components/settings/subtitlesettings/BackgroundOpacitySelectBox.ts +8 -5
  396. package/src/ts/components/settings/subtitlesettings/CharacterEdgeColorSelectBox.ts +7 -4
  397. package/src/ts/components/settings/subtitlesettings/CharacterEdgeSelectBox.ts +17 -9
  398. package/src/ts/components/settings/subtitlesettings/FontColorSelectBox.ts +10 -6
  399. package/src/ts/components/settings/subtitlesettings/FontFamilySelectBox.ts +8 -5
  400. package/src/ts/components/settings/subtitlesettings/FontOpacitySelectBox.ts +8 -5
  401. package/src/ts/components/settings/subtitlesettings/FontSizeSelectBox.ts +7 -3
  402. package/src/ts/components/settings/subtitlesettings/FontStyleSelectBox.ts +7 -4
  403. package/src/ts/components/settings/subtitlesettings/SubtitleSettingSelectBox.ts +5 -6
  404. package/src/ts/components/settings/subtitlesettings/SubtitleSettingsPanelPage.ts +28 -23
  405. package/src/ts/components/settings/subtitlesettings/SubtitleSettingsResetButton.ts +11 -8
  406. package/src/ts/components/settings/subtitlesettings/WindowColorSelectBox.ts +10 -8
  407. package/src/ts/components/settings/subtitlesettings/WindowOpacitySelectBox.ts +8 -5
  408. package/src/ts/localization/i18n.ts +45 -47
  409. package/src/ts/localization/languages/de.json +1 -1
  410. package/src/ts/localization/languages/en.json +14 -14
  411. package/src/ts/localization/languages/es.json +14 -14
  412. package/src/ts/localization/languages/nl.json +1 -1
  413. package/src/ts/main.ts +32 -6
  414. package/src/ts/spatialnavigation/FocusableContainer.ts +1 -2
  415. package/src/ts/spatialnavigation/NavigationAlgorithm.ts +6 -7
  416. package/src/ts/spatialnavigation/NavigationGroup.ts +29 -26
  417. package/src/ts/spatialnavigation/NodeEventSubscriber.ts +1 -1
  418. package/src/ts/spatialnavigation/RootNavigationGroup.ts +4 -1
  419. package/src/ts/spatialnavigation/SeekBarHandler.ts +5 -5
  420. package/src/ts/spatialnavigation/SettingsPanelNavigationGroup.ts +12 -4
  421. package/src/ts/spatialnavigation/getKeyMapForPlatform.ts +3 -8
  422. package/src/ts/utils/AudioTrackUtils.ts +0 -1
  423. package/src/ts/utils/BrowserUtils.ts +19 -7
  424. package/src/ts/utils/ErrorUtils.ts +3 -4
  425. package/src/ts/utils/FocusVisibilityTracker.ts +1 -3
  426. package/src/ts/utils/GroupPlaybackAPI.ts +0 -1
  427. package/src/ts/utils/Guid.ts +0 -1
  428. package/src/ts/utils/ImageLoader.ts +3 -4
  429. package/src/ts/utils/MobileV3PlayerAPI.ts +3 -1
  430. package/src/ts/utils/PlayerUtils.ts +4 -7
  431. package/src/ts/utils/SeekBarController.ts +19 -21
  432. package/src/ts/utils/StorageUtils.ts +1 -1
  433. package/src/ts/utils/StringUtils.ts +18 -13
  434. package/src/ts/utils/SubtitleSettingsManager.ts +4 -14
  435. package/src/ts/utils/SubtitleUtils.ts +10 -28
  436. package/src/ts/utils/TimelineMarkersHandler.ts +27 -23
  437. package/src/ts/utils/Timeout.ts +1 -2
  438. package/src/ts/utils/UIUtils.ts +2 -2
  439. package/src/ts/utils/VolumeController.ts +1 -3
  440. package/src/ts/utils/VttUtils.ts +34 -52
  441. package/src/ts/utils/getMinBufferLevel.ts +16 -16
  442. package/tsconfig.json +4 -6
  443. package/typedoc.json +2 -13
  444. package/webpack.config.js +137 -0
  445. package/.github/ISSUE_TEMPLATE/config.yml +0 -11
  446. package/.github/PULL_REQUEST_TEMPLATE.md +0 -7
  447. package/.github/actions/setup-dependencies/action.yml +0 -15
  448. package/.github/scripts/calculateVersionNumber.js +0 -61
  449. package/.github/scripts/defineVersion.js +0 -29
  450. package/.github/scripts/detectReleaseLevel.js +0 -46
  451. package/.github/scripts/notifySlackTeam.js +0 -106
  452. package/.github/scripts/updateChangelog.js +0 -24
  453. package/.github/workflows/ci.yml +0 -55
  454. package/.github/workflows/release.yml +0 -238
  455. package/.github/workflows/tag-release-version.yml +0 -100
  456. package/.husky/pre-commit +0 -2
  457. package/dist/css/bitmovinplayer-ui.min.css +0 -2
  458. package/dist/css/demo.min.css +0 -1
  459. package/dist/js/bitmovinplayer-ui.min.js +0 -2
  460. package/dist/js/bitmovinplayer-ui.min.js.map +0 -1
  461. package/dist/js/framework/components/buttons/SubtitleToggleButton.d.ts +0 -21
  462. package/dist/js/framework/components/buttons/SubtitleToggleButton.js +0 -90
  463. package/eslint.config.mjs +0 -49
  464. package/gulpfile.js +0 -250
  465. package/jest.config.js +0 -21
  466. package/publish.sh +0 -169
  467. package/setup-jest.ts +0 -1
  468. package/spec/UIManager.spec.ts +0 -210
  469. package/spec/components/UIContainer.spec.ts +0 -101
  470. package/spec/components/buttons/FullscreenToggleButton.spec.ts +0 -85
  471. package/spec/components/buttons/PictureInPictureToggleButton.spec.ts +0 -85
  472. package/spec/components/buttons/ToggleButton.spec.ts +0 -142
  473. package/spec/components/labels/PlaybackTimeLabel.spec.ts +0 -151
  474. package/spec/components/labels/SeekbarLabel.spec.ts +0 -167
  475. package/spec/components/lists/ListSelector.spec.ts +0 -262
  476. package/spec/components/overlays/ErrorMessageOverlay.spec.ts +0 -68
  477. package/spec/components/overlays/SubtitleOverlay.spec.ts +0 -157
  478. package/spec/components/seekbar/SeekBar.spec.ts +0 -188
  479. package/spec/components/settings/SelectBox.spec.ts +0 -325
  480. package/spec/components/settings/SettingsPanel.spec.ts +0 -236
  481. package/spec/helper/MockHelper.ts +0 -138
  482. package/spec/helper/PlayerEventEmitter.ts +0 -409
  483. package/spec/helper/mockClass.ts +0 -48
  484. package/spec/helper/mockComponent.ts +0 -61
  485. package/spec/localization/Localization.spec.ts +0 -63
  486. package/spec/release/calculateVersionNumber.spec.ts +0 -90
  487. package/spec/release/defineVersion.spec.ts +0 -27
  488. package/spec/release/detectReleaseLevel.spec.ts +0 -106
  489. package/spec/spatialnavigation/NavigationAlgorithm.spec.ts +0 -108
  490. package/spec/spatialnavigation/NavigationGroup.spec.ts +0 -192
  491. package/spec/spatialnavigation/NodeEventSubscriber.spec.ts +0 -41
  492. package/spec/spatialnavigation/RootNavigationGroup.spec.ts +0 -54
  493. package/spec/spatialnavigation/SeekBarHandler.spec.ts +0 -228
  494. package/spec/spatialnavigation/SpatialNavigation.spec.ts +0 -103
  495. package/spec/spatialnavigation/getHtmlElementsFromComponents.spec.ts +0 -23
  496. package/spec/spatialnavigation/getKeyMapForPlatform.spec.ts +0 -35
  497. package/spec/utils/AudioUtils.spec.ts +0 -119
  498. package/spec/utils/BrowserUtils.spec.ts +0 -26
  499. package/spec/utils/ErrorUtils.spec.ts +0 -35
  500. package/spec/utils/FocusVisibilityTracker.spec.ts +0 -88
  501. package/spec/utils/MobileV3PlayerAPI.spec.ts +0 -26
  502. package/spec/utils/PlayerUtils.spec.ts +0 -43
  503. package/spec/utils/SubtitleUtils.spec.ts +0 -160
  504. package/spec/utils/TimeLineMarkersHandler.spec.ts +0 -92
  505. package/spec/utils/VolumeController.spec.ts +0 -29
  506. package/spec/utils/VttUtils.spec.ts +0 -702
  507. package/src/scss/components/buttons/_subtitle-toggle-button.scss +0 -22
  508. package/src/ts/components/buttons/SubtitleToggleButton.ts +0 -91
package/CHANGELOG.md CHANGED
@@ -1,12 +1,14 @@
1
1
  # Change Log
2
+
2
3
  All notable changes to this project will be documented in this file.
3
4
 
4
5
  The format is based on [Keep a Changelog](http://keepachangelog.com/)
5
6
  and this project adheres to [Semantic Versioning](http://semver.org/).
6
7
 
7
- ## [Unreleased]
8
+ ## [4.0.0] - 2025-09-26
8
9
 
9
10
  ### Added
11
+
10
12
  - `Icon` component for generic icon rendering
11
13
  - Dedicated `Icon` component to `Button` to allow separate styling for icons, text and backgrounds
12
14
  - `ButtonStyle` to have general button appearance customization
@@ -26,8 +28,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
26
28
  - When navigating the UI either via the Keyboard or via Spatial Navigation, the `SettingsPanel` automatically focuses the first settings option
27
29
  - `UIConditionContext.isTv` to include the TV UI variant by default
28
30
  - A dedicated UIVariant when no Source is loaded to avoid showing UI elements with undefined values
31
+ - Prettier for automatic code formatting
29
32
 
30
33
  ### Changed
34
+
31
35
  - Existing UI layouts and designs were updated to better fit modern Player UI experiences
32
36
  - The TV UI layout got a complete rework and now provides a cleaner and more modern look and feel
33
37
  - The design on TVs was updated to better feedback of the currently focused element and provides the same experience as on web browsers
@@ -48,33 +52,38 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
48
52
  ```javascript
49
53
  {
50
54
  // Can be part of the SourceConfig or UIConfig
51
- recommendations: [{
52
- title: 'Recommendation 2: The second best video',
53
- resource: {
54
- url: 'http://bitmovin.com', thumbnail: 'https://placehold.co/300x300/222/222'
55
+ recommendations: [
56
+ {
57
+ title: 'Recommendation 2: The second best video',
58
+ resource: {
59
+ url: 'http://bitmovin.com',
60
+ thumbnail: 'https://placehold.co/300x300/222/222',
61
+ },
62
+ duration: 64,
55
63
  },
56
- duration: 64
57
- }]
64
+ ];
58
65
  }
59
66
  ```
60
67
  - Added support for `SourceConfig` to directly load new content in the current player instance
61
68
  Example:
62
69
  ```javascript
63
70
  {
64
- // Can be part of the SourceConfig or UIConfig
65
- recommendations: [{
66
- title: 'Recommendation 2: The second best video',
67
- resource: {
68
- dash: 'YOUR_DASH_MANIFEST',
69
- // .. additional SourceConfig properties
70
- poster: 'YOUR_POSTER_URL',
71
+ // Can be part of the SourceConfig or UIConfig
72
+ recommendations: [
73
+ {
74
+ title: 'Recommendation 2: The second best video',
75
+ resource: {
76
+ dash: 'YOUR_DASH_MANIFEST',
77
+ // .. additional SourceConfig properties
78
+ poster: 'YOUR_POSTER_URL',
79
+ },
80
+ duration: 64,
71
81
  },
72
- duration: 64
73
- }]
82
+ ];
74
83
  }
75
84
  ```
76
85
  - Updated `SettingsPanel` design for better navigation and extend functionality
77
- - The settings panel, per default, no longer uses system provided select boxes but custom design selection items.
86
+ - The settings panel, per default, no longer uses system provided select boxes but custom design selection items.
78
87
  To enable this, we added:
79
88
  - `InteractiveSettingsPanelItem` which acts as a selection option within the `SettingsPanel`
80
89
  - `DynamicSettingsPanelItem` which allows dynamically navigating within the `SettingsPanel` to a new `SettingsPanelPage` without the need to predefine the page and its content
@@ -96,6 +105,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
96
105
  - The UI Controls now immediately hide on mouse leave on web browsers by default
97
106
  - Updated buffering indicator with updated design, animation and color
98
107
  - The Small Screen UI is now used on web browsers when the document width is less than `800px`
108
+ - Renamed `$color-background-bars` to `$color-background-gradient-start`
99
109
  - Folder Structure rework
100
110
  - The entire codebase has been reorganized from a flat structure to a hierarchical folder structure
101
111
  - Components are now grouped into folders based on their functionality or grouped by bigger features
@@ -103,8 +113,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
103
113
  - All TypeScript files now use PascalCase instead of all lowercased
104
114
  - All SCSS files now use kebab-case instead of all lowercased
105
115
  - This includes the css-classes used as well
116
+ - Use `webpack` instead of `gulp` now as build tool
106
117
 
107
118
  ### Removed
119
+
108
120
  - The terms `modern`, `skin` and `default` across the codebase
109
121
  - Our UI is now simply referred as the UI and not as `modernUI` or `defaultUI` anymore
110
122
  - The `UIFactory` still provides all the same builder methods, but without the `modern` or `default` prefix anymore
@@ -119,17 +131,20 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
119
131
  - `ui-skin-cast-receiver` -> `ui-cast-receiver`
120
132
  - `ui-skin-tv` -> `ui-tv`
121
133
 
122
- ## [Unreleased]
134
+ ## [4.0.0] - 2025-09-26
123
135
 
124
136
  ### Changed
137
+
125
138
  - Update our release automation to prepare for the upcoming v4 release
126
139
 
127
140
  ## [3.102.0] - 2025-08-14
128
141
 
129
142
  ### Changed
143
+
130
144
  - Default font size for CEA captions is lowered, effectively making the previous 75% the new 100%.
131
145
 
132
146
  ### Fixed
147
+
133
148
  - Long CEA captions are cut off when font size changed to greater than 100% via settings panel
134
149
  - CEA caption font size is not changing when font size set to 75% via settings panel
135
150
  - CEA caption positioning breaks when font size is changed via settings panel
@@ -137,6 +152,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
137
152
  ## [3.101.0] - 2025-08-12
138
153
 
139
154
  ### Fixed
155
+
140
156
  - Font size change in subtitle rendering options menu has no effect for CEA captions
141
157
  - Subtitle font size changes for VTT/TTML subtitles when the subtitle rendering options menu is opened
142
158
  - Subtitle font size preference from local storage is not restored upon UI initialization
@@ -144,75 +160,90 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
144
160
  ## [3.100.0] - 2025-08-12
145
161
 
146
162
  ### Fixed
163
+
147
164
  - CEA captions can overlap with player's control bar
148
165
 
149
166
  ## [3.99.0] - 2025-08-11
150
167
 
151
168
  ### Fixed
169
+
152
170
  - Immediately update the playback position when seeking using a click
153
171
 
154
172
  ## [3.98.0] - 2025-06-13
155
173
 
156
174
  ### Fixed
175
+
157
176
  - The `PlaybackTimeLabel`s time format was incorrectly displayed as `mm:ss` instead of `hh:mm:ss` when the duration is higher than 1 hour when transitioning from Live to VOD
158
177
 
159
178
  ## [3.97.0] - 2025-06-12
160
179
 
161
180
  ### Fixed
181
+
162
182
  - The `PlaybackTimeLabel`s now immediately display the time instead of flickering `LIVE` for a short time when transitioning from Live to VOD
163
183
 
164
184
  ## [3.96.0] - 2025-05-16
165
185
 
166
186
  ### Changed
187
+
167
188
  - Background of CEA captions now does not cover the subtitle window fully
168
189
 
169
190
  ## [3.95.0] - 2025-05-16
170
191
 
171
192
  ### Fixed
193
+
172
194
  - Seeking with active CEA captions left an empty window behind
173
195
 
174
196
  ## [3.94.0] - 2025-05-15
175
197
 
176
198
  ### Fixed
177
- - WebVTT doesn't render when region styles are present
199
+
200
+ - WebVTT doesn't render when region styles are present
178
201
 
179
202
  ## [3.93.0] - 2025-05-09
180
203
 
181
204
  ### Fixed
205
+
182
206
  - CEA caption rendering broken if no user preference is present for subtitle font size
183
207
 
184
208
  ## [3.92.0] - 2025-04-23
185
209
 
186
210
  ### Added
211
+
187
212
  - Ads UI variant to default TV UI
188
213
 
189
214
  ## [3.91.0] - 2025-04-10
190
215
 
191
216
  ### Added
217
+
192
218
  - `aria-label` to `ErrorMessageOverlay`
193
219
  - New `ariaFallbackMode` configuration option to `SeekBarConfig`, which updates the current playback position also in the `aria-label`. This can be used for devices which don't support the `aria-valuetext` attribute for `slider`s.
194
220
 
195
221
  ### Changed
222
+
196
223
  - The `aria-pressed` attribute is only set on `ToggleButton`s instead of all buttons
197
224
  - The `aria-pressed` attribute is not set if both, `onAriaLabel` and `offAriaLabel`, configuration properties are set for a specific component
198
225
  - The `aria-label` for Quickseek buttons contain now also the number of seconds the button seeks
199
226
 
200
227
  ### Fixed
228
+
201
229
  - Error message in `ErrorMessageOverlay` not read by Text-To-Speech engine on Tizen
202
230
 
203
231
  ## [3.90.0] - 2025-04-03
204
232
 
205
233
  ### Fixed
234
+
206
235
  - Setting larger font size while using CEA-608 captions can shift some cues outside of visible area.
207
236
 
208
237
  ## [3.89.0] - 2025-03-24
209
238
 
210
239
  ### Added
240
+
211
241
  - Changing font size now also takes an effect in CEA-608 captions with cap from 50% to 200%. Larger than default font size also disables the grid view.
212
242
 
213
243
  ## [3.88.0] - 2025-02-25
214
244
 
215
245
  ### Changed
246
+
216
247
  - Chore: Skip releasing a new version when no changelog entry was added
217
248
  - Chore: Fix release workflow
218
249
  - Chore: Fix release workflow again
@@ -221,222 +252,268 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
221
252
  ## [3.87.0] - 2025-02-20
222
253
 
223
254
  ### Fixed
255
+
224
256
  - Setting font color in subtitle customization settings not working on Comcast X1 Set-Top Boxes and other older WebKit-based platforms
225
257
 
226
258
  ## [3.86.0] - 2025-02-20
227
259
 
228
260
  ### Changed
261
+
229
262
  - Chore: Update github actions to v4
230
263
 
231
264
  ## [3.85.0] - 2025-01-16
232
265
 
233
266
  ### Changed
267
+
234
268
  - Chore: Update assets to use Bitmovin CDN
235
269
 
236
270
  ## [3.84.0] - 2025-01-15
237
271
 
238
272
  ### Added
273
+
239
274
  - Support for changing the font style of subtitles and closed captions
240
275
  - Support for changing the edge color of characters of subtitles and closed captions
241
276
 
242
277
  ## [3.83.0] - 2025-01-14
243
278
 
244
279
  ## Fixed
280
+
245
281
  - Exception when disabling smooth playback position updating by setting `SeekbarConfig.smoothPlaybackPositionUpdateIntervalMs` to `-1`
246
282
 
247
283
  ## [3.82.0] - 2025-01-13
248
284
 
249
285
  ### Added
286
+
250
287
  - Chore: Pre-commit hook for linting TypeScript file changes
251
288
 
252
289
  ## [3.81.0] - 2025-01-10
253
290
 
254
291
  ### Fixed
292
+
255
293
  - Positioning of CEA-608 caption cues when multiple cues are displayed on the same line
256
294
 
257
295
  ## [3.80.0] - 2025-01-08
258
296
 
259
297
  ### Fixed
298
+
260
299
  - Unexpected styling for the initially displayed cue when enabling CEA-608 captions
261
300
  - Vertical alignment of CEA-608 captions on small player sizes
262
301
 
263
302
  ## [3.79.0] - 2025-01-08
264
303
 
265
304
  ### Fixed
305
+
266
306
  - CEA-608 caption window covering almost the entire video area
267
307
 
268
308
  ### Changed
309
+
269
310
  - Create separate region components for each CEA-608 row
270
311
 
271
312
  ## [3.78.0] - 2025-01-08
272
313
 
273
314
  ### Changed
315
+
274
316
  - Chore: Switch from `tslint` to `eslint` for linting
275
317
 
276
318
  ## [3.77.0] - 2025-01-03
277
319
 
278
320
  ### Changed
321
+
279
322
  - Chore: Update to Node v22
280
323
 
281
324
  ## [3.76.0] - 2024-12-20
282
325
 
283
326
  ### Fixed
327
+
284
328
  - Seek preview thumbnails exceeding the UI dimensions when default size is increased
285
329
 
286
330
  ## [3.75.0] - 2024-11-19
287
331
 
288
332
  ### Fixed
333
+
289
334
  - Potential performance impact caused by forced layout reflows
290
335
 
291
336
  ## [3.74.0] - 2024-10-24
292
337
 
293
338
  ### Changed
339
+
294
340
  - Dpad keymap for Android devices
295
341
 
296
342
  ## [3.73.0] - 2024-09-06
297
343
 
298
344
  ### Added
345
+
299
346
  - `Component` now has a `ViewMode` that can either be `Persistent` or `Temporary`
300
347
 
301
348
  ### Fixed
349
+
302
350
  - `selectbox` dropdown not closing in Safari when the UI is hidden
303
351
 
304
352
  ### Changed
353
+
305
354
  - `selectbox` now sets its `ViewMode` to `Persistent` whenever and as long as the select-dropdown is shown
306
355
  - `uicontainer` and `settingspanel` will no longer auto-hide if there are any components that are in the `Persistent` view mode
307
356
 
308
357
  ## [3.72.0] - 2024-08-30
309
358
 
310
359
  ### Added
360
+
311
361
  - Dutch (nl) subtitles
312
362
 
313
363
  ## [3.71.0] - 2024-08-28
314
364
 
315
365
  ### Added
366
+
316
367
  - Link to API docs in README
317
368
 
318
369
  ## [3.70.0] - 2024-08-21
319
370
 
320
371
  ### Added
372
+
321
373
  - Support for a new placeholder `{adBreakRemainingTime}` in [AdMessageLabel](https://cdn.bitmovin.com/player/ui/3/docs/classes/AdMessageLabel.html) that displays the remaining time in an ad break. [Documentation](https://cdn.bitmovin.com/player/ui/3/docs/functions/StringUtils.replaceAdMessagePlaceholders.html) on usage.
322
374
 
323
375
  ## [3.69.0] - 2024-08-14
324
376
 
325
377
  ### Added
378
+
326
379
  - API doc generation and publishing. The API doc from the UI can be found [here](https://cdn.bitmovin.com/player/ui/3/docs/index.html)
327
380
 
328
381
  ## [3.67.0] - 2024-07-03
329
382
 
330
383
  ### Added
384
+
331
385
  - Missing changelog entries of `3.65.0` and `3.66.0` release versions
332
386
 
333
387
  ## [3.66.0] - 2024-07-01
334
388
 
335
389
  ### Changed
390
+
336
391
  - Playground demo page to include checkbox to enable/disbale ads
337
392
  - Store basic configuration of playground demo page in localStorage
338
393
 
339
394
  ## [3.65.0] - 2024-06-24
340
395
 
341
396
  ### Added
397
+
342
398
  - Eco Mode toggle button
343
399
 
344
400
  ## [3.64.0] - 2024-05-28
345
401
 
346
402
  ### Added
403
+
347
404
  - `Component` instances are now assigned to their `HTMLElements` for easier accessing
348
405
 
349
406
  ### Fixed
407
+
350
408
  - Two touch interactions needed to skip an ad or open the click through link
351
409
 
352
410
  ## [3.63.0] - 2024-05-17
353
411
 
354
412
  ### Added
413
+
355
414
  - `QuickSeekButton` control bar component for jumping +/- a configurable number of seconds (10 second default)
356
415
 
357
416
  ## [3.62.0] - 2024-05-06
358
417
 
359
418
  ### Fixed
419
+
360
420
  - No subtitle is shown when switching between different tracks
361
421
 
362
422
  ## [3.61.0] - 2024-04-23
363
423
 
364
424
  ### Fixed
425
+
365
426
  - `ControlBar` not auto-hiding when `UIConfig.disableAutoHideWhenHovered` is set to `true` on some touch screen devices
366
427
 
367
428
  ## [3.60.0] - 2024-04-16
368
429
 
369
430
  ### Added
431
+
370
432
  - Type export for `UIVariant` interface
371
433
 
372
434
  ## [3.59.0] - 2024-04-12
373
435
 
374
436
  ### Added
437
+
375
438
  - `UIContainerConfig.hideImmediatelyOnMouseLeave` to immediately hide the UI when mouse leaves it
376
439
 
377
440
  ### Fixed
441
+
378
442
  - Triggering UI release after merging a PR from a fork
379
443
 
380
444
  ## [3.58.0] - 2024-04-08
381
445
 
382
446
  ### Added
447
+
383
448
  - `UIConfig#seekbarSnappingEnabled` config option to enable/disable the play head snapping to markers on the seek bar when seeking near them. Default is `true`.
384
449
 
385
450
  ## [3.57.0] - 2024-03-28
386
451
 
387
452
  ### Added
453
+
388
454
  - `disableStorageApi` config option
389
455
 
390
456
  ### Fixed
457
+
391
458
  - Subtitle settings not being retained when the UI variant switches
392
459
 
393
460
  ## [3.56.0] - 2024-03-26
394
461
 
395
462
  ### Changed
463
+
396
464
  - `localStorage` availability check to not create a test-entry anymore
397
465
 
398
466
  ## [3.55.0] - 2024-03-21
399
467
 
400
468
  ### Added
469
+
401
470
  - Automatically add compare link in changelog file in relase workflow
402
471
 
403
472
  ### Fixed
473
+
404
474
  - Missing compare link in the changelog file
405
475
 
406
476
  ## [3.54.0] - 2024-02-01
407
477
 
408
478
  ### Fixed
479
+
409
480
  - FCC subtitle settings menu showing two options with the same value
410
481
  - Invalid release workflow file
411
482
 
412
483
  ## [3.53.0] - 2024-01-03
413
484
 
414
485
  ### Added
486
+
415
487
  - Automate release on every PR merge to develop
416
488
 
417
489
  ## [3.52.2] - 2023-11-23
418
490
 
419
491
  ### Fixed
492
+
420
493
  - Potential name clashing in CSS animations due to missing `bmpui` prefix
421
494
 
422
495
  ## [3.52.1] - 2023-11-13
423
496
 
424
497
  ### Fixed
498
+
425
499
  - Crash when receiving a `SourceLoaded` event during scrubbing
426
500
 
427
501
  ## [3.52.0] - 2023-09-25
428
502
 
429
503
  ### Fixed
504
+
430
505
  - When having a spatial navigation and using a mouselike device, components will lose focus when the mouse leaves the hovered component. Spatial navigation will continue at the last active component when using arrow keys again.
431
506
 
432
507
  ## [3.51.0] - 2023-09-18
433
508
 
434
509
  ### Changed
510
+
435
511
  - On seek/timeshift operations the UI will only remove subtitle cues which do not enclose the seek target instead of removing all.
436
512
 
437
513
  ## [3.50.0] - 2023-07-24
438
514
 
439
515
  ### Fixed
516
+
440
517
  - Settings panel does not close on single tap on mobile devices
441
518
  - Restoring volume on unmute not working when volume was changed through the player API
442
519
  - Gulp `watch` task not working
@@ -444,76 +521,91 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
444
521
  ## [3.49.0] - 2023-07-17
445
522
 
446
523
  ### Added
524
+
447
525
  - `onActiveUiChanged` event on the `UIManager` that is dispatched when the UI manager switches to a different UI variant
448
526
  - Readonly `currentUi` field on the `UIManager` that exposes the active `UIInstanceManager`
449
527
 
450
528
  ## [3.48.0] - 2023-07-03
451
529
 
452
530
  ### Fixed
531
+
453
532
  - When more than one UI with spatial navigation is managed by the UI manager, all UIs would handle key events, instead of only the active one.
454
533
 
455
534
  ## [3.47.0] - 2023-05-17
456
535
 
457
536
  ### Changed
537
+
458
538
  - Updated package dependencies.
459
539
 
460
540
  ## [3.46.0] - 2023-03-22
461
541
 
462
542
  ### Added
543
+
463
544
  - Config option `forceSubtitlesIntoViewContainer` to handle overflowing subtitle labels
464
545
 
465
546
  ## [3.45.0] - 2023-03-06
466
547
 
467
548
  ### Added
549
+
468
550
  - Scrubbing during a FaceTime call automatically creates a SharePlay suspension to not synchronize scrubbing to other participants.
469
551
 
470
552
  ## [3.44.0] - 2023-02-13
471
553
 
472
554
  ### Fixed
555
+
473
556
  - Circular dependency in the import of `AudioTrackListBox` between `main.ts` and `uifactory.ts`
474
557
 
475
558
  ## [3.43.0] - 2023-02-06
476
559
 
477
560
  ### Added
561
+
478
562
  - `UIConfig.enterFullscreenOnInitialPlayback` to enter fullscreen when clicking `PlaybackToggleButton` or `HugePlaybackToggleButton` to initiate the initial playback
479
563
 
480
564
  ## [3.42.0] - 2023-01-30
481
565
 
482
566
  ### Added
567
+
483
568
  - Language localization for Spanish
484
569
 
485
570
  ## [3.41.0] - 2023-01-12
486
571
 
487
572
  ### Added
573
+
488
574
  - Export Localization and SpatialNavigation to use in external UI configuration
489
575
 
490
576
  ## [3.40.0] - 2022-12-20
491
577
 
492
578
  ### Added
579
+
493
580
  - Support for spatial navigation
494
581
  - SmartTV UI via `UIFactory.buildDefaultTvUI`
495
582
 
496
583
  ### Changed
584
+
497
585
  - Node.js from 10 to 16
498
586
  - Typescript from ^3.9.6 to 4.3
499
587
 
500
588
  ## [3.39.0] - 2022-12-01
501
589
 
502
590
  ### Added
591
+
503
592
  - `display` method on `ErrorMessageOverlay` to enable usage for application errors without a player error
504
593
  - Replay button which can be used within the controlbar and works also during playback
505
594
 
506
595
  ### Fixed
596
+
507
597
  - Unnecessary DOM element creation on release
508
598
 
509
599
  ## [3.38.0] - 2022-08-30
510
600
 
511
601
  ### Fixed
602
+
512
603
  - Duration format not getting updated from `mm:ss` to `hh:mm:ss`
513
604
 
514
605
  ## [3.37.0] - 2022-04-12
515
606
 
516
607
  ### Fixed
608
+
517
609
  - Incorrect line alignment for subtitle cues from WebVTT tracks.
518
610
  - Incorrect edges of reference for vertical writing cues in block positioning from WebVTT tracks.
519
611
  - An empty line is added in vertical subtitle cues.
@@ -521,144 +613,175 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
521
613
  ## [3.36.0] - 2022-03-15
522
614
 
523
615
  ### Added
616
+
524
617
  - Seek preview is now configurable via `UIConfig.enableSeekPreview` or `SeekBarConfig.enableSeekPreview`
525
618
 
526
619
  ## [3.35.0] - 2022-03-01
527
620
 
528
621
  ### Fixed
622
+
529
623
  - npm install failure on node 16
530
624
 
531
625
  ## [3.34.0] - 2022-02-16
532
626
 
533
627
  ### Fixed
628
+
534
629
  - Incorrect aria-label on playbackbutton toggle
535
630
 
536
631
  ## [3.33.0] - 2022-02-01
537
632
 
538
633
  ### Added
634
+
539
635
  - Support for providing custom `aria-label` when `ListBox` is used.
540
636
 
541
637
  ### Fixed
638
+
542
639
  - Updating the markers on live streams causing unhandled exception after player is destroyed.
543
640
 
544
641
  ## [3.32.0] - 2021-12-21
545
642
 
546
643
  ### Fixed
644
+
547
645
  - The scrubber could jump to an old position during a seek operation when it was dragged.
548
646
  - The Seekbar scrubber could jump to an old position on touch devices when the buffer updates during a seek operation.
549
647
 
550
648
  ## [3.31.0] - 2021-10-12
551
649
 
552
650
  ### Added
651
+
553
652
  - Style reset for subtitle overlay element to prevent undesired CSS rules collisions.
554
653
 
555
654
  ## [3.30.0] - 2021-09-14
556
655
 
557
656
  ### Added
657
+
558
658
  - Sort `AudioTracks` inside the `AudioTrackSelectBox` and the `AudioTrackListBox` by their identifier.
559
659
 
560
660
  ## [3.29.0] - 2021-08-19
561
661
 
562
662
  ### Fixed
663
+
563
664
  - An empty line being added to subtitle boxes when VTT positioning attributes are present.
564
665
 
565
666
  ## [3.28.1] - 2021-06-25
566
667
 
567
668
  ### Fixed
669
+
568
670
  - Broken build for previous release `3.28.0`
569
671
 
570
672
  ## [3.28.0] - 2021-06-22 [YANKED]
571
673
 
572
674
  ### Fixed
675
+
573
676
  - VTT cue positioning when position alignment is `end` or `right`
574
677
 
575
678
  ## [3.27.0] - 2021-04-11
576
679
 
577
680
  ### Added
681
+
578
682
  - Support for `CueUpdate` events that were introduced in player v8.60.0
579
683
 
580
684
  ### Fixed
685
+
581
686
  - Ad times (`remainingTime`, `playedTime` and `adDuration`) are not correctly rounded
582
687
 
583
688
  ## [3.26.0] - 2021-03-30
584
689
 
585
690
  ### Fixed
691
+
586
692
  - `TouchEvent` error in seekbar controls when using the mouse on a touchscreen Windows device and IE/UWP
587
693
 
588
694
  ## [3.25.0] - 2021-03-16
589
695
 
590
696
  ### Added
697
+
591
698
  - Build step to publish releases to npm via CI
592
699
  - Support for Mobile V3 `PlayerError` and `SourceError` events
593
700
 
594
701
  ### Fixed
702
+
595
703
  - Controls' focus highlighting is shown in case of non-keyboard interaction on some browsers/platforms
596
704
 
597
705
  ## [3.24.0] - 2021-02-16
598
706
 
599
707
  ### Added
708
+
600
709
  - Support for `PlaylistTransition` event which is only present on Mobile V3
601
710
 
602
711
  ## [3.23.0] - 2021-01-14
603
712
 
604
713
  ### Changed
714
+
605
715
  - Default error message for code `1105` now uses the term "allowlist"
606
716
 
607
717
  ## [3.22.0] - 2020-12-22
608
718
 
609
719
  ### Added
720
+
610
721
  - `UIConfig#disableAutoHideWhenHovered` config property to disable auto hiding of UI when an element in `ControlBar` is currently hovered
611
722
 
612
723
  ### Changed
724
+
613
725
  - Exported builder method for `modernUI`
614
726
 
615
727
  ## [3.21.0] - 2020-12-03
616
728
 
617
729
  ### Added
730
+
618
731
  - `'type' : 'button'` to buttons to prevent submitting forms
619
732
 
620
733
  ## [3.20.0] - 2020-11-25
621
734
 
622
735
  ### Fixed
736
+
623
737
  - Wrapping possibly not enumerable properties of player object, like getters and setters
624
738
 
625
739
  ## [3.19.0] - 2020-11-10
626
740
 
627
741
  ### Fixed
742
+
628
743
  - Subtitles not displayed in IE/tizen 2016 when no regions are present
629
744
 
630
745
  ## [3.18.0] - 2020-10-27
631
746
 
632
747
  ### Fixed
748
+
633
749
  - Live-indicator stays active after stalling in live streams
634
750
 
635
751
  ## [3.17.0] - 2020-08-18
636
752
 
637
753
  ### Fixed
754
+
638
755
  - Subtitle positioning when small screen UI is used and vtt properties are present
639
756
  - `SettingsPanel` goes blank sometimes when switching browser tab/window
640
757
 
641
758
  ## [3.16.0] - 2020-07-30
642
759
 
643
760
  ### Added
761
+
644
762
  - Support for `images` on `TimelineMarkers`
645
763
 
646
764
  ### Changed
765
+
647
766
  - Changed `TimelineMarkers` rendering from using no `offset` and `css-border` to `width` and `translateX` properties.
648
767
 
649
768
  ### Fixed
769
+
650
770
  - Inconsistent `PlaybackToggleButton` state after transitioning between multiple `AdBreak`s for the same position using `BitmovinAdvertisingModule`
651
771
 
652
772
  ## [3.15.0] - 2020-07-23
653
773
 
654
774
  ### Added
775
+
655
776
  - Listen to `ViewModeAvailabilityChanged` event and toggle visibility of `FullscreenToggleButton` and `PictureInPictureToggleButton` accordingly
656
777
  - Support `TimelineMarkers` in live streams
657
778
 
658
779
  ### Changed
780
+
659
781
  - TypeScript update to 3.9.6
660
782
 
661
783
  ### Fixed
784
+
662
785
  - Dead documentation link in README.md
663
786
  - `FullscreenToggleButton` being visible although `ViewMode.Fullscreen` is not available
664
787
  - Vertical text alignment in the `MetadataLabel` for the `MetadataLabelContent.Title` in the `SmallScreenUI`
@@ -666,24 +789,29 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
666
789
  ## [3.14.0]
667
790
 
668
791
  ### Added
792
+
669
793
  - Seekbar snapping range is now configurable
670
794
 
671
795
  ## [3.13.0]
672
796
 
673
797
  ### Fixed
798
+
674
799
  - Subtitles partially hidden by player controls
675
800
 
676
801
  ## [3.12.0]
677
802
 
678
803
  ### Added
804
+
679
805
  - TTML `displayAlign = after` styling case
680
806
 
681
807
  ### Fixed
808
+
682
809
  - TTML subtitles region alignment
683
810
 
684
811
  ## [3.11.0]
685
812
 
686
813
  ### Fixed
814
+
687
815
  - Position alignment for VTT subtitles
688
816
  - Default selection not highlighted in AudioTrackListBox and SubtitleListBox
689
817
  - Clear subtitles list when source is unloaded
@@ -691,25 +819,30 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
691
819
  ## [3.10.0]
692
820
 
693
821
  ### Added
822
+
694
823
  - Support for regions in VTT subtitles
695
824
 
696
825
  ### Fixed
826
+
697
827
  - UI hiding when actively using seek or volume slider
698
828
  - Empty background boxes with TTML subtitles on Chromecast
699
829
 
700
830
  ## [3.9.2]
701
831
 
702
832
  ### Added
833
+
703
834
  - Web Content Accessibility (WCAG) 2.0
704
835
  - Keyboard controls for sliders when focused
705
836
 
706
837
  ### Fixed
838
+
707
839
  - `onActive` and `onInactive` not fired for root `SettingsPanelPage` when `SettingsPanel` was configured with `hideDelay` of `-1`
708
840
  - Automatic opening of the first select box when the `SettingsPanel` becomes visible on iOS devices
709
841
 
710
842
  ## [3.9.1]
711
843
 
712
844
  ### Fixed
845
+
713
846
  - UI flickering back and forth on live streams after ads
714
847
  - Build errors when using the npm package
715
848
  - Outdated live asset sample
@@ -717,122 +850,149 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
717
850
  ## [3.9.0]
718
851
 
719
852
  ### Added
853
+
720
854
  - Localization
721
855
  - `DurationChanged` event support
722
856
 
723
857
  ## [3.8.1]
724
858
 
725
859
  ### Changed
860
+
726
861
  - Hide UI even a element in `ControlBar` is currently hovered
727
862
 
728
863
  ### Fixed
864
+
729
865
  - Do not hide `SettingsPanel` in `modernSmallScreenUI` automatically
730
866
 
731
867
  ## [3.8.0]
732
868
 
733
869
  ### Added
870
+
734
871
  - Support for regions in TTML subtitles
735
872
 
736
873
  ## [3.7.0]
737
874
 
738
875
  ### Added
876
+
739
877
  - Thumbnail preview support for live streams
740
878
 
741
879
  ### Changed
880
+
742
881
  - UI no longer hides in `Prepared`, `Paused` or `Finished` state
743
882
 
744
883
  ## [3.6.1]
745
884
 
746
885
  ### Fixed
886
+
747
887
  - Ads UI not being hidden when the Player is unloaded during ad playback
748
888
 
749
889
  ## [3.6.0]
750
890
 
751
891
  ### Added
892
+
752
893
  - `PlaybackTimeLabelMode.RemainingTime` to display the remaining time of the content
753
894
 
754
895
  ### Changed
896
+
755
897
  - Improved documentation about time / number formats which can be used in `AdMessageLabel` placeholders
756
898
  - TypeScript update to 3.4.5
757
899
  - Improved generic type inheritance of `Component` `Config`s ([#74](https://github.com/bitmovin/bitmovin-player-ui/issues/74))
758
900
 
759
901
  ### Fixed
902
+
760
903
  - Incorrect calculation of `SettingsPanelPage` dimensions in transition animation
761
904
  - Navigation for more than two `SettingsPanelPage`s
762
905
 
763
906
  ## [3.5.0]
764
907
 
765
908
  ### Added
909
+
766
910
  - Support for player instances which inherits from the `BitmovinPlayer`
767
911
 
768
912
  ### Changed
913
+
769
914
  - `ListBox` no longer recreates itself after the list was updated
770
915
 
771
916
  ### Fixed
917
+
772
918
  - UI not hiding after selecting an item within a `ListBox`
773
919
 
774
920
  ## [3.4.6]
775
921
 
776
922
  ### Fixed
923
+
777
924
  - Allow npm package to be imported in server side app without `navigator` error
778
925
 
779
926
  ## [3.4.5]
780
927
 
781
928
  ### Fixed
929
+
782
930
  - Wrong state for live indicator when a `startTime` value is provided within the `SourceConfig` of the player
783
931
 
784
932
  ## [3.4.4]
785
933
 
786
934
  ### Fixed
935
+
787
936
  - Crash of `UIContainer.release` when initialized with `hideDelay: -1`
788
937
 
789
938
  ## [3.4.3]
790
939
 
791
940
  ### Fixed
941
+
792
942
  - AirPlay icon does not change into active state
793
943
 
794
944
  ## [3.4.2]
795
945
 
796
946
  ### Changed
947
+
797
948
  - Dispatch last event of a rate-limited event sequence to `Event.subscribeRateLimited` listeners
798
949
 
799
950
  ### Fixed
951
+
800
952
  - Inaccurate time within `SeekBarLabel` on seek preview
801
953
 
802
954
  ## [3.4.1]
803
955
 
804
956
  ### Added
957
+
805
958
  - `simple.html` to test plain UI CSS without Bootstrap
806
959
 
807
960
  ### Fixed
961
+
808
962
  - Stopping timeshift offset updater of `SeekBar` when player is destroyed
809
963
  - `box-sizing` style of `SeekBar` and `SeekBarLabel`
810
964
 
811
965
  ## [3.4.0]
812
966
 
813
967
  ### Added
968
+
814
969
  - `UIContainerConfig.userInteractionEventSource` to allow tracking of user interaction events (which toggle the visibility of certain components like the `ControlBar`) on a custom element
815
970
 
816
971
  ### Changed
972
+
817
973
  - Avoid unnecessary updating of hidden `AdSkipButton`
818
974
  - Upgrade to Gulp 4 ([#208](https://github.com/bitmovin/bitmovin-player-ui/issues/208))
819
975
 
820
976
  ## [3.3.1]
821
977
 
822
978
  ### Changed
979
+
823
980
  - Default UI does not show any UI variant during an ad without UI requirement
824
981
 
825
982
  ## [3.3.0]
826
983
 
827
984
  ### Added
985
+
828
986
  - Support for `VideoQualityAdded`, `VideoQualityRemoved`, `AudioQualityAdded`, `AudioQualityRemoved` events in `AudioQualitySelectBox` / `VideoQualitySelectBox`
829
987
 
830
988
  ### Changed
989
+
831
990
  - Updated advertising UI support for player 8.1
832
991
 
833
992
  ## [3.2.0]
834
993
 
835
994
  ### Added
995
+
836
996
  - CSS selectors for all `SelectBox` components
837
997
  - `VolumeController` to control and manage volume and mute state by multiple `Component`s in a single place
838
998
  - `disable()` / `enable()` functionality to `Component`s
@@ -841,12 +1001,15 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
841
1001
  - `UIConditionContext.adRequiresUi` to distinguish if the current ad requires an external UI
842
1002
 
843
1003
  ### Changed
1004
+
844
1005
  - `UIConfig.playbackSpeedSelectionEnabled` is now `true` by default (as it was before v2.17.0)
845
1006
 
846
1007
  ### Removed
1008
+
847
1009
  - Deprecated `UIConditionContext#adClientType` as it's no longer supported by player v8
848
1010
 
849
1011
  ### Fixed
1012
+
850
1013
  - Handling of `null` keys in `SelectBox` (fixes subtitle deselection in IE11)
851
1014
  - Unintended start of playback while scrubbing on seekbar
852
1015
  - `VolumeToggleButton` interfered player API `setVolume`/`mute`/`unmute` calls
@@ -854,14 +1017,17 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
854
1017
  ## [3.1.0]
855
1018
 
856
1019
  ### Added
1020
+
857
1021
  - Customization of output naming via CLI parameters (see `outputnames` in `gulpfile.js`)
858
1022
 
859
1023
  ### Changed
1024
+
860
1025
  - Improved `Button` hit-boxes by changing margins to paddings
861
1026
  - `Seekbar`/`VolumeSlider` position markers changed from SVG to pure CSS to improve vertical alignment with bar
862
1027
  - `Timeout` rewritten for better efficiency
863
1028
 
864
1029
  ### Fixed
1030
+
865
1031
  - Uncaught `PlayerAPINotAvailableError` in `SeekBar` position updater when player is destroyed
866
1032
  - Unresponsive UI when a user canceled connection establishment to a Cast receiver
867
1033
  - Avoid unnecessary animation when `BufferingOverlay` is hidden
@@ -872,6 +1038,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
872
1038
  ## [3.0.1]
873
1039
 
874
1040
  ### Fixed
1041
+
875
1042
  - Positioning of `SeekBar`/`VolumeSlider` markers improved
876
1043
  - Crash of `UIManager.release` when player instance was already destroyed
877
1044
 
@@ -880,18 +1047,21 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
880
1047
  Major release for Bitmovin Player 8, mainly adjusted to the changed player API. For player 7, please use UI v2.x.
881
1048
 
882
1049
  ### Added
1050
+
883
1051
  - Support for image subtitles
884
1052
  - Paging support for `SettingsPanel` via `SettingsPanelPage` to enable navigation to sub-settings ([#119](https://github.com/bitmovin/bitmovin-player-ui/issues/119))
885
1053
  - Default `ErrorMessageTranslator` with english error messages for the `ErrorMessageOverlay`
886
1054
  - `UIConfig.errorMessages` to allow customization of error messages via custom `ErrorMessageTranslator` | `ErrorMessageMap`
887
1055
 
888
1056
  ### Changed
1057
+
889
1058
  - `play` and `pause` calls during seeking now have the issuer `ui-seek` instead of `ui`
890
1059
  - Extracted/renamed `UIManager.Factory` to `UIFactory`
891
1060
  - Moved `UIConfig`, `TimelineMarker`, and `UIRecommendationConfig` from `uimanager.ts` to `uiconfig.ts`
892
1061
  - Replaced local player type definitions with type definitions from the [bitmovin-player NPM package](https://www.npmjs.com/package/bitmovin-player)
893
1062
 
894
1063
  ### Removed
1064
+
895
1065
  - Everything deprecated in 2.x
896
1066
  - Player v7 feature detections and compatibility fallbacks
897
1067
  - `SubtitleSettingsPanel` in favour of `SubtitleSettingsPanelPage` to use with the new navigation feature of `SettingsPanel`
@@ -899,6 +1069,7 @@ Major release for Bitmovin Player 8, mainly adjusted to the changed player API.
899
1069
  - Disabled the ads UI variants because there is no ads module in player v8 yet that requires a UI (ads UI will be reintroduced with an upcoming release)
900
1070
 
901
1071
  ### Fixed
1072
+
902
1073
  - Type definitions are now generated correctly and referenced from `package.json`
903
1074
  - Update timeline markers when loading a new source
904
1075
  - Flickering playback position indicator when switching to a live-stream
@@ -906,6 +1077,7 @@ Major release for Bitmovin Player 8, mainly adjusted to the changed player API.
906
1077
  ## [2.18.0] (2018-08-08)
907
1078
 
908
1079
  ### Added
1080
+
909
1081
  - UI element `ListBox` to display multiple selectable items ([#121](https://github.com/bitmovin/bitmovin-player-ui/issues/121))
910
1082
  - Icon for subtitles
911
1083
  - Icon for audio tracks
@@ -914,31 +1086,37 @@ Major release for Bitmovin Player 8, mainly adjusted to the changed player API.
914
1086
  - `UIContainerConfig.hidePlayerStateExceptions` option to configure player states in which the controls will not be hidden
915
1087
 
916
1088
  ### Changed
1089
+
917
1090
  - SmallScreenUI: Move `RecommendationOverlay` behind `TitleBar` to avoid hidden `FullscreenToggleButton` in replay screen and prevent smartphone users from exiting fullscreen
918
1091
  - SmallScreenUI: Do not hide controls in replay screen
919
1092
 
920
1093
  ## [2.17.1] (2018-08-01)
921
1094
 
922
1095
  ### Fixed
1096
+
923
1097
  - Rendering of single-image thumbnails
924
1098
  - Local storage detection in Firefox
925
1099
 
926
1100
  ## [2.17.0] (2018-07-10)
927
1101
 
928
1102
  ### Added
1103
+
929
1104
  - `AirPlayToggleButton` to `modernSmallScreenUI` for MacOS devices
930
1105
  - `PictureInPictureToggleButton` to `modernSmallScreenUI` for MacOS devices
931
1106
  - `UIConfig.playbackSpeedSelectionEnabled` option to show/hide `PlaybackSpeedSelectBox` within the `SettingsPanel`
932
1107
 
933
1108
  ### Changed
1109
+
934
1110
  - `PlaybackSpeedSelectBox` is no longer visible within the `SettingsPanel` by default
935
1111
 
936
1112
  ### Fixed
1113
+
937
1114
  - Apply the IE/Firefox workaround of v2.16.0 to hide the hovered dropdown panel of a `SelectBox` also when the UI hides
938
1115
 
939
1116
  ## [2.16.0] (2018-06-27)
940
1117
 
941
1118
  ### Added
1119
+
942
1120
  - Revert state of `PlaybackToggleButton` to paused if a play attempt is rejected (`ON_WARNING 5008`; e.g. in case of autoplay)
943
1121
  - `UIManager` API to dynamically manage `SeekBar` markers: `getTimelineMarkers`, `addTimelineMarker`, `removeTimelineMarker` ([#103](https://github.com/bitmovin/bitmovin-player-ui/issues/103))
944
1122
  - Interval marking with added property `TimelineMarker.duration` ([#103](https://github.com/bitmovin/bitmovin-player-ui/issues/103))
@@ -947,17 +1125,20 @@ Major release for Bitmovin Player 8, mainly adjusted to the changed player API.
947
1125
  - `ListSelectorConfig.translator` to translate item labels of auto-populated `SelectBox` implementations, e.g. `SubtitleSelectBox` ([#117](https://github.com/bitmovin/bitmovin-player-ui/pull/117))
948
1126
 
949
1127
  ### Changed
1128
+
950
1129
  - Animate `HugePlaybackToggleButton` only on state changes (not when UI is initially loaded)
951
1130
  - Hide `HugePlaybackToggleButton` play animation when `config.playback.autoplay` is enabled or the player is already playing
952
1131
  - Consolidated configuration management of `UIConfig` from components into `UIManager`
953
1132
  - Configuration from the player source now takes precedence over the configuration passed into the `UIManager`
954
1133
 
955
1134
  ### Fixed
1135
+
956
1136
  - IE & Firefox could leave the dropdown panel of an active/hovered `SelectBox` floating after the parent container (e.g. `SettingsPanel`) was hidden
957
1137
 
958
1138
  ## [2.15.0] (2018-06-08)
959
1139
 
960
1140
  ### Added
1141
+
961
1142
  - `UIManager` API to switch UI variants: `UIConfig.autoUiVariantResolve`, `onUiVariantResolve` event, `getUiVariants`, `resolveUiVariant`, `switchToUiVariant` ([#102](https://github.com/bitmovin/bitmovin-player-ui/pull/102))
962
1143
 
963
1144
  ## [2.14.0] (2018-05-02)
@@ -965,12 +1146,14 @@ Major release for Bitmovin Player 8, mainly adjusted to the changed player API.
965
1146
  License change from LGPLv3 to MIT.
966
1147
 
967
1148
  ### Added
1149
+
968
1150
  - Subscribe to the `ON_PLAYBACK_SPEED_CHANGED` event to display the correct speed in the `PlaybackSpeedSelectBox`
969
1151
  - Prefer `on`/`off` over `addEventHandler`/`removeEventHandler` with player version 7.8+ to avoid deprecation log messages
970
1152
  - `data-bmpui-volume-level-tens` attribute on `VolumeToggleButton` for more granular styling of the volume icon
971
1153
  - `onClass`/`offClass` configuration properties in `ToggleButtonConfig` to allow customizing the state marker CSS class names
972
1154
 
973
1155
  ### Changed
1156
+
974
1157
  - Removed `bmpui-low` marker class from `VolumeToggleButton` (replaced by `data-bmpui-volume-level-tens` attribute)
975
1158
  - Renamed `VolumeToggleButton` mute state marker CSS class names from `off`/`on` to `unmuted`/`muted`
976
1159
  - Change `VolumeToggleButton` into mute state when the player volume is set to `0` (avoids transitions from zero volume to muted)
@@ -978,6 +1161,7 @@ License change from LGPLv3 to MIT.
978
1161
  - Removed volume level animation from `VolumeSlider`
979
1162
 
980
1163
  ### Fixed
1164
+
981
1165
  - Initialize `ToggleButton` state at UI configuration
982
1166
  - `SettingsPanel` attempted to check `isActive` on non-`SettingsPanelItem` components (e.g. `CloseButton`)
983
1167
  - User interaction passthrough from `HugePlaybackToggleButton` to player when autoplay is blocked
@@ -986,71 +1170,86 @@ License change from LGPLv3 to MIT.
986
1170
  ## [2.13.0] (2018-03-15)
987
1171
 
988
1172
  ### Changed
1173
+
989
1174
  - Consistent UI's prepared state detection by only looking at the player's ready state
990
1175
 
991
1176
  ## [2.12.1] (2018-02-21)
992
1177
 
993
1178
  ### Fixed
1179
+
994
1180
  - Flickering heights of `SeekBar` and `VolumeSlider` bar indicators
995
1181
  - "Concurrent" modification of event handlers in `EventDispatcher` when a handler is unsubscribed by a handler
996
1182
 
997
1183
  ## [2.12.0] (2018-01-22)
998
1184
 
999
1185
  ### Changed
1186
+
1000
1187
  - Execute volume control availability test on dummy media element to prevent unexpected interference with muted autoplay
1001
1188
 
1002
1189
  ### Fixed
1190
+
1003
1191
  - Positioning of `SeekBar` markers was broken due to style changes in 2.11.0
1004
1192
 
1005
1193
  ## [2.11.0] (2017-12-22)
1006
1194
 
1007
1195
  ### Added
1196
+
1008
1197
  - Update `SeekBar` playback position of live streams with DVR window while playback is paused
1009
1198
 
1010
1199
  ### Changed
1200
+
1011
1201
  - Switch off live edge indicator in `PlaybackTimeLabel` when a live stream is paused
1012
1202
 
1013
1203
  ### Fixed
1204
+
1014
1205
  - Stop `SeekBar` smooth playback position updates on `ON_PLAYBACK_FINISHED`
1015
1206
  - Centered `SeekBar` and `VolumeSlider` drag handles and make sure that all layers of the underlying bar have the same height
1016
1207
 
1017
1208
  ## [2.10.5] (2017-11-20)
1018
1209
 
1019
1210
  ### Changed
1211
+
1020
1212
  - `PlaybackToggleButton` now also listens to `ON_SOURCE_LOADED` and `ON_SOURCE_UNLOADED` to properly update the playback state when the source changes
1021
1213
  - Update package dependencies
1022
1214
  - Apply CEA-608 style to subtitles before they are added to the DOM to avoid "style flickering"
1023
1215
 
1024
1216
  ### Fixed
1217
+
1025
1218
  - Unnecessary line breaks in CEA-608 texts
1026
1219
 
1027
1220
  ## [2.10.4] (2017-10-30)
1028
1221
 
1029
1222
  ### Changed
1223
+
1030
1224
  - Remove `nowrap` from CEA-608 style to correctly render multiline cues
1031
1225
  - `PlaybackToggleButton` now also listens to `ON_PLAYING` in addition to `ON_PLAY`
1032
1226
 
1033
1227
  ## [2.10.3] (2017-10-20)
1034
1228
 
1035
1229
  ### Fixed
1230
+
1036
1231
  - Handling of whitespaces in CEA-608 texts
1037
1232
 
1038
1233
  ## [2.10.2] (2017-10-19)
1039
1234
 
1040
1235
  ### Changed
1236
+
1041
1237
  - Rewritten CEA-608 text layouting
1042
1238
  - Greatly simplified CEA-608 CSS style (`.{prefix}-ui-subtitle-overlay.{prefix}-cea608`)
1043
1239
  - Calculate CEA-608 font size only with active CEA-608 cues
1044
1240
 
1045
1241
  ### Fixed
1242
+
1046
1243
  - Overlapping CEA-608 texts with large player aspect ratios
1047
1244
 
1048
1245
  ## [2.10.1] (2017-10-13)
1049
1246
 
1050
1247
  ### Changed
1248
+
1051
1249
  - Removed `VolumeControlButton`'s `VolumeSlider` slide-in animation in the legacy skin to fix the slider knob at 100% bug
1052
1250
 
1053
1251
  ### Fixed
1252
+
1054
1253
  - Vertical `VolumeSlider` knob in legacy skin was not visible when set to a low volume
1055
1254
  - Legacy skin's `VolumeSlider` knob was always rendered at 100% when appearing after being hidden
1056
1255
  - Avoid `ItemSelectionList` DOM recreation on item selection to avoid unexpected events (e.g. `mouseenter`)
@@ -1058,30 +1257,37 @@ License change from LGPLv3 to MIT.
1058
1257
  ## [2.10.0] (2017-09-14)
1059
1258
 
1060
1259
  ### Added
1260
+
1061
1261
  - Update `AudioQualitySelectBox`/`VideoQualitySelectBox` entries when the period of a source changes
1062
1262
 
1063
1263
  ### Changed
1264
+
1064
1265
  - Export bundled UI (`bitmovinplayer-ui.js`) as UMD module (instead of global module)
1065
1266
 
1066
1267
  ### Fixed
1268
+
1067
1269
  - Fix `Uncaught TypeError` when `require`ing UI before player
1068
1270
  - Don't write UI into global namespace (`bitmovin.playerui`) when loaded as module with `require`
1069
1271
 
1070
1272
  ## [2.9.0] (2017-08-24)
1071
1273
 
1072
1274
  ### Added
1275
+
1073
1276
  - Support CEA-608 subtitle positioning
1074
1277
  - Added `ui` issuer parameter to all applicable player API calls (seek, timeshift, mute, unmute, setVolume)
1075
1278
 
1076
1279
  ### Changed
1280
+
1077
1281
  - Unified player API issuer parameter to always be `ui` instead of `ui-{componentName}`
1078
1282
 
1079
1283
  ### Fixed
1284
+
1080
1285
  - Select correct audio track after updating the items in `AudioTrackSelectBox`
1081
1286
 
1082
1287
  ## [2.8.3] (2017-08-01)
1083
1288
 
1084
1289
  ### Changed
1290
+
1085
1291
  - Use new quality change API in `AudioQualitySelectBox` and `VideoQualitySelectBox` for player >= 7.3.1 (selection is now synced with player-API `set[Audio|Video]Quality` calls)
1086
1292
 
1087
1293
  ## [2.8.2] (2017-08-01)
@@ -1089,23 +1295,28 @@ License change from LGPLv3 to MIT.
1089
1295
  Release of this version went wrong and it was unpublished from NPM.
1090
1296
 
1091
1297
  ### Fixed
1298
+
1092
1299
  - Fix `animate-slide-in-from-bottom` SCSS mixin (fixes missing `VolumeSlider` slide-in animation of `VolumeControlButton` in the legacy skin)
1093
1300
  - Fire `ON_READY` event if UI is loaded after player is ready to initialize all components correctly
1094
1301
 
1095
1302
  ## [2.8.1] (2017-07-26)
1096
1303
 
1097
1304
  ### Fixed
1305
+
1098
1306
  - Early quality selection in `AudioQualitySelectBox`/`VideoQualitySelectBox` before `ON_READY` broke players <= 7.2.5
1099
1307
 
1100
1308
  ## [2.8.0] (2017-07-25)
1101
1309
 
1102
1310
  ### Added
1311
+
1103
1312
  - Adds a `VolumeToggleButton` to the small screen UI
1104
1313
 
1105
1314
  ### Changed
1315
+
1106
1316
  - Moved all subtitle styling to CSS (default subtitle style is not overwritten any longer)
1107
1317
 
1108
1318
  ### Fixed
1319
+
1109
1320
  - Fix clearing of container components with `Container#removeComponents` (fixes sticky/duplicate subtitle issue)
1110
1321
  - Fix updating container components with `Container#updateComponents` (fixes empty subtitles in IE11)
1111
1322
  - Fix handling of duplicate subtitle cues (same text at same time) in `SubtitleOverlay` (fixes another sticky subtitle issue)
@@ -1117,11 +1328,13 @@ Release of this version went wrong and it was unpublished from NPM.
1117
1328
  ## [2.7.1] (2017-07-06)
1118
1329
 
1119
1330
  ### Changed
1331
+
1120
1332
  - Throttled high-frequency API calls to the player from the `VolumeSlider` and `SeekBarLabel`
1121
1333
 
1122
1334
  ## [2.7.0] (2017-06-28)
1123
1335
 
1124
1336
  ### Added
1337
+
1125
1338
  - Add support for FCC compliant closed captions. Adds options on how captions are displayed, and a SubtitleSettingsPanel with the possibility to update the settings while playing the video.
1126
1339
  - Add UI version property to global namespace (`bitmovin.playerui.version`)
1127
1340
  - Add `UIConfig#container` config property to specify a custom place in the DOM where the UI will be put into. Can be used to place it somewhere else beside the default player figure.
@@ -1129,9 +1342,11 @@ Release of this version went wrong and it was unpublished from NPM.
1129
1342
  ## [2.6.0] (2017-06-27)
1130
1343
 
1131
1344
  ### Added
1345
+
1132
1346
  - Add an option to keep the UI always visible by setting the `UIContainerConfig#hideTimeout` to -1
1133
1347
 
1134
1348
  ### Changed
1349
+
1135
1350
  - Thumbnail size is no longer determined by the physical image size and can now be arbitrarily set by CSS
1136
1351
 
1137
1352
  ## [2.5.1] (2017-06-26)
@@ -1141,24 +1356,29 @@ No functional changes. Improves player API declarations, code linting configurat
1141
1356
  ## [2.5.0] (2017-06-13)
1142
1357
 
1143
1358
  ### Added
1359
+
1144
1360
  - Add `UIConditionContext#adClientType` to be able to switch to different UI variants for different ad types
1145
1361
  - Add `UIConditionContext#isPlaying` and resolve UI variants on `ON_PLAY` and `ON_PAUSED` to be able to switch between different UI variants for playing and paused states
1146
1362
 
1147
1363
  ### Changed
1364
+
1148
1365
  - NPM entry point changed from browserified standalone distributable file to CommonJS module (NPM package can now be used with Node and Browserify out-of-the-box)
1149
1366
  - Deprecated `UIConditionContext#isAdWithUI`, use `adClientType` instead (`isAdWithUI` equals `context.adClientType === 'vast'`)
1150
1367
 
1151
1368
  ### Fixed
1369
+
1152
1370
  - Stop rendering loop of the `ErrorMessageOverlay` background canvas when UI is released
1153
1371
  - Fix wrapped control bar in modern skin on iOS 8.2
1154
1372
 
1155
1373
  ## [2.4.0] (2017-06-08)
1156
1374
 
1157
1375
  ### Changed
1376
+
1158
1377
  - Resolve UI variants on `ON_READY`
1159
1378
  - Improved UI variant switching by detecting the end of an ad when loading a new source during ad playback
1160
1379
 
1161
1380
  ### Fixed
1381
+
1162
1382
  - Fix subtitle line breaking
1163
1383
 
1164
1384
  ## [2.3.0] (2017-06-01)
@@ -1166,14 +1386,17 @@ No functional changes. Improves player API declarations, code linting configurat
1166
1386
  UI does not crash any more when used with player 7.0, all other restrictions explained in [2.0.0](#200) still apply.
1167
1387
 
1168
1388
  ### Added
1389
+
1169
1390
  - Display subtitles in `SubtitleOverlay` with HTML markup if available instead of the plain text
1170
1391
  - Update `AudioTrackSelectionBox` on new `ON_AUDIO_ADDED`/`ON_AUDIO_REMOVED` events in player 7.1.4 / 7.2.0
1171
1392
 
1172
1393
  ### Changed
1394
+
1173
1395
  - Detect live streams and time shift availability when configuring dependent components (`PlaybackTimeLabel`, `PlaybackToggleButton`, `SeekBar`) to adjust their mode independently from the player state changes
1174
1396
  - Skip configuration of `PictureInPictureToggleButton` and `AirPlayToggleButton` and hide the components if functionality is not supported (when used with player 7.0)
1175
1397
 
1176
1398
  ### Fixed
1399
+
1177
1400
  - Fix settings panel closing when an option select box is open
1178
1401
  - Fix crash of Gulp `serve` task on HTML file changes
1179
1402
  - Fix `SeekBar` in legacy skin did not hide on `hide()`
@@ -1183,38 +1406,46 @@ UI does not crash any more when used with player 7.0, all other restrictions exp
1183
1406
  ## [2.2.0] (2017-05-05)
1184
1407
 
1185
1408
  ### Added
1409
+
1186
1410
  - Add `Container#removeComponents()` to remove all child components of a container
1187
1411
  - Display multiple subtitle cues in parallel in `SubtitleOverlay`
1188
1412
  - Add `getText()` method, `isEmpty()` method, and `onTextChanged` event to `Label`
1189
1413
  - Add `TitleBarConfig#keepHiddenWithoutMetadata` to keep `TitleBar` hidden if metadata labels are empty
1190
1414
 
1191
1415
  ### Changed
1416
+
1192
1417
  - Do not display `TitleBar` in Cast UI when it does not contain any metadata (title/description)
1193
1418
 
1194
1419
  ### Fixed
1420
+
1195
1421
  - Clear `SubtitleOverlay` when playback is finished
1196
1422
 
1197
1423
  ## [2.1.1] (2017-05-03)
1198
1424
 
1199
1425
  ### Fixed
1426
+
1200
1427
  - Update playback position / volume indicator position in `SeekBar`/`VolumeSlider` when component is shown
1201
1428
 
1202
1429
  ## [2.1.0] (2017-05-02)
1203
1430
 
1204
1431
  ### Added
1432
+
1205
1433
  - Add `remote-control` marker class to `UIContainer` that is applied during an active remote control session (e.g. Cast session)
1206
1434
  - Display play/pause button in smallscreen UI during an active remote control session (e.g. Cast session)
1207
1435
 
1208
1436
  ### Changed
1437
+
1209
1438
  - Adjust `CastStatusOverlay` font size and remove Cast icon (makes place for the playback toggle) in smallscreen UI
1210
1439
  - Move `PlaybackToggleOverlay` over `CastStatusOverlay` in smallscreen UI to enable playback toggling
1211
1440
 
1212
1441
  ### Fixed
1442
+
1213
1443
  - Fix hiding of `HugePlaybackToggleButton` during Cast session initialization
1214
1444
 
1215
1445
  ## [2.0.4] (2017-04-28)
1216
1446
 
1217
1447
  ### Added
1448
+
1218
1449
  - Add `ErrorMessageOverlayConfig#messages` to translate and customize error messages in the `ErrorMessageOverlay`
1219
1450
 
1220
1451
  ## [2.0.3] (2017-04-25)
@@ -1234,6 +1465,7 @@ No functional changes. Fixes an incomplete NPM package published for `2.0.0`, wh
1234
1465
  Version 2.0 of the UI framework is built for player 7.1. If absolutely necessary, it can still be used with player 7.0, but certain restriction apply: Casting will not work correctly due to API improvements and a removed workaround, new components based on added API calls will fail (`AirPlayToggleButton`, `PictureInPictureToggleButton`) and need to be removed from the default UI, seeking before playback won't work due to a removed workaround, and audio/video quality changes through the API won't be picked up by the select boxes due to misnamed events.
1235
1466
 
1236
1467
  ### Added
1468
+
1237
1469
  - Add `AirPlayToggleButton` for AirPlay support on MacOS and iOS (player 7.1+)
1238
1470
  - Add `PictureInPictureToggleButton` for picture-in-picture support on MacOS and iOS (player 7.1+)
1239
1471
  - Add dynamic switching between different UIs based on various context properties (screen size, ads, mobile, fullscreen)
@@ -1259,6 +1491,7 @@ Version 2.0 of the UI framework is built for player 7.1. If absolutely necessary
1259
1491
  - Delay displaying of the `BufferingOverlay` by 1 second to bypass short stalls without the distraction of the overlay (configurable with `BufferingOverlayConfig#showDelayMs`)
1260
1492
 
1261
1493
  ### Changed
1494
+
1262
1495
  - Update Cast support for new Cast implementation in player 7.1
1263
1496
  - Permanently display UI during a Cast session
1264
1497
  - No more use of the player's global namespace
@@ -1273,6 +1506,7 @@ Version 2.0 of the UI framework is built for player 7.1. If absolutely necessary
1273
1506
  - Listen to `ON_[AUDIO|VIDEO]_DOWNLOAD_QUALITY_CHANGE` events instead of `*_CHANGED` in `AudioQualitySelectBox`/`VideoQualitySelectBox` (download events were broken/misnamed in player 7.0)
1274
1507
 
1275
1508
  ### Removed
1509
+
1276
1510
  - Remove all transitions and animations from Cast receiver UI due to low rendering performance on Chromecast devices
1277
1511
  - Remove Cast workarounds/hacks required for old Cast implementation in player 7.0
1278
1512
  - Remove seek-before-play workaround (now directly supported by player 7.1)
@@ -1280,6 +1514,7 @@ Version 2.0 of the UI framework is built for player 7.1. If absolutely necessary
1280
1514
  - Disable smooth seekbar update in Cast receiver UI for increased Chromecast performance
1281
1515
 
1282
1516
  ### Fixed
1517
+
1283
1518
  - Fix seekbar position indicator when seeking before playback
1284
1519
  - Fix unloading/releasing of UI
1285
1520
  - Fix wrong volume slider / seekbar positioning on UI startup and after loading a source
@@ -1291,10 +1526,13 @@ Version 2.0 of the UI framework is built for player 7.1. If absolutely necessary
1291
1526
  - Correctly initialize `VolumeToggleButton` low/high volume icon state
1292
1527
 
1293
1528
  ## [1.0.1] (2017-02-10)
1529
+
1294
1530
  ### Fixed
1531
+
1295
1532
  - Fix thumbnail preview on the seekbar label
1296
1533
 
1297
1534
  ## 1.0.0 (2017-02-03)
1535
+
1298
1536
  - First release
1299
1537
 
1300
1538
  [3.102.0]: https://github.com/bitmovin/bitmovin-player-ui/compare/v3.101.0...v3.102.0