unified-video-framework 1.4.444 → 1.4.445
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/package.json +1 -1
- package/packages/core/dist/version.d.ts +1 -1
- package/packages/core/dist/version.js +1 -1
- package/packages/core/src/version.ts +1 -1
- package/packages/web/dist/WebPlayer.d.ts.map +1 -1
- package/packages/web/dist/WebPlayer.js +52 -19
- package/packages/web/dist/WebPlayer.js.map +1 -1
- package/packages/web/src/WebPlayer.ts +62 -19
- package/packages/web/dist/WebPlayer.d.ts +0 -350
- package/packages/web/dist/ads/GoogleAdsManager.d.ts +0 -57
- package/packages/web/dist/ads/LiveStreamAdsManager.d.ts +0 -29
- package/packages/web/dist/ads/LiveStreamAdsManager.d.ts.map +0 -1
- package/packages/web/dist/ads/LiveStreamAdsManager.js +0 -168
- package/packages/web/dist/ads/LiveStreamAdsManager.js.map +0 -1
- package/packages/web/dist/chapters/ChapterManager.d.ts +0 -42
- package/packages/web/dist/chapters/CreditsButtonController.d.ts +0 -46
- package/packages/web/dist/chapters/SkipButtonController.d.ts +0 -31
- package/packages/web/dist/chapters/UserPreferencesManager.d.ts +0 -25
- package/packages/web/dist/chapters/index.d.ts +0 -12
- package/packages/web/dist/chapters/types/ChapterTypes.d.ts +0 -136
- package/packages/web/dist/drm/BunnyCDNDRMProvider.d.ts +0 -13
- package/packages/web/dist/drm/BunnyCDNDRMProvider.d.ts.map +0 -1
- package/packages/web/dist/drm/BunnyCDNDRMProvider.js +0 -65
- package/packages/web/dist/drm/BunnyCDNDRMProvider.js.map +0 -1
- package/packages/web/dist/drm/DRMManager.d.ts +0 -20
- package/packages/web/dist/drm/DRMManager.d.ts.map +0 -1
- package/packages/web/dist/drm/DRMManager.js +0 -130
- package/packages/web/dist/drm/DRMManager.js.map +0 -1
- package/packages/web/dist/drm/FairPlayDRMHandler.d.ts +0 -24
- package/packages/web/dist/drm/FairPlayDRMHandler.d.ts.map +0 -1
- package/packages/web/dist/drm/FairPlayDRMHandler.js +0 -190
- package/packages/web/dist/drm/FairPlayDRMHandler.js.map +0 -1
- package/packages/web/dist/drm/WidevineDRMHandler.d.ts +0 -21
- package/packages/web/dist/drm/WidevineDRMHandler.d.ts.map +0 -1
- package/packages/web/dist/drm/WidevineDRMHandler.js +0 -143
- package/packages/web/dist/drm/WidevineDRMHandler.js.map +0 -1
- package/packages/web/dist/drm/index.d.ts +0 -15
- package/packages/web/dist/drm/index.d.ts.map +0 -1
- package/packages/web/dist/drm/index.js +0 -13
- package/packages/web/dist/drm/index.js.map +0 -1
- package/packages/web/dist/drm/providers/BunnyNetProvider.d.ts +0 -19
- package/packages/web/dist/drm/providers/BunnyNetProvider.d.ts.map +0 -1
- package/packages/web/dist/drm/providers/BunnyNetProvider.js +0 -112
- package/packages/web/dist/drm/providers/BunnyNetProvider.js.map +0 -1
- package/packages/web/dist/drm/providers/GenericProvider.d.ts +0 -30
- package/packages/web/dist/drm/providers/GenericProvider.d.ts.map +0 -1
- package/packages/web/dist/drm/providers/GenericProvider.js +0 -104
- package/packages/web/dist/drm/providers/GenericProvider.js.map +0 -1
- package/packages/web/dist/drm/systems/BaseDRM.d.ts +0 -18
- package/packages/web/dist/drm/systems/BaseDRM.d.ts.map +0 -1
- package/packages/web/dist/drm/systems/BaseDRM.js +0 -29
- package/packages/web/dist/drm/systems/BaseDRM.js.map +0 -1
- package/packages/web/dist/drm/systems/FairPlayDRM.d.ts +0 -32
- package/packages/web/dist/drm/systems/FairPlayDRM.d.ts.map +0 -1
- package/packages/web/dist/drm/systems/FairPlayDRM.js +0 -208
- package/packages/web/dist/drm/systems/FairPlayDRM.js.map +0 -1
- package/packages/web/dist/drm/systems/PlayReadyDRM.d.ts +0 -9
- package/packages/web/dist/drm/systems/PlayReadyDRM.d.ts.map +0 -1
- package/packages/web/dist/drm/systems/PlayReadyDRM.js +0 -114
- package/packages/web/dist/drm/systems/PlayReadyDRM.js.map +0 -1
- package/packages/web/dist/drm/systems/WidevineDRM.d.ts +0 -9
- package/packages/web/dist/drm/systems/WidevineDRM.d.ts.map +0 -1
- package/packages/web/dist/drm/systems/WidevineDRM.js +0 -159
- package/packages/web/dist/drm/systems/WidevineDRM.js.map +0 -1
- package/packages/web/dist/drm/types/BunnyNetTypes.d.ts +0 -20
- package/packages/web/dist/drm/types/BunnyNetTypes.d.ts.map +0 -1
- package/packages/web/dist/drm/types/BunnyNetTypes.js +0 -8
- package/packages/web/dist/drm/types/BunnyNetTypes.js.map +0 -1
- package/packages/web/dist/drm/types/DRMTypes.d.ts +0 -60
- package/packages/web/dist/drm/types/DRMTypes.d.ts.map +0 -1
- package/packages/web/dist/drm/types/DRMTypes.js +0 -22
- package/packages/web/dist/drm/types/DRMTypes.js.map +0 -1
- package/packages/web/dist/drm/utils/BrowserDetector.d.ts +0 -20
- package/packages/web/dist/drm/utils/BrowserDetector.d.ts.map +0 -1
- package/packages/web/dist/drm/utils/BrowserDetector.js +0 -211
- package/packages/web/dist/drm/utils/BrowserDetector.js.map +0 -1
- package/packages/web/dist/drm/utils/CertificateManager.d.ts +0 -15
- package/packages/web/dist/drm/utils/CertificateManager.d.ts.map +0 -1
- package/packages/web/dist/drm/utils/CertificateManager.js +0 -46
- package/packages/web/dist/drm/utils/CertificateManager.js.map +0 -1
- package/packages/web/dist/drm/utils/DRMErrorHandler.d.ts +0 -7
- package/packages/web/dist/drm/utils/DRMErrorHandler.d.ts.map +0 -1
- package/packages/web/dist/drm/utils/DRMErrorHandler.js +0 -49
- package/packages/web/dist/drm/utils/DRMErrorHandler.js.map +0 -1
- package/packages/web/dist/drm/utils/LicenseRequestHandler.d.ts +0 -15
- package/packages/web/dist/drm/utils/LicenseRequestHandler.d.ts.map +0 -1
- package/packages/web/dist/drm/utils/LicenseRequestHandler.js +0 -110
- package/packages/web/dist/drm/utils/LicenseRequestHandler.js.map +0 -1
- package/packages/web/dist/drm.d.ts +0 -4
- package/packages/web/dist/drm.js +0 -5
- package/packages/web/dist/index.d.ts +0 -7
- package/packages/web/dist/paywall/EmailAuthController.d.ts +0 -60
- package/packages/web/dist/paywall/PaywallController.d.ts +0 -74
- package/packages/web/dist/react/EPG.d.ts +0 -8
- package/packages/web/dist/react/WebPlayerView.d.ts +0 -397
- package/packages/web/dist/react/WebPlayerViewWithEPG.d.ts +0 -97
- package/packages/web/dist/react/components/ChapterProgress.d.ts +0 -22
- package/packages/web/dist/react/components/EPGNavigationControls.d.ts +0 -15
- package/packages/web/dist/react/components/EPGOverlay-improved-positioning.d.ts +0 -5
- package/packages/web/dist/react/components/EPGOverlay.d.ts +0 -5
- package/packages/web/dist/react/components/EPGProgramDetails.d.ts +0 -13
- package/packages/web/dist/react/components/EPGProgramGrid.d.ts +0 -19
- package/packages/web/dist/react/components/EPGTimelineHeader.d.ts +0 -16
- package/packages/web/dist/react/components/SkipButton.d.ts +0 -18
- package/packages/web/dist/react/components/commerce/ProductBadge.d.ts +0 -10
- package/packages/web/dist/react/components/commerce/ProductPanel.d.ts +0 -13
- package/packages/web/dist/react/examples/google-ads-example.d.ts +0 -4
- package/packages/web/dist/react/examples/live-stream-ads-example.d.ts +0 -8
- package/packages/web/dist/react/examples/live-stream-ads-example.d.ts.map +0 -1
- package/packages/web/dist/react/examples/live-stream-ads-example.js +0 -177
- package/packages/web/dist/react/examples/live-stream-ads-example.js.map +0 -1
- package/packages/web/dist/react/hooks/useChapters.d.ts +0 -29
- package/packages/web/dist/react/hooks/useCommerceSync.d.ts +0 -8
- package/packages/web/dist/react/types/EPGTypes.d.ts +0 -101
- package/packages/web/dist/react/types/FlashNewsTickerTypes.d.ts +0 -146
- package/packages/web/dist/react/types/VideoCommerceTypes.d.ts +0 -109
- package/packages/web/dist/react/utils/EPGUtils.d.ts +0 -21
- package/packages/web/dist/test/epg-test.d.ts +0 -3
- package/packages/web/dist/utils/YouTubeExtractor.d.ts +0 -38
|
@@ -2885,10 +2885,14 @@ export class WebPlayer extends BasePlayer {
|
|
|
2885
2885
|
const ticker = document.createElement('div');
|
|
2886
2886
|
ticker.className = `uvf-ticker-broadcast1 ticker-${position}`;
|
|
2887
2887
|
|
|
2888
|
-
const height = config.height ||
|
|
2888
|
+
const height = config.height || 90;
|
|
2889
2889
|
const bottomOffset = config.bottomOffset || 0;
|
|
2890
2890
|
const topOffset = config.topOffset || 10;
|
|
2891
2891
|
|
|
2892
|
+
// Store state for cycling
|
|
2893
|
+
this.tickerConfig = config;
|
|
2894
|
+
this.tickerCurrentItemIndex = 0;
|
|
2895
|
+
|
|
2892
2896
|
ticker.style.cssText = `
|
|
2893
2897
|
position: absolute;
|
|
2894
2898
|
left: 10%;
|
|
@@ -2900,11 +2904,12 @@ export class WebPlayer extends BasePlayer {
|
|
|
2900
2904
|
font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
|
|
2901
2905
|
z-index: 100;
|
|
2902
2906
|
pointer-events: none;
|
|
2907
|
+
filter: drop-shadow(0 8px 15px rgba(0,0,0,0.4));
|
|
2903
2908
|
`;
|
|
2904
2909
|
|
|
2905
2910
|
// Row 1: Split Red/Blue
|
|
2906
2911
|
const row1 = document.createElement('div');
|
|
2907
|
-
row1.style.cssText = `display: flex; height:
|
|
2912
|
+
row1.style.cssText = `display: flex; height: 62%; position: relative; overflow: hidden;`;
|
|
2908
2913
|
|
|
2909
2914
|
const b1 = document.createElement('div');
|
|
2910
2915
|
b1.textContent = 'BREAKING NEWS';
|
|
@@ -2912,40 +2917,67 @@ export class WebPlayer extends BasePlayer {
|
|
|
2912
2917
|
background: #c0392b;
|
|
2913
2918
|
color: white;
|
|
2914
2919
|
font-weight: 900;
|
|
2915
|
-
padding: 0
|
|
2920
|
+
padding: 0 25px;
|
|
2916
2921
|
display: flex;
|
|
2917
2922
|
align-items: center;
|
|
2918
|
-
clip-path: polygon(0 0,
|
|
2919
|
-
font-size: ${height * 0.
|
|
2923
|
+
clip-path: polygon(0 0, 92% 0, 100% 100%, 0 100%);
|
|
2924
|
+
font-size: ${height * 0.18}px;
|
|
2925
|
+
z-index: 2;
|
|
2920
2926
|
`;
|
|
2921
2927
|
row1.appendChild(b1);
|
|
2922
2928
|
|
|
2923
2929
|
const b2 = document.createElement('div');
|
|
2924
|
-
b2.
|
|
2930
|
+
b2.className = 'uvf-ticker-headline-line';
|
|
2931
|
+
this.tickerHeadlineElement = b2;
|
|
2925
2932
|
b2.style.cssText = `
|
|
2926
2933
|
background: #2980b9;
|
|
2927
2934
|
color: white;
|
|
2928
|
-
|
|
2929
|
-
padding: 0 30px;
|
|
2935
|
+
padding: 0 40px;
|
|
2930
2936
|
display: flex;
|
|
2931
2937
|
align-items: center;
|
|
2932
2938
|
flex-grow: 1;
|
|
2933
|
-
margin-left: -
|
|
2934
|
-
clip-path: polygon(
|
|
2935
|
-
|
|
2939
|
+
margin-left: -15px;
|
|
2940
|
+
clip-path: polygon(3% 0, 100% 0, 97% 100%, 0 100%);
|
|
2941
|
+
position: relative;
|
|
2942
|
+
`;
|
|
2943
|
+
|
|
2944
|
+
const headlineText = document.createElement('div');
|
|
2945
|
+
headlineText.className = 'uvf-ticker-headline-text';
|
|
2946
|
+
headlineText.style.cssText = `
|
|
2947
|
+
font-weight: 800;
|
|
2948
|
+
font-size: ${height * 0.22}px;
|
|
2949
|
+
line-height: 1.2;
|
|
2950
|
+
width: 100%;
|
|
2951
|
+
display: -webkit-box;
|
|
2952
|
+
-webkit-line-clamp: 2;
|
|
2953
|
+
-webkit-box-orient: vertical;
|
|
2954
|
+
overflow: hidden;
|
|
2955
|
+
text-overflow: ellipsis;
|
|
2956
|
+
text-shadow: 1px 1px 3px rgba(0,0,0,0.5);
|
|
2936
2957
|
`;
|
|
2958
|
+
|
|
2959
|
+
const firstItem = config.items?.[0];
|
|
2960
|
+
if (firstItem) {
|
|
2961
|
+
headlineText.textContent = firstItem.headline || firstItem.text;
|
|
2962
|
+
}
|
|
2963
|
+
|
|
2964
|
+
b2.appendChild(headlineText);
|
|
2937
2965
|
row1.appendChild(b2);
|
|
2938
2966
|
ticker.appendChild(row1);
|
|
2939
2967
|
|
|
2940
2968
|
// Row 2: Black scrolling
|
|
2941
2969
|
const row2 = document.createElement('div');
|
|
2970
|
+
row2.className = 'uvf-ticker-detail-line';
|
|
2971
|
+
this.tickerDetailElement = row2;
|
|
2942
2972
|
row2.style.cssText = `
|
|
2943
|
-
height:
|
|
2973
|
+
height: 33%;
|
|
2944
2974
|
background: #111;
|
|
2945
2975
|
display: flex;
|
|
2946
2976
|
align-items: center;
|
|
2947
|
-
margin-top:
|
|
2977
|
+
margin-top: 3px;
|
|
2948
2978
|
clip-path: polygon(1% 0, 99% 0, 100% 100%, 0 100%);
|
|
2979
|
+
position: relative;
|
|
2980
|
+
overflow: hidden;
|
|
2949
2981
|
`;
|
|
2950
2982
|
|
|
2951
2983
|
const lbadge = document.createElement('div');
|
|
@@ -2953,23 +2985,34 @@ export class WebPlayer extends BasePlayer {
|
|
|
2953
2985
|
lbadge.style.cssText = `
|
|
2954
2986
|
background: #f1c40f;
|
|
2955
2987
|
color: black;
|
|
2956
|
-
font-weight:
|
|
2957
|
-
padding: 0
|
|
2958
|
-
margin: 0
|
|
2959
|
-
font-size: ${height * 0.
|
|
2960
|
-
clip-path: polygon(0 0,
|
|
2988
|
+
font-weight: 950;
|
|
2989
|
+
padding: 0 15px;
|
|
2990
|
+
margin: 0 20px;
|
|
2991
|
+
font-size: ${height * 0.14}px;
|
|
2992
|
+
clip-path: polygon(0 0, 85% 0, 100% 100%, 0 100%);
|
|
2993
|
+
z-index: 2;
|
|
2961
2994
|
`;
|
|
2962
2995
|
row2.appendChild(lbadge);
|
|
2963
2996
|
|
|
2964
2997
|
const tCont = document.createElement('div');
|
|
2965
2998
|
tCont.style.cssText = `flex-grow: 1; overflow: hidden; height: 100%; display: flex; align-items: center; color: white;`;
|
|
2999
|
+
|
|
3000
|
+
// Use standard scrolling track class for compatibility
|
|
2966
3001
|
const track = this.createSeamlessScrollingTrack(config.items || [], config);
|
|
2967
|
-
track.
|
|
3002
|
+
track.className = 'uvf-ticker-track'; // Change class for compatibility with updateItemContent
|
|
3003
|
+
track.style.fontSize = `${height * 0.15}px`;
|
|
3004
|
+
track.style.fontWeight = '600';
|
|
2968
3005
|
tCont.appendChild(track);
|
|
2969
3006
|
row2.appendChild(tCont);
|
|
2970
3007
|
ticker.appendChild(row2);
|
|
2971
3008
|
|
|
2972
3009
|
this.ensureTickerAnimations();
|
|
3010
|
+
|
|
3011
|
+
// Start cycling if enabled or if we want the "flow"
|
|
3012
|
+
if (config.items && config.items.length > 1) {
|
|
3013
|
+
this.startItemCycling();
|
|
3014
|
+
}
|
|
3015
|
+
|
|
2973
3016
|
return ticker;
|
|
2974
3017
|
}
|
|
2975
3018
|
|
|
@@ -1,350 +0,0 @@
|
|
|
1
|
-
import { BasePlayer } from '../../core/dist/BasePlayer';
|
|
2
|
-
import { Chapter, ChapterSegment } from '../../core/dist/index';
|
|
3
|
-
import { ChapterConfig, VideoChapters, VideoSegment } from './chapters/types/ChapterTypes';
|
|
4
|
-
import type { FlashNewsTickerConfig } from './react/types/FlashNewsTickerTypes';
|
|
5
|
-
declare global {
|
|
6
|
-
interface Window {
|
|
7
|
-
Hls: any;
|
|
8
|
-
dashjs: any;
|
|
9
|
-
cast?: any;
|
|
10
|
-
chrome?: any;
|
|
11
|
-
YT?: any;
|
|
12
|
-
__onGCastApiAvailable?: (isAvailable: boolean) => void;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
export declare class WebPlayer extends BasePlayer {
|
|
16
|
-
protected video: HTMLVideoElement | null;
|
|
17
|
-
private hls;
|
|
18
|
-
private dash;
|
|
19
|
-
private qualities;
|
|
20
|
-
private currentQualityIndex;
|
|
21
|
-
private autoQuality;
|
|
22
|
-
private useCustomControls;
|
|
23
|
-
private controlsContainer;
|
|
24
|
-
private volumeHideTimeout;
|
|
25
|
-
private hideControlsTimeout;
|
|
26
|
-
private isVolumeSliding;
|
|
27
|
-
private availableQualities;
|
|
28
|
-
private availableSubtitles;
|
|
29
|
-
private currentQuality;
|
|
30
|
-
private currentSubtitle;
|
|
31
|
-
private currentPlaybackRate;
|
|
32
|
-
private isDragging;
|
|
33
|
-
private settingsConfig;
|
|
34
|
-
private watermarkCanvas;
|
|
35
|
-
private playerWrapper;
|
|
36
|
-
private flashTickerContainer;
|
|
37
|
-
private flashTickerTopElement;
|
|
38
|
-
private flashTickerBottomElement;
|
|
39
|
-
private tickerCurrentItemIndex;
|
|
40
|
-
private tickerCycleTimer;
|
|
41
|
-
private tickerConfig;
|
|
42
|
-
private tickerHeadlineElement;
|
|
43
|
-
private tickerDetailElement;
|
|
44
|
-
private tickerIntroOverlay;
|
|
45
|
-
private tickerProgressBar;
|
|
46
|
-
private tickerProgressFill;
|
|
47
|
-
private tickerIsPaused;
|
|
48
|
-
private tickerPauseStartTime;
|
|
49
|
-
private tickerRemainingTime;
|
|
50
|
-
private previewGateHit;
|
|
51
|
-
private paymentSuccessTime;
|
|
52
|
-
private paymentSuccessful;
|
|
53
|
-
private isPaywallActive;
|
|
54
|
-
private authValidationInterval;
|
|
55
|
-
private overlayRemovalAttempts;
|
|
56
|
-
private maxOverlayRemovalAttempts;
|
|
57
|
-
private lastSecurityCheck;
|
|
58
|
-
private castContext;
|
|
59
|
-
private remotePlayer;
|
|
60
|
-
private remoteController;
|
|
61
|
-
private isCasting;
|
|
62
|
-
private _castTrackIdByKey;
|
|
63
|
-
private selectedSubtitleKey;
|
|
64
|
-
private _kiTo;
|
|
65
|
-
private paywallController;
|
|
66
|
-
private _playPromise;
|
|
67
|
-
private _deferredPause;
|
|
68
|
-
private _lastToggleAt;
|
|
69
|
-
private _TOGGLE_DEBOUNCE_MS;
|
|
70
|
-
private hasTriedButtonFallback;
|
|
71
|
-
private lastUserInteraction;
|
|
72
|
-
private showTimeTooltip;
|
|
73
|
-
private tapStartTime;
|
|
74
|
-
private tapStartX;
|
|
75
|
-
private tapStartY;
|
|
76
|
-
private lastTapTime;
|
|
77
|
-
private lastTapX;
|
|
78
|
-
private tapCount;
|
|
79
|
-
private longPressTimer;
|
|
80
|
-
private isLongPressing;
|
|
81
|
-
private longPressPlaybackRate;
|
|
82
|
-
private tapResetTimer;
|
|
83
|
-
private fastBackwardInterval;
|
|
84
|
-
private handleSingleTap;
|
|
85
|
-
private handleDoubleTap;
|
|
86
|
-
private handleLongPress;
|
|
87
|
-
private handleLongPressEnd;
|
|
88
|
-
private autoplayCapabilities;
|
|
89
|
-
private autoplayRetryPending;
|
|
90
|
-
private autoplayRetryAttempts;
|
|
91
|
-
private maxAutoplayRetries;
|
|
92
|
-
private chapterManager;
|
|
93
|
-
private drmManager;
|
|
94
|
-
private isDRMProtected;
|
|
95
|
-
private hasAppliedStartTime;
|
|
96
|
-
private coreChapterManager;
|
|
97
|
-
private chapterConfig;
|
|
98
|
-
private qualityFilter;
|
|
99
|
-
private premiumQualities;
|
|
100
|
-
private youtubeNativeControls;
|
|
101
|
-
private isAdPlaying;
|
|
102
|
-
private fallbackSourceIndex;
|
|
103
|
-
private fallbackErrors;
|
|
104
|
-
private isLoadingFallback;
|
|
105
|
-
private currentRetryAttempt;
|
|
106
|
-
private lastFailedUrl;
|
|
107
|
-
private isFallbackPosterMode;
|
|
108
|
-
private hlsErrorRetryCount;
|
|
109
|
-
private readonly MAX_HLS_ERROR_RETRIES;
|
|
110
|
-
private lastDuration;
|
|
111
|
-
private isDetectedAsLive;
|
|
112
|
-
private debugLog;
|
|
113
|
-
private debugError;
|
|
114
|
-
private debugWarn;
|
|
115
|
-
initialize(container: HTMLElement | string, config?: any): Promise<void>;
|
|
116
|
-
protected setupPlayer(): Promise<void>;
|
|
117
|
-
private autoplayAttempted;
|
|
118
|
-
private setupVideoEventListeners;
|
|
119
|
-
private getMediaErrorMessage;
|
|
120
|
-
private updateBufferProgress;
|
|
121
|
-
load(source: any): Promise<void>;
|
|
122
|
-
private loadVideoSource;
|
|
123
|
-
private initializeDRM;
|
|
124
|
-
private handleDRMError;
|
|
125
|
-
private tryFallbackSource;
|
|
126
|
-
private showFallbackPoster;
|
|
127
|
-
private detectSourceType;
|
|
128
|
-
private loadHLS;
|
|
129
|
-
private handleHLSError;
|
|
130
|
-
private loadDASH;
|
|
131
|
-
private updateDASHQuality;
|
|
132
|
-
private loadNative;
|
|
133
|
-
private loadYouTube;
|
|
134
|
-
private youtubePlayer;
|
|
135
|
-
private youtubePlayerReady;
|
|
136
|
-
private youtubeIframe;
|
|
137
|
-
private createYouTubePlayer;
|
|
138
|
-
private loadYouTubeAPI;
|
|
139
|
-
private waitForYouTubeAPI;
|
|
140
|
-
private onYouTubePlayerReady;
|
|
141
|
-
private onYouTubePlayerStateChange;
|
|
142
|
-
private updateYouTubeUI;
|
|
143
|
-
private onYouTubePlayerError;
|
|
144
|
-
private hideCustomControls;
|
|
145
|
-
private youtubeTimeTrackingInterval;
|
|
146
|
-
private startYouTubeTimeTracking;
|
|
147
|
-
private updateYouTubeProgressBar;
|
|
148
|
-
protected loadScript(src: string): Promise<void>;
|
|
149
|
-
private loadSubtitles;
|
|
150
|
-
private isAbortPlayError;
|
|
151
|
-
private isAutoplayRestrictionError;
|
|
152
|
-
private detectAutoplayCapabilities;
|
|
153
|
-
private hasUserActivation;
|
|
154
|
-
private attemptIntelligentAutoplay;
|
|
155
|
-
private setupAutoplayRetry;
|
|
156
|
-
private showUnmuteButton;
|
|
157
|
-
private setupClickToUnmute;
|
|
158
|
-
private clickToUnmuteHandler;
|
|
159
|
-
private hideUnmuteButton;
|
|
160
|
-
private updateTimeTooltip;
|
|
161
|
-
private hideTimeTooltip;
|
|
162
|
-
private setupUserInteractionTracking;
|
|
163
|
-
play(): Promise<void>;
|
|
164
|
-
pause(): void;
|
|
165
|
-
requestPause(): void;
|
|
166
|
-
private safeSetCurrentTime;
|
|
167
|
-
seek(time: number): void;
|
|
168
|
-
setVolume(level: number): void;
|
|
169
|
-
mute(): void;
|
|
170
|
-
unmute(): void;
|
|
171
|
-
getCurrentTime(): number;
|
|
172
|
-
getQualities(): any[];
|
|
173
|
-
getCurrentQuality(): any;
|
|
174
|
-
setQuality(index: number): void;
|
|
175
|
-
setPlaybackRate(rate: number): void;
|
|
176
|
-
setFlashNewsTicker(config: FlashNewsTickerConfig): void;
|
|
177
|
-
private createTickerElement;
|
|
178
|
-
private createSimpleTickerElement;
|
|
179
|
-
private createBroadcastTickerElement;
|
|
180
|
-
private getBroadcastThemeColors;
|
|
181
|
-
private createBroadcast1Element;
|
|
182
|
-
private createSeamlessScrollingTrack;
|
|
183
|
-
private createGlobeElement;
|
|
184
|
-
private createLiveBadgeElement;
|
|
185
|
-
private ensureTickerAnimations;
|
|
186
|
-
private calculateTickerDuration;
|
|
187
|
-
private createProfessionalTickerElement;
|
|
188
|
-
private createProfessionalHeader;
|
|
189
|
-
private createDecorativeSeparator;
|
|
190
|
-
private createTwoLineBody;
|
|
191
|
-
private createProgressBar;
|
|
192
|
-
private createIntroOverlay;
|
|
193
|
-
private playIntroAnimation;
|
|
194
|
-
private startItemCycling;
|
|
195
|
-
private stopItemCycling;
|
|
196
|
-
private pauseItemCycling;
|
|
197
|
-
private resumeItemCycling;
|
|
198
|
-
private animateProgress;
|
|
199
|
-
private transitionToNextItem;
|
|
200
|
-
private applyItemTransition;
|
|
201
|
-
private formatHeadlineText;
|
|
202
|
-
private escapeHtml;
|
|
203
|
-
private updateItemContent;
|
|
204
|
-
setAutoQuality(enabled: boolean): void;
|
|
205
|
-
enterFullscreen(): Promise<void>;
|
|
206
|
-
exitFullscreen(): Promise<void>;
|
|
207
|
-
enterPictureInPicture(): Promise<void>;
|
|
208
|
-
exitPictureInPicture(): Promise<void>;
|
|
209
|
-
focusPlayer(): void;
|
|
210
|
-
showFullscreenTip(): void;
|
|
211
|
-
private isBraveBrowser;
|
|
212
|
-
private checkFullscreenPermissions;
|
|
213
|
-
private isPrivateWindow;
|
|
214
|
-
triggerFullscreenButton(): void;
|
|
215
|
-
private performFullscreenButtonClick;
|
|
216
|
-
private requestFullscreenPermissionBrave;
|
|
217
|
-
enterFullscreenWithBraveSupport(): Promise<void>;
|
|
218
|
-
showTemporaryMessage(message: string): void;
|
|
219
|
-
enterFullscreenSynchronously(): void;
|
|
220
|
-
requestFullscreenWithUserGesture(event: Event): Promise<boolean>;
|
|
221
|
-
showFullscreenInstructions(): void;
|
|
222
|
-
attemptFullscreen(): Promise<boolean>;
|
|
223
|
-
protected applySubtitleTrack(track: any): void;
|
|
224
|
-
protected removeSubtitles(): void;
|
|
225
|
-
private injectStyles;
|
|
226
|
-
private getPlayerStyles;
|
|
227
|
-
private createFrameworkBranding;
|
|
228
|
-
private createNavigationButtons;
|
|
229
|
-
private getNavigationIcon;
|
|
230
|
-
private createCustomControls;
|
|
231
|
-
private setupControlsEventListeners;
|
|
232
|
-
protected setupKeyboardShortcuts(): void;
|
|
233
|
-
protected setupWatermark(): void;
|
|
234
|
-
setPaywallConfig(config: any): void;
|
|
235
|
-
private togglePlayPause;
|
|
236
|
-
private enforceFreePreviewGate;
|
|
237
|
-
setFreeDuration(seconds: number): void;
|
|
238
|
-
resetFreePreviewGate(): void;
|
|
239
|
-
resetPaymentStatus(): void;
|
|
240
|
-
private toggleMuteAction;
|
|
241
|
-
private isMobileDevice;
|
|
242
|
-
private isPipSupported;
|
|
243
|
-
private isIOSDevice;
|
|
244
|
-
private isAndroidDevice;
|
|
245
|
-
private isFullscreenSupported;
|
|
246
|
-
private lockOrientationLandscape;
|
|
247
|
-
private unlockOrientation;
|
|
248
|
-
private handleVolumeChange;
|
|
249
|
-
private seekToPosition;
|
|
250
|
-
private formatTime;
|
|
251
|
-
private updateTimeDisplay;
|
|
252
|
-
private showControls;
|
|
253
|
-
private hideControls;
|
|
254
|
-
private scheduleHideControls;
|
|
255
|
-
private setupAdvancedTapHandling;
|
|
256
|
-
private startFastBackward;
|
|
257
|
-
private stopFastBackward;
|
|
258
|
-
private isFullscreen;
|
|
259
|
-
private setupFullscreenListeners;
|
|
260
|
-
private showShortcutIndicator;
|
|
261
|
-
setSettingsScrollbarStyle(mode: 'default' | 'compact' | 'overlay'): void;
|
|
262
|
-
setSettingsScrollbarConfig(options: {
|
|
263
|
-
widthPx?: number;
|
|
264
|
-
intensity?: number;
|
|
265
|
-
}): void;
|
|
266
|
-
private applyScrollbarPreferencesFromDataset;
|
|
267
|
-
private setupChapterManager;
|
|
268
|
-
private convertToChapters;
|
|
269
|
-
private convertToChapterSegments;
|
|
270
|
-
private mapSegmentAction;
|
|
271
|
-
loadChapters(chapters: VideoChapters): Promise<void>;
|
|
272
|
-
loadChaptersFromUrl(url: string): Promise<void>;
|
|
273
|
-
getCurrentSegment(): VideoSegment | null;
|
|
274
|
-
skipToSegment(segmentId: string): void;
|
|
275
|
-
getSegments(): VideoSegment[];
|
|
276
|
-
updateChapterConfig(newConfig: Partial<ChapterConfig>): void;
|
|
277
|
-
hasChapters(): boolean;
|
|
278
|
-
getChapters(): VideoChapters | null;
|
|
279
|
-
getCoreChapters(): Chapter[];
|
|
280
|
-
getCoreSegments(): ChapterSegment[];
|
|
281
|
-
getCurrentChapterInfo(): Chapter | null;
|
|
282
|
-
seekToChapter(chapterId: string): void;
|
|
283
|
-
getNextChapter(): Chapter | null;
|
|
284
|
-
getPreviousChapter(): Chapter | null;
|
|
285
|
-
setTheme(theme: any): void;
|
|
286
|
-
private _parseRgb;
|
|
287
|
-
private _rgbToString;
|
|
288
|
-
private _lightenRgb;
|
|
289
|
-
private _toRgba;
|
|
290
|
-
private changeVolume;
|
|
291
|
-
private setSpeed;
|
|
292
|
-
private setQualityByLabel;
|
|
293
|
-
private togglePiP;
|
|
294
|
-
private setupCastContextSafe;
|
|
295
|
-
private setupCastContext;
|
|
296
|
-
private enableCastRemoteControl;
|
|
297
|
-
private disableCastRemoteControl;
|
|
298
|
-
private _bindRemotePlayerEvents;
|
|
299
|
-
private updateVolumeUIFromRemote;
|
|
300
|
-
private _syncUIFromRemote;
|
|
301
|
-
private _syncCastButtons;
|
|
302
|
-
private updateSettingsMenu;
|
|
303
|
-
private generateAccordionMenu;
|
|
304
|
-
private detectAvailableQualities;
|
|
305
|
-
private applyQualityFilter;
|
|
306
|
-
setQualityFilter(filter: any): void;
|
|
307
|
-
setAdPlaying(isPlaying: boolean): void;
|
|
308
|
-
isAdCurrentlyPlaying(): boolean;
|
|
309
|
-
private isQualityPremium;
|
|
310
|
-
private isPremiumUser;
|
|
311
|
-
private handlePremiumQualityClick;
|
|
312
|
-
private detectAvailableSubtitles;
|
|
313
|
-
private setupSettingsEventListeners;
|
|
314
|
-
private toggleAccordionSection;
|
|
315
|
-
private hideSettingsMenu;
|
|
316
|
-
private updateAccordionAfterSelection;
|
|
317
|
-
private updateSettingsActiveStates;
|
|
318
|
-
private setPlaybackRateFromSettings;
|
|
319
|
-
private setQualityFromSettings;
|
|
320
|
-
private applyHLSQualityFilter;
|
|
321
|
-
private applyDASHQualityFilter;
|
|
322
|
-
private setSubtitle;
|
|
323
|
-
private _updateCastActiveTracks;
|
|
324
|
-
private onCastButtonClick;
|
|
325
|
-
private showAirPlayPicker;
|
|
326
|
-
private stopCasting;
|
|
327
|
-
private initCast;
|
|
328
|
-
private shareVideo;
|
|
329
|
-
private isTextTruncated;
|
|
330
|
-
private showTextTooltip;
|
|
331
|
-
private hideTextTooltip;
|
|
332
|
-
private setupTextTooltips;
|
|
333
|
-
private smartTruncateText;
|
|
334
|
-
private applySmartTextDisplay;
|
|
335
|
-
private updateMetadataUI;
|
|
336
|
-
private showNotification;
|
|
337
|
-
private canPlayVideo;
|
|
338
|
-
private enforcePaywallSecurity;
|
|
339
|
-
private startOverlayMonitoring;
|
|
340
|
-
private handleSecurityViolation;
|
|
341
|
-
private showSecurityViolationMessage;
|
|
342
|
-
private forceCleanupOverlays;
|
|
343
|
-
showEPGButton(): void;
|
|
344
|
-
hideEPGButton(): void;
|
|
345
|
-
setEPGData(epgData: any): void;
|
|
346
|
-
isEPGButtonVisible(): boolean;
|
|
347
|
-
private cleanup;
|
|
348
|
-
destroy(): Promise<void>;
|
|
349
|
-
}
|
|
350
|
-
//# sourceMappingURL=WebPlayer.d.ts.map
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
export interface GoogleAdsConfig {
|
|
2
|
-
adTagUrl: string;
|
|
3
|
-
midrollTimes?: number[];
|
|
4
|
-
liveAdBreakMode?: 'periodic' | 'manual';
|
|
5
|
-
periodicAdInterval?: number;
|
|
6
|
-
syncToLiveEdge?: boolean;
|
|
7
|
-
pauseStreamDuringAd?: boolean;
|
|
8
|
-
liveEdgeOffset?: number;
|
|
9
|
-
companionAdSlots?: Array<{
|
|
10
|
-
containerId: string;
|
|
11
|
-
width: number;
|
|
12
|
-
height: number;
|
|
13
|
-
}>;
|
|
14
|
-
onAdStart?: () => void;
|
|
15
|
-
onAdEnd?: () => void;
|
|
16
|
-
onAdError?: (error: any) => void;
|
|
17
|
-
onAllAdsComplete?: () => void;
|
|
18
|
-
onAdCuePoints?: (cuePoints: number[]) => void;
|
|
19
|
-
}
|
|
20
|
-
export declare class GoogleAdsManager {
|
|
21
|
-
private video;
|
|
22
|
-
private adContainer;
|
|
23
|
-
private config;
|
|
24
|
-
private adsManager;
|
|
25
|
-
private adsLoader;
|
|
26
|
-
private adDisplayContainer;
|
|
27
|
-
private isAdPlaying;
|
|
28
|
-
private isMuted;
|
|
29
|
-
private unmuteButton;
|
|
30
|
-
private lastAdTime;
|
|
31
|
-
private periodicAdCheckInterval;
|
|
32
|
-
private pendingAdRequest;
|
|
33
|
-
constructor(video: HTMLVideoElement, adContainer: HTMLElement, config: GoogleAdsConfig);
|
|
34
|
-
private setupFocusHandler;
|
|
35
|
-
initialize(): Promise<void>;
|
|
36
|
-
private loadIMASDK;
|
|
37
|
-
private setupAdsLoader;
|
|
38
|
-
setupPeriodicAds(): void;
|
|
39
|
-
private triggerPeriodicAd;
|
|
40
|
-
requestAds(): void;
|
|
41
|
-
initAdDisplayContainer(): void;
|
|
42
|
-
private onAdsManagerLoaded;
|
|
43
|
-
private setupAdsManagerListeners;
|
|
44
|
-
private onAdError;
|
|
45
|
-
pause(): void;
|
|
46
|
-
resume(): void;
|
|
47
|
-
skip(): void;
|
|
48
|
-
resize(width: number, height: number, viewMode?: any): void;
|
|
49
|
-
setVolume(volume: number): void;
|
|
50
|
-
isPlayingAd(): boolean;
|
|
51
|
-
private showUnmuteButton;
|
|
52
|
-
private toggleAdMute;
|
|
53
|
-
private resumeAdPlayback;
|
|
54
|
-
private hideUnmuteButton;
|
|
55
|
-
destroy(): void;
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=GoogleAdsManager.d.ts.map
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { GoogleAdsManager, GoogleAdsConfig } from './GoogleAdsManager';
|
|
2
|
-
export interface LiveStreamAdsConfig extends GoogleAdsConfig {
|
|
3
|
-
liveAdBreakMode?: 'periodic' | 'manual';
|
|
4
|
-
periodicAdInterval?: number;
|
|
5
|
-
syncToLiveEdge?: boolean;
|
|
6
|
-
liveEdgeOffset?: number;
|
|
7
|
-
pauseStreamDuringAd?: boolean;
|
|
8
|
-
onAdBreakScheduled?: (scheduledTime: number) => void;
|
|
9
|
-
}
|
|
10
|
-
export declare class LiveStreamAdsManager extends GoogleAdsManager {
|
|
11
|
-
private liveConfig;
|
|
12
|
-
private isLiveStream;
|
|
13
|
-
private periodicAdTimer;
|
|
14
|
-
private lastAdBreakTime;
|
|
15
|
-
private playbackStartTime;
|
|
16
|
-
private streamStartTime;
|
|
17
|
-
private hlsInstance;
|
|
18
|
-
constructor(video: HTMLVideoElement, adContainer: HTMLElement, config: LiveStreamAdsConfig);
|
|
19
|
-
initializeLiveAds(hlsInstance?: any): Promise<void>;
|
|
20
|
-
private setupPeriodicAdBreaks;
|
|
21
|
-
triggerAdBreak(): void;
|
|
22
|
-
private pauseStreamDownload;
|
|
23
|
-
private resumeStreamDownload;
|
|
24
|
-
protected setupLiveEdgeResume(): void;
|
|
25
|
-
private resumeFromPausePoint;
|
|
26
|
-
private syncToLiveEdge;
|
|
27
|
-
destroy(): void;
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=LiveStreamAdsManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LiveStreamAdsManager.d.ts","sourceRoot":"","sources":["../../src/ads/LiveStreamAdsManager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEvE,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,eAAe,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IACxC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAG9B,kBAAkB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;CACtD;AAED,qBAAa,oBAAqB,SAAQ,gBAAgB;IACxD,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,WAAW,CAAa;gBAEpB,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,mBAAmB;IAcpF,iBAAiB,CAAC,WAAW,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBzD,OAAO,CAAC,qBAAqB;IAqC7B,cAAc,IAAI,IAAI;IA+BtB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,oBAAoB;IAc5B,SAAS,CAAC,mBAAmB,IAAI,IAAI;IAyBrC,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,cAAc;IA+BtB,OAAO,IAAI,IAAI;CAQhB"}
|