unified-video-framework 1.4.135 → 1.4.137

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.135",
3
+ "version": "1.4.137",
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",
@@ -150,9 +150,12 @@ export declare class WebPlayer extends BasePlayer {
150
150
  private _syncUIFromRemote;
151
151
  private _syncCastButtons;
152
152
  private updateSettingsMenu;
153
+ private generateAccordionMenu;
153
154
  private detectAvailableQualities;
154
155
  private detectAvailableSubtitles;
155
156
  private setupSettingsEventListeners;
157
+ private toggleAccordionSection;
158
+ private updateAccordionAfterSelection;
156
159
  private updateSettingsActiveStates;
157
160
  private setPlaybackRateFromSettings;
158
161
  private setQualityFromSettings;
@@ -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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"}
@@ -2061,6 +2061,87 @@ export class WebPlayer extends BasePlayer {
2061
2061
  transform: translateY(0);
2062
2062
  }
2063
2063
 
2064
+ /* Accordion Styles */
2065
+ .uvf-settings-accordion {
2066
+ padding: 0;
2067
+ }
2068
+
2069
+ .uvf-accordion-item {
2070
+ border-bottom: 1px solid rgba(255,255,255,0.08);
2071
+ }
2072
+
2073
+ .uvf-accordion-item:last-child {
2074
+ border-bottom: none;
2075
+ }
2076
+
2077
+ .uvf-accordion-header {
2078
+ display: flex;
2079
+ align-items: center;
2080
+ justify-content: space-between;
2081
+ padding: 14px 18px;
2082
+ cursor: pointer;
2083
+ transition: all 0.2s ease;
2084
+ border-radius: 8px;
2085
+ margin: 4px 8px;
2086
+ }
2087
+
2088
+ .uvf-accordion-header:hover {
2089
+ background: rgba(255,255,255,0.08);
2090
+ transform: translateX(2px);
2091
+ }
2092
+
2093
+ .uvf-accordion-title {
2094
+ display: flex;
2095
+ align-items: center;
2096
+ gap: 10px;
2097
+ font-size: 14px;
2098
+ font-weight: 500;
2099
+ color: #fff;
2100
+ }
2101
+
2102
+ .uvf-accordion-icon {
2103
+ font-size: 16px;
2104
+ opacity: 0.8;
2105
+ }
2106
+
2107
+ .uvf-accordion-current {
2108
+ font-size: 12px;
2109
+ color: rgba(255,255,255,0.7);
2110
+ background: rgba(255,255,255,0.1);
2111
+ padding: 4px 8px;
2112
+ border-radius: 12px;
2113
+ font-weight: 500;
2114
+ }
2115
+
2116
+ .uvf-accordion-arrow {
2117
+ font-size: 12px;
2118
+ color: rgba(255,255,255,0.6);
2119
+ transition: transform 0.3s ease;
2120
+ }
2121
+
2122
+ .uvf-accordion-item.expanded .uvf-accordion-arrow {
2123
+ transform: rotate(180deg);
2124
+ }
2125
+
2126
+ .uvf-accordion-content {
2127
+ max-height: 0;
2128
+ overflow: hidden;
2129
+ transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1), padding 0.3s ease;
2130
+ padding: 0 18px;
2131
+ }
2132
+
2133
+ .uvf-accordion-item.expanded .uvf-accordion-content {
2134
+ max-height: 300px;
2135
+ padding: 8px 18px 16px;
2136
+ }
2137
+
2138
+ .uvf-settings-empty {
2139
+ padding: 20px;
2140
+ text-align: center;
2141
+ color: rgba(255,255,255,0.6);
2142
+ font-size: 14px;
2143
+ }
2144
+
2064
2145
  .uvf-settings-group {
2065
2146
  padding: 10px 0;
2066
2147
  border-bottom: 1px solid rgba(255,255,255,0.1);
@@ -4539,10 +4620,36 @@ export class WebPlayer extends BasePlayer {
4539
4620
  }
4540
4621
  });
4541
4622
  const settingsMenu = document.getElementById('uvf-settings-menu');
