@24i/bigscreen-sdk 1.0.33 → 1.0.34-alpha.2562

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 (1061) 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/arabic.ts +27 -0
  621. package/packages/keyboard/src/WhitelabelKeyboard/layouts/burmese.ts +27 -0
  622. package/packages/keyboard/src/WhitelabelKeyboard/layouts/dari.ts +28 -0
  623. package/packages/keyboard/src/WhitelabelKeyboard/layouts/hebrew.ts +28 -28
  624. package/packages/keyboard/src/WhitelabelKeyboard/layouts/index.ts +14 -8
  625. package/packages/keyboard/src/WhitelabelKeyboard/layouts/korean.ts +26 -26
  626. package/packages/keyboard/src/WhitelabelKeyboard/layouts/latin.ts +26 -26
  627. package/packages/keyboard/src/WhitelabelKeyboard/layouts/pashto.ts +27 -0
  628. package/packages/keyboard/src/WhitelabelKeyboard/layouts/persian.ts +27 -0
  629. package/packages/keyboard/src/WhitelabelKeyboard/layouts/russian.ts +27 -27
  630. package/packages/keyboard/src/WhitelabelKeyboard/layouts/special.ts +28 -28
  631. package/packages/keyboard/src/WhitelabelKeyboard/layouts/tibetan.ts +26 -26
  632. package/packages/keyboard/src/WhitelabelKeyboard/layouts/turkish.ts +26 -26
  633. package/packages/keyboard/src/WhitelabelKeyboard/layouts/ukrainian.ts +27 -0
  634. package/packages/keyboard/src/WhitelabelKeyboard/layouts/urdu.ts +26 -26
  635. package/packages/keyboard/src/WhitelabelKeyboard/types.ts +28 -28
  636. package/packages/keyboard/src/WhitelabelNumericKeyboard/NumericKeyboard.scss +105 -105
  637. package/packages/keyboard/src/WhitelabelNumericKeyboard/NumericKeyboard.styles.1080.scss +2 -2
  638. package/packages/keyboard/src/WhitelabelNumericKeyboard/NumericKeyboard.styles.scss +2 -2
  639. package/packages/keyboard/src/WhitelabelNumericKeyboard/NumericKeyboard.tsx +161 -161
  640. package/packages/keyboard/src/WhitelabelNumericKeyboard/WhitelabelStyles/_sizes.1080.scss +7 -7
  641. package/packages/keyboard/src/WhitelabelNumericKeyboard/WhitelabelStyles/_sizes.scss +7 -7
  642. package/packages/keyboard/src/WhitelabelNumericKeyboard/WhitelabelStyles/index.ts +1 -1
  643. package/packages/keyboard/src/WhitelabelNumericKeyboard/WhitelabelStyles/whitelabel.scss +62 -62
  644. package/packages/keyboard/src/WhitelabelNumericKeyboard/WhitelabelStyles/whitelabel.styles.1080.scss +2 -2
  645. package/packages/keyboard/src/WhitelabelNumericKeyboard/WhitelabelStyles/whitelabel.styles.scss +2 -2
  646. package/packages/keyboard/src/WhitelabelNumericKeyboard/_sizes.1080.scss +29 -29
  647. package/packages/keyboard/src/WhitelabelNumericKeyboard/_sizes.scss +29 -29
  648. package/packages/keyboard/src/WhitelabelNumericKeyboard/icons/key_backspace.svg +9 -9
  649. package/packages/keyboard/src/WhitelabelNumericKeyboard/index.ts +2 -2
  650. package/packages/keyboard/src/WhitelabelNumericKeyboard/layout.ts +14 -14
  651. package/packages/keyboard/src/hwKeyboardEventToChar.ts +11 -11
  652. package/packages/keyboard/src/types/index.ts +11 -11
  653. package/packages/keyboard/src/utils/caret.ts +48 -48
  654. package/packages/keyboard/src/utils/generateFocusMatrixFromStringMatrix.ts +12 -12
  655. package/packages/keyboard/src/utils/input.ts +40 -40
  656. package/packages/l10n/README.md +120 -120
  657. package/packages/l10n/interface.ts +1 -1
  658. package/packages/l10n/locales/cs.ts +4 -4
  659. package/packages/l10n/locales/en-001.ts +4 -4
  660. package/packages/l10n/locales/en-us.ts +4 -4
  661. package/packages/l10n/src/Locale.tsx +44 -44
  662. package/packages/l10n/src/date/common.ts +165 -165
  663. package/packages/l10n/src/date/cs.ts +89 -89
  664. package/packages/l10n/src/date/de.ts +97 -97
  665. package/packages/l10n/src/date/en-001.ts +76 -76
  666. package/packages/l10n/src/date/en-common.ts +55 -55
  667. package/packages/l10n/src/date/en-us.ts +83 -83
  668. package/packages/l10n/src/date/es.ts +71 -71
  669. package/packages/l10n/src/date/fr.ts +94 -94
  670. package/packages/l10n/src/date/he.ts +101 -101
  671. package/packages/l10n/src/date/iso.ts +63 -63
  672. package/packages/l10n/src/date/types.ts +56 -56
  673. package/packages/l10n/src/index.ts +2 -2
  674. package/packages/l10n/src/l10n.ts +112 -112
  675. package/packages/l10n/src/types.ts +22 -22
  676. package/packages/list/AttachDetachItem/README.md +128 -128
  677. package/packages/list/AttachDetachItem/index.ts +3 -3
  678. package/packages/list/BasicList/README.md +71 -71
  679. package/packages/list/BasicList/index.ts +1 -1
  680. package/packages/list/CenteredList/README.md +42 -42
  681. package/packages/list/CenteredList/index.ts +1 -1
  682. package/packages/list/EdgeOffsetList/README.md +58 -58
  683. package/packages/list/EdgeOffsetList/index.ts +1 -1
  684. package/packages/list/FirstOnlyList/README.md +39 -39
  685. package/packages/list/FirstOnlyList/index.ts +1 -1
  686. package/packages/list/FirstOnlyVariedList/README.md +105 -105
  687. package/packages/list/FirstOnlyVariedList/index.ts +1 -1
  688. package/packages/list/FixedToEndList/README.md +42 -42
  689. package/packages/list/FixedToEndList/index.ts +1 -1
  690. package/packages/list/Item/index.ts +1 -1
  691. package/packages/list/README.md +193 -193
  692. package/packages/list/src/AttachDetachItem/AttachDetachItem.tsx +96 -96
  693. package/packages/list/src/AttachDetachItem/prepareAttachDetachItemData.ts +13 -13
  694. package/packages/list/src/Base/Base.tsx +392 -392
  695. package/packages/list/src/Base/MouseNavigation/MouseNavigation.tsx +82 -82
  696. package/packages/list/src/Base/MouseNavigation/MouseNavigationFallback.ts +4 -4
  697. package/packages/list/src/Base/MouseNavigation/index.tizen.tv.ts +1 -1
  698. package/packages/list/src/Base/MouseNavigation/index.ts +1 -1
  699. package/packages/list/src/Base/MouseNavigation/index.webos.tv.ts +1 -1
  700. package/packages/list/src/Base/MouseNavigation/index.webtv.ts +1 -1
  701. package/packages/list/src/Base/index.ts +1 -1
  702. package/packages/list/src/Base/interface.ts +39 -39
  703. package/packages/list/src/BasicList/BasicList.tsx +178 -178
  704. package/packages/list/src/BasicList/config.ts +13 -13
  705. package/packages/list/src/CenteredList/CenteredList.tsx +116 -116
  706. package/packages/list/src/CenteredList/config.ts +13 -13
  707. package/packages/list/src/CenteredList/controller.ts +46 -46
  708. package/packages/list/src/CenteredList/interface.ts +10 -10
  709. package/packages/list/src/EdgeOffsetList/EdgeOffsetList.tsx +173 -173
  710. package/packages/list/src/EdgeOffsetList/config.ts +13 -13
  711. package/packages/list/src/FastFocusingOptimizer/FastFocusingOptimizer.ts +54 -54
  712. package/packages/list/src/FirstOnlyList/FirstOnlyList.tsx +122 -122
  713. package/packages/list/src/FirstOnlyList/config.ts +13 -13
  714. package/packages/list/src/FirstOnlyList/controller.ts +11 -11
  715. package/packages/list/src/FirstOnlyVariedList/FirstOnlyVariedList.tsx +132 -132
  716. package/packages/list/src/FirstOnlyVariedList/config.ts +13 -13
  717. package/packages/list/src/FixedToEndList/FixedToEndList.tsx +125 -125
  718. package/packages/list/src/FixedToEndList/config.ts +13 -13
  719. package/packages/list/src/FixedToEndList/controller.ts +44 -44
  720. package/packages/list/src/UnifiedListController/UnifiedListController.ts +258 -258
  721. package/packages/list/src/UnifiedListController/UnifiedListControllerBase.ts +241 -241
  722. package/packages/list/src/UnifiedListController/UnifiedVariedListController.ts +241 -241
  723. package/packages/list/src/UnifiedListController/interface.ts +81 -81
  724. package/packages/list/src/__test__/utils.spec.ts +59 -59
  725. package/packages/list/src/animate.animated.ts +1 -1
  726. package/packages/list/src/animate.ts +1 -1
  727. package/packages/list/src/index.ts +1 -1
  728. package/packages/list/src/interface.ts +48 -48
  729. package/packages/list/src/mocks/index.tsx +55 -55
  730. package/packages/list/src/types.ts +132 -132
  731. package/packages/list/src/utils.ts +142 -142
  732. package/packages/list/utils/index.ts +1 -1
  733. package/packages/logger/README.md +117 -117
  734. package/packages/logger/src/LoggerManager.ts +60 -60
  735. package/packages/logger/src/LoggerService.ts +43 -43
  736. package/packages/logger/src/__mocks__/LoggerBase.ts +13 -13
  737. package/packages/logger/src/index.ts +3 -3
  738. package/packages/logger/src/loggers/ConsoleLogger/ConsoleLogger.ts +51 -51
  739. package/packages/logger/src/loggers/ConsoleLogger/README.md +39 -39
  740. package/packages/logger/src/loggers/ConsoleLogger/index.ts +1 -1
  741. package/packages/logger/src/loggers/LoggerBase/LoggerBase.ts +67 -67
  742. package/packages/logger/src/loggers/LoggerBase/README.md +69 -69
  743. package/packages/logger/src/loggers/LoggerBase/index.ts +1 -1
  744. package/packages/logger/src/loggers/SentryLogger/README.md +98 -98
  745. package/packages/logger/src/loggers/SentryLogger/Sentry.ts +2 -2
  746. package/packages/logger/src/loggers/SentryLogger/SentryLogger.ts +179 -179
  747. package/packages/logger/src/loggers/SentryLogger/index.ts +2 -2
  748. package/packages/logger/src/loggers/SentryLogger/mock.ts +6 -6
  749. package/packages/logger/src/loggers/index.ts +2 -2
  750. package/packages/logger/src/types.ts +46 -46
  751. package/packages/logger/src/utils/deviceInfo.ts +25 -25
  752. package/packages/logger/src/utils/index.ts +1 -1
  753. package/packages/lottie-animations/README.md +217 -217
  754. package/packages/lottie-animations/src/LottieAnimation.tsx +125 -125
  755. package/packages/lottie-animations/src/index.ts +7 -7
  756. package/packages/menu/README.md +90 -90
  757. package/packages/menu/WhitelabelMenu/index.ts +1 -1
  758. package/packages/menu/WhitelabelMenu/interface.ts +2 -2
  759. package/packages/menu/WhitelabelMenu/styles.ts +2 -2
  760. package/packages/menu/interface.ts +3 -3
  761. package/packages/menu/src/MenuAndContentContainer/MenuAndContentContainer.tsx +211 -211
  762. package/packages/menu/src/MenuAndContentContainer/index.ts +1 -1
  763. package/packages/menu/src/MenuAndContentContainer/interface.ts +164 -164
  764. package/packages/menu/src/MenuAndContentContainer/service.ts +5 -5
  765. package/packages/menu/src/WhitelabelMenu/SideMenu.scss +41 -41
  766. package/packages/menu/src/WhitelabelMenu/SideMenu.styles.1080.scss +2 -2
  767. package/packages/menu/src/WhitelabelMenu/SideMenu.styles.animated.1080.scss +3 -3
  768. package/packages/menu/src/WhitelabelMenu/SideMenu.styles.animated.scss +3 -3
  769. package/packages/menu/src/WhitelabelMenu/SideMenu.styles.scss +2 -2
  770. package/packages/menu/src/WhitelabelMenu/SideMenu.tsx +248 -248
  771. package/packages/menu/src/WhitelabelMenu/SideMenuItem/SideMenuItem.scss +56 -56
  772. package/packages/menu/src/WhitelabelMenu/SideMenuItem/SideMenuItem.styles.1080.scss +2 -2
  773. package/packages/menu/src/WhitelabelMenu/SideMenuItem/SideMenuItem.styles.animated.1080.scss +3 -3
  774. package/packages/menu/src/WhitelabelMenu/SideMenuItem/SideMenuItem.styles.animated.scss +3 -3
  775. package/packages/menu/src/WhitelabelMenu/SideMenuItem/SideMenuItem.styles.scss +2 -2
  776. package/packages/menu/src/WhitelabelMenu/SideMenuItem/SideMenuItem.tsx +78 -78
  777. package/packages/menu/src/WhitelabelMenu/SideMenuItem/_animated.scss +12 -12
  778. package/packages/menu/src/WhitelabelMenu/SideMenuItem/_sizes.1080.scss +17 -17
  779. package/packages/menu/src/WhitelabelMenu/SideMenuItem/_sizes.scss +17 -17
  780. package/packages/menu/src/WhitelabelMenu/SideMenuItem/index.ts +1 -1
  781. package/packages/menu/src/WhitelabelMenu/SideMenuItem/interface.ts +49 -49
  782. package/packages/menu/src/WhitelabelMenu/SideMenuItem/rtl.scss +12 -12
  783. package/packages/menu/src/WhitelabelMenu/SideMenuItem/sizes.1080.ts +2 -2
  784. package/packages/menu/src/WhitelabelMenu/SideMenuItem/sizes.ts +2 -2
  785. package/packages/menu/src/WhitelabelMenu/SideMenuItem/styles.ts +1 -1
  786. package/packages/menu/src/WhitelabelMenu/VisualController.animated.ts +48 -48
  787. package/packages/menu/src/WhitelabelMenu/VisualController.ts +20 -20
  788. package/packages/menu/src/WhitelabelMenu/VisualControllerBase.ts +71 -71
  789. package/packages/menu/src/WhitelabelMenu/_animated.scss +39 -39
  790. package/packages/menu/src/WhitelabelMenu/_sizes.1080.scss +14 -14
  791. package/packages/menu/src/WhitelabelMenu/_sizes.scss +14 -14
  792. package/packages/menu/src/WhitelabelMenu/constants.animated.ts +1 -1
  793. package/packages/menu/src/WhitelabelMenu/constants.ts +1 -1
  794. package/packages/menu/src/WhitelabelMenu/index.ts +1 -1
  795. package/packages/menu/src/WhitelabelMenu/interface.ts +14 -14
  796. package/packages/menu/src/WhitelabelMenu/rtl.scss +22 -22
  797. package/packages/menu/src/WhitelabelMenu/sizes.1080.ts +1 -1
  798. package/packages/menu/src/WhitelabelMenu/sizes.ts +1 -1
  799. package/packages/menu/src/WhitelabelMenu/styles.ts +1 -1
  800. package/packages/menu/src/WhitelabelMenu/utils.ts +34 -34
  801. package/packages/menu/src/index.ts +2 -2
  802. package/packages/modal-service/README.md +50 -50
  803. package/packages/modal-service/src/IModal.ts +3 -3
  804. package/packages/modal-service/src/ModalService.scss +7 -7
  805. package/packages/modal-service/src/ModalService.styles.1080.scss +2 -2
  806. package/packages/modal-service/src/ModalService.styles.scss +2 -2
  807. package/packages/modal-service/src/ModalService.tsx +102 -102
  808. package/packages/modal-service/src/_sizes.1080.scss +2 -2
  809. package/packages/modal-service/src/_sizes.scss +2 -2
  810. package/packages/modal-service/src/index.ts +2 -2
  811. package/packages/mouse-navigation/README.md +105 -105
  812. package/packages/mouse-navigation/src/ArrowNavigation/Arrow.tsx +58 -58
  813. package/packages/mouse-navigation/src/ArrowNavigation/ArrowNavigation.tsx +95 -95
  814. package/packages/mouse-navigation/src/ArrowNavigation/__test__/Arrow.spec.tsx +35 -35
  815. package/packages/mouse-navigation/src/ArrowNavigation/__test__/ArrowNavigation.spec.tsx +45 -45
  816. package/packages/mouse-navigation/src/ArrowNavigation/index.tsx +1 -1
  817. package/packages/mouse-navigation/src/MouseElementWrapper.tsx +70 -70
  818. package/packages/mouse-navigation/src/MouseNavigation.tsx +157 -157
  819. package/packages/mouse-navigation/src/MouseNavigationInterface.ts +8 -8
  820. package/packages/mouse-navigation/src/index.ts +3 -3
  821. package/packages/numeric-zapper/README.md +153 -153
  822. package/packages/numeric-zapper/src/NumericZapper.scss +20 -20
  823. package/packages/numeric-zapper/src/NumericZapper.styles.1080.scss +2 -2
  824. package/packages/numeric-zapper/src/NumericZapper.styles.scss +2 -2
  825. package/packages/numeric-zapper/src/NumericZapper.tsx +257 -257
  826. package/packages/numeric-zapper/src/ZapperAllower.ts +15 -15
  827. package/packages/numeric-zapper/src/ZapperService.tsx +8 -8
  828. package/packages/numeric-zapper/src/_sizes.1080.scss +7 -7
  829. package/packages/numeric-zapper/src/_sizes.scss +7 -7
  830. package/packages/numeric-zapper/src/index.ts +4 -4
  831. package/packages/numeric-zapper/src/interface.ts +1 -1
  832. package/packages/numeric-zapper/src/styles.ts +1 -1
  833. package/packages/perf-utils/README.md +7 -7
  834. package/packages/perf-utils/src/array/filter.ts +1 -1
  835. package/packages/perf-utils/src/array/find.ts +1 -1
  836. package/packages/perf-utils/src/array/findIndex.ts +1 -1
  837. package/packages/perf-utils/src/array/forEach.ts +1 -1
  838. package/packages/perf-utils/src/array/includes.ts +1 -1
  839. package/packages/perf-utils/src/array/includesNaN.ts +1 -1
  840. package/packages/perf-utils/src/array/index.ts +1 -1
  841. package/packages/perf-utils/src/array/map.ts +1 -1
  842. package/packages/picker/README.md +70 -70
  843. package/packages/picker/src/DatePicker.tsx +55 -55
  844. package/packages/picker/src/ModalPicker/Checkbox.tsx +38 -38
  845. package/packages/picker/src/ModalPicker/PickerItem.tsx +86 -86
  846. package/packages/picker/src/ModalPicker/PickerModal.tsx +98 -98
  847. package/packages/picker/src/ModalPicker/index.ts +1 -1
  848. package/packages/picker/src/ModalPicker/modalPicker.tsx +48 -48
  849. package/packages/picker/src/Picker.tsx +127 -127
  850. package/packages/picker/src/index.ts +3 -3
  851. package/packages/picker/src/types.ts +25 -25
  852. package/packages/pin-input/README.md +55 -55
  853. package/packages/pin-input/src/PinInput.scss +5 -5
  854. package/packages/pin-input/src/PinInput.tsx +169 -169
  855. package/packages/pin-input/src/index.ts +1 -1
  856. package/packages/player-ui/README.md +207 -207
  857. package/packages/player-ui/src/BackwardButton.tsx +41 -41
  858. package/packages/player-ui/src/CurrentTime.tsx +56 -56
  859. package/packages/player-ui/src/Duration.tsx +60 -60
  860. package/packages/player-ui/src/ForwardButton.tsx +41 -41
  861. package/packages/player-ui/src/PauseButton.tsx +57 -57
  862. package/packages/player-ui/src/PlayButton.tsx +57 -57
  863. package/packages/player-ui/src/PlayPauseButton.tsx +63 -63
  864. package/packages/player-ui/src/PlayerInteractable.tsx +67 -67
  865. package/packages/player-ui/src/PlayerTime.tsx +57 -57
  866. package/packages/player-ui/src/PlayerUI.tsx +267 -267
  867. package/packages/player-ui/src/RemainingTime.tsx +74 -74
  868. package/packages/player-ui/src/Seekbar.tsx +274 -274
  869. package/packages/player-ui/src/Seeking.ts +163 -163
  870. package/packages/player-ui/src/StopButton.tsx +35 -35
  871. package/packages/player-ui/src/Subtitles.tsx +151 -151
  872. package/packages/player-ui/src/index.ts +15 -15
  873. package/packages/player-ui/src/mocks.ts +65 -65
  874. package/packages/player-ui/src/timeUtils.ts +142 -142
  875. package/packages/player-ui/src/types.ts +48 -48
  876. package/packages/progress-bar/README.md +31 -31
  877. package/packages/progress-bar/src/ProgressBar.tsx +41 -41
  878. package/packages/progress-bar/src/index.ts +1 -1
  879. package/packages/progress-bar/src/interface.ts +14 -14
  880. package/packages/qr-code/README.md +79 -79
  881. package/packages/qr-code/src/QRCode.tsx +39 -39
  882. package/packages/qr-code/src/index.ts +2 -2
  883. package/packages/qr-code/src/qrGenerator/__external__/constants.ts +23 -23
  884. package/packages/qr-code/src/qrGenerator/__external__/qrcode.d.ts +31 -31
  885. package/packages/qr-code/src/qrGenerator/__external__/qrcode.js +618 -618
  886. package/packages/qr-code/src/qrGenerator/generateQr.ts +7 -7
  887. package/packages/qr-code/src/qrGenerator/index.ts +3 -3
  888. package/packages/router/README.md +163 -163
  889. package/packages/router/src/Route.tsx +166 -166
  890. package/packages/router/src/Router.tsx +220 -220
  891. package/packages/router/src/focusActiveRoute.ts +5 -5
  892. package/packages/router/src/history.ts +31 -31
  893. package/packages/router/src/index.ts +6 -6
  894. package/packages/router/src/types.ts +13 -13
  895. package/packages/router/src/utils.ts +35 -35
  896. package/packages/runtime-config/README.md +37 -37
  897. package/packages/runtime-config/src/Config.ts +44 -44
  898. package/packages/runtime-config/src/index.ts +1 -1
  899. package/packages/sass-utils/README.md +197 -197
  900. package/packages/sass-utils/src/box-shadow.scss +5 -5
  901. package/packages/sass-utils/src/ellipsis.scss +15 -15
  902. package/packages/sass-utils/src/linear-gradient.scss +43 -43
  903. package/packages/sass-utils/src/prefix-property.scss +7 -7
  904. package/packages/sass-utils/src/prefix-value.scss +6 -6
  905. package/packages/sass-utils/src/prefix.scss +6 -6
  906. package/packages/sass-utils/src/scale.1080.scss +3 -3
  907. package/packages/sass-utils/src/scale.720.scss +5 -5
  908. package/packages/sass-utils/src/transform.scss +5 -5
  909. package/packages/sass-utils/src/transition.scss +6 -6
  910. package/packages/scheduler/README.md +55 -55
  911. package/packages/scheduler/src/Scheduler.ts +43 -43
  912. package/packages/scheduler/src/Task.ts +72 -72
  913. package/packages/scheduler/src/index.ts +4 -4
  914. package/packages/scheduler/src/timeProvider.ts +3 -3
  915. package/packages/scroll-text/README.md +77 -77
  916. package/packages/scroll-text/src/Base.tsx +146 -146
  917. package/packages/scroll-text/src/ScrollText.animated.tsx +80 -80
  918. package/packages/scroll-text/src/ScrollText.tsx +53 -53
  919. package/packages/scroll-text/src/ScrollTextBaseClass.tsx +86 -86
  920. package/packages/scroll-text/src/index.ts +1 -1
  921. package/packages/scroller/README.md +77 -77
  922. package/packages/scroller/src/Scroller.tsx +51 -51
  923. package/packages/scroller/src/index.ts +1 -1
  924. package/packages/splash/AnimatedSplash.ts +1 -1
  925. package/packages/splash/AnimatedSplashAnimated.ts +1 -1
  926. package/packages/splash/AnimatedSplashBasic.ts +1 -1
  927. package/packages/splash/AutomaticSplashAnimated.ts +1 -1
  928. package/packages/splash/AutomaticSplashBasic.ts +1 -1
  929. package/packages/splash/README.md +93 -93
  930. package/packages/splash/StaticSplash.ts +1 -1
  931. package/packages/splash/StaticSplashAnimated.ts +1 -1
  932. package/packages/splash/StaticSplashBasic.ts +1 -1
  933. package/packages/splash/src/AnimatedSplash.animated.tsx +78 -78
  934. package/packages/splash/src/AnimatedSplash.basic.tsx +37 -37
  935. package/packages/splash/src/AutomaticSplash.animated.tsx +20 -20
  936. package/packages/splash/src/AutomaticSplash.basic.tsx +20 -20
  937. package/packages/splash/src/Splash.scss +8 -8
  938. package/packages/splash/src/StaticSplash.animated.tsx +48 -48
  939. package/packages/splash/src/StaticSplash.basic.tsx +26 -26
  940. package/packages/splash/src/index.animated.ts +1 -1
  941. package/packages/splash/src/index.ts +1 -1
  942. package/packages/splash/src/styles.ts +1 -1
  943. package/packages/splash/src/types.ts +20 -20
  944. package/packages/storage/README.md +61 -61
  945. package/packages/storage/src/CookieStorage/CookieStorage.ts +57 -57
  946. package/packages/storage/src/CookieStorage/index.ts +1 -1
  947. package/packages/storage/src/LocalStorage/LocalStorage.ts +58 -58
  948. package/packages/storage/src/LocalStorage/index.ts +1 -1
  949. package/packages/storage/src/index.ts +2 -2
  950. package/packages/storage/src/shared.ts +41 -41
  951. package/packages/storage/src/types.ts +33 -33
  952. package/packages/throbber/README.md +53 -53
  953. package/packages/throbber/src/Throbber.scss +52 -52
  954. package/packages/throbber/src/Throbber.tsx +19 -19
  955. package/packages/throbber/src/ThrobberService.tsx +55 -55
  956. package/packages/throbber/src/controlsHandling.ts +14 -14
  957. package/packages/throbber/src/index.ts +2 -2
  958. package/packages/time/README.md +116 -116
  959. package/packages/time/src/Time.ts +257 -257
  960. package/packages/time/src/adapters/24iMediaTimeApi.ts +47 -47
  961. package/packages/time/src/adapters/worldTimeApi.ts +74 -74
  962. package/packages/time/src/constants.ts +14 -14
  963. package/packages/time/src/index.ts +1 -1
  964. package/packages/time/src/services/24iMediaTimeApi/24iMediaTimeApi.ts +43 -43
  965. package/packages/time/src/services/24iMediaTimeApi/index.ts +6 -6
  966. package/packages/time/src/services/worldTimeApi/index.ts +7 -7
  967. package/packages/time/src/services/worldTimeApi/types.ts +75 -75
  968. package/packages/time/src/services/worldTimeApi/worldTimeApi.ts +77 -77
  969. package/packages/time/src/types.ts +39 -39
  970. package/packages/time/src/utils.ts +79 -79
  971. package/packages/toast/README.md +116 -116
  972. package/packages/toast/src/Toast/IVisualController.ts +7 -7
  973. package/packages/toast/src/Toast/Toast.scss +22 -22
  974. package/packages/toast/src/Toast/Toast.styles.1080.scss +2 -2
  975. package/packages/toast/src/Toast/Toast.styles.scss +2 -2
  976. package/packages/toast/src/Toast/Toast.tsx +83 -83
  977. package/packages/toast/src/Toast/VisualController.animated.ts +20 -20
  978. package/packages/toast/src/Toast/VisualController.ts +9 -9
  979. package/packages/toast/src/Toast/_sizes.1080.scss +8 -8
  980. package/packages/toast/src/Toast/_sizes.scss +8 -8
  981. package/packages/toast/src/Toast/index.ts +2 -2
  982. package/packages/toast/src/Toast/styles.ts +1 -1
  983. package/packages/toast/src/ToastService.scss +8 -8
  984. package/packages/toast/src/ToastService.styles.1080.scss +2 -2
  985. package/packages/toast/src/ToastService.styles.scss +2 -2
  986. package/packages/toast/src/ToastService.tsx +59 -59
  987. package/packages/toast/src/_sizes.1080.scss +2 -2
  988. package/packages/toast/src/_sizes.scss +2 -2
  989. package/packages/toast/src/index.ts +4 -4
  990. package/packages/toast/src/types.ts +4 -4
  991. package/packages/types-bigscreen-jsx/README.md +12 -12
  992. package/packages/types-bigscreen-jsx/global.d.ts +0 -0
  993. package/packages/types-bigscreen-jsx/index.d.ts +32 -32
  994. package/packages/types-bigscreen-jsx/src/copyTypes.js +14 -14
  995. package/packages/utils/README.md +363 -363
  996. package/packages/utils/src/addClass.ts +9 -9
  997. package/packages/utils/src/counter.ts +49 -49
  998. package/packages/utils/src/debounce.ts +54 -54
  999. package/packages/utils/src/displayToggler.scss +3 -3
  1000. package/packages/utils/src/displayToggler.ts +38 -38
  1001. package/packages/utils/src/elementUtils.ts +105 -105
  1002. package/packages/utils/src/forceReflow.ts +14 -14
  1003. package/packages/utils/src/generateUuid.ts +19 -19
  1004. package/packages/utils/src/index.ts +43 -43
  1005. package/packages/utils/src/keyPress/index.ts +6 -6
  1006. package/packages/utils/src/keyPress/keyPressSimulator.ts +74 -74
  1007. package/packages/utils/src/keyPress/simulateKeyPress.ts +25 -25
  1008. package/packages/utils/src/memoryInfo.ts +21 -21
  1009. package/packages/utils/src/nTimes.ts +9 -9
  1010. package/packages/utils/src/noop.ts +1 -1
  1011. package/packages/utils/src/offsetPosition.ts +56 -56
  1012. package/packages/utils/src/removeClass.ts +9 -9
  1013. package/packages/utils/src/scaledImage.ts +24 -24
  1014. package/packages/utils/src/sizes.1080.ts +1 -1
  1015. package/packages/utils/src/sizes.ts +1 -1
  1016. package/packages/utils/src/stopEvent.ts +10 -10
  1017. package/packages/utils/src/textUtils.ts +57 -57
  1018. package/packages/utils/src/timeConstants.ts +11 -11
  1019. package/packages/utils/src/timers/createInterval.ts +19 -19
  1020. package/packages/utils/src/timers/createTimeout.ts +22 -22
  1021. package/packages/utils/src/timers/index.ts +4 -4
  1022. package/packages/utils/src/timers/runAsync.ts +3 -3
  1023. package/packages/utils/src/timers/types.ts +9 -9
  1024. package/packages/utils/src/wait.ts +3 -3
  1025. package/packages/utils/src/xhr/__mocks__/xhr.ts +29 -29
  1026. package/packages/utils/src/xhr/index.ts +11 -11
  1027. package/packages/utils/src/xhr/xhrSend.ts +141 -141
  1028. package/packages/utils/src/xhr/xhrSendRetry.ts +79 -79
  1029. package/packages/volume-control/README.md +79 -79
  1030. package/packages/volume-control/src/IVolumeControlUI.ts +26 -26
  1031. package/packages/volume-control/src/VolumeControlService.tsx +110 -110
  1032. package/packages/volume-control/src/VolumeControlUI/VisualController.animated.ts +28 -28
  1033. package/packages/volume-control/src/VolumeControlUI/VisualController.ts +3 -3
  1034. package/packages/volume-control/src/VolumeControlUI/VisualControllerBase.ts +26 -26
  1035. package/packages/volume-control/src/VolumeControlUI/VolumeControl.scss +18 -18
  1036. package/packages/volume-control/src/VolumeControlUI/VolumeControl.styles.animated.scss +2 -2
  1037. package/packages/volume-control/src/VolumeControlUI/VolumeControl.styles.scss +1 -1
  1038. package/packages/volume-control/src/VolumeControlUI/VolumeControlUI.tsx +80 -80
  1039. package/packages/volume-control/src/VolumeControlUI/_animated.scss +8 -8
  1040. package/packages/volume-control/src/VolumeControlUI/index.ts +1 -1
  1041. package/packages/volume-control/src/__mocks__/VolumeControlUIMock.tsx +22 -22
  1042. package/packages/volume-control/src/index.ts +2 -2
  1043. package/packages/zapping/README.md +87 -87
  1044. package/packages/zapping/src/ChannelZapping.ts +143 -143
  1045. package/packages/zapping/src/Zapping.tsx +115 -115
  1046. package/packages/zapping/src/index.ts +1 -1
  1047. package/packages/zapping/src/interface.ts +1 -1
  1048. package/utils/create-export-maps/index.ts +3 -3
  1049. package/utils/create-export-maps/src/__tests__/createExportMaps.spec.ts +50 -50
  1050. package/utils/create-export-maps/src/createExportMaps.ts +61 -61
  1051. package/utils/create-package/README.md +39 -39
  1052. package/utils/create-package/src/createPackage.ts +72 -72
  1053. package/utils/create-package/src/index.ts +3 -3
  1054. package/utils/create-package/src/questionnaire/questions.ts +19 -19
  1055. package/utils/create-package/src/settings/Settings.ts +5 -5
  1056. package/utils/create-package/src/types.ts +4 -4
  1057. package/utils/create-package/templates/typescript/README.md +8 -8
  1058. package/utils/create-package/templates/typescript/exports.json +6 -6
  1059. package/utils/run-scripts/index.ts +3 -3
  1060. package/utils/run-scripts/src/__tests__/runScripts.spec.ts +45 -45
  1061. package/utils/run-scripts/src/runScripts.ts +20 -20
