eb-player 2.0.19 → 2.0.21

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 (156) hide show
  1. package/dist/build/eb-player.css +9 -0
  2. package/dist/build/ebplayer.bundle.js +604 -132
  3. package/dist/build/ebplayer.bundle.js.map +1 -1
  4. package/dist/build/types/integrations/ads-manager.d.ts.map +1 -1
  5. package/dist/build/types/skin/skin-root.d.ts +8 -0
  6. package/dist/build/types/skin/skin-root.d.ts.map +1 -1
  7. package/dist/build/types/src/core/command-handler.d.ts +50 -0
  8. package/dist/build/types/src/core/command-handler.d.ts.map +1 -0
  9. package/dist/build/types/src/core/config.d.ts +187 -0
  10. package/dist/build/types/src/core/config.d.ts.map +1 -0
  11. package/dist/build/types/src/core/engine-state-sync.d.ts +38 -0
  12. package/dist/build/types/src/core/engine-state-sync.d.ts.map +1 -0
  13. package/dist/build/types/src/core/event-bus.d.ts +91 -0
  14. package/dist/build/types/src/core/event-bus.d.ts.map +1 -0
  15. package/dist/build/types/src/core/fsm.d.ts +30 -0
  16. package/dist/build/types/src/core/fsm.d.ts.map +1 -0
  17. package/dist/build/types/src/core/i18n.d.ts +51 -0
  18. package/dist/build/types/src/core/i18n.d.ts.map +1 -0
  19. package/dist/build/types/src/core/index.d.ts +23 -0
  20. package/dist/build/types/src/core/index.d.ts.map +1 -0
  21. package/dist/build/types/src/core/lifecycle.d.ts +96 -0
  22. package/dist/build/types/src/core/lifecycle.d.ts.map +1 -0
  23. package/dist/build/types/src/core/player-state.d.ts +15 -0
  24. package/dist/build/types/src/core/player-state.d.ts.map +1 -0
  25. package/dist/build/types/src/core/types.d.ts +85 -0
  26. package/dist/build/types/src/core/types.d.ts.map +1 -0
  27. package/dist/build/types/src/eb-player-standalone.d.ts +23 -0
  28. package/dist/build/types/src/eb-player-standalone.d.ts.map +1 -0
  29. package/dist/build/types/src/eb-player.d.ts +56 -0
  30. package/dist/build/types/src/eb-player.d.ts.map +1 -0
  31. package/dist/build/types/src/engines/abr/dash.d.ts +56 -0
  32. package/dist/build/types/src/engines/abr/dash.d.ts.map +1 -0
  33. package/dist/build/types/src/engines/abr/hls.d.ts +105 -0
  34. package/dist/build/types/src/engines/abr/hls.d.ts.map +1 -0
  35. package/dist/build/types/src/engines/base-engine.d.ts +72 -0
  36. package/dist/build/types/src/engines/base-engine.d.ts.map +1 -0
  37. package/dist/build/types/src/engines/cdn-loader.d.ts +20 -0
  38. package/dist/build/types/src/engines/cdn-loader.d.ts.map +1 -0
  39. package/dist/build/types/src/engines/cdn-token-manager.d.ts +137 -0
  40. package/dist/build/types/src/engines/cdn-token-manager.d.ts.map +1 -0
  41. package/dist/build/types/src/engines/dash.d.ts +95 -0
  42. package/dist/build/types/src/engines/dash.d.ts.map +1 -0
  43. package/dist/build/types/src/engines/drm.d.ts +54 -0
  44. package/dist/build/types/src/engines/drm.d.ts.map +1 -0
  45. package/dist/build/types/src/engines/hls-discontinuity-patch.d.ts +43 -0
  46. package/dist/build/types/src/engines/hls-discontinuity-patch.d.ts.map +1 -0
  47. package/dist/build/types/src/engines/hls.d.ts +53 -0
  48. package/dist/build/types/src/engines/hls.d.ts.map +1 -0
  49. package/dist/build/types/src/engines/index.d.ts +26 -0
  50. package/dist/build/types/src/engines/index.d.ts.map +1 -0
  51. package/dist/build/types/src/engines/ios/hls.d.ts +20 -0
  52. package/dist/build/types/src/engines/ios/hls.d.ts.map +1 -0
  53. package/dist/build/types/src/engines/poster/hls.d.ts +35 -0
  54. package/dist/build/types/src/engines/poster/hls.d.ts.map +1 -0
  55. package/dist/build/types/src/engines/retry/dash.d.ts +51 -0
  56. package/dist/build/types/src/engines/retry/dash.d.ts.map +1 -0
  57. package/dist/build/types/src/engines/retry/hls.d.ts +47 -0
  58. package/dist/build/types/src/engines/retry/hls.d.ts.map +1 -0
  59. package/dist/build/types/src/engines/snapshot/dash.d.ts +55 -0
  60. package/dist/build/types/src/engines/snapshot/dash.d.ts.map +1 -0
  61. package/dist/build/types/src/engines/snapshot/hls.d.ts +118 -0
  62. package/dist/build/types/src/engines/snapshot/hls.d.ts.map +1 -0
  63. package/dist/build/types/src/engines/stall-watchdog.d.ts +41 -0
  64. package/dist/build/types/src/engines/stall-watchdog.d.ts.map +1 -0
  65. package/dist/build/types/src/integrations/ads-manager.d.ts +79 -0
  66. package/dist/build/types/src/integrations/ads-manager.d.ts.map +1 -0
  67. package/dist/build/types/src/integrations/chromecast-manager.d.ts +50 -0
  68. package/dist/build/types/src/integrations/chromecast-manager.d.ts.map +1 -0
  69. package/dist/build/types/src/integrations/epg-manager.d.ts +22 -0
  70. package/dist/build/types/src/integrations/epg-manager.d.ts.map +1 -0
  71. package/dist/build/types/src/integrations/index.d.ts +7 -0
  72. package/dist/build/types/src/integrations/index.d.ts.map +1 -0
  73. package/dist/build/types/src/integrations/intro-stream-manager.d.ts +62 -0
  74. package/dist/build/types/src/integrations/intro-stream-manager.d.ts.map +1 -0
  75. package/dist/build/types/src/integrations/p2p-manager.d.ts +42 -0
  76. package/dist/build/types/src/integrations/p2p-manager.d.ts.map +1 -0
  77. package/dist/build/types/src/integrations/playlist-manager.d.ts +21 -0
  78. package/dist/build/types/src/integrations/playlist-manager.d.ts.map +1 -0
  79. package/dist/build/types/src/skin/bars/bottom-bar.d.ts +16 -0
  80. package/dist/build/types/src/skin/bars/bottom-bar.d.ts.map +1 -0
  81. package/dist/build/types/src/skin/bars/middle-bar.d.ts +16 -0
  82. package/dist/build/types/src/skin/bars/middle-bar.d.ts.map +1 -0
  83. package/dist/build/types/src/skin/bars/top-bar.d.ts +15 -0
  84. package/dist/build/types/src/skin/bars/top-bar.d.ts.map +1 -0
  85. package/dist/build/types/src/skin/base-component.d.ts +69 -0
  86. package/dist/build/types/src/skin/base-component.d.ts.map +1 -0
  87. package/dist/build/types/src/skin/brand/forja-playlist-bar.d.ts +15 -0
  88. package/dist/build/types/src/skin/brand/forja-playlist-bar.d.ts.map +1 -0
  89. package/dist/build/types/src/skin/brand/snrt-radio-carousel.d.ts +16 -0
  90. package/dist/build/types/src/skin/brand/snrt-radio-carousel.d.ts.map +1 -0
  91. package/dist/build/types/src/skin/component-registry.d.ts +16 -0
  92. package/dist/build/types/src/skin/component-registry.d.ts.map +1 -0
  93. package/dist/build/types/src/skin/controllers/auto-hide.d.ts +27 -0
  94. package/dist/build/types/src/skin/controllers/auto-hide.d.ts.map +1 -0
  95. package/dist/build/types/src/skin/controllers/keyboard.d.ts +29 -0
  96. package/dist/build/types/src/skin/controllers/keyboard.d.ts.map +1 -0
  97. package/dist/build/types/src/skin/controls/cast-button.d.ts +15 -0
  98. package/dist/build/types/src/skin/controls/cast-button.d.ts.map +1 -0
  99. package/dist/build/types/src/skin/controls/channel-name.d.ts +16 -0
  100. package/dist/build/types/src/skin/controls/channel-name.d.ts.map +1 -0
  101. package/dist/build/types/src/skin/controls/forward-button.d.ts +15 -0
  102. package/dist/build/types/src/skin/controls/forward-button.d.ts.map +1 -0
  103. package/dist/build/types/src/skin/controls/fullscreen-button.d.ts +30 -0
  104. package/dist/build/types/src/skin/controls/fullscreen-button.d.ts.map +1 -0
  105. package/dist/build/types/src/skin/controls/info-button.d.ts +10 -0
  106. package/dist/build/types/src/skin/controls/info-button.d.ts.map +1 -0
  107. package/dist/build/types/src/skin/controls/live-sync-button.d.ts +20 -0
  108. package/dist/build/types/src/skin/controls/live-sync-button.d.ts.map +1 -0
  109. package/dist/build/types/src/skin/controls/pip-button.d.ts +21 -0
  110. package/dist/build/types/src/skin/controls/pip-button.d.ts.map +1 -0
  111. package/dist/build/types/src/skin/controls/play-pause-button.d.ts +14 -0
  112. package/dist/build/types/src/skin/controls/play-pause-button.d.ts.map +1 -0
  113. package/dist/build/types/src/skin/controls/rewind-button.d.ts +15 -0
  114. package/dist/build/types/src/skin/controls/rewind-button.d.ts.map +1 -0
  115. package/dist/build/types/src/skin/controls/seekbar.d.ts +48 -0
  116. package/dist/build/types/src/skin/controls/seekbar.d.ts.map +1 -0
  117. package/dist/build/types/src/skin/controls/settings-panel.d.ts +53 -0
  118. package/dist/build/types/src/skin/controls/settings-panel.d.ts.map +1 -0
  119. package/dist/build/types/src/skin/controls/share-button.d.ts +11 -0
  120. package/dist/build/types/src/skin/controls/share-button.d.ts.map +1 -0
  121. package/dist/build/types/src/skin/controls/time-display.d.ts +19 -0
  122. package/dist/build/types/src/skin/controls/time-display.d.ts.map +1 -0
  123. package/dist/build/types/src/skin/controls/volume-control.d.ts +21 -0
  124. package/dist/build/types/src/skin/controls/volume-control.d.ts.map +1 -0
  125. package/dist/build/types/src/skin/icons/icons-modern.d.ts +10 -0
  126. package/dist/build/types/src/skin/icons/icons-modern.d.ts.map +1 -0
  127. package/dist/build/types/src/skin/icons/icons.d.ts +10 -0
  128. package/dist/build/types/src/skin/icons/icons.d.ts.map +1 -0
  129. package/dist/build/types/src/skin/icons/sprite.d.ts +39 -0
  130. package/dist/build/types/src/skin/icons/sprite.d.ts.map +1 -0
  131. package/dist/build/types/src/skin/index.d.ts +24 -0
  132. package/dist/build/types/src/skin/index.d.ts.map +1 -0
  133. package/dist/build/types/src/skin/overlays/error-message.d.ts +14 -0
  134. package/dist/build/types/src/skin/overlays/error-message.d.ts.map +1 -0
  135. package/dist/build/types/src/skin/overlays/info-overlay.d.ts +15 -0
  136. package/dist/build/types/src/skin/overlays/info-overlay.d.ts.map +1 -0
  137. package/dist/build/types/src/skin/overlays/loading-spinner.d.ts +17 -0
  138. package/dist/build/types/src/skin/overlays/loading-spinner.d.ts.map +1 -0
  139. package/dist/build/types/src/skin/overlays/preroll-overlay.d.ts +39 -0
  140. package/dist/build/types/src/skin/overlays/preroll-overlay.d.ts.map +1 -0
  141. package/dist/build/types/src/skin/overlays/socials-overlay.d.ts +17 -0
  142. package/dist/build/types/src/skin/overlays/socials-overlay.d.ts.map +1 -0
  143. package/dist/build/types/src/skin/overlays/toast-notification.d.ts +18 -0
  144. package/dist/build/types/src/skin/overlays/toast-notification.d.ts.map +1 -0
  145. package/dist/build/types/src/skin/skin-root.d.ts +88 -0
  146. package/dist/build/types/src/skin/skin-root.d.ts.map +1 -0
  147. package/dist/build/types/src/utils/chapters.d.ts +16 -0
  148. package/dist/build/types/src/utils/chapters.d.ts.map +1 -0
  149. package/dist/build/types/src/utils/format-duration.d.ts +9 -0
  150. package/dist/build/types/src/utils/format-duration.d.ts.map +1 -0
  151. package/dist/build/types/src/utils/format-wall-clock.d.ts +6 -0
  152. package/dist/build/types/src/utils/format-wall-clock.d.ts.map +1 -0
  153. package/dist/build/types/src/utils/settings-helpers.d.ts +41 -0
  154. package/dist/build/types/src/utils/settings-helpers.d.ts.map +1 -0
  155. package/dist/eb-player.css +9 -0
  156. package/package.json +15 -15
