@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.
- package/assets/level-selector/list.ejs +1 -1
- package/dist/core.js +2 -2
- package/dist/index.css +966 -966
- package/dist/index.js +884 -627
- package/dist/player.d.ts +536 -122
- package/dist/plugins/index.css +1160 -1160
- package/dist/plugins/index.js +2006 -1725
- package/docs/api/player.audioselector.md +1 -251
- package/docs/api/player.bigmutebutton.md +1 -156
- package/docs/api/player.clapprnerdstats.md +12 -259
- package/docs/api/player.clapprstats.exportmetrics.md +4 -0
- package/docs/api/player.clapprstats.md +7 -223
- package/docs/api/player.clapprstats.setupdatemetrics.md +2 -0
- package/docs/api/player.clicktopause.md +5 -113
- package/docs/api/player.clipsplugin.gettext.md +9 -0
- package/docs/api/player.clipsplugin.md +10 -94
- package/docs/api/{player.playbackrate.setselectedrate.md → player.clipspluginsettings.md} +18 -10
- package/docs/api/player.clipspluginsettings.text.md +13 -0
- package/docs/api/player.contextmenu._constructor_.md +6 -3
- package/docs/api/player.contextmenu.md +13 -256
- package/docs/api/player.contextmenupluginsettings.label.md +11 -0
- package/docs/api/player.contextmenupluginsettings.md +93 -0
- package/docs/api/player.contextmenupluginsettings.preventshowcontextmenu.md +11 -0
- package/docs/api/player.contextmenupluginsettings.url.md +11 -0
- package/docs/api/player.dvrcontrols.md +5 -1
- package/docs/api/player.errorscreen.attributes.md +3 -0
- package/docs/api/player.errorscreen.bindevents.md +3 -0
- package/docs/api/player.errorscreen.container.md +3 -0
- package/docs/api/player.errorscreen.hide.md +3 -0
- package/docs/api/player.errorscreen.md +25 -0
- package/docs/api/player.errorscreen.name.md +3 -0
- package/docs/api/player.errorscreen.render.md +3 -0
- package/docs/api/player.errorscreen.show.md +3 -0
- package/docs/api/player.errorscreen.supportedversion.md +3 -0
- package/docs/api/player.errorscreen.template.md +3 -0
- package/docs/api/player.errorscreen.unbindevents.md +3 -0
- package/docs/api/player.favicon._constructor_.md +3 -0
- package/docs/api/player.favicon.bindevents.md +3 -0
- package/docs/api/player.favicon.configure.md +3 -0
- package/docs/api/player.favicon.destroy.md +3 -0
- package/docs/api/player.favicon.disable.md +3 -0
- package/docs/api/player.favicon.md +18 -1
- package/docs/api/player.favicon.name.md +3 -0
- package/docs/api/player.favicon.supportedversion.md +3 -0
- package/docs/api/player.gearevents.md +4 -1
- package/docs/api/player.googleanalytics._constructor_.md +3 -0
- package/docs/api/player.googleanalytics.addeventlisteners.md +3 -0
- package/docs/api/player.googleanalytics.embedscript.md +3 -0
- package/docs/api/player.googleanalytics.md +42 -1
- package/docs/api/player.googleanalytics.name.md +3 -0
- package/docs/api/player.googleanalytics.onbufferfull.md +3 -0
- package/docs/api/player.googleanalytics.onbuffering.md +3 -0
- package/docs/api/player.googleanalytics.ondvr.md +3 -0
- package/docs/api/player.googleanalytics.onended.md +3 -0
- package/docs/api/player.googleanalytics.onerror.md +3 -0
- package/docs/api/player.googleanalytics.onfullscreen.md +3 -0
- package/docs/api/player.googleanalytics.onhd.md +3 -0
- package/docs/api/player.googleanalytics.onpause.md +3 -0
- package/docs/api/player.googleanalytics.onplay.md +3 -0
- package/docs/api/player.googleanalytics.onready.md +3 -0
- package/docs/api/player.googleanalytics.onseek.md +3 -0
- package/docs/api/player.googleanalytics.onstop.md +3 -0
- package/docs/api/player.googleanalytics.onvolumechanged.md +3 -0
- package/docs/api/player.googleanalytics.push.md +3 -0
- package/docs/api/player.googleanalytics.supportedversion.md +3 -0
- package/docs/api/{player.clapprstats.name.md → player.initeventdata.event.md} +3 -3
- package/docs/api/player.initeventdata.md +60 -0
- package/docs/api/player.logo._constructor_.md +3 -0
- package/docs/api/player.logo.attributes.md +3 -0
- package/docs/api/player.logo.bindevents.md +3 -0
- package/docs/api/player.logo.md +20 -1
- package/docs/api/player.logo.name.md +3 -0
- package/docs/api/player.logo.render.md +3 -0
- package/docs/api/player.logo.stoplistening.md +3 -0
- package/docs/api/player.logo.supportedversion.md +3 -0
- package/docs/api/player.logo.template.md +3 -0
- package/docs/api/player.md +149 -18
- package/docs/api/player.mediacontrolelement.md +1 -1
- package/docs/api/player.multicamera.md +2 -0
- package/docs/api/player.pictureinpicture.md +9 -197
- package/docs/api/player.playbackrate.md +10 -314
- package/docs/api/player.seektime.attributes.md +3 -0
- package/docs/api/player.seektime.bindevents.md +3 -0
- package/docs/api/player.seektime.durationshown.md +3 -0
- package/docs/api/player.seektime.getseektime.md +3 -0
- package/docs/api/player.seektime.islivestreamwithdvr.md +3 -0
- package/docs/api/player.seektime.md +31 -0
- package/docs/api/player.seektime.mediacontrol.md +3 -0
- package/docs/api/player.seektime.mediacontrolcontainer.md +3 -0
- package/docs/api/player.seektime.name.md +3 -0
- package/docs/api/player.seektime.render.md +3 -0
- package/docs/api/player.seektime.shouldbevisible.md +3 -0
- package/docs/api/player.seektime.supportedversion.md +3 -0
- package/docs/api/player.seektime.template.md +3 -0
- package/docs/api/player.seektime.update.md +3 -0
- package/docs/api/player.share.md +2 -0
- package/docs/api/player.skiptime.md +2 -0
- package/docs/api/{player.clapprstats.destroy.md → player.stalleventdata.count.md} +5 -7
- package/docs/api/{player.bigmutebutton.template.md → player.stalleventdata.event.md} +3 -3
- package/docs/api/player.stalleventdata.md +117 -0
- package/docs/api/{player.audioselector.onshowlevelselectmenu.md → player.stalleventdata.time.md} +5 -7
- package/docs/api/{player.clapprstats.starttimers.md → player.stalleventdata.total_ms.md} +5 -7
- package/docs/api/{player.audioselector.template.md → player.starteventdata.event.md} +3 -3
- package/docs/api/player.starteventdata.md +60 -0
- package/docs/api/{player.clapprstats._defaultreport.md → player.telemetry._constructor_.md} +7 -9
- package/docs/api/player.telemetry.md +146 -0
- package/docs/api/{player.clapprnerdstats.name.md → player.telemetry.name.md} +4 -2
- package/docs/api/{player.clapprstats.supportedversion.md → player.telemetry.supportedversion.md} +4 -2
- package/docs/api/player.telemetryevent.md +100 -0
- package/docs/api/player.telemetryeventdata.md +18 -0
- package/docs/api/player.telemetrypluginsettings.md +60 -0
- package/docs/api/{player.audioselector.bindevents.md → player.telemetrypluginsettings.send.md} +5 -7
- package/docs/api/{player.audioselector.reload.md → player.telemetryrecord.md} +8 -6
- package/docs/api/player.thumbnails.md +21 -139
- package/docs/api/player.thumbnailspluginsettings.md +23 -0
- package/docs/api/player.volumefade.md +1 -93
- package/docs/api/{player.audioselector.name.md → player.watcheventdata.event.md} +3 -3
- package/docs/api/player.watcheventdata.md +60 -0
- package/lib/index.plugins.d.ts +2 -3
- package/lib/index.plugins.d.ts.map +1 -1
- package/lib/index.plugins.js +2 -3
- package/lib/playback/hls-playback/HlsPlayback.js +1 -1
- package/lib/plugins/audio-selector/AudioSelector.d.ts +28 -6
- package/lib/plugins/audio-selector/AudioSelector.d.ts.map +1 -1
- package/lib/plugins/audio-selector/AudioSelector.js +52 -22
- package/lib/plugins/big-mute-button/BigMuteButton.d.ts +18 -2
- package/lib/plugins/big-mute-button/BigMuteButton.d.ts.map +1 -1
- package/lib/plugins/big-mute-button/BigMuteButton.js +21 -16
- package/lib/plugins/bottom-gear/BottomGear.d.ts +1 -0
- package/lib/plugins/bottom-gear/BottomGear.d.ts.map +1 -1
- package/lib/plugins/bottom-gear/BottomGear.js +1 -0
- package/lib/plugins/clappr-nerd-stats/ClapprNerdStats.d.ts +38 -5
- package/lib/plugins/clappr-nerd-stats/ClapprNerdStats.d.ts.map +1 -1
- package/lib/plugins/clappr-nerd-stats/ClapprNerdStats.js +63 -17
- package/lib/plugins/clappr-stats/ClapprStats.d.ts +31 -8
- package/lib/plugins/clappr-stats/ClapprStats.d.ts.map +1 -1
- package/lib/plugins/clappr-stats/ClapprStats.js +24 -0
- package/lib/plugins/clappr-stats/types.d.ts +12 -0
- package/lib/plugins/clappr-stats/types.d.ts.map +1 -1
- package/lib/plugins/clappr-stats/types.js +3 -0
- package/lib/plugins/click-to-pause/ClickToPause.d.ts +13 -1
- package/lib/plugins/click-to-pause/ClickToPause.d.ts.map +1 -1
- package/lib/plugins/click-to-pause/ClickToPause.js +14 -4
- package/lib/plugins/clips/Clips.d.ts +34 -2
- package/lib/plugins/clips/Clips.d.ts.map +1 -1
- package/lib/plugins/clips/Clips.js +51 -22
- package/lib/plugins/context-menu/ContextMenu.d.ts +40 -13
- package/lib/plugins/context-menu/ContextMenu.d.ts.map +1 -1
- package/lib/plugins/context-menu/ContextMenu.js +48 -36
- package/lib/plugins/dvr-controls/DvrControls.d.ts +5 -4
- package/lib/plugins/dvr-controls/DvrControls.d.ts.map +1 -1
- package/lib/plugins/dvr-controls/DvrControls.js +15 -29
- package/lib/plugins/error-screen/ErrorScreen.d.ts +4 -0
- package/lib/plugins/error-screen/ErrorScreen.d.ts.map +1 -1
- package/lib/plugins/error-screen/ErrorScreen.js +4 -0
- package/lib/plugins/favicon/Favicon.d.ts +4 -0
- package/lib/plugins/favicon/Favicon.d.ts.map +1 -1
- package/lib/plugins/favicon/Favicon.js +4 -0
- package/lib/plugins/google-analytics/GoogleAnalytics.d.ts +4 -0
- package/lib/plugins/google-analytics/GoogleAnalytics.d.ts.map +1 -1
- package/lib/plugins/google-analytics/GoogleAnalytics.js +5 -1
- package/lib/plugins/index.d.ts +2 -4
- package/lib/plugins/index.d.ts.map +1 -1
- package/lib/plugins/index.js +2 -4
- package/lib/plugins/logo/Logo.d.ts +4 -0
- package/lib/plugins/logo/Logo.d.ts.map +1 -1
- package/lib/plugins/logo/Logo.js +4 -0
- package/lib/plugins/media-control/MediaControl.d.ts +1 -1
- package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
- package/lib/plugins/media-control/MediaControl.js +3 -1
- package/lib/plugins/multi-camera/MultiCamera.d.ts +3 -0
- package/lib/plugins/multi-camera/MultiCamera.d.ts.map +1 -1
- package/lib/plugins/multi-camera/MultiCamera.js +3 -0
- package/lib/plugins/picture-in-picture/PictureInPicture.d.ts +32 -4
- package/lib/plugins/picture-in-picture/PictureInPicture.d.ts.map +1 -1
- package/lib/plugins/picture-in-picture/PictureInPicture.js +30 -2
- package/lib/plugins/playback-rate/PlaybackRate.d.ts +47 -14
- package/lib/plugins/playback-rate/PlaybackRate.d.ts.map +1 -1
- package/lib/plugins/playback-rate/PlaybackRate.js +38 -9
- package/lib/plugins/seek-time/SeekTime.d.ts +4 -0
- package/lib/plugins/seek-time/SeekTime.d.ts.map +1 -1
- package/lib/plugins/seek-time/SeekTime.js +5 -1
- package/lib/plugins/share/Share.d.ts +3 -0
- package/lib/plugins/share/Share.d.ts.map +1 -1
- package/lib/plugins/share/Share.js +3 -0
- package/lib/plugins/skip-time/SkipTime.d.ts +3 -0
- package/lib/plugins/skip-time/SkipTime.d.ts.map +1 -1
- package/lib/plugins/skip-time/SkipTime.js +3 -0
- package/lib/plugins/statistics/Statistics.d.ts +38 -3
- package/lib/plugins/statistics/Statistics.d.ts.map +1 -1
- package/lib/plugins/statistics/Statistics.js +51 -9
- package/lib/plugins/telemetry/Telemetry.d.ts +153 -0
- package/lib/plugins/telemetry/Telemetry.d.ts.map +1 -0
- package/lib/plugins/telemetry/Telemetry.js +181 -0
- package/lib/plugins/thumbnails/Thumbnails.d.ts +48 -3
- package/lib/plugins/thumbnails/Thumbnails.d.ts.map +1 -1
- package/lib/plugins/thumbnails/Thumbnails.js +52 -18
- package/lib/plugins/volume-fade/VolumeFade.d.ts +8 -1
- package/lib/plugins/volume-fade/VolumeFade.d.ts.map +1 -1
- package/lib/plugins/volume-fade/VolumeFade.js +9 -1
- package/package.json +1 -1
- package/src/index.plugins.ts +2 -3
- package/src/playback/hls-playback/HlsPlayback.ts +1 -1
- package/src/plugins/audio-selector/AudioSelector.ts +227 -154
- package/src/plugins/big-mute-button/BigMuteButton.ts +100 -79
- package/src/plugins/bottom-gear/BottomGear.ts +1 -0
- package/src/plugins/clappr-nerd-stats/ClapprNerdStats.ts +240 -173
- package/src/plugins/clappr-stats/ClapprStats.ts +32 -8
- package/src/plugins/clappr-stats/types.ts +13 -0
- package/src/plugins/click-to-pause/ClickToPause.ts +47 -36
- package/src/plugins/clips/Clips.ts +127 -71
- package/src/plugins/context-menu/ContextMenu.ts +105 -76
- package/src/plugins/dvr-controls/DvrControls.ts +15 -31
- package/src/plugins/error-screen/ErrorScreen.ts +4 -0
- package/src/plugins/favicon/Favicon.ts +4 -0
- package/src/plugins/google-analytics/GoogleAnalytics.ts +5 -1
- package/src/plugins/index.ts +2 -4
- package/src/plugins/level-selector/__tests__/LevelSelector.test.ts +47 -26
- package/src/plugins/level-selector/__tests__/__snapshots__/LevelSelector.test.ts.snap +18 -18
- package/src/plugins/logo/Logo.ts +4 -0
- package/src/plugins/media-control/MediaControl.ts +4 -1
- package/src/plugins/multi-camera/MultiCamera.ts +3 -0
- package/src/plugins/picture-in-picture/PictureInPicture.ts +35 -7
- package/src/plugins/playback-rate/PlaybackRate.ts +53 -24
- package/src/plugins/seek-time/SeekTime.ts +5 -1
- package/src/plugins/share/Share.ts +3 -0
- package/src/plugins/skip-time/SkipTime.ts +3 -0
- package/src/plugins/telemetry/Telemetry.ts +317 -0
- package/src/plugins/thumbnails/Thumbnails.ts +268 -194
- package/src/plugins/volume-fade/VolumeFade.ts +10 -2
- package/temp/player.api.json +2457 -5257
- package/tsconfig.tsbuildinfo +1 -1
- package/docs/api/player.audioselector.attributes.md +0 -17
- package/docs/api/player.audioselector.events.md +0 -17
- package/docs/api/player.audioselector.hideselecttrackmenu.md +0 -18
- package/docs/api/player.audioselector.render.md +0 -18
- package/docs/api/player.audioselector.supportedversion.md +0 -16
- package/docs/api/player.audioselector.togglecontextmenu.md +0 -18
- package/docs/api/player.audioselector.unbindevents.md +0 -18
- package/docs/api/player.audioselector.version.md +0 -14
- package/docs/api/player.bigmutebutton.bindevents.md +0 -18
- package/docs/api/player.bigmutebutton.events.md +0 -17
- package/docs/api/player.bigmutebutton.name.md +0 -14
- package/docs/api/player.bigmutebutton.render.md +0 -18
- package/docs/api/player.bigmutebutton.supportedversion.md +0 -16
- package/docs/api/player.clapprnerdstats.attributes.md +0 -17
- package/docs/api/player.clapprnerdstats.bindevents.md +0 -18
- package/docs/api/player.clapprnerdstats.events.md +0 -18
- package/docs/api/player.clapprnerdstats.playerheight.md +0 -14
- package/docs/api/player.clapprnerdstats.playerwidth.md +0 -14
- package/docs/api/player.clapprnerdstats.render.md +0 -18
- package/docs/api/player.clapprnerdstats.statsboxelem.md +0 -14
- package/docs/api/player.clapprnerdstats.statsboxwidththreshold.md +0 -14
- package/docs/api/player.clapprnerdstats.supportedversion.md +0 -16
- package/docs/api/player.clapprnerdstats.template.md +0 -14
- package/docs/api/player.clapprstats._buildreport.md +0 -18
- package/docs/api/player.clapprstats._playbackname.md +0 -14
- package/docs/api/player.clapprstats._playbacktype.md +0 -14
- package/docs/api/player.clapprstats.bindevents.md +0 -18
- package/docs/api/player.clapprstats.onfirstplaying.md +0 -18
- package/docs/api/player.clapprstats.playafterpause.md +0 -18
- package/docs/api/player.clapprstats.stopreporting.md +0 -18
- package/docs/api/player.clicktopause.bindevents.md +0 -15
- package/docs/api/player.clicktopause.config.md +0 -11
- package/docs/api/player.clicktopause.name.md +0 -11
- package/docs/api/player.clicktopause.supportedversion.md +0 -13
- package/docs/api/player.clipsplugin.attributes.md +0 -13
- package/docs/api/player.clipsplugin.bindevents.md +0 -15
- package/docs/api/player.clipsplugin.makesvg.md +0 -49
- package/docs/api/player.clipsplugin.name.md +0 -11
- package/docs/api/player.clipsplugin.unbindevents.md +0 -15
- package/docs/api/player.contextmenu.attributes.md +0 -13
- package/docs/api/player.contextmenu.bindevents.md +0 -15
- package/docs/api/player.contextmenu.destroy.md +0 -15
- package/docs/api/player.contextmenu.events.md +0 -13
- package/docs/api/player.contextmenu.exposeversion.md +0 -14
- package/docs/api/player.contextmenu.label.md +0 -11
- package/docs/api/player.contextmenu.mediacontrol.md +0 -11
- package/docs/api/player.contextmenu.name.md +0 -11
- package/docs/api/player.contextmenu.render.md +0 -15
- package/docs/api/player.contextmenu.supportedversion.md +0 -13
- package/docs/api/player.contextmenu.template.md +0 -11
- package/docs/api/player.contextmenu.url.md +0 -11
- package/docs/api/player.disablecontrols.bindevents.md +0 -15
- package/docs/api/player.disablecontrols.container.md +0 -11
- package/docs/api/player.disablecontrols.md +0 -138
- package/docs/api/player.disablecontrols.name.md +0 -11
- package/docs/api/player.disablecontrols.supportedversion.md +0 -13
- package/docs/api/player.disablecontrols.unbindevents.md +0 -15
- package/docs/api/player.pictureinpicture.bindevents.md +0 -15
- package/docs/api/player.pictureinpicture.events.md +0 -13
- package/docs/api/player.pictureinpicture.exitpictureinpicture.md +0 -15
- package/docs/api/player.pictureinpicture.name.md +0 -11
- package/docs/api/player.pictureinpicture.render.md +0 -15
- package/docs/api/player.pictureinpicture.requestpictureinpicture.md +0 -15
- package/docs/api/player.pictureinpicture.supportedversion.md +0 -13
- package/docs/api/player.pictureinpicture.togglepictureinpicture.md +0 -15
- package/docs/api/player.pictureinpicture.version.md +0 -11
- package/docs/api/player.pictureinpicture.videoelement.md +0 -11
- package/docs/api/player.playbackrate.attributes.md +0 -14
- package/docs/api/player.playbackrate.bindevents.md +0 -15
- package/docs/api/player.playbackrate.events.md +0 -15
- package/docs/api/player.playbackrate.gettitle.md +0 -15
- package/docs/api/player.playbackrate.goback.md +0 -15
- package/docs/api/player.playbackrate.highlightcurrentrate.md +0 -15
- package/docs/api/player.playbackrate.name.md +0 -11
- package/docs/api/player.playbackrate.onfinishad.md +0 -15
- package/docs/api/player.playbackrate.onplay.md +0 -15
- package/docs/api/player.playbackrate.onrateselect.md +0 -49
- package/docs/api/player.playbackrate.onshowmenu.md +0 -15
- package/docs/api/player.playbackrate.onstartad.md +0 -15
- package/docs/api/player.playbackrate.onstop.md +0 -15
- package/docs/api/player.playbackrate.reload.md +0 -15
- package/docs/api/player.playbackrate.render.md +0 -15
- package/docs/api/player.playbackrate.supportedversion.md +0 -13
- package/docs/api/player.playbackrate.template.md +0 -11
- package/docs/api/player.playbackrate.unbindevents.md +0 -15
- package/docs/api/player.playbackrate.updateplaybackrate.md +0 -49
- package/docs/api/player.pluginsettings.md +0 -13
- package/docs/api/player.statistics._constructor_.md +0 -47
- package/docs/api/player.statistics.bindevents.md +0 -15
- package/docs/api/player.statistics.md +0 -141
- package/docs/api/player.statistics.name.md +0 -11
- package/docs/api/player.statistics.supportedversion.md +0 -13
- package/docs/api/player.thumbnails.attributes.md +0 -13
- package/docs/api/player.thumbnails.bindevents.md +0 -15
- package/docs/api/player.thumbnails.name.md +0 -11
- package/docs/api/player.thumbnails.settext.md +0 -49
- package/docs/api/player.thumbnails.supportedversion.md +0 -13
- package/docs/api/player.thumbnails.template.md +0 -11
- package/docs/api/player.volumefade.bindevents.md +0 -18
- package/docs/api/player.volumefade.name.md +0 -14
- package/docs/api/player.volumefade.unbindevents.md +0 -18
- package/src/plugins/disable-controls/DisableControls.ts +0 -81
- package/src/plugins/ga-events/GaEvents.js +0 -395
- package/src/plugins/ga-events/ga-tracking.js +0 -46
- package/src/plugins/statistics/Statistics.ts +0 -207
- /package/src/plugins/{statistics → telemetry}/Statistics copy.xts +0 -0
|
@@ -1,191 +1,212 @@
|
|
|
1
|
-
import { Events, template, UICorePlugin, Utils } from '@clappr/core'
|
|
2
|
-
import { trace } from '@gcorevideo/utils'
|
|
1
|
+
import { Events, template, UICorePlugin, Utils } from '@clappr/core'
|
|
2
|
+
import { trace } from '@gcorevideo/utils'
|
|
3
3
|
|
|
4
|
-
import { CLAPPR_VERSION } from '../../build.js'
|
|
5
|
-
import { ZeptoResult } from
|
|
4
|
+
import { CLAPPR_VERSION } from '../../build.js'
|
|
5
|
+
import { ZeptoResult } from '../../utils/types.js'
|
|
6
6
|
|
|
7
|
-
import volumeMuteIcon from '../../../assets/icons/new/volume-off.svg'
|
|
8
|
-
import pluginHtml from '../../../assets/big-mute-button/big-mute-button.ejs'
|
|
9
|
-
import '../../../assets/big-mute-button/big-mute-button.scss'
|
|
7
|
+
import volumeMuteIcon from '../../../assets/icons/new/volume-off.svg'
|
|
8
|
+
import pluginHtml from '../../../assets/big-mute-button/big-mute-button.ejs'
|
|
9
|
+
import '../../../assets/big-mute-button/big-mute-button.scss'
|
|
10
10
|
|
|
11
|
-
const T =
|
|
11
|
+
const T = 'plugins.big_mute_button'
|
|
12
|
+
|
|
13
|
+
// TODO rewrite as a container plugin
|
|
12
14
|
|
|
13
15
|
/**
|
|
16
|
+
* Displays a big mute button over the video when it's muted.
|
|
17
|
+
* Once pressed, it unmutes the video.
|
|
14
18
|
* @beta
|
|
15
19
|
*/
|
|
16
20
|
export class BigMuteButton extends UICorePlugin {
|
|
17
|
-
private isBigMuteButtonHidden = false
|
|
21
|
+
private isBigMuteButtonHidden = false
|
|
18
22
|
|
|
19
|
-
private _adIsPlaying = false
|
|
23
|
+
private _adIsPlaying = false
|
|
20
24
|
|
|
21
|
-
private $bigMuteBtnContainer: ZeptoResult | null = null
|
|
25
|
+
private $bigMuteBtnContainer: ZeptoResult | null = null
|
|
22
26
|
|
|
23
|
-
private $bigMuteButton: ZeptoResult | null = null
|
|
27
|
+
private $bigMuteButton: ZeptoResult | null = null
|
|
24
28
|
|
|
29
|
+
/**
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
25
32
|
get name() {
|
|
26
|
-
return 'big_mute_button'
|
|
33
|
+
return 'big_mute_button'
|
|
27
34
|
}
|
|
28
35
|
|
|
36
|
+
/**
|
|
37
|
+
* @internal
|
|
38
|
+
*/
|
|
29
39
|
get supportedVersion() {
|
|
30
|
-
return { min: CLAPPR_VERSION }
|
|
40
|
+
return { min: CLAPPR_VERSION }
|
|
31
41
|
}
|
|
32
42
|
|
|
33
|
-
|
|
34
|
-
return template(pluginHtml);
|
|
35
|
-
}
|
|
43
|
+
private static readonly template = template(pluginHtml)
|
|
36
44
|
|
|
45
|
+
/**
|
|
46
|
+
* @internal
|
|
47
|
+
*/
|
|
37
48
|
override get events() {
|
|
38
49
|
return {
|
|
39
50
|
'click .big-mute-icon': 'handleBigMuteBtnClick',
|
|
40
51
|
'click .big-mute-icon-wrapper': 'destroyBigMuteBtn',
|
|
41
|
-
}
|
|
52
|
+
}
|
|
42
53
|
}
|
|
43
54
|
|
|
55
|
+
/**
|
|
56
|
+
* @internal
|
|
57
|
+
*/
|
|
44
58
|
override bindEvents() {
|
|
45
|
-
super.bindEvents()
|
|
46
|
-
this.listenTo(this.core, Events.CORE_READY, this.onCoreReady)
|
|
47
|
-
this.listenTo(this.core, 'core:advertisement:start', this.onStartAd)
|
|
48
|
-
this.listenTo(this.core, 'core:advertisement:finish', this.onFinishAd)
|
|
59
|
+
super.bindEvents()
|
|
60
|
+
this.listenTo(this.core, Events.CORE_READY, this.onCoreReady)
|
|
61
|
+
this.listenTo(this.core, 'core:advertisement:start', this.onStartAd)
|
|
62
|
+
this.listenTo(this.core, 'core:advertisement:finish', this.onFinishAd)
|
|
49
63
|
trace(`${T} bindEvents`, {
|
|
50
64
|
mediacontrol: !!this.core.mediaControl,
|
|
51
|
-
})
|
|
52
|
-
this.listenTo(
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
this.stopListening(this.core, Events.CORE_READY);
|
|
58
|
-
this.stopListening(this.core, 'core:advertisement:start', this.onStartAd);
|
|
59
|
-
this.stopListening(this.core, 'core:advertisement:finish', this.onFinishAd);
|
|
60
|
-
this.stopListening(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.mediaControlRendered);
|
|
61
|
-
|
|
62
|
-
const container = this.core.activeContainer;
|
|
63
|
-
|
|
64
|
-
if (container) {
|
|
65
|
-
this.stopListening(container.playback, Events.PLAYBACK_PLAY, this.render);
|
|
66
|
-
}
|
|
65
|
+
})
|
|
66
|
+
this.listenTo(
|
|
67
|
+
this.core.mediaControl,
|
|
68
|
+
Events.MEDIACONTROL_RENDERED,
|
|
69
|
+
this.mediaControlRendered,
|
|
70
|
+
)
|
|
67
71
|
}
|
|
68
72
|
|
|
69
73
|
private onCoreReady() {
|
|
70
|
-
this.listenTo(
|
|
71
|
-
|
|
72
|
-
|
|
74
|
+
this.listenTo(
|
|
75
|
+
this.core.activeContainer,
|
|
76
|
+
Events.CONTAINER_VOLUME,
|
|
77
|
+
this.onContainerVolume,
|
|
78
|
+
)
|
|
79
|
+
this.listenTo(
|
|
80
|
+
this.core.activeContainer,
|
|
81
|
+
Events.CONTAINER_READY,
|
|
82
|
+
this.onContainerStart,
|
|
83
|
+
)
|
|
84
|
+
this.listenTo(
|
|
85
|
+
this.core.activePlayback,
|
|
86
|
+
Events.PLAYBACK_ENDED,
|
|
87
|
+
this.onPlaybackEnded,
|
|
88
|
+
)
|
|
73
89
|
}
|
|
74
90
|
|
|
75
91
|
private onContainerVolume(value: number) {
|
|
76
92
|
if (value !== 0) {
|
|
77
|
-
this.destroyBigMuteBtn()
|
|
93
|
+
this.destroyBigMuteBtn()
|
|
78
94
|
}
|
|
79
95
|
}
|
|
80
96
|
|
|
81
97
|
private onContainerStart() {
|
|
82
98
|
if (this.isBigMuteButtonHidden) {
|
|
83
|
-
this.showBigMuteBtn()
|
|
99
|
+
this.showBigMuteBtn()
|
|
84
100
|
}
|
|
85
101
|
}
|
|
86
102
|
|
|
87
103
|
private onPlaybackEnded() {
|
|
88
|
-
this.hideBigMuteBtn()
|
|
104
|
+
this.hideBigMuteBtn()
|
|
89
105
|
}
|
|
90
106
|
|
|
91
107
|
private mediaControlRendered() {
|
|
92
|
-
const container = this.core.activeContainer
|
|
108
|
+
const container = this.core.activeContainer
|
|
93
109
|
|
|
94
110
|
trace(`${T} mediaControlRendered`, {
|
|
95
111
|
container: !!container,
|
|
96
|
-
})
|
|
112
|
+
})
|
|
97
113
|
|
|
98
114
|
if (container) {
|
|
99
115
|
this.listenTo(container.playback, Events.PLAYBACK_PLAY, () => {
|
|
100
|
-
trace(`${T} PLAYBACK_PLAY`)
|
|
101
|
-
this.render()
|
|
102
|
-
})
|
|
116
|
+
trace(`${T} PLAYBACK_PLAY`)
|
|
117
|
+
this.render()
|
|
118
|
+
})
|
|
103
119
|
}
|
|
104
120
|
}
|
|
105
121
|
|
|
106
122
|
private onStartAd() {
|
|
107
|
-
this._adIsPlaying = true
|
|
123
|
+
this._adIsPlaying = true
|
|
108
124
|
if (this.$bigMuteBtnContainer) {
|
|
109
|
-
this.$bigMuteBtnContainer.addClass('hide')
|
|
125
|
+
this.$bigMuteBtnContainer.addClass('hide')
|
|
110
126
|
}
|
|
111
127
|
}
|
|
112
128
|
|
|
113
129
|
private onFinishAd() {
|
|
114
|
-
this._adIsPlaying = false
|
|
130
|
+
this._adIsPlaying = false
|
|
115
131
|
if (this.$bigMuteBtnContainer) {
|
|
116
|
-
this.$bigMuteBtnContainer.removeClass('hide')
|
|
132
|
+
this.$bigMuteBtnContainer.removeClass('hide')
|
|
117
133
|
}
|
|
118
134
|
}
|
|
119
135
|
|
|
120
136
|
private shouldRender() {
|
|
121
|
-
const container = this.core.activeContainer
|
|
137
|
+
const container = this.core.activeContainer
|
|
122
138
|
|
|
123
139
|
if (!container) {
|
|
124
|
-
return false
|
|
140
|
+
return false
|
|
125
141
|
}
|
|
126
142
|
|
|
127
|
-
const { autoPlay, wasMuted } = this.options
|
|
128
|
-
const volume = container.volume
|
|
143
|
+
const { autoPlay, wasMuted } = this.options
|
|
144
|
+
const volume = container.volume
|
|
129
145
|
|
|
130
146
|
trace(`${T} shouldRender`, {
|
|
131
147
|
autoPlay,
|
|
132
148
|
wasMuted,
|
|
133
149
|
volume,
|
|
134
|
-
})
|
|
150
|
+
})
|
|
135
151
|
|
|
136
|
-
return autoPlay && !wasMuted && volume === 0
|
|
152
|
+
return autoPlay && !wasMuted && volume === 0
|
|
137
153
|
}
|
|
138
154
|
|
|
155
|
+
/**
|
|
156
|
+
* @internal
|
|
157
|
+
*/
|
|
139
158
|
override render() {
|
|
140
159
|
if (this.shouldRender()) {
|
|
141
160
|
trace(`${T} render`, {
|
|
142
161
|
el: !!this.$el,
|
|
143
|
-
})
|
|
144
|
-
this.$el.html(
|
|
162
|
+
})
|
|
163
|
+
this.$el.html(BigMuteButton.template())
|
|
145
164
|
|
|
146
|
-
this.$bigMuteBtnContainer = this.$el.find(
|
|
147
|
-
|
|
165
|
+
this.$bigMuteBtnContainer = this.$el.find(
|
|
166
|
+
'.big-mute-icon-wrapper[data-big-mute]',
|
|
167
|
+
)
|
|
168
|
+
this._adIsPlaying && this.$bigMuteBtnContainer.addClass('hide')
|
|
148
169
|
|
|
149
|
-
this.$bigMuteButton = this.$bigMuteBtnContainer.find('.big-mute-icon')
|
|
150
|
-
this.$bigMuteButton.append(volumeMuteIcon)
|
|
170
|
+
this.$bigMuteButton = this.$bigMuteBtnContainer.find('.big-mute-icon')
|
|
171
|
+
this.$bigMuteButton.append(volumeMuteIcon)
|
|
151
172
|
|
|
152
|
-
const container = this.core.activeContainer
|
|
173
|
+
const container = this.core.activeContainer
|
|
153
174
|
|
|
154
|
-
container.$el.append(this.$el.get(0))
|
|
175
|
+
container.$el.append(this.$el.get(0))
|
|
155
176
|
}
|
|
156
177
|
|
|
157
|
-
return this
|
|
178
|
+
return this
|
|
158
179
|
}
|
|
159
180
|
|
|
160
181
|
private hideBigMuteBtn() {
|
|
161
|
-
this.isBigMuteButtonHidden = true
|
|
162
|
-
this.$bigMuteBtnContainer?.addClass('hide')
|
|
182
|
+
this.isBigMuteButtonHidden = true
|
|
183
|
+
this.$bigMuteBtnContainer?.addClass('hide')
|
|
163
184
|
}
|
|
164
185
|
|
|
165
186
|
private showBigMuteBtn() {
|
|
166
|
-
this.isBigMuteButtonHidden = false
|
|
187
|
+
this.isBigMuteButtonHidden = false
|
|
167
188
|
if (this.$bigMuteBtnContainer) {
|
|
168
|
-
this.$bigMuteBtnContainer.removeClass('hide')
|
|
189
|
+
this.$bigMuteBtnContainer.removeClass('hide')
|
|
169
190
|
}
|
|
170
191
|
}
|
|
171
192
|
|
|
172
193
|
private destroyBigMuteBtn(e?: MouseEvent) {
|
|
173
|
-
this.hideBigMuteBtn()
|
|
194
|
+
this.hideBigMuteBtn()
|
|
174
195
|
|
|
175
196
|
if (e && e.stopPropagation) {
|
|
176
|
-
e.stopPropagation()
|
|
197
|
+
e.stopPropagation()
|
|
177
198
|
}
|
|
178
199
|
|
|
179
|
-
this.destroy()
|
|
200
|
+
this.destroy()
|
|
180
201
|
}
|
|
181
202
|
|
|
182
203
|
private handleBigMuteBtnClick(e: MouseEvent) {
|
|
183
|
-
const localVolume = Utils.Config.restore('volume')
|
|
184
|
-
const volume = !isNaN(localVolume) ? localVolume : 100
|
|
204
|
+
const localVolume = Utils.Config.restore('volume')
|
|
205
|
+
const volume = !isNaN(localVolume) ? localVolume : 100
|
|
185
206
|
|
|
186
207
|
// TODO use container.setVolume() instead
|
|
187
|
-
this.core.mediaControl.setVolume(volume === 0 ? 100 : volume)
|
|
208
|
+
this.core.mediaControl.setVolume(volume === 0 ? 100 : volume)
|
|
188
209
|
|
|
189
|
-
this.destroyBigMuteBtn(e)
|
|
210
|
+
this.destroyBigMuteBtn(e)
|
|
190
211
|
}
|
|
191
212
|
}
|