unified-video-framework 1.4.173 → 1.4.174
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.
|
@@ -4300,8 +4300,8 @@ export class WebPlayer extends BasePlayer {
|
|
|
4300
4300
|
pointer-events: auto !important; /* Allow clicking on controls */
|
|
4301
4301
|
|
|
4302
4302
|
/* Gradient mask */
|
|
4303
|
-
-webkit-mask-image: linear-gradient(to top, black
|
|
4304
|
-
mask-image: linear-gradient(to top, black
|
|
4303
|
+
-webkit-mask-image: linear-gradient(to top, black 50%, transparent 100%);
|
|
4304
|
+
mask-image: linear-gradient(to top, black 50%, transparent 100%);
|
|
4305
4305
|
-webkit-mask-size: 100% 100%;
|
|
4306
4306
|
mask-size: 100% 100%;
|
|
4307
4307
|
-webkit-mask-repeat: no-repeat;
|
|
@@ -4321,8 +4321,7 @@ export class WebPlayer extends BasePlayer {
|
|
|
4321
4321
|
content: '';
|
|
4322
4322
|
position: absolute;
|
|
4323
4323
|
inset: 0;
|
|
4324
|
-
background: var(--uvf-surface-tint, rgba(
|
|
4325
|
-
border-radius: 28px 28px 0 0;
|
|
4324
|
+
background: var(--uvf-surface-tint, rgba(0, 0, 0, 0.08));
|
|
4326
4325
|
pointer-events: none;
|
|
4327
4326
|
z-index: -1;
|
|
4328
4327
|
}
|
|
@@ -5918,7 +5917,26 @@ export class WebPlayer extends BasePlayer {
|
|
|
5918
5917
|
// Play/Pause
|
|
5919
5918
|
centerPlay?.addEventListener('click', () => this.togglePlayPause());
|
|
5920
5919
|
playPauseBtn?.addEventListener('click', () => this.togglePlayPause());
|
|
5921
|
-
|
|
5920
|
+
|
|
5921
|
+
// Video click behavior - toggle controls on mobile, play/pause on desktop
|
|
5922
|
+
this.video.addEventListener('click', (e) => {
|
|
5923
|
+
if (this.isMobileDevice()) {
|
|
5924
|
+
// Mobile: toggle controls visibility
|
|
5925
|
+
e.stopPropagation();
|
|
5926
|
+
const wrapper = this.container?.querySelector('.uvf-player-wrapper');
|
|
5927
|
+
if (wrapper?.classList.contains('controls-visible')) {
|
|
5928
|
+
this.hideControls();
|
|
5929
|
+
} else {
|
|
5930
|
+
this.showControls();
|
|
5931
|
+
if (this.state.isPlaying) {
|
|
5932
|
+
this.scheduleHideControls();
|
|
5933
|
+
}
|
|
5934
|
+
}
|
|
5935
|
+
} else {
|
|
5936
|
+
// Desktop: toggle play/pause
|
|
5937
|
+
this.togglePlayPause();
|
|
5938
|
+
}
|
|
5939
|
+
});
|
|
5922
5940
|
|
|
5923
5941
|
// Update play/pause icons
|
|
5924
5942
|
this.video.addEventListener('play', () => {
|
|
@@ -8170,6 +8188,7 @@ export class WebPlayer extends BasePlayer {
|
|
|
8170
8188
|
// Speed options
|
|
8171
8189
|
settingsMenu.querySelectorAll('.speed-option').forEach(option => {
|
|
8172
8190
|
option.addEventListener('click', (e) => {
|
|
8191
|
+
e.stopPropagation();
|
|
8173
8192
|
const speed = parseFloat((e.target as HTMLElement).dataset.speed || '1');
|
|
8174
8193
|
this.setPlaybackRateFromSettings(speed);
|
|
8175
8194
|
this.updateAccordionAfterSelection('speed');
|
|
@@ -8179,6 +8198,7 @@ export class WebPlayer extends BasePlayer {
|
|
|
8179
8198
|
// Quality options
|
|
8180
8199
|
settingsMenu.querySelectorAll('.quality-option').forEach(option => {
|
|
8181
8200
|
option.addEventListener('click', (e) => {
|
|
8201
|
+
e.stopPropagation();
|
|
8182
8202
|
const quality = (e.target as HTMLElement).dataset.quality || 'auto';
|
|
8183
8203
|
this.setQualityFromSettings(quality);
|
|
8184
8204
|
this.updateAccordionAfterSelection('quality');
|
|
@@ -8188,6 +8208,7 @@ export class WebPlayer extends BasePlayer {
|
|
|
8188
8208
|
// Subtitle options
|
|
8189
8209
|
settingsMenu.querySelectorAll('.subtitle-option').forEach(option => {
|
|
8190
8210
|
option.addEventListener('click', (e) => {
|
|
8211
|
+
e.stopPropagation();
|
|
8191
8212
|
const subtitle = (e.target as HTMLElement).dataset.subtitle || 'off';
|
|
8192
8213
|
this.setSubtitle(subtitle);
|
|
8193
8214
|
this.updateAccordionAfterSelection('subtitles');
|
|
@@ -8245,13 +8266,26 @@ export class WebPlayer extends BasePlayer {
|
|
|
8245
8266
|
* Update accordion after user makes a selection
|
|
8246
8267
|
*/
|
|
8247
8268
|
private updateAccordionAfterSelection(section: string): void {
|
|
8248
|
-
//
|
|
8249
|
-
|
|
8250
|
-
|
|
8251
|
-
|
|
8252
|
-
|
|
8253
|
-
|
|
8254
|
-
}
|
|
8269
|
+
// Close the accordion section after selection
|
|
8270
|
+
const settingsMenu = document.getElementById('uvf-settings-menu');
|
|
8271
|
+
if (settingsMenu) {
|
|
8272
|
+
settingsMenu.querySelectorAll('.uvf-accordion-item.expanded').forEach(item => {
|
|
8273
|
+
item.classList.remove('expanded');
|
|
8274
|
+
});
|
|
8275
|
+
}
|
|
8276
|
+
|
|
8277
|
+
// Auto-close settings menu on mobile after a short delay
|
|
8278
|
+
if (this.isMobileDevice()) {
|
|
8279
|
+
setTimeout(() => {
|
|
8280
|
+
this.hideSettingsMenu();
|
|
8281
|
+
}, 300);
|
|
8282
|
+
} else {
|
|
8283
|
+
// Desktop: just refresh the menu to update current values
|
|
8284
|
+
setTimeout(() => {
|
|
8285
|
+
this.generateAccordionMenu();
|
|
8286
|
+
this.setupSettingsEventListeners();
|
|
8287
|
+
}, 100);
|
|
8288
|
+
}
|
|
8255
8289
|
}
|
|
8256
8290
|
|
|
8257
8291
|
/**
|