@npo/player 1.23.2 → 1.24.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 +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 +25 -43
- 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/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.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 +16 -4
- package/lib/services/npoPlayerAPI/npoPlayerAPI.js +65 -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/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 +16 -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 +117 -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/handlePrerolls.test.d.ts} +0 -0
- /package/lib/{src/js/ads/ster.test.d.ts → services/cdnProviders/cndProviders.test.d.ts} +0 -0
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export declare function
|
|
5
|
-
export declare function shiftToProgramStart(player: PlayerAPI | undefined, timestamp?: number): void;
|
|
6
|
-
export declare function handleLiveOffsetLogic(npoplayer: NpoPlayer, player: PlayerAPI | undefined, options: StreamOptions): void;
|
|
1
|
+
import { PlayerContext, type StreamOptions } from '../../../types/interfaces';
|
|
2
|
+
export declare function handleStartOffset(playerContext: PlayerContext, offset?: number): void;
|
|
3
|
+
export declare function shiftToProgramStart(playerContext: PlayerContext, timestamp?: number): void;
|
|
4
|
+
export declare function handleLiveOffsetLogic(playerContext: PlayerContext, options: StreamOptions): void;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { type PlayerAPI } from 'bitmovin-player';
|
|
2
2
|
import type NpoPlayer from '../../../npoplayer';
|
|
3
|
-
export declare function bindPlayerEvents(
|
|
3
|
+
export declare function bindPlayerEvents(npoPlayer: NpoPlayer, player: PlayerAPI): void;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import NpoPlayer from '../../../npoplayer';
|
|
2
|
-
export declare function logEvent(
|
|
2
|
+
export declare function logEvent(npoPlayer: NpoPlayer, event: string, data?: any): void;
|
package/lib/src/npoplayer.d.ts
CHANGED
|
@@ -32,9 +32,8 @@ export default class NpoPlayer {
|
|
|
32
32
|
mockNpoPlayer: any;
|
|
33
33
|
userPreferences: LocalStorageData;
|
|
34
34
|
constructor(_container: HTMLElement, _playerConfig: PlayerConfig, _npotag?: InitialisationProps | undefined, _npotaginstance?: NPOTag | undefined, _variant?: NpoPlayerUIVariants);
|
|
35
|
-
initPlayer(_container: HTMLElement, playerConfig: PlayerConfig
|
|
35
|
+
initPlayer(_container: HTMLElement, playerConfig: PlayerConfig): void;
|
|
36
36
|
loadStream(source: string, options?: StreamOptions): Promise<void>;
|
|
37
|
-
createUIManager(player: PlayerAPI, playerContext: PlayerContext, variant: NpoPlayerUIVariants): Promise<void>;
|
|
38
37
|
doError(input: any, status?: number): void;
|
|
39
38
|
play(): Promise<void>;
|
|
40
39
|
pause(): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type CdnProvider = 'NEP-FASTLY' | 'NEP' | 'NEP-LSW' | 'EUROVISION' | 'KPN' | 'AKEMAI' | 'OMROEP-ICECAST' | 'OMROEP-CONTENT' | 'OMROEP-PODCAST' | 'OMROEP-VIDEO' | 'OMROEP-DOWNLOAD' | 'NOS' | 'NPOAUDIO';
|
|
2
|
+
export declare function createImmutableMap(entries: [string, CdnProvider][]): ReadonlyMap<string, CdnProvider>;
|
|
3
|
+
export declare const npoCdnProvidersData: [string, CdnProvider][];
|
|
4
|
+
export declare const npoCdnProviders: ReadonlyMap<string, CdnProvider>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { PlayerContext } from 'types/interfaces';
|
|
1
|
+
import { PlayerContext } from '../../types/interfaces';
|
|
2
2
|
export declare const removeEventListeners: (playerContext: PlayerContext) => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PlayerContext } from 'types/interfaces';
|
|
1
|
+
import { PlayerContext } from '../../types/interfaces';
|
|
2
2
|
export declare const handleLiveStreamControls: (playerContext: PlayerContext) => void;
|
|
3
3
|
export declare function updateForwardButtonState(player: any): void;
|
|
4
4
|
export declare function toggleForwardButtons(forwardButtons: NodeListOf<Element>, timeShift: number): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LocalStorageData, LocalStorageValues, PlayerContext } from 'types/interfaces';
|
|
1
|
+
import { LocalStorageData, LocalStorageValues, PlayerContext } from '../../types/interfaces';
|
|
2
2
|
export declare function setLocalStorage(key: LocalStorageValues, value: any): void;
|
|
3
3
|
export declare function getLocalStorage(): LocalStorageData;
|
|
4
4
|
export declare function setValuesBasedOnLocalStorage(playerContext: PlayerContext): void;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { AdBreak, AdConfig, PlayerAPI, PlayerConfig, SourceConfig, TimeMode, ViewMode } from 'bitmovin-player';
|
|
2
|
+
import { UIManager } from 'bitmovin-player-ui';
|
|
3
|
+
import { NpoPlayerUIVariants, PlayerContext, Technology } from 'types/interfaces';
|
|
4
|
+
import { NpoPlayerEventCallback, NpoPlayerEvent } from '../../types/events';
|
|
3
5
|
export declare class NpoPlayerAPI {
|
|
4
6
|
playerAPI: PlayerAPI;
|
|
5
7
|
constructor(playerAPI: PlayerAPI);
|
|
@@ -10,21 +12,31 @@ export declare class NpoPlayerAPI {
|
|
|
10
12
|
unmute(): void;
|
|
11
13
|
getVolume(): number;
|
|
12
14
|
setVolume(level: number): void;
|
|
15
|
+
increaseVolume(): void;
|
|
16
|
+
decreaseVolume(): void;
|
|
13
17
|
setViewMode(viewMode: ViewMode): void;
|
|
14
18
|
getViewMode(): ViewMode;
|
|
15
19
|
areSubtitlesEnabled(): boolean;
|
|
16
20
|
enableSubtitles(): void;
|
|
17
21
|
isPaused(): boolean;
|
|
18
22
|
isMuted(): boolean;
|
|
23
|
+
isLive(): boolean;
|
|
19
24
|
getSupportedDRM(): Promise<string[]>;
|
|
20
25
|
getSupportedTech(): Technology[];
|
|
21
|
-
off(eventType:
|
|
22
|
-
on(eventType:
|
|
26
|
+
off(eventType: NpoPlayerEvent, callback: NpoPlayerEventCallback): void;
|
|
27
|
+
on(eventType: NpoPlayerEvent, callback: NpoPlayerEventCallback): void;
|
|
23
28
|
seek(time: number): void;
|
|
29
|
+
timeShift(time: number): void;
|
|
24
30
|
getContainer(): HTMLElement;
|
|
25
31
|
getNpoPlayerElement(): Element | null;
|
|
26
32
|
addClassToNpoPlayerElement(className: string): void | undefined;
|
|
27
33
|
removeClassFromNpoPlayerElement(className: string): void | undefined;
|
|
34
|
+
toggleClassOnNpoPlayerElement(className: string, toggle: boolean): void | undefined;
|
|
28
35
|
getCurrentTime(mode?: TimeMode | undefined): number;
|
|
36
|
+
getDuration(): number;
|
|
29
37
|
getTimeShift(): number;
|
|
38
|
+
scheduleAds(adConfig: AdConfig): Promise<AdBreak[]>;
|
|
39
|
+
getActiveAdBreak(): AdBreak | null;
|
|
40
|
+
getConfig(mergedConfig?: boolean): PlayerConfig;
|
|
41
|
+
createUIManager(playerContext: PlayerContext, variant: NpoPlayerUIVariants): Promise<void | UIManager>;
|
|
30
42
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Fragment, Segment } from 'types/interfaces';
|
|
1
|
+
import { Fragment, Segment } from '../../types/interfaces';
|
|
2
2
|
export declare function convertFragmentToSegment(fragment: Fragment): Segment;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PlayerContext, Segment } from 'types/interfaces';
|
|
1
|
+
import { PlayerContext, Segment } from '../../types/interfaces';
|
|
2
2
|
export declare const handleSegmentSeek: (playerContext: PlayerContext, segment: Segment) => (e: any) => void;
|
|
3
3
|
export declare const getSeekTarget: (event: any) => number;
|
|
4
4
|
export declare const isSeekOutsideSegment: (seekTarget: number, segment: Segment) => boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { PlayerContext, Segment } from 'types/interfaces';
|
|
1
|
+
import { PlayerContext, Segment } from '../../types/interfaces';
|
|
2
2
|
export declare const handleSegmentTimeChanged: (playerContext: PlayerContext, segment: Segment) => (e: any) => void;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Segment, TimeLineMarker } from 'types/interfaces';
|
|
1
|
+
import { Segment, TimeLineMarker } from '../../types/interfaces';
|
|
2
2
|
export declare function setSegmentMarkers(segment: Segment, title: string): Array<TimeLineMarker>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ApiPayload, Fragment, PlayerContext, Profile, Segment, TimeLineMarker, LocalStorageData, LocalStorageValues } from 'types/interfaces';
|
|
1
|
+
import { ApiPayload, Fragment, PlayerContext, Profile, Segment, TimeLineMarker, LocalStorageData, LocalStorageValues, NpoPlayerUIVariants } from '../types/interfaces';
|
|
2
2
|
import { AVType } from '@npotag/tag/dist/types/src/streamTracker';
|
|
3
3
|
export declare class NpoPlayerServices {
|
|
4
4
|
getAVType(avType: string): AVType;
|
|
@@ -11,4 +11,6 @@ export declare class NpoPlayerServices {
|
|
|
11
11
|
getStoredUserPrefs(): LocalStorageData;
|
|
12
12
|
handleUserPrefs(playerContext: PlayerContext): void;
|
|
13
13
|
setAccessibilityAttributes(playerContext: PlayerContext): void;
|
|
14
|
+
schedulePreRolls(playerContext: PlayerContext): Promise<void>;
|
|
15
|
+
handleVerticalVideoControls(playerContext: PlayerContext, variant: NpoPlayerUIVariants): void;
|
|
14
16
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
import { PlayerEvent } from 'bitmovin-player';
|
|
2
|
+
type PlayerEventMap = {
|
|
3
|
+
[key in NpoPlayerEvent]: PlayerEvent;
|
|
4
|
+
};
|
|
5
|
+
export type NpoPlayerEventCallback = (event: NpoPlayerEvent) => void;
|
|
6
|
+
export declare enum NpoPlayerEvent {
|
|
2
7
|
Ready = "ready",
|
|
3
8
|
Play = "play",
|
|
4
9
|
Playing = "playing",
|
|
@@ -89,3 +94,5 @@ export declare enum PlayerEvent {
|
|
|
89
94
|
DrmLicenseAdded = "drmlicenseadded",
|
|
90
95
|
AspectRatioChanged = "aspectratiochanged"
|
|
91
96
|
}
|
|
97
|
+
export declare const playerEventMap: PlayerEventMap;
|
|
98
|
+
export {};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { PlayerEventCallback, type SourceConfig } from 'bitmovin-player';
|
|
2
1
|
import { type ErrorMessageOverlay, type Label, ControlBar, SettingsPanelItem, Button, SeekBar, CastToggleButton, SettingsPanel } from 'bitmovin-player-ui';
|
|
3
2
|
import { type NPOTag, type PageTracker } from '@npotag/tag';
|
|
4
3
|
import { ButtonConfig } from 'bitmovin-player-ui/dist/js/framework/components/button';
|
|
5
4
|
import NpoPlayer from '../npoplayer';
|
|
6
5
|
import { NpoPlayerAPI } from '../services/npoPlayerAPI/npoPlayerAPI';
|
|
6
|
+
import { NpoPlayerEventCallback } from './events';
|
|
7
|
+
import { SourceConfig } from 'bitmovin-player';
|
|
7
8
|
export { Technology } from 'bitmovin-player';
|
|
8
9
|
export interface Profile {
|
|
9
10
|
profileName: string;
|
|
@@ -15,9 +16,9 @@ export interface Segment {
|
|
|
15
16
|
duration: number;
|
|
16
17
|
}
|
|
17
18
|
export interface EventListeners {
|
|
18
|
-
liveStreamHandleTimeChangedCallback?:
|
|
19
|
-
segmentHandleTimeChangedCallback?:
|
|
20
|
-
segmentSeekFunctionCallback?:
|
|
19
|
+
liveStreamHandleTimeChangedCallback?: NpoPlayerEventCallback;
|
|
20
|
+
segmentHandleTimeChangedCallback?: NpoPlayerEventCallback;
|
|
21
|
+
segmentSeekFunctionCallback?: NpoPlayerEventCallback;
|
|
21
22
|
}
|
|
22
23
|
export interface StreamObject {
|
|
23
24
|
stream: StreamObject_Stream;
|
|
@@ -76,19 +77,12 @@ interface StreamObject_Assets {
|
|
|
76
77
|
}
|
|
77
78
|
export interface StreamObject_Metadata {
|
|
78
79
|
broadcaster?: string;
|
|
79
|
-
broadcasters?: string[];
|
|
80
|
-
country?: string[];
|
|
81
|
-
credits?: string[];
|
|
82
80
|
description: string;
|
|
83
81
|
duration?: string;
|
|
84
|
-
genre?: string[];
|
|
85
|
-
isDubbed?: boolean;
|
|
86
|
-
language?: string[];
|
|
87
82
|
nicam?: string[] | null;
|
|
88
83
|
poster?: string;
|
|
89
84
|
posterIsDefault?: boolean;
|
|
90
85
|
prid?: string;
|
|
91
|
-
sourceIP?: string;
|
|
92
86
|
ageRating?: string;
|
|
93
87
|
title: string;
|
|
94
88
|
hasPreroll?: string;
|
|
@@ -117,6 +111,7 @@ export interface StreamOptions {
|
|
|
117
111
|
useWidevineServerCertificate?: boolean;
|
|
118
112
|
customFallbackPoster?: string;
|
|
119
113
|
autoFillTimeLineMarkerDuration?: boolean;
|
|
114
|
+
autoplay?: boolean;
|
|
120
115
|
}
|
|
121
116
|
export interface UIComponents {
|
|
122
117
|
errorMessageOverlay?: ErrorMessageOverlay;
|
|
@@ -127,7 +122,7 @@ export interface UIComponents {
|
|
|
127
122
|
subtitlesButton?: SettingsPanelItem | undefined;
|
|
128
123
|
qualityButton?: SettingsPanelItem | undefined;
|
|
129
124
|
watchFromStartButton?: Button<ButtonConfig> | undefined;
|
|
130
|
-
|
|
125
|
+
controlBar?: ControlBar | undefined;
|
|
131
126
|
adbutton?: Button<ButtonConfig> | undefined;
|
|
132
127
|
adlabel?: Label<{
|
|
133
128
|
text: string;
|
|
@@ -178,6 +173,7 @@ export declare enum CustomMessages {
|
|
|
178
173
|
export declare enum NpoPlayerUIVariants {
|
|
179
174
|
DEFAULT = "default",
|
|
180
175
|
AUDIO = "audio",
|
|
176
|
+
VERTICAL = "vertical",
|
|
181
177
|
AD = "ad"
|
|
182
178
|
}
|
|
183
179
|
export declare enum ViewMode {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Container, PlaybackTimeLabel, SeekBar } from 'bitmovin-player-ui';
|
|
2
2
|
import type NpoPlayer from '../../npoplayer';
|
|
3
3
|
export declare function createSeekBar(npoplayer: NpoPlayer): Container<{
|
|
4
|
-
components: (
|
|
4
|
+
components: (SeekBar | PlaybackTimeLabel)[];
|
|
5
5
|
cssClasses: string[];
|
|
6
6
|
}>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { SettingsPanel } from 'bitmovin-player-ui';
|
|
2
2
|
import type NpoPlayer from '../../npoplayer';
|
|
3
3
|
import { PlayerAPI } from 'bitmovin-player';
|
|
4
|
-
export declare function createSettingsPanel(
|
|
4
|
+
export declare function createSettingsPanel(npoPlayer: NpoPlayer | PlayerAPI): SettingsPanel;
|
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
import { PlayerContext
|
|
2
|
-
|
|
3
|
-
import { UIManager } from 'bitmovin-player-ui';
|
|
4
|
-
export declare function processStream(streamObject: StreamObject | undefined, container: HTMLElement, streamOptions: StreamOptions | undefined, player: PlayerAPI, uiManager: UIManager | undefined, sourceConfig: SourceConfig, playerContext: PlayerContext): void;
|
|
1
|
+
import { PlayerContext } from '../../types/interfaces';
|
|
2
|
+
export declare function processStream(playerContext: PlayerContext): void;
|
|
@@ -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;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/// <reference types="jest" />
|
|
2
|
+
import { NpoPlayerAPI } from '../../src/services/npoPlayerAPI/npoPlayerAPI';
|
|
3
|
+
import { PlayerContext, StreamObject } from '../../src/types/interfaces';
|
|
4
|
+
export declare const createMockNpoPlayerAPI: (overrides?: {}) => jest.Mocked<NpoPlayerAPI>;
|
|
5
|
+
export declare const createMockNpoPlayer: (overrides?: {}) => {
|
|
6
|
+
playerConfig: {};
|
|
7
|
+
sourceConfig: {};
|
|
8
|
+
streamObject: StreamObject;
|
|
9
|
+
player: jest.Mocked<NpoPlayerAPI>;
|
|
10
|
+
uiManager: undefined;
|
|
11
|
+
npoTag: undefined;
|
|
12
|
+
streamTracker: undefined;
|
|
13
|
+
logEmitter: {
|
|
14
|
+
emit: jest.Mock<any, any, any>;
|
|
15
|
+
};
|
|
16
|
+
uiComponents: {};
|
|
17
|
+
container: HTMLDivElement;
|
|
18
|
+
streamOptions: {};
|
|
19
|
+
jwt: string;
|
|
20
|
+
apiPayload: {
|
|
21
|
+
baseURL: string;
|
|
22
|
+
jwt: string;
|
|
23
|
+
data: {};
|
|
24
|
+
};
|
|
25
|
+
adBreakActive: boolean;
|
|
26
|
+
version: string;
|
|
27
|
+
drmProfile: {
|
|
28
|
+
profileName: string;
|
|
29
|
+
drm: string;
|
|
30
|
+
};
|
|
31
|
+
variant: string;
|
|
32
|
+
isShowingPlayNextScreen: boolean;
|
|
33
|
+
canceledPlayNextScreen: boolean;
|
|
34
|
+
playerContext: undefined;
|
|
35
|
+
npoplayerServices: {
|
|
36
|
+
getStoredUserPrefs: jest.Mock<any, any, any>;
|
|
37
|
+
handleUserPrefs: jest.Mock<any, any, any>;
|
|
38
|
+
setAccessibilityAttributes: jest.Mock<any, any, any>;
|
|
39
|
+
keyboardHandler: jest.Mock<any, any, any>;
|
|
40
|
+
decideProfile: jest.Mock<any, any, any>;
|
|
41
|
+
verifyDRM: jest.Mock<any, any, any>;
|
|
42
|
+
};
|
|
43
|
+
eventListeners: undefined;
|
|
44
|
+
mockNpoPlayer: undefined;
|
|
45
|
+
userPreferences: {};
|
|
46
|
+
initPlayer: jest.Mock<any, any, any>;
|
|
47
|
+
loadStream: jest.Mock<any, any, any>;
|
|
48
|
+
doError: jest.Mock<any, any, any>;
|
|
49
|
+
play: jest.Mock<any, any, any>;
|
|
50
|
+
pause: jest.Mock<any, any, any>;
|
|
51
|
+
setVolume: jest.Mock<any, any, any>;
|
|
52
|
+
increaseVolume: jest.Mock<any, any, any>;
|
|
53
|
+
decreaseVolume: jest.Mock<any, any, any>;
|
|
54
|
+
goForward: jest.Mock<any, any, any>;
|
|
55
|
+
goBackwards: jest.Mock<any, any, any>;
|
|
56
|
+
watchFromStart: jest.Mock<any, any, any>;
|
|
57
|
+
showPlayNextScreen: jest.Mock<any, any, any>;
|
|
58
|
+
updateMarkers: jest.Mock<any, any, any>;
|
|
59
|
+
cancelPlayNextScreen: jest.Mock<any, any, any>;
|
|
60
|
+
hidePlayNextScreen: jest.Mock<any, any, any>;
|
|
61
|
+
doPlayNext: jest.Mock<any, any, any>;
|
|
62
|
+
destroy: jest.Mock<any, any, any>;
|
|
63
|
+
unload: jest.Mock<any, any, any>;
|
|
64
|
+
printVersion: jest.Mock<any, any, any>;
|
|
65
|
+
};
|
|
66
|
+
export declare const createPlayerContextMock: (overrides?: {}) => PlayerContext;
|
|
67
|
+
export default createPlayerContextMock;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { VOLUME_MAX, VOLUME_MIN, VOLUME_STEP } from '../../src/services/npoPlayerAPI/contants';
|
|
2
|
+
import { mockPlayerAPI } from './mockPlayerAPI';
|
|
3
|
+
let volume = 50;
|
|
4
|
+
const setVolume = jest.fn((level) => {
|
|
5
|
+
volume = Math.max(VOLUME_MIN, Math.min(VOLUME_MAX, level));
|
|
6
|
+
});
|
|
7
|
+
export const createMockNpoPlayerAPI = (overrides = {}) => ({
|
|
8
|
+
playerAPI: mockPlayerAPI,
|
|
9
|
+
load: jest.fn(),
|
|
10
|
+
play: jest.fn(),
|
|
11
|
+
pause: jest.fn(),
|
|
12
|
+
mute: jest.fn(),
|
|
13
|
+
unmute: jest.fn(),
|
|
14
|
+
getVolume: jest.fn(() => {
|
|
15
|
+
return volume;
|
|
16
|
+
}),
|
|
17
|
+
setVolume: setVolume,
|
|
18
|
+
increaseVolume: jest.fn(() => {
|
|
19
|
+
setVolume(volume + VOLUME_STEP);
|
|
20
|
+
}),
|
|
21
|
+
decreaseVolume: jest.fn(() => {
|
|
22
|
+
setVolume(volume - VOLUME_STEP);
|
|
23
|
+
}),
|
|
24
|
+
setViewMode: jest.fn(),
|
|
25
|
+
getViewMode: jest.fn(),
|
|
26
|
+
areSubtitlesEnabled: jest.fn().mockReturnValue(false),
|
|
27
|
+
enableSubtitles: jest.fn(),
|
|
28
|
+
isPaused: jest.fn().mockReturnValue(false),
|
|
29
|
+
isMuted: jest.fn().mockReturnValue(false),
|
|
30
|
+
isLive: jest.fn().mockReturnValue(false),
|
|
31
|
+
getSupportedDRM: jest.fn().mockResolvedValue([]),
|
|
32
|
+
getSupportedTech: jest.fn().mockReturnValue([]),
|
|
33
|
+
off: jest.fn(),
|
|
34
|
+
on: jest.fn(),
|
|
35
|
+
seek: jest.fn(),
|
|
36
|
+
timeShift: jest.fn(),
|
|
37
|
+
getContainer: jest.fn(),
|
|
38
|
+
getNpoPlayerElement: jest.fn(),
|
|
39
|
+
addClassToNpoPlayerElement: jest.fn(),
|
|
40
|
+
removeClassFromNpoPlayerElement: jest.fn(),
|
|
41
|
+
toggleClassOnNpoPlayerElement: jest.fn(),
|
|
42
|
+
getCurrentTime: jest.fn().mockReturnValue(0),
|
|
43
|
+
getDuration: jest.fn().mockReturnValue(0),
|
|
44
|
+
getTimeShift: jest.fn().mockReturnValue(0),
|
|
45
|
+
scheduleAds: jest.fn().mockResolvedValue([]),
|
|
46
|
+
getActiveAdBreak: jest.fn().mockReturnValue(undefined),
|
|
47
|
+
getConfig: jest.fn().mockReturnValue({}),
|
|
48
|
+
createUIManager: jest.fn(),
|
|
49
|
+
...overrides
|
|
50
|
+
});
|
|
51
|
+
export const createMockNpoPlayer = (overrides = {}) => ({
|
|
52
|
+
playerConfig: {},
|
|
53
|
+
sourceConfig: {},
|
|
54
|
+
streamObject: {
|
|
55
|
+
stream: { drmToken: undefined },
|
|
56
|
+
metadata: {
|
|
57
|
+
title: 'dummy-title',
|
|
58
|
+
description: 'dummy-description'
|
|
59
|
+
},
|
|
60
|
+
assets: {},
|
|
61
|
+
user: 'dummy'
|
|
62
|
+
},
|
|
63
|
+
player: createMockNpoPlayerAPI(),
|
|
64
|
+
uiManager: undefined,
|
|
65
|
+
npoTag: undefined,
|
|
66
|
+
streamTracker: undefined,
|
|
67
|
+
logEmitter: { emit: jest.fn() },
|
|
68
|
+
uiComponents: {},
|
|
69
|
+
container: document.createElement('div'),
|
|
70
|
+
streamOptions: {},
|
|
71
|
+
jwt: '',
|
|
72
|
+
apiPayload: { baseURL: '', jwt: '', data: {} },
|
|
73
|
+
adBreakActive: false,
|
|
74
|
+
version: '1.0.0',
|
|
75
|
+
drmProfile: { profileName: '', drm: '' },
|
|
76
|
+
variant: 'DEFAULT',
|
|
77
|
+
isShowingPlayNextScreen: false,
|
|
78
|
+
canceledPlayNextScreen: false,
|
|
79
|
+
playerContext: undefined,
|
|
80
|
+
npoplayerServices: {
|
|
81
|
+
getStoredUserPrefs: jest.fn(),
|
|
82
|
+
handleUserPrefs: jest.fn(),
|
|
83
|
+
setAccessibilityAttributes: jest.fn(),
|
|
84
|
+
keyboardHandler: jest.fn(),
|
|
85
|
+
decideProfile: jest.fn(),
|
|
86
|
+
verifyDRM: jest.fn()
|
|
87
|
+
},
|
|
88
|
+
eventListeners: undefined,
|
|
89
|
+
mockNpoPlayer: undefined,
|
|
90
|
+
userPreferences: {},
|
|
91
|
+
initPlayer: jest.fn(),
|
|
92
|
+
loadStream: jest.fn(),
|
|
93
|
+
doError: jest.fn(),
|
|
94
|
+
play: jest.fn(),
|
|
95
|
+
pause: jest.fn(),
|
|
96
|
+
setVolume: jest.fn(),
|
|
97
|
+
increaseVolume: jest.fn(),
|
|
98
|
+
decreaseVolume: jest.fn(),
|
|
99
|
+
goForward: jest.fn(),
|
|
100
|
+
goBackwards: jest.fn(),
|
|
101
|
+
watchFromStart: jest.fn(),
|
|
102
|
+
showPlayNextScreen: jest.fn(),
|
|
103
|
+
updateMarkers: jest.fn(),
|
|
104
|
+
cancelPlayNextScreen: jest.fn(),
|
|
105
|
+
hidePlayNextScreen: jest.fn(),
|
|
106
|
+
doPlayNext: jest.fn(),
|
|
107
|
+
destroy: jest.fn(),
|
|
108
|
+
unload: jest.fn(),
|
|
109
|
+
printVersion: jest.fn(),
|
|
110
|
+
...overrides
|
|
111
|
+
});
|
|
112
|
+
export const createPlayerContextMock = (overrides = {}) => ({
|
|
113
|
+
player: createMockNpoPlayerAPI(),
|
|
114
|
+
npoplayer: createMockNpoPlayer(),
|
|
115
|
+
...overrides
|
|
116
|
+
});
|
|
117
|
+
export default createPlayerContextMock;
|
package/lib/types/events.d.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
import { PlayerEvent } from 'bitmovin-player';
|
|
2
|
+
type PlayerEventMap = {
|
|
3
|
+
[key in NpoPlayerEvent]: PlayerEvent;
|
|
4
|
+
};
|
|
5
|
+
export type NpoPlayerEventCallback = (event: NpoPlayerEvent) => void;
|
|
6
|
+
export declare enum NpoPlayerEvent {
|
|
2
7
|
Ready = "ready",
|
|
3
8
|
Play = "play",
|
|
4
9
|
Playing = "playing",
|
|
@@ -89,3 +94,5 @@ export declare enum PlayerEvent {
|
|
|
89
94
|
DrmLicenseAdded = "drmlicenseadded",
|
|
90
95
|
AspectRatioChanged = "aspectratiochanged"
|
|
91
96
|
}
|
|
97
|
+
export declare const playerEventMap: PlayerEventMap;
|
|
98
|
+
export {};
|