@gcorevideo/player 2.19.15 → 2.20.3

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 (338) hide show
  1. package/assets/level-selector/list.ejs +1 -1
  2. package/dist/core.js +2 -2
  3. package/dist/index.css +966 -966
  4. package/dist/index.js +884 -627
  5. package/dist/player.d.ts +536 -122
  6. package/dist/plugins/index.css +1160 -1160
  7. package/dist/plugins/index.js +2006 -1725
  8. package/docs/api/player.audioselector.md +1 -251
  9. package/docs/api/player.bigmutebutton.md +1 -156
  10. package/docs/api/player.clapprnerdstats.md +12 -259
  11. package/docs/api/player.clapprstats.exportmetrics.md +4 -0
  12. package/docs/api/player.clapprstats.md +7 -223
  13. package/docs/api/player.clapprstats.setupdatemetrics.md +2 -0
  14. package/docs/api/player.clicktopause.md +5 -113
  15. package/docs/api/player.clipsplugin.gettext.md +9 -0
  16. package/docs/api/player.clipsplugin.md +10 -94
  17. package/docs/api/{player.playbackrate.setselectedrate.md → player.clipspluginsettings.md} +18 -10
  18. package/docs/api/player.clipspluginsettings.text.md +13 -0
  19. package/docs/api/player.contextmenu._constructor_.md +6 -3
  20. package/docs/api/player.contextmenu.md +13 -256
  21. package/docs/api/player.contextmenupluginsettings.label.md +11 -0
  22. package/docs/api/player.contextmenupluginsettings.md +93 -0
  23. package/docs/api/player.contextmenupluginsettings.preventshowcontextmenu.md +11 -0
  24. package/docs/api/player.contextmenupluginsettings.url.md +11 -0
  25. package/docs/api/player.dvrcontrols.md +5 -1
  26. package/docs/api/player.errorscreen.attributes.md +3 -0
  27. package/docs/api/player.errorscreen.bindevents.md +3 -0
  28. package/docs/api/player.errorscreen.container.md +3 -0
  29. package/docs/api/player.errorscreen.hide.md +3 -0
  30. package/docs/api/player.errorscreen.md +25 -0
  31. package/docs/api/player.errorscreen.name.md +3 -0
  32. package/docs/api/player.errorscreen.render.md +3 -0
  33. package/docs/api/player.errorscreen.show.md +3 -0
  34. package/docs/api/player.errorscreen.supportedversion.md +3 -0
  35. package/docs/api/player.errorscreen.template.md +3 -0
  36. package/docs/api/player.errorscreen.unbindevents.md +3 -0
  37. package/docs/api/player.favicon._constructor_.md +3 -0
  38. package/docs/api/player.favicon.bindevents.md +3 -0
  39. package/docs/api/player.favicon.configure.md +3 -0
  40. package/docs/api/player.favicon.destroy.md +3 -0
  41. package/docs/api/player.favicon.disable.md +3 -0
  42. package/docs/api/player.favicon.md +18 -1
  43. package/docs/api/player.favicon.name.md +3 -0
  44. package/docs/api/player.favicon.supportedversion.md +3 -0
  45. package/docs/api/player.gearevents.md +4 -1
  46. package/docs/api/player.googleanalytics._constructor_.md +3 -0
  47. package/docs/api/player.googleanalytics.addeventlisteners.md +3 -0
  48. package/docs/api/player.googleanalytics.embedscript.md +3 -0
  49. package/docs/api/player.googleanalytics.md +42 -1
  50. package/docs/api/player.googleanalytics.name.md +3 -0
  51. package/docs/api/player.googleanalytics.onbufferfull.md +3 -0
  52. package/docs/api/player.googleanalytics.onbuffering.md +3 -0
  53. package/docs/api/player.googleanalytics.ondvr.md +3 -0
  54. package/docs/api/player.googleanalytics.onended.md +3 -0
  55. package/docs/api/player.googleanalytics.onerror.md +3 -0
  56. package/docs/api/player.googleanalytics.onfullscreen.md +3 -0
  57. package/docs/api/player.googleanalytics.onhd.md +3 -0
  58. package/docs/api/player.googleanalytics.onpause.md +3 -0
  59. package/docs/api/player.googleanalytics.onplay.md +3 -0
  60. package/docs/api/player.googleanalytics.onready.md +3 -0
  61. package/docs/api/player.googleanalytics.onseek.md +3 -0
  62. package/docs/api/player.googleanalytics.onstop.md +3 -0
  63. package/docs/api/player.googleanalytics.onvolumechanged.md +3 -0
  64. package/docs/api/player.googleanalytics.push.md +3 -0
  65. package/docs/api/player.googleanalytics.supportedversion.md +3 -0
  66. package/docs/api/{player.clapprstats.name.md → player.initeventdata.event.md} +3 -3
  67. package/docs/api/player.initeventdata.md +60 -0
  68. package/docs/api/player.logo._constructor_.md +3 -0
  69. package/docs/api/player.logo.attributes.md +3 -0
  70. package/docs/api/player.logo.bindevents.md +3 -0
  71. package/docs/api/player.logo.md +20 -1
  72. package/docs/api/player.logo.name.md +3 -0
  73. package/docs/api/player.logo.render.md +3 -0
  74. package/docs/api/player.logo.stoplistening.md +3 -0
  75. package/docs/api/player.logo.supportedversion.md +3 -0
  76. package/docs/api/player.logo.template.md +3 -0
  77. package/docs/api/player.md +149 -18
  78. package/docs/api/player.mediacontrolelement.md +1 -1
  79. package/docs/api/player.multicamera.md +2 -0
  80. package/docs/api/player.pictureinpicture.md +9 -197
  81. package/docs/api/player.playbackrate.md +10 -314
  82. package/docs/api/player.seektime.attributes.md +3 -0
  83. package/docs/api/player.seektime.bindevents.md +3 -0
  84. package/docs/api/player.seektime.durationshown.md +3 -0
  85. package/docs/api/player.seektime.getseektime.md +3 -0
  86. package/docs/api/player.seektime.islivestreamwithdvr.md +3 -0
  87. package/docs/api/player.seektime.md +31 -0
  88. package/docs/api/player.seektime.mediacontrol.md +3 -0
  89. package/docs/api/player.seektime.mediacontrolcontainer.md +3 -0
  90. package/docs/api/player.seektime.name.md +3 -0
  91. package/docs/api/player.seektime.render.md +3 -0
  92. package/docs/api/player.seektime.shouldbevisible.md +3 -0
  93. package/docs/api/player.seektime.supportedversion.md +3 -0
  94. package/docs/api/player.seektime.template.md +3 -0
  95. package/docs/api/player.seektime.update.md +3 -0
  96. package/docs/api/player.share.md +2 -0
  97. package/docs/api/player.skiptime.md +2 -0
  98. package/docs/api/{player.clapprstats.destroy.md → player.stalleventdata.count.md} +5 -7
  99. package/docs/api/{player.bigmutebutton.template.md → player.stalleventdata.event.md} +3 -3
  100. package/docs/api/player.stalleventdata.md +117 -0
  101. package/docs/api/{player.audioselector.onshowlevelselectmenu.md → player.stalleventdata.time.md} +5 -7
  102. package/docs/api/{player.clapprstats.starttimers.md → player.stalleventdata.total_ms.md} +5 -7
  103. package/docs/api/{player.audioselector.template.md → player.starteventdata.event.md} +3 -3
  104. package/docs/api/player.starteventdata.md +60 -0
  105. package/docs/api/{player.clapprstats._defaultreport.md → player.telemetry._constructor_.md} +7 -9
  106. package/docs/api/player.telemetry.md +146 -0
  107. package/docs/api/{player.clapprnerdstats.name.md → player.telemetry.name.md} +4 -2
  108. package/docs/api/{player.clapprstats.supportedversion.md → player.telemetry.supportedversion.md} +4 -2
  109. package/docs/api/player.telemetryevent.md +100 -0
  110. package/docs/api/player.telemetryeventdata.md +18 -0
  111. package/docs/api/player.telemetrypluginsettings.md +60 -0
  112. package/docs/api/{player.audioselector.bindevents.md → player.telemetrypluginsettings.send.md} +5 -7
  113. package/docs/api/{player.audioselector.reload.md → player.telemetryrecord.md} +8 -6
  114. package/docs/api/player.thumbnails.md +21 -139
  115. package/docs/api/player.thumbnailspluginsettings.md +23 -0
  116. package/docs/api/player.volumefade.md +1 -93
  117. package/docs/api/{player.audioselector.name.md → player.watcheventdata.event.md} +3 -3
  118. package/docs/api/player.watcheventdata.md +60 -0
  119. package/lib/index.plugins.d.ts +2 -3
  120. package/lib/index.plugins.d.ts.map +1 -1
  121. package/lib/index.plugins.js +2 -3
  122. package/lib/playback/hls-playback/HlsPlayback.js +1 -1
  123. package/lib/plugins/audio-selector/AudioSelector.d.ts +28 -6
  124. package/lib/plugins/audio-selector/AudioSelector.d.ts.map +1 -1
  125. package/lib/plugins/audio-selector/AudioSelector.js +52 -22
  126. package/lib/plugins/big-mute-button/BigMuteButton.d.ts +18 -2
  127. package/lib/plugins/big-mute-button/BigMuteButton.d.ts.map +1 -1
  128. package/lib/plugins/big-mute-button/BigMuteButton.js +21 -16
  129. package/lib/plugins/bottom-gear/BottomGear.d.ts +1 -0
  130. package/lib/plugins/bottom-gear/BottomGear.d.ts.map +1 -1
  131. package/lib/plugins/bottom-gear/BottomGear.js +1 -0
  132. package/lib/plugins/clappr-nerd-stats/ClapprNerdStats.d.ts +38 -5
  133. package/lib/plugins/clappr-nerd-stats/ClapprNerdStats.d.ts.map +1 -1
  134. package/lib/plugins/clappr-nerd-stats/ClapprNerdStats.js +63 -17
  135. package/lib/plugins/clappr-stats/ClapprStats.d.ts +31 -8
  136. package/lib/plugins/clappr-stats/ClapprStats.d.ts.map +1 -1
  137. package/lib/plugins/clappr-stats/ClapprStats.js +24 -0
  138. package/lib/plugins/clappr-stats/types.d.ts +12 -0
  139. package/lib/plugins/clappr-stats/types.d.ts.map +1 -1
  140. package/lib/plugins/clappr-stats/types.js +3 -0
  141. package/lib/plugins/click-to-pause/ClickToPause.d.ts +13 -1
  142. package/lib/plugins/click-to-pause/ClickToPause.d.ts.map +1 -1
  143. package/lib/plugins/click-to-pause/ClickToPause.js +14 -4
  144. package/lib/plugins/clips/Clips.d.ts +34 -2
  145. package/lib/plugins/clips/Clips.d.ts.map +1 -1
  146. package/lib/plugins/clips/Clips.js +51 -22
  147. package/lib/plugins/context-menu/ContextMenu.d.ts +40 -13
  148. package/lib/plugins/context-menu/ContextMenu.d.ts.map +1 -1
  149. package/lib/plugins/context-menu/ContextMenu.js +48 -36
  150. package/lib/plugins/dvr-controls/DvrControls.d.ts +5 -4
  151. package/lib/plugins/dvr-controls/DvrControls.d.ts.map +1 -1
  152. package/lib/plugins/dvr-controls/DvrControls.js +15 -29
  153. package/lib/plugins/error-screen/ErrorScreen.d.ts +4 -0
  154. package/lib/plugins/error-screen/ErrorScreen.d.ts.map +1 -1
  155. package/lib/plugins/error-screen/ErrorScreen.js +4 -0
  156. package/lib/plugins/favicon/Favicon.d.ts +4 -0
  157. package/lib/plugins/favicon/Favicon.d.ts.map +1 -1
  158. package/lib/plugins/favicon/Favicon.js +4 -0
  159. package/lib/plugins/google-analytics/GoogleAnalytics.d.ts +4 -0
  160. package/lib/plugins/google-analytics/GoogleAnalytics.d.ts.map +1 -1
  161. package/lib/plugins/google-analytics/GoogleAnalytics.js +5 -1
  162. package/lib/plugins/index.d.ts +2 -4
  163. package/lib/plugins/index.d.ts.map +1 -1
  164. package/lib/plugins/index.js +2 -4
  165. package/lib/plugins/logo/Logo.d.ts +4 -0
  166. package/lib/plugins/logo/Logo.d.ts.map +1 -1
  167. package/lib/plugins/logo/Logo.js +4 -0
  168. package/lib/plugins/media-control/MediaControl.d.ts +1 -1
  169. package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
  170. package/lib/plugins/media-control/MediaControl.js +3 -1
  171. package/lib/plugins/multi-camera/MultiCamera.d.ts +3 -0
  172. package/lib/plugins/multi-camera/MultiCamera.d.ts.map +1 -1
  173. package/lib/plugins/multi-camera/MultiCamera.js +3 -0
  174. package/lib/plugins/picture-in-picture/PictureInPicture.d.ts +32 -4
  175. package/lib/plugins/picture-in-picture/PictureInPicture.d.ts.map +1 -1
  176. package/lib/plugins/picture-in-picture/PictureInPicture.js +30 -2
  177. package/lib/plugins/playback-rate/PlaybackRate.d.ts +47 -14
  178. package/lib/plugins/playback-rate/PlaybackRate.d.ts.map +1 -1
  179. package/lib/plugins/playback-rate/PlaybackRate.js +38 -9
  180. package/lib/plugins/seek-time/SeekTime.d.ts +4 -0
  181. package/lib/plugins/seek-time/SeekTime.d.ts.map +1 -1
  182. package/lib/plugins/seek-time/SeekTime.js +5 -1
  183. package/lib/plugins/share/Share.d.ts +3 -0
  184. package/lib/plugins/share/Share.d.ts.map +1 -1
  185. package/lib/plugins/share/Share.js +3 -0
  186. package/lib/plugins/skip-time/SkipTime.d.ts +3 -0
  187. package/lib/plugins/skip-time/SkipTime.d.ts.map +1 -1
  188. package/lib/plugins/skip-time/SkipTime.js +3 -0
  189. package/lib/plugins/statistics/Statistics.d.ts +38 -3
  190. package/lib/plugins/statistics/Statistics.d.ts.map +1 -1
  191. package/lib/plugins/statistics/Statistics.js +51 -9
  192. package/lib/plugins/telemetry/Telemetry.d.ts +153 -0
  193. package/lib/plugins/telemetry/Telemetry.d.ts.map +1 -0
  194. package/lib/plugins/telemetry/Telemetry.js +181 -0
  195. package/lib/plugins/thumbnails/Thumbnails.d.ts +48 -3
  196. package/lib/plugins/thumbnails/Thumbnails.d.ts.map +1 -1
  197. package/lib/plugins/thumbnails/Thumbnails.js +52 -18
  198. package/lib/plugins/volume-fade/VolumeFade.d.ts +8 -1
  199. package/lib/plugins/volume-fade/VolumeFade.d.ts.map +1 -1
  200. package/lib/plugins/volume-fade/VolumeFade.js +9 -1
  201. package/package.json +1 -1
  202. package/src/index.plugins.ts +2 -3
  203. package/src/playback/hls-playback/HlsPlayback.ts +1 -1
  204. package/src/plugins/audio-selector/AudioSelector.ts +227 -154
  205. package/src/plugins/big-mute-button/BigMuteButton.ts +100 -79
  206. package/src/plugins/bottom-gear/BottomGear.ts +1 -0
  207. package/src/plugins/clappr-nerd-stats/ClapprNerdStats.ts +240 -173
  208. package/src/plugins/clappr-stats/ClapprStats.ts +32 -8
  209. package/src/plugins/clappr-stats/types.ts +13 -0
  210. package/src/plugins/click-to-pause/ClickToPause.ts +47 -36
  211. package/src/plugins/clips/Clips.ts +127 -71
  212. package/src/plugins/context-menu/ContextMenu.ts +105 -76
  213. package/src/plugins/dvr-controls/DvrControls.ts +15 -31
  214. package/src/plugins/error-screen/ErrorScreen.ts +4 -0
  215. package/src/plugins/favicon/Favicon.ts +4 -0
  216. package/src/plugins/google-analytics/GoogleAnalytics.ts +5 -1
  217. package/src/plugins/index.ts +2 -4
  218. package/src/plugins/level-selector/__tests__/LevelSelector.test.ts +47 -26
  219. package/src/plugins/level-selector/__tests__/__snapshots__/LevelSelector.test.ts.snap +18 -18
  220. package/src/plugins/logo/Logo.ts +4 -0
  221. package/src/plugins/media-control/MediaControl.ts +4 -1
  222. package/src/plugins/multi-camera/MultiCamera.ts +3 -0
  223. package/src/plugins/picture-in-picture/PictureInPicture.ts +35 -7
  224. package/src/plugins/playback-rate/PlaybackRate.ts +53 -24
  225. package/src/plugins/seek-time/SeekTime.ts +5 -1
  226. package/src/plugins/share/Share.ts +3 -0
  227. package/src/plugins/skip-time/SkipTime.ts +3 -0
  228. package/src/plugins/telemetry/Telemetry.ts +317 -0
  229. package/src/plugins/thumbnails/Thumbnails.ts +268 -194
  230. package/src/plugins/volume-fade/VolumeFade.ts +10 -2
  231. package/temp/player.api.json +2457 -5257
  232. package/tsconfig.tsbuildinfo +1 -1
  233. package/docs/api/player.audioselector.attributes.md +0 -17
  234. package/docs/api/player.audioselector.events.md +0 -17
  235. package/docs/api/player.audioselector.hideselecttrackmenu.md +0 -18
  236. package/docs/api/player.audioselector.render.md +0 -18
  237. package/docs/api/player.audioselector.supportedversion.md +0 -16
  238. package/docs/api/player.audioselector.togglecontextmenu.md +0 -18
  239. package/docs/api/player.audioselector.unbindevents.md +0 -18
  240. package/docs/api/player.audioselector.version.md +0 -14
  241. package/docs/api/player.bigmutebutton.bindevents.md +0 -18
  242. package/docs/api/player.bigmutebutton.events.md +0 -17
  243. package/docs/api/player.bigmutebutton.name.md +0 -14
  244. package/docs/api/player.bigmutebutton.render.md +0 -18
  245. package/docs/api/player.bigmutebutton.supportedversion.md +0 -16
  246. package/docs/api/player.clapprnerdstats.attributes.md +0 -17
  247. package/docs/api/player.clapprnerdstats.bindevents.md +0 -18
  248. package/docs/api/player.clapprnerdstats.events.md +0 -18
  249. package/docs/api/player.clapprnerdstats.playerheight.md +0 -14
  250. package/docs/api/player.clapprnerdstats.playerwidth.md +0 -14
  251. package/docs/api/player.clapprnerdstats.render.md +0 -18
  252. package/docs/api/player.clapprnerdstats.statsboxelem.md +0 -14
  253. package/docs/api/player.clapprnerdstats.statsboxwidththreshold.md +0 -14
  254. package/docs/api/player.clapprnerdstats.supportedversion.md +0 -16
  255. package/docs/api/player.clapprnerdstats.template.md +0 -14
  256. package/docs/api/player.clapprstats._buildreport.md +0 -18
  257. package/docs/api/player.clapprstats._playbackname.md +0 -14
  258. package/docs/api/player.clapprstats._playbacktype.md +0 -14
  259. package/docs/api/player.clapprstats.bindevents.md +0 -18
  260. package/docs/api/player.clapprstats.onfirstplaying.md +0 -18
  261. package/docs/api/player.clapprstats.playafterpause.md +0 -18
  262. package/docs/api/player.clapprstats.stopreporting.md +0 -18
  263. package/docs/api/player.clicktopause.bindevents.md +0 -15
  264. package/docs/api/player.clicktopause.config.md +0 -11
  265. package/docs/api/player.clicktopause.name.md +0 -11
  266. package/docs/api/player.clicktopause.supportedversion.md +0 -13
  267. package/docs/api/player.clipsplugin.attributes.md +0 -13
  268. package/docs/api/player.clipsplugin.bindevents.md +0 -15
  269. package/docs/api/player.clipsplugin.makesvg.md +0 -49
  270. package/docs/api/player.clipsplugin.name.md +0 -11
  271. package/docs/api/player.clipsplugin.unbindevents.md +0 -15
  272. package/docs/api/player.contextmenu.attributes.md +0 -13
  273. package/docs/api/player.contextmenu.bindevents.md +0 -15
  274. package/docs/api/player.contextmenu.destroy.md +0 -15
  275. package/docs/api/player.contextmenu.events.md +0 -13
  276. package/docs/api/player.contextmenu.exposeversion.md +0 -14
  277. package/docs/api/player.contextmenu.label.md +0 -11
  278. package/docs/api/player.contextmenu.mediacontrol.md +0 -11
  279. package/docs/api/player.contextmenu.name.md +0 -11
  280. package/docs/api/player.contextmenu.render.md +0 -15
  281. package/docs/api/player.contextmenu.supportedversion.md +0 -13
  282. package/docs/api/player.contextmenu.template.md +0 -11
  283. package/docs/api/player.contextmenu.url.md +0 -11
  284. package/docs/api/player.disablecontrols.bindevents.md +0 -15
  285. package/docs/api/player.disablecontrols.container.md +0 -11
  286. package/docs/api/player.disablecontrols.md +0 -138
  287. package/docs/api/player.disablecontrols.name.md +0 -11
  288. package/docs/api/player.disablecontrols.supportedversion.md +0 -13
  289. package/docs/api/player.disablecontrols.unbindevents.md +0 -15
  290. package/docs/api/player.pictureinpicture.bindevents.md +0 -15
  291. package/docs/api/player.pictureinpicture.events.md +0 -13
  292. package/docs/api/player.pictureinpicture.exitpictureinpicture.md +0 -15
  293. package/docs/api/player.pictureinpicture.name.md +0 -11
  294. package/docs/api/player.pictureinpicture.render.md +0 -15
  295. package/docs/api/player.pictureinpicture.requestpictureinpicture.md +0 -15
  296. package/docs/api/player.pictureinpicture.supportedversion.md +0 -13
  297. package/docs/api/player.pictureinpicture.togglepictureinpicture.md +0 -15
  298. package/docs/api/player.pictureinpicture.version.md +0 -11
  299. package/docs/api/player.pictureinpicture.videoelement.md +0 -11
  300. package/docs/api/player.playbackrate.attributes.md +0 -14
  301. package/docs/api/player.playbackrate.bindevents.md +0 -15
  302. package/docs/api/player.playbackrate.events.md +0 -15
  303. package/docs/api/player.playbackrate.gettitle.md +0 -15
  304. package/docs/api/player.playbackrate.goback.md +0 -15
  305. package/docs/api/player.playbackrate.highlightcurrentrate.md +0 -15
  306. package/docs/api/player.playbackrate.name.md +0 -11
  307. package/docs/api/player.playbackrate.onfinishad.md +0 -15
  308. package/docs/api/player.playbackrate.onplay.md +0 -15
  309. package/docs/api/player.playbackrate.onrateselect.md +0 -49
  310. package/docs/api/player.playbackrate.onshowmenu.md +0 -15
  311. package/docs/api/player.playbackrate.onstartad.md +0 -15
  312. package/docs/api/player.playbackrate.onstop.md +0 -15
  313. package/docs/api/player.playbackrate.reload.md +0 -15
  314. package/docs/api/player.playbackrate.render.md +0 -15
  315. package/docs/api/player.playbackrate.supportedversion.md +0 -13
  316. package/docs/api/player.playbackrate.template.md +0 -11
  317. package/docs/api/player.playbackrate.unbindevents.md +0 -15
  318. package/docs/api/player.playbackrate.updateplaybackrate.md +0 -49
  319. package/docs/api/player.pluginsettings.md +0 -13
  320. package/docs/api/player.statistics._constructor_.md +0 -47
  321. package/docs/api/player.statistics.bindevents.md +0 -15
  322. package/docs/api/player.statistics.md +0 -141
  323. package/docs/api/player.statistics.name.md +0 -11
  324. package/docs/api/player.statistics.supportedversion.md +0 -13
  325. package/docs/api/player.thumbnails.attributes.md +0 -13
  326. package/docs/api/player.thumbnails.bindevents.md +0 -15
  327. package/docs/api/player.thumbnails.name.md +0 -11
  328. package/docs/api/player.thumbnails.settext.md +0 -49
  329. package/docs/api/player.thumbnails.supportedversion.md +0 -13
  330. package/docs/api/player.thumbnails.template.md +0 -11
  331. package/docs/api/player.volumefade.bindevents.md +0 -18
  332. package/docs/api/player.volumefade.name.md +0 -14
  333. package/docs/api/player.volumefade.unbindevents.md +0 -18
  334. package/src/plugins/disable-controls/DisableControls.ts +0 -81
  335. package/src/plugins/ga-events/GaEvents.js +0 -395
  336. package/src/plugins/ga-events/ga-tracking.js +0 -46
  337. package/src/plugins/statistics/Statistics.ts +0 -207
  338. /package/src/plugins/{statistics → telemetry}/Statistics copy.xts +0 -0
