eb-player 2.1.4 → 2.2.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/dist/build/ebplayer.bundle.js +28 -6
- package/dist/build/ebplayer.bundle.js.map +1 -1
- package/dist/build/types/src/core/lifecycle.d.ts +4 -1
- package/dist/build/types/src/core/lifecycle.d.ts.map +1 -1
- package/dist/build/types/src/eb-player.d.ts +4 -0
- package/dist/build/types/src/eb-player.d.ts.map +1 -1
- package/dist/build/types/src/skin/controls/settings-panel.d.ts.map +1 -1
- package/package.json +5 -2
- package/dist/build/theme-forja.js +0 -1
- package/dist/build/theme-radio.js +0 -1
- package/dist/build/theme-snrt.js +0 -1
- package/dist/build/types/config.d.ts +0 -139
- package/dist/build/types/config.d.ts.map +0 -1
- package/dist/build/types/core/command-handler.d.ts +0 -50
- package/dist/build/types/core/command-handler.d.ts.map +0 -1
- package/dist/build/types/core/config.d.ts +0 -187
- package/dist/build/types/core/config.d.ts.map +0 -1
- package/dist/build/types/core/css/theme-forja.entry.d.ts +0 -2
- package/dist/build/types/core/css/theme-forja.entry.d.ts.map +0 -1
- package/dist/build/types/core/css/theme-radio.entry.d.ts +0 -2
- package/dist/build/types/core/css/theme-radio.entry.d.ts.map +0 -1
- package/dist/build/types/core/css/theme-snrt.entry.d.ts +0 -2
- package/dist/build/types/core/css/theme-snrt.entry.d.ts.map +0 -1
- package/dist/build/types/core/engine-state-sync.d.ts +0 -38
- package/dist/build/types/core/engine-state-sync.d.ts.map +0 -1
- package/dist/build/types/core/event-bus.d.ts +0 -90
- package/dist/build/types/core/event-bus.d.ts.map +0 -1
- package/dist/build/types/core/fsm.d.ts +0 -30
- package/dist/build/types/core/fsm.d.ts.map +0 -1
- package/dist/build/types/core/i18n.d.ts +0 -51
- package/dist/build/types/core/i18n.d.ts.map +0 -1
- package/dist/build/types/core/index.d.ts +0 -23
- package/dist/build/types/core/index.d.ts.map +0 -1
- package/dist/build/types/core/lifecycle.d.ts +0 -96
- package/dist/build/types/core/lifecycle.d.ts.map +0 -1
- package/dist/build/types/core/player-state.d.ts +0 -15
- package/dist/build/types/core/player-state.d.ts.map +0 -1
- package/dist/build/types/core/types.d.ts +0 -85
- package/dist/build/types/core/types.d.ts.map +0 -1
- package/dist/build/types/eb-player-standalone.d.ts +0 -23
- package/dist/build/types/eb-player-standalone.d.ts.map +0 -1
- package/dist/build/types/eb-player.d.ts +0 -56
- package/dist/build/types/eb-player.d.ts.map +0 -1
- package/dist/build/types/engine-state-sync.d.ts +0 -38
- package/dist/build/types/engine-state-sync.d.ts.map +0 -1
- package/dist/build/types/engines/abr/dash.d.ts +0 -56
- package/dist/build/types/engines/abr/dash.d.ts.map +0 -1
- package/dist/build/types/engines/abr/hls.d.ts +0 -105
- package/dist/build/types/engines/abr/hls.d.ts.map +0 -1
- package/dist/build/types/engines/base-engine.d.ts +0 -72
- package/dist/build/types/engines/base-engine.d.ts.map +0 -1
- package/dist/build/types/engines/cdn-loader.d.ts +0 -20
- package/dist/build/types/engines/cdn-loader.d.ts.map +0 -1
- package/dist/build/types/engines/cdn-token-manager.d.ts +0 -137
- package/dist/build/types/engines/cdn-token-manager.d.ts.map +0 -1
- package/dist/build/types/engines/dash.d.ts +0 -79
- package/dist/build/types/engines/dash.d.ts.map +0 -1
- package/dist/build/types/engines/drm.d.ts +0 -54
- package/dist/build/types/engines/drm.d.ts.map +0 -1
- package/dist/build/types/engines/hls-discontinuity-patch.d.ts +0 -43
- package/dist/build/types/engines/hls-discontinuity-patch.d.ts.map +0 -1
- package/dist/build/types/engines/hls.d.ts +0 -53
- package/dist/build/types/engines/hls.d.ts.map +0 -1
- package/dist/build/types/engines/index.d.ts +0 -26
- package/dist/build/types/engines/index.d.ts.map +0 -1
- package/dist/build/types/engines/ios/hls.d.ts +0 -20
- package/dist/build/types/engines/ios/hls.d.ts.map +0 -1
- package/dist/build/types/engines/poster/hls.d.ts +0 -35
- package/dist/build/types/engines/poster/hls.d.ts.map +0 -1
- package/dist/build/types/engines/retry/dash.d.ts +0 -39
- package/dist/build/types/engines/retry/dash.d.ts.map +0 -1
- package/dist/build/types/engines/retry/hls.d.ts +0 -47
- package/dist/build/types/engines/retry/hls.d.ts.map +0 -1
- package/dist/build/types/engines/snapshot/dash.d.ts +0 -55
- package/dist/build/types/engines/snapshot/dash.d.ts.map +0 -1
- package/dist/build/types/engines/snapshot/hls.d.ts +0 -118
- package/dist/build/types/engines/snapshot/hls.d.ts.map +0 -1
- package/dist/build/types/engines/stall-watchdog.d.ts +0 -41
- package/dist/build/types/engines/stall-watchdog.d.ts.map +0 -1
- package/dist/build/types/event-bus.d.ts +0 -54
- package/dist/build/types/event-bus.d.ts.map +0 -1
- package/dist/build/types/fsm.d.ts +0 -27
- package/dist/build/types/fsm.d.ts.map +0 -1
- package/dist/build/types/i18n.d.ts +0 -51
- package/dist/build/types/i18n.d.ts.map +0 -1
- package/dist/build/types/index.d.ts +0 -21
- package/dist/build/types/index.d.ts.map +0 -1
- package/dist/build/types/integrations/ads-manager.d.ts +0 -37
- package/dist/build/types/integrations/ads-manager.d.ts.map +0 -1
- package/dist/build/types/integrations/chromecast-manager.d.ts +0 -50
- package/dist/build/types/integrations/chromecast-manager.d.ts.map +0 -1
- package/dist/build/types/integrations/epg-manager.d.ts +0 -22
- package/dist/build/types/integrations/epg-manager.d.ts.map +0 -1
- package/dist/build/types/integrations/index.d.ts +0 -7
- package/dist/build/types/integrations/index.d.ts.map +0 -1
- package/dist/build/types/integrations/intro-stream-manager.d.ts +0 -33
- package/dist/build/types/integrations/intro-stream-manager.d.ts.map +0 -1
- package/dist/build/types/integrations/p2p-manager.d.ts +0 -42
- package/dist/build/types/integrations/p2p-manager.d.ts.map +0 -1
- package/dist/build/types/integrations/playlist-manager.d.ts +0 -21
- package/dist/build/types/integrations/playlist-manager.d.ts.map +0 -1
- package/dist/build/types/lifecycle.d.ts +0 -64
- package/dist/build/types/lifecycle.d.ts.map +0 -1
- package/dist/build/types/player-state.d.ts +0 -15
- package/dist/build/types/player-state.d.ts.map +0 -1
- package/dist/build/types/skin/bars/bottom-bar.d.ts +0 -16
- package/dist/build/types/skin/bars/bottom-bar.d.ts.map +0 -1
- package/dist/build/types/skin/bars/middle-bar.d.ts +0 -16
- package/dist/build/types/skin/bars/middle-bar.d.ts.map +0 -1
- package/dist/build/types/skin/bars/top-bar.d.ts +0 -15
- package/dist/build/types/skin/bars/top-bar.d.ts.map +0 -1
- package/dist/build/types/skin/base-component.d.ts +0 -69
- package/dist/build/types/skin/base-component.d.ts.map +0 -1
- package/dist/build/types/skin/brand/forja-playlist-bar.d.ts +0 -15
- package/dist/build/types/skin/brand/forja-playlist-bar.d.ts.map +0 -1
- package/dist/build/types/skin/brand/snrt-radio-carousel.d.ts +0 -16
- package/dist/build/types/skin/brand/snrt-radio-carousel.d.ts.map +0 -1
- package/dist/build/types/skin/component-registry.d.ts +0 -16
- package/dist/build/types/skin/component-registry.d.ts.map +0 -1
- package/dist/build/types/skin/controllers/auto-hide.d.ts +0 -27
- package/dist/build/types/skin/controllers/auto-hide.d.ts.map +0 -1
- package/dist/build/types/skin/controllers/keyboard.d.ts +0 -29
- package/dist/build/types/skin/controllers/keyboard.d.ts.map +0 -1
- package/dist/build/types/skin/controls/cast-button.d.ts +0 -15
- package/dist/build/types/skin/controls/cast-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/channel-name.d.ts +0 -16
- package/dist/build/types/skin/controls/channel-name.d.ts.map +0 -1
- package/dist/build/types/skin/controls/forward-button.d.ts +0 -15
- package/dist/build/types/skin/controls/forward-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/fullscreen-button.d.ts +0 -30
- package/dist/build/types/skin/controls/fullscreen-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/info-button.d.ts +0 -10
- package/dist/build/types/skin/controls/info-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/live-sync-button.d.ts +0 -20
- package/dist/build/types/skin/controls/live-sync-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/pip-button.d.ts +0 -21
- package/dist/build/types/skin/controls/pip-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/play-pause-button.d.ts +0 -14
- package/dist/build/types/skin/controls/play-pause-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/rewind-button.d.ts +0 -15
- package/dist/build/types/skin/controls/rewind-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/seekbar.d.ts +0 -48
- package/dist/build/types/skin/controls/seekbar.d.ts.map +0 -1
- package/dist/build/types/skin/controls/settings-panel.d.ts +0 -53
- package/dist/build/types/skin/controls/settings-panel.d.ts.map +0 -1
- package/dist/build/types/skin/controls/share-button.d.ts +0 -11
- package/dist/build/types/skin/controls/share-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/time-display.d.ts +0 -19
- package/dist/build/types/skin/controls/time-display.d.ts.map +0 -1
- package/dist/build/types/skin/controls/volume-control.d.ts +0 -21
- package/dist/build/types/skin/controls/volume-control.d.ts.map +0 -1
- package/dist/build/types/skin/icons/icons-modern.d.ts +0 -10
- package/dist/build/types/skin/icons/icons-modern.d.ts.map +0 -1
- package/dist/build/types/skin/icons/icons.d.ts +0 -10
- package/dist/build/types/skin/icons/icons.d.ts.map +0 -1
- package/dist/build/types/skin/icons/sprite.d.ts +0 -39
- package/dist/build/types/skin/icons/sprite.d.ts.map +0 -1
- package/dist/build/types/skin/index.d.ts +0 -24
- package/dist/build/types/skin/index.d.ts.map +0 -1
- package/dist/build/types/skin/overlays/error-message.d.ts +0 -14
- package/dist/build/types/skin/overlays/error-message.d.ts.map +0 -1
- package/dist/build/types/skin/overlays/info-overlay.d.ts +0 -15
- package/dist/build/types/skin/overlays/info-overlay.d.ts.map +0 -1
- package/dist/build/types/skin/overlays/loading-spinner.d.ts +0 -17
- package/dist/build/types/skin/overlays/loading-spinner.d.ts.map +0 -1
- package/dist/build/types/skin/overlays/preroll-overlay.d.ts +0 -39
- package/dist/build/types/skin/overlays/preroll-overlay.d.ts.map +0 -1
- package/dist/build/types/skin/overlays/socials-overlay.d.ts +0 -17
- package/dist/build/types/skin/overlays/socials-overlay.d.ts.map +0 -1
- package/dist/build/types/skin/overlays/toast-notification.d.ts +0 -18
- package/dist/build/types/skin/overlays/toast-notification.d.ts.map +0 -1
- package/dist/build/types/skin/skin-root.d.ts +0 -88
- package/dist/build/types/skin/skin-root.d.ts.map +0 -1
- package/dist/build/types/types.d.ts +0 -41
- package/dist/build/types/types.d.ts.map +0 -1
- package/dist/build/types/utils/chapters.d.ts +0 -16
- package/dist/build/types/utils/chapters.d.ts.map +0 -1
- package/dist/build/types/utils/format-duration.d.ts +0 -9
- package/dist/build/types/utils/format-duration.d.ts.map +0 -1
- package/dist/build/types/utils/format-wall-clock.d.ts +0 -6
- package/dist/build/types/utils/format-wall-clock.d.ts.map +0 -1
- package/dist/build/types/utils/settings-helpers.d.ts +0 -41
- package/dist/build/types/utils/settings-helpers.d.ts.map +0 -1
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import type { PlayerConfig } from '../core/config';
|
|
2
|
-
/**
|
|
3
|
-
* Parameters for P2PManager.integrate().
|
|
4
|
-
*/
|
|
5
|
-
export interface P2PIntegrateParams {
|
|
6
|
-
video: HTMLVideoElement;
|
|
7
|
-
driver: unknown;
|
|
8
|
-
type: 'hls' | 'dash';
|
|
9
|
-
config: PlayerConfig;
|
|
10
|
-
signal: AbortSignal;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* P2PManager integrates the EasyBroadcast P2P SDK.
|
|
14
|
-
*
|
|
15
|
-
* Loads the SDK from CDN, creates an EBLibrary instance, builds settings
|
|
16
|
-
* (resourceManager, swarmManager, statsOutput, playerInput), and calls
|
|
17
|
-
* integrate() + start(). Cleans up via stop() on abort.
|
|
18
|
-
*
|
|
19
|
-
* Port of component/engines/eb/start.js.
|
|
20
|
-
*/
|
|
21
|
-
export declare class P2PManager {
|
|
22
|
-
private lib;
|
|
23
|
-
/**
|
|
24
|
-
* Integrate the EasyBroadcast P2P SDK.
|
|
25
|
-
* - Skips if config.lib or config.manager is absent/false
|
|
26
|
-
* - Loads the SDK via loadScript
|
|
27
|
-
* - Builds integration settings from config
|
|
28
|
-
* - Calls lib.integrate() and lib.start()
|
|
29
|
-
* - Registers abort cleanup
|
|
30
|
-
*/
|
|
31
|
-
integrate(params: P2PIntegrateParams): Promise<void>;
|
|
32
|
-
/**
|
|
33
|
-
* Stop and detach the P2P SDK. Idempotent.
|
|
34
|
-
*
|
|
35
|
-
* Called on AbortSignal teardown, and eagerly on an unrecoverable engine
|
|
36
|
-
* error: hls.js nulls its media element on a fatal keySystemError, so a
|
|
37
|
-
* still-running eblib instance would keep polling `media.currentTime` and
|
|
38
|
-
* throw in a loop until full dispose.
|
|
39
|
-
*/
|
|
40
|
-
stop(): void;
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=p2p-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"p2p-manager.d.ts","sourceRoot":"","sources":["../../../../src/integrations/p2p-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAiClD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,gBAAgB,CAAA;IACvB,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,KAAK,GAAG,MAAM,CAAA;IACpB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,WAAW,CAAA;CACpB;AAED;;;;;;;;GAQG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,GAAG,CAAiC;IAE5C;;;;;;;OAOG;IACG,SAAS,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmD1D;;;;;;;OAOG;IACH,IAAI,IAAI,IAAI;CAMb"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { PlayerConfig } from '../core/config';
|
|
2
|
-
import type { PlayerState } from '../core/types';
|
|
3
|
-
import type { TypedEventBus } from '../core/event-bus';
|
|
4
|
-
/**
|
|
5
|
-
* PlaylistManager manages episode/playlist navigation.
|
|
6
|
-
*
|
|
7
|
-
* Writes state.playlist from config, then listens for 'playlist-next' and
|
|
8
|
-
* 'playlist-prev' bus events to advance/decrement the episode index with
|
|
9
|
-
* wrap-around. Updates state.src when the current episode changes.
|
|
10
|
-
*/
|
|
11
|
-
export declare class PlaylistManager {
|
|
12
|
-
/**
|
|
13
|
-
* Initialize playlist from config.
|
|
14
|
-
* - Skips if config.playlist is undefined or empty
|
|
15
|
-
* - Writes state.playlist and state.currentEpisode = 0
|
|
16
|
-
* - Listens for playlist-next and playlist-prev events (cleaned up on abort)
|
|
17
|
-
*/
|
|
18
|
-
init(config: PlayerConfig, state: PlayerState, bus: TypedEventBus, signal: AbortSignal): void;
|
|
19
|
-
private advance;
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=playlist-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"playlist-manager.d.ts","sourceRoot":"","sources":["../../../../src/integrations/playlist-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGtD;;;;;;GAMG;AACH,qBAAa,eAAe;IAC1B;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAiB7F,OAAO,CAAC,OAAO;CAMhB"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { TypedEventBus } from './event-bus';
|
|
2
|
-
import { I18n } from './i18n';
|
|
3
|
-
import type { PlayerState } from './types';
|
|
4
|
-
import type { PlayerConfig } from './config';
|
|
5
|
-
import type { EngineStateSync } from './engine-state-sync';
|
|
6
|
-
/**
|
|
7
|
-
* PlayerController manages the complete lifecycle of a player instance.
|
|
8
|
-
*
|
|
9
|
-
* Lifecycle:
|
|
10
|
-
* 1. Construct with config
|
|
11
|
-
* 2. mount(container) — apply CSS vars, set data-theme, register listeners with AbortSignal
|
|
12
|
-
* 3. setEngineSync(sync) — attach engine bridge to state
|
|
13
|
-
* 4. dispose() — abort all listeners, detach engine, clear references
|
|
14
|
-
* 5. Optionally re-mount with a fresh container (dispose() creates a new AbortController)
|
|
15
|
-
*
|
|
16
|
-
* AbortController pattern:
|
|
17
|
-
* All listeners registered during mount() and setEngineSync() use the AbortController's
|
|
18
|
-
* signal. Calling dispose() aborts the signal, removing all registered listeners atomically.
|
|
19
|
-
* After dispose(), a fresh AbortController is created so the controller can be re-mounted.
|
|
20
|
-
*/
|
|
21
|
-
export declare class PlayerController {
|
|
22
|
-
readonly state: PlayerState;
|
|
23
|
-
readonly bus: TypedEventBus;
|
|
24
|
-
readonly config: PlayerConfig;
|
|
25
|
-
readonly i18n: I18n;
|
|
26
|
-
private abortController;
|
|
27
|
-
private _container;
|
|
28
|
-
private engineSync;
|
|
29
|
-
private get signal();
|
|
30
|
-
/**
|
|
31
|
-
* The currently mounted container element, or null if not mounted / after dispose().
|
|
32
|
-
* Available for Phase 2 engine implementations that need access to the DOM context.
|
|
33
|
-
*/
|
|
34
|
-
get container(): HTMLElement | null;
|
|
35
|
-
constructor(config: Partial<PlayerConfig>);
|
|
36
|
-
/**
|
|
37
|
-
* Attach the player to a DOM container element.
|
|
38
|
-
* Applies runtime CSS custom property overrides and sets the data-theme attribute
|
|
39
|
-
* for brand theming (backward compat with primaryColor/skinColors consumer API).
|
|
40
|
-
*
|
|
41
|
-
* CSS application order (later wins):
|
|
42
|
-
* 1. primaryColor → --eb-color-primary
|
|
43
|
-
* 2. skinColors.general → --eb-color-primary (overrides primaryColor)
|
|
44
|
-
* 3. skinColors.progressBar → --eb-color-progress
|
|
45
|
-
* 4. skinColors.volumeBar → --eb-color-volume
|
|
46
|
-
*/
|
|
47
|
-
mount(container: HTMLElement): void;
|
|
48
|
-
/**
|
|
49
|
-
* Attach an engine bridge implementation to the state store.
|
|
50
|
-
* If an existing engine is attached, detach() is called first.
|
|
51
|
-
* The engine receives the PlayerState and the current AbortSignal.
|
|
52
|
-
*/
|
|
53
|
-
setEngineSync(sync: EngineStateSync): void;
|
|
54
|
-
/**
|
|
55
|
-
* Dispose the player instance.
|
|
56
|
-
* - Calls engineSync.detach() if an engine is attached
|
|
57
|
-
* - Calls bus.dispose() to clear all event listeners
|
|
58
|
-
* - Aborts the AbortController (removes all signal-based listeners atomically)
|
|
59
|
-
* - Clears container and engine references
|
|
60
|
-
* - Creates a fresh AbortController for potential re-mount
|
|
61
|
-
*/
|
|
62
|
-
dispose(): void;
|
|
63
|
-
}
|
|
64
|
-
//# sourceMappingURL=lifecycle.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../src/core/lifecycle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAE1D;;;;;;;;;;;;;;GAcG;AACH,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;IAC3B,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IAEnB,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,UAAU,CAAwB;IAE1C,OAAO,KAAK,MAAM,GAEjB;IAED;;;OAGG;IACH,IAAI,SAAS,IAAI,WAAW,GAAG,IAAI,CAElC;gBAEW,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC;IAUzC;;;;;;;;;;OAUG;IACH,KAAK,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IA6BnC;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAQ1C;;;;;;;OAOG;IACH,OAAO,IAAI,IAAI;CAehB"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { StateMap, PlayerState } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* Creates a Proxy-based reactive PlayerState instance.
|
|
4
|
-
*
|
|
5
|
-
* The Proxy set trap enforces three rules:
|
|
6
|
-
* 1. Non-plain objects (class instances) are rejected with a TypeError
|
|
7
|
-
* 2. `playbackState` assignments are validated via the FSM transition guard
|
|
8
|
-
* 3. Assigning the same value is a no-op (no subscriber notification)
|
|
9
|
-
*
|
|
10
|
-
* Subscribers are registered via `state.on('propertyName', callback, { signal })`.
|
|
11
|
-
* Pass an AbortController signal to clean up subscriptions automatically.
|
|
12
|
-
*/
|
|
13
|
-
export declare function createPlayerState(initial?: Partial<StateMap>): PlayerState;
|
|
14
|
-
export type { PlayerState };
|
|
15
|
-
//# sourceMappingURL=player-state.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"player-state.d.ts","sourceRoot":"","sources":["../../../src/core/player-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAY,WAAW,EAAE,MAAM,SAAS,CAAA;AA8E9D;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,WAAW,CAoD1E;AAED,YAAY,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { TemplateResult } from 'lit-html';
|
|
2
|
-
import { BaseComponent } from '../base-component';
|
|
3
|
-
/**
|
|
4
|
-
* BottomBar is a structural container for the seekbar and control buttons.
|
|
5
|
-
*
|
|
6
|
-
* Renders a controls row with dynamic slot divs based on the layout config.
|
|
7
|
-
* When no layout config is provided, falls back to DEFAULT_LAYOUT.
|
|
8
|
-
*
|
|
9
|
-
* The slot divs are empty containers — individual control components
|
|
10
|
-
* mount into them via SkinRoot.connectChildComponents().
|
|
11
|
-
*/
|
|
12
|
-
export declare class BottomBar extends BaseComponent {
|
|
13
|
-
protected onConnect(): void;
|
|
14
|
-
protected template(): TemplateResult;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=bottom-bar.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bottom-bar.d.ts","sourceRoot":"","sources":["../../../../../src/skin/bars/bottom-bar.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAIjD;;;;;;;;GAQG;AACH,qBAAa,SAAU,SAAQ,aAAa;IAC1C,SAAS,CAAC,SAAS,IAAI,IAAI;IAI3B,SAAS,CAAC,QAAQ,IAAI,cAAc;CAmBrC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,69 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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;IA6CpC,OAAO,CAAC,cAAc;CAKvB"}
|
|
@@ -1,16 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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;AAgBrD,KAAK,gBAAgB,GAAG,MAAM,aAAa,CAAA;AAE3C;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAepE,CAAA;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAG7D"}
|
|
@@ -1,27 +0,0 @@
|
|
|
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,
|
|
7
|
-
* no ad is playing, and no intro stream 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
|
|
@@ -1 +0,0 @@
|
|
|
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;CAYb"}
|
|
@@ -1,29 +0,0 @@
|
|
|
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 or intro streams (state.adPlaying || state.introStreamPlaying).
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { TemplateResult } from 'lit-html';
|
|
2
|
-
import { BaseComponent } from '../base-component';
|
|
3
|
-
/**
|
|
4
|
-
* ChannelName displays a static label (e.g. channel or program name)
|
|
5
|
-
* in the bottom bar, next to the live badge and time display.
|
|
6
|
-
*
|
|
7
|
-
* Reads config.channelName and renders nothing if unset.
|
|
8
|
-
*
|
|
9
|
-
* Usage:
|
|
10
|
-
* EBPlayer.start({ src: '...', skin: 'v2', channelName: 'ALOULA' })
|
|
11
|
-
*/
|
|
12
|
-
export declare class ChannelName extends BaseComponent {
|
|
13
|
-
protected onConnect(): void;
|
|
14
|
-
protected template(): TemplateResult;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=channel-name.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channel-name.d.ts","sourceRoot":"","sources":["../../../../../src/skin/controls/channel-name.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD;;;;;;;;GAQG;AACH,qBAAa,WAAY,SAAQ,aAAa;IAC5C,SAAS,CAAC,SAAS,IAAI,IAAI;IAI3B,SAAS,CAAC,QAAQ,IAAI,cAAc;CAOrC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
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 or intro-stream 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
|
|
@@ -1 +0,0 @@
|
|
|
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;IAM3B,SAAS,CAAC,QAAQ,IAAI,cAAc;IAwBpC,OAAO,CAAC,WAAW;CAKpB"}
|
|
@@ -1,30 +0,0 @@
|
|
|
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
|
-
* - Falls back to video-element fullscreen on mobile (iOS Safari webkitEnterFullscreen,
|
|
9
|
-
* Android Chrome video.requestFullscreen) when the Fullscreen API is not available
|
|
10
|
-
* for arbitrary elements
|
|
11
|
-
* - Re-renders when state.isFullscreen changes
|
|
12
|
-
*/
|
|
13
|
-
export declare class FullscreenButton extends BaseComponent {
|
|
14
|
-
private changeHandler;
|
|
15
|
-
private videoEl;
|
|
16
|
-
private videoFullscreenBeginHandler;
|
|
17
|
-
private videoFullscreenEndHandler;
|
|
18
|
-
private useVideoFallback;
|
|
19
|
-
protected onConnect(): void;
|
|
20
|
-
/**
|
|
21
|
-
* On mobile browsers the Fullscreen API may not work on arbitrary elements,
|
|
22
|
-
* but the <video> element itself supports fullscreen via webkitEnterFullscreen
|
|
23
|
-
* (iOS Safari) or video.requestFullscreen() (Android Chrome).
|
|
24
|
-
*/
|
|
25
|
-
private initVideoFallback;
|
|
26
|
-
private handleDocFullscreenChange;
|
|
27
|
-
private handleClick;
|
|
28
|
-
protected template(): TemplateResult;
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=fullscreen-button.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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;AAajD;;;;;;;;;GASG;AACH,qBAAa,gBAAiB,SAAQ,aAAa;IACjD,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,2BAA2B,CAA4B;IAC/D,OAAO,CAAC,yBAAyB,CAA4B;IAC7D,OAAO,CAAC,gBAAgB,CAAQ;IAEhC,SAAS,CAAC,SAAS,IAAI,IAAI;IAsB3B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IA4CzB,OAAO,CAAC,yBAAyB,CAIhC;IAED,OAAO,CAAC,WAAW;IA0BnB,SAAS,CAAC,QAAQ,IAAI,cAAc;CAqBrC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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;CAgBrC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
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 or intro-stream 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
|