-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmin.lightgallery.js
1 lines (1 loc) · 17.7 KB
/
min.lightgallery.js
1
!function(){"use strict";var e={mode:"lg-slide",cssEasing:"ease",easing:"linear",speed:600,height:"100%",width:"100%",addClass:"",startClass:"lg-start-zoom",backdropDuration:150,hideBarsDelay:6e3,useLeft:!1,closable:!0,loop:!0,escKey:!0,keyPress:!0,controls:!0,slideEndAnimatoin:!0,hideControlOnEnd:!1,mousewheel:!0,getCaptionFromTitleOrAlt:!0,appendSubHtmlTo:".lg-sub-html",subHtmlSelectorRelative:!1,preload:1,showAfterLoad:!0,selector:"",selectWithin:"",nextHtml:"",prevHtml:"",index:!1,iframeMaxWidth:"100%",download:!1,counter:!0,appendCounterTo:".lg-toolbar",swipeThreshold:50,enableSwipe:!0,enableDrag:!0,dynamic:!1,dynamicEl:[],galleryId:1};function t(t,s){if(this.el=t,this.$el=$(t),this.s=$.extend({},e,s),this.s.dynamic&&"undefined"!==this.s.dynamicEl&&this.s.dynamicEl.constructor===Array&&!this.s.dynamicEl.length)throw"When using dynamic mode, you must also define dynamicEl as an Array.";return this.modules={},this.lGalleryOn=!1,this.lgBusy=!1,this.hideBartimeout=!1,this.isTouch="ontouchstart"in document.documentElement,this.s.slideEndAnimatoin&&(this.s.hideControlOnEnd=!1),this.s.dynamic?this.$items=this.s.dynamicEl:"this"===this.s.selector?this.$items=this.$el:""!==this.s.selector?this.s.selectWithin?this.$items=$(this.s.selectWithin).find(this.s.selector):this.$items=this.$el.find($(this.s.selector)):this.$items=this.$el.children(),this.$slide="",this.$outer="",this.init(),this}t.prototype.init=function(){var e=this;e.s.preload>e.$items.length&&(e.s.preload=e.$items.length);var t=window.location.hash;t.indexOf("lg="+this.s.galleryId)>0&&(e.index=parseInt(t.split("&slide=")[1],10),$("body").addClass("lg-from-hash"),$("body").hasClass("lg-on")||(setTimeout(function(){e.build(e.index)}),$("body").addClass("lg-on"))),e.s.dynamic?(e.$el.trigger("onBeforeOpen.lg"),e.index=e.s.index||0,$("body").hasClass("lg-on")||setTimeout(function(){e.build(e.index),$("body").addClass("lg-on")})):e.$items.on("click.lgcustom",function(t){try{t.preventDefault(),t.preventDefault()}catch(e){t.returnValue=!1}e.$el.trigger("onBeforeOpen.lg"),e.index=e.s.index||e.$items.index(this),$("body").hasClass("lg-on")||(e.build(e.index),$("body").addClass("lg-on"))})},t.prototype.build=function(e){var t=this;t.structure(),$.each($.fn.lightGallery.modules,function(e){t.modules[e]=new $.fn.lightGallery.modules[e](t.el)}),t.slide(e,!1,!1,!1),t.s.keyPress&&t.keyPress(),t.$items.length>1?(t.arrow(),setTimeout(function(){t.enableDrag(),t.enableSwipe()},50),t.s.mousewheel&&t.mousewheel()):t.$slide.on("click.lg",function(){t.$el.trigger("onSlideClick.lg")}),t.counter(),t.closeGallery(),t.$el.trigger("onAfterOpen.lg"),t.$outer.on("mousemove.lg click.lg touchstart.lg",function(){t.$outer.removeClass("lg-hide-items"),clearTimeout(t.hideBartimeout),t.hideBartimeout=setTimeout(function(){t.$outer.addClass("lg-hide-items")},t.s.hideBarsDelay)}),t.$outer.trigger("mousemove.lg")},t.prototype.structure=function(){var e,t="",s="",i=0,l="",o=this;for($("body").append('<div class="lg-backdrop"></div>'),$(".lg-backdrop").css("transition-duration",this.s.backdropDuration+"ms"),i=0;i<this.$items.length;i++)t+='<div class="lg-item"></div>';if(this.s.controls&&this.$items.length>1&&(s='<div class="lg-actions"><button class="lg-prev lg-icon"><i class="fas fa-arrow-alt-circle-left"></i></button><button class="lg-next lg-icon"><i class="fas fa-arrow-alt-circle-right"></i></button></div>'),".lg-sub-html"===this.s.appendSubHtmlTo&&(l='<div class="lg-sub-html"></div>'),e='<div class="lg-outer '+this.s.addClass+" "+this.s.startClass+'"><div class="lg" style="width:'+this.s.width+"; height:"+this.s.height+'"><div class="lg-inner">'+t+'</div><div class="lg-toolbar lg-group"><span class="lg-close lg-icon"><i class="fas fa-times"></i></span></div>'+s+l+"</div></div>",$("body").append(e),this.$outer=$(".lg-outer"),this.$slide=this.$outer.find(".lg-item"),this.s.useLeft?(this.$outer.addClass("lg-use-left"),this.s.mode="lg-slide"):this.$outer.addClass("lg-use-css3"),o.setTop(),$(window).on("resize.lg orientationchange.lg",function(){setTimeout(function(){o.setTop()},100)}),this.$slide.eq(this.index).addClass("lg-current"),this.doCss()?this.$outer.addClass("lg-css3"):(this.$outer.addClass("lg-css"),this.s.speed=0),this.$outer.addClass(this.s.mode),this.s.enableDrag&&this.$items.length>1&&this.$outer.addClass("lg-grab"),this.s.showAfterLoad&&this.$outer.addClass("lg-show-after-load"),this.doCss()){var a=this.$outer.find(".lg-inner");a.css("transition-timing-function",this.s.cssEasing),a.css("transition-duration",this.s.speed+"ms")}setTimeout(function(){$(".lg-backdrop").addClass("in")}),setTimeout(function(){o.$outer.addClass("lg-visible")},this.s.backdropDuration),this.s.download&&this.$outer.find(".lg-toolbar").append('<a id="lg-download" target="_blank" download class="lg-download lg-icon"></a>'),this.prevScrollTop=$(window).scrollTop()},t.prototype.setTop=function(){if("100%"!==this.s.height){var e=$(window).height(),t=(e-parseInt(this.s.height,10))/2,s=this.$outer.find(".lg");e>=parseInt(this.s.height,10)?s.css("top",t+"px"):s.css("top","0px")}},t.prototype.doCss=function(){return!!function(){var e=["transition","MozTransition","WebkitTransition","OTransition","msTransition","KhtmlTransition"],t=document.documentElement,s=0;for(s=0;s<e.length;s++)if(e[s]in t.style)return!0}()},t.prototype.isVideo=function(e,t){var s;if(s=this.s.dynamic?this.s.dynamicEl[t].html:this.$items.eq(t).attr("data-html"),!e)return s?{html5:!0}:(console.error("lightGallery :- data-src is not pvovided on slide item "+(t+1)+". Please make sure the selector property is properly configured. More info - http://sachinchoolur.github.io/lightGallery/demos/html-markup.html"),!1);var i=e.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com|be-nocookie\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-\_\%]+)/i),l=e.match(/\/\/(?:www\.)?vimeo.com\/([0-9a-z\-_]+)/i),o=e.match(/\/\/(?:www\.)?dai.ly\/([0-9a-z\-_]+)/i),a=e.match(/\/\/(?:www\.)?(?:vk\.com|vkontakte\.ru)\/(?:video_ext\.php\?)(.*)/i);return i?{youtube:i}:l?{vimeo:l}:o?{dailymotion:o}:a?{vk:a}:void 0},t.prototype.counter=function(){this.s.counter&&$(this.s.appendCounterTo).append('<div id="lg-counter"><span id="lg-counter-current">'+(parseInt(this.index,10)+1)+'</span> / <span id="lg-counter-all">'+this.$items.length+"</span></div>")},t.prototype.addHtml=function(e){var t,s,i=null;if(this.s.dynamic?this.s.dynamicEl[e].subHtmlUrl?t=this.s.dynamicEl[e].subHtmlUrl:i=this.s.dynamicEl[e].subHtml:(s=this.$items.eq(e)).attr("data-sub-html-url")?t=s.attr("data-sub-html-url"):(i=s.attr("data-sub-html"),this.s.getCaptionFromTitleOrAlt&&!i&&(i=s.attr("title")||s.find("img").first().attr("alt"))),!t)if(void 0!==i&&null!==i){var l=i.substring(0,1);"."!==l&&"#"!==l||(i=this.s.subHtmlSelectorRelative&&!this.s.dynamic?s.find(i).html():$(i).html())}else i="";".lg-sub-html"===this.s.appendSubHtmlTo?t?this.$outer.find(this.s.appendSubHtmlTo).load(t):this.$outer.find(this.s.appendSubHtmlTo).html(i):t?this.$slide.eq(e).load(t):this.$slide.eq(e).append(i),void 0!==i&&null!==i&&(""===i?this.$outer.find(this.s.appendSubHtmlTo).addClass("lg-empty-html"):this.$outer.find(this.s.appendSubHtmlTo).removeClass("lg-empty-html")),this.$el.trigger("onAfterAppendSubHtml.lg",[e])},t.prototype.preload=function(e){var t=1,s=1;for(t=1;t<=this.s.preload&&!(t>=this.$items.length-e);t++)this.loadContent(e+t,!1,0);for(s=1;s<=this.s.preload&&!(e-s<0);s++)this.loadContent(e-s,!1,0)},t.prototype.loadContent=function(e,t,s){var i,l,o,a,n,r,d=this,g=!1,h=function(e){for(var t=[],s=[],i=0;i<e.length;i++){var o=e[i].split(" ");""===o[0]&&o.splice(0,1),s.push(o[0]),t.push(o[1])}for(var a=$(window).width(),n=0;n<t.length;n++)if(parseInt(t[n],10)>a){l=s[n];break}};if(d.s.dynamic){if(d.s.dynamicEl[e].poster&&(g=!0,o=d.s.dynamicEl[e].poster),r=d.s.dynamicEl[e].html,l=d.s.dynamicEl[e].src,d.s.dynamicEl[e].responsive)h(d.s.dynamicEl[e].responsive.split(","));a=d.s.dynamicEl[e].srcset,n=d.s.dynamicEl[e].sizes}else{if(d.$items.eq(e).attr("data-poster")&&(g=!0,o=d.$items.eq(e).attr("data-poster")),r=d.$items.eq(e).attr("data-html"),l=d.$items.eq(e).attr("href")||d.$items.eq(e).attr("data-src"),d.$items.eq(e).attr("data-responsive"))h(d.$items.eq(e).attr("data-responsive").split(","));a=d.$items.eq(e).attr("data-srcset"),n=d.$items.eq(e).attr("data-sizes")}var u=!1;d.s.dynamic?d.s.dynamicEl[e].iframe&&(u=!0):"true"===d.$items.eq(e).attr("data-iframe")&&(u=!0);var c=d.isVideo(l,e);if(!d.$slide.eq(e).hasClass("lg-loaded")){if(u)d.$slide.eq(e).prepend('<div class="lg-video-cont lg-has-iframe" style="max-width:'+d.s.iframeMaxWidth+'"><div class="lg-video"><iframe class="lg-object" frameborder="0" src="'+l+'" allowfullscreen="true"></iframe></div></div>');else if(g){var m="";m=c&&c.youtube?"lg-has-youtube":c&&c.vimeo?"lg-has-vimeo":"lg-has-html5",d.$slide.eq(e).prepend('<div class="lg-video-cont '+m+' "><div class="lg-video"><span class="lg-video-play"></span><img class="lg-object lg-has-poster" src="'+o+'" /></div></div>')}else c?(d.$slide.eq(e).prepend('<div class="lg-video-cont "><div class="lg-video"></div></div>'),d.$el.trigger("hasVideo.lg",[e,l,r])):d.$slide.eq(e).prepend('<div class="lg-img-wrap"><img class="lg-object lg-image" src="'+l+'" /></div>');if(d.$el.trigger("onAferAppendSlide.lg",[e]),i=d.$slide.eq(e).find(".lg-object"),n&&i.attr("sizes",n),a){i.attr("srcset",a);try{picturefill({elements:[i[0]]})}catch(e){console.warn("lightGallery :- If you want srcset to be supported for older browser please include picturefil version 2 javascript library in your document.")}}".lg-sub-html"!==this.s.appendSubHtmlTo&&d.addHtml(e),d.$slide.eq(e).addClass("lg-loaded")}d.$slide.eq(e).find(".lg-object").on("load.lg error.lg",function(){var t=0;s&&!$("body").hasClass("lg-from-hash")&&(t=s),setTimeout(function(){d.$slide.eq(e).addClass("lg-complete"),d.$el.trigger("onSlideItemLoad.lg",[e,s||0])},t)}),c&&c.html5&&!g&&d.$slide.eq(e).addClass("lg-complete"),!0===t&&(d.$slide.eq(e).hasClass("lg-complete")?d.preload(e):d.$slide.eq(e).find(".lg-object").on("load.lg error.lg",function(){d.preload(e)}))},t.prototype.slide=function(e,t,s,i){var l=this.$outer.find(".lg-current").index(),o=this;if(!o.lGalleryOn||l!==e){var a=this.$slide.length,n=o.lGalleryOn?this.s.speed:0;if(!o.lgBusy){var r,d,g;if(this.s.download)(r=o.s.dynamic?!1!==o.s.dynamicEl[e].downloadUrl&&(o.s.dynamicEl[e].downloadUrl||o.s.dynamicEl[e].src):"false"!==o.$items.eq(e).attr("data-download-url")&&(o.$items.eq(e).attr("data-download-url")||o.$items.eq(e).attr("href")||o.$items.eq(e).attr("data-src")))?($("#lg-download").attr("href",r),o.$outer.removeClass("lg-hide-download")):o.$outer.addClass("lg-hide-download");if(this.$el.trigger("onBeforeSlide.lg",[l,e,t,s]),o.lgBusy=!0,clearTimeout(o.hideBartimeout),".lg-sub-html"===this.s.appendSubHtmlTo&&setTimeout(function(){o.addHtml(e)},n),this.arrowDisable(e),i||(e<l?i="prev":e>l&&(i="next")),t)this.$slide.removeClass("lg-prev-slide lg-current lg-next-slide"),a>2?(d=e-1,g=e+1,0===e&&l===a-1?(g=0,d=a-1):e===a-1&&0===l&&(g=0,d=a-1)):(d=0,g=1),"prev"===i?o.$slide.eq(g).addClass("lg-next-slide"):o.$slide.eq(d).addClass("lg-prev-slide"),o.$slide.eq(e).addClass("lg-current");else o.$outer.addClass("lg-no-trans"),this.$slide.removeClass("lg-prev-slide lg-next-slide"),"prev"===i?(this.$slide.eq(e).addClass("lg-prev-slide"),this.$slide.eq(l).addClass("lg-next-slide")):(this.$slide.eq(e).addClass("lg-next-slide"),this.$slide.eq(l).addClass("lg-prev-slide")),setTimeout(function(){o.$slide.removeClass("lg-current"),o.$slide.eq(e).addClass("lg-current"),o.$outer.removeClass("lg-no-trans")},50);o.lGalleryOn?(setTimeout(function(){o.loadContent(e,!0,0)},this.s.speed+50),setTimeout(function(){o.lgBusy=!1,o.$el.trigger("onAfterSlide.lg",[l,e,t,s])},this.s.speed)):(o.loadContent(e,!0,o.s.backdropDuration),o.lgBusy=!1,o.$el.trigger("onAfterSlide.lg",[l,e,t,s])),o.lGalleryOn=!0,this.s.counter&&$("#lg-counter-current").text(e+1)}o.index=e}},t.prototype.goToNextSlide=function(e){var t=this,s=t.s.loop;e&&t.$slide.length<3&&(s=!1),t.lgBusy||(t.index+1<t.$slide.length?(t.index++,t.$el.trigger("onBeforeNextSlide.lg",[t.index]),t.slide(t.index,e,!1,"next")):s?(t.index=0,t.$el.trigger("onBeforeNextSlide.lg",[t.index]),t.slide(t.index,e,!1,"next")):t.s.slideEndAnimatoin&&!e&&(t.$outer.addClass("lg-right-end"),setTimeout(function(){t.$outer.removeClass("lg-right-end")},400)))},t.prototype.goToPrevSlide=function(e){var t=this,s=t.s.loop;e&&t.$slide.length<3&&(s=!1),t.lgBusy||(t.index>0?(t.index--,t.$el.trigger("onBeforePrevSlide.lg",[t.index,e]),t.slide(t.index,e,!1,"prev")):s?(t.index=t.$items.length-1,t.$el.trigger("onBeforePrevSlide.lg",[t.index,e]),t.slide(t.index,e,!1,"prev")):t.s.slideEndAnimatoin&&!e&&(t.$outer.addClass("lg-left-end"),setTimeout(function(){t.$outer.removeClass("lg-left-end")},400)))},t.prototype.keyPress=function(){var e=this;this.$items.length>1&&$(window).on("keyup.lg",function(t){e.$items.length>1&&(37===t.keyCode&&(t.preventDefault(),e.goToPrevSlide()),39===t.keyCode&&(t.preventDefault(),e.goToNextSlide()))}),$(window).on("keydown.lg",function(t){!0===e.s.escKey&&27===t.keyCode&&(t.preventDefault(),e.$outer.hasClass("lg-thumb-open")?e.$outer.removeClass("lg-thumb-open"):e.destroy())})},t.prototype.arrow=function(){var e=this;this.$outer.find(".lg-prev").on("click.lg",function(){e.goToPrevSlide()}),this.$outer.find(".lg-next").on("click.lg",function(){e.goToNextSlide()})},t.prototype.arrowDisable=function(e){!this.s.loop&&this.s.hideControlOnEnd&&(e+1<this.$slide.length?this.$outer.find(".lg-next").removeAttr("disabled").removeClass("disabled"):this.$outer.find(".lg-next").attr("disabled","disabled").addClass("disabled"),e>0?this.$outer.find(".lg-prev").removeAttr("disabled").removeClass("disabled"):this.$outer.find(".lg-prev").attr("disabled","disabled").addClass("disabled"))},t.prototype.setTranslate=function(e,t,s){this.s.useLeft?e.css("left",t):e.css({transform:"translate3d("+t+"px, "+s+"px, 0px)"})},t.prototype.touchMove=function(e,t){var s=t-e;Math.abs(s)>15&&(this.$outer.addClass("lg-dragging"),this.setTranslate(this.$slide.eq(this.index),s,0),this.setTranslate($(".lg-prev-slide"),-this.$slide.eq(this.index).width()+s,0),this.setTranslate($(".lg-next-slide"),this.$slide.eq(this.index).width()+s,0))},t.prototype.touchEnd=function(e){var t=this;"lg-slide"!==t.s.mode&&t.$outer.addClass("lg-slide"),this.$slide.not(".lg-current, .lg-prev-slide, .lg-next-slide").css("opacity","0"),setTimeout(function(){t.$outer.removeClass("lg-dragging"),e<0&&Math.abs(e)>t.s.swipeThreshold?t.goToNextSlide(!0):e>0&&Math.abs(e)>t.s.swipeThreshold?t.goToPrevSlide(!0):Math.abs(e)<5&&t.$el.trigger("onSlideClick.lg"),t.$slide.removeAttr("style")}),setTimeout(function(){t.$outer.hasClass("lg-dragging")||"lg-slide"===t.s.mode||t.$outer.removeClass("lg-slide")},t.s.speed+100)},t.prototype.enableSwipe=function(){var e=this,t=0,s=0,i=!1;e.s.enableSwipe&&e.doCss()&&(e.$slide.on("touchstart.lg",function(s){e.$outer.hasClass("lg-zoomed")||e.lgBusy||(s.preventDefault(),e.manageSwipeClass(),t=s.originalEvent.targetTouches[0].pageX)}),e.$slide.on("touchmove.lg",function(l){e.$outer.hasClass("lg-zoomed")||(l.preventDefault(),s=l.originalEvent.targetTouches[0].pageX,e.touchMove(t,s),i=!0)}),e.$slide.on("touchend.lg",function(){e.$outer.hasClass("lg-zoomed")||(i?(i=!1,e.touchEnd(s-t)):e.$el.trigger("onSlideClick.lg"))}))},t.prototype.enableDrag=function(){var e=this,t=0,s=0,i=!1,l=!1;e.s.enableDrag&&e.doCss()&&(e.$slide.on("mousedown.lg",function(s){e.$outer.hasClass("lg-zoomed")||e.lgBusy||$(s.target).text().trim()||(s.preventDefault(),e.manageSwipeClass(),t=s.pageX,i=!0,e.$outer.scrollLeft+=1,e.$outer.scrollLeft-=1,e.$outer.removeClass("lg-grab").addClass("lg-grabbing"),e.$el.trigger("onDragstart.lg"))}),$(window).on("mousemove.lg",function(o){i&&(l=!0,s=o.pageX,e.touchMove(t,s),e.$el.trigger("onDragmove.lg"))}),$(window).on("mouseup.lg",function(o){l?(l=!1,e.touchEnd(s-t),e.$el.trigger("onDragend.lg")):($(o.target).hasClass("lg-object")||$(o.target).hasClass("lg-video-play"))&&e.$el.trigger("onSlideClick.lg"),i&&(i=!1,e.$outer.removeClass("lg-grabbing").addClass("lg-grab"))}))},t.prototype.manageSwipeClass=function(){var e=this.index+1,t=this.index-1;this.s.loop&&this.$slide.length>2&&(0===this.index?t=this.$slide.length-1:this.index===this.$slide.length-1&&(e=0)),this.$slide.removeClass("lg-next-slide lg-prev-slide"),t>-1&&this.$slide.eq(t).addClass("lg-prev-slide"),this.$slide.eq(e).addClass("lg-next-slide")},t.prototype.mousewheel=function(){var e=this;e.$outer.on("mousewheel.lg",function(t){t.deltaY&&(t.deltaY>0?e.goToPrevSlide():e.goToNextSlide(),t.preventDefault())})},t.prototype.closeGallery=function(){var e=this,t=!1;this.$outer.find(".lg-close").on("click.lg",function(){e.destroy()}),e.s.closable&&(e.$outer.on("mousedown.lg",function(e){t=!!($(e.target).is(".lg-outer")||$(e.target).is(".lg-item ")||$(e.target).is(".lg-img-wrap"))}),e.$outer.on("mousemove.lg",function(){t=!1}),e.$outer.on("mouseup.lg",function(s){($(s.target).is(".lg-outer")||$(s.target).is(".lg-item ")||$(s.target).is(".lg-img-wrap")&&t)&&(e.$outer.hasClass("lg-dragging")||e.destroy())}))},t.prototype.destroy=function(e){var t=this;e||(t.$el.trigger("onBeforeClose.lg"),$(window).scrollTop(t.prevScrollTop)),e&&(t.s.dynamic||this.$items.off("click.lg click.lgcustom"),$.removeData(t.el,"lightGallery")),this.$el.off(".lg.tm"),$.each($.fn.lightGallery.modules,function(e){t.modules[e]&&t.modules[e].destroy()}),this.lGalleryOn=!1,clearTimeout(t.hideBartimeout),this.hideBartimeout=!1,$(window).off(".lg"),$("body").removeClass("lg-on lg-from-hash"),t.$outer&&t.$outer.removeClass("lg-visible"),$(".lg-backdrop").removeClass("in"),setTimeout(function(){t.$outer&&t.$outer.remove(),$(".lg-backdrop").remove(),e||t.$el.trigger("onCloseAfter.lg")},t.s.backdropDuration+50)},$.fn.lightGallery=function(e){return this.each(function(){if($.data(this,"lightGallery"))try{$(this).data("lightGallery").init()}catch(e){console.error("lightGallery has not initiated properly")}else $.data(this,"lightGallery",new t(this,e))})},$.fn.lightGallery.modules={}}();