@@ -1,388 +1,388 @@
1
- ---
2
- id: README
3
- title: BIGscreen JSX
4
- hide_title: true
5
- sidebar_label: BIGscreen JSX
6
- ---
7
-
8
- # BIGscreen JSX
9
- BIGscreen JSX is a set of tools that allow you to write JSX and converts it to JS Dom API.
10
-
11
- This package also exports a set of testing utils. You can import them with `/test-utils` import path. Documentation is here: [BIGscreen JSX Test Utils](./src/test-utils/README.md);
12
-
13
- ## Supported features
14
- - HTML Elements with its props including event listeners and dataset props
15
- - Custom functional components
16
- - Custom class components that extend base Component
17
- - createRef
18
- - forwardRef
19
- - defaultProps
20
- - Fragment
21
-
22
- ## It is not a React!
23
- Even though you write JSX and you can have the same types of components (HTML, function, class), the philosophy is completely different.
24
- BIGscreen JSX does not handle any state or rerenders by itself. It is meant to make your life easier and not to force you to write all JS DOM calls by hand.
25
-
26
- ## HTMLElements
27
- ```jsx
28
- <div className="screen detail" ref={this.detailWrap} />
29
- ```
30
-
31
- ## Functional Components
32
- ```jsx
33
- const Bold = ({ children }) => (
34
- <b>{children}</b>
35
- );
36
-
37
- const Greet = ({ name }) => (
38
- <h1>
39
- Hello, <Bold>{name}</Bold>
40
- </h1>
41
- );
42
-
43
- const App = () => (
44
- <Greet name="John" />
45
- );
46
- ```
47
-
48
- ## Class Components
49
- Class components are similar to React class components, but they do not have any state or state handling.
50
-
51
- They have these lifecycle methods:
52
- - constructor
53
- - render
54
- - componentDidMount
55
- - componentWillUnmount
56
-
57
- ### constructor
58
- This is a good place to initialize your component, bind methods, etc.
59
-
60
- ### render
61
- This method must return the initial render.
62
-
63
- ### componentDidMount
64
- At this point, all references should be available and you can add event listeners here.
65
-
66
- ### componentWillUnmount
67
- At this point, the component was removed and you should clean after yourself.
68
-
69
- It also provides two methods for changing the content.
70
- - clearMount
71
- - appendMount
72
-
73
- ### clearMount
74
- Takes two parameters. The first one is a JSX to render. The second one is a reference to HTMLElement to render to.
75
- It clears all the content before render.
76
-
77
- ### appendMount
78
- Same use as **clearMount**. It does not clear the contents before render.
79
-
80
- ```tsx
81
- import { Component, createRef, Children } from '@24i/bigscreen-sdk/jsx';
82
-
83
- type Props = {
84
- children: Children,
85
- };
86
-
87
- class Greet extends Component<Props> {
88
- constructor(props) {
89
- super(props);
90
- this.screenWidth = createRef();
91
- }
92
-
93
- componentDidMount() {
94
- window.addEventListener('resize', this.onResize);
95
- }
96
-
97
- componentWillUnmount() {
98
- window.removeEventListener('resize', this.onResize);
99
- }
100
-
101
- onResize = () => {
102
- this.clearMount(<>{window.innerWidth}</>, this.screenWidth);
103
- }
104
-
105
- render() {
106
- const { children } = this.props;
107
- return (
108
- <>
109
- {children}
110
- Screen width: <span ref={this.screenWidth}>{window.innerWidth}</span>
111
- </>
112
- )
113
- }
114
- }
115
- ```
116
-
117
- ## createRef
118
- Returns object same as React version `{ current: null /* or reference to class instance or dom element */ }`
119
-
120
- ## forwardRef
121
- Same as React version. Use with functional components to forward reference lower
122
- ```jsx
123
- const ItalicH1 = forwardRef(({ children }, ref) => {
124
- <h1 ref={ref}><i>{children}</i></h1>
125
- });
126
- ```
127
-
128
- ## static defaultProps
129
- Same as in React, components support default props. Unlike React they need to be explicitly typed.
130
- The other option is to just use them with a bang which might be also doable.
131
- ```ts
132
- type Props = {
133
- name: string,
134
- detail?: string,
135
- onFocus?: () => void,
136
- };
137
- export class MyComponent extends Component<Props> {
138
- static defaultProps = {
139
- detail: 'No more information',
140
- onFocus: noop,
141
- }
142
-
143
- // If you omit this line, you have to use optional props with !
144
- declare props: DeclareProps<Props, typeof MyComponent.defaultProps>;
145
-
146
- // rest of the component...
147
- }
148
- ```
149
-
150
- ## Fragment
151
- As all components must render 1 JSX.Element or null you will need Fragment in cases:
152
- - you want to render an array
153
- - you want to render a string/number
154
- ```tsx
155
- // array
156
- return (
157
- <>
158
- {data.map((item) => <Item data={item} />)}
159
- </>
160
- )
161
-
162
- // string
163
- return <>Wassup!</>
164
- ```
165
-
166
- ## mount
167
- `mount` takes a JSX and appends to the given element.
168
- ```js
169
- mount(<App />, document.getElementById('root')):
170
- ```
171
-
172
- ## mountBefore
173
- `mountBefore` takes a JSX and insert before given element.
174
- ```js
175
- mountBefore(<App />, document.getElementById('inner')):
176
- ```
177
-
178
- ## Clearing functions
179
- JSX rendered content needs to be removed by specific functions. These functions are using lifecycle methods from created nodes and **will call** `componentWillUnmount` above element content. Every content created with JSX needs to use these methods. Function works also with elements which are not in the DOM and will unmount all their content as well.
180
-
181
- ### clearNode
182
- Function to clear a node (equivalent of `innerHTML = ''`). Use this as it is platform optimized and works with the VDOM.
183
- ```ts
184
- clearNode(this.wrapper); // passing Reference<HTMLElement>
185
- clearNode(document.getElementById('root')); // passing HTMLElement
186
- ```
187
-
188
- ### removeNode
189
- Function to remove one specific node (equivalent of `removeChild` function).
190
- ```ts
191
- removeNode(this.element); // passing HTMLElement or Reference<HTMLElement>
192
- ```
193
-
194
- ## Manipulation functions
195
- These functions are not using lifecycle methods and they are meant for more specific manipulations. `componentWillUnmount` is **not called** and the VDOM is updated according to modification. All manipulation functions take as its parameters HTML elements or references to HTML elements. Every content created with JSX needs to use these methods. Manipulations could be performed under detached DOM structure, but need to respect conditions of each function.
196
-
197
- ### attachNode
198
- Function will append node into target element. Appended node cannot be part of any DOM.
199
- ```ts
200
- attachNode(this.element, this.targetElement);
201
- ```
202
-
203
- ### attachNodeBefore
204
- Function to insert node before specific element. Appended node cannot be part of any DOM.
205
- ```ts
206
- attachNodeBefore(this.element, this.elementBefore);
207
- ```
208
-
209
- ### detachNode
210
- Opposite function to attachNode. Element is removed from the DOM and kept in memory.
211
- ```ts
212
- detachNode(this.element);
213
- ```
214
-
215
- ### replaceNode
216
- Function to replace one node with another. Replacing node cannot be part of any DOM.
217
- ```ts
218
- replaceNode(this.elementNew, this.elementOld);
219
- ```
220
-
221
- ### swapNodes
222
- Function for swapping two elements. Both elements needs to be part of the DOM.
223
- ```ts
224
- swapNodes(this.elementNew, this.elementOld);
225
- ```
226
-
227
- ## Possible errors during node manipulation
228
- ```
229
- "... is missing nxgvNode":
230
-
231
- If manipulated element does not have nxgvNode property, there are two options:
232
- - The elements you are working with are DOM root elements of the the VDOM. These elements are only partly in the VDOM, because they are not created through JSX, but still contains nxgvChildNodes of its VDOMs.
233
- - The elements you are working with are TextNodes. TextNodes are elements on the very end of the VDOM branch and they don't have their own nxgvNode so they cant be manipulated with manipulation methods.
234
-
235
- "... is not part of the VirtualDOM":
236
-
237
- Every element used in attachNode, attachNodeBefore, detachNode, replaceNode and swapNodes needs to match ExtendedHTMLElement type. These are all elements created with JSX except TextNodes and plain text. Error means that one or more elements (in some cases also elements parents) are not valid part of the virtual DOM or does not exist at all.
238
- ```
239
-
240
- ## setText
241
- Function to change a text value of the element. Use this as it is platform-optimized.
242
- First parameter is `HTMLElement` or `Reference<HTMLElement>`, second is string to set.
243
- ```ts
244
- setText(this.time, formatTime(time, format));
245
- ```
246
-
247
- ## How to do things
248
- ### E.g. Simple component that loads and displays movie detail
249
-
250
- **Equivalent in React**
251
- ```jsx
252
- import React, { Component } from 'react';
253
-
254
- export default class Detail extends Component {
255
- constructor(props) {
256
- super(props);
257
- this.state = { data: null };
258
- }
259
-
260
- componentDidMount() {
261
- const { dataProvider, params: { id } } = this.props;
262
- dataProvider.getMovie({ id }).then((data) => {
263
- this.setState({ data });
264
- });
265
- }
266
-
267
- renderDetail() {
268
- const { data } = this.state;
269
- return (
270
- <div className="detail">
271
- <div className="movie">
272
- <h1>{data.title}</h1>
273
- <p>{data.description}</p>
274
- </div>
275
- </div>
276
- );
277
- }
278
-
279
- renderLoading() {
280
- return (
281
- <div className="detail">
282
- <Loader />
283
- </div>
284
- );
285
- }
286
-
287
- render() {
288
- const { data } = this.state;
289
- return data ? this.renderDetail() : this.renderLoading();
290
- }
291
- }
292
- ```
293
-
294
- **BIGscreen JSX version**
295
- ```tsx
296
- import { Component, createRef, DeclareProps } from '@24i/bigscreen-sdk/jsx';
297
- import { noop } from '@24i/bigscreen-sdk/utils/noop';
298
-
299
- type Props = {
300
- params: { id: string },
301
- dataProvider: DataProvider,
302
- sceneName?: string,
303
- onDataLoaded?: (data: Data) => void,
304
- }
305
-
306
- export default class Detail extends Component {
307
- static defaultProps = {
308
- sceneName: 'Movie Detail',
309
- onDataLoaded: noop,
310
- };
311
-
312
- declare props: DeclareProps<Props, typeof Detail.defaultProps>;
313
-
314
- constructor(props) {
315
- super(props);
316
- this.wrap = createRef();
317
- }
318
-
319
- componentDidMount() {
320
- this.loadData();
321
- }
322
-
323
- loadData() {
324
- const { dataProvider, params: { id }, onDataLoaded } = this.props;
325
- dataProvider.getMovie({ id }).then((data) => {
326
- this.renderDetail(data)
327
- onDataLoaded(data);
328
- });
329
- }
330
-
331
- renderDetail(data) {
332
- this.clearMount((
333
- <>
334
- <h1>{sceneName}</h1>
335
- <div className="movie">
336
- <h1>{data.title}</h1>
337
- <p>{data.description}</p>
338
- </div>
339
- </>
340
- ), this.wrap);
341
- }
342
-
343
- render() {
344
- const { sceneName } = this.props;
345
- return (
346
- <div className="detail" ref={this.wrap}>
347
- <h1>{sceneName}</h1>
348
- <Loader />
349
- </div>
350
- );
351
- }
352
- }
353
- ```
354
-
355
- As you can see from the above examples the React way is classic with state change and React auto-updating the DOM based on changes in Virtual DOM.
356
-
357
- The way you are supposed to do this in BIGscreen JSX is that you prepare a basic skeleton and you create references on containers whose content or props are going to change during the lifetime of the component.
358
- For changing props on HTMLElement simply access it through the reference. If the reference is on a custom component then you can access its instance through the ref as well.
359
- For changing the content you can use either `this.clearMount` or `this.appendMount` that take JSX as the first param and HTMLElement reference as the second one.
360
-
361
- ## Extra
362
- There are some extra features that will not work in React but are done for performance reasons.
363
-
364
- ## TextNode
365
- Adds referenced TextNode. Use it if you need to change the text on some event and you cannot afford to wrap it inside div or span.
366
- ```ts
367
- class Translation extends Component<Props> {
368
- textNode = createRef<Text>();
369
-
370
- componentDidMount() {
371
- i18n.addEventListener('languagechange', this.onLanguageChange);
372
- }
373
-
374
- componentWillUnmount() {
375
- i18n.removeEventListener('languagechange', this.onLanguageChange);
376
- }
377
-
378
- onLanguageChange = () => {
379
- const { translationKey } = this.props;
380
- this.textNode.current.nodeValue = i18n.t(translationKey);
381
- }
382
-
383
- render() {
384
- const { translationKey } = this.props;
385
- return <TextNode ref={this.textNode}>{i18n.t(translationKey, options)}</TextNode>;
386
- }
387
- }
388
- ```
1
+ ---
2
+ id: README
3
+ title: BIGscreen JSX
4
+ hide_title: true
5
+ sidebar_label: BIGscreen JSX
6
+ ---
7
+
8
+ # BIGscreen JSX
9
+ BIGscreen JSX is a set of tools that allow you to write JSX and converts it to JS Dom API.
10
+
11
+ This package also exports a set of testing utils. You can import them with `/test-utils` import path. Documentation is here: [BIGscreen JSX Test Utils](./src/test-utils/README.md);
12
+
13
+ ## Supported features
14
+ - HTML Elements with its props including event listeners and dataset props
15
+ - Custom functional components
16
+ - Custom class components that extend base Component
17
+ - createRef
18
+ - forwardRef
19
+ - defaultProps
20
+ - Fragment
21
+
22
+ ## It is not a React!
23
+ Even though you write JSX and you can have the same types of components (HTML, function, class), the philosophy is completely different.
24
+ BIGscreen JSX does not handle any state or rerenders by itself. It is meant to make your life easier and not to force you to write all JS DOM calls by hand.
25
+
26
+ ## HTMLElements
27
+ ```jsx
28
+ <div className="screen detail" ref={this.detailWrap} />
29
+ ```
30
+
31
+ ## Functional Components
32
+ ```jsx
33
+ const Bold = ({ children }) => (
34
+ <b>{children}</b>
35
+ );
36
+
37
+ const Greet = ({ name }) => (
38
+ <h1>
39
+ Hello, <Bold>{name}</Bold>
40
+ </h1>
41
+ );
42
+
43
+ const App = () => (
44
+ <Greet name="John" />
45
+ );
46
+ ```
47
+
48
+ ## Class Components
49
+ Class components are similar to React class components, but they do not have any state or state handling.
50
+
51
+ They have these lifecycle methods:
52
+ - constructor
53
+ - render
54
+ - componentDidMount
55
+ - componentWillUnmount
56
+
57
+ ### constructor
58
+ This is a good place to initialize your component, bind methods, etc.
59
+
60
+ ### render
61
+ This method must return the initial render.
62
+
63
+ ### componentDidMount
64
+ At this point, all references should be available and you can add event listeners here.
65
+
66
+ ### componentWillUnmount
67
+ At this point, the component was removed and you should clean after yourself.
68
+
69
+ It also provides two methods for changing the content.
70
+ - clearMount
71
+ - appendMount
72
+
73
+ ### clearMount
74
+ Takes two parameters. The first one is a JSX to render. The second one is a reference to HTMLElement to render to.
75
+ It clears all the content before render.
76
+
77
+ ### appendMount
78
+ Same use as **clearMount**. It does not clear the contents before render.
79
+
80
+ ```tsx
81
+ import { Component, createRef, Children } from '@24i/bigscreen-sdk/jsx';
82
+
83
+ type Props = {
84
+ children: Children,
85
+ };
86
+
87
+ class Greet extends Component<Props> {
88
+ constructor(props) {
89
+ super(props);
90
+ this.screenWidth = createRef();
91
+ }
92
+
93
+ componentDidMount() {
94
+ window.addEventListener('resize', this.onResize);
95
+ }
96
+
97
+ componentWillUnmount() {
98
+ window.removeEventListener('resize', this.onResize);
99
+ }
100
+
101
+ onResize = () => {
102
+ this.clearMount(<>{window.innerWidth}</>, this.screenWidth);
103
+ }
104
+
105
+ render() {
106
+ const { children } = this.props;
107
+ return (
108
+ <>
109
+ {children}
110
+ Screen width: <span ref={this.screenWidth}>{window.innerWidth}</span>
111
+ </>
112
+ )
113
+ }
114
+ }
115
+ ```
116
+
117
+ ## createRef
118
+ Returns object same as React version `{ current: null /* or reference to class instance or dom element */ }`
119
+
120
+ ## forwardRef
121
+ Same as React version. Use with functional components to forward reference lower
122
+ ```jsx
123
+ const ItalicH1 = forwardRef(({ children }, ref) => {
124
+ <h1 ref={ref}><i>{children}</i></h1>
125
+ });
126
+ ```
127
+
128
+ ## static defaultProps
129
+ Same as in React, components support default props. Unlike React they need to be explicitly typed.
130
+ The other option is to just use them with a bang which might be also doable.
131
+ ```ts
132
+ type Props = {
133
+ name: string,
134
+ detail?: string,
135
+ onFocus?: () => void,
136
+ };
137
+ export class MyComponent extends Component<Props> {
138
+ static defaultProps = {
139
+ detail: 'No more information',
140
+ onFocus: noop,
141
+ }
142
+
143
+ // If you omit this line, you have to use optional props with !
144
+ declare props: DeclareProps<Props, typeof MyComponent.defaultProps>;
145
+
146
+ // rest of the component...
147
+ }
148
+ ```
149
+
150
+ ## Fragment
151
+ As all components must render 1 JSX.Element or null you will need Fragment in cases:
152
+ - you want to render an array
153
+ - you want to render a string/number
154
+ ```tsx
155
+ // array
156
+ return (
157
+ <>
158
+ {data.map((item) => <Item data={item} />)}
159
+ </>
160
+ )
161
+
162
+ // string
163
+ return <>Wassup!</>
164
+ ```
165
+
166
+ ## mount
167
+ `mount` takes a JSX and appends to the given element.
168
+ ```js
169
+ mount(<App />, document.getElementById('root')):
170
+ ```
171
+
172
+ ## mountBefore
173
+ `mountBefore` takes a JSX and insert before given element.
174
+ ```js
175
+ mountBefore(<App />, document.getElementById('inner')):
176
+ ```
177
+
178
+ ## Clearing functions
179
+ JSX rendered content needs to be removed by specific functions. These functions are using lifecycle methods from created nodes and **will call** `componentWillUnmount` above element content. Every content created with JSX needs to use these methods. Function works also with elements which are not in the DOM and will unmount all their content as well.
180
+
181
+ ### clearNode
182
+ Function to clear a node (equivalent of `innerHTML = ''`). Use this as it is platform optimized and works with the VDOM.
183
+ ```ts
184
+ clearNode(this.wrapper); // passing Reference<HTMLElement>
185
+ clearNode(document.getElementById('root')); // passing HTMLElement
186
+ ```
187
+
188
+ ### removeNode
189
+ Function to remove one specific node (equivalent of `removeChild` function).
190
+ ```ts
191
+ removeNode(this.element); // passing HTMLElement or Reference<HTMLElement>
192
+ ```
193
+
194
+ ## Manipulation functions
195
+ These functions are not using lifecycle methods and they are meant for more specific manipulations. `componentWillUnmount` is **not called** and the VDOM is updated according to modification. All manipulation functions take as its parameters HTML elements or references to HTML elements. Every content created with JSX needs to use these methods. Manipulations could be performed under detached DOM structure, but need to respect conditions of each function.
196
+
197
+ ### attachNode
198
+ Function will append node into target element. Appended node cannot be part of any DOM.
199
+ ```ts
200
+ attachNode(this.element, this.targetElement);
201
+ ```
202
+
203
+ ### attachNodeBefore
204
+ Function to insert node before specific element. Appended node cannot be part of any DOM.
205
+ ```ts
206
+ attachNodeBefore(this.element, this.elementBefore);
207
+ ```
208
+
209
+ ### detachNode
210
+ Opposite function to attachNode. Element is removed from the DOM and kept in memory.
211
+ ```ts
212
+ detachNode(this.element);
213
+ ```
214
+
215
+ ### replaceNode
216
+ Function to replace one node with another. Replacing node cannot be part of any DOM.
217
+ ```ts
218
+ replaceNode(this.elementNew, this.elementOld);
219
+ ```
220
+
221
+ ### swapNodes
222
+ Function for swapping two elements. Both elements needs to be part of the DOM.
223
+ ```ts
224
+ swapNodes(this.elementNew, this.elementOld);
225
+ ```
226
+
227
+ ## Possible errors during node manipulation
228
+ ```
229
+ "... is missing nxgvNode":
230
+
231
+ If manipulated element does not have nxgvNode property, there are two options:
232
+ - The elements you are working with are DOM root elements of the the VDOM. These elements are only partly in the VDOM, because they are not created through JSX, but still contains nxgvChildNodes of its VDOMs.
233
+ - The elements you are working with are TextNodes. TextNodes are elements on the very end of the VDOM branch and they don't have their own nxgvNode so they cant be manipulated with manipulation methods.
234
+
235
+ "... is not part of the VirtualDOM":
236
+
237
+ Every element used in attachNode, attachNodeBefore, detachNode, replaceNode and swapNodes needs to match ExtendedHTMLElement type. These are all elements created with JSX except TextNodes and plain text. Error means that one or more elements (in some cases also elements parents) are not valid part of the virtual DOM or does not exist at all.
238
+ ```
239
+
240
+ ## setText
241
+ Function to change a text value of the element. Use this as it is platform-optimized.
242
+ First parameter is `HTMLElement` or `Reference<HTMLElement>`, second is string to set.
243
+ ```ts
244
+ setText(this.time, formatTime(time, format));
245
+ ```
246
+
247
+ ## How to do things
248
+ ### E.g. Simple component that loads and displays movie detail
249
+
250
+ **Equivalent in React**
251
+ ```jsx
252
+ import React, { Component } from 'react';
253
+
254
+ export default class Detail extends Component {
255
+ constructor(props) {
256
+ super(props);
257
+ this.state = { data: null };
258
+ }
259
+
260
+ componentDidMount() {
261
+ const { dataProvider, params: { id } } = this.props;
262
+ dataProvider.getMovie({ id }).then((data) => {
263
+ this.setState({ data });
264
+ });
265
+ }
266
+
267
+ renderDetail() {
268
+ const { data } = this.state;
269
+ return (
270
+ <div className="detail">
271
+ <div className="movie">
272
+ <h1>{data.title}</h1>
273
+ <p>{data.description}</p>
274
+ </div>
275
+ </div>
276
+ );
277
+ }
278
+
279
+ renderLoading() {
280
+ return (
281
+ <div className="detail">
282
+ <Loader />
283
+ </div>
284
+ );
285
+ }
286
+
287
+ render() {
288
+ const { data } = this.state;
289
+ return data ? this.renderDetail() : this.renderLoading();
290
+ }
291
+ }
292
+ ```
293
+
294
+ **BIGscreen JSX version**
295
+ ```tsx
296
+ import { Component, createRef, DeclareProps } from '@24i/bigscreen-sdk/jsx';
297
+ import { noop } from '@24i/bigscreen-sdk/utils/noop';
298
+
299
+ type Props = {
300
+ params: { id: string },
301
+ dataProvider: DataProvider,
302
+ sceneName?: string,
303
+ onDataLoaded?: (data: Data) => void,
304
+ }
305
+
306
+ export default class Detail extends Component {
307
+ static defaultProps = {
308
+ sceneName: 'Movie Detail',
309
+ onDataLoaded: noop,
310
+ };
311
+
312
+ declare props: DeclareProps<Props, typeof Detail.defaultProps>;
313
+
314
+ constructor(props) {
315
+ super(props);
316
+ this.wrap = createRef();
317
+ }
318
+
319
+ componentDidMount() {
320
+ this.loadData();
321
+ }
322
+
323
+ loadData() {
324
+ const { dataProvider, params: { id }, onDataLoaded } = this.props;
325
+ dataProvider.getMovie({ id }).then((data) => {
326
+ this.renderDetail(data)
327
+ onDataLoaded(data);
328
+ });
329
+ }
330
+
331
+ renderDetail(data) {
332
+ this.clearMount((
333
+ <>
334
+ <h1>{sceneName}</h1>
335
+ <div className="movie">
336
+ <h1>{data.title}</h1>
337
+ <p>{data.description}</p>
338
+ </div>
339
+ </>
340
+ ), this.wrap);
341
+ }
342
+
343
+ render() {
344
+ const { sceneName } = this.props;
345
+ return (
346
+ <div className="detail" ref={this.wrap}>
347
+ <h1>{sceneName}</h1>
348
+ <Loader />
349
+ </div>
350
+ );
351
+ }
352
+ }
353
+ ```
354
+
355
+ As you can see from the above examples the React way is classic with state change and React auto-updating the DOM based on changes in Virtual DOM.
356
+
357
+ The way you are supposed to do this in BIGscreen JSX is that you prepare a basic skeleton and you create references on containers whose content or props are going to change during the lifetime of the component.
358
+ For changing props on HTMLElement simply access it through the reference. If the reference is on a custom component then you can access its instance through the ref as well.
359
+ For changing the content you can use either `this.clearMount` or `this.appendMount` that take JSX as the first param and HTMLElement reference as the second one.
360
+
361
+ ## Extra
362
+ There are some extra features that will not work in React but are done for performance reasons.
363
+
364
+ ## TextNode
365
+ Adds referenced TextNode. Use it if you need to change the text on some event and you cannot afford to wrap it inside div or span.
366
+ ```ts
367
+ class Translation extends Component<Props> {
368
+ textNode = createRef<Text>();
369
+
370
+ componentDidMount() {
371
+ i18n.addEventListener('languagechange', this.onLanguageChange);
372
+ }
373
+
374
+ componentWillUnmount() {
375
+ i18n.removeEventListener('languagechange', this.onLanguageChange);
376
+ }
377
+
378
+ onLanguageChange = () => {
379
+ const { translationKey } = this.props;
380
+ this.textNode.current.nodeValue = i18n.t(translationKey);
381
+ }
382
+
383
+ render() {
384
+ const { translationKey } = this.props;
385
+ return <TextNode ref={this.textNode}>{i18n.t(translationKey, options)}</TextNode>;
386
+ }
387
+ }
388
+ ```