@npo/player 1.10.1 → 1.10.2
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/lib/js/ads/ster.js +107 -0
- package/lib/js/ads/ster.js.map +1 -0
- package/lib/js/ads/ster.test.js +91 -0
- package/lib/js/ads/ster.test.js.map +1 -0
- package/lib/js/api/getstreamobject.js +18 -0
- package/lib/js/api/getstreamobject.js.map +1 -0
- package/lib/js/cdnproviders.js +13 -0
- package/lib/js/cdnproviders.js.map +1 -0
- package/lib/js/checks/safari.js +10 -0
- package/lib/js/checks/safari.js.map +1 -0
- package/lib/js/checks/safari.test.js +21 -0
- package/lib/js/checks/safari.test.js.map +1 -0
- package/lib/js/drm/verifydrm.js +25 -0
- package/lib/js/drm/verifydrm.js.map +1 -0
- package/lib/js/drm/verifydrm.test.js +18 -0
- package/lib/js/drm/verifydrm.test.js.map +1 -0
- package/lib/js/fragments/setfragments.js +66 -0
- package/lib/js/fragments/setfragments.js.map +1 -0
- package/lib/js/playeractions/customerrors.test.js +52 -0
- package/lib/js/playeractions/customerrors.test.js.map +1 -0
- package/lib/js/playeractions/handlers/customerrors.js +57 -0
- package/lib/js/playeractions/handlers/customerrors.js.map +1 -0
- package/lib/js/playeractions/handlers/error.js +15 -0
- package/lib/js/playeractions/handlers/error.js.map +1 -0
- package/lib/js/playeractions/handlers/error.test.js +45 -0
- package/lib/js/playeractions/handlers/error.test.js.map +1 -0
- package/lib/js/playeractions/handlers/handleoffsets.js +45 -0
- package/lib/js/playeractions/handlers/handleoffsets.js.map +1 -0
- package/lib/js/playeractions/handlers/handleoffsets.test.js +50 -0
- package/lib/js/playeractions/handlers/handleoffsets.test.js.map +1 -0
- package/lib/js/playeractions/handlers/processplayerconfig.js +28 -0
- package/lib/js/playeractions/handlers/processplayerconfig.js.map +1 -0
- package/lib/js/playeractions/handlers/resolvekeypress.js +47 -0
- package/lib/js/playeractions/handlers/resolvekeypress.js.map +1 -0
- package/lib/js/playeractions/playeractions.js +5 -0
- package/lib/js/playeractions/playeractions.js.map +1 -0
- package/lib/js/tracking/handlers/eventbinding.js +72 -0
- package/lib/js/tracking/handlers/eventbinding.js.map +1 -0
- package/lib/js/tracking/handlers/eventlogging.js +32 -0
- package/lib/js/tracking/handlers/eventlogging.js.map +1 -0
- package/lib/js/tracking/handlers/playertrackerinit.js +20 -0
- package/lib/js/tracking/handlers/playertrackerinit.js.map +1 -0
- package/lib/js/tracking/handlers/playertrackerstart.js +22 -0
- package/lib/js/tracking/handlers/playertrackerstart.js.map +1 -0
- package/lib/js/tracking/playertracker.js +5 -0
- package/lib/js/tracking/playertracker.js.map +1 -0
- package/lib/js/ui/components/adbutton.js +12 -0
- package/lib/js/ui/components/adbutton.js.map +1 -0
- package/lib/js/ui/components/adlabel.js +8 -0
- package/lib/js/ui/components/adlabel.js.map +1 -0
- package/lib/js/ui/components/buttons.js +86 -0
- package/lib/js/ui/components/buttons.js.map +1 -0
- package/lib/js/ui/components/controlbar.js +58 -0
- package/lib/js/ui/components/controlbar.js.map +1 -0
- package/lib/js/ui/components/ctabar.d.ts +1 -1
- package/lib/js/ui/components/ctabar.js +24 -0
- package/lib/js/ui/components/ctabar.js.map +1 -0
- package/lib/js/ui/components/nativemobile/addFragments.js +8 -0
- package/lib/js/ui/components/nativemobile/addFragments.js.map +1 -0
- package/lib/js/ui/components/nativemobile/buttons.js +43 -0
- package/lib/js/ui/components/nativemobile/buttons.js.map +1 -0
- package/lib/js/ui/components/nativemobile/controlbar.js +52 -0
- package/lib/js/ui/components/nativemobile/controlbar.js.map +1 -0
- package/lib/js/ui/components/nativemobile/ctabar.js +12 -0
- package/lib/js/ui/components/nativemobile/ctabar.js.map +1 -0
- package/lib/js/ui/components/nativemobile/playnext.js +16 -0
- package/lib/js/ui/components/nativemobile/playnext.js.map +1 -0
- package/lib/js/ui/components/nativemobile/titlebar.js +8 -0
- package/lib/js/ui/components/nativemobile/titlebar.js.map +1 -0
- package/lib/js/ui/components/nativemobile/topbar.js +21 -0
- package/lib/js/ui/components/nativemobile/topbar.js.map +1 -0
- package/lib/js/ui/components/playnext.js +10 -0
- package/lib/js/ui/components/playnext.js.map +1 -0
- package/lib/js/ui/components/settingspanel.js +129 -0
- package/lib/js/ui/components/settingspanel.js.map +1 -0
- package/lib/js/ui/components/shared/playnextscreen.js +17 -0
- package/lib/js/ui/components/shared/playnextscreen.js.map +1 -0
- package/lib/js/ui/components/titlebar.js +9 -0
- package/lib/js/ui/components/titlebar.js.map +1 -0
- package/lib/js/ui/components/topbar.js +22 -0
- package/lib/js/ui/components/topbar.js.map +1 -0
- package/lib/js/ui/handlers/listboxhandlers.js +41 -0
- package/lib/js/ui/handlers/listboxhandlers.js.map +1 -0
- package/lib/js/ui/handlers/nicamhandler.js +15 -0
- package/lib/js/ui/handlers/nicamhandler.js.map +1 -0
- package/lib/js/ui/handlers/nicamhandler.test.js +34 -0
- package/lib/js/ui/handlers/nicamhandler.test.js.map +1 -0
- package/lib/js/ui/handlers/playnexthandlers.js +2 -0
- package/lib/js/ui/handlers/playnexthandlers.js.map +1 -0
- package/lib/js/ui/handlers/timecontrolhandlers.js +22 -0
- package/lib/js/ui/handlers/timecontrolhandlers.js.map +1 -0
- package/lib/js/ui/nativemobileuicontainer.js +48 -0
- package/lib/js/ui/nativemobileuicontainer.js.map +1 -0
- package/lib/js/ui/nativemobileuifactory.js +42 -0
- package/lib/js/ui/nativemobileuifactory.js.map +1 -0
- package/lib/js/ui/uicontainer.js +57 -0
- package/lib/js/ui/uicontainer.js.map +1 -0
- package/lib/js/utilities/localizationconfig.js +8 -0
- package/lib/js/utilities/localizationconfig.js.map +1 -0
- package/lib/js/utilities/printversion.js +27 -0
- package/lib/js/utilities/printversion.js.map +1 -0
- package/lib/js/utilities/utilities.js +52 -0
- package/lib/js/utilities/utilities.js.map +1 -0
- package/lib/lang/nl.json +72 -0
- package/lib/npoplayer.js +465 -2
- package/lib/npoplayer.js.map +1 -1
- package/lib/npoplayer.test.js +12 -0
- package/lib/npoplayer.test.js.map +1 -0
- package/lib/package.json +1 -1
- package/lib/types/classes.js +4 -0
- package/lib/types/classes.js.map +1 -0
- package/lib/types/interfaces.js +6 -0
- package/lib/types/interfaces.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Button, SettingsToggleButton } from 'bitmovin-player-ui';
|
|
2
|
+
import { sendCustomMessage } from '../../nativemobileuicontainer';
|
|
3
|
+
import { CustomMessages } from '../../../../types/interfaces';
|
|
4
|
+
export function createPlayNextButton(player) {
|
|
5
|
+
const playNextButton = new Button({
|
|
6
|
+
cssClass: 'ui-hugeplaynextbacktogglebutton ui-playNextButton bmpui-ui-button',
|
|
7
|
+
text: 'De volgende aflevering wordt zo afgespeeld...',
|
|
8
|
+
hidden: false
|
|
9
|
+
});
|
|
10
|
+
if (player != null) {
|
|
11
|
+
playNextButton.onClick.subscribe(() => {
|
|
12
|
+
const result = sendCustomMessage(CustomMessages.DO_PLAY_NEXT);
|
|
13
|
+
if (result.defaultActionRequired === true) {
|
|
14
|
+
console.log('do something');
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
console.log('do something else');
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return playNextButton;
|
|
22
|
+
}
|
|
23
|
+
export function createWatchFromStartButton() {
|
|
24
|
+
return new Button({
|
|
25
|
+
cssClass: 'ui-textbutton ui-watchfromstartbutton bmpui-ui-button',
|
|
26
|
+
text: 'Kijk vanaf het begin',
|
|
27
|
+
hidden: true
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
export function createSettingsButton(player, settingsPanel) {
|
|
31
|
+
const customSettingsToggleButton = new SettingsToggleButton({ settingsPanel });
|
|
32
|
+
if (player != null) {
|
|
33
|
+
customSettingsToggleButton.onToggleOn.subscribe(() => {
|
|
34
|
+
const result = sendCustomMessage(CustomMessages.TOGGLE_SETTINGS_PANEL);
|
|
35
|
+
if (result.defaultActionRequired === false) {
|
|
36
|
+
settingsPanel.hide();
|
|
37
|
+
customSettingsToggleButton.off();
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
return customSettingsToggleButton;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=buttons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buttons.js","sourceRoot":"","sources":["../../../../../../src/js/ui/components/nativemobile/buttons.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAiB,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAA8B,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE1F,MAAM,UAAU,oBAAoB,CAChC,MAAwB;IAExB,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC;QAC9B,QAAQ,EACJ,mEAAmE;QACvE,IAAI,EAAE,+CAA+C;QACrD,MAAM,EAAE,KAAK;KAChB,CAAC,CAAA;IAEF,IAAI,MAAM,IAAI,IAAI,EAAE;QAChB,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;YAClC,MAAM,MAAM,GAA+B,iBAAiB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;YACzF,IAAI,MAAM,CAAC,qBAAqB,KAAK,IAAI,EAAE;gBACvC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;aAC9B;iBAAM;gBACH,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;aACnC;QACL,CAAC,CAAC,CAAA;KACL;IAED,OAAO,cAAc,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,0BAA0B;IACtC,OAAO,IAAI,MAAM,CAAC;QACd,QAAQ,EAAE,uDAAuD;QACjE,IAAI,EAAE,sBAAsB;QAC5B,MAAM,EAAE,IAAI;KACf,CAAC,CAAA;AACN,CAAC;AAED,MAAM,UAAU,oBAAoB,CAChC,MAAwB,EACxB,aAA4B;IAE5B,MAAM,0BAA0B,GAAG,IAAI,oBAAoB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAA;IAE9E,IAAI,MAAM,IAAI,IAAI,EAAE;QAChB,0BAA0B,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE;YACjD,MAAM,MAAM,GAA+B,iBAAiB,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAA;YAClG,IAAI,MAAM,CAAC,qBAAqB,KAAK,KAAK,EAAE;gBACxC,aAAa,CAAC,IAAI,EAAE,CAAA;gBACpB,0BAA0B,CAAC,GAAG,EAAE,CAAA;aACnC;QACL,CAAC,CAAC,CAAA;KACL;IAED,OAAO,0BAA0B,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { PlayerEvent } from 'bitmovin-player';
|
|
2
|
+
import { ControlBar, Container, PlaybackTimeLabel, PlaybackTimeLabelMode, SeekBar, SeekBarLabel, PlaybackToggleButton, VolumeToggleButton, VolumeSlider, Spacer, PictureInPictureToggleButton, AirPlayToggleButton, SettingsToggleButton, FullscreenToggleButton, CastToggleButton } from 'bitmovin-player-ui';
|
|
3
|
+
import { createForwardButton, createRewindButton } from '../buttons';
|
|
4
|
+
import { airPlaySupported } from '../../../utilities/utilities';
|
|
5
|
+
export function createControlBar(player, settingsPanel) {
|
|
6
|
+
const rewindButton = createRewindButton(player);
|
|
7
|
+
const forwardButton = createForwardButton(player);
|
|
8
|
+
const chromeCastButton = new CastToggleButton({
|
|
9
|
+
hidden: true
|
|
10
|
+
});
|
|
11
|
+
player?.on(PlayerEvent.CastAvailable, () => {
|
|
12
|
+
if (player?.isCastAvailable())
|
|
13
|
+
chromeCastButton.show();
|
|
14
|
+
});
|
|
15
|
+
return new ControlBar({
|
|
16
|
+
components: [
|
|
17
|
+
settingsPanel,
|
|
18
|
+
new Container({
|
|
19
|
+
components: [
|
|
20
|
+
new PlaybackTimeLabel({
|
|
21
|
+
timeLabelMode: PlaybackTimeLabelMode.CurrentTime,
|
|
22
|
+
hideInLivePlayback: true,
|
|
23
|
+
cssClasses: ['current-time']
|
|
24
|
+
}),
|
|
25
|
+
new SeekBar({ label: new SeekBarLabel() }),
|
|
26
|
+
new PlaybackTimeLabel({
|
|
27
|
+
timeLabelMode: PlaybackTimeLabelMode.TotalTime,
|
|
28
|
+
cssClasses: ['total-time']
|
|
29
|
+
})
|
|
30
|
+
],
|
|
31
|
+
cssClasses: ['controlbar-top']
|
|
32
|
+
}),
|
|
33
|
+
new Container({
|
|
34
|
+
components: [
|
|
35
|
+
new PlaybackToggleButton(),
|
|
36
|
+
new VolumeToggleButton(),
|
|
37
|
+
new VolumeSlider(),
|
|
38
|
+
rewindButton,
|
|
39
|
+
forwardButton,
|
|
40
|
+
new Spacer(),
|
|
41
|
+
...(document.pictureInPictureEnabled && /^((?!chrome|android).)*safari/i.test(navigator.userAgent) ? [new PictureInPictureToggleButton()] : []),
|
|
42
|
+
...(airPlaySupported() ? [new AirPlayToggleButton()] : []),
|
|
43
|
+
chromeCastButton,
|
|
44
|
+
new SettingsToggleButton({ settingsPanel }),
|
|
45
|
+
new FullscreenToggleButton()
|
|
46
|
+
],
|
|
47
|
+
cssClasses: ['controlbar-bottom']
|
|
48
|
+
})
|
|
49
|
+
]
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=controlbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controlbar.js","sourceRoot":"","sources":["../../../../../../src/js/ui/components/nativemobile/controlbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EACH,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACrB,OAAO,EACP,YAAY,EAEZ,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,MAAM,EACN,4BAA4B,EAC5B,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAE/D,MAAM,UAAU,gBAAgB,CAC5B,MAAiB,EACjB,aAA4B;IAE5B,MAAM,YAAY,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAC/C,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;IAEjD,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC;QAC1C,MAAM,EAAE,IAAI;KACf,CAAC,CAAA;IAEF,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,GAAG,EAAE;QACvC,IAAG,MAAM,EAAE,eAAe,EAAE;YAAE,gBAAgB,CAAC,IAAI,EAAE,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,OAAO,IAAI,UAAU,CAAC;QAClB,UAAU,EAAE;YACR,aAAa;YACb,IAAI,SAAS,CAAC;gBACV,UAAU,EAAE;oBACR,IAAI,iBAAiB,CAAC;wBAClB,aAAa,EAAE,qBAAqB,CAAC,WAAW;wBAChD,kBAAkB,EAAE,IAAI;wBACxB,UAAU,EAAE,CAAC,cAAc,CAAC;qBAC/B,CAAC;oBACF,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,YAAY,EAAE,EAAE,CAAC;oBAC1C,IAAI,iBAAiB,CAAC;wBAClB,aAAa,EAAE,qBAAqB,CAAC,SAAS;wBAC9C,UAAU,EAAE,CAAC,YAAY,CAAC;qBAC7B,CAAC;iBACL;gBACD,UAAU,EAAE,CAAC,gBAAgB,CAAC;aACjC,CAAC;YACF,IAAI,SAAS,CAAC;gBACV,UAAU,EAAE;oBACR,IAAI,oBAAoB,EAAE;oBAC1B,IAAI,kBAAkB,EAAE;oBACxB,IAAI,YAAY,EAAE;oBAClB,YAAY;oBACZ,aAAa;oBACb,IAAI,MAAM,EAAE;oBACZ,GAAG,CAAC,QAAQ,CAAC,uBAAuB,IAAI,gCAAgC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,4BAA4B,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/I,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1D,gBAAgB;oBAChB,IAAI,oBAAoB,CAAC,EAAE,aAAa,EAAE,CAAC;oBAC3C,IAAI,sBAAsB,EAAE;iBAC/B;gBACD,UAAU,EAAE,CAAC,mBAAmB,CAAC;aACpC,CAAC;SACL;KACJ,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Container } from 'bitmovin-player-ui';
|
|
2
|
+
import { createWatchFromStartButton } from '../nativemobile/buttons';
|
|
3
|
+
import { createGoBackLiveButton } from '../buttons';
|
|
4
|
+
export function createCTABar(player) {
|
|
5
|
+
const goBackLiveButton = createGoBackLiveButton(player);
|
|
6
|
+
const watchFromStartButton = createWatchFromStartButton();
|
|
7
|
+
return new Container({
|
|
8
|
+
components: [watchFromStartButton, goBackLiveButton],
|
|
9
|
+
cssClasses: ['controlbar-textbuttons']
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=ctabar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ctabar.js","sourceRoot":"","sources":["../../../../../../src/js/ui/components/nativemobile/ctabar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAGnD,MAAM,UAAU,YAAY,CAAE,MAAwB;IAClD,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACvD,MAAM,oBAAoB,GAAG,0BAA0B,EAAE,CAAA;IAEzD,OAAO,IAAI,SAAS,CAAC;QACjB,UAAU,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;QACpD,UAAU,EAAE,CAAC,wBAAwB,CAAC;KACzC,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Container } from 'bitmovin-player-ui';
|
|
2
|
+
import { createPlayNextButton } from './buttons';
|
|
3
|
+
import { showPlayNextScreen } from '../shared/playnextscreen';
|
|
4
|
+
export function createPlayNextScreen(player) {
|
|
5
|
+
const playNextButton = createPlayNextButton(player);
|
|
6
|
+
if (window.bitmovin.customMessageHandler) {
|
|
7
|
+
window.bitmovin.customMessageHandler.on('showPlayNextScreen', () => {
|
|
8
|
+
showPlayNextScreen(window.bitmovin.customMessageHandler.sendAsynchronous('doPlayNext'));
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
return new Container({
|
|
12
|
+
components: [playNextButton],
|
|
13
|
+
cssClasses: ['overlay-playnext']
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=playnext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playnext.js","sourceRoot":"","sources":["../../../../../../src/js/ui/components/nativemobile/playnext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAK7D,MAAM,UAAU,oBAAoB,CAChC,MAAwB;IACxB,MAAM,cAAc,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;IAEnD,IAAI,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE;QACtC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAC/D,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5F,CAAC,CAAC,CAAA;KACL;IAED,OAAO,IAAI,SAAS,CAAC;QACjB,UAAU,EAAE,CAAC,cAAc,CAAC;QAC5B,UAAU,EAAE,CAAC,kBAAkB,CAAC;KACnC,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Label, TitleBar } from 'bitmovin-player-ui';
|
|
2
|
+
export function createTitleBar() {
|
|
3
|
+
const nicam = new Label({ text: '', cssClass: 'nicam' });
|
|
4
|
+
const titleBar = new TitleBar({ cssClasses: ['metadata'] });
|
|
5
|
+
titleBar.addComponent(nicam);
|
|
6
|
+
return titleBar;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=titlebar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"titlebar.js","sourceRoot":"","sources":["../../../../../../src/js/ui/components/nativemobile/titlebar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAEpD,MAAM,UAAU,cAAc;IAC1B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;IACxD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAC3D,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IAE5B,OAAO,QAAQ,CAAA;AACnB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Container, TitleBar, PictureInPictureToggleButton, AirPlayToggleButton, CastToggleButton, FullscreenToggleButton, VolumeToggleButton } from 'bitmovin-player-ui';
|
|
2
|
+
import { createSettingsButton } from './buttons';
|
|
3
|
+
export function createTopBar(player, settingsPanel) {
|
|
4
|
+
return new TitleBar({
|
|
5
|
+
components: [
|
|
6
|
+
new Container({
|
|
7
|
+
components: [
|
|
8
|
+
new CastToggleButton(),
|
|
9
|
+
new AirPlayToggleButton(),
|
|
10
|
+
createSettingsButton(player, settingsPanel),
|
|
11
|
+
new PictureInPictureToggleButton(),
|
|
12
|
+
new FullscreenToggleButton(),
|
|
13
|
+
new VolumeToggleButton()
|
|
14
|
+
],
|
|
15
|
+
cssClasses: ['controlbar-top', 'controlbar-small']
|
|
16
|
+
})
|
|
17
|
+
],
|
|
18
|
+
cssClasses: ['titlebar-small']
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=topbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"topbar.js","sourceRoot":"","sources":["../../../../../../src/js/ui/components/nativemobile/topbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,SAAS,EACT,QAAQ,EACR,4BAA4B,EAC5B,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EACrB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAGhD,MAAM,UAAU,YAAY,CAAE,MAAwB,EAAE,aAA4B;IAChF,OAAO,IAAI,QAAQ,CAAC;QAChB,UAAU,EAAE;YACR,IAAI,SAAS,CAAC;gBACV,UAAU,EAAE;oBACR,IAAI,gBAAgB,EAAE;oBACtB,IAAI,mBAAmB,EAAE;oBACzB,oBAAoB,CAAC,MAAM,EAAE,aAAa,CAAC;oBAC3C,IAAI,4BAA4B,EAAE;oBAClC,IAAI,sBAAsB,EAAE;oBAC5B,IAAI,kBAAkB,EAAE;iBAC3B;gBACD,UAAU,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;aACrD,CAAC;SACL;QACD,UAAU,EAAE,CAAC,gBAAgB,CAAC;KACjC,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Container } from 'bitmovin-player-ui';
|
|
2
|
+
import { createPlayNextButton } from '../components/buttons';
|
|
3
|
+
export function createPlayNextScreen(player, npoplayer) {
|
|
4
|
+
const playNextButton = createPlayNextButton(player, npoplayer);
|
|
5
|
+
return new Container({
|
|
6
|
+
components: [playNextButton],
|
|
7
|
+
cssClasses: ['overlay-playnext']
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=playnext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playnext.js","sourceRoot":"","sources":["../../../../../src/js/ui/components/playnext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAI5D,MAAM,UAAU,oBAAoB,CAChC,MAAwB,EACxB,SAAoB;IAEpB,MAAM,cAAc,GAAG,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAE9D,OAAO,IAAI,SAAS,CAAC;QACjB,UAAU,EAAE,CAAC,cAAc,CAAC;QAC5B,UAAU,EAAE,CAAC,kBAAkB,CAAC;KACnC,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { SubtitleListBox, ListBox, SettingsPanel, SettingsPanelPage, SettingsPanelPageOpenButton, SettingsPanelPageBackButton, Button, Label, SettingsPanelItem, AudioQualitySelectBox, AudioTrackSelectBox } from 'bitmovin-player-ui';
|
|
2
|
+
import { localize } from '../../utilities/utilities';
|
|
3
|
+
import { handleSubtitleListBoxItemSelected, handleSpeedListBoxItemSelected, handleQualityListBoxItemSelected } from '../handlers/listboxhandlers';
|
|
4
|
+
export function createSettingsPanel(npoplayer) {
|
|
5
|
+
const player = ('player' in npoplayer) ? npoplayer.player : npoplayer;
|
|
6
|
+
const subtitleListBox = new SubtitleListBox();
|
|
7
|
+
const speedListBox = new ListBox({
|
|
8
|
+
items: [
|
|
9
|
+
{ key: '0.25', label: '0.25x' },
|
|
10
|
+
{ key: '0.5', label: '0.5x' },
|
|
11
|
+
{ key: '1', label: '1x' },
|
|
12
|
+
{ key: '1.5', label: '1.5x' },
|
|
13
|
+
{ key: '2', label: '2x' }
|
|
14
|
+
]
|
|
15
|
+
});
|
|
16
|
+
const qualityListBox = new ListBox();
|
|
17
|
+
const settingsLabel = localize('settings');
|
|
18
|
+
const videoqualityLabel = localize('settings.video.quality');
|
|
19
|
+
const speedLabel = localize('speed');
|
|
20
|
+
const subtitlesLabel = localize('settings.subtitles');
|
|
21
|
+
const audioqualityLabel = localize('settings.audio.quality');
|
|
22
|
+
const audiotrackLabel = localize('settings.audio.track');
|
|
23
|
+
const autoLabel = localize('auto');
|
|
24
|
+
const settingTriggerClass = 'settings-trigger';
|
|
25
|
+
const settingsBackButtonClass = 'settings-back-button';
|
|
26
|
+
const listboxPanelClass = 'listbox-panel';
|
|
27
|
+
const listboxPagerButtonClass = 'listbox-pager-button';
|
|
28
|
+
const subtitlePanelPage = new SettingsPanelPage({
|
|
29
|
+
components: [
|
|
30
|
+
new Button({ cssClass: settingTriggerClass }),
|
|
31
|
+
new SettingsPanelItem('', subtitleListBox)
|
|
32
|
+
],
|
|
33
|
+
cssClasses: [listboxPanelClass]
|
|
34
|
+
});
|
|
35
|
+
const speedPanelPage = new SettingsPanelPage({
|
|
36
|
+
components: [
|
|
37
|
+
new Button({ cssClass: settingTriggerClass }),
|
|
38
|
+
new SettingsPanelItem('', speedListBox)
|
|
39
|
+
],
|
|
40
|
+
cssClasses: [listboxPanelClass]
|
|
41
|
+
});
|
|
42
|
+
const qualityPanelPage = new SettingsPanelPage({
|
|
43
|
+
components: [
|
|
44
|
+
new Button({ cssClass: settingTriggerClass }),
|
|
45
|
+
new SettingsPanelItem('', qualityListBox)
|
|
46
|
+
],
|
|
47
|
+
cssClasses: [listboxPanelClass]
|
|
48
|
+
});
|
|
49
|
+
const settingsTriggerButton = new Button({ cssClass: settingTriggerClass });
|
|
50
|
+
const mainSettingsPage = new SettingsPanelPage({
|
|
51
|
+
components: [
|
|
52
|
+
settingsTriggerButton,
|
|
53
|
+
new Label({ text: settingsLabel, cssClass: 'setting-header' }),
|
|
54
|
+
new SettingsPanelItem(audioqualityLabel, new AudioQualitySelectBox()),
|
|
55
|
+
new SettingsPanelItem(audiotrackLabel, new AudioTrackSelectBox())
|
|
56
|
+
],
|
|
57
|
+
cssClasses: ['main-panel']
|
|
58
|
+
});
|
|
59
|
+
mainSettingsPage.onActive.subscribeOnce(() => {
|
|
60
|
+
qualityListBox.addItem('auto', autoLabel);
|
|
61
|
+
player?.getAvailableVideoQualities().forEach(quality => {
|
|
62
|
+
qualityListBox.addItem(quality.id, quality.label ?? 'test');
|
|
63
|
+
});
|
|
64
|
+
qualityListBox.selectItem('auto');
|
|
65
|
+
});
|
|
66
|
+
const settingsPanel = new SettingsPanel({
|
|
67
|
+
components: [
|
|
68
|
+
mainSettingsPage,
|
|
69
|
+
subtitlePanelPage,
|
|
70
|
+
speedPanelPage,
|
|
71
|
+
qualityPanelPage
|
|
72
|
+
],
|
|
73
|
+
hidden: true,
|
|
74
|
+
pageTransitionAnimation: false
|
|
75
|
+
});
|
|
76
|
+
const subtitleSettingsOpenButton = new SettingsPanelPageOpenButton({
|
|
77
|
+
targetPage: subtitlePanelPage,
|
|
78
|
+
container: settingsPanel,
|
|
79
|
+
text: 'Nederlands',
|
|
80
|
+
cssClasses: [listboxPagerButtonClass]
|
|
81
|
+
});
|
|
82
|
+
const speedSettingsOpenButton = new SettingsPanelPageOpenButton({
|
|
83
|
+
targetPage: speedPanelPage,
|
|
84
|
+
container: settingsPanel,
|
|
85
|
+
text: '1x',
|
|
86
|
+
cssClasses: [listboxPagerButtonClass]
|
|
87
|
+
});
|
|
88
|
+
const qualitySettingsOpenButton = new SettingsPanelPageOpenButton({
|
|
89
|
+
targetPage: qualityPanelPage,
|
|
90
|
+
container: settingsPanel,
|
|
91
|
+
text: 'automatisch',
|
|
92
|
+
cssClasses: [listboxPagerButtonClass]
|
|
93
|
+
});
|
|
94
|
+
const subtitlesPanelItem = new SettingsPanelItem(subtitlesLabel, subtitleSettingsOpenButton, { hidden: false });
|
|
95
|
+
const speedPanelItem = new SettingsPanelItem(speedLabel, speedSettingsOpenButton);
|
|
96
|
+
const qualityPanelItem = new SettingsPanelItem(videoqualityLabel, qualitySettingsOpenButton, { hidden: false });
|
|
97
|
+
mainSettingsPage.addComponent(subtitlesPanelItem);
|
|
98
|
+
mainSettingsPage.addComponent(speedPanelItem);
|
|
99
|
+
mainSettingsPage.addComponent(qualityPanelItem);
|
|
100
|
+
subtitlePanelPage.addComponent(new SettingsPanelPageBackButton({
|
|
101
|
+
targetPage: mainSettingsPage,
|
|
102
|
+
container: settingsPanel,
|
|
103
|
+
text: 'Ondertiteling',
|
|
104
|
+
cssClasses: [settingsBackButtonClass]
|
|
105
|
+
}));
|
|
106
|
+
speedPanelPage.addComponent(new SettingsPanelPageBackButton({
|
|
107
|
+
targetPage: mainSettingsPage,
|
|
108
|
+
container: settingsPanel,
|
|
109
|
+
text: 'Snelheid',
|
|
110
|
+
cssClasses: [settingsBackButtonClass]
|
|
111
|
+
}));
|
|
112
|
+
qualityPanelPage.addComponent(new SettingsPanelPageBackButton({
|
|
113
|
+
targetPage: mainSettingsPage,
|
|
114
|
+
container: settingsPanel,
|
|
115
|
+
text: 'Kwaliteit',
|
|
116
|
+
cssClasses: [settingsBackButtonClass]
|
|
117
|
+
}));
|
|
118
|
+
if (('uiComponents' in npoplayer)) {
|
|
119
|
+
npoplayer.uiComponents.subtitlesButton = subtitlesPanelItem;
|
|
120
|
+
npoplayer.uiComponents.qualityButton = qualityPanelItem;
|
|
121
|
+
}
|
|
122
|
+
subtitleListBox.onItemSelected.subscribe(handleSubtitleListBoxItemSelected(subtitleSettingsOpenButton, settingsPanel, mainSettingsPage));
|
|
123
|
+
speedListBox.selectItem('1');
|
|
124
|
+
speedListBox.onItemSelected.subscribe(handleSpeedListBoxItemSelected(player, speedSettingsOpenButton, settingsPanel, mainSettingsPage));
|
|
125
|
+
qualityListBox.selectItem('auto');
|
|
126
|
+
qualityListBox.onItemSelected.subscribe(handleQualityListBoxItemSelected(player, qualitySettingsOpenButton, settingsPanel, mainSettingsPage));
|
|
127
|
+
return settingsPanel;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=settingspanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settingspanel.js","sourceRoot":"","sources":["../../../../../src/js/ui/components/settingspanel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export function showPlayNextScreen(playNextFunction) {
|
|
2
|
+
const playnextOverlay = document.querySelector('.bmpui-overlay-playnext');
|
|
3
|
+
document
|
|
4
|
+
.querySelector('.bmpui-overlay-playnext .bmpui-container-wrapper .bmpui-ui-hugeplaynextbacktogglebutton')
|
|
5
|
+
?.insertAdjacentHTML('beforeend', '<svg class="playnextcountdown" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37" class="ui-circular-chart"><path shape-rendering="geometricPrecision" class="ui-circle-bg" fill="none" stroke="white" stroke-width="2" opacity="50%" d="M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831" /><path shape-rendering="geometricPrecision" class="ui-circle" fill="none" stroke="white" stroke-width="2" stroke-dasharray="100, 100" d="M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831" /></svg> ');
|
|
6
|
+
playnextOverlay?.classList.add('show');
|
|
7
|
+
window.setTimeout(() => {
|
|
8
|
+
if (playnextOverlay?.classList.contains('show') ?? false) {
|
|
9
|
+
playNextFunction();
|
|
10
|
+
}
|
|
11
|
+
}, 15000);
|
|
12
|
+
}
|
|
13
|
+
export function hidePlayNextScreen() {
|
|
14
|
+
document.querySelector('.playnextcountdown')?.remove();
|
|
15
|
+
document.querySelector('.bmpui-overlay-playnext')?.classList.remove('show');
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=playnextscreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playnextscreen.js","sourceRoot":"","sources":["../../../../../../src/js/ui/components/shared/playnextscreen.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAE,gBAA4B;IAC5D,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAC1C,yBAAyB,CAC5B,CAAA;IACD,QAAQ;SACH,aAAa,CACV,yFAAyF,CAC5F;QACD,EAAE,kBAAkB,CAChB,WAAW,EACX,giBAAgiB,CACniB,CAAA;IACL,eAAe,EAAE,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACtC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;QAEnB,IAAI,eAAe,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE;YACtD,gBAAgB,EAAE,CAAC;SACtB;IACL,CAAC,EAAE,KAAK,CAAC,CAAA;AACb,CAAC;AAED,MAAM,UAAU,kBAAkB;IAC9B,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;IACtD,QAAQ,CAAC,aAAa,CAAC,yBAAyB,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AAC/E,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Label, TitleBar } from 'bitmovin-player-ui';
|
|
2
|
+
export function createTitleBar(npoplayer) {
|
|
3
|
+
const nicam = new Label({ text: '', cssClass: 'nicam' });
|
|
4
|
+
const titleBar = new TitleBar({ cssClasses: ['metadata'] });
|
|
5
|
+
titleBar.addComponent(nicam);
|
|
6
|
+
npoplayer.uiComponents.nicam = nicam;
|
|
7
|
+
return titleBar;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=titlebar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"titlebar.js","sourceRoot":"","sources":["../../../../../src/js/ui/components/titlebar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAGpD,MAAM,UAAU,cAAc,CAAE,SAAoB;IAChD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;IACxD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAC3D,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IAC5B,SAAS,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAA;IAEpC,OAAO,QAAQ,CAAA;AACnB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Container, TitleBar, PictureInPictureToggleButton, AirPlayToggleButton, CastToggleButton, SettingsToggleButton, FullscreenToggleButton, VolumeControlButton } from 'bitmovin-player-ui';
|
|
2
|
+
export function createTopBar(settingsPanel) {
|
|
3
|
+
return new TitleBar({
|
|
4
|
+
components: [
|
|
5
|
+
new Container({
|
|
6
|
+
components: [
|
|
7
|
+
new PictureInPictureToggleButton(),
|
|
8
|
+
new AirPlayToggleButton(),
|
|
9
|
+
new CastToggleButton(),
|
|
10
|
+
new SettingsToggleButton({ settingsPanel }),
|
|
11
|
+
new FullscreenToggleButton(),
|
|
12
|
+
new VolumeControlButton({
|
|
13
|
+
vertical: true,
|
|
14
|
+
}),
|
|
15
|
+
],
|
|
16
|
+
cssClasses: ['controlbar-top', 'controlbar-small']
|
|
17
|
+
})
|
|
18
|
+
],
|
|
19
|
+
cssClasses: ['titlebar-small']
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=topbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"topbar.js","sourceRoot":"","sources":["../../../../../src/js/ui/components/topbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,SAAS,EACT,QAAQ,EACR,4BAA4B,EAC5B,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACtB,MAAM,oBAAoB,CAAA;AAE3B,MAAM,UAAU,YAAY,CAAE,aAA4B;IACtD,OAAO,IAAI,QAAQ,CAAC;QAChB,UAAU,EAAE;YACR,IAAI,SAAS,CAAC;gBACV,UAAU,EAAE;oBACR,IAAI,4BAA4B,EAAE;oBAClC,IAAI,mBAAmB,EAAE;oBACzB,IAAI,gBAAgB,EAAE;oBACtB,IAAI,oBAAoB,CAAC,EAAE,aAAa,EAAE,CAAC;oBAC3C,IAAI,sBAAsB,EAAE;oBAC5B,IAAI,mBAAmB,CAAC;wBACpB,QAAQ,EAAE,IAAI;qBACjB,CAAC;iBACL;gBACD,UAAU,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;aACrD,CAAC;SACL;QACD,UAAU,EAAE,CAAC,gBAAgB,CAAC;KACjC,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
function closeSettingsPanel(settingsPanel, mainSettingsPage) {
|
|
2
|
+
setTimeout(() => {
|
|
3
|
+
if (settingsPanel.getActivePage() !== mainSettingsPage)
|
|
4
|
+
settingsPanel.setActivePage(mainSettingsPage);
|
|
5
|
+
}, 100);
|
|
6
|
+
}
|
|
7
|
+
export function handleSubtitleListBoxItemSelected(subtitleSettingsOpenButton, settingsPanel, mainSettingsPage) {
|
|
8
|
+
return (e) => {
|
|
9
|
+
e.getItems().forEach((item) => {
|
|
10
|
+
if (item.key === e.getSelectedItem()) {
|
|
11
|
+
subtitleSettingsOpenButton.setText(item.label);
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
closeSettingsPanel(settingsPanel, mainSettingsPage);
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export function handleSpeedListBoxItemSelected(player, speedSettingsOpenButton, settingsPanel, mainSettingsPage) {
|
|
18
|
+
return (source, args) => {
|
|
19
|
+
source.getItems().forEach((item) => {
|
|
20
|
+
if (item.key === args) {
|
|
21
|
+
player?.setPlaybackSpeed(parseFloat(item.key));
|
|
22
|
+
speedSettingsOpenButton.setText(item.label);
|
|
23
|
+
source.selectItem(item.key);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
closeSettingsPanel(settingsPanel, mainSettingsPage);
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export function handleQualityListBoxItemSelected(player, qualitySettingsOpenButton, settingsPanel, mainSettingsPage) {
|
|
30
|
+
return (source, args) => {
|
|
31
|
+
source.getItems().forEach((item) => {
|
|
32
|
+
if (item.key === args) {
|
|
33
|
+
player?.setVideoQuality(item.key);
|
|
34
|
+
qualitySettingsOpenButton.setText(item.label);
|
|
35
|
+
source.selectItem(item.key);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
closeSettingsPanel(settingsPanel, mainSettingsPage);
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=listboxhandlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listboxhandlers.js","sourceRoot":"","sources":["../../../../../src/js/ui/handlers/listboxhandlers.ts"],"names":[],"mappings":"AAQA,SAAS,kBAAkB,CAAC,aAA4B,EAAE,gBAAmC;IACzF,UAAU,CAAC,GAAG,EAAE;QACZ,IAAG,aAAa,CAAC,aAAa,EAAE,KAAK,gBAAgB;YAAE,aAAa,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAA;IACxG,CAAC,EAAE,GAAG,CAAC,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC7C,0BAAuD,EACvD,aAA4B,EAC5B,gBAAmC;IAEnC,OAAO,CAAC,CAAM,EAAE,EAAE;QACd,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;YAC/B,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,eAAe,EAAE,EAAE;gBAClC,0BAA0B,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;aACjD;QACL,CAAC,CAAC,CAAA;QACF,kBAAkB,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IACxD,CAAC,CAAA;AACL,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC1C,MAAwB,EACxB,uBAAoD,EACpD,aAA4B,EAC5B,gBAAmC;IAEnC,OAAO,CAAC,MAAW,EAAE,IAAS,EAAE,EAAE;QAC9B,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE;gBACnB,MAAM,EAAE,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;gBAC9C,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC3C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;aAC9B;QACL,CAAC,CAAC,CAAA;QACF,kBAAkB,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IACxD,CAAC,CAAA;AACL,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC5C,MAAwB,EACxB,yBAAsD,EACtD,aAA4B,EAC5B,gBAAmC;IAEnC,OAAO,CAAC,MAAW,EAAE,IAAS,EAAE,EAAE;QAC9B,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE;gBACnB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBACjC,yBAAyB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC7C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;aAC9B;QACL,CAAC,CAAC,CAAA;QACF,kBAAkB,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IACxD,CAAC,CAAA;AACL,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export function processNicam(streamObject, containerId) {
|
|
2
|
+
const nicamElement = document.querySelector(`#${containerId} .bmpui-nicam`);
|
|
3
|
+
if (nicamElement) {
|
|
4
|
+
nicamElement.innerHTML = '';
|
|
5
|
+
streamObject.metadata.ageRating && addNicamIcon(streamObject.metadata.ageRating, nicamElement);
|
|
6
|
+
streamObject.metadata.nicam?.forEach((character) => addNicamIcon(character, nicamElement));
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
function addNicamIcon(character, nicamElement) {
|
|
10
|
+
const iconClass = `nicam-icon-${character.toLowerCase()}`;
|
|
11
|
+
const span = document.createElement('span');
|
|
12
|
+
span.classList.add('nicam-icon', iconClass);
|
|
13
|
+
nicamElement.appendChild(span);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=nicamhandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nicamhandler.js","sourceRoot":"","sources":["../../../../../src/js/ui/handlers/nicamhandler.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,YAAY,CAAC,YAA0B,EAAE,WAAmB;IACxE,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,WAAW,eAAe,CAAC,CAAA;IAC3E,IAAI,YAAY,EAAE;QACd,YAAY,CAAC,SAAS,GAAG,EAAE,CAAA;QAC3B,YAAY,CAAC,QAAQ,CAAC,SAAS,IAAI,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;QAC9F,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,SAAiB,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAA;KACrG;AACL,CAAC;AASD,SAAS,YAAY,CAAC,SAAiB,EAAE,YAAqB;IAC1D,MAAM,SAAS,GAAG,cAAc,SAAS,CAAC,WAAW,EAAE,EAAE,CAAA;IACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;IAC3C,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;AAClC,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { processNicam } from './nicamhandler';
|
|
2
|
+
describe("NICAM Processing", () => {
|
|
3
|
+
let mockElement;
|
|
4
|
+
let mockStreamObject;
|
|
5
|
+
let containerId = 'testId';
|
|
6
|
+
beforeEach(() => {
|
|
7
|
+
mockElement = { innerHTML: '', appendChild: jest.fn() };
|
|
8
|
+
document.querySelector = jest.fn().mockReturnValue(mockElement);
|
|
9
|
+
mockStreamObject = {
|
|
10
|
+
metadata: {
|
|
11
|
+
ageRating: '12',
|
|
12
|
+
nicam: ["GEWELD", "ANGST", "GROF_TAALGEBRUIK"]
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
});
|
|
16
|
+
it("processes NICAM and age rating", () => {
|
|
17
|
+
processNicam(mockStreamObject, containerId);
|
|
18
|
+
expect(document.querySelector).toHaveBeenCalledWith(`#${containerId} .bmpui-nicam`);
|
|
19
|
+
expect(mockElement.innerHTML).toBe("");
|
|
20
|
+
expect(mockElement.appendChild).toHaveBeenCalledTimes(4);
|
|
21
|
+
});
|
|
22
|
+
it("does nothing if no NICAM element found", () => {
|
|
23
|
+
document.querySelector = jest.fn().mockReturnValue(null);
|
|
24
|
+
processNicam(mockStreamObject, containerId);
|
|
25
|
+
expect(document.querySelector).toHaveBeenCalledWith(`#${containerId} .bmpui-nicam`);
|
|
26
|
+
});
|
|
27
|
+
it("does nothing if no metadata", () => {
|
|
28
|
+
mockStreamObject.metadata = {};
|
|
29
|
+
processNicam(mockStreamObject, containerId);
|
|
30
|
+
expect(document.querySelector).toHaveBeenCalledWith(`#${containerId} .bmpui-nicam`);
|
|
31
|
+
expect(mockElement.appendChild).not.toHaveBeenCalled();
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=nicamhandler.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nicamhandler.test.js","sourceRoot":"","sources":["../../../../../src/js/ui/handlers/nicamhandler.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAO9C,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC9B,IAAI,WAAgB,CAAC;IACrB,IAAI,gBAAkC,CAAC;IACvC,IAAI,WAAW,GAAG,QAAQ,CAAC;IAE3B,UAAU,CAAC,GAAG,EAAE;QACZ,WAAW,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;QACxD,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAChE,gBAAgB,GAAG;YACf,QAAQ,EAAE;gBACN,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,kBAAkB,CAAC;aACjD;SACJ,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACtC,YAAY,CAAC,gBAAuB,EAAE,WAAW,CAAC,CAAC;QACnD,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,IAAI,WAAW,eAAe,CAAC,CAAC;QACpF,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAC9C,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACzD,YAAY,CAAC,gBAAuB,EAAE,WAAW,CAAC,CAAC;QACnD,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,IAAI,WAAW,eAAe,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACnC,gBAAgB,CAAC,QAAQ,GAAG,EAAE,CAAC;QAC/B,YAAY,CAAC,gBAAuB,EAAE,WAAW,CAAC,CAAC;QACnD,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,IAAI,WAAW,eAAe,CAAC,CAAC;QACpF,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC3D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playnexthandlers.js","sourceRoot":"","sources":["../../../../../src/js/ui/handlers/playnexthandlers.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const interval = 10;
|
|
2
|
+
export function rewind(player) {
|
|
3
|
+
if (player != null) {
|
|
4
|
+
if (player.isLive()) {
|
|
5
|
+
player.timeShift(player.getTimeShift() - interval);
|
|
6
|
+
}
|
|
7
|
+
else {
|
|
8
|
+
player.seek(Math.max(0, player.getCurrentTime() - interval));
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export function forward(player) {
|
|
13
|
+
if (player != null) {
|
|
14
|
+
if (player.isLive()) {
|
|
15
|
+
player.timeShift(Math.min(0, player.getTimeShift() + interval));
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
player.seek(Math.min(player.getDuration(), player.getCurrentTime() + interval));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=timecontrolhandlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timecontrolhandlers.js","sourceRoot":"","sources":["../../../../../src/js/ui/handlers/timecontrolhandlers.ts"],"names":[],"mappings":"AAIA,MAAM,QAAQ,GAAG,EAAE,CAAA;AAEnB,MAAM,UAAU,MAAM,CAAE,MAAwB;IAC5C,IAAI,MAAM,IAAI,IAAI,EAAE;QAChB,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE;YACjB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,QAAQ,CAAC,CAAA;SACrD;aAAM;YACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,cAAc,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAA;SAC/D;KACJ;AACL,CAAC;AAED,MAAM,UAAU,OAAO,CAAE,MAAwB;IAC7C,IAAI,MAAM,IAAI,IAAI,EAAE;QAChB,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE;YACjB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,YAAY,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAA;SAClE;aAAM;YACH,MAAM,CAAC,IAAI,CACP,IAAI,CAAC,GAAG,CACJ,MAAM,CAAC,WAAW,EAAE,EACpB,MAAM,CAAC,cAAc,EAAE,GAAG,QAAQ,CACrC,CACJ,CAAA;SACJ;KACJ;AACL,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { BufferingOverlay, CastStatusOverlay, ErrorMessageOverlay, PlaybackToggleOverlay, SubtitleOverlay, UIContainer, } from 'bitmovin-player-ui';
|
|
2
|
+
import { createPlayNextScreen } from './components/nativemobile/playnext';
|
|
3
|
+
import { createCTABar } from './components/nativemobile/ctabar';
|
|
4
|
+
import { createControlBar } from './components/nativemobile/controlbar';
|
|
5
|
+
import { createTopBar } from './components/nativemobile/topbar';
|
|
6
|
+
import { createSettingsPanel } from './components/settingspanel';
|
|
7
|
+
import { createMiddleButtons } from './components/buttons';
|
|
8
|
+
import { createTitleBar } from './components/nativemobile/titlebar';
|
|
9
|
+
export function sendCustomMessage(message) {
|
|
10
|
+
if (window.bitmovin.customMessageHandler) {
|
|
11
|
+
return JSON.parse(window.bitmovin.customMessageHandler.sendSynchronous(message)) || {};
|
|
12
|
+
}
|
|
13
|
+
return {};
|
|
14
|
+
}
|
|
15
|
+
export function getCustomMessage(message) {
|
|
16
|
+
if (window.bitmovin.customMessageHandler) {
|
|
17
|
+
window.bitmovin.customMessageHandler.on(message, (data) => {
|
|
18
|
+
return JSON.parse(data || '{}');
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return {};
|
|
22
|
+
}
|
|
23
|
+
export function nativeMobileUIContainer(player) {
|
|
24
|
+
const middleButtons = createMiddleButtons(player);
|
|
25
|
+
const playNextScreen = createPlayNextScreen(player);
|
|
26
|
+
const settingsPanel = createSettingsPanel(player);
|
|
27
|
+
const ctaBar = createCTABar(player);
|
|
28
|
+
const topBar = createTopBar(player, settingsPanel);
|
|
29
|
+
const controlBar = createControlBar(player, settingsPanel);
|
|
30
|
+
const errorMessageOverlay = new ErrorMessageOverlay();
|
|
31
|
+
return new UIContainer({
|
|
32
|
+
components: [
|
|
33
|
+
new SubtitleOverlay(),
|
|
34
|
+
new BufferingOverlay(),
|
|
35
|
+
new PlaybackToggleOverlay(),
|
|
36
|
+
new CastStatusOverlay(),
|
|
37
|
+
playNextScreen,
|
|
38
|
+
middleButtons,
|
|
39
|
+
controlBar,
|
|
40
|
+
ctaBar,
|
|
41
|
+
topBar,
|
|
42
|
+
createTitleBar(),
|
|
43
|
+
errorMessageOverlay
|
|
44
|
+
],
|
|
45
|
+
cssClasses: ['npo-player', 'native-mobile'],
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=nativemobileuicontainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nativemobileuicontainer.js","sourceRoot":"","sources":["../../../../src/js/ui/nativemobileuicontainer.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EACf,WAAW,GACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAKpE,MAAM,UAAU,iBAAiB,CAAC,OAAuB;IACrD,IAAI,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;KACzF;IACD,OAAO,EAAE,CAAA;AACb,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAuB;IACpD,IAAI,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE;QACtC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAa,EAAE,EAAE;YAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC,CAAA;KACL;IAED,OAAO,EAAE,CAAA;AACb,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAE,MAAiB;IACtD,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;IACjD,MAAM,cAAc,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;IACnD,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;IACjD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IACnC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAClD,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC1D,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAA;IAErD,OAAO,IAAI,WAAW,CAAC;QACnB,UAAU,EAAE;YACR,IAAI,eAAe,EAAE;YACrB,IAAI,gBAAgB,EAAE;YACtB,IAAI,qBAAqB,EAAE;YAC3B,IAAI,iBAAiB,EAAE;YACvB,cAAc;YACd,aAAa;YACb,UAAU;YACV,MAAM;YACN,MAAM;YACN,cAAc,EAAE;YAChB,mBAAmB;SACtB;QACD,UAAU,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC;KAC9C,CAAC,CAAC;AACP,CAAC"}
|