unified-video-framework 1.4.365 → 1.4.366

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 (40) hide show
  1. package/package.json +1 -1
  2. package/packages/core/dist/interfaces/IVideoPlayer.d.ts +0 -1
  3. package/packages/core/dist/interfaces/IVideoPlayer.d.ts.map +1 -1
  4. package/packages/core/dist/interfaces.d.ts +1 -1
  5. package/packages/core/dist/interfaces.d.ts.map +1 -1
  6. package/packages/core/src/interfaces/IVideoPlayer.ts +1 -2
  7. package/packages/core/src/interfaces.ts +4 -1
  8. package/packages/web/dist/WebPlayer.d.ts.map +1 -1
  9. package/packages/web/dist/WebPlayer.js +1 -33
  10. package/packages/web/dist/WebPlayer.js.map +1 -1
  11. package/packages/web/dist/chapters/ChapterManager.d.ts +4 -3
  12. package/packages/web/dist/chapters/ChapterManager.d.ts.map +1 -1
  13. package/packages/web/dist/chapters/ChapterManager.js +52 -34
  14. package/packages/web/dist/chapters/ChapterManager.js.map +1 -1
  15. package/packages/web/dist/chapters/CreditsButtonController.d.ts +44 -0
  16. package/packages/web/dist/chapters/CreditsButtonController.d.ts.map +1 -0
  17. package/packages/web/dist/chapters/CreditsButtonController.js +243 -0
  18. package/packages/web/dist/chapters/CreditsButtonController.js.map +1 -0
  19. package/packages/web/dist/chapters/SkipButtonController.d.ts +1 -4
  20. package/packages/web/dist/chapters/SkipButtonController.d.ts.map +1 -1
  21. package/packages/web/dist/chapters/SkipButtonController.js +22 -118
  22. package/packages/web/dist/chapters/SkipButtonController.js.map +1 -1
  23. package/packages/web/dist/chapters/types/ChapterTypes.d.ts +21 -12
  24. package/packages/web/dist/chapters/types/ChapterTypes.d.ts.map +1 -1
  25. package/packages/web/dist/chapters/types/ChapterTypes.js.map +1 -1
  26. package/packages/web/dist/react/WebPlayerView.d.ts +0 -10
  27. package/packages/web/dist/react/WebPlayerView.d.ts.map +1 -1
  28. package/packages/web/dist/react/WebPlayerView.js +1 -5
  29. package/packages/web/dist/react/WebPlayerView.js.map +1 -1
  30. package/packages/web/dist/react/components/SkipButton.d.ts +0 -2
  31. package/packages/web/dist/react/components/SkipButton.d.ts.map +1 -1
  32. package/packages/web/dist/react/components/SkipButton.js +13 -30
  33. package/packages/web/dist/react/components/SkipButton.js.map +1 -1
  34. package/packages/web/src/WebPlayer.ts +7475 -7507
  35. package/packages/web/src/chapters/ChapterManager.ts +76 -57
  36. package/packages/web/src/chapters/CreditsButtonController.ts +392 -0
  37. package/packages/web/src/chapters/SkipButtonController.ts +33 -148
  38. package/packages/web/src/chapters/types/ChapterTypes.ts +34 -19
  39. package/packages/web/src/react/WebPlayerView.tsx +1 -14
  40. package/packages/web/src/react/components/SkipButton.tsx +24 -82
