eb-player 1.54.55 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -6
- package/dist/build/default.js +1 -1
- package/dist/build/eb-player.css +2066 -0
- package/dist/build/ebplayer-engines.bundle.js +2393 -0
- package/dist/build/ebplayer-engines.bundle.js.map +1 -0
- package/dist/build/ebplayer.bundle.js +6580 -0
- package/dist/build/ebplayer.bundle.js.map +1 -0
- package/dist/build/theme-forja.css +10 -0
- package/dist/build/theme-forja.js +1 -0
- package/dist/build/theme-modern.css +520 -0
- package/dist/build/theme-radio.css +11 -0
- package/dist/build/theme-radio.js +1 -0
- package/dist/build/theme-snrt.css +11 -0
- package/dist/build/theme-snrt.js +1 -0
- package/dist/build/theme-v2.css +661 -0
- package/dist/build/types/config.d.ts +139 -0
- package/dist/build/types/config.d.ts.map +1 -0
- package/dist/build/types/core/command-handler.d.ts +49 -0
- package/dist/build/types/core/command-handler.d.ts.map +1 -0
- package/dist/build/types/core/config.d.ts +174 -0
- package/dist/build/types/core/config.d.ts.map +1 -0
- package/dist/build/types/core/css/theme-forja.entry.d.ts +2 -0
- package/dist/build/types/core/css/theme-forja.entry.d.ts.map +1 -0
- package/dist/build/types/core/css/theme-radio.entry.d.ts +2 -0
- package/dist/build/types/core/css/theme-radio.entry.d.ts.map +1 -0
- package/dist/build/types/core/css/theme-snrt.entry.d.ts +2 -0
- package/dist/build/types/core/css/theme-snrt.entry.d.ts.map +1 -0
- package/dist/build/types/core/engine-state-sync.d.ts +38 -0
- package/dist/build/types/core/engine-state-sync.d.ts.map +1 -0
- package/dist/build/types/core/event-bus.d.ts +87 -0
- package/dist/build/types/core/event-bus.d.ts.map +1 -0
- package/dist/build/types/core/fsm.d.ts +27 -0
- package/dist/build/types/core/fsm.d.ts.map +1 -0
- package/dist/build/types/core/i18n.d.ts +51 -0
- package/dist/build/types/core/i18n.d.ts.map +1 -0
- package/dist/build/types/core/index.d.ts +23 -0
- package/dist/build/types/core/index.d.ts.map +1 -0
- package/dist/build/types/core/lifecycle.d.ts +96 -0
- package/dist/build/types/core/lifecycle.d.ts.map +1 -0
- package/dist/build/types/core/player-state.d.ts +15 -0
- package/dist/build/types/core/player-state.d.ts.map +1 -0
- package/dist/build/types/core/types.d.ts +84 -0
- package/dist/build/types/core/types.d.ts.map +1 -0
- package/dist/build/types/eb-player-standalone.d.ts +12 -0
- package/dist/build/types/eb-player-standalone.d.ts.map +1 -0
- package/dist/build/types/eb-player.d.ts +43 -0
- package/dist/build/types/eb-player.d.ts.map +1 -0
- package/dist/build/types/engine-state-sync.d.ts +38 -0
- package/dist/build/types/engine-state-sync.d.ts.map +1 -0
- package/dist/build/types/engines/abr/dash.d.ts +56 -0
- package/dist/build/types/engines/abr/dash.d.ts.map +1 -0
- package/dist/build/types/engines/abr/hls.d.ts +105 -0
- package/dist/build/types/engines/abr/hls.d.ts.map +1 -0
- package/dist/build/types/engines/base-engine.d.ts +56 -0
- package/dist/build/types/engines/base-engine.d.ts.map +1 -0
- package/dist/build/types/engines/cdn-loader.d.ts +20 -0
- package/dist/build/types/engines/cdn-loader.d.ts.map +1 -0
- package/dist/build/types/engines/cdn-token-manager.d.ts +136 -0
- package/dist/build/types/engines/cdn-token-manager.d.ts.map +1 -0
- package/dist/build/types/engines/dash.d.ts +79 -0
- package/dist/build/types/engines/dash.d.ts.map +1 -0
- package/dist/build/types/engines/drm.d.ts +54 -0
- package/dist/build/types/engines/drm.d.ts.map +1 -0
- package/dist/build/types/engines/hls-discontinuity-patch.d.ts +43 -0
- package/dist/build/types/engines/hls-discontinuity-patch.d.ts.map +1 -0
- package/dist/build/types/engines/hls.d.ts +45 -0
- package/dist/build/types/engines/hls.d.ts.map +1 -0
- package/dist/build/types/engines/index.d.ts +26 -0
- package/dist/build/types/engines/index.d.ts.map +1 -0
- package/dist/build/types/engines/ios/hls.d.ts +20 -0
- package/dist/build/types/engines/ios/hls.d.ts.map +1 -0
- package/dist/build/types/engines/poster/hls.d.ts +35 -0
- package/dist/build/types/engines/poster/hls.d.ts.map +1 -0
- package/dist/build/types/engines/retry/dash.d.ts +39 -0
- package/dist/build/types/engines/retry/dash.d.ts.map +1 -0
- package/dist/build/types/engines/retry/hls.d.ts +35 -0
- package/dist/build/types/engines/retry/hls.d.ts.map +1 -0
- package/dist/build/types/engines/snapshot/dash.d.ts +55 -0
- package/dist/build/types/engines/snapshot/dash.d.ts.map +1 -0
- package/dist/build/types/engines/snapshot/hls.d.ts +104 -0
- package/dist/build/types/engines/snapshot/hls.d.ts.map +1 -0
- package/dist/build/types/engines/stall-watchdog.d.ts +41 -0
- package/dist/build/types/engines/stall-watchdog.d.ts.map +1 -0
- package/dist/build/types/event-bus.d.ts +54 -0
- package/dist/build/types/event-bus.d.ts.map +1 -0
- package/dist/build/types/fsm.d.ts +27 -0
- package/dist/build/types/fsm.d.ts.map +1 -0
- package/dist/build/types/i18n.d.ts +51 -0
- package/dist/build/types/i18n.d.ts.map +1 -0
- package/dist/build/types/index.d.ts +21 -0
- package/dist/build/types/index.d.ts.map +1 -0
- package/dist/build/types/integrations/ads-manager.d.ts +32 -0
- package/dist/build/types/integrations/ads-manager.d.ts.map +1 -0
- package/dist/build/types/integrations/chromecast-manager.d.ts +50 -0
- package/dist/build/types/integrations/chromecast-manager.d.ts.map +1 -0
- package/dist/build/types/integrations/epg-manager.d.ts +22 -0
- package/dist/build/types/integrations/epg-manager.d.ts.map +1 -0
- package/dist/build/types/integrations/index.d.ts +6 -0
- package/dist/build/types/integrations/index.d.ts.map +1 -0
- package/dist/build/types/integrations/p2p-manager.d.ts +33 -0
- package/dist/build/types/integrations/p2p-manager.d.ts.map +1 -0
- package/dist/build/types/integrations/playlist-manager.d.ts +21 -0
- package/dist/build/types/integrations/playlist-manager.d.ts.map +1 -0
- package/dist/build/types/lifecycle.d.ts +64 -0
- package/dist/build/types/lifecycle.d.ts.map +1 -0
- package/dist/build/types/player-state.d.ts +15 -0
- package/dist/build/types/player-state.d.ts.map +1 -0
- package/dist/build/types/skin/bars/bottom-bar.d.ts +16 -0
- package/dist/build/types/skin/bars/bottom-bar.d.ts.map +1 -0
- package/dist/build/types/skin/bars/middle-bar.d.ts +16 -0
- package/dist/build/types/skin/bars/middle-bar.d.ts.map +1 -0
- package/dist/build/types/skin/bars/top-bar.d.ts +15 -0
- package/dist/build/types/skin/bars/top-bar.d.ts.map +1 -0
- package/dist/build/types/skin/base-component.d.ts +69 -0
- package/dist/build/types/skin/base-component.d.ts.map +1 -0
- package/dist/build/types/skin/brand/forja-playlist-bar.d.ts +15 -0
- package/dist/build/types/skin/brand/forja-playlist-bar.d.ts.map +1 -0
- package/dist/build/types/skin/brand/snrt-radio-carousel.d.ts +16 -0
- package/dist/build/types/skin/brand/snrt-radio-carousel.d.ts.map +1 -0
- package/dist/build/types/skin/component-registry.d.ts +16 -0
- package/dist/build/types/skin/component-registry.d.ts.map +1 -0
- package/dist/build/types/skin/controllers/auto-hide.d.ts +27 -0
- package/dist/build/types/skin/controllers/auto-hide.d.ts.map +1 -0
- package/dist/build/types/skin/controllers/keyboard.d.ts +29 -0
- package/dist/build/types/skin/controllers/keyboard.d.ts.map +1 -0
- package/dist/build/types/skin/controls/cast-button.d.ts +15 -0
- package/dist/build/types/skin/controls/cast-button.d.ts.map +1 -0
- package/dist/build/types/skin/controls/forward-button.d.ts +15 -0
- package/dist/build/types/skin/controls/forward-button.d.ts.map +1 -0
- package/dist/build/types/skin/controls/fullscreen-button.d.ts +17 -0
- package/dist/build/types/skin/controls/fullscreen-button.d.ts.map +1 -0
- package/dist/build/types/skin/controls/info-button.d.ts +10 -0
- package/dist/build/types/skin/controls/info-button.d.ts.map +1 -0
- package/dist/build/types/skin/controls/live-sync-button.d.ts +20 -0
- package/dist/build/types/skin/controls/live-sync-button.d.ts.map +1 -0
- package/dist/build/types/skin/controls/pip-button.d.ts +21 -0
- package/dist/build/types/skin/controls/pip-button.d.ts.map +1 -0
- package/dist/build/types/skin/controls/play-pause-button.d.ts +14 -0
- package/dist/build/types/skin/controls/play-pause-button.d.ts.map +1 -0
- package/dist/build/types/skin/controls/rewind-button.d.ts +15 -0
- package/dist/build/types/skin/controls/rewind-button.d.ts.map +1 -0
- package/dist/build/types/skin/controls/seekbar.d.ts +43 -0
- package/dist/build/types/skin/controls/seekbar.d.ts.map +1 -0
- package/dist/build/types/skin/controls/settings-panel.d.ts +45 -0
- package/dist/build/types/skin/controls/settings-panel.d.ts.map +1 -0
- package/dist/build/types/skin/controls/share-button.d.ts +11 -0
- package/dist/build/types/skin/controls/share-button.d.ts.map +1 -0
- package/dist/build/types/skin/controls/time-display.d.ts +19 -0
- package/dist/build/types/skin/controls/time-display.d.ts.map +1 -0
- package/dist/build/types/skin/controls/volume-control.d.ts +21 -0
- package/dist/build/types/skin/controls/volume-control.d.ts.map +1 -0
- package/dist/build/types/skin/icons/icons-modern.d.ts +10 -0
- package/dist/build/types/skin/icons/icons-modern.d.ts.map +1 -0
- package/dist/build/types/skin/icons/icons.d.ts +10 -0
- package/dist/build/types/skin/icons/icons.d.ts.map +1 -0
- package/dist/build/types/skin/icons/sprite.d.ts +39 -0
- package/dist/build/types/skin/icons/sprite.d.ts.map +1 -0
- package/dist/build/types/skin/index.d.ts +24 -0
- package/dist/build/types/skin/index.d.ts.map +1 -0
- package/dist/build/types/skin/overlays/error-message.d.ts +14 -0
- package/dist/build/types/skin/overlays/error-message.d.ts.map +1 -0
- package/dist/build/types/skin/overlays/info-overlay.d.ts +15 -0
- package/dist/build/types/skin/overlays/info-overlay.d.ts.map +1 -0
- package/dist/build/types/skin/overlays/loading-spinner.d.ts +17 -0
- package/dist/build/types/skin/overlays/loading-spinner.d.ts.map +1 -0
- package/dist/build/types/skin/overlays/socials-overlay.d.ts +17 -0
- package/dist/build/types/skin/overlays/socials-overlay.d.ts.map +1 -0
- package/dist/build/types/skin/overlays/toast-notification.d.ts +18 -0
- package/dist/build/types/skin/overlays/toast-notification.d.ts.map +1 -0
- package/dist/build/types/skin/skin-root.d.ts +80 -0
- package/dist/build/types/skin/skin-root.d.ts.map +1 -0
- package/dist/build/types/types.d.ts +41 -0
- package/dist/build/types/types.d.ts.map +1 -0
- package/dist/build/types/utils/chapters.d.ts +16 -0
- package/dist/build/types/utils/chapters.d.ts.map +1 -0
- package/dist/build/types/utils/format-duration.d.ts +9 -0
- package/dist/build/types/utils/format-duration.d.ts.map +1 -0
- package/dist/build/types/utils/format-wall-clock.d.ts +6 -0
- package/dist/build/types/utils/format-wall-clock.d.ts.map +1 -0
- package/dist/build/types/utils/settings-helpers.d.ts +41 -0
- package/dist/build/types/utils/settings-helpers.d.ts.map +1 -0
- package/dist/dev/default.js +6451 -0
- package/dist/dev/default.js.map +1 -0
- package/dist/dev/easybroadcast.js +6654 -0
- package/dist/dev/easybroadcast.js.map +1 -0
- package/dist/dev/index.html +24 -0
- package/dist/eb-player.css +2066 -0
- package/dist/players/default/default.js +400 -1
- package/dist/players/default/index.html +1 -5
- package/dist/players/forja/forja.js +310 -0
- package/dist/players/forja/index.html +1 -0
- package/dist/players/videos/equipe/EB_lequipe-preprod.js +1 -0
- package/dist/players/videos/equipe/EB_lequipe.js +1 -1
- package/dist/players/videos/equipe/equipe.js +1 -1
- package/dist/theme-forja.css +10 -0
- package/dist/theme-modern.css +520 -0
- package/dist/theme-radio.css +11 -0
- package/dist/theme-snrt.css +11 -0
- package/dist/theme-v2.css +661 -0
- package/package.json +34 -3
- package/dist/build/forja.js +0 -1
- package/dist/players/videos/equipe/EB_lequipe-preprod copy.js +0 -1
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { TemplateResult } from 'lit-html';
|
|
2
|
+
import { BaseComponent } from '../base-component';
|
|
3
|
+
/**
|
|
4
|
+
* MiddleBar renders centered playback controls with a built-in play/pause button.
|
|
5
|
+
*
|
|
6
|
+
* The central play/pause button is always present (part of the bar's identity).
|
|
7
|
+
* Surrounding slots (default: rewind left, forward right) are driven by layout config.
|
|
8
|
+
*
|
|
9
|
+
* Subscribes to state.playbackState for icon toggle.
|
|
10
|
+
*/
|
|
11
|
+
export declare class MiddleBar extends BaseComponent {
|
|
12
|
+
protected onConnect(): void;
|
|
13
|
+
protected template(): TemplateResult;
|
|
14
|
+
private handleClick;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=middle-bar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middle-bar.d.ts","sourceRoot":"","sources":["../../../../../src/skin/bars/middle-bar.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAKjD;;;;;;;GAOG;AACH,qBAAa,SAAU,SAAQ,aAAa;IAC1C,SAAS,CAAC,SAAS,IAAI,IAAI;IAU3B,SAAS,CAAC,QAAQ,IAAI,cAAc;IAuBpC,OAAO,CAAC,WAAW;CAUpB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { TemplateResult } from 'lit-html';
|
|
2
|
+
import { BaseComponent } from '../base-component';
|
|
3
|
+
/**
|
|
4
|
+
* TopBar renders the top control bar with logo and dynamic action slots.
|
|
5
|
+
*
|
|
6
|
+
* - Logo: renders as <img> wrapped in <a> if logoLink is set (always built-in)
|
|
7
|
+
* - Action slots: driven by layout config (default: share + info on the right)
|
|
8
|
+
*
|
|
9
|
+
* Subscribes to state.controlsVisible for visibility transitions.
|
|
10
|
+
*/
|
|
11
|
+
export declare class TopBar extends BaseComponent {
|
|
12
|
+
protected onConnect(): void;
|
|
13
|
+
protected template(): TemplateResult;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=top-bar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"top-bar.d.ts","sourceRoot":"","sources":["../../../../../src/skin/bars/top-bar.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAIjD;;;;;;;GAOG;AACH,qBAAa,MAAO,SAAQ,aAAa;IACvC,SAAS,CAAC,SAAS,IAAI,IAAI;IAI3B,SAAS,CAAC,QAAQ,IAAI,cAAc;CA2BrC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { html, render } from 'lit-html';
|
|
2
|
+
import type { TemplateResult } from 'lit-html';
|
|
3
|
+
import type { PlayerState } from '../core/types';
|
|
4
|
+
import type { TypedEventBus } from '../core/event-bus';
|
|
5
|
+
import type { PlayerConfig } from '../core/config';
|
|
6
|
+
import type { I18n } from '../core/i18n';
|
|
7
|
+
export { html, render };
|
|
8
|
+
export type { TemplateResult };
|
|
9
|
+
/**
|
|
10
|
+
* Abstract base class for all skin components.
|
|
11
|
+
*
|
|
12
|
+
* Provides a connect/disconnect lifecycle with AbortSignal-based cleanup,
|
|
13
|
+
* so state subscriptions and event listeners registered in onConnect()
|
|
14
|
+
* are automatically removed when disconnect() is called.
|
|
15
|
+
*
|
|
16
|
+
* Usage:
|
|
17
|
+
* class PlayButton extends BaseComponent {
|
|
18
|
+
* protected onConnect(): void {
|
|
19
|
+
* this.state!.on('playbackState', () => this.render(), { signal: this.signal })
|
|
20
|
+
* }
|
|
21
|
+
* protected template(): TemplateResult {
|
|
22
|
+
* return html`<button>Play</button>`
|
|
23
|
+
* }
|
|
24
|
+
* }
|
|
25
|
+
*/
|
|
26
|
+
export declare abstract class BaseComponent {
|
|
27
|
+
protected el: HTMLElement | null;
|
|
28
|
+
protected state: PlayerState | null;
|
|
29
|
+
protected bus: TypedEventBus | null;
|
|
30
|
+
protected config: PlayerConfig | null;
|
|
31
|
+
protected i18n: I18n | null;
|
|
32
|
+
private abortController;
|
|
33
|
+
/**
|
|
34
|
+
* Returns the AbortSignal for the current connect() session.
|
|
35
|
+
* Only valid after connect() and before disconnect().
|
|
36
|
+
* Pass this signal to state.on() and bus.on() for automatic cleanup.
|
|
37
|
+
*/
|
|
38
|
+
protected get signal(): AbortSignal;
|
|
39
|
+
/**
|
|
40
|
+
* Connect this component to the DOM and player context.
|
|
41
|
+
* Creates a fresh AbortController, sets all fields, then calls onConnect().
|
|
42
|
+
*
|
|
43
|
+
* @param i18n - Optional i18n instance for components that render translated text.
|
|
44
|
+
* Components that use this.i18n should handle null gracefully (null = fallback to key string).
|
|
45
|
+
*/
|
|
46
|
+
connect(el: HTMLElement, state: PlayerState, bus: TypedEventBus, config: PlayerConfig, i18n?: I18n): void;
|
|
47
|
+
/**
|
|
48
|
+
* Disconnect this component from the player context.
|
|
49
|
+
* Aborts the AbortController (cleaning up all signal-based subscriptions),
|
|
50
|
+
* then nulls all references.
|
|
51
|
+
*/
|
|
52
|
+
disconnect(): void;
|
|
53
|
+
/**
|
|
54
|
+
* Called during connect() after all fields are set.
|
|
55
|
+
* Override to register state subscriptions and event listeners using this.signal.
|
|
56
|
+
*/
|
|
57
|
+
protected abstract onConnect(): void;
|
|
58
|
+
/**
|
|
59
|
+
* Returns the lit-html TemplateResult for this component.
|
|
60
|
+
* Called by render() to produce the DOM output.
|
|
61
|
+
*/
|
|
62
|
+
protected abstract template(): TemplateResult;
|
|
63
|
+
/**
|
|
64
|
+
* Renders the component into this.el using lit-html.
|
|
65
|
+
* No-op if el is null (e.g., after disconnect()).
|
|
66
|
+
*/
|
|
67
|
+
protected render(): void;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=base-component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-component.d.ts","sourceRoot":"","sources":["../../../../src/skin/base-component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAGxC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;AACvB,YAAY,EAAE,cAAc,EAAE,CAAA;AAE9B;;;;;;;;;;;;;;;;GAgBG;AACH,8BAAsB,aAAa;IACjC,SAAS,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAAO;IACvC,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAO;IAC1C,SAAS,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAAO;IAC1C,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAO;IAC5C,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAO;IAClC,OAAO,CAAC,eAAe,CAA+B;IAEtD;;;;OAIG;IACH,SAAS,KAAK,MAAM,IAAI,WAAW,CAElC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI;IAUzG;;;;OAIG;IACH,UAAU,IAAI,IAAI;IAUlB;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI;IAEpC;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,QAAQ,IAAI,cAAc;IAE7C;;;OAGG;IACH,SAAS,CAAC,MAAM,IAAI,IAAI;CAIzB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { TemplateResult } from 'lit-html';
|
|
2
|
+
import { BaseComponent } from '../base-component';
|
|
3
|
+
/**
|
|
4
|
+
* ForjaPlaylistBar renders a horizontal episode list in the bottom-extra
|
|
5
|
+
* extension zone for the Forja brand skin.
|
|
6
|
+
*
|
|
7
|
+
* Subscribes to state.playlist and state.currentEpisode.
|
|
8
|
+
* Provides prev/next navigation buttons that emit bus events.
|
|
9
|
+
*/
|
|
10
|
+
export declare class ForjaPlaylistBar extends BaseComponent {
|
|
11
|
+
protected onConnect(): void;
|
|
12
|
+
protected template(): TemplateResult;
|
|
13
|
+
private formatDuration;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=forja-playlist-bar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forja-playlist-bar.d.ts","sourceRoot":"","sources":["../../../../../src/skin/brand/forja-playlist-bar.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGjD;;;;;;GAMG;AACH,qBAAa,gBAAiB,SAAQ,aAAa;IACjD,SAAS,CAAC,SAAS,IAAI,IAAI;IAc3B,SAAS,CAAC,QAAQ,IAAI,cAAc;IA2CpC,OAAO,CAAC,cAAc;CAKvB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { TemplateResult } from 'lit-html';
|
|
2
|
+
import { BaseComponent } from '../base-component';
|
|
3
|
+
/**
|
|
4
|
+
* SnrtRadioCarousel renders a horizontal carousel of radio program items
|
|
5
|
+
* for the SNRT brand skin.
|
|
6
|
+
*
|
|
7
|
+
* Subscribes to state.epgPrograms for data. Each item shows the program
|
|
8
|
+
* title and time range. This component is registered as a brand extra
|
|
9
|
+
* by the SNRT configuration.
|
|
10
|
+
*/
|
|
11
|
+
export declare class SnrtRadioCarousel extends BaseComponent {
|
|
12
|
+
protected onConnect(): void;
|
|
13
|
+
protected template(): TemplateResult;
|
|
14
|
+
private formatTime;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=snrt-radio-carousel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snrt-radio-carousel.d.ts","sourceRoot":"","sources":["../../../../../src/skin/brand/snrt-radio-carousel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGjD;;;;;;;GAOG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,SAAS,CAAC,SAAS,IAAI,IAAI;IAU3B,SAAS,CAAC,QAAQ,IAAI,cAAc;IAiBpC,OAAO,CAAC,UAAU;CAInB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ComponentId } from '../core/config';
|
|
2
|
+
import type { BaseComponent } from './base-component';
|
|
3
|
+
type ComponentFactory = () => BaseComponent;
|
|
4
|
+
/**
|
|
5
|
+
* Maps ComponentId strings to factory functions that create component instances.
|
|
6
|
+
* Used by SkinRoot.connectChildComponents() to dynamically mount components
|
|
7
|
+
* based on the layout config.
|
|
8
|
+
*/
|
|
9
|
+
export declare const COMPONENT_REGISTRY: Record<ComponentId, ComponentFactory>;
|
|
10
|
+
/**
|
|
11
|
+
* Returns the CSS selector for a component's slot element.
|
|
12
|
+
* Seekbar uses a special class for flex:1 behavior.
|
|
13
|
+
*/
|
|
14
|
+
export declare function slotSelector(componentId: ComponentId): string;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=component-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-registry.d.ts","sourceRoot":"","sources":["../../../../src/skin/component-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAerD,KAAK,gBAAgB,GAAG,MAAM,aAAa,CAAA;AAE3C;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAcpE,CAAA;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAG7D"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { PlayerState } from '../../core/types';
|
|
2
|
+
/**
|
|
3
|
+
* AutoHideController manages the 3-second auto-hide timer for player controls.
|
|
4
|
+
*
|
|
5
|
+
* On any user activity (pointermove, touchstart, keyup), the timer resets to 3s.
|
|
6
|
+
* When the timer fires, controls are hidden — but ONLY if no panel is open and
|
|
7
|
+
* no ad is playing.
|
|
8
|
+
*
|
|
9
|
+
* Note: Uses manual removeEventListener instead of the { signal } option in
|
|
10
|
+
* addEventListener. JSDOM 28 rejects non-JSDOM AbortSignal instances in the
|
|
11
|
+
* options dict, making the signal approach non-testable. Production behavior
|
|
12
|
+
* is identical — cleanup is triggered by the signal's 'abort' event.
|
|
13
|
+
*
|
|
14
|
+
* Usage:
|
|
15
|
+
* const controller = new AutoHideController(container, state, signal)
|
|
16
|
+
* // cleanup happens automatically when signal aborts
|
|
17
|
+
*/
|
|
18
|
+
export declare class AutoHideController {
|
|
19
|
+
private timer;
|
|
20
|
+
private readonly state;
|
|
21
|
+
private readonly onActivity;
|
|
22
|
+
private readonly container;
|
|
23
|
+
constructor(container: HTMLElement, state: PlayerState, signal: AbortSignal);
|
|
24
|
+
private show;
|
|
25
|
+
private hide;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=auto-hide.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-hide.d.ts","sourceRoot":"","sources":["../../../../../src/skin/controllers/auto-hide.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,kBAAkB;IAE7B,OAAO,CAAC,KAAK,CAAqC;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;gBAE3B,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW;IAyB3E,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,IAAI;CAWb"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { PlayerState } from '../../core/types';
|
|
2
|
+
import type { TypedEventBus } from '../../core/event-bus';
|
|
3
|
+
import type { PlayerConfig } from '../../core/config';
|
|
4
|
+
/**
|
|
5
|
+
* KeyboardController handles player keyboard shortcuts.
|
|
6
|
+
*
|
|
7
|
+
* Space: toggles play/pause, prevents default scroll behavior.
|
|
8
|
+
* ArrowLeft: seek back by config.seekOffset seconds (clamped to 0).
|
|
9
|
+
* ArrowRight: seek forward by config.seekOffset seconds (clamped to duration).
|
|
10
|
+
* m: mutes/unmutes — only when config.supportHotKeys is true.
|
|
11
|
+
*
|
|
12
|
+
* All shortcuts are disabled during ads (state.adPlaying === true).
|
|
13
|
+
*
|
|
14
|
+
* The container must be focusable to receive keyboard events.
|
|
15
|
+
* If container.tabIndex < 0, it is set to 0 automatically.
|
|
16
|
+
*
|
|
17
|
+
* Note: Uses manual removeEventListener instead of the { signal } option in
|
|
18
|
+
* addEventListener. JSDOM 28 rejects non-JSDOM AbortSignal instances in the
|
|
19
|
+
* options dict, making the signal approach non-testable. Production behavior
|
|
20
|
+
* is identical — cleanup is triggered by the signal's 'abort' event.
|
|
21
|
+
*
|
|
22
|
+
* Usage:
|
|
23
|
+
* const controller = new KeyboardController(container, state, bus, config, signal)
|
|
24
|
+
* // cleanup happens automatically when signal aborts
|
|
25
|
+
*/
|
|
26
|
+
export declare class KeyboardController {
|
|
27
|
+
constructor(container: HTMLElement, state: PlayerState, bus: TypedEventBus, config: PlayerConfig, signal: AbortSignal);
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=keyboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../../../../../src/skin/controllers/keyboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,kBAAkB;gBAE3B,SAAS,EAAE,WAAW,EACtB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,WAAW;CAyDtB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { TemplateResult } from 'lit-html';
|
|
2
|
+
import { BaseComponent } from '../base-component';
|
|
3
|
+
/**
|
|
4
|
+
* Chromecast button.
|
|
5
|
+
*
|
|
6
|
+
* - Visible only when state.castAvailable is true
|
|
7
|
+
* - Click emits 'cast-start' with { src: state.src }
|
|
8
|
+
* - Has eb-cast-active class when state.isCasting is true
|
|
9
|
+
* - Re-renders when state.castAvailable or state.isCasting changes
|
|
10
|
+
*/
|
|
11
|
+
export declare class CastButton extends BaseComponent {
|
|
12
|
+
protected onConnect(): void;
|
|
13
|
+
protected template(): TemplateResult;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=cast-button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cast-button.d.ts","sourceRoot":"","sources":["../../../../../src/skin/controls/cast-button.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGjD;;;;;;;GAOG;AACH,qBAAa,UAAW,SAAQ,aAAa;IAC3C,SAAS,CAAC,SAAS,IAAI,IAAI;IAM3B,SAAS,CAAC,QAAQ,IAAI,cAAc;CAiBrC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { TemplateResult } from 'lit-html';
|
|
2
|
+
import { BaseComponent } from '../base-component';
|
|
3
|
+
/**
|
|
4
|
+
* Forward button — seeks forward by config.seekOffset seconds (default 15).
|
|
5
|
+
*
|
|
6
|
+
* Displayed in the middle bar beside the play/pause button.
|
|
7
|
+
* Renders a circular arrow icon with the seek offset number below.
|
|
8
|
+
* Hidden during ad playback.
|
|
9
|
+
*/
|
|
10
|
+
export declare class ForwardButton extends BaseComponent {
|
|
11
|
+
protected onConnect(): void;
|
|
12
|
+
protected template(): TemplateResult;
|
|
13
|
+
private handleClick;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=forward-button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forward-button.d.ts","sourceRoot":"","sources":["../../../../../src/skin/controls/forward-button.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGjD;;;;;;GAMG;AACH,qBAAa,aAAc,SAAQ,aAAa;IAC9C,SAAS,CAAC,SAAS,IAAI,IAAI;IAK3B,SAAS,CAAC,QAAQ,IAAI,cAAc;IAwBpC,OAAO,CAAC,WAAW;CAKpB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { TemplateResult } from 'lit-html';
|
|
2
|
+
import { BaseComponent } from '../base-component';
|
|
3
|
+
/**
|
|
4
|
+
* Fullscreen toggle button.
|
|
5
|
+
*
|
|
6
|
+
* - Calls screenfull.toggle() with the closest .eb-player ancestor on click
|
|
7
|
+
* - Subscribes to screenfull 'change' event to update state.isFullscreen
|
|
8
|
+
* - Hidden when screenfull.isEnabled is false (e.g. iOS Safari)
|
|
9
|
+
* - Re-renders when state.isFullscreen changes
|
|
10
|
+
*/
|
|
11
|
+
export declare class FullscreenButton extends BaseComponent {
|
|
12
|
+
private changeHandler;
|
|
13
|
+
protected onConnect(): void;
|
|
14
|
+
private handleClick;
|
|
15
|
+
protected template(): TemplateResult;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=fullscreen-button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fullscreen-button.d.ts","sourceRoot":"","sources":["../../../../../src/skin/controls/fullscreen-button.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGjD;;;;;;;GAOG;AACH,qBAAa,gBAAiB,SAAQ,aAAa;IACjD,OAAO,CAAC,aAAa,CAA4B;IAEjD,SAAS,CAAC,SAAS,IAAI,IAAI;IAoB3B,OAAO,CAAC,WAAW;IASnB,SAAS,CAAC,QAAQ,IAAI,cAAc;CAmBrC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TemplateResult } from 'lit-html';
|
|
2
|
+
import { BaseComponent } from '../base-component';
|
|
3
|
+
/**
|
|
4
|
+
* InfoButton opens the info/about overlay.
|
|
5
|
+
*/
|
|
6
|
+
export declare class InfoButton extends BaseComponent {
|
|
7
|
+
protected onConnect(): void;
|
|
8
|
+
protected template(): TemplateResult;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=info-button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info-button.d.ts","sourceRoot":"","sources":["../../../../../src/skin/controls/info-button.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGjD;;GAEG;AACH,qBAAa,UAAW,SAAQ,aAAa;IAC3C,SAAS,CAAC,SAAS,IAAI,IAAI;IAI3B,SAAS,CAAC,QAAQ,IAAI,cAAc;CASrC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { TemplateResult } from 'lit-html';
|
|
2
|
+
import { BaseComponent } from '../base-component';
|
|
3
|
+
/**
|
|
4
|
+
* Live sync button.
|
|
5
|
+
*
|
|
6
|
+
* Visible when:
|
|
7
|
+
* - state.isLive === true (auto-detected live stream), OR
|
|
8
|
+
* - config.liveButton === true (forced by config)
|
|
9
|
+
*
|
|
10
|
+
* Has eb-live-synced class when state.isSyncWithLive is true.
|
|
11
|
+
* Click emits 'sync-live' to jump back to the live edge.
|
|
12
|
+
*
|
|
13
|
+
* Renders both an icon (for default/icon themes) and a text label
|
|
14
|
+
* with blinking dot (for v2/badge themes). CSS controls which is shown.
|
|
15
|
+
*/
|
|
16
|
+
export declare class LiveSyncButton extends BaseComponent {
|
|
17
|
+
protected onConnect(): void;
|
|
18
|
+
protected template(): TemplateResult;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=live-sync-button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live-sync-button.d.ts","sourceRoot":"","sources":["../../../../../src/skin/controls/live-sync-button.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGjD;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAe,SAAQ,aAAa;IAC/C,SAAS,CAAC,SAAS,IAAI,IAAI;IAM3B,SAAS,CAAC,QAAQ,IAAI,cAAc;CAoBrC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { TemplateResult } from 'lit-html';
|
|
2
|
+
import { BaseComponent } from '../base-component';
|
|
3
|
+
/**
|
|
4
|
+
* Picture-in-Picture (PiP) toggle button.
|
|
5
|
+
*
|
|
6
|
+
* - Hidden when config.pip is false or the PiP API is unavailable
|
|
7
|
+
* - Click calls video.requestPictureInPicture() when not in PiP
|
|
8
|
+
* - Click calls document.exitPictureInPicture() when already in PiP
|
|
9
|
+
* - Listens to 'enterpictureinpicture' / 'leavepictureinpicture' events on the video element
|
|
10
|
+
* - Re-renders when state.isPip changes
|
|
11
|
+
*/
|
|
12
|
+
export declare class PipButton extends BaseComponent {
|
|
13
|
+
private pipEnabled;
|
|
14
|
+
private videoEl;
|
|
15
|
+
private enterHandler;
|
|
16
|
+
private leaveHandler;
|
|
17
|
+
protected onConnect(): void;
|
|
18
|
+
private handleClick;
|
|
19
|
+
protected template(): TemplateResult;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=pip-button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pip-button.d.ts","sourceRoot":"","sources":["../../../../../src/skin/controls/pip-button.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGjD;;;;;;;;GAQG;AACH,qBAAa,SAAU,SAAQ,aAAa;IAC1C,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,YAAY,CAA4B;IAEhD,SAAS,CAAC,SAAS,IAAI,IAAI;IAmC3B,OAAO,CAAC,WAAW;IASnB,SAAS,CAAC,QAAQ,IAAI,cAAc;CAiBrC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { TemplateResult } from 'lit-html';
|
|
2
|
+
import { BaseComponent } from '../base-component';
|
|
3
|
+
/**
|
|
4
|
+
* Play/pause toggle button.
|
|
5
|
+
*
|
|
6
|
+
* Emits 'play' when clicked while paused/idle/buffering,
|
|
7
|
+
* emits 'pause' when clicked while playing.
|
|
8
|
+
* Re-renders when state.playbackState changes.
|
|
9
|
+
*/
|
|
10
|
+
export declare class PlayPauseButton extends BaseComponent {
|
|
11
|
+
protected onConnect(): void;
|
|
12
|
+
protected template(): TemplateResult;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=play-pause-button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"play-pause-button.d.ts","sourceRoot":"","sources":["../../../../../src/skin/controls/play-pause-button.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGjD;;;;;;GAMG;AACH,qBAAa,eAAgB,SAAQ,aAAa;IAChD,SAAS,CAAC,SAAS,IAAI,IAAI;IAK3B,SAAS,CAAC,QAAQ,IAAI,cAAc;CAerC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { TemplateResult } from 'lit-html';
|
|
2
|
+
import { BaseComponent } from '../base-component';
|
|
3
|
+
/**
|
|
4
|
+
* Rewind button — seeks back by config.seekOffset seconds (default 15).
|
|
5
|
+
*
|
|
6
|
+
* Displayed in the middle bar beside the play/pause button.
|
|
7
|
+
* Renders a circular arrow icon with the seek offset number below.
|
|
8
|
+
* Hidden during ad playback.
|
|
9
|
+
*/
|
|
10
|
+
export declare class RewindButton extends BaseComponent {
|
|
11
|
+
protected onConnect(): void;
|
|
12
|
+
protected template(): TemplateResult;
|
|
13
|
+
private handleClick;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=rewind-button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rewind-button.d.ts","sourceRoot":"","sources":["../../../../../src/skin/controls/rewind-button.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGjD;;;;;;GAMG;AACH,qBAAa,YAAa,SAAQ,aAAa;IAC7C,SAAS,CAAC,SAAS,IAAI,IAAI;IAK3B,SAAS,CAAC,QAAQ,IAAI,cAAc;IAwBpC,OAAO,CAAC,WAAW;CAKpB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { TemplateResult } from 'lit-html';
|
|
2
|
+
import { BaseComponent } from '../base-component';
|
|
3
|
+
/**
|
|
4
|
+
* Seekbar component.
|
|
5
|
+
*
|
|
6
|
+
* Renders a full-featured seekbar with:
|
|
7
|
+
* - Progress and buffered region tracks
|
|
8
|
+
* - Pointer Events drag with setPointerCapture
|
|
9
|
+
* - RTL coordinate flip
|
|
10
|
+
* - Chapter markers with active state and skip button
|
|
11
|
+
* - EPG program segments
|
|
12
|
+
* - Tooltip with time on hover, optional snapshot preview
|
|
13
|
+
* - Disabled state during ad playback
|
|
14
|
+
*
|
|
15
|
+
* rAF batching prevents excessive re-renders during high-frequency currentTime updates.
|
|
16
|
+
*/
|
|
17
|
+
export declare class Seekbar extends BaseComponent {
|
|
18
|
+
private isDragging;
|
|
19
|
+
private dragValue;
|
|
20
|
+
private rafPending;
|
|
21
|
+
private tooltipVisible;
|
|
22
|
+
private tooltipTime;
|
|
23
|
+
private tooltipX;
|
|
24
|
+
private previewVideoEl;
|
|
25
|
+
private snapshotTake;
|
|
26
|
+
protected onConnect(): void;
|
|
27
|
+
private scheduleRender;
|
|
28
|
+
/**
|
|
29
|
+
* Converts a PointerEvent clientX to a time value, accounting for RTL mode.
|
|
30
|
+
* Clamps result to [0, duration].
|
|
31
|
+
*/
|
|
32
|
+
private eventToTime;
|
|
33
|
+
private handlePointerDown;
|
|
34
|
+
private handlePointerMove;
|
|
35
|
+
private handlePointerUp;
|
|
36
|
+
private handlePointerLeave;
|
|
37
|
+
private updateTooltip;
|
|
38
|
+
private findActiveChapter;
|
|
39
|
+
private findSkippableChapter;
|
|
40
|
+
private renderEpgSegments;
|
|
41
|
+
protected template(): TemplateResult;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=seekbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seekbar.d.ts","sourceRoot":"","sources":["../../../../../src/skin/controls/seekbar.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAMjD;;;;;;;;;;;;;GAaG;AACH,qBAAa,OAAQ,SAAQ,aAAa;IACxC,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,SAAS,CAAI;IACrB,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,WAAW,CAAI;IACvB,OAAO,CAAC,QAAQ,CAAI;IACpB,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,YAAY,CAAwC;IAE5D,SAAS,CAAC,SAAS,IAAI,IAAI;IAwB3B,OAAO,CAAC,cAAc;IAWtB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,iBAAiB;IA6BzB,SAAS,CAAC,QAAQ,IAAI,cAAc;CA2FrC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { TemplateResult } from 'lit-html';
|
|
2
|
+
import { BaseComponent } from '../base-component';
|
|
3
|
+
/**
|
|
4
|
+
* Multi-mode settings panel.
|
|
5
|
+
*
|
|
6
|
+
* Root mode: shows category buttons (Quality, Speed, Audio, Subtitles).
|
|
7
|
+
* Sub-menu mode: shows items from the selected category with a back button.
|
|
8
|
+
*
|
|
9
|
+
* Categories are conditionally shown:
|
|
10
|
+
* - Quality: only when state.qualityLevels is non-empty
|
|
11
|
+
* - Speed: only when config.speed is true
|
|
12
|
+
* - Audio: only when state.audioTracks has more than 1 track
|
|
13
|
+
* - Subtitles: only when state.subtitleTracks is non-empty
|
|
14
|
+
*
|
|
15
|
+
* Panel is visible only when state.settingsOpen is true.
|
|
16
|
+
*
|
|
17
|
+
* Panel placement is computed from the toggle button's position relative
|
|
18
|
+
* to the .eb-player container:
|
|
19
|
+
* - Top half → panel drops downward (eb-settings-panel--down)
|
|
20
|
+
* - Bottom half → panel opens upward (eb-settings-panel--up) [default]
|
|
21
|
+
* - Left half → panel aligns left (eb-settings-panel--left)
|
|
22
|
+
* - Right half → panel aligns right (eb-settings-panel--right) [default]
|
|
23
|
+
*/
|
|
24
|
+
export declare class SettingsPanel extends BaseComponent {
|
|
25
|
+
private mode;
|
|
26
|
+
private verticalDir;
|
|
27
|
+
private horizontalDir;
|
|
28
|
+
protected onConnect(): void;
|
|
29
|
+
/**
|
|
30
|
+
* Determines which quadrant of the player the toggle button sits in,
|
|
31
|
+
* so the panel can open in the direction with the most available space.
|
|
32
|
+
*/
|
|
33
|
+
private computePlacement;
|
|
34
|
+
private navigateTo;
|
|
35
|
+
private navigateBack;
|
|
36
|
+
private renderRootMenu;
|
|
37
|
+
private renderSubMenu;
|
|
38
|
+
private renderQualityMenu;
|
|
39
|
+
private renderSpeedMenu;
|
|
40
|
+
private renderAudioMenu;
|
|
41
|
+
private renderSubtitlesMenu;
|
|
42
|
+
private toggleSettings;
|
|
43
|
+
protected template(): TemplateResult;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=settings-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-panel.d.ts","sourceRoot":"","sources":["../../../../../src/skin/controls/settings-panel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAOjD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,aAAc,SAAQ,aAAa;IAC9C,OAAO,CAAC,IAAI,CAAuB;IACnC,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,aAAa,CAA4B;IAEjD,SAAS,CAAC,SAAS,IAAI,IAAI;IAuB3B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,cAAc;IA4CtB,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,cAAc;IAItB,SAAS,CAAC,QAAQ,IAAI,cAAc;CA4CrC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { TemplateResult } from 'lit-html';
|
|
2
|
+
import { BaseComponent } from '../base-component';
|
|
3
|
+
/**
|
|
4
|
+
* ShareButton opens the socials overlay.
|
|
5
|
+
* Renders hidden when config.socials is false.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ShareButton extends BaseComponent {
|
|
8
|
+
protected onConnect(): void;
|
|
9
|
+
protected template(): TemplateResult;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=share-button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"share-button.d.ts","sourceRoot":"","sources":["../../../../../src/skin/controls/share-button.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGjD;;;GAGG;AACH,qBAAa,WAAY,SAAQ,aAAa;IAC5C,SAAS,CAAC,SAAS,IAAI,IAAI;IAI3B,SAAS,CAAC,QAAQ,IAAI,cAAc;CAYrC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { TemplateResult } from 'lit-html';
|
|
2
|
+
import { BaseComponent } from '../base-component';
|
|
3
|
+
/**
|
|
4
|
+
* Time display component.
|
|
5
|
+
*
|
|
6
|
+
* For VOD: shows "currentTime / duration" (e.g., "1:23 / 5:00")
|
|
7
|
+
* For live + synced: shows current wall-clock time (e.g., "19:25:30")
|
|
8
|
+
* For live + not synced: shows negative offset (e.g., "-0:30")
|
|
9
|
+
*
|
|
10
|
+
* Uses requestAnimationFrame batching for currentTime updates
|
|
11
|
+
* to avoid excessive re-renders during playback.
|
|
12
|
+
*/
|
|
13
|
+
export declare class TimeDisplay extends BaseComponent {
|
|
14
|
+
private rafPending;
|
|
15
|
+
protected onConnect(): void;
|
|
16
|
+
private scheduleRender;
|
|
17
|
+
protected template(): TemplateResult;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=time-display.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time-display.d.ts","sourceRoot":"","sources":["../../../../../src/skin/controls/time-display.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAIjD;;;;;;;;;GASG;AACH,qBAAa,WAAY,SAAQ,aAAa;IAC5C,OAAO,CAAC,UAAU,CAAQ;IAE1B,SAAS,CAAC,SAAS,IAAI,IAAI;IAY3B,OAAO,CAAC,cAAc;IAStB,SAAS,CAAC,QAAQ,IAAI,cAAc;CAsBrC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { TemplateResult } from 'lit-html';
|
|
2
|
+
import { BaseComponent } from '../base-component';
|
|
3
|
+
/**
|
|
4
|
+
* Volume control with mute toggle button and draggable slider.
|
|
5
|
+
*
|
|
6
|
+
* - Mute button emits 'mute-toggle'
|
|
7
|
+
* - Slider uses Pointer Events API (pointerdown/pointermove/pointerup)
|
|
8
|
+
* - Slider fill width reflects current volume (0% to 100%)
|
|
9
|
+
* - When muted, fill shows 0% visually
|
|
10
|
+
*/
|
|
11
|
+
export declare class VolumeControl extends BaseComponent {
|
|
12
|
+
private trackRect;
|
|
13
|
+
private onPointerMove;
|
|
14
|
+
private onPointerUp;
|
|
15
|
+
protected onConnect(): void;
|
|
16
|
+
private eventToVolume;
|
|
17
|
+
private handlePointerDown;
|
|
18
|
+
private getVolumeIcon;
|
|
19
|
+
protected template(): TemplateResult;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=volume-control.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"volume-control.d.ts","sourceRoot":"","sources":["../../../../../src/skin/controls/volume-control.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGjD;;;;;;;GAOG;AACH,qBAAa,aAAc,SAAQ,aAAa;IAC9C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,aAAa,CAA+C;IACpE,OAAO,CAAC,WAAW,CAA+C;IAElE,SAAS,CAAC,SAAS,IAAI,IAAI;IAiB3B,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,aAAa;IAMrB,SAAS,CAAC,QAAQ,IAAI,cAAc;CAwBrC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MODERN_ICONS — Material-design-style filled icons for the modern theme.
|
|
3
|
+
*
|
|
4
|
+
* These override the default Lucide stroke icons. The modern theme uses
|
|
5
|
+
* fill-based icons with fill="currentColor" rather than stroked paths.
|
|
6
|
+
*
|
|
7
|
+
* Extracted from the player-reference.html design.
|
|
8
|
+
*/
|
|
9
|
+
export declare const MODERN_ICONS: Record<string, string>;
|
|
10
|
+
//# sourceMappingURL=icons-modern.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons-modern.d.ts","sourceRoot":"","sources":["../../../../../src/skin/icons/icons-modern.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA8C/C,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DEFAULT_ICONS maps icon names to SVG symbol markup.
|
|
3
|
+
* Each entry is a <symbol id="eb-{name}" viewBox="0 0 24 24">...</symbol> string.
|
|
4
|
+
*
|
|
5
|
+
* Icons are from Lucide (https://lucide.dev) — stroke-based, 24x24 viewBox.
|
|
6
|
+
* CSS sets stroke: currentColor, stroke-width: 2, stroke-linecap/linejoin: round.
|
|
7
|
+
* Skin authors can extend with registerBrandIcons() from sprite.ts.
|
|
8
|
+
*/
|
|
9
|
+
export declare const DEFAULT_ICONS: Record<string, string>;
|
|
10
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../../../src/skin/icons/icons.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAmDhD,CAAA"}
|