unified-video-framework 1.4.136 → 1.4.138
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.138",
|
|
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,141 @@ export class WebPlayer extends BasePlayer {
|
|
|
2061
2061
|
transform: translateY(0);
|
|
2062
2062
|
}
|
|
2063
2063
|
|
|
2064
|
+
/* Improved Accordion Styles */
|
|
2065
|
+
.uvf-settings-accordion {
|
|
2066
|
+
padding: 8px 0;
|
|
2067
|
+
}
|
|
2068
|
+
|
|
2069
|
+
.uvf-accordion-item {
|
|
2070
|
+
margin-bottom: 2px;
|
|
2071
|
+
border-radius: 8px;
|
|
2072
|
+
overflow: hidden;
|
|
2073
|
+
background: rgba(255,255,255,0.03);
|
|
2074
|
+
}
|
|
2075
|
+
|
|
2076
|
+
.uvf-accordion-item:last-child {
|
|
2077
|
+
margin-bottom: 0;
|
|
2078
|
+
}
|
|
2079
|
+
|
|
2080
|
+
.uvf-accordion-header {
|
|
2081
|
+
display: flex;
|
|
2082
|
+
align-items: center;
|
|
2083
|
+
justify-content: space-between;
|
|
2084
|
+
padding: 12px 16px;
|
|
2085
|
+
cursor: pointer;
|
|
2086
|
+
transition: all 0.2s ease;
|
|
2087
|
+
background: rgba(255,255,255,0.05);
|
|
2088
|
+
border-bottom: 1px solid rgba(255,255,255,0.08);
|
|
2089
|
+
}
|
|
2090
|
+
|
|
2091
|
+
.uvf-accordion-header:hover {
|
|
2092
|
+
background: rgba(255,255,255,0.1);
|
|
2093
|
+
}
|
|
2094
|
+
|
|
2095
|
+
.uvf-accordion-item.expanded .uvf-accordion-header {
|
|
2096
|
+
background: rgba(255,255,255,0.08);
|
|
2097
|
+
border-bottom-color: rgba(255,255,255,0.12);
|
|
2098
|
+
}
|
|
2099
|
+
|
|
2100
|
+
.uvf-accordion-title {
|
|
2101
|
+
display: flex;
|
|
2102
|
+
align-items: center;
|
|
2103
|
+
gap: 8px;
|
|
2104
|
+
font-size: 13px;
|
|
2105
|
+
font-weight: 500;
|
|
2106
|
+
color: #fff;
|
|
2107
|
+
flex: 1;
|
|
2108
|
+
}
|
|
2109
|
+
|
|
2110
|
+
.uvf-accordion-icon {
|
|
2111
|
+
display: flex;
|
|
2112
|
+
align-items: center;
|
|
2113
|
+
justify-content: center;
|
|
2114
|
+
opacity: 0.9;
|
|
2115
|
+
width: 16px;
|
|
2116
|
+
height: 16px;
|
|
2117
|
+
}
|
|
2118
|
+
|
|
2119
|
+
.uvf-accordion-icon svg {
|
|
2120
|
+
width: 14px;
|
|
2121
|
+
height: 14px;
|
|
2122
|
+
fill: currentColor;
|
|
2123
|
+
}
|
|
2124
|
+
|
|
2125
|
+
.uvf-accordion-current {
|
|
2126
|
+
font-size: 11px;
|
|
2127
|
+
color: var(--uvf-accent-1);
|
|
2128
|
+
background: rgba(255,255,255,0.08);
|
|
2129
|
+
padding: 2px 8px;
|
|
2130
|
+
border-radius: 8px;
|
|
2131
|
+
font-weight: 600;
|
|
2132
|
+
margin-right: 8px;
|
|
2133
|
+
}
|
|
2134
|
+
|
|
2135
|
+
.uvf-accordion-arrow {
|
|
2136
|
+
font-size: 10px;
|
|
2137
|
+
color: rgba(255,255,255,0.7);
|
|
2138
|
+
transition: transform 0.25s ease;
|
|
2139
|
+
width: 16px;
|
|
2140
|
+
text-align: center;
|
|
2141
|
+
}
|
|
2142
|
+
|
|
2143
|
+
.uvf-accordion-item.expanded .uvf-accordion-arrow {
|
|
2144
|
+
transform: rotate(180deg);
|
|
2145
|
+
}
|
|
2146
|
+
|
|
2147
|
+
.uvf-accordion-content {
|
|
2148
|
+
max-height: 0;
|
|
2149
|
+
overflow: hidden;
|
|
2150
|
+
transition: max-height 0.25s cubic-bezier(0.4, 0, 0.2, 1);
|
|
2151
|
+
background: rgba(0,0,0,0.2);
|
|
2152
|
+
}
|
|
2153
|
+
|
|
2154
|
+
.uvf-accordion-item.expanded .uvf-accordion-content {
|
|
2155
|
+
max-height: 250px;
|
|
2156
|
+
}
|
|
2157
|
+
|
|
2158
|
+
/* Settings options within accordion */
|
|
2159
|
+
.uvf-accordion-content .uvf-settings-option {
|
|
2160
|
+
color: #fff;
|
|
2161
|
+
font-size: 13px;
|
|
2162
|
+
padding: 10px 16px;
|
|
2163
|
+
cursor: pointer;
|
|
2164
|
+
transition: all 0.2s ease;
|
|
2165
|
+
border-bottom: 1px solid rgba(255,255,255,0.05);
|
|
2166
|
+
display: flex;
|
|
2167
|
+
align-items: center;
|
|
2168
|
+
justify-content: space-between;
|
|
2169
|
+
}
|
|
2170
|
+
|
|
2171
|
+
.uvf-accordion-content .uvf-settings-option:last-child {
|
|
2172
|
+
border-bottom: none;
|
|
2173
|
+
}
|
|
2174
|
+
|
|
2175
|
+
.uvf-accordion-content .uvf-settings-option:hover {
|
|
2176
|
+
background: rgba(255,255,255,0.06);
|
|
2177
|
+
padding-left: 20px;
|
|
2178
|
+
}
|
|
2179
|
+
|
|
2180
|
+
.uvf-accordion-content .uvf-settings-option.active {
|
|
2181
|
+
color: var(--uvf-accent-1);
|
|
2182
|
+
background: rgba(255,255,255,0.08);
|
|
2183
|
+
font-weight: 600;
|
|
2184
|
+
}
|
|
2185
|
+
|
|
2186
|
+
.uvf-accordion-content .uvf-settings-option.active::after {
|
|
2187
|
+
content: '✓';
|
|
2188
|
+
font-size: 12px;
|
|
2189
|
+
opacity: 0.8;
|
|
2190
|
+
}
|
|
2191
|
+
|
|
2192
|
+
.uvf-settings-empty {
|
|
2193
|
+
padding: 20px;
|
|
2194
|
+
text-align: center;
|
|
2195
|
+
color: rgba(255,255,255,0.6);
|
|
2196
|
+
font-size: 14px;
|
|
2197
|
+
}
|
|
2198
|
+
|
|
2064
2199
|
.uvf-settings-group {
|
|
2065
2200
|
padding: 10px 0;
|
|
2066
2201
|
border-bottom: 1px solid rgba(255,255,255,0.1);
|
|
@@ -4588,6 +4723,17 @@ export class WebPlayer extends BasePlayer {
|
|
|
4588
4723
|
if (!e.target.closest('#uvf-settings-btn') &&
|
|
4589
4724
|
!e.target.closest('#uvf-settings-menu')) {
|
|
4590
4725
|
settingsMenu?.classList.remove('active');
|
|
4726
|
+
settingsMenu?.querySelectorAll('.uvf-accordion-item.expanded').forEach(item => {
|
|
4727
|
+
item.classList.remove('expanded');
|
|
4728
|
+
});
|
|
4729
|
+
}
|
|
4730
|
+
});
|
|
4731
|
+
document.addEventListener('keydown', (e) => {
|
|
4732
|
+
if (e.key === 'Escape' && settingsMenu?.classList.contains('active')) {
|
|
4733
|
+
settingsMenu.classList.remove('active');
|
|
4734
|
+
settingsMenu.querySelectorAll('.uvf-accordion-item.expanded').forEach(item => {
|
|
4735
|
+
item.classList.remove('expanded');
|
|
4736
|
+
});
|
|
4591
4737
|
}
|
|
4592
4738
|
});
|
|
4593
4739
|
}
|
|
@@ -5747,41 +5893,92 @@ export class WebPlayer extends BasePlayer {
|
|
|
5747
5893
|
this.debugLog('Available qualities:', this.availableQualities);
|
|
5748
5894
|
this.debugLog('Available subtitles:', this.availableSubtitles);
|
|
5749
5895
|
this.debugLog('Settings config:', this.settingsConfig);
|
|
5750
|
-
|
|
5896
|
+
this.generateAccordionMenu();
|
|
5897
|
+
}
|
|
5898
|
+
generateAccordionMenu() {
|
|
5899
|
+
const settingsMenu = document.getElementById('uvf-settings-menu');
|
|
5900
|
+
if (!settingsMenu)
|
|
5901
|
+
return;
|
|
5902
|
+
let menuHTML = '<div class="uvf-settings-accordion">';
|
|
5751
5903
|
if (this.settingsConfig.speed) {
|
|
5904
|
+
const currentSpeedLabel = this.currentPlaybackRate === 1 ? 'Normal' : `${this.currentPlaybackRate}x`;
|
|
5752
5905
|
menuHTML += `
|
|
5753
|
-
<div class="uvf-
|
|
5754
|
-
<div class="uvf-
|
|
5755
|
-
|
|
5756
|
-
|
|
5757
|
-
|
|
5758
|
-
|
|
5759
|
-
|
|
5760
|
-
|
|
5761
|
-
|
|
5762
|
-
|
|
5906
|
+
<div class="uvf-accordion-item">
|
|
5907
|
+
<div class="uvf-accordion-header" data-section="speed">
|
|
5908
|
+
<div class="uvf-accordion-title">
|
|
5909
|
+
<span class="uvf-accordion-icon">
|
|
5910
|
+
<svg viewBox="0 0 24 24" width="14" height="14" fill="currentColor">
|
|
5911
|
+
<path d="M13,24l11-12L13,0V7.5C5.7,7.5,0,13.2,0,20.5C0,22.4,0.6,24.2,1.6,25.7C4.8,21.8,8.7,19.5,13,19.5V24z"/>
|
|
5912
|
+
</svg>
|
|
5913
|
+
</span>
|
|
5914
|
+
<span>Playback Speed</span>
|
|
5915
|
+
</div>
|
|
5916
|
+
<div class="uvf-accordion-current">${currentSpeedLabel}</div>
|
|
5917
|
+
<div class="uvf-accordion-arrow">▼</div>
|
|
5918
|
+
</div>
|
|
5919
|
+
<div class="uvf-accordion-content" data-section="speed">
|
|
5920
|
+
<div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 0.25 ? 'active' : ''}" data-speed="0.25">0.25x</div>
|
|
5921
|
+
<div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 0.5 ? 'active' : ''}" data-speed="0.5">0.5x</div>
|
|
5922
|
+
<div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 0.75 ? 'active' : ''}" data-speed="0.75">0.75x</div>
|
|
5923
|
+
<div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 1 ? 'active' : ''}" data-speed="1">Normal</div>
|
|
5924
|
+
<div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 1.25 ? 'active' : ''}" data-speed="1.25">1.25x</div>
|
|
5925
|
+
<div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 1.5 ? 'active' : ''}" data-speed="1.5">1.5x</div>
|
|
5926
|
+
<div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 1.75 ? 'active' : ''}" data-speed="1.75">1.75x</div>
|
|
5927
|
+
<div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 2 ? 'active' : ''}" data-speed="2">2x</div>
|
|
5928
|
+
</div>
|
|
5763
5929
|
</div>`;
|
|
5764
5930
|
}
|
|
5765
5931
|
if (this.settingsConfig.quality && this.availableQualities.length > 0) {
|
|
5766
|
-
|
|
5767
|
-
|
|
5932
|
+
const currentQuality = this.availableQualities.find(q => q.value === this.currentQuality);
|
|
5933
|
+
const currentQualityLabel = currentQuality ? currentQuality.label : 'Auto';
|
|
5934
|
+
menuHTML += `
|
|
5935
|
+
<div class="uvf-accordion-item">
|
|
5936
|
+
<div class="uvf-accordion-header" data-section="quality">
|
|
5937
|
+
<div class="uvf-accordion-title">
|
|
5938
|
+
<span class="uvf-accordion-icon">
|
|
5939
|
+
<svg viewBox="0 0 24 24" width="14" height="14" fill="currentColor">
|
|
5940
|
+
<path d="M9,4v3h5V4h4V16H15v-3H9v3H5V4H9z M8,5H6v10h2V11h6v4h2V5h-2v4H8V5z"/>
|
|
5941
|
+
</svg>
|
|
5942
|
+
</span>
|
|
5943
|
+
<span>Quality</span>
|
|
5944
|
+
</div>
|
|
5945
|
+
<div class="uvf-accordion-current">${currentQualityLabel}</div>
|
|
5946
|
+
<div class="uvf-accordion-arrow">▼</div>
|
|
5947
|
+
</div>
|
|
5948
|
+
<div class="uvf-accordion-content" data-section="quality">`;
|
|
5768
5949
|
this.availableQualities.forEach(quality => {
|
|
5769
5950
|
const isActive = quality.value === this.currentQuality ? 'active' : '';
|
|
5770
5951
|
menuHTML += `<div class="uvf-settings-option quality-option ${isActive}" data-quality="${quality.value}">${quality.label}</div>`;
|
|
5771
5952
|
});
|
|
5772
|
-
menuHTML += `</div>`;
|
|
5953
|
+
menuHTML += `</div></div>`;
|
|
5773
5954
|
}
|
|
5774
5955
|
if (this.settingsConfig.subtitles && this.availableSubtitles.length > 0) {
|
|
5775
|
-
|
|
5776
|
-
|
|
5956
|
+
const currentSubtitle = this.availableSubtitles.find(s => s.value === this.currentSubtitle);
|
|
5957
|
+
const currentSubtitleLabel = currentSubtitle ? currentSubtitle.label : 'Off';
|
|
5958
|
+
menuHTML += `
|
|
5959
|
+
<div class="uvf-accordion-item">
|
|
5960
|
+
<div class="uvf-accordion-header" data-section="subtitles">
|
|
5961
|
+
<div class="uvf-accordion-title">
|
|
5962
|
+
<span class="uvf-accordion-icon">
|
|
5963
|
+
<svg viewBox="0 0 24 24" width="14" height="14" fill="currentColor">
|
|
5964
|
+
<path d="M20,4H4C2.89,4 2,4.89 2,6V18C2,19.11 2.89,20 4,20H20C21.11,20 22,19.11 22,18V6C22,4.89 21.11,4 20,4M20,18H4V6H20V18M6,10H8V12H6V10M6,14H14V16H6V14M16,14H18V16H16V14M10,10H18V12H10V10Z"/>
|
|
5965
|
+
</svg>
|
|
5966
|
+
</span>
|
|
5967
|
+
<span>Subtitles</span>
|
|
5968
|
+
</div>
|
|
5969
|
+
<div class="uvf-accordion-current">${currentSubtitleLabel}</div>
|
|
5970
|
+
<div class="uvf-accordion-arrow">▼</div>
|
|
5971
|
+
</div>
|
|
5972
|
+
<div class="uvf-accordion-content" data-section="subtitles">`;
|
|
5777
5973
|
this.availableSubtitles.forEach(subtitle => {
|
|
5778
5974
|
const isActive = subtitle.value === this.currentSubtitle ? 'active' : '';
|
|
5779
5975
|
menuHTML += `<div class="uvf-settings-option subtitle-option ${isActive}" data-subtitle="${subtitle.value}">${subtitle.label}</div>`;
|
|
5780
5976
|
});
|
|
5781
|
-
menuHTML += `</div>`;
|
|
5977
|
+
menuHTML += `</div></div>`;
|
|
5782
5978
|
}
|
|
5783
|
-
|
|
5784
|
-
|
|
5979
|
+
menuHTML += '</div>';
|
|
5980
|
+
if (menuHTML === '<div class="uvf-settings-accordion"></div>') {
|
|
5981
|
+
menuHTML = '<div class="uvf-settings-accordion"><div class="uvf-settings-empty">No settings available</div></div>';
|
|
5785
5982
|
}
|
|
5786
5983
|
this.debugLog('Generated menu HTML length:', menuHTML.length);
|
|
5787
5984
|
this.debugLog('Generated menu HTML content:', menuHTML.substring(0, 200) + (menuHTML.length > 200 ? '...' : ''));
|
|
@@ -5856,28 +6053,59 @@ export class WebPlayer extends BasePlayer {
|
|
|
5856
6053
|
const settingsMenu = document.getElementById('uvf-settings-menu');
|
|
5857
6054
|
if (!settingsMenu)
|
|
5858
6055
|
return;
|
|
6056
|
+
settingsMenu.querySelectorAll('.uvf-accordion-header').forEach(header => {
|
|
6057
|
+
header.addEventListener('click', (e) => {
|
|
6058
|
+
e.preventDefault();
|
|
6059
|
+
e.stopPropagation();
|
|
6060
|
+
const accordionItem = header.parentElement;
|
|
6061
|
+
const section = header.getAttribute('data-section');
|
|
6062
|
+
if (accordionItem && section) {
|
|
6063
|
+
this.toggleAccordionSection(accordionItem, section);
|
|
6064
|
+
}
|
|
6065
|
+
});
|
|
6066
|
+
});
|
|
5859
6067
|
settingsMenu.querySelectorAll('.speed-option').forEach(option => {
|
|
5860
6068
|
option.addEventListener('click', (e) => {
|
|
5861
6069
|
const speed = parseFloat(e.target.dataset.speed || '1');
|
|
5862
6070
|
this.setPlaybackRateFromSettings(speed);
|
|
5863
|
-
this.
|
|
6071
|
+
this.updateAccordionAfterSelection('speed');
|
|
5864
6072
|
});
|
|
5865
6073
|
});
|
|
5866
6074
|
settingsMenu.querySelectorAll('.quality-option').forEach(option => {
|
|
5867
6075
|
option.addEventListener('click', (e) => {
|
|
5868
6076
|
const quality = e.target.dataset.quality || 'auto';
|
|
5869
6077
|
this.setQualityFromSettings(quality);
|
|
5870
|
-
this.
|
|
6078
|
+
this.updateAccordionAfterSelection('quality');
|
|
5871
6079
|
});
|
|
5872
6080
|
});
|
|
5873
6081
|
settingsMenu.querySelectorAll('.subtitle-option').forEach(option => {
|
|
5874
6082
|
option.addEventListener('click', (e) => {
|
|
5875
6083
|
const subtitle = e.target.dataset.subtitle || 'off';
|
|
5876
6084
|
this.setSubtitle(subtitle);
|
|
5877
|
-
this.
|
|
6085
|
+
this.updateAccordionAfterSelection('subtitles');
|
|
5878
6086
|
});
|
|
5879
6087
|
});
|
|
5880
6088
|
}
|
|
6089
|
+
toggleAccordionSection(accordionItem, section) {
|
|
6090
|
+
const isExpanded = accordionItem.classList.contains('expanded');
|
|
6091
|
+
if (isExpanded) {
|
|
6092
|
+
accordionItem.classList.remove('expanded');
|
|
6093
|
+
return;
|
|
6094
|
+
}
|
|
6095
|
+
const settingsMenu = document.getElementById('uvf-settings-menu');
|
|
6096
|
+
if (settingsMenu) {
|
|
6097
|
+
settingsMenu.querySelectorAll('.uvf-accordion-item.expanded').forEach(item => {
|
|
6098
|
+
item.classList.remove('expanded');
|
|
6099
|
+
});
|
|
6100
|
+
}
|
|
6101
|
+
accordionItem.classList.add('expanded');
|
|
6102
|
+
}
|
|
6103
|
+
updateAccordionAfterSelection(section) {
|
|
6104
|
+
setTimeout(() => {
|
|
6105
|
+
this.generateAccordionMenu();
|
|
6106
|
+
this.setupSettingsEventListeners();
|
|
6107
|
+
}, 100);
|
|
6108
|
+
}
|
|
5881
6109
|
updateSettingsActiveStates(className, activeElement) {
|
|
5882
6110
|
const settingsMenu = document.getElementById('uvf-settings-menu');
|
|
5883
6111
|
if (!settingsMenu)
|