@24i/bigscreen-sdk 1.0.54-alpha.2836 → 2.1.1-alpha.2133

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 (278) hide show
  1. package/README.md +3 -2
  2. package/package.json +34 -53
  3. package/packages/adobe-heartbeat/src/AdobeHeartbeat.ts +9 -9
  4. package/packages/async-image/src/AsyncImage.tsx +10 -15
  5. package/packages/developer-tools/PlayerDebugWindow/README.md +1 -1
  6. package/packages/developer-tools/src/DeveloperToolsService/DeveloperToolsList.tsx +0 -11
  7. package/packages/developer-tools/src/PlayerDebugWindow/PlayerDebugWindow.tsx +5 -5
  8. package/packages/developer-tools/src/PlayerDebugWindow/constants.ts +0 -15
  9. package/packages/developer-tools/src/TechnicalInfo/TechnicalInfoDetail.tsx +1 -2
  10. package/packages/developer-tools/src/TechnicalInfo/TechnicalInfoProvider.ts +5 -57
  11. package/packages/developer-tools/src/TechnicalInfo/__mocks__/Device.ts +0 -12
  12. package/packages/developer-tools/src/TechnicalInfo/translations.ts +0 -8
  13. package/packages/device/src/getKeyDigit.ts +2 -2
  14. package/packages/device/src/resolver/resolver.ts +5 -18
  15. package/packages/digital-clock/src/DigitalClock.tsx +4 -15
  16. package/packages/driver-androidtv/src/DeviceAndroidTV.ts +9 -92
  17. package/packages/driver-androidtv/src/__mocks__/javaScriptBridge.ts +5 -38
  18. package/packages/driver-androidtv/src/index.ts +0 -1
  19. package/packages/driver-androidtv/src/keymap.ts +0 -18
  20. package/packages/driver-androidtv/src/types.ts +16 -144
  21. package/packages/driver-base/src/DeviceBase.ts +2 -80
  22. package/packages/driver-base/src/KeyMap/Key.ts +1 -8
  23. package/packages/driver-base/src/KeyMap/KeyMap.ts +0 -4
  24. package/packages/driver-base/src/KeyMap/interface.ts +0 -1
  25. package/packages/driver-base/src/KeyMap/overrideValues.ts +1 -2
  26. package/packages/driver-base/src/__mocks__/DeviceBase.ts +0 -24
  27. package/packages/driver-base/src/__mocks__/keyMap.ts +0 -1
  28. package/packages/driver-base/src/index.ts +0 -3
  29. package/packages/driver-base/src/types/DeviceEvent.ts +0 -2
  30. package/packages/driver-base/src/types/KeycodeKeyMap.ts +0 -1
  31. package/packages/driver-browser/src/DeviceBrowser.ts +0 -26
  32. package/packages/driver-browser/src/keymap.ts +0 -8
  33. package/packages/driver-entone/src/DeviceEntone.ts +1 -31
  34. package/packages/driver-entone/src/keymap.ts +0 -1
  35. package/packages/driver-hbbtv/src/DeviceHbbTV.ts +0 -26
  36. package/packages/driver-kreatv/src/DeviceKreaTV.ts +0 -26
  37. package/packages/driver-saphi/src/DeviceSaphi.ts +0 -26
  38. package/packages/driver-tizen/src/DeviceTizen.ts +7 -126
  39. package/packages/driver-tizen/src/ITizen.ts +202 -15116
  40. package/packages/driver-tizen/src/IWebapis.ts +87 -8643
  41. package/packages/driver-tizen/src/TizenKeys.ts +2 -4
  42. package/packages/driver-tizen/src/__mocks__/tizen.ts +8 -7
  43. package/packages/driver-tizen/src/constants.ts +195 -1
  44. package/packages/driver-tizen/src/types.ts +14 -0
  45. package/packages/driver-vidaa/src/DeviceVidaa.ts +2 -29
  46. package/packages/driver-vidaa/src/__mocks__/vidaa.ts +1 -1
  47. package/packages/driver-vidaa/src/keymap.ts +0 -2
  48. package/packages/driver-webos/src/DeviceWebos.ts +0 -55
  49. package/packages/driver-webos/src/__mocks__/webos.ts +0 -33
  50. package/packages/driver-webos/src/constants.ts +0 -1
  51. package/packages/driver-webos/src/keymap.ts +1 -2
  52. package/packages/driver-webos/src/types.ts +0 -30
  53. package/packages/driver-xbox/src/DeviceXbox.ts +1 -30
  54. package/packages/driver-xbox/src/keymap.ts +1 -1
  55. package/packages/epg/README.md +1 -3
  56. package/packages/epg/src/v2/Cell.tsx +2 -16
  57. package/packages/epg/src/v2/DataManager.ts +41 -112
  58. package/packages/epg/src/v2/DatePicker.tsx +3 -9
  59. package/packages/epg/src/v2/DateToast/DateToast.tsx +9 -12
  60. package/packages/epg/src/v2/Day.tsx +3 -6
  61. package/packages/epg/src/v2/Epg.tsx +5 -5
  62. package/packages/epg/src/v2/MockGenerator/generator.ts +2 -3
  63. package/packages/epg/src/v2/ProgramInfo/utils.ts +3 -4
  64. package/packages/epg/src/v2/Row.tsx +1 -3
  65. package/packages/epg/src/v2/TimelineSection.tsx +1 -4
  66. package/packages/epg/src/v2/basic/CellsManager.tsx +2 -7
  67. package/packages/epg/src/v2/basic/RowsManager.tsx +1 -3
  68. package/packages/epg/src/v2/interface.ts +0 -13
  69. package/packages/events-manager/src/EventsManager.ts +56 -1
  70. package/packages/focus/README.md +0 -33
  71. package/packages/focus/src/IFocusable.ts +0 -1
  72. package/packages/focus/src/Layout/Base.tsx +6 -41
  73. package/packages/focus/src/Layout/Matrix.tsx +19 -51
  74. package/packages/focus/src/Layout/__test__/Base.spec.ts +180 -0
  75. package/packages/focus/src/Layout/__test__/Horizontal.spec.ts +94 -0
  76. package/packages/focus/src/Layout/__test__/Matrix.spec.ts +261 -0
  77. package/packages/focus/src/Layout/__test__/Vertical.spec.ts +46 -0
  78. package/packages/focus/src/Layout/__test__/isRtl.spec.ts +23 -0
  79. package/packages/focus/src/Layout/__test__/shared.ts +19 -0
  80. package/packages/focus/src/focusFirstExisting.ts +1 -7
  81. package/packages/focus/src/index.ts +1 -2
  82. package/packages/gallup/src/Gallup.ts +3 -3
  83. package/packages/grid/src/Base/Base.tsx +10 -15
  84. package/packages/grid/src/FirstOnlyGrid/FirstOnlyGrid.tsx +2 -4
  85. package/packages/grid/src/UnifiedGridController/UnifiedGridController.ts +6 -6
  86. package/packages/icon/src/Icon.tsx +5 -27
  87. package/packages/input/README.md +1 -1
  88. package/packages/input/src/Input.tsx +10 -16
  89. package/packages/interactable/README.md +1 -2
  90. package/packages/interactable/src/Interactable.tsx +3 -9
  91. package/packages/interactable/src/interface.ts +0 -1
  92. package/packages/jsx/src/index.ts +1 -1
  93. package/packages/jsx/src/test-utils/index.ts +0 -1
  94. package/packages/keyboard/src/Backdrop/Backdrop.scss +0 -2
  95. package/packages/keyboard/src/KeyboardBase.tsx +4 -16
  96. package/packages/keyboard/src/WhitelabelKeyboard/Keyboard.scss +0 -4
  97. package/packages/keyboard/src/WhitelabelKeyboard/Keyboard.tsx +20 -28
  98. package/packages/keyboard/src/WhitelabelKeyboard/_sizes.1080.scss +0 -1
  99. package/packages/keyboard/src/WhitelabelKeyboard/_sizes.scss +0 -1
  100. package/packages/keyboard/src/WhitelabelKeyboard/layouts/index.ts +0 -12
  101. package/packages/keyboard/src/WhitelabelKeyboard/types.ts +0 -1
  102. package/packages/keyboard/src/utils/caret.ts +8 -5
  103. package/packages/keyboard/src/utils/input.ts +6 -5
  104. package/packages/l10n/README.md +0 -18
  105. package/packages/l10n/src/date/common.ts +6 -18
  106. package/packages/l10n/src/date/cs.ts +8 -2
  107. package/packages/l10n/src/date/en-001.ts +3 -3
  108. package/packages/l10n/src/date/en-common.ts +4 -5
  109. package/packages/l10n/src/date/en-us.ts +3 -3
  110. package/packages/l10n/src/date/iso.ts +13 -12
  111. package/packages/l10n/src/date/types.ts +0 -9
  112. package/packages/l10n/src/l10n.ts +3 -61
  113. package/packages/list/src/Base/Base.tsx +9 -19
  114. package/packages/list/src/Base/interface.ts +2 -2
  115. package/packages/list/src/BasicList/BasicList.tsx +7 -7
  116. package/packages/list/src/CenteredList/CenteredList.tsx +2 -2
  117. package/packages/list/src/CenteredList/controller.ts +1 -0
  118. package/packages/list/src/EdgeOffsetList/EdgeOffsetList.tsx +10 -10
  119. package/packages/list/src/FirstOnlyList/FirstOnlyList.tsx +2 -2
  120. package/packages/list/src/FirstOnlyVariedList/FirstOnlyVariedList.tsx +2 -2
  121. package/packages/list/src/FixedToEndList/FixedToEndList.tsx +2 -2
  122. package/packages/list/src/UnifiedListController/UnifiedListController.ts +2 -6
  123. package/packages/list/src/interface.ts +2 -2
  124. package/packages/logger/src/loggers/ConsoleLogger/ConsoleLogger.ts +1 -7
  125. package/packages/logger/src/loggers/SentryLogger/Sentry.ts +0 -1
  126. package/packages/logger/src/loggers/SentryLogger/SentryLogger.ts +3 -5
  127. package/packages/menu/src/MenuAndContentContainer/MenuAndContentContainer.tsx +3 -31
  128. package/packages/menu/src/MenuAndContentContainer/interface.ts +0 -8
  129. package/packages/modal-service/README.md +1 -4
  130. package/packages/modal-service/src/ModalService.tsx +5 -29
  131. package/packages/perf-utils/README.md +120 -1
  132. package/packages/perf-utils/src/array/filter.ts +54 -1
  133. package/packages/perf-utils/src/array/find.ts +43 -1
  134. package/packages/perf-utils/src/array/findIndex.ts +43 -1
  135. package/packages/perf-utils/src/array/forEach.ts +48 -1
  136. package/packages/perf-utils/src/array/includes.ts +41 -1
  137. package/packages/perf-utils/src/array/includesNaN.ts +32 -1
  138. package/packages/perf-utils/src/array/index.ts +7 -1
  139. package/packages/perf-utils/src/array/map.ts +52 -1
  140. package/packages/player-ui/README.md +1 -1
  141. package/packages/player-ui/src/CurrentTime.tsx +2 -2
  142. package/packages/player-ui/src/Duration.tsx +2 -2
  143. package/packages/player-ui/src/PauseButton.tsx +0 -8
  144. package/packages/player-ui/src/PlayerInteractable.tsx +0 -1
  145. package/packages/player-ui/src/PlayerTime.tsx +1 -3
  146. package/packages/player-ui/src/PlayerUI.tsx +35 -68
  147. package/packages/player-ui/src/RemainingTime.tsx +2 -2
  148. package/packages/player-ui/src/Seekbar.tsx +18 -110
  149. package/packages/player-ui/src/Seeking.ts +16 -57
  150. package/packages/player-ui/src/Subtitles.tsx +2 -2
  151. package/packages/player-ui/src/index.ts +0 -1
  152. package/packages/player-ui/src/mocks.ts +8 -32
  153. package/packages/player-ui/src/timeUtils.ts +3 -3
  154. package/packages/player-ui/src/types.ts +3 -9
  155. package/packages/router/README.md +0 -1
  156. package/packages/router/src/Route.tsx +27 -61
  157. package/packages/router/src/Router.tsx +14 -63
  158. package/packages/router/src/history.ts +1 -8
  159. package/packages/router/src/index.ts +1 -1
  160. package/packages/router/src/utils.ts +4 -9
  161. package/packages/sass-utils/src/linear-gradient.scss +4 -9
  162. package/packages/sass-utils/src/scale.1080.scss +1 -3
  163. package/packages/sass-utils/src/scale.720.scss +1 -1
  164. package/packages/time/README.md +1 -4
  165. package/packages/time/src/Time.ts +13 -35
  166. package/packages/time/src/constants.ts +0 -1
  167. package/packages/toast/src/ToastService.tsx +5 -16
  168. package/packages/types-bigscreen-jsx/README.md +4 -5
  169. package/packages/types-bigscreen-jsx/index.d.ts +67 -72
  170. package/packages/utils/README.md +0 -27
  171. package/packages/utils/src/elementUtils.ts +0 -25
  172. package/packages/utils/src/index.ts +0 -8
  173. package/packages/utils/src/scaledImage.ts +3 -6
  174. package/packages/utils/src/textUtils.ts +14 -46
  175. package/packages/utils/src/wait.ts +1 -3
  176. package/packages/utils/src/xhr/xhrSend.ts +1 -3
  177. package/packages/utils/src/xhr/xhrSendRetry.ts +1 -3
  178. package/packages/zapping/src/ChannelZapping.ts +0 -9
  179. package/packages/zapping/src/Zapping.tsx +0 -10
  180. package/ci/is_ci_job_skippable.sh +0 -153
  181. package/packages/analytics/README.md +0 -8
  182. package/packages/analytics/src/A.ts +0 -1
  183. package/packages/analytics/src/Analytics.ts +0 -1
  184. package/packages/analytics/src/analyticsOnScroll.ts +0 -1
  185. package/packages/analytics/src/clients/ConsoleAnalytics/ConsoleAnalytics.ts +0 -1
  186. package/packages/analytics/src/clients/ConsoleAnalytics/index.ts +0 -1
  187. package/packages/analytics/src/clients/GoogleAnalytics/GoogleAnalytics.ts +0 -196
  188. package/packages/analytics/src/clients/GoogleAnalytics/constants.ts +0 -126
  189. package/packages/analytics/src/clients/GoogleAnalytics/getUrl.ts +0 -17
  190. package/packages/analytics/src/clients/GoogleAnalytics/index.ts +0 -2
  191. package/packages/analytics/src/clients/GoogleAnalytics/interface.ts +0 -82
  192. package/packages/analytics/src/clients/GoogleAnalytics/mapPayload.ts +0 -51
  193. package/packages/analytics/src/clients/GoogleAnalytics/prepareBody.ts +0 -14
  194. package/packages/analytics/src/clients/TealiumAnalytics/TealiumAnalytics.ts +0 -181
  195. package/packages/analytics/src/clients/TealiumAnalytics/constants.ts +0 -106
  196. package/packages/analytics/src/clients/TealiumAnalytics/findForLanguage.ts +0 -9
  197. package/packages/analytics/src/clients/TealiumAnalytics/index.ts +0 -4
  198. package/packages/analytics/src/clients/TealiumAnalytics/interface.ts +0 -35
  199. package/packages/analytics/src/clients/TealiumAnalytics/mappers/__mocks__/mediaPayload.ts +0 -72
  200. package/packages/analytics/src/clients/TealiumAnalytics/mappers/helper.ts +0 -36
  201. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapAppError.ts +0 -13
  202. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapAppOpen.ts +0 -13
  203. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapFavoriteAdd.ts +0 -11
  204. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapFavoriteRemove.ts +0 -11
  205. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapPlayerClose.ts +0 -15
  206. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapPlayerOpen.ts +0 -15
  207. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapSceneView.ts +0 -18
  208. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapSearch.ts +0 -18
  209. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapSearchFailed.ts +0 -8
  210. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapSearchSuccess.ts +0 -8
  211. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapVideoPause.ts +0 -15
  212. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapVideoProgress.ts +0 -18
  213. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapVideoResume.ts +0 -15
  214. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapVideoStart.ts +0 -15
  215. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapVideoStop.ts +0 -15
  216. package/packages/analytics/src/clients/TealiumAnalytics/types.ts +0 -161
  217. package/packages/analytics/src/clients/TwentyFourIQ/TwentyFourIQClient.ts +0 -107
  218. package/packages/analytics/src/clients/TwentyFourIQ/constants.ts +0 -111
  219. package/packages/analytics/src/clients/TwentyFourIQ/helper.ts +0 -34
  220. package/packages/analytics/src/clients/TwentyFourIQ/index.ts +0 -2
  221. package/packages/analytics/src/clients/TwentyFourIQ/interface.ts +0 -34
  222. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapAdEvent.ts +0 -20
  223. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapBase.ts +0 -24
  224. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapBuffering.ts +0 -15
  225. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapPlayerClose.ts +0 -25
  226. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapPlayerOpen.ts +0 -17
  227. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapSceneView.ts +0 -15
  228. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapScroll.ts +0 -17
  229. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoComplete.ts +0 -22
  230. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoPause.ts +0 -25
  231. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoProgress.ts +0 -25
  232. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoStart.ts +0 -34
  233. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoStop.ts +0 -32
  234. package/packages/analytics/src/clients/TwentyFourIQ/types.ts +0 -132
  235. package/packages/analytics/src/constants.ts +0 -1
  236. package/packages/analytics/src/index.ts +0 -3
  237. package/packages/analytics/src/interface.ts +0 -1
  238. package/packages/analytics/src/utils/generateSessionId.ts +0 -8
  239. package/packages/device/src/driver/index.firetv.ts +0 -1
  240. package/packages/device/src/driver/index.smartcast.tv.ts +0 -1
  241. package/packages/driver-base/src/types/AdInfo.ts +0 -5
  242. package/packages/driver-base/src/types/InAppPurchase.ts +0 -25
  243. package/packages/driver-firetv/src/DeviceFireTV.ts +0 -91
  244. package/packages/driver-firetv/src/__mocks__/javaScriptBridge.ts +0 -45
  245. package/packages/driver-firetv/src/index.ts +0 -1
  246. package/packages/driver-firetv/src/types.ts +0 -1
  247. package/packages/driver-smartcast/src/DeviceSmartCast.ts +0 -394
  248. package/packages/driver-smartcast/src/__mocks__/api.ts +0 -79
  249. package/packages/driver-smartcast/src/index.ts +0 -1
  250. package/packages/driver-smartcast/src/keymap.ts +0 -9
  251. package/packages/driver-smartcast/src/types.ts +0 -111
  252. package/packages/focus/src/hasFocus.ts +0 -36
  253. package/packages/jsx/src/test-utils/keyup.ts +0 -27
  254. package/packages/keyboard/src/WhitelabelKeyboard/layouts/arabic.ts +0 -27
  255. package/packages/keyboard/src/WhitelabelKeyboard/layouts/burmese.ts +0 -27
  256. package/packages/keyboard/src/WhitelabelKeyboard/layouts/dari.ts +0 -28
  257. package/packages/keyboard/src/WhitelabelKeyboard/layouts/korean.ts +0 -26
  258. package/packages/keyboard/src/WhitelabelKeyboard/layouts/pashto.ts +0 -27
  259. package/packages/keyboard/src/WhitelabelKeyboard/layouts/persian.ts +0 -27
  260. package/packages/keyboard/src/WhitelabelKeyboard/layouts/russian.ts +0 -27
  261. package/packages/keyboard/src/WhitelabelKeyboard/layouts/spanish.ts +0 -26
  262. package/packages/keyboard/src/WhitelabelKeyboard/layouts/tibetan.ts +0 -26
  263. package/packages/keyboard/src/WhitelabelKeyboard/layouts/turkish.ts +0 -26
  264. package/packages/keyboard/src/WhitelabelKeyboard/layouts/ukrainian.ts +0 -27
  265. package/packages/keyboard/src/WhitelabelKeyboard/layouts/urdu.ts +0 -26
  266. package/packages/keyboard/src/utils/setInputSelectionRange.ts +0 -10
  267. package/packages/l10n/src/date/de.ts +0 -97
  268. package/packages/l10n/src/date/es.ts +0 -71
  269. package/packages/l10n/src/date/fr.ts +0 -94
  270. package/packages/l10n/src/date/he.ts +0 -101
  271. package/packages/time/src/adapters/24iMediaTimeApi.ts +0 -47
  272. package/packages/time/src/services/24iMediaTimeApi/24iMediaTimeApi.ts +0 -43
  273. package/packages/time/src/services/24iMediaTimeApi/index.ts +0 -6
  274. package/packages/utils/src/forceReflow.ts +0 -14
  275. package/packages/utils/src/keyPress/index.ts +0 -6
  276. package/packages/utils/src/keyPress/keyPressSimulator.ts +0 -74
  277. package/packages/utils/src/keyPress/simulateKeyPress.ts +0 -25
  278. package/utils/release/release.ts +0 -156