@@ -6,6 +6,7 @@ export declare class ChapterManager {
6
6
  private currentSegment;
7
7
  private previousSegment;
8
8
  private skipButtonController;
9
+ private creditsButtonController;
9
10
  private config;
10
11
  private eventListeners;
11
12
  private isDestroyed;
@@ -14,8 +15,6 @@ export declare class ChapterManager {
14
15
  loadChaptersFromUrl(url: string): Promise<void>;
15
16
  getCurrentSegment(currentTime: number): VideoSegment | null;
16
17
  skipToNextSegment(currentSegment: VideoSegment): void;
17
- handleSecondaryAction(segment: VideoSegment): void;
18
- triggerNextEpisode(): void;
19
18
  skipToSegment(segmentId: string): void;
20
19
  getSegments(): VideoSegment[];
21
20
  getSegment(segmentId: string): VideoSegment | null;
@@ -30,7 +29,9 @@ export declare class ChapterManager {
30
29
  private setupTimeUpdateListener;
31
30
  private checkCurrentSegment;
32
31
  private shouldShowSkipButton;
33
- private checkNextEpisodeOverride;
32
+ private handleWatchCredits;
33
+ private handleNextEpisode;
34
+ private handleAutoRedirect;
34
35
  private getNextContentSegment;
35
36
  private sortSegments;
36
37
  private validateChapters;
@@ -1 +1 @@
1
- {"version":3,"file":"ChapterManager.d.ts","sourceRoot":"","sources":["../../src/chapters/ChapterManager.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,WAAW,EAGZ,MAAM,sBAAsB,CAAC;AAG9B,qBAAa,cAAc;IAUvB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,YAAY;IAVtB,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,cAAc,CAAmD;IACzE,OAAO,CAAC,WAAW,CAAS;gBAGlB,eAAe,EAAE,WAAW,EAC5B,YAAY,EAAE,gBAAgB,EACtC,MAAM,GAAE,aAAsC;IAiCnC,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCpD,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBrD,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAW3D,iBAAiB,CAAC,cAAc,EAAE,YAAY,GAAG,IAAI;IAsDrD,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAUlD,kBAAkB,IAAI,IAAI;IAgB1B,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAyCtC,WAAW,IAAI,YAAY,EAAE;IAO7B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAQlD,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,EAAE;IAQpD,iBAAiB,IAAI,aAAa,EAAE;IAsBpC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAqBrD,EAAE,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAU7F,GAAG,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAa9F,OAAO,IAAI,IAAI;IAaf,WAAW,IAAI,OAAO;IAOtB,WAAW,IAAI,aAAa,GAAG,IAAI;IAO1C,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,mBAAmB;IA4C3B,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,wBAAwB;IAchC,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,gBAAgB;IAoCxB,OAAO,CAAC,oBAAoB;IA0B5B,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,IAAI;CAYb"}
1
+ {"version":3,"file":"ChapterManager.d.ts","sourceRoot":"","sources":["../../src/chapters/ChapterManager.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,WAAW,EAGZ,MAAM,sBAAsB,CAAC;AAI9B,qBAAa,cAAc;IAWvB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,YAAY;IAXtB,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,uBAAuB,CAA0B;IACzD,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,cAAc,CAAmD;IACzE,OAAO,CAAC,WAAW,CAAS;gBAGlB,eAAe,EAAE,WAAW,EAC5B,YAAY,EAAE,gBAAgB,EACtC,MAAM,GAAE,aAAsC;IAiDnC,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCpD,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBrD,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAW3D,iBAAiB,CAAC,cAAc,EAAE,YAAY,GAAG,IAAI;IAqCrD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAyCtC,WAAW,IAAI,YAAY,EAAE;IAO7B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAQlD,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,EAAE;IAQpD,iBAAiB,IAAI,aAAa,EAAE;IAsBpC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAqBrD,EAAE,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAU7F,GAAG,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAa9F,OAAO,IAAI,IAAI;IAcf,WAAW,IAAI,OAAO;IAOtB,WAAW,IAAI,aAAa,GAAG,IAAI;IAO1C,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,mBAAmB;IAqE3B,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,gBAAgB;IAoCxB,OAAO,CAAC,oBAAoB;IA0B5B,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,IAAI;CAYb"}
@@ -1,5 +1,6 @@
1
1
  import { DEFAULT_CHAPTER_CONFIG, SEGMENT_COLORS } from "./types/ChapterTypes.js";
2
2
  import { SkipButtonController } from "./SkipButtonController.js";
3
+ import { CreditsButtonController } from "./CreditsButtonController.js";
3
4
  export class ChapterManager {
4
5
  constructor(playerContainer, videoElement, config = DEFAULT_CHAPTER_CONFIG) {
5
6
  this.playerContainer = playerContainer;
@@ -14,7 +15,18 @@ export class ChapterManager {
14
15
  segment,
15
16
  currentTime: this.videoElement.currentTime,
16
17
  reason: reason
17
- }), (segment) => this.handleSecondaryAction(segment));
18
+ }));
19
+ this.creditsButtonController = new CreditsButtonController(playerContainer, this.config, {
20
+ onWatchCredits: (segment) => this.handleWatchCredits(segment),
21
+ onNextEpisode: (segment, url) => this.handleNextEpisode(segment, url),
22
+ onAutoRedirect: (segment, url) => this.handleAutoRedirect(segment, url),
23
+ onButtonsShown: (segment) => this.emit('skipButtonShown', { segment, currentTime: this.videoElement.currentTime }),
24
+ onButtonsHidden: (segment, reason) => this.emit('skipButtonHidden', {
25
+ segment,
26
+ currentTime: this.videoElement.currentTime,
27
+ reason: reason
28
+ })
29
+ });
18
30
  this.setupTimeUpdateListener();
19
31
  if (this.config.data) {
20
32
  this.loadChapters(this.config.data);
@@ -67,22 +79,9 @@ export class ChapterManager {
67
79
  return this.chapters.segments.find(segment => currentTime >= segment.startTime && currentTime < segment.endTime) || null;
68
80
  }
69
81
  skipToNextSegment(currentSegment) {
70
- console.log('[ChapterManager] skipToNextSegment called with segment:', currentSegment.type, currentSegment.title);
71
82
  if (!this.chapters)
72
83
  return;
73
84
  const nextSegment = this.getNextContentSegment(currentSegment);
74
- console.log('[ChapterManager] Next content segment:', nextSegment?.type || 'none');
75
- console.log('[ChapterManager] Checking Next Episode conditions:', {
76
- noNextSegment: !nextSegment,
77
- isCredits: currentSegment.type === 'credits',
78
- hasNextEpisodeConfig: !!(this.config.nextEpisode?.enabled || this.config.nextEpisode?.url)
79
- });
80
- if ((!nextSegment || currentSegment.type === 'credits') &&
81
- (this.config.nextEpisode?.enabled || this.config.nextEpisode?.url)) {
82
- console.log('[ChapterManager] Triggering Next Episode!');
83
- this.triggerNextEpisode();
84
- return;
85
- }
86
85
  const targetTime = nextSegment ? nextSegment.startTime : currentSegment.endTime;
87
86
  const wasPlaying = !this.videoElement.paused;
88
87
  this.emit('segmentSkipped', {
@@ -103,22 +102,6 @@ export class ChapterManager {
103
102
  }, 50);
104
103
  }
105
104
  }
106
- handleSecondaryAction(segment) {
107
- console.log('[ChapterManager] User chose to watch credits');
108
- }
109
- triggerNextEpisode() {
110
- console.log('[ChapterManager] triggerNextEpisode called. nextEpisode config:', this.config.nextEpisode);
111
- if (this.config.nextEpisode?.enabled || this.config.nextEpisode?.url) {
112
- console.log('[ChapterManager] Emitting nextEpisode event with config:', this.config.nextEpisode);
113
- this.emit('nextEpisode', {
114
- config: this.config.nextEpisode,
115
- autoPlay: true
116
- });
117
- }
118
- else {
119
- console.log('[ChapterManager] nextEpisode not triggered - no enabled flag or URL');
120
- }
121
- }
122
105
  skipToSegment(segmentId) {
123
106
  if (!this.chapters)
124
107
  return;
@@ -208,6 +191,7 @@ export class ChapterManager {
208
191
  destroy() {
209
192
  this.isDestroyed = true;
210
193
  this.skipButtonController.destroy();
194
+ this.creditsButtonController.destroy();
211
195
  this.removeChapterMarkers();
212
196
  this.eventListeners.clear();
213
197
  this.chapters = null;
@@ -242,6 +226,21 @@ export class ChapterManager {
242
226
  if (this.shouldShowSkipButton(this.currentSegment)) {
243
227
  this.skipButtonController.hideSkipButton('segment-end');
244
228
  }
229
+ if (this.currentSegment.type === 'credits' && this.currentSegment.nextEpisodeUrl) {
230
+ this.creditsButtonController.hideCreditsButtons('segment-end');
231
+ if (this.creditsButtonController.isUserWatchingCredits()) {
232
+ this.emit('creditsFullyWatched', {
233
+ segment: this.currentSegment,
234
+ nextEpisodeUrl: this.currentSegment.nextEpisodeUrl,
235
+ currentTime
236
+ });
237
+ setTimeout(() => {
238
+ if (this.currentSegment?.nextEpisodeUrl) {
239
+ window.location.href = this.currentSegment.nextEpisodeUrl;
240
+ }
241
+ }, 500);
242
+ }
243
+ }
245
244
  }
246
245
  this.previousSegment = this.currentSegment;
247
246
  this.currentSegment = newSegment;
@@ -251,7 +250,10 @@ export class ChapterManager {
251
250
  currentTime,
252
251
  previousSegment: this.previousSegment || undefined
253
252
  });
254
- if (this.shouldShowSkipButton(this.currentSegment)) {
253
+ if (this.currentSegment.type === 'credits' && this.currentSegment.nextEpisodeUrl) {
254
+ this.creditsButtonController.showCreditsButtons(this.currentSegment, currentTime);
255
+ }
256
+ else if (this.shouldShowSkipButton(this.currentSegment)) {
255
257
  this.skipButtonController.showSkipButton(this.currentSegment, currentTime);
256
258
  }
257
259
  }
@@ -263,9 +265,25 @@ export class ChapterManager {
263
265
  }
264
266
  return segment.showSkipButton !== false;
265
267
  }
266
- checkNextEpisodeOverride(segment) {
267
- if (segment.type === 'credits' && this.config.nextEpisode?.enabled) {
268
- }
268
+ handleWatchCredits(segment) {
269
+ this.emit('creditsWatched', {
270
+ segment,
271
+ currentTime: this.videoElement.currentTime
272
+ });
273
+ }
274
+ handleNextEpisode(segment, url) {
275
+ this.emit('nextEpisodeClicked', {
276
+ segment,
277
+ nextEpisodeUrl: url,
278
+ currentTime: this.videoElement.currentTime
279
+ });
280
+ }
281
+ handleAutoRedirect(segment, url) {
282
+ this.emit('creditsAutoRedirect', {
283
+ segment,
284
+ nextEpisodeUrl: url,
285
+ currentTime: this.videoElement.currentTime
286
+ });
269
287
  }
270
288
  getNextContentSegment(currentSegment) {
271
289
  if (!this.chapters)
@@ -1 +1 @@
1
- {"version":3,"file":"ChapterManager.js","sourceRoot":"","sources":["../../src/chapters/ChapterManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChapterManager.js","sourceRoot":"","sources":["../../src/chapters/ChapterManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { VideoSegment, ChapterConfig } from './types/ChapterTypes';
2
+ interface CreditsButtonCallbacks {
3
+ onWatchCredits: (segment: VideoSegment) => void;
4
+ onNextEpisode: (segment: VideoSegment, url: string) => void;
5
+ onAutoRedirect: (segment: VideoSegment, url: string) => void;
6
+ onButtonsShown: (segment: VideoSegment) => void;
7
+ onButtonsHidden: (segment: VideoSegment, reason: string) => void;
8
+ }
9
+ export declare class CreditsButtonController {
10
+ private playerContainer;
11
+ private config;
12
+ private callbacks;
13
+ private buttonsContainer;
14
+ private watchCreditsButton;
15
+ private nextEpisodeButton;
16
+ private currentSegment;
17
+ private autoRedirectTimeout;
18
+ private countdownInterval;
19
+ private isVisible;
20
+ private userWatchingCredits;
21
+ private readonly DEFAULT_WATCH_CREDITS_LABEL;
22
+ private readonly DEFAULT_NEXT_EPISODE_LABEL;
23
+ private readonly DEFAULT_AUTO_REDIRECT_DELAY;
24
+ constructor(playerContainer: HTMLElement, config: ChapterConfig, callbacks: CreditsButtonCallbacks);
25
+ showCreditsButtons(segment: VideoSegment, currentTime: number): void;
26
+ hideCreditsButtons(reason?: 'timeout' | 'segment-end' | 'user-action' | 'manual'): void;
27
+ isUserWatchingCredits(): boolean;
28
+ getCurrentSegment(): VideoSegment | null;
29
+ isButtonsVisible(): boolean;
30
+ destroy(): void;
31
+ private createCreditsButtons;
32
+ private applyButtonStyles;
33
+ private updateButtonLabels;
34
+ private showButtons;
35
+ private hideButtons;
36
+ private handleWatchCreditsClick;
37
+ private handleNextEpisodeClick;
38
+ private startAutoRedirectCountdown;
39
+ private createProgressBar;
40
+ private redirectToNextEpisode;
41
+ private clearTimeouts;
42
+ }
43
+ export {};
44
+ //# sourceMappingURL=CreditsButtonController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreditsButtonController.d.ts","sourceRoot":"","sources":["../../src/chapters/CreditsButtonController.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,YAAY,EACZ,aAAa,EAChB,MAAM,sBAAsB,CAAC;AAE9B,UAAU,sBAAsB;IAC5B,cAAc,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAChD,aAAa,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,cAAc,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,cAAc,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAChD,eAAe,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACpE;AAED,qBAAa,uBAAuB;IAgB5B,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,SAAS;IAjBrB,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,iBAAiB,CAA4B;IACrD,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,mBAAmB,CAA+B;IAC1D,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,mBAAmB,CAAS;IAGpC,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAmB;IAC/D,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAe;IAC1D,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAM;gBAGtC,eAAe,EAAE,WAAW,EAC5B,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,sBAAsB;IAMtC,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAgCpE,kBAAkB,CAAC,MAAM,GAAE,SAAS,GAAG,aAAa,GAAG,aAAa,GAAG,QAAmB,GAAG,IAAI;IAoBjG,qBAAqB,IAAI,OAAO;IAOhC,iBAAiB,IAAI,YAAY,GAAG,IAAI;IAOxC,gBAAgB,IAAI,OAAO;IAO3B,OAAO,IAAI,IAAI;IAgBtB,OAAO,CAAC,oBAAoB;IAqD5B,OAAO,CAAC,iBAAiB;IAwDzB,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,uBAAuB;IAc/B,OAAO,CAAC,sBAAsB;IAe9B,OAAO,CAAC,0BAA0B;IAiDlC,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,aAAa;CAWxB"}
@@ -0,0 +1,243 @@
1
+ export class CreditsButtonController {
2
+ constructor(playerContainer, config, callbacks) {
3
+ this.playerContainer = playerContainer;
4
+ this.config = config;
5
+ this.callbacks = callbacks;
6
+ this.buttonsContainer = null;
7
+ this.watchCreditsButton = null;
8
+ this.nextEpisodeButton = null;
9
+ this.currentSegment = null;
10
+ this.autoRedirectTimeout = null;
11
+ this.countdownInterval = null;
12
+ this.isVisible = false;
13
+ this.userWatchingCredits = false;
14
+ this.DEFAULT_WATCH_CREDITS_LABEL = 'Watch Credits';
15
+ this.DEFAULT_NEXT_EPISODE_LABEL = 'Play Next';
16
+ this.DEFAULT_AUTO_REDIRECT_DELAY = 10;
17
+ }
18
+ showCreditsButtons(segment, currentTime) {
19
+ if (!segment.nextEpisodeUrl) {
20
+ console.warn('[CreditsButtonController] Segment does not have nextEpisodeUrl');
21
+ return;
22
+ }
23
+ this.currentSegment = segment;
24
+ this.userWatchingCredits = false;
25
+ if (!this.buttonsContainer) {
26
+ this.createCreditsButtons();
27
+ }
28
+ this.updateButtonLabels(segment);
29
+ this.showButtons();
30
+ const delay = segment.autoSkipDelay || this.DEFAULT_AUTO_REDIRECT_DELAY;
31
+ this.startAutoRedirectCountdown(segment, delay);
32
+ this.callbacks.onButtonsShown(segment);
33
+ }
34
+ hideCreditsButtons(reason = 'manual') {
35
+ if (!this.buttonsContainer || !this.isVisible) {
36
+ return;
37
+ }
38
+ this.hideButtons();
39
+ this.clearTimeouts();
40
+ if (this.currentSegment) {
41
+ this.callbacks.onButtonsHidden(this.currentSegment, reason);
42
+ }
43
+ this.isVisible = false;
44
+ this.currentSegment = null;
45
+ }
46
+ isUserWatchingCredits() {
47
+ return this.userWatchingCredits;
48
+ }
49
+ getCurrentSegment() {
50
+ return this.currentSegment;
51
+ }
52
+ isButtonsVisible() {
53
+ return this.isVisible;
54
+ }
55
+ destroy() {
56
+ this.clearTimeouts();
57
+ if (this.buttonsContainer) {
58
+ this.buttonsContainer.remove();
59
+ this.buttonsContainer = null;
60
+ }
61
+ this.watchCreditsButton = null;
62
+ this.nextEpisodeButton = null;
63
+ this.currentSegment = null;
64
+ this.isVisible = false;
65
+ this.userWatchingCredits = false;
66
+ }
67
+ createCreditsButtons() {
68
+ this.buttonsContainer = document.createElement('div');
69
+ this.buttonsContainer.className = 'uvf-credits-buttons';
70
+ this.buttonsContainer.setAttribute('role', 'group');
71
+ this.buttonsContainer.setAttribute('aria-label', 'Credits navigation');
72
+ Object.assign(this.buttonsContainer.style, {
73
+ position: 'absolute',
74
+ bottom: '100px',
75
+ right: '30px',
76
+ display: 'flex',
77
+ flexDirection: 'column',
78
+ gap: '10px',
79
+ zIndex: '1000',
80
+ opacity: '0',
81
+ transition: 'opacity 0.3s ease-in-out'
82
+ });
83
+ this.watchCreditsButton = document.createElement('button');
84
+ this.watchCreditsButton.className = 'uvf-watch-credits-button';
85
+ this.watchCreditsButton.setAttribute('type', 'button');
86
+ this.watchCreditsButton.setAttribute('aria-label', 'Watch credits');
87
+ this.watchCreditsButton.addEventListener('click', () => this.handleWatchCreditsClick());
88
+ this.nextEpisodeButton = document.createElement('button');
89
+ this.nextEpisodeButton.className = 'uvf-next-episode-button';
90
+ this.nextEpisodeButton.setAttribute('type', 'button');
91
+ this.nextEpisodeButton.setAttribute('aria-label', 'Play next episode');
92
+ this.nextEpisodeButton.addEventListener('click', () => this.handleNextEpisodeClick());
93
+ this.applyButtonStyles(this.watchCreditsButton, 'watch-credits');
94
+ this.applyButtonStyles(this.nextEpisodeButton, 'next-episode');
95
+ this.buttonsContainer.appendChild(this.watchCreditsButton);
96
+ this.buttonsContainer.appendChild(this.nextEpisodeButton);
97
+ this.playerContainer.appendChild(this.buttonsContainer);
98
+ }
99
+ applyButtonStyles(button, type) {
100
+ const baseStyles = {
101
+ padding: '12px 24px',
102
+ fontSize: '14px',
103
+ fontWeight: '600',
104
+ border: 'none',
105
+ borderRadius: '6px',
106
+ cursor: 'pointer',
107
+ transition: 'all 0.2s ease-in-out',
108
+ fontFamily: 'inherit',
109
+ outline: 'none',
110
+ minWidth: '180px',
111
+ position: 'relative'
112
+ };
113
+ if (type === 'watch-credits') {
114
+ Object.assign(baseStyles, {
115
+ backgroundColor: 'rgba(255, 255, 255, 0.15)',
116
+ color: '#ffffff',
117
+ border: '2px solid rgba(255, 255, 255, 0.3)'
118
+ });
119
+ }
120
+ else {
121
+ Object.assign(baseStyles, {
122
+ backgroundColor: '#e50914',
123
+ color: '#ffffff',
124
+ boxShadow: '0 2px 8px rgba(229, 9, 20, 0.4)'
125
+ });
126
+ }
127
+ Object.assign(button.style, baseStyles);
128
+ button.addEventListener('mouseenter', () => {
129
+ if (type === 'watch-credits') {
130
+ button.style.backgroundColor = 'rgba(255, 255, 255, 0.25)';
131
+ button.style.borderColor = 'rgba(255, 255, 255, 0.5)';
132
+ }
133
+ else {
134
+ button.style.backgroundColor = '#f40612';
135
+ button.style.transform = 'scale(1.03)';
136
+ }
137
+ });
138
+ button.addEventListener('mouseleave', () => {
139
+ if (type === 'watch-credits') {
140
+ button.style.backgroundColor = 'rgba(255, 255, 255, 0.15)';
141
+ button.style.borderColor = 'rgba(255, 255, 255, 0.3)';
142
+ }
143
+ else {
144
+ button.style.backgroundColor = '#e50914';
145
+ button.style.transform = 'scale(1)';
146
+ }
147
+ });
148
+ }
149
+ updateButtonLabels(segment) {
150
+ if (!this.watchCreditsButton || !this.nextEpisodeButton)
151
+ return;
152
+ const watchLabel = segment.watchCreditsLabel || this.DEFAULT_WATCH_CREDITS_LABEL;
153
+ const nextLabel = segment.nextEpisodeLabel || this.DEFAULT_NEXT_EPISODE_LABEL;
154
+ this.watchCreditsButton.textContent = watchLabel;
155
+ this.nextEpisodeButton.textContent = nextLabel;
156
+ this.watchCreditsButton.setAttribute('aria-label', watchLabel);
157
+ this.nextEpisodeButton.setAttribute('aria-label', nextLabel);
158
+ }
159
+ showButtons() {
160
+ if (!this.buttonsContainer)
161
+ return;
162
+ this.buttonsContainer.style.opacity = '1';
163
+ this.isVisible = true;
164
+ }
165
+ hideButtons() {
166
+ if (!this.buttonsContainer)
167
+ return;
168
+ this.buttonsContainer.style.opacity = '0';
169
+ }
170
+ handleWatchCreditsClick() {
171
+ if (!this.currentSegment)
172
+ return;
173
+ this.userWatchingCredits = true;
174
+ this.clearTimeouts();
175
+ this.hideCreditsButtons('user-action');
176
+ this.callbacks.onWatchCredits(this.currentSegment);
177
+ }
178
+ handleNextEpisodeClick() {
179
+ if (!this.currentSegment || !this.currentSegment.nextEpisodeUrl)
180
+ return;
181
+ this.clearTimeouts();
182
+ this.callbacks.onNextEpisode(this.currentSegment, this.currentSegment.nextEpisodeUrl);
183
+ this.redirectToNextEpisode(this.currentSegment.nextEpisodeUrl);
184
+ }
185
+ startAutoRedirectCountdown(segment, delay) {
186
+ if (!this.nextEpisodeButton || !segment.nextEpisodeUrl)
187
+ return;
188
+ let remainingTime = delay;
189
+ const originalLabel = segment.nextEpisodeLabel || this.DEFAULT_NEXT_EPISODE_LABEL;
190
+ this.nextEpisodeButton.textContent = `${originalLabel} (${remainingTime})`;
191
+ const progressBar = this.createProgressBar();
192
+ this.nextEpisodeButton.appendChild(progressBar);
193
+ this.countdownInterval = setInterval(() => {
194
+ remainingTime -= 1;
195
+ if (this.nextEpisodeButton) {
196
+ this.nextEpisodeButton.textContent = `${originalLabel} (${remainingTime})`;
197
+ this.nextEpisodeButton.appendChild(progressBar);
198
+ const progress = ((delay - remainingTime) / delay) * 100;
199
+ progressBar.style.width = `${progress}%`;
200
+ }
201
+ if (remainingTime <= 0) {
202
+ this.clearTimeouts();
203
+ this.callbacks.onAutoRedirect(segment, segment.nextEpisodeUrl);
204
+ this.redirectToNextEpisode(segment.nextEpisodeUrl);
205
+ }
206
+ }, 1000);
207
+ this.autoRedirectTimeout = setTimeout(() => {
208
+ if (segment.nextEpisodeUrl) {
209
+ this.callbacks.onAutoRedirect(segment, segment.nextEpisodeUrl);
210
+ this.redirectToNextEpisode(segment.nextEpisodeUrl);
211
+ }
212
+ }, delay * 1000);
213
+ }
214
+ createProgressBar() {
215
+ const progressBar = document.createElement('div');
216
+ progressBar.className = 'uvf-countdown-progress';
217
+ Object.assign(progressBar.style, {
218
+ position: 'absolute',
219
+ bottom: '0',
220
+ left: '0',
221
+ height: '3px',
222
+ backgroundColor: 'rgba(255, 255, 255, 0.9)',
223
+ width: '0%',
224
+ transition: 'width 1s linear',
225
+ borderRadius: '0 0 6px 6px'
226
+ });
227
+ return progressBar;
228
+ }
229
+ redirectToNextEpisode(url) {
230
+ window.location.href = url;
231
+ }
232
+ clearTimeouts() {
233
+ if (this.autoRedirectTimeout) {
234
+ clearTimeout(this.autoRedirectTimeout);
235
+ this.autoRedirectTimeout = null;
236
+ }
237
+ if (this.countdownInterval) {
238
+ clearInterval(this.countdownInterval);
239
+ this.countdownInterval = null;
240
+ }
241
+ }
242
+ }
243
+ //# sourceMappingURL=CreditsButtonController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreditsButtonController.js","sourceRoot":"","sources":["../../src/chapters/CreditsButtonController.ts"],"names":[],"mappings":"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"}
@@ -5,16 +5,13 @@ export declare class SkipButtonController {
5
5
  private onSkip;
6
6
  private onButtonShown;
7
7
  private onButtonHidden;
8
- private onSecondaryAction?;
9
8
  private skipButton;
10
- private secondaryButton;
11
- private container;
12
9
  private currentSegment;
13
10
  private autoSkipTimeout;
14
11
  private hideTimeout;
15
12
  private countdownInterval;
16
13
  private state;
17
- constructor(playerContainer: HTMLElement, config: ChapterConfig, onSkip: (segment: VideoSegment) => void, onButtonShown: (segment: VideoSegment) => void, onButtonHidden: (segment: VideoSegment, reason: string) => void, onSecondaryAction?: ((segment: VideoSegment) => void) | undefined);
14
+ constructor(playerContainer: HTMLElement, config: ChapterConfig, onSkip: (segment: VideoSegment) => void, onButtonShown: (segment: VideoSegment) => void, onButtonHidden: (segment: VideoSegment, reason: string) => void);
18
15
  showSkipButton(segment: VideoSegment, currentTime: number): void;
19
16
  hideSkipButton(reason?: 'timeout' | 'segment-end' | 'user-action' | 'manual'): void;
20
17
  updatePosition(position: SkipButtonPosition): void;
@@ -1 +1 @@
1
- {"version":3,"file":"SkipButtonController.d.ts","sourceRoot":"","sources":["../../src/chapters/SkipButtonController.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,aAAa,EAEd,MAAM,sBAAsB,CAAC;AAE9B,qBAAa,oBAAoB;IAW7B,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,iBAAiB,CAAC;IAf5B,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,KAAK,CAAkB;gBAGrB,eAAe,EAAE,WAAW,EAC5B,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,EACvC,aAAa,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,EAC9C,cAAc,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,EAC/D,iBAAiB,CAAC,aAAY,YAAY,KAAK,IAAI,aAAA;IAYtD,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAyChE,cAAc,CAAC,MAAM,GAAE,SAAS,GAAG,aAAa,GAAG,aAAa,GAAG,QAAmB,GAAG,IAAI;IAqB7F,cAAc,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAUlD,SAAS,IAAI,OAAO;IAOpB,QAAQ,IAAI,eAAe;IAO3B,OAAO,IAAI,IAAI;IAoBtB,OAAO,CAAC,gBAAgB;IAmExB,OAAO,CAAC,gBAAgB;IA8DxB,OAAO,CAAC,mBAAmB;IA2D3B,OAAO,CAAC,UAAU;IAqBlB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,cAAc;IA2BtB,OAAO,CAAC,sBAAsB;IA0C9B,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,aAAa;CAkBtB"}
1
+ {"version":3,"file":"SkipButtonController.d.ts","sourceRoot":"","sources":["../../src/chapters/SkipButtonController.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,aAAa,EAEd,MAAM,sBAAsB,CAAC;AAE9B,qBAAa,oBAAoB;IAS7B,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,cAAc;IAZxB,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,KAAK,CAAkB;gBAGrB,eAAe,EAAE,WAAW,EAC5B,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,EACvC,aAAa,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,EAC9C,cAAc,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI;IAYlE,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAqChE,cAAc,CAAC,MAAM,GAAE,SAAS,GAAG,aAAa,GAAG,aAAa,GAAG,QAAmB,GAAG,IAAI;IAqB7F,cAAc,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAUlD,SAAS,IAAI,OAAO;IAOpB,QAAQ,IAAI,eAAe;IAO3B,OAAO,IAAI,IAAI;IActB,OAAO,CAAC,gBAAgB;IA4BxB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,mBAAmB;IAmD3B,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,cAAc;IA2BtB,OAAO,CAAC,sBAAsB;IA0C9B,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,aAAa;CAkBtB"}