@npo/player 1.17.2 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/README.md +2 -1
  2. package/lib/js/ads/ster.js +1 -2
  3. package/lib/js/ads/ster.test.js +0 -1
  4. package/lib/js/api/getstreamobject.js +0 -1
  5. package/lib/js/api/getstreamobject.test.js +0 -1
  6. package/lib/js/cdnproviders.js +10 -7
  7. package/lib/js/checks/apple.js +0 -1
  8. package/lib/js/checks/apple.test.js +0 -1
  9. package/lib/js/drm/drm.js +0 -1
  10. package/lib/js/drm/handlers/decideprofile.js +0 -1
  11. package/lib/js/drm/handlers/verifydrm.js +0 -1
  12. package/lib/js/drm/handlers/verifydrm.test.js +0 -1
  13. package/lib/js/fragments/removefragments.js +0 -1
  14. package/lib/js/fragments/setfragments.js +0 -1
  15. package/lib/js/playeractions/customerrors.test.js +0 -1
  16. package/lib/js/playeractions/handlers/customerrors.js +0 -1
  17. package/lib/js/playeractions/handlers/error.js +0 -1
  18. package/lib/js/playeractions/handlers/error.test.js +0 -1
  19. package/lib/js/playeractions/handlers/handleoffsets.js +0 -1
  20. package/lib/js/playeractions/handlers/handleoffsets.test.js +0 -1
  21. package/lib/js/playeractions/handlers/mediasessionactions.js +0 -1
  22. package/lib/js/playeractions/handlers/processplayerconfig.js +0 -1
  23. package/lib/js/playeractions/handlers/processsourceconfig.js +10 -6
  24. package/lib/js/playeractions/handlers/resolvekeypress.js +0 -1
  25. package/lib/js/playeractions/playeractions.js +0 -1
  26. package/lib/js/tracking/handlers/eventbinding.js +1 -3
  27. package/lib/js/tracking/handlers/eventlogging.js +0 -1
  28. package/lib/js/tracking/handlers/playertrackerinit.js +0 -1
  29. package/lib/js/tracking/handlers/playertrackerstart.js +0 -1
  30. package/lib/js/tracking/playertracker.js +0 -1
  31. package/lib/js/ui/components/adbutton.js +0 -1
  32. package/lib/js/ui/components/adlabel.js +0 -1
  33. package/lib/js/ui/components/audio/controlbar.js +0 -1
  34. package/lib/js/ui/components/buttons.d.ts +6 -0
  35. package/lib/js/ui/components/buttons.js +16 -3
  36. package/lib/js/ui/components/controlbar.js +0 -1
  37. package/lib/js/ui/components/ctabar.js +0 -1
  38. package/lib/js/ui/components/nativemobile/addFragments.js +0 -1
  39. package/lib/js/ui/components/nativemobile/buttons.js +0 -1
  40. package/lib/js/ui/components/nativemobile/controlbar.js +0 -1
  41. package/lib/js/ui/components/nativemobile/ctabar.js +0 -1
  42. package/lib/js/ui/components/nativemobile/playnext.js +0 -7
  43. package/lib/js/ui/components/nativemobile/titlebar.js +0 -1
  44. package/lib/js/ui/components/nativemobile/topbar.js +0 -1
  45. package/lib/js/ui/components/playnext.js +3 -3
  46. package/lib/js/ui/components/seekbar.js +0 -1
  47. package/lib/js/ui/components/settingspanel.js +0 -1
  48. package/lib/js/ui/components/shared/playnextscreen.d.ts +2 -2
  49. package/lib/js/ui/components/shared/playnextscreen.js +30 -13
  50. package/lib/js/ui/components/titlebar.js +0 -1
  51. package/lib/js/ui/components/topbar.js +0 -1
  52. package/lib/js/ui/handlers/accessibilityhandler.js +0 -1
  53. package/lib/js/ui/handlers/listboxhandlers.js +0 -1
  54. package/lib/js/ui/handlers/nicamhandler.d.ts +1 -1
  55. package/lib/js/ui/handlers/nicamhandler.js +1 -3
  56. package/lib/js/ui/handlers/nicamhandler.test.js +10 -15
  57. package/lib/js/ui/handlers/playnexthandlers.js +0 -1
  58. package/lib/js/ui/handlers/streamhandler.d.ts +3 -3
  59. package/lib/js/ui/handlers/streamhandler.js +4 -5
  60. package/lib/js/ui/handlers/timecontrolhandlers.js +0 -1
  61. package/lib/js/ui/nativemobileuicontainer.js +0 -1
  62. package/lib/js/ui/nativemobileuifactory.js +1 -2
  63. package/lib/js/ui/uicontainer.js +0 -1
  64. package/lib/js/utilities/localizationconfig.js +0 -1
  65. package/lib/js/utilities/printversion.js +0 -1
  66. package/lib/js/utilities/utilities.js +0 -1
  67. package/lib/js/utilities/utilities.test.js +0 -1
  68. package/lib/npoplayer.d.ts +3 -0
  69. package/lib/npoplayer.js +36 -8
  70. package/lib/npoplayer.test.js +0 -1
  71. package/lib/package.json +1 -1
  72. package/lib/src/js/ui/components/buttons.d.ts +6 -0
  73. package/lib/src/js/ui/components/shared/playnextscreen.d.ts +2 -2
  74. package/lib/src/js/ui/handlers/nicamhandler.d.ts +1 -1
  75. package/lib/src/js/ui/handlers/streamhandler.d.ts +3 -3
  76. package/lib/src/npoplayer.d.ts +3 -0
  77. package/lib/src/types/interfaces.d.ts +8 -1
  78. package/lib/types/classes.js +0 -1
  79. package/lib/types/interfaces.d.ts +8 -1
  80. package/lib/types/interfaces.js +0 -1
  81. package/package.json +1 -1
  82. package/src/scss/components/_playnext.scss +21 -33
  83. package/src/scss/components/_subtitles.scss +16 -0
  84. package/src/scss/components/_textbuttons.scss +18 -18
  85. package/src/scss/npoplayer.css +16 -11
  86. package/src/scss/variants/_player-large.scss +10 -0
  87. package/src/scss/variants/_player-medium.scss +6 -0
  88. package/src/scss/variants/_player-small.scss +6 -0
  89. package/lib/js/ads/ster.js.map +0 -1
  90. package/lib/js/ads/ster.test.js.map +0 -1
  91. package/lib/js/api/getstreamobject.js.map +0 -1
  92. package/lib/js/api/getstreamobject.test.js.map +0 -1
  93. package/lib/js/cdnproviders.js.map +0 -1
  94. package/lib/js/checks/apple.js.map +0 -1
  95. package/lib/js/checks/apple.test.js.map +0 -1
  96. package/lib/js/drm/drm.js.map +0 -1
  97. package/lib/js/drm/handlers/decideprofile.js.map +0 -1
  98. package/lib/js/drm/handlers/verifydrm.js.map +0 -1
  99. package/lib/js/drm/handlers/verifydrm.test.js.map +0 -1
  100. package/lib/js/fragments/removefragments.js.map +0 -1
  101. package/lib/js/fragments/setfragments.js.map +0 -1
  102. package/lib/js/playeractions/customerrors.test.js.map +0 -1
  103. package/lib/js/playeractions/handlers/customerrors.js.map +0 -1
  104. package/lib/js/playeractions/handlers/error.js.map +0 -1
  105. package/lib/js/playeractions/handlers/error.test.js.map +0 -1
  106. package/lib/js/playeractions/handlers/handleoffsets.js.map +0 -1
  107. package/lib/js/playeractions/handlers/handleoffsets.test.js.map +0 -1
  108. package/lib/js/playeractions/handlers/mediasessionactions.js.map +0 -1
  109. package/lib/js/playeractions/handlers/processplayerconfig.js.map +0 -1
  110. package/lib/js/playeractions/handlers/processsourceconfig.js.map +0 -1
  111. package/lib/js/playeractions/handlers/resolvekeypress.js.map +0 -1
  112. package/lib/js/playeractions/playeractions.js.map +0 -1
  113. package/lib/js/tracking/handlers/eventbinding.js.map +0 -1
  114. package/lib/js/tracking/handlers/eventlogging.js.map +0 -1
  115. package/lib/js/tracking/handlers/playertrackerinit.js.map +0 -1
  116. package/lib/js/tracking/handlers/playertrackerstart.js.map +0 -1
  117. package/lib/js/tracking/playertracker.js.map +0 -1
  118. package/lib/js/ui/components/adbutton.js.map +0 -1
  119. package/lib/js/ui/components/adlabel.js.map +0 -1
  120. package/lib/js/ui/components/audio/controlbar.js.map +0 -1
  121. package/lib/js/ui/components/buttons.js.map +0 -1
  122. package/lib/js/ui/components/controlbar.js.map +0 -1
  123. package/lib/js/ui/components/ctabar.js.map +0 -1
  124. package/lib/js/ui/components/nativemobile/addFragments.js.map +0 -1
  125. package/lib/js/ui/components/nativemobile/buttons.js.map +0 -1
  126. package/lib/js/ui/components/nativemobile/controlbar.js.map +0 -1
  127. package/lib/js/ui/components/nativemobile/ctabar.js.map +0 -1
  128. package/lib/js/ui/components/nativemobile/playnext.js.map +0 -1
  129. package/lib/js/ui/components/nativemobile/titlebar.js.map +0 -1
  130. package/lib/js/ui/components/nativemobile/topbar.js.map +0 -1
  131. package/lib/js/ui/components/playnext.js.map +0 -1
  132. package/lib/js/ui/components/seekbar.js.map +0 -1
  133. package/lib/js/ui/components/settingspanel.js.map +0 -1
  134. package/lib/js/ui/components/shared/playnextscreen.js.map +0 -1
  135. package/lib/js/ui/components/titlebar.js.map +0 -1
  136. package/lib/js/ui/components/topbar.js.map +0 -1
  137. package/lib/js/ui/handlers/accessibilityhandler.js.map +0 -1
  138. package/lib/js/ui/handlers/listboxhandlers.js.map +0 -1
  139. package/lib/js/ui/handlers/nicamhandler.js.map +0 -1
  140. package/lib/js/ui/handlers/nicamhandler.test.js.map +0 -1
  141. package/lib/js/ui/handlers/playnexthandlers.js.map +0 -1
  142. package/lib/js/ui/handlers/streamhandler.js.map +0 -1
  143. package/lib/js/ui/handlers/timecontrolhandlers.js.map +0 -1
  144. package/lib/js/ui/nativemobileuicontainer.js.map +0 -1
  145. package/lib/js/ui/nativemobileuifactory.js.map +0 -1
  146. package/lib/js/ui/uicontainer.js.map +0 -1
  147. package/lib/js/utilities/localizationconfig.js.map +0 -1
  148. package/lib/js/utilities/printversion.js.map +0 -1
  149. package/lib/js/utilities/utilities.js.map +0 -1
  150. package/lib/js/utilities/utilities.test.js.map +0 -1
  151. package/lib/npoplayer.js.map +0 -1
  152. package/lib/npoplayer.test.js.map +0 -1
  153. package/lib/types/classes.js.map +0 -1
  154. package/lib/types/interfaces.js.map +0 -1
