vidply 1.0.33 → 1.0.35
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/dist/dev/{vidply.HLSRenderer-LIFBU6UD.js → vidply.HLSRenderer-YGWCAICA.js} +3 -3
- package/dist/dev/{vidply.HTML5Renderer-YWMVYWFS.js → vidply.HTML5Renderer-PMNFHAKW.js} +3 -3
- package/dist/dev/{vidply.SoundCloudRenderer-CD7VJKNS.js → vidply.SoundCloudRenderer-HCMKXHSX.js} +2 -4
- package/dist/dev/vidply.SoundCloudRenderer-HCMKXHSX.js.map +7 -0
- package/dist/dev/{vidply.TranscriptManager-R7NJRU7E.js → vidply.TranscriptManager-EIIN5YOF.js} +3 -3
- package/dist/dev/{vidply.VimeoRenderer-VPH4RNES.js → vidply.VimeoRenderer-SLEBCZTT.js} +2 -3
- package/dist/dev/vidply.VimeoRenderer-SLEBCZTT.js.map +7 -0
- package/dist/dev/{vidply.YouTubeRenderer-6MGKEFTZ.js → vidply.YouTubeRenderer-E6F4UGVF.js} +2 -3
- package/dist/dev/vidply.YouTubeRenderer-E6F4UGVF.js.map +7 -0
- package/dist/dev/{vidply.chunk-PMRKJBGH.js → vidply.chunk-AXXU22HR.js} +92 -15
- package/dist/dev/{vidply.chunk-PMRKJBGH.js.map → vidply.chunk-AXXU22HR.js.map} +2 -2
- package/dist/dev/{vidply.chunk-UVO24MXU.js → vidply.chunk-IIN4G4UQ.js} +2 -2
- package/dist/dev/{vidply.de-CEGBLV67.js → vidply.de-YBEYEXBL.js} +2 -2
- package/dist/dev/{vidply.es-2QCQKZ4U.js → vidply.es-QA4YSA5S.js} +2 -2
- package/dist/dev/vidply.esm.js +56 -68
- package/dist/dev/vidply.esm.js.map +2 -2
- package/dist/dev/{vidply.fr-FJAZRL4L.js → vidply.fr-LAM3XJZI.js} +2 -2
- package/dist/dev/{vidply.ja-2XQOW53T.js → vidply.ja-FTBFZD66.js} +2 -2
- package/dist/legacy/vidply.js +142 -74
- package/dist/legacy/vidply.js.map +3 -3
- package/dist/legacy/vidply.min.js +2 -2
- package/dist/legacy/vidply.min.meta.json +20 -20
- package/dist/prod/{vidply.HLSRenderer-ESR6NAMI.min.js → vidply.HLSRenderer-D2KTBEEI.min.js} +2 -2
- package/dist/prod/{vidply.HTML5Renderer-6ROXQSQY.min.js → vidply.HTML5Renderer-ZSV6PDOH.min.js} +2 -2
- package/dist/prod/vidply.SoundCloudRenderer-D2FNOEG6.min.js +6 -0
- package/dist/prod/{vidply.TranscriptManager-B65LKXGG.min.js → vidply.TranscriptManager-VXCTCJ7X.min.js} +2 -2
- package/dist/prod/vidply.VimeoRenderer-QELFZVDU.min.js +6 -0
- package/dist/prod/vidply.YouTubeRenderer-ZL6YUHTF.min.js +6 -0
- package/dist/prod/{vidply.chunk-7HVHEUHH.min.js → vidply.chunk-SQVOYVKH.min.js} +1 -1
- package/dist/prod/{vidply.chunk-IQKD4GUB.min.js → vidply.chunk-Z6BHMOGK.min.js} +2 -2
- package/dist/prod/{vidply.de-IHKC573T.min.js → vidply.de-WCUZUF3T.min.js} +1 -1
- package/dist/prod/{vidply.es-3IJCQLJ7.min.js → vidply.es-54CIIDMO.min.js} +1 -1
- package/dist/prod/vidply.esm.min.js +4 -4
- package/dist/prod/{vidply.fr-NC4VEAPH.min.js → vidply.fr-7FYGFFK2.min.js} +1 -1
- package/dist/prod/{vidply.ja-4ZC6ZQLV.min.js → vidply.ja-E4UTAURP.min.js} +1 -1
- package/dist/vidply.css +219 -109
- package/dist/vidply.esm.min.meta.json +50 -50
- package/dist/vidply.min.css +2 -2
- package/package.json +3 -3
- package/src/controls/ControlBar.js +3 -0
- package/src/controls/KeyboardManager.js +19 -0
- package/src/core/Player.js +1 -64
- package/src/core/SignLanguageManager.js +18 -4
- package/src/features/PlaylistManager.js +31 -19
- package/src/index.js +3 -1
- package/src/renderers/SoundCloudRenderer.js +0 -2
- package/src/renderers/VimeoRenderer.js +0 -1
- package/src/renderers/YouTubeRenderer.js +0 -1
- package/src/styles/vidply.css +218 -108
- package/src/utils/DraggableResizable.js +123 -12
- package/dist/dev/vidply.SoundCloudRenderer-CD7VJKNS.js.map +0 -7
- package/dist/dev/vidply.VimeoRenderer-VPH4RNES.js.map +0 -7
- package/dist/dev/vidply.YouTubeRenderer-6MGKEFTZ.js.map +0 -7
- package/dist/prod/vidply.SoundCloudRenderer-MOR2CUFH.min.js +0 -6
- package/dist/prod/vidply.VimeoRenderer-3HBMM2WR.min.js +0 -6
- package/dist/prod/vidply.YouTubeRenderer-MFC2GMAC.min.js +0 -6
- /package/dist/dev/{vidply.HLSRenderer-LIFBU6UD.js.map → vidply.HLSRenderer-YGWCAICA.js.map} +0 -0
- /package/dist/dev/{vidply.HTML5Renderer-YWMVYWFS.js.map → vidply.HTML5Renderer-PMNFHAKW.js.map} +0 -0
- /package/dist/dev/{vidply.TranscriptManager-R7NJRU7E.js.map → vidply.TranscriptManager-EIIN5YOF.js.map} +0 -0
- /package/dist/dev/{vidply.chunk-UVO24MXU.js.map → vidply.chunk-IIN4G4UQ.js.map} +0 -0
- /package/dist/dev/{vidply.de-CEGBLV67.js.map → vidply.de-YBEYEXBL.js.map} +0 -0
- /package/dist/dev/{vidply.es-2QCQKZ4U.js.map → vidply.es-QA4YSA5S.js.map} +0 -0
- /package/dist/dev/{vidply.fr-FJAZRL4L.js.map → vidply.fr-LAM3XJZI.js.map} +0 -0
- /package/dist/dev/{vidply.ja-2XQOW53T.js.map → vidply.ja-FTBFZD66.js.map} +0 -0
|
@@ -972,25 +972,9 @@ export class PlaylistManager {
|
|
|
972
972
|
return;
|
|
973
973
|
}
|
|
974
974
|
|
|
975
|
-
//
|
|
976
|
-
//
|
|
977
|
-
|
|
978
|
-
this.trackArtworkElement = DOMUtils.createElement('div', {
|
|
979
|
-
className: 'vidply-track-artwork',
|
|
980
|
-
attributes: {
|
|
981
|
-
'aria-hidden': 'true'
|
|
982
|
-
}
|
|
983
|
-
});
|
|
984
|
-
this.trackArtworkElement.style.display = 'none';
|
|
985
|
-
|
|
986
|
-
// Insert before video wrapper
|
|
987
|
-
const videoWrapper = this.container.querySelector('.vidply-video-wrapper');
|
|
988
|
-
if (videoWrapper) {
|
|
989
|
-
this.container.insertBefore(this.trackArtworkElement, videoWrapper);
|
|
990
|
-
} else {
|
|
991
|
-
this.container.appendChild(this.trackArtworkElement);
|
|
992
|
-
}
|
|
993
|
-
}
|
|
975
|
+
// Track artwork element (shows album art/poster for audio tracks).
|
|
976
|
+
// Important: in mixed playlists the player may start as <video> and later recreate to <audio>,
|
|
977
|
+
// so we create this lazily in `updateTrackArtwork()` when we actually have an audio element.
|
|
994
978
|
|
|
995
979
|
// Create track info element (shows current track)
|
|
996
980
|
this.trackInfoElement = DOMUtils.createElement('div', {
|
|
@@ -1089,6 +1073,34 @@ export class PlaylistManager {
|
|
|
1089
1073
|
* Update track artwork display (for audio playlists)
|
|
1090
1074
|
*/
|
|
1091
1075
|
updateTrackArtwork(track) {
|
|
1076
|
+
// Only show artwork for audio players.
|
|
1077
|
+
// In mixed playlists we may recreate from <video> -> <audio> later, so ensure the element exists lazily.
|
|
1078
|
+
if (this.player?.element?.tagName !== 'AUDIO') {
|
|
1079
|
+
if (this.trackArtworkElement) {
|
|
1080
|
+
this.trackArtworkElement.style.display = 'none';
|
|
1081
|
+
}
|
|
1082
|
+
return;
|
|
1083
|
+
}
|
|
1084
|
+
|
|
1085
|
+
// Lazily create artwork element once we have an audio element/container.
|
|
1086
|
+
if (!this.trackArtworkElement && this.container) {
|
|
1087
|
+
this.trackArtworkElement = DOMUtils.createElement('div', {
|
|
1088
|
+
className: 'vidply-track-artwork',
|
|
1089
|
+
attributes: {
|
|
1090
|
+
'aria-hidden': 'true'
|
|
1091
|
+
}
|
|
1092
|
+
});
|
|
1093
|
+
this.trackArtworkElement.style.display = 'none';
|
|
1094
|
+
|
|
1095
|
+
// Insert before video wrapper (if present) for consistent layout.
|
|
1096
|
+
const videoWrapper = this.container.querySelector('.vidply-video-wrapper');
|
|
1097
|
+
if (videoWrapper) {
|
|
1098
|
+
this.container.insertBefore(this.trackArtworkElement, videoWrapper);
|
|
1099
|
+
} else {
|
|
1100
|
+
this.container.appendChild(this.trackArtworkElement);
|
|
1101
|
+
}
|
|
1102
|
+
}
|
|
1103
|
+
|
|
1092
1104
|
if (!this.trackArtworkElement) return;
|
|
1093
1105
|
|
|
1094
1106
|
// If track has a poster/artwork, show it
|
package/src/index.js
CHANGED
|
@@ -57,7 +57,9 @@ function parseDataAttributes(dataset) {
|
|
|
57
57
|
'keyboard': 'keyboard',
|
|
58
58
|
'responsive': 'responsive',
|
|
59
59
|
'pipButton': 'pipButton',
|
|
60
|
-
'fullscreenButton': 'fullscreenButton'
|
|
60
|
+
'fullscreenButton': 'fullscreenButton',
|
|
61
|
+
|
|
62
|
+
// Layout
|
|
61
63
|
};
|
|
62
64
|
|
|
63
65
|
// Parse each data attribute
|
|
@@ -125,10 +125,8 @@ export class SoundCloudRenderer {
|
|
|
125
125
|
// Use different aspect ratio for playlists vs single tracks
|
|
126
126
|
// Playlists need more height to show the track list
|
|
127
127
|
if (this.isPlaylist()) {
|
|
128
|
-
this.iframe.style.aspectRatio = '16 / 9'; // More height for playlist
|
|
129
128
|
this.iframe.classList.add('vidply-soundcloud-iframe', 'vidply-soundcloud-playlist');
|
|
130
129
|
} else {
|
|
131
|
-
this.iframe.style.aspectRatio = '16 / 3'; // Banner-like for single track
|
|
132
130
|
this.iframe.classList.add('vidply-soundcloud-iframe');
|
|
133
131
|
}
|
|
134
132
|
this.iframe.style.maxHeight = '100%';
|
|
@@ -70,7 +70,6 @@ export class VimeoRenderer {
|
|
|
70
70
|
this.iframe = document.createElement('div');
|
|
71
71
|
this.iframe.id = `vimeo-player-${Math.random().toString(36).substr(2, 9)}`;
|
|
72
72
|
this.iframe.style.width = '100%';
|
|
73
|
-
this.iframe.style.aspectRatio = '16 / 9';
|
|
74
73
|
this.iframe.style.maxHeight = '100%';
|
|
75
74
|
|
|
76
75
|
this.player.element.parentNode.insertBefore(this.iframe, this.player.element);
|
|
@@ -86,7 +86,6 @@ export class YouTubeRenderer {
|
|
|
86
86
|
this.iframe = document.createElement('div');
|
|
87
87
|
this.iframe.id = `youtube-player-${Math.random().toString(36).substr(2, 9)}`;
|
|
88
88
|
this.iframe.style.width = '100%';
|
|
89
|
-
this.iframe.style.aspectRatio = '16 / 9';
|
|
90
89
|
this.iframe.style.maxHeight = '100%';
|
|
91
90
|
|
|
92
91
|
this.player.element.parentNode.insertBefore(this.iframe, this.player.element);
|