@gcorevideo/player 2.19.11 → 2.19.13
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/dist/core.js +16 -11
- package/dist/index.css +684 -684
- package/dist/index.js +301 -151
- package/dist/player.d.ts +208 -45
- package/dist/plugins/index.css +941 -941
- package/dist/plugins/index.js +3227 -3080
- package/docs/api/player.bottomgear.md +3 -289
- package/docs/api/player.dvrcontrols._constructor_.md +3 -0
- package/docs/api/player.dvrcontrols.md +10 -201
- package/docs/api/player.levelselector.md +8 -140
- package/docs/api/player.md +8 -4
- package/docs/api/player.mediacontrol.disable.md +2 -0
- package/docs/api/player.mediacontrol.disabledcontrolbutton.md +1 -1
- package/docs/api/player.mediacontrol.enable.md +2 -0
- package/docs/api/player.mediacontrol.enablecontrolbutton.md +1 -1
- package/docs/api/player.mediacontrol.getelement.md +19 -1
- package/docs/api/player.mediacontrol.md +17 -281
- package/docs/api/player.mediacontrol.volume.md +2 -2
- package/docs/api/player.mediacontrolelement.md +2 -1
- package/docs/api/player.poster.disable.md +5 -0
- package/docs/api/player.poster.enable.md +5 -0
- package/docs/api/player.poster.md +25 -183
- package/lib/Player.d.ts +1 -0
- package/lib/Player.d.ts.map +1 -1
- package/lib/Player.js +15 -10
- package/lib/plugins/audio-selector/AudioSelector.js +2 -2
- package/lib/plugins/big-mute-button/BigMuteButton.d.ts.map +1 -1
- package/lib/plugins/big-mute-button/BigMuteButton.js +2 -1
- package/lib/plugins/bottom-gear/BottomGear.d.ts +28 -7
- package/lib/plugins/bottom-gear/BottomGear.d.ts.map +1 -1
- package/lib/plugins/bottom-gear/BottomGear.js +44 -31
- package/lib/plugins/clappr-nerd-stats/ClapprNerdStats.d.ts.map +1 -1
- package/lib/plugins/clappr-nerd-stats/ClapprNerdStats.js +3 -2
- package/lib/plugins/clappr-stats/ClapprStats.js +1 -1
- package/lib/plugins/click-to-pause/ClickToPause.js +1 -1
- package/lib/plugins/clips/Clips.js +2 -2
- package/lib/plugins/context-menu/ContextMenu.js +1 -1
- package/lib/plugins/disable-controls/DisableControls.js +1 -1
- package/lib/plugins/dvr-controls/DvrControls.d.ts +30 -4
- package/lib/plugins/dvr-controls/DvrControls.d.ts.map +1 -1
- package/lib/plugins/dvr-controls/DvrControls.js +39 -11
- package/lib/plugins/error-screen/ErrorScreen.d.ts.map +1 -1
- package/lib/plugins/error-screen/ErrorScreen.js +2 -1
- package/lib/plugins/favicon/Favicon.js +1 -1
- package/lib/plugins/google-analytics/GoogleAnalytics.js +1 -1
- package/lib/plugins/level-selector/LevelSelector.d.ts +25 -6
- package/lib/plugins/level-selector/LevelSelector.d.ts.map +1 -1
- package/lib/plugins/level-selector/LevelSelector.js +33 -12
- package/lib/plugins/logo/Logo.js +1 -1
- package/lib/plugins/media-control/MediaControl.d.ts +66 -22
- package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
- package/lib/plugins/media-control/MediaControl.js +71 -34
- package/lib/plugins/multi-camera/MultiCamera.js +3 -3
- package/lib/plugins/picture-in-picture/PictureInPicture.js +3 -3
- package/lib/plugins/playback-rate/PlaybackRate.d.ts.map +1 -1
- package/lib/plugins/playback-rate/PlaybackRate.js +3 -3
- package/lib/plugins/poster/Poster.d.ts +57 -3
- package/lib/plugins/poster/Poster.d.ts.map +1 -1
- package/lib/plugins/poster/Poster.js +57 -9
- package/lib/plugins/seek-time/SeekTime.js +2 -2
- package/lib/plugins/share/Share.js +2 -2
- package/lib/plugins/skip-time/SkipTime.js +1 -1
- package/lib/plugins/source-controller/SourceController.d.ts.map +1 -1
- package/lib/plugins/source-controller/SourceController.js +1 -2
- package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.js +1 -1
- package/lib/plugins/statistics/Statistics.js +1 -1
- package/lib/plugins/subtitles/Subtitles.js +3 -3
- package/lib/plugins/thumbnails/Thumbnails.js +3 -3
- package/lib/plugins/types.d.ts +1 -7
- package/lib/plugins/types.d.ts.map +1 -1
- package/lib/plugins/vast-ads/VastAds.d.ts +1 -0
- package/lib/plugins/vast-ads/VastAds.d.ts.map +1 -1
- package/lib/plugins/vast-ads/VastAds.js +6 -3
- package/package.json +2 -1
- package/src/Player.ts +15 -9
- package/src/__tests__/Player.test.ts +15 -76
- package/src/plugins/audio-selector/AudioSelector.ts +2 -2
- package/src/plugins/big-mute-button/BigMuteButton.ts +2 -1
- package/src/plugins/bottom-gear/BottomGear.ts +50 -39
- package/src/plugins/clappr-nerd-stats/ClapprNerdStats.ts +3 -2
- package/src/plugins/clappr-stats/ClapprStats.ts +1 -1
- package/src/plugins/click-to-pause/ClickToPause.ts +1 -1
- package/src/plugins/clips/Clips.ts +2 -2
- package/src/plugins/context-menu/ContextMenu.ts +1 -1
- package/src/plugins/disable-controls/DisableControls.ts +1 -1
- package/src/plugins/dvr-controls/DvrControls.ts +42 -14
- package/src/plugins/error-screen/ErrorScreen.ts +2 -1
- package/src/plugins/favicon/Favicon.ts +1 -1
- package/src/plugins/google-analytics/GoogleAnalytics.ts +1 -1
- package/src/plugins/level-selector/LevelSelector.ts +34 -14
- package/src/plugins/level-selector/__tests__/LevelSelector.test.ts +22 -2
- package/src/plugins/logo/Logo.ts +1 -1
- package/src/plugins/media-control/MediaControl.ts +82 -44
- package/src/plugins/multi-camera/MultiCamera.ts +3 -3
- package/src/plugins/picture-in-picture/PictureInPicture.ts +3 -3
- package/src/plugins/playback-rate/PlaybackRate.ts +3 -4
- package/src/plugins/poster/Poster.ts +59 -12
- package/src/plugins/seek-time/SeekTime.ts +2 -2
- package/src/plugins/share/Share.ts +2 -2
- package/src/plugins/skip-time/SkipTime.ts +1 -1
- package/src/plugins/source-controller/SourceController.ts +1 -2
- package/src/plugins/source-controller/__tests__/SourceController.test.ts +5 -0
- package/src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts +1 -1
- package/src/plugins/statistics/Statistics.ts +1 -1
- package/src/plugins/subtitles/Subtitles.ts +3 -3
- package/src/plugins/thumbnails/Thumbnails.ts +3 -3
- package/src/plugins/types.ts +1 -0
- package/src/plugins/vast-ads/VastAds.ts +6 -6
- package/temp/player.api.json +3300 -5029
- package/tsconfig.tsbuildinfo +1 -1
- package/docs/api/player.bottomgear.attributes.md +0 -17
- package/docs/api/player.bottomgear.bindevents.md +0 -18
- package/docs/api/player.bottomgear.container.md +0 -14
- package/docs/api/player.bottomgear.events.md +0 -16
- package/docs/api/player.bottomgear.hide.md +0 -18
- package/docs/api/player.bottomgear.name.md +0 -14
- package/docs/api/player.bottomgear.refresh.md +0 -18
- package/docs/api/player.bottomgear.reload.md +0 -18
- package/docs/api/player.bottomgear.render.md +0 -18
- package/docs/api/player.bottomgear.supportedversion.md +0 -16
- package/docs/api/player.bottomgear.template.md +0 -14
- package/docs/api/player.bottomgear.togglegearmenu.md +0 -18
- package/docs/api/player.bottomgear.unbindevents.md +0 -18
- package/docs/api/player.bottomgear.version.md +0 -14
- package/docs/api/player.dvrcontrols.attributes.md +0 -14
- package/docs/api/player.dvrcontrols.bindevents.md +0 -15
- package/docs/api/player.dvrcontrols.click.md +0 -15
- package/docs/api/player.dvrcontrols.events.md +0 -13
- package/docs/api/player.dvrcontrols.name.md +0 -11
- package/docs/api/player.dvrcontrols.render.md +0 -15
- package/docs/api/player.dvrcontrols.settingsupdate.md +0 -15
- package/docs/api/player.dvrcontrols.shouldrender.md +0 -15
- package/docs/api/player.dvrcontrols.supportedversion.md +0 -13
- package/docs/api/player.dvrcontrols.template.md +0 -11
- package/docs/api/player.levelselector.attributes.md +0 -17
- package/docs/api/player.levelselector.bindevents.md +0 -18
- package/docs/api/player.levelselector.name.md +0 -14
- package/docs/api/player.levelselector.render.md +0 -18
- package/docs/api/player.levelselector.supportedversion.md +0 -16
- package/docs/api/player.levelselector.version.md +0 -14
- package/docs/api/player.mediacontrol.attributes.md +0 -17
- package/docs/api/player.mediacontrol.bindcontainerevents.md +0 -18
- package/docs/api/player.mediacontrol.bindevents.md +0 -18
- package/docs/api/player.mediacontrol.container.md +0 -14
- package/docs/api/player.mediacontrol.destroy.md +0 -18
- package/docs/api/player.mediacontrol.disabled.md +0 -14
- package/docs/api/player.mediacontrol.events.md +0 -40
- package/docs/api/player.mediacontrol.getexternalinterface.md +0 -21
- package/docs/api/player.mediacontrol.name.md +0 -14
- package/docs/api/player.mediacontrol.pause.md +0 -20
- package/docs/api/player.mediacontrol.play.md +0 -20
- package/docs/api/player.mediacontrol.playback.md +0 -14
- package/docs/api/player.mediacontrol.render.md +0 -18
- package/docs/api/player.mediacontrol.setmuted.md +0 -52
- package/docs/api/player.mediacontrol.stop.md +0 -20
- package/docs/api/player.mediacontrol.supportedversion.md +0 -16
- package/docs/api/player.poster.attributes.md +0 -14
- package/docs/api/player.poster.bindevents.md +0 -15
- package/docs/api/player.poster.destroy.md +0 -15
- package/docs/api/player.poster.events.md +0 -13
- package/docs/api/player.poster.name.md +0 -11
- package/docs/api/player.poster.render.md +0 -15
- package/docs/api/player.poster.shouldrender.md +0 -11
- package/docs/api/player.poster.showonvideoend.md +0 -11
- package/docs/api/player.poster.supportedversion.md +0 -13
- package/docs/api/player.poster.template.md +0 -11
- package/src/plugins/build.ts +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Events, UICorePlugin, Browser, template, $, } from '@clappr/core';
|
|
2
2
|
import { reportError } from '@gcorevideo/utils';
|
|
3
3
|
import assert from 'assert';
|
|
4
|
-
import { CLAPPR_VERSION } from '
|
|
4
|
+
import { CLAPPR_VERSION } from '../../build.js';
|
|
5
5
|
import '../../../assets/subtitles/style.scss';
|
|
6
6
|
import subtitlesOffIcon from '../../../assets/icons/new/subtitles-off.svg';
|
|
7
7
|
import subtitlesOnIcon from '../../../assets/icons/new/subtitles-on.svg';
|
|
@@ -10,7 +10,7 @@ import stringHTML from '../../../assets/subtitles/string.ejs';
|
|
|
10
10
|
import { isFullscreen } from '../utils.js';
|
|
11
11
|
const VERSION = '0.0.1';
|
|
12
12
|
const LOCAL_STORAGE_SUBTITLES_ID = 'subtitles_select';
|
|
13
|
-
const T = 'plugins.
|
|
13
|
+
const T = 'plugins.media_control_subtitles';
|
|
14
14
|
const NO_TRACK = { language: 'off' };
|
|
15
15
|
export class Subtitles extends UICorePlugin {
|
|
16
16
|
currentContainer;
|
|
@@ -20,7 +20,7 @@ export class Subtitles extends UICorePlugin {
|
|
|
20
20
|
tracks;
|
|
21
21
|
$string;
|
|
22
22
|
get name() {
|
|
23
|
-
return '
|
|
23
|
+
return 'media_control_subtitles';
|
|
24
24
|
}
|
|
25
25
|
get supportedVersion() {
|
|
26
26
|
return { min: CLAPPR_VERSION };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { UICorePlugin, Events, template, $ } from '@clappr/core';
|
|
2
2
|
import { reportError, trace } from '@gcorevideo/utils';
|
|
3
3
|
import parseSRT from 'parse-srt';
|
|
4
|
-
import { CLAPPR_VERSION } from '
|
|
4
|
+
import { CLAPPR_VERSION } from '../../build.js';
|
|
5
5
|
import pluginHtml from '../../../assets/thumbnails/scrub-thumbnails.ejs';
|
|
6
6
|
import '../../../assets/thumbnails/style.scss';
|
|
7
7
|
import { getPageX } from '../utils.js';
|
|
8
|
-
const T = 'plugins.
|
|
8
|
+
const T = 'plugins.media_control_thumbnails';
|
|
9
9
|
export class Thumbnails extends UICorePlugin {
|
|
10
10
|
_$spotlight = null;
|
|
11
11
|
_$backdrop = null;
|
|
@@ -21,7 +21,7 @@ export class Thumbnails extends UICorePlugin {
|
|
|
21
21
|
_oldContainer = null;
|
|
22
22
|
_thumbs = [];
|
|
23
23
|
get name() {
|
|
24
|
-
return '
|
|
24
|
+
return 'media_control_thumbnails';
|
|
25
25
|
}
|
|
26
26
|
get supportedVersion() {
|
|
27
27
|
return { min: CLAPPR_VERSION };
|
package/lib/plugins/types.d.ts
CHANGED
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export type ZeptoResult = ReturnType<typeof $>;
|
|
3
|
-
export type TimePosition = {
|
|
4
|
-
current: number;
|
|
5
|
-
total: number;
|
|
6
|
-
};
|
|
7
|
-
export type TimerId = ReturnType<typeof setTimeout>;
|
|
1
|
+
export type TemplateFunction = (data: Record<string, unknown>) => string;
|
|
8
2
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/plugins/types.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/plugins/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VastAds.d.ts","sourceRoot":"","sources":["../../../src/plugins/vast-ads/VastAds.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,IAAI,EAIJ,QAAQ,EAER,YAAY,EAEb,MAAM,cAAc,CAAA;AAYrB,OAAO,qCAAqC,CAAA;AAQ5C,qBAAa,OAAQ,SAAQ,YAAY;IACvC,OAAO,CAAC,mBAAmB,CAAiC;IAE5D,OAAO,CAAC,qBAAqB,CAAwC;IAErE,OAAO,CAAC,oBAAoB,CAAwC;IAEpE,OAAO,CAAC,eAAe,CAAI;IAE3B,OAAO,CAAC,mBAAmB,CAAI;IAE/B,OAAO,CAAC,UAAU,CAAyB;IAE3C,OAAO,CAAC,SAAS,CAAyB;IAE1C,OAAO,CAAC,eAAe,CAA2B;IAElD,OAAO,CAAC,gBAAgB,CAAI;IAE5B,OAAO,CAAC,YAAY,CAAY;IAEhC,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO,CAAC,cAAc,CAAQ;IAE9B,OAAO,CAAC,aAAa,CAAuB;IAE5C,OAAO,CAAC,SAAS,CAAwB;IAEzC,OAAO,CAAC,cAAc,CAAQ;IAE9B,OAAO,CAAC,mBAAmB,CAA2B;IAEtD,OAAO,CAAC,aAAa,CAAiC;IAEtD,OAAO,CAAC,gBAAgB,CAAI;IAE5B,OAAO,CAAC,IAAI,CAA2B;IAEvC,OAAO,CAAC,OAAO,CAAK;IAEpB,OAAO,CAAC,uBAAuB,CAAI;IAEnC,OAAO,CAAC,0BAA0B,CAAI;IAEtC,OAAO,CAAC,YAAY,CAAoB;IAExC,OAAO,CAAC,OAAO,CAA2B;IAE1C,OAAO,CAAC,SAAS,CAA2B;IAE5C,OAAO,CAAC,UAAU,CAA2B;IAE7C,OAAO,CAAC,aAAa,CAA2B;IAEhD,OAAO,CAAC,YAAY,CAA2B;IAE/C,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,MAAM,KAAK,OAAO,WAEjB;IAED,IAAI,YAAY,QAEf;IAED,IAAa,UAAU;;;MAKtB;gBAEW,IAAI,EAAE,IAAI;IAqEb,UAAU;IA8FnB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,oBAAoB;IAkE5B,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,qBAAqB;IAwD7B,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,uBAAuB;IAuC/B,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,mBAAmB;IAiD3B,YAAY;IASZ,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,YAAY;IA6BpB,IAAI,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAG3B;IAED,IAAI,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAE9B;IAED,OAAO,CAAC,kBAAkB;IAU1B,gBAAgB,CAAC,CAAC,EAAE,MAAM;IAQ1B,cAAc;IAsBd,eAAe;IAkBf,WAAW;IAiBX,OAAO,CAAC,UAAU;IA+ClB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,iBAAiB;IAiHhB,MAAM;
|
|
1
|
+
{"version":3,"file":"VastAds.d.ts","sourceRoot":"","sources":["../../../src/plugins/vast-ads/VastAds.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,IAAI,EAIJ,QAAQ,EAER,YAAY,EAEb,MAAM,cAAc,CAAA;AAYrB,OAAO,qCAAqC,CAAA;AAQ5C,qBAAa,OAAQ,SAAQ,YAAY;IACvC,OAAO,CAAC,mBAAmB,CAAiC;IAE5D,OAAO,CAAC,qBAAqB,CAAwC;IAErE,OAAO,CAAC,oBAAoB,CAAwC;IAEpE,OAAO,CAAC,eAAe,CAAI;IAE3B,OAAO,CAAC,mBAAmB,CAAI;IAE/B,OAAO,CAAC,UAAU,CAAyB;IAE3C,OAAO,CAAC,SAAS,CAAyB;IAE1C,OAAO,CAAC,eAAe,CAA2B;IAElD,OAAO,CAAC,gBAAgB,CAAI;IAE5B,OAAO,CAAC,YAAY,CAAY;IAEhC,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO,CAAC,cAAc,CAAQ;IAE9B,OAAO,CAAC,aAAa,CAAuB;IAE5C,OAAO,CAAC,SAAS,CAAwB;IAEzC,OAAO,CAAC,cAAc,CAAQ;IAE9B,OAAO,CAAC,mBAAmB,CAA2B;IAEtD,OAAO,CAAC,aAAa,CAAiC;IAEtD,OAAO,CAAC,gBAAgB,CAAI;IAE5B,OAAO,CAAC,IAAI,CAA2B;IAEvC,OAAO,CAAC,OAAO,CAAK;IAEpB,OAAO,CAAC,uBAAuB,CAAI;IAEnC,OAAO,CAAC,0BAA0B,CAAI;IAEtC,OAAO,CAAC,YAAY,CAAoB;IAExC,OAAO,CAAC,OAAO,CAA2B;IAE1C,OAAO,CAAC,SAAS,CAA2B;IAE5C,OAAO,CAAC,UAAU,CAA2B;IAE7C,OAAO,CAAC,aAAa,CAA2B;IAEhD,OAAO,CAAC,YAAY,CAA2B;IAE/C,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,MAAM,KAAK,OAAO,WAEjB;IAED,IAAI,YAAY,QAEf;IAED,IAAa,UAAU;;;MAKtB;gBAEW,IAAI,EAAE,IAAI;IAqEb,UAAU;IA8FnB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,oBAAoB;IAkE5B,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,qBAAqB;IAwD7B,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,uBAAuB;IAuC/B,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,mBAAmB;IAiD3B,YAAY;IASZ,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,YAAY;IA6BpB,IAAI,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAG3B;IAED,IAAI,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAE9B;IAED,OAAO,CAAC,kBAAkB;IAU1B,gBAAgB,CAAC,CAAC,EAAE,MAAM;IAQ1B,cAAc;IAsBd,eAAe;IAkBf,WAAW;IAiBX,OAAO,CAAC,UAAU;IA+ClB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,iBAAiB;IAiHhB,MAAM;IAqBf,OAAO,CAAC,QAAQ;CAGjB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { $, Browser, Events, HTML5Video, Log, UICorePlugin, Utils, } from '@clappr/core';
|
|
2
2
|
import { reportError } from '@gcorevideo/utils';
|
|
3
3
|
import assert from 'assert';
|
|
4
|
-
import { CLAPPR_VERSION } from '
|
|
4
|
+
import { CLAPPR_VERSION } from '../../build.js';
|
|
5
5
|
import RollManager from './rollmanager.js';
|
|
6
6
|
import SCTEManager from './sctemanager.js';
|
|
7
7
|
import { VolumeFadeEvents } from '../volume-fade/VolumeFade.js';
|
|
@@ -604,7 +604,7 @@ export class VastAds extends UICorePlugin {
|
|
|
604
604
|
setTimeout(async () => {
|
|
605
605
|
if (currentRoll === 'scteroll') {
|
|
606
606
|
this.options.mute = this.core.options.mute;
|
|
607
|
-
this.
|
|
607
|
+
this.setMuted(this.core.options.mute);
|
|
608
608
|
this.core.mediaControl.setInitialVolume();
|
|
609
609
|
}
|
|
610
610
|
// this.adTemplates = null;
|
|
@@ -659,7 +659,7 @@ export class VastAds extends UICorePlugin {
|
|
|
659
659
|
}
|
|
660
660
|
await this.playback?.play();
|
|
661
661
|
this.options.mute = this.core.options.mute;
|
|
662
|
-
this.
|
|
662
|
+
this.setMuted(this.core.options.mute);
|
|
663
663
|
this.core.mediaControl.setInitialVolume();
|
|
664
664
|
}
|
|
665
665
|
}, 0);
|
|
@@ -683,4 +683,7 @@ export class VastAds extends UICorePlugin {
|
|
|
683
683
|
this._adContainer = this._$adContainer[0];
|
|
684
684
|
return this;
|
|
685
685
|
}
|
|
686
|
+
setMuted(muted) {
|
|
687
|
+
this.core.activeContainer.options.mute = muted;
|
|
688
|
+
}
|
|
686
689
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gcorevideo/player",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.13",
|
|
4
4
|
"description": "Gcore JavaScript video player",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
"@rollup/plugin-json": "^6.1.0",
|
|
37
37
|
"@rollup/plugin-node-resolve": "^15.3.0",
|
|
38
38
|
"@sinonjs/fake-timers": "^14.0.0",
|
|
39
|
+
"@types/assert": "^1.5.11",
|
|
39
40
|
"@types/human-format": "^1.0.3",
|
|
40
41
|
"@types/mousetrap": "^1.6.15",
|
|
41
42
|
"@types/node": "^22.10.1",
|
package/src/Player.ts
CHANGED
|
@@ -353,6 +353,8 @@ export class Player {
|
|
|
353
353
|
|
|
354
354
|
private initPlayer(coreOptions: CoreOptions): void {
|
|
355
355
|
trace(`${T} initPlayer`, {
|
|
356
|
+
autoPlay: coreOptions.autoPlay,
|
|
357
|
+
sources: coreOptions.sources,
|
|
356
358
|
// TODO selected options
|
|
357
359
|
})
|
|
358
360
|
|
|
@@ -372,12 +374,7 @@ export class Player {
|
|
|
372
374
|
null,
|
|
373
375
|
)
|
|
374
376
|
if (this.config.autoPlay) {
|
|
375
|
-
|
|
376
|
-
setTimeout(() => {
|
|
377
|
-
this.player?.play({
|
|
378
|
-
autoPlay: true,
|
|
379
|
-
})
|
|
380
|
-
}, 0)
|
|
377
|
+
this.triggerAutoPlay()
|
|
381
378
|
}
|
|
382
379
|
try {
|
|
383
380
|
this.emitter.emit(PlayerEvent.Ready)
|
|
@@ -386,6 +383,15 @@ export class Player {
|
|
|
386
383
|
}
|
|
387
384
|
}
|
|
388
385
|
|
|
386
|
+
private triggerAutoPlay() {
|
|
387
|
+
trace(`${T} triggerAutoPlay`)
|
|
388
|
+
setTimeout(() => {
|
|
389
|
+
this.player?.play({
|
|
390
|
+
autoPlay: true,
|
|
391
|
+
})
|
|
392
|
+
}, 0)
|
|
393
|
+
}
|
|
394
|
+
|
|
389
395
|
private safeTriggerEvent<E extends PlayerEvent>(event: E, ...args: PlayerEventParams<E>) {
|
|
390
396
|
try {
|
|
391
397
|
this.emitter.emit(event, ...args)
|
|
@@ -441,7 +447,6 @@ export class Player {
|
|
|
441
447
|
|
|
442
448
|
const coreOptions: CoreOptions & PluginOptions = $.extend(true, {
|
|
443
449
|
allowUserInteraction: true,
|
|
444
|
-
autoPlay: false,
|
|
445
450
|
debug: 'none',
|
|
446
451
|
events: this.events,
|
|
447
452
|
height: rootNode.clientHeight,
|
|
@@ -457,9 +462,10 @@ export class Player {
|
|
|
457
462
|
},
|
|
458
463
|
parent: rootNode,
|
|
459
464
|
width: rootNode.clientWidth,
|
|
460
|
-
source: source ? source.source : undefined,
|
|
461
|
-
mimeType: source ? source.mimeType : undefined,
|
|
462
465
|
}, this.config, {
|
|
466
|
+
autoPlay: false,
|
|
467
|
+
mimeType: source ? source.mimeType : undefined,
|
|
468
|
+
source: source ? source.source : undefined,
|
|
463
469
|
sources,
|
|
464
470
|
})
|
|
465
471
|
return coreOptions
|
|
@@ -146,86 +146,25 @@ describe('Player', () => {
|
|
|
146
146
|
expect(PlayerClappr).toHaveBeenCalledWith(
|
|
147
147
|
expect.objectContaining({
|
|
148
148
|
source,
|
|
149
|
+
// TODO sources
|
|
149
150
|
}),
|
|
150
151
|
)
|
|
151
152
|
})
|
|
152
153
|
},
|
|
153
154
|
)
|
|
154
155
|
})
|
|
156
|
+
describe('autoPlay', () => {
|
|
157
|
+
describe('initially', () => {
|
|
158
|
+
it('should reset to false', () => {
|
|
159
|
+
const player = new Player({autoPlay: true, sources: []})
|
|
160
|
+
const node = document.createElement('div')
|
|
161
|
+
player.attachTo(node)
|
|
162
|
+
expect(PlayerClappr).toHaveBeenCalledWith(
|
|
163
|
+
expect.objectContaining({
|
|
164
|
+
autoPlay: false,
|
|
165
|
+
}),
|
|
166
|
+
)
|
|
167
|
+
})
|
|
168
|
+
})
|
|
169
|
+
})
|
|
155
170
|
})
|
|
156
|
-
|
|
157
|
-
class MockPlayback extends EventLite {
|
|
158
|
-
constructor(
|
|
159
|
-
protected options: any,
|
|
160
|
-
readonly i18n: any,
|
|
161
|
-
protected playerError?: any,
|
|
162
|
-
) {
|
|
163
|
-
super()
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
get name() {
|
|
167
|
-
return 'mock'
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
consent() {}
|
|
171
|
-
|
|
172
|
-
play() {}
|
|
173
|
-
|
|
174
|
-
pause() {}
|
|
175
|
-
|
|
176
|
-
stop() {}
|
|
177
|
-
|
|
178
|
-
destroy() {}
|
|
179
|
-
|
|
180
|
-
seek() {}
|
|
181
|
-
|
|
182
|
-
seekPercentage() {}
|
|
183
|
-
|
|
184
|
-
getDuration() {
|
|
185
|
-
return 100
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
enterPiP() {}
|
|
189
|
-
|
|
190
|
-
exitPiP() {}
|
|
191
|
-
|
|
192
|
-
getPlaybackType() {
|
|
193
|
-
return 'live'
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
getStartTimeOffset() {
|
|
197
|
-
return 0
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
getCurrentTime() {
|
|
201
|
-
return 0
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
isHighDefinitionInUse() {
|
|
205
|
-
return false
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
mute() {}
|
|
209
|
-
|
|
210
|
-
unmute() {}
|
|
211
|
-
|
|
212
|
-
volume() {}
|
|
213
|
-
|
|
214
|
-
configure() {}
|
|
215
|
-
|
|
216
|
-
attemptAutoPlay() {
|
|
217
|
-
return true
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
canAutoPlay() {
|
|
221
|
-
return true
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
onResize() {
|
|
225
|
-
return true
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
trigger(event: string, ...args: any[]) {
|
|
229
|
-
this.emit(event, ...args)
|
|
230
|
-
}
|
|
231
|
-
}
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
Events as HlsEvents,
|
|
7
7
|
} from 'hls.js';
|
|
8
8
|
|
|
9
|
-
import { CLAPPR_VERSION } from '
|
|
9
|
+
import { CLAPPR_VERSION } from '../../build.js';
|
|
10
10
|
|
|
11
11
|
import pluginHtml from '../../../assets/audio-selector/track-selector.ejs';
|
|
12
12
|
import '../../../assets/audio-selector/style.scss';
|
|
@@ -49,7 +49,7 @@ export class AudioSelector extends UICorePlugin {
|
|
|
49
49
|
private tracks: AudioTrackItem[] = [];
|
|
50
50
|
|
|
51
51
|
get name() {
|
|
52
|
-
return '
|
|
52
|
+
return 'media_control_audio_selector';
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
get supportedVersion() {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Events, template, UICorePlugin, Utils } from '@clappr/core';
|
|
2
2
|
import { trace } from '@gcorevideo/utils';
|
|
3
3
|
|
|
4
|
-
import { CLAPPR_VERSION } from '
|
|
4
|
+
import { CLAPPR_VERSION } from '../../build.js';
|
|
5
5
|
import { ZeptoResult } from "../../utils/types.js";
|
|
6
6
|
|
|
7
7
|
import volumeMuteIcon from '../../../assets/icons/new/volume-off.svg';
|
|
@@ -183,6 +183,7 @@ export class BigMuteButton extends UICorePlugin {
|
|
|
183
183
|
const localVolume = Utils.Config.restore('volume');
|
|
184
184
|
const volume = !isNaN(localVolume) ? localVolume : 100;
|
|
185
185
|
|
|
186
|
+
// TODO use container.setVolume() instead
|
|
186
187
|
this.core.mediaControl.setVolume(volume === 0 ? 100 : volume);
|
|
187
188
|
|
|
188
189
|
this.destroyBigMuteBtn(e);
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { UICorePlugin, template, Events } from '@clappr/core';
|
|
2
2
|
import { trace } from '@gcorevideo/utils';
|
|
3
|
+
import assert from 'assert';
|
|
3
4
|
|
|
4
|
-
import { CLAPPR_VERSION } from '
|
|
5
|
+
import { CLAPPR_VERSION } from '../../build.js';
|
|
5
6
|
|
|
6
7
|
import pluginHtml from '../../../assets/bottom-gear/bottomgear.ejs';
|
|
7
8
|
import '../../../assets/bottom-gear/gear.scss';
|
|
@@ -9,30 +10,45 @@ import '../../../assets/bottom-gear/gear-sub-menu.scss';
|
|
|
9
10
|
import gearIcon from '../../../assets/icons/new/gear.svg';
|
|
10
11
|
import gearHdIcon from '../../../assets/icons/new/gear-hd.svg';
|
|
11
12
|
|
|
12
|
-
const VERSION = '
|
|
13
|
+
const VERSION = '2.19.12';
|
|
14
|
+
|
|
15
|
+
const T = 'plugins.media_control_gear';
|
|
13
16
|
|
|
14
17
|
/**
|
|
18
|
+
* Adds the gear button that triggers extra options menu on the right side of the {@link MediaControl | media control} UI
|
|
15
19
|
* @beta
|
|
20
|
+
* @remarks
|
|
21
|
+
* The plugins provides a base for attaching custom settings UI in the gear menu
|
|
16
22
|
*/
|
|
17
23
|
export class BottomGear extends UICorePlugin {
|
|
18
24
|
private isHd = false;
|
|
19
25
|
|
|
26
|
+
/**
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
20
29
|
get name() {
|
|
21
|
-
return '
|
|
30
|
+
return 'media_control_gear';
|
|
22
31
|
}
|
|
23
32
|
|
|
33
|
+
/**
|
|
34
|
+
* @internal
|
|
35
|
+
*/
|
|
24
36
|
get supportedVersion() {
|
|
25
37
|
return { min: CLAPPR_VERSION };
|
|
26
38
|
}
|
|
27
39
|
|
|
40
|
+
/**
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
28
43
|
static get version() {
|
|
29
44
|
return VERSION;
|
|
30
45
|
}
|
|
31
46
|
|
|
32
|
-
|
|
33
|
-
return template(pluginHtml);
|
|
34
|
-
}
|
|
47
|
+
private static readonly template = template(pluginHtml)
|
|
35
48
|
|
|
49
|
+
/**
|
|
50
|
+
* @internal
|
|
51
|
+
*/
|
|
36
52
|
override get attributes() {
|
|
37
53
|
return {
|
|
38
54
|
'class': this.name,
|
|
@@ -40,47 +56,37 @@ export class BottomGear extends UICorePlugin {
|
|
|
40
56
|
};
|
|
41
57
|
}
|
|
42
58
|
|
|
59
|
+
/**
|
|
60
|
+
* @internal
|
|
61
|
+
*/
|
|
43
62
|
override get events() {
|
|
44
63
|
return {
|
|
45
64
|
'click .button-gear': 'toggleGearMenu',
|
|
46
65
|
};
|
|
47
66
|
}
|
|
48
67
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
68
|
+
/**
|
|
69
|
+
* @internal
|
|
70
|
+
*/
|
|
53
71
|
override bindEvents() {
|
|
72
|
+
const mediaControl = this.core.getPlugin('media_control');
|
|
73
|
+
assert(mediaControl, 'media_control plugin is required');
|
|
74
|
+
|
|
54
75
|
this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChanged);
|
|
55
|
-
this.listenTo(this.core, 'gear:refresh', this.refresh);
|
|
56
|
-
this.listenTo(
|
|
57
|
-
this.listenTo(
|
|
58
|
-
this.listenTo(
|
|
76
|
+
this.listenTo(this.core, 'gear:refresh', this.refresh); // TODO use direct plugin method call
|
|
77
|
+
// this.listenTo(mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.reload);
|
|
78
|
+
this.listenTo(mediaControl, Events.MEDIACONTROL_RENDERED, this.render);
|
|
79
|
+
this.listenTo(mediaControl, Events.MEDIACONTROL_HIDE, this.hide); // TODO mediacontrol show as well
|
|
59
80
|
this.bindContainerEvents();
|
|
60
81
|
}
|
|
61
82
|
|
|
62
|
-
unBindEvents() {
|
|
63
|
-
this.stopListening(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChanged);
|
|
64
|
-
this.stopListening(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.reload);
|
|
65
|
-
this.stopListening(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.render);
|
|
66
|
-
this.stopListening(this.core.mediaControl, Events.MEDIACONTROL_HIDE, this.hide);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
83
|
private onActiveContainerChanged() {
|
|
70
|
-
this.bindEvents();
|
|
71
84
|
this.bindContainerEvents();
|
|
72
85
|
}
|
|
73
86
|
|
|
74
87
|
private bindContainerEvents() {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
this.listenTo(this.container, Events.CONTAINER_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
reload() {
|
|
82
|
-
this.unBindEvents();
|
|
83
|
-
this.bindEvents();
|
|
88
|
+
trace(`${T} bindContainerEvents`);
|
|
89
|
+
this.listenTo(this.core.activeContainer, Events.CONTAINER_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate);
|
|
84
90
|
}
|
|
85
91
|
|
|
86
92
|
private highDefinitionUpdate(isHd: boolean) {
|
|
@@ -93,33 +99,38 @@ export class BottomGear extends UICorePlugin {
|
|
|
93
99
|
}
|
|
94
100
|
}
|
|
95
101
|
|
|
102
|
+
/**
|
|
103
|
+
* @internal
|
|
104
|
+
*/
|
|
96
105
|
override render() {
|
|
106
|
+
const mediaControl = this.core.getPlugin('media_control');
|
|
107
|
+
assert(mediaControl, 'media_control plugin is required');
|
|
108
|
+
|
|
109
|
+
// TODO use options.mediaControl.gear.items
|
|
97
110
|
const items = [
|
|
98
111
|
'quality',
|
|
99
112
|
'rate',
|
|
100
113
|
'nerd',
|
|
101
114
|
];
|
|
102
|
-
|
|
103
115
|
const icon = this.isHd ? gearHdIcon : gearIcon;
|
|
116
|
+
this.$el.html(BottomGear.template({ icon, items }));
|
|
104
117
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
this.core.mediaControl.$bottomGear?.html(this.el);
|
|
108
|
-
this.core.trigger('gear:rendered');
|
|
118
|
+
mediaControl.getElement('bottomGear')?.html(this.el);
|
|
119
|
+
this.core.trigger('gear:rendered'); // TODO trigger on mediaControl instead
|
|
109
120
|
|
|
110
121
|
return this;
|
|
111
122
|
}
|
|
112
123
|
|
|
113
|
-
refresh() {
|
|
124
|
+
private refresh() {
|
|
114
125
|
this.render();
|
|
115
126
|
this.$el.find('.gear-wrapper').show();
|
|
116
127
|
}
|
|
117
128
|
|
|
118
|
-
toggleGearMenu() {
|
|
129
|
+
private toggleGearMenu() {
|
|
119
130
|
this.$el.find('.gear-wrapper').toggle();
|
|
120
131
|
}
|
|
121
132
|
|
|
122
|
-
hide() {
|
|
133
|
+
private hide() {
|
|
123
134
|
this.$el.find('.gear-wrapper').hide();
|
|
124
135
|
}
|
|
125
136
|
}
|
|
@@ -2,7 +2,7 @@ import { UICorePlugin, Events, template, Core, Container } from '@clappr/core';
|
|
|
2
2
|
import { reportError } from '@gcorevideo/utils';
|
|
3
3
|
import Mousetrap from 'mousetrap';
|
|
4
4
|
|
|
5
|
-
import { CLAPPR_VERSION } from '
|
|
5
|
+
import { CLAPPR_VERSION } from '../../build.js';
|
|
6
6
|
import { ClapprStatsEvents, Metrics as BaseMetrics } from '../clappr-stats/types.js';
|
|
7
7
|
import { newMetrics as newBaseMetrics } from '../clappr-stats/utils.js';
|
|
8
8
|
import Formatter from './formatter.js';
|
|
@@ -125,7 +125,7 @@ export class ClapprNerdStats extends UICorePlugin {
|
|
|
125
125
|
private iconPosition: IconPosition;
|
|
126
126
|
|
|
127
127
|
get name() {
|
|
128
|
-
return '
|
|
128
|
+
return 'media_control_nerd_stats';
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
get supportedVersion() {
|
|
@@ -181,6 +181,7 @@ export class ClapprNerdStats extends UICorePlugin {
|
|
|
181
181
|
|
|
182
182
|
override bindEvents() {
|
|
183
183
|
this.listenToOnce(this.core, Events.CORE_READY, this.init);
|
|
184
|
+
// TODO trigger on mediaControl instead
|
|
184
185
|
this.listenTo(this.core, 'gear:rendered', this.addToBottomGear);
|
|
185
186
|
}
|
|
186
187
|
|
|
@@ -2,7 +2,7 @@ import { Container, ContainerPlugin, Events as CoreEvents, Log } from '@clappr/c
|
|
|
2
2
|
import type { QualityLevel, TimePosition, TimeProgress } from '../../playback.types.js';
|
|
3
3
|
import assert from 'assert';
|
|
4
4
|
|
|
5
|
-
import { CLAPPR_VERSION } from '
|
|
5
|
+
import { CLAPPR_VERSION } from '../../build.js';
|
|
6
6
|
import { TimerId } from '../../utils/types.js';
|
|
7
7
|
import type { Metrics, MetricsUpdateFn } from './types.js';
|
|
8
8
|
import { ClapprStatsEvents } from './types.js';
|
|
@@ -29,7 +29,7 @@ export class ClipsPlugin extends UICorePlugin {
|
|
|
29
29
|
private svgMask: ZeptoResult | null = null;
|
|
30
30
|
|
|
31
31
|
get name() {
|
|
32
|
-
return '
|
|
32
|
+
return 'media_control_clips';
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
override get attributes() {
|
|
@@ -154,7 +154,7 @@ export class ClipsPlugin extends UICorePlugin {
|
|
|
154
154
|
}
|
|
155
155
|
|
|
156
156
|
private setSVGMask(svg: string) {
|
|
157
|
-
this.core.mediaControl.setSVGMask(svg);
|
|
157
|
+
// this.core.mediaControl.setSVGMask(svg);
|
|
158
158
|
if (this.svgMask) {
|
|
159
159
|
this.svgMask.remove()
|
|
160
160
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UICorePlugin, Events, template, $, Core, Container } from '@clappr/core';
|
|
2
2
|
|
|
3
|
-
import { CLAPPR_VERSION } from '
|
|
3
|
+
import { CLAPPR_VERSION } from '../../build.js';
|
|
4
4
|
|
|
5
5
|
import '../../../assets/context-menu/context_menu.scss';
|
|
6
6
|
import templateHtml from '../../../assets/context-menu/context_menu.ejs';
|