@@ -36,7 +36,7 @@ export function nativeMobileUiFactory(player, config = {}) {
36
36
  };
37
37
  const updateUI = () => {
38
38
  if (_streamObject.metadata?.ageRating) {
39
- processNicam(_streamObject, 'ui-container', null);
39
+ processNicam(_streamObject, document.querySelector('#ui-container .bmpui-nicam'), null);
40
40
  }
41
41
  const isLiveStream = _streamObject.stream?.isLiveStream && _streamObject.stream?.hasDvrWindow;
42
42
  if (isLiveStream) {
@@ -93,4 +93,3 @@ export function nativeMobileUiFactory(player, config = {}) {
93
93
  });
94
94
  return mobileUIManager;
95
95
  }
96
- //# sourceMappingURL=nativemobileuifactory.js.map
@@ -77,4 +77,3 @@ export function createUIContainer(npoplayer, player, variant, container) {
77
77
  hideDelay: uiDelay
78
78
  });
79
79
  }
80
- //# sourceMappingURL=uicontainer.js.map
@@ -5,4 +5,3 @@ export const localizationConfig = {
5
5
  nl: nlJson.default
6
6
  }
7
7
  };
8
- //# sourceMappingURL=localizationconfig.js.map
@@ -24,4 +24,3 @@ export function printVersion(version) {
24
24
  const versionStyle = 'font-size: 24px; font-weight: bold; padding: 2px 4px;';
25
25
  console.log(`%c${asciiArt}%c${title} %c${versionString}`, `color: ${colorCode}; background-color: rgb(11, 28, 54);`, titleStyle, versionStyle);
26
26
  }
