unified-video-framework 1.4.111 → 1.4.112
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 +1 -1
- package/packages/web/dist/WebPlayer.d.ts +0 -3
- package/packages/web/dist/WebPlayer.d.ts.map +1 -1
- package/packages/web/dist/WebPlayer.js +2 -301
- package/packages/web/dist/WebPlayer.js.map +1 -1
- package/packages/web/package.json +1 -1
- package/packages/web/src/WebPlayer.ts +2 -337
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "unified-video-framework",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.112",
|
|
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",
|
|
@@ -122,9 +122,6 @@ export declare class WebPlayer extends BasePlayer {
|
|
|
122
122
|
private scheduleHideControls;
|
|
123
123
|
private isFullscreen;
|
|
124
124
|
private setupFullscreenListeners;
|
|
125
|
-
private updateTimeTooltip;
|
|
126
|
-
private hideTimeTooltip;
|
|
127
|
-
private updateProgressTooltip;
|
|
128
125
|
private showShortcutIndicator;
|
|
129
126
|
setSettingsScrollbarStyle(mode: 'default' | 'compact' | 'overlay'): void;
|
|
130
127
|
setSettingsScrollbarConfig(options: {
|
|
@@ -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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"}
|
|
@@ -1768,150 +1768,7 @@ export class WebPlayer extends BasePlayer {
|
|
|
1768
1768
|
box-shadow: 0 0 20px rgba(255, 87, 34, 0.5);
|
|
1769
1769
|
}
|
|
1770
1770
|
|
|
1771
|
-
.uvf-progress-handle {
|
|
1772
|
-
position: absolute;
|
|
1773
|
-
width: 12px;
|
|
1774
|
-
height: 12px;
|
|
1775
|
-
background: radial-gradient(circle,
|
|
1776
|
-
rgba(255, 255, 255, 0.95) 0%,
|
|
1777
|
-
rgba(255, 255, 255, 0.9) 70%,
|
|
1778
|
-
rgba(255, 255, 255, 0.85) 100%
|
|
1779
|
-
);
|
|
1780
|
-
border: 2px solid rgba(255, 87, 34, 0.8);
|
|
1781
|
-
border-radius: 50%;
|
|
1782
|
-
top: 50%;
|
|
1783
|
-
left: 0%;
|
|
1784
|
-
transform: translate(-50%, -50%) scale(0);
|
|
1785
|
-
opacity: 0;
|
|
1786
|
-
transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
1787
|
-
box-shadow:
|
|
1788
|
-
0 0 0 0 rgba(255, 87, 34, 0.4),
|
|
1789
|
-
0 4px 12px rgba(0, 0, 0, 0.25),
|
|
1790
|
-
inset 0 1px 0 rgba(255, 255, 255, 0.4);
|
|
1791
|
-
cursor: grab;
|
|
1792
|
-
z-index: 3;
|
|
1793
|
-
pointer-events: all;
|
|
1794
|
-
backdrop-filter: blur(8px);
|
|
1795
|
-
}
|
|
1796
|
-
|
|
1797
|
-
.uvf-progress-bar-wrapper:hover .uvf-progress-handle {
|
|
1798
|
-
opacity: 1;
|
|
1799
|
-
transform: translate(-50%, -50%) scale(1);
|
|
1800
|
-
box-shadow:
|
|
1801
|
-
0 0 0 4px rgba(255, 87, 34, 0.2),
|
|
1802
|
-
0 6px 20px rgba(0, 0, 0, 0.3),
|
|
1803
|
-
inset 0 1px 0 rgba(255, 255, 255, 0.6);
|
|
1804
|
-
}
|
|
1805
|
-
|
|
1806
|
-
.uvf-progress-handle:hover {
|
|
1807
|
-
transform: translate(-50%, -50%) scale(1.25);
|
|
1808
|
-
background: radial-gradient(circle,
|
|
1809
|
-
rgba(255, 255, 255, 1) 0%,
|
|
1810
|
-
rgba(255, 255, 255, 0.95) 70%,
|
|
1811
|
-
rgba(255, 255, 255, 0.9) 100%
|
|
1812
|
-
);
|
|
1813
|
-
border-color: rgba(255, 87, 34, 1);
|
|
1814
|
-
box-shadow:
|
|
1815
|
-
0 0 0 6px rgba(255, 87, 34, 0.3),
|
|
1816
|
-
0 8px 25px rgba(255, 87, 34, 0.4),
|
|
1817
|
-
inset 0 1px 0 rgba(255, 255, 255, 0.8);
|
|
1818
|
-
}
|
|
1819
|
-
|
|
1820
|
-
.uvf-progress-handle:active,
|
|
1821
|
-
.uvf-progress-handle.dragging {
|
|
1822
|
-
cursor: grabbing;
|
|
1823
|
-
transform: translate(-50%, -50%) scale(1.4);
|
|
1824
|
-
background: radial-gradient(circle,
|
|
1825
|
-
rgba(255, 255, 255, 1) 0%,
|
|
1826
|
-
rgba(255, 255, 255, 0.98) 50%,
|
|
1827
|
-
rgba(255, 255, 255, 0.95) 100%
|
|
1828
|
-
);
|
|
1829
|
-
border-color: #ff4500;
|
|
1830
|
-
box-shadow:
|
|
1831
|
-
0 0 0 8px rgba(255, 87, 34, 0.4),
|
|
1832
|
-
0 12px 35px rgba(255, 69, 0, 0.5),
|
|
1833
|
-
inset 0 2px 0 rgba(255, 255, 255, 0.9);
|
|
1834
|
-
transition: all 0.2s cubic-bezier(0.25, 0.8, 0.25, 1);
|
|
1835
|
-
}
|
|
1836
|
-
|
|
1837
|
-
.uvf-time-tooltip {
|
|
1838
|
-
position: absolute;
|
|
1839
|
-
bottom: 32px;
|
|
1840
|
-
left: 0;
|
|
1841
|
-
transform: translateX(-50%) translateY(8px) scale(0.9);
|
|
1842
|
-
background: linear-gradient(135deg,
|
|
1843
|
-
rgba(0, 0, 0, 0.95) 0%,
|
|
1844
|
-
rgba(20, 20, 20, 0.92) 50%,
|
|
1845
|
-
rgba(0, 0, 0, 0.98) 100%
|
|
1846
|
-
);
|
|
1847
|
-
color: #ffffff;
|
|
1848
|
-
padding: 10px 16px;
|
|
1849
|
-
border-radius: 12px;
|
|
1850
|
-
font-size: 13px;
|
|
1851
|
-
font-weight: 600;
|
|
1852
|
-
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
1853
|
-
letter-spacing: 0.5px;
|
|
1854
|
-
white-space: nowrap;
|
|
1855
|
-
opacity: 0;
|
|
1856
|
-
transition: all 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
1857
|
-
pointer-events: none;
|
|
1858
|
-
z-index: 4;
|
|
1859
|
-
box-shadow:
|
|
1860
|
-
0 0 0 1px rgba(255, 255, 255, 0.05),
|
|
1861
|
-
0 8px 32px rgba(0, 0, 0, 0.6),
|
|
1862
|
-
0 2px 8px rgba(0, 0, 0, 0.3),
|
|
1863
|
-
inset 0 1px 0 rgba(255, 255, 255, 0.1);
|
|
1864
|
-
backdrop-filter: blur(20px) saturate(1.5);
|
|
1865
|
-
border: 1px solid rgba(255, 255, 255, 0.08);
|
|
1866
|
-
min-width: 52px;
|
|
1867
|
-
text-align: center;
|
|
1868
|
-
}
|
|
1869
1771
|
|
|
1870
|
-
/* Glass morphism tooltip arrow with multiple layers */
|
|
1871
|
-
.uvf-time-tooltip::after {
|
|
1872
|
-
content: '';
|
|
1873
|
-
position: absolute;
|
|
1874
|
-
bottom: -10px;
|
|
1875
|
-
left: 50%;
|
|
1876
|
-
transform: translateX(-50%);
|
|
1877
|
-
width: 0;
|
|
1878
|
-
height: 0;
|
|
1879
|
-
border-left: 10px solid transparent;
|
|
1880
|
-
border-right: 10px solid transparent;
|
|
1881
|
-
border-top: 10px solid rgba(0, 0, 0, 0.95);
|
|
1882
|
-
filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
|
|
1883
|
-
}
|
|
1884
|
-
|
|
1885
|
-
.uvf-time-tooltip::before {
|
|
1886
|
-
content: '';
|
|
1887
|
-
position: absolute;
|
|
1888
|
-
bottom: -11px;
|
|
1889
|
-
left: 50%;
|
|
1890
|
-
transform: translateX(-50%);
|
|
1891
|
-
width: 0;
|
|
1892
|
-
height: 0;
|
|
1893
|
-
border-left: 11px solid transparent;
|
|
1894
|
-
border-right: 11px solid transparent;
|
|
1895
|
-
border-top: 11px solid rgba(255, 255, 255, 0.08);
|
|
1896
|
-
z-index: -1;
|
|
1897
|
-
}
|
|
1898
|
-
|
|
1899
|
-
/* Enhanced tooltip animations - Only show via JavaScript, not CSS hover */
|
|
1900
|
-
.uvf-time-tooltip.show {
|
|
1901
|
-
opacity: 1 !important;
|
|
1902
|
-
transform: translateX(-50%) translateY(-2px) scale(1) !important;
|
|
1903
|
-
}
|
|
1904
|
-
|
|
1905
|
-
/* Tooltip pulse animation on first hover */
|
|
1906
|
-
@keyframes tooltipPulse {
|
|
1907
|
-
0% { transform: translateX(-50%) translateY(-2px) scale(1); }
|
|
1908
|
-
50% { transform: translateX(-50%) translateY(-4px) scale(1.05); }
|
|
1909
|
-
100% { transform: translateX(-50%) translateY(-2px) scale(1); }
|
|
1910
|
-
}
|
|
1911
|
-
|
|
1912
|
-
.uvf-time-tooltip.pulse {
|
|
1913
|
-
animation: tooltipPulse 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) once;
|
|
1914
|
-
}
|
|
1915
1772
|
|
|
1916
1773
|
/* Mobile responsive design with enhanced touch targets */
|
|
1917
1774
|
@media (max-width: 768px) {
|
|
@@ -1927,51 +1784,8 @@ export class WebPlayer extends BasePlayer {
|
|
|
1927
1784
|
height: 5px;
|
|
1928
1785
|
}
|
|
1929
1786
|
|
|
1930
|
-
.uvf-progress-handle {
|
|
1931
|
-
width: 18px;
|
|
1932
|
-
height: 18px;
|
|
1933
|
-
opacity: 0.8; /* More visible on mobile for discoverability */
|
|
1934
|
-
border-width: 3px;
|
|
1935
|
-
box-shadow:
|
|
1936
|
-
0 0 0 2px rgba(255, 87, 34, 0.3),
|
|
1937
|
-
0 6px 16px rgba(0, 0, 0, 0.3),
|
|
1938
|
-
inset 0 1px 0 rgba(255, 255, 255, 0.5);
|
|
1939
|
-
}
|
|
1940
|
-
|
|
1941
|
-
.uvf-progress-bar-wrapper:hover .uvf-progress-handle,
|
|
1942
|
-
.uvf-progress-handle:active {
|
|
1943
|
-
opacity: 1;
|
|
1944
|
-
transform: translate(-50%, -50%) scale(1);
|
|
1945
|
-
}
|
|
1946
|
-
|
|
1947
|
-
.uvf-progress-handle:hover {
|
|
1948
|
-
transform: translate(-50%, -50%) scale(1.15);
|
|
1949
|
-
box-shadow:
|
|
1950
|
-
0 0 0 4px rgba(255, 87, 34, 0.4),
|
|
1951
|
-
0 8px 20px rgba(255, 87, 34, 0.35),
|
|
1952
|
-
inset 0 2px 0 rgba(255, 255, 255, 0.7);
|
|
1953
|
-
}
|
|
1954
|
-
|
|
1955
|
-
.uvf-progress-handle:active,
|
|
1956
|
-
.uvf-progress-handle.dragging {
|
|
1957
|
-
transform: translate(-50%, -50%) scale(1.3);
|
|
1958
|
-
box-shadow:
|
|
1959
|
-
0 0 0 6px rgba(255, 87, 34, 0.5),
|
|
1960
|
-
0 10px 25px rgba(255, 69, 0, 0.4),
|
|
1961
|
-
inset 0 2px 0 rgba(255, 255, 255, 0.8);
|
|
1962
|
-
}
|
|
1963
1787
|
}
|
|
1964
1788
|
|
|
1965
|
-
/* High DPI displays optimization */
|
|
1966
|
-
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
|
|
1967
|
-
.uvf-progress-handle {
|
|
1968
|
-
background: radial-gradient(circle,
|
|
1969
|
-
rgba(255, 255, 255, 0.98) 0%,
|
|
1970
|
-
rgba(255, 255, 255, 0.92) 70%,
|
|
1971
|
-
rgba(255, 255, 255, 0.88) 100%
|
|
1972
|
-
);
|
|
1973
|
-
}
|
|
1974
|
-
}
|
|
1975
1789
|
/* Controls Row */
|
|
1976
1790
|
.uvf-controls-row {
|
|
1977
1791
|
display: flex;
|
|
@@ -3853,15 +3667,7 @@ export class WebPlayer extends BasePlayer {
|
|
|
3853
3667
|
<div class="uvf-progress-bar">
|
|
3854
3668
|
<div class="uvf-progress-buffered" id="uvf-progress-buffered"></div>
|
|
3855
3669
|
<div class="uvf-progress-filled" id="uvf-progress-filled"></div>
|
|
3856
|
-
<div class="uvf-progress-handle" id="uvf-progress-handle"
|
|
3857
|
-
role="slider"
|
|
3858
|
-
tabindex="0"
|
|
3859
|
-
aria-label="Seek"
|
|
3860
|
-
aria-valuemin="0"
|
|
3861
|
-
aria-valuemax="100"
|
|
3862
|
-
aria-valuenow="0"></div>
|
|
3863
3670
|
</div>
|
|
3864
|
-
<div class="uvf-time-tooltip" id="uvf-time-tooltip">00:00</div>
|
|
3865
3671
|
`;
|
|
3866
3672
|
progressSection.appendChild(progressBar);
|
|
3867
3673
|
const controlsRow = document.createElement('div');
|
|
@@ -4075,69 +3881,19 @@ export class WebPlayer extends BasePlayer {
|
|
|
4075
3881
|
e.stopPropagation();
|
|
4076
3882
|
this.handleVolumeChange(e);
|
|
4077
3883
|
});
|
|
4078
|
-
const progressHandle = document.getElementById('uvf-progress-handle');
|
|
4079
|
-
const timeTooltip = document.getElementById('uvf-time-tooltip');
|
|
4080
3884
|
progressBar?.addEventListener('click', (e) => {
|
|
4081
|
-
|
|
4082
|
-
this.handleProgressChange(e);
|
|
4083
|
-
}
|
|
4084
|
-
});
|
|
4085
|
-
progressHandle?.addEventListener('mousedown', (e) => {
|
|
4086
|
-
e.stopPropagation();
|
|
4087
|
-
this.isDragging = true;
|
|
4088
|
-
progressHandle.classList.add('dragging');
|
|
4089
|
-
});
|
|
4090
|
-
progressHandle?.addEventListener('keydown', (e) => {
|
|
4091
|
-
if (!this.video)
|
|
4092
|
-
return;
|
|
4093
|
-
const step = 5;
|
|
4094
|
-
let handled = false;
|
|
4095
|
-
switch (e.key) {
|
|
4096
|
-
case 'ArrowLeft':
|
|
4097
|
-
case 'ArrowDown':
|
|
4098
|
-
this.seek(Math.max(0, this.video.currentTime - step));
|
|
4099
|
-
handled = true;
|
|
4100
|
-
break;
|
|
4101
|
-
case 'ArrowRight':
|
|
4102
|
-
case 'ArrowUp':
|
|
4103
|
-
this.seek(Math.min(this.video.duration, this.video.currentTime + step));
|
|
4104
|
-
handled = true;
|
|
4105
|
-
break;
|
|
4106
|
-
}
|
|
4107
|
-
if (handled) {
|
|
4108
|
-
e.preventDefault();
|
|
4109
|
-
e.stopPropagation();
|
|
4110
|
-
}
|
|
3885
|
+
this.handleProgressChange(e);
|
|
4111
3886
|
});
|
|
4112
3887
|
progressBar?.addEventListener('mousedown', (e) => {
|
|
4113
|
-
if (e.target === progressHandle)
|
|
4114
|
-
return;
|
|
4115
3888
|
this.isDragging = true;
|
|
4116
3889
|
this.handleProgressChange(e);
|
|
4117
3890
|
});
|
|
4118
|
-
progressBar?.addEventListener('mouseenter', () => {
|
|
4119
|
-
const timeTooltip = document.getElementById('uvf-time-tooltip');
|
|
4120
|
-
if (timeTooltip) {
|
|
4121
|
-
timeTooltip.classList.add('show');
|
|
4122
|
-
}
|
|
4123
|
-
});
|
|
4124
|
-
progressBar?.addEventListener('mouseleave', () => {
|
|
4125
|
-
if (!this.isDragging) {
|
|
4126
|
-
this.hideTimeTooltip();
|
|
4127
|
-
}
|
|
4128
|
-
});
|
|
4129
|
-
progressBar?.addEventListener('mousemove', (e) => {
|
|
4130
|
-
if (!this.isDragging) {
|
|
4131
|
-
this.updateTimeTooltip(e);
|
|
4132
|
-
}
|
|
4133
|
-
});
|
|
4134
3891
|
document.addEventListener('mousemove', (e) => {
|
|
4135
3892
|
if (this.isVolumeSliding) {
|
|
4136
3893
|
this.handleVolumeChange(e);
|
|
4137
3894
|
}
|
|
4138
3895
|
if (this.isDragging && progressBar) {
|
|
4139
3896
|
this.handleProgressChange(e);
|
|
4140
|
-
this.updateProgressTooltip(e);
|
|
4141
3897
|
}
|
|
4142
3898
|
});
|
|
4143
3899
|
document.addEventListener('mouseup', () => {
|
|
@@ -4151,18 +3907,13 @@ export class WebPlayer extends BasePlayer {
|
|
|
4151
3907
|
}
|
|
4152
3908
|
if (this.isDragging) {
|
|
4153
3909
|
this.isDragging = false;
|
|
4154
|
-
progressHandle?.classList.remove('dragging');
|
|
4155
|
-
this.hideTimeTooltip();
|
|
4156
3910
|
}
|
|
4157
3911
|
});
|
|
4158
3912
|
this.video.addEventListener('timeupdate', () => {
|
|
4159
3913
|
const progressFilled = document.getElementById('uvf-progress-filled');
|
|
4160
|
-
|
|
4161
|
-
if (this.video && progressFilled && progressHandle) {
|
|
3914
|
+
if (this.video && progressFilled) {
|
|
4162
3915
|
const percent = (this.video.currentTime / this.video.duration) * 100;
|
|
4163
3916
|
progressFilled.style.width = percent + '%';
|
|
4164
|
-
progressHandle.style.left = percent + '%';
|
|
4165
|
-
progressHandle.setAttribute('aria-valuenow', percent.toString());
|
|
4166
3917
|
}
|
|
4167
3918
|
this.updateTimeDisplay();
|
|
4168
3919
|
});
|
|
@@ -4791,56 +4542,6 @@ export class WebPlayer extends BasePlayer {
|
|
|
4791
4542
|
this.playerWrapper.addEventListener('touchmove', handleTouchMovement, { passive: true });
|
|
4792
4543
|
}
|
|
4793
4544
|
}
|
|
4794
|
-
updateTimeTooltip(e) {
|
|
4795
|
-
const wrapper = document.getElementById('uvf-progress-bar');
|
|
4796
|
-
const innerBar = wrapper?.querySelector('.uvf-progress-bar');
|
|
4797
|
-
const timeTooltip = document.getElementById('uvf-time-tooltip');
|
|
4798
|
-
if (!wrapper || !innerBar || !timeTooltip || !this.video)
|
|
4799
|
-
return;
|
|
4800
|
-
const wrapperRect = wrapper.getBoundingClientRect();
|
|
4801
|
-
const innerRect = innerBar.getBoundingClientRect();
|
|
4802
|
-
const localX = Math.max(0, Math.min(e.clientX - innerRect.left, innerRect.width));
|
|
4803
|
-
const percent = (localX / innerRect.width) * 100;
|
|
4804
|
-
const time = (percent / 100) * this.video.duration;
|
|
4805
|
-
const leftPx = (innerRect.left - wrapperRect.left) + localX;
|
|
4806
|
-
timeTooltip.textContent = this.formatTime(time);
|
|
4807
|
-
timeTooltip.style.left = `${leftPx}px`;
|
|
4808
|
-
timeTooltip.classList.add('show');
|
|
4809
|
-
if (!timeTooltip.classList.contains('pulse') && timeTooltip.classList.contains('show')) {
|
|
4810
|
-
timeTooltip.classList.add('pulse');
|
|
4811
|
-
setTimeout(() => {
|
|
4812
|
-
timeTooltip.classList.remove('pulse');
|
|
4813
|
-
}, 600);
|
|
4814
|
-
}
|
|
4815
|
-
}
|
|
4816
|
-
hideTimeTooltip() {
|
|
4817
|
-
const timeTooltip = document.getElementById('uvf-time-tooltip');
|
|
4818
|
-
if (timeTooltip) {
|
|
4819
|
-
timeTooltip.classList.remove('show');
|
|
4820
|
-
timeTooltip.style.removeProperty('opacity');
|
|
4821
|
-
}
|
|
4822
|
-
}
|
|
4823
|
-
updateProgressTooltip(e) {
|
|
4824
|
-
const wrapper = document.getElementById('uvf-progress-bar');
|
|
4825
|
-
const innerBar = wrapper?.querySelector('.uvf-progress-bar');
|
|
4826
|
-
const timeTooltip = document.getElementById('uvf-time-tooltip');
|
|
4827
|
-
const progressHandle = document.getElementById('uvf-progress-handle');
|
|
4828
|
-
if (!wrapper || !innerBar || !timeTooltip || !this.video)
|
|
4829
|
-
return;
|
|
4830
|
-
const wrapperRect = wrapper.getBoundingClientRect();
|
|
4831
|
-
const innerRect = innerBar.getBoundingClientRect();
|
|
4832
|
-
const localX = Math.max(0, Math.min(e.clientX - innerRect.left, innerRect.width));
|
|
4833
|
-
const percent = (localX / innerRect.width) * 100;
|
|
4834
|
-
const time = (percent / 100) * this.video.duration;
|
|
4835
|
-
const leftPx = (innerRect.left - wrapperRect.left) + localX;
|
|
4836
|
-
timeTooltip.textContent = this.formatTime(time);
|
|
4837
|
-
timeTooltip.style.left = `${leftPx}px`;
|
|
4838
|
-
timeTooltip.classList.add('show');
|
|
4839
|
-
if (progressHandle && this.isDragging) {
|
|
4840
|
-
progressHandle.style.transform = 'translate(-50%, -50%) scale(1.4)';
|
|
4841
|
-
progressHandle.classList.add('dragging');
|
|
4842
|
-
}
|
|
4843
|
-
}
|
|
4844
4545
|
showShortcutIndicator(text) {
|
|
4845
4546
|
const el = document.getElementById('uvf-shortcut-indicator');
|
|
4846
4547
|
this.debugLog('showShortcutIndicator called with:', text, 'element found:', !!el);
|