@@ -0,0 +1,18 @@
1
+ import type { TemplateResult } from 'lit-html';
2
+ import { BaseComponent } from '../base-component';
3
+ /**
4
+ * Toast notification overlay.
5
+ *
6
+ * Renders a dismissible status message when state.toast is not null.
7
+ * Hidden (aria-hidden) when state.toast is null.
8
+ *
9
+ * The toast message is set by CommandHandler (e.g., 'cast.failed' message)
10
+ * and auto-clears after 3 seconds via CommandHandler's showToast() method.
11
+ *
12
+ * Positioning and fade animation handled by skin.css (.eb-toast class).
13
+ */
14
+ export declare class ToastNotification extends BaseComponent {
15
+ protected onConnect(): void;
16
+ protected template(): TemplateResult;
17
+ }
18
+ //# sourceMappingURL=toast-notification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toast-notification.d.ts","sourceRoot":"","sources":["../../../../../../src/skin/overlays/toast-notification.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD;;;;;;;;;;GAUG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,SAAS,CAAC,SAAS,IAAI,IAAI;IAK3B,SAAS,CAAC,QAAQ,IAAI,cAAc;CASrC"}
@@ -0,0 +1,88 @@
1
+ import type { TemplateResult } from 'lit-html';
2
+ import { BaseComponent } from './base-component';
3
+ /**
4
+ * SkinRoot is the master DOM scaffold component for the player.
5
+ *
6
+ * It creates the full player container structure:
7
+ * - video element
8
+ * - overlay zone (loading, error, poster, radio, socials, info)
9
+ * - ads container (for IMA SDK)
10
+ * - top-bar zone
11
+ * - middle-bar zone (conditional: config.middlebar)
12
+ * - bottom-bar zone
13
+ * - 4 extension zones (top-extra, bottom-extra, overlay, controls-extra)
14
+ *
15
+ * Handles RTL direction, iOS native controls fallback, and no-UI mode.
16
+ * Exposes getVideoElement() and getAdsContainer() for integration wiring.
17
+ */
18
+ export declare class SkinRoot extends BaseComponent {
19
+ private videoElement;
20
+ private adsContainerElement;
21
+ private posterVideoElement;
22
+ private extensionCleanups;
23
+ private childComponents;
24
+ /**
25
+ * Returns the created HTMLVideoElement.
26
+ * Returns null before connect() or after disconnect().
27
+ */
28
+ getVideoElement(): HTMLVideoElement | null;
29
+ /**
30
+ * Returns the ads container HTMLElement used by IMA SDK's AdDisplayContainer.
31
+ * Returns null before connect() or after disconnect().
32
+ */
33
+ getAdsContainer(): HTMLElement | null;
34
+ /**
35
+ * Returns the poster video HTMLVideoElement for poster stream playback.
36
+ * Returns null before connect(), after disconnect(), or when config.posterStream is falsy.
37
+ */
38
+ getPosterVideoElement(): HTMLVideoElement | null;
39
+ protected onConnect(): void;
40
+ protected template(): TemplateResult;
41
+ /**
42
+ * Connects all child components into their respective DOM zones.
43
+ * Only called when config.noUi is false (UI mode).
44
+ * Child components are tracked in this.childComponents for cleanup on disconnect().
45
+ *
46
+ * Component placement is driven by config.layout (falls back to DEFAULT_LAYOUT).
47
+ */
48
+ private connectChildComponents;
49
+ private renderNoUiTemplate;
50
+ private bindElementRefs;
51
+ private subscribeToState;
52
+ /**
53
+ * Toggles poster image visibility based on playbackState.
54
+ * Uses direct DOM manipulation instead of full re-render to avoid
55
+ * interfering with child component render roots.
56
+ */
57
+ private updatePosterVisibility;
58
+ /**
59
+ * Toggles iOS-specific class and native controls attribute without full re-render.
60
+ */
61
+ private updateIOSState;
62
+ /**
63
+ * Toggles radio overlay visibility without full re-render.
64
+ * Creates or removes the radio overlay element as needed.
65
+ */
66
+ private updateRadioOverlay;
67
+ /**
68
+ * Toggles eb-controls-visible / eb-controls-hidden class on the player container.
69
+ * CSS handles opacity transition and pointer-events on bars.
70
+ */
71
+ private updateControlsVisibility;
72
+ /**
73
+ * Toggles the eb-ad-playing class on the player container. While an IMA ad
74
+ * plays, CSS raises the ads container above the player chrome and enables
75
+ * pointer-events on it so IMA's own ad UI (Skip button, click-through) is
76
+ * clickable — the container is pointer-events:none at rest to avoid blocking
77
+ * clicks on the content video.
78
+ */
79
+ private updateAdPlayingState;
80
+ /**
81
+ * Applies or removes the dir=rtl attribute without full re-render.
82
+ * More efficient than re-rendering the entire template for a simple attribute change.
83
+ */
84
+ private applyRtl;
85
+ private invokeExtensions;
86
+ disconnect(): void;
87
+ }
88
+ //# sourceMappingURL=skin-root.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skin-root.d.ts","sourceRoot":"","sources":["../../../../../src/skin/skin-root.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAyChD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,QAAS,SAAQ,aAAa;IACzC,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,mBAAmB,CAA2B;IACtD,OAAO,CAAC,kBAAkB,CAAgC;IAC1D,OAAO,CAAC,iBAAiB,CAAwB;IACjD,OAAO,CAAC,eAAe,CAAsB;IAE7C;;;OAGG;IACH,eAAe,IAAI,gBAAgB,GAAG,IAAI;IAI1C;;;OAGG;IACH,eAAe,IAAI,WAAW,GAAG,IAAI;IAIrC;;;OAGG;IACH,qBAAqB,IAAI,gBAAgB,GAAG,IAAI;IAIhD,SAAS,CAAC,SAAS,IAAI,IAAI;IA6B3B,SAAS,CAAC,QAAQ,IAAI,cAAc;IAgFpC;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IA2G9B,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,gBAAgB;IA4CxB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAW9B;;OAEG;IACH,OAAO,CAAC,cAAc;IAWtB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAQhC;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAM5B;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAYhB,OAAO,CAAC,gBAAgB;IA4BxB,UAAU,IAAI,IAAI;CAiBnB"}
@@ -0,0 +1,16 @@
1
+ export interface ChapterMark {
2
+ title: string;
3
+ startTime: number;
4
+ endTime: number;
5
+ }
6
+ /**
7
+ * Parses a WebVTT string into an array of ChapterMark objects.
8
+ * Returns an empty array if the content is empty or contains no parseable cues.
9
+ */
10
+ export declare function parseChapters(vttContent: string): ChapterMark[];
11
+ /**
12
+ * Fetches a WebVTT chapters file from a URL and parses it.
13
+ * Returns an empty array if the fetch or parse fails.
14
+ */
15
+ export declare function fetchChapters(url: string): Promise<ChapterMark[]>;
16
+ //# sourceMappingURL=chapters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chapters.d.ts","sourceRoot":"","sources":["../../../../../src/utils/chapters.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,EAAE,CAY/D;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAUvE"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Formats a duration in seconds to a human-readable time string.
3
+ *
4
+ * - Invalid input (NaN, negative, Infinity) → "0:00"
5
+ * - < 3600 seconds → "M:SS"
6
+ * - >= 3600 seconds → "H:MM:SS"
7
+ */
8
+ export declare function formatDuration(seconds: number): string;
9
+ //# sourceMappingURL=format-duration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-duration.d.ts","sourceRoot":"","sources":["../../../../../src/utils/format-duration.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAmBtD"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Formats a timestamp (ms since epoch) to a wall-clock time string (HH:MM:SS).
3
+ * Used for live stream time displays.
4
+ */
5
+ export declare function formatWallClock(timestampMs: number): string;
6
+ //# sourceMappingURL=format-wall-clock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-wall-clock.d.ts","sourceRoot":"","sources":["../../../../../src/utils/format-wall-clock.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE3D"}
@@ -0,0 +1,41 @@
1
+ export interface SettingsMenuItem {
2
+ label: string;
3
+ value: number;
4
+ selected: boolean;
5
+ }
6
+ interface QualityLevel {
7
+ height?: number;
8
+ bitrate?: number;
9
+ }
10
+ interface AudioTrack {
11
+ name?: string;
12
+ lang?: string;
13
+ }
14
+ interface SubtitleTrack {
15
+ name?: string;
16
+ lang?: string;
17
+ }
18
+ /**
19
+ * Builds quality menu items from engine level descriptors.
20
+ * Levels with no height (or height 0) show bitrate in kbps instead.
21
+ * Always appends an "Auto" item at value -1.
22
+ */
23
+ export declare function getQualityItems(levels: QualityLevel[], currentQuality: number): SettingsMenuItem[];
24
+ /**
25
+ * Builds audio track menu items from engine audio track descriptors.
26
+ * Falls back to lang, then "Track N" when name is missing.
27
+ */
28
+ export declare function getAudioItems(tracks: AudioTrack[], currentTrack: number): SettingsMenuItem[];
29
+ /**
30
+ * Builds subtitle track menu items from engine subtitle track descriptors.
31
+ * Falls back to lang, then "Track N" when name is missing.
32
+ * Always appends an "Off" item at value -1.
33
+ */
34
+ export declare function getSubtitleItems(tracks: SubtitleTrack[], currentTrack: number): SettingsMenuItem[];
35
+ /**
36
+ * Builds playback speed menu items from a fixed set of speed values.
37
+ * Speed 1 is labeled "Normal"; all others use the format "Nx".
38
+ */
39
+ export declare function getSpeedItems(currentRate: number): SettingsMenuItem[];
40
+ export {};
41
+ //# sourceMappingURL=settings-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-helpers.d.ts","sourceRoot":"","sources":["../../../../../src/utils/settings-helpers.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,UAAU,YAAY;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAID;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAYlG;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAM5F;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAUlG;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAMrE"}
@@ -2539,6 +2539,15 @@
2539
2539
  pointer-events: none;
