@@ -10,8 +10,8 @@ export default class Overlay {
1010
1111 this . onSlidesClicked = this . onSlidesClicked . bind ( this ) ;
1212
13- this . linkPreviewSelector = null ;
14- this . mediaPreviewSelector = '[data-preview-image], [data-preview-video]' ;
13+ this . iframeTriggerSelector = null ;
14+ this . mediaTriggerSelector = '[data-preview-image], [data-preview-video]' ;
1515
1616 this . state = { } ;
1717
@@ -21,18 +21,18 @@ export default class Overlay {
2121
2222 // Enable link previews globally
2323 if ( this . Reveal . getConfig ( ) . previewLinks ) {
24- this . linkPreviewSelector = 'a[href]:not([data-preview-link=false]), [data-preview-link]:not(a):not([data-preview-link=false])' ;
24+ this . iframeTriggerSelector = 'a[href]:not([data-preview-link=false]), [data-preview-link]:not(a):not([data-preview-link=false])' ;
2525 }
2626 // Enable link previews for individual elements
2727 else {
28- this . linkPreviewSelector = '[data-preview-link]:not([data-preview-link=false])' ;
28+ this . iframeTriggerSelector = '[data-preview-link]:not([data-preview-link=false])' ;
2929 }
3030
31- this . hasLinkPreviews = this . Reveal . getSlidesElement ( ) . querySelectorAll ( this . linkPreviewSelector ) . length > 0 ;
32- this . hasMediaPreviews = this . Reveal . getSlidesElement ( ) . querySelectorAll ( this . mediaPreviewSelector ) . length > 0 ;
31+ const hasLinkPreviews = this . Reveal . getSlidesElement ( ) . querySelectorAll ( this . iframeTriggerSelector ) . length > 0 ;
32+ const hasMediaPreviews = this . Reveal . getSlidesElement ( ) . querySelectorAll ( this . mediaTriggerSelector ) . length > 0 ;
3333
3434 // Only add the listener when there are previewable elements in the slides
35- if ( this . hasLinkPreviews || this . hasMediaPreviews ) {
35+ if ( hasLinkPreviews || hasMediaPreviews ) {
3636 this . Reveal . getSlidesElement ( ) . addEventListener ( 'click' , this . onSlidesClicked , false ) ;
3737 }
3838 else {
@@ -56,11 +56,11 @@ export default class Overlay {
5656 }
5757
5858 /**
59- * Opens a preview window for the target URL.
59+ * Opens a lightbox that previews the target URL.
6060 *
61- * @param {string } url - url for preview iframe src
61+ * @param {string } url - url for lightbox iframe src
6262 */
63- showIframePreview ( url ) {
63+ previewIframe ( url ) {
6464
6565 this . close ( ) ;
6666
@@ -95,19 +95,19 @@ export default class Overlay {
9595 this . close ( ) ;
9696 } , false ) ;
9797
98- this . Reveal . dispatchEvent ( { type : 'showiframepreview ' , data : { url } } ) ;
98+ this . Reveal . dispatchEvent ( { type : 'previewiframe ' , data : { url } } ) ;
9999
100100 }
101101
102102 /**
103- * Opens a preview window that provides a larger view of the
103+ * Opens a lightbox window that provides a larger view of the
104104 * given image/video.
105105 *
106106 * @param {string } url - url to the image/video to preview
107107 * @param {image|video } mediaType
108108 * @param {string } [fitMode] - the fit mode to use for the preview
109109 */
110- showMediaPreview ( url , mediaType , fitMode ) {
110+ previewMedia ( url , mediaType , fitMode ) {
111111
112112 if ( mediaType !== 'image' && mediaType !== 'video' ) {
113113 console . warn ( 'Please specify a valid media type to preview (image|video)' ) ;
@@ -155,6 +155,8 @@ export default class Overlay {
155155 this . close ( ) ;
156156 } , false ) ;
157157
158+ this . Reveal . dispatchEvent ( { type : 'previewimage' , data : { url } } ) ;
159+
158160 }
159161 else if ( mediaType === 'video' ) {
160162
@@ -179,6 +181,8 @@ export default class Overlay {
179181 `<span class="r-overlay-error">Unable to load video.</span>` ;
180182 } , false ) ;
181183
184+ this . Reveal . dispatchEvent ( { type : 'previewvideo' , data : { url } } ) ;
185+
182186 }
183187 else {
184188 throw new Error ( 'Please specify a valid media type to preview' ) ;
@@ -189,7 +193,17 @@ export default class Overlay {
189193 event . preventDefault ( ) ;
190194 } , false ) ;
191195
192- this . Reveal . dispatchEvent ( { type : 'showmediapreview' , data : { mediaType, url } } ) ;
196+ }
197+
198+ previewImage ( url , fitMode ) {
199+
200+ this . previewMedia ( url , 'image' , fitMode ) ;
201+
202+ }
203+
204+ previewVideo ( url , fitMode ) {
205+
206+ this . previewMedia ( url , 'video' , fitMode ) ;
193207
194208 }
195209
@@ -300,13 +314,13 @@ export default class Overlay {
300314 setState ( state ) {
301315
302316 if ( state . previewIframe ) {
303- this . showIframePreview ( state . previewIframe ) ;
317+ this . previewIframe ( state . previewIframe ) ;
304318 }
305319 else if ( state . previewImage ) {
306- this . showMediaPreview ( state . previewImage , 'image' , state . previewFit ) ;
320+ this . previewImage ( state . previewImage , state . previewFit ) ;
307321 }
308322 else if ( state . previewVideo ) {
309- this . showMediaPreview ( state . previewVideo , 'video' , state . previewFit ) ;
323+ this . previewVideo ( state . previewVideo , state . previewFit ) ;
310324 }
311325 else {
312326 this . close ( ) ;
@@ -318,27 +332,27 @@ export default class Overlay {
318332
319333 const target = event . target ;
320334
321- const linkTarget = target . closest ( this . linkPreviewSelector ) ;
322- const mediaTarget = target . closest ( this . mediaPreviewSelector ) ;
335+ const linkTarget = target . closest ( this . iframeTriggerSelector ) ;
336+ const mediaTarget = target . closest ( this . mediaTriggerSelector ) ;
323337
324- // Was a link preview clicked?
338+ // Was an iframe lightbox trigger clicked?
325339 if ( linkTarget ) {
326340 if ( event . metaKey || event . shiftKey || event . altKey ) {
327341 // Let the browser handle meta keys naturally so users can cmd+click, cmd+shift+click, shift+click, alt+click, etc.
328342 return ;
329343 }
330344 let url = linkTarget . getAttribute ( 'href' ) || linkTarget . getAttribute ( 'data-preview-link' ) ;
331345 if ( url ) {
332- this . showIframePreview ( url ) ;
346+ this . previewIframe ( url ) ;
333347 event . preventDefault ( ) ;
334348 }
335349 }
336- // Was a media preview clicked?
350+ // Was a media lightbox trigger clicked?
337351 else if ( mediaTarget ) {
338352 if ( mediaTarget . hasAttribute ( 'data-preview-image' ) ) {
339353 let url = mediaTarget . dataset . previewImage || mediaTarget . getAttribute ( 'src' ) ;
340354 if ( url ) {
341- this . showMediaPreview ( url , 'image' , mediaTarget . dataset . previewFit ) ;
355+ this . previewImage ( url , mediaTarget . dataset . previewFit ) ;
342356 event . preventDefault ( ) ;
343357 }
344358 }
@@ -351,7 +365,7 @@ export default class Overlay {
351365 }
352366 }
353367 if ( url ) {
354- this . showMediaPreview ( url , 'video' , mediaTarget . dataset . previewFit ) ;
368+ this . previewVideo ( url , mediaTarget . dataset . previewFit ) ;
355369 event . preventDefault ( ) ;
356370 }
357371 }
0 commit comments