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 +0,0 @@
|
|
|
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;IAM3B,SAAS,CAAC,QAAQ,IAAI,cAAc;IAwBpC,OAAO,CAAC,WAAW;CAKpB"}
|
|
@@ -1,48 +0,0 @@
|
|
|
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
|
-
private trackEl;
|
|
27
|
-
private boundDocPointerMove;
|
|
28
|
-
protected onConnect(): void;
|
|
29
|
-
disconnect(): void;
|
|
30
|
-
private scheduleRender;
|
|
31
|
-
/**
|
|
32
|
-
* Converts a PointerEvent clientX to a time value, accounting for RTL mode.
|
|
33
|
-
* Clamps result to [0, duration].
|
|
34
|
-
*/
|
|
35
|
-
private eventToTime;
|
|
36
|
-
private startDocumentTracking;
|
|
37
|
-
private stopDocumentTracking;
|
|
38
|
-
private onDocPointerMove;
|
|
39
|
-
private handlePointerDown;
|
|
40
|
-
private handlePointerMove;
|
|
41
|
-
private handlePointerUp;
|
|
42
|
-
private updateTooltip;
|
|
43
|
-
private findActiveChapter;
|
|
44
|
-
private findSkippableChapter;
|
|
45
|
-
private renderEpgSegments;
|
|
46
|
-
protected template(): TemplateResult;
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=seekbar.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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;IAC5D,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,mBAAmB,CAA+C;IAE1E,SAAS,CAAC,SAAS,IAAI,IAAI;IAuBlB,UAAU,IAAI,IAAI;IAO3B,OAAO,CAAC,cAAc;IAWtB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,aAAa;IA6BrB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,iBAAiB;IA6BzB,SAAS,CAAC,QAAQ,IAAI,cAAc;CA0FrC"}
|
|
@@ -1,53 +0,0 @@
|
|
|
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
|
-
private outsideClickHandler;
|
|
29
|
-
private outsideClickTimer;
|
|
30
|
-
protected onConnect(): void;
|
|
31
|
-
/**
|
|
32
|
-
* Determines which quadrant of the player the toggle button sits in,
|
|
33
|
-
* so the panel can open in the direction with the most available space.
|
|
34
|
-
*/
|
|
35
|
-
private computePlacement;
|
|
36
|
-
private navigateTo;
|
|
37
|
-
private navigateBack;
|
|
38
|
-
/**
|
|
39
|
-
* Returns the display label for the currently selected value in a category.
|
|
40
|
-
*/
|
|
41
|
-
private currentValueLabel;
|
|
42
|
-
private renderRootMenu;
|
|
43
|
-
private renderSubMenu;
|
|
44
|
-
private renderQualityMenu;
|
|
45
|
-
private renderSpeedMenu;
|
|
46
|
-
private renderAudioMenu;
|
|
47
|
-
private renderSubtitlesMenu;
|
|
48
|
-
private addOutsideClickListener;
|
|
49
|
-
private removeOutsideClickListener;
|
|
50
|
-
private toggleSettings;
|
|
51
|
-
protected template(): TemplateResult;
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=settings-panel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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;IACjD,OAAO,CAAC,mBAAmB,CAA6C;IACxE,OAAO,CAAC,iBAAiB,CAA6C;IAEtE,SAAS,CAAC,SAAS,IAAI,IAAI;IA4B3B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,YAAY;IAKpB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,cAAc;IAItB,SAAS,CAAC,QAAQ,IAAI,cAAc;CA4CrC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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;CAyBrC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { html as litHtml } from 'lit-html';
|
|
2
|
-
import type { TemplateResult } from 'lit-html';
|
|
3
|
-
/**
|
|
4
|
-
* Injects the SVG sprite into document.body.
|
|
5
|
-
*
|
|
6
|
-
* Calling this multiple times is safe — if the sprite is already injected
|
|
7
|
-
* and no extra icons are provided, it returns early.
|
|
8
|
-
*
|
|
9
|
-
* If extraIcons are provided, the sprite innerHTML is updated with the
|
|
10
|
-
* merged symbol set.
|
|
11
|
-
*
|
|
12
|
-
* @param extraIcons - Additional SVG symbol strings to merge with DEFAULT_ICONS
|
|
13
|
-
*/
|
|
14
|
-
export declare function injectSprite(extraIcons?: Record<string, string>): void;
|
|
15
|
-
/**
|
|
16
|
-
* Returns a lit-html TemplateResult for an SVG icon using the sprite.
|
|
17
|
-
*
|
|
18
|
-
* The icon is referenced via <use href="#eb-{name}">.
|
|
19
|
-
* The sprite must be injected before icons are rendered to screen.
|
|
20
|
-
*
|
|
21
|
-
* @param name - Icon name (e.g. 'play', 'pause', 'fullscreen')
|
|
22
|
-
* @param className - Optional additional CSS class
|
|
23
|
-
*/
|
|
24
|
-
export declare function icon(name: string, className?: string): TemplateResult;
|
|
25
|
-
/**
|
|
26
|
-
* Merges additional brand-specific SVG symbols into the sprite.
|
|
27
|
-
* Calling this updates the #eb-sprite element with the new symbols.
|
|
28
|
-
*
|
|
29
|
-
* @param extras - Record mapping icon names to SVG symbol strings
|
|
30
|
-
*/
|
|
31
|
-
export declare function registerBrandIcons(extras: Record<string, string>): void;
|
|
32
|
-
/**
|
|
33
|
-
* Resets the sprite back to DEFAULT_ICONS, discarding any brand overrides.
|
|
34
|
-
* The DOM sprite element is updated immediately.
|
|
35
|
-
*/
|
|
36
|
-
export declare function resetSprite(): void;
|
|
37
|
-
export type { TemplateResult };
|
|
38
|
-
export { litHtml as html };
|
|
39
|
-
//# sourceMappingURL=sprite.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sprite.d.ts","sourceRoot":"","sources":["../../../../../src/skin/icons/sprite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,UAAU,CAAA;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAiB9C;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAwBtE;AAED;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc,CAGrE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAEvE;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAOlC;AAGD,YAAY,EAAE,cAAc,EAAE,CAAA;AAG9B,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,CAAA"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import './css/skin.css';
|
|
2
|
-
export { BaseComponent } from './base-component';
|
|
3
|
-
export { SkinRoot } from './skin-root';
|
|
4
|
-
export { TopBar } from './bars/top-bar';
|
|
5
|
-
export { BottomBar } from './bars/bottom-bar';
|
|
6
|
-
export { MiddleBar } from './bars/middle-bar';
|
|
7
|
-
export { PlayPauseButton } from './controls/play-pause-button';
|
|
8
|
-
export { VolumeControl } from './controls/volume-control';
|
|
9
|
-
export { TimeDisplay } from './controls/time-display';
|
|
10
|
-
export { LiveSyncButton } from './controls/live-sync-button';
|
|
11
|
-
export { FullscreenButton } from './controls/fullscreen-button';
|
|
12
|
-
export { PipButton } from './controls/pip-button';
|
|
13
|
-
export { CastButton } from './controls/cast-button';
|
|
14
|
-
export { SettingsPanel } from './controls/settings-panel';
|
|
15
|
-
export { Seekbar } from './controls/seekbar';
|
|
16
|
-
export { LoadingSpinner } from './overlays/loading-spinner';
|
|
17
|
-
export { ErrorMessage } from './overlays/error-message';
|
|
18
|
-
export { SocialsOverlay } from './overlays/socials-overlay';
|
|
19
|
-
export { InfoOverlay } from './overlays/info-overlay';
|
|
20
|
-
export { AutoHideController } from './controllers/auto-hide';
|
|
21
|
-
export { KeyboardController } from './controllers/keyboard';
|
|
22
|
-
export { SnrtRadioCarousel } from './brand/snrt-radio-carousel';
|
|
23
|
-
export { ForjaPlaylistBar } from './brand/forja-playlist-bar';
|
|
24
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/skin/index.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,CAAA;AAGvB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAGhD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAGtC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAG7C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAG5C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAGrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAG3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { TemplateResult } from 'lit-html';
|
|
2
|
-
import { BaseComponent } from '../base-component';
|
|
3
|
-
/**
|
|
4
|
-
* Error message overlay.
|
|
5
|
-
*
|
|
6
|
-
* Visible when state.error is not null.
|
|
7
|
-
* Shows the error string (raw text — i18n lookup can be applied at a higher level).
|
|
8
|
-
* Has a retry button that emits 'request-reload'.
|
|
9
|
-
*/
|
|
10
|
-
export declare class ErrorMessage extends BaseComponent {
|
|
11
|
-
protected onConnect(): void;
|
|
12
|
-
protected template(): TemplateResult;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=error-message.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-message.d.ts","sourceRoot":"","sources":["../../../../../src/skin/overlays/error-message.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD;;;;;;GAMG;AACH,qBAAa,YAAa,SAAQ,aAAa;IAC7C,SAAS,CAAC,SAAS,IAAI,IAAI;IAK3B,SAAS,CAAC,QAAQ,IAAI,cAAc;CAmBrC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { TemplateResult } from 'lit-html';
|
|
2
|
-
import { BaseComponent } from '../base-component';
|
|
3
|
-
/**
|
|
4
|
-
* Info overlay.
|
|
5
|
-
*
|
|
6
|
-
* Visible when state.infoOpen is true.
|
|
7
|
-
* Renders config.about text (using unsafeHTML would allow HTML, but we use
|
|
8
|
-
* textContent binding here to avoid XSS from consumer-provided strings).
|
|
9
|
-
* Close button sets state.infoOpen = false.
|
|
10
|
-
*/
|
|
11
|
-
export declare class InfoOverlay extends BaseComponent {
|
|
12
|
-
protected onConnect(): void;
|
|
13
|
-
protected template(): TemplateResult;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=info-overlay.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"info-overlay.d.ts","sourceRoot":"","sources":["../../../../../src/skin/overlays/info-overlay.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD;;;;;;;GAOG;AACH,qBAAa,WAAY,SAAQ,aAAa;IAC5C,SAAS,CAAC,SAAS,IAAI,IAAI;IAK3B,SAAS,CAAC,QAAQ,IAAI,cAAc;CAsBrC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { TemplateResult } from 'lit-html';
|
|
2
|
-
import { BaseComponent } from '../base-component';
|
|
3
|
-
/**
|
|
4
|
-
* Buffering/loading spinner overlay.
|
|
5
|
-
*
|
|
6
|
-
* Shows in two modes:
|
|
7
|
-
* - Buffering: visible when state.playbackState === 'buffering' (no text)
|
|
8
|
-
* - Reconnecting: visible when state.reconnecting === true (shows "Reconnecting..." text)
|
|
9
|
-
*
|
|
10
|
-
* Hidden when not buffering and not reconnecting.
|
|
11
|
-
* Renders a CSS arc ring that spins around the center (wrapping the play/pause button).
|
|
12
|
-
*/
|
|
13
|
-
export declare class LoadingSpinner extends BaseComponent {
|
|
14
|
-
protected onConnect(): void;
|
|
15
|
-
protected template(): TemplateResult;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=loading-spinner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loading-spinner.d.ts","sourceRoot":"","sources":["../../../../../src/skin/overlays/loading-spinner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD;;;;;;;;;GASG;AACH,qBAAa,cAAe,SAAQ,aAAa;IAC/C,SAAS,CAAC,SAAS,IAAI,IAAI;IAM3B,SAAS,CAAC,QAAQ,IAAI,cAAc;CAiBrC"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import type { TemplateResult } from 'lit-html';
|
|
2
|
-
import { BaseComponent } from '../base-component';
|
|
3
|
-
/**
|
|
4
|
-
* PrerollOverlay — V1 parity for the intro-stream skip + click-through UX.
|
|
5
|
-
*
|
|
6
|
-
* Two responsibilities:
|
|
7
|
-
* 1. Skip button + countdown (D-13 / D-14). `Number.isFinite(config.prerollSkip)`
|
|
8
|
-
* gates existence. While the countdown is > 0 the button shows `Skip (N)` and
|
|
9
|
-
* is disabled. At 0 it shows `Skip` and is clickable. Clicking emits
|
|
10
|
-
* `preroll-skip` on the bus.
|
|
11
|
-
* 2. Whole-overlay click-through (D-16, INTRO-04). Clicks landing on the
|
|
12
|
-
* overlay (outside the skip button) open `config.prerollLink` in a new
|
|
13
|
-
* tab with the security argument required by ASVS V14 / T-07-05 (blocks
|
|
14
|
-
* reverse tabnabbing and Referer leaks). Skip-button clicks
|
|
15
|
-
* `stopPropagation()` so they never reach this handler.
|
|
16
|
-
*
|
|
17
|
-
* Hidden (empty div) when `state.introStreamPlaying === false`.
|
|
18
|
-
*
|
|
19
|
-
* The skip countdown is derived from intro PLAYBACK progress
|
|
20
|
-
* (`state.currentTime`), not a wall-clock timer — so it only advances while the
|
|
21
|
-
* intro is actually playing. While the intro is paused (e.g. `autoplay:false`
|
|
22
|
-
* waiting for the user's gesture, or buffering) the countdown holds. Without
|
|
23
|
-
* this the skip control would unlock before the user ever saw the intro play.
|
|
24
|
-
* State subscriptions auto-clean via the `{ signal }` option — no manual timer
|
|
25
|
-
* teardown is required.
|
|
26
|
-
*/
|
|
27
|
-
export declare class PrerollOverlay extends BaseComponent {
|
|
28
|
-
protected onConnect(): void;
|
|
29
|
-
/**
|
|
30
|
-
* Seconds remaining before the intro can be skipped, derived from intro
|
|
31
|
-
* playback position (`state.currentTime`). Infinity when prerollSkip is
|
|
32
|
-
* Infinity (no skip button). Clamped at 0 (never negative).
|
|
33
|
-
*/
|
|
34
|
-
private remainingSkip;
|
|
35
|
-
protected template(): TemplateResult;
|
|
36
|
-
private handleSkip;
|
|
37
|
-
private handleOverlayClick;
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=preroll-overlay.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"preroll-overlay.d.ts","sourceRoot":"","sources":["../../../../../src/skin/overlays/preroll-overlay.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,cAAe,SAAQ,aAAa;IAC/C,SAAS,CAAC,SAAS,IAAI,IAAI;IAO3B;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAMrB,SAAS,CAAC,QAAQ,IAAI,cAAc;IA6BpC,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,kBAAkB;CAiB3B"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { TemplateResult } from 'lit-html';
|
|
2
|
-
import { BaseComponent } from '../base-component';
|
|
3
|
-
/**
|
|
4
|
-
* Social sharing overlay.
|
|
5
|
-
*
|
|
6
|
-
* Visible when state.socialsOpen is true.
|
|
7
|
-
* Shows sharing links from config.socials (Record<string, string>).
|
|
8
|
-
* Close button sets state.socialsOpen = false.
|
|
9
|
-
*
|
|
10
|
-
* If config.socials is false, no links are rendered.
|
|
11
|
-
* Each link opens in a new tab.
|
|
12
|
-
*/
|
|
13
|
-
export declare class SocialsOverlay extends BaseComponent {
|
|
14
|
-
protected onConnect(): void;
|
|
15
|
-
protected template(): TemplateResult;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=socials-overlay.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"socials-overlay.d.ts","sourceRoot":"","sources":["../../../../../src/skin/overlays/socials-overlay.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD;;;;;;;;;GASG;AACH,qBAAa,cAAe,SAAQ,aAAa;IAC/C,SAAS,CAAC,SAAS,IAAI,IAAI;IAK3B,SAAS,CAAC,QAAQ,IAAI,cAAc;CAqCrC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { TemplateResult } from 'lit-html';
|
|
2
|
-
import { BaseComponent } from '../base-component';
|
|
3
|
-
/**
|
|
4
|
-
* Toast notification overlay.
|
|
5
|
-
*
|
|
6
|
-
* Renders a dismissible status message when state.toast is not null.
|
|
7
|
-
* Hidden (aria-hidden) when state.toast is null.
|
|
8
|
-
*
|
|
9
|
-
* The toast message is set by CommandHandler (e.g., 'cast.failed' message)
|
|
10
|
-
* and auto-clears after 3 seconds via CommandHandler's showToast() method.
|
|
11
|
-
*
|
|
12
|
-
* Positioning and fade animation handled by skin.css (.eb-toast class).
|
|
13
|
-
*/
|
|
14
|
-
export declare class ToastNotification extends BaseComponent {
|
|
15
|
-
protected onConnect(): void;
|
|
16
|
-
protected template(): TemplateResult;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=toast-notification.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toast-notification.d.ts","sourceRoot":"","sources":["../../../../../src/skin/overlays/toast-notification.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD;;;;;;;;;;GAUG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,SAAS,CAAC,SAAS,IAAI,IAAI;IAK3B,SAAS,CAAC,QAAQ,IAAI,cAAc;CASrC"}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import type { TemplateResult } from 'lit-html';
|
|
2
|
-
import { BaseComponent } from './base-component';
|
|
3
|
-
/**
|
|
4
|
-
* SkinRoot is the master DOM scaffold component for the player.
|
|
5
|
-
*
|
|
6
|
-
* It creates the full player container structure:
|
|
7
|
-
* - video element
|
|
8
|
-
* - overlay zone (loading, error, poster, radio, socials, info)
|
|
9
|
-
* - ads container (for IMA SDK)
|
|
10
|
-
* - top-bar zone
|
|
11
|
-
* - middle-bar zone (conditional: config.middlebar)
|
|
12
|
-
* - bottom-bar zone
|
|
13
|
-
* - 4 extension zones (top-extra, bottom-extra, overlay, controls-extra)
|
|
14
|
-
*
|
|
15
|
-
* Handles RTL direction, iOS native controls fallback, and no-UI mode.
|
|
16
|
-
* Exposes getVideoElement() and getAdsContainer() for integration wiring.
|
|
17
|
-
*/
|
|
18
|
-
export declare class SkinRoot extends BaseComponent {
|
|
19
|
-
private videoElement;
|
|
20
|
-
private adsContainerElement;
|
|
21
|
-
private posterVideoElement;
|
|
22
|
-
private extensionCleanups;
|
|
23
|
-
private childComponents;
|
|
24
|
-
/**
|
|
25
|
-
* Returns the created HTMLVideoElement.
|
|
26
|
-
* Returns null before connect() or after disconnect().
|
|
27
|
-
*/
|
|
28
|
-
getVideoElement(): HTMLVideoElement | null;
|
|
29
|
-
/**
|
|
30
|
-
* Returns the ads container HTMLElement used by IMA SDK's AdDisplayContainer.
|
|
31
|
-
* Returns null before connect() or after disconnect().
|
|
32
|
-
*/
|
|
33
|
-
getAdsContainer(): HTMLElement | null;
|
|
34
|
-
/**
|
|
35
|
-
* Returns the poster video HTMLVideoElement for poster stream playback.
|
|
36
|
-
* Returns null before connect(), after disconnect(), or when config.posterStream is falsy.
|
|
37
|
-
*/
|
|
38
|
-
getPosterVideoElement(): HTMLVideoElement | null;
|
|
39
|
-
protected onConnect(): void;
|
|
40
|
-
protected template(): TemplateResult;
|
|
41
|
-
/**
|
|
42
|
-
* Connects all child components into their respective DOM zones.
|
|
43
|
-
* Only called when config.noUi is false (UI mode).
|
|
44
|
-
* Child components are tracked in this.childComponents for cleanup on disconnect().
|
|
45
|
-
*
|
|
46
|
-
* Component placement is driven by config.layout (falls back to DEFAULT_LAYOUT).
|
|
47
|
-
*/
|
|
48
|
-
private connectChildComponents;
|
|
49
|
-
private renderNoUiTemplate;
|
|
50
|
-
private bindElementRefs;
|
|
51
|
-
private subscribeToState;
|
|
52
|
-
/**
|
|
53
|
-
* Toggles poster image visibility based on playbackState.
|
|
54
|
-
* Uses direct DOM manipulation instead of full re-render to avoid
|
|
55
|
-
* interfering with child component render roots.
|
|
56
|
-
*/
|
|
57
|
-
private updatePosterVisibility;
|
|
58
|
-
/**
|
|
59
|
-
* Toggles iOS-specific class and native controls attribute without full re-render.
|
|
60
|
-
*/
|
|
61
|
-
private updateIOSState;
|
|
62
|
-
/**
|
|
63
|
-
* Toggles radio overlay visibility without full re-render.
|
|
64
|
-
* Creates or removes the radio overlay element as needed.
|
|
65
|
-
*/
|
|
66
|
-
private updateRadioOverlay;
|
|
67
|
-
/**
|
|
68
|
-
* Toggles eb-controls-visible / eb-controls-hidden class on the player container.
|
|
69
|
-
* CSS handles opacity transition and pointer-events on bars.
|
|
70
|
-
*/
|
|
71
|
-
private updateControlsVisibility;
|
|
72
|
-
/**
|
|
73
|
-
* Toggles the eb-ad-playing class on the player container. While an IMA ad
|
|
74
|
-
* plays, CSS raises the ads container above the player chrome and enables
|
|
75
|
-
* pointer-events on it so IMA's own ad UI (Skip button, click-through) is
|
|
76
|
-
* clickable — the container is pointer-events:none at rest to avoid blocking
|
|
77
|
-
* clicks on the content video.
|
|
78
|
-
*/
|
|
79
|
-
private updateAdPlayingState;
|
|
80
|
-
/**
|
|
81
|
-
* Applies or removes the dir=rtl attribute without full re-render.
|
|
82
|
-
* More efficient than re-rendering the entire template for a simple attribute change.
|
|
83
|
-
*/
|
|
84
|
-
private applyRtl;
|
|
85
|
-
private invokeExtensions;
|
|
86
|
-
disconnect(): void;
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=skin-root.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"skin-root.d.ts","sourceRoot":"","sources":["../../../../src/skin/skin-root.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAyChD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,QAAS,SAAQ,aAAa;IACzC,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,mBAAmB,CAA2B;IACtD,OAAO,CAAC,kBAAkB,CAAgC;IAC1D,OAAO,CAAC,iBAAiB,CAAwB;IACjD,OAAO,CAAC,eAAe,CAAsB;IAE7C;;;OAGG;IACH,eAAe,IAAI,gBAAgB,GAAG,IAAI;IAI1C;;;OAGG;IACH,eAAe,IAAI,WAAW,GAAG,IAAI;IAIrC;;;OAGG;IACH,qBAAqB,IAAI,gBAAgB,GAAG,IAAI;IAIhD,SAAS,CAAC,SAAS,IAAI,IAAI;IA6B3B,SAAS,CAAC,QAAQ,IAAI,cAAc;IAgFpC;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IA2G9B,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,gBAAgB;IA4CxB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAW9B;;OAEG;IACH,OAAO,CAAC,cAAc;IAWtB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAQhC;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAM5B;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAYhB,OAAO,CAAC,gBAAgB;IA4BxB,UAAU,IAAI,IAAI;CAiBnB"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import type { PlaybackState } from './fsm';
|
|
2
|
-
/**
|
|
3
|
-
* The complete map of all reactive state properties in the player.
|
|
4
|
-
* Used by PlayerState (Proxy-based reactive store).
|
|
5
|
-
*/
|
|
6
|
-
export interface StateMap {
|
|
7
|
-
playbackState: PlaybackState;
|
|
8
|
-
volume: number;
|
|
9
|
-
currentTime: number;
|
|
10
|
-
duration: number;
|
|
11
|
-
muted: boolean;
|
|
12
|
-
bufferedEnd: number;
|
|
13
|
-
isLive: boolean;
|
|
14
|
-
qualityLevels: unknown[];
|
|
15
|
-
currentQuality: number;
|
|
16
|
-
audioTracks: unknown[];
|
|
17
|
-
currentAudioTrack: number;
|
|
18
|
-
subtitleTracks: unknown[];
|
|
19
|
-
currentSubtitleTrack: number;
|
|
20
|
-
playbackRate: number;
|
|
21
|
-
error: string | null;
|
|
22
|
-
src: string;
|
|
23
|
-
isFullscreen: boolean;
|
|
24
|
-
isPip: boolean;
|
|
25
|
-
isCasting: boolean;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Per-property subscriber callback type.
|
|
29
|
-
* Receives the new value and the previous value.
|
|
30
|
-
*/
|
|
31
|
-
export type Listener<T> = (value: T, prev: T) => void;
|
|
32
|
-
/**
|
|
33
|
-
* The public interface for the player state object.
|
|
34
|
-
* Combines all state properties with the subscription method.
|
|
35
|
-
*/
|
|
36
|
-
export type PlayerState = StateMap & {
|
|
37
|
-
on: <K extends keyof StateMap>(key: K, listener: Listener<StateMap[K]>, options?: {
|
|
38
|
-
signal?: AbortSignal;
|
|
39
|
-
}) => void;
|
|
40
|
-
};
|
|
41
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAE1C;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,aAAa,EAAE,aAAa,CAAA;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,OAAO,CAAA;IACf,aAAa,EAAE,OAAO,EAAE,CAAA;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,OAAO,EAAE,CAAA;IACtB,iBAAiB,EAAE,MAAM,CAAA;IACzB,cAAc,EAAE,OAAO,EAAE,CAAA;IACzB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,EAAE,OAAO,CAAA;IACrB,KAAK,EAAE,OAAO,CAAA;IACd,SAAS,EAAE,OAAO,CAAA;CACnB;AAED;;;GAGG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;AAErD;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG;IACnC,EAAE,EAAE,CAAC,CAAC,SAAS,MAAM,QAAQ,EAC3B,GAAG,EAAE,CAAC,EACN,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAC/B,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,KAC/B,IAAI,CAAA;CACV,CAAA"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export interface ChapterMark {
|
|
2
|
-
title: string;
|
|
3
|
-
startTime: number;
|
|
4
|
-
endTime: number;
|
|
5
|
-
}
|
|
6
|
-
/**
|
|
7
|
-
* Parses a WebVTT string into an array of ChapterMark objects.
|
|
8
|
-
* Returns an empty array if the content is empty or contains no parseable cues.
|
|
9
|
-
*/
|
|
10
|
-
export declare function parseChapters(vttContent: string): ChapterMark[];
|
|
11
|
-
/**
|
|
12
|
-
* Fetches a WebVTT chapters file from a URL and parses it.
|
|
13
|
-
* Returns an empty array if the fetch or parse fails.
|
|
14
|
-
*/
|
|
15
|
-
export declare function fetchChapters(url: string): Promise<ChapterMark[]>;
|
|
16
|
-
//# sourceMappingURL=chapters.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chapters.d.ts","sourceRoot":"","sources":["../../../../src/utils/chapters.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,EAAE,CAY/D;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAUvE"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Formats a duration in seconds to a human-readable time string.
|
|
3
|
-
*
|
|
4
|
-
* - Invalid input (NaN, negative, Infinity) → "0:00"
|
|
5
|
-
* - < 3600 seconds → "M:SS"
|
|
6
|
-
* - >= 3600 seconds → "H:MM:SS"
|
|
7
|
-
*/
|
|
8
|
-
export declare function formatDuration(seconds: number): string;
|
|
9
|
-
//# sourceMappingURL=format-duration.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"format-duration.d.ts","sourceRoot":"","sources":["../../../../src/utils/format-duration.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAmBtD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"format-wall-clock.d.ts","sourceRoot":"","sources":["../../../../src/utils/format-wall-clock.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE3D"}
|