4623
+ this.debugLog('Settings menu element found:', !!settingsMenu);
4624
+ this.debugLog('Settings button found:', !!settingsBtn);
4542
4625
  settingsBtn?.addEventListener('click', (e) => {
4543
4626
  e.stopPropagation();
4627
+ this.debugLog('Settings button clicked!');
4628
+ this.debugLog('Settings menu before update:', settingsMenu?.innerHTML?.length || 0, 'characters');
4544
4629
  this.updateSettingsMenu();
4630
+ this.debugLog('Settings menu after update:', settingsMenu?.innerHTML?.length || 0, 'characters');
4631
+ this.debugLog('Settings menu classes before toggle:', Array.from(settingsMenu?.classList || []).join(' '));
4545
4632
  settingsMenu?.classList.toggle('active');
4633
+ if (settingsMenu && settingsMenu.classList.contains('active')) {
4634
+ settingsMenu.style.display = 'block';
4635
+ settingsMenu.style.visibility = 'visible';
4636
+ settingsMenu.style.opacity = '1';
4637
+ settingsMenu.style.transform = 'translateY(0)';
4638
+ settingsMenu.style.zIndex = '9999';
4639
+ settingsMenu.style.position = 'absolute';
4640
+ settingsMenu.style.bottom = '50px';
4641
+ settingsMenu.style.right = '0';
4642
+ settingsMenu.style.background = 'rgba(0,0,0,0.9)';
4643
+ settingsMenu.style.border = '1px solid rgba(255,255,255,0.2)';
4644
+ settingsMenu.style.borderRadius = '8px';
4645
+ settingsMenu.style.minWidth = '200px';
4646
+ settingsMenu.style.padding = '10px 0';
4647
+ this.debugLog('Applied fallback styles to force menu visibility');
4648
+ }
4649
+ this.debugLog('Settings menu classes after toggle:', Array.from(settingsMenu?.classList || []).join(' '));
4650
+ this.debugLog('Settings menu computed display:', window.getComputedStyle(settingsMenu || document.body).display);
4651
+ this.debugLog('Settings menu computed visibility:', window.getComputedStyle(settingsMenu || document.body).visibility);
4652
+ this.debugLog('Settings menu computed opacity:', window.getComputedStyle(settingsMenu || document.body).opacity);
4546
4653
  });
4547
4654
  const epgBtn = document.getElementById('uvf-epg-btn');
