{"version":3,"sources":["../ts/modules/lightboxes.ts"],"names":["Lightboxes","_initialized","$","Deferred","defaultFlashLightboxData","initialized","Promise","resolve","promise","width","height","close","removeFragment","trigger","bbq","removeState","removeClass","fadeOut","empty","open","child","hasClose","then","$child","$lightboxInner","create","attr","id","let","$lightbox","length","click","e","stopImmediatePropagation","hide","append","prependTo","addClass","retval","fadeTo","fadeIn","css","scrollTop","resize","lightboxInnerHeight","show","outerHeight","screenHeight","window","bodyHeight","document","lightbox","position","createLightbox","data","strategy","$content","content","get","type","getStrategy","toLowerCase","replace","populateContent","reject","initialize","lightboxData","each","index","lb","contextItemId","bindings","i","binding","inArray","pages","selector","cursor","state","getState","target","pushState","checkFragment","lbId","gallery","items","galleryItemData","select","FlashLightboxStrategy","swf","extend","appendTo","flash","ImageLightboxStrategy","GalleryLightboxStrategy","YouTubeLightboxStrategy","ContentLightboxStrategy","defaultImageLightboxData","src","img","defaultGalleryLightboxData","thumbnails","$galleryWrapper","$divMediaWrapper","$divMedia","$divDetailsWrapper","$divDetails","$divThumbnailsWrapper","$divScrollWrapper","$divThumbnails","thumbnailHPadding","$scrollArrowLeft","href","html","on","preventDefault","currentTarget","hasClass","scrollThumbnails","$scrollArrowRight","hasThumbnails","isNaN","isFinite","scrollLeft","thumbnailListWidth","thumbnailListVisibleWidth","thumbnailListItemWidth","hasDetails","fixWidth","thumbnailListItemInnerWidth","Math","floor","children","x","absolute","X","max","scrollTo","axis","duration","abs","galleryItem","thumbnail","caption","heading","$thumbnail","text","details","trim","remove","parseInt","activeGalleryItemData","defaultYouTubeLightboxData","key","autoplay","loop","related","search","supportsEmbeddedPlayer","getPlayerBaseUrl","videoId","encodeURIComponent","getPlayerUrl","youtube","querystring","this","rel","wmode","url","undefined","analytics_1","trackEvent","seamless","allowfullscreen","frameborder","defaultContentLightboxData","contentData","load","ref","location","pathname","response","status","find"],"mappings":"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","file":"lightboxes.js","sourcesContent":["import { trackEvent } from 'analytics';\r\nimport * as $ from 'jquery';\r\n\r\nmodule Lightboxes {\r\n\tconst _initialized = $.Deferred();\r\n\texport const initialized = Promise.resolve( _initialized.promise() );\r\n\r\n\texport interface ILightboxStrategy {\r\n\t\tpopulateContent( content: HTMLElement, data: Object ): PromiseLike;\r\n\t}\r\n\r\n\texport interface ILightbox {\r\n\t\topen();\r\n\r\n\t\tstrategy: ILightboxStrategy;\r\n\t}\r\n\r\n\texport interface ILightboxData {\r\n\t\tid: string;\r\n\t\ttype: string;\r\n\t}\r\n\r\n\texport interface IFlashLightboxData {\r\n\t\twidth?: number;\r\n\t\theight?: number;\r\n\t}\r\n\r\n\tconst defaultFlashLightboxData: IFlashLightboxData = {\r\n\t\twidth: 640,\r\n\t\theight: 400\r\n\t};\r\n\r\n\texport function close( removeFragment = true ): PromiseLike {\r\n\t\tconst $child = $( '#lightbox-inner > :last-child' );\r\n\t\t$child.trigger( 'closeLightbox' );\r\n\r\n\t\tif( removeFragment ) {\r\n\t\t\t$.bbq.removeState( 'lightbox' );\r\n\t\t}\r\n\r\n\t\treturn Promise.resolve(\r\n\t\t\t$( '#lightbox' )\r\n\t\t\t.removeClass()\r\n\t\t\t.fadeOut( 'slow' )\r\n\t\t\t.empty()\r\n\t\t\t.removeClass( 'lightbox-open' )\r\n\t\t\t.promise()\r\n\t\t);\r\n\t}\r\n\r\n\texport function open( child: HTMLElement, hasClose = true ) {\r\n\t\treturn close( false )\r\n\t\t\t.then( () => {\r\n\t\t\t\tconst $child = $( child ),\r\n\t\t\t\t\t$lightboxInner = $.create( 'div' ).attr( { id: 'lightbox-inner' } );\r\n\t\t\t\tlet $lightbox = $( '#lightbox' );\r\n\r\n\t\t\t\tif( $lightbox.length <= 0 ) {\r\n\t\t\t\t\t$lightbox =\r\n\t\t\t\t\t\t$.create( 'div' )\r\n\t\t\t\t\t\t.attr( { id: 'lightbox' } )\r\n\t\t\t\t\t\t.click( e => {\r\n\t\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\t\tclose();\r\n\t\t\t\t\t\t} )\r\n\t\t\t\t\t\t.hide();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$lightbox\r\n\t\t\t\t.empty()\r\n\t\t\t\t.append(\r\n\t\t\t\t\t$lightboxInner\r\n\t\t\t\t\t\t.append(\r\n\t\t\t\t\t\t\t$child\r\n\t\t\t\t\t\t\t.click( e => {\r\n\t\t\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\t\t} )\r\n\t\t\t\t\t\t)\r\n\t\t\t\t)\r\n\t\t\t\t.prependTo( 'body' );\r\n\r\n\t\t\t\tif( hasClose ) {\r\n\t\t\t\t\tconst $lightboxClose =\r\n\t\t\t\t\t\t$.create( 'a' )\r\n\t\t\t\t\t\t.addClass( 'lightbox-close' )\r\n\t\t\t\t\t\t.prependTo( $lightboxInner );\r\n\r\n\t\t\t\t\t$lightboxClose.click( e => {\r\n\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\tclose();\r\n\t\t\t\t\t} );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst retval =\r\n\t\t\t\t\t$lightbox\r\n\t\t\t\t\t.fadeTo( 0, 1 )\r\n\t\t\t\t\t.fadeIn( 'slow' )\r\n\t\t\t\t\t.css( 'position', 'fixed' )\r\n\t\t\t\t\t.promise();\r\n\r\n\t\t\t\t$( 'html, body' ).scrollTop( 0 );\r\n\t\t\t\t$( 'body' ).addClass( 'lightbox-open' );\r\n\r\n\t\t\t\t$child.trigger( 'openLightbox' );\r\n\r\n\t\t\t\tresize();\r\n\r\n\t\t\t\treturn Promise.resolve( retval );\r\n\t\t\t} );\r\n\t}\r\n\r\n\texport function resize() {\r\n\t\tconst $child = $( '#lightbox-inner > :last-child' ),\r\n\t\t\tlightboxInnerHeight = $( '#lightbox-inner' ).show().outerHeight( true ),\r\n\t\t\tscreenHeight = $( window ).height(),\r\n\t\t\tbodyHeight = $( document ).height(),\r\n\t\t\tlightbox = $( '#lightbox' );\r\n\t\tlet position = 'fixed',\r\n\t\t\theight = screenHeight;\r\n\r\n\t\tif( lightboxInnerHeight > screenHeight ) {\r\n\t\t\theight = lightboxInnerHeight;\r\n\t\t\tposition = 'absolute';\r\n\r\n\t\t\tif( lightboxInnerHeight < bodyHeight ) {\r\n\t\t\t\theight = bodyHeight;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlightbox\r\n\t\t.height( height )\r\n\t\t.css( 'position', position );\r\n\r\n\t\t$child.trigger( 'resizeLightbox' );\r\n\r\n\t\treturn Promise.resolve( null );\r\n\t}\r\n\r\n\texport function initialize( lightboxData: IDictionary ) {\r\n\t\t$.each( lightboxData, ( index, lb ) => {\r\n\t\t\tconst contextItemId = $( 'html' ).data( 'context-item' );\r\n\r\n\t\t\t$.each( lb.bindings || [], ( i, binding ) => {\r\n\t\t\t\tif( $.inArray( contextItemId, binding.pages ) >= 0 ) {\r\n\t\t\t\t\t$(binding.selector)\r\n\t\t\t\t\t.data( 'lightboxid', lb.id )\r\n\t\t\t\t\t.css( { cursor: 'pointer' } )\r\n\t\t\t\t\t.click( e => {\r\n\t\t\t\t\t\tconst state = $.bbq.getState();\r\n\t\t\t\t\t\tstate.lightbox = $(e.target).data( 'lightboxid' );\r\n\t\t\t\t\t\t$.bbq.pushState( state );\r\n\t\t\t\t\t} );\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\t\t} );\r\n\r\n\t\t_initialized.resolve( lightboxData );\r\n\t\treturn initialized;\r\n\t}\r\n\r\n\texport function checkFragment() {\r\n\t\tinitialized.then( lightboxData => {\r\n\t\t\tlet lbId = $.bbq.getState( 'lightbox' );\r\n\t\t\tif( typeof lightboxData === 'undefined' || !lbId ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t$.each( lightboxData, ( i, data ) => {\r\n\t\t\t\tif( lbId === data.id ) {\r\n\t\t\t\t\tif( data.gallery && data.gallery.items && data.gallery.items.length ) {\r\n\t\t\t\t\t\tlbId = data.gallery.items[ 0 ].id || lbId;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif( lbId !== data.id ) {\r\n\t\t\t\t\tif( data.gallery && data.gallery.items && data.gallery.items.length ) {\r\n\t\t\t\t\t\tlet galleryItemData: any;\r\n\t\t\t\t\t\t$.each( data.gallery.items, ( i, e ) => {\r\n\t\t\t\t\t\t\tif( lbId === e.id ) {\r\n\t\t\t\t\t\t\t\tgalleryItemData = e;\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} );\r\n\t\t\t\t\t\tif( !galleryItemData || galleryItemData.select && galleryItemData.select() ) {\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcreateLightbox( data, getStrategy( data.type ) )\r\n\t\t\t\t.then( content => { open( content, !!data.hasClose ); } );\r\n\t\t\t\treturn false;\r\n\t\t\t} );\r\n\t\t} );\r\n\t}\r\n\r\n\texport function createLightbox( data: any, strategy?: ILightboxStrategy ): PromiseLike {\r\n\t\tconst $content = $.create( 'div' ).addClass( 'lightbox-content' ),\r\n\t\t\tcontent = $content.get( 0 ) as HTMLElement,\r\n\t\t\ttype: string = data.type;\r\n\r\n\t\tif( type ) {\r\n\t\t\tif( !strategy ) {\r\n\t\t\t\tstrategy = getStrategy( type );\r\n\t\t\t}\r\n\r\n\t\t\t$content.addClass( type.toLowerCase().replace( /\\s+/g, '-' ) );\r\n\t\t}\r\n\r\n\t\tif( strategy ) {\r\n\t\t\treturn strategy.populateContent( content, data ).then( () => content );\r\n\t\t} else {\r\n\t\t\treturn Promise.reject( null );\r\n\t\t}\r\n\t};\r\n\r\n\texport class FlashLightboxStrategy implements ILightboxStrategy {\r\n\t\tpublic populateContent( content: HTMLElement, data: { swf: IFlashLightboxData; } ) {\r\n\t\t\tconst swf: IFlashLightboxData = $.extend( {}, defaultFlashLightboxData, data.swf ),\r\n\t\t\t\t$flashContainer =\r\n\t\t\t\t\t$.create( 'div' )\r\n\t\t\t\t\t.addClass( 'flash-container' )\r\n\t\t\t\t\t.css( {\r\n\t\t\t\t\t\twidth: swf.width + 'px',\r\n\t\t\t\t\t\theight: swf.height + 'px'\r\n\t\t\t\t\t} )\r\n\t\t\t\t\t.appendTo( content );\r\n\r\n\t\t\t$flashContainer.flash( >swf );\r\n\r\n\t\t\treturn Promise.resolve( null );\r\n\t\t}\r\n\t}\r\n\r\n\texport function getStrategy( type: string ): ILightboxStrategy {\r\n\t\tswitch( type ) {\r\n\t\tcase 'Flash Lightbox Gallery Item':\r\n\t\tcase 'Flash Lightbox':\r\n\t\t\treturn new FlashLightboxStrategy;\r\n\t\tcase 'Image Lightbox Gallery Item':\r\n\t\tcase 'Image Lightbox':\r\n\t\t\treturn new ImageLightboxStrategy;\r\n\t\tcase 'Gallery Lightbox':\r\n\t\t\treturn new GalleryLightboxStrategy;\r\n\t\tcase 'YouTube Lightbox Gallery Item':\r\n\t\tcase 'YouTube Lightbox':\r\n\t\t\treturn new YouTubeLightboxStrategy;\r\n\t\tcase 'Content Lightbox':\r\n\t\t\treturn new ContentLightboxStrategy;\r\n\t\tdefault: return null;\r\n\t\t}\r\n\t}\r\n\r\n\texport interface IImageLightboxData {\r\n\t\tsrc: string;\r\n\t\twidth?: number;\r\n\t\theight?: number;\r\n\t}\r\n\r\n\tconst defaultImageLightboxData: IImageLightboxData = {\r\n\t\tsrc: '',\r\n\t\twidth: 640,\r\n\t\theight: 400\r\n\t};\r\n\r\n\texport class ImageLightboxStrategy implements ILightboxStrategy {\r\n\t\tpublic populateContent( content: HTMLElement, data: { img: IImageLightboxData; } ) {\r\n\t\t\tconst { src, width, height }: IImageLightboxData = $.extend( {}, defaultImageLightboxData, data.img );\r\n\r\n\t\t\t$.create( 'img' )\r\n\t\t\t.attr( { src, width, height } )\r\n\t\t\t.appendTo( content );\r\n\r\n\t\t\treturn Promise.resolve( null );\r\n\t\t}\r\n\t}\r\n\r\n\texport interface IGalleryLightboxData {\r\n\t\titems: Array;\r\n\t\twidth?: number;\r\n\t\theight?: number;\r\n\t\tthumbnails?: number;\r\n\t}\r\n\r\n\tconst defaultGalleryLightboxData: IGalleryLightboxData = {\r\n\t\titems: [],\r\n\t\twidth: 518,\r\n\t\theight: 358,\r\n\t\tthumbnails: 3\r\n\t};\r\n\r\n\texport class GalleryLightboxStrategy implements ILightboxStrategy {\r\n\t\tpublic populateContent( content: HTMLElement, data: { gallery: IImageLightboxData; } ) {\r\n\t\t\tconst $content = $( content ),\r\n\t\t\t\tgallery = $.extend( {}, defaultGalleryLightboxData, data.gallery ),\r\n\t\t\t\t$galleryWrapper =\r\n\t\t\t\t\t$.create( 'section' )\r\n\t\t\t\t\t.addClass( 'lightbox-gallery-wrapper' )\r\n\t\t\t\t\t.appendTo( content ),\r\n\t\t\t\t$divMediaWrapper =\r\n\t\t\t\t\t$.create( 'div' )\r\n\t\t\t\t\t.addClass( 'lightbox-media-wrapper' )\r\n\t\t\t\t\t.width( gallery.width )\r\n\t\t\t\t\t.height( gallery.height )\r\n\t\t\t\t\t.appendTo( $galleryWrapper ),\r\n\t\t\t\t$divMedia =\r\n\t\t\t\t\t$.create( 'div' )\r\n\t\t\t\t\t.addClass( 'lightbox-media' )\r\n\t\t\t\t\t.appendTo( $divMediaWrapper ),\r\n\t\t\t\t$divDetailsWrapper =\r\n\t\t\t\t\t$.create( 'div' )\r\n\t\t\t\t\t.addClass( 'lightbox-details-wrapper' ),\r\n\t\t\t\t$divDetails =\r\n\t\t\t\t\t$.create( 'div' )\r\n\t\t\t\t\t.addClass( 'lightbox-details' )\r\n\t\t\t\t\t.appendTo( $divDetailsWrapper ),\r\n\t\t\t\t$divThumbnailsWrapper =\r\n\t\t\t\t\t$.create( 'div' )\r\n\t\t\t\t\t.addClass( 'lightbox-thumbnails-wrapper' ),\r\n\t\t\t\t$divScrollWrapper =\r\n\t\t\t\t\t$.create( 'div' )\r\n\t\t\t\t\t.addClass( 'lightbox-scroll-wrapper' )\r\n\t\t\t\t\t.appendTo( $divThumbnailsWrapper ),\r\n\t\t\t\t$divThumbnails =\r\n\t\t\t\t\t$.create( 'div' )\r\n\t\t\t\t\t.addClass( 'lightbox-thumbnails' )\r\n\t\t\t\t\t.appendTo( $divScrollWrapper ),\r\n\t\t\t\tthumbnailHPadding = 21,\r\n\t\t\t\t$scrollArrowLeft =\r\n\t\t\t\t\t$.create( 'a' )\r\n\t\t\t\t\t.addClass( 'lightbox-scroll-arrow lightbox-scroll-arrow-left lightbox-scroll-arrow-off' )\r\n\t\t\t\t\t.attr( { href: '#' } )\r\n\t\t\t\t\t.html( ' ' )\r\n\t\t\t\t\t.on( 'click', e => {\r\n\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\tif( !$(e.currentTarget).hasClass( 'lightbox-scroll-arrow-off' ) ) scrollThumbnails(-gallery.thumbnails );\r\n\t\t\t\t\t} )\r\n\t\t\t\t\t.hide()\r\n\t\t\t\t\t.prependTo( $divThumbnailsWrapper ),\r\n\t\t\t\t$scrollArrowRight =\r\n\t\t\t\t\t$.create( 'a' )\r\n\t\t\t\t\t.addClass( 'lightbox-scroll-arrow lightbox-scroll-arrow-right lightbox-scroll-arrow-off' )\r\n\t\t\t\t\t.attr( { href: '#' } )\r\n\t\t\t\t\t.html( ' ' )\r\n\t\t\t\t\t.on( 'click', e => {\r\n\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\tif( !$(e.currentTarget).hasClass( 'lightbox-scroll-arrow-off' ) ) scrollThumbnails( gallery.thumbnails );\r\n\t\t\t\t\t} )\r\n\t\t\t\t\t.hide()\r\n\t\t\t\t\t.appendTo( $divThumbnailsWrapper ),\r\n\t\t\t\thasThumbnails = !isNaN( gallery.thumbnails ) && isFinite( gallery.thumbnails ) && ( gallery.thumbnails > 0 ) && ( gallery.items.length > 1 );\r\n\t\t\tlet scrollLeft = 0,\r\n\t\t\t\tthumbnailListWidth = 0,\r\n\t\t\t\tthumbnailListVisibleWidth = 0,\r\n\t\t\t\tthumbnailListItemWidth = 0,\r\n\t\t\t\thasDetails = false;\r\n\r\n\t\t\t$content.on( 'closeLightbox', () => {\r\n\t\t\t\t$.each( gallery.items, ( i, e ) => { e.select = null; } );\r\n\t\t\t} );\r\n\r\n\t\t\tfunction fixWidth() {\r\n\t\t\t\tthumbnailListVisibleWidth = $divThumbnailsWrapper.width();\r\n\t\t\t\tthumbnailListItemWidth = Math.floor( thumbnailListVisibleWidth / gallery.thumbnails );\r\n\t\t\t\tconst thumbnailListItemInnerWidth = thumbnailListItemWidth - ( thumbnailHPadding * 2 );\r\n\t\t\t\tthumbnailListWidth = 0;\r\n\r\n\t\t\t\t$divThumbnails.children().each( ( i, e ) => {\r\n\t\t\t\t\t$(e).width( thumbnailListItemInnerWidth );\r\n\t\t\t\t\tthumbnailListWidth += thumbnailListItemWidth;\r\n\t\t\t\t} );\r\n\r\n\t\t\t\t$divThumbnails.width( thumbnailListWidth );\r\n\t\t\t};\r\n\r\n\t\t\tfunction scrollThumbnails( x: number, absolute?: boolean ) {\r\n\t\t\t\tfixWidth();\r\n\r\n\t\t\t\tlet X = x * thumbnailListItemWidth;\r\n\t\t\t\tif( !absolute ) X += scrollLeft;\r\n\t\t\t\tX = Math.max( 0, X );\r\n\r\n\t\t\t\t$divScrollWrapper.scrollTo( X + 'px', { axis: 'x', duration: 500 * Math.abs( ( X - scrollLeft ) / thumbnailListItemWidth ) } );\r\n\r\n\t\t\t\tscrollLeft = X;\r\n\r\n\t\t\t\tif( X < thumbnailListItemWidth ) {\r\n\t\t\t\t\t$scrollArrowLeft.removeClass( 'lightbox-scroll-arrow-on' ).addClass( 'lightbox-scroll-arrow-off' );\r\n\t\t\t\t\t$scrollArrowLeft.fadeOut( 'slow' );\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$scrollArrowLeft.removeClass( 'lightbox-scroll-arrow-off' ).addClass( 'lightbox-scroll-arrow-on' );\r\n\t\t\t\t\t$scrollArrowLeft.fadeIn( 'slow' );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif( X > thumbnailListWidth - thumbnailListVisibleWidth ) {\r\n\t\t\t\t\t$scrollArrowRight.removeClass( 'lightbox-scroll-arrow-on' ).addClass( 'lightbox-scroll-arrow-off' );\r\n\t\t\t\t\t$scrollArrowRight.fadeOut( 'slow' );\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$scrollArrowRight.removeClass( 'lightbox-scroll-arrow-off' ).addClass( 'lightbox-scroll-arrow-on' );\r\n\t\t\t\t\t$scrollArrowRight.fadeIn( 'slow' );\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\t$.each( gallery.items, ( index, galleryItemData ) => {\r\n\t\t\t\tconst galleryItem = $.extend( {}, { thumbnail: {}, caption: '', heading: '', content: '' }, galleryItemData.galleryItem ),\r\n\t\t\t\t\t$thumbnail =\r\n\t\t\t\t\t\t$.create( 'figure' )\r\n\t\t\t\t\t\t.addClass( 'lightbox-thumbnail' )\r\n\t\t\t\t\t\t.append(\r\n\t\t\t\t\t\t\t$.create( 'img' )\r\n\t\t\t\t\t\t\t.attr( {\r\n\t\t\t\t\t\t\t\tsrc: galleryItem.thumbnail.src,\r\n\t\t\t\t\t\t\t\twidth: galleryItem.thumbnail.width,\r\n\t\t\t\t\t\t\t\theight: galleryItem.thumbnail.height\r\n\t\t\t\t\t\t\t} )\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t.append(\r\n\t\t\t\t\t\t\t$.create( 'figcaption' )\r\n\t\t\t\t\t\t\t.addClass( 'lightbox-thumbnail-caption' )\r\n\t\t\t\t\t\t\t.text( galleryItem.caption )\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t.click( e => {\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t$.bbq.pushState( { lightbox: galleryItemData.id } );\r\n\t\t\t\t\t\t} )\r\n\t\t\t\t\t\t.appendTo( $divThumbnails ),\r\n\t\t\t\t\tdetails =\r\n\t\t\t\t\t\t$.create( 'div' ).addClass( 'lightbox-details-inner' )\r\n\t\t\t\t\t\t.append(\r\n\t\t\t\t\t\t\t$.create( 'h1' )\r\n\t\t\t\t\t\t\t.addClass( 'etlightboxgalleryitem-heading' )\r\n\t\t\t\t\t\t\t.text( galleryItem.heading )\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t.append(\r\n\t\t\t\t\t\t\t$.create( 'div' )\r\n\t\t\t\t\t\t\t.addClass( 'etlightboxgalleryitem-content content' )\r\n\t\t\t\t\t\t\t.html( galleryItem.content )\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\tif( galleryItem.heading.trim() || galleryItem.content.trim() ) {\r\n\t\t\t\t\thasDetails = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tgalleryItemData.select = () => {\r\n\t\t\t\t\t$divMedia.children().remove();\r\n\t\t\t\t\t$divDetails.children().remove();\r\n\t\t\t\t\t$divThumbnails.children().removeClass( 'selected' );\r\n\t\t\t\t\t$thumbnail.addClass( 'selected' );\r\n\r\n\t\t\t\t\tif( hasDetails ) {\r\n\t\t\t\t\t\t$divDetails.append( details );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tscrollThumbnails( parseInt(index), true );\r\n\r\n\t\t\t\t\treturn getStrategy( galleryItemData.type ).populateContent( $divMedia.get( 0 ) as HTMLElement, galleryItemData );\r\n\t\t\t\t};\r\n\t\t\t} );\r\n\r\n\t\t\tif( hasDetails ) {\r\n\t\t\t\t$galleryWrapper.addClass( 'with-details' );\r\n\t\t\t\t$galleryWrapper.append( $divDetailsWrapper );\r\n\t\t\t}\r\n\r\n\t\t\tif( hasThumbnails ) {\r\n\t\t\t\t$galleryWrapper.addClass( 'with-thumbnails' );\r\n\t\t\t\t$galleryWrapper.append( $divThumbnailsWrapper );\r\n\t\t\t}\r\n\r\n\t\t\t$content.on( 'openLightbox', () => {\r\n\t\t\t\tconst lbId = $.bbq.getState( 'lightbox' );\r\n\t\t\t\tlet activeGalleryItemData: any;\r\n\r\n\t\t\t\tfixWidth();\r\n\r\n\t\t\t\t$.each( gallery.items, ( index, galleryItemData ) => {\r\n\t\t\t\t\tif( !activeGalleryItemData || lbId === galleryItemData.id ) {\r\n\t\t\t\t\t\tactiveGalleryItemData = galleryItemData;\r\n\t\t\t\t\t}\r\n\t\t\t\t} );\r\n\r\n\t\t\t\tif( activeGalleryItemData && activeGalleryItemData.select ) {\r\n\t\t\t\t\tactiveGalleryItemData.select().then( () => { fixWidth(); } );\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\r\n\t\t\treturn Promise.resolve( null );\r\n\t\t}\r\n\t}\r\n\r\n\texport interface IYouTubeLightboxData {\r\n\t\tkey: string;\r\n\t\twidth?: number;\r\n\t\theight?: number;\r\n\t\tautoplay?: boolean;\r\n\t\tloop?: boolean;\r\n\t\trelated?: boolean;\r\n\t\tsearch?: boolean;\r\n\t}\r\n\r\n\tconst defaultYouTubeLightboxData: IYouTubeLightboxData = {\r\n\t\tkey: '',\r\n\t\twidth: 510,\r\n\t\theight: 350,\r\n\t\tautoplay: true,\r\n\t\tloop: false,\r\n\t\trelated: false,\r\n\t\tsearch: false\r\n\t};\r\n\r\n\texport class YouTubeLightboxStrategy implements ILightboxStrategy {\r\n\t\tpublic supportsEmbeddedPlayer() {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tprivate getPlayerBaseUrl( videoId: string ) {\r\n\t\t\treturn `https://www.youtube.com/embed/${encodeURIComponent(videoId)}`;\r\n\t\t}\r\n\r\n\t\tpublic getPlayerUrl( youtube: IYouTubeLightboxData ) {\r\n\t\t\tyoutube = $.extend( {}, defaultYouTubeLightboxData, youtube );\r\n\r\n\t\t\treturn (($.param)).querystring( this.getPlayerBaseUrl( youtube.key ), {\r\n\t\t\t\tautoplay: youtube.autoplay ? '1' : '0',\r\n\t\t\t\tloop: youtube.loop ? '1' : '0',\r\n\t\t\t\tsearch: youtube.search ? '1' : '0',\r\n\t\t\t\trel: youtube.related ? '1' : '0',\r\n\t\t\t\twmode: 'opaque'\r\n\t\t\t} );\r\n\t\t}\r\n\r\n\t\tpublic populateContent( content: HTMLElement, data: { youtube: IYouTubeLightboxData; } ) {\r\n\t\t\tconst youtube: IYouTubeLightboxData = $.extend( {}, defaultYouTubeLightboxData, data.youtube ),\r\n\t\t\t\turl = this.getPlayerUrl( youtube );\r\n\t\t\tif($('html').attr('data-category') != undefined && $('html').attr('data-category') != ''){\t\t\t\t\t\r\n\t\t\t\ttrackEvent( $('html').attr('data-category'), 'Lightbox', this.getPlayerBaseUrl( youtube.key ) );\r\n\t\t\t}\r\n\t\t\telse{\r\n trackEvent( 'Video', 'Lightbox', this.getPlayerBaseUrl( youtube.key ) );\r\n\t\t\t}\r\n\r\n\t\t\tif( this.supportsEmbeddedPlayer() ) {\r\n\t\t\t\t$.create( 'iframe' )\r\n\t\t\t\t.addClass( 'youtube-video' )\r\n\t\t\t\t.attr( {\r\n\t\t\t\t\ttype: 'text/html',\r\n\t\t\t\t\tseamless: 'seamless',\r\n\t\t\t\t\tallowfullscreen: 'allowfullscreen',\r\n\t\t\t\t\tframeborder: '0',\r\n\t\t\t\t\tsrc: url,\r\n\t\t\t\t\twidth: youtube.width,\r\n\t\t\t\t\theight: youtube.height\r\n\t\t\t\t} )\r\n\t\t\t\t.appendTo( content );\r\n\t\t\t} else {\r\n\t\t\t\t$.create( 'a' )\r\n\t\t\t\t.addClass( 'youtube-link' )\r\n\t\t\t\t.attr( { href: url, target: '_blank' } )\r\n\t\t\t\t.append(\r\n\t\t\t\t\t$.create( 'img' )\r\n\t\t\t\t\t.addClass( 'youtube-image' )\r\n\t\t\t\t\t.attr( {\r\n\t\t\t\t\t\tsrc: '//img.youtube.com/vi/' + encodeURIComponent( youtube.key ) + '/0.jpg',\r\n\t\t\t\t\t\twidth: youtube.width,\r\n\t\t\t\t\t\theight: youtube.height\r\n\t\t\t\t\t} )\r\n\t\t\t\t)\r\n\t\t\t\t.appendTo( content );\r\n\t\t\t}\r\n\r\n\t\t\treturn Promise.resolve( null );\r\n\t\t}\r\n\t}\r\n\r\n\texport interface IContentLightboxData {\r\n\t\turl: string;\r\n\t\twidth?: number;\r\n\t}\r\n\r\n\tconst defaultContentLightboxData: IContentLightboxData = {\r\n\t\turl: '',\r\n\t\twidth: 600\r\n\t};\r\n\r\n\texport class ContentLightboxStrategy implements ILightboxStrategy {\r\n\t\tpublic populateContent( content: HTMLElement, data: { content: IContentLightboxData; } ) {\r\n\t\t\tconst $content = $( content ),\r\n\t\t\t\tcontentData: IContentLightboxData = $.extend( {}, defaultContentLightboxData, data.content );\r\n\r\n\t\t\t$content.width( contentData.width + 'px' );\r\n\t\t\t$content.addClass( 'loading' );\r\n\t\t\t$content.load( (($.param)).querystring( contentData.url, { ref: location.pathname + location.search } ), ( response, status ) => {\r\n\t\t\t\tif( status === 'success' ) {\r\n\t\t\t\t\t$content.removeClass( 'loading' );\r\n\t\t\t\t\tresize();\r\n\t\t\t\t\t$content.find( '*' ).on( 'load resize', () => { resize(); } );\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\r\n\t\t\treturn Promise.resolve( null );\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport=Lightboxes;\r\n"]}