@@ -2,41 +2,63 @@ import { UICorePlugin } from '@clappr/core';
2
2
  import { AudioTrackLoadedData, AudioTrackSwitchedData, Events as HlsEvents } from 'hls.js';
3
3
  import '../../../assets/audio-selector/style.scss';
4
4
  /**
5
+ * Adds an audio track selector to the media control UI.
5
6
  * @beta
6
7
  */
7
8
  export declare class AudioSelector extends UICorePlugin {
8
9
  private selectedTrackId;
9
10
  private currentTrack;
10
11
  private tracks;
12
+ /**
13
+ * @internal
14
+ */
11
15
  get name(): string;
16
+ /**
17
+ * @internal
18
+ */
12
19
  get supportedVersion(): {
13
20
  min: string;
14
21
  };
22
+ /**
23
+ * @internal
24
+ */
15
25
  static get version(): string;
16
- get template(): any;
26
+ private static readonly template;
27
+ /**
28
+ * @internal
29
+ */
17
30
  get attributes(): {
18
31
  class: string;
19
32
  'data-track-selector': string;
20
33
  };
34
+ /**
35
+ * @internal
36
+ */
21
37
  get events(): {
22
38
  'click [data-track-selector-select]': string;
23
39
  'click [data-track-selector-button]': string;
24
40
  };
41
+ /**
42
+ * @internal
43
+ */
25
44
  bindEvents(): void;
26
- unBindEvents(): void;
45
+ private unBindEvents;
27
46
  private bindPlaybackEvents;
28
47
  private setupAudioTrackListeners;
29
48
  private onStop;
30
- reload(): void;
49
+ private reload;
31
50
  private shouldRender;
51
+ /**
52
+ * @internal
53
+ */
32
54
  render(): this;
33
55
  private fillTracks;
34
56
  private findTrackBy;
35
57
  private onTrackSelect;
36
58
  private setIndexTrack;
37
- onShowLevelSelectMenu(): void;
38
- hideSelectTrackMenu(): void;
39
- toggleContextMenu(): void;
59
+ private onShowLevelSelectMenu;
60
+ private hideSelectTrackMenu;
61
+ private toggleContextMenu;
40
62
  private buttonElement;
41
63
  private buttonElementText;
42
64
  private trackElement;
@@ -1 +1 @@
1
- {"version":3,"file":"AudioSelector.d.ts","sourceRoot":"","sources":["../../../src/plugins/audio-selector/AudioSelector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAY,MAAM,cAAc,CAAC;AAC9D,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EAEtB,MAAM,IAAI,SAAS,EACpB,MAAM,QAAQ,CAAC;AAKhB,OAAO,2CAA2C,CAAC;AA6BnD;;GAEG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,eAAe,CAAqB;IAE5C,OAAO,CAAC,YAAY,CAA+B;IAEnD,OAAO,CAAC,MAAM,CAAwB;IAEtC,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,MAAM,KAAK,OAAO,WAEjB;IAED,IAAI,QAAQ,QAEX;IAED,IAAa,UAAU;;;MAKtB;IAED,IAAa,MAAM;;;MAKlB;IAEQ,UAAU;IAOnB,YAAY;IAWZ,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,wBAAwB;IA2DhC,OAAO,CAAC,MAAM;IAEd,MAAM;IAMN,OAAO,CAAC,YAAY;IAmBX,MAAM;IAwBf,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,aAAa;IAiBrB,qBAAqB;IAIrB,mBAAmB;IAInB,iBAAiB;IAIjB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,QAAQ;IAYhB,gBAAgB;IAIhB,OAAO,CAAC,UAAU;IAYlB,kBAAkB,CAAC,CAAC,EAAE,SAAS,CAAC,oBAAoB,EAAE,IAAI,EAAE,sBAAsB,GAAG,oBAAoB;IAuBzG,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,eAAe;IASvB,qBAAqB;CAatB"}
1
+ {"version":3,"file":"AudioSelector.d.ts","sourceRoot":"","sources":["../../../src/plugins/audio-selector/AudioSelector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAY,MAAM,cAAc,CAAA;AAC7D,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EAEtB,MAAM,IAAI,SAAS,EACpB,MAAM,QAAQ,CAAA;AAKf,OAAO,2CAA2C,CAAA;AAiClD;;;GAGG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAG7C,OAAO,CAAC,eAAe,CAAoB;IAE3C,OAAO,CAAC,YAAY,CAA8B;IAElD,OAAO,CAAC,MAAM,CAAuB;IAErC;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED;;OAEG;IACH,IAAa,MAAM;;;MAKlB;IAED;;OAEG;IACM,UAAU;IAoBnB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,wBAAwB;IA4EhC,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,YAAY;IAoBpB;;OAEG;IACM,MAAM;IA2Bf,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,QAAQ;IAYhB,gBAAgB;IAIhB,OAAO,CAAC,UAAU;IAYlB,kBAAkB,CAChB,CAAC,EAAE,SAAS,CAAC,oBAAoB,EACjC,IAAI,EAAE,sBAAsB,GAAG,oBAAoB;IAwBrD,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,eAAe;IASvB,qBAAqB;CAatB"}
@@ -4,42 +4,62 @@ import { CLAPPR_VERSION } from '../../build.js';
4
4
  import pluginHtml from '../../../assets/audio-selector/track-selector.ejs';
5
5
  import '../../../assets/audio-selector/style.scss';
6
6
  import audioArrow from '../../../assets/icons/old/quality-arrow.svg';
7
+ import assert from 'assert';
7
8
  const VERSION = '0.0.1';
8
9
  // const T = 'plugins.audio_selector';
9
10
  const AUTO = 0;
10
11
  /**
12
+ * Adds an audio track selector to the media control UI.
11
13
  * @beta
12
14
  */
13
15
  export class AudioSelector extends UICorePlugin {
16
+ // TODO
14
17
  selectedTrackId;
15
18
  currentTrack = null;
16
19
  tracks = [];
20
+ /**
21
+ * @internal
22
+ */
17
23
  get name() {
18
- return 'media_control_audio_selector';
24
+ return 'audio_selector';
19
25
  }
26
+ /**
27
+ * @internal
28
+ */
20
29
  get supportedVersion() {
21
30
  return { min: CLAPPR_VERSION };
22
31
  }
32
+ /**
33
+ * @internal
34
+ */
23
35
  static get version() {
24
36
  return VERSION;
25
37
  }
26
- get template() {
27
- return template(pluginHtml);
28
- }
38
+ static template = template(pluginHtml);
39
+ /**
40
+ * @internal
41
+ */
29
42
  get attributes() {
30
43
  return {
31
- 'class': this.name,
32
- 'data-track-selector': ''
44
+ class: this.name,
45
+ 'data-track-selector': '',
33
46
  };
34
47
  }
48
+ /**
49
+ * @internal
50
+ */
35
51
  get events() {
36
52
  return {
37
53
  'click [data-track-selector-select]': 'onTrackSelect',
38
- 'click [data-track-selector-button]': 'onShowLevelSelectMenu'
54
+ 'click [data-track-selector-button]': 'onShowLevelSelectMenu',
39
55
  };
40
56
  }
57
+ /**
58
+ * @internal
59
+ */
41
60
  bindEvents() {
42
61
  this.listenTo(this.core, Events.CORE_READY, this.bindPlaybackEvents);
62
+ // TODO CORE_ACTIVE_CONTAINER_CHANGED
43
63
  this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.reload);
44
64
  this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.render);
45
65
  this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_HIDE, this.hideSelectTrackMenu);
@@ -80,12 +100,12 @@ export class AudioSelector extends UICorePlugin {
80
100
  if (defaultTrack) {
81
101
  this.currentTrack = {
82
102
  id: defaultTrack.id,
83
- label: defaultTrack.name
103
+ label: defaultTrack.name,
84
104
  };
85
105
  }
86
- this.fillTracks(data.audioTracks.map(p => ({
106
+ this.fillTracks(data.audioTracks.map((p) => ({
87
107
  id: p.id,
88
- label: p.name
108
+ label: p.name,
89
109
  })), defaultTrack?.id);
90
110
  });
91
111
  currentPlayback._hls.on(HlsEvents.AUDIO_TRACK_SWITCHING, this.startTrackSwitch.bind(this));
@@ -131,23 +151,30 @@ export class AudioSelector extends UICorePlugin {
131
151
  if (!currentPlayback) {
132
152
  return false;
133
153
  }
134
- const { audioTracks } = (currentPlayback.activePlayback._hls || currentPlayback.$el.get(0));
154
+ const { audioTracks } = currentPlayback.activePlayback._hls || currentPlayback.$el.get(0);
135
155
  this.tracks = audioTracks;
136
156
  // Only care if we have at least 2 to choose from
137
157
  return this.tracks && this.tracks.length > 1;
138
158
  }
159
+ /**
160
+ * @internal
161
+ */
139
162
  render() {
140
- if (this.shouldRender()) {
141
- this.$el.html(this.template({ 'tracks': this.tracks, 'title': this.getTitle() }));
142
- if (Object.prototype.hasOwnProperty.call(this.core.mediaControl, '$audioTracksSelector') &&
143
- this.core.mediaControl.$audioTracksSelector.length > 0) {
144
- this.core.mediaControl.$audioTracksSelector.append(this.el);
145
- }
146
- this.highlightCurrentTrack();
163
+ if (!this.shouldRender()) {
164
+ return this;
147
165
  }
148
- if (Object.prototype.hasOwnProperty.call(this.core.mediaControl, '$audioTracksSelector') &&
149
- this.core.mediaControl.$audioTracksSelector.find('span.audio-arrow').length > 0) {
150
- this.core.mediaControl.$audioTracksSelector.find('span.audio-arrow').append(audioArrow);
166
+ const mediaControl = this.core.getPlugin('media_control');
167
+ assert(mediaControl, 'media_control plugin is required');
168
+ this.$el.html(AudioSelector.template({ tracks: this.tracks, title: this.getTitle() }));
169
+ const ats = mediaControl.getElement('audioTracksSelector');
170
+ if (!(ats && ats.length > 0)) {
171
+ return this;
172
+ }
173
+ ats.append(this.el);
174
+ this.highlightCurrentTrack();
175
+ const aa = ats.find('audioArrow');
176
+ if (aa.length > 0) {
177
+ aa.append(audioArrow);
151
178
  }
152
179
  return this;
153
180
  }
@@ -199,9 +226,11 @@ export class AudioSelector extends UICorePlugin {
199
226
  this.toggleContextMenu();
200
227
  }
201
228
  hideSelectTrackMenu() {
229
+ ;
202
230
  this.$('.audio_selector ul').hide();
203
231
  }
204
232
  toggleContextMenu() {
233
+ ;
205
234
  this.$('.audio_selector ul').toggle();
206
235
  }
207
236
  buttonElement() {
@@ -211,7 +240,8 @@ export class AudioSelector extends UICorePlugin {
211
240
  return this.$('.audio_selector button .audio-text');
212
241
  }
213
242
  trackElement(id) {
214
- return this.$('.audio_selector ul a' + (id !== undefined ? '[data-track-selector-select="' + id + '"]' : '')).parent();
243
+ return this.$('.audio_selector ul a' +
244
+ (id !== undefined ? '[data-track-selector-select="' + id + '"]' : '')).parent();
215
245
  }
216
246
  getTitle() {
217
247
  if (!this.tracks) {
@@ -1,6 +1,8 @@
1
1
  import { UICorePlugin } from '@clappr/core';
2
2
  import '../../../assets/big-mute-button/big-mute-button.scss';
3
3
  /**
4
+ * Displays a big mute button over the video when it's muted.
5
+ * Once pressed, it unmutes the video.
4
6
  * @beta
5
7
  */
6
8
  export declare class BigMuteButton extends UICorePlugin {
@@ -8,17 +10,28 @@ export declare class BigMuteButton extends UICorePlugin {
8
10
  private _adIsPlaying;
9
11
  private $bigMuteBtnContainer;
10
12
  private $bigMuteButton;
13
+ /**
14
+ * @internal
15
+ */
11
16
  get name(): string;
17
+ /**
18
+ * @internal
19
+ */
12
20
  get supportedVersion(): {
13
21
  min: string;
14
22
  };
15
- get template(): any;
23
+ private static readonly template;
24
+ /**
25
+ * @internal
26
+ */
16
27
  get events(): {
17
28
  'click .big-mute-icon': string;
18
29
  'click .big-mute-icon-wrapper': string;
19
30
  };
31
+ /**
32
+ * @internal
33
+ */
20
34
  bindEvents(): void;
21
- private unBindEvents;
22
35
  private onCoreReady;
23
36
  private onContainerVolume;
24
37
  private onContainerStart;
@@ -27,6 +40,9 @@ export declare class BigMuteButton extends UICorePlugin {
27
40
  private onStartAd;
28
41
  private onFinishAd;
29
42
  private shouldRender;
43
+ /**
44
+ * @internal
45
+ */
30
46
  render(): this;
31
47
  private hideBigMuteBtn;
32
48
  private showBigMuteBtn;
@@ -1 +1 @@
1
- {"version":3,"file":"BigMuteButton.d.ts","sourceRoot":"","sources":["../../../src/plugins/big-mute-button/BigMuteButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,YAAY,EAAS,MAAM,cAAc,CAAC;AAQrE,OAAO,sDAAsD,CAAC;AAI9D;;GAEG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,qBAAqB,CAAS;IAEtC,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,oBAAoB,CAA4B;IAExD,OAAO,CAAC,cAAc,CAA4B;IAElD,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,IAAI,QAAQ,QAEX;IAED,IAAa,MAAM;;;MAKlB;IAEQ,UAAU;IAWnB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,YAAY;IAmBX,MAAM;IAqBf,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,qBAAqB;CAS9B"}
1
+ {"version":3,"file":"BigMuteButton.d.ts","sourceRoot":"","sources":["../../../src/plugins/big-mute-button/BigMuteButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,YAAY,EAAS,MAAM,cAAc,CAAA;AAQpE,OAAO,sDAAsD,CAAA;AAM7D;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,qBAAqB,CAAQ;IAErC,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO,CAAC,oBAAoB,CAA2B;IAEvD,OAAO,CAAC,cAAc,CAA2B;IAEjD;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD;;OAEG;IACH,IAAa,MAAM;;;MAKlB;IAED;;OAEG;IACM,UAAU;IAenB,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,YAAY;IAmBpB;;OAEG;IACM,MAAM;IAuBf,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,qBAAqB;CAS9B"}
@@ -4,8 +4,11 @@ import { CLAPPR_VERSION } from '../../build.js';
4
4
  import volumeMuteIcon from '../../../assets/icons/new/volume-off.svg';
5
5
  import pluginHtml from '../../../assets/big-mute-button/big-mute-button.ejs';
6
6
  import '../../../assets/big-mute-button/big-mute-button.scss';
7
- const T = "plugins.big_mute_button";
7
+ const T = 'plugins.big_mute_button';
8
+ // TODO rewrite as a container plugin
8
9
  /**
10
+ * Displays a big mute button over the video when it's muted.
11
+ * Once pressed, it unmutes the video.
9
12
  * @beta
10
13
  */
11
14
  export class BigMuteButton extends UICorePlugin {
@@ -13,21 +16,31 @@ export class BigMuteButton extends UICorePlugin {
13
16
  _adIsPlaying = false;
14
17
  $bigMuteBtnContainer = null;
15
18
  $bigMuteButton = null;
19
+ /**
20
+ * @internal
21
+ */
16
22
  get name() {
17
23
  return 'big_mute_button';
18
24
  }
25
+ /**
26
+ * @internal
27
+ */
19
28
  get supportedVersion() {
20
29
  return { min: CLAPPR_VERSION };
21
30
  }
22
- get template() {
23
- return template(pluginHtml);
24
- }
31
+ static template = template(pluginHtml);
32
+ /**
33
+ * @internal
34
+ */
25
35
  get events() {
26
36
  return {
27
37
  'click .big-mute-icon': 'handleBigMuteBtnClick',
28
38
  'click .big-mute-icon-wrapper': 'destroyBigMuteBtn',
29
39
  };
30
40
  }
41
+ /**
42
+ * @internal
43
+ */
31
44
  bindEvents() {
32
45
  super.bindEvents();
33
46
  this.listenTo(this.core, Events.CORE_READY, this.onCoreReady);
@@ -38,17 +51,6 @@ export class BigMuteButton extends UICorePlugin {
38
51
  });
39
52
  this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.mediaControlRendered);
40
53
  }
41
- unBindEvents() {
42
- // @ts-ignore
43
- this.stopListening(this.core, Events.CORE_READY);
44
- this.stopListening(this.core, 'core:advertisement:start', this.onStartAd);
45
- this.stopListening(this.core, 'core:advertisement:finish', this.onFinishAd);
46
- this.stopListening(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.mediaControlRendered);
47
- const container = this.core.activeContainer;
48
- if (container) {
49
- this.stopListening(container.playback, Events.PLAYBACK_PLAY, this.render);
50
- }
51
- }
52
54
  onCoreReady() {
53
55
  this.listenTo(this.core.activeContainer, Events.CONTAINER_VOLUME, this.onContainerVolume);
54
56
  this.listenTo(this.core.activeContainer, Events.CONTAINER_READY, this.onContainerStart);
@@ -105,12 +107,15 @@ export class BigMuteButton extends UICorePlugin {
105
107
  });
106
108
  return autoPlay && !wasMuted && volume === 0;
107
109
  }
110
+ /**
111
+ * @internal
112
+ */
108
113
  render() {
109
114
  if (this.shouldRender()) {
110
115
  trace(`${T} render`, {
111
116
  el: !!this.$el,
112
117
  });
113
- this.$el.html(this.template());
118
+ this.$el.html(BigMuteButton.template());
114
119
  this.$bigMuteBtnContainer = this.$el.find('.big-mute-icon-wrapper[data-big-mute]');
115
120
  this._adIsPlaying && this.$bigMuteBtnContainer.addClass('hide');
116
121
  this.$bigMuteButton = this.$bigMuteBtnContainer.find('.big-mute-icon');
@@ -4,6 +4,7 @@ import '../../../assets/bottom-gear/gear-sub-menu.scss';
4
4
  import { ZeptoResult } from '../../utils/types.js';
5
5
  /**
6
6
  * Custom events emitted by the plugin
7
+ * @beta
7
8
  */
8
9
  export declare enum GearEvents {
9
10
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"BottomGear.d.ts","sourceRoot":"","sources":["../../../src/plugins/bottom-gear/BottomGear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoC,MAAM,cAAc,CAAC;AAO9E,OAAO,uCAAuC,CAAC;AAC/C,OAAO,gDAAgD,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAMnD;;GAEG;AACH,oBAAY,UAAU;IACpB;;OAEG;IACH,0BAA0B,+BAA+B;CAC1D;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1D;;;;;;;;;GASG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,IAAI,CAAS;IAErB;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED;;OAEG;IACH,IAAa,MAAM;;MAIlB;IAED;;OAEG;IACM,UAAU;IAUnB;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,GAAG,IAAI;IAIrD;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,WAAW;IAI/B,OAAO,CAAC,wBAAwB;IAKhC,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,oBAAoB;IAU5B;;OAEG;IACM,MAAM;IAmBf,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,IAAI;CAGb"}
1
+ {"version":3,"file":"BottomGear.d.ts","sourceRoot":"","sources":["../../../src/plugins/bottom-gear/BottomGear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoC,MAAM,cAAc,CAAC;AAO9E,OAAO,uCAAuC,CAAC;AAC/C,OAAO,gDAAgD,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAMnD;;;GAGG;AACH,oBAAY,UAAU;IACpB;;OAEG;IACH,0BAA0B,+BAA+B;CAC1D;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1D;;;;;;;;;GASG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,IAAI,CAAS;IAErB;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED;;OAEG;IACH,IAAa,MAAM;;MAIlB;IAED;;OAEG;IACM,UAAU;IAUnB;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,GAAG,IAAI;IAIrD;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,WAAW;IAI/B,OAAO,CAAC,wBAAwB;IAKhC,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,oBAAoB;IAU5B;;OAEG;IACM,MAAM;IAmBf,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,IAAI;CAGb"}
@@ -11,6 +11,7 @@ const VERSION = '2.19.12';
11
11
  const T = 'plugins.bottom_gear';
12
12
  /**
13
13
  * Custom events emitted by the plugin
14
+ * @beta
14
15
  */
15
16
  export var GearEvents;
16
17
  (function (GearEvents) {
@@ -1,7 +1,22 @@
1
1
  import { UICorePlugin, Core } from '@clappr/core';
2
2
  import '../../../assets/clappr-nerd-stats/clappr-nerd-stats.scss';
3
3
  /**
4
+ * Displays useful network-related statistics.
4
5
  * @beta
6
+ *
7
+ * @remarks
8
+ * Depends on:
9
+ *
10
+ * - {@link MediaControl}
11
+ *
12
+ * - {@link BottomGear}
13
+ *
14
+ * - {@link ClapprStats}
15
+ *
16
+ * The plugin is rendered as an item in the gear menu.
17
+ *
18
+ * When clicked, it shows an overlay window with the information about the network speed, latency, etc,
19
+ * and recommended quality level.
5
20
  */
6
21
  export declare class ClapprNerdStats extends UICorePlugin {
7
22
  private container;
@@ -10,25 +25,40 @@ export declare class ClapprNerdStats extends UICorePlugin {
10
25
  private showing;
11
26
  private shortcut;
12
27
  private iconPosition;
28
+ /**
29
+ * @internal
30
+ */
13
31
  get name(): string;
32
+ /**
33
+ * @internal
34
+ */
14
35
  get supportedVersion(): {
15
36
  min: string;
16
37
  };
17
- get template(): any;
38
+ private static readonly template;
39
+ /**
40
+ * @internal
41
+ */
18
42
  get attributes(): {
19
43
  'data-clappr-nerd-stats': string;
20
44
  class: string;
21
45
  };
46
+ /**
47
+ * @internal
48
+ */
22
49
  get events(): {
23
50
  'click [data-show-stats-button]': string;
24
51
  'click [data-close-button]': string;
25
52
  'click [data-refresh-button]': string;
26
53
  };
27
- get statsBoxElem(): string;
28
- get statsBoxWidthThreshold(): number;
29
- get playerWidth(): any;
30
- get playerHeight(): any;
54
+ private get statsBoxElem();
55
+ private get statsBoxWidthThreshold();
56
+ private get playerWidth();
57
+ private get playerHeight();
31
58
  constructor(core: Core);
59
+ /**
60
+ * @internal
61
+ */
32
62
  bindEvents(): void;
33
63
  private init;
34
64
  private toggle;
@@ -39,6 +69,9 @@ export declare class ClapprNerdStats extends UICorePlugin {
39
69
  private addCustomMetrics;
40
70
  private updateMetrics;
41
71
  private setStatsBoxSize;
72
+ /**
73
+ * @internal
74
+ */
42
75
  render(): this;
43
76
  private addToBottomGear;
44
77
  private clearCustomMetrics;
@@ -1 +1 @@
1
- {"version":3,"file":"ClapprNerdStats.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-nerd-stats/ClapprNerdStats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,IAAI,EAAa,MAAM,cAAc,CAAC;AAmB/E,OAAO,0DAA0D,CAAC;AA0FlE;;GAEG;AACH,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,SAAS,CAA0B;IAE3C,OAAO,CAAC,aAAa,CAIpB;IAED,OAAO,CAAC,OAAO,CAAyB;IAExC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,QAAQ,CAAW;IAE3B,OAAO,CAAC,YAAY,CAAe;IAEnC,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,IAAI,QAAQ,QAEX;IAED,IAAa,UAAU;;;MAKtB;IAED,IAAa,MAAM;;;;MAMlB;IAED,IAAI,YAAY,WAEf;IAED,IAAI,sBAAsB,WAEzB;IAED,IAAI,WAAW,QAEd;IAED,IAAI,YAAY,QAEf;gBAEW,IAAI,EAAE,IAAI;IAYb,UAAU;IAOnB,OAAO,CAAC,IAAI;IAsBZ,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,IAAI;IAaZ,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,eAAe;IAUd,MAAM;IAOf,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,gBAAgB;CAWzB"}
1
+ {"version":3,"file":"ClapprNerdStats.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-nerd-stats/ClapprNerdStats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,IAAI,EAAa,MAAM,cAAc,CAAA;AAsB9E,OAAO,0DAA0D,CAAA;AAgGjE;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,SAAS,CAAyB;IAE1C,OAAO,CAAC,aAAa,CAIpB;IAED,OAAO,CAAC,OAAO,CAAwB;IAEvC,OAAO,CAAC,OAAO,CAAQ;IAEvB,OAAO,CAAC,QAAQ,CAAU;IAE1B,OAAO,CAAC,YAAY,CAAc;IAElC;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED;;OAEG;IACH,IAAa,MAAM;;;;MAMlB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,sBAAsB,GAEjC;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,YAAY,GAEvB;gBAEW,IAAI,EAAE,IAAI;IAgBtB;;OAEG;IACM,UAAU;IAWnB,OAAO,CAAC,IAAI;IA4BZ,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,IAAI;IAeZ,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACM,MAAM;IAQf,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,gBAAgB;CAWzB"}
@@ -2,7 +2,7 @@ import { UICorePlugin, Events, template } from '@clappr/core';
2
2
  import { reportError } from '@gcorevideo/utils';
3
3
  import Mousetrap from 'mousetrap';
4
4
  import { CLAPPR_VERSION } from '../../build.js';
5
- import { ClapprStatsEvents } from '../clappr-stats/types.js';
5
+ import { ClapprStatsEvents, } from '../clappr-stats/types.js';
6
6
  import { newMetrics as newBaseMetrics } from '../clappr-stats/utils.js';
7
7
  import Formatter from './formatter.js';
8
8
  import { clearSpeedTestResults, configureSpeedTest, drawSpeedTestResults, initSpeedTest, startSpeedtest, stopSpeedtest, } from './speedtest/index.js';
@@ -17,7 +17,7 @@ const qualityClasses = [
17
17
  'speedtest-quality-value-2',
18
18
  'speedtest-quality-value-3',
19
19
  'speedtest-quality-value-4',
20
- 'speedtest-quality-value-5'
20
+ 'speedtest-quality-value-5',
21
21
  ];
22
22
  const getDownloadQuality = (speedValue) => {
23
23
  if (speedValue < 3) {
@@ -81,7 +81,22 @@ const drawSummary = (customMetrics, vodContainer, liveContainer) => {
81
81
  };
82
82
  // const T = 'plugins.clappr_nerd_stats';
83
83
  /**
84
+ * Displays useful network-related statistics.
84
85
  * @beta
86
+ *
87
+ * @remarks
88
+ * Depends on:
89
+ *
90
+ * - {@link MediaControl}
91
+ *
92
+ * - {@link BottomGear}
93
+ *
94
+ * - {@link ClapprStats}
95
+ *
96
+ * The plugin is rendered as an item in the gear menu.
97
+ *
98
+ * When clicked, it shows an overlay window with the information about the network speed, latency, etc,
99
+ * and recommended quality level.
85
100
  */
86
101
  export class ClapprNerdStats extends UICorePlugin {
87
102
  container = null;
@@ -94,21 +109,31 @@ export class ClapprNerdStats extends UICorePlugin {
94
109
  showing = false;
95
110
  shortcut;
96
111
  iconPosition;
112
+ /**
113
+ * @internal
114
+ */
97
115
  get name() {
98
116
  return 'nerd_stats';
99
117
  }
118
+ /**
119
+ * @internal
120
+ */
100
121
  get supportedVersion() {
101
122
  return { min: CLAPPR_VERSION };
102
123
  }
103
- get template() {
104
- return template(pluginHtml);
105
- }
124
+ static template = template(pluginHtml);
125
+ /**
126
+ * @internal
127
+ */
106
128
  get attributes() {
107
129
  return {
108
130
  'data-clappr-nerd-stats': '',
109
- 'class': 'clappr-nerd-stats'
131
+ class: 'clappr-nerd-stats',
110
132
  };
111
133
  }
134
+ /**
135
+ * @internal
136
+ */
112
137
  get events() {
113
138
  return {
114
139
  'click [data-show-stats-button]': 'showOrHide',
@@ -130,8 +155,12 @@ export class ClapprNerdStats extends UICorePlugin {
130
155
  }
131
156
  constructor(core) {
132
157
  super(core);
133
- this.shortcut = core.options.clapprNerdStats?.shortcut ?? ['command+shift+s', 'ctrl+shift+s'];
134
- this.iconPosition = core.options.clapprNerdStats?.iconPosition ?? 'bottom-right';
158
+ this.shortcut = core.options.clapprNerdStats?.shortcut ?? [
159
+ 'command+shift+s',
160
+ 'ctrl+shift+s',
161
+ ];
162
+ this.iconPosition =
163
+ core.options.clapprNerdStats?.iconPosition ?? 'bottom-right';
135
164
  this.customMetrics = {
136
165
  connectionSpeed: 0,
137
166
  ping: 0,
@@ -139,6 +168,9 @@ export class ClapprNerdStats extends UICorePlugin {
139
168
  };
140
169
  configureSpeedTest(core.options.clapprNerdStats?.speedTestServers ?? []);
141
170
  }
171
+ /**
172
+ * @internal
173
+ */
142
174
  bindEvents() {
143
175
  const mediaControl = this.core.getPlugin('media_control');
144
176
  assert(mediaControl, 'media_control plugin is required');
@@ -178,9 +210,11 @@ export class ClapprNerdStats extends UICorePlugin {
178
210
  this.core.$el.find(this.statsBoxElem).show();
179
211
  this.showing = true;
180
212
  this.refreshSpeedTest();
181
- initSpeedTest(this.customMetrics).then(() => {
213
+ initSpeedTest(this.customMetrics)
214
+ .then(() => {
182
215
  startSpeedtest();
183
- }).catch(e => {
216
+ })
217
+ .catch((e) => {
184
218
  reportError(e);
185
219
  this.disable();
186
220
  });
@@ -195,13 +229,19 @@ export class ClapprNerdStats extends UICorePlugin {
195
229
  }
196
230
  addGeneralMetrics() {
197
231
  this.metrics.general = {
198
- displayResolution: (this.playerWidth + 'x' + this.playerHeight),
199
- volume: this.container?.volume
232
+ displayResolution: this.playerWidth + 'x' + this.playerHeight,
233
+ volume: this.container?.volume,
200
234
  };
201
235
  }
202
236
  addCustomMetrics() {
203
237
  this.metrics.custom = this.customMetrics;
204
- const videoQualityNames = ['SD (480p)', 'HD (720p)', 'Full HD (1080p)', '2K (1440p)', '4K (2160p)'];
238
+ const videoQualityNames = [
239
+ 'SD (480p)',
240
+ 'HD (720p)',
241
+ 'Full HD (1080p)',
242
+ '2K (1440p)',
243
+ '4K (2160p)',
244
+ ];
205
245
  const { connectionSpeed, ping } = this.customMetrics;
206
246
  if (!connectionSpeed || !ping) {
207
247
  const calculatingText = 'Calculating... Please wait.';
@@ -213,17 +253,19 @@ export class ClapprNerdStats extends UICorePlugin {
213
253
  const pingQuality = getPingQuality(ping);
214
254
  const liveQuality = Math.min(downloadQuality, pingQuality);
215
255
  const prefix = 'Optimal for ';
216
- this.metrics.custom.vodQuality = prefix + videoQualityNames[downloadQuality - 1];
217
- this.metrics.custom.liveQuality = prefix + videoQualityNames[liveQuality - 1];
256
+ this.metrics.custom.vodQuality =
257
+ prefix + videoQualityNames[downloadQuality - 1];
258
+ this.metrics.custom.liveQuality =
259
+ prefix + videoQualityNames[liveQuality - 1];
218
260
  }
219
261
  updateMetrics(metrics) {
220
262
  Object.assign(this.metrics, metrics);
221
263
  this.addGeneralMetrics();
222
264
  this.addCustomMetrics();
223
265
  const scrollTop = this.core.$el.find(this.statsBoxElem).scrollTop();
224
- this.$el.html(this.template({
266
+ this.$el.html(ClapprNerdStats.template({
225
267
  metrics: Formatter.format(this.metrics),
226
- iconPosition: this.iconPosition
268
+ iconPosition: this.iconPosition,
227
269
  }));
228
270
  this.setStatsBoxSize();
229
271
  drawSpeedTestResults();
@@ -243,7 +285,11 @@ export class ClapprNerdStats extends UICorePlugin {
243
285
  this.$el.find(this.statsBoxElem).addClass('narrow');
244
286
  }
245
287
  }
288
+ /**
289
+ * @internal
290
+ */
246
291
  render() {
292
+ // TODO append to the container
247
293
  this.core.$el.append(this.$el[0]);
248
294
  this.hide();
249
295
  return this;