@npo/player 1.23.2 → 1.24.1
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 +1 -1
- package/lib/js/playeractions/handlers/error.js +2 -2
- package/lib/js/playeractions/handlers/error.test.js +2 -2
- package/lib/js/playeractions/handlers/handleoffsets.d.ts +4 -6
- package/lib/js/playeractions/handlers/handleoffsets.js +16 -17
- package/lib/js/playeractions/handlers/handleoffsets.test.js +73 -29
- package/lib/js/playeractions/handlers/mediasessionactions.js +24 -12
- package/lib/js/playeractions/handlers/processsourceconfig.js +16 -3
- package/lib/js/tracking/handlers/eventbinding.d.ts +1 -1
- package/lib/js/tracking/handlers/eventbinding.js +17 -23
- package/lib/js/tracking/handlers/eventlogging.d.ts +1 -1
- package/lib/js/tracking/handlers/eventlogging.js +18 -18
- package/lib/js/tracking/handlers/eventlogging.test.js +24 -24
- package/lib/js/tracking/handlers/playertrackerstart.js +4 -2
- package/lib/lang/nl.json +3 -1
- package/lib/npoplayer.d.ts +1 -2
- package/lib/npoplayer.js +30 -44
- package/lib/package.json +5 -5
- package/lib/services/a11y/setup.js +2 -2
- package/lib/services/a11y/setup.test.js +7 -8
- package/lib/services/advertHandlers/discardAdBreak.d.ts +2 -0
- package/lib/services/advertHandlers/discardAdBreak.js +11 -0
- package/lib/services/advertHandlers/discardAdBreak.test.js +60 -0
- package/lib/services/advertHandlers/handlePreRolls.d.ts +2 -0
- package/lib/services/advertHandlers/handlePreRolls.js +132 -0
- package/lib/services/advertHandlers/handlePrerolls.test.js +52 -0
- package/lib/services/cdnProviders/cdnProviders.d.ts +4 -0
- package/lib/services/cdnProviders/cdnProviders.js +22 -0
- package/lib/services/cdnProviders/cndProviders.test.d.ts +1 -0
- package/lib/services/cdnProviders/cndProviders.test.js +22 -0
- package/lib/services/eventListenerHandlers/removeEventListeners.d.ts +1 -1
- package/lib/services/eventListenerHandlers/removeEventListeners.js +4 -4
- package/lib/services/eventListenerHandlers/removeEventListeners.test.js +28 -13
- package/lib/services/liveStreamHandlers/handleLiveStreamControls.d.ts +1 -1
- package/lib/services/liveStreamHandlers/handleLiveStreamControls.js +3 -3
- package/lib/services/liveStreamHandlers/handleLiveStreamControls.test.d.ts +2 -0
- package/lib/services/liveStreamHandlers/handleLiveStreamControls.test.js +65 -0
- package/lib/services/localStorageHandlers/localStorageHandlers.d.ts +1 -1
- package/lib/services/localStorageHandlers/localStorageHandlers.test.js +0 -1
- package/lib/services/npoPlayerAPI/contants.d.ts +5 -0
- package/lib/services/npoPlayerAPI/contants.js +5 -0
- package/lib/services/npoPlayerAPI/npoPlayerAPI.d.ts +17 -4
- package/lib/services/npoPlayerAPI/npoPlayerAPI.js +68 -3
- package/lib/services/npoPlayerAPI/npoPlayerAPI.test.js +66 -1
- package/lib/services/segmentHandlers/addSegmentEventListeners.js +3 -3
- package/lib/services/segmentHandlers/addSegmentEventListeners.test.js +10 -9
- package/lib/services/segmentHandlers/convertFragmentToSegment.d.ts +1 -1
- package/lib/services/segmentHandlers/handleSegmentSeek.d.ts +1 -1
- package/lib/services/segmentHandlers/handleSegmentSeek.test.js +4 -4
- package/lib/services/segmentHandlers/handleSegmentTimeChanged.d.ts +1 -1
- package/lib/services/segmentHandlers/handleSegmentTimeChanged.test.js +33 -24
- package/lib/services/segmentHandlers/initSegment.d.ts +1 -1
- package/lib/services/segmentHandlers/initSegment.test.js +3 -1
- package/lib/services/segmentHandlers/setSegmentMarkers.d.ts +1 -1
- package/lib/services/services.d.ts +3 -1
- package/lib/services/services.js +8 -0
- package/lib/services/verticalVideoHandlers/handleVerticalVideoControls.d.ts +2 -0
- package/lib/services/verticalVideoHandlers/handleVerticalVideoControls.js +8 -0
- package/lib/services/verticalVideoHandlers/handleVerticalVideoControls.test.d.ts +1 -0
- package/lib/services/verticalVideoHandlers/handleVerticalVideoControls.test.js +36 -0
- package/lib/src/js/playeractions/handlers/handleoffsets.d.ts +4 -6
- package/lib/src/js/tracking/handlers/eventbinding.d.ts +1 -1
- package/lib/src/js/tracking/handlers/eventlogging.d.ts +1 -1
- package/lib/src/npoplayer.d.ts +1 -2
- package/lib/src/services/advertHandlers/discardAdBreak.d.ts +2 -0
- package/lib/src/services/advertHandlers/discardAdBreak.test.d.ts +1 -0
- package/lib/src/services/advertHandlers/handlePreRolls.d.ts +2 -0
- package/lib/src/services/advertHandlers/handlePrerolls.test.d.ts +1 -0
- package/lib/src/services/cdnProviders/cdnProviders.d.ts +4 -0
- package/lib/src/services/cdnProviders/cndProviders.test.d.ts +1 -0
- package/lib/src/services/eventListenerHandlers/removeEventListeners.d.ts +1 -1
- package/lib/src/services/liveStreamHandlers/handleLiveStreamControls.d.ts +1 -1
- package/lib/src/services/liveStreamHandlers/handleLiveStreamControls.test.d.ts +2 -0
- package/lib/src/services/localStorageHandlers/localStorageHandlers.d.ts +1 -1
- package/lib/src/services/npoPlayerAPI/contants.d.ts +5 -0
- package/lib/src/services/npoPlayerAPI/npoPlayerAPI.d.ts +17 -4
- package/lib/src/services/segmentHandlers/convertFragmentToSegment.d.ts +1 -1
- package/lib/src/services/segmentHandlers/handleSegmentSeek.d.ts +1 -1
- package/lib/src/services/segmentHandlers/handleSegmentTimeChanged.d.ts +1 -1
- package/lib/src/services/segmentHandlers/initSegment.d.ts +1 -1
- package/lib/src/services/segmentHandlers/setSegmentMarkers.d.ts +1 -1
- package/lib/src/services/services.d.ts +3 -1
- package/lib/src/services/verticalVideoHandlers/handleVerticalVideoControls.d.ts +2 -0
- package/lib/src/services/verticalVideoHandlers/handleVerticalVideoControls.test.d.ts +1 -0
- package/lib/src/types/events.d.ts +8 -1
- package/lib/src/types/interfaces.d.ts +8 -12
- package/lib/src/ui/components/audio/controlbar.d.ts +1 -1
- package/lib/src/ui/components/controlbar.d.ts +1 -1
- package/lib/src/ui/components/seekbar.d.ts +1 -1
- package/lib/src/ui/components/settingspanel.d.ts +1 -1
- package/lib/src/ui/components/verticalvideo/controlbar.d.ts +3 -0
- package/lib/src/ui/handlers/streamhandler.d.ts +2 -4
- package/lib/src/ui/uicontainer.d.ts +2 -2
- package/lib/tests/mocks/mockNpoplayer.js +0 -1
- package/lib/tests/mocks/playerContextMock.d.ts +67 -0
- package/lib/tests/mocks/playerContextMock.js +118 -0
- package/lib/types/events.d.ts +8 -1
- package/lib/types/events.js +184 -1
- package/lib/types/interfaces.d.ts +8 -12
- package/lib/types/interfaces.js +1 -0
- package/lib/ui/components/audio/controlbar.d.ts +1 -1
- package/lib/ui/components/audio/controlbar.js +6 -6
- package/lib/ui/components/controlbar.d.ts +1 -1
- package/lib/ui/components/controlbar.js +13 -11
- package/lib/ui/components/nativemobile/controlbar.js +0 -1
- package/lib/ui/components/seekbar.js +1 -1
- package/lib/ui/components/settingspanel.d.ts +1 -1
- package/lib/ui/components/settingspanel.js +68 -84
- package/lib/ui/components/topbar.js +6 -3
- package/lib/ui/components/verticalvideo/controlbar.d.ts +3 -0
- package/lib/ui/components/verticalvideo/controlbar.js +34 -0
- package/lib/ui/handlers/streamhandler.d.ts +2 -4
- package/lib/ui/handlers/streamhandler.js +16 -7
- package/lib/ui/nativemobileuifactory.js +2 -0
- package/lib/ui/uicontainer.d.ts +2 -2
- package/lib/ui/uicontainer.js +35 -29
- package/package.json +5 -5
- package/src/style/components/_settingspanel.scss +35 -3
- package/src/style/components/_subtitles.scss +29 -25
- package/src/style/components/_textbuttons.scss +2 -2
- package/src/style/components/_volumeslider.scss +1 -0
- package/src/style/components/vertical-video/_bottombar.scss +19 -0
- package/src/style/components/vertical-video/_buttons.scss +23 -0
- package/src/style/components/vertical-video/_hugeplaybacktogglebutton.scss +14 -0
- package/src/style/components/vertical-video/_seekbar.scss +19 -0
- package/src/style/components/vertical-video/_settingsbutton.scss +7 -0
- package/src/style/components/vertical-video/_settingspanel.scss +14 -0
- package/src/style/components/vertical-video/_shortvideo.scss +14 -0
- package/src/style/components/vertical-video/_subtitles.scss +3 -0
- package/src/style/components/vertical-video/_topbar.scss +17 -0
- package/src/style/components/vertical-video/_volumeslider.scss +9 -0
- package/src/style/npoplayer.css +74 -34
- package/src/style/npoplayer.scss +2 -1
- package/src/style/variants/_player-small.scss +18 -10
- package/src/style/variants/_player-vertical.scss +23 -0
- package/lib/js/ads/ster.d.ts +0 -4
- package/lib/js/ads/ster.js +0 -126
- package/lib/js/ads/ster.test.js +0 -63
- package/lib/js/cdnproviders.d.ts +0 -1
- package/lib/js/cdnproviders.js +0 -16
- package/lib/src/js/ads/ster.d.ts +0 -4
- package/lib/src/js/cdnproviders.d.ts +0 -1
- package/lib/tests/mocks/mockPlayerContext.d.ts +0 -2
- package/lib/tests/mocks/mockPlayerContext.js +0 -40
- /package/lib/{js/ads/ster.test.d.ts → services/advertHandlers/discardAdBreak.test.d.ts} +0 -0
- /package/lib/{src/js/ads/ster.test.d.ts → services/advertHandlers/handlePrerolls.test.d.ts} +0 -0
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { processNicam } from './nicamhandler';
|
|
2
2
|
import * as playerAction from '../../js/playeractions/playeractions';
|
|
3
|
-
import { PlayerEvent } from 'bitmovin-player';
|
|
4
3
|
import { initSegment } from '../../services/segmentHandlers/initSegment';
|
|
5
4
|
import { handleLiveStreamControls } from '../../services/liveStreamHandlers/handleLiveStreamControls';
|
|
6
5
|
import { removeEventListeners } from '../../services/eventListenerHandlers/removeEventListeners';
|
|
7
|
-
|
|
6
|
+
import { NpoPlayerEvent } from '../../types/events';
|
|
7
|
+
export function processStream(playerContext) {
|
|
8
|
+
const { streamObject, container, streamOptions, uiManager } = playerContext.npoplayer;
|
|
9
|
+
const player = playerContext.player;
|
|
8
10
|
if (!streamObject)
|
|
9
11
|
return;
|
|
10
12
|
if (uiManager == undefined)
|
|
@@ -16,7 +18,7 @@ export function processStream(streamObject, container, streamOptions, player, ui
|
|
|
16
18
|
fragment: streamOptions?.fragments
|
|
17
19
|
});
|
|
18
20
|
if (streamOptions?.startOffset) {
|
|
19
|
-
playerAction.handleStartOffset(
|
|
21
|
+
playerAction.handleStartOffset(playerContext, streamOptions.startOffset);
|
|
20
22
|
}
|
|
21
23
|
const isLiveStream = streamObject.stream.isLiveStream;
|
|
22
24
|
const isLiveStreamNoDvr = isLiveStream && streamObject.stream.hasDvrWindow === false;
|
|
@@ -42,10 +44,17 @@ export function processStream(streamObject, container, streamOptions, player, ui
|
|
|
42
44
|
playerContainer?.classList.remove(audioOnlyClass);
|
|
43
45
|
poster?.classList.remove(audioOnlyClass);
|
|
44
46
|
}
|
|
45
|
-
const isAutoplayEnabled = player.getConfig()?.playback?.autoplay ?? false;
|
|
46
|
-
|
|
47
|
-
player.
|
|
48
|
-
|
|
47
|
+
const isAutoplayEnabled = streamOptions?.autoplay ?? player.getConfig()?.playback?.autoplay ?? false;
|
|
48
|
+
const doAutoPlay = async () => {
|
|
49
|
+
player.off(NpoPlayerEvent.SourceLoaded, handleAutoPlay);
|
|
50
|
+
await player.play();
|
|
51
|
+
};
|
|
52
|
+
const handleAutoPlay = () => {
|
|
53
|
+
doAutoPlay().catch((error) => {
|
|
54
|
+
console.error('Error attempting to autoplay:', error);
|
|
49
55
|
});
|
|
56
|
+
};
|
|
57
|
+
if (isAutoplayEnabled) {
|
|
58
|
+
player.on(NpoPlayerEvent.SourceLoaded, handleAutoPlay);
|
|
50
59
|
}
|
|
51
60
|
}
|
|
@@ -43,6 +43,7 @@ export function nativeMobileUiFactory(player, config = {}) {
|
|
|
43
43
|
if (_webData.assets.preroll) {
|
|
44
44
|
adBreakActive = true;
|
|
45
45
|
player.on(PlayerEvent.AdBreakFinished, setAdBreakActiveToFalse);
|
|
46
|
+
player.on(PlayerEvent.AdError, setAdBreakActiveToFalse);
|
|
46
47
|
}
|
|
47
48
|
if (_webData.metadata?.ageRating)
|
|
48
49
|
processNicam(_webData, nicamElement, undefined);
|
|
@@ -53,6 +54,7 @@ export function nativeMobileUiFactory(player, config = {}) {
|
|
|
53
54
|
const setAdBreakActiveToFalse = () => {
|
|
54
55
|
adBreakActive = false;
|
|
55
56
|
player.off(PlayerEvent.AdBreakFinished, setAdBreakActiveToFalse);
|
|
57
|
+
player.off(PlayerEvent.AdError, setAdBreakActiveToFalse);
|
|
56
58
|
};
|
|
57
59
|
if (window.bitmovin?.customMessageHandler) {
|
|
58
60
|
const handleData = (data) => {
|
package/lib/ui/uicontainer.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import NpoPlayer from '../npoplayer';
|
|
2
2
|
import { UIContainer } from 'bitmovin-player-ui';
|
|
3
3
|
import { PlayerAPI } from 'bitmovin-player';
|
|
4
4
|
import { NpoPlayerUIVariants } from '../types/interfaces';
|
|
5
|
-
export declare function createUIContainer(
|
|
5
|
+
export declare function createUIContainer(npoPlayer: NpoPlayer, player: PlayerAPI, variant: NpoPlayerUIVariants, container: HTMLElement): UIContainer;
|
package/lib/ui/uicontainer.js
CHANGED
|
@@ -10,64 +10,70 @@ import { createTitleBar } from './components/titlebar';
|
|
|
10
10
|
import { localizeKey } from '../js/utilities/utilities.locale';
|
|
11
11
|
import { localizationConfig } from '../js/settings/localization';
|
|
12
12
|
import { NpoPlayerUIVariants } from '../types/interfaces';
|
|
13
|
-
|
|
13
|
+
import { createVerticalVideoControlBar } from './components/verticalvideo/controlbar';
|
|
14
|
+
import { DEFAULT_UI_DELAY, PREVENT_UI_DELAY } from '../services/npoPlayerAPI/contants';
|
|
15
|
+
export function createUIContainer(npoPlayer, player, variant, container) {
|
|
14
16
|
const cssClassArray = ['npo-player'];
|
|
15
|
-
let uiDelay =
|
|
16
|
-
container.dataset.npoPlayerVersion =
|
|
17
|
+
let uiDelay = DEFAULT_UI_DELAY;
|
|
18
|
+
container.dataset.npoPlayerVersion = npoPlayer.version;
|
|
17
19
|
container.classList.remove('bitmovinplayer-audio-container');
|
|
18
20
|
switch (variant) {
|
|
19
21
|
case NpoPlayerUIVariants.DEFAULT: {
|
|
20
|
-
uiDelay =
|
|
22
|
+
uiDelay = DEFAULT_UI_DELAY;
|
|
21
23
|
break;
|
|
22
24
|
}
|
|
23
25
|
case NpoPlayerUIVariants.AD: {
|
|
24
|
-
uiDelay =
|
|
26
|
+
uiDelay = PREVENT_UI_DELAY;
|
|
25
27
|
cssClassArray.push('ster-ad');
|
|
26
28
|
break;
|
|
27
29
|
}
|
|
28
30
|
case NpoPlayerUIVariants.AUDIO: {
|
|
29
|
-
uiDelay =
|
|
31
|
+
uiDelay = PREVENT_UI_DELAY;
|
|
30
32
|
container.classList.add('bitmovinplayer-audio-container');
|
|
31
33
|
cssClassArray.push('audio');
|
|
32
34
|
break;
|
|
33
35
|
}
|
|
36
|
+
case NpoPlayerUIVariants.VERTICAL: {
|
|
37
|
+
uiDelay = DEFAULT_UI_DELAY;
|
|
38
|
+
cssClassArray.push('vertical-video');
|
|
39
|
+
npoPlayer.player?.setAspectRatio('9:16');
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
34
42
|
}
|
|
35
43
|
const middleButtons = createMiddleButtons(player);
|
|
36
|
-
const playNextScreen = createPlayNextScreen(player,
|
|
37
|
-
const settingsPanel = createSettingsPanel(
|
|
38
|
-
const ctaBar = createCTABar(player,
|
|
39
|
-
const topBar = createTopBar(
|
|
40
|
-
const controlBar = createControlBar(
|
|
41
|
-
const titleBar = createTitleBar(
|
|
44
|
+
const playNextScreen = createPlayNextScreen(player, npoPlayer);
|
|
45
|
+
const settingsPanel = createSettingsPanel(npoPlayer);
|
|
46
|
+
const ctaBar = createCTABar(player, npoPlayer, variant);
|
|
47
|
+
const topBar = createTopBar(npoPlayer);
|
|
48
|
+
const controlBar = createControlBar(npoPlayer);
|
|
49
|
+
const titleBar = createTitleBar(npoPlayer);
|
|
42
50
|
const playbackToggleOverlay = new PlaybackToggleOverlay();
|
|
43
|
-
const audioControlbar = createAudioControlBar(
|
|
51
|
+
const audioControlbar = createAudioControlBar(npoPlayer);
|
|
44
52
|
const bufferingOverlay = new BufferingOverlay();
|
|
53
|
+
const verticalVideoControlBar = createVerticalVideoControlBar(npoPlayer);
|
|
45
54
|
const errorMessageOverlay = new ErrorMessageOverlay();
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
bufferingOverlay,
|
|
51
|
-
playbackToggleOverlay,
|
|
52
|
-
new CastStatusOverlay(),
|
|
53
|
-
middleButtons
|
|
54
|
-
];
|
|
55
|
-
const baseComponentsAfter = [errorMessageOverlay];
|
|
56
|
-
const conditionalComponents = [];
|
|
55
|
+
const castStatusOverlay = new CastStatusOverlay();
|
|
56
|
+
npoPlayer.uiComponents.errorMessageOverlay = errorMessageOverlay;
|
|
57
|
+
const defaultVideoComponents = [settingsPanel, new SubtitleOverlay(), bufferingOverlay, playbackToggleOverlay];
|
|
58
|
+
const components = [];
|
|
57
59
|
if (variant === NpoPlayerUIVariants.DEFAULT) {
|
|
58
|
-
|
|
60
|
+
components.push(...defaultVideoComponents, castStatusOverlay, middleButtons, playNextScreen, controlBar, ctaBar, titleBar, topBar);
|
|
61
|
+
}
|
|
62
|
+
if (variant === NpoPlayerUIVariants.VERTICAL) {
|
|
63
|
+
components.push(...defaultVideoComponents, verticalVideoControlBar, titleBar);
|
|
59
64
|
}
|
|
60
65
|
if (variant === NpoPlayerUIVariants.AUDIO) {
|
|
61
|
-
|
|
66
|
+
components.push(new PlaybackToggleButton(), audioControlbar, titleBar);
|
|
62
67
|
}
|
|
63
68
|
if (variant === NpoPlayerUIVariants.AD) {
|
|
64
|
-
|
|
69
|
+
components.push(...defaultVideoComponents, castStatusOverlay, middleButtons, controlBar, ctaBar);
|
|
65
70
|
}
|
|
66
71
|
UIManager.setLocalizationConfig(localizationConfig);
|
|
72
|
+
const ariaLabelKey = variant === NpoPlayerUIVariants.AUDIO ? 'audioPlayer' : 'videoPlayer';
|
|
67
73
|
return new UIContainer({
|
|
68
|
-
components: [...
|
|
74
|
+
components: [...components, errorMessageOverlay],
|
|
69
75
|
cssClasses: cssClassArray,
|
|
70
|
-
ariaLabel: localizeKey(
|
|
76
|
+
ariaLabel: localizeKey(ariaLabelKey),
|
|
71
77
|
hideDelay: uiDelay,
|
|
72
78
|
hidePlayerStateExceptions: [PlayerUtils.PlayerState.Paused]
|
|
73
79
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@npo/player",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.24.1",
|
|
4
4
|
"description": "NPO Player",
|
|
5
5
|
"author": "Publieke Omroep <player@npo.nl>",
|
|
6
6
|
"contributors": [
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"types": "./lib/npoplayer.d.ts",
|
|
17
17
|
"scripts": {
|
|
18
18
|
"build": "webpack --hot",
|
|
19
|
-
"build:scss": "npm run build:web-styles && npm run build:mobile-styles && mkdir -p dist && cp src/style/*.css dist &&
|
|
19
|
+
"build:scss": "npm run build:web-styles && npm run build:mobile-styles && mkdir -p dist && cp src/style/*.css dist && cp src/style/*.css.map dist && mkdir -p src/scss && cp src/style/*.css src/scss && cp src/style/*.css.map src/scss",
|
|
20
20
|
"build:web-styles": "sass src/style/npoplayer.scss:src/style/npoplayer.css --style=compressed && postcss src/style/npoplayer.css --use autoprefixer postcss-import -o src/style/npoplayer.css",
|
|
21
21
|
"build:mobile-styles": "sass src/style/npoplayer-mobile.scss:src/style/npoplayer-mobile.css --style=compressed && postcss src/style/npoplayer-mobile.css --use autoprefixer postcss-import -o src/style/npoplayer-mobile.css",
|
|
22
22
|
"build:cdn": "npm run build && bash build-cdn.sh",
|
|
@@ -89,9 +89,9 @@
|
|
|
89
89
|
"webpack-dev-server": "^4.11.1"
|
|
90
90
|
},
|
|
91
91
|
"dependencies": {
|
|
92
|
-
"@npotag/tag": "3.1
|
|
93
|
-
"bitmovin-player": "8.
|
|
94
|
-
"bitmovin-player-ui": "3.
|
|
92
|
+
"@npotag/tag": "3.2.1",
|
|
93
|
+
"bitmovin-player": "8.173.0",
|
|
94
|
+
"bitmovin-player-ui": "3.67.0"
|
|
95
95
|
},
|
|
96
96
|
"browserslist": [
|
|
97
97
|
"defaults",
|
|
@@ -3,7 +3,7 @@ $settings-panel-line-height: 19px;
|
|
|
3
3
|
|
|
4
4
|
.bmpui-ui-settings-panel {
|
|
5
5
|
display: block;
|
|
6
|
-
padding: 24px;
|
|
6
|
+
padding: 40px 24px 24px;
|
|
7
7
|
height: auto;
|
|
8
8
|
min-width: 290px; //Hotfix for select capping of text with only 'Snelheid'
|
|
9
9
|
z-index: 100;
|
|
@@ -65,13 +65,11 @@ $settings-panel-line-height: 19px;
|
|
|
65
65
|
max-height: unset;
|
|
66
66
|
padding: unset;
|
|
67
67
|
vertical-align: unset;
|
|
68
|
-
width: 45%;
|
|
69
68
|
margin-left: 0;
|
|
70
69
|
font-family: var(--fontRegular);
|
|
71
70
|
font-size: $settings-panel-font-size;
|
|
72
71
|
line-height: $settings-panel-line-height;
|
|
73
72
|
text-align: right;
|
|
74
|
-
padding-right: 15px;
|
|
75
73
|
|
|
76
74
|
span {
|
|
77
75
|
display: inline-block;
|
|
@@ -102,6 +100,7 @@ $settings-panel-line-height: 19px;
|
|
|
102
100
|
align-items: center;
|
|
103
101
|
padding: 0px;
|
|
104
102
|
gap: 8px;
|
|
103
|
+
justify-content: space-between;
|
|
105
104
|
}
|
|
106
105
|
}
|
|
107
106
|
}
|
|
@@ -215,6 +214,39 @@ $settings-panel-line-height: 19px;
|
|
|
215
214
|
}
|
|
216
215
|
}
|
|
217
216
|
}
|
|
217
|
+
|
|
218
|
+
.bmpui-ui-settingstogglebutton {
|
|
219
|
+
position: absolute;
|
|
220
|
+
top: 12px;
|
|
221
|
+
right: 20px;
|
|
222
|
+
width: 32px;
|
|
223
|
+
height: 32px;
|
|
224
|
+
padding: 0;
|
|
225
|
+
|
|
226
|
+
span {
|
|
227
|
+
display: none;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
&::before,
|
|
231
|
+
&::after {
|
|
232
|
+
content: '';
|
|
233
|
+
top: 8px;
|
|
234
|
+
left: 16px;
|
|
235
|
+
width: 2px;
|
|
236
|
+
height: 15px;
|
|
237
|
+
position: absolute;
|
|
238
|
+
background-color: var(--npo-player-iconcolor);
|
|
239
|
+
transform-origin: 50% 50%;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
&::before {
|
|
243
|
+
transform: rotate(-45deg);
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
&::after {
|
|
247
|
+
transform: rotate(45deg);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
218
250
|
}
|
|
219
251
|
|
|
220
252
|
&.bmpui-settings-panel-shown {
|
|
@@ -1,18 +1,3 @@
|
|
|
1
|
-
$breakpoints: (
|
|
2
|
-
600px: 1.593em,
|
|
3
|
-
700px: 1.867em,
|
|
4
|
-
1200px: 3.2em,
|
|
5
|
-
1440px: 3.84em
|
|
6
|
-
);
|
|
7
|
-
|
|
8
|
-
@mixin responsive-font($size, $span-size) {
|
|
9
|
-
font-size: $size !important;
|
|
10
|
-
|
|
11
|
-
span {
|
|
12
|
-
font-size: $span-size !important;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
|
|
16
1
|
.bmpui-ui-subtitle-overlay {
|
|
17
2
|
p {
|
|
18
3
|
display: inline-block;
|
|
@@ -25,7 +10,6 @@ $breakpoints: (
|
|
|
25
10
|
}
|
|
26
11
|
|
|
27
12
|
.bmpui-subtitle-region-container {
|
|
28
|
-
font-size: 15.22px !important;
|
|
29
13
|
position: static !important;
|
|
30
14
|
display: block;
|
|
31
15
|
width: 100%;
|
|
@@ -37,28 +21,48 @@ $breakpoints: (
|
|
|
37
21
|
overflow-wrap: break-word;
|
|
38
22
|
overflow: hidden;
|
|
39
23
|
writing-mode: horizontal-tb;
|
|
24
|
+
text-align: center !important;
|
|
40
25
|
width: 100% !important;
|
|
41
26
|
inset: none !important;
|
|
42
27
|
display: block !important;
|
|
43
|
-
bottom:
|
|
28
|
+
bottom: 16px !important;
|
|
44
29
|
left: 0 !important;
|
|
45
30
|
right: 0!important;
|
|
46
31
|
top: auto !important;
|
|
47
|
-
font-weight: 400
|
|
48
|
-
padding: 0
|
|
32
|
+
font-weight: 400;
|
|
33
|
+
padding: 0 16px;
|
|
49
34
|
line-height: 1.2;
|
|
50
|
-
|
|
35
|
+
font-size: 12px;
|
|
36
|
+
|
|
37
|
+
@container (min-width: 400px) {
|
|
38
|
+
font-size: 16px;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@container (min-width: 600px) {
|
|
42
|
+
font-size: 20px;
|
|
43
|
+
}
|
|
51
44
|
|
|
52
|
-
@
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
45
|
+
@container (min-width: 800px) {
|
|
46
|
+
font-size: 26px;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@container (min-width: 1200px) {
|
|
50
|
+
font-size: 32px;
|
|
51
|
+
bottom: 32px !important;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
span {
|
|
55
|
+
background-color: rgba(0, 0, 0, 0.6);
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
[style="color: green"] {
|
|
61
|
+
color: lime !important;
|
|
62
|
+
}
|
|
63
|
+
|
|
60
64
|
.green {
|
|
61
|
-
color:
|
|
65
|
+
color: lime;
|
|
62
66
|
}
|
|
63
67
|
|
|
64
68
|
.cyan {
|
|
@@ -19,14 +19,14 @@
|
|
|
19
19
|
border-radius: 6px;
|
|
20
20
|
height: 32px;
|
|
21
21
|
box-sizing: border-box;
|
|
22
|
-
font-weight:
|
|
22
|
+
font-weight: 400;
|
|
23
23
|
filter: drop-shadow(0px 4px 16px rgba(0, 0, 0, 0.45));
|
|
24
24
|
|
|
25
25
|
.bmpui-label {
|
|
26
26
|
position: relative;
|
|
27
27
|
display: block;
|
|
28
28
|
font-family: var(--fontBold);
|
|
29
|
-
font-weight:
|
|
29
|
+
font-weight: 400;
|
|
30
30
|
font-size: 12px;
|
|
31
31
|
color: #ffffff;
|
|
32
32
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
.bmpui-ui-controlbar-bottom {
|
|
2
|
+
padding: 16px 8px !important;
|
|
3
|
+
display: flex;
|
|
4
|
+
width: 100%;
|
|
5
|
+
height: 100%;
|
|
6
|
+
align-items: flex-end;
|
|
7
|
+
pointer-events: none;
|
|
8
|
+
|
|
9
|
+
.bmpui-container-wrapper {
|
|
10
|
+
width: 100%;
|
|
11
|
+
pointer-events: all;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
&.bmpui-controls-shown {
|
|
16
|
+
.bmpui-ui-controlbar-bottom {
|
|
17
|
+
background: var(--npo-player-vertical-video-overlay-color);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
.bmpui-vertical-video-controlbar-buttons .bmpui-container-wrapper {
|
|
2
|
+
display: flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
justify-content: center;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.bmpui-ui-settingstogglebutton,
|
|
8
|
+
.bmpui-ui-volumetogglebutton,
|
|
9
|
+
.bmpui-ui-rewindbutton,
|
|
10
|
+
.bmpui-ui-playbacktogglebutton,
|
|
11
|
+
.bmpui-ui-forwardbutton,
|
|
12
|
+
.bmpui-ui-fullscreentogglebutton {
|
|
13
|
+
width: 48px;
|
|
14
|
+
height: 48px;
|
|
15
|
+
padding: 0;
|
|
16
|
+
margin: 0 8px;
|
|
17
|
+
|
|
18
|
+
.bmpui-label {
|
|
19
|
+
width: 32px;
|
|
20
|
+
height: 32px;
|
|
21
|
+
margin: 8px;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
.bmpui-controlbar-seekbar {
|
|
2
|
+
.bmpui-container-wrapper {
|
|
3
|
+
margin: 8px 0;
|
|
4
|
+
|
|
5
|
+
.bmpui-ui-playbacktimelabel {
|
|
6
|
+
font-family: var(--fontRegular);
|
|
7
|
+
|
|
8
|
+
&.bmpui-total-time {
|
|
9
|
+
opacity: 0.65;
|
|
10
|
+
font-weight: 400;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// hide scrubbing thumbnail
|
|
16
|
+
.bmpui-ui-seekbar-label {
|
|
17
|
+
display: none;
|
|
18
|
+
}
|
|
19
|
+
}
|