meta-lightbox/dist/js/index.js

2 lines
10 KiB
JavaScript

/*! For license information please see index.js.LICENSE */
!function(t){var e={};function o(i){if(e[i])return e[i].exports;var a=e[i]={i:i,l:!1,exports:{}};return t[i].call(a.exports,a,a.exports,o),a.l=!0,a.exports}o.m=t,o.c=e,o.d=function(t,e,i){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(o.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var a in t)o.d(i,a,function(e){return t[e]}.bind(null,a));return i},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="",o(o.s="./src/js/index.js")}({"./src/js/index.js":function(t,e,o){"use strict";o.r(e);o("./src/scss/index.scss"),o("./src/js/meta-lightbox.js")},"./src/js/meta-lightbox.js":function(t,e){var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};!function(t,e,i){var a="metaLightbox",n={effect:"fade",theme:"default",keyboardNav:!0,clickOverlayToClose:!0,onInit:function(){},beforeShowLightbox:function(){},afterShowLightbox:function(t){},beforeHideLightbox:function(){},afterHideLightbox:function(){},onPrev:function(t){},onNext:function(t){},errorMessage:"The requested content cannot be loaded. Please try again later."};function l(e,o){this.options=t.extend({},n,o),this._defaults=n,this._name=a,this.init()}l.prototype={init:function(){var e=this,o=t("html");this.ajaxLoaded=!1,i.MetaLightbox=this,o.hasClass("meta-lightbox-notouch")||o.addClass("meta-lightbox-notouch"),"ontouchstart"in i&&o.removeClass("meta-lightbox-notouch"),t(i).on("click",'[data-toggle="lightbox"],[data-lightbox-gallery]',(function(t){return t.preventDefault(),t.stopPropagation(),e.showLightbox(this),!1})),this.options.keyboardNav&&t("body").off("keyup").on("keyup",(function(o){var i=o.keyCode?o.keyCode:o.which;27===i&&e.destructLightbox(),37===i&&t(".meta-lightbox-prev").trigger("click"),39===i&&t(".meta-lightbox-next").trigger("click")})),this.options.onInit.call(this)},showLightbox:function(e){this.el=e,this.$el=t(this.el);var o,i,a,n,l=this;this.options.beforeShowLightbox.call(this),(o=this.constructLightbox())&&(i=o.find(".meta-lightbox-content"))&&(a=this.$el,t("body").addClass("meta-lightbox-body-effect-"+this.options.effect),this.processContent(i,a),this.$el.data("lightbox-gallery")&&(1===(n=t('[data-lightbox-gallery="'+this.$el.data("lightbox-gallery")+'"]')).length?t(".meta-lightbox-nav").hide():t(".meta-lightbox-nav").show(),t(".meta-lightbox-prev").off("click").on("click",(function(e){e.preventDefault();var o=n.index(a);a=n.eq(o-1),t(a).length||(a=n.last()),l.processContent(i,a),l.options.onPrev.call(this,[a])})),t(".meta-lightbox-next").off("click").on("click",(function(e){e.preventDefault();var o=n.index(a);a=n.eq(o+1),t(a).length||(a=n.first()),l.processContent(i,a),l.options.onNext.call(this,[a])}))),setTimeout((function(){o.addClass("meta-lightbox-open"),l.options.afterShowLightbox.call(this,[o])}),1))},processContent:function(a,n){var l,s,r,h,c,g,d=this;href=n.attr("href"),href||(href=n.data("href")),a.html("").addClass("meta-lightbox-loading"),this.isHidpi()&&n.data("lightbox-hidpi")&&(href=n.data("lightbox-hidpi")),null!=href.match(/\.(jpeg|jpg|gif|png)$/i)?((l=t("<img>",{src:href})).on("load",(function(){var o=t('<div class="meta-lightbox-image"></div>'),i=t(".meta-lightbox-content"),n=t('<span class="meta-lightbox-zoom-wrapper"></span>');n.append(l),o.append(n),o.css({"line-height":i.height()+"px",height:i.height()+"px"}),t(e).resize((function(){o.css({"line-height":i.height()+"px",height:i.height()+"px"})})),void 0!==n.zoom&&n.zoom(),a.html(o).removeClass("meta-lightbox-loading"),d.contentLoaded()})),l.on("error",(function(){var e=t('<div class="meta-lightbox-error"><p>'+d.options.errorMessage+"</p></div>");a.html(e).removeClass("meta-lightbox-loading"),d.contentLoaded()})),n.data("title")?d.setTitle(n.data("title")):n.attr("title")?d.setTitle(n.attr("title")):t(".meta-lightbox-title-wrap").html(""),"function"==typeof ga&&ga("send","event","meta","Image Click",href)):(s=href.match(/(youtube|youtube-nocookie|youtu|vimeo)\.(com|be)\/(watch\?v=([\w-]+)|([\w-]+))/))?(r="",h="meta-lightbox-video","youtube"==s[1]&&(r="https://www.youtube.com/embed/"+s[4],h="meta-lightbox-youtube"),"youtu"==s[1]&&(r="https://www.youtube.com/embed/"+s[3],h="meta-lightbox-youtube"),"youtube-nocookie"==s[1]&&(r="https://www.youtube-nocookie.com/embed/"+s[4],h="nivo-lightbox-youtube"),"vimeo"==s[1]&&(r="https://player.vimeo.com/video/"+s[3],h="meta-lightbox-vimeo"),r&&(c=t("<iframe>",{src:r,class:h,frameborder:0,vspace:0,hspace:0,scrolling:"auto"}),a.html(c),c.on("load",(function(){a.removeClass("meta-lightbox-loading"),d.contentLoaded()}))),n.data("title")?d.setTitle(n.data("title")):n.attr("title")?d.setTitle(n.attr("title")):t(".meta-lightbox-title-wrap").html(""),"function"==typeof ga&&ga("send","event","meta","Video Click",s)):"#"==href.substring(0,1)?(t(href).length?((g=t('<div class="meta-lightbox-inline" />')).append(t(href).clone().show()),g.outerHeight()<a.height()&&g.css({position:"relative",top:"50%","margin-top":-g.outerHeight()/2+"px"}),t(e).resize((function(){g.outerHeight()<a.height()&&g.css({position:"relative",top:"50%","margin-top":-g.outerHeight()/2+"px"})})),a.html(g).removeClass("meta-lightbox-loading"),d.contentLoaded()):(g=t('<div class="meta-lightbox-error"><p>'+d.options.errorMessage+"</p></div>"),a.html(g).removeClass("meta-lightbox-loading"),d.contentLoaded()),t(".meta-lightbox-title-wrap").html(""),"function"==typeof ga&&ga("send","event","meta","inline HTML click",href)):t.ajax({sync:!1,async:!0,url:href,dataType:"html",method:"GET",cache:!1,statusCode:{404:function(){console.log("page not found"),e.location.href=url},302:function(){console.log("redirect 302"),e.location.href=url}},error:function(e){console.log("AJAX request failure."+e.statusText);var o=t('<div class="meta-lightbox-error"><p>'+d.options.errorMessage+"</p></div>");a.html(o).removeClass("meta-lightbox-loading"),d.contentLoaded(),"function"==typeof ga&&ga("send","event","error","AJAX ERROR",e.statusText)},success:function(n,l,s){try{var r=t.parseJSON(n);if("object"===(void 0===r?"undefined":o(r))){if("object"===o(r.regions)&&"undefinded"!=typeof r.regions.LayoutAjax)(g=t('<div class="meta-lightbox-ajax" />')).html(r.regions.LayoutAjax),a.html(g).removeClass("meta-lightbox-loading");var h=s.getResponseHeader("X-Title"),c=s.getResponseHeader("X-Link");h&&h.length&&c&&c.length&&c!==e.location.href&&c.substring(0,c.indexOf("#"))!==e.location.href.replace(t("base").attr("href"),"/")&&(t(".meta-lightbox-ajax").data("curr-title",i.title),t(".meta-lightbox-ajax").data("curr-link",e.location.href),void 0!==e.localStorage&&"/"!==c&&e.localStorage.setItem("current-page",c),i.URL!==c&&i.URL!==t("base").attr("href")+c&&i.URL!==t("base").attr("href")+"/"+c&&e.history.pushState({title:h,page:c,ajax:"true"},h,c),t(".meta-lightbox-title-wrap").html(""),"function"==typeof ga&&(ga("set",{page:c.replace(t("base").attr("href"),""),title:h}),ga("send","pageview")))}}catch(e){var g;(g=t('<div class="meta-lightbox-ajax" />')).append(n),a.html(g).removeClass("meta-lightbox-loading")}g.outerHeight()<a.height()&&g.css({position:"relative",top:"50%","margin-top":-g.outerHeight()/2+"px"}),t(e).resize((function(){g.outerHeight()<a.height()&&g.css({position:"relative",top:"50%","margin-top":-g.outerHeight()/2+"px"})})),setTimeout((function(){t(e).resize(),e.imagesLoaded().then((function(){t(e).resize()}))}),500),d.contentLoaded()}})},setTitle:function(e){var o=t("<div>",{class:"meta-lightbox-title"});o.text(e),t(".meta-lightbox-title-wrap").html(o)},contentLoaded:function(){setTimeout((function(){t(e).trigger("meta-lightbox-loaded")}),1),setTimeout((function(){t("body").addClass("meta-lightbox-body-effect-fade")}),600)},constructLightbox:function(){var e=this,o=t("<div>",{class:"meta-lightbox-overlay meta-lightbox-theme-"+this.options.theme+" meta-lightbox-effect-"+this.options.effect}),i=t("<div>",{class:"meta-lightbox-wrap"}),a=t("<div>",{class:"meta-lightbox-content"}),n=t('<a href="#" class="meta-lightbox-nav meta-lightbox-prev"><i class="fa fa-chevron-left"></i> <span class="sr-only">Previous</span></a><a href="#" class="meta-lightbox-nav meta-lightbox-next"><i class="fa fa-chevron-right"></i> <span class="sr-only">Next</span></a>'),l=t('<a href="#" class="meta-lightbox-close fa fa-times" title="Close"><span class="sr-only">Close</span></a>'),s=t("<div>",{class:"meta-lightbox-title-wrap"}),r=t(".meta-lightbox-overlay");return r.length?r:(i.append(a),i.append(s),o.append(i),o.append(n),o.append(l),t("body").append(o),e.options.clickOverlayToClose&&o.on("click",(function(o){var i=t(o.target);(i.hasClass("meta-lightbox-zoom-wrapper")||i.hasClass("meta-lightbox-content")||i.hasClass("meta-lightbox-wrap")||i.hasClass("meta-lightbox-image")||i.hasClass("meta-lightbox-overlay"))&&e.destructLightbox()})),l.on("click",(function(t){t.preventDefault(),e.destructLightbox()})),o)},destructLightbox:function(){var o=t(".meta-lightbox-overlay");this.options.beforeHideLightbox.call(this);var a=t(".meta-lightbox-ajax").data("curr-title"),n=t(".meta-lightbox-ajax").data("curr-link");a&&n&&(void 0!==e.localStorage&&"/"!==n&&e.localStorage.setItem("current-page",n),i.URL!==n&&i.URL!==t("base").attr("href")+n&&i.URL!==t("base").attr("href")+"/"+n&&e.history.replaceState({title:a,page:n,ajax:"true"},a,n)),o.removeClass("meta-lightbox-open"),t(".meta-lightbox-nav").hide(),t("body").removeClass("meta-lightbox-body-effect-"+this.options.effect),t(".meta-lightbox-content .meta-lightbox-zoom-wrapper").trigger("zoom.destroy"),t(".meta-lightbox-prev").off("click"),t(".meta-lightbox-next").off("click"),t(".meta-lightbox-content").empty(),t("body").removeClass("meta-lightbox-body-effect-fade"),this.options.afterHideLightbox.call(this)},isHidpi:function(){return e.devicePixelRatio>1||e.matchMedia&&e.matchMedia("(-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (-o-min-device-pixel-ratio: 3/2), (min-resolution: 1.5dppx)").matches}},t.fn[a]=function(e){return this.each((function(){t.data(this,a)||t.data(this,a,new l(this,e))}))},t(i).metaLightbox()}(jQuery,this,document)},"./src/scss/index.scss":function(t,e){}});