@npo/player 1.24.7 → 1.26.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/api/getstreamobject.d.ts +1 -1
- package/lib/js/api/getstreamobject.js +4 -4
- package/lib/js/api/getstreamobject.test.js +13 -13
- package/lib/js/playeractions/handlers/handleoffsets.js +9 -7
- package/lib/js/playeractions/handlers/handleoffsets.test.js +1 -1
- package/lib/js/playeractions/handlers/processplayerconfig.d.ts +1 -1
- package/lib/js/playeractions/handlers/processplayerconfig.js +18 -4
- package/lib/js/playeractions/handlers/processplayerconfig.test.js +116 -0
- package/lib/js/playeractions/handlers/processsourceconfig.d.ts +3 -1
- package/lib/js/playeractions/handlers/processsourceconfig.js +20 -10
- package/lib/js/playeractions/handlers/processsourceconfig.test.js +25 -0
- package/lib/js/settings/localization.d.ts +76 -1
- package/lib/js/settings/localization.js +2 -2
- package/lib/js/tracking/handlers/eventbinding.js +25 -17
- package/lib/js/tracking/handlers/eventlogging.js +3 -8
- package/lib/js/tracking/handlers/playertrackerinit.d.ts +2 -2
- package/lib/js/tracking/handlers/playertrackerinit.js +8 -6
- package/lib/js/tracking/handlers/playertrackerinit.test.d.ts +1 -0
- package/lib/js/tracking/handlers/playertrackerinit.test.js +74 -0
- package/lib/js/tracking/handlers/playertrackerstart.js +1 -1
- package/lib/js/utilities/utilities.element.d.ts +6 -0
- package/lib/js/utilities/utilities.element.js +10 -0
- package/lib/js/utilities/utilities.element.test.js +18 -5
- package/lib/lang/nl.json +1 -1
- package/lib/lang/subtitleLabels/nl.json +14 -0
- package/lib/npoplayer.d.ts +15 -6
- package/lib/npoplayer.js +57 -50
- package/lib/npoplayer.test.js +12 -4
- package/lib/package.json +3 -3
- package/lib/services/a11y/setup.js +2 -5
- package/lib/services/a11y/setup.test.js +2 -19
- package/lib/services/advertHandlers/discardAdBreak.js +4 -4
- package/lib/services/advertHandlers/discardAdBreak.test.js +25 -13
- package/lib/services/advertHandlers/handlePreRolls.js +19 -19
- package/lib/services/advertHandlers/handlePrerolls.test.js +4 -4
- package/lib/services/cdnProviders/cdnProviders.js +4 -2
- package/lib/services/drmHandlers/decideprofile.js +1 -1
- package/lib/services/drmHandlers/decideprofile.test.js +1 -1
- package/lib/services/drmHandlers/verifydrm.js +6 -6
- package/lib/services/drmHandlers/verifydrm.test.js +5 -5
- package/lib/services/eventListenerHandlers/removeEventListeners.js +2 -2
- package/lib/services/eventListenerHandlers/removeEventListeners.test.js +9 -9
- package/lib/services/keyboardHandlers/resolvekeypress.js +5 -5
- package/lib/services/keyboardHandlers/resolvekeypress.test.js +1 -1
- package/lib/services/liveStreamHandlers/handleLiveStreamControls.js +2 -2
- package/lib/services/liveStreamHandlers/handleLiveStreamControls.test.js +2 -2
- package/lib/services/localStorageHandlers/localStorageHandlers.js +2 -2
- package/lib/services/localStorageHandlers/localStorageHandlers.test.js +2 -5
- package/lib/services/nicamHandlers/nicamhandler.d.ts +5 -0
- package/lib/{ui/handlers → services/nicamHandlers}/nicamhandler.js +24 -15
- package/lib/services/nicamHandlers/nicamhandler.test.js +132 -0
- package/lib/services/npoPlayerAPI/npoPlayerAPI.d.ts +3 -2
- package/lib/services/npoPlayerAPI/npoPlayerAPI.js +19 -23
- package/lib/services/preferences/handlePreferences.d.ts +2 -0
- package/lib/services/preferences/handlePreferences.js +42 -0
- package/lib/services/preferences/handlePreferences.test.d.ts +1 -0
- package/lib/services/preferences/handlePreferences.test.js +102 -0
- package/lib/services/segmentHandlers/addSegmentEventListeners.js +2 -2
- package/lib/services/segmentHandlers/addSegmentEventListeners.test.js +1 -1
- package/lib/services/segmentHandlers/setSegmentMarkers.js +1 -1
- package/lib/services/services.d.ts +7 -0
- package/lib/services/services.js +26 -0
- package/lib/services/streamoptionsHandlers/streamOptionsHandler.d.ts +6 -0
- package/lib/services/streamoptionsHandlers/streamOptionsHandler.js +78 -0
- package/lib/services/streamoptionsHandlers/streamOptionsHandler.test.js +187 -0
- package/lib/services/uiHandlers/uiVisiblityHandler.d.ts +3 -0
- package/lib/services/uiHandlers/uiVisiblityHandler.js +26 -0
- package/lib/services/uiHandlers/uiVisiblityHandler.test.d.ts +1 -0
- package/lib/services/uiHandlers/uiVisiblityHandler.test.js +62 -0
- package/lib/src/js/api/getstreamobject.d.ts +1 -1
- package/lib/src/js/playeractions/handlers/processplayerconfig.d.ts +1 -1
- package/lib/src/js/playeractions/handlers/processplayerconfig.test.d.ts +1 -0
- package/lib/src/js/playeractions/handlers/processsourceconfig.d.ts +3 -1
- package/lib/src/js/playeractions/handlers/processsourceconfig.test.d.ts +1 -0
- package/lib/src/js/settings/localization.d.ts +76 -1
- package/lib/src/js/tracking/handlers/playertrackerinit.d.ts +2 -2
- package/lib/src/js/tracking/handlers/playertrackerinit.test.d.ts +1 -0
- package/lib/src/js/utilities/utilities.element.d.ts +6 -0
- package/lib/src/npoplayer.d.ts +15 -6
- package/lib/src/services/nicamHandlers/nicamhandler.d.ts +5 -0
- package/lib/src/services/nicamHandlers/nicamhandler.test.d.ts +1 -0
- package/lib/src/services/npoPlayerAPI/npoPlayerAPI.d.ts +3 -2
- package/lib/src/services/preferences/handlePreferences.d.ts +2 -0
- package/lib/src/services/preferences/handlePreferences.test.d.ts +1 -0
- package/lib/src/services/services.d.ts +7 -0
- package/lib/src/services/streamoptionsHandlers/streamOptionsHandler.d.ts +6 -0
- package/lib/src/services/streamoptionsHandlers/streamOptionsHandler.test.d.ts +1 -0
- package/lib/src/services/uiHandlers/uiVisiblityHandler.d.ts +3 -0
- package/lib/src/services/uiHandlers/uiVisiblityHandler.test.d.ts +1 -0
- package/lib/src/types/classes.d.ts +6 -0
- package/lib/src/types/interfaces.d.ts +25 -3
- package/lib/src/ui/components/adbutton.d.ts +1 -1
- package/lib/src/ui/components/adlabel.d.ts +1 -1
- package/lib/src/ui/components/buttons.d.ts +10 -17
- package/lib/src/ui/components/controlbar.d.ts +2 -2
- package/lib/src/ui/components/ctabar.d.ts +1 -1
- package/lib/src/ui/components/nativemobile/buttons.d.ts +8 -0
- package/lib/src/ui/components/playnext.d.ts +1 -3
- package/lib/src/ui/components/seekbar.d.ts +1 -1
- package/lib/src/ui/components/titlebar.d.ts +1 -1
- package/lib/src/ui/components/topbar.d.ts +2 -2
- package/lib/src/ui/components/verticalvideo/controlbar.d.ts +2 -2
- package/lib/src/ui/handlers/playnextscreen.test.d.ts +1 -0
- package/lib/src/ui/handlers/timecontrolhandlers.d.ts +3 -3
- package/lib/src/ui/uicontainer.d.ts +2 -3
- package/lib/src/ui/uicontainer.test.d.ts +1 -0
- package/lib/tests/mocks/mockLogEmitter.d.ts +2 -0
- package/lib/tests/mocks/mockLogEmitter.js +20 -0
- package/lib/tests/mocks/mockNpoplayer.js +4 -2
- package/lib/tests/mocks/playerContextMock.d.ts +5 -3
- package/lib/tests/mocks/playerContextMock.js +8 -5
- package/lib/types/classes.d.ts +6 -0
- package/lib/types/classes.js +12 -0
- package/lib/types/interfaces.d.ts +25 -3
- package/lib/types/interfaces.js +1 -0
- package/lib/ui/components/adbutton.d.ts +1 -1
- package/lib/ui/components/adbutton.js +3 -3
- package/lib/ui/components/adlabel.d.ts +1 -1
- package/lib/ui/components/adlabel.js +3 -3
- package/lib/ui/components/buttons.d.ts +10 -17
- package/lib/ui/components/buttons.js +44 -27
- package/lib/ui/components/controlbar.d.ts +2 -2
- package/lib/ui/components/controlbar.js +20 -32
- package/lib/ui/components/ctabar.d.ts +1 -1
- package/lib/ui/components/ctabar.js +4 -4
- package/lib/ui/components/nativemobile/buttons.d.ts +8 -0
- package/lib/ui/components/nativemobile/buttons.js +41 -1
- package/lib/ui/components/nativemobile/controlbar.js +1 -2
- package/lib/ui/components/nativemobile/topbar.js +2 -2
- package/lib/ui/components/playnext.d.ts +1 -3
- package/lib/ui/components/playnext.js +3 -3
- package/lib/ui/components/seekbar.d.ts +1 -1
- package/lib/ui/components/seekbar.js +5 -3
- package/lib/ui/components/settingspanel.js +9 -9
- package/lib/ui/components/titlebar.d.ts +1 -1
- package/lib/ui/components/titlebar.js +2 -2
- package/lib/ui/components/topbar.d.ts +2 -2
- package/lib/ui/components/topbar.js +8 -17
- package/lib/ui/components/verticalvideo/controlbar.d.ts +2 -2
- package/lib/ui/components/verticalvideo/controlbar.js +4 -4
- package/lib/ui/handlers/playnextscreen.test.d.ts +1 -0
- package/lib/ui/handlers/timecontrolhandlers.d.ts +3 -3
- package/lib/ui/nativemobileuifactory.js +20 -24
- package/lib/ui/nativemobileuifactory.test.js +2 -6
- package/lib/ui/uicontainer.d.ts +2 -3
- package/lib/ui/uicontainer.js +13 -30
- package/lib/ui/uicontainer.test.d.ts +1 -0
- package/lib/ui/uicontainer.test.js +80 -0
- package/package.json +3 -3
- package/src/style/components/_advert.scss +0 -9
- package/src/style/components/_icons.scss +5 -0
- package/src/style/components/_nicam.scss +5 -4
- package/src/style/components/_settingspanel.scss +48 -17
- package/src/style/components/vertical-video/_settingspanel.scss +1 -1
- package/src/style/npoplayer.css +26 -20
- package/src/style/variants/_player-base.scss +4 -0
- package/src/style/variants/_player-large.scss +5 -1
- package/src/style/variants/_player-small.scss +11 -8
- package/lib/src/ui/handlers/nicamhandler.d.ts +0 -6
- package/lib/src/ui/handlers/streamhandler.d.ts +0 -2
- package/lib/ui/handlers/nicamhandler.d.ts +0 -6
- package/lib/ui/handlers/nicamhandler.test.js +0 -36
- package/lib/ui/handlers/streamhandler.d.ts +0 -2
- package/lib/ui/handlers/streamhandler.js +0 -60
- /package/lib/{src/ui/handlers/playnextstreen.test.d.ts → js/playeractions/handlers/processplayerconfig.test.d.ts} +0 -0
- /package/lib/{ui/handlers/playnextstreen.test.d.ts → js/playeractions/handlers/processsourceconfig.test.d.ts} +0 -0
- /package/lib/{src/ui/handlers → services/nicamHandlers}/nicamhandler.test.d.ts +0 -0
- /package/lib/{ui/handlers/nicamhandler.test.d.ts → services/streamoptionsHandlers/streamOptionsHandler.test.d.ts} +0 -0
- /package/lib/ui/handlers/{playnextstreen.test.js → playnextscreen.test.js} +0 -0
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { handleStreamOptions, initializeFragment, handleStartOffset, updateStreamClasses, setupAutoplay } from './streamOptionsHandler';
|
|
2
|
+
import '@testing-library/jest-dom';
|
|
3
|
+
import { createMockNpoPlayer, createPlayerContextMock, createMockNpoPlayerAPI } from '../../../tests/mocks/playerContextMock';
|
|
4
|
+
import * as playerAction from '../../js/playeractions/playeractions';
|
|
5
|
+
import { updateClassFromElementByQuery } from '../../js/utilities/utilities.element';
|
|
6
|
+
import { handleLiveStreamControls } from '../liveStreamHandlers/handleLiveStreamControls';
|
|
7
|
+
import { initSegment } from '../segmentHandlers/initSegment';
|
|
8
|
+
import { NpoPlayerEvent } from '../../types/events';
|
|
9
|
+
import { removeEventListeners } from '../eventListenerHandlers/removeEventListeners';
|
|
10
|
+
jest.mock('../segmentHandlers/initSegment');
|
|
11
|
+
jest.mock('../eventListenerHandlers/removeEventListeners');
|
|
12
|
+
jest.mock('../../js/playeractions/playeractions');
|
|
13
|
+
jest.mock('../liveStreamHandlers/handleLiveStreamControls');
|
|
14
|
+
jest.mock('../../js/utilities/utilities.element', () => ({
|
|
15
|
+
updateClassFromElementByQuery: jest.fn()
|
|
16
|
+
}));
|
|
17
|
+
describe('handleStreamOptions', () => {
|
|
18
|
+
let mockElement;
|
|
19
|
+
beforeEach(() => {
|
|
20
|
+
mockElement = { innerHTML: '', appendChild: jest.fn() };
|
|
21
|
+
document.querySelector = jest.fn().mockReturnValue(mockElement);
|
|
22
|
+
});
|
|
23
|
+
it('correctly calls all of the functions when the conditions are met', () => {
|
|
24
|
+
const mockNpoPlayerAPI = createMockNpoPlayerAPI({
|
|
25
|
+
on: jest.fn(),
|
|
26
|
+
off: jest.fn()
|
|
27
|
+
});
|
|
28
|
+
const npoPlayerMock = createMockNpoPlayer({
|
|
29
|
+
playerconfig: {
|
|
30
|
+
playback: {
|
|
31
|
+
muted: false,
|
|
32
|
+
autoplay: true
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
streamObject: {
|
|
36
|
+
stream: {
|
|
37
|
+
isLiveStream: true
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
const playerContextMock = createPlayerContextMock({
|
|
42
|
+
player: mockNpoPlayerAPI,
|
|
43
|
+
npoPlayer: npoPlayerMock
|
|
44
|
+
});
|
|
45
|
+
handleStreamOptions(playerContextMock);
|
|
46
|
+
expect(initializeFragment(playerContextMock)).toHaveBeenCalled;
|
|
47
|
+
expect(handleStartOffset(playerContextMock)).toHaveBeenCalled;
|
|
48
|
+
expect(updateStreamClasses(playerContextMock)).toHaveBeenCalled;
|
|
49
|
+
expect(setupAutoplay(playerContextMock)).toHaveBeenCalled;
|
|
50
|
+
});
|
|
51
|
+
it('should return early if uiManager is missing', () => {
|
|
52
|
+
const npoPlayerMock = createMockNpoPlayer({
|
|
53
|
+
UIManager: null
|
|
54
|
+
});
|
|
55
|
+
const playerContextMock = createPlayerContextMock({
|
|
56
|
+
npoPlayer: npoPlayerMock
|
|
57
|
+
});
|
|
58
|
+
handleStreamOptions(playerContextMock);
|
|
59
|
+
expect(removeEventListeners).not.toHaveBeenCalled();
|
|
60
|
+
});
|
|
61
|
+
it('should return early if streamObject is missing', () => {
|
|
62
|
+
const npoPlayerMock = createMockNpoPlayer({
|
|
63
|
+
streamObject: null
|
|
64
|
+
});
|
|
65
|
+
const playerContextMock = createPlayerContextMock({
|
|
66
|
+
npoPlayer: npoPlayerMock
|
|
67
|
+
});
|
|
68
|
+
handleStreamOptions(playerContextMock);
|
|
69
|
+
expect(removeEventListeners).not.toHaveBeenCalled();
|
|
70
|
+
});
|
|
71
|
+
it('should return early if autoplay is false', () => {
|
|
72
|
+
const npoPlayerMock = createMockNpoPlayer({
|
|
73
|
+
playerconfig: {
|
|
74
|
+
playback: {
|
|
75
|
+
muted: false,
|
|
76
|
+
autoplay: true
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
streamOptions: {
|
|
80
|
+
autoplay: false
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
const playerContextMock = createPlayerContextMock({
|
|
84
|
+
npoPlayer: npoPlayerMock
|
|
85
|
+
});
|
|
86
|
+
const setupAutoplayMock = jest.fn();
|
|
87
|
+
handleStreamOptions(playerContextMock);
|
|
88
|
+
expect(setupAutoplayMock).not.toHaveBeenCalled();
|
|
89
|
+
});
|
|
90
|
+
describe('updateStreamClasses', () => {
|
|
91
|
+
it('should add "livestream-no-dvr" class when isLiveStream is true and hasDvrWindow is false', () => {
|
|
92
|
+
const npoPlayerMock = createMockNpoPlayer({
|
|
93
|
+
streamObject: {
|
|
94
|
+
stream: {
|
|
95
|
+
isLiveStream: true,
|
|
96
|
+
hasDvrWindow: false
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
const playerContextMock = createPlayerContextMock({
|
|
101
|
+
npoPlayer: npoPlayerMock
|
|
102
|
+
});
|
|
103
|
+
updateStreamClasses(playerContextMock);
|
|
104
|
+
expect(updateClassFromElementByQuery).toHaveBeenCalledWith(expect.objectContaining({
|
|
105
|
+
className: 'livestream-no-dvr',
|
|
106
|
+
condition: true
|
|
107
|
+
}));
|
|
108
|
+
});
|
|
109
|
+
it('should add "audio-only" class when avType is "aod" or "audio"', () => {
|
|
110
|
+
const npoPlayerMock = createMockNpoPlayer({
|
|
111
|
+
streamObject: {
|
|
112
|
+
stream: {
|
|
113
|
+
avType: 'aod'
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
const playerContextMock = createPlayerContextMock({
|
|
118
|
+
npoPlayer: npoPlayerMock
|
|
119
|
+
});
|
|
120
|
+
updateStreamClasses(playerContextMock);
|
|
121
|
+
expect(updateClassFromElementByQuery).toHaveBeenCalledWith(expect.objectContaining({
|
|
122
|
+
className: 'audio-only',
|
|
123
|
+
condition: true
|
|
124
|
+
}));
|
|
125
|
+
});
|
|
126
|
+
it('should call handleLiveStreamControls when isLiveStream is true and hasDvrWindow is true', () => {
|
|
127
|
+
const npoPlayerMock = createMockNpoPlayer({
|
|
128
|
+
streamObject: {
|
|
129
|
+
stream: {
|
|
130
|
+
isLiveStream: true,
|
|
131
|
+
hasDvrWindow: true
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
const playerContextMock = createPlayerContextMock({
|
|
136
|
+
npoPlayer: npoPlayerMock
|
|
137
|
+
});
|
|
138
|
+
updateStreamClasses(playerContextMock);
|
|
139
|
+
expect(handleLiveStreamControls).toHaveBeenCalledWith(playerContextMock);
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
describe('initializeFragment', () => {
|
|
143
|
+
it('should call initSegment with correct parameters', () => {
|
|
144
|
+
const npoPlayerMock = createMockNpoPlayer({
|
|
145
|
+
streamObject: { segment: 'segment' },
|
|
146
|
+
streamOptions: { fragments: { sections: [{ duration: 10, time: 0 }] } }
|
|
147
|
+
});
|
|
148
|
+
const playerContextMock = createPlayerContextMock({
|
|
149
|
+
npoPlayer: npoPlayerMock
|
|
150
|
+
});
|
|
151
|
+
initializeFragment(playerContextMock);
|
|
152
|
+
expect(initSegment).toHaveBeenCalledWith(playerContextMock, {
|
|
153
|
+
segment: 'segment',
|
|
154
|
+
fragment: { sections: [{ duration: 10, time: 0 }] }
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
describe('handleStartOffset', () => {
|
|
159
|
+
it('should call handleStartOffset with correct parameters', () => {
|
|
160
|
+
const npoPlayerMock = createMockNpoPlayer({
|
|
161
|
+
streamOptions: { startOffset: 10 }
|
|
162
|
+
});
|
|
163
|
+
const playerContextMock = createPlayerContextMock({
|
|
164
|
+
npoPlayer: npoPlayerMock
|
|
165
|
+
});
|
|
166
|
+
handleStartOffset(playerContextMock);
|
|
167
|
+
expect(playerAction.handleStartOffset).toHaveBeenCalledWith(playerContextMock, 10);
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
describe('setupAutoplay', () => {
|
|
171
|
+
it('should setup autoplay correctly', async () => {
|
|
172
|
+
const mockNpoPlayerAPI = createMockNpoPlayerAPI({
|
|
173
|
+
on: jest.fn(),
|
|
174
|
+
off: jest.fn(),
|
|
175
|
+
play: jest.fn().mockResolvedValue(undefined)
|
|
176
|
+
});
|
|
177
|
+
const playerContextMock = createPlayerContextMock({
|
|
178
|
+
player: mockNpoPlayerAPI
|
|
179
|
+
});
|
|
180
|
+
setupAutoplay(playerContextMock);
|
|
181
|
+
expect(playerContextMock.player.on).toHaveBeenCalledWith(NpoPlayerEvent.Ready, expect.any(Function));
|
|
182
|
+
const handleAutoPlay = playerContextMock.player.on.mock.calls[0][1];
|
|
183
|
+
await handleAutoPlay();
|
|
184
|
+
expect(playerContextMock.player.play).toHaveBeenCalled();
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
});
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { NpoPlayerUIVariants } from '../../types/interfaces';
|
|
2
|
+
export function addUivisiblityHandlers(playerContext) {
|
|
3
|
+
const { uiManager, variant } = playerContext.npoPlayer;
|
|
4
|
+
if (!uiManager)
|
|
5
|
+
return;
|
|
6
|
+
if (variant === NpoPlayerUIVariants.DEFAULT) {
|
|
7
|
+
uiManager.activeUi.onControlsHide.subscribe(() => {
|
|
8
|
+
playerContext.npoPlayer.logEmitter.emit('logControlsVisibilityChange', false);
|
|
9
|
+
});
|
|
10
|
+
uiManager.activeUi.onControlsShow.subscribe(() => {
|
|
11
|
+
playerContext.npoPlayer.logEmitter.emit('logControlsVisibilityChange', true);
|
|
12
|
+
});
|
|
13
|
+
uiManager.activeUi.getUI().showUi();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function removeUivisiblityHandlers(playerContext) {
|
|
17
|
+
const { uiManager } = playerContext.npoPlayer;
|
|
18
|
+
if (!uiManager)
|
|
19
|
+
return;
|
|
20
|
+
uiManager.activeUi.onControlsHide.unsubscribe(() => {
|
|
21
|
+
playerContext.npoPlayer.logEmitter.emit('logControlsVisibilityChange', false);
|
|
22
|
+
});
|
|
23
|
+
uiManager.activeUi.onControlsShow.unsubscribe(() => {
|
|
24
|
+
playerContext.npoPlayer.logEmitter.emit('logControlsVisibilityChange', true);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import createPlayerContextMock from '../../../tests/mocks/playerContextMock';
|
|
2
|
+
import { addUivisiblityHandlers, removeUivisiblityHandlers } from './uiVisiblityHandler';
|
|
3
|
+
import { NpoPlayerUIVariants } from '../../types/interfaces';
|
|
4
|
+
import { createLogEmitterMock } from '../../../tests/mocks/mockLogEmitter';
|
|
5
|
+
describe('UI Visibility Handlers', () => {
|
|
6
|
+
let mockPlayerContext;
|
|
7
|
+
let mockLogEmitter;
|
|
8
|
+
let mockUIManager;
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
mockLogEmitter = createLogEmitterMock();
|
|
11
|
+
mockUIManager = {
|
|
12
|
+
activeUi: {
|
|
13
|
+
onControlsHide: { subscribe: jest.fn(), unsubscribe: jest.fn() },
|
|
14
|
+
onControlsShow: { subscribe: jest.fn(), unsubscribe: jest.fn() },
|
|
15
|
+
getUI: jest.fn().mockReturnValue({ showUi: jest.fn() })
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
mockPlayerContext = createPlayerContextMock();
|
|
19
|
+
mockPlayerContext.npoPlayer.logEmitter = mockLogEmitter;
|
|
20
|
+
mockPlayerContext.npoPlayer.uiManager = mockUIManager;
|
|
21
|
+
mockPlayerContext.npoPlayer.variant = NpoPlayerUIVariants.DEFAULT;
|
|
22
|
+
});
|
|
23
|
+
describe('addUivisiblityHandlers', () => {
|
|
24
|
+
it('should subscribe to visibility handlers and call showUi', () => {
|
|
25
|
+
addUivisiblityHandlers(mockPlayerContext);
|
|
26
|
+
expect(mockUIManager.activeUi.onControlsHide.subscribe).toHaveBeenCalled();
|
|
27
|
+
expect(mockUIManager.activeUi.onControlsShow.subscribe).toHaveBeenCalled();
|
|
28
|
+
expect(mockUIManager.activeUi.getUI().showUi).toHaveBeenCalled();
|
|
29
|
+
});
|
|
30
|
+
it('should emit logControlsVisibilityChange when controls are shown', () => {
|
|
31
|
+
addUivisiblityHandlers(mockPlayerContext);
|
|
32
|
+
const onControlsShowCallback = mockUIManager.activeUi.onControlsShow.subscribe.mock.calls[0][0];
|
|
33
|
+
onControlsShowCallback();
|
|
34
|
+
expect(mockLogEmitter.emit).toHaveBeenCalledWith('logControlsVisibilityChange', true);
|
|
35
|
+
});
|
|
36
|
+
it('should emit logControlsVisibilityChange when controls are hidden', () => {
|
|
37
|
+
addUivisiblityHandlers(mockPlayerContext);
|
|
38
|
+
const onControlsHideCallback = mockUIManager.activeUi.onControlsHide.subscribe.mock.calls[0][0];
|
|
39
|
+
onControlsHideCallback();
|
|
40
|
+
expect(mockLogEmitter.emit).toHaveBeenCalledWith('logControlsVisibilityChange', false);
|
|
41
|
+
});
|
|
42
|
+
it('should not do anything if uiManager is not defined', () => {
|
|
43
|
+
mockPlayerContext.npoPlayer.uiManager = undefined;
|
|
44
|
+
addUivisiblityHandlers(mockPlayerContext);
|
|
45
|
+
expect(mockLogEmitter.emit).not.toHaveBeenCalled();
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
describe('removeUivisiblityHandlers', () => {
|
|
49
|
+
it('should unsubscribe from visibility handlers', () => {
|
|
50
|
+
addUivisiblityHandlers(mockPlayerContext);
|
|
51
|
+
removeUivisiblityHandlers(mockPlayerContext);
|
|
52
|
+
expect(mockUIManager.activeUi.onControlsHide.unsubscribe).toHaveBeenCalled();
|
|
53
|
+
expect(mockUIManager.activeUi.onControlsShow.unsubscribe).toHaveBeenCalled();
|
|
54
|
+
});
|
|
55
|
+
it('should not do anything if uiManager is not defined', () => {
|
|
56
|
+
mockPlayerContext.npoPlayer.uiManager = undefined;
|
|
57
|
+
removeUivisiblityHandlers(mockPlayerContext);
|
|
58
|
+
expect(mockUIManager.activeUi.onControlsHide.unsubscribe).not.toHaveBeenCalled();
|
|
59
|
+
expect(mockUIManager.activeUi.onControlsShow.unsubscribe).not.toHaveBeenCalled();
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
});
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { type ApiPayload } from '../../types/interfaces';
|
|
2
2
|
import type NpoPlayer from '../../npoplayer';
|
|
3
|
-
export declare function getStreamObject(
|
|
3
|
+
export declare function getStreamObject(npoPlayer: NpoPlayer, payload: ApiPayload): Promise<any>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { type PlayerConfig } from 'bitmovin-player';
|
|
2
2
|
import NpoPlayer from 'npoplayer';
|
|
3
|
-
export declare function processPlayerConfig(
|
|
3
|
+
export declare function processPlayerConfig(npoPlayer: NpoPlayer, playerConfig: PlayerConfig): PlayerConfig;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { StreamObject, StreamOptions } from 'types/interfaces';
|
|
2
2
|
import { SourceConfig } from 'bitmovin-player';
|
|
3
3
|
import { NpoPlayerServices } from '../../../services/services';
|
|
4
|
-
|
|
4
|
+
import { NPOTag } from '@npotag/tag';
|
|
5
|
+
export declare const getSubtitleLabels: (data: any) => string;
|
|
6
|
+
export declare function processSourceConfig(npoPlayerServices: NpoPlayerServices, source: string, _sourceConfig: SourceConfig | undefined, _streamObject: StreamObject, drm: string | undefined, streamOptions: StreamOptions, version: string, npoTagInstance: NPOTag | undefined): Promise<SourceConfig>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,6 +1,81 @@
|
|
|
1
1
|
export declare const localizationConfig: {
|
|
2
2
|
language: string;
|
|
3
3
|
vocabularies: {
|
|
4
|
-
nl:
|
|
4
|
+
nl: {
|
|
5
|
+
"settings.video.quality": string;
|
|
6
|
+
"settings.audio.quality": string;
|
|
7
|
+
"settings.audio.track": string;
|
|
8
|
+
"settings.audio.mute": string;
|
|
9
|
+
"settings.audio.unmute": string;
|
|
10
|
+
"settings.audio.volume": string;
|
|
11
|
+
"settings.subtitles.window.color": string;
|
|
12
|
+
"settings.subtitles.window.opacity": string;
|
|
13
|
+
"settings.subtitles": string;
|
|
14
|
+
"settings.subtitles.font.color": string;
|
|
15
|
+
"settings.subtitles.font.opacity": string;
|
|
16
|
+
"settings.subtitles.background.color": string;
|
|
17
|
+
"settings.subtitles.background.opacity": string;
|
|
18
|
+
"colors.white": string;
|
|
19
|
+
"colors.black": string;
|
|
20
|
+
"colors.red": string;
|
|
21
|
+
"colors.green": string;
|
|
22
|
+
"colors.blue": string;
|
|
23
|
+
"colors.cyan": string;
|
|
24
|
+
"colors.yellow": string;
|
|
25
|
+
"colors.magenta": string;
|
|
26
|
+
percent: string;
|
|
27
|
+
"settings.subtitles.font.size": string;
|
|
28
|
+
"settings.subtitles.characterEdge": string;
|
|
29
|
+
"settings.subtitles.characterEdge.raised": string;
|
|
30
|
+
"settings.subtitles.characterEdge.depressed": string;
|
|
31
|
+
"settings.subtitles.characterEdge.uniform": string;
|
|
32
|
+
"settings.subtitles.characterEdge.dropshadowed": string;
|
|
33
|
+
"settings.subtitles.font.family": string;
|
|
34
|
+
"settings.subtitles.font.family.monospacedserif": string;
|
|
35
|
+
"settings.subtitles.font.family.proportionalserif": string;
|
|
36
|
+
"settings.subtitles.font.family.monospacedsansserif": string;
|
|
37
|
+
"settings.subtitles.font.family.proportionalsansserif": string;
|
|
38
|
+
"settings.subtitles.font.family.casual": string;
|
|
39
|
+
"settings.subtitles.font.family.cursive": string;
|
|
40
|
+
"settings.subtitles.font.family.smallcapital": string;
|
|
41
|
+
"settings.time.hours": string;
|
|
42
|
+
"settings.time.minutes": string;
|
|
43
|
+
"settings.time.seconds": string;
|
|
44
|
+
"ads.remainingTime": string;
|
|
45
|
+
settings: string;
|
|
46
|
+
fullscreen: string;
|
|
47
|
+
speed: string;
|
|
48
|
+
playPause: string;
|
|
49
|
+
play: string;
|
|
50
|
+
pause: string;
|
|
51
|
+
open: string;
|
|
52
|
+
close: string;
|
|
53
|
+
pictureInPicture: string;
|
|
54
|
+
appleAirplay: string;
|
|
55
|
+
googleCast: string;
|
|
56
|
+
vr: string;
|
|
57
|
+
off: string;
|
|
58
|
+
auto: string;
|
|
59
|
+
back: string;
|
|
60
|
+
reset: string;
|
|
61
|
+
replay: string;
|
|
62
|
+
normal: string;
|
|
63
|
+
default: string;
|
|
64
|
+
live: string;
|
|
65
|
+
"subtitle.example": string;
|
|
66
|
+
"subtitle.select": string;
|
|
67
|
+
playingOn: string;
|
|
68
|
+
connectingTo: string;
|
|
69
|
+
watermarkLink: string;
|
|
70
|
+
controlBar: string;
|
|
71
|
+
player: string;
|
|
72
|
+
videoPlayer: string;
|
|
73
|
+
audioPlayer: string;
|
|
74
|
+
seekBar: string;
|
|
75
|
+
"seekBar.value": string;
|
|
76
|
+
"seekBar.timeshift": string;
|
|
77
|
+
"seekBar.durationText": string;
|
|
78
|
+
"segment.unplayableTitle": string;
|
|
79
|
+
};
|
|
5
80
|
};
|
|
6
81
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type NPOTag } from '@npotag/tag';
|
|
1
|
+
import { type NPOTag, type PageTracker } from '@npotag/tag';
|
|
2
2
|
import { type InitialisationProps } from '@npotag/tag/dist/types/src/npoTag';
|
|
3
3
|
import type NpoPlayer from '../../../npoplayer';
|
|
4
|
-
export declare function initPlayerTracker(
|
|
4
|
+
export declare function initPlayerTracker(npoPlayer: NpoPlayer, _npoTag?: InitialisationProps, _npoTagInstance?: NPOTag, _npoTagPageTracker?: PageTracker): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -4,7 +4,13 @@ interface ElementByQuery {
|
|
|
4
4
|
}
|
|
5
5
|
interface RemoveClassFromElementByQuery extends ElementByQuery {
|
|
6
6
|
className: string;
|
|
7
|
+
condition: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface UpdateClassFromElementByQuery extends ElementByQuery {
|
|
10
|
+
className: string;
|
|
11
|
+
condition: boolean;
|
|
7
12
|
}
|
|
8
13
|
export declare function getElementByQuery({ container, query }: ElementByQuery): Element | null;
|
|
9
14
|
export declare function removeClassFromElementByQuery(params: RemoveClassFromElementByQuery): void;
|
|
15
|
+
export declare function updateClassFromElementByQuery(params: UpdateClassFromElementByQuery): void;
|
|
10
16
|
export {};
|
package/lib/src/npoplayer.d.ts
CHANGED
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import { NpoPlayerServices } from './services/services';
|
|
2
|
-
import { type StreamTracker, type NPOTag } from '@npotag/tag';
|
|
2
|
+
import { type StreamTracker, type NPOTag, type PageTracker } from '@npotag/tag';
|
|
3
3
|
import { type InitialisationProps } from '@npotag/tag/dist/types/src/npoTag';
|
|
4
4
|
import { type PlayerAPI, type PlayerConfig, type SourceConfig } from 'bitmovin-player';
|
|
5
5
|
import { UIManager } from 'bitmovin-player-ui';
|
|
6
6
|
import { LogEmitter } from './types/classes';
|
|
7
|
-
import { type DRMProfile, type ApiPayload, type NPOTagObject, type StreamObject, type StreamOptions, type UIComponents, type TimeLineMarker, type
|
|
7
|
+
import { type DRMProfile, type ApiPayload, type NPOTagObject, type StreamObject, type StreamOptions, type UIComponents, type TimeLineMarker, type PlayerContext, type EventListeners, NpoPlayerUIVariants } from './types/interfaces';
|
|
8
8
|
export { type PlayerConfig, type InitialisationProps, type NPOTagObject, type StreamOptions, NpoPlayerUIVariants };
|
|
9
9
|
export default class NpoPlayer {
|
|
10
|
-
playerConfig: PlayerConfig;
|
|
10
|
+
playerConfig: PlayerConfig | undefined;
|
|
11
11
|
sourceConfig: SourceConfig;
|
|
12
12
|
streamObject: StreamObject;
|
|
13
13
|
player: PlayerAPI | undefined;
|
|
14
14
|
uiManager: UIManager | undefined;
|
|
15
15
|
npoTag: NPOTagObject | undefined;
|
|
16
|
+
npoTagInitialisation: InitialisationProps | undefined;
|
|
17
|
+
npoTagInstance: NPOTag | undefined;
|
|
18
|
+
npoTagPageTracker: PageTracker | undefined;
|
|
16
19
|
streamTracker: StreamTracker | undefined;
|
|
17
20
|
logEmitter: LogEmitter;
|
|
18
21
|
uiComponents: UIComponents;
|
|
@@ -27,11 +30,17 @@ export default class NpoPlayer {
|
|
|
27
30
|
isShowingPlayNextScreen: boolean;
|
|
28
31
|
canceledPlayNextScreen: boolean;
|
|
29
32
|
playerContext: PlayerContext | undefined;
|
|
30
|
-
|
|
33
|
+
npoPlayerServices: NpoPlayerServices;
|
|
31
34
|
eventListeners: EventListeners | undefined;
|
|
32
35
|
mockNpoPlayer: any;
|
|
33
|
-
|
|
34
|
-
|
|
36
|
+
constructor(container: HTMLElement | {
|
|
37
|
+
container: HTMLElement;
|
|
38
|
+
playerConfig: PlayerConfig;
|
|
39
|
+
npoTag?: InitialisationProps | undefined;
|
|
40
|
+
npoTagInstance?: NPOTag | undefined;
|
|
41
|
+
variant?: NpoPlayerUIVariants;
|
|
42
|
+
npoTagPageTracker?: PageTracker | undefined;
|
|
43
|
+
}, playerConfig?: PlayerConfig | undefined, npoTag?: InitialisationProps | undefined, npoTagInstance?: NPOTag | undefined, variant?: NpoPlayerUIVariants, npoTagPageTracker?: PageTracker | undefined);
|
|
35
44
|
initPlayer(_container: HTMLElement, playerConfig: PlayerConfig): void;
|
|
36
45
|
loadStream(source: string, options?: StreamOptions): Promise<void>;
|
|
37
46
|
doError(input: any, status?: number): void;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { PlayerContext } from '../../types/interfaces';
|
|
2
|
+
export declare function processNicam(playerContext: PlayerContext, nicamElement: HTMLElement | undefined): void;
|
|
3
|
+
export declare function addNicamIcon(character: string, nicamElement: Element): void;
|
|
4
|
+
export declare function showNicamAfterUiDelay(playerContext: PlayerContext): void;
|
|
5
|
+
export declare function setupNicamKijkwijzerIcons(playerContext: PlayerContext): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '@testing-library/jest-dom';
|
|
@@ -17,7 +17,8 @@ export declare class NpoPlayerAPI {
|
|
|
17
17
|
setViewMode(viewMode: ViewMode): void;
|
|
18
18
|
getViewMode(): ViewMode;
|
|
19
19
|
areSubtitlesEnabled(): boolean;
|
|
20
|
-
|
|
20
|
+
getCurrentSubtitle(): string | undefined;
|
|
21
|
+
enableSubtitles(selectedLang?: string): void;
|
|
21
22
|
isPaused(): boolean;
|
|
22
23
|
isMuted(): boolean;
|
|
23
24
|
isLive(): boolean;
|
|
@@ -25,6 +26,7 @@ export declare class NpoPlayerAPI {
|
|
|
25
26
|
getSupportedTech(): Technology[];
|
|
26
27
|
off(eventType: NpoPlayerEvent, callback: NpoPlayerEventCallback): void;
|
|
27
28
|
on(eventType: NpoPlayerEvent, callback: NpoPlayerEventCallback): void;
|
|
29
|
+
isCastAvailable(): boolean;
|
|
28
30
|
seek(time: number): void;
|
|
29
31
|
timeShift(time: number): void;
|
|
30
32
|
getContainer(): HTMLElement;
|
|
@@ -37,7 +39,6 @@ export declare class NpoPlayerAPI {
|
|
|
37
39
|
getTimeShift(): number;
|
|
38
40
|
scheduleAds(adConfig: AdConfig): Promise<AdBreak[]>;
|
|
39
41
|
getActiveAdBreak(): AdBreak | null;
|
|
40
|
-
discardAdBreak(adBreakId: string): void;
|
|
41
42
|
getConfig(mergedConfig?: boolean): PlayerConfig;
|
|
42
43
|
createUIManager(playerContext: PlayerContext, variant: NpoPlayerUIVariants): Promise<void | UIManager>;
|
|
43
44
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -12,5 +12,12 @@ export declare class NpoPlayerServices {
|
|
|
12
12
|
handleUserPrefs(playerContext: PlayerContext): void;
|
|
13
13
|
setAccessibilityAttributes(playerContext: PlayerContext): void;
|
|
14
14
|
schedulePreRolls(playerContext: PlayerContext): Promise<void>;
|
|
15
|
+
discardAdBreak(playerContext: PlayerContext): void;
|
|
15
16
|
handleVerticalVideoControls(playerContext: PlayerContext, variant: NpoPlayerUIVariants): void;
|
|
17
|
+
showNicamAfterUiDelay(playerContext: PlayerContext | undefined): void;
|
|
18
|
+
setupNicamKijkwijzerIcons(playerContext: PlayerContext): void;
|
|
19
|
+
handlePreferences(playerContext: PlayerContext): void;
|
|
20
|
+
addUivisiblityHandlers(playerContext: PlayerContext): void;
|
|
21
|
+
removeUivisiblityHandlers(playerContext: PlayerContext): void;
|
|
22
|
+
handleStreamOptions(playerContext: PlayerContext): void;
|
|
16
23
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { PlayerContext } from '../../types/interfaces';
|
|
2
|
+
export declare function handleStreamOptions(playerContext: PlayerContext): void;
|
|
3
|
+
export declare function initializeFragment(playerContext: PlayerContext): void;
|
|
4
|
+
export declare function handleStartOffset(playerContext: PlayerContext): void;
|
|
5
|
+
export declare function updateStreamClasses(playerContext: PlayerContext): void;
|
|
6
|
+
export declare function setupAutoplay(playerContext: PlayerContext): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '@testing-library/jest-dom';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
|
+
type AllowedEvents = 'logControlsVisibilityChange' | 'logError' | 'logEvent';
|
|
3
4
|
export declare class LogEmitter extends EventEmitter {
|
|
5
|
+
emit(event: AllowedEvents, ...args: any[]): boolean;
|
|
6
|
+
on(event: AllowedEvents, listener: (...args: any[]) => void): this;
|
|
7
|
+
once(event: AllowedEvents, listener: (...args: any[]) => void): this;
|
|
8
|
+
off(event: AllowedEvents, listener: (...args: any[]) => void): this;
|
|
4
9
|
}
|
|
10
|
+
export {};
|
|
@@ -4,7 +4,7 @@ import { ButtonConfig } from 'bitmovin-player-ui/dist/js/framework/components/bu
|
|
|
4
4
|
import NpoPlayer from '../npoplayer';
|
|
5
5
|
import { NpoPlayerAPI } from '../services/npoPlayerAPI/npoPlayerAPI';
|
|
6
6
|
import { NpoPlayerEventCallback } from './events';
|
|
7
|
-
import {
|
|
7
|
+
import { AnalyticsConfig, DRMConfig, GoogleCastRemoteControlConfig, ProgressiveSourceConfig, SourceConfigOptions, SourceLabelingStreamTypeConfig, SubtitleTrack, ThumbnailTrack, VRConfig } from 'bitmovin-player';
|
|
8
8
|
export { Technology } from 'bitmovin-player';
|
|
9
9
|
export interface Profile {
|
|
10
10
|
profileName: string;
|
|
@@ -31,7 +31,7 @@ export interface StreamObject {
|
|
|
31
31
|
}
|
|
32
32
|
export interface PlayerContext {
|
|
33
33
|
player: NpoPlayerAPI;
|
|
34
|
-
|
|
34
|
+
npoPlayer: NpoPlayer;
|
|
35
35
|
}
|
|
36
36
|
export interface ApiPayload {
|
|
37
37
|
baseURL: string;
|
|
@@ -95,6 +95,26 @@ interface FragmentSection {
|
|
|
95
95
|
export interface Fragment {
|
|
96
96
|
sections: FragmentSection[];
|
|
97
97
|
}
|
|
98
|
+
export interface SourceConfig {
|
|
99
|
+
dash?: string;
|
|
100
|
+
hls?: string;
|
|
101
|
+
progressive?: string | ProgressiveSourceConfig[];
|
|
102
|
+
smooth?: string;
|
|
103
|
+
whep?: string;
|
|
104
|
+
poster?: string;
|
|
105
|
+
drm?: DRMConfig;
|
|
106
|
+
options?: SourceConfigOptions;
|
|
107
|
+
subtitleTracks?: SubtitleTrack[];
|
|
108
|
+
thumbnailTrack?: ThumbnailTrack;
|
|
109
|
+
vr?: VRConfig;
|
|
110
|
+
title?: string;
|
|
111
|
+
description?: string;
|
|
112
|
+
labeling?: SourceLabelingStreamTypeConfig;
|
|
113
|
+
analytics?: AnalyticsConfig;
|
|
114
|
+
metadata?: {
|
|
115
|
+
[key: string]: string;
|
|
116
|
+
};
|
|
117
|
+
}
|
|
98
118
|
export interface StreamOptions {
|
|
99
119
|
sourceConfig?: SourceConfig;
|
|
100
120
|
fragments?: Fragment;
|
|
@@ -197,6 +217,8 @@ export type TimeLineMarker = {
|
|
|
197
217
|
export declare enum LocalStorageValues {
|
|
198
218
|
IS_MUTED = "ismuted",
|
|
199
219
|
VOLUME = "volume",
|
|
200
|
-
SUBTITLES_ENABLED = "subtitles_enabled"
|
|
220
|
+
SUBTITLES_ENABLED = "subtitles_enabled",
|
|
221
|
+
SUBTITLES_LANGUAGE = "subtitles_language"
|
|
201
222
|
}
|
|
202
223
|
export type LocalStorageData = Partial<Record<LocalStorageValues, string | number>>;
|
|
224
|
+
export type NPOGoogleCastRemoteControlConfig = GoogleCastRemoteControlConfig;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Button } from 'bitmovin-player-ui';
|
|
2
2
|
import type NpoPlayer from '../../npoplayer';
|
|
3
|
-
export declare function createAdButton(
|
|
3
|
+
export declare function createAdButton(npoPlayer: NpoPlayer): Button<{
|
|
4
4
|
cssClass: string;
|
|
5
5
|
text: string;
|
|
6
6
|
hidden: true;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Label } from 'bitmovin-player-ui';
|
|
2
2
|
import type NpoPlayer from '../../npoplayer';
|
|
3
|
-
export declare function createAdLabel(
|
|
3
|
+
export declare function createAdLabel(npoPlayer: NpoPlayer): Label<{
|
|
4
4
|
text: string;
|
|
5
5
|
cssClass: string;
|
|
6
6
|
hidden: true;
|