@npo/player 1.17.1 → 1.18.0
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/README.md +2 -1
- package/lib/js/ads/ster.js +1 -2
- package/lib/js/ads/ster.test.js +0 -1
- package/lib/js/api/getstreamobject.js +0 -1
- package/lib/js/api/getstreamobject.test.js +0 -1
- package/lib/js/cdnproviders.js +10 -7
- package/lib/js/checks/apple.js +0 -1
- package/lib/js/checks/apple.test.js +0 -1
- package/lib/js/drm/drm.js +0 -1
- package/lib/js/drm/handlers/decideprofile.js +0 -1
- package/lib/js/drm/handlers/verifydrm.js +0 -1
- package/lib/js/drm/handlers/verifydrm.test.js +0 -1
- package/lib/js/fragments/removefragments.js +0 -1
- package/lib/js/fragments/setfragments.js +0 -1
- package/lib/js/playeractions/customerrors.test.js +0 -1
- package/lib/js/playeractions/handlers/customerrors.js +0 -1
- package/lib/js/playeractions/handlers/error.js +0 -1
- package/lib/js/playeractions/handlers/error.test.js +0 -1
- package/lib/js/playeractions/handlers/handleoffsets.js +0 -1
- package/lib/js/playeractions/handlers/handleoffsets.test.js +0 -1
- package/lib/js/playeractions/handlers/mediasessionactions.js +0 -1
- package/lib/js/playeractions/handlers/processplayerconfig.js +0 -1
- package/lib/js/playeractions/handlers/processsourceconfig.js +10 -6
- package/lib/js/playeractions/handlers/resolvekeypress.js +0 -1
- package/lib/js/playeractions/playeractions.js +0 -1
- package/lib/js/tracking/handlers/eventbinding.js +1 -3
- package/lib/js/tracking/handlers/eventlogging.js +0 -1
- package/lib/js/tracking/handlers/playertrackerinit.js +0 -1
- package/lib/js/tracking/handlers/playertrackerstart.js +0 -1
- package/lib/js/tracking/playertracker.js +0 -1
- package/lib/js/ui/components/adbutton.js +0 -1
- package/lib/js/ui/components/adlabel.js +0 -1
- package/lib/js/ui/components/audio/controlbar.js +0 -1
- package/lib/js/ui/components/buttons.d.ts +6 -0
- package/lib/js/ui/components/buttons.js +16 -3
- package/lib/js/ui/components/controlbar.js +0 -1
- package/lib/js/ui/components/ctabar.js +0 -1
- package/lib/js/ui/components/nativemobile/addFragments.js +0 -1
- package/lib/js/ui/components/nativemobile/buttons.js +0 -1
- package/lib/js/ui/components/nativemobile/controlbar.js +0 -1
- package/lib/js/ui/components/nativemobile/ctabar.js +0 -1
- package/lib/js/ui/components/nativemobile/playnext.js +0 -7
- package/lib/js/ui/components/nativemobile/titlebar.js +0 -1
- package/lib/js/ui/components/nativemobile/topbar.js +0 -1
- package/lib/js/ui/components/playnext.js +3 -3
- package/lib/js/ui/components/seekbar.js +0 -1
- package/lib/js/ui/components/settingspanel.js +0 -1
- package/lib/js/ui/components/shared/playnextscreen.d.ts +2 -2
- package/lib/js/ui/components/shared/playnextscreen.js +30 -13
- package/lib/js/ui/components/titlebar.js +0 -1
- package/lib/js/ui/components/topbar.js +0 -1
- package/lib/js/ui/handlers/accessibilityhandler.js +0 -1
- package/lib/js/ui/handlers/listboxhandlers.js +0 -1
- package/lib/js/ui/handlers/nicamhandler.d.ts +1 -1
- package/lib/js/ui/handlers/nicamhandler.js +1 -3
- package/lib/js/ui/handlers/nicamhandler.test.js +10 -15
- package/lib/js/ui/handlers/playnexthandlers.js +0 -1
- package/lib/js/ui/handlers/streamhandler.d.ts +3 -3
- package/lib/js/ui/handlers/streamhandler.js +4 -5
- package/lib/js/ui/handlers/timecontrolhandlers.js +0 -1
- package/lib/js/ui/nativemobileuicontainer.js +0 -1
- package/lib/js/ui/nativemobileuifactory.js +1 -2
- package/lib/js/ui/uicontainer.js +0 -1
- package/lib/js/utilities/localizationconfig.js +0 -1
- package/lib/js/utilities/printversion.js +0 -1
- package/lib/js/utilities/utilities.js +0 -1
- package/lib/js/utilities/utilities.test.js +0 -1
- package/lib/npoplayer.d.ts +3 -0
- package/lib/npoplayer.js +38 -8
- package/lib/npoplayer.test.js +0 -1
- package/lib/package.json +1 -1
- package/lib/src/js/ui/components/buttons.d.ts +6 -0
- package/lib/src/js/ui/components/shared/playnextscreen.d.ts +2 -2
- package/lib/src/js/ui/handlers/nicamhandler.d.ts +1 -1
- package/lib/src/js/ui/handlers/streamhandler.d.ts +3 -3
- package/lib/src/npoplayer.d.ts +3 -0
- package/lib/src/types/interfaces.d.ts +8 -1
- package/lib/types/classes.js +0 -1
- package/lib/types/interfaces.d.ts +8 -1
- package/lib/types/interfaces.js +0 -1
- package/package.json +1 -1
- package/src/scss/components/_playnext.scss +21 -33
- package/src/scss/components/_subtitles.scss +16 -0
- package/src/scss/components/_textbuttons.scss +18 -18
- package/src/scss/npoplayer.css +16 -11
- package/src/scss/variants/_player-large.scss +10 -0
- package/src/scss/variants/_player-medium.scss +6 -0
- package/src/scss/variants/_player-small.scss +6 -0
- package/lib/js/ads/ster.js.map +0 -1
- package/lib/js/ads/ster.test.js.map +0 -1
- package/lib/js/api/getstreamobject.js.map +0 -1
- package/lib/js/api/getstreamobject.test.js.map +0 -1
- package/lib/js/cdnproviders.js.map +0 -1
- package/lib/js/checks/apple.js.map +0 -1
- package/lib/js/checks/apple.test.js.map +0 -1
- package/lib/js/drm/drm.js.map +0 -1
- package/lib/js/drm/handlers/decideprofile.js.map +0 -1
- package/lib/js/drm/handlers/verifydrm.js.map +0 -1
- package/lib/js/drm/handlers/verifydrm.test.js.map +0 -1
- package/lib/js/fragments/removefragments.js.map +0 -1
- package/lib/js/fragments/setfragments.js.map +0 -1
- package/lib/js/playeractions/customerrors.test.js.map +0 -1
- package/lib/js/playeractions/handlers/customerrors.js.map +0 -1
- package/lib/js/playeractions/handlers/error.js.map +0 -1
- package/lib/js/playeractions/handlers/error.test.js.map +0 -1
- package/lib/js/playeractions/handlers/handleoffsets.js.map +0 -1
- package/lib/js/playeractions/handlers/handleoffsets.test.js.map +0 -1
- package/lib/js/playeractions/handlers/mediasessionactions.js.map +0 -1
- package/lib/js/playeractions/handlers/processplayerconfig.js.map +0 -1
- package/lib/js/playeractions/handlers/processsourceconfig.js.map +0 -1
- package/lib/js/playeractions/handlers/resolvekeypress.js.map +0 -1
- package/lib/js/playeractions/playeractions.js.map +0 -1
- package/lib/js/tracking/handlers/eventbinding.js.map +0 -1
- package/lib/js/tracking/handlers/eventlogging.js.map +0 -1
- package/lib/js/tracking/handlers/playertrackerinit.js.map +0 -1
- package/lib/js/tracking/handlers/playertrackerstart.js.map +0 -1
- package/lib/js/tracking/playertracker.js.map +0 -1
- package/lib/js/ui/components/adbutton.js.map +0 -1
- package/lib/js/ui/components/adlabel.js.map +0 -1
- package/lib/js/ui/components/audio/controlbar.js.map +0 -1
- package/lib/js/ui/components/buttons.js.map +0 -1
- package/lib/js/ui/components/controlbar.js.map +0 -1
- package/lib/js/ui/components/ctabar.js.map +0 -1
- package/lib/js/ui/components/nativemobile/addFragments.js.map +0 -1
- package/lib/js/ui/components/nativemobile/buttons.js.map +0 -1
- package/lib/js/ui/components/nativemobile/controlbar.js.map +0 -1
- package/lib/js/ui/components/nativemobile/ctabar.js.map +0 -1
- package/lib/js/ui/components/nativemobile/playnext.js.map +0 -1
- package/lib/js/ui/components/nativemobile/titlebar.js.map +0 -1
- package/lib/js/ui/components/nativemobile/topbar.js.map +0 -1
- package/lib/js/ui/components/playnext.js.map +0 -1
- package/lib/js/ui/components/seekbar.js.map +0 -1
- package/lib/js/ui/components/settingspanel.js.map +0 -1
- package/lib/js/ui/components/shared/playnextscreen.js.map +0 -1
- package/lib/js/ui/components/titlebar.js.map +0 -1
- package/lib/js/ui/components/topbar.js.map +0 -1
- package/lib/js/ui/handlers/accessibilityhandler.js.map +0 -1
- package/lib/js/ui/handlers/listboxhandlers.js.map +0 -1
- package/lib/js/ui/handlers/nicamhandler.js.map +0 -1
- package/lib/js/ui/handlers/nicamhandler.test.js.map +0 -1
- package/lib/js/ui/handlers/playnexthandlers.js.map +0 -1
- package/lib/js/ui/handlers/streamhandler.js.map +0 -1
- package/lib/js/ui/handlers/timecontrolhandlers.js.map +0 -1
- package/lib/js/ui/nativemobileuicontainer.js.map +0 -1
- package/lib/js/ui/nativemobileuifactory.js.map +0 -1
- package/lib/js/ui/uicontainer.js.map +0 -1
- package/lib/js/utilities/localizationconfig.js.map +0 -1
- package/lib/js/utilities/printversion.js.map +0 -1
- package/lib/js/utilities/utilities.js.map +0 -1
- package/lib/js/utilities/utilities.test.js.map +0 -1
- package/lib/npoplayer.js.map +0 -1
- package/lib/npoplayer.test.js.map +0 -1
- package/lib/types/classes.js.map +0 -1
- package/lib/types/interfaces.js.map +0 -1
package/README.md
CHANGED
|
@@ -8,7 +8,8 @@ The video player library for NPO (Nederlandse Publieke Omroep) and other broadca
|
|
|
8
8
|
Extensive and up-to-date documentation is available at https://docs.npoplayer.nl
|
|
9
9
|
|
|
10
10
|
# Changelog
|
|
11
|
-
Current version: v1.
|
|
11
|
+
Current version: v1.18.0
|
|
12
|
+
|
|
12
13
|
The changelog is available at https://docs.npoplayer.nl/implementation/web/changelog/
|
|
13
14
|
|
|
14
15
|
## License
|
package/lib/js/ads/ster.js
CHANGED
|
@@ -116,8 +116,7 @@ export async function handlePreRolls(playerapi, streamObject, npoplayer) {
|
|
|
116
116
|
playerapi.off(PlayerEvent.AdStarted, handleAdStarted);
|
|
117
117
|
playerapi.off(PlayerEvent.AdFinished, handleAdFinished);
|
|
118
118
|
playerapi.off(PlayerEvent.AdBreakFinished, handleAdBreakFinished);
|
|
119
|
-
resolve();
|
|
120
119
|
}
|
|
120
|
+
resolve();
|
|
121
121
|
});
|
|
122
122
|
}
|
|
123
|
-
//# sourceMappingURL=ster.js.map
|
package/lib/js/ads/ster.test.js
CHANGED
package/lib/js/cdnproviders.js
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
export const npoCdnProviders = new Map();
|
|
2
|
-
npoCdnProviders.set('nep.global.ssl.fastly.net', 'NEP');
|
|
2
|
+
npoCdnProviders.set('nep.global.ssl.fastly.net', 'NEP-FASTLY');
|
|
3
|
+
npoCdnProviders.set('npo-fsly.cdn.streamgate.io', 'NEP-FASTLY');
|
|
3
4
|
npoCdnProviders.set('cdn.streamgate.nl', 'NEP');
|
|
4
|
-
npoCdnProviders.set('
|
|
5
|
+
npoCdnProviders.set('pr.lswcdn.net', 'NEP-LSW');
|
|
5
6
|
npoCdnProviders.set('cdn.eurovisioncdn.net', 'EUROVISION');
|
|
6
7
|
npoCdnProviders.set('npo.prd.cdn.bcms.kpn.com', 'KPN');
|
|
7
8
|
npoCdnProviders.set('cdn.bcms.kpn.com', 'KPN');
|
|
8
9
|
npoCdnProviders.set('Akamai', 'AKEMAI');
|
|
9
|
-
npoCdnProviders.set('icecast.omroep.nl', '
|
|
10
|
-
npoCdnProviders.set('content.omroep.nl', '
|
|
11
|
-
npoCdnProviders.set('podcast.npo.nl', '
|
|
12
|
-
npoCdnProviders.set('video.omroep.nl', '
|
|
13
|
-
|
|
10
|
+
npoCdnProviders.set('icecast.omroep.nl', 'OMROEP-ICECAST');
|
|
11
|
+
npoCdnProviders.set('content.omroep.nl', 'OMROEP-CONTENT');
|
|
12
|
+
npoCdnProviders.set('podcast.npo.nl', 'OMROEP-PODCAST');
|
|
13
|
+
npoCdnProviders.set('video.omroep.nl', 'OMROEP-VIDEO');
|
|
14
|
+
npoCdnProviders.set('download.omroep.nl', 'OMROEP-DOWNLOAD');
|
|
15
|
+
npoCdnProviders.set('download.nos.nl', 'NOS');
|
|
16
|
+
npoCdnProviders.set('entry.cdn.npoaudio.nl', 'NPOAUDIO');
|
package/lib/js/checks/apple.js
CHANGED
package/lib/js/drm/drm.js
CHANGED
|
@@ -120,11 +120,16 @@ export function processSourceConfig(_sourceConfig = {}, _streamObject, drm = nul
|
|
|
120
120
|
sourceConfig = setDrm(sourceConfig, drm, _streamObject);
|
|
121
121
|
const streamSource = _streamObject.stream.streamURL;
|
|
122
122
|
let cdnString = streamSource;
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
123
|
+
if (streamSource.startsWith('file:///')) {
|
|
124
|
+
cdnString = 'OFFLINE';
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
npoCdnProviders.forEach(function (value, key) {
|
|
128
|
+
if (streamSource.includes(key)) {
|
|
129
|
+
cdnString = value;
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}
|
|
128
133
|
if (sourceConfig.analytics == null)
|
|
129
134
|
sourceConfig.analytics = {};
|
|
130
135
|
sourceConfig.analytics.cdnProvider = cdnString;
|
|
@@ -157,4 +162,3 @@ export function processSourceConfig(_sourceConfig = {}, _streamObject, drm = nul
|
|
|
157
162
|
}
|
|
158
163
|
return sourceConfig;
|
|
159
164
|
}
|
|
160
|
-
//# sourceMappingURL=processsourceconfig.js.map
|
|
@@ -3,4 +3,3 @@ export { handleStartOffset, handleLiveOffsetLogic, shiftToProgramStart } from ".
|
|
|
3
3
|
export { handlePlayerError } from "./handlers/error";
|
|
4
4
|
export { processPlayerConfig } from "./handlers/processplayerconfig";
|
|
5
5
|
export { processSourceConfig } from "./handlers/processsourceconfig";
|
|
6
|
-
//# sourceMappingURL=playeractions.js.map
|
|
@@ -63,7 +63,7 @@ export function bindPlayerEvents(npoplayer, player) {
|
|
|
63
63
|
}
|
|
64
64
|
};
|
|
65
65
|
const stopBeforeUnload = () => {
|
|
66
|
-
logEvent(npoplayer, 'stop'
|
|
66
|
+
logEvent(npoplayer, 'stop');
|
|
67
67
|
};
|
|
68
68
|
for (const [key, value] of logEventHandlers) {
|
|
69
69
|
player.off(key, value);
|
|
@@ -79,7 +79,6 @@ export function bindPlayerEvents(npoplayer, player) {
|
|
|
79
79
|
{ event: PlayerEvent.PlaybackFinished, name: 'complete' },
|
|
80
80
|
{ event: PlayerEvent.TimeChanged, name: 'time' },
|
|
81
81
|
{ event: PlayerEvent.SourceUnloaded, name: 'stop' },
|
|
82
|
-
{ event: PlayerEvent.Destroy, name: 'stop' },
|
|
83
82
|
];
|
|
84
83
|
playerEvents.forEach(({ event, name, handler }) => {
|
|
85
84
|
handler = handler || logEventHandler(name);
|
|
@@ -99,4 +98,3 @@ export function bindPlayerEvents(npoplayer, player) {
|
|
|
99
98
|
logEventHandlers.set('beforeunload', stopBeforeUnload);
|
|
100
99
|
window.addEventListener('beforeunload', stopBeforeUnload);
|
|
101
100
|
}
|
|
102
|
-
//# sourceMappingURL=eventbinding.js.map
|
|
@@ -2,4 +2,3 @@ export { initPlayerTracker } from './handlers/playertrackerinit';
|
|
|
2
2
|
export { startPlayerTracker } from './handlers/playertrackerstart';
|
|
3
3
|
export { bindPlayerEvents } from './handlers/eventbinding';
|
|
4
4
|
export { logEvent } from './handlers/eventlogging';
|
|
5
|
-
//# sourceMappingURL=playertracker.js.map
|
|
@@ -16,6 +16,12 @@ export declare function createPlayNextButton(player: PlayerAPI, npoplayer: NpoPl
|
|
|
16
16
|
ariaLabel: string;
|
|
17
17
|
hidden: false;
|
|
18
18
|
}>;
|
|
19
|
+
export declare function createCancelPlayNextButton(player: PlayerAPI, npoplayer: NpoPlayer): Button<{
|
|
20
|
+
cssClass: string;
|
|
21
|
+
text: string;
|
|
22
|
+
ariaLabel: string;
|
|
23
|
+
hidden: false;
|
|
24
|
+
}>;
|
|
19
25
|
export declare function createskipIntroButton(player: PlayerAPI): Button<{
|
|
20
26
|
cssClass: string;
|
|
21
27
|
text: string;
|
|
@@ -37,8 +37,8 @@ export function createForwardButton(player) {
|
|
|
37
37
|
}
|
|
38
38
|
export function createPlayNextButton(player, npoplayer) {
|
|
39
39
|
const playNextButton = new Button({
|
|
40
|
-
cssClass: 'ui-
|
|
41
|
-
text: '
|
|
40
|
+
cssClass: 'ui-textbutton ui-playNextButton bmpui-ui-button',
|
|
41
|
+
text: 'Volgende aflevering over <span class="countdown"></span>…',
|
|
42
42
|
ariaLabel: 'Speel volgende aflevering af',
|
|
43
43
|
hidden: false
|
|
44
44
|
});
|
|
@@ -49,6 +49,20 @@ export function createPlayNextButton(player, npoplayer) {
|
|
|
49
49
|
});
|
|
50
50
|
return playNextButton;
|
|
51
51
|
}
|
|
52
|
+
export function createCancelPlayNextButton(player, npoplayer) {
|
|
53
|
+
const cancelPlayNextButton = new Button({
|
|
54
|
+
cssClass: 'ui-textbutton ui-cancelPlayNextButton bmpui-ui-button',
|
|
55
|
+
text: 'Annuleer',
|
|
56
|
+
ariaLabel: 'Annuleer',
|
|
57
|
+
hidden: false
|
|
58
|
+
});
|
|
59
|
+
cancelPlayNextButton.onClick.subscribe(() => {
|
|
60
|
+
if (player != null) {
|
|
61
|
+
npoplayer.cancelPlayNextScreen();
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
return cancelPlayNextButton;
|
|
65
|
+
}
|
|
52
66
|
export function createskipIntroButton(player) {
|
|
53
67
|
const skipIntroButton = new Button({
|
|
54
68
|
cssClass: 'ui-textbutton ui-skipintrobutton bmpui-ui-button bmpui-hidden',
|
|
@@ -93,4 +107,3 @@ export function createWatchFromStartButton(player, npoplayer) {
|
|
|
93
107
|
npoplayer.uiComponents.watchFromStartButton = watchFromStartButton;
|
|
94
108
|
return watchFromStartButton;
|
|
95
109
|
}
|
|
96
|
-
//# sourceMappingURL=buttons.js.map
|
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
import { Container } from 'bitmovin-player-ui';
|
|
2
2
|
import { createPlayNextButton } from './buttons';
|
|
3
|
-
import { showPlayNextScreen } from '../shared/playnextscreen';
|
|
4
3
|
export function createPlayNextScreen() {
|
|
5
4
|
const playNextButton = createPlayNextButton();
|
|
6
|
-
if (window.bitmovin.customMessageHandler) {
|
|
7
|
-
window.bitmovin.customMessageHandler.on('showPlayNextScreen', () => {
|
|
8
|
-
showPlayNextScreen(window.bitmovin.customMessageHandler.sendAsynchronous('doPlayNext'));
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
5
|
return new Container({
|
|
12
6
|
components: [playNextButton],
|
|
13
7
|
cssClasses: ['overlay-playnext']
|
|
14
8
|
});
|
|
15
9
|
}
|
|
16
|
-
//# sourceMappingURL=playnext.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Container } from 'bitmovin-player-ui';
|
|
2
|
-
import { createPlayNextButton } from '../components/buttons';
|
|
2
|
+
import { createPlayNextButton, createCancelPlayNextButton } from '../components/buttons';
|
|
3
3
|
export function createPlayNextScreen(player, npoplayer) {
|
|
4
4
|
const playNextButton = createPlayNextButton(player, npoplayer);
|
|
5
|
+
const cancelButton = createCancelPlayNextButton(player, npoplayer);
|
|
5
6
|
return new Container({
|
|
6
|
-
components: [playNextButton],
|
|
7
|
+
components: [cancelButton, playNextButton],
|
|
7
8
|
cssClasses: ['overlay-playnext']
|
|
8
9
|
});
|
|
9
10
|
}
|
|
10
|
-
//# sourceMappingURL=playnext.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function showPlayNextScreen(
|
|
2
|
-
export declare function hidePlayNextScreen(): void;
|
|
1
|
+
export declare function showPlayNextScreen(overlayDuration: number, containerEl: HTMLElement, proceedCallBack?: () => void): void;
|
|
2
|
+
export declare function hidePlayNextScreen(containerEl: HTMLElement): void;
|
|
@@ -1,17 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
let countdownInterval = null;
|
|
2
|
+
export function showPlayNextScreen(overlayDuration, containerEl, proceedCallBack) {
|
|
3
|
+
const playnextOverlay = containerEl.querySelector('.bmpui-overlay-playnext');
|
|
4
|
+
const countdownLabel = playnextOverlay?.querySelector('.countdown');
|
|
5
|
+
if (countdownLabel) {
|
|
6
|
+
countdownLabel.innerHTML = overlayDuration.toString();
|
|
7
|
+
}
|
|
6
8
|
playnextOverlay?.classList.add('show');
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
const playNextButton = playnextOverlay?.querySelector('.ui-playNextButton');
|
|
10
|
+
if (playNextButton) {
|
|
11
|
+
playNextButton.focus();
|
|
12
|
+
}
|
|
13
|
+
let countdown = overlayDuration - 1;
|
|
14
|
+
countdownInterval = window.setInterval(() => {
|
|
15
|
+
if (playnextOverlay?.classList.contains('show') && countdownLabel) {
|
|
16
|
+
countdownLabel.innerHTML = countdown.toString();
|
|
17
|
+
countdown -= 1;
|
|
10
18
|
}
|
|
11
|
-
|
|
19
|
+
if (countdown < 0) {
|
|
20
|
+
clearInterval(countdownInterval);
|
|
21
|
+
if (playnextOverlay?.classList.contains('show')) {
|
|
22
|
+
proceedCallBack?.();
|
|
23
|
+
playnextOverlay?.classList.remove('show');
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}, 1000);
|
|
12
27
|
}
|
|
13
|
-
export function hidePlayNextScreen() {
|
|
14
|
-
|
|
15
|
-
|
|
28
|
+
export function hidePlayNextScreen(containerEl) {
|
|
29
|
+
containerEl.querySelector('.bmpui-overlay-playnext')?.classList.remove('show');
|
|
30
|
+
if (countdownInterval !== null) {
|
|
31
|
+
clearInterval(countdownInterval);
|
|
32
|
+
countdownInterval = null;
|
|
33
|
+
}
|
|
16
34
|
}
|
|
17
|
-
//# sourceMappingURL=playnextscreen.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { StreamObject, StreamOptions } from 'types/interfaces';
|
|
2
|
-
export declare function processNicam(streamObject: StreamObject,
|
|
2
|
+
export declare function processNicam(streamObject: StreamObject, nicamElement: HTMLElement | null, streamOptions: StreamOptions | null): void;
|
|
3
3
|
export declare function addNicamIcon(character: string, nicamElement: Element): void;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
export function processNicam(streamObject,
|
|
2
|
-
const nicamElement = document.querySelector(`#${containerId} .bmpui-nicam`);
|
|
1
|
+
export function processNicam(streamObject, nicamElement, streamOptions) {
|
|
3
2
|
const effectiveMetadata = streamOptions ? { ...streamObject.metadata, ...streamOptions } : streamObject.metadata;
|
|
4
3
|
if (nicamElement) {
|
|
5
4
|
nicamElement.innerHTML = '';
|
|
@@ -25,4 +24,3 @@ export function addNicamIcon(character, nicamElement) {
|
|
|
25
24
|
span.classList.add('nicam-icon', iconClass);
|
|
26
25
|
nicamElement.appendChild(span);
|
|
27
26
|
}
|
|
28
|
-
//# sourceMappingURL=nicamhandler.js.map
|
|
@@ -1,40 +1,35 @@
|
|
|
1
1
|
import { processNicam } from './nicamhandler';
|
|
2
|
-
describe(
|
|
2
|
+
describe('NICAM Processing', () => {
|
|
3
3
|
let mockElement;
|
|
4
4
|
let mockStreamObject;
|
|
5
5
|
let mockStreamOptions;
|
|
6
|
-
let containerId = 'testId';
|
|
7
6
|
beforeEach(() => {
|
|
8
7
|
mockElement = { innerHTML: '', appendChild: jest.fn() };
|
|
9
8
|
document.querySelector = jest.fn().mockReturnValue(mockElement);
|
|
10
9
|
mockStreamObject = {
|
|
11
10
|
metadata: {
|
|
12
11
|
ageRating: '12',
|
|
13
|
-
nicam: [
|
|
12
|
+
nicam: ['GEWELD', 'ANGST', 'GROF_TAALGEBRUIK']
|
|
14
13
|
}
|
|
15
14
|
};
|
|
16
15
|
mockStreamOptions = {
|
|
17
16
|
ageRating: '12',
|
|
18
|
-
nicam: [
|
|
17
|
+
nicam: ['DRUGS_EN_ALCOHOL']
|
|
19
18
|
};
|
|
20
19
|
});
|
|
21
|
-
it(
|
|
22
|
-
processNicam(mockStreamObject,
|
|
23
|
-
expect(
|
|
24
|
-
expect(mockElement.innerHTML).toBe("");
|
|
20
|
+
it('processes NICAM and age rating with streamOptions taking priority', () => {
|
|
21
|
+
processNicam(mockStreamObject, mockElement, mockStreamOptions);
|
|
22
|
+
expect(mockElement.innerHTML).toBe('');
|
|
25
23
|
expect(mockElement.appendChild).toHaveBeenCalledTimes(2);
|
|
26
24
|
});
|
|
27
|
-
it(
|
|
25
|
+
it('does nothing if no NICAM element found', () => {
|
|
28
26
|
document.querySelector = jest.fn().mockReturnValue(null);
|
|
29
|
-
processNicam(mockStreamObject,
|
|
30
|
-
expect(document.querySelector).toHaveBeenCalledWith(`#${containerId} .bmpui-nicam`);
|
|
27
|
+
processNicam(mockStreamObject, mockElement, mockStreamOptions);
|
|
31
28
|
});
|
|
32
|
-
it(
|
|
29
|
+
it('does nothing if no metadata and no streamOptions', () => {
|
|
33
30
|
mockStreamObject.metadata = {};
|
|
34
31
|
mockStreamOptions = {};
|
|
35
|
-
processNicam(mockStreamObject,
|
|
36
|
-
expect(document.querySelector).toHaveBeenCalledWith(`#${containerId} .bmpui-nicam`);
|
|
32
|
+
processNicam(mockStreamObject, mockElement, mockStreamOptions);
|
|
37
33
|
expect(mockElement.appendChild).not.toHaveBeenCalled();
|
|
38
34
|
});
|
|
39
35
|
});
|
|
40
|
-
//# sourceMappingURL=nicamhandler.test.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type StreamObject, type StreamOptions } from
|
|
2
|
-
import { PlayerAPI, SourceConfig } from
|
|
3
|
-
import { UIManager } from
|
|
1
|
+
import { type StreamObject, type StreamOptions } from '../../../types/interfaces';
|
|
2
|
+
import { PlayerAPI, SourceConfig } from 'bitmovin-player';
|
|
3
|
+
import { UIManager } from 'bitmovin-player-ui';
|
|
4
4
|
export declare function processStream(streamObject: StreamObject | undefined, container: HTMLElement, streamOptions: StreamOptions | null, player: PlayerAPI, uiManager: UIManager, sourceConfig: SourceConfig): void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { processNicam } from
|
|
1
|
+
import { processNicam } from './nicamhandler';
|
|
2
2
|
import * as playerAction from '../../playeractions/playeractions';
|
|
3
|
-
import { PlayerEvent } from
|
|
4
|
-
import { setFragments } from
|
|
3
|
+
import { PlayerEvent } from 'bitmovin-player';
|
|
4
|
+
import { setFragments } from '../../fragments/setfragments';
|
|
5
5
|
export function processStream(streamObject, container, streamOptions, player, uiManager, sourceConfig) {
|
|
6
6
|
if (!streamObject)
|
|
7
7
|
return;
|
|
@@ -21,7 +21,7 @@ export function processStream(streamObject, container, streamOptions, player, ui
|
|
|
21
21
|
element.textContent = sourceConfig.title || '';
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
processNicam(streamObject, container.
|
|
24
|
+
processNicam(streamObject, container.querySelector('.bmpui-nicam'), streamOptions);
|
|
25
25
|
if (streamOptions?.startOffset != null)
|
|
26
26
|
playerAction.handleStartOffset(player, streamOptions.startOffset);
|
|
27
27
|
const isLiveStream = streamObject.stream.isLiveStream && streamObject.stream.hasDvrWindow;
|
|
@@ -38,4 +38,3 @@ export function processStream(streamObject, container, streamOptions, player, ui
|
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
//# sourceMappingURL=streamhandler.js.map
|