@@ -11,14 +11,35 @@ 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 )
14+ const getSourceOptions = ( sourceOptions = { } ) => ( {
15+ posterOptions : hasConfig ( sourceOptions . posterOptions ) ,
16+ posterOptionsPublicId : sourceOptions . posterOptions && hasConfig ( sourceOptions . posterOptions . publicId ) ,
17+ autoShowRecommendations : sourceOptions . autoShowRecommendations ,
18+ fontFace : sourceOptions . fontFace ,
19+ sourceTypes : sourceOptions . sourceTypes ,
20+ chapters : ( ( ) => {
21+ if ( sourceOptions . chapters === true ) return 'auto' ;
22+ if ( sourceOptions . chapters && sourceOptions . chapters . url ) return 'url' ;
23+ if ( sourceOptions . chapters ) return 'inline-chapters' ;
24+ return undefined ;
25+ } ) ( ) ,
26+ visualSearch : sourceOptions . visualSearch ,
27+ download : hasConfig ( sourceOptions . download ) ,
28+ recommendations : sourceOptions . recommendations && sourceOptions . recommendations . length ,
29+ ...( hasConfig ( sourceOptions . adaptiveStreaming ) ? {
30+ abrStrategy : sourceOptions ?. adaptiveStreaming ?. strategy === defaults . adaptiveStreaming . strategy ? undefined : sourceOptions ?. adaptiveStreaming ?. strategy ,
31+ } : { } ) ,
32+ shoppable : hasConfig ( sourceOptions . shoppable ) ,
33+ shoppableProductsLength : sourceOptions . shoppable && sourceOptions . shoppable . products && sourceOptions . shoppable . products . length ,
34+ ...( sourceOptions . title || sourceOptions . description || sourceOptions . info ? {
35+ sourceInfo : hasConfig ( sourceOptions . info ) ,
36+ sourceTitle : ( typeof sourceOptions . title === 'string' ? sourceOptions . title : sourceOptions . info ?. title ) ,
37+ sourceDescription : ( typeof sourceOptions . description === 'string' ? sourceOptions . description : sourceOptions . info ?. subtitle || sourceOptions . info ?. description )
38+ } : { } ) ,
39+ ...( hasConfig ( sourceOptions . textTracks ) ? getTextTracksOptions ( sourceOptions . textTracks ) : { } )
1940} ) ;
2041
21- const getTranscriptOptions = ( textTracks = { } ) => {
42+ const getTextTracksOptions = ( textTracks = { } ) => {
2243 const tracksArr = [ textTracks . captions , ...( textTracks . subtitles || [ ] ) ] ;
2344 return {
2445 textTracks : hasConfig ( textTracks ) ,
@@ -30,40 +51,19 @@ const getTranscriptOptions = (textTracks = {}) => {
3051 transcriptAutoLoaded : tracksArr . some ( ( track ) => ! track . url ) || null ,
3152 transcriptFromURl : tracksArr . some ( ( track ) => track . url ?. endsWith ( '.transcript' ) ) || null ,
3253 vttFromUrl : tracksArr . some ( ( track ) => track . url ?. endsWith ( '.vtt' ) ) || null ,
33- srtFromUrl : tracksArr . some ( ( track ) => track . url ?. endsWith ( '.srt' ) ) || 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+ } : { } )
3464 } ;
3565} ;
3666
37- const getSourceOptions = ( sourceOptions = { } ) => ( {
38- sourceTypes : sourceOptions . sourceTypes ,
39- chapters : sourceOptions . chapters && ( sourceOptions . chapters . url ? 'url' : 'inline-chapters' ) ,
40- visualSearch : hasConfig ( sourceOptions . visualSearch ) ,
41- download : hasConfig ( sourceOptions . download ) ,
42- recommendations : sourceOptions . recommendations && sourceOptions . recommendations . length ,
43- ...( sourceOptions . adaptiveStreaming ? {
44- abrStrategy : sourceOptions ?. adaptiveStreaming ?. strategy ,
45- } : { } ) ,
46- shoppable : hasConfig ( sourceOptions . shoppable ) ,
47- shoppableProductsLength : sourceOptions . shoppable && sourceOptions . shoppable . products && sourceOptions . shoppable . products . length ,
48- ...( sourceOptions . title || sourceOptions . description || sourceOptions . info ? {
49- sourceInfo : hasConfig ( sourceOptions . info ) ,
50- sourceTitle : ( typeof sourceOptions . title === 'string' ? sourceOptions . title : sourceOptions . info ?. title ) ,
51- sourceDescription : ( typeof sourceOptions . description === 'string' ? sourceOptions . description : sourceOptions . info ?. subtitle || sourceOptions . info ?. description )
52- } : { } ) ,
53- ...( sourceOptions . textTracks ? {
54- ...( hasConfig ( sourceOptions . textTracks ) && getTranscriptOptions ( sourceOptions . textTracks ) ) ,
55- ...( sourceOptions . textTracks . options ? {
56- styledTextTracksTheme : sourceOptions . textTracks . options . theme ,
57- styledTextTracksFont : sourceOptions . textTracks . options . fontFace ,
58- styledTextTracksFontSize : sourceOptions . textTracks . options . fontSize ,
59- styledTextTracksGravity : sourceOptions . textTracks . options . gravity ,
60- styledTextTracksBox : hasConfig ( sourceOptions . textTracks . options . box ) ,
61- styledTextTracksStyle : hasConfig ( sourceOptions . textTracks . options . style ) ,
62- styledTextTracksWordHighlightStyle : hasConfig ( sourceOptions . textTracks . options . wordHighlightStyle )
63- } : { } )
64- } : { } )
65- } ) ;
66-
6767const getAdsOptions = ( adsOptions = { } ) => ( {
6868 adsAdTagUrl : adsOptions . adTagUrl ,
6969 adsShowCountdown : adsOptions . showCountdown ,
@@ -74,7 +74,9 @@ const getAdsOptions = (adsOptions = {}) => ({
7474 adsAdsInPlaylist : adsOptions . adsInPlaylist
7575} ) ;
7676
77- const getPlaylistWidgetOptions = ( playlistWidgetOptions = { } ) => ( {
77+ const getPlaylistOptions = ( playlistWidgetOptions = { } ) => ( {
78+ playlist : playlistWidgetOptions . playlist ,
79+ playlistByTag : playlistWidgetOptions . playlistByTag ,
7880 playlistWidgetDirection : playlistWidgetOptions . direction ,
7981 playlistWidgetTotal : playlistWidgetOptions . total
8082} ) ;
@@ -119,8 +121,7 @@ export const getAnalyticsFromPlayerOptions = (playerOptions) => filterDefaultsAn
119121 colors : playerOptions . colors && JSON . stringify ( playerOptions . colors ) ,
120122 controlBar : ( JSON . stringify ( playerOptions . controlBar ) !== JSON . stringify ( defaults . controlBar ) ) && JSON . stringify ( playerOptions . controlBar ) ,
121123
122- ...getCloudinaryOptions ( playerOptions . cloudinary ) ,
123- ...getSourceOptions ( playerOptions . sourceOptions ) ,
124+ ...getSourceOptions ( playerOptions . sourceOptions || { } ) ,
124125 ...getAdsOptions ( playerOptions . ads ) ,
125- ...getPlaylistWidgetOptions ( playerOptions . playlistWidget )
126+ ...getPlaylistOptions ( playerOptions . playlistWidget )
126127} ) ;
0 commit comments