@npo/player 1.9.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 (233) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/LICENSE +15 -0
  3. package/README.md +281 -0
  4. package/lib/js/ads/ster.d.ts +4 -0
  5. package/lib/js/ads/ster.js +159 -0
  6. package/lib/js/ads/ster.js.map +1 -0
  7. package/lib/js/ads/ster.test.d.ts +1 -0
  8. package/lib/js/ads/ster.test.js +91 -0
  9. package/lib/js/ads/ster.test.js.map +1 -0
  10. package/lib/js/api/getstreamobject.d.ts +3 -0
  11. package/lib/js/api/getstreamobject.js +19 -0
  12. package/lib/js/api/getstreamobject.js.map +1 -0
  13. package/lib/js/cdnproviders.d.ts +1 -0
  14. package/lib/js/cdnproviders.js +13 -0
  15. package/lib/js/cdnproviders.js.map +1 -0
  16. package/lib/js/checks/safari.d.ts +1 -0
  17. package/lib/js/checks/safari.js +10 -0
  18. package/lib/js/checks/safari.js.map +1 -0
  19. package/lib/js/checks/safari.test.d.ts +1 -0
  20. package/lib/js/checks/safari.test.js +21 -0
  21. package/lib/js/checks/safari.test.js.map +1 -0
  22. package/lib/js/drm/verifydrm.d.ts +4 -0
  23. package/lib/js/drm/verifydrm.js +38 -0
  24. package/lib/js/drm/verifydrm.js.map +1 -0
  25. package/lib/js/drm/verifydrm.test.d.ts +1 -0
  26. package/lib/js/drm/verifydrm.test.js +18 -0
  27. package/lib/js/drm/verifydrm.test.js.map +1 -0
  28. package/lib/js/fragments/setfragments.d.ts +3 -0
  29. package/lib/js/fragments/setfragments.js +68 -0
  30. package/lib/js/fragments/setfragments.js.map +1 -0
  31. package/lib/js/playeractions/customerrors.test.d.ts +1 -0
  32. package/lib/js/playeractions/customerrors.test.js +52 -0
  33. package/lib/js/playeractions/customerrors.test.js.map +1 -0
  34. package/lib/js/playeractions/handlers/customerrors.d.ts +50 -0
  35. package/lib/js/playeractions/handlers/customerrors.js +154 -0
  36. package/lib/js/playeractions/handlers/customerrors.js.map +1 -0
  37. package/lib/js/playeractions/handlers/error.d.ts +3 -0
  38. package/lib/js/playeractions/handlers/error.js +23 -0
  39. package/lib/js/playeractions/handlers/error.js.map +1 -0
  40. package/lib/js/playeractions/handlers/error.test.d.ts +1 -0
  41. package/lib/js/playeractions/handlers/error.test.js +45 -0
  42. package/lib/js/playeractions/handlers/error.test.js.map +1 -0
  43. package/lib/js/playeractions/handlers/handleoffsets.d.ts +6 -0
  44. package/lib/js/playeractions/handlers/handleoffsets.js +71 -0
  45. package/lib/js/playeractions/handlers/handleoffsets.js.map +1 -0
  46. package/lib/js/playeractions/handlers/handleoffsets.test.d.ts +1 -0
  47. package/lib/js/playeractions/handlers/handleoffsets.test.js +50 -0
  48. package/lib/js/playeractions/handlers/handleoffsets.test.js.map +1 -0
  49. package/lib/js/playeractions/handlers/resolvekeypress.d.ts +3 -0
  50. package/lib/js/playeractions/handlers/resolvekeypress.js +55 -0
  51. package/lib/js/playeractions/handlers/resolvekeypress.js.map +1 -0
  52. package/lib/js/playeractions/playeractions.d.ts +3 -0
  53. package/lib/js/playeractions/playeractions.js +4 -0
  54. package/lib/js/playeractions/playeractions.js.map +1 -0
  55. package/lib/js/tracking/handlers/eventbinding.d.ts +10 -0
  56. package/lib/js/tracking/handlers/eventbinding.js +86 -0
  57. package/lib/js/tracking/handlers/eventbinding.js.map +1 -0
  58. package/lib/js/tracking/handlers/eventlogging.d.ts +11 -0
  59. package/lib/js/tracking/handlers/eventlogging.js +42 -0
  60. package/lib/js/tracking/handlers/eventlogging.js.map +1 -0
  61. package/lib/js/tracking/handlers/playertrackerinit.d.ts +13 -0
  62. package/lib/js/tracking/handlers/playertrackerinit.js +29 -0
  63. package/lib/js/tracking/handlers/playertrackerinit.js.map +1 -0
  64. package/lib/js/tracking/handlers/playertrackerstart.d.ts +8 -0
  65. package/lib/js/tracking/handlers/playertrackerstart.js +29 -0
  66. package/lib/js/tracking/handlers/playertrackerstart.js.map +1 -0
  67. package/lib/js/tracking/playertracker.d.ts +4 -0
  68. package/lib/js/tracking/playertracker.js +10 -0
  69. package/lib/js/tracking/playertracker.js.map +1 -0
  70. package/lib/js/ui/components/adbutton.d.ts +7 -0
  71. package/lib/js/ui/components/adbutton.js +21 -0
  72. package/lib/js/ui/components/adbutton.js.map +1 -0
  73. package/lib/js/ui/components/adlabel.d.ts +7 -0
  74. package/lib/js/ui/components/adlabel.js +17 -0
  75. package/lib/js/ui/components/adlabel.js.map +1 -0
  76. package/lib/js/ui/components/buttons.d.ts +30 -0
  77. package/lib/js/ui/components/buttons.js +89 -0
  78. package/lib/js/ui/components/buttons.js.map +1 -0
  79. package/lib/js/ui/components/controlbar.d.ts +3 -0
  80. package/lib/js/ui/components/controlbar.js +47 -0
  81. package/lib/js/ui/components/controlbar.js.map +1 -0
  82. package/lib/js/ui/components/ctabar.d.ts +9 -0
  83. package/lib/js/ui/components/ctabar.js +41 -0
  84. package/lib/js/ui/components/ctabar.js.map +1 -0
  85. package/lib/js/ui/components/nativemobile/buttons.d.ts +13 -0
  86. package/lib/js/ui/components/nativemobile/buttons.js +43 -0
  87. package/lib/js/ui/components/nativemobile/buttons.js.map +1 -0
  88. package/lib/js/ui/components/nativemobile/controlbar.d.ts +2 -0
  89. package/lib/js/ui/components/nativemobile/controlbar.js +23 -0
  90. package/lib/js/ui/components/nativemobile/controlbar.js.map +1 -0
  91. package/lib/js/ui/components/nativemobile/ctabar.d.ts +10 -0
  92. package/lib/js/ui/components/nativemobile/ctabar.js +12 -0
  93. package/lib/js/ui/components/nativemobile/ctabar.js.map +1 -0
  94. package/lib/js/ui/components/nativemobile/playnext.d.ts +10 -0
  95. package/lib/js/ui/components/nativemobile/playnext.js +16 -0
  96. package/lib/js/ui/components/nativemobile/playnext.js.map +1 -0
  97. package/lib/js/ui/components/nativemobile/topbar.d.ts +3 -0
  98. package/lib/js/ui/components/nativemobile/topbar.js +21 -0
  99. package/lib/js/ui/components/nativemobile/topbar.js.map +1 -0
  100. package/lib/js/ui/components/playnext.d.ts +11 -0
  101. package/lib/js/ui/components/playnext.js +11 -0
  102. package/lib/js/ui/components/playnext.js.map +1 -0
  103. package/lib/js/ui/components/settingspanel.d.ts +4 -0
  104. package/lib/js/ui/components/settingspanel.js +130 -0
  105. package/lib/js/ui/components/settingspanel.js.map +1 -0
  106. package/lib/js/ui/components/shared/playnextscreen.d.ts +2 -0
  107. package/lib/js/ui/components/shared/playnextscreen.js +18 -0
  108. package/lib/js/ui/components/shared/playnextscreen.js.map +1 -0
  109. package/lib/js/ui/components/titlebar.d.ts +3 -0
  110. package/lib/js/ui/components/titlebar.js +9 -0
  111. package/lib/js/ui/components/titlebar.js.map +1 -0
  112. package/lib/js/ui/components/topbar.d.ts +2 -0
  113. package/lib/js/ui/components/topbar.js +19 -0
  114. package/lib/js/ui/components/topbar.js.map +1 -0
  115. package/lib/js/ui/handlers/listboxhandlers.d.ts +5 -0
  116. package/lib/js/ui/handlers/listboxhandlers.js +41 -0
  117. package/lib/js/ui/handlers/listboxhandlers.js.map +1 -0
  118. package/lib/js/ui/handlers/nicamhandler.d.ts +2 -0
  119. package/lib/js/ui/handlers/nicamhandler.js +32 -0
  120. package/lib/js/ui/handlers/nicamhandler.js.map +1 -0
  121. package/lib/js/ui/handlers/nicamhandler.test.d.ts +1 -0
  122. package/lib/js/ui/handlers/nicamhandler.test.js +34 -0
  123. package/lib/js/ui/handlers/nicamhandler.test.js.map +1 -0
  124. package/lib/js/ui/handlers/playnexthandlers.d.ts +0 -0
  125. package/lib/js/ui/handlers/playnexthandlers.js +2 -0
  126. package/lib/js/ui/handlers/playnexthandlers.js.map +1 -0
  127. package/lib/js/ui/handlers/timecontrolhandlers.d.ts +3 -0
  128. package/lib/js/ui/handlers/timecontrolhandlers.js +23 -0
  129. package/lib/js/ui/handlers/timecontrolhandlers.js.map +1 -0
  130. package/lib/js/ui/nativemobileui.d.ts +6 -0
  131. package/lib/js/ui/nativemobileui.js +49 -0
  132. package/lib/js/ui/nativemobileui.js.map +1 -0
  133. package/lib/js/ui/uicontainer.d.ts +3 -0
  134. package/lib/js/ui/uicontainer.js +61 -0
  135. package/lib/js/ui/uicontainer.js.map +1 -0
  136. package/lib/js/utilities/localizationconfig.d.ts +6 -0
  137. package/lib/js/utilities/localizationconfig.js +8 -0
  138. package/lib/js/utilities/localizationconfig.js.map +1 -0
  139. package/lib/js/utilities/printversion.d.ts +1 -0
  140. package/lib/js/utilities/printversion.js +28 -0
  141. package/lib/js/utilities/printversion.js.map +1 -0
  142. package/lib/js/utilities/utilities.d.ts +60 -0
  143. package/lib/js/utilities/utilities.js +110 -0
  144. package/lib/js/utilities/utilities.js.map +1 -0
  145. package/lib/lang/nl.json +72 -0
  146. package/lib/npoplayer.d.ts +45 -0
  147. package/lib/npoplayer.js +518 -0
  148. package/lib/npoplayer.js.map +1 -0
  149. package/lib/npoplayer.test.d.ts +1 -0
  150. package/lib/npoplayer.test.js +12 -0
  151. package/lib/npoplayer.test.js.map +1 -0
  152. package/lib/package.json +88 -0
  153. package/lib/src/js/ads/ster.d.ts +4 -0
  154. package/lib/src/js/ads/ster.test.d.ts +1 -0
  155. package/lib/src/js/api/getstreamobject.d.ts +3 -0
  156. package/lib/src/js/cdnproviders.d.ts +1 -0
  157. package/lib/src/js/checks/safari.d.ts +1 -0
  158. package/lib/src/js/checks/safari.test.d.ts +1 -0
  159. package/lib/src/js/drm/verifydrm.d.ts +4 -0
  160. package/lib/src/js/drm/verifydrm.test.d.ts +1 -0
  161. package/lib/src/js/fragments/setfragments.d.ts +3 -0
  162. package/lib/src/js/playeractions/customerrors.test.d.ts +1 -0
  163. package/lib/src/js/playeractions/handlers/customerrors.d.ts +50 -0
  164. package/lib/src/js/playeractions/handlers/error.d.ts +3 -0
  165. package/lib/src/js/playeractions/handlers/error.test.d.ts +1 -0
  166. package/lib/src/js/playeractions/handlers/handleoffsets.d.ts +6 -0
  167. package/lib/src/js/playeractions/handlers/handleoffsets.test.d.ts +1 -0
  168. package/lib/src/js/playeractions/handlers/resolvekeypress.d.ts +3 -0
  169. package/lib/src/js/playeractions/playeractions.d.ts +3 -0
  170. package/lib/src/js/tracking/handlers/eventbinding.d.ts +10 -0
  171. package/lib/src/js/tracking/handlers/eventlogging.d.ts +11 -0
  172. package/lib/src/js/tracking/handlers/playertrackerinit.d.ts +13 -0
  173. package/lib/src/js/tracking/handlers/playertrackerstart.d.ts +8 -0
  174. package/lib/src/js/tracking/playertracker.d.ts +4 -0
  175. package/lib/src/js/ui/components/adbutton.d.ts +7 -0
  176. package/lib/src/js/ui/components/adlabel.d.ts +7 -0
  177. package/lib/src/js/ui/components/buttons.d.ts +30 -0
  178. package/lib/src/js/ui/components/controlbar.d.ts +3 -0
  179. package/lib/src/js/ui/components/ctabar.d.ts +9 -0
  180. package/lib/src/js/ui/components/nativemobile/buttons.d.ts +13 -0
  181. package/lib/src/js/ui/components/nativemobile/controlbar.d.ts +2 -0
  182. package/lib/src/js/ui/components/nativemobile/ctabar.d.ts +10 -0
  183. package/lib/src/js/ui/components/nativemobile/playnext.d.ts +10 -0
  184. package/lib/src/js/ui/components/nativemobile/topbar.d.ts +3 -0
  185. package/lib/src/js/ui/components/playnext.d.ts +11 -0
  186. package/lib/src/js/ui/components/settingspanel.d.ts +4 -0
  187. package/lib/src/js/ui/components/shared/playnextscreen.d.ts +2 -0
  188. package/lib/src/js/ui/components/titlebar.d.ts +3 -0
  189. package/lib/src/js/ui/components/topbar.d.ts +2 -0
  190. package/lib/src/js/ui/handlers/listboxhandlers.d.ts +5 -0
  191. package/lib/src/js/ui/handlers/nicamhandler.d.ts +2 -0
  192. package/lib/src/js/ui/handlers/nicamhandler.test.d.ts +1 -0
  193. package/lib/src/js/ui/handlers/playnexthandlers.d.ts +0 -0
  194. package/lib/src/js/ui/handlers/timecontrolhandlers.d.ts +3 -0
  195. package/lib/src/js/ui/nativemobileui.d.ts +6 -0
  196. package/lib/src/js/ui/uicontainer.d.ts +3 -0
  197. package/lib/src/js/utilities/localizationconfig.d.ts +6 -0
  198. package/lib/src/js/utilities/printversion.d.ts +1 -0
  199. package/lib/src/js/utilities/utilities.d.ts +60 -0
  200. package/lib/src/npoplayer.d.ts +45 -0
  201. package/lib/src/npoplayer.test.d.ts +1 -0
  202. package/lib/src/types/classes.d.ts +4 -0
  203. package/lib/src/types/interfaces.d.ts +105 -0
  204. package/lib/types/classes.d.ts +4 -0
  205. package/lib/types/classes.js +4 -0
  206. package/lib/types/classes.js.map +1 -0
  207. package/lib/types/interfaces.d.ts +105 -0
  208. package/lib/types/interfaces.js +6 -0
  209. package/lib/types/interfaces.js.map +1 -0
  210. package/package.json +88 -0
  211. package/src/scss/components/_advert.scss +74 -0
  212. package/src/scss/components/_buffering.scss +6 -0
  213. package/src/scss/components/_container.scss +8 -0
  214. package/src/scss/components/_controlbars.scss +36 -0
  215. package/src/scss/components/_error.scss +26 -0
  216. package/src/scss/components/_fonts.scss +19 -0
  217. package/src/scss/components/_icons.scss +241 -0
  218. package/src/scss/components/_nicam.scss +61 -0
  219. package/src/scss/components/_playnext.scss +52 -0
  220. package/src/scss/components/_seekbar.scss +116 -0
  221. package/src/scss/components/_settingspanel.scss +196 -0
  222. package/src/scss/components/_subtitles.scss +32 -0
  223. package/src/scss/components/_textbuttons.scss +42 -0
  224. package/src/scss/components/_volumeslider.scss +23 -0
  225. package/src/scss/npoplayer.css +1238 -0
  226. package/src/scss/npoplayer.scss +37 -0
  227. package/src/scss/variants/_player-base.scss +64 -0
  228. package/src/scss/variants/_player-large.scss +56 -0
  229. package/src/scss/variants/_player-medium.scss +57 -0
  230. package/src/scss/variants/_player-small.scss +234 -0
  231. package/src/scss/vars/_colors.scss +24 -0
  232. package/src/scss/vars/_fonts.scss +20 -0
  233. package/src/scss/vars/_icons.scss +37 -0
