@gcorevideo/player 2.20.1 → 2.20.4

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 (289) hide show
  1. package/dist/core.js +30 -6
  2. package/dist/index.css +1572 -1572
  3. package/dist/index.js +343 -226
  4. package/dist/player.d.ts +280 -52
  5. package/dist/plugins/index.css +619 -619
  6. package/dist/plugins/index.js +1468 -1351
  7. package/docs/api/player.audioselector.md +1 -251
  8. package/docs/api/player.bigmutebutton.md +1 -156
  9. package/docs/api/player.clapprstats.exportmetrics.md +4 -0
  10. package/docs/api/player.clapprstats.md +7 -223
  11. package/docs/api/player.clapprstats.setupdatemetrics.md +2 -0
  12. package/docs/api/player.clicktopause.md +5 -113
  13. package/docs/api/player.clipsplugin.gettext.md +9 -0
  14. package/docs/api/player.clipsplugin.md +10 -94
  15. package/docs/api/player.clipspluginsettings.md +57 -0
  16. package/docs/api/player.clipspluginsettings.text.md +13 -0
  17. package/docs/api/player.contextmenu._constructor_.md +6 -3
  18. package/docs/api/player.contextmenu.md +13 -256
  19. package/docs/api/{player.audioselector.bindevents.md → player.contextmenupluginsettings.label.md} +3 -7
  20. package/docs/api/player.contextmenupluginsettings.md +98 -0
  21. package/docs/api/{player.audioselector.attributes.md → player.contextmenupluginsettings.preventshowcontextmenu.md} +3 -6
  22. package/docs/api/{player.audioselector.reload.md → player.contextmenupluginsettings.url.md} +3 -7
  23. package/docs/api/player.dvrcontrols.md +1 -1
  24. package/docs/api/player.errorscreen.md +0 -2
  25. package/docs/api/player.favicon._constructor_.md +3 -0
  26. package/docs/api/player.favicon.bindevents.md +3 -0
  27. package/docs/api/player.favicon.configure.md +3 -0
  28. package/docs/api/player.favicon.destroy.md +3 -0
  29. package/docs/api/player.favicon.disable.md +3 -0
  30. package/docs/api/player.favicon.md +18 -1
  31. package/docs/api/player.favicon.name.md +3 -0
  32. package/docs/api/player.favicon.supportedversion.md +3 -0
  33. package/docs/api/player.gearevents.md +4 -1
  34. package/docs/api/player.googleanalytics._constructor_.md +3 -0
  35. package/docs/api/player.googleanalytics.addeventlisteners.md +3 -0
  36. package/docs/api/player.googleanalytics.embedscript.md +3 -0
  37. package/docs/api/player.googleanalytics.md +42 -1
  38. package/docs/api/player.googleanalytics.name.md +3 -0
  39. package/docs/api/player.googleanalytics.onbufferfull.md +3 -0
  40. package/docs/api/player.googleanalytics.onbuffering.md +3 -0
  41. package/docs/api/player.googleanalytics.ondvr.md +3 -0
  42. package/docs/api/player.googleanalytics.onended.md +3 -0
  43. package/docs/api/player.googleanalytics.onerror.md +3 -0
  44. package/docs/api/player.googleanalytics.onfullscreen.md +3 -0
  45. package/docs/api/player.googleanalytics.onhd.md +3 -0
  46. package/docs/api/player.googleanalytics.onpause.md +3 -0
  47. package/docs/api/player.googleanalytics.onplay.md +3 -0
  48. package/docs/api/player.googleanalytics.onready.md +3 -0
  49. package/docs/api/player.googleanalytics.onseek.md +3 -0
  50. package/docs/api/player.googleanalytics.onstop.md +3 -0
  51. package/docs/api/player.googleanalytics.onvolumechanged.md +3 -0
  52. package/docs/api/player.googleanalytics.push.md +3 -0
  53. package/docs/api/player.googleanalytics.supportedversion.md +3 -0
  54. package/docs/api/player.initeventdata.event.md +3 -0
  55. package/docs/api/player.initeventdata.md +7 -0
  56. package/docs/api/player.logo._constructor_.md +3 -0
  57. package/docs/api/player.logo.attributes.md +3 -0
  58. package/docs/api/player.logo.bindevents.md +3 -0
  59. package/docs/api/player.logo.md +20 -1
  60. package/docs/api/player.logo.name.md +3 -0
  61. package/docs/api/player.logo.render.md +3 -0
  62. package/docs/api/player.logo.stoplistening.md +3 -0
  63. package/docs/api/player.logo.supportedversion.md +3 -0
  64. package/docs/api/player.logo.template.md +3 -0
  65. package/docs/api/player.md +73 -21
  66. package/docs/api/player.mediacontrolelement.md +1 -1
  67. package/docs/api/player.multicamera._constructor_.md +3 -0
  68. package/docs/api/player.multicamera.activebyid.md +3 -0
  69. package/docs/api/player.multicamera.attributes.md +3 -0
  70. package/docs/api/player.multicamera.bindevents.md +3 -0
  71. package/docs/api/player.multicamera.events.md +3 -0
  72. package/docs/api/player.multicamera.getcameraslist.md +3 -0
  73. package/docs/api/player.multicamera.getcurrentcamera.md +3 -0
  74. package/docs/api/player.multicamera.md +30 -1
  75. package/docs/api/player.multicamera.name.md +3 -0
  76. package/docs/api/player.multicamera.render.md +3 -0
  77. package/docs/api/player.multicamera.supportedversion.md +3 -0
  78. package/docs/api/player.multicamera.template.md +3 -0
  79. package/docs/api/player.multicamera.unbindevents.md +3 -0
  80. package/docs/api/player.multicamera.version.md +3 -0
  81. package/docs/api/player.seektime.attributes.md +3 -0
  82. package/docs/api/player.seektime.bindevents.md +3 -0
  83. package/docs/api/player.seektime.durationshown.md +3 -0
  84. package/docs/api/player.seektime.getseektime.md +3 -0
  85. package/docs/api/player.seektime.islivestreamwithdvr.md +3 -0
  86. package/docs/api/player.seektime.md +31 -0
  87. package/docs/api/player.seektime.mediacontrol.md +3 -0
  88. package/docs/api/player.seektime.mediacontrolcontainer.md +3 -0
  89. package/docs/api/player.seektime.name.md +3 -0
  90. package/docs/api/player.seektime.render.md +3 -0
  91. package/docs/api/player.seektime.shouldbevisible.md +3 -0
  92. package/docs/api/player.seektime.supportedversion.md +3 -0
  93. package/docs/api/player.seektime.template.md +3 -0
  94. package/docs/api/player.seektime.update.md +3 -0
  95. package/docs/api/player.share.md +2 -0
  96. package/docs/api/player.skiptime.md +2 -0
  97. package/docs/api/player.stalleventdata.count.md +3 -0
  98. package/docs/api/player.stalleventdata.event.md +3 -0
  99. package/docs/api/player.stalleventdata.md +8 -3
  100. package/docs/api/player.stalleventdata.time.md +3 -0
  101. package/docs/api/player.stalleventdata.total_ms.md +3 -0
  102. package/docs/api/player.starteventdata.event.md +3 -0
  103. package/docs/api/player.starteventdata.md +7 -0
  104. package/docs/api/player.telemetryevent.md +11 -0
  105. package/docs/api/player.telemetryeventdata.md +3 -0
  106. package/docs/api/player.telemetrypluginsettings.md +4 -1
  107. package/docs/api/player.telemetrypluginsettings.send.md +3 -0
  108. package/docs/api/player.telemetryrecord.md +3 -0
  109. package/docs/api/player.thumbnails.md +21 -139
  110. package/docs/api/player.thumbnailspluginsettings.md +23 -0
  111. package/docs/api/player.volumefade.md +1 -0
  112. package/docs/api/player.volumefadeevents.md +7 -0
  113. package/docs/api/player.watcheventdata.event.md +3 -0
  114. package/docs/api/player.watcheventdata.md +7 -0
  115. package/docs/api/player.zeptoresult.md +1 -0
  116. package/lib/Player.d.ts +5 -3
  117. package/lib/Player.d.ts.map +1 -1
  118. package/lib/Player.js +30 -6
  119. package/lib/index.plugins.d.ts +0 -1
  120. package/lib/index.plugins.d.ts.map +1 -1
  121. package/lib/index.plugins.js +0 -1
  122. package/lib/internal.types.d.ts +7 -7
  123. package/lib/internal.types.d.ts.map +1 -1
  124. package/lib/plugins/audio-selector/AudioSelector.d.ts +28 -6
  125. package/lib/plugins/audio-selector/AudioSelector.d.ts.map +1 -1
  126. package/lib/plugins/audio-selector/AudioSelector.js +52 -22
  127. package/lib/plugins/big-mute-button/BigMuteButton.d.ts +18 -2
  128. package/lib/plugins/big-mute-button/BigMuteButton.d.ts.map +1 -1
  129. package/lib/plugins/big-mute-button/BigMuteButton.js +21 -16
  130. package/lib/plugins/bottom-gear/BottomGear.d.ts +1 -0
  131. package/lib/plugins/bottom-gear/BottomGear.d.ts.map +1 -1
  132. package/lib/plugins/bottom-gear/BottomGear.js +1 -0
  133. package/lib/plugins/clappr-stats/ClapprStats.d.ts +31 -8
  134. package/lib/plugins/clappr-stats/ClapprStats.d.ts.map +1 -1
  135. package/lib/plugins/clappr-stats/ClapprStats.js +24 -0
  136. package/lib/plugins/clappr-stats/types.d.ts +12 -0
  137. package/lib/plugins/clappr-stats/types.d.ts.map +1 -1
  138. package/lib/plugins/clappr-stats/types.js +3 -0
  139. package/lib/plugins/click-to-pause/ClickToPause.d.ts +13 -1
  140. package/lib/plugins/click-to-pause/ClickToPause.d.ts.map +1 -1
  141. package/lib/plugins/click-to-pause/ClickToPause.js +14 -4
  142. package/lib/plugins/clips/Clips.d.ts +34 -2
  143. package/lib/plugins/clips/Clips.d.ts.map +1 -1
  144. package/lib/plugins/clips/Clips.js +51 -22
  145. package/lib/plugins/context-menu/ContextMenu.d.ts +44 -13
  146. package/lib/plugins/context-menu/ContextMenu.d.ts.map +1 -1
  147. package/lib/plugins/context-menu/ContextMenu.js +48 -36
  148. package/lib/plugins/dvr-controls/DvrControls.d.ts +1 -3
  149. package/lib/plugins/dvr-controls/DvrControls.d.ts.map +1 -1
  150. package/lib/plugins/dvr-controls/DvrControls.js +11 -28
  151. package/lib/plugins/error-screen/ErrorScreen.d.ts +0 -1
  152. package/lib/plugins/error-screen/ErrorScreen.d.ts.map +1 -1
  153. package/lib/plugins/error-screen/ErrorScreen.js +0 -1
  154. package/lib/plugins/favicon/Favicon.d.ts +4 -0
  155. package/lib/plugins/favicon/Favicon.d.ts.map +1 -1
  156. package/lib/plugins/favicon/Favicon.js +4 -0
  157. package/lib/plugins/google-analytics/GoogleAnalytics.d.ts +4 -0
  158. package/lib/plugins/google-analytics/GoogleAnalytics.d.ts.map +1 -1
  159. package/lib/plugins/google-analytics/GoogleAnalytics.js +5 -1
  160. package/lib/plugins/index.d.ts +0 -1
  161. package/lib/plugins/index.d.ts.map +1 -1
  162. package/lib/plugins/index.js +0 -1
  163. package/lib/plugins/logo/Logo.d.ts +4 -0
  164. package/lib/plugins/logo/Logo.d.ts.map +1 -1
  165. package/lib/plugins/logo/Logo.js +4 -0
  166. package/lib/plugins/media-control/MediaControl.d.ts +1 -1
  167. package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
  168. package/lib/plugins/media-control/MediaControl.js +3 -1
  169. package/lib/plugins/multi-camera/MultiCamera.d.ts +4 -0
  170. package/lib/plugins/multi-camera/MultiCamera.d.ts.map +1 -1
  171. package/lib/plugins/multi-camera/MultiCamera.js +6 -2
  172. package/lib/plugins/seek-time/SeekTime.d.ts +4 -0
  173. package/lib/plugins/seek-time/SeekTime.d.ts.map +1 -1
  174. package/lib/plugins/seek-time/SeekTime.js +6 -2
  175. package/lib/plugins/share/Share.d.ts +3 -0
  176. package/lib/plugins/share/Share.d.ts.map +1 -1
  177. package/lib/plugins/share/Share.js +4 -1
  178. package/lib/plugins/skip-time/SkipTime.d.ts +3 -0
  179. package/lib/plugins/skip-time/SkipTime.d.ts.map +1 -1
  180. package/lib/plugins/skip-time/SkipTime.js +3 -0
  181. package/lib/plugins/telemetry/Telemetry.d.ts +18 -0
  182. package/lib/plugins/telemetry/Telemetry.d.ts.map +1 -1
  183. package/lib/plugins/telemetry/Telemetry.js +1 -0
  184. package/lib/plugins/thumbnails/Thumbnails.d.ts +48 -3
  185. package/lib/plugins/thumbnails/Thumbnails.d.ts.map +1 -1
  186. package/lib/plugins/thumbnails/Thumbnails.js +52 -18
  187. package/lib/plugins/volume-fade/VolumeFade.d.ts +5 -0
  188. package/lib/plugins/volume-fade/VolumeFade.d.ts.map +1 -1
  189. package/lib/plugins/volume-fade/VolumeFade.js +5 -0
  190. package/lib/types.d.ts +9 -1
  191. package/lib/types.d.ts.map +1 -1
  192. package/lib/utils/types.d.ts +1 -0
  193. package/lib/utils/types.d.ts.map +1 -1
  194. package/package.json +1 -1
  195. package/release_notes +297 -0
  196. package/src/Player.ts +101 -46
  197. package/src/__tests__/Player.test.ts +23 -1
  198. package/src/index.plugins.ts +0 -1
  199. package/src/internal.types.ts +86 -79
  200. package/src/plugins/audio-selector/AudioSelector.ts +227 -154
  201. package/src/plugins/big-mute-button/BigMuteButton.ts +100 -79
  202. package/src/plugins/bottom-gear/BottomGear.ts +1 -0
  203. package/src/plugins/clappr-stats/ClapprStats.ts +32 -8
  204. package/src/plugins/clappr-stats/types.ts +13 -0
  205. package/src/plugins/click-to-pause/ClickToPause.ts +47 -36
  206. package/src/plugins/clips/Clips.ts +127 -71
  207. package/src/plugins/context-menu/ContextMenu.ts +109 -76
  208. package/src/plugins/dvr-controls/DvrControls.ts +11 -30
  209. package/src/plugins/error-screen/ErrorScreen.ts +0 -1
  210. package/src/plugins/favicon/Favicon.ts +4 -0
  211. package/src/plugins/google-analytics/GoogleAnalytics.ts +5 -1
  212. package/src/plugins/index.ts +0 -1
  213. package/src/plugins/logo/Logo.ts +4 -0
  214. package/src/plugins/media-control/MediaControl.ts +4 -1
  215. package/src/plugins/multi-camera/MultiCamera.ts +6 -2
  216. package/src/plugins/seek-time/SeekTime.ts +6 -2
  217. package/src/plugins/share/Share.ts +4 -1
  218. package/src/plugins/skip-time/SkipTime.ts +3 -0
  219. package/src/plugins/telemetry/Telemetry.ts +18 -0
  220. package/src/plugins/thumbnails/Thumbnails.ts +268 -194
  221. package/src/plugins/volume-fade/VolumeFade.ts +5 -0
  222. package/src/types.ts +11 -1
  223. package/src/utils/types.ts +1 -0
  224. package/temp/player.api.json +627 -2468
  225. package/tsconfig.tsbuildinfo +1 -1
  226. package/docs/api/player.audioselector.events.md +0 -17
  227. package/docs/api/player.audioselector.hideselecttrackmenu.md +0 -18
  228. package/docs/api/player.audioselector.name.md +0 -14
  229. package/docs/api/player.audioselector.onshowlevelselectmenu.md +0 -18
  230. package/docs/api/player.audioselector.render.md +0 -18
  231. package/docs/api/player.audioselector.supportedversion.md +0 -16
  232. package/docs/api/player.audioselector.template.md +0 -14
  233. package/docs/api/player.audioselector.togglecontextmenu.md +0 -18
  234. package/docs/api/player.audioselector.unbindevents.md +0 -18
  235. package/docs/api/player.audioselector.version.md +0 -14
  236. package/docs/api/player.bigmutebutton.bindevents.md +0 -18
  237. package/docs/api/player.bigmutebutton.events.md +0 -17
  238. package/docs/api/player.bigmutebutton.name.md +0 -14
  239. package/docs/api/player.bigmutebutton.render.md +0 -18
  240. package/docs/api/player.bigmutebutton.supportedversion.md +0 -16
  241. package/docs/api/player.bigmutebutton.template.md +0 -14
  242. package/docs/api/player.clapprstats._buildreport.md +0 -18
  243. package/docs/api/player.clapprstats._defaultreport.md +0 -52
  244. package/docs/api/player.clapprstats._playbackname.md +0 -14
  245. package/docs/api/player.clapprstats._playbacktype.md +0 -14
  246. package/docs/api/player.clapprstats.bindevents.md +0 -18
  247. package/docs/api/player.clapprstats.destroy.md +0 -18
  248. package/docs/api/player.clapprstats.name.md +0 -14
  249. package/docs/api/player.clapprstats.onfirstplaying.md +0 -18
  250. package/docs/api/player.clapprstats.playafterpause.md +0 -18
  251. package/docs/api/player.clapprstats.starttimers.md +0 -18
  252. package/docs/api/player.clapprstats.stopreporting.md +0 -18
  253. package/docs/api/player.clapprstats.supportedversion.md +0 -16
  254. package/docs/api/player.clicktopause.bindevents.md +0 -15
  255. package/docs/api/player.clicktopause.config.md +0 -11
  256. package/docs/api/player.clicktopause.name.md +0 -11
  257. package/docs/api/player.clicktopause.supportedversion.md +0 -13
  258. package/docs/api/player.clipsplugin.attributes.md +0 -13
  259. package/docs/api/player.clipsplugin.bindevents.md +0 -15
  260. package/docs/api/player.clipsplugin.makesvg.md +0 -49
  261. package/docs/api/player.clipsplugin.name.md +0 -11
  262. package/docs/api/player.clipsplugin.unbindevents.md +0 -15
  263. package/docs/api/player.contextmenu.attributes.md +0 -13
  264. package/docs/api/player.contextmenu.bindevents.md +0 -15
  265. package/docs/api/player.contextmenu.destroy.md +0 -15
  266. package/docs/api/player.contextmenu.events.md +0 -13
  267. package/docs/api/player.contextmenu.exposeversion.md +0 -14
  268. package/docs/api/player.contextmenu.label.md +0 -11
  269. package/docs/api/player.contextmenu.mediacontrol.md +0 -11
  270. package/docs/api/player.contextmenu.name.md +0 -11
  271. package/docs/api/player.contextmenu.render.md +0 -15
  272. package/docs/api/player.contextmenu.supportedversion.md +0 -13
  273. package/docs/api/player.contextmenu.template.md +0 -11
  274. package/docs/api/player.contextmenu.url.md +0 -11
  275. package/docs/api/player.disablecontrols.bindevents.md +0 -15
  276. package/docs/api/player.disablecontrols.container.md +0 -11
  277. package/docs/api/player.disablecontrols.md +0 -138
  278. package/docs/api/player.disablecontrols.name.md +0 -11
  279. package/docs/api/player.disablecontrols.supportedversion.md +0 -13
  280. package/docs/api/player.disablecontrols.unbindevents.md +0 -15
  281. package/docs/api/player.thumbnails.attributes.md +0 -13
  282. package/docs/api/player.thumbnails.bindevents.md +0 -15
  283. package/docs/api/player.thumbnails.name.md +0 -11
  284. package/docs/api/player.thumbnails.settext.md +0 -49
  285. package/docs/api/player.thumbnails.supportedversion.md +0 -13
  286. package/docs/api/player.thumbnails.template.md +0 -11
  287. package/src/plugins/disable-controls/DisableControls.ts +0 -81
  288. package/src/plugins/ga-events/GaEvents.js +0 -395
  289. package/src/plugins/ga-events/ga-tracking.js +0 -46
