unified-video-framework 1.4.65 → 1.4.67

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "unified-video-framework",
3
- "version": "1.4.65",
3
+ "version": "1.4.67",
4
4
  "description": "Cross-platform video player framework supporting iOS, Android, Web, Smart TVs (Samsung/LG), Roku, and more",
5
5
  "main": "packages/core/dist/index.js",
6
6
  "types": "packages/core/dist/index.d.ts",
@@ -39,9 +39,6 @@ export declare class WebPlayer extends BasePlayer {
39
39
  private selectedSubtitleKey;
40
40
  private _kiTo;
41
41
  private paywallController;
42
- private epgData;
43
- private epgOverlay;
44
- private isEPGVisible;
45
42
  private _playPromise;
46
43
  private _deferredPause;
47
44
  private _lastToggleAt;
@@ -147,12 +144,6 @@ export declare class WebPlayer extends BasePlayer {
147
144
  hideEPGButton(): void;
148
145
  setEPGData(epgData: any): void;
149
146
  isEPGButtonVisible(): boolean;
150
- private toggleEPG;
151
- private showEPGOverlay;
152
- private hideEPGOverlay;
153
- private createEPGOverlay;
154
- private populateEPGContent;
155
- private renderChannelList;
156
147
  private cleanup;
157
148
  destroy(): Promise<void>;
158
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WebPlayer.d.ts","sourceRoot":"","sources":["../src/WebPlayer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebPlayer.d.ts","sourceRoot":"","sources":["../src/WebPlayer.ts"],"names":[],"mappings":"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"}
@@ -32,9 +32,6 @@ export class WebPlayer extends BasePlayer {
32
32
  this.selectedSubtitleKey = 'off';
33
33
  this._kiTo = null;
34
34
  this.paywallController = null;
35
- this.epgData = null;
36
- this.epgOverlay = null;
37
- this.isEPGVisible = false;
38
35
  this._playPromise = null;
39
36
  this._deferredPause = false;
40
37
  this._lastToggleAt = 0;
@@ -2594,7 +2591,7 @@ export class WebPlayer extends BasePlayer {
2594
2591
  epgBtn?.addEventListener('click', (e) => {
2595
2592
  e.stopPropagation();
2596
2593
  this.debugLog('EPG button clicked');
2597
- this.toggleEPG();
2594
+ this.emit('epgToggle', {});
2598
2595
  });
2599
2596
  const pipBtn = document.getElementById('uvf-pip-btn');
2600
2597
  pipBtn?.addEventListener('click', () => this.togglePiP());
@@ -2693,19 +2690,10 @@ export class WebPlayer extends BasePlayer {
2693
2690
  shortcutText = 'Picture-in-Picture';
2694
2691
  break;
2695
2692
  case 'g':
2696
- if (e.ctrlKey) {
2697
- e.preventDefault();
2698
- this.debugLog('Ctrl+G pressed - toggling EPG');
2699
- this.toggleEPG();
2700
- shortcutText = 'Toggle EPG';
2701
- }
2702
- break;
2703
- case 'Escape':
2704
- if (this.isEPGVisible) {
2705
- e.preventDefault();
2706
- this.hideEPGOverlay();
2707
- shortcutText = 'Close EPG';
2708
- }
2693
+ e.preventDefault();
2694
+ this.debugLog('G key pressed - toggling EPG');
2695
+ this.emit('epgToggle', {});
2696
+ shortcutText = 'Toggle EPG';
2709
2697
  break;
2710
2698
  case '0':
2711
2699
  case '1':
@@ -4078,7 +4066,6 @@ export class WebPlayer extends BasePlayer {
4078
4066
  }
4079
4067
  }
4080
4068
  setEPGData(epgData) {
4081
- this.epgData = epgData;
4082
4069
  if (epgData && Object.keys(epgData).length > 0) {
4083
4070
  this.showEPGButton();
4084
4071
  this.debugLog('EPG data set, button shown');
@@ -4093,248 +4080,6 @@ export class WebPlayer extends BasePlayer {
4093
4080
  const epgBtn = document.getElementById('uvf-epg-btn');
4094
4081
  return epgBtn ? epgBtn.style.display !== 'none' : false;
4095
4082
  }
4096
- toggleEPG() {
4097
- if (this.isEPGVisible) {
4098
- this.hideEPGOverlay();
4099
- }
4100
- else {
4101
- this.showEPGOverlay();
4102
- }
4103
- }
4104
- showEPGOverlay() {
4105
- if (!this.epgData) {
4106
- this.showNotification('No EPG data available');
4107
- return;
4108
- }
4109
- if (!this.epgOverlay) {
4110
- this.createEPGOverlay();
4111
- }
4112
- if (this.epgOverlay) {
4113
- this.epgOverlay.style.display = 'flex';
4114
- this.isEPGVisible = true;
4115
- this.debugLog('EPG overlay shown');
4116
- this.emit('epgToggle', { visible: true, data: this.epgData });
4117
- }
4118
- }
4119
- hideEPGOverlay() {
4120
- if (this.epgOverlay) {
4121
- this.epgOverlay.style.display = 'none';
4122
- this.isEPGVisible = false;
4123
- this.debugLog('EPG overlay hidden');
4124
- this.emit('epgToggle', { visible: false, data: this.epgData });
4125
- }
4126
- }
4127
- createEPGOverlay() {
4128
- if (!this.playerWrapper)
4129
- return;
4130
- this.epgOverlay = document.createElement('div');
4131
- this.epgOverlay.className = 'uvf-epg-overlay';
4132
- this.epgOverlay.style.cssText = `
4133
- position: absolute;
4134
- top: 0;
4135
- left: 0;
4136
- right: 0;
4137
- bottom: 0;
4138
- background: rgba(0, 0, 0, 0.95);
4139
- color: white;
4140
- z-index: 1000;
4141
- display: none;
4142
- flex-direction: column;
4143
- padding: 20px;
4144
- box-sizing: border-box;
4145
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
4146
- `;
4147
- const header = document.createElement('div');
4148
- header.style.cssText = `
4149
- display: flex;
4150
- justify-content: space-between;
4151
- align-items: center;
4152
- margin-bottom: 20px;
4153
- border-bottom: 1px solid rgba(255, 255, 255, 0.2);
4154
- padding-bottom: 15px;
4155
- `;
4156
- const title = document.createElement('h2');
4157
- title.textContent = 'Electronic Program Guide';
4158
- title.style.cssText = `
4159
- margin: 0;
4160
- color: #ff6b35;
4161
- font-size: 24px;
4162
- font-weight: 600;
4163
- `;
4164
- const closeBtn = document.createElement('button');
4165
- closeBtn.innerHTML = '×';
4166
- closeBtn.style.cssText = `
4167
- background: none;
4168
- border: none;
4169
- color: white;
4170
- font-size: 32px;
4171
- cursor: pointer;
4172
- padding: 0;
4173
- width: 40px;
4174
- height: 40px;
4175
- display: flex;
4176
- align-items: center;
4177
- justify-content: center;
4178
- border-radius: 50%;
4179
- transition: background-color 0.2s;
4180
- `;
4181
- closeBtn.addEventListener('click', () => this.hideEPGOverlay());
4182
- closeBtn.addEventListener('mouseenter', () => {
4183
- closeBtn.style.backgroundColor = 'rgba(255, 255, 255, 0.1)';
4184
- });
4185
- closeBtn.addEventListener('mouseleave', () => {
4186
- closeBtn.style.backgroundColor = 'transparent';
4187
- });
4188
- header.appendChild(title);
4189
- header.appendChild(closeBtn);
4190
- const content = document.createElement('div');
4191
- content.className = 'uvf-epg-content';
4192
- content.style.cssText = `
4193
- flex: 1;
4194
- overflow-y: auto;
4195
- padding-right: 10px;
4196
- `;
4197
- this.populateEPGContent(content);
4198
- const footer = document.createElement('div');
4199
- footer.style.cssText = `
4200
- margin-top: 20px;
4201
- padding-top: 15px;
4202
- border-top: 1px solid rgba(255, 255, 255, 0.2);
4203
- text-align: center;
4204
- color: rgba(255, 255, 255, 0.7);
4205
- font-size: 14px;
4206
- `;
4207
- footer.innerHTML = 'Press <strong>Esc</strong> or <strong>Ctrl+G</strong> to close • Click outside to close';
4208
- this.epgOverlay.appendChild(header);
4209
- this.epgOverlay.appendChild(content);
4210
- this.epgOverlay.appendChild(footer);
4211
- this.playerWrapper.appendChild(this.epgOverlay);
4212
- this.epgOverlay.addEventListener('keydown', (e) => {
4213
- if (e.key === 'Escape') {
4214
- this.hideEPGOverlay();
4215
- }
4216
- });
4217
- this.epgOverlay.addEventListener('click', (e) => {
4218
- if (e.target === this.epgOverlay) {
4219
- this.hideEPGOverlay();
4220
- }
4221
- });
4222
- this.debugLog('EPG overlay created');
4223
- }
4224
- populateEPGContent(container) {
4225
- if (!this.epgData)
4226
- return;
4227
- container.innerHTML = '';
4228
- if (Array.isArray(this.epgData)) {
4229
- this.renderChannelList(container, this.epgData);
4230
- }
4231
- else if (this.epgData.channels) {
4232
- this.renderChannelList(container, this.epgData.channels);
4233
- }
4234
- else {
4235
- container.innerHTML = `
4236
- <div style="font-family: monospace; font-size: 12px; color: rgba(255, 255, 255, 0.8);">
4237
- <pre>${JSON.stringify(this.epgData, null, 2)}</pre>
4238
- </div>
4239
- `;
4240
- }
4241
- }
4242
- renderChannelList(container, channels) {
4243
- if (!Array.isArray(channels) || channels.length === 0) {
4244
- container.innerHTML = '<div style="text-align: center; color: rgba(255, 255, 255, 0.7);">No channels available</div>';
4245
- return;
4246
- }
4247
- channels.forEach((channel, index) => {
4248
- const channelDiv = document.createElement('div');
4249
- channelDiv.style.cssText = `
4250
- margin-bottom: 20px;
4251
- padding: 15px;
4252
- background: rgba(255, 255, 255, 0.05);
4253
- border-radius: 8px;
4254
- border-left: 3px solid #ff6b35;
4255
- `;
4256
- const channelHeader = document.createElement('div');
4257
- channelHeader.style.cssText = `
4258
- display: flex;
4259
- align-items: center;
4260
- margin-bottom: 10px;
4261
- `;
4262
- const channelName = document.createElement('h3');
4263
- channelName.textContent = channel.name || channel.title || `Channel ${index + 1}`;
4264
- channelName.style.cssText = `
4265
- margin: 0;
4266
- color: #ff6b35;
4267
- font-size: 18px;
4268
- font-weight: 600;
4269
- `;
4270
- const channelNumber = document.createElement('span');
4271
- if (channel.number || channel.id) {
4272
- channelNumber.textContent = `Ch ${channel.number || channel.id}`;
4273
- channelNumber.style.cssText = `
4274
- margin-left: 10px;
4275
- padding: 2px 8px;
4276
- background: rgba(255, 107, 53, 0.2);
4277
- border-radius: 12px;
4278
- font-size: 12px;
4279
- color: rgba(255, 255, 255, 0.8);
4280
- `;
4281
- }
4282
- channelHeader.appendChild(channelName);
4283
- if (channelNumber.textContent) {
4284
- channelHeader.appendChild(channelNumber);
4285
- }
4286
- const programsList = document.createElement('div');
4287
- programsList.style.cssText = `
4288
- margin-left: 10px;
4289
- `;
4290
- if (channel.programs && Array.isArray(channel.programs)) {
4291
- channel.programs.slice(0, 5).forEach((program) => {
4292
- const programDiv = document.createElement('div');
4293
- programDiv.style.cssText = `
4294
- display: flex;
4295
- justify-content: space-between;
4296
- align-items: center;
4297
- padding: 5px 0;
4298
- border-bottom: 1px solid rgba(255, 255, 255, 0.1);
4299
- `;
4300
- const programInfo = document.createElement('div');
4301
- programInfo.style.flex = '1';
4302
- const programTitle = document.createElement('div');
4303
- programTitle.textContent = program.title || program.name || 'Untitled Program';
4304
- programTitle.style.cssText = `
4305
- color: white;
4306
- font-weight: 500;
4307
- margin-bottom: 2px;
4308
- `;
4309
- const programTime = document.createElement('div');
4310
- const startTime = program.startTime ? new Date(program.startTime).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }) : '';
4311
- const endTime = program.endTime ? new Date(program.endTime).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }) : '';
4312
- programTime.textContent = startTime && endTime ? `${startTime} - ${endTime}` : 'Time TBA';
4313
- programTime.style.cssText = `
4314
- color: rgba(255, 255, 255, 0.6);
4315
- font-size: 12px;
4316
- `;
4317
- programInfo.appendChild(programTitle);
4318
- programInfo.appendChild(programTime);
4319
- programDiv.appendChild(programInfo);
4320
- programsList.appendChild(programDiv);
4321
- });
4322
- }
4323
- else {
4324
- const noPrograms = document.createElement('div');
4325
- noPrograms.textContent = 'No programs available';
4326
- noPrograms.style.cssText = `
4327
- color: rgba(255, 255, 255, 0.6);
4328
- font-style: italic;
4329
- padding: 10px 0;
4330
- `;
4331
- programsList.appendChild(noPrograms);
4332
- }
4333
- channelDiv.appendChild(channelHeader);
4334
- channelDiv.appendChild(programsList);
4335
- container.appendChild(channelDiv);
4336
- });
4337
- }
4338
4083
  async cleanup() {
4339
4084
  if (this.hls) {
4340
4085
  this.hls.destroy();
@@ -1 +1 @@
1
- {"version":3,"file":"WebPlayer.js","sourceRoot":"","sources":["../src/WebPlayer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebPlayer.js","sourceRoot":"","sources":["../src/WebPlayer.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,6 @@ export * from '@unified-video/core';
2
2
  export { WebPlayer } from './WebPlayer';
3
3
  export { WebPlayerView } from './react/WebPlayerView';
4
4
  export { SecureVideoPlayer } from './SecureVideoPlayer';
5
+ export * from './react/EPG';
5
6
  export declare const VERSION = "1.0.0";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,cAAc,qBAAqB,CAAC;AAGpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAKxD,eAAO,MAAM,OAAO,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,cAAc,qBAAqB,CAAC;AAGpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,cAAc,aAAa,CAAC;AAG5B,eAAO,MAAM,OAAO,UAAU,CAAC"}
@@ -2,5 +2,6 @@ export * from "../../core/dist/index.js";
2
2
  export { WebPlayer } from "./WebPlayer.js";
3
3
  export { WebPlayerView } from "./react/WebPlayerView.js";
4
4
  export { SecureVideoPlayer } from "./SecureVideoPlayer.js";
5
+ export * from "./react/EPG.js";
5
6
  export const VERSION = '1.0.0';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,cAAc,qBAAqB,CAAC;AAGpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAKxD,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,cAAc,qBAAqB,CAAC;AAGpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,cAAc,aAAa,CAAC;AAG5B,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
@@ -61,11 +61,6 @@ export class WebPlayer extends BasePlayer {
61
61
  // Paywall
62
62
  private paywallController: any = null;
63
63
 
64
- // EPG (Electronic Program Guide) functionality
65
- private epgData: any = null;
66
- private epgOverlay: HTMLElement | null = null;
67
- private isEPGVisible: boolean = false;
68
-
69
64
  // Play/pause coordination to prevent race conditions
70
65
  private _playPromise: Promise<void> | null = null;
71
66
  private _deferredPause = false;
@@ -2846,7 +2841,8 @@ export class WebPlayer extends BasePlayer {
2846
2841
  epgBtn?.addEventListener('click', (e) => {
2847
2842
  e.stopPropagation();
2848
2843
  this.debugLog('EPG button clicked');
2849
- this.toggleEPG();
2844
+ // Trigger custom event for EPG toggle
2845
+ this.emit('epgToggle', {});
2850
2846
  });
2851
2847
 
2852
2848
  // PiP button
@@ -2960,19 +2956,10 @@ export class WebPlayer extends BasePlayer {
2960
2956
  shortcutText = 'Picture-in-Picture';
2961
2957
  break;
2962
2958
  case 'g':
2963
- if (e.ctrlKey) {
2964
- e.preventDefault();
2965
- this.debugLog('Ctrl+G pressed - toggling EPG');
2966
- this.toggleEPG();
2967
- shortcutText = 'Toggle EPG';
2968
- }
2969
- break;
2970
- case 'Escape':
2971
- if (this.isEPGVisible) {
2972
- e.preventDefault();
2973
- this.hideEPGOverlay();
2974
- shortcutText = 'Close EPG';
2975
- }
2959
+ e.preventDefault();
2960
+ this.debugLog('G key pressed - toggling EPG');
2961
+ this.emit('epgToggle', {});
2962
+ shortcutText = 'Toggle EPG';
2976
2963
  break;
2977
2964
  case '0':
2978
2965
  case '1':
@@ -4444,7 +4431,6 @@ export class WebPlayer extends BasePlayer {
4444
4431
  * @param epgData - The EPG data to set
4445
4432
  */
4446
4433
  public setEPGData(epgData: any): void {
4447
- this.epgData = epgData;
4448
4434
  if (epgData && Object.keys(epgData).length > 0) {
4449
4435
  this.showEPGButton();
4450
4436
  this.debugLog('EPG data set, button shown');
@@ -4464,312 +4450,6 @@ export class WebPlayer extends BasePlayer {
4464
4450
  return epgBtn ? epgBtn.style.display !== 'none' : false;
4465
4451
  }
4466
4452
 
4467
- /**
4468
- * Toggle the EPG overlay visibility
4469
- */
4470
- private toggleEPG(): void {
4471
- if (this.isEPGVisible) {
4472
- this.hideEPGOverlay();
4473
- } else {
4474
- this.showEPGOverlay();
4475
- }
4476
- }
4477
-
4478
- /**
4479
- * Show the EPG overlay
4480
- */
4481
- private showEPGOverlay(): void {
4482
- if (!this.epgData) {
4483
- this.showNotification('No EPG data available');
4484
- return;
4485
- }
4486
-
4487
- if (!this.epgOverlay) {
4488
- this.createEPGOverlay();
4489
- }
4490
-
4491
- if (this.epgOverlay) {
4492
- this.epgOverlay.style.display = 'flex';
4493
- this.isEPGVisible = true;
4494
- this.debugLog('EPG overlay shown');
4495
- this.emit('epgToggle', { visible: true, data: this.epgData });
4496
- }
4497
- }
4498
-
4499
- /**
4500
- * Hide the EPG overlay
4501
- */
4502
- private hideEPGOverlay(): void {
4503
- if (this.epgOverlay) {
4504
- this.epgOverlay.style.display = 'none';
4505
- this.isEPGVisible = false;
4506
- this.debugLog('EPG overlay hidden');
4507
- this.emit('epgToggle', { visible: false, data: this.epgData });
4508
- }
4509
- }
4510
-
4511
- /**
4512
- * Create the EPG overlay UI
4513
- */
4514
- private createEPGOverlay(): void {
4515
- if (!this.playerWrapper) return;
4516
-
4517
- // Create overlay container
4518
- this.epgOverlay = document.createElement('div');
4519
- this.epgOverlay.className = 'uvf-epg-overlay';
4520
- this.epgOverlay.style.cssText = `
4521
- position: absolute;
4522
- top: 0;
4523
- left: 0;
4524
- right: 0;
4525
- bottom: 0;
4526
- background: rgba(0, 0, 0, 0.95);
4527
- color: white;
4528
- z-index: 1000;
4529
- display: none;
4530
- flex-direction: column;
4531
- padding: 20px;
4532
- box-sizing: border-box;
4533
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
4534
- `;
4535
-
4536
- // Create header with close button
4537
- const header = document.createElement('div');
4538
- header.style.cssText = `
4539
- display: flex;
4540
- justify-content: space-between;
4541
- align-items: center;
4542
- margin-bottom: 20px;
4543
- border-bottom: 1px solid rgba(255, 255, 255, 0.2);
4544
- padding-bottom: 15px;
4545
- `;
4546
-
4547
- const title = document.createElement('h2');
4548
- title.textContent = 'Electronic Program Guide';
4549
- title.style.cssText = `
4550
- margin: 0;
4551
- color: #ff6b35;
4552
- font-size: 24px;
4553
- font-weight: 600;
4554
- `;
4555
-
4556
- const closeBtn = document.createElement('button');
4557
- closeBtn.innerHTML = '×';
4558
- closeBtn.style.cssText = `
4559
- background: none;
4560
- border: none;
4561
- color: white;
4562
- font-size: 32px;
4563
- cursor: pointer;
4564
- padding: 0;
4565
- width: 40px;
4566
- height: 40px;
4567
- display: flex;
4568
- align-items: center;
4569
- justify-content: center;
4570
- border-radius: 50%;
4571
- transition: background-color 0.2s;
4572
- `;
4573
- closeBtn.addEventListener('click', () => this.hideEPGOverlay());
4574
- closeBtn.addEventListener('mouseenter', () => {
4575
- closeBtn.style.backgroundColor = 'rgba(255, 255, 255, 0.1)';
4576
- });
4577
- closeBtn.addEventListener('mouseleave', () => {
4578
- closeBtn.style.backgroundColor = 'transparent';
4579
- });
4580
-
4581
- header.appendChild(title);
4582
- header.appendChild(closeBtn);
4583
-
4584
- // Create content area
4585
- const content = document.createElement('div');
4586
- content.className = 'uvf-epg-content';
4587
- content.style.cssText = `
4588
- flex: 1;
4589
- overflow-y: auto;
4590
- padding-right: 10px;
4591
- `;
4592
-
4593
- // Populate with EPG data
4594
- this.populateEPGContent(content);
4595
-
4596
- // Create footer with instructions
4597
- const footer = document.createElement('div');
4598
- footer.style.cssText = `
4599
- margin-top: 20px;
4600
- padding-top: 15px;
4601
- border-top: 1px solid rgba(255, 255, 255, 0.2);
4602
- text-align: center;
4603
- color: rgba(255, 255, 255, 0.7);
4604
- font-size: 14px;
4605
- `;
4606
- footer.innerHTML = 'Press <strong>Esc</strong> or <strong>Ctrl+G</strong> to close • Click outside to close';
4607
-
4608
- // Assemble overlay
4609
- this.epgOverlay.appendChild(header);
4610
- this.epgOverlay.appendChild(content);
4611
- this.epgOverlay.appendChild(footer);
4612
-
4613
- // Add to player wrapper
4614
- this.playerWrapper.appendChild(this.epgOverlay);
4615
-
4616
- // Close on Escape key
4617
- this.epgOverlay.addEventListener('keydown', (e) => {
4618
- if (e.key === 'Escape') {
4619
- this.hideEPGOverlay();
4620
- }
4621
- });
4622
-
4623
- // Close when clicking outside content
4624
- this.epgOverlay.addEventListener('click', (e) => {
4625
- if (e.target === this.epgOverlay) {
4626
- this.hideEPGOverlay();
4627
- }
4628
- });
4629
-
4630
- this.debugLog('EPG overlay created');
4631
- }
4632
-
4633
- /**
4634
- * Populate the EPG content area with channel and program data
4635
- */
4636
- private populateEPGContent(container: HTMLElement): void {
4637
- if (!this.epgData) return;
4638
-
4639
- // Clear existing content
4640
- container.innerHTML = '';
4641
-
4642
- // Handle different EPG data formats
4643
- if (Array.isArray(this.epgData)) {
4644
- // Array of channels
4645
- this.renderChannelList(container, this.epgData);
4646
- } else if (this.epgData.channels) {
4647
- // Object with channels property
4648
- this.renderChannelList(container, this.epgData.channels);
4649
- } else {
4650
- // Unknown format, display as JSON
4651
- container.innerHTML = `
4652
- <div style="font-family: monospace; font-size: 12px; color: rgba(255, 255, 255, 0.8);">
4653
- <pre>${JSON.stringify(this.epgData, null, 2)}</pre>
4654
- </div>
4655
- `;
4656
- }
4657
- }
4658
-
4659
- /**
4660
- * Render a list of channels with their programs
4661
- */
4662
- private renderChannelList(container: HTMLElement, channels: any[]): void {
4663
- if (!Array.isArray(channels) || channels.length === 0) {
4664
- container.innerHTML = '<div style="text-align: center; color: rgba(255, 255, 255, 0.7);">No channels available</div>';
4665
- return;
4666
- }
4667
-
4668
- channels.forEach((channel, index) => {
4669
- const channelDiv = document.createElement('div');
4670
- channelDiv.style.cssText = `
4671
- margin-bottom: 20px;
4672
- padding: 15px;
4673
- background: rgba(255, 255, 255, 0.05);
4674
- border-radius: 8px;
4675
- border-left: 3px solid #ff6b35;
4676
- `;
4677
-
4678
- // Channel header
4679
- const channelHeader = document.createElement('div');
4680
- channelHeader.style.cssText = `
4681
- display: flex;
4682
- align-items: center;
4683
- margin-bottom: 10px;
4684
- `;
4685
-
4686
- const channelName = document.createElement('h3');
4687
- channelName.textContent = channel.name || channel.title || `Channel ${index + 1}`;
4688
- channelName.style.cssText = `
4689
- margin: 0;
4690
- color: #ff6b35;
4691
- font-size: 18px;
4692
- font-weight: 600;
4693
- `;
4694
-
4695
- const channelNumber = document.createElement('span');
4696
- if (channel.number || channel.id) {
4697
- channelNumber.textContent = `Ch ${channel.number || channel.id}`;
4698
- channelNumber.style.cssText = `
4699
- margin-left: 10px;
4700
- padding: 2px 8px;
4701
- background: rgba(255, 107, 53, 0.2);
4702
- border-radius: 12px;
4703
- font-size: 12px;
4704
- color: rgba(255, 255, 255, 0.8);
4705
- `;
4706
- }
4707
-
4708
- channelHeader.appendChild(channelName);
4709
- if (channelNumber.textContent) {
4710
- channelHeader.appendChild(channelNumber);
4711
- }
4712
-
4713
- // Programs list
4714
- const programsList = document.createElement('div');
4715
- programsList.style.cssText = `
4716
- margin-left: 10px;
4717
- `;
4718
-
4719
- if (channel.programs && Array.isArray(channel.programs)) {
4720
- channel.programs.slice(0, 5).forEach((program: any) => { // Limit to 5 programs per channel
4721
- const programDiv = document.createElement('div');
4722
- programDiv.style.cssText = `
4723
- display: flex;
4724
- justify-content: space-between;
4725
- align-items: center;
4726
- padding: 5px 0;
4727
- border-bottom: 1px solid rgba(255, 255, 255, 0.1);
4728
- `;
4729
-
4730
- const programInfo = document.createElement('div');
4731
- programInfo.style.flex = '1';
4732
-
4733
- const programTitle = document.createElement('div');
4734
- programTitle.textContent = program.title || program.name || 'Untitled Program';
4735
- programTitle.style.cssText = `
4736
- color: white;
4737
- font-weight: 500;
4738
- margin-bottom: 2px;
4739
- `;
4740
-
4741
- const programTime = document.createElement('div');
4742
- const startTime = program.startTime ? new Date(program.startTime).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }) : '';
4743
- const endTime = program.endTime ? new Date(program.endTime).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }) : '';
4744
- programTime.textContent = startTime && endTime ? `${startTime} - ${endTime}` : 'Time TBA';
4745
- programTime.style.cssText = `
4746
- color: rgba(255, 255, 255, 0.6);
4747
- font-size: 12px;
4748
- `;
4749
-
4750
- programInfo.appendChild(programTitle);
4751
- programInfo.appendChild(programTime);
4752
- programDiv.appendChild(programInfo);
4753
-
4754
- programsList.appendChild(programDiv);
4755
- });
4756
- } else {
4757
- const noPrograms = document.createElement('div');
4758
- noPrograms.textContent = 'No programs available';
4759
- noPrograms.style.cssText = `
4760
- color: rgba(255, 255, 255, 0.6);
4761
- font-style: italic;
4762
- padding: 10px 0;
4763
- `;
4764
- programsList.appendChild(noPrograms);
4765
- }
4766
-
4767
- channelDiv.appendChild(channelHeader);
4768
- channelDiv.appendChild(programsList);
4769
- container.appendChild(channelDiv);
4770
- });
4771
- }
4772
-
4773
4453
  private async cleanup(): Promise<void> {
4774
4454
  if (this.hls) {
4775
4455
  this.hls.destroy();
@@ -11,7 +11,8 @@ export { WebPlayer } from './WebPlayer';
11
11
  export { WebPlayerView } from './react/WebPlayerView';
12
12
  export { SecureVideoPlayer } from './SecureVideoPlayer';
13
13
 
14
- // Note: EPG functionality is now built into WebPlayer component
14
+ // Export EPG (Electronic Program Guide) components
15
+ export * from './react/EPG';
15
16
 
16
17
  // Version
17
18
  export const VERSION = '1.0.0';