@24i/bigscreen-sdk 1.0.32 → 1.0.33-alpha.2549

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 (1055) hide show
  1. package/README.md +47 -47
  2. package/__mocks__/@24i/bigscreen-sdk/animations.ts +2 -2
  3. package/package.json +1 -1
  4. package/packages/adobe-heartbeat/README.md +46 -46
  5. package/packages/adobe-heartbeat/src/AdobeHeartbeat.ts +244 -244
  6. package/packages/adobe-heartbeat/src/__external__/Adobe/Adobe.d.ts +24 -24
  7. package/packages/adobe-heartbeat/src/__external__/Adobe/MediaSDK.min.d.ts +126 -126
  8. package/packages/adobe-heartbeat/src/__external__/Adobe/MediaSDK.min.js +76 -76
  9. package/packages/adobe-heartbeat/src/index.ts +5 -5
  10. package/packages/adobe-heartbeat/src/types.ts +67 -67
  11. package/packages/analytics/README.md +7 -7
  12. package/packages/analytics/src/A.ts +1 -1
  13. package/packages/analytics/src/Analytics.ts +1 -1
  14. package/packages/analytics/src/analyticsOnScroll.ts +1 -1
  15. package/packages/analytics/src/clients/ConsoleAnalytics/ConsoleAnalytics.ts +1 -1
  16. package/packages/analytics/src/clients/ConsoleAnalytics/index.ts +1 -1
  17. package/packages/analytics/src/clients/GoogleAnalytics/GoogleAnalytics.ts +200 -200
  18. package/packages/analytics/src/clients/GoogleAnalytics/constants.ts +118 -118
  19. package/packages/analytics/src/clients/GoogleAnalytics/generateSessionId.ts +8 -8
  20. package/packages/analytics/src/clients/GoogleAnalytics/getUrl.ts +17 -17
  21. package/packages/analytics/src/clients/GoogleAnalytics/index.ts +2 -2
  22. package/packages/analytics/src/clients/GoogleAnalytics/interface.ts +77 -77
  23. package/packages/analytics/src/clients/GoogleAnalytics/mapPayload.ts +50 -50
  24. package/packages/analytics/src/clients/GoogleAnalytics/prepareBody.ts +14 -14
  25. package/packages/analytics/src/clients/TwentyFourIQ/TwentyFourIQClient.ts +116 -116
  26. package/packages/analytics/src/clients/TwentyFourIQ/constants.ts +99 -99
  27. package/packages/analytics/src/clients/TwentyFourIQ/generateSessionId.ts +8 -8
  28. package/packages/analytics/src/clients/TwentyFourIQ/helper.ts +34 -34
  29. package/packages/analytics/src/clients/TwentyFourIQ/index.ts +2 -2
  30. package/packages/analytics/src/clients/TwentyFourIQ/interface.ts +31 -31
  31. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapAdLoaded.ts +13 -13
  32. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapAdSkipped.ts +16 -16
  33. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapBase.ts +21 -21
  34. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapBuffering.ts +15 -15
  35. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapPlayerClose.ts +24 -24
  36. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapPlayerOpen.ts +18 -18
  37. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapSceneView.ts +15 -15
  38. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapScroll.ts +17 -17
  39. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoComplete.ts +21 -21
  40. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoPause.ts +24 -24
  41. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoProgress.ts +24 -24
  42. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoStart.ts +34 -34
  43. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoStop.ts +32 -32
  44. package/packages/analytics/src/clients/TwentyFourIQ/types.ts +115 -115
  45. package/packages/analytics/src/constants.ts +1 -1
  46. package/packages/analytics/src/index.ts +3 -3
  47. package/packages/analytics/src/interface.ts +1 -1
  48. package/packages/animations/README.md +85 -85
  49. package/packages/animations/src/AnimationUtils.ts +238 -238
  50. package/packages/animations/src/JSAnimations.ts +144 -144
  51. package/packages/animations/src/__mocks__/JSAnimations.ts +30 -30
  52. package/packages/animations/src/index.ts +3 -3
  53. package/packages/announcement-banner/README.md +49 -49
  54. package/packages/announcement-banner/src/AnnouncementBanner.scss +8 -8
  55. package/packages/announcement-banner/src/AnnouncementBanner.tsx +136 -136
  56. package/packages/announcement-banner/src/index.ts +1 -1
  57. package/packages/async-image/README.md +47 -47
  58. package/packages/async-image/src/AsyncImage.tsx +101 -101
  59. package/packages/async-image/src/index.ts +2 -2
  60. package/packages/conviva/README.md +47 -47
  61. package/packages/conviva/src/ConvivaSDK.ts +38 -38
  62. package/packages/conviva/src/__mocks__/ConvivaMock.ts +36 -36
  63. package/packages/conviva/src/index.ts +1 -1
  64. package/packages/conviva/src/theoPlugin/ConvivaConviguration.ts +19 -19
  65. package/packages/conviva/src/theoPlugin/__external__/Conviva_4.0.15.js +698 -698
  66. package/packages/conviva/src/theoPlugin/__external__/convivaTheoPlugin.d.ts +7 -7
  67. package/packages/conviva/src/theoPlugin/__external__/convivaTheoPlugin.js +635 -635
  68. package/packages/conviva/src/theoPlugin/convivaTheoPluginWrapper.ts +61 -61
  69. package/packages/conviva/src/theoPlugin/index.ts +2 -2
  70. package/packages/developer-tools/DeveloperConsole/README.md +114 -114
  71. package/packages/developer-tools/DeveloperConsole/index.ts +3 -3
  72. package/packages/developer-tools/DeveloperConsole/unstyled.ts +1 -1
  73. package/packages/developer-tools/DeveloperToolsService/README.md +54 -54
  74. package/packages/developer-tools/DeveloperToolsService/index.ts +3 -3
  75. package/packages/developer-tools/DeveloperToolsService/unstyled.ts +1 -1
  76. package/packages/developer-tools/EnvironmentSelection/README.md +77 -77
  77. package/packages/developer-tools/EnvironmentSelection/index.ts +3 -3
  78. package/packages/developer-tools/EnvironmentSelection/unstyled.ts +1 -1
  79. package/packages/developer-tools/PlayerDebugWindow/README.md +65 -65
  80. package/packages/developer-tools/PlayerDebugWindow/index.ts +3 -3
  81. package/packages/developer-tools/PlayerDebugWindow/unstyled.ts +1 -1
  82. package/packages/developer-tools/README.md +24 -24
  83. package/packages/developer-tools/TechnicalInfo/README.md +90 -90
  84. package/packages/developer-tools/TechnicalInfo/index.ts +9 -9
  85. package/packages/developer-tools/TechnicalInfo/unstyled.ts +6 -6
  86. package/packages/developer-tools/src/DeveloperConsole/ControlButton.tsx +16 -16
  87. package/packages/developer-tools/src/DeveloperConsole/DeveloperConsole.tsx +389 -389
  88. package/packages/developer-tools/src/DeveloperConsole/Panel.tsx +108 -108
  89. package/packages/developer-tools/src/DeveloperConsole/PanelMessage.tsx +33 -33
  90. package/packages/developer-tools/src/DeveloperConsole/helpers/Queue.ts +38 -38
  91. package/packages/developer-tools/src/DeveloperConsole/helpers/index.ts +2 -2
  92. package/packages/developer-tools/src/DeveloperConsole/helpers/instrumentHandler.ts +165 -165
  93. package/packages/developer-tools/src/DeveloperConsole/index.ts +2 -2
  94. package/packages/developer-tools/src/DeveloperConsole/initDeveloperConsole.tsx +8 -8
  95. package/packages/developer-tools/src/DeveloperConsole/styles/DeveloperConsole/DeveloperConsole.scss +91 -91
  96. package/packages/developer-tools/src/DeveloperConsole/styles/DeveloperConsole/DeveloperConsole.styles.1080.scss +2 -2
  97. package/packages/developer-tools/src/DeveloperConsole/styles/DeveloperConsole/DeveloperConsole.styles.scss +2 -2
  98. package/packages/developer-tools/src/DeveloperConsole/styles/DeveloperConsole/_sizes.1080.scss +16 -16
  99. package/packages/developer-tools/src/DeveloperConsole/styles/DeveloperConsole/_sizes.scss +16 -16
  100. package/packages/developer-tools/src/DeveloperConsole/styles/Panel/Panel.scss +87 -87
  101. package/packages/developer-tools/src/DeveloperConsole/styles/Panel/Panel.styles.1080.scss +2 -2
  102. package/packages/developer-tools/src/DeveloperConsole/styles/Panel/Panel.styles.scss +2 -2
  103. package/packages/developer-tools/src/DeveloperConsole/styles/Panel/_sizes.1080.scss +9 -9
  104. package/packages/developer-tools/src/DeveloperConsole/styles/Panel/_sizes.scss +9 -9
  105. package/packages/developer-tools/src/DeveloperConsole/styles.ts +2 -2
  106. package/packages/developer-tools/src/DeveloperConsole/types.ts +49 -49
  107. package/packages/developer-tools/src/DeveloperConsole/utils/formatTime.ts +13 -13
  108. package/packages/developer-tools/src/DeveloperConsole/utils/index.ts +3 -3
  109. package/packages/developer-tools/src/DeveloperConsole/utils/stringify.ts +10 -10
  110. package/packages/developer-tools/src/DeveloperConsole/utils/styles.ts +24 -24
  111. package/packages/developer-tools/src/DeveloperToolsService/DeveloperToolItem.tsx +21 -21
  112. package/packages/developer-tools/src/DeveloperToolsService/DeveloperToolsList.tsx +125 -125
  113. package/packages/developer-tools/src/DeveloperToolsService/DeveloperToolsService.tsx +122 -122
  114. package/packages/developer-tools/src/DeveloperToolsService/index.ts +1 -1
  115. package/packages/developer-tools/src/DeveloperToolsService/styles/DeveloperToolsService.scss +64 -64
  116. package/packages/developer-tools/src/DeveloperToolsService/styles/DeveloperToolsService.styles.1080.scss +2 -2
  117. package/packages/developer-tools/src/DeveloperToolsService/styles/DeveloperToolsService.styles.animated.1080.scss +3 -3
  118. package/packages/developer-tools/src/DeveloperToolsService/styles/DeveloperToolsService.styles.animated.scss +4 -4
  119. package/packages/developer-tools/src/DeveloperToolsService/styles/DeveloperToolsService.styles.scss +2 -2
  120. package/packages/developer-tools/src/DeveloperToolsService/styles/_animated.scss +5 -5
  121. package/packages/developer-tools/src/DeveloperToolsService/styles/_sizes.1080.scss +16 -16
  122. package/packages/developer-tools/src/DeveloperToolsService/styles/_sizes.scss +16 -16
  123. package/packages/developer-tools/src/DeveloperToolsService/styles.ts +1 -1
  124. package/packages/developer-tools/src/EnvironmentSelection/EnvironmentList.tsx +90 -90
  125. package/packages/developer-tools/src/EnvironmentSelection/EnvironmentListItem.tsx +106 -106
  126. package/packages/developer-tools/src/EnvironmentSelection/EnvironmentSelection.tsx +102 -102
  127. package/packages/developer-tools/src/EnvironmentSelection/assets/checkmark.svg +18 -18
  128. package/packages/developer-tools/src/EnvironmentSelection/config.ts +43 -43
  129. package/packages/developer-tools/src/EnvironmentSelection/constants.ts +1 -1
  130. package/packages/developer-tools/src/EnvironmentSelection/index.ts +2 -2
  131. package/packages/developer-tools/src/EnvironmentSelection/sizes.1080.ts +5 -5
  132. package/packages/developer-tools/src/EnvironmentSelection/sizes.ts +5 -5
  133. package/packages/developer-tools/src/EnvironmentSelection/styles/EnvironmentSelection.scss +141 -141
  134. package/packages/developer-tools/src/EnvironmentSelection/styles/EnvironmentSelection.styles.1080.scss +2 -2
  135. package/packages/developer-tools/src/EnvironmentSelection/styles/EnvironmentSelection.styles.animated.1080.scss +3 -3
  136. package/packages/developer-tools/src/EnvironmentSelection/styles/EnvironmentSelection.styles.animated.scss +3 -3
  137. package/packages/developer-tools/src/EnvironmentSelection/styles/EnvironmentSelection.styles.scss +2 -2
  138. package/packages/developer-tools/src/EnvironmentSelection/styles/_animated.scss +9 -9
  139. package/packages/developer-tools/src/EnvironmentSelection/styles/_sizes.1080.scss +26 -26
  140. package/packages/developer-tools/src/EnvironmentSelection/styles/_sizes.scss +26 -26
  141. package/packages/developer-tools/src/EnvironmentSelection/styles.ts +1 -1
  142. package/packages/developer-tools/src/EnvironmentSelection/types.ts +10 -10
  143. package/packages/developer-tools/src/EnvironmentSelection/utils/format.ts +4 -4
  144. package/packages/developer-tools/src/IDeveloperTool.ts +14 -14
  145. package/packages/developer-tools/src/PlayerDebugWindow/PlayerDebugWindow.tsx +115 -115
  146. package/packages/developer-tools/src/PlayerDebugWindow/constants.ts +128 -128
  147. package/packages/developer-tools/src/PlayerDebugWindow/index.ts +1 -1
  148. package/packages/developer-tools/src/PlayerDebugWindow/styles/PlayerDebugWindow.scss +29 -29
  149. package/packages/developer-tools/src/PlayerDebugWindow/styles/PlayerDebugWindow.styles.1080.scss +2 -2
  150. package/packages/developer-tools/src/PlayerDebugWindow/styles/PlayerDebugWindow.styles.scss +2 -2
  151. package/packages/developer-tools/src/PlayerDebugWindow/styles/_sizes.1080.scss +11 -11
  152. package/packages/developer-tools/src/PlayerDebugWindow/styles/_sizes.scss +11 -11
  153. package/packages/developer-tools/src/PlayerDebugWindow/styles.ts +1 -1
  154. package/packages/developer-tools/src/TechnicalInfo/ITechnicalInfoProvider.ts +5 -5
  155. package/packages/developer-tools/src/TechnicalInfo/TechnicalInfo.tsx +125 -125
  156. package/packages/developer-tools/src/TechnicalInfo/TechnicalInfoDetail.tsx +77 -77
  157. package/packages/developer-tools/src/TechnicalInfo/TechnicalInfoProvider.ts +349 -349
  158. package/packages/developer-tools/src/TechnicalInfo/__mocks__/Device.ts +55 -55
  159. package/packages/developer-tools/src/TechnicalInfo/__mocks__/Player.ts +7 -7
  160. package/packages/developer-tools/src/TechnicalInfo/__mocks__/Storage.ts +9 -9
  161. package/packages/developer-tools/src/TechnicalInfo/icons/arrow-down.svg +18 -18
  162. package/packages/developer-tools/src/TechnicalInfo/icons/arrow-up.svg +18 -18
  163. package/packages/developer-tools/src/TechnicalInfo/index.ts +5 -5
  164. package/packages/developer-tools/src/TechnicalInfo/sizes.1080.ts +1 -1
  165. package/packages/developer-tools/src/TechnicalInfo/sizes.ts +1 -1
  166. package/packages/developer-tools/src/TechnicalInfo/styles/TechnicalInfo.scss +187 -187
  167. package/packages/developer-tools/src/TechnicalInfo/styles/TechnicalInfo.styles.1080.scss +2 -2
  168. package/packages/developer-tools/src/TechnicalInfo/styles/TechnicalInfo.styles.animated.1080.scss +3 -3
  169. package/packages/developer-tools/src/TechnicalInfo/styles/TechnicalInfo.styles.animated.scss +3 -3
  170. package/packages/developer-tools/src/TechnicalInfo/styles/TechnicalInfo.styles.scss +2 -2
  171. package/packages/developer-tools/src/TechnicalInfo/styles/_animated.scss +16 -16
  172. package/packages/developer-tools/src/TechnicalInfo/styles/_sizes.1080.scss +50 -50
  173. package/packages/developer-tools/src/TechnicalInfo/styles/_sizes.scss +50 -50
  174. package/packages/developer-tools/src/TechnicalInfo/styles.ts +1 -1
  175. package/packages/developer-tools/src/TechnicalInfo/translations.ts +79 -79
  176. package/packages/developer-tools/src/TechnicalInfo/utils/eme01bSupport.ts +58 -58
  177. package/packages/developer-tools/src/TechnicalInfo/utils/emeSupport.ts +84 -84
  178. package/packages/developer-tools/src/TechnicalInfo/utils/formatTimezone.ts +15 -15
  179. package/packages/developer-tools/src/TechnicalInfo/utils/mseSupport.ts +14 -14
  180. package/packages/developer-tools/src/utils/reload.ts +6 -6
  181. package/packages/device/README.md +219 -219
  182. package/packages/device/keymap.ts +1 -1
  183. package/packages/device/resolver/index.ts +2 -2
  184. package/packages/device/resolver/keymap.ts +1 -1
  185. package/packages/device/src/DeviceEventMap.ts +1 -1
  186. package/packages/device/src/device.ts +6 -6
  187. package/packages/device/src/driver/index.android.tv.ts +1 -1
  188. package/packages/device/src/driver/index.entone.ts +1 -1
  189. package/packages/device/src/driver/index.firetv.ts +1 -1
  190. package/packages/device/src/driver/index.hbbtv.tv.ts +1 -1
  191. package/packages/device/src/driver/index.kreatv.ts +1 -1
  192. package/packages/device/src/driver/index.saphi.tv.ts +1 -1
  193. package/packages/device/src/driver/index.smartcast.tv.ts +1 -1
  194. package/packages/device/src/driver/index.tizen.tv.ts +1 -1
  195. package/packages/device/src/driver/index.ts +1 -1
  196. package/packages/device/src/driver/index.vidaa.tv.ts +1 -1
  197. package/packages/device/src/driver/index.webos.tv.ts +1 -1
  198. package/packages/device/src/getKeyDigit.ts +35 -35
  199. package/packages/device/src/getKeyMap.ts +4 -4
  200. package/packages/device/src/index.ts +8 -8
  201. package/packages/device/src/isClickOrEnter.ts +3 -3
  202. package/packages/device/src/resolver/index.ts +2 -2
  203. package/packages/device/src/resolver/resolver.ts +84 -84
  204. package/packages/digital-clock/README.md +26 -26
  205. package/packages/digital-clock/src/DigitalClock.tsx +78 -78
  206. package/packages/digital-clock/src/index.ts +1 -1
  207. package/packages/driver-androidtv/src/DeviceAndroidTV.ts +224 -224
  208. package/packages/driver-androidtv/src/__mocks__/javaScriptBridge.ts +36 -36
  209. package/packages/driver-androidtv/src/formatUserAgent.ts +11 -11
  210. package/packages/driver-androidtv/src/index.ts +1 -1
  211. package/packages/driver-androidtv/src/keymap.ts +27 -27
  212. package/packages/driver-androidtv/src/types.ts +113 -113
  213. package/packages/driver-base/DeviceBase.md +139 -139
  214. package/packages/driver-base/README.md +44 -44
  215. package/packages/driver-base/src/ConnectionType.ts +1 -1
  216. package/packages/driver-base/src/DeviceBase.ts +224 -224
  217. package/packages/driver-base/src/KeyMap/Key.ts +48 -48
  218. package/packages/driver-base/src/KeyMap/KeyMap.ts +390 -390
  219. package/packages/driver-base/src/KeyMap/generateKeyCodeKeyMap.ts +11 -11
  220. package/packages/driver-base/src/KeyMap/index.ts +5 -5
  221. package/packages/driver-base/src/KeyMap/interface.ts +8 -8
  222. package/packages/driver-base/src/KeyMap/overrideValues.ts +17 -17
  223. package/packages/driver-base/src/KeyMap/switchByKey.ts +18 -18
  224. package/packages/driver-base/src/ScreenSize.ts +1 -1
  225. package/packages/driver-base/src/VolumeRange.ts +5 -5
  226. package/packages/driver-base/src/__mocks__/DeviceBase.ts +100 -100
  227. package/packages/driver-base/src/__mocks__/keyMap.ts +42 -42
  228. package/packages/driver-base/src/bindPreventDefaultEvent.ts +5 -5
  229. package/packages/driver-base/src/errors.ts +32 -32
  230. package/packages/driver-base/src/index.ts +10 -10
  231. package/packages/driver-base/src/loadObject.ts +30 -30
  232. package/packages/driver-base/src/types/DeviceEvent.ts +11 -11
  233. package/packages/driver-base/src/types/ExitOptions.ts +1 -1
  234. package/packages/driver-base/src/types/KeycodeKeyMap.ts +86 -86
  235. package/packages/driver-base/src/types/ScreenSaverStatus.ts +3 -3
  236. package/packages/driver-base/src/utils.ts +10 -10
  237. package/packages/driver-browser/src/DeviceBrowser.ts +170 -170
  238. package/packages/driver-browser/src/getBrowser.ts +51 -51
  239. package/packages/driver-browser/src/getOsName.ts +30 -30
  240. package/packages/driver-browser/src/index.ts +1 -1
  241. package/packages/driver-browser/src/keymap.ts +22 -22
  242. package/packages/driver-browser/src/patchSuitestKeys.ts +27 -27
  243. package/packages/driver-entone/README.md +9 -9
  244. package/packages/driver-entone/src/DeviceEntone.ts +232 -232
  245. package/packages/driver-entone/src/IEntone.ts +460 -460
  246. package/packages/driver-entone/src/__mocks__/entone.ts +177 -177
  247. package/packages/driver-entone/src/constants.ts +73 -73
  248. package/packages/driver-entone/src/index.ts +1 -1
  249. package/packages/driver-entone/src/keymap.ts +57 -57
  250. package/packages/driver-firetv/src/DeviceFireTV.ts +18 -18
  251. package/packages/driver-firetv/src/__mocks__/javaScriptBridge.ts +36 -36
  252. package/packages/driver-firetv/src/index.ts +1 -1
  253. package/packages/driver-hbbtv/src/DeviceHbbTV.ts +313 -313
  254. package/packages/driver-hbbtv/src/__mocks__/hbbtv.ts +17 -17
  255. package/packages/driver-hbbtv/src/constants.ts +28 -28
  256. package/packages/driver-hbbtv/src/deviceInfo.ts +23 -23
  257. package/packages/driver-hbbtv/src/getVersion.ts +16 -16
  258. package/packages/driver-hbbtv/src/index.ts +1 -1
  259. package/packages/driver-hbbtv/src/keymap.ts +45 -45
  260. package/packages/driver-hbbtv/src/types.ts +366 -366
  261. package/packages/driver-kreatv/src/DeviceKreaTV.ts +271 -271
  262. package/packages/driver-kreatv/src/IToi.ts +379 -379
  263. package/packages/driver-kreatv/src/__mocks__/toi2.ts +76 -76
  264. package/packages/driver-kreatv/src/__mocks__/toi3.ts +43 -43
  265. package/packages/driver-kreatv/src/index.ts +1 -1
  266. package/packages/driver-kreatv/src/keymap.ts +31 -31
  267. package/packages/driver-kreatv/src/toi2.ts +107 -107
  268. package/packages/driver-kreatv/src/toi3.ts +102 -102
  269. package/packages/driver-kreatv/src/types.ts +35 -35
  270. package/packages/driver-saphi/src/DeviceSaphi.ts +144 -144
  271. package/packages/driver-saphi/src/__mocks__/SmartTvA_API.ts +11 -11
  272. package/packages/driver-saphi/src/__mocks__/userAgent.ts +4 -4
  273. package/packages/driver-saphi/src/constants.ts +1 -1
  274. package/packages/driver-saphi/src/formatUserAgent.ts +19 -19
  275. package/packages/driver-saphi/src/index.ts +1 -1
  276. package/packages/driver-saphi/src/keymap.ts +64 -64
  277. package/packages/driver-saphi/src/types.ts +75 -75
  278. package/packages/driver-smartcast/src/DeviceSmartCast.ts +310 -310
  279. package/packages/driver-smartcast/src/__mocks__/api.ts +49 -49
  280. package/packages/driver-smartcast/src/index.ts +1 -1
  281. package/packages/driver-smartcast/src/keymap.ts +9 -9
  282. package/packages/driver-smartcast/src/types.ts +65 -65
  283. package/packages/driver-tizen/src/DeviceTizen.ts +298 -298
  284. package/packages/driver-tizen/src/ITizen.ts +212 -212
  285. package/packages/driver-tizen/src/IWebapis.ts +95 -95
  286. package/packages/driver-tizen/src/TizenKeys.ts +96 -96
  287. package/packages/driver-tizen/src/__mocks__/tizen.ts +35 -35
  288. package/packages/driver-tizen/src/constants.ts +197 -197
  289. package/packages/driver-tizen/src/index.ts +1 -1
  290. package/packages/driver-tizen/src/types.ts +14 -14
  291. package/packages/driver-vidaa/src/DeviceVidaa.ts +141 -141
  292. package/packages/driver-vidaa/src/__mocks__/vidaa.ts +21 -21
  293. package/packages/driver-vidaa/src/constants.ts +8 -8
  294. package/packages/driver-vidaa/src/formatUserAgent.ts +16 -16
  295. package/packages/driver-vidaa/src/index.ts +1 -1
  296. package/packages/driver-vidaa/src/keymap.ts +56 -56
  297. package/packages/driver-vidaa/src/types.ts +90 -90
  298. package/packages/driver-webos/src/DeviceWebos.ts +313 -313
  299. package/packages/driver-webos/src/__mocks__/webos.ts +172 -172
  300. package/packages/driver-webos/src/constants.ts +20 -20
  301. package/packages/driver-webos/src/index.ts +1 -1
  302. package/packages/driver-webos/src/keymap.ts +10 -10
  303. package/packages/driver-webos/src/types.ts +344 -344
  304. package/packages/driver-webos/src/utils.ts +60 -60
  305. package/packages/driver-webos/src/webOSTVjs/webOSTVjs.js +12 -12
  306. package/packages/driver-xbox/__external__/winjs/directionalnavigation-1.0.0.0.js +1015 -1015
  307. package/packages/driver-xbox/src/DeviceXbox.ts +231 -231
  308. package/packages/driver-xbox/src/__mocks__/Windows.ts +94 -94
  309. package/packages/driver-xbox/src/index.ts +1 -1
  310. package/packages/driver-xbox/src/interfaces.ts +138 -138
  311. package/packages/driver-xbox/src/keymap.ts +96 -96
  312. package/packages/driver-xbox/src/utils.ts +23 -23
  313. package/packages/epg/IMPLEMENTATION.md +228 -228
  314. package/packages/epg/MockGenerator.md +102 -102
  315. package/packages/epg/README.md +585 -585
  316. package/packages/epg/src/v2/Cell.tsx +222 -222
  317. package/packages/epg/src/v2/CellsManager.ts +1 -1
  318. package/packages/epg/src/v2/DataManager.ts +372 -372
  319. package/packages/epg/src/v2/DatePicker.tsx +110 -110
  320. package/packages/epg/src/v2/DateToast/DateToast.scss +28 -28
  321. package/packages/epg/src/v2/DateToast/DateToast.styles.1080.scss +2 -2
  322. package/packages/epg/src/v2/DateToast/DateToast.styles.scss +2 -2
  323. package/packages/epg/src/v2/DateToast/DateToast.tsx +90 -90
  324. package/packages/epg/src/v2/DateToast/_sizes.1080.scss +7 -7
  325. package/packages/epg/src/v2/DateToast/_sizes.scss +7 -7
  326. package/packages/epg/src/v2/DateToast/index.tsx +1 -1
  327. package/packages/epg/src/v2/DateToast/styles.ts +1 -1
  328. package/packages/epg/src/v2/Day.tsx +33 -33
  329. package/packages/epg/src/v2/Epg.tsx +462 -462
  330. package/packages/epg/src/v2/Header.tsx +41 -41
  331. package/packages/epg/src/v2/IdleController.ts +25 -25
  332. package/packages/epg/src/v2/InputEvents.ts +301 -301
  333. package/packages/epg/src/v2/MockGenerator/config.1080.ts +2 -2
  334. package/packages/epg/src/v2/MockGenerator/config.ts +2 -2
  335. package/packages/epg/src/v2/MockGenerator/generator.ts +174 -174
  336. package/packages/epg/src/v2/MockGenerator/index.ts +2 -2
  337. package/packages/epg/src/v2/MockGenerator/mocks/data.ts +102 -102
  338. package/packages/epg/src/v2/MockGenerator/types.ts +25 -25
  339. package/packages/epg/src/v2/MockGenerator/utils.ts +28 -28
  340. package/packages/epg/src/v2/MouseNavigation/MouseNavigation.tsx +88 -88
  341. package/packages/epg/src/v2/MouseNavigation/MouseNavigationFallback.ts +4 -4
  342. package/packages/epg/src/v2/MouseNavigation/index.tizen.tv.ts +1 -1
  343. package/packages/epg/src/v2/MouseNavigation/index.ts +1 -1
  344. package/packages/epg/src/v2/MouseNavigation/index.web.ts +1 -1
  345. package/packages/epg/src/v2/MouseNavigation/index.webos.tv.ts +1 -1
  346. package/packages/epg/src/v2/NowLine.tsx +66 -66
  347. package/packages/epg/src/v2/Program.tsx +58 -58
  348. package/packages/epg/src/v2/ProgramInfo/ProgramInfo.scss +67 -67
  349. package/packages/epg/src/v2/ProgramInfo/ProgramInfo.styles.1080.scss +3 -3
  350. package/packages/epg/src/v2/ProgramInfo/ProgramInfo.styles.animated.1080.scss +2 -2
  351. package/packages/epg/src/v2/ProgramInfo/ProgramInfo.styles.animated.scss +2 -2
  352. package/packages/epg/src/v2/ProgramInfo/ProgramInfo.styles.scss +3 -3
  353. package/packages/epg/src/v2/ProgramInfo/ProgramInfo.tsx +149 -149
  354. package/packages/epg/src/v2/ProgramInfo/_animated.scss +8 -8
  355. package/packages/epg/src/v2/ProgramInfo/_mixins.scss +5 -5
  356. package/packages/epg/src/v2/ProgramInfo/_sizes.1080.scss +21 -21
  357. package/packages/epg/src/v2/ProgramInfo/_sizes.scss +21 -21
  358. package/packages/epg/src/v2/ProgramInfo/index.ts +1 -1
  359. package/packages/epg/src/v2/ProgramInfo/rtl.scss +7 -7
  360. package/packages/epg/src/v2/ProgramInfo/sizes.1080.ts +3 -3
  361. package/packages/epg/src/v2/ProgramInfo/sizes.ts +3 -3
  362. package/packages/epg/src/v2/ProgramInfo/styles.ts +1 -1
  363. package/packages/epg/src/v2/ProgramInfo/utils.ts +28 -28
  364. package/packages/epg/src/v2/Row.tsx +134 -134
  365. package/packages/epg/src/v2/RowsManager.ts +1 -1
  366. package/packages/epg/src/v2/TimeManager.ts +58 -58
  367. package/packages/epg/src/v2/Timeline.ts +1 -1
  368. package/packages/epg/src/v2/TimelineSection.tsx +50 -50
  369. package/packages/epg/src/v2/basic/CellsManager.tsx +300 -300
  370. package/packages/epg/src/v2/basic/RowsManager.tsx +503 -503
  371. package/packages/epg/src/v2/basic/Timeline.tsx +88 -88
  372. package/packages/epg/src/v2/index.ts +1 -1
  373. package/packages/epg/src/v2/interface.ts +1519 -1519
  374. package/packages/epg/src/v2/sizes.1080.ts +2 -2
  375. package/packages/epg/src/v2/sizes.ts +2 -2
  376. package/packages/epg/src/v2/styles/Basic/Basic.scss +116 -116
  377. package/packages/epg/src/v2/styles/Basic/index.ts +1 -1
  378. package/packages/epg/src/v2/styles/Whitelabel/index.ts +1 -1
  379. package/packages/epg/src/v2/utils.ts +40 -40
  380. package/packages/events-manager/src/EventsManager.ts +1 -1
  381. package/packages/events-manager/src/index.ts +2 -2
  382. package/packages/floating-focus/README.md +64 -64
  383. package/packages/floating-focus/src/FloatingFocus.ts +106 -106
  384. package/packages/floating-focus/src/Horizontal.tsx +20 -20
  385. package/packages/floating-focus/src/Vertical.tsx +20 -20
  386. package/packages/floating-focus/src/index.ts +4 -4
  387. package/packages/floating-focus/src/types.ts +20 -20
  388. package/packages/floating-focus/src/utils.ts +43 -43
  389. package/packages/focus/README.md +348 -348
  390. package/packages/focus/src/IFocusable.ts +5 -5
  391. package/packages/focus/src/Layout/Base.tsx +166 -166
  392. package/packages/focus/src/Layout/Horizontal.ts +15 -15
  393. package/packages/focus/src/Layout/Matrix.tsx +357 -357
  394. package/packages/focus/src/Layout/Vertical.ts +12 -12
  395. package/packages/focus/src/Layout/constants.ts +10 -10
  396. package/packages/focus/src/Layout/isRtl.ts +12 -12
  397. package/packages/focus/src/Layout/types.ts +7 -7
  398. package/packages/focus/src/candidate.ts +106 -106
  399. package/packages/focus/src/focusFirstExisting.ts +19 -19
  400. package/packages/focus/src/hasFocus.ts +36 -36
  401. package/packages/focus/src/index.ts +16 -16
  402. package/packages/focus/src/refocusAfterHashChange.ts +19 -19
  403. package/packages/focus/src/safeFocus.ts +15 -15
  404. package/packages/gallup/README.md +27 -27
  405. package/packages/gallup/src/Gallup.ts +80 -80
  406. package/packages/gallup/src/GallupMock.ts +7 -7
  407. package/packages/gallup/src/__external__/SpringStreams.d.ts +39 -39
  408. package/packages/gallup/src/__mocks__/SpringStreams.js +18 -18
  409. package/packages/gallup/src/index.ts +1 -1
  410. package/packages/grid/BasicGrid/README.md +78 -78
  411. package/packages/grid/BasicGrid/index.ts +1 -1
  412. package/packages/grid/FirstOnlyGrid/README.md +43 -43
  413. package/packages/grid/FirstOnlyGrid/index.ts +1 -1
  414. package/packages/grid/FixedToEndGrid/README.md +45 -45
  415. package/packages/grid/FixedToEndGrid/index.ts +1 -1
  416. package/packages/grid/Item/index.ts +1 -1
  417. package/packages/grid/README.md +169 -169
  418. package/packages/grid/src/Base/Base.tsx +492 -492
  419. package/packages/grid/src/Base/MouseNavigation/MouseNavigation.tsx +82 -82
  420. package/packages/grid/src/Base/MouseNavigation/MouseNavigationFallback.ts +4 -4
  421. package/packages/grid/src/Base/MouseNavigation/index.tizen.tv.ts +1 -1
  422. package/packages/grid/src/Base/MouseNavigation/index.ts +1 -1
  423. package/packages/grid/src/Base/MouseNavigation/index.webos.tv.ts +1 -1
  424. package/packages/grid/src/Base/MouseNavigation/index.webtv.ts +1 -1
  425. package/packages/grid/src/Base/index.ts +1 -1
  426. package/packages/grid/src/Base/interface.ts +47 -47
  427. package/packages/grid/src/BasicGrid/BasicGrid.tsx +137 -137
  428. package/packages/grid/src/BasicGrid/config.ts +13 -13
  429. package/packages/grid/src/FastFocusingOptimizer/FastFocusingOptimizer.ts +54 -54
  430. package/packages/grid/src/FirstOnlyGrid/FirstOnlyGrid.tsx +112 -112
  431. package/packages/grid/src/FirstOnlyGrid/config.ts +13 -13
  432. package/packages/grid/src/FirstOnlyGrid/controller.ts +10 -10
  433. package/packages/grid/src/FixedToEndGrid/FixedToEndGrid.tsx +112 -112
  434. package/packages/grid/src/FixedToEndGrid/config.ts +13 -13
  435. package/packages/grid/src/FixedToEndGrid/controller.ts +36 -36
  436. package/packages/grid/src/UnifiedGridController/UnifiedGridController.ts +555 -555
  437. package/packages/grid/src/UnifiedGridController/index.ts +2 -2
  438. package/packages/grid/src/UnifiedGridController/interface.ts +92 -92
  439. package/packages/grid/src/animate.animated.ts +1 -1
  440. package/packages/grid/src/animate.ts +1 -1
  441. package/packages/grid/src/interface.ts +30 -30
  442. package/packages/grid/src/mocks/index.tsx +41 -41
  443. package/packages/grid/src/types.ts +69 -69
  444. package/packages/grid/src/utils.ts +69 -69
  445. package/packages/i18n/README.md +460 -460
  446. package/packages/i18n/src/I18n.ts +246 -246
  447. package/packages/i18n/src/Translation.tsx +36 -36
  448. package/packages/i18n/src/addResourceBundle.ts +73 -73
  449. package/packages/i18n/src/direction.ts +33 -33
  450. package/packages/i18n/src/index.ts +4 -4
  451. package/packages/i18n/src/isRtl.ts +3 -3
  452. package/packages/i18n/src/middlewares/i18next/Context/Context.ts +25 -25
  453. package/packages/i18n/src/middlewares/i18next/Context/index.ts +1 -1
  454. package/packages/i18n/src/middlewares/i18next/Interpolation/Interpolation.ts +95 -95
  455. package/packages/i18n/src/middlewares/i18next/Interpolation/index.ts +1 -1
  456. package/packages/i18n/src/middlewares/i18next/Nesting/Nesting.ts +38 -38
  457. package/packages/i18n/src/middlewares/i18next/Nesting/index.ts +1 -1
  458. package/packages/i18n/src/middlewares/i18next/Plurals/Plurals.ts +123 -123
  459. package/packages/i18n/src/middlewares/i18next/Plurals/Resolvers.ts +124 -124
  460. package/packages/i18n/src/middlewares/i18next/Plurals/index.ts +1 -1
  461. package/packages/i18n/src/middlewares/i18next/Plurals/types.ts +6 -6
  462. package/packages/i18n/src/middlewares/icu/DateInterpolation/DateInterpolation.ts +64 -64
  463. package/packages/i18n/src/middlewares/icu/DateInterpolation/index.ts +1 -1
  464. package/packages/i18n/src/middlewares/icu/Interpolation/Interpolation.ts +39 -39
  465. package/packages/i18n/src/middlewares/icu/Interpolation/index.ts +1 -1
  466. package/packages/i18n/src/middlewares/icu/NumberInterpolation/NumberInterpolation.ts +41 -41
  467. package/packages/i18n/src/middlewares/icu/NumberInterpolation/index.ts +1 -1
  468. package/packages/i18n/src/middlewares/icu/Plurals/Plurals.ts +65 -65
  469. package/packages/i18n/src/middlewares/icu/Plurals/Resolvers.ts +130 -130
  470. package/packages/i18n/src/middlewares/icu/Plurals/index.ts +1 -1
  471. package/packages/i18n/src/middlewares/icu/Plurals/types.ts +15 -15
  472. package/packages/i18n/src/middlewares/icu/Select/Select.ts +36 -36
  473. package/packages/i18n/src/middlewares/icu/Select/index.ts +1 -1
  474. package/packages/i18n/src/middlewares/icu/TimeInterpolation/TimeInterpolation.ts +65 -65
  475. package/packages/i18n/src/middlewares/icu/TimeInterpolation/index.ts +1 -1
  476. package/packages/i18n/src/middlewares/icu/shared/hasVariable.ts +5 -5
  477. package/packages/i18n/src/middlewares/icu/shared/matchSwitchCase.ts +80 -80
  478. package/packages/i18n/src/middlewares/icu/shared/unwrap.ts +1 -1
  479. package/packages/i18n/src/pluralsCommon/PluralsHelper.ts +54 -54
  480. package/packages/i18n/src/pluralsCommon/ResolverByLanguage.ts +129 -129
  481. package/packages/i18n/src/t.tsx +6 -6
  482. package/packages/i18n/src/typedTranslate.ts +31 -31
  483. package/packages/i18n/src/types.ts +66 -66
  484. package/packages/i18n/src/utils.ts +76 -76
  485. package/packages/icon/README.md +107 -107
  486. package/packages/icon/src/Icon.tsx +71 -71
  487. package/packages/icon/src/index.ts +1 -1
  488. package/packages/ime/README.md +72 -72
  489. package/packages/ime/src/IKeyboard.ts +6 -6
  490. package/packages/ime/src/IKeyboardEvent.ts +7 -7
  491. package/packages/ime/src/ImeManager.ts +33 -33
  492. package/packages/ime/src/SystemKeyboard/SystemKeyboard.ts +33 -33
  493. package/packages/ime/src/SystemKeyboard/SystemKeyboardBase.ts +98 -98
  494. package/packages/ime/src/SystemKeyboard/TizenSystemKeyboard.ts +66 -66
  495. package/packages/ime/src/SystemKeyboard/WebosSystemKeyboard.ts +74 -74
  496. package/packages/ime/src/SystemKeyboard/index.tizen.tv.ts +1 -1
  497. package/packages/ime/src/SystemKeyboard/index.ts +1 -1
  498. package/packages/ime/src/SystemKeyboard/index.webos.tv.ts +1 -1
  499. package/packages/ime/src/index.ts +3 -3
  500. package/packages/input/README.md +65 -65
  501. package/packages/input/__mocks__/MockKeyboard.ts +40 -40
  502. package/packages/input/src/Input.scss +9 -9
  503. package/packages/input/src/Input.tsx +267 -267
  504. package/packages/input/src/index.ts +1 -1
  505. package/packages/input/src/utils.ts +71 -71
  506. package/packages/interactable/README.md +38 -38
  507. package/packages/interactable/src/Interactable.tsx +33 -33
  508. package/packages/interactable/src/index.ts +1 -1
  509. package/packages/interactable/src/interface.ts +7 -7
  510. package/packages/ipify/README.md +30 -30
  511. package/packages/ipify/src/index.ts +1 -1
  512. package/packages/ipify/src/ipify.ts +41 -41
  513. package/packages/jsx/README.md +388 -388
  514. package/packages/jsx/src/Component.ts +68 -68
  515. package/packages/jsx/src/createRef.ts +5 -5
  516. package/packages/jsx/src/forwardRef.ts +8 -8
  517. package/packages/jsx/src/index.ts +31 -31
  518. package/packages/jsx/src/jsx-runtime.ts +5 -5
  519. package/packages/jsx/src/manipulation/attachNode.ts +30 -30
  520. package/packages/jsx/src/manipulation/attachNodeBefore.ts +44 -44
  521. package/packages/jsx/src/manipulation/clearNode.ts +14 -14
  522. package/packages/jsx/src/manipulation/detachNode.ts +26 -26
  523. package/packages/jsx/src/manipulation/index.ts +7 -7
  524. package/packages/jsx/src/manipulation/removeNode.ts +18 -18
  525. package/packages/jsx/src/manipulation/replaceNode.ts +42 -42
  526. package/packages/jsx/src/manipulation/swapNodes.ts +53 -53
  527. package/packages/jsx/src/mount/guards.ts +26 -26
  528. package/packages/jsx/src/mount/handleLifecycle.ts +71 -71
  529. package/packages/jsx/src/mount/index.ts +1 -1
  530. package/packages/jsx/src/mount/lifecycle.ts +38 -38
  531. package/packages/jsx/src/mount/lifecycleHelpers.ts +29 -29
  532. package/packages/jsx/src/mount/mount.ts +141 -141
  533. package/packages/jsx/src/mount/namespaces.ts +7 -7
  534. package/packages/jsx/src/mount/props.ts +121 -121
  535. package/packages/jsx/src/nodeUtils.ts +69 -69
  536. package/packages/jsx/src/setText.ts +15 -15
  537. package/packages/jsx/src/test-utils/MountedComponent.ts +50 -50
  538. package/packages/jsx/src/test-utils/README.md +72 -72
  539. package/packages/jsx/src/test-utils/click.ts +7 -7
  540. package/packages/jsx/src/test-utils/enter.ts +4 -4
  541. package/packages/jsx/src/test-utils/index.ts +6 -6
  542. package/packages/jsx/src/test-utils/keydown.ts +27 -27
  543. package/packages/jsx/src/test-utils/keyup.ts +27 -27
  544. package/packages/jsx/src/test-utils/shallow.ts +33 -33
  545. package/packages/jsx/src/test-utils/spec-utils.ts +6 -6
  546. package/packages/jsx/src/textNode.ts +9 -9
  547. package/packages/jsx/src/types.ts +128 -128
  548. package/packages/jsx/src/utils.ts +35 -35
  549. package/packages/jsx/src/virtualDOM.ts +121 -121
  550. package/packages/key-sequence/README.md +44 -44
  551. package/packages/key-sequence/src/KeySequence.ts +56 -56
  552. package/packages/key-sequence/src/arrayEndsWithKeyCombo.ts +22 -22
  553. package/packages/key-sequence/src/index.ts +1 -1
  554. package/packages/key-sequence/src/types.ts +13 -13
  555. package/packages/keyboard/README.md +237 -237
  556. package/packages/keyboard/src/AndroidKeyboard/Keyboard.scss +140 -140
  557. package/packages/keyboard/src/AndroidKeyboard/Keyboard.styles.1080.scss +2 -2
  558. package/packages/keyboard/src/AndroidKeyboard/Keyboard.styles.animated.1080.scss +3 -3
  559. package/packages/keyboard/src/AndroidKeyboard/Keyboard.styles.animated.scss +3 -3
  560. package/packages/keyboard/src/AndroidKeyboard/Keyboard.styles.scss +2 -2
  561. package/packages/keyboard/src/AndroidKeyboard/Keyboard.tsx +235 -235
  562. package/packages/keyboard/src/AndroidKeyboard/_animated.scss +7 -7
  563. package/packages/keyboard/src/AndroidKeyboard/_sizes.1080.scss +15 -15
  564. package/packages/keyboard/src/AndroidKeyboard/_sizes.scss +15 -15
  565. package/packages/keyboard/src/AndroidKeyboard/icons/arrow_left.svg +6 -6
  566. package/packages/keyboard/src/AndroidKeyboard/icons/arrow_right.svg +6 -6
  567. package/packages/keyboard/src/AndroidKeyboard/icons/key_backspace.svg +12 -12
  568. package/packages/keyboard/src/AndroidKeyboard/index.ts +1 -1
  569. package/packages/keyboard/src/AndroidKeyboard/makeLayout.ts +19 -19
  570. package/packages/keyboard/src/Backdrop/Backdrop.scss +17 -17
  571. package/packages/keyboard/src/Backdrop/Backdrop.styles.1080.scss +2 -2
  572. package/packages/keyboard/src/Backdrop/Backdrop.styles.scss +2 -2
  573. package/packages/keyboard/src/Backdrop/Backdrop.tsx +31 -31
  574. package/packages/keyboard/src/Backdrop/_sizes.1080.scss +2 -2
  575. package/packages/keyboard/src/Backdrop/_sizes.scss +2 -2
  576. package/packages/keyboard/src/DefaultKeyboard/Keyboard.scss +73 -73
  577. package/packages/keyboard/src/DefaultKeyboard/Keyboard.styles.1080.scss +2 -2
  578. package/packages/keyboard/src/DefaultKeyboard/Keyboard.styles.scss +2 -2
  579. package/packages/keyboard/src/DefaultKeyboard/Keyboard.tsx +155 -155
  580. package/packages/keyboard/src/DefaultKeyboard/_sizes.1080.scss +12 -12
  581. package/packages/keyboard/src/DefaultKeyboard/_sizes.scss +12 -12
  582. package/packages/keyboard/src/DefaultKeyboard/index.ts +1 -1
  583. package/packages/keyboard/src/KeyboardBase.tsx +344 -344
  584. package/packages/keyboard/src/MobiKeyboard/Keyboard.scss +180 -180
  585. package/packages/keyboard/src/MobiKeyboard/Keyboard.styles.1080.scss +2 -2
  586. package/packages/keyboard/src/MobiKeyboard/Keyboard.styles.animated.1080.scss +3 -3
  587. package/packages/keyboard/src/MobiKeyboard/Keyboard.styles.animated.scss +3 -3
  588. package/packages/keyboard/src/MobiKeyboard/Keyboard.styles.scss +2 -2
  589. package/packages/keyboard/src/MobiKeyboard/Keyboard.tsx +278 -278
  590. package/packages/keyboard/src/MobiKeyboard/_animated.scss +7 -7
  591. package/packages/keyboard/src/MobiKeyboard/_sizes.1080.scss +10 -10
  592. package/packages/keyboard/src/MobiKeyboard/_sizes.scss +10 -10
  593. package/packages/keyboard/src/MobiKeyboard/icons/arrow_left.svg +6 -6
  594. package/packages/keyboard/src/MobiKeyboard/icons/arrow_right.svg +6 -6
  595. package/packages/keyboard/src/MobiKeyboard/icons/key_backspace.svg +12 -12
  596. package/packages/keyboard/src/MobiKeyboard/icons/key_space.svg +6 -6
  597. package/packages/keyboard/src/MobiKeyboard/index.ts +1 -1
  598. package/packages/keyboard/src/MobiKeyboard/utils.ts +19 -19
  599. package/packages/keyboard/src/QwertyKeyboardBase/QwertyKeyboardBase.tsx +54 -54
  600. package/packages/keyboard/src/ShiftMode.ts +25 -25
  601. package/packages/keyboard/src/WhitelabelKeyboard/Keyboard.scss +168 -168
  602. package/packages/keyboard/src/WhitelabelKeyboard/Keyboard.styles.1080.scss +2 -2
  603. package/packages/keyboard/src/WhitelabelKeyboard/Keyboard.styles.scss +2 -2
  604. package/packages/keyboard/src/WhitelabelKeyboard/Keyboard.tsx +353 -353
  605. package/packages/keyboard/src/WhitelabelKeyboard/WhitelabelStyles/_sizes.1080.scss +7 -7
  606. package/packages/keyboard/src/WhitelabelKeyboard/WhitelabelStyles/_sizes.scss +7 -7
  607. package/packages/keyboard/src/WhitelabelKeyboard/WhitelabelStyles/index.ts +1 -1
  608. package/packages/keyboard/src/WhitelabelKeyboard/WhitelabelStyles/whitelabel.scss +81 -81
  609. package/packages/keyboard/src/WhitelabelKeyboard/WhitelabelStyles/whitelabel.styles.1080.scss +2 -2
  610. package/packages/keyboard/src/WhitelabelKeyboard/WhitelabelStyles/whitelabel.styles.scss +2 -2
  611. package/packages/keyboard/src/WhitelabelKeyboard/_sizes.1080.scss +32 -32
  612. package/packages/keyboard/src/WhitelabelKeyboard/_sizes.scss +32 -32
  613. package/packages/keyboard/src/WhitelabelKeyboard/icons/arrow_left.svg +9 -9
  614. package/packages/keyboard/src/WhitelabelKeyboard/icons/arrow_right.svg +9 -9
  615. package/packages/keyboard/src/WhitelabelKeyboard/icons/key_backspace.svg +9 -9
  616. package/packages/keyboard/src/WhitelabelKeyboard/icons/key_language.svg +20 -20
  617. package/packages/keyboard/src/WhitelabelKeyboard/icons/key_shift.svg +9 -9
  618. package/packages/keyboard/src/WhitelabelKeyboard/icons/key_shift_active.svg +9 -9
  619. package/packages/keyboard/src/WhitelabelKeyboard/index.ts +2 -2
  620. package/packages/keyboard/src/WhitelabelKeyboard/layouts/hebrew.ts +28 -28
  621. package/packages/keyboard/src/WhitelabelKeyboard/layouts/index.ts +8 -8
  622. package/packages/keyboard/src/WhitelabelKeyboard/layouts/korean.ts +26 -26
  623. package/packages/keyboard/src/WhitelabelKeyboard/layouts/latin.ts +26 -26
  624. package/packages/keyboard/src/WhitelabelKeyboard/layouts/russian.ts +27 -27
  625. package/packages/keyboard/src/WhitelabelKeyboard/layouts/special.ts +28 -28
  626. package/packages/keyboard/src/WhitelabelKeyboard/layouts/tibetan.ts +26 -26
  627. package/packages/keyboard/src/WhitelabelKeyboard/layouts/turkish.ts +26 -26
  628. package/packages/keyboard/src/WhitelabelKeyboard/layouts/urdu.ts +26 -26
  629. package/packages/keyboard/src/WhitelabelKeyboard/types.ts +28 -28
  630. package/packages/keyboard/src/WhitelabelNumericKeyboard/NumericKeyboard.scss +105 -105
  631. package/packages/keyboard/src/WhitelabelNumericKeyboard/NumericKeyboard.styles.1080.scss +2 -2
  632. package/packages/keyboard/src/WhitelabelNumericKeyboard/NumericKeyboard.styles.scss +2 -2
  633. package/packages/keyboard/src/WhitelabelNumericKeyboard/NumericKeyboard.tsx +161 -161
  634. package/packages/keyboard/src/WhitelabelNumericKeyboard/WhitelabelStyles/_sizes.1080.scss +7 -7
  635. package/packages/keyboard/src/WhitelabelNumericKeyboard/WhitelabelStyles/_sizes.scss +7 -7
  636. package/packages/keyboard/src/WhitelabelNumericKeyboard/WhitelabelStyles/index.ts +1 -1
  637. package/packages/keyboard/src/WhitelabelNumericKeyboard/WhitelabelStyles/whitelabel.scss +62 -62
  638. package/packages/keyboard/src/WhitelabelNumericKeyboard/WhitelabelStyles/whitelabel.styles.1080.scss +2 -2
  639. package/packages/keyboard/src/WhitelabelNumericKeyboard/WhitelabelStyles/whitelabel.styles.scss +2 -2
  640. package/packages/keyboard/src/WhitelabelNumericKeyboard/_sizes.1080.scss +29 -29
  641. package/packages/keyboard/src/WhitelabelNumericKeyboard/_sizes.scss +29 -29
  642. package/packages/keyboard/src/WhitelabelNumericKeyboard/icons/key_backspace.svg +9 -9
  643. package/packages/keyboard/src/WhitelabelNumericKeyboard/index.ts +2 -2
  644. package/packages/keyboard/src/WhitelabelNumericKeyboard/layout.ts +14 -14
  645. package/packages/keyboard/src/hwKeyboardEventToChar.ts +11 -11
  646. package/packages/keyboard/src/types/index.ts +11 -11
  647. package/packages/keyboard/src/utils/caret.ts +48 -48
  648. package/packages/keyboard/src/utils/generateFocusMatrixFromStringMatrix.ts +12 -12
  649. package/packages/keyboard/src/utils/input.ts +40 -40
  650. package/packages/l10n/README.md +120 -120
  651. package/packages/l10n/interface.ts +1 -1
  652. package/packages/l10n/locales/cs.ts +4 -4
  653. package/packages/l10n/locales/en-001.ts +4 -4
  654. package/packages/l10n/locales/en-us.ts +4 -4
  655. package/packages/l10n/src/Locale.tsx +44 -44
  656. package/packages/l10n/src/date/common.ts +165 -165
  657. package/packages/l10n/src/date/cs.ts +89 -89
  658. package/packages/l10n/src/date/de.ts +97 -97
  659. package/packages/l10n/src/date/en-001.ts +76 -76
  660. package/packages/l10n/src/date/en-common.ts +55 -55
  661. package/packages/l10n/src/date/en-us.ts +83 -83
  662. package/packages/l10n/src/date/es.ts +71 -71
  663. package/packages/l10n/src/date/fr.ts +94 -94
  664. package/packages/l10n/src/date/he.ts +101 -101
  665. package/packages/l10n/src/date/iso.ts +63 -63
  666. package/packages/l10n/src/date/types.ts +56 -56
  667. package/packages/l10n/src/index.ts +2 -2
  668. package/packages/l10n/src/l10n.ts +112 -112
  669. package/packages/l10n/src/types.ts +22 -22
  670. package/packages/list/AttachDetachItem/README.md +128 -128
  671. package/packages/list/AttachDetachItem/index.ts +3 -3
  672. package/packages/list/BasicList/README.md +71 -71
  673. package/packages/list/BasicList/index.ts +1 -1
  674. package/packages/list/CenteredList/README.md +42 -42
  675. package/packages/list/CenteredList/index.ts +1 -1
  676. package/packages/list/EdgeOffsetList/README.md +58 -58
  677. package/packages/list/EdgeOffsetList/index.ts +1 -1
  678. package/packages/list/FirstOnlyList/README.md +39 -39
  679. package/packages/list/FirstOnlyList/index.ts +1 -1
  680. package/packages/list/FirstOnlyVariedList/README.md +105 -105
  681. package/packages/list/FirstOnlyVariedList/index.ts +1 -1
  682. package/packages/list/FixedToEndList/README.md +42 -42
  683. package/packages/list/FixedToEndList/index.ts +1 -1
  684. package/packages/list/Item/index.ts +1 -1
  685. package/packages/list/README.md +193 -193
  686. package/packages/list/src/AttachDetachItem/AttachDetachItem.tsx +96 -96
  687. package/packages/list/src/AttachDetachItem/prepareAttachDetachItemData.ts +13 -13
  688. package/packages/list/src/Base/Base.tsx +392 -392
  689. package/packages/list/src/Base/MouseNavigation/MouseNavigation.tsx +82 -82
  690. package/packages/list/src/Base/MouseNavigation/MouseNavigationFallback.ts +4 -4
  691. package/packages/list/src/Base/MouseNavigation/index.tizen.tv.ts +1 -1
  692. package/packages/list/src/Base/MouseNavigation/index.ts +1 -1
  693. package/packages/list/src/Base/MouseNavigation/index.webos.tv.ts +1 -1
  694. package/packages/list/src/Base/MouseNavigation/index.webtv.ts +1 -1
  695. package/packages/list/src/Base/index.ts +1 -1
  696. package/packages/list/src/Base/interface.ts +39 -39
  697. package/packages/list/src/BasicList/BasicList.tsx +178 -178
  698. package/packages/list/src/BasicList/config.ts +13 -13
  699. package/packages/list/src/CenteredList/CenteredList.tsx +116 -116
  700. package/packages/list/src/CenteredList/config.ts +13 -13
  701. package/packages/list/src/CenteredList/controller.ts +46 -46
  702. package/packages/list/src/CenteredList/interface.ts +10 -10
  703. package/packages/list/src/EdgeOffsetList/EdgeOffsetList.tsx +173 -173
  704. package/packages/list/src/EdgeOffsetList/config.ts +13 -13
  705. package/packages/list/src/FastFocusingOptimizer/FastFocusingOptimizer.ts +54 -54
  706. package/packages/list/src/FirstOnlyList/FirstOnlyList.tsx +122 -122
  707. package/packages/list/src/FirstOnlyList/config.ts +13 -13
  708. package/packages/list/src/FirstOnlyList/controller.ts +11 -11
  709. package/packages/list/src/FirstOnlyVariedList/FirstOnlyVariedList.tsx +132 -132
  710. package/packages/list/src/FirstOnlyVariedList/config.ts +13 -13
  711. package/packages/list/src/FixedToEndList/FixedToEndList.tsx +125 -125
  712. package/packages/list/src/FixedToEndList/config.ts +13 -13
  713. package/packages/list/src/FixedToEndList/controller.ts +44 -44
  714. package/packages/list/src/UnifiedListController/UnifiedListController.ts +258 -258
  715. package/packages/list/src/UnifiedListController/UnifiedListControllerBase.ts +241 -241
  716. package/packages/list/src/UnifiedListController/UnifiedVariedListController.ts +241 -241
  717. package/packages/list/src/UnifiedListController/interface.ts +81 -81
  718. package/packages/list/src/__test__/utils.spec.ts +59 -59
  719. package/packages/list/src/animate.animated.ts +1 -1
  720. package/packages/list/src/animate.ts +1 -1
  721. package/packages/list/src/index.ts +1 -1
  722. package/packages/list/src/interface.ts +48 -48
  723. package/packages/list/src/mocks/index.tsx +55 -55
  724. package/packages/list/src/types.ts +132 -132
  725. package/packages/list/src/utils.ts +142 -142
  726. package/packages/list/utils/index.ts +1 -1
  727. package/packages/logger/README.md +117 -117
  728. package/packages/logger/src/LoggerManager.ts +60 -60
  729. package/packages/logger/src/LoggerService.ts +43 -43
  730. package/packages/logger/src/__mocks__/LoggerBase.ts +13 -13
  731. package/packages/logger/src/index.ts +3 -3
  732. package/packages/logger/src/loggers/ConsoleLogger/ConsoleLogger.ts +51 -51
  733. package/packages/logger/src/loggers/ConsoleLogger/README.md +39 -39
  734. package/packages/logger/src/loggers/ConsoleLogger/index.ts +1 -1
  735. package/packages/logger/src/loggers/LoggerBase/LoggerBase.ts +67 -67
  736. package/packages/logger/src/loggers/LoggerBase/README.md +69 -69
  737. package/packages/logger/src/loggers/LoggerBase/index.ts +1 -1
  738. package/packages/logger/src/loggers/SentryLogger/README.md +98 -98
  739. package/packages/logger/src/loggers/SentryLogger/Sentry.ts +2 -2
  740. package/packages/logger/src/loggers/SentryLogger/SentryLogger.ts +179 -179
  741. package/packages/logger/src/loggers/SentryLogger/index.ts +2 -2
  742. package/packages/logger/src/loggers/SentryLogger/mock.ts +6 -6
  743. package/packages/logger/src/loggers/index.ts +2 -2
  744. package/packages/logger/src/types.ts +46 -46
  745. package/packages/logger/src/utils/deviceInfo.ts +25 -25
  746. package/packages/logger/src/utils/index.ts +1 -1
  747. package/packages/lottie-animations/README.md +217 -217
  748. package/packages/lottie-animations/src/LottieAnimation.tsx +125 -125
  749. package/packages/lottie-animations/src/index.ts +7 -7
  750. package/packages/menu/README.md +90 -90
  751. package/packages/menu/WhitelabelMenu/index.ts +1 -1
  752. package/packages/menu/WhitelabelMenu/interface.ts +2 -2
  753. package/packages/menu/WhitelabelMenu/styles.ts +2 -2
  754. package/packages/menu/interface.ts +3 -3
  755. package/packages/menu/src/MenuAndContentContainer/MenuAndContentContainer.tsx +211 -211
  756. package/packages/menu/src/MenuAndContentContainer/index.ts +1 -1
  757. package/packages/menu/src/MenuAndContentContainer/interface.ts +164 -164
  758. package/packages/menu/src/MenuAndContentContainer/service.ts +5 -5
  759. package/packages/menu/src/WhitelabelMenu/SideMenu.scss +41 -41
  760. package/packages/menu/src/WhitelabelMenu/SideMenu.styles.1080.scss +2 -2
  761. package/packages/menu/src/WhitelabelMenu/SideMenu.styles.animated.1080.scss +3 -3
  762. package/packages/menu/src/WhitelabelMenu/SideMenu.styles.animated.scss +3 -3
  763. package/packages/menu/src/WhitelabelMenu/SideMenu.styles.scss +2 -2
  764. package/packages/menu/src/WhitelabelMenu/SideMenu.tsx +248 -248
  765. package/packages/menu/src/WhitelabelMenu/SideMenuItem/SideMenuItem.scss +56 -56
  766. package/packages/menu/src/WhitelabelMenu/SideMenuItem/SideMenuItem.styles.1080.scss +2 -2
  767. package/packages/menu/src/WhitelabelMenu/SideMenuItem/SideMenuItem.styles.animated.1080.scss +3 -3
  768. package/packages/menu/src/WhitelabelMenu/SideMenuItem/SideMenuItem.styles.animated.scss +3 -3
  769. package/packages/menu/src/WhitelabelMenu/SideMenuItem/SideMenuItem.styles.scss +2 -2
  770. package/packages/menu/src/WhitelabelMenu/SideMenuItem/SideMenuItem.tsx +78 -78
  771. package/packages/menu/src/WhitelabelMenu/SideMenuItem/_animated.scss +12 -12
  772. package/packages/menu/src/WhitelabelMenu/SideMenuItem/_sizes.1080.scss +17 -17
  773. package/packages/menu/src/WhitelabelMenu/SideMenuItem/_sizes.scss +17 -17
  774. package/packages/menu/src/WhitelabelMenu/SideMenuItem/index.ts +1 -1
  775. package/packages/menu/src/WhitelabelMenu/SideMenuItem/interface.ts +49 -49
  776. package/packages/menu/src/WhitelabelMenu/SideMenuItem/rtl.scss +12 -12
  777. package/packages/menu/src/WhitelabelMenu/SideMenuItem/sizes.1080.ts +2 -2
  778. package/packages/menu/src/WhitelabelMenu/SideMenuItem/sizes.ts +2 -2
  779. package/packages/menu/src/WhitelabelMenu/SideMenuItem/styles.ts +1 -1
  780. package/packages/menu/src/WhitelabelMenu/VisualController.animated.ts +48 -48
  781. package/packages/menu/src/WhitelabelMenu/VisualController.ts +20 -20
  782. package/packages/menu/src/WhitelabelMenu/VisualControllerBase.ts +71 -71
  783. package/packages/menu/src/WhitelabelMenu/_animated.scss +39 -39
  784. package/packages/menu/src/WhitelabelMenu/_sizes.1080.scss +14 -14
  785. package/packages/menu/src/WhitelabelMenu/_sizes.scss +14 -14
  786. package/packages/menu/src/WhitelabelMenu/constants.animated.ts +1 -1
  787. package/packages/menu/src/WhitelabelMenu/constants.ts +1 -1
  788. package/packages/menu/src/WhitelabelMenu/index.ts +1 -1
  789. package/packages/menu/src/WhitelabelMenu/interface.ts +14 -14
  790. package/packages/menu/src/WhitelabelMenu/rtl.scss +22 -22
  791. package/packages/menu/src/WhitelabelMenu/sizes.1080.ts +1 -1
  792. package/packages/menu/src/WhitelabelMenu/sizes.ts +1 -1
  793. package/packages/menu/src/WhitelabelMenu/styles.ts +1 -1
  794. package/packages/menu/src/WhitelabelMenu/utils.ts +34 -34
  795. package/packages/menu/src/index.ts +2 -2
  796. package/packages/modal-service/README.md +50 -50
  797. package/packages/modal-service/src/IModal.ts +3 -3
  798. package/packages/modal-service/src/ModalService.scss +7 -7
  799. package/packages/modal-service/src/ModalService.styles.1080.scss +2 -2
  800. package/packages/modal-service/src/ModalService.styles.scss +2 -2
  801. package/packages/modal-service/src/ModalService.tsx +102 -102
  802. package/packages/modal-service/src/_sizes.1080.scss +2 -2
  803. package/packages/modal-service/src/_sizes.scss +2 -2
  804. package/packages/modal-service/src/index.ts +2 -2
  805. package/packages/mouse-navigation/README.md +105 -105
  806. package/packages/mouse-navigation/src/ArrowNavigation/Arrow.tsx +58 -58
  807. package/packages/mouse-navigation/src/ArrowNavigation/ArrowNavigation.tsx +95 -95
  808. package/packages/mouse-navigation/src/ArrowNavigation/__test__/Arrow.spec.tsx +35 -35
  809. package/packages/mouse-navigation/src/ArrowNavigation/__test__/ArrowNavigation.spec.tsx +45 -45
  810. package/packages/mouse-navigation/src/ArrowNavigation/index.tsx +1 -1
  811. package/packages/mouse-navigation/src/MouseElementWrapper.tsx +70 -70
  812. package/packages/mouse-navigation/src/MouseNavigation.tsx +157 -157
  813. package/packages/mouse-navigation/src/MouseNavigationInterface.ts +8 -8
  814. package/packages/mouse-navigation/src/index.ts +3 -3
  815. package/packages/numeric-zapper/README.md +153 -153
  816. package/packages/numeric-zapper/src/NumericZapper.scss +20 -20
  817. package/packages/numeric-zapper/src/NumericZapper.styles.1080.scss +2 -2
  818. package/packages/numeric-zapper/src/NumericZapper.styles.scss +2 -2
  819. package/packages/numeric-zapper/src/NumericZapper.tsx +257 -257
  820. package/packages/numeric-zapper/src/ZapperAllower.ts +15 -15
  821. package/packages/numeric-zapper/src/ZapperService.tsx +8 -8
  822. package/packages/numeric-zapper/src/_sizes.1080.scss +7 -7
  823. package/packages/numeric-zapper/src/_sizes.scss +7 -7
  824. package/packages/numeric-zapper/src/index.ts +4 -4
  825. package/packages/numeric-zapper/src/interface.ts +1 -1
  826. package/packages/numeric-zapper/src/styles.ts +1 -1
  827. package/packages/perf-utils/README.md +7 -7
  828. package/packages/perf-utils/src/array/filter.ts +1 -1
  829. package/packages/perf-utils/src/array/find.ts +1 -1
  830. package/packages/perf-utils/src/array/findIndex.ts +1 -1
  831. package/packages/perf-utils/src/array/forEach.ts +1 -1
  832. package/packages/perf-utils/src/array/includes.ts +1 -1
  833. package/packages/perf-utils/src/array/includesNaN.ts +1 -1
  834. package/packages/perf-utils/src/array/index.ts +1 -1
  835. package/packages/perf-utils/src/array/map.ts +1 -1
  836. package/packages/picker/README.md +70 -70
  837. package/packages/picker/src/DatePicker.tsx +55 -55
  838. package/packages/picker/src/ModalPicker/Checkbox.tsx +38 -38
  839. package/packages/picker/src/ModalPicker/PickerItem.tsx +86 -86
  840. package/packages/picker/src/ModalPicker/PickerModal.tsx +98 -98
  841. package/packages/picker/src/ModalPicker/index.ts +1 -1
  842. package/packages/picker/src/ModalPicker/modalPicker.tsx +48 -48
  843. package/packages/picker/src/Picker.tsx +127 -127
  844. package/packages/picker/src/index.ts +3 -3
  845. package/packages/picker/src/types.ts +25 -25
  846. package/packages/pin-input/README.md +55 -55
  847. package/packages/pin-input/src/PinInput.scss +5 -5
  848. package/packages/pin-input/src/PinInput.tsx +169 -169
  849. package/packages/pin-input/src/index.ts +1 -1
  850. package/packages/player-ui/README.md +207 -207
  851. package/packages/player-ui/src/BackwardButton.tsx +41 -41
  852. package/packages/player-ui/src/CurrentTime.tsx +56 -56
  853. package/packages/player-ui/src/Duration.tsx +60 -60
  854. package/packages/player-ui/src/ForwardButton.tsx +41 -41
  855. package/packages/player-ui/src/PauseButton.tsx +57 -57
  856. package/packages/player-ui/src/PlayButton.tsx +57 -57
  857. package/packages/player-ui/src/PlayPauseButton.tsx +63 -63
  858. package/packages/player-ui/src/PlayerInteractable.tsx +67 -67
  859. package/packages/player-ui/src/PlayerTime.tsx +57 -57
  860. package/packages/player-ui/src/PlayerUI.tsx +267 -267
  861. package/packages/player-ui/src/RemainingTime.tsx +74 -74
  862. package/packages/player-ui/src/Seekbar.tsx +274 -274
  863. package/packages/player-ui/src/Seeking.ts +163 -163
  864. package/packages/player-ui/src/StopButton.tsx +35 -35
  865. package/packages/player-ui/src/Subtitles.tsx +151 -151
  866. package/packages/player-ui/src/index.ts +15 -15
  867. package/packages/player-ui/src/mocks.ts +65 -65
  868. package/packages/player-ui/src/timeUtils.ts +142 -142
  869. package/packages/player-ui/src/types.ts +48 -48
  870. package/packages/progress-bar/README.md +31 -31
  871. package/packages/progress-bar/src/ProgressBar.tsx +41 -41
  872. package/packages/progress-bar/src/index.ts +1 -1
  873. package/packages/progress-bar/src/interface.ts +14 -14
  874. package/packages/qr-code/README.md +79 -79
  875. package/packages/qr-code/src/QRCode.tsx +39 -39
  876. package/packages/qr-code/src/index.ts +2 -2
  877. package/packages/qr-code/src/qrGenerator/__external__/constants.ts +23 -23
  878. package/packages/qr-code/src/qrGenerator/__external__/qrcode.d.ts +31 -31
  879. package/packages/qr-code/src/qrGenerator/__external__/qrcode.js +618 -618
  880. package/packages/qr-code/src/qrGenerator/generateQr.ts +7 -7
  881. package/packages/qr-code/src/qrGenerator/index.ts +3 -3
  882. package/packages/router/README.md +163 -163
  883. package/packages/router/src/Route.tsx +166 -166
  884. package/packages/router/src/Router.tsx +220 -220
  885. package/packages/router/src/focusActiveRoute.ts +5 -5
  886. package/packages/router/src/history.ts +31 -31
  887. package/packages/router/src/index.ts +6 -6
  888. package/packages/router/src/types.ts +13 -13
  889. package/packages/router/src/utils.ts +35 -32
  890. package/packages/runtime-config/README.md +37 -37
  891. package/packages/runtime-config/src/Config.ts +44 -44
  892. package/packages/runtime-config/src/index.ts +1 -1
  893. package/packages/sass-utils/README.md +197 -197
  894. package/packages/sass-utils/src/box-shadow.scss +5 -5
  895. package/packages/sass-utils/src/ellipsis.scss +15 -15
  896. package/packages/sass-utils/src/linear-gradient.scss +43 -43
  897. package/packages/sass-utils/src/prefix-property.scss +7 -7
  898. package/packages/sass-utils/src/prefix-value.scss +6 -6
  899. package/packages/sass-utils/src/prefix.scss +6 -6
  900. package/packages/sass-utils/src/scale.1080.scss +3 -3
  901. package/packages/sass-utils/src/scale.720.scss +5 -5
  902. package/packages/sass-utils/src/transform.scss +5 -5
  903. package/packages/sass-utils/src/transition.scss +6 -6
  904. package/packages/scheduler/README.md +55 -55
  905. package/packages/scheduler/src/Scheduler.ts +43 -43
  906. package/packages/scheduler/src/Task.ts +72 -72
  907. package/packages/scheduler/src/index.ts +4 -4
  908. package/packages/scheduler/src/timeProvider.ts +3 -3
  909. package/packages/scroll-text/README.md +77 -77
  910. package/packages/scroll-text/src/Base.tsx +146 -146
  911. package/packages/scroll-text/src/ScrollText.animated.tsx +80 -80
  912. package/packages/scroll-text/src/ScrollText.tsx +53 -53
  913. package/packages/scroll-text/src/ScrollTextBaseClass.tsx +86 -86
  914. package/packages/scroll-text/src/index.ts +1 -1
  915. package/packages/scroller/README.md +77 -77
  916. package/packages/scroller/src/Scroller.tsx +51 -51
  917. package/packages/scroller/src/index.ts +1 -1
  918. package/packages/splash/AnimatedSplash.ts +1 -1
  919. package/packages/splash/AnimatedSplashAnimated.ts +1 -1
  920. package/packages/splash/AnimatedSplashBasic.ts +1 -1
  921. package/packages/splash/AutomaticSplashAnimated.ts +1 -1
  922. package/packages/splash/AutomaticSplashBasic.ts +1 -1
  923. package/packages/splash/README.md +93 -93
  924. package/packages/splash/StaticSplash.ts +1 -1
  925. package/packages/splash/StaticSplashAnimated.ts +1 -1
  926. package/packages/splash/StaticSplashBasic.ts +1 -1
  927. package/packages/splash/src/AnimatedSplash.animated.tsx +78 -78
  928. package/packages/splash/src/AnimatedSplash.basic.tsx +37 -37
  929. package/packages/splash/src/AutomaticSplash.animated.tsx +20 -20
  930. package/packages/splash/src/AutomaticSplash.basic.tsx +20 -20
  931. package/packages/splash/src/Splash.scss +8 -8
  932. package/packages/splash/src/StaticSplash.animated.tsx +48 -48
  933. package/packages/splash/src/StaticSplash.basic.tsx +26 -26
  934. package/packages/splash/src/index.animated.ts +1 -1
  935. package/packages/splash/src/index.ts +1 -1
  936. package/packages/splash/src/styles.ts +1 -1
  937. package/packages/splash/src/types.ts +20 -20
  938. package/packages/storage/README.md +61 -61
  939. package/packages/storage/src/CookieStorage/CookieStorage.ts +57 -57
  940. package/packages/storage/src/CookieStorage/index.ts +1 -1
  941. package/packages/storage/src/LocalStorage/LocalStorage.ts +58 -58
  942. package/packages/storage/src/LocalStorage/index.ts +1 -1
  943. package/packages/storage/src/index.ts +2 -2
  944. package/packages/storage/src/shared.ts +41 -41
  945. package/packages/storage/src/types.ts +33 -33
  946. package/packages/throbber/README.md +53 -53
  947. package/packages/throbber/src/Throbber.scss +52 -52
  948. package/packages/throbber/src/Throbber.tsx +19 -19
  949. package/packages/throbber/src/ThrobberService.tsx +55 -55
  950. package/packages/throbber/src/controlsHandling.ts +14 -14
  951. package/packages/throbber/src/index.ts +2 -2
  952. package/packages/time/README.md +116 -116
  953. package/packages/time/src/Time.ts +257 -257
  954. package/packages/time/src/adapters/24iMediaTimeApi.ts +47 -47
  955. package/packages/time/src/adapters/worldTimeApi.ts +74 -74
  956. package/packages/time/src/constants.ts +14 -14
  957. package/packages/time/src/index.ts +1 -1
  958. package/packages/time/src/services/24iMediaTimeApi/24iMediaTimeApi.ts +43 -43
  959. package/packages/time/src/services/24iMediaTimeApi/index.ts +6 -6
  960. package/packages/time/src/services/worldTimeApi/index.ts +7 -7
  961. package/packages/time/src/services/worldTimeApi/types.ts +75 -75
  962. package/packages/time/src/services/worldTimeApi/worldTimeApi.ts +77 -77
  963. package/packages/time/src/types.ts +39 -39
  964. package/packages/time/src/utils.ts +79 -79
  965. package/packages/toast/README.md +116 -116
  966. package/packages/toast/src/Toast/IVisualController.ts +7 -7
  967. package/packages/toast/src/Toast/Toast.scss +22 -22
  968. package/packages/toast/src/Toast/Toast.styles.1080.scss +2 -2
  969. package/packages/toast/src/Toast/Toast.styles.scss +2 -2
  970. package/packages/toast/src/Toast/Toast.tsx +83 -83
  971. package/packages/toast/src/Toast/VisualController.animated.ts +20 -20
  972. package/packages/toast/src/Toast/VisualController.ts +9 -9
  973. package/packages/toast/src/Toast/_sizes.1080.scss +8 -8
  974. package/packages/toast/src/Toast/_sizes.scss +8 -8
  975. package/packages/toast/src/Toast/index.ts +2 -2
  976. package/packages/toast/src/Toast/styles.ts +1 -1
  977. package/packages/toast/src/ToastService.scss +8 -8
  978. package/packages/toast/src/ToastService.styles.1080.scss +2 -2
  979. package/packages/toast/src/ToastService.styles.scss +2 -2
  980. package/packages/toast/src/ToastService.tsx +59 -59
  981. package/packages/toast/src/_sizes.1080.scss +2 -2
  982. package/packages/toast/src/_sizes.scss +2 -2
  983. package/packages/toast/src/index.ts +4 -4
  984. package/packages/toast/src/types.ts +4 -4
  985. package/packages/types-bigscreen-jsx/README.md +12 -12
  986. package/packages/types-bigscreen-jsx/global.d.ts +0 -0
  987. package/packages/types-bigscreen-jsx/index.d.ts +32 -32
  988. package/packages/types-bigscreen-jsx/src/copyTypes.js +14 -14
  989. package/packages/utils/README.md +363 -363
  990. package/packages/utils/src/addClass.ts +9 -9
  991. package/packages/utils/src/counter.ts +49 -49
  992. package/packages/utils/src/debounce.ts +54 -54
  993. package/packages/utils/src/displayToggler.scss +3 -3
  994. package/packages/utils/src/displayToggler.ts +38 -38
  995. package/packages/utils/src/elementUtils.ts +105 -105
  996. package/packages/utils/src/forceReflow.ts +14 -14
  997. package/packages/utils/src/generateUuid.ts +19 -19
  998. package/packages/utils/src/index.ts +43 -43
  999. package/packages/utils/src/keyPress/index.ts +6 -6
  1000. package/packages/utils/src/keyPress/keyPressSimulator.ts +74 -74
  1001. package/packages/utils/src/keyPress/simulateKeyPress.ts +25 -25
  1002. package/packages/utils/src/memoryInfo.ts +21 -21
  1003. package/packages/utils/src/nTimes.ts +9 -9
  1004. package/packages/utils/src/noop.ts +1 -1
  1005. package/packages/utils/src/offsetPosition.ts +56 -56
  1006. package/packages/utils/src/removeClass.ts +9 -9
  1007. package/packages/utils/src/scaledImage.ts +24 -24
  1008. package/packages/utils/src/sizes.1080.ts +1 -1
  1009. package/packages/utils/src/sizes.ts +1 -1
  1010. package/packages/utils/src/stopEvent.ts +10 -10
  1011. package/packages/utils/src/textUtils.ts +57 -57
  1012. package/packages/utils/src/timeConstants.ts +11 -11
  1013. package/packages/utils/src/timers/createInterval.ts +19 -19
  1014. package/packages/utils/src/timers/createTimeout.ts +22 -22
  1015. package/packages/utils/src/timers/index.ts +4 -4
  1016. package/packages/utils/src/timers/runAsync.ts +3 -3
  1017. package/packages/utils/src/timers/types.ts +9 -9
  1018. package/packages/utils/src/wait.ts +3 -3
  1019. package/packages/utils/src/xhr/__mocks__/xhr.ts +29 -29
  1020. package/packages/utils/src/xhr/index.ts +11 -11
  1021. package/packages/utils/src/xhr/xhrSend.ts +141 -141
  1022. package/packages/utils/src/xhr/xhrSendRetry.ts +79 -79
  1023. package/packages/volume-control/README.md +79 -79
  1024. package/packages/volume-control/src/IVolumeControlUI.ts +26 -26
  1025. package/packages/volume-control/src/VolumeControlService.tsx +110 -110
  1026. package/packages/volume-control/src/VolumeControlUI/VisualController.animated.ts +28 -28
  1027. package/packages/volume-control/src/VolumeControlUI/VisualController.ts +3 -3
  1028. package/packages/volume-control/src/VolumeControlUI/VisualControllerBase.ts +26 -26
  1029. package/packages/volume-control/src/VolumeControlUI/VolumeControl.scss +18 -18
  1030. package/packages/volume-control/src/VolumeControlUI/VolumeControl.styles.animated.scss +2 -2
  1031. package/packages/volume-control/src/VolumeControlUI/VolumeControl.styles.scss +1 -1
  1032. package/packages/volume-control/src/VolumeControlUI/VolumeControlUI.tsx +80 -80
  1033. package/packages/volume-control/src/VolumeControlUI/_animated.scss +8 -8
  1034. package/packages/volume-control/src/VolumeControlUI/index.ts +1 -1
  1035. package/packages/volume-control/src/__mocks__/VolumeControlUIMock.tsx +22 -22
  1036. package/packages/volume-control/src/index.ts +2 -2
  1037. package/packages/zapping/README.md +87 -87
  1038. package/packages/zapping/src/ChannelZapping.ts +143 -143
  1039. package/packages/zapping/src/Zapping.tsx +115 -115
  1040. package/packages/zapping/src/index.ts +1 -1
  1041. package/packages/zapping/src/interface.ts +1 -1
  1042. package/utils/create-export-maps/index.ts +3 -3
  1043. package/utils/create-export-maps/src/__tests__/createExportMaps.spec.ts +50 -50
  1044. package/utils/create-export-maps/src/createExportMaps.ts +61 -61
  1045. package/utils/create-package/README.md +39 -39
  1046. package/utils/create-package/src/createPackage.ts +72 -72
  1047. package/utils/create-package/src/index.ts +3 -3
  1048. package/utils/create-package/src/questionnaire/questions.ts +19 -19
  1049. package/utils/create-package/src/settings/Settings.ts +5 -5
  1050. package/utils/create-package/src/types.ts +4 -4
  1051. package/utils/create-package/templates/typescript/README.md +8 -8
  1052. package/utils/create-package/templates/typescript/exports.json +6 -6
  1053. package/utils/run-scripts/index.ts +3 -3
  1054. package/utils/run-scripts/src/__tests__/runScripts.spec.ts +45 -45
  1055. package/utils/run-scripts/src/runScripts.ts +20 -20
