@@ -11,30 +11,11 @@ const filterDefaultsAndNulls = (obj) => Object.entries(obj).reduce((filtered, [k
1111 return filtered ;
1212} , { } ) ;
1313
14- const getCloudinaryOptions = ( cloudinaryOptions = { } ) => ( {
15- autoShowRecommendations : cloudinaryOptions . autoShowRecommendations ,
16- fontFace : cloudinaryOptions . fontFace ,
17- posterOptions : hasConfig ( cloudinaryOptions . posterOptions ) ,
18- posterOptionsPublicId : cloudinaryOptions . posterOptions && hasConfig ( cloudinaryOptions . posterOptions . publicId )
19- } ) ;
20-
21- const getTranscriptOptions = ( textTracks = { } ) => {
22- const tracksArr = [ textTracks . captions , ...( textTracks . subtitles || [ ] ) ] ;
23- return {
24- textTracks : hasConfig ( textTracks ) ,
25- textTracksLength : tracksArr . length ,
26- textTracksOptions : hasConfig ( textTracks . options ) && Object . keys ( textTracks . options ) . join ( ',' ) ,
27- pacedTextTracks : hasConfig ( textTracks ) && JSON . stringify ( textTracks || { } ) . includes ( '"maxWords":' ) || null ,
28- wordHighlight : hasConfig ( textTracks ) && JSON . stringify ( textTracks || { } ) . includes ( '"wordHighlight":' ) || null ,
29- transcriptLanguages : tracksArr . filter ( ( track ) => ! track . url ) . map ( ( track ) => track . language || '' ) . join ( ',' ) || null ,
30- transcriptAutoLoaded : tracksArr . some ( ( track ) => ! track . url ) || null ,
31- transcriptFromURl : tracksArr . some ( ( track ) => track . url ?. endsWith ( '.transcript' ) ) || null ,
32- vttFromUrl : tracksArr . some ( ( track ) => track . url ?. endsWith ( '.vtt' ) ) || null ,
33- srtFromUrl : tracksArr . some ( ( track ) => track . url ?. endsWith ( '.srt' ) ) || null
34- } ;
35- } ;
36-
3714const getSourceOptions = ( sourceOptions = { } ) => ( {
15+ posterOptions : hasConfig ( sourceOptions . posterOptions ) ,
16+ posterOptionsPublicId : sourceOptions . posterOptions && hasConfig ( sourceOptions . posterOptions . publicId ) ,
17+ autoShowRecommendations : sourceOptions . autoShowRecommendations ,
18+ fontFace : sourceOptions . fontFace ,
3819 sourceTypes : sourceOptions . sourceTypes ,
3920 chapters : ( ( ) => {
4021 if ( sourceOptions . chapters === true ) return 'auto' ;
@@ -46,7 +27,7 @@ const getSourceOptions = (sourceOptions = {}) => ({
4627 download : hasConfig ( sourceOptions . download ) ,
4728 recommendations : sourceOptions . recommendations && sourceOptions . recommendations . length ,
4829 ...( hasConfig ( sourceOptions . adaptiveStreaming ) ? {
49- abrStrategy : sourceOptions ?. adaptiveStreaming ?. strategy ,
30+ abrStrategy : sourceOptions ?. adaptiveStreaming ?. strategy === defaults . adaptiveStreaming . strategy ? undefined : sourceOptions ?. adaptiveStreaming ?. strategy ,
5031 } : { } ) ,
5132 shoppable : hasConfig ( sourceOptions . shoppable ) ,
5233 shoppableProductsLength : sourceOptions . shoppable && sourceOptions . shoppable . products && sourceOptions . shoppable . products . length ,
@@ -55,20 +36,34 @@ const getSourceOptions = (sourceOptions = {}) => ({
5536 sourceTitle : ( typeof sourceOptions . title === 'string' ? sourceOptions . title : sourceOptions . info ?. title ) ,
5637 sourceDescription : ( typeof sourceOptions . description === 'string' ? sourceOptions . description : sourceOptions . info ?. subtitle || sourceOptions . info ?. description )
5738 } : { } ) ,
58- ...( sourceOptions . textTracks ? {
59- ...( hasConfig ( sourceOptions . textTracks ) && getTranscriptOptions ( sourceOptions . textTracks ) ) ,
60- ...( sourceOptions . textTracks . options ? {
61- styledTextTracksTheme : sourceOptions . textTracks . options . theme ,
62- styledTextTracksFont : sourceOptions . textTracks . options . fontFace ,
63- styledTextTracksFontSize : sourceOptions . textTracks . options . fontSize ,
64- styledTextTracksGravity : sourceOptions . textTracks . options . gravity ,
65- styledTextTracksBox : hasConfig ( sourceOptions . textTracks . options . box ) ,
66- styledTextTracksStyle : hasConfig ( sourceOptions . textTracks . options . style ) ,
67- styledTextTracksWordHighlightStyle : hasConfig ( sourceOptions . textTracks . options . wordHighlightStyle )
68- } : { } )
69- } : { } )
39+ ...( hasConfig ( sourceOptions . textTracks ) ? getTextTracksOptions ( sourceOptions . textTracks ) : { } )
7040} ) ;
7141
42+ const getTextTracksOptions = ( textTracks = { } ) => {
43+ const tracksArr = [ textTracks . captions , ...( textTracks . subtitles || [ ] ) ] ;
44+ return {
45+ textTracks : hasConfig ( textTracks ) ,
46+ textTracksLength : tracksArr . length ,
47+ textTracksOptions : hasConfig ( textTracks . options ) && Object . keys ( textTracks . options ) . join ( ',' ) ,
48+ pacedTextTracks : hasConfig ( textTracks ) && JSON . stringify ( textTracks || { } ) . includes ( '"maxWords":' ) || null ,
49+ wordHighlight : hasConfig ( textTracks ) && JSON . stringify ( textTracks || { } ) . includes ( '"wordHighlight":' ) || null ,
50+ transcriptLanguages : tracksArr . filter ( ( track ) => ! track . url ) . map ( ( track ) => track . language || '' ) . join ( ',' ) || null ,
51+ transcriptAutoLoaded : tracksArr . some ( ( track ) => ! track . url ) || null ,
52+ transcriptFromURl : tracksArr . some ( ( track ) => track . url ?. endsWith ( '.transcript' ) ) || null ,
53+ vttFromUrl : tracksArr . some ( ( track ) => track . url ?. endsWith ( '.vtt' ) ) || null ,
54+ srtFromUrl : tracksArr . some ( ( track ) => track . url ?. endsWith ( '.srt' ) ) || null ,
55+ ...( textTracks . options ? {
56+ styledTextTracksTheme : textTracks . options . theme ,
57+ styledTextTracksFont : textTracks . options . fontFace ,
58+ styledTextTracksFontSize : textTracks . options . fontSize ,
59+ styledTextTracksGravity : textTracks . options . gravity ,
60+ styledTextTracksBox : hasConfig ( textTracks . options . box ) ,
61+ styledTextTracksStyle : hasConfig ( textTracks . options . style ) ,
62+ styledTextTracksWordHighlightStyle : hasConfig ( textTracks . options . wordHighlightStyle )
63+ } : { } )
64+ } ;
65+ } ;
66+
7267const getAdsOptions = ( adsOptions = { } ) => ( {
7368 adsAdTagUrl : adsOptions . adTagUrl ,
7469 adsShowCountdown : adsOptions . showCountdown ,
@@ -126,8 +121,7 @@ export const getAnalyticsFromPlayerOptions = (playerOptions) => filterDefaultsAn
126121 colors : playerOptions . colors && JSON . stringify ( playerOptions . colors ) ,
127122 controlBar : ( JSON . stringify ( playerOptions . controlBar ) !== JSON . stringify ( defaults . controlBar ) ) && JSON . stringify ( playerOptions . controlBar ) ,
128123
129- ...getCloudinaryOptions ( playerOptions . cloudinary ) ,
130- ...getSourceOptions ( playerOptions . sourceOptions ) ,
124+ ...getSourceOptions ( playerOptions . sourceOptions || { } ) ,
131125 ...getAdsOptions ( playerOptions . ads ) ,
132126 ...getPlaylistOptions ( playerOptions . playlistWidget )
133127} ) ;
0 commit comments