27
- //# sourceMappingURL=printversion.js.map
@@ -68,4 +68,3 @@ export async function isMediaUrl(url) {
68
68
  export function replaceSpecialChars(text) {
69
69
  return text.replace(/['()*]/g, (char) => `%${char.charCodeAt(0).toString(16).toUpperCase()}`);
70
70
  }
71
- //# sourceMappingURL=utilities.js.map
@@ -48,4 +48,3 @@ describe('isUrl', () => {
48
48
  expect(isUrl(invalidUrl)).toBe(false);
49
49
  });
50
50
  });
51
- //# sourceMappingURL=utilities.test.js.map
@@ -24,6 +24,8 @@ export default class NpoPlayer {
24
24
  version: string;
25
25
  drmProfile: DRMProfile;
26
26
  variant: NpoPlayerUIVariants;
27
+ isShowingPlayNextScreen: boolean;
28
+ canceledPlayNextScreen: boolean;
27
29
  constructor(_container: HTMLElement, _playerConfig: PlayerConfig, _npotag?: InitialisationProps | null, _npotaginstance?: NPOTag | undefined, _variant?: NpoPlayerUIVariants);
28
30
  initPlayer(_container: HTMLElement, playerConfig: PlayerConfig, variant: NpoPlayerUIVariants): void;
29
31
  loadStream(source: string, options?: StreamOptions): Promise<void>;
@@ -37,6 +39,7 @@ export default class NpoPlayer {
37
39
  goBackwards(seconds: number): void;
38
40
  watchFromStart(): void;
39
41
  showPlayNextScreen(): void;
42
+ cancelPlayNextScreen(): void;
40
43
  hidePlayNextScreen(): void;
41
44
  doPlayNext(): void;
42
45
  destroy(): boolean;
package/lib/npoplayer.js CHANGED
@@ -43,6 +43,8 @@ export default class NpoPlayer {
43
43
  initPlayerTracker(this, _npotag, _npotaginstance);
44
44
  this.logEmitter = new LogEmitter();
45
45
  this.uiComponents = {};
46
+ this.isShowingPlayNextScreen = false;
47
+ this.canceledPlayNextScreen = false;
46
48
  this.initPlayer(this.container, _playerConfig, this.variant);
47
49
  }
48
50
  initPlayer(_container, playerConfig, variant) {
@@ -55,6 +57,7 @@ export default class NpoPlayer {
55
57
  }, true);
56
58
  }
57
59
  async loadStream(source, options = {}) {
60
+ this.streamOptions = options;
58
61
  if (this.player == null) {
59
62
  console.error('Er is nog geen player geladen.');
60
63
  return;
@@ -118,16 +121,22 @@ export default class NpoPlayer {
118
121
  this.player.on(PlayerEvent.AdBreakFinished, () => { void addAccessibilityAttributes(this.container, this.streamObject.metadata); });
119
122
  if (this.sourceConfig?.metadata) {
120
123
  this.sourceConfig.metadata.jwt = source;
121
- this.sourceConfig.metadata.av_type = this.streamObject.stream.avType;
124
+ this.sourceConfig.metadata.streamLinkAsJsonString = JSON.stringify(this.streamObject);
122
125
  this.sourceConfig.metadata.npoTagSession = String(this.npoTag?.npoTagInstance?.getSerializedSessionInfo());
123
126
  }
124
- this.player.off(PlayerEvent.PlaybackFinished, () => {
127
+ this.player.off(PlayerEvent.TimeChanged, () => {
125
128
  this.showPlayNextScreen();
126
129
  });
127
- if (options?.prid != null) {
128
- this.player.on(PlayerEvent.PlaybackFinished, () => {
130
+ this.player.off(PlayerEvent.Paused, () => {
131
+ this.hidePlayNextScreen();
132
+ });
133
+ if (options?.playNext?.showPlayNext === true) {
134
+ this.player.on(PlayerEvent.TimeChanged, () => {
129
135
  this.showPlayNextScreen();
130
136
  });
137
+ this.player.on(PlayerEvent.Paused, () => {
138
+ this.hidePlayNextScreen();
139
+ });
131
140
  }
132
141
  if (options?.startOffset != null)
133
142
  playerAction.handleStartOffset(this.player, options.startOffset);
@@ -208,20 +217,40 @@ export default class NpoPlayer {
208
217
  playerAction.shiftToProgramStart(this.player, this.streamOptions.liveProgramTime);
209
218
  }
210
219
  showPlayNextScreen() {
211
- showPlayNextScreen(this.doPlayNext.bind(this));
220
+ if (this.player == null || !this.streamOptions.playNext?.showPlayNext)
221
+ return;
222
+ const videoDuration = this.player.getDuration();
223
+ const overlayDuration = this.streamOptions.playNext?.duration || 10;
224
+ const offset = this.streamOptions.playNext?.offset || overlayDuration;
225
+ const showPlayNextAt = videoDuration - offset;
226
+ if (!this.isShowingPlayNextScreen && this.player.getCurrentTime() > showPlayNextAt && !this.canceledPlayNextScreen) {
227
+ this.isShowingPlayNextScreen = true;
228
+ showPlayNextScreen(overlayDuration, this.container, this.streamOptions.playNext?.proceedCallback);
229
+ }
230
+ else if (this.isShowingPlayNextScreen && this.player.getCurrentTime() < showPlayNextAt) {
231
+ this.isShowingPlayNextScreen = false;
232
+ hidePlayNextScreen(this.container);
233
+ }
234
+ }
235
+ cancelPlayNextScreen() {
236
+ this.canceledPlayNextScreen = true;
237
+ this.hidePlayNextScreen();
238
+ void this.streamOptions.playNext?.cancelCallback?.();
212
239
  }
213
240
  hidePlayNextScreen() {
214
- hidePlayNextScreen();
241
+ this.isShowingPlayNextScreen = false;
242
+ hidePlayNextScreen(this.container);
215
243
  }
216
244
  doPlayNext() {
217
245
  this.hidePlayNextScreen();
218
- void this.loadStream(this.jwt, this.streamOptions);
246
+ void this.streamOptions.playNext?.proceedCallback?.();
219
247
  }
220
248
  destroy() {
221
249
  try {
222
250
  if (this.npoTag != null) {
223
251
  clearInterval(this.npoTag.heartbeatInterval);
224
252
  }
253
+ logEvent(this, 'stop');
225
254
  this.uiManager?.release();
226
255
  void this.player?.destroy();
227
256
  return true;
@@ -254,4 +283,3 @@ window.bitmovin.playerui.UIFactory = {
254
283
  return nativeMobileUiFactory(player, config);
255
284
  }
256
285
  };
257
- //# sourceMappingURL=npoplayer.js.map
@@ -12,4 +12,3 @@ test("player init", async () => {
12
12
  expect(player).toBeInstanceOf(NpoPlayer);
13
13
  expect(player.playerConfig.key).toBe(testPlayerConfig.key);
14
14
  });
15
- //# sourceMappingURL=npoplayer.test.js.map
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@npo/player",
3
- "version": "1.17.2",
3
+ "version": "1.18.0",
4
4
  "description": "NPO Player",
5
5
  "author": "Publieke Omroep <player@npo.nl>",
6
6
  "contributors": [
@@ -16,6 +16,12 @@ export declare function createPlayNextButton(player: PlayerAPI, npoplayer: NpoPl
16
16
  ariaLabel: string;
17
17
  hidden: false;
18
18
  }>;
19
+ export declare function createCancelPlayNextButton(player: PlayerAPI, npoplayer: NpoPlayer): Button<{
20
+ cssClass: string;
21
+ text: string;
22
+ ariaLabel: string;
23
+ hidden: false;
24
+ }>;
19
25
  export declare function createskipIntroButton(player: PlayerAPI): Button<{
20
26
  cssClass: string;
21
27
  text: string;
@@ -1,2 +1,2 @@
1
- export declare function showPlayNextScreen(playNextFunction: () => void): void;
2
- export declare function hidePlayNextScreen(): void;
1
+ export declare function showPlayNextScreen(overlayDuration: number, containerEl: HTMLElement, proceedCallBack?: () => void): void;
2
+ export declare function hidePlayNextScreen(containerEl: HTMLElement): void;
@@ -1,3 +1,3 @@
1
1
  import { StreamObject, StreamOptions } from 'types/interfaces';
2
- export declare function processNicam(streamObject: StreamObject, containerId: string, streamOptions: StreamOptions | null): void;
2
+ export declare function processNicam(streamObject: StreamObject, nicamElement: HTMLElement | null, streamOptions: StreamOptions | null): void;
3
3
  export declare function addNicamIcon(character: string, nicamElement: Element): void;
@@ -1,4 +1,4 @@
1
- import { type StreamObject, type StreamOptions } from "../../../types/interfaces";
2
- import { PlayerAPI, SourceConfig } from "bitmovin-player";
3
- import { UIManager } from "bitmovin-player-ui";
1
+ import { type StreamObject, type StreamOptions } from '../../../types/interfaces';
2
+ import { PlayerAPI, SourceConfig } from 'bitmovin-player';
3
+ import { UIManager } from 'bitmovin-player-ui';
4
4
  export declare function processStream(streamObject: StreamObject | undefined, container: HTMLElement, streamOptions: StreamOptions | null, player: PlayerAPI, uiManager: UIManager, sourceConfig: SourceConfig): void;
@@ -24,6 +24,8 @@ export default class NpoPlayer {
24
24
  version: string;
25
25
  drmProfile: DRMProfile;
26
26
  variant: NpoPlayerUIVariants;
27
+ isShowingPlayNextScreen: boolean;
28
+ canceledPlayNextScreen: boolean;
27
29
  constructor(_container: HTMLElement, _playerConfig: PlayerConfig, _npotag?: InitialisationProps | null, _npotaginstance?: NPOTag | undefined, _variant?: NpoPlayerUIVariants);
28
30
  initPlayer(_container: HTMLElement, playerConfig: PlayerConfig, variant: NpoPlayerUIVariants): void;
29
31
  loadStream(source: string, options?: StreamOptions): Promise<void>;
@@ -37,6 +39,7 @@ export default class NpoPlayer {
37
39
  goBackwards(seconds: number): void;
38
40
  watchFromStart(): void;
39
41
  showPlayNextScreen(): void;
42
+ cancelPlayNextScreen(): void;
40
43
  hidePlayNextScreen(): void;
41
44
  doPlayNext(): void;
42
45
  destroy(): boolean;
@@ -83,9 +83,9 @@ export interface StreamOptions {
83
83
  liveProgramTime?: number;
84
84
  endpoint?: string;
85
85
  preferredDRM?: string;
86
- prid?: string;
87
86
  ageRating?: string;
88
87
  nicam?: string[] | null;
88
+ playNext?: PlayNext;
89
89
  }
90
90
  export interface UIComponents {
91
91
  errorMessageOverlay?: ErrorMessageOverlay;
@@ -131,4 +131,11 @@ export declare enum NpoPlayerUIVariants {
131
131
  AUDIO = "audio",
132
132
  AD = "ad"
133
133
  }
134
+ export interface PlayNext {
135
+ showPlayNext?: boolean;
136
+ duration?: number;
137
+ offset?: number;
138
+ proceedCallback?: () => void;
139
+ cancelCallback?: () => void;
140
+ }
134
141
  export {};
@@ -1,4 +1,3 @@
1
1
  import { EventEmitter } from 'events';
2
2
  export class LogEmitter extends EventEmitter {
3
3
  }
4
- //# sourceMappingURL=classes.js.map
@@ -83,9 +83,9 @@ export interface StreamOptions {
83
83
  liveProgramTime?: number;
84
84
  endpoint?: string;
85
85
  preferredDRM?: string;
86
- prid?: string;
87
86
  ageRating?: string;
88
87
  nicam?: string[] | null;
88
+ playNext?: PlayNext;
89
89
  }
90
90
  export interface UIComponents {
91
91
  errorMessageOverlay?: ErrorMessageOverlay;
@@ -131,4 +131,11 @@ export declare enum NpoPlayerUIVariants {
131
131
  AUDIO = "audio",
132
132
  AD = "ad"
133
133
  }
134
+ export interface PlayNext {
135
+ showPlayNext?: boolean;
136
+ duration?: number;
137
+ offset?: number;
138
+ proceedCallback?: () => void;
139
+ cancelCallback?: () => void;
140
+ }
134
141
  export {};
@@ -21,4 +21,3 @@ export var NpoPlayerUIVariants;
21
21
  NpoPlayerUIVariants["AUDIO"] = "audio";
22
22
  NpoPlayerUIVariants["AD"] = "ad";
23
23
  })(NpoPlayerUIVariants || (NpoPlayerUIVariants = {}));
24
- //# sourceMappingURL=interfaces.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@npo/player",
3
- "version": "1.17.2",
3
+ "version": "1.18.0",
4
4
  "description": "NPO Player",
5
5
  "author": "Publieke Omroep <player@npo.nl>",
6
6
  "contributors": [
@@ -6,47 +6,35 @@
6
6
  left: 0;
7
7
  right: 0;
8
8
  background-color: rgba(0, 0, 0, 0.07);
9
- svg {
10
- .ui-circle {
11
- animation: progress 15s ease-out forwards;
12
- }
13
- }
14
- &.show {
9
+ z-index: 10;
10
+ pointer-events: none;
11
+
12
+ &.show {
15
13
  display: block;
16
14
  }
15
+
17
16
  .bmpui-container-wrapper {
18
17
  position: relative;
19
18
  height: 100%;
20
19
  display: flex;
21
- justify-content: center;
22
- align-items: center;
23
- .bmpui-ui-hugeplaynextbacktogglebutton {
24
- position: relative;
25
- height: 7.3em;
26
- width: 7.3em;
27
- cursor: pointer;
28
- transition: background-size linear 0.2s !important;
29
- background-image: var(--npo-player-icon-play) !important;
30
- background-size: 60%;
31
- &:hover {
32
- background-size: 70%;
33
- }
20
+ align-items: flex-end;
21
+ justify-content: flex-end;
22
+ padding: 16px;
23
+ pointer-events: none;
24
+
25
+ .bmpui-ui-textbutton {
26
+ margin-left: 8px;
27
+ pointer-events: all;
28
+ }
29
+
30
+ .ui-playNextButton {
31
+ background-color: var(--npo-player-textcolor);
32
+ width: 200px;
33
+ white-space: nowrap;
34
+
34
35
  .bmpui-label {
35
- display: none;
36
- position: absolute;
37
- bottom: -2em;
38
- width: 100em;
39
- text-align: center;
40
- font-weight: 700;
41
- left: calc(-50em + 3.5em);
42
- font-size: 22px;
36
+ color: var(--npo-player-graycolor-dark);
43
37
  }
44
38
  }
45
39
  }
46
40
  }
47
-
48
- @keyframes progress {
49
- 0% {
50
- stroke-dasharray: 0 100;
51
- }
52
- }
@@ -47,4 +47,20 @@
47
47
  }
48
48
  }
49
49
  }
50
+
51
+ .green {
52
+ color: green;
53
+ }
54
+
55
+ .cyan {
56
+ color: cyan;
57
+ }
58
+
59
+ .white {
60
+ color: white;
61
+ }
62
+
63
+ .yellow {
64
+ color: yellow;
65
+ }
50
66
  }
@@ -18,25 +18,25 @@
18
18
  @-moz-document url-prefix() {
19
19
  backdrop-filter: brightness(1);
20
20
  }
21
+ }
21
22
 
22
- .bmpui-ui-textbutton {
23
- padding: 12px 20px;
24
- background: rgba(3, 14, 30, 0.6);
25
- border: 1px solid #ffffff;
26
- backdrop-filter: blur(10px);
27
- border-radius: 10px;
28
- height: 48px;
29
- box-sizing: border-box;
30
- font-weight: 700;
23
+ .bmpui-ui-textbutton {
24
+ padding: 6px 14px;
25
+ background: rgba(3, 14, 30, 0.6);
26
+ border: 1px solid #ffffff;
27
+ backdrop-filter: blur(10px);
28
+ border-radius: 8px;
29
+ height: 36px;
30
+ box-sizing: border-box;
31
+ font-weight: 700;
31
32
 
32
- .bmpui-label {
33
- display: block;
34
- font-family: var(--fontBold) !important;
35
- font-size: 16px;
36
- line-height: 19px;
37
- align-items: center;
38
- text-align: center;
39
- color: #ffffff;
40
- }
33
+ .bmpui-label {
34
+ display: block;
35
+ font-family: var(--fontBold) !important;
36
+ font-size: 14px;
37
+ line-height: 16.8px;
38
+ align-items: center;
39
+ text-align: center;
40
+ color: #ffffff;
41
41
  }
42
42
  }