package/release_notes ADDED
@@ -0,0 +1,297 @@
1
+ commit e0fdb8709baf62055124303f46ed3a18d47dca27
2
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
3
+ Date: Fri Feb 21 18:56:59 2025 +0400
4
+
5
+ Add documentation on the Favicon, GoogleAnalytics plugins
6
+
7
+ commit 11e82a088643cf9b4ef9e244b472887325c87605
8
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
9
+ Date: Fri Feb 21 18:52:09 2025 +0400
10
+
11
+ Add AudioSelector docs
12
+
13
+ commit 4cf62967bbea6906b00961f1d2631aff4a7a255b
14
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
15
+ Date: Fri Feb 21 18:10:07 2025 +0400
16
+
17
+ Add DvrControls plugin docs
18
+
19
+ commit b0df7f005024912cba46cc9f478a7355efeefb5a
20
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
21
+ Date: Fri Feb 21 17:31:43 2025 +0400
22
+
23
+ Add documentation on ContextMenu plugin
24
+
25
+ commit 24c3ce396a8d69e60433a126b5a7c5efdee94957
26
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
27
+ Date: Fri Feb 21 17:17:46 2025 +0400
28
+
29
+ Add documentation on the ClickToPause and Clips plugins
30
+
31
+ commit 141e43d009c95fab701007b0c6886e02d8edcaac
32
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
33
+ Date: Fri Feb 21 17:03:58 2025 +0400
34
+
35
+ Add ClapprStats plugin documentation
36
+
37
+ commit 9e777c289b81cc2fe2393496a0b1d6dcf4da375e
38
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
39
+ Date: Fri Feb 21 16:57:21 2025 +0400
40
+
41
+ Add documentation on the Thumbnails and BigMuteButton plugins
42
+
43
+ commit 4e3e080fa9dfdc2778ad1a2578d4ddfa4a36063f
44
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
45
+ Date: Fri Feb 21 16:41:30 2025 +0400
46
+
47
+ Refactor Telemetry plugin
48
+
49
+ commit ab7d3a300526047256ecedb3e79a70f368dd6b4e
50
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
51
+ Date: Thu Feb 20 20:04:00 2025 +0400
52
+
53
+ Add documentation on PictuerInPicture plugin
54
+
55
+ commit ee9cfdd684c762b8fb01dc38eab4783f2cd20301
56
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
57
+ Date: Thu Feb 20 19:54:25 2025 +0400
58
+
59
+ Add docs on PlaybackRate plugin
60
+
61
+ commit f80f4612b5e06a61b88ce79f8fc7fff22bd6a8f8
62
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
63
+ Date: Thu Feb 20 19:33:54 2025 +0400
64
+
65
+ Refactor Subtitles plugin
66
+
67
+ commit 389ea9ff869852270c2f946e36c2f88a99007e0f
68
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
69
+ Date: Thu Feb 20 16:10:26 2025 +0400
70
+
71
+ Media control plugins refactoring
72
+
73
+ commit 2eb75ea01af24723ddeb16596b4c031cac6802fd
74
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
75
+ Date: Wed Feb 19 19:22:23 2025 +0400
76
+
77
+ Refactor MediaControl. Add documentation on plugins
78
+
79
+ commit 8b2e7b99a6f546491597f5dd8fcf095b85d736e6
80
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
81
+ Date: Wed Feb 19 12:38:34 2025 +0400
82
+
83
+ Rename CI directory
84
+
85
+ commit 51d26f1bb79e9d6f18d85a95884d5703b1db28e8
86
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
87
+ Date: Wed Feb 19 12:33:42 2025 +0400
88
+
89
+ Fix premature autoplay
90
+
91
+ commit 500baf2d59ed9c7a93574c2607629f9fcd30c2ea
92
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
93
+ Date: Tue Feb 18 15:31:06 2025 +0400
94
+
95
+ Update documentation on media control plugin
96
+
97
+ commit 584c36655f6b5943992ae22cf9e8e3f0784a3ce2
98
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
99
+ Date: Tue Feb 18 14:04:43 2025 +0400
100
+
101
+ 2.0.0
102
+
103
+ commit 2339ad64729136df35f55b4e316ae2ac8d8721e1
104
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
105
+ Date: Tue Feb 18 14:04:35 2025 +0400
106
+
107
+ Install husky
108
+
109
+ commit 620088cafb283b71d8b2abc63b80fbfb243da99c
110
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
111
+ Date: Tue Feb 18 14:04:00 2025 +0400
112
+
113
+ Fix vertical formats treatment in level selector
114
+
115
+ commit 5411aeac00da59a2d4fe44fd661af55571398b77
116
+ Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
117
+ Date: Mon Feb 17 15:34:59 2025 +0000
118
+
119
+ Bump oxlint from 0.13.2 to 0.15.11
120
+
121
+ Bumps [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) from 0.13.2 to 0.15.11.
122
+ - [Release notes](https://github.com/oxc-project/oxc/releases)
123
+ - [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md)
124
+ - [Commits](https://github.com/oxc-project/oxc/commits/oxlint_v0.15.11/npm/oxlint)
125
+
126
+ ---
127
+ updated-dependencies:
128
+ - dependency-name: oxlint
129
+ dependency-type: direct:development
130
+ update-type: version-update:semver-minor
131
+ ...
132
+
133
+ Signed-off-by: dependabot[bot] <support@github.com>
134
+
135
+ commit bb92071ee144d26ec75d5e0c2fb6cd858fb5b03a
136
+ Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
137
+ Date: Tue Feb 18 11:50:09 2025 +0400
138
+
139
+ Update documentation (#14)
140
+
141
+ Co-authored-by: dmitritz <dmitritz@users.noreply.github.com>
142
+
143
+ commit fb93868502059f3e39e5d242e4e4f2703a5ada86
144
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
145
+ Date: Tue Feb 18 11:44:07 2025 +0400
146
+
147
+ Fix docs update workflow
148
+
149
+ commit 59fea91631903d4e6cc47ee9d6b89d7778f9cf3a
150
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
151
+ Date: Tue Feb 18 11:13:53 2025 +0400
152
+
153
+ Set the commiter username and email in docs update workflow
154
+
155
+ commit 1e08c59d3a3cddf2f4e71cc02167fc872ca771fa
156
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
157
+ Date: Tue Feb 18 10:52:15 2025 +0400
158
+
159
+ Add documentation update workflow
160
+
161
+ commit 28317d9233fa1fa3524dba636161cf8adceff736
162
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
163
+ Date: Mon Feb 17 19:33:43 2025 +0400
164
+
165
+ Update documentation
166
+
167
+ commit edfeaecc20293c59cf2d73505d6313cf90f94277
168
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
169
+ Date: Mon Feb 17 17:22:03 2025 +0400
170
+
171
+ Fix wrong plugins build output
172
+
173
+ commit 5a26abe259aee23c47cfc6174c23cb2e9e6b9ced
174
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
175
+ Date: Mon Feb 17 17:18:19 2025 +0400
176
+
177
+ Fix wrong dist data upload
178
+
179
+ commit eff63fc92e3ab24cc781a3919f21567e172ea2db
180
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
181
+ Date: Mon Feb 17 16:51:21 2025 +0400
182
+
183
+ Fix uploaded package version
184
+
185
+ commit 57542e2d111b633f270e90030c915038c98fd581
186
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
187
+ Date: Mon Feb 17 16:43:56 2025 +0400
188
+
189
+ Fix version ref in publishing workflow
190
+
191
+ commit 7a00e2e88eeff3ebc9a57531f18c1a60006cb38a
192
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
193
+ Date: Mon Feb 17 16:35:46 2025 +0400
194
+
195
+ Fix publishing workflow
196
+
197
+ commit cbab766280d71472583f1dabab857d3516293488
198
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
199
+ Date: Mon Feb 17 16:31:57 2025 +0400
200
+
201
+ Fix no event listeners after container change in LevelSelector
202
+
203
+ commit d19638c072222eb113fab9486e2a702adb012c22
204
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
205
+ Date: Mon Feb 17 14:36:17 2025 +0400
206
+
207
+ Merge player and plugins into single package
208
+
209
+ commit 39cbb56f3d55959d5c7470a21dd2a96a2e53386d
210
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
211
+ Date: Mon Feb 17 13:49:34 2025 +0400
212
+
213
+ Fix initial bitrate detection dash
214
+
215
+ commit 7e6e8160c139e74e81d453d63a0fb569c33b0447
216
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
217
+ Date: Fri Feb 14 18:47:10 2025 +0400
218
+
219
+ Add isMuted method in Player API
220
+
221
+ commit 12fb16cf335b9b69c6deaf6b26f54bbd72a794b9
222
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
223
+ Date: Fri Feb 14 17:59:10 2025 +0400
224
+
225
+ Add isDvrInUse in Player API
226
+
227
+ commit 3fb532b2eff0b57ccf21912c125897a314977f27
228
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
229
+ Date: Fri Feb 14 15:00:43 2025 +0400
230
+
231
+ Fix empty labels in level selector due to missed config option
232
+
233
+ commit cbca60708e5349d126a4942ba3bfd7659a668705
234
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
235
+ Date: Fri Feb 14 13:51:34 2025 +0400
236
+
237
+ Ability to restrict resolution in LevelSelector
238
+
239
+ commit e157dfa386b39ffb2f1c3b3d6eb5776531124a2f
240
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
241
+ Date: Thu Feb 13 21:35:21 2025 +0400
242
+
243
+ Update docs
244
+
245
+ commit 7c381d03037caa77d4f4e7c42ecd4db98dfa1c1a
246
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
247
+ Date: Thu Feb 13 21:30:45 2025 +0400
248
+
249
+ Update docs
250
+
251
+ commit 17e0d1a6a2337833f6d3da7fc8d6abfc2d3bfb81
252
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
253
+ Date: Thu Feb 13 19:20:14 2025 +0400
254
+
255
+ Add public API methods. Update documentation
256
+
257
+ commit 549e87ff0ddfea8c1d087a38e1dc73e21141d4bc
258
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
259
+ Date: Thu Feb 13 16:30:37 2025 +0400
260
+
261
+ Update documentation
262
+
263
+ commit d3a532e2c702273637baf6c22216c91900036297
264
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
265
+ Date: Wed Feb 12 20:46:11 2025 +0400
266
+
267
+ Update docs
268
+
269
+ commit acab9ab142460d6872568f97e2976032fe09a54f
270
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
271
+ Date: Wed Feb 12 20:44:53 2025 +0400
272
+
273
+ Add docs
274
+
275
+ commit 159c3c8dd9da1105b01c892a1af1b47d8fb1a093
276
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
277
+ Date: Wed Feb 12 18:49:49 2025 +0400
278
+
279
+ Rename packages directories, refactor tracing code
280
+
281
+ commit 66762d433c72382fe691d46a416d8715799fdbf4
282
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
283
+ Date: Wed Feb 12 18:45:50 2025 +0400
284
+
285
+ Rename plugins directory
286
+
287
+ commit 69b8528562d25c14cb5e7a0419cce50248dbcba0
288
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
289
+ Date: Mon Feb 10 14:25:58 2025 +0400
290
+
291
+ Fix MIME type guess
292
+
293
+ commit b94f32aa3c0bf16c9a27e3ccc26e5b411d23c1bb
294
+ Author: Dmitrii Tkach <dmitrii.tkach@gcore.com>
295
+ Date: Mon Feb 10 14:07:13 2025 +0400
296
+
297
+ Add dash.js & hls.js error codes handling. Rewrite sources selection
package/src/Player.ts CHANGED
@@ -15,12 +15,13 @@ import type {
15
15
  CoreOptions,
16
16
  CorePluginOptions,
17
17
  } from './internal.types.js'
18
- import type { ContainerSize, PlayerMediaSourceDesc, PlayerPlugin } from './types.js'
18
+ import type {
19
+ ContainerSize,
20
+ PlayerMediaSourceDesc,
21
+ PlayerPluginConstructor,
22
+ } from './types.js'
19
23
  import { PlayerConfig, PlayerEvent } from './types.js'
20
- import {
21
- buildMediaSourcesList,
22
- wrapSource,
23
- } from './utils/mediaSources.js'
24
+ import { buildMediaSourcesList, wrapSource } from './utils/mediaSources.js'
24
25
  import { registerPlaybacks } from './playback/index.js'
25
26
  import { PlaybackError, TimePosition } from './playback.types.js'
26
27
 
@@ -28,20 +29,28 @@ import { PlaybackError, TimePosition } from './playback.types.js'
28
29
  * @beta
29
30
  */
30
31
  export type PlayerEventParams<E extends PlayerEvent> =
31
- E extends PlayerEvent.Seek ? [number]
32
- : E extends PlayerEvent.VolumeUpdate ? [number]
33
- : E extends PlayerEvent.TimeUpdate ? [TimePosition]
34
- : E extends PlayerEvent.Resize ? [{ width: number, height: number }]
35
- : E extends PlayerEvent.Fullscreen ? [boolean]
36
- : E extends PlayerEvent.Error ? [PlaybackError]
37
- : []
32
+ E extends PlayerEvent.Seek
33
+ ? [number]
34
+ : E extends PlayerEvent.VolumeUpdate
35
+ ? [number]
36
+ : E extends PlayerEvent.TimeUpdate
37
+ ? [TimePosition]
38
+ : E extends PlayerEvent.Resize
39
+ ? [{ width: number; height: number }]
40
+ : E extends PlayerEvent.Fullscreen
41
+ ? [boolean]
42
+ : E extends PlayerEvent.Error
43
+ ? [PlaybackError]
44
+ : []
38
45
 
39
46
  /**
40
47
  * Type of a listener callback function for a player event.
41
48
  * See the description of the event parameters in {@link PlayerEvent}.
42
49
  * @beta
43
50
  */
44
- export type PlayerEventHandler<E extends PlayerEvent> = (...args: PlayerEventParams<E>) => void
51
+ export type PlayerEventHandler<E extends PlayerEvent> = (
52
+ ...args: PlayerEventParams<E>
53
+ ) => void
45
54
 
46
55
  const T = 'GPlayer'
47
56
 
@@ -157,7 +166,7 @@ export class Player {
157
166
  }
158
167
 
159
168
  const coreOpts = this.buildCoreOptions(playerElement)
160
- const { core, container } = Loader.registeredPlugins
169
+ const { core, container } = Player.getRegisteredPlugins()
161
170
  trace(`${T} init`, {
162
171
  registeredPlaybacks: Loader.registeredPlaybacks.map((p) => p.name),
163
172
  })
@@ -331,19 +340,51 @@ export class Player {
331
340
  * @example
332
341
  * ```ts
333
342
  * import MyPlugin from './MyPlugin.js'
334
- *
343
+ *
335
344
  * Player.registerPlugin(MyPlugin)
336
345
  * ```
337
346
  */
338
- static registerPlugin(plugin: PlayerPlugin) {
347
+ static registerPlugin(plugin: PlayerPluginConstructor) {
348
+ assert.ok(
349
+ plugin.type === 'core' || plugin.type === 'container',
350
+ 'Invalid plugin type',
351
+ )
352
+ if (plugin.type === 'core') {
353
+ if (plugin.prototype.name === 'media_control') {
354
+ Player.corePlugins.unshift(plugin)
355
+ } else {
356
+ Player.corePlugins.push(plugin)
357
+ }
358
+ return
359
+ }
339
360
  Loader.registerPlugin(plugin)
340
361
  }
341
362
 
363
+ private static getRegisteredPlugins(): {
364
+ core: Record<string, PlayerPluginConstructor>
365
+ container: Record<string, PlayerPluginConstructor>
366
+ } {
367
+ for (const plugin of Player.corePlugins) {
368
+ Loader.registerPlugin(plugin)
369
+ }
370
+ return Loader.registeredPlugins
371
+ }
372
+
373
+ private static corePlugins: PlayerPluginConstructor[] = []
374
+
342
375
  /**
343
376
  * Unregisters a plugin registered earlier with {@link Player.registerPlugin}.
344
377
  * @param plugin - a plugin class
345
378
  */
346
- static unregisterPlugin(plugin: PlayerPlugin) {
379
+ static unregisterPlugin(plugin: PlayerPluginConstructor) {
380
+ assert.ok(
381
+ plugin.type === 'core' || plugin.type === 'container',
382
+ 'Invalid plugin type',
383
+ )
384
+ if (plugin.type === 'core') {
385
+ Player.corePlugins = Player.corePlugins.filter((p) => p !== plugin)
386
+ return
387
+ }
347
388
  Loader.unregisterPlugin(plugin)
348
389
  }
349
390
 
@@ -392,7 +433,10 @@ export class Player {
392
433
  }, 0)
393
434
  }
394
435
 
395
- private safeTriggerEvent<E extends PlayerEvent>(event: E, ...args: PlayerEventParams<E>) {
436
+ private safeTriggerEvent<E extends PlayerEvent>(
437
+ event: E,
438
+ ...args: PlayerEventParams<E>
439
+ ) {
396
440
  try {
397
441
  this.emitter.emit(event, ...args)
398
442
  } catch (e) {
@@ -445,29 +489,34 @@ export class Player {
445
489
 
446
490
  this.rootNode = rootNode
447
491
 
448
- const coreOptions: CoreOptions & PluginOptions = $.extend(true, {
449
- allowUserInteraction: true,
450
- debug: 'none',
451
- events: this.events,
452
- height: rootNode.clientHeight,
453
- playback: {
454
- controls: false,
455
- playInline: true,
456
- preload: Browser.isiOS ? 'metadata' : 'none',
457
- mute: this.config.mute,
458
- crossOrigin: 'anonymous', // TODO
459
- hlsjsConfig: {
460
- debug: this.config.debug === 'all' || this.config.debug === 'hls',
492
+ const coreOptions: CoreOptions & PluginOptions = $.extend(
493
+ true,
494
+ {
495
+ allowUserInteraction: true,
496
+ debug: 'none',
497
+ events: this.events,
498
+ height: rootNode.clientHeight,
499
+ playback: {
500
+ controls: false,
501
+ playInline: true,
502
+ preload: Browser.isiOS ? 'metadata' : 'none',
503
+ mute: this.config.mute,
504
+ crossOrigin: 'anonymous', // TODO
505
+ hlsjsConfig: {
506
+ debug: this.config.debug === 'all' || this.config.debug === 'hls',
507
+ },
461
508
  },
509
+ parent: rootNode,
510
+ width: rootNode.clientWidth,
462
511
  },
463
- parent: rootNode,
464
- width: rootNode.clientWidth,
465
- }, this.config, {
466
- autoPlay: false,
467
- mimeType: source ? source.mimeType : undefined,
468
- source: source ? source.source : undefined,
469
- sources,
470
- })
512
+ this.config,
513
+ {
514
+ autoPlay: false,
515
+ mimeType: source ? source.mimeType : undefined,
516
+ source: source ? source.source : undefined,
517
+ sources,
518
+ },
519
+ )
471
520
  return coreOptions
472
521
  }
473
522
 
@@ -496,14 +545,20 @@ export class Player {
496
545
  }
497
546
  })
498
547
  }
499
- activeContainer?.on(ClapprEvents.CONTAINER_VOLUME, (volume: number) => {
500
- this.safeTriggerEvent(PlayerEvent.VolumeUpdate, volume)
501
- }, null)
548
+ activeContainer?.on(
549
+ ClapprEvents.CONTAINER_VOLUME,
550
+ (volume: number) => {
551
+ this.safeTriggerEvent(PlayerEvent.VolumeUpdate, volume)
552
+ },
553
+ null,
554
+ )
502
555
  }
503
556
 
504
557
  private bindCoreListeners() {
505
- const core = this.player?.core
506
- core?.on(
558
+ // TODO create an class inherited from PlayerClappr
559
+ assert.ok(this.player, 'Player is not initialized')
560
+ const core = this.player.core
561
+ core.on(
507
562
  ClapprEvents.CORE_SCREEN_ORIENTATION_CHANGED,
508
563
  ({ orientation }: { orientation: 'landscape' | 'portrait' }) => {
509
564
  trace(`${T} on CORE_SCREEN_ORIENTATION_CHANGED`, {
@@ -522,7 +577,7 @@ export class Player {
522
577
  },
523
578
  null,
524
579
  )
525
- core?.on(
580
+ core.on(
526
581
  ClapprEvents.CORE_RESIZE,
527
582
  ({ width, height }: { width: number; height: number }) => {
528
583
  trace(`${T} on CORE_RESIZE`, {
@@ -533,7 +588,7 @@ export class Player {
533
588
  },
534
589
  null,
535
590
  )
536
- core?.on(
591
+ core.on(
537
592
  ClapprEvents.CORE_FULLSCREEN,
538
593
  (isFullscreen: boolean) => {
539
594
  trace(`${T} CORE_FULLSCREEN`, {
@@ -12,7 +12,7 @@ import { Loader, Player as PlayerClappr } from '@clappr/core'
12
12
  import EventLite from 'event-lite'
13
13
 
14
14
  import { Player } from '../Player'
15
- import { TransportPreference } from '../types'
15
+ import { CorePluginConstructor, TransportPreference } from '../types'
16
16
  import { canPlayDash, canPlayHls } from '../playback'
17
17
  import { isDashSource, isHlsSource } from '../utils/mediaSources'
18
18
 
@@ -167,4 +167,26 @@ describe('Player', () => {
167
167
  })
168
168
  })
169
169
  })
170
+ describe('registerPlugin', () => {
171
+ it('should register plugins with respect to dependencies order', () => {
172
+ class MockMediaControl {
173
+ get name() {
174
+ return 'media_control'
175
+ }
176
+ }
177
+ (MockMediaControl as any).type = 'core';
178
+ class MockMediaControlButtonPlugin {
179
+ get name() {
180
+ return 'media_control_button'
181
+ }
182
+ }
183
+ (MockMediaControlButtonPlugin as any).type = 'core'
184
+ Player.registerPlugin(MockMediaControlButtonPlugin as unknown as CorePluginConstructor)
185
+ Player.registerPlugin(MockMediaControl as unknown as CorePluginConstructor)
186
+ const player = new Player({ sources: [] })
187
+ player.attachTo(document.createElement('div'))
188
+ expect(Loader.registerPlugin).toHaveBeenNthCalledWith(1, MockMediaControl)
189
+ expect(Loader.registerPlugin).toHaveBeenNthCalledWith(2, MockMediaControlButtonPlugin)
190
+ })
191
+ })
170
192
  })
@@ -8,7 +8,6 @@ export * from "./plugins/clappr-stats/ClapprStats.js";
8
8
  export * from "./plugins/click-to-pause/ClickToPause.js";
9
9
  export * from "./plugins/clips/Clips.js";
10
10
  export * from "./plugins/context-menu/ContextMenu.js";
11
- export * from "./plugins/disable-controls/DisableControls.js";
12
11
  export * from "./plugins/dvr-controls/DvrControls.js";
13
12
  export * from "./plugins/error-screen/ErrorScreen.js";
14
13
  export * from "./plugins/favicon/Favicon.js";