unified-video-framework 1.4.162 → 1.4.163
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.
|
@@ -3861,217 +3861,6 @@ export class WebPlayer extends BasePlayer {
|
|
|
3861
3861
|
@media screen and (max-width: 767px) {
|
|
3862
3862
|
html, body {
|
|
3863
3863
|
overflow-x: hidden;
|
|
3864
|
-
background: #000;
|
|
3865
|
-
}
|
|
3866
|
-
|
|
3867
|
-
/* Mobile Portrait Layout - Centered Player with Top/Bottom Black Areas */
|
|
3868
|
-
@media screen and (orientation: portrait) {
|
|
3869
|
-
.uvf-responsive-container {
|
|
3870
|
-
display: flex;
|
|
3871
|
-
flex-direction: column;
|
|
3872
|
-
height: 100vh;
|
|
3873
|
-
height: 100dvh;
|
|
3874
|
-
background: #000;
|
|
3875
|
-
overflow: hidden;
|
|
3876
|
-
position: fixed;
|
|
3877
|
-
top: 0;
|
|
3878
|
-
left: 0;
|
|
3879
|
-
width: 100vw;
|
|
3880
|
-
}
|
|
3881
|
-
|
|
3882
|
-
/* Top black area - 25% of viewport */
|
|
3883
|
-
.uvf-responsive-container::before {
|
|
3884
|
-
content: '';
|
|
3885
|
-
flex: 0 0 25vh;
|
|
3886
|
-
background: #000;
|
|
3887
|
-
pointer-events: none;
|
|
3888
|
-
}
|
|
3889
|
-
|
|
3890
|
-
/* Bottom black area - 25% of viewport */
|
|
3891
|
-
.uvf-responsive-container::after {
|
|
3892
|
-
content: '';
|
|
3893
|
-
flex: 0 0 25vh;
|
|
3894
|
-
background: #000;
|
|
3895
|
-
pointer-events: none;
|
|
3896
|
-
}
|
|
3897
|
-
|
|
3898
|
-
/* Centered video player wrapper - 50% of viewport */
|
|
3899
|
-
.uvf-responsive-container .uvf-player-wrapper {
|
|
3900
|
-
flex: 1;
|
|
3901
|
-
width: 100vw;
|
|
3902
|
-
display: flex;
|
|
3903
|
-
align-items: center;
|
|
3904
|
-
justify-content: center;
|
|
3905
|
-
background: #000;
|
|
3906
|
-
position: relative;
|
|
3907
|
-
}
|
|
3908
|
-
|
|
3909
|
-
/* Video container fills player wrapper */
|
|
3910
|
-
.uvf-responsive-container .uvf-video-container {
|
|
3911
|
-
width: 100%;
|
|
3912
|
-
height: 100%;
|
|
3913
|
-
position: relative;
|
|
3914
|
-
background: #000;
|
|
3915
|
-
border-radius: 0;
|
|
3916
|
-
overflow: hidden;
|
|
3917
|
-
}
|
|
3918
|
-
|
|
3919
|
-
/* Video element fills container */
|
|
3920
|
-
.uvf-responsive-container .uvf-video {
|
|
3921
|
-
width: 100%;
|
|
3922
|
-
height: 100%;
|
|
3923
|
-
object-fit: contain;
|
|
3924
|
-
background: #000;
|
|
3925
|
-
}
|
|
3926
|
-
|
|
3927
|
-
/* All controls positioned inside video container */
|
|
3928
|
-
.uvf-controls-bar {
|
|
3929
|
-
position: absolute !important;
|
|
3930
|
-
bottom: 0 !important;
|
|
3931
|
-
left: 0 !important;
|
|
3932
|
-
right: 0 !important;
|
|
3933
|
-
background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.6) 60%, transparent 100%);
|
|
3934
|
-
padding: 12px 16px;
|
|
3935
|
-
padding-bottom: calc(12px + var(--uvf-safe-area-bottom));
|
|
3936
|
-
z-index: 1000;
|
|
3937
|
-
/* Ensure controls are always visible */
|
|
3938
|
-
opacity: 1 !important;
|
|
3939
|
-
visibility: visible !important;
|
|
3940
|
-
display: flex !important;
|
|
3941
|
-
flex-direction: column !important;
|
|
3942
|
-
/* Ensure hardware acceleration */
|
|
3943
|
-
-webkit-transform: translate3d(0,0,0);
|
|
3944
|
-
transform: translate3d(0,0,0);
|
|
3945
|
-
}
|
|
3946
|
-
|
|
3947
|
-
/* Force controls visibility on mobile portrait */
|
|
3948
|
-
.uvf-responsive-container .uvf-controls-bar {
|
|
3949
|
-
opacity: 1 !important;
|
|
3950
|
-
visibility: visible !important;
|
|
3951
|
-
transform: translateY(0) !important;
|
|
3952
|
-
pointer-events: auto !important;
|
|
3953
|
-
}
|
|
3954
|
-
|
|
3955
|
-
/* Progress section - ensure visibility */
|
|
3956
|
-
.uvf-progress-section {
|
|
3957
|
-
width: 100%;
|
|
3958
|
-
margin-bottom: 8px;
|
|
3959
|
-
opacity: 1 !important;
|
|
3960
|
-
visibility: visible !important;
|
|
3961
|
-
display: block !important;
|
|
3962
|
-
}
|
|
3963
|
-
|
|
3964
|
-
/* Progress bar styling */
|
|
3965
|
-
.uvf-progress-bar-wrapper {
|
|
3966
|
-
opacity: 1 !important;
|
|
3967
|
-
visibility: visible !important;
|
|
3968
|
-
}
|
|
3969
|
-
|
|
3970
|
-
.uvf-progress-bar {
|
|
3971
|
-
height: 4px;
|
|
3972
|
-
background: rgba(255, 255, 255, 0.3);
|
|
3973
|
-
border-radius: 2px;
|
|
3974
|
-
}
|
|
3975
|
-
|
|
3976
|
-
.uvf-progress-filled {
|
|
3977
|
-
background: var(--uvf-accent-1, #8B5CF6);
|
|
3978
|
-
height: 100%;
|
|
3979
|
-
border-radius: 2px;
|
|
3980
|
-
}
|
|
3981
|
-
|
|
3982
|
-
/* Controls row alignment - ensure visibility */
|
|
3983
|
-
.uvf-controls-row {
|
|
3984
|
-
width: 100%;
|
|
3985
|
-
display: flex !important;
|
|
3986
|
-
align-items: center;
|
|
3987
|
-
justify-content: flex-start;
|
|
3988
|
-
gap: 12px;
|
|
3989
|
-
opacity: 1 !important;
|
|
3990
|
-
visibility: visible !important;
|
|
3991
|
-
margin-top: 8px;
|
|
3992
|
-
}
|
|
3993
|
-
|
|
3994
|
-
/* Time display visibility */
|
|
3995
|
-
.uvf-time-display {
|
|
3996
|
-
color: #fff;
|
|
3997
|
-
font-size: 12px;
|
|
3998
|
-
font-weight: 500;
|
|
3999
|
-
opacity: 1 !important;
|
|
4000
|
-
visibility: visible !important;
|
|
4001
|
-
display: block !important;
|
|
4002
|
-
}
|
|
4003
|
-
|
|
4004
|
-
/* Control buttons visibility */
|
|
4005
|
-
.uvf-control-btn {
|
|
4006
|
-
opacity: 1 !important;
|
|
4007
|
-
visibility: visible !important;
|
|
4008
|
-
display: flex !important;
|
|
4009
|
-
color: #fff;
|
|
4010
|
-
}
|
|
4011
|
-
|
|
4012
|
-
.uvf-control-btn svg {
|
|
4013
|
-
fill: #fff;
|
|
4014
|
-
opacity: 1;
|
|
4015
|
-
}
|
|
4016
|
-
|
|
4017
|
-
/* Right controls - ensure visibility */
|
|
4018
|
-
.uvf-right-controls {
|
|
4019
|
-
margin-left: auto;
|
|
4020
|
-
display: flex !important;
|
|
4021
|
-
align-items: center;
|
|
4022
|
-
gap: 8px;
|
|
4023
|
-
opacity: 1 !important;
|
|
4024
|
-
visibility: visible !important;
|
|
4025
|
-
}
|
|
4026
|
-
|
|
4027
|
-
/* Force controls to be always visible in portrait mode */
|
|
4028
|
-
.uvf-responsive-container .uvf-player-wrapper.uvf-controls-visible .uvf-controls-bar,
|
|
4029
|
-
.uvf-responsive-container .uvf-player-wrapper:hover .uvf-controls-bar,
|
|
4030
|
-
.uvf-responsive-container .uvf-controls-bar {
|
|
4031
|
-
opacity: 1 !important;
|
|
4032
|
-
transform: translateY(0) !important;
|
|
4033
|
-
visibility: visible !important;
|
|
4034
|
-
display: flex !important;
|
|
4035
|
-
pointer-events: auto !important;
|
|
4036
|
-
}
|
|
4037
|
-
|
|
4038
|
-
/* Ensure all child elements are visible */
|
|
4039
|
-
.uvf-responsive-container .uvf-controls-bar * {
|
|
4040
|
-
opacity: 1 !important;
|
|
4041
|
-
visibility: visible !important;
|
|
4042
|
-
}
|
|
4043
|
-
|
|
4044
|
-
/* Center play button positioned within video */
|
|
4045
|
-
.uvf-center-play-container {
|
|
4046
|
-
position: absolute;
|
|
4047
|
-
top: 50%;
|
|
4048
|
-
left: 50%;
|
|
4049
|
-
transform: translate(-50%, -50%);
|
|
4050
|
-
z-index: 8;
|
|
4051
|
-
pointer-events: none;
|
|
4052
|
-
}
|
|
4053
|
-
|
|
4054
|
-
.uvf-center-play-btn {
|
|
4055
|
-
pointer-events: auto;
|
|
4056
|
-
}
|
|
4057
|
-
|
|
4058
|
-
/* Top controls within video */
|
|
4059
|
-
.uvf-top-controls {
|
|
4060
|
-
position: absolute;
|
|
4061
|
-
top: calc(12px + var(--uvf-safe-area-top));
|
|
4062
|
-
right: calc(16px + var(--uvf-safe-area-right));
|
|
4063
|
-
z-index: 9;
|
|
4064
|
-
}
|
|
4065
|
-
|
|
4066
|
-
/* Title bar within video */
|
|
4067
|
-
.uvf-title-bar {
|
|
4068
|
-
position: absolute;
|
|
4069
|
-
top: calc(12px + var(--uvf-safe-area-top));
|
|
4070
|
-
left: calc(16px + var(--uvf-safe-area-left));
|
|
4071
|
-
right: calc(80px + var(--uvf-safe-area-right));
|
|
4072
|
-
z-index: 9;
|
|
4073
|
-
padding: 8px 0;
|
|
4074
|
-
}
|
|
4075
3864
|
}
|
|
4076
3865
|
|
|
4077
3866
|
.uvf-player-wrapper {
|
|
@@ -4095,37 +3884,6 @@ export class WebPlayer extends BasePlayer {
|
|
|
4095
3884
|
transform: translateZ(0);
|
|
4096
3885
|
}
|
|
4097
3886
|
|
|
4098
|
-
/* Mobile controls optimization for touch */
|
|
4099
|
-
.uvf-control-btn {
|
|
4100
|
-
min-width: 44px;
|
|
4101
|
-
min-height: 44px;
|
|
4102
|
-
display: flex;
|
|
4103
|
-
align-items: center;
|
|
4104
|
-
justify-content: center;
|
|
4105
|
-
border-radius: 50%;
|
|
4106
|
-
transition: all 0.2s ease;
|
|
4107
|
-
background: rgba(255, 255, 255, 0.1);
|
|
4108
|
-
backdrop-filter: blur(8px);
|
|
4109
|
-
}
|
|
4110
|
-
|
|
4111
|
-
.uvf-control-btn:active {
|
|
4112
|
-
transform: scale(0.95);
|
|
4113
|
-
background: rgba(255, 255, 255, 0.2);
|
|
4114
|
-
}
|
|
4115
|
-
|
|
4116
|
-
/* Play/pause button prominence */
|
|
4117
|
-
.uvf-control-btn.play-pause {
|
|
4118
|
-
background: linear-gradient(135deg, var(--uvf-accent-1), var(--uvf-accent-2));
|
|
4119
|
-
min-width: 52px;
|
|
4120
|
-
min-height: 52px;
|
|
4121
|
-
box-shadow: 0 2px 8px rgba(0,0,0,0.3);
|
|
4122
|
-
}
|
|
4123
|
-
|
|
4124
|
-
.uvf-control-btn.play-pause:active {
|
|
4125
|
-
transform: scale(0.92);
|
|
4126
|
-
box-shadow: 0 1px 4px rgba(0,0,0,0.4);
|
|
4127
|
-
}
|
|
4128
|
-
|
|
4129
3887
|
/* Fix for controls being cut off by virtual keyboard */
|
|
4130
3888
|
.uvf-controls-bar {
|
|
4131
3889
|
position: absolute !important;
|
|
@@ -4172,61 +3930,244 @@ export class WebPlayer extends BasePlayer {
|
|
|
4172
3930
|
}
|
|
4173
3931
|
|
|
4174
3932
|
/* Enhanced Responsive Media Queries with UX Best Practices */
|
|
4175
|
-
/* Mobile
|
|
3933
|
+
/* Mobile Portrait Layout - CENTERED PLAYER with TOP/BOTTOM BLACK AREAS */
|
|
4176
3934
|
@media screen and (max-width: 767px) and (orientation: portrait) {
|
|
3935
|
+
/* CENTERED LAYOUT: 25% top black + 50% player + 25% bottom black */
|
|
4177
3936
|
.uvf-responsive-container {
|
|
3937
|
+
display: flex;
|
|
3938
|
+
flex-direction: column;
|
|
3939
|
+
height: 100vh;
|
|
3940
|
+
height: 100dvh;
|
|
3941
|
+
background: #000;
|
|
3942
|
+
overflow: hidden;
|
|
3943
|
+
position: fixed;
|
|
3944
|
+
top: 0;
|
|
3945
|
+
left: 0;
|
|
3946
|
+
width: 100vw;
|
|
4178
3947
|
padding: 0;
|
|
4179
|
-
width: 100vw !important;
|
|
4180
|
-
height: calc(100vh - var(--uvf-safe-area-top) - var(--uvf-safe-area-bottom));
|
|
4181
3948
|
margin: 0;
|
|
4182
|
-
position: relative;
|
|
4183
|
-
overflow: hidden;
|
|
4184
3949
|
}
|
|
4185
3950
|
|
|
4186
|
-
|
|
4187
|
-
|
|
4188
|
-
|
|
4189
|
-
|
|
3951
|
+
/* TOP BLACK AREA - 25% of viewport - COMPLETELY EMPTY */
|
|
3952
|
+
.uvf-responsive-container::before {
|
|
3953
|
+
content: '';
|
|
3954
|
+
flex: 0 0 25vh;
|
|
3955
|
+
background: #000;
|
|
3956
|
+
pointer-events: none;
|
|
4190
3957
|
}
|
|
4191
3958
|
|
|
4192
|
-
|
|
4193
|
-
|
|
4194
|
-
|
|
4195
|
-
|
|
3959
|
+
/* BOTTOM BLACK AREA - 25% of viewport - COMPLETELY EMPTY */
|
|
3960
|
+
.uvf-responsive-container::after {
|
|
3961
|
+
content: '';
|
|
3962
|
+
flex: 0 0 25vh;
|
|
3963
|
+
background: #000;
|
|
3964
|
+
pointer-events: none;
|
|
4196
3965
|
}
|
|
4197
3966
|
|
|
4198
|
-
|
|
4199
|
-
|
|
4200
|
-
|
|
4201
|
-
|
|
3967
|
+
/* CENTERED VIDEO PLAYER WRAPPER - 50% of viewport */
|
|
3968
|
+
.uvf-responsive-container .uvf-player-wrapper {
|
|
3969
|
+
flex: 1; /* Takes remaining 50% */
|
|
3970
|
+
width: 100vw;
|
|
3971
|
+
display: flex;
|
|
3972
|
+
align-items: center;
|
|
3973
|
+
justify-content: center;
|
|
3974
|
+
background: #000;
|
|
3975
|
+
position: relative;
|
|
3976
|
+
overflow: hidden; /* CRITICAL: Ensure nothing extends beyond this area */
|
|
4202
3977
|
}
|
|
4203
3978
|
|
|
3979
|
+
/* Video container fills player wrapper */
|
|
4204
3980
|
.uvf-responsive-container .uvf-video-container {
|
|
4205
|
-
width:
|
|
4206
|
-
height: 100
|
|
4207
|
-
|
|
4208
|
-
|
|
3981
|
+
width: 100%;
|
|
3982
|
+
height: 100%;
|
|
3983
|
+
position: relative;
|
|
3984
|
+
background: #000;
|
|
3985
|
+
border-radius: 0;
|
|
3986
|
+
overflow: hidden;
|
|
3987
|
+
}
|
|
3988
|
+
|
|
3989
|
+
/* Video element fills container */
|
|
3990
|
+
.uvf-responsive-container .uvf-video {
|
|
3991
|
+
width: 100%;
|
|
3992
|
+
height: 100%;
|
|
3993
|
+
object-fit: contain;
|
|
3994
|
+
background: #000;
|
|
4209
3995
|
}
|
|
4210
3996
|
|
|
4211
|
-
/*
|
|
3997
|
+
/* CONTROLS STRICTLY CONTAINED WITHIN VIDEO AREA - NEVER EXTEND TO BLACK AREAS */
|
|
4212
3998
|
.uvf-controls-bar {
|
|
4213
3999
|
position: absolute !important;
|
|
4214
|
-
|
|
4215
|
-
|
|
4216
|
-
|
|
4217
|
-
|
|
4218
|
-
|
|
4219
|
-
|
|
4220
|
-
padding
|
|
4221
|
-
|
|
4000
|
+
/* Keep controls INSIDE video container with margins from all edges */
|
|
4001
|
+
bottom: 20px !important; /* 20px margin from video bottom */
|
|
4002
|
+
left: 16px !important; /* 16px margin from video left */
|
|
4003
|
+
right: 16px !important; /* 16px margin from video right */
|
|
4004
|
+
top: auto !important;
|
|
4005
|
+
background: linear-gradient(to top, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.7) 60%, transparent 100%);
|
|
4006
|
+
padding: 12px 16px;
|
|
4007
|
+
border-radius: 12px;
|
|
4008
|
+
z-index: 1000;
|
|
4009
|
+
/* Ensure controls are visible and contained */
|
|
4010
|
+
opacity: 1 !important;
|
|
4011
|
+
visibility: visible !important;
|
|
4012
|
+
display: flex !important;
|
|
4013
|
+
flex-direction: column !important;
|
|
4014
|
+
/* Hardware acceleration */
|
|
4015
|
+
-webkit-transform: translate3d(0,0,0);
|
|
4016
|
+
transform: translate3d(0,0,0);
|
|
4017
|
+
/* CRITICAL: Prevent any overflow into black areas */
|
|
4018
|
+
max-height: calc(100% - 40px); /* Leave 20px margin from top and bottom */
|
|
4019
|
+
max-width: calc(100% - 32px); /* Leave 16px margin from left and right */
|
|
4222
4020
|
box-sizing: border-box;
|
|
4223
|
-
|
|
4224
|
-
|
|
4225
|
-
|
|
4226
|
-
|
|
4227
|
-
|
|
4228
|
-
|
|
4229
|
-
|
|
4021
|
+
/* Visual containment indicators */
|
|
4022
|
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
4023
|
+
backdrop-filter: blur(10px);
|
|
4024
|
+
contain: layout style paint; /* CSS containment */
|
|
4025
|
+
}
|
|
4026
|
+
|
|
4027
|
+
/* Force controls and all child elements to stay within video container */
|
|
4028
|
+
.uvf-responsive-container .uvf-controls-bar {
|
|
4029
|
+
opacity: 1 !important;
|
|
4030
|
+
visibility: visible !important;
|
|
4031
|
+
transform: translateY(0) !important;
|
|
4032
|
+
pointer-events: auto !important;
|
|
4033
|
+
/* Ensure no child elements extend beyond container */
|
|
4034
|
+
contain: layout style paint;
|
|
4035
|
+
}
|
|
4036
|
+
|
|
4037
|
+
/* Ensure all child elements of controls stay within bounds */
|
|
4038
|
+
.uvf-responsive-container .uvf-controls-bar * {
|
|
4039
|
+
max-width: 100%;
|
|
4040
|
+
box-sizing: border-box;
|
|
4041
|
+
}
|
|
4042
|
+
|
|
4043
|
+
/* Progress section contained within controls */
|
|
4044
|
+
.uvf-progress-section {
|
|
4045
|
+
width: 100%;
|
|
4046
|
+
margin-bottom: 8px;
|
|
4047
|
+
opacity: 1 !important;
|
|
4048
|
+
visibility: visible !important;
|
|
4049
|
+
display: block !important;
|
|
4050
|
+
}
|
|
4051
|
+
|
|
4052
|
+
/* Progress bar styling */
|
|
4053
|
+
.uvf-progress-bar-wrapper {
|
|
4054
|
+
opacity: 1 !important;
|
|
4055
|
+
visibility: visible !important;
|
|
4056
|
+
}
|
|
4057
|
+
|
|
4058
|
+
.uvf-progress-bar {
|
|
4059
|
+
height: 4px;
|
|
4060
|
+
background: rgba(255, 255, 255, 0.3);
|
|
4061
|
+
border-radius: 2px;
|
|
4062
|
+
}
|
|
4063
|
+
|
|
4064
|
+
.uvf-progress-filled {
|
|
4065
|
+
background: var(--uvf-accent-1, #8B5CF6);
|
|
4066
|
+
height: 100%;
|
|
4067
|
+
border-radius: 2px;
|
|
4068
|
+
}
|
|
4069
|
+
|
|
4070
|
+
/* Controls row alignment - ensure visibility */
|
|
4071
|
+
.uvf-controls-row {
|
|
4072
|
+
width: 100%;
|
|
4073
|
+
display: flex !important;
|
|
4074
|
+
align-items: center;
|
|
4075
|
+
justify-content: flex-start;
|
|
4076
|
+
gap: 12px;
|
|
4077
|
+
opacity: 1 !important;
|
|
4078
|
+
visibility: visible !important;
|
|
4079
|
+
margin-top: 8px;
|
|
4080
|
+
}
|
|
4081
|
+
|
|
4082
|
+
/* Time display visibility */
|
|
4083
|
+
.uvf-time-display {
|
|
4084
|
+
color: #fff;
|
|
4085
|
+
font-size: 12px;
|
|
4086
|
+
font-weight: 500;
|
|
4087
|
+
opacity: 1 !important;
|
|
4088
|
+
visibility: visible !important;
|
|
4089
|
+
display: block !important;
|
|
4090
|
+
}
|
|
4091
|
+
|
|
4092
|
+
/* Control buttons visibility */
|
|
4093
|
+
.uvf-control-btn {
|
|
4094
|
+
min-width: 44px;
|
|
4095
|
+
min-height: 44px;
|
|
4096
|
+
display: flex !important;
|
|
4097
|
+
align-items: center;
|
|
4098
|
+
justify-content: center;
|
|
4099
|
+
border-radius: 50%;
|
|
4100
|
+
background: rgba(255, 255, 255, 0.1);
|
|
4101
|
+
backdrop-filter: blur(8px);
|
|
4102
|
+
color: #fff;
|
|
4103
|
+
opacity: 1 !important;
|
|
4104
|
+
visibility: visible !important;
|
|
4105
|
+
transition: all 0.2s ease;
|
|
4106
|
+
}
|
|
4107
|
+
|
|
4108
|
+
.uvf-control-btn:active {
|
|
4109
|
+
transform: scale(0.95);
|
|
4110
|
+
background: rgba(255, 255, 255, 0.2);
|
|
4111
|
+
}
|
|
4112
|
+
|
|
4113
|
+
/* Play/pause button prominence */
|
|
4114
|
+
.uvf-control-btn.play-pause {
|
|
4115
|
+
background: linear-gradient(135deg, var(--uvf-accent-1), var(--uvf-accent-2));
|
|
4116
|
+
min-width: 52px;
|
|
4117
|
+
min-height: 52px;
|
|
4118
|
+
box-shadow: 0 2px 8px rgba(0,0,0,0.3);
|
|
4119
|
+
}
|
|
4120
|
+
|
|
4121
|
+
.uvf-control-btn.play-pause:active {
|
|
4122
|
+
transform: scale(0.92);
|
|
4123
|
+
box-shadow: 0 1px 4px rgba(0,0,0,0.4);
|
|
4124
|
+
}
|
|
4125
|
+
|
|
4126
|
+
.uvf-control-btn svg {
|
|
4127
|
+
fill: #fff;
|
|
4128
|
+
opacity: 1;
|
|
4129
|
+
}
|
|
4130
|
+
|
|
4131
|
+
/* Right controls */
|
|
4132
|
+
.uvf-right-controls {
|
|
4133
|
+
margin-left: auto;
|
|
4134
|
+
display: flex !important;
|
|
4135
|
+
align-items: center;
|
|
4136
|
+
gap: 8px;
|
|
4137
|
+
opacity: 1 !important;
|
|
4138
|
+
visibility: visible !important;
|
|
4139
|
+
}
|
|
4140
|
+
|
|
4141
|
+
/* Center play button positioned within video */
|
|
4142
|
+
.uvf-center-play-container {
|
|
4143
|
+
position: absolute;
|
|
4144
|
+
top: 50%;
|
|
4145
|
+
left: 50%;
|
|
4146
|
+
transform: translate(-50%, -50%);
|
|
4147
|
+
z-index: 8;
|
|
4148
|
+
pointer-events: none;
|
|
4149
|
+
}
|
|
4150
|
+
|
|
4151
|
+
.uvf-center-play-btn {
|
|
4152
|
+
pointer-events: auto;
|
|
4153
|
+
}
|
|
4154
|
+
|
|
4155
|
+
/* Top controls within video */
|
|
4156
|
+
.uvf-top-controls {
|
|
4157
|
+
position: absolute;
|
|
4158
|
+
top: calc(12px + var(--uvf-safe-area-top));
|
|
4159
|
+
right: calc(16px + var(--uvf-safe-area-right));
|
|
4160
|
+
z-index: 9;
|
|
4161
|
+
}
|
|
4162
|
+
|
|
4163
|
+
/* Title bar within video */
|
|
4164
|
+
.uvf-title-bar {
|
|
4165
|
+
position: absolute;
|
|
4166
|
+
top: calc(12px + var(--uvf-safe-area-top));
|
|
4167
|
+
left: calc(16px + var(--uvf-safe-area-left));
|
|
4168
|
+
right: calc(80px + var(--uvf-safe-area-right));
|
|
4169
|
+
z-index: 9;
|
|
4170
|
+
padding: 8px 0;
|
|
4230
4171
|
}
|
|
4231
4172
|
|
|
4232
4173
|
.uvf-progress-section {
|
|
@@ -4607,69 +4548,55 @@ export class WebPlayer extends BasePlayer {
|
|
|
4607
4548
|
}
|
|
4608
4549
|
}
|
|
4609
4550
|
|
|
4610
|
-
/* Mobile devices (landscape) -
|
|
4551
|
+
/* Mobile devices (landscape) - Optimized for fullscreen viewing with safe areas */
|
|
4611
4552
|
@media screen and (max-width: 767px) and (orientation: landscape) {
|
|
4612
4553
|
.uvf-responsive-container {
|
|
4613
|
-
position: fixed;
|
|
4614
|
-
top: 0;
|
|
4615
|
-
left: 0;
|
|
4616
4554
|
width: 100vw !important;
|
|
4617
|
-
height: 100vh
|
|
4618
|
-
height: 100dvh !important;
|
|
4619
|
-
background: #000;
|
|
4620
|
-
z-index: 9999;
|
|
4621
|
-
display: block; /* Override portrait flexbox */
|
|
4555
|
+
height: calc(100vh - var(--uvf-safe-area-top) - var(--uvf-safe-area-bottom));
|
|
4622
4556
|
margin: 0;
|
|
4623
4557
|
padding: 0;
|
|
4558
|
+
position: relative;
|
|
4624
4559
|
overflow: hidden;
|
|
4625
4560
|
}
|
|
4626
4561
|
|
|
4627
|
-
|
|
4628
|
-
|
|
4629
|
-
|
|
4630
|
-
|
|
4562
|
+
@supports (height: 100dvh) {
|
|
4563
|
+
.uvf-responsive-container {
|
|
4564
|
+
height: calc(100dvh - var(--uvf-safe-area-top) - var(--uvf-safe-area-bottom));
|
|
4565
|
+
}
|
|
4631
4566
|
}
|
|
4632
4567
|
|
|
4633
4568
|
.uvf-responsive-container .uvf-player-wrapper {
|
|
4634
4569
|
width: 100vw !important;
|
|
4635
|
-
height:
|
|
4636
|
-
height:
|
|
4637
|
-
position: relative;
|
|
4638
|
-
display: block;
|
|
4570
|
+
height: 100% !important;
|
|
4571
|
+
min-height: calc(100vh - var(--uvf-safe-area-top) - var(--uvf-safe-area-bottom));
|
|
4639
4572
|
}
|
|
4640
4573
|
|
|
4641
|
-
|
|
4642
|
-
|
|
4643
|
-
|
|
4644
|
-
|
|
4645
|
-
position: relative;
|
|
4646
|
-
background: #000;
|
|
4647
|
-
overflow: hidden;
|
|
4574
|
+
@supports (height: 100dvh) {
|
|
4575
|
+
.uvf-responsive-container .uvf-player-wrapper {
|
|
4576
|
+
min-height: calc(100dvh - var(--uvf-safe-area-top) - var(--uvf-safe-area-bottom));
|
|
4577
|
+
}
|
|
4648
4578
|
}
|
|
4649
4579
|
|
|
4650
|
-
.uvf-responsive-container .uvf-video {
|
|
4651
|
-
width:
|
|
4652
|
-
height: 100
|
|
4653
|
-
|
|
4654
|
-
|
|
4580
|
+
.uvf-responsive-container .uvf-video-container {
|
|
4581
|
+
width: 100vw !important;
|
|
4582
|
+
height: 100% !important;
|
|
4583
|
+
aspect-ratio: unset !important;
|
|
4584
|
+
min-height: inherit;
|
|
4655
4585
|
}
|
|
4656
4586
|
|
|
4657
|
-
/* Compact controls for landscape
|
|
4587
|
+
/* Compact controls for landscape with safe area padding */
|
|
4658
4588
|
.uvf-controls-bar {
|
|
4659
|
-
position: absolute
|
|
4660
|
-
bottom: 0
|
|
4661
|
-
left: 0
|
|
4662
|
-
right: 0
|
|
4589
|
+
position: absolute;
|
|
4590
|
+
bottom: 0;
|
|
4591
|
+
left: 0;
|
|
4592
|
+
right: 0;
|
|
4663
4593
|
padding: 10px 12px;
|
|
4664
4594
|
padding-bottom: calc(10px + var(--uvf-safe-area-bottom));
|
|
4665
4595
|
padding-left: calc(12px + var(--uvf-safe-area-left));
|
|
4666
4596
|
padding-right: calc(12px + var(--uvf-safe-area-right));
|
|
4667
|
-
background: linear-gradient(to top,
|
|
4597
|
+
background: linear-gradient(to top, var(--uvf-overlay-strong) 0%, var(--uvf-overlay-medium) 80%, var(--uvf-overlay-transparent) 100%);
|
|
4668
4598
|
box-sizing: border-box;
|
|
4669
4599
|
z-index: 1000;
|
|
4670
|
-
/* Ensure hardware acceleration */
|
|
4671
|
-
-webkit-transform: translate3d(0,0,0);
|
|
4672
|
-
transform: translate3d(0,0,0);
|
|
4673
4600
|
}
|
|
4674
4601
|
|
|
4675
4602
|
.uvf-progress-section {
|
|
@@ -4705,36 +4632,16 @@ export class WebPlayer extends BasePlayer {
|
|
|
4705
4632
|
height: 22px;
|
|
4706
4633
|
}
|
|
4707
4634
|
|
|
4708
|
-
/* Compact top controls with safe area padding
|
|
4635
|
+
/* Compact top controls with safe area padding */
|
|
4709
4636
|
.uvf-top-controls {
|
|
4710
|
-
position: absolute;
|
|
4711
4637
|
top: calc(8px + var(--uvf-safe-area-top));
|
|
4712
4638
|
right: calc(12px + var(--uvf-safe-area-right));
|
|
4713
4639
|
gap: 6px;
|
|
4714
|
-
z-index: 9;
|
|
4715
|
-
}
|
|
4716
|
-
|
|
4717
|
-
/* Center play button positioned within video container */
|
|
4718
|
-
.uvf-center-play-container {
|
|
4719
|
-
position: absolute;
|
|
4720
|
-
top: 50%;
|
|
4721
|
-
left: 50%;
|
|
4722
|
-
transform: translate(-50%, -50%);
|
|
4723
|
-
z-index: 8;
|
|
4724
|
-
pointer-events: none;
|
|
4725
|
-
}
|
|
4726
|
-
|
|
4727
|
-
.uvf-center-play-btn {
|
|
4728
|
-
pointer-events: auto;
|
|
4729
4640
|
}
|
|
4730
4641
|
|
|
4731
4642
|
.uvf-title-bar {
|
|
4732
|
-
|
|
4733
|
-
top: calc(8px + var(--uvf-safe-area-top));
|
|
4734
|
-
left: calc(12px + var(--uvf-safe-area-left));
|
|
4735
|
-
right: calc(80px + var(--uvf-safe-area-right));
|
|
4736
|
-
z-index: 9;
|
|
4737
|
-
padding: 8px 0;
|
|
4643
|
+
padding: 8px 12px;
|
|
4644
|
+
padding-top: calc(8px + var(--uvf-safe-area-top));
|
|
4738
4645
|
padding-left: calc(12px + var(--uvf-safe-area-left));
|
|
4739
4646
|
padding-right: calc(12px + var(--uvf-safe-area-right));
|
|
4740
4647
|
}
|
|
@@ -4922,234 +4829,13 @@ export class WebPlayer extends BasePlayer {
|
|
|
4922
4829
|
|
|
4923
4830
|
/* Large screens - Enhanced desktop experience */
|
|
4924
4831
|
@media screen and (min-width: 1024px) {
|
|
4925
|
-
/* Reset mobile portrait styles for desktop */
|
|
4926
4832
|
.uvf-responsive-container {
|
|
4927
|
-
display: block !important; /* Override mobile flexbox */
|
|
4928
|
-
position: relative !important; /* Override mobile fixed */
|
|
4929
|
-
height: auto !important; /* Override mobile viewport height */
|
|
4930
|
-
background: transparent !important; /* Override mobile black background */
|
|
4931
4833
|
padding: 10px;
|
|
4932
4834
|
}
|
|
4933
4835
|
|
|
4934
|
-
/* Remove mobile pseudo-elements on desktop */
|
|
4935
|
-
.uvf-responsive-container::before,
|
|
4936
|
-
.uvf-responsive-container::after {
|
|
4937
|
-
display: none !important;
|
|
4938
|
-
}
|
|
4939
|
-
|
|
4940
|
-
/* Desktop player wrapper */
|
|
4941
|
-
.uvf-responsive-container .uvf-player-wrapper {
|
|
4942
|
-
width: 100% !important; /* Override mobile width */
|
|
4943
|
-
height: auto !important; /* Override mobile height */
|
|
4944
|
-
display: block !important; /* Override mobile flexbox */
|
|
4945
|
-
position: relative !important;
|
|
4946
|
-
max-width: none; /* Allow full width if needed */
|
|
4947
|
-
}
|
|
4948
|
-
|
|
4949
|
-
/* Desktop video container */
|
|
4950
|
-
.uvf-responsive-container .uvf-video-container {
|
|
4951
|
-
width: 100% !important;
|
|
4952
|
-
height: auto !important;
|
|
4953
|
-
position: relative;
|
|
4954
|
-
aspect-ratio: 16/9; /* Maintain desktop aspect ratio */
|
|
4955
|
-
background: #000;
|
|
4956
|
-
}
|
|
4957
|
-
|
|
4958
|
-
/* Desktop controls positioning */
|
|
4959
4836
|
.uvf-controls-bar {
|
|
4960
|
-
position: absolute !important;
|
|
4961
|
-
bottom: 0 !important;
|
|
4962
|
-
left: 0 !important;
|
|
4963
|
-
right: 0 !important;
|
|
4964
4837
|
padding: 20px;
|
|
4965
4838
|
background: linear-gradient(to top, var(--uvf-overlay-strong) 0%, var(--uvf-overlay-medium) 60%, var(--uvf-overlay-transparent) 100%);
|
|
4966
|
-
/* Reset mobile overrides for desktop */
|
|
4967
|
-
opacity: 0; /* Default hidden state on desktop */
|
|
4968
|
-
transform: translateY(10px); /* Default hidden position */
|
|
4969
|
-
transition: all 0.3s ease;
|
|
4970
|
-
}
|
|
4971
|
-
|
|
4972
|
-
/* Desktop hover behavior */
|
|
4973
|
-
.uvf-player-wrapper:hover .uvf-controls-bar,
|
|
4974
|
-
.uvf-player-wrapper.controls-visible .uvf-controls-bar {
|
|
4975
|
-
opacity: 1 !important;
|
|
4976
|
-
transform: translateY(0) !important;
|
|
4977
|
-
}
|
|
4978
|
-
|
|
4979
|
-
/* Desktop progress section */
|
|
4980
|
-
.uvf-progress-section {
|
|
4981
|
-
margin-bottom: 15px;
|
|
4982
|
-
width: 100%;
|
|
4983
|
-
}
|
|
4984
|
-
|
|
4985
|
-
/* Desktop controls row */
|
|
4986
|
-
.uvf-controls-row {
|
|
4987
|
-
display: flex;
|
|
4988
|
-
align-items: center;
|
|
4989
|
-
justify-content: flex-start;
|
|
4990
|
-
gap: 14px;
|
|
4991
|
-
width: 100%;
|
|
4992
|
-
}
|
|
4993
|
-
|
|
4994
|
-
/* Desktop control buttons */
|
|
4995
|
-
.uvf-control-btn {
|
|
4996
|
-
width: 40px;
|
|
4997
|
-
height: 40px;
|
|
4998
|
-
min-width: 40px;
|
|
4999
|
-
min-height: 40px;
|
|
5000
|
-
display: flex;
|
|
5001
|
-
align-items: center;
|
|
5002
|
-
justify-content: center;
|
|
5003
|
-
border: none;
|
|
5004
|
-
border-radius: 50%;
|
|
5005
|
-
background: rgba(255, 255, 255, 0.1);
|
|
5006
|
-
color: #fff;
|
|
5007
|
-
cursor: pointer;
|
|
5008
|
-
transition: all 0.2s cubic-bezier(0.4, 0.0, 0.2, 1);
|
|
5009
|
-
backdrop-filter: blur(8px);
|
|
5010
|
-
}
|
|
5011
|
-
|
|
5012
|
-
.uvf-control-btn:hover {
|
|
5013
|
-
transform: scale(1.1);
|
|
5014
|
-
background: rgba(255, 255, 255, 0.2);
|
|
5015
|
-
}
|
|
5016
|
-
|
|
5017
|
-
.uvf-control-btn.play-pause {
|
|
5018
|
-
width: 50px;
|
|
5019
|
-
height: 50px;
|
|
5020
|
-
min-width: 50px;
|
|
5021
|
-
min-height: 50px;
|
|
5022
|
-
background: linear-gradient(135deg, var(--uvf-accent-1), var(--uvf-accent-2));
|
|
5023
|
-
box-shadow: 0 2px 8px rgba(0,0,0,0.2);
|
|
5024
|
-
}
|
|
5025
|
-
|
|
5026
|
-
.uvf-control-btn.play-pause:hover {
|
|
5027
|
-
transform: scale(1.08);
|
|
5028
|
-
box-shadow: 0 4px 12px rgba(0,0,0,0.3);
|
|
5029
|
-
}
|
|
5030
|
-
|
|
5031
|
-
.uvf-control-btn svg {
|
|
5032
|
-
width: 20px;
|
|
5033
|
-
height: 20px;
|
|
5034
|
-
fill: #fff;
|
|
5035
|
-
}
|
|
5036
|
-
|
|
5037
|
-
.uvf-control-btn.play-pause svg {
|
|
5038
|
-
width: 24px;
|
|
5039
|
-
height: 24px;
|
|
5040
|
-
}
|
|
5041
|
-
|
|
5042
|
-
/* Desktop right controls */
|
|
5043
|
-
.uvf-right-controls {
|
|
5044
|
-
margin-left: auto;
|
|
5045
|
-
display: flex;
|
|
5046
|
-
align-items: center;
|
|
5047
|
-
gap: 8px;
|
|
5048
|
-
}
|
|
5049
|
-
|
|
5050
|
-
/* Desktop time display */
|
|
5051
|
-
.uvf-time-display {
|
|
5052
|
-
color: #fff;
|
|
5053
|
-
font-size: 14px;
|
|
5054
|
-
font-weight: 500;
|
|
5055
|
-
padding: 0 10px;
|
|
5056
|
-
}
|
|
5057
|
-
|
|
5058
|
-
/* Desktop volume control */
|
|
5059
|
-
.uvf-volume-panel {
|
|
5060
|
-
display: flex !important; /* Show volume slider on desktop */
|
|
5061
|
-
align-items: center;
|
|
5062
|
-
gap: 8px;
|
|
5063
|
-
}
|
|
5064
|
-
|
|
5065
|
-
.uvf-volume-slider {
|
|
5066
|
-
width: 80px;
|
|
5067
|
-
height: 4px;
|
|
5068
|
-
background: rgba(255, 255, 255, 0.3);
|
|
5069
|
-
border-radius: 2px;
|
|
5070
|
-
cursor: pointer;
|
|
5071
|
-
}
|
|
5072
|
-
|
|
5073
|
-
/* Desktop settings and other controls */
|
|
5074
|
-
.uvf-quality-badge {
|
|
5075
|
-
display: block;
|
|
5076
|
-
background: rgba(255, 255, 255, 0.1);
|
|
5077
|
-
color: #fff;
|
|
5078
|
-
padding: 4px 8px;
|
|
5079
|
-
border-radius: 4px;
|
|
5080
|
-
font-size: 11px;
|
|
5081
|
-
font-weight: 500;
|
|
5082
|
-
}
|
|
5083
|
-
|
|
5084
|
-
/* Desktop progress bar */
|
|
5085
|
-
.uvf-progress-bar {
|
|
5086
|
-
height: 2px;
|
|
5087
|
-
background: rgba(255, 255, 255, 0.2);
|
|
5088
|
-
border-radius: 4px;
|
|
5089
|
-
cursor: pointer;
|
|
5090
|
-
transition: height 0.2s ease;
|
|
5091
|
-
}
|
|
5092
|
-
|
|
5093
|
-
.uvf-progress-bar-wrapper:hover .uvf-progress-bar {
|
|
5094
|
-
height: 4px;
|
|
5095
|
-
}
|
|
5096
|
-
|
|
5097
|
-
.uvf-progress-filled {
|
|
5098
|
-
background: var(--uvf-accent-1, #8B5CF6);
|
|
5099
|
-
height: 100%;
|
|
5100
|
-
border-radius: 4px;
|
|
5101
|
-
}
|
|
5102
|
-
|
|
5103
|
-
.uvf-progress-handle {
|
|
5104
|
-
width: 12px;
|
|
5105
|
-
height: 12px;
|
|
5106
|
-
background: #fff;
|
|
5107
|
-
border-radius: 50%;
|
|
5108
|
-
position: absolute;
|
|
5109
|
-
top: 50%;
|
|
5110
|
-
transform: translateY(-50%);
|
|
5111
|
-
cursor: grab;
|
|
5112
|
-
opacity: 0;
|
|
5113
|
-
transition: opacity 0.2s ease;
|
|
5114
|
-
}
|
|
5115
|
-
|
|
5116
|
-
.uvf-progress-bar-wrapper:hover .uvf-progress-handle {
|
|
5117
|
-
opacity: 1;
|
|
5118
|
-
}
|
|
5119
|
-
|
|
5120
|
-
/* Desktop center play button */
|
|
5121
|
-
.uvf-center-play-container {
|
|
5122
|
-
position: absolute;
|
|
5123
|
-
top: 50%;
|
|
5124
|
-
left: 50%;
|
|
5125
|
-
transform: translate(-50%, -50%);
|
|
5126
|
-
z-index: 8;
|
|
5127
|
-
}
|
|
5128
|
-
|
|
5129
|
-
.uvf-center-play-btn {
|
|
5130
|
-
width: clamp(56px, 10vw, 72px);
|
|
5131
|
-
height: clamp(56px, 10vw, 72px);
|
|
5132
|
-
background: linear-gradient(135deg, var(--uvf-accent-1), var(--uvf-accent-2));
|
|
5133
|
-
border: none;
|
|
5134
|
-
border-radius: 50%;
|
|
5135
|
-
display: flex;
|
|
5136
|
-
align-items: center;
|
|
5137
|
-
justify-content: center;
|
|
5138
|
-
cursor: pointer;
|
|
5139
|
-
box-shadow: 0 4px 16px rgba(0,0,0,0.3);
|
|
5140
|
-
transition: all 0.25s ease;
|
|
5141
|
-
}
|
|
5142
|
-
|
|
5143
|
-
.uvf-center-play-btn:hover {
|
|
5144
|
-
transform: scale(1.1);
|
|
5145
|
-
box-shadow: 0 6px 20px rgba(0,0,0,0.4);
|
|
5146
|
-
}
|
|
5147
|
-
|
|
5148
|
-
.uvf-center-play-btn svg {
|
|
5149
|
-
width: clamp(24px, 4vw, 30px);
|
|
5150
|
-
height: clamp(24px, 4vw, 30px);
|
|
5151
|
-
fill: #fff;
|
|
5152
|
-
margin-left: 2px;
|
|
5153
4839
|
}
|
|
5154
4840
|
|
|
5155
4841
|
.uvf-progress-section {
|
|
@@ -7858,51 +7544,22 @@ export class WebPlayer extends BasePlayer {
|
|
|
7858
7544
|
});
|
|
7859
7545
|
settingsMenu.querySelectorAll('.speed-option').forEach(option => {
|
|
7860
7546
|
option.addEventListener('click', (e) => {
|
|
7861
|
-
e.preventDefault();
|
|
7862
|
-
e.stopPropagation();
|
|
7863
7547
|
const speed = parseFloat(e.target.dataset.speed || '1');
|
|
7864
|
-
this.updateSettingsActiveStates('speed-option', e.target);
|
|
7865
7548
|
this.setPlaybackRateFromSettings(speed);
|
|
7866
|
-
const speedLabel = speed === 1 ? 'Normal' : `${speed}x`;
|
|
7867
|
-
const accordionCurrent = option.closest('.uvf-accordion-item')?.querySelector('.uvf-accordion-current');
|
|
7868
|
-
if (accordionCurrent) {
|
|
7869
|
-
accordionCurrent.textContent = speedLabel;
|
|
7870
|
-
}
|
|
7871
|
-
this.debugLog(`Speed selected: ${speed}x`);
|
|
7872
7549
|
this.updateAccordionAfterSelection('speed');
|
|
7873
7550
|
});
|
|
7874
7551
|
});
|
|
7875
7552
|
settingsMenu.querySelectorAll('.quality-option').forEach(option => {
|
|
7876
7553
|
option.addEventListener('click', (e) => {
|
|
7877
|
-
e.preventDefault();
|
|
7878
|
-
e.stopPropagation();
|
|
7879
7554
|
const quality = e.target.dataset.quality || 'auto';
|
|
7880
|
-
this.updateSettingsActiveStates('quality-option', e.target);
|
|
7881
7555
|
this.setQualityFromSettings(quality);
|
|
7882
|
-
const qualityItem = this.availableQualities.find(q => q.value === quality);
|
|
7883
|
-
const qualityLabel = qualityItem ? qualityItem.label : 'Auto';
|
|
7884
|
-
const accordionCurrent = option.closest('.uvf-accordion-item')?.querySelector('.uvf-accordion-current');
|
|
7885
|
-
if (accordionCurrent) {
|
|
7886
|
-
accordionCurrent.textContent = qualityLabel;
|
|
7887
|
-
}
|
|
7888
|
-
this.debugLog(`Quality selected: ${quality} (${qualityLabel})`);
|
|
7889
7556
|
this.updateAccordionAfterSelection('quality');
|
|
7890
7557
|
});
|
|
7891
7558
|
});
|
|
7892
7559
|
settingsMenu.querySelectorAll('.subtitle-option').forEach(option => {
|
|
7893
7560
|
option.addEventListener('click', (e) => {
|
|
7894
|
-
e.preventDefault();
|
|
7895
|
-
e.stopPropagation();
|
|
7896
7561
|
const subtitle = e.target.dataset.subtitle || 'off';
|
|
7897
|
-
this.updateSettingsActiveStates('subtitle-option', e.target);
|
|
7898
7562
|
this.setSubtitle(subtitle);
|
|
7899
|
-
const subtitleItem = this.availableSubtitles.find(s => s.value === subtitle);
|
|
7900
|
-
const subtitleLabel = subtitleItem ? subtitleItem.label : 'Off';
|
|
7901
|
-
const accordionCurrent = option.closest('.uvf-accordion-item')?.querySelector('.uvf-accordion-current');
|
|
7902
|
-
if (accordionCurrent) {
|
|
7903
|
-
accordionCurrent.textContent = subtitleLabel;
|
|
7904
|
-
}
|
|
7905
|
-
this.debugLog(`Subtitle selected: ${subtitle} (${subtitleLabel})`);
|
|
7906
7563
|
this.updateAccordionAfterSelection('subtitles');
|
|
7907
7564
|
});
|
|
7908
7565
|
});
|
|
@@ -7935,19 +7592,10 @@ export class WebPlayer extends BasePlayer {
|
|
|
7935
7592
|
this.debugLog('Settings menu hidden via hideSettingsMenu()');
|
|
7936
7593
|
}
|
|
7937
7594
|
updateAccordionAfterSelection(section) {
|
|
7938
|
-
const settingsMenu = document.getElementById('uvf-settings-menu');
|
|
7939
|
-
if (settingsMenu) {
|
|
7940
|
-
settingsMenu.querySelectorAll('.uvf-accordion-item.expanded').forEach(item => {
|
|
7941
|
-
item.classList.remove('expanded');
|
|
7942
|
-
});
|
|
7943
|
-
}
|
|
7944
7595
|
setTimeout(() => {
|
|
7945
7596
|
this.generateAccordionMenu();
|
|
7946
7597
|
this.setupSettingsEventListeners();
|
|
7947
|
-
},
|
|
7948
|
-
setTimeout(() => {
|
|
7949
|
-
this.hideSettingsMenu();
|
|
7950
|
-
}, 150);
|
|
7598
|
+
}, 100);
|
|
7951
7599
|
}
|
|
7952
7600
|
updateSettingsActiveStates(className, activeElement) {
|
|
7953
7601
|
const settingsMenu = document.getElementById('uvf-settings-menu');
|