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.
Files changed (119) hide show
  1. package/package.json +1 -1
  2. package/packages/core/dist/version.d.ts +1 -1
  3. package/packages/core/dist/version.js +1 -1
  4. package/packages/core/src/version.ts +1 -1
  5. package/packages/web/dist/WebPlayer.d.ts.map +1 -1
  6. package/packages/web/dist/WebPlayer.js +52 -19
  7. package/packages/web/dist/WebPlayer.js.map +1 -1
  8. package/packages/web/src/WebPlayer.ts +62 -19
  9. package/packages/web/dist/WebPlayer.d.ts +0 -350
  10. package/packages/web/dist/ads/GoogleAdsManager.d.ts +0 -57
  11. package/packages/web/dist/ads/LiveStreamAdsManager.d.ts +0 -29
  12. package/packages/web/dist/ads/LiveStreamAdsManager.d.ts.map +0 -1
  13. package/packages/web/dist/ads/LiveStreamAdsManager.js +0 -168
  14. package/packages/web/dist/ads/LiveStreamAdsManager.js.map +0 -1
  15. package/packages/web/dist/chapters/ChapterManager.d.ts +0 -42
  16. package/packages/web/dist/chapters/CreditsButtonController.d.ts +0 -46
  17. package/packages/web/dist/chapters/SkipButtonController.d.ts +0 -31
  18. package/packages/web/dist/chapters/UserPreferencesManager.d.ts +0 -25
  19. package/packages/web/dist/chapters/index.d.ts +0 -12
  20. package/packages/web/dist/chapters/types/ChapterTypes.d.ts +0 -136
  21. package/packages/web/dist/drm/BunnyCDNDRMProvider.d.ts +0 -13
  22. package/packages/web/dist/drm/BunnyCDNDRMProvider.d.ts.map +0 -1
  23. package/packages/web/dist/drm/BunnyCDNDRMProvider.js +0 -65
  24. package/packages/web/dist/drm/BunnyCDNDRMProvider.js.map +0 -1
  25. package/packages/web/dist/drm/DRMManager.d.ts +0 -20
  26. package/packages/web/dist/drm/DRMManager.d.ts.map +0 -1
  27. package/packages/web/dist/drm/DRMManager.js +0 -130
  28. package/packages/web/dist/drm/DRMManager.js.map +0 -1
  29. package/packages/web/dist/drm/FairPlayDRMHandler.d.ts +0 -24
  30. package/packages/web/dist/drm/FairPlayDRMHandler.d.ts.map +0 -1
  31. package/packages/web/dist/drm/FairPlayDRMHandler.js +0 -190
  32. package/packages/web/dist/drm/FairPlayDRMHandler.js.map +0 -1
  33. package/packages/web/dist/drm/WidevineDRMHandler.d.ts +0 -21
  34. package/packages/web/dist/drm/WidevineDRMHandler.d.ts.map +0 -1
  35. package/packages/web/dist/drm/WidevineDRMHandler.js +0 -143
  36. package/packages/web/dist/drm/WidevineDRMHandler.js.map +0 -1
  37. package/packages/web/dist/drm/index.d.ts +0 -15
  38. package/packages/web/dist/drm/index.d.ts.map +0 -1
  39. package/packages/web/dist/drm/index.js +0 -13
  40. package/packages/web/dist/drm/index.js.map +0 -1
  41. package/packages/web/dist/drm/providers/BunnyNetProvider.d.ts +0 -19
  42. package/packages/web/dist/drm/providers/BunnyNetProvider.d.ts.map +0 -1
  43. package/packages/web/dist/drm/providers/BunnyNetProvider.js +0 -112
  44. package/packages/web/dist/drm/providers/BunnyNetProvider.js.map +0 -1
  45. package/packages/web/dist/drm/providers/GenericProvider.d.ts +0 -30
  46. package/packages/web/dist/drm/providers/GenericProvider.d.ts.map +0 -1
  47. package/packages/web/dist/drm/providers/GenericProvider.js +0 -104
  48. package/packages/web/dist/drm/providers/GenericProvider.js.map +0 -1
  49. package/packages/web/dist/drm/systems/BaseDRM.d.ts +0 -18
  50. package/packages/web/dist/drm/systems/BaseDRM.d.ts.map +0 -1
  51. package/packages/web/dist/drm/systems/BaseDRM.js +0 -29
  52. package/packages/web/dist/drm/systems/BaseDRM.js.map +0 -1
  53. package/packages/web/dist/drm/systems/FairPlayDRM.d.ts +0 -32
  54. package/packages/web/dist/drm/systems/FairPlayDRM.d.ts.map +0 -1
  55. package/packages/web/dist/drm/systems/FairPlayDRM.js +0 -208
  56. package/packages/web/dist/drm/systems/FairPlayDRM.js.map +0 -1
  57. package/packages/web/dist/drm/systems/PlayReadyDRM.d.ts +0 -9
  58. package/packages/web/dist/drm/systems/PlayReadyDRM.d.ts.map +0 -1
  59. package/packages/web/dist/drm/systems/PlayReadyDRM.js +0 -114
  60. package/packages/web/dist/drm/systems/PlayReadyDRM.js.map +0 -1
  61. package/packages/web/dist/drm/systems/WidevineDRM.d.ts +0 -9
  62. package/packages/web/dist/drm/systems/WidevineDRM.d.ts.map +0 -1
  63. package/packages/web/dist/drm/systems/WidevineDRM.js +0 -159
  64. package/packages/web/dist/drm/systems/WidevineDRM.js.map +0 -1
  65. package/packages/web/dist/drm/types/BunnyNetTypes.d.ts +0 -20
  66. package/packages/web/dist/drm/types/BunnyNetTypes.d.ts.map +0 -1
  67. package/packages/web/dist/drm/types/BunnyNetTypes.js +0 -8
  68. package/packages/web/dist/drm/types/BunnyNetTypes.js.map +0 -1
  69. package/packages/web/dist/drm/types/DRMTypes.d.ts +0 -60
  70. package/packages/web/dist/drm/types/DRMTypes.d.ts.map +0 -1
  71. package/packages/web/dist/drm/types/DRMTypes.js +0 -22
  72. package/packages/web/dist/drm/types/DRMTypes.js.map +0 -1
  73. package/packages/web/dist/drm/utils/BrowserDetector.d.ts +0 -20
  74. package/packages/web/dist/drm/utils/BrowserDetector.d.ts.map +0 -1
  75. package/packages/web/dist/drm/utils/BrowserDetector.js +0 -211
  76. package/packages/web/dist/drm/utils/BrowserDetector.js.map +0 -1
  77. package/packages/web/dist/drm/utils/CertificateManager.d.ts +0 -15
  78. package/packages/web/dist/drm/utils/CertificateManager.d.ts.map +0 -1
  79. package/packages/web/dist/drm/utils/CertificateManager.js +0 -46
  80. package/packages/web/dist/drm/utils/CertificateManager.js.map +0 -1
  81. package/packages/web/dist/drm/utils/DRMErrorHandler.d.ts +0 -7
  82. package/packages/web/dist/drm/utils/DRMErrorHandler.d.ts.map +0 -1
  83. package/packages/web/dist/drm/utils/DRMErrorHandler.js +0 -49
  84. package/packages/web/dist/drm/utils/DRMErrorHandler.js.map +0 -1
  85. package/packages/web/dist/drm/utils/LicenseRequestHandler.d.ts +0 -15
  86. package/packages/web/dist/drm/utils/LicenseRequestHandler.d.ts.map +0 -1
  87. package/packages/web/dist/drm/utils/LicenseRequestHandler.js +0 -110
  88. package/packages/web/dist/drm/utils/LicenseRequestHandler.js.map +0 -1
  89. package/packages/web/dist/drm.d.ts +0 -4
  90. package/packages/web/dist/drm.js +0 -5
  91. package/packages/web/dist/index.d.ts +0 -7
  92. package/packages/web/dist/paywall/EmailAuthController.d.ts +0 -60
  93. package/packages/web/dist/paywall/PaywallController.d.ts +0 -74
  94. package/packages/web/dist/react/EPG.d.ts +0 -8
  95. package/packages/web/dist/react/WebPlayerView.d.ts +0 -397
  96. package/packages/web/dist/react/WebPlayerViewWithEPG.d.ts +0 -97
  97. package/packages/web/dist/react/components/ChapterProgress.d.ts +0 -22
  98. package/packages/web/dist/react/components/EPGNavigationControls.d.ts +0 -15
  99. package/packages/web/dist/react/components/EPGOverlay-improved-positioning.d.ts +0 -5
  100. package/packages/web/dist/react/components/EPGOverlay.d.ts +0 -5
  101. package/packages/web/dist/react/components/EPGProgramDetails.d.ts +0 -13
  102. package/packages/web/dist/react/components/EPGProgramGrid.d.ts +0 -19
  103. package/packages/web/dist/react/components/EPGTimelineHeader.d.ts +0 -16
  104. package/packages/web/dist/react/components/SkipButton.d.ts +0 -18
  105. package/packages/web/dist/react/components/commerce/ProductBadge.d.ts +0 -10
  106. package/packages/web/dist/react/components/commerce/ProductPanel.d.ts +0 -13
  107. package/packages/web/dist/react/examples/google-ads-example.d.ts +0 -4
  108. package/packages/web/dist/react/examples/live-stream-ads-example.d.ts +0 -8
  109. package/packages/web/dist/react/examples/live-stream-ads-example.d.ts.map +0 -1
  110. package/packages/web/dist/react/examples/live-stream-ads-example.js +0 -177
  111. package/packages/web/dist/react/examples/live-stream-ads-example.js.map +0 -1
  112. package/packages/web/dist/react/hooks/useChapters.d.ts +0 -29
  113. package/packages/web/dist/react/hooks/useCommerceSync.d.ts +0 -8
  114. package/packages/web/dist/react/types/EPGTypes.d.ts +0 -101
  115. package/packages/web/dist/react/types/FlashNewsTickerTypes.d.ts +0 -146
  116. package/packages/web/dist/react/types/VideoCommerceTypes.d.ts +0 -109
  117. package/packages/web/dist/react/utils/EPGUtils.d.ts +0 -21
  118. package/packages/web/dist/test/epg-test.d.ts +0 -3
  119. 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 || 60;
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: 55%;`;
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 20px;
2920
+ padding: 0 25px;
2916
2921
  display: flex;
2917
2922
  align-items: center;
2918
- clip-path: polygon(0 0, 95% 0, 100% 100%, 0 100%);
2919
- font-size: ${height * 0.22}px;
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.textContent = config.headline || 'LOREM IPSUM DOLOR SIT AMET, CONS';
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
- font-weight: 700;
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: -10px;
2934
- clip-path: polygon(2% 0, 100% 0, 98% 100%, 0 100%);
2935
- font-size: ${height * 0.25}px;
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: 35%;
2973
+ height: 33%;
2944
2974
  background: #111;
2945
2975
  display: flex;
2946
2976
  align-items: center;
2947
- margin-top: 2px;
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: 900;
2957
- padding: 0 10px;
2958
- margin: 0 15px;
2959
- font-size: ${height * 0.15}px;
2960
- clip-path: polygon(0 0, 90% 0, 100% 100%, 0 100%);
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.style.fontSize = `${height * 0.16}px`;
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"}