vidply 1.0.27 → 1.0.29
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.TranscriptManager-GZKY44ON.js → vidply.TranscriptManager-T677KF4N.js} +5 -6
- package/dist/dev/vidply.TranscriptManager-T677KF4N.js.map +7 -0
- package/dist/dev/{vidply.chunk-UH5MTGKF.js → vidply.chunk-GS2JX5RQ.js} +149 -100
- package/dist/dev/vidply.chunk-GS2JX5RQ.js.map +7 -0
- package/dist/dev/{vidply.de-THBIMP4S.js → vidply.de-SNL6AJ4D.js} +10 -2
- package/dist/dev/{vidply.de-THBIMP4S.js.map → vidply.de-SNL6AJ4D.js.map} +2 -2
- package/dist/dev/{vidply.es-6VWDNNNL.js → vidply.es-2QCQKZ4U.js} +10 -2
- package/dist/dev/{vidply.es-6VWDNNNL.js.map → vidply.es-2QCQKZ4U.js.map} +2 -2
- package/dist/dev/vidply.esm.js +1681 -317
- package/dist/dev/vidply.esm.js.map +4 -4
- package/dist/dev/{vidply.fr-WHTWCHWT.js → vidply.fr-FJAZRL4L.js} +10 -2
- package/dist/dev/{vidply.fr-WHTWCHWT.js.map → vidply.fr-FJAZRL4L.js.map} +2 -2
- package/dist/dev/{vidply.ja-BFQNPOFI.js → vidply.ja-2XQOW53T.js} +10 -2
- package/dist/dev/vidply.ja-2XQOW53T.js.map +7 -0
- package/dist/legacy/vidply.js +1829 -361
- package/dist/legacy/vidply.js.map +4 -4
- package/dist/legacy/vidply.min.js +1 -1
- package/dist/legacy/vidply.min.meta.json +103 -35
- package/dist/prod/vidply.TranscriptManager-WFZSW6NR.min.js +6 -0
- package/dist/prod/vidply.chunk-LGTJRPUL.min.js +6 -0
- package/dist/prod/vidply.de-FR3XX54P.min.js +6 -0
- package/dist/prod/vidply.es-3IJCQLJ7.min.js +6 -0
- package/dist/prod/vidply.esm.min.js +8 -8
- package/dist/prod/vidply.fr-NC4VEAPH.min.js +6 -0
- package/dist/prod/vidply.ja-4ZC6ZQLV.min.js +6 -0
- package/dist/vidply.esm.min.meta.json +115 -47
- package/package.json +1 -1
- package/src/controls/ControlBar.js +3 -7
- package/src/controls/TranscriptManager.js +8 -8
- package/src/core/AudioDescriptionManager.js +701 -0
- package/src/core/Player.js +4776 -4921
- package/src/core/SignLanguageManager.js +1134 -0
- package/src/features/PlaylistManager.js +12 -12
- package/src/i18n/languages/de.js +9 -1
- package/src/i18n/languages/en.js +9 -1
- package/src/i18n/languages/es.js +9 -1
- package/src/i18n/languages/fr.js +9 -1
- package/src/i18n/languages/ja.js +9 -1
- package/src/utils/DOMUtils.js +153 -114
- package/src/utils/MenuFactory.js +374 -0
- package/dist/dev/vidply.TranscriptManager-GZKY44ON.js.map +0 -7
- package/dist/dev/vidply.chunk-UH5MTGKF.js.map +0 -7
- package/dist/dev/vidply.ja-BFQNPOFI.js.map +0 -7
- package/dist/prod/vidply.TranscriptManager-UZ6DUFB6.min.js +0 -6
- package/dist/prod/vidply.chunk-MBUR3U5L.min.js +0 -6
- package/dist/prod/vidply.de-SWFW4HYT.min.js +0 -6
- package/dist/prod/vidply.es-7BJ2DJAY.min.js +0 -6
- package/dist/prod/vidply.fr-DPVR5DFY.min.js +0 -6
- package/dist/prod/vidply.ja-PEBVWKVH.min.js +0 -6
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Universal, Accessible Video Player
|
|
3
|
+
* (c) 2025 Matthias Peltzer
|
|
4
|
+
* Released under GPL-2.0-or-later License
|
|
5
|
+
*/
|
|
6
|
+
var e={player:{label:"Lecteur vidéo",play:"Lecture",pause:"Pause",stop:"Arrêt",restart:"Redémarrer du début",rewind:"Reculer",forward:"Avancer",rewindSeconds:"Reculer de {seconds} secondes",forwardSeconds:"Avancer de {seconds} secondes",previous:"Piste précédente",next:"Piste suivante",playlist:"Basculer la liste de lecture",volume:"Volume",mute:"Muet",unmute:"Activer le son",fullscreen:"Plein écran",exitFullscreen:"Quitter le plein écran",captions:"Sous-titres",chapters:"Chapitres",quality:"Qualité",captionStyling:"Style des sous-titres",transcript:"Activer/désactiver la transcription",audioDescription:"Audiodescription",signLanguage:"Vidéo en langue des signes",settings:"Paramètres",speed:"Vitesse de lecture",pip:"Image dans l'image",currentTime:"Temps actuel",duration:"Durée",progress:"Progression",seekForward:"Avancer de {seconds} secondes",seekBackward:"Reculer de {seconds} secondes",volumeUp:"Augmenter le volume",volumeDown:"Diminuer le volume",loading:"Chargement...",loadingChapters:"Chargement des chapitres...",error:"Erreur de chargement",buffering:"Mise en mémoire tampon...",signLanguageVideo:"Vidéo en Langue des Signes",closeSignLanguage:"Fermer la vidéo en langue des signes",signLanguageSettings:"Paramètres de la langue des signes",noChapters:"Aucun chapitre disponible",noCaptions:"Aucun sous-titre disponible",auto:"Automatique",autoQuality:"Automatique (sélection de qualité non disponible)",noQuality:"Sélection de qualité non disponible",signLanguageDragResize:"Vidéo en Langue des Signes - Appuyez sur D pour déplacer avec le clavier, R pour redimensionner",signLanguageDragActive:"Vidéo en Langue des Signes - Mode glissement actif. Utilisez les touches fléchées pour déplacer, Échap pour quitter.",signLanguageResizeActive:"Vidéo en Langue des Signes - Mode redimensionnement actif. Utilisez les touches fléchées gauche/droite pour redimensionner, Échap pour quitter.",enableSignDragMode:"Activer le mode glissement. Raccourci : touche D",disableSignDragMode:"Désactiver le mode glissement. Raccourci : touche D",enableSignDragModeAria:"Activer le mode glissement clavier avec les touches fléchées. Raccourci : touche D",disableSignDragModeAria:"Désactiver le mode glissement clavier avec les touches fléchées. Raccourci : touche D",enableSignResizeMode:"Activer le mode redimensionnement. Raccourci : touche R",disableSignResizeMode:"Désactiver le mode redimensionnement. Raccourci : touche R",enableSignResizeModeAria:"Activer le mode redimensionnement clavier avec les touches fléchées. Raccourci : touche R",disableSignResizeModeAria:"Désactiver le mode redimensionnement clavier avec les touches fléchées. Raccourci : touche R",resizeHandle:"Redimensionner coin {direction}",moreOptions:"Plus d'options",noMoreOptions:"Aucune option supplémentaire disponible"},captions:{off:"Désactivé",select:"Sélectionner les sous-titres",fontSize:"Taille de police",fontFamily:"Police",color:"Couleur du texte",backgroundColor:"Couleur de fond",opacity:"Opacité"},fontSizes:{small:"Petit",normal:"Normal",large:"Grand",xlarge:"Très grand"},fontFamilies:{sansSerif:"Sans-serif",serif:"Serif",monospace:"Monospace"},styleLabels:{textColor:"Couleur du texte",background:"Arrière-plan",font:"Police",fontSize:"Taille de police",opacity:"Opacité"},audioDescription:{enable:"Activer l'audiodescription",disable:"Désactiver l'audiodescription"},signLanguage:{show:"Afficher la vidéo en langue des signes",hide:"Masquer la vidéo en langue des signes"},transcript:{title:"Transcription",ariaLabel:"Transcription vidéo",close:"Fermer la transcription",loading:"Chargement de la transcription...",noTranscript:"Aucune transcription disponible pour cette vidéo.",settings:"Paramètres de transcription. Appuyez sur Entrée pour ouvrir le menu ou D pour activer le mode glissement",keyboardDragMode:"Basculer le mode glissement avec les touches fléchées. Raccourci: touche D",keyboardDragActive:"⌨️ Mode Glissement Clavier Actif (Touches fléchées pour déplacer, Maj+Fléchées pour grands pas, D ou Échap pour quitter)",dragResizePrompt:"Appuyez sur D pour déplacer ou R pour redimensionner. Home réinitialise la position, Échap ferme.",dragModeEnabled:"Mode glissement clavier activé. Utilisez les flèches pour déplacer, Maj+Flèches pour de grands pas. Appuyez sur D ou Échap pour quitter.",dragModeDisabled:"Mode glissement clavier désactivé.",enableDragMode:"Activer le mode glissement. Raccourci : touche D",disableDragMode:"Désactiver le mode glissement. Raccourci : touche D",enableDragModeAria:"Activer le mode glissement clavier avec les touches fléchées. Raccourci : touche D",disableDragModeAria:"Désactiver le mode glissement clavier avec les touches fléchées. Raccourci : touche D",resizeWindow:"Redimensionner la fenêtre",disableResizeWindow:"Désactiver le mode de redimensionnement",enableResizeMode:"Activer le mode redimensionnement. Raccourci : touche R",disableResizeMode:"Désactiver le mode redimensionnement. Raccourci : touche R",enableResizeModeAria:"Activer le mode redimensionnement clavier avec les touches fléchées. Raccourci : touche R",disableResizeModeAria:"Désactiver le mode redimensionnement clavier avec les touches fléchées. Raccourci : touche R",resizeModeHint:"Poignées activées. Faites glisser les bords ou les coins pour ajuster. Appuyez sur Échap ou R pour quitter.",resizeModeEnabled:"Mode redimensionnement activé. Faites glisser les bords ou coins. Appuyez sur Échap ou R pour quitter.",resizeModeDisabled:"Mode redimensionnement désactivé.",positionReset:"Position de la transcription réinitialisée.",styleTranscript:"Ouvrir les paramètres de style de transcription",closeMenu:"Fermer le menu",styleTitle:"Style de Transcription",autoscroll:"Défilement automatique",settingsMenu:"Paramètres de dialogue de transcription",showTimestamps:"Afficher les horodatages",hideTimestamps:"Masquer les horodatages",showTimestampsAria:"Afficher les horodatages dans la transcription",hideTimestampsAria:"Masquer les horodatages dans la transcription"},settings:{title:"Paramètres",quality:"Qualité",speed:"Vitesse",captions:"Sous-titres",language:"Langue",reset:"Réinitialiser",close:"Fermer"},speeds:{normal:"Normal"},time:{display:"Affichage du temps",durationPrefix:"Durée : ",of:"sur",hour:"{count} heure",hours:"{count} heures",minute:"{count} minute",minutes:"{count} minutes",second:"{count} seconde",seconds:"{count} secondes"},playlist:{title:"Liste de lecture",trackOf:"Piste {current} sur {total}",nowPlaying:"Lecture en cours : Piste {current} sur {total}. {title}{artist}",by:" par ",untitled:"Sans titre",trackUntitled:"Piste {number}",currentlyPlaying:"En cours de lecture",notPlaying:"Non en lecture",pressEnterPlay:"Appuyez sur Entrée pour lire",pressEnterRestart:"Appuyez sur Entrée pour recommencer",keyboardInstructions:"Navigation de la liste de lecture : Utilisez les touches fléchées haut et bas pour naviguer entre les pistes. Appuyez sur Page précédente ou Page suivante pour sauter 5 pistes. Appuyez sur Début pour aller à la première piste, Fin pour la dernière piste. Appuyez sur Entrée ou Espace pour lire la piste sélectionnée.",endOfPlaylist:"Fin de la liste de lecture. {current} sur {total}.",beginningOfPlaylist:"Début de la liste de lecture. 1 sur {total}.",jumpedToLastTrack:"Sauté à la dernière piste. {current} sur {total}.",jumpedToFirstTrack:"Sauté à la première piste. 1 sur {total}.",firstTrack:"Première piste. 1 sur {total}.",lastTrack:"Dernière piste. {current} sur {total}."}};export{e as fr};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Universal, Accessible Video Player
|
|
3
|
+
* (c) 2025 Matthias Peltzer
|
|
4
|
+
* Released under GPL-2.0-or-later License
|
|
5
|
+
*/
|
|
6
|
+
var e={player:{label:"ビデオプレーヤー",play:"再生",pause:"一時停止",stop:"停止",restart:"最初から再生",rewind:"巻き戻し",forward:"早送り",rewindSeconds:"{seconds}秒戻す",forwardSeconds:"{seconds}秒進める",previous:"前のトラック",next:"次のトラック",playlist:"プレイリストの切り替え",volume:"音量",mute:"ミュート",unmute:"ミュート解除",fullscreen:"全画面表示",exitFullscreen:"全画面表示を終了",captions:"字幕",chapters:"チャプター",quality:"画質",captionStyling:"字幕スタイル",transcript:"文字起こし切り替え",audioDescription:"音声解説",signLanguage:"手話動画",settings:"設定",speed:"再生速度",pip:"ピクチャーインピクチャー",currentTime:"現在の時間",duration:"再生時間",progress:"進行状況",seekForward:"{seconds}秒進める",seekBackward:"{seconds}秒戻す",volumeUp:"音量を上げる",volumeDown:"音量を下げる",loading:"読み込み中...",loadingChapters:"チャプター読み込み中...",error:"読み込みエラー",buffering:"バッファリング中...",signLanguageVideo:"手話動画",closeSignLanguage:"手話動画を閉じる",signLanguageSettings:"手話設定",noChapters:"チャプターがありません",noCaptions:"字幕がありません",auto:"自動",autoQuality:"自動(画質選択不可)",noQuality:"画質選択不可",signLanguageDragResize:"手話動画 - キーボードでドラッグするにはDキーを、サイズ変更するにはRキーを押してください",signLanguageDragActive:"手話動画 - ドラッグモードが有効です。矢印キーで移動、Escapeで終了します。",signLanguageResizeActive:"手話動画 - サイズ変更モードが有効です。左右の矢印キーでサイズ変更、Escapeで終了します。",enableSignDragMode:"ドラッグモードを有効にする。ショートカット:Dキー",disableSignDragMode:"ドラッグモードを無効にする。ショートカット:Dキー",enableSignDragModeAria:"矢印キーでキーボードドラッグモードを有効にする。ショートカット:Dキー",disableSignDragModeAria:"矢印キーでキーボードドラッグモードを無効にする。ショートカット:Dキー",enableSignResizeMode:"サイズ変更モードを有効にする。ショートカット:Rキー",disableSignResizeMode:"サイズ変更モードを無効にする。ショートカット:Rキー",enableSignResizeModeAria:"矢印キーでキーボードサイズ変更モードを有効にする。ショートカット:Rキー",disableSignResizeModeAria:"矢印キーでキーボードサイズ変更モードを無効にする。ショートカット:Rキー",resizeHandle:"{direction}コーナーのサイズ変更",moreOptions:"その他のオプション",noMoreOptions:"追加のオプションはありません"},captions:{off:"オフ",select:"字幕を選択",fontSize:"フォントサイズ",fontFamily:"フォント",color:"テキストの色",backgroundColor:"背景色",opacity:"不透明度"},fontSizes:{small:"小",normal:"標準",large:"大",xlarge:"特大"},fontFamilies:{sansSerif:"サンセリフ",serif:"セリフ",monospace:"等幅"},styleLabels:{textColor:"テキストの色",background:"背景",font:"フォント",fontSize:"フォントサイズ",opacity:"不透明度"},audioDescription:{enable:"音声解説を有効にする",disable:"音声解説を無効にする"},signLanguage:{show:"手話動画を表示",hide:"手話動画を非表示"},transcript:{title:"文字起こし",ariaLabel:"ビデオ文字起こし",close:"文字起こしを閉じる",loading:"文字起こしを読み込み中...",noTranscript:"このビデオの文字起こしはありません。",settings:"文字起こし設定。Enterキーでメニューを開く、またはDキーでドラッグモードを有効にする",keyboardDragMode:"矢印キーでキーボードドラッグモードを切り替え。ショートカット:Dキー",keyboardDragActive:"⌨️ キーボードドラッグモード有効(矢印キーで移動、Shift+矢印キーで大きく移動、DまたはESCで終了)",dragResizePrompt:"Dキーで移動、Rキーでサイズ変更。Homeで位置をリセット、Escで閉じます。",dragModeEnabled:"キーボードドラッグモードを有効にしました。矢印キーで移動、Shift+矢印キーで大きく移動できます。終了するには D または Esc を押します。",dragModeDisabled:"キーボードドラッグモードを無効にしました。",enableDragMode:"ドラッグモードを有効にする。ショートカット:Dキー",disableDragMode:"ドラッグモードを無効にする。ショートカット:Dキー",enableDragModeAria:"矢印キーでキーボードドラッグモードを有効にする。ショートカット:Dキー",disableDragModeAria:"矢印キーでキーボードドラッグモードを無効にする。ショートカット:Dキー",resizeWindow:"ウィンドウのサイズ変更",disableResizeWindow:"サイズ変更モードを無効にする",enableResizeMode:"サイズ変更モードを有効にする。ショートカット:Rキー",disableResizeMode:"サイズ変更モードを無効にする。ショートカット:Rキー",enableResizeModeAria:"矢印キーでキーボードサイズ変更モードを有効にする。ショートカット:Rキー",disableResizeModeAria:"矢印キーでキーボードサイズ変更モードを無効にする。ショートカット:Rキー",resizeModeHint:"リサイズハンドルが有効になりました。辺や角をドラッグして調整します。Esc または R で終了します。",resizeModeEnabled:"サイズ変更モードを有効にしました。辺や角をドラッグして調整します。Esc または R で終了します。",resizeModeDisabled:"サイズ変更モードを無効にしました。",positionReset:"文字起こしの位置をリセットしました。",styleTranscript:"文字起こしスタイル設定を開く",closeMenu:"メニューを閉じる",styleTitle:"文字起こしスタイル",autoscroll:"自動スクロール",settingsMenu:"文字起こしダイアログ設定",showTimestamps:"タイムスタンプを表示",hideTimestamps:"タイムスタンプを非表示",showTimestampsAria:"文字起こしにタイムスタンプを表示",hideTimestampsAria:"文字起こしのタイムスタンプを非表示"},settings:{title:"設定",quality:"画質",speed:"速度",captions:"字幕",language:"言語",reset:"リセット",close:"閉じる"},speeds:{normal:"通常"},time:{display:"時間表示",durationPrefix:"再生時間: ",of:"/",hour:"{count}時間",hours:"{count}時間",minute:"{count}分",minutes:"{count}分",second:"{count}秒",seconds:"{count}秒"},playlist:{title:"プレイリスト",trackOf:"トラック {current}/{total}",nowPlaying:"再生中: トラック {current}/{total}. {title}{artist}",by:" - ",untitled:"タイトルなし",trackUntitled:"トラック {number}",currentlyPlaying:"再生中",notPlaying:"停止中",pressEnterPlay:"Enterキーで再生",pressEnterRestart:"Enterキーで最初から再生",keyboardInstructions:"プレイリストナビゲーション:上下の矢印キーでトラック間を移動します。Page UpまたはPage Downで5トラックをスキップします。Homeで最初のトラックへ、Endで最後のトラックへ移動します。EnterまたはSpaceで選択したトラックを再生します。",endOfPlaylist:"プレイリストの終わりです。{current}/{total}。",beginningOfPlaylist:"プレイリストの始めです。1/{total}。",jumpedToLastTrack:"最後のトラックにジャンプしました。{current}/{total}。",jumpedToFirstTrack:"最初のトラックにジャンプしました。1/{total}。",firstTrack:"最初のトラックです。1/{total}。",lastTrack:"最後のトラックです。{current}/{total}。"}};export{e as ja};
|
|
@@ -6,32 +6,32 @@
|
|
|
6
6
|
"format": "esm"
|
|
7
7
|
},
|
|
8
8
|
"src/utils/DOMUtils.js": {
|
|
9
|
-
"bytes":
|
|
9
|
+
"bytes": 7360,
|
|
10
10
|
"imports": [],
|
|
11
11
|
"format": "esm"
|
|
12
12
|
},
|
|
13
13
|
"src/i18n/languages/en.js": {
|
|
14
|
-
"bytes":
|
|
14
|
+
"bytes": 7390,
|
|
15
15
|
"imports": [],
|
|
16
16
|
"format": "esm"
|
|
17
17
|
},
|
|
18
18
|
"src/i18n/languages/de.js": {
|
|
19
|
-
"bytes":
|
|
19
|
+
"bytes": 9108,
|
|
20
20
|
"imports": [],
|
|
21
21
|
"format": "esm"
|
|
22
22
|
},
|
|
23
23
|
"src/i18n/languages/es.js": {
|
|
24
|
-
"bytes":
|
|
24
|
+
"bytes": 8594,
|
|
25
25
|
"imports": [],
|
|
26
26
|
"format": "esm"
|
|
27
27
|
},
|
|
28
28
|
"src/i18n/languages/fr.js": {
|
|
29
|
-
"bytes":
|
|
29
|
+
"bytes": 8836,
|
|
30
30
|
"imports": [],
|
|
31
31
|
"format": "esm"
|
|
32
32
|
},
|
|
33
33
|
"src/i18n/languages/ja.js": {
|
|
34
|
-
"bytes":
|
|
34
|
+
"bytes": 9301,
|
|
35
35
|
"imports": [],
|
|
36
36
|
"format": "esm"
|
|
37
37
|
},
|
|
@@ -98,8 +98,13 @@
|
|
|
98
98
|
"imports": [],
|
|
99
99
|
"format": "esm"
|
|
100
100
|
},
|
|
101
|
+
"src/utils/PerformanceUtils.js": {
|
|
102
|
+
"bytes": 1820,
|
|
103
|
+
"imports": [],
|
|
104
|
+
"format": "esm"
|
|
105
|
+
},
|
|
101
106
|
"src/controls/ControlBar.js": {
|
|
102
|
-
"bytes":
|
|
107
|
+
"bytes": 131933,
|
|
103
108
|
"imports": [
|
|
104
109
|
{
|
|
105
110
|
"path": "src/utils/DOMUtils.js",
|
|
@@ -125,6 +130,11 @@
|
|
|
125
130
|
"path": "src/utils/FocusUtils.js",
|
|
126
131
|
"kind": "import-statement",
|
|
127
132
|
"original": "../utils/FocusUtils.js"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"path": "src/utils/PerformanceUtils.js",
|
|
136
|
+
"kind": "import-statement",
|
|
137
|
+
"original": "../utils/PerformanceUtils.js"
|
|
128
138
|
}
|
|
129
139
|
],
|
|
130
140
|
"format": "esm"
|
|
@@ -134,11 +144,6 @@
|
|
|
134
144
|
"imports": [],
|
|
135
145
|
"format": "esm"
|
|
136
146
|
},
|
|
137
|
-
"src/utils/PerformanceUtils.js": {
|
|
138
|
-
"bytes": 1820,
|
|
139
|
-
"imports": [],
|
|
140
|
-
"format": "esm"
|
|
141
|
-
},
|
|
142
147
|
"src/controls/CaptionManager.js": {
|
|
143
148
|
"bytes": 17842,
|
|
144
149
|
"imports": [
|
|
@@ -222,8 +227,55 @@
|
|
|
222
227
|
],
|
|
223
228
|
"format": "esm"
|
|
224
229
|
},
|
|
230
|
+
"src/core/AudioDescriptionManager.js": {
|
|
231
|
+
"bytes": 26497,
|
|
232
|
+
"imports": [
|
|
233
|
+
{
|
|
234
|
+
"path": "src/controls/CaptionManager.js",
|
|
235
|
+
"kind": "import-statement",
|
|
236
|
+
"original": "../controls/CaptionManager.js"
|
|
237
|
+
}
|
|
238
|
+
],
|
|
239
|
+
"format": "esm"
|
|
240
|
+
},
|
|
241
|
+
"src/core/SignLanguageManager.js": {
|
|
242
|
+
"bytes": 39788,
|
|
243
|
+
"imports": [
|
|
244
|
+
{
|
|
245
|
+
"path": "src/utils/DOMUtils.js",
|
|
246
|
+
"kind": "import-statement",
|
|
247
|
+
"original": "../utils/DOMUtils.js"
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"path": "src/icons/Icons.js",
|
|
251
|
+
"kind": "import-statement",
|
|
252
|
+
"original": "../icons/Icons.js"
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"path": "src/i18n/i18n.js",
|
|
256
|
+
"kind": "import-statement",
|
|
257
|
+
"original": "../i18n/i18n.js"
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"path": "src/utils/DraggableResizable.js",
|
|
261
|
+
"kind": "import-statement",
|
|
262
|
+
"original": "../utils/DraggableResizable.js"
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"path": "src/utils/MenuUtils.js",
|
|
266
|
+
"kind": "import-statement",
|
|
267
|
+
"original": "../utils/MenuUtils.js"
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
"path": "src/utils/FormUtils.js",
|
|
271
|
+
"kind": "import-statement",
|
|
272
|
+
"original": "../utils/FormUtils.js"
|
|
273
|
+
}
|
|
274
|
+
],
|
|
275
|
+
"format": "esm"
|
|
276
|
+
},
|
|
225
277
|
"src/controls/TranscriptManager.js": {
|
|
226
|
-
"bytes":
|
|
278
|
+
"bytes": 80133,
|
|
227
279
|
"imports": [
|
|
228
280
|
{
|
|
229
281
|
"path": "src/utils/DOMUtils.js",
|
|
@@ -300,7 +352,7 @@
|
|
|
300
352
|
"format": "esm"
|
|
301
353
|
},
|
|
302
354
|
"src/core/Player.js": {
|
|
303
|
-
"bytes":
|
|
355
|
+
"bytes": 210757,
|
|
304
356
|
"imports": [
|
|
305
357
|
{
|
|
306
358
|
"path": "src/utils/EventEmitter.js",
|
|
@@ -367,6 +419,16 @@
|
|
|
367
419
|
"kind": "import-statement",
|
|
368
420
|
"original": "../utils/PerformanceUtils.js"
|
|
369
421
|
},
|
|
422
|
+
{
|
|
423
|
+
"path": "src/core/AudioDescriptionManager.js",
|
|
424
|
+
"kind": "import-statement",
|
|
425
|
+
"original": "./AudioDescriptionManager.js"
|
|
426
|
+
},
|
|
427
|
+
{
|
|
428
|
+
"path": "src/core/SignLanguageManager.js",
|
|
429
|
+
"kind": "import-statement",
|
|
430
|
+
"original": "./SignLanguageManager.js"
|
|
431
|
+
},
|
|
370
432
|
{
|
|
371
433
|
"path": "src/controls/TranscriptManager.js",
|
|
372
434
|
"kind": "dynamic-import",
|
|
@@ -396,7 +458,7 @@
|
|
|
396
458
|
"format": "esm"
|
|
397
459
|
},
|
|
398
460
|
"src/features/PlaylistManager.js": {
|
|
399
|
-
"bytes":
|
|
461
|
+
"bytes": 48411,
|
|
400
462
|
"imports": [
|
|
401
463
|
{
|
|
402
464
|
"path": "src/utils/DOMUtils.js",
|
|
@@ -491,11 +553,11 @@
|
|
|
491
553
|
"kind": "import-statement"
|
|
492
554
|
},
|
|
493
555
|
{
|
|
494
|
-
"path": "dist/prod/vidply.chunk-
|
|
556
|
+
"path": "dist/prod/vidply.chunk-LGTJRPUL.min.js",
|
|
495
557
|
"kind": "import-statement"
|
|
496
558
|
},
|
|
497
559
|
{
|
|
498
|
-
"path": "dist/prod/vidply.TranscriptManager-
|
|
560
|
+
"path": "dist/prod/vidply.TranscriptManager-WFZSW6NR.min.js",
|
|
499
561
|
"kind": "dynamic-import"
|
|
500
562
|
},
|
|
501
563
|
{
|
|
@@ -525,31 +587,37 @@
|
|
|
525
587
|
"src/utils/EventEmitter.js": {
|
|
526
588
|
"bytesInOutput": 436
|
|
527
589
|
},
|
|
528
|
-
"src/controls/ControlBar.js": {
|
|
529
|
-
"bytesInOutput": 56830
|
|
530
|
-
},
|
|
531
590
|
"src/utils/PerformanceUtils.js": {
|
|
532
591
|
"bytesInOutput": 256
|
|
533
592
|
},
|
|
593
|
+
"src/controls/ControlBar.js": {
|
|
594
|
+
"bytesInOutput": 56781
|
|
595
|
+
},
|
|
534
596
|
"src/controls/CaptionManager.js": {
|
|
535
597
|
"bytesInOutput": 7279
|
|
536
598
|
},
|
|
537
599
|
"src/controls/KeyboardManager.js": {
|
|
538
600
|
"bytesInOutput": 3991
|
|
539
601
|
},
|
|
602
|
+
"src/core/AudioDescriptionManager.js": {
|
|
603
|
+
"bytesInOutput": 9641
|
|
604
|
+
},
|
|
605
|
+
"src/core/SignLanguageManager.js": {
|
|
606
|
+
"bytesInOutput": 19116
|
|
607
|
+
},
|
|
540
608
|
"src/core/Player.js": {
|
|
541
|
-
"bytesInOutput":
|
|
609
|
+
"bytesInOutput": 75524
|
|
542
610
|
},
|
|
543
611
|
"src/features/PlaylistManager.js": {
|
|
544
|
-
"bytesInOutput":
|
|
612
|
+
"bytesInOutput": 21345
|
|
545
613
|
},
|
|
546
614
|
"src/index.js": {
|
|
547
615
|
"bytesInOutput": 1869
|
|
548
616
|
}
|
|
549
617
|
},
|
|
550
|
-
"bytes":
|
|
618
|
+
"bytes": 196610
|
|
551
619
|
},
|
|
552
|
-
"dist/prod/vidply.de-
|
|
620
|
+
"dist/prod/vidply.de-FR3XX54P.min.js": {
|
|
553
621
|
"imports": [],
|
|
554
622
|
"exports": [
|
|
555
623
|
"de"
|
|
@@ -557,12 +625,12 @@
|
|
|
557
625
|
"entryPoint": "src/i18n/languages/de.js",
|
|
558
626
|
"inputs": {
|
|
559
627
|
"src/i18n/languages/de.js": {
|
|
560
|
-
"bytesInOutput":
|
|
628
|
+
"bytesInOutput": 7226
|
|
561
629
|
}
|
|
562
630
|
},
|
|
563
|
-
"bytes":
|
|
631
|
+
"bytes": 7361
|
|
564
632
|
},
|
|
565
|
-
"dist/prod/vidply.es-
|
|
633
|
+
"dist/prod/vidply.es-3IJCQLJ7.min.js": {
|
|
566
634
|
"imports": [],
|
|
567
635
|
"exports": [
|
|
568
636
|
"es"
|
|
@@ -570,12 +638,12 @@
|
|
|
570
638
|
"entryPoint": "src/i18n/languages/es.js",
|
|
571
639
|
"inputs": {
|
|
572
640
|
"src/i18n/languages/es.js": {
|
|
573
|
-
"bytesInOutput":
|
|
641
|
+
"bytesInOutput": 7363
|
|
574
642
|
}
|
|
575
643
|
},
|
|
576
|
-
"bytes":
|
|
644
|
+
"bytes": 7498
|
|
577
645
|
},
|
|
578
|
-
"dist/prod/vidply.fr-
|
|
646
|
+
"dist/prod/vidply.fr-NC4VEAPH.min.js": {
|
|
579
647
|
"imports": [],
|
|
580
648
|
"exports": [
|
|
581
649
|
"fr"
|
|
@@ -583,12 +651,12 @@
|
|
|
583
651
|
"entryPoint": "src/i18n/languages/fr.js",
|
|
584
652
|
"inputs": {
|
|
585
653
|
"src/i18n/languages/fr.js": {
|
|
586
|
-
"bytesInOutput":
|
|
654
|
+
"bytesInOutput": 7602
|
|
587
655
|
}
|
|
588
656
|
},
|
|
589
|
-
"bytes":
|
|
657
|
+
"bytes": 7737
|
|
590
658
|
},
|
|
591
|
-
"dist/prod/vidply.ja-
|
|
659
|
+
"dist/prod/vidply.ja-4ZC6ZQLV.min.js": {
|
|
592
660
|
"imports": [],
|
|
593
661
|
"exports": [
|
|
594
662
|
"ja"
|
|
@@ -596,10 +664,10 @@
|
|
|
596
664
|
"entryPoint": "src/i18n/languages/ja.js",
|
|
597
665
|
"inputs": {
|
|
598
666
|
"src/i18n/languages/ja.js": {
|
|
599
|
-
"bytesInOutput":
|
|
667
|
+
"bytesInOutput": 8069
|
|
600
668
|
}
|
|
601
669
|
},
|
|
602
|
-
"bytes":
|
|
670
|
+
"bytes": 8204
|
|
603
671
|
},
|
|
604
672
|
"dist/prod/vidply.HTML5Renderer-MY7XDV7R.min.js": {
|
|
605
673
|
"imports": [
|
|
@@ -627,10 +695,10 @@
|
|
|
627
695
|
},
|
|
628
696
|
"bytes": 4973
|
|
629
697
|
},
|
|
630
|
-
"dist/prod/vidply.TranscriptManager-
|
|
698
|
+
"dist/prod/vidply.TranscriptManager-WFZSW6NR.min.js": {
|
|
631
699
|
"imports": [
|
|
632
700
|
{
|
|
633
|
-
"path": "dist/prod/vidply.chunk-
|
|
701
|
+
"path": "dist/prod/vidply.chunk-LGTJRPUL.min.js",
|
|
634
702
|
"kind": "import-statement"
|
|
635
703
|
}
|
|
636
704
|
],
|
|
@@ -640,27 +708,27 @@
|
|
|
640
708
|
"entryPoint": "src/controls/TranscriptManager.js",
|
|
641
709
|
"inputs": {
|
|
642
710
|
"src/controls/TranscriptManager.js": {
|
|
643
|
-
"bytesInOutput":
|
|
711
|
+
"bytesInOutput": 42771
|
|
644
712
|
}
|
|
645
713
|
},
|
|
646
|
-
"bytes":
|
|
714
|
+
"bytes": 43042
|
|
647
715
|
},
|
|
648
|
-
"dist/prod/vidply.chunk-
|
|
716
|
+
"dist/prod/vidply.chunk-LGTJRPUL.min.js": {
|
|
649
717
|
"imports": [
|
|
650
718
|
{
|
|
651
|
-
"path": "dist/prod/vidply.de-
|
|
719
|
+
"path": "dist/prod/vidply.de-FR3XX54P.min.js",
|
|
652
720
|
"kind": "dynamic-import"
|
|
653
721
|
},
|
|
654
722
|
{
|
|
655
|
-
"path": "dist/prod/vidply.es-
|
|
723
|
+
"path": "dist/prod/vidply.es-3IJCQLJ7.min.js",
|
|
656
724
|
"kind": "dynamic-import"
|
|
657
725
|
},
|
|
658
726
|
{
|
|
659
|
-
"path": "dist/prod/vidply.fr-
|
|
727
|
+
"path": "dist/prod/vidply.fr-NC4VEAPH.min.js",
|
|
660
728
|
"kind": "dynamic-import"
|
|
661
729
|
},
|
|
662
730
|
{
|
|
663
|
-
"path": "dist/prod/vidply.ja-
|
|
731
|
+
"path": "dist/prod/vidply.ja-4ZC6ZQLV.min.js",
|
|
664
732
|
"kind": "dynamic-import"
|
|
665
733
|
}
|
|
666
734
|
],
|
|
@@ -682,10 +750,10 @@
|
|
|
682
750
|
],
|
|
683
751
|
"inputs": {
|
|
684
752
|
"src/utils/DOMUtils.js": {
|
|
685
|
-
"bytesInOutput":
|
|
753
|
+
"bytesInOutput": 2348
|
|
686
754
|
},
|
|
687
755
|
"src/i18n/languages/en.js": {
|
|
688
|
-
"bytesInOutput":
|
|
756
|
+
"bytesInOutput": 6159
|
|
689
757
|
},
|
|
690
758
|
"src/i18n/translations.js": {
|
|
691
759
|
"bytesInOutput": 340
|
|
@@ -715,7 +783,7 @@
|
|
|
715
783
|
"bytesInOutput": 776
|
|
716
784
|
}
|
|
717
785
|
},
|
|
718
|
-
"bytes":
|
|
786
|
+
"bytes": 40251
|
|
719
787
|
},
|
|
720
788
|
"dist/prod/vidply.YouTubeRenderer-MFC2GMAC.min.js": {
|
|
721
789
|
"imports": [],
|
package/package.json
CHANGED
|
@@ -7,6 +7,7 @@ import {TimeUtils} from '../utils/TimeUtils.js';
|
|
|
7
7
|
import {createIconElement} from '../icons/Icons.js';
|
|
8
8
|
import {i18n} from '../i18n/i18n.js';
|
|
9
9
|
import {focusElement, focusFirstElement} from '../utils/FocusUtils.js';
|
|
10
|
+
import {isMobile} from '../utils/PerformanceUtils.js';
|
|
10
11
|
|
|
11
12
|
export class ControlBar {
|
|
12
13
|
constructor(player) {
|
|
@@ -30,11 +31,6 @@ export class ControlBar {
|
|
|
30
31
|
this.setupOverflowDetection();
|
|
31
32
|
}
|
|
32
33
|
|
|
33
|
-
// Helper method to check if we're on a mobile device
|
|
34
|
-
isMobile() {
|
|
35
|
-
return window.innerWidth < 768;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
34
|
// Helper method to detect touch devices
|
|
39
35
|
isTouchDevice() {
|
|
40
36
|
return (
|
|
@@ -46,7 +42,7 @@ export class ControlBar {
|
|
|
46
42
|
|
|
47
43
|
// Smart menu positioning to avoid overflow
|
|
48
44
|
positionMenu(menu, button, immediate = false) {
|
|
49
|
-
const
|
|
45
|
+
const mobile = isMobile();
|
|
50
46
|
const isOverflowMenu = menu.classList.contains(`${this.player.options.classPrefix}-overflow-menu-list`);
|
|
51
47
|
const isFullscreen = this.player.state.fullscreen;
|
|
52
48
|
|
|
@@ -101,7 +97,7 @@ export class ControlBar {
|
|
|
101
97
|
return;
|
|
102
98
|
}
|
|
103
99
|
|
|
104
|
-
if (
|
|
100
|
+
if (mobile) {
|
|
105
101
|
// On mobile, ensure menus stay within viewport
|
|
106
102
|
const isVolumeMenu = menu.classList.contains(`${this.player.options.classPrefix}-volume-menu`);
|
|
107
103
|
|
|
@@ -214,7 +214,7 @@ export class TranscriptManager {
|
|
|
214
214
|
className: `${this.player.options.classPrefix}-transcript-window`,
|
|
215
215
|
attributes: {
|
|
216
216
|
'role': 'dialog',
|
|
217
|
-
'aria-label': '
|
|
217
|
+
'aria-label': i18n.t('transcript.ariaLabel'),
|
|
218
218
|
'tabindex': '-1'
|
|
219
219
|
}
|
|
220
220
|
});
|
|
@@ -750,15 +750,13 @@ export class TranscriptManager {
|
|
|
750
750
|
const metadataTrack = textTracks.find(track => track.kind === 'metadata');
|
|
751
751
|
|
|
752
752
|
// We need at least one track type available for display
|
|
753
|
-
//
|
|
754
|
-
|
|
755
|
-
if (!captionTrack && !hasDescriptionTrack && !metadataTrack) {
|
|
753
|
+
// (captions, descriptions, or metadata - though metadata is not displayed)
|
|
754
|
+
if (!captionTrack && !descriptionTrack && !metadataTrack) {
|
|
756
755
|
this.showNoTranscriptMessage();
|
|
757
756
|
return;
|
|
758
757
|
}
|
|
759
758
|
|
|
760
|
-
// Enable all tracks to load cues
|
|
761
|
-
// This ensures descriptions are ready when audio description is enabled
|
|
759
|
+
// Enable all tracks to load cues so they're available for the transcript
|
|
762
760
|
const tracksToLoad = [captionTrack, descriptionTrack, metadataTrack].filter(Boolean);
|
|
763
761
|
tracksToLoad.forEach(track => {
|
|
764
762
|
if (track.mode === 'disabled') {
|
|
@@ -806,8 +804,10 @@ export class TranscriptManager {
|
|
|
806
804
|
});
|
|
807
805
|
}
|
|
808
806
|
|
|
809
|
-
//
|
|
810
|
-
|
|
807
|
+
// Always include description cues in transcript for completeness
|
|
808
|
+
// (Audio description toggle only controls whether they're read aloud,
|
|
809
|
+
// but the transcript should always show all content for accessibility)
|
|
810
|
+
if (descriptionTrack && descriptionTrack.cues) {
|
|
811
811
|
Array.from(descriptionTrack.cues).forEach(cue => {
|
|
812
812
|
allCues.push({ cue, type: 'description' });
|
|
813
813
|
});
|