2540
2540
  }
2541
2541
 
2542
+ /* While an ad plays, raise the ads container above the player chrome (bars are
2543
+ z-index 30) and enable pointer-events so IMA's own ad UI — Skip button,
2544
+ click-through — receives clicks. At rest the container stays pointer-events:none
2545
+ so it never blocks clicks on the content video. */
2546
+ .eb-ad-playing .eb-ads-container {
2547
+ z-index: 40;
2548
+ pointer-events: auto;
2549
+ }
2550
+
2542
2551
  /* ============================================================
2543
2552
  Top bar
2544
2553
  ============================================================ */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eb-player",
3
- "version": "2.0.19",
3
+ "version": "2.0.21",
4
4
  "scripts": {
5
5
  "generate-demo": "pnpm generate --brand default --variant demo && cp dist/players/default/default.js test_player/src/demo.js",
6
6
  "dev-test-player": "cd test_player && pnpm run dev",
@@ -21,26 +21,26 @@
21
21
  },
22
22
  "devDependencies": {
23
23
  "@eslint/js": "^10.0.1",
24
- "@rollup/plugin-commonjs": "^29.0.2",
24
+ "@rollup/plugin-commonjs": "^29.0.3",
25
25
  "@rollup/plugin-node-resolve": "^16.0.3",
26
26
  "@rollup/plugin-terser": "^1.0.0",
27
27
  "@rollup/plugin-typescript": "^12.3.0",
28
28
  "@rollup/plugin-virtual": "^3.0.2",
29
- "@types/node": "^25.4.0",
30
- "@vitest/coverage-v8": "^4.0.18",
31
- "concurrently": "^9.2.1",
32
- "eslint": "^9.39.4",
33
- "eslint-plugin-lit": "^2.2.1",
29
+ "@types/node": "^25.9.3",
30
+ "@vitest/coverage-v8": "^4.1.8",
31
+ "concurrently": "^10.0.3",
32
+ "eslint": "^10.4.1",
33
+ "eslint-plugin-lit": "^2.3.1",
34
34
  "husky": "^9.1.7",
35
- "jsdom": "^28.1.0",
36
- "postcss": "^8.5.8",
37
- "rollup": "^4.59.0",
35
+ "jsdom": "^29.1.1",
36
+ "postcss": "^8.5.15",
37
+ "rollup": "^4.61.1",
38
38
  "rollup-plugin-postcss": "^4.0.2",
39
39
  "screenfull": "^6.0.2",
40
- "tsx": "^4.21.0",
41
- "typescript": "^5.9.3",
42
- "typescript-eslint": "^8.57.0",
43
- "vitest": "^4.0.18"
40
+ "tsx": "^4.22.4",
41
+ "typescript": "^6.0.3",
42
+ "typescript-eslint": "^8.61.0",
43
+ "vitest": "^4.1.8"
44
44
  },
45
45
  "files": [
46
46
  "dist/build",
@@ -50,7 +50,7 @@
50
50
  "main": "./dist/build/ebplayer.bundle.js",
51
51
  "dependencies": {
52
52
  "can-autoplay": "^3.0.2",
53
- "lit-html": "^3.3.2",
53
+ "lit-html": "^3.3.3",
54
54
  "subtitles-parser-vtt": "^0.1.0"
55
55
  }
56
56
  }