@@ -0,0 +1,47 @@
1
+ import { ControlBar, Container, PlaybackTimeLabel, PlaybackTimeLabelMode, SeekBar, SeekBarLabel, PlaybackToggleButton, VolumeToggleButton, VolumeSlider, Spacer, PictureInPictureToggleButton, AirPlayToggleButton, CastToggleButton, SettingsToggleButton, FullscreenToggleButton } from 'bitmovin-player-ui';
2
+ import { airPlaySupported } from '../../../js/utilities/utilities';
3
+ export function createControlBar(npoplayer, settingsPanel, forwardButton, rewindButton) {
4
+ const seekBar = new SeekBar({ label: new SeekBarLabel() });
5
+ npoplayer.uiComponents.seekBar = seekBar;
6
+ var isPictureInPictureAvailable = function () {
7
+ return npoplayer.player?.isViewModeAvailable(npoplayer.player?.exports.ViewMode.PictureInPicture);
8
+ };
9
+ const controlbar = new ControlBar({
10
+ components: [
11
+ settingsPanel,
12
+ new Container({
13
+ components: [
14
+ new PlaybackTimeLabel({
15
+ timeLabelMode: PlaybackTimeLabelMode.CurrentTime,
16
+ hideInLivePlayback: true
17
+ }),
18
+ seekBar,
19
+ new PlaybackTimeLabel({
20
+ timeLabelMode: PlaybackTimeLabelMode.TotalTime,
21
+ cssClasses: ['text-right']
22
+ })
23
+ ],
24
+ cssClasses: ['controlbar-top']
25
+ }),
26
+ new Container({
27
+ components: [
28
+ new PlaybackToggleButton(),
29
+ new VolumeToggleButton(),
30
+ new VolumeSlider(),
31
+ rewindButton,
32
+ forwardButton,
33
+ new Spacer(),
34
+ ...(document.pictureInPictureEnabled && /^((?!chrome|android).)*safari/i.test(navigator.userAgent) ? [new PictureInPictureToggleButton()] : []),
35
+ ...(airPlaySupported() ? [new AirPlayToggleButton()] : []),
36
+ new CastToggleButton(),
37
+ new SettingsToggleButton({ settingsPanel }),
38
+ new FullscreenToggleButton()
39
+ ],
40
+ cssClasses: ['controlbar-bottom']
41
+ })
42
+ ]
43
+ });
44
+ npoplayer.uiComponents.controlbar = controlbar;
45
+ return controlbar;
46
+ }
47
+ //# sourceMappingURL=controlbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controlbar.js","sourceRoot":"","sources":["../../../../../src/js/ui/components/controlbar.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACrB,OAAO,EACP,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,MAAM,EACN,4BAA4B,EAC5B,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EAEzB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAGlE,MAAM,UAAU,gBAAgB,CAC5B,SAAoB,EACpB,aAA4B,EAC5B,aAAkB,EAClB,YAAiB;IAEjB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,YAAY,EAAE,EAAE,CAAC,CAAA;IAC1D,SAAS,CAAC,YAAY,CAAC,OAAO,GAAG,OAAO,CAAA;IAExC,IAAI,2BAA2B,GAAG;QAC9B,OAAO,SAAS,CAAC,MAAM,EAAE,mBAAmB,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACtG,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;QAC9B,UAAU,EAAE;YACR,aAAa;YACb,IAAI,SAAS,CAAC;gBACV,UAAU,EAAE;oBACR,IAAI,iBAAiB,CAAC;wBAClB,aAAa,EAAE,qBAAqB,CAAC,WAAW;wBAChD,kBAAkB,EAAE,IAAI;qBAC3B,CAAC;oBACF,OAAO;oBACP,IAAI,iBAAiB,CAAC;wBAClB,aAAa,EAAE,qBAAqB,CAAC,SAAS;wBAC9C,UAAU,EAAE,CAAC,YAAY,CAAC;qBAC7B,CAAC;iBACL;gBACD,UAAU,EAAE,CAAC,gBAAgB,CAAC;aACjC,CAAC;YACF,IAAI,SAAS,CAAC;gBACV,UAAU,EAAE;oBACR,IAAI,oBAAoB,EAAE;oBAC1B,IAAI,kBAAkB,EAAE;oBACxB,IAAI,YAAY,EAAE;oBAClB,YAAY;oBACZ,aAAa;oBACb,IAAI,MAAM,EAAE;oBACZ,GAAG,CAAC,QAAQ,CAAC,uBAAuB,IAAI,gCAAgC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,4BAA4B,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/I,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1D,IAAI,gBAAgB,EAAE;oBACtB,IAAI,oBAAoB,CAAC,EAAE,aAAa,EAAE,CAAC;oBAC3C,IAAI,sBAAsB,EAAE;iBAC/B;gBACD,UAAU,EAAE,CAAC,mBAAmB,CAAC;aACpC,CAAC;SACL;KACJ,CAAC,CAAA;IAGF,SAAS,CAAC,YAAY,CAAC,UAAU,GAAG,UAAU,CAAA;IAE9C,OAAO,UAAU,CAAA;AACrB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Button, Container, Label } from 'bitmovin-player-ui';
2
+ import type NpoPlayer from '../../../npoplayer';
3
+ import { type PlayerAPI } from 'bitmovin-player';
4
+ import { ButtonConfig } from 'bitmovin-player-ui/dist/js/framework/components/button';
5
+ import { LabelConfig } from 'bitmovin-player-ui/dist/js/framework/components/label';
6
+ export declare function createCTABar(player: PlayerAPI | null, npoplayer: NpoPlayer, variant: string): Container<{
7
+ components: (Button<ButtonConfig> | Label<LabelConfig>)[];
8
+ cssClasses: string[];
9
+ }>;
@@ -0,0 +1,41 @@
1
+ /*
2
+ * ctabar.ts
3
+ * This file contains the code for the ctabar component used to display situational "call to action" buttons in the player.
4
+ * These buttons include:
5
+ * - Watch from start button (only used in live streams)
6
+ * - Go back live button (not used in the current implementation)
7
+ * - Ad button
8
+ * - Accomodating Ad label
9
+ */
10
+ import { Container } from 'bitmovin-player-ui';
11
+ import { createGoBackLiveButton, createWatchFromStartButton } from './buttons';
12
+ import { createAdButton } from './adbutton';
13
+ import { createAdLabel } from './adlabel';
14
+ /*
15
+ * @function createCTABar
16
+ * @description This function creates the ctabar component and assembles the buttons in the correct order.
17
+ * @param {PlayerAPI} player - The player instance
18
+ * @param {NpoPlayer} npoplayer - The player instance
19
+ * @param {string} variant - The variant of the player
20
+ * @returns {Container} - The ctabar component
21
+ */
22
+ export function createCTABar(player, npoplayer, variant) {
23
+ const goBackLiveButton = createGoBackLiveButton(player);
24
+ const watchFromStartButton = createWatchFromStartButton(player, npoplayer);
25
+ let barComponents = [
26
+ watchFromStartButton,
27
+ goBackLiveButton
28
+ ];
29
+ if (variant === 'ad') {
30
+ const adLabel = createAdLabel(npoplayer);
31
+ const adButton = createAdButton(npoplayer);
32
+ barComponents.push(adLabel);
33
+ barComponents.push(adButton);
34
+ adLabel.hide();
35
+ }
36
+ return new Container({
37
+ components: barComponents,
38
+ cssClasses: ['controlbar-textbuttons']
39
+ });
40
+ }
41
+ //# sourceMappingURL=ctabar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ctabar.js","sourceRoot":"","sources":["../../../../../src/js/ui/components/ctabar.ts"],"names":[],"mappings":"AAAA;;;;;;;;EAQE;AAEF,OAAO,EAAU,SAAS,EAAS,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EACH,sBAAsB,EACtB,0BAA0B,EAC7B,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAMzC;;;;;;;EAOE;AACF,MAAM,UAAU,YAAY,CAAE,MAAwB,EAAE,SAAoB,EAAE,OAAe;IACzF,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACvD,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAE1E,IAAI,aAAa,GAAkD;QAC/D,oBAAoB;QACpB,gBAAgB;KACnB,CAAA;IACD,IAAG,OAAO,KAAK,IAAI,EAAE;QACjB,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;QACxC,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;QAC1C,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC3B,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC5B,OAAO,CAAC,IAAI,EAAE,CAAA;KACjB;IAED,OAAO,IAAI,SAAS,CAAC;QACjB,UAAU,EAAE,aAAa;QACzB,UAAU,EAAE,CAAC,wBAAwB,CAAC;KACzC,CAAC,CAAA;AACN,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { type PlayerAPI } from 'bitmovin-player';
2
+ import { Button, SettingsPanel, SettingsToggleButton } from 'bitmovin-player-ui';
3
+ export declare function createPlayNextButton(player: PlayerAPI | null): Button<{
4
+ cssClass: string;
5
+ text: string;
6
+ hidden: false;
7
+ }>;
8
+ export declare function createWatchFromStartButton(): Button<{
9
+ cssClass: string;
10
+ text: string;
11
+ hidden: true;
12
+ }>;
13
+ export declare function createSettingsButton(player: PlayerAPI | null, settingsPanel: SettingsPanel): SettingsToggleButton;
@@ -0,0 +1,43 @@
1
+ import { Button, SettingsToggleButton } from 'bitmovin-player-ui';
2
+ import { sendCustomMessage } from '../../nativemobileui';
3
+ import { CustomMessages } from '../../../../types/interfaces';
4
+ export function createPlayNextButton(player) {
5
+ const playNextButton = new Button({
6
+ cssClass: 'ui-hugeplaynextbacktogglebutton ui-playNextButton bmpui-ui-button',
7
+ text: 'De volgende aflevering wordt zo afgespeeld...',
8
+ hidden: false
9
+ });
10
+ if (player != null) {
11
+ playNextButton.onClick.subscribe(() => {
12
+ const result = sendCustomMessage(CustomMessages.DO_PLAY_NEXT);
13
+ if (result.defaultActionRequired === true) {
14
+ console.log('do something');
15
+ }
16
+ else {
17
+ console.log('do something else');
18
+ }
19
+ });
20
+ }
21
+ return playNextButton;
22
+ }
23
+ export function createWatchFromStartButton() {
24
+ return new Button({
25
+ cssClass: 'ui-textbutton ui-watchfromstartbutton bmpui-ui-button',
26
+ text: 'Kijk vanaf het begin',
27
+ hidden: true
28
+ });
29
+ }
30
+ export function createSettingsButton(player, settingsPanel) {
31
+ const customSettingsToggleButton = new SettingsToggleButton({ settingsPanel });
32
+ if (player != null) {
33
+ customSettingsToggleButton.onToggleOn.subscribe(() => {
34
+ const result = sendCustomMessage(CustomMessages.TOGGLE_SETTINGS_PANEL);
35
+ if (result.defaultActionRequired === false) {
36
+ settingsPanel.hide();
37
+ customSettingsToggleButton.off();
38
+ }
39
+ });
40
+ }
41
+ return customSettingsToggleButton;
42
+ }
43
+ //# sourceMappingURL=buttons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buttons.js","sourceRoot":"","sources":["../../../../../../src/js/ui/components/nativemobile/buttons.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAiB,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAA8B,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE1F,MAAM,UAAU,oBAAoB,CAChC,MAAwB;IAExB,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC;QAC9B,QAAQ,EACJ,mEAAmE;QACvE,IAAI,EAAE,+CAA+C;QACrD,MAAM,EAAE,KAAK;KAChB,CAAC,CAAA;IAEF,IAAI,MAAM,IAAI,IAAI,EAAE;QAChB,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;YAClC,MAAM,MAAM,GAA+B,iBAAiB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;YACzF,IAAI,MAAM,CAAC,qBAAqB,KAAK,IAAI,EAAE;gBACvC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;aAC9B;iBAAM;gBACH,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;aACnC;QACL,CAAC,CAAC,CAAA;KACL;IAED,OAAO,cAAc,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,0BAA0B;IACtC,OAAO,IAAI,MAAM,CAAC;QACd,QAAQ,EAAE,uDAAuD;QACjE,IAAI,EAAE,sBAAsB;QAC5B,MAAM,EAAE,IAAI;KACf,CAAC,CAAA;AACN,CAAC;AAED,MAAM,UAAU,oBAAoB,CAChC,MAAwB,EACxB,aAA4B;IAE5B,MAAM,0BAA0B,GAAG,IAAI,oBAAoB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAA;IAE9E,IAAI,MAAM,IAAI,IAAI,EAAE;QAChB,0BAA0B,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE;YACjD,MAAM,MAAM,GAA+B,iBAAiB,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAA;YAClG,IAAI,MAAM,CAAC,qBAAqB,KAAK,KAAK,EAAE;gBACxC,aAAa,CAAC,IAAI,EAAE,CAAA;gBACpB,0BAA0B,CAAC,GAAG,EAAE,CAAA;aACnC;QACL,CAAC,CAAC,CAAA;KACL;IAED,OAAO,0BAA0B,CAAC;AACtC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { ControlBar, type SettingsPanel } from 'bitmovin-player-ui';
2
+ export declare function createControlBar(settingsPanel: SettingsPanel): ControlBar;
@@ -0,0 +1,23 @@
1
+ import { ControlBar, Container, PlaybackTimeLabel, PlaybackTimeLabelMode, SeekBar, SeekBarLabel } from 'bitmovin-player-ui';
2
+ export function createControlBar(settingsPanel) {
3
+ return new ControlBar({
4
+ components: [
5
+ settingsPanel,
6
+ new Container({
7
+ components: [
8
+ new PlaybackTimeLabel({
9
+ timeLabelMode: PlaybackTimeLabelMode.CurrentTime,
10
+ hideInLivePlayback: true
11
+ }),
12
+ new SeekBar({ label: new SeekBarLabel() }),
13
+ new PlaybackTimeLabel({
14
+ timeLabelMode: PlaybackTimeLabelMode.TotalTime,
15
+ cssClasses: ['text-right']
16
+ })
17
+ ],
18
+ cssClasses: ['controlbar-top']
19
+ }),
20
+ ]
21
+ });
22
+ }
23
+ //# sourceMappingURL=controlbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controlbar.js","sourceRoot":"","sources":["../../../../../../src/js/ui/components/nativemobile/controlbar.ts"],"names":[],"mappings":"AACA,OAAO,EACH,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACrB,OAAO,EACP,YAAY,EAEf,MAAM,oBAAoB,CAAA;AAE3B,MAAM,UAAU,gBAAgB,CAC5B,aAA4B;IAE5B,OAAO,IAAI,UAAU,CAAC;QAClB,UAAU,EAAE;YACR,aAAa;YACb,IAAI,SAAS,CAAC;gBACV,UAAU,EAAE;oBACR,IAAI,iBAAiB,CAAC;wBAClB,aAAa,EAAE,qBAAqB,CAAC,WAAW;wBAChD,kBAAkB,EAAE,IAAI;qBAC3B,CAAC;oBACF,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,YAAY,EAAE,EAAE,CAAC;oBAC1C,IAAI,iBAAiB,CAAC;wBAClB,aAAa,EAAE,qBAAqB,CAAC,SAAS;wBAC9C,UAAU,EAAE,CAAC,YAAY,CAAC;qBAC7B,CAAC;iBACL;gBACD,UAAU,EAAE,CAAC,gBAAgB,CAAC;aACjC,CAAC;SACL;KACJ,CAAC,CAAA;AACN,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Container } from 'bitmovin-player-ui';
2
+ import { type PlayerAPI } from 'bitmovin-player';
3
+ export declare function createCTABar(player: PlayerAPI | null): Container<{
4
+ components: import("bitmovin-player-ui").Button<{
5
+ cssClass: string;
6
+ text: string;
7
+ hidden: true;
8
+ }>[];
9
+ cssClasses: string[];
10
+ }>;
@@ -0,0 +1,12 @@
1
+ import { Container } from 'bitmovin-player-ui';
2
+ import { createWatchFromStartButton } from '../nativemobile/buttons';
3
+ import { createGoBackLiveButton } from '../buttons';
4
+ export function createCTABar(player) {
5
+ const goBackLiveButton = createGoBackLiveButton(player);
6
+ const watchFromStartButton = createWatchFromStartButton();
7
+ return new Container({
8
+ components: [watchFromStartButton, goBackLiveButton],
9
+ cssClasses: ['controlbar-textbuttons']
10
+ });
11
+ }
12
+ //# sourceMappingURL=ctabar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ctabar.js","sourceRoot":"","sources":["../../../../../../src/js/ui/components/nativemobile/ctabar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAGnD,MAAM,UAAU,YAAY,CAAE,MAAwB;IAClD,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACvD,MAAM,oBAAoB,GAAG,0BAA0B,EAAE,CAAA;IAEzD,OAAO,IAAI,SAAS,CAAC;QACjB,UAAU,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;QACpD,UAAU,EAAE,CAAC,wBAAwB,CAAC;KACzC,CAAC,CAAA;AACN,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Container } from 'bitmovin-player-ui';
2
+ import { type PlayerAPI } from 'bitmovin-player';
3
+ export declare function createPlayNextScreen(player: PlayerAPI | null): Container<{
4
+ components: import("bitmovin-player-ui").Button<{
5
+ cssClass: string;
6
+ text: string;
7
+ hidden: false;
8
+ }>[];
9
+ cssClasses: string[];
10
+ }>;
@@ -0,0 +1,16 @@
1
+ import { Container } from 'bitmovin-player-ui';
2
+ import { createPlayNextButton } from './buttons';
3
+ import { showPlayNextScreen } from '../shared/playnextscreen';
4
+ export function createPlayNextScreen(player) {
5
+ const playNextButton = createPlayNextButton(player);
6
+ if (window.bitmovin.customMessageHandler) {
7
+ window.bitmovin.customMessageHandler.on('showPlayNextScreen', () => {
8
+ showPlayNextScreen(window.bitmovin.customMessageHandler.sendAsynchronous('doPlayNext'));
9
+ });
10
+ }
11
+ return new Container({
12
+ components: [playNextButton],
13
+ cssClasses: ['overlay-playnext']
14
+ });
15
+ }
16
+ //# sourceMappingURL=playnext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playnext.js","sourceRoot":"","sources":["../../../../../../src/js/ui/components/nativemobile/playnext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAK7D,MAAM,UAAU,oBAAoB,CAChC,MAAwB;IACxB,MAAM,cAAc,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;IAEnD,IAAI,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE;QACtC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAC/D,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5F,CAAC,CAAC,CAAA;KACL;IAED,OAAO,IAAI,SAAS,CAAC;QACjB,UAAU,EAAE,CAAC,cAAc,CAAC;QAC5B,UAAU,EAAE,CAAC,kBAAkB,CAAC;KACnC,CAAC,CAAA;AACN,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type SettingsPanel, TitleBar } from 'bitmovin-player-ui';
2
+ import { type PlayerAPI } from 'bitmovin-player';
3
+ export declare function createTopBar(player: PlayerAPI | null, settingsPanel: SettingsPanel): TitleBar;
@@ -0,0 +1,21 @@
1
+ import { Container, TitleBar, PictureInPictureToggleButton, AirPlayToggleButton, CastToggleButton, FullscreenToggleButton, VolumeToggleButton } from 'bitmovin-player-ui';
2
+ import { createSettingsButton } from './buttons';
3
+ export function createTopBar(player, settingsPanel) {
4
+ return new TitleBar({
5
+ components: [
6
+ new Container({
7
+ components: [
8
+ new CastToggleButton(),
9
+ new AirPlayToggleButton(),
10
+ createSettingsButton(player, settingsPanel),
11
+ new PictureInPictureToggleButton(),
12
+ new FullscreenToggleButton(),
13
+ new VolumeToggleButton()
14
+ ],
15
+ cssClasses: ['controlbar-top', 'controlbar-small']
16
+ })
17
+ ],
18
+ cssClasses: ['titlebar-small']
19
+ });
20
+ }
21
+ //# sourceMappingURL=topbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"topbar.js","sourceRoot":"","sources":["../../../../../../src/js/ui/components/nativemobile/topbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,SAAS,EACT,QAAQ,EACR,4BAA4B,EAC5B,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EACrB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAGhD,MAAM,UAAU,YAAY,CAAE,MAAwB,EAAE,aAA4B;IAChF,OAAO,IAAI,QAAQ,CAAC;QAChB,UAAU,EAAE;YACR,IAAI,SAAS,CAAC;gBACV,UAAU,EAAE;oBACR,IAAI,gBAAgB,EAAE;oBACtB,IAAI,mBAAmB,EAAE;oBACzB,oBAAoB,CAAC,MAAM,EAAE,aAAa,CAAC;oBAC3C,IAAI,4BAA4B,EAAE;oBAClC,IAAI,sBAAsB,EAAE;oBAC5B,IAAI,kBAAkB,EAAE;iBAC3B;gBACD,UAAU,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;aACrD,CAAC;SACL;QACD,UAAU,EAAE,CAAC,gBAAgB,CAAC;KACjC,CAAC,CAAA;AACN,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Container } from 'bitmovin-player-ui';
2
+ import { type PlayerAPI } from 'bitmovin-player';
3
+ import type NpoPlayer from '../../../npoplayer';
4
+ export declare function createPlayNextScreen(player: PlayerAPI | null, npoplayer: NpoPlayer): Container<{
5
+ components: import("bitmovin-player-ui").Button<{
6
+ cssClass: string;
7
+ text: string;
8
+ hidden: false;
9
+ }>[];
10
+ cssClasses: string[];
11
+ }>;
@@ -0,0 +1,11 @@
1
+ /* eslint-disable @typescript-eslint/explicit-function-return-type */
2
+ import { Container } from 'bitmovin-player-ui';
3
+ import { createPlayNextButton } from '../components/buttons';
4
+ export function createPlayNextScreen(player, npoplayer) {
5
+ const playNextButton = createPlayNextButton(player, npoplayer);
6
+ return new Container({
7
+ components: [playNextButton],
8
+ cssClasses: ['overlay-playnext']
9
+ });
10
+ }
11
+ //# sourceMappingURL=playnext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playnext.js","sourceRoot":"","sources":["../../../../../src/js/ui/components/playnext.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAI5D,MAAM,UAAU,oBAAoB,CAChC,MAAwB,EACxB,SAAoB;IAEpB,MAAM,cAAc,GAAG,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAE9D,OAAO,IAAI,SAAS,CAAC;QACjB,UAAU,EAAE,CAAC,cAAc,CAAC;QAC5B,UAAU,EAAE,CAAC,kBAAkB,CAAC;KACnC,CAAC,CAAA;AACN,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { SettingsPanel } from 'bitmovin-player-ui';
2
+ import type NpoPlayer from '../../../npoplayer';
3
+ import { PlayerAPI } from 'bitmovin-player';
4
+ export declare function createSettingsPanel(npoplayer: NpoPlayer | PlayerAPI): SettingsPanel;
@@ -0,0 +1,130 @@
1
+ import { SubtitleListBox, ListBox, SettingsPanel, SettingsPanelPage, SettingsPanelPageOpenButton, SettingsPanelPageBackButton, Button, Label, SettingsPanelItem, AudioQualitySelectBox, AudioTrackSelectBox } from 'bitmovin-player-ui';
2
+ import { localize } from '../../utilities/utilities';
3
+ import { handleSubtitleListBoxItemSelected, handleSpeedListBoxItemSelected, handleQualityListBoxItemSelected } from '../handlers/listboxhandlers';
4
+ export function createSettingsPanel(npoplayer) {
5
+ const player = ('player' in npoplayer) ? npoplayer.player : npoplayer;
6
+ const subtitleListBox = new SubtitleListBox();
7
+ const speedListBox = new ListBox({
8
+ items: [
9
+ { key: '0.25', label: '0.25x' },
10
+ { key: '0.5', label: '0.5x' },
11
+ { key: '1', label: '1x' },
12
+ { key: '1.5', label: '1.5x' },
13
+ { key: '2', label: '2x' }
14
+ ]
15
+ });
16
+ const qualityListBox = new ListBox();
17
+ const settingsLabel = localize('settings');
18
+ const videoqualityLabel = localize('settings.video.quality');
19
+ const speedLabel = localize('speed');
20
+ const subtitlesLabel = localize('settings.subtitles');
21
+ const audioqualityLabel = localize('settings.audio.quality');
22
+ const audiotrackLabel = localize('settings.audio.track');
23
+ const autoLabel = localize('auto');
24
+ //define class strings to avoid duplication
25
+ const settingTriggerClass = 'settings-trigger';
26
+ const settingsBackButtonClass = 'settings-back-button';
27
+ const listboxPanelClass = 'listbox-panel';
28
+ const listboxPagerButtonClass = 'listbox-pager-button';
29
+ const subtitlePanelPage = new SettingsPanelPage({
30
+ components: [
31
+ new Button({ cssClass: settingTriggerClass }),
32
+ new SettingsPanelItem('', subtitleListBox)
33
+ ],
34
+ cssClasses: [listboxPanelClass]
35
+ });
36
+ const speedPanelPage = new SettingsPanelPage({
37
+ components: [
38
+ new Button({ cssClass: settingTriggerClass }),
39
+ new SettingsPanelItem('', speedListBox)
40
+ ],
41
+ cssClasses: [listboxPanelClass]
42
+ });
43
+ const qualityPanelPage = new SettingsPanelPage({
44
+ components: [
45
+ new Button({ cssClass: settingTriggerClass }),
46
+ new SettingsPanelItem('', qualityListBox)
47
+ ],
48
+ cssClasses: [listboxPanelClass]
49
+ });
50
+ const settingsTriggerButton = new Button({ cssClass: settingTriggerClass });
51
+ const mainSettingsPage = new SettingsPanelPage({
52
+ components: [
53
+ settingsTriggerButton,
54
+ new Label({ text: settingsLabel, cssClass: 'setting-header' }),
55
+ new SettingsPanelItem(audioqualityLabel, new AudioQualitySelectBox()),
56
+ new SettingsPanelItem(audiotrackLabel, new AudioTrackSelectBox())
57
+ ],
58
+ cssClasses: ['main-panel']
59
+ });
60
+ mainSettingsPage.onActive.subscribeOnce(() => {
61
+ qualityListBox.addItem('auto', autoLabel);
62
+ player?.getAvailableVideoQualities().forEach(quality => {
63
+ qualityListBox.addItem(quality.id, quality.label ?? 'test');
64
+ });
65
+ qualityListBox.selectItem('auto');
66
+ });
67
+ const settingsPanel = new SettingsPanel({
68
+ components: [
69
+ mainSettingsPage,
70
+ subtitlePanelPage,
71
+ speedPanelPage,
72
+ qualityPanelPage
73
+ ],
74
+ hidden: true,
75
+ pageTransitionAnimation: false
76
+ });
77
+ const subtitleSettingsOpenButton = new SettingsPanelPageOpenButton({
78
+ targetPage: subtitlePanelPage,
79
+ container: settingsPanel,
80
+ text: 'Nederlands',
81
+ cssClasses: [listboxPagerButtonClass]
82
+ });
83
+ const speedSettingsOpenButton = new SettingsPanelPageOpenButton({
84
+ targetPage: speedPanelPage,
85
+ container: settingsPanel,
86
+ text: '1x',
87
+ cssClasses: [listboxPagerButtonClass]
88
+ });
89
+ const qualitySettingsOpenButton = new SettingsPanelPageOpenButton({
90
+ targetPage: qualityPanelPage,
91
+ container: settingsPanel,
92
+ text: 'automatisch',
93
+ cssClasses: [listboxPagerButtonClass]
94
+ });
95
+ const subtitlesPanelItem = new SettingsPanelItem(subtitlesLabel, subtitleSettingsOpenButton, { hidden: false });
96
+ const speedPanelItem = new SettingsPanelItem(speedLabel, speedSettingsOpenButton);
97
+ const qualityPanelItem = new SettingsPanelItem(videoqualityLabel, qualitySettingsOpenButton, { hidden: false });
98
+ mainSettingsPage.addComponent(subtitlesPanelItem);
99
+ mainSettingsPage.addComponent(speedPanelItem);
100
+ mainSettingsPage.addComponent(qualityPanelItem);
101
+ subtitlePanelPage.addComponent(new SettingsPanelPageBackButton({
102
+ targetPage: mainSettingsPage,
103
+ container: settingsPanel,
104
+ text: 'Ondertiteling',
105
+ cssClasses: [settingsBackButtonClass]
106
+ }));
107
+ speedPanelPage.addComponent(new SettingsPanelPageBackButton({
108
+ targetPage: mainSettingsPage,
109
+ container: settingsPanel,
110
+ text: 'Snelheid',
111
+ cssClasses: [settingsBackButtonClass]
112
+ }));
113
+ qualityPanelPage.addComponent(new SettingsPanelPageBackButton({
114
+ targetPage: mainSettingsPage,
115
+ container: settingsPanel,
116
+ text: 'Kwaliteit',
117
+ cssClasses: [settingsBackButtonClass]
118
+ }));
119
+ if (('uiComponents' in npoplayer)) {
120
+ npoplayer.uiComponents.subtitlesButton = subtitlesPanelItem;
121
+ npoplayer.uiComponents.qualityButton = qualityPanelItem;
122
+ }
123
+ subtitleListBox.onItemSelected.subscribe(handleSubtitleListBoxItemSelected(subtitleSettingsOpenButton, settingsPanel, mainSettingsPage));
124
+ speedListBox.selectItem('1');
125
+ speedListBox.onItemSelected.subscribe(handleSpeedListBoxItemSelected(player, speedSettingsOpenButton, settingsPanel, mainSettingsPage));
126
+ qualityListBox.selectItem('auto');
127
+ qualityListBox.onItemSelected.subscribe(handleQualityListBoxItemSelected(player, qualitySettingsOpenButton, settingsPanel, mainSettingsPage));
128
+ return settingsPanel;
129
+ }
130
+ //# sourceMappingURL=settingspanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settingspanel.js","sourceRoot":"","sources":["../../../../../src/js/ui/components/settingspanel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function showPlayNextScreen(playNextFunction: () => void): void;
2
+ export declare function hidePlayNextScreen(): void;
@@ -0,0 +1,18 @@
1
+ export function showPlayNextScreen(playNextFunction) {
2
+ const playnextOverlay = document.querySelector('.bmpui-overlay-playnext');
3
+ document
4
+ .querySelector('.bmpui-overlay-playnext .bmpui-container-wrapper .bmpui-ui-hugeplaynextbacktogglebutton')
5
+ ?.insertAdjacentHTML('beforeend', '<svg class="playnextcountdown" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37" class="ui-circular-chart"><path shape-rendering="geometricPrecision" class="ui-circle-bg" fill="none" stroke="white" stroke-width="2" opacity="50%" d="M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831" /><path shape-rendering="geometricPrecision" class="ui-circle" fill="none" stroke="white" stroke-width="2" stroke-dasharray="100, 100" d="M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831" /></svg> ');
6
+ playnextOverlay?.classList.add('show');
7
+ window.setTimeout(() => {
8
+ // check classlist to see if the overlay is not already cleared
9
+ if (playnextOverlay?.classList.contains('show') ?? false) {
10
+ playNextFunction();
11
+ }
12
+ }, 15000);
13
+ }
14
+ export function hidePlayNextScreen() {
15
+ document.querySelector('.playnextcountdown')?.remove();
16
+ document.querySelector('.bmpui-overlay-playnext')?.classList.remove('show');
17
+ }
18
+ //# sourceMappingURL=playnextscreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playnextscreen.js","sourceRoot":"","sources":["../../../../../../src/js/ui/components/shared/playnextscreen.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAE,gBAA4B;IAC5D,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAC1C,yBAAyB,CAC5B,CAAA;IACD,QAAQ;SACH,aAAa,CACV,yFAAyF,CAC5F;QACD,EAAE,kBAAkB,CAChB,WAAW,EACX,giBAAgiB,CACniB,CAAA;IACL,eAAe,EAAE,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACtC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;QACnB,+DAA+D;QAC/D,IAAI,eAAe,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE;YACtD,gBAAgB,EAAE,CAAC;SACtB;IACL,CAAC,EAAE,KAAK,CAAC,CAAA;AACb,CAAC;AAED,MAAM,UAAU,kBAAkB;IAC9B,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;IACtD,QAAQ,CAAC,aAAa,CAAC,yBAAyB,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AAC/E,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { TitleBar } from 'bitmovin-player-ui';
2
+ import type NpoPlayer from '../../../npoplayer';
3
+ export declare function createTitleBar(npoplayer: NpoPlayer): TitleBar;
@@ -0,0 +1,9 @@
1
+ import { Label, TitleBar } from 'bitmovin-player-ui';
2
+ export function createTitleBar(npoplayer) {
3
+ const nicam = new Label({ text: '', cssClass: 'nicam' });
4
+ const titleBar = new TitleBar({ cssClasses: ['metadata'] });
5
+ titleBar.addComponent(nicam);
6
+ npoplayer.uiComponents.nicam = nicam;
7
+ return titleBar;
8
+ }
9
+ //# sourceMappingURL=titlebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"titlebar.js","sourceRoot":"","sources":["../../../../../src/js/ui/components/titlebar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAGpD,MAAM,UAAU,cAAc,CAAE,SAAoB;IAChD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;IACxD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAC3D,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IAC5B,SAAS,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAA;IAEpC,OAAO,QAAQ,CAAA;AACnB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { type SettingsPanel, TitleBar } from 'bitmovin-player-ui';
2
+ export declare function createTopBar(settingsPanel: SettingsPanel): TitleBar;
@@ -0,0 +1,19 @@
1
+ import { Container, TitleBar, PictureInPictureToggleButton, AirPlayToggleButton, CastToggleButton, SettingsToggleButton, FullscreenToggleButton } from 'bitmovin-player-ui';
2
+ export function createTopBar(settingsPanel) {
3
+ return new TitleBar({
4
+ components: [
5
+ new Container({
6
+ components: [
7
+ new PictureInPictureToggleButton(),
8
+ new AirPlayToggleButton(),
9
+ new CastToggleButton(),
10
+ new SettingsToggleButton({ settingsPanel }),
11
+ new FullscreenToggleButton()
12
+ ],
13
+ cssClasses: ['controlbar-top', 'controlbar-small']
14
+ })
15
+ ],
16
+ cssClasses: ['titlebar-small']
17
+ });
18
+ }
19
+ //# sourceMappingURL=topbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"topbar.js","sourceRoot":"","sources":["../../../../../src/js/ui/components/topbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,SAAS,EACT,QAAQ,EACR,4BAA4B,EAC5B,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACzB,MAAM,oBAAoB,CAAA;AAE3B,MAAM,UAAU,YAAY,CAAE,aAA4B;IACtD,OAAO,IAAI,QAAQ,CAAC;QAChB,UAAU,EAAE;YACR,IAAI,SAAS,CAAC;gBACV,UAAU,EAAE;oBACR,IAAI,4BAA4B,EAAE;oBAClC,IAAI,mBAAmB,EAAE;oBACzB,IAAI,gBAAgB,EAAE;oBACtB,IAAI,oBAAoB,CAAC,EAAE,aAAa,EAAE,CAAC;oBAC3C,IAAI,sBAAsB,EAAE;iBAC/B;gBACD,UAAU,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;aACrD,CAAC;SACL;QACD,UAAU,EAAE,CAAC,gBAAgB,CAAC;KACjC,CAAC,CAAA;AACN,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { type PlayerAPI } from 'bitmovin-player';
2
+ import { type SettingsPanel, type SettingsPanelPage, type SettingsPanelPageOpenButton } from 'bitmovin-player-ui';
3
+ export declare function handleSubtitleListBoxItemSelected(subtitleSettingsOpenButton: SettingsPanelPageOpenButton, settingsPanel: SettingsPanel, mainSettingsPage: SettingsPanelPage): (e: any) => void;
4
+ export declare function handleSpeedListBoxItemSelected(player: PlayerAPI | null, speedSettingsOpenButton: SettingsPanelPageOpenButton, settingsPanel: SettingsPanel, mainSettingsPage: SettingsPanelPage): (source: any, args: any) => void;
5
+ export declare function handleQualityListBoxItemSelected(player: PlayerAPI | null, qualitySettingsOpenButton: SettingsPanelPageOpenButton, settingsPanel: SettingsPanel, mainSettingsPage: SettingsPanelPage): (source: any, args: any) => void;
@@ -0,0 +1,41 @@
1
+ export function handleSubtitleListBoxItemSelected(subtitleSettingsOpenButton, settingsPanel, mainSettingsPage) {
2
+ return (e) => {
3
+ e.getItems().forEach((item) => {
4
+ if (item.key === e.getSelectedItem()) {
5
+ subtitleSettingsOpenButton.setText(item.label);
6
+ }
7
+ });
8
+ setTimeout(() => {
9
+ settingsPanel.setActivePage(mainSettingsPage);
10
+ }, 100);
11
+ };
12
+ }
13
+ export function handleSpeedListBoxItemSelected(player, speedSettingsOpenButton, settingsPanel, mainSettingsPage) {
14
+ return (source, args) => {
15
+ source.getItems().forEach((item) => {
16
+ if (item.key === args) {
17
+ player?.setPlaybackSpeed(parseFloat(item.key));
18
+ speedSettingsOpenButton.setText(item.label);
19
+ source.selectItem(item.key);
20
+ }
21
+ });
22
+ setTimeout(() => {
23
+ settingsPanel.setActivePage(mainSettingsPage);
24
+ }, 100);
25
+ };
26
+ }
27
+ export function handleQualityListBoxItemSelected(player, qualitySettingsOpenButton, settingsPanel, mainSettingsPage) {
28
+ return (source, args) => {
29
+ source.getItems().forEach((item) => {
30
+ if (item.key === args) {
31
+ player?.setVideoQuality(item.key);
32
+ qualitySettingsOpenButton.setText(item.label);
33
+ source.selectItem(item.key);
34
+ }
35
+ });
36
+ setTimeout(() => {
37
+ settingsPanel.setActivePage(mainSettingsPage);
38
+ }, 100);
39
+ };
40
+ }
41
+ //# sourceMappingURL=listboxhandlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listboxhandlers.js","sourceRoot":"","sources":["../../../../../src/js/ui/handlers/listboxhandlers.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,iCAAiC,CAC7C,0BAAuD,EACvD,aAA4B,EAC5B,gBAAmC;IAEnC,OAAO,CAAC,CAAM,EAAE,EAAE;QACd,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;YAC/B,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,eAAe,EAAE,EAAE;gBAClC,0BAA0B,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;aACjD;QACL,CAAC,CAAC,CAAA;QACF,UAAU,CAAC,GAAG,EAAE;YACZ,aAAa,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAA;QACjD,CAAC,EAAE,GAAG,CAAC,CAAA;IACX,CAAC,CAAA;AACL,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC1C,MAAwB,EACxB,uBAAoD,EACpD,aAA4B,EAC5B,gBAAmC;IAEnC,OAAO,CAAC,MAAW,EAAE,IAAS,EAAE,EAAE;QAC9B,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE;gBACnB,MAAM,EAAE,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;gBAC9C,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC3C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;aAC9B;QACL,CAAC,CAAC,CAAA;QACF,UAAU,CAAC,GAAG,EAAE;YACZ,aAAa,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAA;QACjD,CAAC,EAAE,GAAG,CAAC,CAAA;IACX,CAAC,CAAA;AACL,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC5C,MAAwB,EACxB,yBAAsD,EACtD,aAA4B,EAC5B,gBAAmC;IAEnC,OAAO,CAAC,MAAW,EAAE,IAAS,EAAE,EAAE;QAC9B,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE;gBACnB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBACjC,yBAAyB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC7C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;aAC9B;QACL,CAAC,CAAC,CAAA;QACF,UAAU,CAAC,GAAG,EAAE;YACZ,aAAa,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAA;QACjD,CAAC,EAAE,GAAG,CAAC,CAAA;IACX,CAAC,CAAA;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { StreamObject } from "types/interfaces";
2
+ export declare function processNicam(streamObject: StreamObject, containerId: string): void;