4548
4655
  epgBtn?.addEventListener('click', (e) => {
@@ -5709,49 +5816,99 @@ export class WebPlayer extends BasePlayer {
5709
5816
  }
5710
5817
  }
5711
5818
  updateSettingsMenu() {
5819
+ this.debugLog('updateSettingsMenu called');
5712
5820
  const settingsMenu = document.getElementById('uvf-settings-menu');
5713
- if (!settingsMenu)
5821
+ if (!settingsMenu) {
5822
+ this.debugError('Settings menu element not found!');
5714
5823
  return;
5824
+ }
5825
+ this.debugLog('Settings menu element found, updating content...');
5715
5826
  this.detectAvailableQualities();
5716
5827
  this.detectAvailableSubtitles();
5717
- let menuHTML = '';
5828
+ this.debugLog('Available qualities:', this.availableQualities);
5829
+ this.debugLog('Available subtitles:', this.availableSubtitles);
5830
+ this.debugLog('Settings config:', this.settingsConfig);
5831
+ this.generateAccordionMenu();
5832
+ }
5833
+ generateAccordionMenu() {
5834
+ const settingsMenu = document.getElementById('uvf-settings-menu');
5835
+ if (!settingsMenu)
5836
+ return;
5837
+ let menuHTML = '<div class="uvf-settings-accordion">';
5718
5838
  if (this.settingsConfig.speed) {
5839
+ const currentSpeedLabel = this.currentPlaybackRate === 1 ? 'Normal' : `${this.currentPlaybackRate}x`;
5719
5840
  menuHTML += `
5720
- <div class="uvf-settings-group">
5721
- <div class="uvf-settings-label">Playback Speed</div>
5722
- <div class="uvf-settings-option speed-option" data-speed="0.25">0.25x</div>
5723
- <div class="uvf-settings-option speed-option" data-speed="0.5">0.5x</div>
5724
- <div class="uvf-settings-option speed-option" data-speed="0.75">0.75x</div>
5725
- <div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 1 ? 'active' : ''}" data-speed="1">Normal</div>
5726
- <div class="uvf-settings-option speed-option" data-speed="1.25">1.25x</div>
5727
- <div class="uvf-settings-option speed-option" data-speed="1.5">1.5x</div>
5728
- <div class="uvf-settings-option speed-option" data-speed="1.75">1.75x</div>
5729
- <div class="uvf-settings-option speed-option" data-speed="2">2x</div>
5841
+ <div class="uvf-accordion-item">
5842
+ <div class="uvf-accordion-header" data-section="speed">
5843
+ <div class="uvf-accordion-title">
5844
+ <span class="uvf-accordion-icon">⚡</span>
5845
+ <span>Playback Speed</span>
5846
+ </div>
5847
+ <div class="uvf-accordion-current">${currentSpeedLabel}</div>
5848
+ <div class="uvf-accordion-arrow">▼</div>
5849
+ </div>
5850
+ <div class="uvf-accordion-content" data-section="speed">
5851
+ <div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 0.25 ? 'active' : ''}" data-speed="0.25">0.25x</div>
5852
+ <div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 0.5 ? 'active' : ''}" data-speed="0.5">0.5x</div>
5853
+ <div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 0.75 ? 'active' : ''}" data-speed="0.75">0.75x</div>
5854
+ <div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 1 ? 'active' : ''}" data-speed="1">Normal</div>
5855
+ <div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 1.25 ? 'active' : ''}" data-speed="1.25">1.25x</div>
5856
+ <div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 1.5 ? 'active' : ''}" data-speed="1.5">1.5x</div>
5857
+ <div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 1.75 ? 'active' : ''}" data-speed="1.75">1.75x</div>
5858
+ <div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 2 ? 'active' : ''}" data-speed="2">2x</div>
5859
+ </div>
5730
5860
  </div>`;
5731
5861
  }
5732
5862
  if (this.settingsConfig.quality && this.availableQualities.length > 0) {
5733
- menuHTML += `<div class="uvf-settings-group">
5734
- <div class="uvf-settings-label">Quality</div>`;
5863
+ const currentQuality = this.availableQualities.find(q => q.value === this.currentQuality);
5864
+ const currentQualityLabel = currentQuality ? currentQuality.label : 'Auto';
5865
+ menuHTML += `
5866
+ <div class="uvf-accordion-item">
5867
+ <div class="uvf-accordion-header" data-section="quality">
5868
+ <div class="uvf-accordion-title">
5869
+ <span class="uvf-accordion-icon">🎬</span>
5870
+ <span>Quality</span>
5871
+ </div>
5872
+ <div class="uvf-accordion-current">${currentQualityLabel}</div>
5873
+ <div class="uvf-accordion-arrow">▼</div>
5874
+ </div>
5875
+ <div class="uvf-accordion-content" data-section="quality">`;
5735
5876
  this.availableQualities.forEach(quality => {
5736
5877
  const isActive = quality.value === this.currentQuality ? 'active' : '';
5737
5878
  menuHTML += `<div class="uvf-settings-option quality-option ${isActive}" data-quality="${quality.value}">${quality.label}</div>`;
5738
5879
  });
5739
- menuHTML += `</div>`;
5880
+ menuHTML += `</div></div>`;
5740
5881
  }
5741
5882
  if (this.settingsConfig.subtitles && this.availableSubtitles.length > 0) {
5742
- menuHTML += `<div class="uvf-settings-group">
5743
- <div class="uvf-settings-label">Subtitles/Captions</div>`;
5883
+ const currentSubtitle = this.availableSubtitles.find(s => s.value === this.currentSubtitle);
5884
+ const currentSubtitleLabel = currentSubtitle ? currentSubtitle.label : 'Off';
5885
+ menuHTML += `
5886
+ <div class="uvf-accordion-item">
5887
+ <div class="uvf-accordion-header" data-section="subtitles">
5888
+ <div class="uvf-accordion-title">
5889
+ <span class="uvf-accordion-icon">💬</span>
5890
+ <span>Subtitles</span>
5891
+ </div>
5892
+ <div class="uvf-accordion-current">${currentSubtitleLabel}</div>
5893
+ <div class="uvf-accordion-arrow">▼</div>
5894
+ </div>
5895
+ <div class="uvf-accordion-content" data-section="subtitles">`;
5744
5896
  this.availableSubtitles.forEach(subtitle => {
5745
5897
  const isActive = subtitle.value === this.currentSubtitle ? 'active' : '';
5746
5898
  menuHTML += `<div class="uvf-settings-option subtitle-option ${isActive}" data-subtitle="${subtitle.value}">${subtitle.label}</div>`;
5747
5899
  });
5748
- menuHTML += `</div>`;
5900
+ menuHTML += `</div></div>`;
5749
5901
  }
5750
- if (!menuHTML.trim()) {
5751
- menuHTML = '<div class="uvf-settings-group"><div class="uvf-settings-label">No settings available</div></div>';
5902
+ menuHTML += '</div>';
5903
+ if (menuHTML === '<div class="uvf-settings-accordion"></div>') {
5904
+ menuHTML = '<div class="uvf-settings-accordion"><div class="uvf-settings-empty">No settings available</div></div>';
5752
5905
  }
5906
+ this.debugLog('Generated menu HTML length:', menuHTML.length);
5907
+ this.debugLog('Generated menu HTML content:', menuHTML.substring(0, 200) + (menuHTML.length > 200 ? '...' : ''));
5753
5908
  settingsMenu.innerHTML = menuHTML;
5909
+ this.debugLog('Settings menu HTML set successfully');
5754
5910
  this.setupSettingsEventListeners();
5911
+ this.debugLog('Settings event listeners setup complete');
5755
5912
  }
5756
5913
  detectAvailableQualities() {
5757
5914
  this.availableQualities = [{ value: 'auto', label: 'Auto' }];
@@ -5819,28 +5976,67 @@ export class WebPlayer extends BasePlayer {
5819
5976
  const settingsMenu = document.getElementById('uvf-settings-menu');
5820
5977
  if (!settingsMenu)
5821
5978
  return;
5979
+ settingsMenu.querySelectorAll('.uvf-accordion-header').forEach(header => {
5980
+ header.addEventListener('click', (e) => {
5981
+ e.preventDefault();
5982
+ e.stopPropagation();
5983
+ const accordionItem = header.parentElement;
5984
+ const section = header.getAttribute('data-section');
5985
+ if (accordionItem && section) {
5986
+ this.toggleAccordionSection(accordionItem, section);
5987
+ }
5988
+ });
5989
+ });
5822
5990
  settingsMenu.querySelectorAll('.speed-option').forEach(option => {
5823
5991
  option.addEventListener('click', (e) => {
5824
5992
  const speed = parseFloat(e.target.dataset.speed || '1');
5825
5993
  this.setPlaybackRateFromSettings(speed);
5826
- this.updateSettingsActiveStates('speed-option', e.target);
5994
+ this.updateAccordionAfterSelection('speed');
5827
5995
  });
5828
5996
  });
5829
5997
  settingsMenu.querySelectorAll('.quality-option').forEach(option => {
5830
5998
  option.addEventListener('click', (e) => {
5831
5999
  const quality = e.target.dataset.quality || 'auto';
5832
6000
  this.setQualityFromSettings(quality);
5833
- this.updateSettingsActiveStates('quality-option', e.target);
6001
+ this.updateAccordionAfterSelection('quality');
5834
6002
  });
5835
6003
  });
5836
6004
  settingsMenu.querySelectorAll('.subtitle-option').forEach(option => {
5837
6005
  option.addEventListener('click', (e) => {
5838
6006
  const subtitle = e.target.dataset.subtitle || 'off';
5839
6007
  this.setSubtitle(subtitle);
5840
- this.updateSettingsActiveStates('subtitle-option', e.target);
6008
+ this.updateAccordionAfterSelection('subtitles');
5841
6009
  });
5842
6010
  });
5843
6011
  }
6012
+ toggleAccordionSection(accordionItem, section) {
6013
+ const isExpanded = accordionItem.classList.contains('expanded');
6014
+ const settingsMenu = document.getElementById('uvf-settings-menu');
6015
+ if (settingsMenu) {
6016
+ settingsMenu.querySelectorAll('.uvf-accordion-item.expanded').forEach(item => {
6017
+ if (item !== accordionItem) {
6018
+ item.classList.remove('expanded');
6019
+ }
6020
+ });
6021
+ }
6022
+ if (isExpanded) {
6023
+ accordionItem.classList.remove('expanded');
6024
+ }
6025
+ else {
6026
+ accordionItem.classList.add('expanded');
6027
+ }
6028
+ }
6029
+ updateAccordionAfterSelection(section) {
6030
+ setTimeout(() => {
6031
+ const settingsMenu = document.getElementById('uvf-settings-menu');
6032
+ const accordionItem = settingsMenu?.querySelector(`[data-section="${section}"]`)?.parentElement;
6033
+ if (accordionItem) {
6034
+ accordionItem.classList.remove('expanded');
6035
+ }
6036
+ this.generateAccordionMenu();
6037
+ this.setupSettingsEventListeners();
6038
+ }, 300);
6039
+ }
5844
6040
  updateSettingsActiveStates(className, activeElement) {
5845
6041
  const settingsMenu = document.getElementById('uvf-settings-menu');
5846
6042
  if (!settingsMenu)