@@ -1,228 +1,228 @@
1
- ---
2
- id: IMPLEMENTATION
3
- title: EPG V2 Implementation
4
- hide_title: true
5
- sidebar_label: EPG V2 Implementation
6
- ---
7
-
8
- # EPG Implementation
9
- This document describes the implementation details of the EPG component and its parts.
10
- For a more detailed technical description of all interfaces, head over to the [interface.ts](./interface.ts) file.
11
-
12
- **All timestamps are in milliseconds.**
13
-
14
- The EPG Component is in ideal case a self contained component that can render the EPG.
15
-
16
- The behaviour of the component regarding to the time is that it rounds itself based on the `scrollStepMs`.
17
- If no `initialTimestamp` is passed the center of the EPG is a current timestamp floored to the nearest
18
- scrollStepMs value. Similarly every time the displayed time of the EPG changes (after scrolling,
19
- date picker value selected, or from the outside) it does the same rounding again.
20
-
21
- E.g. The current time is 13:55, no `initialTimestamp` is given and no `scrollStepMs` is given.
22
- In this case the `scrollStepMs` will be default value (30 minutes). So the center of the EPG will be
23
- time 13:30 and the NowLine (as well as live program highlight) will be moved right of the center to
24
- the corresponding 13:55 time.
25
-
26
- ## Structure
27
- ```txt
28
- EPG - the main EPG component that glues everything together and handles time and "time" position of the focus
29
- - `DataManager[]` - handles data fetching and ordering
30
- - `Time` - time module that uses timeProvider to handle current time and time updates through EPG
31
- - `NowLine` - component that represents the current time in the EPG
32
- - `Timeline` - header of the EPG that shows each time segments
33
- - `Day` - the current day component
34
- - `DatePicker` - component for picking days
35
- - `RowsManager` - renderer for the rows, manages scrolling and focusing through rows and its data
36
- - `Row[]` - manager for data within the row, manages getting new data on scrolls
37
- - `CellsManager` - renderer for the cells, manages scrolling and focusing between cells
38
- - `Cell[]` - component that renders 1 program data, handles mouse/mrcu and press action
39
- - `Program` - visual component for 1 cell
40
- - `MouseNavigation` - component that renders mouse arrows on certain platforms
41
- - `Plugin[]`
42
- ```
43
-
44
- ## Fast Scrolling
45
- Fast scrolling is a term that says that the user is moving inside the EPG by holding a button for
46
- movement. In this fast scrolling state there are these changes:
47
- - fetching data is debounced until the movements stops and only the needed data for the viewport are
48
- then fetched.
49
- - if `DateToast` plugin is enabled then it will be displayed over the epg component
50
- - in most cases only 1 "loading..." cell will be visible
51
-
52
- ## Mockup
53
- ```txt
54
- /**
55
- * Current time: 13:55
56
- * initialTimestamp: not set (defaults to current time)
57
- * scrollStepMs: not set (defaults to 30 minutes)
58
- * timelineSectionWidthMs: not set (defaults to 30 minutes)
59
- * The initial render of the EPG aims at time:
60
- * Math.floor(currentTimestamp / scrollStepMs) * scrollStepMs
61
- * which results in 13:30 and it is the center of the EPG viewport
62
- */
63
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
64
- | Day / DatePicker |
65
- |12:00 12:30 13:00 13:30 14:00 14:30 |
66
- | | | | | NOW| | |
67
- |--------------------------------------------------█-----------------|
68
- | Channel A | Program 1 | Program 2 █ | Pro... | Progr|
69
- |--------------------------------------------------█-----------------|
70
- | Channel B | m 5 | Program 6 | Program 7█ |
71
- |--------------------------------------------------█-----------------|
72
- | Channel C | gram 8 | Program 9 █ | Program 10 |
73
- |--------------------------------------------------█-----------------|
74
- | Channel D | Program 11 | Program 12 █ | |
75
- |--------------------------------------------------█-----------------|
76
- | Channel E | 14 | | Progr...| Progra█ 16 |
77
- +++++++++++++++++++++++++++++++++++++++++++++++++++█+++++++++++++++++|
78
- ```
79
-
80
- ## EPG
81
- EPG component is the main component of the EPG. It:
82
- - puts all parts together
83
- - is responsible for synchronizing time and focus time among all other components
84
- - is responsible for rendering plugins and calling their interface for events
85
- - creates and holds all data for all the channels
86
- - enables/disables mouse navigation arrows if they are rendered
87
-
88
- ## DataManager[]
89
- Non-graphical module that holds 1 channel and its data. It is responsible for fetching new data if
90
- needed after being told to do so (by a Row). Row initiates data fetch after it has been scrolled to
91
- the given timestamp. However, the fetch might not be finished before the user scrolls the rows.
92
-
93
- Therefore data and its fetching must be decoupled from the graphical component so it can finish while
94
- being a part of a different Row or when not being utilized by any Row at all. The decision whether the
95
- new data are needed is on DataManager as it receives the timestamp of the EPG from Row and based on
96
- its data it decides whether more data are indeed needed and if so, it manages their fetch and setting.
97
- After the fetch completes it calls the `onDataUpdated` callback which notifies its currently assigned
98
- row (if any) that it should update its cells (and the data that is displayed).
99
-
100
- The fetching is also debounced for performance reasons. This debounce reduces render requirements,
101
- unnecessary background processing and also bandwidth, especially during the fast horizontal scrolling.
102
- The debounce also affects fast vertical scrolling in a way that it won't start fetching if the user
103
- is still fast scrolling.
104
-
105
- If there are data missing from the fetch (missing data at the start / missing data at the end / holes in the middle)
106
- the Data Manager generates "No data" program that will fill up these missing time intervals.
107
-
108
- ## Time
109
- Non-graphical module that works with time provider on providing current time and time updates through
110
- the whole EPG. It implements the Events interface and the reference to its instance is passed through
111
- props to all components that need to subscribe to these events (NowLine, Cell).
112
- It synchronizes the updates to the whole minute (+/- a couple of milliseconds needed for doing so)
113
- Events it provides:
114
- - `onminute` - fired every minute with the current timestamp as a payload
115
- - `onsecond` - fired every second with the current timestamp as a payload
116
-
117
- ## NowLine
118
- Graphical component that renders on top of the rows as a thin vertical line that marks the current time.
119
- By default, it has no header and updates its position every second based on `onsecond` event.
120
- It also updates its position after the EPG is scrolled and hides once it gets out of visible range.
121
-
122
- ## Timeline
123
- Graphical representation of the header for the rows that displays timeline sections with time marks.
124
- These move in connection with rows, so it does not need time updates `onminute`. The sections are
125
- offset with the idea of the exact time corresponding to their mark being in their center.
126
- This component has basic and animated version to easily handle different visuals when the EPG is scrolled.
127
- The section component has only 1 version that can be used by both.
128
- ```txt
129
- Timeline section
130
- ___________<------------------->_____________
131
- | 12:00 |
132
- | | |
133
- ___________|___________________|_____________
134
- ```
135
-
136
- ## Day
137
- Day is a simple component for rendering the day of the EPG in the header section. The default component
138
- is provided. If the props for DatePicker are present, the Day does not render. It is a one-time render
139
- component that receives a new timestamp through `updateData` method when the EPG scrolls left/right.
140
-
141
- ## DatePicker
142
- DatePicker is an implemented way to quickly pick a specific date in the EPG. It is rendered when the DatePicker
143
- props are provided. It displays the current day displayed by the EPG and sets it as a value to the Picker.
144
-
145
- ## RowsManager
146
- RowsManager has basic and animated versions with the same interfaces but different internal implementations.
147
- It is responsible for rendering rows, scrolling rows, focusing between them and passing the correct DataManager
148
- to the correct row. It is responsible for clearing `onDataUpdated` callbacks on DataManagers
149
- that are removed from a row and not assigned to a new Row.
150
-
151
- It is also responsible for rendering Header components and updating them the same way.
152
-
153
- ## Header
154
- Header is a simple visual component to display the header of the channel. Default component renders
155
- channelId. It can be reused for multiple channels (as the rows scroll). Therefore it needs
156
- to implement `updateData` method. It can also need to be able to hide/show (for additional rows).
157
- For this, it needs to implement `show` and `hide` methods.
158
-
159
- ## Row
160
- Row is a component that is a bridge between the current row DataManager and CellsManager. It also is
161
- responsible for telling its current DataManager to fetch additional data when the EPG scrolls left/right.
162
- This way, only visible rows (channels) fetch new data if they are needed. The Row needs to pass its
163
- `onDataUpdated` callback to the currently assigned DataManager. This is the way that it knows when
164
- the new data are ready and instructs its CellsManager to update the cells with the new data.
165
-
166
- The Row can be used by multiple channels. It also needs to be able to hide/show (for additional rows).
167
- Therefore it needs to implement `updateData`, `show` and `hide`.
168
-
169
- ## CellsManager
170
- CellsManager is a renderer for Cells. It has a basic and animated version to easily handle different
171
- visuals when scrolling left/right. It receives a `dataGetter` from the Row that it calls on initial
172
- render and every time it is instructed to update its data by a Row.
173
- It renders only that many cells as it needs. There are 2 loading cells (start and end) ready at all
174
- times. Then it gets visible data (through `dataGetter`) and passes them into data cells. If there are
175
- no more cells for the data, it dynamically creates new cells. If there are remaining cells after
176
- assigning all visible data, they are hidden and kept for the future.
177
-
178
- ## Cell
179
- Cell is a component that handles the basic behavior of the Program representation. It handles a press,
180
- mouse/mrcu focus. It can be reused by multiple programs. It needs to implement these functions:
181
- - `setWidth` - to set the current width of the cell based on the program length
182
- - `setOffset` - to move the cell from on the row based on the program start time
183
- - `updateData` - to update data about current program <-- these are just program data, not width and offset
184
- - `show` - function to display previously hidden cell
185
- - `hide` - function to hide cell if the cell is not needed currently (it is out of visible range)
186
-
187
- ## Program
188
- Program is a visual component for displaying the program. The default provided version renders program
189
- name. As it is a child of a cell it does not need to handle press or mouse events. Furthermore, it does
190
- not need to handle show/hide. The only needed function to implement is the `updateData` function that
191
- is called each render/update with current data.
192
-
193
- ## MouseNavigation
194
- This component renders mouse navigation arrows. It has an interface for enabling/disable an arrow
195
- in the given direction. It receives callbacks for each direction through props and it binds those with
196
- corresponding arrows.
197
-
198
- ## Plugins
199
- Plugins are interfaces meant for further extending the EPG and adding more components. Plugins are
200
- rendered at the end of the EPG and can be either just static functional components or class components
201
- that react to certain events:
202
- - `onItemPress`
203
- - `onFocusChange`
204
- - `onScrolledToTimestamp`
205
- - `onFastScrollingStart`
206
- - `onFastScrollingEng`
207
- - `onFastVerticalScrollingStart`
208
- - `onFastVerticalScrollingEnd`
209
- - `onFastHorizontalScrollingStart`
210
- - `onFastHorizontalScrollingEnd`
211
-
212
- Plugins also receive a reference to the main EPG component via `epg` prop.
213
-
214
- The EPG holds the references to all plugins and when those events happen, it calls the functions of the
215
- same names as the events on the rendered components. If the function is not implemented it is not called.
216
- Therefore plugin can implement only the function for the events it needs.
217
-
218
- The data passed into these functions are the same as they are passed into the outside callbacks of the
219
- same name set by props.
220
-
221
- There are a couple of already prepared plugins that can be imported and set on the project side.
222
-
223
- ## ProgramInfo
224
- Plugin to display extended information about the currently displayed Program. It changes itself with
225
- the focus. This change is debounced and the debounce time can be set through props (default 700ms).
226
-
227
- ## DateToast
228
- Plugin to display a toast with the current date and time during the fast horizontal scrolling.
1
+ ---
2
+ id: IMPLEMENTATION
3
+ title: EPG V2 Implementation
4
+ hide_title: true
5
+ sidebar_label: EPG V2 Implementation
6
+ ---
7
+
8
+ # EPG Implementation
9
+ This document describes the implementation details of the EPG component and its parts.
10
+ For a more detailed technical description of all interfaces, head over to the [interface.ts](./interface.ts) file.
11
+
12
+ **All timestamps are in milliseconds.**
13
+
14
+ The EPG Component is in ideal case a self contained component that can render the EPG.
15
+
16
+ The behaviour of the component regarding to the time is that it rounds itself based on the `scrollStepMs`.
17
+ If no `initialTimestamp` is passed the center of the EPG is a current timestamp floored to the nearest
18
+ scrollStepMs value. Similarly every time the displayed time of the EPG changes (after scrolling,
19
+ date picker value selected, or from the outside) it does the same rounding again.
20
+
21
+ E.g. The current time is 13:55, no `initialTimestamp` is given and no `scrollStepMs` is given.
22
+ In this case the `scrollStepMs` will be default value (30 minutes). So the center of the EPG will be
23
+ time 13:30 and the NowLine (as well as live program highlight) will be moved right of the center to
24
+ the corresponding 13:55 time.
25
+
26
+ ## Structure
27
+ ```txt
28
+ EPG - the main EPG component that glues everything together and handles time and "time" position of the focus
29
+ - `DataManager[]` - handles data fetching and ordering
30
+ - `Time` - time module that uses timeProvider to handle current time and time updates through EPG
31
+ - `NowLine` - component that represents the current time in the EPG
32
+ - `Timeline` - header of the EPG that shows each time segments
33
+ - `Day` - the current day component
34
+ - `DatePicker` - component for picking days
35
+ - `RowsManager` - renderer for the rows, manages scrolling and focusing through rows and its data
36
+ - `Row[]` - manager for data within the row, manages getting new data on scrolls
37
+ - `CellsManager` - renderer for the cells, manages scrolling and focusing between cells
38
+ - `Cell[]` - component that renders 1 program data, handles mouse/mrcu and press action
39
+ - `Program` - visual component for 1 cell
40
+ - `MouseNavigation` - component that renders mouse arrows on certain platforms
41
+ - `Plugin[]`
42
+ ```
43
+
44
+ ## Fast Scrolling
45
+ Fast scrolling is a term that says that the user is moving inside the EPG by holding a button for
46
+ movement. In this fast scrolling state there are these changes:
47
+ - fetching data is debounced until the movements stops and only the needed data for the viewport are
48
+ then fetched.
49
+ - if `DateToast` plugin is enabled then it will be displayed over the epg component
50
+ - in most cases only 1 "loading..." cell will be visible
51
+
52
+ ## Mockup
53
+ ```txt
54
+ /**
55
+ * Current time: 13:55
56
+ * initialTimestamp: not set (defaults to current time)
57
+ * scrollStepMs: not set (defaults to 30 minutes)
58
+ * timelineSectionWidthMs: not set (defaults to 30 minutes)
59
+ * The initial render of the EPG aims at time:
60
+ * Math.floor(currentTimestamp / scrollStepMs) * scrollStepMs
61
+ * which results in 13:30 and it is the center of the EPG viewport
62
+ */
63
+ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
64
+ | Day / DatePicker |
65
+ |12:00 12:30 13:00 13:30 14:00 14:30 |
66
+ | | | | | NOW| | |
67
+ |--------------------------------------------------█-----------------|
68
+ | Channel A | Program 1 | Program 2 █ | Pro... | Progr|
69
+ |--------------------------------------------------█-----------------|
70
+ | Channel B | m 5 | Program 6 | Program 7█ |
71
+ |--------------------------------------------------█-----------------|
72
+ | Channel C | gram 8 | Program 9 █ | Program 10 |
73
+ |--------------------------------------------------█-----------------|
74
+ | Channel D | Program 11 | Program 12 █ | |
75
+ |--------------------------------------------------█-----------------|
76
+ | Channel E | 14 | | Progr...| Progra█ 16 |
77
+ +++++++++++++++++++++++++++++++++++++++++++++++++++█+++++++++++++++++|
78
+ ```
79
+
80
+ ## EPG
81
+ EPG component is the main component of the EPG. It:
82
+ - puts all parts together
83
+ - is responsible for synchronizing time and focus time among all other components
84
+ - is responsible for rendering plugins and calling their interface for events
85
+ - creates and holds all data for all the channels
86
+ - enables/disables mouse navigation arrows if they are rendered
87
+
88
+ ## DataManager[]
89
+ Non-graphical module that holds 1 channel and its data. It is responsible for fetching new data if
90
+ needed after being told to do so (by a Row). Row initiates data fetch after it has been scrolled to
91
+ the given timestamp. However, the fetch might not be finished before the user scrolls the rows.
92
+
93
+ Therefore data and its fetching must be decoupled from the graphical component so it can finish while
94
+ being a part of a different Row or when not being utilized by any Row at all. The decision whether the
95
+ new data are needed is on DataManager as it receives the timestamp of the EPG from Row and based on
96
+ its data it decides whether more data are indeed needed and if so, it manages their fetch and setting.
97
+ After the fetch completes it calls the `onDataUpdated` callback which notifies its currently assigned
98
+ row (if any) that it should update its cells (and the data that is displayed).
99
+
100
+ The fetching is also debounced for performance reasons. This debounce reduces render requirements,
101
+ unnecessary background processing and also bandwidth, especially during the fast horizontal scrolling.
102
+ The debounce also affects fast vertical scrolling in a way that it won't start fetching if the user
103
+ is still fast scrolling.
104
+
105
+ If there are data missing from the fetch (missing data at the start / missing data at the end / holes in the middle)
106
+ the Data Manager generates "No data" program that will fill up these missing time intervals.
107
+
108
+ ## Time
109
+ Non-graphical module that works with time provider on providing current time and time updates through
110
+ the whole EPG. It implements the Events interface and the reference to its instance is passed through
111
+ props to all components that need to subscribe to these events (NowLine, Cell).
112
+ It synchronizes the updates to the whole minute (+/- a couple of milliseconds needed for doing so)
113
+ Events it provides:
114
+ - `onminute` - fired every minute with the current timestamp as a payload
115
+ - `onsecond` - fired every second with the current timestamp as a payload
116
+
117
+ ## NowLine
118
+ Graphical component that renders on top of the rows as a thin vertical line that marks the current time.
119
+ By default, it has no header and updates its position every second based on `onsecond` event.
120
+ It also updates its position after the EPG is scrolled and hides once it gets out of visible range.
121
+
122
+ ## Timeline
123
+ Graphical representation of the header for the rows that displays timeline sections with time marks.
124
+ These move in connection with rows, so it does not need time updates `onminute`. The sections are
125
+ offset with the idea of the exact time corresponding to their mark being in their center.
126
+ This component has basic and animated version to easily handle different visuals when the EPG is scrolled.
127
+ The section component has only 1 version that can be used by both.
128
+ ```txt
129
+ Timeline section
130
+ ___________<------------------->_____________
131
+ | 12:00 |
132
+ | | |
133
+ ___________|___________________|_____________
134
+ ```
135
+
136
+ ## Day
137
+ Day is a simple component for rendering the day of the EPG in the header section. The default component
138
+ is provided. If the props for DatePicker are present, the Day does not render. It is a one-time render
139
+ component that receives a new timestamp through `updateData` method when the EPG scrolls left/right.
140
+
141
+ ## DatePicker
142
+ DatePicker is an implemented way to quickly pick a specific date in the EPG. It is rendered when the DatePicker
143
+ props are provided. It displays the current day displayed by the EPG and sets it as a value to the Picker.
144
+
145
+ ## RowsManager
146
+ RowsManager has basic and animated versions with the same interfaces but different internal implementations.
147
+ It is responsible for rendering rows, scrolling rows, focusing between them and passing the correct DataManager
148
+ to the correct row. It is responsible for clearing `onDataUpdated` callbacks on DataManagers
149
+ that are removed from a row and not assigned to a new Row.
150
+
151
+ It is also responsible for rendering Header components and updating them the same way.
152
+
153
+ ## Header
154
+ Header is a simple visual component to display the header of the channel. Default component renders
155
+ channelId. It can be reused for multiple channels (as the rows scroll). Therefore it needs
156
+ to implement `updateData` method. It can also need to be able to hide/show (for additional rows).
157
+ For this, it needs to implement `show` and `hide` methods.
158
+
159
+ ## Row
160
+ Row is a component that is a bridge between the current row DataManager and CellsManager. It also is
161
+ responsible for telling its current DataManager to fetch additional data when the EPG scrolls left/right.
162
+ This way, only visible rows (channels) fetch new data if they are needed. The Row needs to pass its
163
+ `onDataUpdated` callback to the currently assigned DataManager. This is the way that it knows when
164
+ the new data are ready and instructs its CellsManager to update the cells with the new data.
165
+
166
+ The Row can be used by multiple channels. It also needs to be able to hide/show (for additional rows).
167
+ Therefore it needs to implement `updateData`, `show` and `hide`.
168
+
169
+ ## CellsManager
170
+ CellsManager is a renderer for Cells. It has a basic and animated version to easily handle different
171
+ visuals when scrolling left/right. It receives a `dataGetter` from the Row that it calls on initial
172
+ render and every time it is instructed to update its data by a Row.
173
+ It renders only that many cells as it needs. There are 2 loading cells (start and end) ready at all
174
+ times. Then it gets visible data (through `dataGetter`) and passes them into data cells. If there are
175
+ no more cells for the data, it dynamically creates new cells. If there are remaining cells after
176
+ assigning all visible data, they are hidden and kept for the future.
177
+
178
+ ## Cell
179
+ Cell is a component that handles the basic behavior of the Program representation. It handles a press,
180
+ mouse/mrcu focus. It can be reused by multiple programs. It needs to implement these functions:
181
+ - `setWidth` - to set the current width of the cell based on the program length
182
+ - `setOffset` - to move the cell from on the row based on the program start time
183
+ - `updateData` - to update data about current program <-- these are just program data, not width and offset
184
+ - `show` - function to display previously hidden cell
185
+ - `hide` - function to hide cell if the cell is not needed currently (it is out of visible range)
186
+
187
+ ## Program
188
+ Program is a visual component for displaying the program. The default provided version renders program
189
+ name. As it is a child of a cell it does not need to handle press or mouse events. Furthermore, it does
190
+ not need to handle show/hide. The only needed function to implement is the `updateData` function that
191
+ is called each render/update with current data.
192
+
193
+ ## MouseNavigation
194
+ This component renders mouse navigation arrows. It has an interface for enabling/disable an arrow
195
+ in the given direction. It receives callbacks for each direction through props and it binds those with
196
+ corresponding arrows.
197
+
198
+ ## Plugins
199
+ Plugins are interfaces meant for further extending the EPG and adding more components. Plugins are
200
+ rendered at the end of the EPG and can be either just static functional components or class components
201
+ that react to certain events:
202
+ - `onItemPress`
203
+ - `onFocusChange`
204
+ - `onScrolledToTimestamp`
205
+ - `onFastScrollingStart`
206
+ - `onFastScrollingEng`
207
+ - `onFastVerticalScrollingStart`
208
+ - `onFastVerticalScrollingEnd`
209
+ - `onFastHorizontalScrollingStart`
210
+ - `onFastHorizontalScrollingEnd`
211
+
212
+ Plugins also receive a reference to the main EPG component via `epg` prop.
213
+
214
+ The EPG holds the references to all plugins and when those events happen, it calls the functions of the
215
+ same names as the events on the rendered components. If the function is not implemented it is not called.
216
+ Therefore plugin can implement only the function for the events it needs.
217
+
218
+ The data passed into these functions are the same as they are passed into the outside callbacks of the
219
+ same name set by props.
220
+
221
+ There are a couple of already prepared plugins that can be imported and set on the project side.
222
+
223
+ ## ProgramInfo
224
+ Plugin to display extended information about the currently displayed Program. It changes itself with
225
+ the focus. This change is debounced and the debounce time can be set through props (default 700ms).
226
+
227
+ ## DateToast
228
+ Plugin to display a toast with the current date and time during the fast horizontal scrolling.