@@ -1,126 +0,0 @@
1
- import { AnalyticsTriggers } from '@24i/appstage-shared-analytics';
2
- import { GAEventsNames } from './interface';
3
-
4
- const stringParameter = 'ep';
5
- const numericParameter = 'epn';
6
-
7
- export const GOOGLE_ANALYTICS_TRIGGERS = [
8
- AnalyticsTriggers.SCENE_VIEW,
9
- AnalyticsTriggers.APP_CLOSE,
10
- // player triggers
11
- AnalyticsTriggers.PLAYBACK_10,
12
- AnalyticsTriggers.PLAYBACK_25,
13
- AnalyticsTriggers.PLAYBACK_50,
14
- AnalyticsTriggers.PLAYBACK_75,
15
- AnalyticsTriggers.PLAYBACK_90,
16
- AnalyticsTriggers.PLAYBACK_PAUSE,
17
- AnalyticsTriggers.PLAYBACK_START,
18
- AnalyticsTriggers.PLAYBACK_STOP,
19
- AnalyticsTriggers.PLAYER_CLOSE,
20
- AnalyticsTriggers.PLAYER_OPEN,
21
- AnalyticsTriggers.HEARTBEAT_5,
22
- // scroll triggers
23
- AnalyticsTriggers.SCROLL_25,
24
- AnalyticsTriggers.SCROLL_50,
25
- AnalyticsTriggers.SCROLL_75,
26
- AnalyticsTriggers.SCROLL_90,
27
- // additional triggers
28
- AnalyticsTriggers.APP_ERROR,
29
- AnalyticsTriggers.FAVORITE_ADD,
30
- AnalyticsTriggers.FAVORITE_REMOVE,
31
- AnalyticsTriggers.SEARCH,
32
- AnalyticsTriggers.RATE_CONTENT,
33
- // ads triggers
34
- AnalyticsTriggers.AD_BUFFERING,
35
- AnalyticsTriggers.AD_COMPLETE,
36
- AnalyticsTriggers.AD_ERROR,
37
- AnalyticsTriggers.AD_SKIPPED,
38
- AnalyticsTriggers.AD_START,
39
- AnalyticsTriggers.AD_STOP,
40
- // user triggers
41
- AnalyticsTriggers.LOGIN,
42
- AnalyticsTriggers.LOGOUT,
43
- AnalyticsTriggers.SIGN_UP,
44
- // purchases
45
- AnalyticsTriggers.PURCHASE_CANCEL,
46
- AnalyticsTriggers.PURCHASE_COMPLETE,
47
- AnalyticsTriggers.PURCHASE_START,
48
-
49
- ] as const;
50
-
51
- export const TRIGGER_NAME_TO_GA_EVENTS: Record<
52
- typeof GOOGLE_ANALYTICS_TRIGGERS[number], GAEventsNames[]
53
- > = {
54
- // App
55
- [AnalyticsTriggers.APP_CLOSE]: ['close_player_session', 'video_progress'],
56
-
57
- // Playback
58
- [AnalyticsTriggers.HEARTBEAT_5]: ['video_progress'],
59
- [AnalyticsTriggers.PLAYBACK_10]: ['video_progress'],
60
- [AnalyticsTriggers.PLAYBACK_25]: ['video_progress'],
61
- [AnalyticsTriggers.PLAYBACK_50]: ['video_progress'],
62
- [AnalyticsTriggers.PLAYBACK_75]: ['video_progress'],
63
- [AnalyticsTriggers.PLAYBACK_90]: ['video_complete'],
64
- [AnalyticsTriggers.PLAYBACK_PAUSE]: ['video_progress'],
65
- [AnalyticsTriggers.PLAYBACK_START]: ['video_start'],
66
- [AnalyticsTriggers.PLAYBACK_STOP]: ['video_progress'],
67
-
68
- // Player
69
- [AnalyticsTriggers.PLAYER_CLOSE]: ['close_player_session', 'video_progress'],
70
- [AnalyticsTriggers.PLAYER_OPEN]: ['open_player_session'],
71
-
72
- // Scenes
73
- [AnalyticsTriggers.SCENE_VIEW]: ['page_view'],
74
-
75
- // Scrolling in scene
76
- [AnalyticsTriggers.SCROLL_25]: ['scroll'],
77
- [AnalyticsTriggers.SCROLL_50]: ['scroll'],
78
- [AnalyticsTriggers.SCROLL_75]: ['scroll'],
79
- [AnalyticsTriggers.SCROLL_90]: ['scroll'],
80
-
81
- // purchases
82
- [AnalyticsTriggers.PURCHASE_CANCEL]: [],
83
- [AnalyticsTriggers.PURCHASE_COMPLETE]: [],
84
- [AnalyticsTriggers.PURCHASE_START]: [],
85
-
86
- // additional triggers
87
- [AnalyticsTriggers.APP_ERROR]: ['app_exception'],
88
- [AnalyticsTriggers.FAVORITE_ADD]: ['favorite_add'],
89
- [AnalyticsTriggers.FAVORITE_REMOVE]: ['favorite_remove'],
90
- [AnalyticsTriggers.SEARCH]: ['search'],
91
- [AnalyticsTriggers.RATE_CONTENT]: ['rate_content'],
92
-
93
- // ads triggers
94
- [AnalyticsTriggers.AD_BUFFERING]: ['ad_buffering'],
95
- [AnalyticsTriggers.AD_COMPLETE]: ['ad_complete'],
96
- [AnalyticsTriggers.AD_ERROR]: ['ad_error'],
97
- [AnalyticsTriggers.AD_SKIPPED]: ['ad_skipped'],
98
- [AnalyticsTriggers.AD_START]: ['ad_start'],
99
- [AnalyticsTriggers.AD_STOP]: ['ad_stop'],
100
-
101
- // user triggers
102
- [AnalyticsTriggers.LOGIN]: ['login'],
103
- [AnalyticsTriggers.LOGOUT]: ['logout'],
104
- [AnalyticsTriggers.SIGN_UP]: ['sign_up'],
105
- };
106
-
107
- export const gtagPayloadParams: Record<string, string> = {
108
- contentType: `${stringParameter}.content_type`,
109
- itemId: `${stringParameter}.video_asset_id`,
110
- episodeNumber: `${numericParameter}.video_episode_number`,
111
- seasonNumber: `${numericParameter}.video_season_number`,
112
- currentTime: `${numericParameter}.video_current_time`,
113
- duration: `${numericParameter}.video_duration`,
114
- percent: `${numericParameter}.video_percent`,
115
- provider: `${stringParameter}.video_provider`,
116
- title: `${stringParameter}.video_title`,
117
- seriesTitle: `${stringParameter}.video_series_title`,
118
- url: `${stringParameter}.video_url`,
119
- assetId: `${stringParameter}.video_asset_id`,
120
- externalId: `${stringParameter}.video_external_id`,
121
- channelNumber: `${numericParameter}.channel_number`,
122
- channelTitle: `${stringParameter}.channel_title`,
123
- method: `${stringParameter}.method`,
124
- searchTerm: `${stringParameter}.search_term`,
125
- message: `${stringParameter}.message`,
126
- };
@@ -1,17 +0,0 @@
1
- import { ConstantUrlParams, EventUrlParams } from './interface';
2
-
3
- const TRANSPORT_URL = 'https://www.google-analytics.com/g/collect?';
4
- // You can use the following URL for debugging if the events are not getting collected.
5
- // const TRANSPORT_URL = 'https://www.google-analytics.com/debug/g/collec?';
6
-
7
- export const getUrl = (id: string, params: ConstantUrlParams & EventUrlParams) => {
8
- const urlParts = [
9
- TRANSPORT_URL,
10
- `v=2&tid=${id}`,
11
- ];
12
- (Object.keys(params) as (keyof (ConstantUrlParams & EventUrlParams))[])
13
- .forEach((paramName: keyof (ConstantUrlParams & EventUrlParams)) => {
14
- urlParts.push(`&${paramName}=${encodeURIComponent(params[paramName])}`);
15
- });
16
- return urlParts.join('');
17
- };
@@ -1,2 +0,0 @@
1
- export { GoogleAnalytics } from './GoogleAnalytics';
2
- export { GOOGLE_ANALYTICS_TRIGGERS } from './constants';
@@ -1,82 +0,0 @@
1
- export type GAEventsNames = (
2
- | 'app_close' // When the playback is active at the time the app or website is closing.
3
- | 'page_view' // Each time the page loads or the browser history state is changed
4
- | 'scroll' // The first time a user reaches the bottom of each page
5
- | 'video_progress' // When the video progresses past 10%, 25%, 50%, and 75% duration time
6
- | 'video_start' // When the video starts playing
7
- | 'video_complete' // When the video ends
8
- | 'open_player_session' // When the user opens a player scene and the player is initiated
9
- | 'close_player_session' // When the user exits the player scene with initiated player
10
- | 'select_content' // When a user has selected content
11
- | 'login' // When a user logs in
12
- | 'logout' // When a user logs in
13
- | 'sign_up' // When a user has signed up Allows you to see which methods of signup are popular
14
- | 'search' // When a user searches your content
15
- | 'purchase' // When a user completes a purchase
16
- | 'share' // When a user has shared content
17
- | 'favorite_add' // When a user add asset to favorites
18
- | 'favorite_remove' // When a user remove asset froms favorites
19
- | 'user_engagement' // Periodically, while the app is in the foreground
20
- | 'ad_buffering' // When advertisement is buffering
21
- | 'ad_complete' // When advertisement has been completed
22
- | 'ad_error' // When advertisement has an error
23
- | 'ad_skipped' // When user skipped current advertisement
24
- | 'ad_start' // When advertisement has been started
25
- | 'ad_stop' // When advertisement has been stopped
26
- | 'app_exception' // When application throws an error
27
- | 'rate_content' // When user rates an asset
28
- );
29
-
30
- export type QueuedEvent = {
31
- name: string,
32
- params: Record<string, any>,
33
- urlParams: EventUrlParams,
34
- };
35
-
36
- export type SessionInfo = {
37
- appVersion: string,
38
- manufacturer: string,
39
- platform: string,
40
- language: string,
41
- resolution: string,
42
- referrer: string,
43
- engagementTime: number | undefined,
44
- sessionStarted: boolean,
45
- isAuthenticated: '0' | '1',
46
- firstEvent: boolean,
47
- firstVisit: boolean,
48
- };
49
-
50
- export type ConstantUrlParams = {
51
- /** Client ID (UUIv4 string) */
52
- cid: string,
53
- /** Session ID (random number) */
54
- sid: number,
55
- /** Session engagement 0 for first event of session, 1 otherwise */
56
- seg: number,
57
- /** Session count */
58
- sct: number,
59
- /** Random page hash */
60
- _p: string,
61
- /** Device manufacturer e.g. 'Samsung' */
62
- 'up.device_manufacturer': string,
63
- /** Platform e.g. 'Tizen' */
64
- 'up.device_platform': string,
65
- /** Platform version e.g. '5.0' */
66
- 'up.device_platform_version': string,
67
- /** Version of application 'v1.0.0' */
68
- 'up.app_version': string,
69
- };
70
-
71
- export type EventUrlParams = {
72
- /** Language iso639-1 */
73
- ul: string,
74
- /** Device resolution as WIDTHxHEIGHT */
75
- sr: string,
76
- /** Page hash route */
77
- dl: string,
78
- /** Page title */
79
- dt: string,
80
- /** Page referrer hash route */
81
- dr: string,
82
- };
@@ -1,51 +0,0 @@
1
- import type { AnalyticsEventsNames, AnyPayload } from '../../interface';
2
- import type { EventUrlParams, GAEventsNames } from './interface';
3
- import { gtagPayloadParams } from './constants';
4
-
5
- const map: Record<string, string> = {
6
- language: 'ul',
7
- resolution: 'sr',
8
- referrer: 'dr',
9
- sceneId: 'dl',
10
- sceneName: 'dt',
11
- isAuthenticated: 'up.is_authenticated',
12
- };
13
-
14
- export const mapEventParamsToUrlParams = (eventParams: Record<string, any>)
15
- : EventUrlParams => {
16
- const urlParams = {};
17
- Object.entries(eventParams).forEach(([key]) => {
18
- if (map[key]) {
19
- Object.assign(urlParams, {
20
- [map[key]]: eventParams[key] || '',
21
- });
22
- }
23
- });
24
- return urlParams as EventUrlParams;
25
- };
26
-
27
- export const mapPayload = (
28
- eventName: GAEventsNames,
29
- triggerName: AnalyticsEventsNames,
30
- payload: AnyPayload,
31
- ) => {
32
- const pageParams = triggerName === 'scene_view' ? {
33
- ...(payload.firstEvent && { _ee: 1 }),
34
- ...(payload.firstVisit && { _fv: 1 }),
35
- ...(payload.sessionStarted && { _ss: 1 }),
36
- } : {};
37
- const gtagPayload: Record<string, any> = {
38
- 'ep.event_trigger': triggerName,
39
- _et: payload.engagementTime ?? 0,
40
- ...pageParams,
41
- };
42
- if (eventName === 'scroll') {
43
- gtagPayload['epn.percent_scrolled'] = parseInt(triggerName.split('_')[1], 10);
44
- }
45
- Object.keys(payload).forEach((key: keyof typeof payload) => {
46
- if (gtagPayloadParams[key] !== undefined) {
47
- gtagPayload[gtagPayloadParams[key]] = payload[key];
48
- }
49
- });
50
- return gtagPayload;
51
- };
@@ -1,14 +0,0 @@
1
- import { QueuedEvent } from './interface';
2
-
3
- export const prepareBody = (events: QueuedEvent[]) => {
4
- const eventLines = events.map((event: QueuedEvent) => {
5
- const eventParams = [
6
- `en=${event.name}`,
7
- ];
8
- Object.keys(event.params).forEach((paramName) => {
9
- eventParams.push(`${paramName}=${encodeURIComponent(event.params[paramName])}`);
10
- });
11
- return eventParams.join('&');
12
- });
13
- return eventLines.join('\r\n');
14
- };
@@ -1,181 +0,0 @@
1
- import { Storage } from '@24i/bigscreen-sdk/storage';
2
- import { MINUTE_IN_MS } from '@24i/bigscreen-sdk/utils/timeConstants';
3
- import { createTimeout } from '@24i/bigscreen-sdk/utils/timers';
4
- import { AnalyticsTriggers } from '@24i/appstage-shared-analytics';
5
- import { findForLanguage } from './findForLanguage';
6
- import {
7
- BIGSCREEN_APP_TYPE,
8
- BIGSCREEN_OTT_TYPE,
9
- BIGSCREEN_PLATFORM_SHORT,
10
- BIGSCREEN_PLATFORM_TYPE,
11
- TRIGGER_NAME_TO_TEALIUM_EVENTS,
12
- } from './constants';
13
- import { EVENTS_MAPPING } from './interface';
14
- import type { AnalyticsClient, AnyPayload } from '../../interface';
15
- import type {
16
- TeaStaticCoreResult,
17
- Payload,
18
- TealiumAnalyticsConfiguration,
19
- TeaResult,
20
- TealiumDataMapper,
21
- CustomMappers,
22
- TeaDynamicCoreResult,
23
- } from './types';
24
-
25
- // eslint-disable-next-line no-magic-numbers
26
- const SESSION_TIMEOUT = 30 * MINUTE_IN_MS;
27
- const TEALIUM_SESSION_COUNTER = 'tealium_session_counter';
28
- const TEALIUM_BASE_URL = 'https://collect.tealiumiq.com/event';
29
-
30
- const DEFAULT_PAYLOAD: TeaStaticCoreResult = {
31
- tealium_account: '',
32
- tealium_profile: '',
33
- entity: '',
34
- platform_short: BIGSCREEN_PLATFORM_SHORT,
35
- platform_type: BIGSCREEN_PLATFORM_TYPE,
36
- app_type: BIGSCREEN_APP_TYPE,
37
- ott_type: BIGSCREEN_OTT_TYPE,
38
- app_id: '',
39
- } as const;
40
-
41
- export class TealiumAnalytics implements AnalyticsClient {
42
- name = 'TealiumAnalytics';
43
-
44
- constantPayload: TeaStaticCoreResult = DEFAULT_PAYLOAD;
45
-
46
- sessionTimeout = createTimeout();
47
-
48
- isSessionActive = false;
49
-
50
- sessionStartSent = false;
51
-
52
- baseUrl: string = '';
53
-
54
- customMappers: CustomMappers | undefined = undefined;
55
-
56
- constructor(private config: TealiumAnalyticsConfiguration, private appVersion: string = '') {
57
- this.init();
58
- }
59
-
60
- async init() {
61
- this.baseUrl = this.config.baseURL || TEALIUM_BASE_URL;
62
- this.prepareDatasetPayload();
63
- }
64
-
65
- prepareDatasetPayload() {
66
- if (!this.config) {
67
- console.warn(`[${this.name}] prepareDatasetPayload missing configuration`);
68
- return;
69
- }
70
- const {
71
- account,
72
- profile,
73
- environment,
74
- datasource,
75
- customMappers,
76
- dataMapper = {} as TealiumDataMapper,
77
- } = this.config;
78
- const { entity, platformShort, platformType, appType } = dataMapper;
79
- this.customMappers = customMappers;
80
- this.constantPayload = {
81
- tealium_account: account,
82
- tealium_profile: profile,
83
- tealium_environment: environment,
84
- entity,
85
- ...(datasource && { tealium_datasource: datasource }),
86
- platform_short: platformShort ?? BIGSCREEN_PLATFORM_SHORT,
87
- platform_type: platformType ?? BIGSCREEN_PLATFORM_TYPE,
88
- app_type: appType ?? BIGSCREEN_APP_TYPE,
89
- ott_type: BIGSCREEN_OTT_TYPE,
90
- app_id: `${entity} ${appType ?? BIGSCREEN_APP_TYPE} : ${this.appVersion}`,
91
- };
92
- }
93
-
94
- getDynamicPayload({ language: payloadLanguage }: AnyPayload): TeaDynamicCoreResult {
95
- if (!this.config || !this.config.dataMapper) {
96
- console.warn(`[${this.name}] getDynamicPayload missing configuration`);
97
- return {
98
- language: '', language_service: '', property_id: '', short_language_service: '',
99
- };
100
- }
101
- const { dataMapper } = this.config;
102
- const { entity, languageMap, propertyIdsMap, shortLanguageServiceMap } = dataMapper;
103
- const tealiumLanguage = findForLanguage(languageMap, payloadLanguage) || '';
104
- return {
105
- language: tealiumLanguage || '',
106
- language_service: `${entity} ${tealiumLanguage}`,
107
- property_id: findForLanguage(propertyIdsMap, payloadLanguage) || '',
108
- short_language_service: findForLanguage(shortLanguageServiceMap, payloadLanguage) || '',
109
- };
110
- }
111
-
112
- async startSession() {
113
- const sessionNumber = parseInt(
114
- await Storage.getItem(TEALIUM_SESSION_COUNTER) ?? '0', 10,
115
- ) + 1;
116
- await Storage.setItem(TEALIUM_SESSION_COUNTER, sessionNumber.toString());
117
- this.isSessionActive = true;
118
- this.setSessionTimeout();
119
- }
120
-
121
- setSessionTimeout() {
122
- this.sessionTimeout.set(() => {
123
- this.isSessionActive = false;
124
- this.sessionStartSent = false;
125
- }, SESSION_TIMEOUT);
126
- }
127
-
128
- async sendEvent(eventBody: TeaResult) {
129
- try {
130
- await fetch(this.baseUrl, {
131
- method: 'POST',
132
- body: JSON.stringify(eventBody),
133
- headers: {
134
- Accept: 'application/json',
135
- 'Content-Type': 'application/json;charset=UTF-8',
136
- },
137
- });
138
- } catch (error) {
139
- console.warn(`[${this.name}] Error sendEvent: `, error);
140
- }
141
- }
142
-
143
- async onEvent(triggerName: AnalyticsTriggers, payload: AnyPayload): Promise<void> {
144
- const events = TRIGGER_NAME_TO_TEALIUM_EVENTS[triggerName];
145
- if (this.isSessionActive) {
146
- this.setSessionTimeout();
147
- } else {
148
- await this.startSession();
149
- }
150
- if (!events) return;
151
- await Promise.all(
152
- events.map(async (event) => {
153
- const mappingFunction = this.customMappers && this.customMappers[event]
154
- ? this.customMappers[event]
155
- : EVENTS_MAPPING[event];
156
- try {
157
- if (!mappingFunction) {
158
- throw Error(`Missing mapping function for "${event}"`);
159
- }
160
- const eventBody = {
161
- ...this.constantPayload,
162
- ...this.getDynamicPayload(payload),
163
- ...mappingFunction(triggerName, payload as Payload, this.config),
164
- };
165
- const filteredEventBody: TeaResult = Object.entries(eventBody).reduce(
166
- (acc: any, [key, value]) => {
167
- if (value != null && value !== '') {
168
- acc[key] = value;
169
- }
170
- return acc;
171
- },
172
- {} as TeaResult,
173
- );
174
- if (eventBody) await this.sendEvent(filteredEventBody);
175
- } catch (e) {
176
- console.warn(`[${this.name}] Error onEvent: `, e);
177
- }
178
- }),
179
- );
180
- }
181
- }
@@ -1,106 +0,0 @@
1
- import { AnalyticsTriggers } from '@24i/appstage-shared-analytics';
2
-
3
- export const BIGSCREEN_OTT_TYPE = 'SmartTV';
4
-
5
- export const BIGSCREEN_APP_TYPE = 'html5';
6
-
7
- export const BIGSCREEN_PLATFORM_SHORT = 'o';
8
-
9
- export const BIGSCREEN_PLATFORM_TYPE = 'ott';
10
-
11
- export const TEALIUM_TRIGGERS = [
12
- // App
13
- AnalyticsTriggers.APP_OPEN,
14
- AnalyticsTriggers.APP_CLOSE,
15
- AnalyticsTriggers.APP_ERROR,
16
-
17
- // Scenes
18
- AnalyticsTriggers.SCENE_VIEW,
19
-
20
- // Search
21
- AnalyticsTriggers.SEARCH,
22
-
23
- // Playback
24
- AnalyticsTriggers.PLAYBACK_10,
25
- AnalyticsTriggers.PLAYBACK_50,
26
- AnalyticsTriggers.PLAYBACK_90,
27
- AnalyticsTriggers.PLAYBACK_PAUSE,
28
- AnalyticsTriggers.PLAYBACK_UNPAUSE,
29
- AnalyticsTriggers.PLAYBACK_START,
30
- AnalyticsTriggers.PLAYBACK_STOP,
31
-
32
- // Player
33
- AnalyticsTriggers.PLAYER_CLOSE,
34
- AnalyticsTriggers.PLAYER_OPEN,
35
-
36
- // Favorites
37
- AnalyticsTriggers.FAVORITE_ADD,
38
- AnalyticsTriggers.FAVORITE_REMOVE,
39
-
40
- AnalyticsTriggers.SELECT_CONTENT,
41
- AnalyticsTriggers.SEARCH_SUCCESS,
42
- AnalyticsTriggers.SEARCH_FAILED,
43
- ];
44
-
45
- export const AppEvents = {
46
- [AnalyticsTriggers.APP_OPEN]: '',
47
- [AnalyticsTriggers.SCENE_VIEW]: '',
48
- [AnalyticsTriggers.PLAYBACK_10]: 'media_milestone_10_video',
49
- [AnalyticsTriggers.PLAYBACK_50]: 'media_milestone_50_video',
50
- [AnalyticsTriggers.PLAYBACK_90]: 'media_milestone_90_video',
51
- [AnalyticsTriggers.PLAYBACK_STOP]: 'video_stop',
52
- [AnalyticsTriggers.PLAYBACK_PAUSE]: 'video_pause',
53
- [AnalyticsTriggers.PLAYBACK_UNPAUSE]: 'video_resume',
54
- [AnalyticsTriggers.PLAYBACK_START]: 'video_play',
55
- [AnalyticsTriggers.PLAYER_OPEN]: 'player_open',
56
- [AnalyticsTriggers.PLAYER_CLOSE]: 'player_x',
57
- [AnalyticsTriggers.FAVORITE_ADD]: 'subscribe_to_fav',
58
- [AnalyticsTriggers.FAVORITE_REMOVE]: 'subscribe_to_fav',
59
- [AnalyticsTriggers.APP_ERROR]: 'app_events',
60
- [AnalyticsTriggers.SELECT_CONTENT]: 'app_events',
61
- [AnalyticsTriggers.SEARCH_SUCCESS]: 'search_success',
62
- [AnalyticsTriggers.SEARCH_FAILED]: 'search_fail',
63
- } as const;
64
-
65
- export enum EVENTS {
66
- APP_OPEN = 'app_open',
67
- SCENE_VIEW = 'scene_view',
68
- VIDEO_PROGRESS = 'video_progress',
69
- VIDEO_START = 'video_start',
70
- VIDEO_STOP = 'video_stop',
71
- VIDEO_PAUSE = 'video_pause',
72
- VIDEO_UNPAUSE = 'video_unpause',
73
- PLAYER_CLOSE = 'player_close',
74
- PLAYER_OPEN = 'player_open',
75
- SEARCH_SUCCESS = 'search_success',
76
- SEARCH_FAILED = 'search_failed',
77
- FAVORITE_ADD = 'favorite_add',
78
- FAVORITE_REMOVE = 'favorite_remove',
79
- APP_ERROR = 'app_error',
80
- }
81
-
82
- export enum TrackEventType {
83
- VIEW = 'view',
84
- ACTIVITY = 'activity',
85
- }
86
-
87
- export const TRIGGER_NAME_TO_TEALIUM_EVENTS: { [K in AnalyticsTriggers]?: EVENTS[]; } = {
88
- [AnalyticsTriggers.APP_OPEN]: [EVENTS.APP_OPEN],
89
- [AnalyticsTriggers.SCENE_VIEW]: [EVENTS.SCENE_VIEW],
90
- [AnalyticsTriggers.PLAYBACK_10]: [EVENTS.VIDEO_PROGRESS],
91
- [AnalyticsTriggers.PLAYBACK_50]: [EVENTS.VIDEO_PROGRESS],
92
- [AnalyticsTriggers.PLAYBACK_90]: [EVENTS.VIDEO_PROGRESS],
93
- [AnalyticsTriggers.PLAYBACK_PAUSE]: [EVENTS.VIDEO_PAUSE],
94
- [AnalyticsTriggers.PLAYBACK_UNPAUSE]: [EVENTS.VIDEO_UNPAUSE],
95
- [AnalyticsTriggers.PLAYBACK_START]: [EVENTS.VIDEO_START],
96
- [AnalyticsTriggers.PLAYBACK_STOP]: [EVENTS.VIDEO_STOP],
97
- [AnalyticsTriggers.PLAYER_CLOSE]: [EVENTS.PLAYER_CLOSE],
98
- [AnalyticsTriggers.PLAYER_OPEN]: [EVENTS.PLAYER_OPEN],
99
- [AnalyticsTriggers.APP_CLOSE]: [EVENTS.VIDEO_STOP, EVENTS.PLAYER_CLOSE],
100
- [AnalyticsTriggers.APP_ERROR]: [EVENTS.APP_ERROR],
101
- [AnalyticsTriggers.FAVORITE_ADD]: [EVENTS.FAVORITE_ADD],
102
- [AnalyticsTriggers.FAVORITE_REMOVE]: [EVENTS.FAVORITE_REMOVE],
103
- [AnalyticsTriggers.SEARCH]: [EVENTS.SEARCH_SUCCESS, EVENTS.SEARCH_FAILED],
104
- };
105
-
106
- export const HUNDRED_PERCENT = 100;
@@ -1,9 +0,0 @@
1
- import { LanguageMapper } from '@24i/bigscreen-sdk/analytics/TealiumAnalytics';
2
-
3
- export const findForLanguage = (
4
- languageMapper: LanguageMapper = {},
5
- language: string = '',
6
- ) => {
7
- const languageKey = Object.keys(languageMapper).find((key) => key === language);
8
- return languageKey ? languageMapper[languageKey] : null;
9
- };
@@ -1,4 +0,0 @@
1
- export { TealiumAnalytics } from './TealiumAnalytics';
2
- export { findForLanguage } from './findForLanguage';
3
- export * from './constants';
4
- export * from './types';
@@ -1,35 +0,0 @@
1
- import {
2
- EVENTS,
3
- } from './constants';
4
- import { mapSceneView } from './mappers/mapSceneView';
5
- import { mapVideoProgress } from './mappers/mapVideoProgress';
6
- import { mapVideoStop } from './mappers/mapVideoStop';
7
- import { mapPlayerOpen } from './mappers/mapPlayerOpen';
8
- import { mapPlayerClose } from './mappers/mapPlayerClose';
9
- import { mapVideoStart } from './mappers/mapVideoStart';
10
- import { mapVideoPause } from './mappers/mapVideoPause';
11
- import { mapFavoriteAdd } from './mappers/mapFavoriteAdd';
12
- import { mapFavoriteRemove } from './mappers/mapFavoriteRemove';
13
- import { mapVideoResume } from './mappers/mapVideoResume';
14
- import { mapSearchSuccess } from './mappers/mapSearchSuccess';
15
- import { mapSearchFailed } from './mappers/mapSearchFailed';
16
- import { mapAppError } from './mappers/mapAppError';
17
- import { mapAppOpen } from './mappers/mapAppOpen';
18
- import { EventMappingFunction } from './types';
19
-
20
- export const EVENTS_MAPPING: Record<EVENTS, EventMappingFunction> = {
21
- [EVENTS.APP_OPEN]: mapAppOpen,
22
- [EVENTS.SCENE_VIEW]: mapSceneView,
23
- [EVENTS.PLAYER_OPEN]: mapPlayerOpen,
24
- [EVENTS.PLAYER_CLOSE]: mapPlayerClose,
25
- [EVENTS.VIDEO_START]: mapVideoStart,
26
- [EVENTS.VIDEO_STOP]: mapVideoStop,
27
- [EVENTS.VIDEO_PROGRESS]: mapVideoProgress,
28
- [EVENTS.VIDEO_PAUSE]: mapVideoPause,
29
- [EVENTS.VIDEO_UNPAUSE]: mapVideoResume,
30
- [EVENTS.FAVORITE_ADD]: mapFavoriteAdd,
31
- [EVENTS.FAVORITE_REMOVE]: mapFavoriteRemove,
32
- [EVENTS.SEARCH_SUCCESS]: mapSearchSuccess,
33
- [EVENTS.SEARCH_FAILED]: mapSearchFailed,
34
- [EVENTS.APP_ERROR]: mapAppError,
35
- };