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.
|
|
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
|
-
|
|
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-
|
|
5721
|
-
<div class="uvf-
|
|
5722
|
-
|
|
5723
|
-
|
|
5724
|
-
|
|
5725
|
-
|
|
5726
|
-
|
|
5727
|
-
|
|
5728
|
-
|
|
5729
|
-
<div class="uvf-
|
|
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
|
-
|
|
5734
|
-
|
|
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
|
-
|
|
5743
|
-
|
|
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
|
-
|
|
5751
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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)
|