")), t.inlineElement = s
}
return f.updateStatus("ready"), f._parseMarkup(e, {}, t), e
}
}
});
var I, O, A, P = "ajax";
function L(t) {
var e;
!f.currTemplate[M] || (e = f.currTemplate[M].find("iframe")).length && (t || (e[0].src = "//about:blank"), f.isIE8 && e.css("display", t ? "block" : "none"))
}
c.magnificPopup.registerModule(P, {
options: {
settings: null,
cursor: "mfp-ajax-cur",
tError: '
The content could not be loaded.'
},
proto: {
initAjax: function() {
f.types.push(P), I = f.st.ajax.cursor, h(l + "." + P, E), h("BeforeChange." + P, E)
},
getAjax: function(o) {
I && c(document.body).addClass(I), f.updateStatus("loading");
var t = c.extend({
url: o.src,
success: function(t, e, i) {
d("ParseAjax", i = {
data: t,
xhr: i
}), f.appendContent(c(i.data), P), o.finished = !0, z(), f._setFocus(), setTimeout(function() {
f.wrap.addClass(_)
}, 16), f.updateStatus("ready"), d("AjaxContentAdded")
},
error: function() {
z(), o.finished = o.loadError = !0, f.updateStatus("error", f.st.ajax.tError.replace("%url%", o.src))
}
}, f.st.ajax.settings);
return f.req = c.ajax(t), ""
}
}
}), c.magnificPopup.registerModule("image", {
options: {
markup: '
',
cursor: "mfp-zoom-out-cur",
titleSrc: "title",
verticalFit: !0,
tError: '
The image could not be loaded.'
},
proto: {
initImage: function() {
var t = f.st.image,
e = ".image";
f.types.push("image"), h(b + e, function() {
"image" === f.currItem.type && t.cursor && c(document.body).addClass(t.cursor)
}), h(l + e, function() {
t.cursor && c(document.body).removeClass(t.cursor), x.off("resize" + w)
}), h("Resize" + e, f.resizeImage), f.isLowIE && h("AfterChange", f.resizeImage)
},
resizeImage: function() {
var t, e = f.currItem;
e && e.img && f.st.image.verticalFit && (t = 0, f.isLowIE && (t = parseInt(e.img.css("padding-top"), 10) + parseInt(e.img.css("padding-bottom"), 10)), e.img.css("max-height", f.wH - t))
},
_onImageHasSize: function(t) {
t.img && (t.hasSize = !0, O && clearInterval(O), t.isCheckingImgSize = !1, d("ImageHasSize", t), t.imgHidden && (f.content && f.content.removeClass("mfp-loading"), t.imgHidden = !1))
},
findImageSize: function(e) {
var i = 0,
o = e.img[0],
s = function(t) {
O && clearInterval(O), O = setInterval(function() {
return 0 < o.naturalWidth ? void f._onImageHasSize(e) : (200 < i && clearInterval(O), void(3 == ++i ? s(10) : 40 === i ? s(50) : 100 === i && s(500)))
}, t)
};
s(1)
},
getImage: function(t, e) {
var i, o = 0,
s = function() {
t && (t.img[0].complete ? (t.img.off(".mfploader"), t === f.currItem && (f._onImageHasSize(t), f.updateStatus("ready")), t.hasSize = !0, t.loaded = !0, d("ImageLoadComplete")) : ++o < 200 ? setTimeout(s, 100) : n())
},
n = function() {
t && (t.img.off(".mfploader"), t === f.currItem && (f._onImageHasSize(t), f.updateStatus("error", r.tError.replace("%url%", t.src))), t.hasSize = !0, t.loaded = !0, t.loadError = !0)
},
r = f.st.image,
a = e.find(".mfp-img");
return a.length && ((i = document.createElement("img")).className = "mfp-img", t.el && t.el.find("img").length && (i.alt = t.el.find("img").attr("alt")), t.img = c(i).on("load.mfploader", s).on("error.mfploader", n), i.src = t.src, a.is("img") && (t.img = t.img.clone()), 0 < (i = t.img[0]).naturalWidth ? t.hasSize = !0 : i.width || (t.hasSize = !1)), f._parseMarkup(e, {
title: function(t) {
if (t.data && void 0 !== t.data.title) return t.data.title;
var e = f.st.image.titleSrc;
if (e) {
if (c.isFunction(e)) return e.call(f, t);
if (t.el) return t.el.attr(e) || ""
}
return ""
}(t),
img_replaceWith: t.img
}, t), f.resizeImage(), t.hasSize ? (O && clearInterval(O), t.loadError ? (e.addClass("mfp-loading"), f.updateStatus("error", r.tError.replace("%url%", t.src))) : (e.removeClass("mfp-loading"), f.updateStatus("ready"))) : (f.updateStatus("loading"), t.loading = !0, t.hasSize || (t.imgHidden = !0, e.addClass("mfp-loading"), f.findImageSize(t))), e
}
}
}), c.magnificPopup.registerModule("zoom", {
options: {
enabled: !1,
easing: "ease-in-out",
duration: 300,
opener: function(t) {
return t.is("img") ? t : t.find("img")
}
},
proto: {
initZoom: function() {
var t, e, i, o, s, n, r = f.st.zoom,
a = ".zoom";
r.enabled && f.supportsTransition && (o = r.duration, s = function(t) {
var e = t.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),
i = "all " + r.duration / 1e3 + "s " + r.easing,
o = {
position: "fixed",
zIndex: 9999,
left: 0,
top: 0,
"-webkit-backface-visibility": "hidden"
};
return o["-webkit-" + (t = "transition")] = o["-moz-" + t] = o["-o-" + t] = o[t] = i, e.css(o), e
}, n = function() {
f.content.css("visibility", "visible")
}, h("BuildControls" + a, function() {
f._allowZoom() && (clearTimeout(e), f.content.css("visibility", "hidden"), (t = f._getItemToZoom()) ? ((i = s(t)).css(f._getOffset()), f.wrap.append(i), e = setTimeout(function() {
i.css(f._getOffset(!0)), e = setTimeout(function() {
n(), setTimeout(function() {
i.remove(), t = i = null, d("ZoomAnimationEnded")
}, 16)
}, o)
}, 16)) : n())
}), h(y + a, function() {
if (f._allowZoom()) {
if (clearTimeout(e), f.st.removalDelay = o, !t) {
if (!(t = f._getItemToZoom())) return;
i = s(t)
}
i.css(f._getOffset(!0)), f.wrap.append(i), f.content.css("visibility", "hidden"), setTimeout(function() {
i.css(f._getOffset())
}, 16)
}
}), h(l + a, function() {
f._allowZoom() && (n(), i && i.remove(), t = null)
}))
},
_allowZoom: function() {
return "image" === f.currItem.type
},
_getItemToZoom: function() {
return !!f.currItem.hasSize && f.currItem.img
},
_getOffset: function(t) {
var e = t ? f.currItem.img : f.st.zoom.opener(f.currItem.el || f.currItem),
i = e.offset(),
o = parseInt(e.css("padding-top"), 10),
t = parseInt(e.css("padding-bottom"), 10);
return i.top -= c(window).scrollTop() - o, o = {
width: e.width(),
height: (a ? e.innerHeight() : e[0].offsetHeight) - t - o
}, void 0 === A && (A = void 0 !== document.createElement("p").style.MozTransform), A ? o["-moz-transform"] = o.transform = "translate(" + i.left + "px," + i.top + "px)" : (o.left = i.left, o.top = i.top), o
}
}
});
var M = "iframe";
function j(t) {
var e = f.items.length;
return e - 1 < t ? t - e : t < 0 ? e + t : t
}
function F(t, e, i) {
return t.replace(/%curr%/gi, e + 1).replace(/%total%/gi, i)
}
c.magnificPopup.registerModule(M, {
options: {
markup: '
',
srcAction: "iframe_src",
patterns: {
youtube: {
index: "youtube.com",
id: "v=",
src: "//www.youtube.com/embed/%id%?autoplay=1"
},
vimeo: {
index: "vimeo.com/",
id: "/",
src: "//player.vimeo.com/video/%id%?autoplay=1"
},
gmaps: {
index: "//maps.google.",
src: "%id%&output=embed"
}
}
},
proto: {
initIframe: function() {
f.types.push(M), h("BeforeChange", function(t, e, i) {
e !== i && (e === M ? L() : i === M && L(!0))
}), h(l + "." + M, function() {
L()
})
},
getIframe: function(t, e) {
var i = t.src,
o = f.st.iframe;
c.each(o.patterns, function() {
return -1 < i.indexOf(this.index) ? (this.id && (i = "string" == typeof this.id ? i.substr(i.lastIndexOf(this.id) + this.id.length, i.length) : this.id.call(this, i)), i = this.src.replace("%id%", i), !1) : void 0
});
var s = {};
return o.srcAction && (s[o.srcAction] = i), f._parseMarkup(e, s, t), f.updateStatus("ready"), e
}
}
}), c.magnificPopup.registerModule("gallery", {
options: {
enabled: !1,
arrowMarkup: '
',
preload: [0, 2],
navigateByImgClick: !0,
arrows: !0,
tPrev: "Previous (Left arrow key)",
tNext: "Next (Right arrow key)",
tCounter: "%curr% of %total%"
},
proto: {
initGallery: function() {
var n = f.st.gallery,
t = ".mfp-gallery";
return f.direction = !0, !(!n || !n.enabled) && (m += " mfp-gallery", h(b + t, function() {
n.navigateByImgClick && f.wrap.on("click" + t, ".mfp-img", function() {
return 1 < f.items.length ? (f.next(), !1) : void 0
}), g.on("keydown" + t, function(t) {
37 === t.keyCode ? f.prev() : 39 === t.keyCode && f.next()
})
}), h("UpdateStatus" + t, function(t, e) {
e.text && (e.text = F(e.text, f.currItem.index, f.items.length))
}), h(v + t, function(t, e, i, o) {
var s = f.items.length;
i.counter = 1 < s ? F(n.tCounter, o.index, s) : ""
}), h("BuildControls" + t, function() {
var t, e;
1 < f.items.length && n.arrows && !f.arrowLeft && (e = n.arrowMarkup, t = f.arrowLeft = c(e.replace(/%title%/gi, n.tPrev).replace(/%dir%/gi, "left")).addClass(r), e = f.arrowRight = c(e.replace(/%title%/gi, n.tNext).replace(/%dir%/gi, "right")).addClass(r), t.click(function() {
f.prev()
}), e.click(function() {
f.next()
}), f.container.append(t.add(e)))
}), h("Change" + t, function() {
f._preloadTimeout && clearTimeout(f._preloadTimeout), f._preloadTimeout = setTimeout(function() {
f.preloadNearbyImages(), f._preloadTimeout = null
}, 16)
}), void h(l + t, function() {
g.off(t), f.wrap.off("click" + t), f.arrowRight = f.arrowLeft = null
}))
},
next: function() {
f.direction = !0, f.index = j(f.index + 1), f.updateItemHTML()
},
prev: function() {
f.direction = !1, f.index = j(f.index - 1), f.updateItemHTML()
},
goTo: function(t) {
f.direction = t >= f.index, f.index = t, f.updateItemHTML()
},
preloadNearbyImages: function() {
for (var t = f.st.gallery.preload, e = Math.min(t[0], f.items.length), i = Math.min(t[1], f.items.length), o = 1; o <= (f.direction ? i : e); o++) f._preloadItem(f.index + o);
for (o = 1; o <= (f.direction ? e : i); o++) f._preloadItem(f.index - o)
},
_preloadItem: function(t) {
var e;
t = j(t), f.items[t].preloaded || ((e = f.items[t]).parsed || (e = f.parseEl(t)), d("LazyLoad", e), "image" === e.type && (e.img = c('
').on("load.mfploader", function() {
e.hasSize = !0
}).on("error.mfploader", function() {
e.hasSize = !0, e.loadError = !0, d("LazyLoadError", e)
}).attr("src", e.src)), e.preloaded = !0)
}
}
});
var q = "retina";
c.magnificPopup.registerModule(q, {
options: {
replaceSrc: function(t) {
return t.src.replace(/\.\w+$/, function(t) {
return "@2x" + t
})
},
ratio: 1
},
proto: {
initRetina: function() {
var i, o;
1 < window.devicePixelRatio && (i = f.st.retina, o = i.ratio, 1 < (o = isNaN(o) ? o() : o) && (h("ImageHasSize." + q, function(t, e) {
e.img.css({
"max-width": e.img[0].naturalWidth / o,
width: "100%"
})
}), h("ElementParse." + q, function(t, e) {
e.src = i.replaceSrc(e, o)
})))
}
}
}), n()
}),
function(t, e) {
"function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof module && module.exports ? module.exports = e(require("jquery")) : e(t.jQuery)
}(this, function(f) {
! function() {
"use strict";
var i = {
mode: "lg-slide",
cssEasing: "ease",
easing: "linear",
speed: 600,
height: "100%",
width: "100%",
addClass: "",
startClass: "lg-start-zoom",
backdropDuration: 150,
hideBarsDelay: 6e3,
useLeft: !1,
ariaLabelledby: "",
ariaDescribedby: "",
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: !0,
counter: !0,
appendCounterTo: ".lg-toolbar",
swipeThreshold: 50,
enableSwipe: !0,
enableDrag: !0,
dynamic: !1,
dynamicEl: [],
galleryId: 1,
supportLegacyBrowser: !0
};
function e(t, e) {
if (this.el = t, this.$el = f(t), this.s = f.extend({}, i, e), 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 = f(this.s.selectWithin).find(this.s.selector) : this.$items = this.$el.find(f(this.s.selector)) : this.$items = this.$el.children(), this.$slide = "", this.$outer = "", this.init(), this
}
e.prototype.init = function() {
var t = this;
t.s.preload > t.$items.length && (t.s.preload = t.$items.length);
var e = window.location.hash;
0 < e.indexOf("lg=" + this.s.galleryId) && (t.index = parseInt(e.split("&slide=")[1], 10), f("body").addClass("lg-from-hash"), f("body").hasClass("lg-on") || (setTimeout(function() {
t.build(t.index)
}), f("body").addClass("lg-on"))), t.s.dynamic ? (t.$el.trigger("onBeforeOpen.lg"), t.index = t.s.index || 0, f("body").hasClass("lg-on") || setTimeout(function() {
t.build(t.index), f("body").addClass("lg-on")
})) : t.$items.on("click.lgcustom", function(e) {
try {
e.preventDefault(), e.preventDefault()
} catch (t) {
e.returnValue = !1
}
t.$el.trigger("onBeforeOpen.lg"), t.index = t.s.index || t.$items.index(this), f("body").hasClass("lg-on") || (t.build(t.index), f("body").addClass("lg-on"))
})
}, e.prototype.build = function(t) {
var e = this;
e.structure(), f.each(f.fn.lightGallery.modules, function(t) {
e.modules[t] = new f.fn.lightGallery.modules[t](e.el)
}), e.slide(t, !1, !1, !1), e.s.keyPress && e.keyPress(), 1 < e.$items.length ? (e.arrow(), setTimeout(function() {
e.enableDrag(), e.enableSwipe()
}, 50), e.s.mousewheel && e.mousewheel()) : e.$slide.on("click.lg", function() {
e.$el.trigger("onSlideClick.lg")
}), e.counter(), e.closeGallery(), e.$el.trigger("onAfterOpen.lg"), 0 < e.s.hideBarsDelay && e.$outer.on("mousemove.lg click.lg touchstart.lg", function() {
e.$outer.removeClass("lg-hide-items"), clearTimeout(e.hideBarTimeout), e.hideBarTimeout = setTimeout(function() {
e.$outer.addClass("lg-hide-items")
}, e.s.hideBarsDelay)
}), e.$outer.trigger("mousemove.lg")
}, e.prototype.structure = function() {
var t = "",
e = "",
i = 0,
o = "",
s = this;
for (f("body").append('
'), f(".lg-backdrop").css("transition-duration", this.s.backdropDuration + "ms"), i = 0; i < this.$items.length; i++) t += '
';
this.s.controls && 1 < this.$items.length && (e = '
"), ".lg-sub-html" === this.s.appendSubHtmlTo && (o = '
');
o = '
";
f("body").append(o), this.$outer = f(".lg-outer"), this.$outer.focus(), 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"), s.setTop(), f(window).on("resize.lg orientationchange.lg", function() {
setTimeout(function() {
s.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 && 1 < this.$items.length && this.$outer.addClass("lg-grab"), this.s.showAfterLoad && this.$outer.addClass("lg-show-after-load"), this.doCss() && ((o = this.$outer.find(".lg-inner")).css("transition-timing-function", this.s.cssEasing), o.css("transition-duration", this.s.speed + "ms")), setTimeout(function() {
f(".lg-backdrop").addClass("in")
}), setTimeout(function() {
s.$outer.addClass("lg-visible")
}, this.s.backdropDuration), this.s.download && this.$outer.find(".lg-toolbar").append('
'), this.prevScrollTop = f(window).scrollTop()
}, e.prototype.setTop = function() {
var t, e, i;
"100%" !== this.s.height && (e = ((t = f(window).height()) - parseInt(this.s.height, 10)) / 2, i = this.$outer.find(".lg"), t >= parseInt(this.s.height, 10) ? i.css("top", e + "px") : i.css("top", "0px"))
}, e.prototype.doCss = function() {
return !! function() {
for (var t = ["transition", "MozTransition", "WebkitTransition", "OTransition", "msTransition", "KhtmlTransition"], e = document.documentElement, i = 0, i = 0; i < t.length; i++)
if (t[i] in e.style) return 1
}()
}, e.prototype.isVideo = function(t, e) {
var i = this.s.dynamic ? this.s.dynamicEl[e].html : this.$items.eq(e).attr("data-html");
if (!t) return i ? {
html5: !0
} : (console.error("lightGallery :- data-src is not provided on slide item " + (e + 1) + ". Please make sure the selector property is properly configured. More info - http://sachinchoolur.github.io/lightGallery/demos/html-markup.html"), !1);
var o = t.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com|be-nocookie\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-\_\%]+)/i),
i = t.match(/\/\/(?:www\.)?vimeo.com\/([0-9a-z\-_]+)/i),
e = t.match(/\/\/(?:www\.)?dai.ly\/([0-9a-z\-_]+)/i),
t = t.match(/\/\/(?:www\.)?(?:vk\.com|vkontakte\.ru)\/(?:video_ext\.php\?)(.*)/i);
return o ? {
youtube: o
} : i ? {
vimeo: i
} : e ? {
dailymotion: e
} : t ? {
vk: t
} : void 0
}, e.prototype.counter = function() {
this.s.counter && f(this.s.appendCounterTo).append('
' + (parseInt(this.index, 10) + 1) + ' / ' + this.$items.length + "
")
}, e.prototype.addHtml = function(t) {
var e, i, o, s = null;
this.s.dynamic ? this.s.dynamicEl[t].subHtmlUrl ? e = this.s.dynamicEl[t].subHtmlUrl : s = this.s.dynamicEl[t].subHtml : (i = this.$items.eq(t)).attr("data-sub-html-url") ? e = i.attr("data-sub-html-url") : (s = i.attr("data-sub-html"), this.s.getCaptionFromTitleOrAlt && !s && (s = i.attr("title") || i.find("img").first().attr("alt"))), e || (null != s ? "." !== (o = s.substring(0, 1)) && "#" !== o || (s = (this.s.subHtmlSelectorRelative && !this.s.dynamic ? i.find(s) : f(s)).html()) : s = ""), ".lg-sub-html" === this.s.appendSubHtmlTo ? e ? this.$outer.find(this.s.appendSubHtmlTo).load(e) : this.$outer.find(this.s.appendSubHtmlTo).html(s) : e ? this.$slide.eq(t).load(e) : this.$slide.eq(t).append(s), null != s && ("" === s ? 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", [t])
}, e.prototype.preload = function(t) {
for (var e = 1, i = 1, e = 1; e <= this.s.preload && !(e >= this.$items.length - t); e++) this.loadContent(t + e, !1, 0);
for (i = 1; i <= this.s.preload && !(t - i < 0); i++) this.loadContent(t - i, !1, 0)
}, e.prototype.loadContent = function(e, t, i) {
var o, a, s, n, r, l, c = this,
h = !1,
u = function(t) {
for (var e = [], i = [], o = 0; o < t.length; o++) {
var s = t[o].split(" ");
"" === s[0] && s.splice(0, 1), i.push(s[0]), e.push(s[1])
}
for (var n = f(window).width(), r = 0; r < e.length; r++)
if (parseInt(e[r], 10) > n) {
a = i[r];
break
}
},
d = c.s.dynamic ? (c.s.dynamicEl[e].poster && (h = !0, s = c.s.dynamicEl[e].poster), r = c.s.dynamicEl[e].html, a = c.s.dynamicEl[e].src, l = c.s.dynamicEl[e].alt, c.s.dynamicEl[e].responsive && u(c.s.dynamicEl[e].responsive.split(",")), n = c.s.dynamicEl[e].srcset, c.s.dynamicEl[e].sizes) : ((p = c.$items.eq(e)).attr("data-poster") && (h = !0, s = p.attr("data-poster")), r = p.attr("data-html"), a = p.attr("href") || p.attr("data-src"), l = p.attr("title") || p.find("img").first().attr("alt"), p.attr("data-responsive") && u(p.attr("data-responsive").split(",")), n = p.attr("data-srcset"), p.attr("data-sizes")),
u = !1;
c.s.dynamic ? c.s.dynamicEl[e].iframe && (u = !0) : "true" === c.$items.eq(e).attr("data-iframe") && (u = !0);
var p = c.isVideo(a, e);
if (!c.$slide.eq(e).hasClass("lg-loaded")) {
if (u ? c.$slide.eq(e).prepend('
') : h ? (u = "", u = p && p.youtube ? "lg-has-youtube" : p && p.vimeo ? "lg-has-vimeo" : "lg-has-html5", c.$slide.eq(e).prepend('
')) : p ? (c.$slide.eq(e).prepend('
'), c.$el.trigger("hasVideo.lg", [e, a, r])) : (l = l ? 'alt="' + l + '"' : "", c.$slide.eq(e).prepend('
')), c.$el.trigger("onAferAppendSlide.lg", [e]), o = c.$slide.eq(e).find(".lg-object"), d && o.attr("sizes", d), n && (o.attr("srcset", n), this.s.supportLegacyBrowser)) try {
picturefill({
elements: [o[0]]
})
} catch (t) {
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 && c.addHtml(e), c.$slide.eq(e).addClass("lg-loaded")
}
c.$slide.eq(e).find(".lg-object").on("load.lg error.lg", function() {
var t = 0;
i && !f("body").hasClass("lg-from-hash") && (t = i), setTimeout(function() {
c.$slide.eq(e).addClass("lg-complete"), c.$el.trigger("onSlideItemLoad.lg", [e, i || 0])
}, t)
}), p && p.html5 && !h && c.$slide.eq(e).addClass("lg-complete"), !0 === t && (c.$slide.eq(e).hasClass("lg-complete") ? c.preload(e) : c.$slide.eq(e).find(".lg-object").on("load.lg error.lg", function() {
c.preload(e)
}))
}, e.prototype.slide = function(t, e, i, o) {
var s, n, r, a, l, c = this.$outer.find(".lg-current").index(),
h = this;
h.lGalleryOn && c === t || (s = this.$slide.length, n = h.lGalleryOn ? this.s.speed : 0, h.lgBusy || (this.s.download && ((r = h.s.dynamic ? !1 !== h.s.dynamicEl[t].downloadUrl && (h.s.dynamicEl[t].downloadUrl || h.s.dynamicEl[t].src) : "false" !== h.$items.eq(t).attr("data-download-url") && (h.$items.eq(t).attr("data-download-url") || h.$items.eq(t).attr("href") || h.$items.eq(t).attr("data-src"))) ? (f("#lg-download").attr("href", r), h.$outer.removeClass("lg-hide-download")) : h.$outer.addClass("lg-hide-download")), this.$el.trigger("onBeforeSlide.lg", [c, t, e, i]), h.lgBusy = !0, clearTimeout(h.hideBarTimeout), ".lg-sub-html" === this.s.appendSubHtmlTo && setTimeout(function() {
h.addHtml(t)
}, n), this.arrowDisable(t), o || (t < c ? o = "prev" : c < t && (o = "next")), e ? (this.$slide.removeClass("lg-prev-slide lg-current lg-next-slide"), 2 < s ? (a = t - 1, l = t + 1, (0 === t && c === s - 1 || t === s - 1 && 0 === c) && (l = 0, a = s - 1)) : (a = 0, l = 1), "prev" === o ? h.$slide.eq(l).addClass("lg-next-slide") : h.$slide.eq(a).addClass("lg-prev-slide"), h.$slide.eq(t).addClass("lg-current")) : (h.$outer.addClass("lg-no-trans"), this.$slide.removeClass("lg-prev-slide lg-next-slide"), "prev" === o ? (this.$slide.eq(t).addClass("lg-prev-slide"), this.$slide.eq(c).addClass("lg-next-slide")) : (this.$slide.eq(t).addClass("lg-next-slide"), this.$slide.eq(c).addClass("lg-prev-slide")), setTimeout(function() {
h.$slide.removeClass("lg-current"), h.$slide.eq(t).addClass("lg-current"), h.$outer.removeClass("lg-no-trans")
}, 50)), h.lGalleryOn ? (setTimeout(function() {
h.loadContent(t, !0, 0)
}, this.s.speed + 50), setTimeout(function() {
h.lgBusy = !1, h.$el.trigger("onAfterSlide.lg", [c, t, e, i])
}, this.s.speed)) : (h.loadContent(t, !0, h.s.backdropDuration), h.lgBusy = !1, h.$el.trigger("onAfterSlide.lg", [c, t, e, i])), h.lGalleryOn = !0, this.s.counter && f("#lg-counter-current").text(t + 1)), h.index = t)
}, e.prototype.goToNextSlide = function(t) {
var e = this,
i = e.s.loop;
t && e.$slide.length < 3 && (i = !1), e.lgBusy || (e.index + 1 < e.$slide.length ? (e.index++, e.$el.trigger("onBeforeNextSlide.lg", [e.index]), e.slide(e.index, t, !1, "next")) : i ? (e.index = 0, e.$el.trigger("onBeforeNextSlide.lg", [e.index]), e.slide(e.index, t, !1, "next")) : e.s.slideEndAnimatoin && !t && (e.$outer.addClass("lg-right-end"), setTimeout(function() {
e.$outer.removeClass("lg-right-end")
}, 400)))
}, e.prototype.goToPrevSlide = function(t) {
var e = this,
i = e.s.loop;
t && e.$slide.length < 3 && (i = !1), e.lgBusy || (0 < e.index ? (e.index--, e.$el.trigger("onBeforePrevSlide.lg", [e.index, t]), e.slide(e.index, t, !1, "prev")) : i ? (e.index = e.$items.length - 1, e.$el.trigger("onBeforePrevSlide.lg", [e.index, t]), e.slide(e.index, t, !1, "prev")) : e.s.slideEndAnimatoin && !t && (e.$outer.addClass("lg-left-end"), setTimeout(function() {
e.$outer.removeClass("lg-left-end")
}, 400)))
}, e.prototype.keyPress = function() {
var e = this;
1 < this.$items.length && f(window).on("keyup.lg", function(t) {
1 < e.$items.length && (37 === t.keyCode && (t.preventDefault(), e.goToPrevSlide()), 39 === t.keyCode && (t.preventDefault(), e.goToNextSlide()))
}), f(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())
})
}, e.prototype.arrow = function() {
var t = this;
this.$outer.find(".lg-prev").on("click.lg", function() {
t.goToPrevSlide()
}), this.$outer.find(".lg-next").on("click.lg", function() {
t.goToNextSlide()
})
}, e.prototype.arrowDisable = function(t) {
!this.s.loop && this.s.hideControlOnEnd && (t + 1 < this.$slide.length ? this.$outer.find(".lg-next").removeAttr("disabled").removeClass("disabled") : this.$outer.find(".lg-next").attr("disabled", "disabled").addClass("disabled"), 0 < t ? this.$outer.find(".lg-prev").removeAttr("disabled").removeClass("disabled") : this.$outer.find(".lg-prev").attr("disabled", "disabled").addClass("disabled"))
}, e.prototype.setTranslate = function(t, e, i) {
this.s.useLeft ? t.css("left", e) : t.css({
transform: "translate3d(" + e + "px, " + i + "px, 0px)"
})
}, e.prototype.touchMove = function(t, e) {
t = e - t, 15 < Math.abs(t) && (this.$outer.addClass("lg-dragging"), this.setTranslate(this.$slide.eq(this.index), t, 0), this.setTranslate(f(".lg-prev-slide"), -this.$slide.eq(this.index).width() + t, 0), this.setTranslate(f(".lg-next-slide"), this.$slide.eq(this.index).width() + t, 0))
}, e.prototype.touchEnd = function(t) {
var e = this;
"lg-slide" !== e.s.mode && e.$outer.addClass("lg-slide"), this.$slide.not(".lg-current, .lg-prev-slide, .lg-next-slide").css("opacity", "0"), setTimeout(function() {
e.$outer.removeClass("lg-dragging"), t < 0 && Math.abs(t) > e.s.swipeThreshold ? e.goToNextSlide(!0) : 0 < t && Math.abs(t) > e.s.swipeThreshold ? e.goToPrevSlide(!0) : Math.abs(t) < 5 && e.$el.trigger("onSlideClick.lg"), e.$slide.removeAttr("style")
}), setTimeout(function() {
e.$outer.hasClass("lg-dragging") || "lg-slide" === e.s.mode || e.$outer.removeClass("lg-slide")
}, e.s.speed + 100)
}, e.prototype.enableSwipe = function() {
var e = this,
i = 0,
o = 0,
s = !1;
e.s.enableSwipe && e.doCss() && (e.$slide.on("touchstart.lg", function(t) {
e.$outer.hasClass("lg-zoomed") || e.lgBusy || (t.preventDefault(), e.manageSwipeClass(), i = t.originalEvent.targetTouches[0].pageX)
}), e.$slide.on("touchmove.lg", function(t) {
e.$outer.hasClass("lg-zoomed") || (t.preventDefault(), o = t.originalEvent.targetTouches[0].pageX, e.touchMove(i, o), s = !0)
}), e.$slide.on("touchend.lg", function() {
e.$outer.hasClass("lg-zoomed") || (s ? (s = !1, e.touchEnd(o - i)) : e.$el.trigger("onSlideClick.lg"))
}))
}, e.prototype.enableDrag = function() {
var e = this,
i = 0,
o = 0,
s = !1,
n = !1;
e.s.enableDrag && e.doCss() && (e.$slide.on("mousedown.lg", function(t) {
e.$outer.hasClass("lg-zoomed") || e.lgBusy || f(t.target).text().trim() || (t.preventDefault(), e.manageSwipeClass(), i = t.pageX, s = !0, e.$outer.scrollLeft += 1, --e.$outer.scrollLeft, e.$outer.removeClass("lg-grab").addClass("lg-grabbing"), e.$el.trigger("onDragstart.lg"))
}), f(window).on("mousemove.lg", function(t) {
s && (n = !0, o = t.pageX, e.touchMove(i, o), e.$el.trigger("onDragmove.lg"))
}), f(window).on("mouseup.lg", function(t) {
n ? (n = !1, e.touchEnd(o - i), e.$el.trigger("onDragend.lg")) : (f(t.target).hasClass("lg-object") || f(t.target).hasClass("lg-video-play")) && e.$el.trigger("onSlideClick.lg"), s && (s = !1, e.$outer.removeClass("lg-grabbing").addClass("lg-grab"))
}))
}, e.prototype.manageSwipeClass = function() {
var t = this.index + 1,
e = this.index - 1;
this.s.loop && 2 < this.$slide.length && (0 === this.index ? e = this.$slide.length - 1 : this.index === this.$slide.length - 1 && (t = 0)), this.$slide.removeClass("lg-next-slide lg-prev-slide"), -1 < e && this.$slide.eq(e).addClass("lg-prev-slide"), this.$slide.eq(t).addClass("lg-next-slide")
}, e.prototype.mousewheel = function() {
var e = this;
e.$outer.on("mousewheel.lg", function(t) {
t.deltaY && (0 < t.deltaY ? e.goToPrevSlide() : e.goToNextSlide(), t.preventDefault())
})
}, e.prototype.closeGallery = function() {
var e = this,
i = !1;
this.$outer.find(".lg-close").on("click.lg", function() {
e.destroy()
}), e.s.closable && (e.$outer.on("mousedown.lg", function(t) {
i = !!(f(t.target).is(".lg-outer") || f(t.target).is(".lg-item ") || f(t.target).is(".lg-img-wrap"))
}), e.$outer.on("mousemove.lg", function() {
i = !1
}), e.$outer.on("mouseup.lg", function(t) {
(f(t.target).is(".lg-outer") || f(t.target).is(".lg-item ") || f(t.target).is(".lg-img-wrap") && i) && (e.$outer.hasClass("lg-dragging") || e.destroy())
}))
}, e.prototype.destroy = function(t) {
var e = this;
t || (e.$el.trigger("onBeforeClose.lg"), f(window).scrollTop(e.prevScrollTop)), t && (e.s.dynamic || this.$items.off("click.lg click.lgcustom"), f.removeData(e.el, "lightGallery")), this.$el.off(".lg.tm"), f.each(f.fn.lightGallery.modules, function(t) {
e.modules[t] && e.modules[t].destroy()
}), this.lGalleryOn = !1, clearTimeout(e.hideBarTimeout), this.hideBarTimeout = !1, f(window).off(".lg"), f("body").removeClass("lg-on lg-from-hash"), e.$outer && e.$outer.removeClass("lg-visible"), f(".lg-backdrop").removeClass("in"), setTimeout(function() {
e.$outer && e.$outer.remove(), f(".lg-backdrop").remove(), t || e.$el.trigger("onCloseAfter.lg"), e.$el.focus()
}, e.s.backdropDuration + 50)
}, f.fn.lightGallery = function(t) {
return this.each(function() {
if (f.data(this, "lightGallery")) try {
f(this).data("lightGallery").init()
} catch (t) {
console.error("lightGallery has not initiated properly", t)
} else f.data(this, "lightGallery", new e(this, t))
})
}, f.fn.lightGallery.modules = {}
}()
}),
function(t, e) {
"function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof module && module.exports ? module.exports = e(require("jquery")) : e(t.jQuery)
}(this, function(i) {
! function() {
"use strict";
function t(t) {
return this.core = i(t).data("lightGallery"), this.$el = i(t), !(this.core.$items.length < 2) && (this.core.s = i.extend({}, e, this.core.s), this.interval = !1, this.fromAuto = !0, this.canceledOnTouch = !1, this.fourceAutoplayTemp = this.core.s.fourceAutoplay, this.core.doCss() || (this.core.s.progressBar = !1), this.init(), this)
}
var e = {
autoplay: !1,
pause: 5e3,
progressBar: !0,
fourceAutoplay: !1,
autoplayControls: !0,
appendAutoplayControlsTo: ".lg-toolbar"
};
t.prototype.init = function() {
var t = this;
t.core.s.autoplayControls && t.controls(), t.core.s.progressBar && t.core.$outer.find(".lg").append('
'), t.progress(), t.core.s.autoplay && t.$el.one("onSlideItemLoad.lg.tm", function() {
t.startlAuto()
}), t.$el.on("onDragstart.lg.tm touchstart.lg.tm", function() {
t.interval && (t.cancelAuto(), t.canceledOnTouch = !0)
}), t.$el.on("onDragend.lg.tm touchend.lg.tm onSlideClick.lg.tm", function() {
!t.interval && t.canceledOnTouch && (t.startlAuto(), t.canceledOnTouch = !1)
})
}, t.prototype.progress = function() {
var t, e, i = this;
i.$el.on("onBeforeSlide.lg.tm", function() {
i.core.s.progressBar && i.fromAuto && (t = i.core.$outer.find(".lg-progress-bar"), e = i.core.$outer.find(".lg-progress"), i.interval && (e.removeAttr("style"), t.removeClass("lg-start"), setTimeout(function() {
e.css("transition", "width " + (i.core.s.speed + i.core.s.pause) + "ms ease 0s"), t.addClass("lg-start")
}, 20))), i.fromAuto || i.core.s.fourceAutoplay || i.cancelAuto(), i.fromAuto = !1
})
}, t.prototype.controls = function() {
var t = this;
i(this.core.s.appendAutoplayControlsTo).append('
'), t.core.$outer.find(".lg-autoplay-button").on("click.lg", function() {
i(t.core.$outer).hasClass("lg-show-autoplay") ? (t.cancelAuto(), t.core.s.fourceAutoplay = !1) : t.interval || (t.startlAuto(), t.core.s.fourceAutoplay = t.fourceAutoplayTemp)
})
}, t.prototype.startlAuto = function() {
var t = this;
t.core.$outer.find(".lg-progress").css("transition", "width " + (t.core.s.speed + t.core.s.pause) + "ms ease 0s"), t.core.$outer.addClass("lg-show-autoplay"), t.core.$outer.find(".lg-progress-bar").addClass("lg-start"), t.interval = setInterval(function() {
t.core.index + 1 < t.core.$items.length ? t.core.index++ : t.core.index = 0, t.fromAuto = !0, t.core.slide(t.core.index, !1, !1, "next")
}, t.core.s.speed + t.core.s.pause)
}, t.prototype.cancelAuto = function() {
clearInterval(this.interval), this.interval = !1, this.core.$outer.find(".lg-progress").removeAttr("style"), this.core.$outer.removeClass("lg-show-autoplay"), this.core.$outer.find(".lg-progress-bar").removeClass("lg-start")
}, t.prototype.destroy = function() {
this.cancelAuto(), this.core.$outer.find(".lg-progress-bar").remove()
}, i.fn.lightGallery.modules.autoplay = t
}()
}),
function(t, e) {
"function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof module && module.exports ? module.exports = e(require("jquery")) : e(t.jQuery)
}(this, function(o) {
! function() {
"use strict";
var e = {
fullScreen: !0
};
function i() {
return document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement
}
function t(t) {
return this.core = o(t).data("lightGallery"), this.$el = o(t), this.core.s = o.extend({}, e, this.core.s), this.init(), this
}
t.prototype.init = function() {
this.core.s.fullScreen && (document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled) && (this.core.$outer.find(".lg-toolbar").append('
'), this.fullScreen())
}, t.prototype.requestFullscreen = function() {
var t = document.documentElement;
t.requestFullscreen ? t.requestFullscreen() : t.msRequestFullscreen ? t.msRequestFullscreen() : t.mozRequestFullScreen ? t.mozRequestFullScreen() : t.webkitRequestFullscreen && t.webkitRequestFullscreen()
}, t.prototype.exitFullscreen = function() {
document.exitFullscreen ? document.exitFullscreen() : document.msExitFullscreen ? document.msExitFullscreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.webkitExitFullscreen && document.webkitExitFullscreen()
}, t.prototype.fullScreen = function() {
var t = this;
o(document).on("fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg", function() {
t.core.$outer.toggleClass("lg-fullscreen-on")
}), this.core.$outer.find(".lg-fullscreen").on("click.lg", function() {
i() ? t.exitFullscreen() : t.requestFullscreen()
})
}, t.prototype.destroy = function() {
i() && this.exitFullscreen(), o(document).off("fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg")
}, o.fn.lightGallery.modules.fullscreen = t
}()
}),
function(t) {
"function" == typeof define && define.amd ? define(["jquery"], t) : "object" == typeof exports ? module.exports = t(require("jquery")) : t(jQuery)
}(function(r) {
! function() {
"use strict";
function t(t) {
return this.core = r(t).data("lightGallery"), this.$el = r(t), this.core.s = r.extend({}, e, this.core.s), this.core.s.pager && 1 < this.core.$items.length && this.init(), this
}
var e = {
pager: !1
};
t.prototype.init = function() {
var o, t, e, i = this,
s = "";
if (i.core.$outer.find(".lg").append(''), i.core.s.dynamic)
for (var n = 0; n < i.core.s.dynamicEl.length; n++) s += '';
else i.core.$items.each(function() {
i.core.s.exThumbImage ? s += '' : s += ''
});
(t = i.core.$outer.find(".lg-pager-outer")).html(s), (o = i.core.$outer.find(".lg-pager-cont")).on("click.lg touchend.lg", function() {
var t = r(this);
i.core.index = t.index(), i.core.slide(i.core.index, !1, !0, !1)
}), t.on("mouseover.lg", function() {
clearTimeout(e), t.addClass("lg-pager-hover")
}), t.on("mouseout.lg", function() {
e = setTimeout(function() {
t.removeClass("lg-pager-hover")
})
}), i.core.$el.on("onBeforeSlide.lg.tm", function(t, e, i) {
o.removeClass("lg-pager-active"), o.eq(i).addClass("lg-pager-active")
})
}, t.prototype.destroy = function() {}, r.fn.lightGallery.modules.pager = t
}()
}),
function(t, e) {
"function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof module && module.exports ? module.exports = e(require("jquery")) : e(t.jQuery)
}(this, function(a) {
! function() {
"use strict";
function t(t) {
return this.core = a(t).data("lightGallery"), this.core.s = a.extend({}, e, this.core.s), this.$el = a(t), this.$thumbOuter = null, this.thumbOuterWidth = 0, this.thumbTotalWidth = this.core.$items.length * (this.core.s.thumbWidth + this.core.s.thumbMargin), this.thumbIndex = this.core.index, this.core.s.animateThumb && (this.core.s.thumbHeight = "100%"), this.left = 0, this.init(), this
}
var e = {
thumbnail: !0,
animateThumb: !0,
currentPagerPosition: "middle",
thumbWidth: 100,
thumbHeight: "80px",
thumbContHeight: 100,
thumbMargin: 5,
exThumbImage: !1,
showThumbByDefault: !0,
toogleThumb: !0,
pullCaptionUp: !0,
enableThumbDrag: !0,
enableThumbSwipe: !0,
swipeThreshold: 50,
loadYoutubeThumbnail: !0,
youtubeThumbSize: 1,
loadVimeoThumbnail: !0,
vimeoThumbSize: "thumbnail_small",
loadDailymotionThumbnail: !0
};
t.prototype.init = function() {
var t = this;
this.core.s.thumbnail && 1 < this.core.$items.length && (this.core.s.showThumbByDefault && setTimeout(function() {
t.core.$outer.addClass("lg-thumb-open")
}, 700), this.core.s.pullCaptionUp && this.core.$outer.addClass("lg-pull-caption-up"), this.build(), this.core.s.animateThumb && this.core.doCss() ? (this.core.s.enableThumbDrag && this.enableThumbDrag(), this.core.s.enableThumbSwipe && this.enableThumbSwipe(), this.thumbClickable = !1) : this.thumbClickable = !0, this.toogle(), this.thumbkeyPress())
}, t.prototype.build = function() {
var t, s = this,
n = "",
r = "";
switch (this.core.s.vimeoThumbSize) {
case "thumbnail_large":
r = "640";
break;
case "thumbnail_medium":
r = "200x150";
break;
case "thumbnail_small":
r = "100x75"
}
function e(t, e, i) {
var o, t = s.core.isVideo(t, i) || {},
i = "";
t.youtube || t.vimeo || t.dailymotion ? t.youtube ? o = s.core.s.loadYoutubeThumbnail ? "//img.youtube.com/vi/" + t.youtube[1] + "/" + s.core.s.youtubeThumbSize + ".jpg" : e : t.vimeo ? s.core.s.loadVimeoThumbnail ? (o = "//i.vimeocdn.com/video/error_" + r + ".jpg", i = t.vimeo[1]) : o = e : t.dailymotion && (o = s.core.s.loadDailymotionThumbnail ? "//www.dailymotion.com/thumbnail/video/" + t.dailymotion[1] : e) : o = e, n += '
', i = ""
}
if (s.core.$outer.addClass("lg-has-thumb"), s.core.$outer.find(".lg").append('
'), s.$thumbOuter = s.core.$outer.find(".lg-thumb-outer"), s.thumbOuterWidth = s.$thumbOuter.width(), s.core.s.animateThumb && s.core.$outer.find(".lg-thumb").css({
width: s.thumbTotalWidth + "px",
position: "relative"
}), this.core.s.animateThumb && s.$thumbOuter.css("height", s.core.s.thumbContHeight + "px"), s.core.s.dynamic)
for (var i = 0; i < s.core.s.dynamicEl.length; i++) e(s.core.s.dynamicEl[i].src, s.core.s.dynamicEl[i].thumb, i);
else s.core.$items.each(function(t) {
s.core.s.exThumbImage ? e(a(this).attr("href") || a(this).attr("data-src"), a(this).attr(s.core.s.exThumbImage), t) : e(a(this).attr("href") || a(this).attr("data-src"), a(this).find("img").attr("src"), t)
});
s.core.$outer.find(".lg-thumb").html(n), (t = s.core.$outer.find(".lg-thumb-item")).each(function() {
var e = a(this),
t = e.attr("data-vimeo-id");
t && a.getJSON("//www.vimeo.com/api/v2/video/" + t + ".json?callback=?", {
format: "json"
}, function(t) {
e.find("img").attr("src", t[0][s.core.s.vimeoThumbSize])
})
}), t.eq(s.core.index).addClass("active"), s.core.$el.on("onBeforeSlide.lg.tm", function() {
t.removeClass("active"), t.eq(s.core.index).addClass("active")
}), t.on("click.lg touchend.lg", function() {
var t = a(this);
setTimeout(function() {
(!s.thumbClickable || s.core.lgBusy) && s.core.doCss() || (s.core.index = t.index(), s.core.slide(s.core.index, !1, !0, !1))
}, 50)
}), s.core.$el.on("onBeforeSlide.lg.tm", function() {
s.animateThumb(s.core.index)
}), a(window).on("resize.lg.thumb orientationchange.lg.thumb", function() {
setTimeout(function() {
s.animateThumb(s.core.index), s.thumbOuterWidth = s.$thumbOuter.width()
}, 200)
})
}, t.prototype.setTranslate = function(t) {
this.core.$outer.find(".lg-thumb").css({
transform: "translate3d(-" + t + "px, 0px, 0px)"
})
}, t.prototype.animateThumb = function(t) {
var e, i = this.core.$outer.find(".lg-thumb");
if (this.core.s.animateThumb) {
switch (this.core.s.currentPagerPosition) {
case "left":
e = 0;
break;
case "middle":
e = this.thumbOuterWidth / 2 - this.core.s.thumbWidth / 2;
break;
case "right":
e = this.thumbOuterWidth - this.core.s.thumbWidth
}
this.left = (this.core.s.thumbWidth + this.core.s.thumbMargin) * t - 1 - e, this.left > this.thumbTotalWidth - this.thumbOuterWidth && (this.left = this.thumbTotalWidth - this.thumbOuterWidth), this.left < 0 && (this.left = 0), this.core.lGalleryOn ? (i.hasClass("on") || this.core.$outer.find(".lg-thumb").css("transition-duration", this.core.s.speed + "ms"), this.core.doCss() || i.animate({
left: -this.left + "px"
}, this.core.s.speed)) : this.core.doCss() || i.css("left", -this.left + "px"), this.setTranslate(this.left)
}
}, t.prototype.enableThumbDrag = function() {
var e = this,
i = 0,
o = 0,
s = !1,
n = !1,
r = 0;
e.$thumbOuter.addClass("lg-grab"), e.core.$outer.find(".lg-thumb").on("mousedown.lg.thumb", function(t) {
e.thumbTotalWidth > e.thumbOuterWidth && (t.preventDefault(), i = t.pageX, s = !0, e.core.$outer.scrollLeft += 1, --e.core.$outer.scrollLeft, e.thumbClickable = !1, e.$thumbOuter.removeClass("lg-grab").addClass("lg-grabbing"))
}), a(window).on("mousemove.lg.thumb", function(t) {
s && (r = e.left, n = !0, o = t.pageX, e.$thumbOuter.addClass("lg-dragging"), (r -= o - i) > e.thumbTotalWidth - e.thumbOuterWidth && (r = e.thumbTotalWidth - e.thumbOuterWidth), r < 0 && (r = 0), e.setTranslate(r))
}), a(window).on("mouseup.lg.thumb", function() {
n ? (n = !1, e.$thumbOuter.removeClass("lg-dragging"), e.left = r, Math.abs(o - i) < e.core.s.swipeThreshold && (e.thumbClickable = !0)) : e.thumbClickable = !0, s && (s = !1, e.$thumbOuter.removeClass("lg-grabbing").addClass("lg-grab"))
})
}, t.prototype.enableThumbSwipe = function() {
var e = this,
i = 0,
o = 0,
s = !1,
n = 0;
e.core.$outer.find(".lg-thumb").on("touchstart.lg", function(t) {
e.thumbTotalWidth > e.thumbOuterWidth && (t.preventDefault(), i = t.originalEvent.targetTouches[0].pageX, e.thumbClickable = !1)
}), e.core.$outer.find(".lg-thumb").on("touchmove.lg", function(t) {
e.thumbTotalWidth > e.thumbOuterWidth && (t.preventDefault(), o = t.originalEvent.targetTouches[0].pageX, s = !0, e.$thumbOuter.addClass("lg-dragging"), n = e.left, (n -= o - i) > e.thumbTotalWidth - e.thumbOuterWidth && (n = e.thumbTotalWidth - e.thumbOuterWidth), n < 0 && (n = 0), e.setTranslate(n))
}), e.core.$outer.find(".lg-thumb").on("touchend.lg", function() {
e.thumbTotalWidth > e.thumbOuterWidth && s ? (s = !1, e.$thumbOuter.removeClass("lg-dragging"), Math.abs(o - i) < e.core.s.swipeThreshold && (e.thumbClickable = !0), e.left = n) : e.thumbClickable = !0
})
}, t.prototype.toogle = function() {
var t = this;
t.core.s.toogleThumb && (t.core.$outer.addClass("lg-can-toggle"), t.$thumbOuter.append('
'), t.core.$outer.find(".lg-toogle-thumb").on("click.lg", function() {
t.core.$outer.toggleClass("lg-thumb-open")
}))
}, t.prototype.thumbkeyPress = function() {
var e = this;
a(window).on("keydown.lg.thumb", function(t) {
38 === t.keyCode ? (t.preventDefault(), e.core.$outer.addClass("lg-thumb-open")) : 40 === t.keyCode && (t.preventDefault(), e.core.$outer.removeClass("lg-thumb-open"))
})
}, t.prototype.destroy = function() {
this.core.s.thumbnail && 1 < this.core.$items.length && (a(window).off("resize.lg.thumb orientationchange.lg.thumb keydown.lg.thumb"), this.$thumbOuter.remove(), this.core.$outer.removeClass("lg-has-thumb"))
}, a.fn.lightGallery.modules.Thumbnail = t
}()
}),
function(t, e) {
"function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof module && module.exports ? module.exports = e(require("jquery")) : e(t.jQuery)
}(this, function(c) {
! function() {
"use strict";
function t(t) {
return this.core = c(t).data("lightGallery"), this.$el = c(t), this.core.s = c.extend({}, e, this.core.s), this.videoLoaded = !1, this.init(), this
}
var e = {
videoMaxWidth: "855px",
autoplayFirstVideo: !0,
youtubePlayerParams: !1,
vimeoPlayerParams: !1,
dailymotionPlayerParams: !1,
vkPlayerParams: !1,
videojs: !1,
videojsOptions: {}
};
t.prototype.init = function() {
var o = this;
o.core.$el.on("hasVideo.lg.tm", function(t, e, i, o) {
var s = this;
if (s.core.$slide.eq(e).find(".lg-video").append(s.loadVideo(i, "lg-object", !0, e, o)), o)
if (s.core.s.videojs) try {
videojs(s.core.$slide.eq(e).find(".lg-html5").get(0), s.core.s.videojsOptions, function() {
!s.videoLoaded && s.core.s.autoplayFirstVideo && this.play()
})
} catch (t) {
console.error("Make sure you have included videojs")
} else !s.videoLoaded && s.core.s.autoplayFirstVideo && s.core.$slide.eq(e).find(".lg-html5").get(0).play()
}.bind(this)), o.core.$el.on("onAferAppendSlide.lg.tm", function(t, e) {
(e = this.core.$slide.eq(e).find(".lg-video-cont")).hasClass("lg-has-iframe") || (e.css("max-width", this.core.s.videoMaxWidth), this.videoLoaded = !0)
}.bind(this)), o.core.doCss() && 1 < o.core.$items.length && (o.core.s.enableSwipe || o.core.s.enableDrag) ? o.core.$el.on("onSlideClick.lg.tm", function() {
var t = o.core.$slide.eq(o.core.index);
o.loadVideoOnclick(t)
}) : o.core.$slide.on("click.lg", function() {
o.loadVideoOnclick(c(this))
}), o.core.$el.on("onBeforeSlide.lg.tm", function(t, e, i) {
var o = this,
s = o.core.$slide.eq(e),
n = s.find(".lg-youtube").get(0),
r = s.find(".lg-vimeo").get(0),
a = s.find(".lg-dailymotion").get(0),
e = s.find(".lg-vk").get(0),
l = s.find(".lg-html5").get(0);
if (n) n.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}', "*");
else if (r) try {
$f(r).api("pause")
} catch (t) {
console.error("Make sure you have included froogaloop2 js")
} else if (a) a.contentWindow.postMessage("pause", "*");
else if (l)
if (o.core.s.videojs) try {
videojs(l).pause()
} catch (t) {
console.error("Make sure you have included videojs")
} else l.pause();
e && c(e).attr("src", c(e).attr("src").replace("&autoplay", "&noplay")), e = o.core.s.dynamic ? o.core.s.dynamicEl[i].src : o.core.$items.eq(i).attr("href") || o.core.$items.eq(i).attr("data-src"), ((i = o.core.isVideo(e, i) || {}).youtube || i.vimeo || i.dailymotion || i.vk) && o.core.$outer.addClass("lg-hide-download")
}.bind(this)), o.core.$el.on("onAfterSlide.lg.tm", function(t, e) {
o.core.$slide.eq(e).removeClass("lg-video-playing")
}), o.core.s.autoplayFirstVideo && o.core.$el.on("onAferAppendSlide.lg.tm", function(t, e) {
var i;
o.core.lGalleryOn || (i = o.core.$slide.eq(e), setTimeout(function() {
o.loadVideoOnclick(i)
}, 100))
})
}, t.prototype.loadVideo = function(t, e, i, o, s) {
var n = this,
r = "",
a = 1,
l = "",
o = this.core.isVideo(t, o) || {};
return n = (n = n.core.s.dynamic ? n.core.s.dynamicEl[n.core.index].title : n.core.$items.eq(n.core.index).attr("title") || n.core.$items.eq(n.core.index).find("img").first().attr("alt")) ? 'title="' + n + '"' : "", i && (a = !this.videoLoaded && this.core.s.autoplayFirstVideo ? 1 : 0), o.youtube ? (l = "?wmode=opaque&autoplay=" + a + "&enablejsapi=1", this.core.s.youtubePlayerParams && (l = l + "&" + c.param(this.core.s.youtubePlayerParams)), r = '
') : o.vimeo ? (l = "?autoplay=" + a + "&api=1", this.core.s.vimeoPlayerParams && (l = l + "&" + c.param(this.core.s.vimeoPlayerParams)), r = '
') : o.dailymotion ? (l = "?wmode=opaque&autoplay=" + a + "&api=postMessage", this.core.s.dailymotionPlayerParams && (l = l + "&" + c.param(this.core.s.dailymotionPlayerParams)), r = '
') : o.html5 ? ("." !== (i = s.substring(0, 1)) && "#" !== i || (s = c(s).html()), r = s) : o.vk && (l = "&autoplay=" + a, this.core.s.vkPlayerParams && (l = l + "&" + c.param(this.core.s.vkPlayerParams)), r = '
'), r
}, t.prototype.loadVideoOnclick = function(i) {
var o = this;
if (i.find(".lg-object").hasClass("lg-has-poster") && i.find(".lg-object").is(":visible"))
if (i.hasClass("lg-has-video")) {
var t = i.find(".lg-youtube").get(0),
e = i.find(".lg-vimeo").get(0),
s = i.find(".lg-dailymotion").get(0),
n = i.find(".lg-html5").get(0);
if (t) t.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}', "*");
else if (e) try {
$f(e).api("play")
} catch (t) {
console.error("Make sure you have included froogaloop2 js")
} else if (s) s.contentWindow.postMessage("play", "*");
else if (n)
if (o.core.s.videojs) try {
videojs(n).play()
} catch (t) {
console.error("Make sure you have included videojs")
} else n.play();
i.addClass("lg-video-playing")
} else i.addClass("lg-video-playing lg-has-video"), s = function(t, e) {
if (i.find(".lg-video").append(o.loadVideo(t, "", !1, o.core.index, e)), e)
if (o.core.s.videojs) try {
videojs(o.core.$slide.eq(o.core.index).find(".lg-html5").get(0), o.core.s.videojsOptions, function() {
this.play()
})
} catch (t) {
console.error("Make sure you have included videojs")
} else o.core.$slide.eq(o.core.index).find(".lg-html5").get(0).play()
}, o.core.s.dynamic ? s(o.core.s.dynamicEl[o.core.index].src, o.core.s.dynamicEl[o.core.index].html) : s(o.core.$items.eq(o.core.index).attr("href") || o.core.$items.eq(o.core.index).attr("data-src"), o.core.$items.eq(o.core.index).attr("data-html")), s = i.find(".lg-object"), i.find(".lg-video").append(s), i.find(".lg-video-object").hasClass("lg-html5") || (i.removeClass("lg-complete"), i.find(".lg-video-object").on("load.lg error.lg", function() {
i.addClass("lg-complete")
}))
}, t.prototype.destroy = function() {
this.videoLoaded = !1
}, c.fn.lightGallery.modules.video = t
}()
}),
function(t, e) {
"function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof module && module.exports ? module.exports = e(require("jquery")) : e(t.jQuery)
}(this, function(d) {
! function() {
"use strict";
function t(t) {
return this.core = d(t).data("lightGallery"), this.core.s = d.extend({}, o, this.core.s), this.core.s.zoom && this.core.doCss() && (this.init(), this.zoomabletimeout = !1, this.pageX = d(window).width() / 2, this.pageY = d(window).height() / 2 + d(window).scrollTop()), this
}
var e, i, o = {
scale: 1,
zoom: !0,
actualSize: !0,
enableZoomAfter: 300,
useLeftForZoom: (e = !1, (i = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)) && parseInt(i[2], 10) < 54 && (e = !0), e)
};
t.prototype.init = function() {
var n = this,
t = '
';
function e(t) {
var e = n.core.$outer.find(".lg-current .lg-image"),
i = (d(window).width() - e.prop("offsetWidth")) / 2,
o = (d(window).height() - e.prop("offsetHeight")) / 2 + d(window).scrollTop(),
i = (t - 1) * (n.pageX - i),
o = (t - 1) * (n.pageY - o);
e.css("transform", "scale3d(" + t + ", " + t + ", 1)").attr("data-scale", t), (n.core.s.useLeftForZoom ? e.parent().css({
left: -i + "px",
top: -o + "px"
}) : e.parent().css("transform", "translate3d(-" + i + "px, -" + o + "px, 0)")).attr("data-x", i).attr("data-y", o)
}
function r() {
1 < a ? n.core.$outer.addClass("lg-zoomed") : n.resetZoom(), a < 1 && (a = 1), e(a)
}
function o(t, e, i, o) {
var s = e.prop("offsetWidth"),
e = n.core.s.dynamic ? n.core.s.dynamicEl[i].width || e[0].naturalWidth || s : n.core.$items.eq(i).attr("data-width") || e[0].naturalWidth || s;
n.core.$outer.hasClass("lg-zoomed") ? a = 1 : s < e && (a = e / s || 2), o ? (n.pageX = d(window).width() / 2, n.pageY = d(window).height() / 2 + d(window).scrollTop()) : (n.pageX = t.pageX || t.originalEvent.targetTouches[0].pageX, n.pageY = t.pageY || t.originalEvent.targetTouches[0].pageY), r(), setTimeout(function() {
n.core.$outer.removeClass("lg-grabbing").addClass("lg-grab")
}, 10)
}
n.core.s.actualSize && (t += '
'), n.core.s.useLeftForZoom ? n.core.$outer.addClass("lg-use-left-for-zoom") : n.core.$outer.addClass("lg-use-transition-for-zoom"), this.core.$outer.find(".lg-toolbar").append(t), n.core.$el.on("onSlideItemLoad.lg.tm.zoom", function(t, e, i) {
var o = n.core.s.enableZoomAfter + i;
d("body").hasClass("lg-from-hash") && i ? o = 0 : d("body").removeClass("lg-from-hash"), n.zoomabletimeout = setTimeout(function() {
n.core.$slide.eq(e).addClass("lg-zoomable")
}, o + 30)
});
var a = 1,
s = !1;
n.core.$el.on("onAferAppendSlide.lg.tm.zoom", function(t, e) {
var i = n.core.$slide.eq(e).find(".lg-image");
i.on("dblclick", function(t) {
o(t, i, e)
}), i.on("touchstart", function(t) {
s ? (clearTimeout(s), s = null, o(t, i, e)) : s = setTimeout(function() {
s = null
}, 300), t.preventDefault()
})
}), d(window).on("resize.lg.zoom scroll.lg.zoom orientationchange.lg.zoom", function() {
n.pageX = d(window).width() / 2, n.pageY = d(window).height() / 2 + d(window).scrollTop(), e(a)
}), d("#lg-zoom-out").on("click.lg", function() {
n.core.$outer.find(".lg-current .lg-image").length && (a -= n.core.s.scale, r())
}), d("#lg-zoom-in").on("click.lg", function() {
n.core.$outer.find(".lg-current .lg-image").length && (a += n.core.s.scale, r())
}), d("#lg-actual-size").on("click.lg", function(t) {
o(t, n.core.$slide.eq(n.core.index).find(".lg-image"), n.core.index, !0)
}), n.core.$el.on("onBeforeSlide.lg.tm", function() {
a = 1, n.resetZoom()
}), n.zoomDrag(), n.zoomSwipe()
}, t.prototype.getCurrentTransform = function(t) {
return t && "none" !== (t = (t = window.getComputedStyle(t, null)).getPropertyValue("-webkit-transform") || t.getPropertyValue("-moz-transform") || t.getPropertyValue("-ms-transform") || t.getPropertyValue("-o-transform") || t.getPropertyValue("transform") || "none") ? t.split("(")[1].split(")")[0].split(",") : 0
}, t.prototype.getCurrentRotation = function(t) {
return (t = t && this.getCurrentTransform(t)) ? Math.round(Math.atan2(t[1], t[0]) * (180 / Math.PI)) : 0
}, t.prototype.getModifier = function(t, e, i) {
var o = t;
t = Math.abs(t);
var s = this.getCurrentTransform(i);
if (!s) return 1;
var n, i = 1;
return "X" === e ? (n = Math.sign(parseFloat(s[0])), 0 === t || 180 === t ? i = 1 : 90 === t && (i = -90 === o && 1 === n || 90 === o && -1 === n ? -1 : 1)) : (n = Math.sign(parseFloat(s[3])), 0 === t || 180 === t ? i = 1 : 90 === t && (t = parseFloat(s[1]), s = parseFloat(s[2]), i = Math.sign(t * s * o * n))), i *= n
}, t.prototype.getImageSize = function(t, e, i) {
return 90 === e && (i = "x" === i ? "y" : "x"), t.prop({
y: "offsetHeight",
x: "offsetWidth"
} [i])
}, t.prototype.getDragCords = function(t, e) {
return 90 === e ? {
x: t.pageY,
y: t.pageX
} : {
x: t.pageX,
y: t.pageY
}
}, t.prototype.getSwipeCords = function(t, e) {
var i = t.originalEvent.targetTouches[0].pageX,
t = t.originalEvent.targetTouches[0].pageY;
return 90 === e ? {
x: t,
y: i
} : {
x: i,
y: t
}
}, t.prototype.getPossibleDragCords = function(t, e) {
var i = (this.core.$outer.find(".lg").height() - this.getImageSize(t, e, "y")) / 2,
o = Math.abs(this.getImageSize(t, e, "y") * Math.abs(t.attr("data-scale")) - this.core.$outer.find(".lg").height() + i),
s = (this.core.$outer.find(".lg").width() - this.getImageSize(t, e, "x")) / 2,
t = Math.abs(this.getImageSize(t, e, "x") * Math.abs(t.attr("data-scale")) - this.core.$outer.find(".lg").width() + s);
return 90 === e ? {
minY: s,
maxY: t,
minX: i,
maxX: o
} : {
minY: i,
maxY: o,
minX: s,
maxX: t
}
}, t.prototype.getDragAllowedAxises = function(t, e) {
var i = this.getImageSize(t, e, "y") * t.attr("data-scale") > this.core.$outer.find(".lg").height(),
t = this.getImageSize(t, e, "x") * t.attr("data-scale") > this.core.$outer.find(".lg").width();
return 90 === e ? {
allowX: i,
allowY: t
} : {
allowX: t,
allowY: i
}
}, t.prototype.resetZoom = function() {
this.core.$outer.removeClass("lg-zoomed"), this.core.$slide.find(".lg-img-wrap").removeAttr("style data-x data-y"), this.core.$slide.find(".lg-image").removeAttr("style data-scale"), this.pageX = d(window).width() / 2, this.pageY = d(window).height() / 2 + d(window).scrollTop()
}, t.prototype.zoomSwipe = function() {
var o, s = this,
n = {},
r = {},
a = !1,
l = !1,
c = !1,
h = 0;
s.core.$slide.on("touchstart.lg", function(t) {
var e;
s.core.$outer.hasClass("lg-zoomed") && (e = s.core.$slide.eq(s.core.index).find(".lg-object"), o = s.core.$slide.eq(s.core.index).find(".lg-img-rotate")[0], h = s.getCurrentRotation(o), e = s.getDragAllowedAxises(e, Math.abs(h)), c = e.allowY, ((l = e.allowX) || c) && (t.preventDefault(), n = s.getSwipeCords(t, Math.abs(h))))
}), s.core.$slide.on("touchmove.lg", function(t) {
var e, i;
s.core.$outer.hasClass("lg-zoomed") && (e = s.core.$slide.eq(s.core.index).find(".lg-img-wrap"), t.preventDefault(), a = !0, r = s.getSwipeCords(t, Math.abs(h)), s.core.$outer.addClass("lg-zoom-dragging"), i = c ? -Math.abs(e.attr("data-y")) + (r.y - n.y) * s.getModifier(h, "Y", o) : -Math.abs(e.attr("data-y")), t = l ? -Math.abs(e.attr("data-x")) + (r.x - n.x) * s.getModifier(h, "X", o) : -Math.abs(e.attr("data-x")), (15 < Math.abs(r.x - n.x) || 15 < Math.abs(r.y - n.y)) && (s.core.s.useLeftForZoom ? e.css({
left: t + "px",
top: i + "px"
}) : e.css("transform", "translate3d(" + t + "px, " + i + "px, 0)")))
}), s.core.$slide.on("touchend.lg", function() {
s.core.$outer.hasClass("lg-zoomed") && a && (a = !1, s.core.$outer.removeClass("lg-zoom-dragging"), s.touchendZoom(n, r, l, c, h))
})
}, t.prototype.zoomDrag = function() {
var o, s = this,
n = {},
r = {},
a = !1,
l = !1,
c = !1,
h = !1,
u = 0;
s.core.$slide.on("mousedown.lg.zoom", function(t) {
o = s.core.$slide.eq(s.core.index).find(".lg-img-rotate")[0], u = s.getCurrentRotation(o);
var e = s.core.$slide.eq(s.core.index).find(".lg-object"),
e = s.getDragAllowedAxises(e, Math.abs(u));
h = e.allowY, c = e.allowX, s.core.$outer.hasClass("lg-zoomed") && d(t.target).hasClass("lg-object") && (c || h) && (t.preventDefault(), n = s.getDragCords(t, Math.abs(u)), a = !0, s.core.$outer.scrollLeft += 1, --s.core.$outer.scrollLeft, s.core.$outer.removeClass("lg-grab").addClass("lg-grabbing"))
}), d(window).on("mousemove.lg.zoom", function(t) {
var e, i;
a && (e = s.core.$slide.eq(s.core.index).find(".lg-img-wrap"), l = !0, r = s.getDragCords(t, Math.abs(u)), s.core.$outer.addClass("lg-zoom-dragging"), i = h ? -Math.abs(e.attr("data-y")) + (r.y - n.y) * s.getModifier(u, "Y", o) : -Math.abs(e.attr("data-y")), t = c ? -Math.abs(e.attr("data-x")) + (r.x - n.x) * s.getModifier(u, "X", o) : -Math.abs(e.attr("data-x")), s.core.s.useLeftForZoom ? e.css({
left: t + "px",
top: i + "px"
}) : e.css("transform", "translate3d(" + t + "px, " + i + "px, 0)"))
}), d(window).on("mouseup.lg.zoom", function(t) {
a && (a = !1, s.core.$outer.removeClass("lg-zoom-dragging"), !l || n.x === r.x && n.y === r.y || (r = s.getDragCords(t, Math.abs(u)), s.touchendZoom(n, r, c, h, u)), l = !1), s.core.$outer.removeClass("lg-grabbing").addClass("lg-grab")
})
}, t.prototype.touchendZoom = function(t, e, i, o, s) {
var n = this,
r = n.core.$slide.eq(n.core.index).find(".lg-img-wrap"),
a = n.core.$slide.eq(n.core.index).find(".lg-object"),
l = n.core.$slide.eq(n.core.index).find(".lg-img-rotate")[0],
c = -Math.abs(r.attr("data-x")) + (e.x - t.x) * n.getModifier(s, "X", l),
l = -Math.abs(r.attr("data-y")) + (e.y - t.y) * n.getModifier(s, "Y", l),
s = n.getPossibleDragCords(a, Math.abs(s));
(15 < Math.abs(e.x - t.x) || 15 < Math.abs(e.y - t.y)) && (o && (l <= -s.maxY ? l = -s.maxY : l >= -s.minY && (l = -s.minY)), i && (c <= -s.maxX ? c = -s.maxX : c >= -s.minX && (c = -s.minX)), o ? r.attr("data-y", Math.abs(l)) : l = -Math.abs(r.attr("data-y")), i ? r.attr("data-x", Math.abs(c)) : c = -Math.abs(r.attr("data-x")), n.core.s.useLeftForZoom ? r.css({
left: c + "px",
top: l + "px"
}) : r.css("transform", "translate3d(" + c + "px, " + l + "px, 0)"))
}, t.prototype.destroy = function() {
var t = this;
t.core.$el.off(".lg.zoom"), d(window).off(".lg.zoom"), t.core.$slide.off(".lg.zoom"), t.core.$el.off(".lg.tm.zoom"), t.resetZoom(), clearTimeout(t.zoomabletimeout), t.zoomabletimeout = !1
}, d.fn.lightGallery.modules.zoom = t
}()
}),
function(t) {
"function" == typeof define && define.amd ? define(["jquery"], t) : "object" == typeof exports ? module.exports = t(require("jquery")) : t(jQuery)
}(function(i) {
! function() {
"use strict";
function t(t) {
return this.core = i(t).data("lightGallery"), this.core.s = i.extend({}, e, this.core.s), this.core.s.hash && (this.oldHash = window.location.hash, this.init()), this
}
var e = {
hash: !0
};
t.prototype.init = function() {
var e, o = this;
o.core.$el.on("onAfterSlide.lg.tm", function(t, e, i) {
history.replaceState ? history.replaceState(null, null, window.location.pathname + window.location.search + "#lg=" + o.core.s.galleryId + "&slide=" + i) : window.location.hash = "lg=" + o.core.s.galleryId + "&slide=" + i
}), i(window).on("hashchange.lg.hash", function() {
e = window.location.hash;
var t = parseInt(e.split("&slide=")[1], 10); - 1 < e.indexOf("lg=" + o.core.s.galleryId) ? o.core.slide(t, !1, !1) : o.core.lGalleryOn && o.core.destroy()
})
}, t.prototype.destroy = function() {
this.core.s.hash && (this.oldHash && this.oldHash.indexOf("lg=" + this.core.s.galleryId) < 0 ? history.replaceState ? history.replaceState(null, null, this.oldHash) : window.location.hash = this.oldHash : history.replaceState ? history.replaceState(null, document.title, window.location.pathname + window.location.search) : window.location.hash = "", this.core.$el.off(".lg.hash"))
}, i.fn.lightGallery.modules.hash = t
}()
}),
function(t, e) {
"function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof module && module.exports ? module.exports = e(require("jquery")) : e(t.jQuery)
}(this, function(s) {
! function() {
"use strict";
function t(t) {
return this.core = s(t).data("lightGallery"), this.core.s = s.extend({}, e, this.core.s), this.core.s.share && this.init(), this
}
var e = {
share: !0,
facebook: !0,
facebookDropdownText: "Facebook",
twitter: !0,
twitterDropdownText: "Twitter",
pinterest: !0,
pinterestDropdownText: "Pinterest"
};
t.prototype.init = function() {
var o = this,
t = '
", this.core.$outer.find(".lg-toolbar").append(t), this.core.$outer.find(".lg").append('
'), s("#lg-share").on("click.lg", function() {
o.core.$outer.toggleClass("lg-dropdown-active");
var t = s("#lg-share").attr("aria-expanded");
s("#lg-share").attr("aria-expanded", "true" !== t)
}), s("#lg-dropdown-overlay").on("click.lg", function() {
o.core.$outer.removeClass("lg-dropdown-active"), s("#lg-share").attr("aria-expanded", !1)
}), o.core.$el.on("onAfterSlide.lg.tm", function(t, e, i) {
setTimeout(function() {
s("#lg-share-facebook").attr("href", "https://www.facebook.com/sharer/sharer.php?u=" + encodeURIComponent(o.getSahreProps(i, "facebookShareUrl") || window.location.href)), s("#lg-share-twitter").attr("href", "https://twitter.com/intent/tweet?text=" + o.getSahreProps(i, "tweetText") + "&url=" + encodeURIComponent(o.getSahreProps(i, "twitterShareUrl") || window.location.href)), s("#lg-share-pinterest").attr("href", "http://www.pinterest.com/pin/create/button/?url=" + encodeURIComponent(o.getSahreProps(i, "pinterestShareUrl") || window.location.href) + "&media=" + encodeURIComponent(o.getSahreProps(i, "src")) + "&description=" + o.getSahreProps(i, "pinterestText"))
}, 100)
})
}, t.prototype.getSahreProps = function(t, e) {
var i;
return this.core.s.dynamic ? this.core.s.dynamicEl[t][e] : (i = this.core.$items.eq(t).attr("href"), t = this.core.$items.eq(t).data(e), "src" === e && i || t)
}, t.prototype.destroy = function() {}, s.fn.lightGallery.modules.share = t
}()
}),
function(t, e) {
"function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof module && module.exports ? module.exports = e(require("jquery")) : e(t.jQuery)
}(this, function(i) {
! function() {
"use strict";
function t(t) {
return this.core = i(t).data("lightGallery"), this.core.s = i.extend({}, e, this.core.s), this.core.s.rotate && this.core.doCss() && this.init(), this
}
var e = {
rotate: !0,
rotateLeft: !0,
rotateRight: !0,
flipHorizontal: !0,
flipVertical: !0
};
t.prototype.buildTemplates = function() {
var t = "";
this.core.s.flipVertical && (t += '
'), this.core.s.flipHorizontal && (t += '
'), this.core.s.rotateLeft && (t += '
'), this.core.s.rotateRight && (t += '
'), this.core.$outer.find(".lg-toolbar").append(t)
}, t.prototype.init = function() {
var o = this;
this.buildTemplates(), this.rotateValuesList = {}, this.core.$el.on("onAferAppendSlide.lg.tm.rotate", function(t, e) {
o.core.$slide.eq(e).find(".lg-img-wrap").wrap('
')
}), this.core.$outer.find(".lg-rotate-left").on("click.lg", this.rotateLeft.bind(this)), this.core.$outer.find(".lg-rotate-right").on("click.lg", this.rotateRight.bind(this)), this.core.$outer.find(".lg-flip-hor").on("click.lg", this.flipHorizontal.bind(this)), this.core.$outer.find(".lg-flip-ver").on("click.lg", this.flipVertical.bind(this)), this.core.$el.on("onBeforeSlide.lg.tm.rotate", function(t, e, i) {
o.rotateValuesList[i] || (o.rotateValuesList[i] = {
rotate: 0,
flipHorizontal: 1,
flipVertical: 1
})
})
}, t.prototype.applyStyles = function() {
this.core.$slide.eq(this.core.index).find(".lg-img-rotate").css("transform", "rotate(" + this.rotateValuesList[this.core.index].rotate + "deg) scale3d(" + this.rotateValuesList[this.core.index].flipHorizontal + ", " + this.rotateValuesList[this.core.index].flipVertical + ", 1)")
}, t.prototype.getCurrentRotation = function(t) {
return t && "none" !== (t = (t = window.getComputedStyle(t, null)).getPropertyValue("-webkit-transform") || t.getPropertyValue("-moz-transform") || t.getPropertyValue("-ms-transform") || t.getPropertyValue("-o-transform") || t.getPropertyValue("transform") || "none") && (t = t.split("(")[1].split(")")[0].split(",")) ? (t = Math.round(Math.atan2(t[1], t[0]) * (180 / Math.PI))) < 0 ? t + 360 : t : 0
}, t.prototype.rotateLeft = function() {
this.rotateValuesList[this.core.index].rotate -= 90, this.applyStyles()
}, t.prototype.rotateRight = function() {
this.rotateValuesList[this.core.index].rotate += 90, this.applyStyles()
}, t.prototype.flipHorizontal = function() {
var t = this.core.$slide.eq(this.core.index).find(".lg-img-rotate")[0],
t = 90 !== (t = this.getCurrentRotation(t)) && 270 !== t ? "flipHorizontal" : "flipVertical";
this.rotateValuesList[this.core.index][t] *= -1, this.applyStyles()
}, t.prototype.flipVertical = function() {
var t = this.core.$slide.eq(this.core.index).find(".lg-img-rotate")[0],
t = 90 !== (t = this.getCurrentRotation(t)) && 270 !== t ? "flipVertical" : "flipHorizontal";
this.rotateValuesList[this.core.index][t] *= -1, this.applyStyles()
}, t.prototype.destroy = function() {
this.core.$el.off(".lg.tm.rotate"), this.rotateValuesList = {}
}, i.fn.lightGallery.modules.rotate = t
}()
}),
function(t) {
"function" == typeof define && define.amd ? define(["jquery"], t) : "object" == typeof exports ? module.exports = t : t(jQuery)
}(function(h) {
function e(t) {
var e, i = t || window.event,
o = g.call(arguments, 1),
s = 0,
n = 0,
r = 0,
a = 0,
l = 0,
c = 0;
if ((t = h.event.fix(i)).type = "mousewheel", "detail" in i && (r = -1 * i.detail), "wheelDelta" in i && (r = i.wheelDelta), "wheelDeltaY" in i && (r = i.wheelDeltaY), "wheelDeltaX" in i && (n = -1 * i.wheelDeltaX), "axis" in i && i.axis === i.HORIZONTAL_AXIS && (n = -1 * r, r = 0), s = 0 === r ? n : r, "deltaY" in i && (s = r = -1 * i.deltaY), "deltaX" in i && (n = i.deltaX, 0 === r && (s = -1 * n)), 0 !== r || 0 !== n) {
1 === i.deltaMode ? (s *= e = h.data(this, "mousewheel-line-height"), r *= e, n *= e) : 2 === i.deltaMode && (s *= e = h.data(this, "mousewheel-page-height"), r *= e, n *= e);
a = Math.max(Math.abs(r), Math.abs(n));
return f && !(a < f) || d(i, f = a) && (f /= 40), d(i, a) && (s /= 40, n /= 40, r /= 40), s = Math[1 <= s ? "floor" : "ceil"](s / f), n = Math[1 <= n ? "floor" : "ceil"](n / f), r = Math[1 <= r ? "floor" : "ceil"](r / f), m.settings.normalizeOffset && this.getBoundingClientRect && (a = this.getBoundingClientRect(), l = t.clientX - a.left, c = t.clientY - a.top), t.deltaX = n, t.deltaY = r, t.deltaFactor = f, t.offsetX = l, t.offsetY = c, t.deltaMode = 0, o.unshift(t, s, n, r), p && clearTimeout(p), p = setTimeout(u, 200), (h.event.dispatch || h.event.handle).apply(this, o)
}
}
function u() {
f = null
}
function d(t, e) {
return m.settings.adjustOldDeltas && "mousewheel" === t.type && e % 120 == 0
}
var p, f, t = ["wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll"],
i = "onwheel" in document || 9 <= document.documentMode ? ["wheel"] : ["mousewheel", "DomMouseScroll", "MozMousePixelScroll"],
g = Array.prototype.slice;
if (h.event.fixHooks)
for (var o = t.length; o;) h.event.fixHooks[t[--o]] = h.event.mouseHooks;
var m = h.event.special.mousewheel = {
version: "3.1.12",
setup: function() {
if (this.addEventListener)
for (var t = i.length; t;) this.addEventListener(i[--t], e, !1);
else this.onmousewheel = e;
h.data(this, "mousewheel-line-height", m.getLineHeight(this)), h.data(this, "mousewheel-page-height", m.getPageHeight(this))
},
teardown: function() {
if (this.removeEventListener)
for (var t = i.length; t;) this.removeEventListener(i[--t], e, !1);
else this.onmousewheel = null;
h.removeData(this, "mousewheel-line-height"), h.removeData(this, "mousewheel-page-height")
},
getLineHeight: function(t) {
var e = h(t);
return (t = e["offsetParent" in h.fn ? "offsetParent" : "parent"]()).length || (t = h("body")), parseInt(t.css("fontSize"), 10) || parseInt(e.css("fontSize"), 10) || 16
},
getPageHeight: function(t) {
return h(t).height()
},
settings: {
adjustOldDeltas: !0,
normalizeOffset: !0
}
};
h.fn.extend({
mousewheel: function(t) {
return t ? this.bind("mousewheel", t) : this.trigger("mousewheel")
},
unmousewheel: function(t) {
return this.unbind("mousewheel", t)
}
})
}),
function() {
function e(t, e) {
return function() {
return t.apply(e, arguments)
}
}
var o, t, i, l, s, r = [].indexOf || function(t) {
for (var e = 0, i = this.length; e < i; e++)
if (e in this && this[e] === t) return e;
return -1
};
function n(t) {
null == t && (t = {}), this.scrollCallback = e(this.scrollCallback, this), this.scrollHandler = e(this.scrollHandler, this), this.resetAnimation = e(this.resetAnimation, this), this.start = e(this.start, this), this.scrolled = !0, this.config = this.util().extend(t, this.defaults), null != t.scrollContainer && (this.config.scrollContainer = document.querySelector(t.scrollContainer)), this.animationNameCache = new i, this.wowEvent = this.util().createEvent(this.config.boxClass)
}
function a() {
"undefined" != typeof console && null !== console && console.warn("MutationObserver is not supported by your browser."), "undefined" != typeof console && null !== console && console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.")
}
function c() {
this.keys = [], this.values = []
}
function h() {}
h.prototype.extend = function(t, e) {
var i, o;
for (i in e) o = e[i], null == t[i] && (t[i] = o);
return t
}, h.prototype.isMobile = function(t) {
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(t)
}, h.prototype.createEvent = function(t, e, i, o) {
var s;
return null == e && (e = !1), null == i && (i = !1), null == o && (o = null), null != document.createEvent ? (s = document.createEvent("CustomEvent")).initCustomEvent(t, e, i, o) : null != document.createEventObject ? (s = document.createEventObject()).eventType = t : s.eventName = t, s
}, h.prototype.emitEvent = function(t, e) {
return null != t.dispatchEvent ? t.dispatchEvent(e) : e in (null != t) ? t[e]() : "on" + e in (null != t) ? t["on" + e]() : void 0
}, h.prototype.addEvent = function(t, e, i) {
return null != t.addEventListener ? t.addEventListener(e, i, !1) : null != t.attachEvent ? t.attachEvent("on" + e, i) : t[e] = i
}, h.prototype.removeEvent = function(t, e, i) {
return null != t.removeEventListener ? t.removeEventListener(e, i, !1) : null != t.detachEvent ? t.detachEvent("on" + e, i) : delete t[e]
}, h.prototype.innerHeight = function() {
return "innerHeight" in window ? window.innerHeight : document.documentElement.clientHeight
}, t = h, i = this.WeakMap || this.MozWeakMap || (c.prototype.get = function(t) {
for (var e, i, o = e = 0, s = (i = this.keys).length; e < s; o = ++e)
if (i[o] === t) return this.values[o]
}, c.prototype.set = function(t, e) {
for (var i, o, s = i = 0, n = (o = this.keys).length; i < n; s = ++i)
if (o[s] === t) return void(this.values[s] = e);
return this.keys.push(t), this.values.push(e)
}, c), o = this.MutationObserver || this.WebkitMutationObserver || this.MozMutationObserver || (a.notSupported = !0, a.prototype.observe = function() {}, a), l = this.getComputedStyle || function(i, t) {
return this.getPropertyValue = function(t) {
var e;
return "float" === t && (t = "styleFloat"), s.test(t) && t.replace(s, function(t, e) {
return e.toUpperCase()
}), (null != (e = i.currentStyle) ? e[t] : void 0) || null
}, this
}, s = /(\-([a-z]){1})/g, this.WOW = (n.prototype.defaults = {
boxClass: "wow",
animateClass: "animated",
offset: 0,
mobile: !0,
live: !0,
callback: null,
scrollContainer: null
}, n.prototype.init = function() {
var t;
return this.element = window.document.documentElement, "interactive" === (t = document.readyState) || "complete" === t ? this.start() : this.util().addEvent(document, "DOMContentLoaded", this.start), this.finished = []
}, n.prototype.start = function() {
var s, t, e, i, r;
if (this.stopped = !1, this.boxes = function() {
for (var t, e = [], i = 0, o = (t = this.element.querySelectorAll("." + this.config.boxClass)).length; i < o; i++) s = t[i], e.push(s);
return e
}.call(this), this.all = function() {
for (var t, e = [], i = 0, o = (t = this.boxes).length; i < o; i++) s = t[i], e.push(s);
return e
}.call(this), this.boxes.length)
if (this.disabled()) this.resetStyle();
else
for (t = 0, e = (i = this.boxes).length; t < e; t++) s = i[t], this.applyStyle(s, !0);
return this.disabled() || (this.util().addEvent(this.config.scrollContainer || window, "scroll", this.scrollHandler), this.util().addEvent(window, "resize", this.scrollHandler), this.interval = setInterval(this.scrollCallback, 50)), this.config.live ? new o((r = this, function(t) {
for (var s, n, e = [], i = 0, o = t.length; i < o; i++) n = t[i], e.push(function() {
for (var t, e = [], i = 0, o = (t = n.addedNodes || []).length; i < o; i++) s = t[i], e.push(this.doSync(s));
return e
}.call(r));
return e
})).observe(document.body, {
childList: !0,
subtree: !0
}) : void 0
}, n.prototype.stop = function() {
return this.stopped = !0, this.util().removeEvent(this.config.scrollContainer || window, "scroll", this.scrollHandler), this.util().removeEvent(window, "resize", this.scrollHandler), null != this.interval ? clearInterval(this.interval) : void 0
}, n.prototype.sync = function(t) {
return o.notSupported ? this.doSync(this.element) : void 0
}, n.prototype.doSync = function(t) {
var e, i, o, s, n;
if (null == t && (t = this.element), 1 === t.nodeType) {
for (n = [], i = 0, o = (s = (t = t.parentNode || t).querySelectorAll("." + this.config.boxClass)).length; i < o; i++) e = s[i], r.call(this.all, e) < 0 ? (this.boxes.push(e), this.all.push(e), this.stopped || this.disabled() ? this.resetStyle() : this.applyStyle(e, !0), n.push(this.scrolled = !0)) : n.push(void 0);
return n
}
}, n.prototype.show = function(t) {
return this.applyStyle(t), t.className = t.className + " " + this.config.animateClass, null != this.config.callback && this.config.callback(t), this.util().emitEvent(t, this.wowEvent), this.util().addEvent(t, "animationend", this.resetAnimation), this.util().addEvent(t, "oanimationend", this.resetAnimation), this.util().addEvent(t, "webkitAnimationEnd", this.resetAnimation), this.util().addEvent(t, "MSAnimationEnd", this.resetAnimation), t
}, n.prototype.applyStyle = function(t, e) {
var i, o = t.getAttribute("data-wow-duration"),
s = t.getAttribute("data-wow-delay"),
n = t.getAttribute("data-wow-iteration");
return this.animate((i = this, function() {
return i.customStyle(t, e, o, s, n)
}))
}, n.prototype.animate = "requestAnimationFrame" in window ? function(t) {
return window.requestAnimationFrame(t)
} : function(t) {
return t()
}, n.prototype.resetStyle = function() {
for (var t, e, i = [], o = 0, s = (e = this.boxes).length; o < s; o++) t = e[o], i.push(t.style.visibility = "visible");
return i
}, n.prototype.resetAnimation = function(t) {
return 0 <= t.type.toLowerCase().indexOf("animationend") ? (t = t.target || t.srcElement).className = t.className.replace(this.config.animateClass, "").trim() : void 0
}, n.prototype.customStyle = function(t, e, i, o, s) {
return e && this.cacheAnimationName(t), t.style.visibility = e ? "hidden" : "visible", i && this.vendorSet(t.style, {
animationDuration: i
}), o && this.vendorSet(t.style, {
animationDelay: o
}), s && this.vendorSet(t.style, {
animationIterationCount: s
}), this.vendorSet(t.style, {
animationName: e ? "none" : this.cachedAnimationName(t)
}), t
}, n.prototype.vendors = ["moz", "webkit"], n.prototype.vendorSet = function(s, t) {
var n, r, a, e = [];
for (n in t) r = t[n], s["" + n] = r, e.push(function() {
for (var t, e = [], i = 0, o = (t = this.vendors).length; i < o; i++) a = t[i], e.push(s["" + a + n.charAt(0).toUpperCase() + n.substr(1)] = r);
return e
}.call(this));
return e
}, n.prototype.vendorCSS = function(t, e) {
for (var i, o, s, n = (o = l(t)).getPropertyCSSValue(e), r = 0, a = (i = this.vendors).length; r < a; r++) s = i[r], n = n || o.getPropertyCSSValue("-" + s + "-" + e);
return n
}, n.prototype.animationName = function(e) {
var i;
try {
i = this.vendorCSS(e, "animation-name").cssText
} catch (t) {
i = l(e).getPropertyValue("animation-name")
}
return "none" === i ? "" : i
}, n.prototype.cacheAnimationName = function(t) {
return this.animationNameCache.set(t, this.animationName(t))
}, n.prototype.cachedAnimationName = function(t) {
return this.animationNameCache.get(t)
}, n.prototype.scrollHandler = function() {
return this.scrolled = !0
}, n.prototype.scrollCallback = function() {
var s;
return !this.scrolled || (this.scrolled = !1, this.boxes = function() {
for (var t, e = [], i = 0, o = (t = this.boxes).length; i < o; i++)(s = t[i]) && (this.isVisible(s) ? this.show(s) : e.push(s));
return e
}.call(this), this.boxes.length || this.config.live) ? void 0 : this.stop()
}, n.prototype.offsetTop = function(t) {
for (var e; void 0 === t.offsetTop;) t = t.parentNode;
for (e = t.offsetTop; t = t.offsetParent;) e += t.offsetTop;
return e
}, n.prototype.isVisible = function(t) {
var e = t.getAttribute("data-wow-offset") || this.config.offset,
i = this.config.scrollContainer && this.config.scrollContainer.scrollTop || window.pageYOffset,
o = i + Math.min(this.element.clientHeight, this.util().innerHeight()) - e,
t = (e = this.offsetTop(t)) + t.clientHeight;
return e <= o && i <= t
}, n.prototype.util = function() {
return null != this._util ? this._util : this._util = new t
}, n.prototype.disabled = function() {
return !this.config.mobile && this.util().isMobile(navigator.userAgent)
}, n.prototype.removeBox = function(t) {
-1 < (t = this.boxes.indexOf(t)) && this.boxes.splice(t, 1)
}, n)
}.call(this),
function(e, i) {
"function" == typeof define && define.amd ? define("jquery-bridget/jquery-bridget", ["jquery"], function(t) {
return i(e, t)
}) : "object" == typeof module && module.exports ? module.exports = i(e, require("jquery")) : e.jQueryBridget = i(e, e.jQuery)
}(window, function(t, e) {
"use strict";
function i(l, c, h) {
(h = h || e || t.jQuery) && (c.prototype.option || (c.prototype.option = function(t) {
h.isPlainObject(t) && (this.options = h.extend(!0, this.options, t))
}), h.fn[l] = function(t) {
if ("string" != typeof t) return n = t, this.each(function(t, e) {
var i = h.data(e, l);
i ? (i.option(n), i._init()) : (i = new c(e, n), h.data(e, l, i))
}), this;
var o, s, n, r = u.call(arguments, 1),
a = "$()." + l + '("' + (o = t) + '")';
return (t = this).each(function(t, e) {
var i = h.data(e, l);
i ? (e = i[o]) && "_" != o.charAt(0) ? (i = e.apply(i, r), s = void 0 === s ? i : s) : d(a + " is not a valid method") : d(l + " not initialized. Cannot call methods, i.e. " + a)
}), void 0 !== s ? s : t
}, o(h))
}
function o(t) {
!t || t && t.bridget || (t.bridget = i)
}
var u = Array.prototype.slice,
s = t.console,
d = void 0 === s ? function() {} : function(t) {
s.error(t)
};
return o(e || t.jQuery), i
}),
function(t, e) {
"function" == typeof define && define.amd ? define("ev-emitter/ev-emitter", e) : "object" == typeof module && module.exports ? module.exports = e() : t.EvEmitter = e()
}("undefined" != typeof window ? window : this, function() {
function t() {}
var e = t.prototype;
return e.on = function(t, e) {
if (t && e) {
var i = this._events = this._events || {};
return -1 == (t = i[t] = i[t] || []).indexOf(e) && t.push(e), this
}
}, e.once = function(t, e) {
if (t && e) {
this.on(t, e);
var i = this._onceEvents = this._onceEvents || {};
return (i[t] = i[t] || {})[e] = !0, this
}
}, e.off = function(t, e) {
if ((t = this._events && this._events[t]) && t.length) return -1 != (e = t.indexOf(e)) && t.splice(e, 1), this
}, e.emitEvent = function(t, e) {
var i = this._events && this._events[t];
if (i && i.length) {
var o = 0,
s = i[o];
e = e || [];
for (var n = this._onceEvents && this._onceEvents[t]; s;) {
var r = n && n[s];
r && (this.off(t, s), delete n[s]), s.apply(this, e), s = i[o += r ? 0 : 1]
}
return this
}
}, t
}),
function(t, e) {
"use strict";
"function" == typeof define && define.amd ? define("get-size/get-size", [], e) : "object" == typeof module && module.exports ? module.exports = e() : t.getSize = e()
}(window, function() {
"use strict";
function p(t) {
var e = parseFloat(t);
return -1 == t.indexOf("%") && !isNaN(e) && e
}
function f(t) {
return (t = getComputedStyle(t)) || e("Style returned " + t + ". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"), t
}
function g(t) {
if (b || (b = !0, (d = document.createElement("div")).style.width = "200px", d.style.padding = "1px 2px 3px 4px", d.style.borderStyle = "solid", d.style.borderWidth = "1px 2px 3px 4px", d.style.boxSizing = "border-box", (u = document.body || document.documentElement).appendChild(d), h = f(d), g.isBoxSizeOuter = m = 200 == p(h.width), u.removeChild(d)), "string" == typeof t && (t = document.querySelector(t)), t && "object" == typeof t && t.nodeType) {
var e = f(t);
if ("none" == e.display) return function() {
for (var t = {
width: 0,
height: 0,
innerWidth: 0,
innerHeight: 0,
outerWidth: 0,
outerHeight: 0
}, e = 0; e < v; e++) t[y[e]] = 0;
return t
}();
var i = {};
i.width = t.offsetWidth, i.height = t.offsetHeight;
for (var o = i.isBorderBox = "border-box" == e.boxSizing, s = 0; s < v; s++) {
var n = y[s],
r = e[n],
r = parseFloat(r);
i[n] = isNaN(r) ? 0 : r
}
var a = i.paddingLeft + i.paddingRight,
l = i.paddingTop + i.paddingBottom,
c = i.marginLeft + i.marginRight,
h = i.marginTop + i.marginBottom,
u = i.borderLeftWidth + i.borderRightWidth,
d = i.borderTopWidth + i.borderBottomWidth,
t = o && m;
return !1 !== (o = p(e.width)) && (i.width = o + (t ? 0 : a + u)), !1 !== (o = p(e.height)) && (i.height = o + (t ? 0 : l + d)), i.innerWidth = i.width - (a + u), i.innerHeight = i.height - (l + d), i.outerWidth = i.width + c, i.outerHeight = i.height + h, i
}
}
var m, e = "undefined" == typeof console ? function() {} : function(t) {
console.error(t)
},
y = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth"],
v = y.length,
b = !1;
return g
}),
function(t, e) {
"use strict";
"function" == typeof define && define.amd ? define("desandro-matches-selector/matches-selector", e) : "object" == typeof module && module.exports ? module.exports = e() : t.matchesSelector = e()
}(window, function() {
"use strict";
var i = function() {
var t = window.Element.prototype;
if (t.matches) return "matches";
if (t.matchesSelector) return "matchesSelector";
for (var e = ["webkit", "moz", "ms", "o"], i = 0; i < e.length; i++) {
var o = e[i] + "MatchesSelector";
if (t[o]) return o
}
}();
return function(t, e) {
return t[i](e)
}
}),
function(e, i) {
"function" == typeof define && define.amd ? define("fizzy-ui-utils/utils", ["desandro-matches-selector/matches-selector"], function(t) {
return i(e, t)
}) : "object" == typeof module && module.exports ? module.exports = i(e, require("desandro-matches-selector")) : e.fizzyUIUtils = i(e, e.matchesSelector)
}(window, function(i, n) {
var c = {
extend: function(t, e) {
for (var i in e) t[i] = e[i];
return t
},
modulo: function(t, e) {
return (t % e + e) % e
},
makeArray: function(t) {
var e = [];
if (Array.isArray(t)) e = t;
else if (t && "object" == typeof t && "number" == typeof t.length)
for (var i = 0; i < t.length; i++) e.push(t[i]);
else e.push(t);
return e
},
removeFrom: function(t, e) {
-1 != (e = t.indexOf(e)) && t.splice(e, 1)
},
getParent: function(t, e) {
for (; t.parentNode && t != document.body;)
if (t = t.parentNode, n(t, e)) return t
},
getQueryElement: function(t) {
return "string" == typeof t ? document.querySelector(t) : t
},
handleEvent: function(t) {
var e = "on" + t.type;
this[e] && this[e](t)
},
filterFindElements: function(t, o) {
t = c.makeArray(t);
var s = [];
return t.forEach(function(t) {
if (t instanceof HTMLElement)
if (o) {
n(t, o) && s.push(t);
for (var e = t.querySelectorAll(o), i = 0; i < e.length; i++) s.push(e[i])
} else s.push(t)
}), s
},
debounceMethod: function(t, e, o) {
var s = t.prototype[e],
n = e + "Timeout";
t.prototype[e] = function() {
var t = this[n];
t && clearTimeout(t);
var e = arguments,
i = this;
this[n] = setTimeout(function() {
s.apply(i, e), delete i[n]
}, o || 100)
}
},
docReady: function(t) {
var e = document.readyState;
"complete" == e || "interactive" == e ? setTimeout(t) : document.addEventListener("DOMContentLoaded", t)
},
toDashed: function(t) {
return t.replace(/(.)([A-Z])/g, function(t, e, i) {
return e + "-" + i
}).toLowerCase()
}
},
h = i.console;
return c.htmlInit = function(a, l) {
c.docReady(function() {
var s = "data-" + (e = c.toDashed(l)),
t = document.querySelectorAll("[" + s + "]"),
e = document.querySelectorAll(".js-" + e),
e = c.makeArray(t).concat(c.makeArray(e)),
n = s + "-options",
r = i.jQuery;
e.forEach(function(t) {
var e, i = t.getAttribute(s) || t.getAttribute(n);
try {
e = i && JSON.parse(i)
} catch (e) {
return void(h && h.error("Error parsing " + s + " on " + t.className + ": " + e))
}
var o = new a(t, e);
r && r.data(t, l, o)
})
})
}, c
}),
function(t, e) {
"function" == typeof define && define.amd ? define("outlayer/item", ["ev-emitter/ev-emitter", "get-size/get-size"], e) : "object" == typeof module && module.exports ? module.exports = e(require("ev-emitter"), require("get-size")) : (t.Outlayer = {}, t.Outlayer.Item = e(t.EvEmitter, t.getSize))
}(window, function(t, e) {
"use strict";
function i(t, e) {
t && (this.element = t, this.layout = e, this.position = {
x: 0,
y: 0
}, this._create())
}
var o = document.documentElement.style,
s = "string" == typeof o.transition ? "transition" : "WebkitTransition",
o = "string" == typeof o.transform ? "transform" : "WebkitTransform",
n = {
WebkitTransition: "webkitTransitionEnd",
transition: "transitionend"
} [s],
r = {
transform: o,
transition: s,
transitionDuration: s + "Duration",
transitionProperty: s + "Property",
transitionDelay: s + "Delay"
};
(t = i.prototype = Object.create(t.prototype)).constructor = i, t._create = function() {
this._transn = {
ingProperties: {},
clean: {},
onEnd: {}
}, this.css({
position: "absolute"
})
}, t.handleEvent = function(t) {
var e = "on" + t.type;
this[e] && this[e](t)
}, t.getSize = function() {
this.size = e(this.element)
}, t.css = function(t) {
var e, i = this.element.style;
for (e in t) i[r[e] || e] = t[e]
}, t.getPosition = function() {
var t = getComputedStyle(this.element),
e = this.layout._getOption("originLeft"),
i = this.layout._getOption("originTop"),
o = t[e ? "left" : "right"],
s = t[i ? "top" : "bottom"],
t = this.layout.size,
o = -1 != o.indexOf("%") ? parseFloat(o) / 100 * t.width : parseInt(o, 10),
s = -1 != s.indexOf("%") ? parseFloat(s) / 100 * t.height : parseInt(s, 10),
o = isNaN(o) ? 0 : o,
s = isNaN(s) ? 0 : s;
o -= e ? t.paddingLeft : t.paddingRight, s -= i ? t.paddingTop : t.paddingBottom, this.position.x = o, this.position.y = s
}, t.layoutPosition = function() {
var t = this.layout.size,
e = {},
i = this.layout._getOption("originLeft"),
o = this.layout._getOption("originTop"),
s = i ? "paddingLeft" : "paddingRight",
n = i ? "left" : "right",
i = i ? "right" : "left",
s = this.position.x + t[s];
e[n] = this.getXValue(s), e[i] = "", s = o ? "paddingTop" : "paddingBottom", i = o ? "top" : "bottom", o = o ? "bottom" : "top", s = this.position.y + t[s], e[i] = this.getYValue(s), e[o] = "", this.css(e), this.emitEvent("layout", [this])
}, t.getXValue = function(t) {
var e = this.layout._getOption("horizontal");
return this.layout.options.percentPosition && !e ? t / this.layout.size.width * 100 + "%" : t + "px"
}, t.getYValue = function(t) {
var e = this.layout._getOption("horizontal");
return this.layout.options.percentPosition && e ? t / this.layout.size.height * 100 + "%" : t + "px"
}, t._transitionTo = function(t, e) {
this.getPosition();
var i = this.position.x,
o = this.position.y,
s = parseInt(t, 10),
n = parseInt(e, 10),
n = s === this.position.x && n === this.position.y;
this.setPosition(t, e), !n || this.isTransitioning ? (i = t - i, e -= o, (o = {}).transform = this.getTranslate(i, e), this.transition({
to: o,
onTransitionEnd: {
transform: this.layoutPosition
},
isCleaning: !0
})) : this.layoutPosition()
}, t.getTranslate = function(t, e) {
return "translate3d(" + (t = this.layout._getOption("originLeft") ? t : -t) + "px, " + (e = this.layout._getOption("originTop") ? e : -e) + "px, 0)"
}, t.goTo = function(t, e) {
this.setPosition(t, e), this.layoutPosition()
}, t.moveTo = t._transitionTo, t.setPosition = function(t, e) {
this.position.x = parseInt(t, 10), this.position.y = parseInt(e, 10)
}, t._nonTransition = function(t) {
for (var e in this.css(t.to), t.isCleaning && this._removeStyles(t.to), t.onTransitionEnd) t.onTransitionEnd[e].call(this)
}, t.transition = function(t) {
if (parseFloat(this.layout.options.transitionDuration)) {
var e, i = this._transn;
for (e in t.onTransitionEnd) i.onEnd[e] = t.onTransitionEnd[e];
for (e in t.to) i.ingProperties[e] = !0, t.isCleaning && (i.clean[e] = !0);
t.from && (this.css(t.from), this.element.offsetHeight), this.enableTransition(t.to), this.css(t.to), this.isTransitioning = !0
} else this._nonTransition(t)
};
var a = "opacity," + o.replace(/([A-Z])/g, function(t) {
return "-" + t.toLowerCase()
});
t.enableTransition = function() {
var t;
this.isTransitioning || (t = "number" == typeof(t = this.layout.options.transitionDuration) ? t + "ms" : t, this.css({
transitionProperty: a,
transitionDuration: t,
transitionDelay: this.staggerDelay || 0
}), this.element.addEventListener(n, this, !1))
}, t.onwebkitTransitionEnd = function(t) {
this.ontransitionend(t)
}, t.onotransitionend = function(t) {
this.ontransitionend(t)
};
var l = {
"-webkit-transform": "transform"
};
t.ontransitionend = function(t) {
var e, i;
t.target === this.element && (e = this._transn, i = l[t.propertyName] || t.propertyName, delete e.ingProperties[i], function() {
for (var t in e.ingProperties) return;
return 1
}() && this.disableTransition(), i in e.clean && (this.element.style[t.propertyName] = "", delete e.clean[i]), i in e.onEnd && (e.onEnd[i].call(this), delete e.onEnd[i]), this.emitEvent("transitionEnd", [this]))
}, t.disableTransition = function() {
this.removeTransitionStyles(), this.element.removeEventListener(n, this, !1), this.isTransitioning = !1
}, t._removeStyles = function(t) {
var e, i = {};
for (e in t) i[e] = "";
this.css(i)
};
var c = {
transitionProperty: "",
transitionDuration: "",
transitionDelay: ""
};
return t.removeTransitionStyles = function() {
this.css(c)
}, t.stagger = function(t) {
t = isNaN(t) ? 0 : t, this.staggerDelay = t + "ms"
}, t.removeElem = function() {
this.element.parentNode.removeChild(this.element), this.css({
display: ""
}), this.emitEvent("remove", [this])
}, t.remove = function() {
return s && parseFloat(this.layout.options.transitionDuration) ? (this.once("transitionEnd", function() {
this.removeElem()
}), void this.hide()) : void this.removeElem()
}, t.reveal = function() {
delete this.isHidden, this.css({
display: ""
});
var t = this.layout.options,
e = {};
e[this.getHideRevealTransitionEndProperty("visibleStyle")] = this.onRevealTransitionEnd, this.transition({
from: t.hiddenStyle,
to: t.visibleStyle,
isCleaning: !0,
onTransitionEnd: e
})
}, t.onRevealTransitionEnd = function() {
this.isHidden || this.emitEvent("reveal")
}, t.getHideRevealTransitionEndProperty = function(t) {
if ((t = this.layout.options[t]).opacity) return "opacity";
for (var e in t) return e
}, t.hide = function() {
this.isHidden = !0, this.css({
display: ""
});
var t = this.layout.options,
e = {};
e[this.getHideRevealTransitionEndProperty("hiddenStyle")] = this.onHideTransitionEnd, this.transition({
from: t.visibleStyle,
to: t.hiddenStyle,
isCleaning: !0,
onTransitionEnd: e
})
}, t.onHideTransitionEnd = function() {
this.isHidden && (this.css({
display: "none"
}), this.emitEvent("hide"))
}, t.destroy = function() {
this.css({
position: "",
left: "",
right: "",
top: "",
bottom: "",
transition: "",
transform: ""
})
}, i
}),
function(s, n) {
"use strict";
"function" == typeof define && define.amd ? define("outlayer/outlayer", ["ev-emitter/ev-emitter", "get-size/get-size", "fizzy-ui-utils/utils", "./item"], function(t, e, i, o) {
return n(s, t, e, i, o)
}) : "object" == typeof module && module.exports ? module.exports = n(s, require("ev-emitter"), require("get-size"), require("fizzy-ui-utils"), require("./item")) : s.Outlayer = n(s, s.EvEmitter, s.getSize, s.fizzyUIUtils, s.Outlayer.Item)
}(window, function(t, e, s, o, n) {
"use strict";
function r(t, e) {
var i = o.getQueryElement(t);
i ? (this.element = i, c && (this.$element = c(this.element)), this.options = o.extend({}, this.constructor.defaults), this.option(e), e = ++h, this.element.outlayerGUID = e, (u[e] = this)._create(), this._getOption("initLayout") && this.layout()) : l && l.error("Bad element for " + this.constructor.namespace + ": " + (i || t))
}
function a(t) {
function e() {
t.apply(this, arguments)
}
return (e.prototype = Object.create(t.prototype)).constructor = e
}
function i() {}
var l = t.console,
c = t.jQuery,
h = 0,
u = {};
r.namespace = "outlayer", r.Item = n, r.defaults = {
containerStyle: {
position: "relative"
},
initLayout: !0,
originLeft: !0,
originTop: !0,
resize: !0,
resizeContainer: !0,
transitionDuration: "0.4s",
hiddenStyle: {
opacity: 0,
transform: "scale(0.001)"
},
visibleStyle: {
opacity: 1,
transform: "scale(1)"
}
};
var d = r.prototype;
o.extend(d, e.prototype), d.option = function(t) {
o.extend(this.options, t)
}, d._getOption = function(t) {
var e = this.constructor.compatOptions[t];
return e && void 0 !== this.options[e] ? this.options[e] : this.options[t]
}, r.compatOptions = {
initLayout: "isInitLayout",
horizontal: "isHorizontal",
layoutInstant: "isLayoutInstant",
originLeft: "isOriginLeft",
originTop: "isOriginTop",
resize: "isResizeBound",
resizeContainer: "isResizingContainer"
}, d._create = function() {
this.reloadItems(), this.stamps = [], this.stamp(this.options.stamp), o.extend(this.element.style, this.options.containerStyle), this._getOption("resize") && this.bindResize()
}, d.reloadItems = function() {
this.items = this._itemize(this.element.children)
}, d._itemize = function(t) {
for (var e = this._filterFindItemElements(t), i = this.constructor.Item, o = [], s = 0; s < e.length; s++) {
var n = new i(e[s], this);
o.push(n)
}
return o
}, d._filterFindItemElements = function(t) {
return o.filterFindElements(t, this.options.itemSelector)
}, d.getItemElements = function() {
return this.items.map(function(t) {
return t.element
})
}, d.layout = function() {
this._resetLayout(), this._manageStamps();
var t = void 0 !== (t = this._getOption("layoutInstant")) ? t : !this._isLayoutInited;
this.layoutItems(this.items, t), this._isLayoutInited = !0
}, d._init = d.layout, d._resetLayout = function() {
this.getSize()
}, d.getSize = function() {
this.size = s(this.element)
}, d._getMeasurement = function(t, e) {
var i, o = this.options[t];
o ? ("string" == typeof o ? i = this.element.querySelector(o) : o instanceof HTMLElement && (i = o), this[t] = i ? s(i)[e] : o) : this[t] = 0
}, d.layoutItems = function(t, e) {
t = this._getItemsForLayout(t), this._layoutItems(t, e), this._postLayout()
}, d._getItemsForLayout = function(t) {
return t.filter(function(t) {
return !t.isIgnored
})
}, d._layoutItems = function(t, i) {
var o;
this._emitCompleteOnItems("layout", t), t && t.length && (o = [], t.forEach(function(t) {
var e = this._getItemLayoutPosition(t);
e.item = t, e.isInstant = i || t.isLayoutInstant, o.push(e)
}, this), this._processLayoutQueue(o))
}, d._getItemLayoutPosition = function() {
return {
x: 0,
y: 0
}
}, d._processLayoutQueue = function(t) {
this.updateStagger(), t.forEach(function(t, e) {
this._positionItem(t.item, t.x, t.y, t.isInstant, e)
}, this)
}, d.updateStagger = function() {
var t = this.options.stagger;
return null == t ? void(this.stagger = 0) : (this.stagger = function(t) {
if ("number" == typeof t) return t;
var t = (e = t.match(/(^\d*\.?\d*)(\w*)/)) && e[1],
e = e && e[2];
return t.length ? (t = parseFloat(t)) * (p[e] || 1) : 0
}(t), this.stagger)
}, d._positionItem = function(t, e, i, o, s) {
o ? t.goTo(e, i) : (t.stagger(s * this.stagger), t.moveTo(e, i))
}, d._postLayout = function() {
this.resizeContainer()
}, d.resizeContainer = function() {
var t;
!this._getOption("resizeContainer") || (t = this._getContainerSize()) && (this._setContainerMeasure(t.width, !0), this._setContainerMeasure(t.height, !1))
}, d._getContainerSize = i, d._setContainerMeasure = function(t, e) {
var i;
void 0 !== t && ((i = this.size).isBorderBox && (t += e ? i.paddingLeft + i.paddingRight + i.borderLeftWidth + i.borderRightWidth : i.paddingBottom + i.paddingTop + i.borderTopWidth + i.borderBottomWidth), t = Math.max(t, 0), this.element.style[e ? "width" : "height"] = t + "px")
}, d._emitCompleteOnItems = function(e, t) {
function i() {
n.dispatchEvent(e + "Complete", null, [t])
}
function o() {
++s == r && i()
}
var s, n = this,
r = t.length;
t && r ? (s = 0, t.forEach(function(t) {
t.once(e, o)
})) : i()
}, d.dispatchEvent = function(t, e, i) {
var o = e ? [e].concat(i) : i;
this.emitEvent(t, o), c && (this.$element = this.$element || c(this.element), e ? ((e = c.Event(e)).type = t, this.$element.trigger(e, i)) : this.$element.trigger(t, i))
}, d.ignore = function(t) {
(t = this.getItem(t)) && (t.isIgnored = !0)
}, d.unignore = function(t) {
(t = this.getItem(t)) && delete t.isIgnored
}, d.stamp = function(t) {
(t = this._find(t)) && (this.stamps = this.stamps.concat(t), t.forEach(this.ignore, this))
}, d.unstamp = function(t) {
(t = this._find(t)) && t.forEach(function(t) {
o.removeFrom(this.stamps, t), this.unignore(t)
}, this)
}, d._find = function(t) {
if (t) return "string" == typeof t && (t = this.element.querySelectorAll(t)), o.makeArray(t)
}, d._manageStamps = function() {
this.stamps && this.stamps.length && (this._getBoundingRect(), this.stamps.forEach(this._manageStamp, this))
}, d._getBoundingRect = function() {
var t = this.element.getBoundingClientRect(),
e = this.size;
this._boundingRect = {
left: t.left + e.paddingLeft + e.borderLeftWidth,
top: t.top + e.paddingTop + e.borderTopWidth,
right: t.right - (e.paddingRight + e.borderRightWidth),
bottom: t.bottom - (e.paddingBottom + e.borderBottomWidth)
}
}, d._manageStamp = i, d._getElementOffset = function(t) {
var e = t.getBoundingClientRect(),
i = this._boundingRect,
t = s(t);
return {
left: e.left - i.left - t.marginLeft,
top: e.top - i.top - t.marginTop,
right: i.right - e.right - t.marginRight,
bottom: i.bottom - e.bottom - t.marginBottom
}
}, d.handleEvent = o.handleEvent, d.bindResize = function() {
t.addEventListener("resize", this), this.isResizeBound = !0
}, d.unbindResize = function() {
t.removeEventListener("resize", this), this.isResizeBound = !1
}, d.onresize = function() {
this.resize()
}, o.debounceMethod(r, "onresize", 100), d.resize = function() {
this.isResizeBound && this.needsResizeLayout() && this.layout()
}, d.needsResizeLayout = function() {
var t = s(this.element);
return this.size && t && t.innerWidth !== this.size.innerWidth
}, d.addItems = function(t) {
return (t = this._itemize(t)).length && (this.items = this.items.concat(t)), t
}, d.appended = function(t) {
(t = this.addItems(t)).length && (this.layoutItems(t, !0), this.reveal(t))
}, d.prepended = function(t) {
var e = this._itemize(t);
e.length && (t = this.items.slice(0), this.items = e.concat(t), this._resetLayout(), this._manageStamps(), this.layoutItems(e, !0), this.reveal(e), this.layoutItems(t))
}, d.reveal = function(t) {
var i;
this._emitCompleteOnItems("reveal", t), t && t.length && (i = this.updateStagger(), t.forEach(function(t, e) {
t.stagger(e * i), t.reveal()
}))
}, d.hide = function(t) {
var i;
this._emitCompleteOnItems("hide", t), t && t.length && (i = this.updateStagger(), t.forEach(function(t, e) {
t.stagger(e * i), t.hide()
}))
}, d.revealItemElements = function(t) {
t = this.getItems(t), this.reveal(t)
}, d.hideItemElements = function(t) {
t = this.getItems(t), this.hide(t)
}, d.getItem = function(t) {
for (var e = 0; e < this.items.length; e++) {
var i = this.items[e];
if (i.element == t) return i
}
}, d.getItems = function(t) {
t = o.makeArray(t);
var e = [];
return t.forEach(function(t) {
(t = this.getItem(t)) && e.push(t)
}, this), e
}, d.remove = function(t) {
t = this.getItems(t), this._emitCompleteOnItems("remove", t), t && t.length && t.forEach(function(t) {
t.remove(), o.removeFrom(this.items, t)
}, this)
}, d.destroy = function() {
var t = this.element.style;
t.height = "", t.position = "", t.width = "", this.items.forEach(function(t) {
t.destroy()
}), this.unbindResize(), t = this.element.outlayerGUID, delete u[t], delete this.element.outlayerGUID, c && c.removeData(this.element, this.constructor.namespace)
}, r.data = function(t) {
return (t = (t = o.getQueryElement(t)) && t.outlayerGUID) && u[t]
}, r.create = function(t, e) {
var i = a(r);
return i.defaults = o.extend({}, r.defaults), o.extend(i.defaults, e), i.compatOptions = o.extend({}, r.compatOptions), i.namespace = t, i.data = r.data, i.Item = a(n), o.htmlInit(i, t), c && c.bridget && c.bridget(t, i), i
};
var p = {
ms: 1,
s: 1e3
};
return r.Item = n, r
}),
function(t, e) {
"function" == typeof define && define.amd ? define("isotope/js/item", ["outlayer/outlayer"], e) : "object" == typeof module && module.exports ? module.exports = e(require("outlayer")) : (t.Isotope = t.Isotope || {}, t.Isotope.Item = e(t.Outlayer))
}(window, function(t) {
"use strict";
function e() {
t.Item.apply(this, arguments)
}
var i = e.prototype = Object.create(t.Item.prototype),
o = i._create;
i._create = function() {
this.id = this.layout.itemGUID++, o.call(this), this.sortData = {}
}, i.updateSortData = function() {
if (!this.isIgnored) {
this.sortData.id = this.id, this.sortData["original-order"] = this.id, this.sortData.random = Math.random();
var t, e = this.layout.options.getSortData,
i = this.layout._sorters;
for (t in e) {
var o = i[t];
this.sortData[t] = o(this.element, this)
}
}
};
var s = i.destroy;
return i.destroy = function() {
s.apply(this, arguments), this.css({
display: ""
})
}, e
}),
function(t, e) {
"function" == typeof define && define.amd ? define("isotope/js/layout-mode", ["get-size/get-size", "outlayer/outlayer"], e) : "object" == typeof module && module.exports ? module.exports = e(require("get-size"), require("outlayer")) : (t.Isotope = t.Isotope || {}, t.Isotope.LayoutMode = e(t.getSize, t.Outlayer))
}(window, function(e, i) {
"use strict";
function o(t) {
(this.isotope = t) && (this.options = t.options[this.namespace], this.element = t.element, this.items = t.filteredItems, this.size = t.size)
}
var s = o.prototype;
return ["_resetLayout", "_getItemLayoutPosition", "_manageStamp", "_getContainerSize", "_getElementOffset", "needsResizeLayout", "_getOption"].forEach(function(t) {
s[t] = function() {
return i.prototype[t].apply(this.isotope, arguments)
}
}), s.needsVerticalResizeLayout = function() {
var t = e(this.isotope.element);
return this.isotope.size && t && t.innerHeight != this.isotope.size.innerHeight
}, s._getMeasurement = function() {
this.isotope._getMeasurement.apply(this, arguments)
}, s.getColumnWidth = function() {
this.getSegmentSize("column", "Width")
}, s.getRowHeight = function() {
this.getSegmentSize("row", "Height")
}, s.getSegmentSize = function(t, e) {
var i = t + e,
o = "outer" + e;
this._getMeasurement(i, o), this[i] || (t = this.getFirstItemSize(), this[i] = t && t[o] || this.isotope.size["inner" + e])
}, s.getFirstItemSize = function() {
var t = this.isotope.filteredItems[0];
return t && t.element && e(t.element)
}, s.layout = function() {
this.isotope.layout.apply(this.isotope, arguments)
}, s.getSize = function() {
this.isotope.getSize(), this.size = this.isotope.size
}, o.modes = {}, o.create = function(t, e) {
function i() {
o.apply(this, arguments)
}
return (i.prototype = Object.create(s)).constructor = i, e && (i.options = e), o.modes[i.prototype.namespace = t] = i
}, o
}),
function(t, e) {
"function" == typeof define && define.amd ? define("masonry/masonry", ["outlayer/outlayer", "get-size/get-size"], e) : "object" == typeof module && module.exports ? module.exports = e(require("outlayer"), require("get-size")) : t.Masonry = e(t.Outlayer, t.getSize)
}(window, function(t, a) {
var e = t.create("masonry");
return e.compatOptions.fitWidth = "isFitWidth", (t = e.prototype)._resetLayout = function() {
this.getSize(), this._getMeasurement("columnWidth", "outerWidth"), this._getMeasurement("gutter", "outerWidth"), this.measureColumns(), this.colYs = [];
for (var t = 0; t < this.cols; t++) this.colYs.push(0);
this.maxY = 0, this.horizontalColIndex = 0
}, t.measureColumns = function() {
this.getContainerWidth(), this.columnWidth || (i = (e = this.items[0]) && e.element, this.columnWidth = i && a(i).outerWidth || this.containerWidth);
var t = this.columnWidth += this.gutter,
e = this.containerWidth + this.gutter,
i = e / t,
t = t - e % t,
i = Math[t && t < 1 ? "round" : "floor"](i);
this.cols = Math.max(i, 1)
}, t.getContainerWidth = function() {
var t = this._getOption("fitWidth") ? this.element.parentNode : this.element,
t = a(t);
this.containerWidth = t && t.innerWidth
}, t._getItemLayoutPosition = function(t) {
t.getSize();
for (var e = t.size.outerWidth % this.columnWidth, i = Math[e && e < 1 ? "round" : "ceil"](t.size.outerWidth / this.columnWidth), i = Math.min(i, this.cols), o = this[this.options.horizontalOrder ? "_getHorizontalColPosition" : "_getTopColPosition"](i, t), e = {
x: this.columnWidth * o.col,
y: o.y
}, s = o.y + t.size.outerHeight, n = i + o.col, r = o.col; r < n; r++) this.colYs[r] = s;
return e
}, t._getTopColPosition = function(t) {
var e = this._getTopColGroup(t),
t = Math.min.apply(Math, e);
return {
col: e.indexOf(t),
y: t
}
}, t._getTopColGroup = function(t) {
if (t < 2) return this.colYs;
for (var e = [], i = this.cols + 1 - t, o = 0; o < i; o++) e[o] = this._getColGroupY(o, t);
return e
}, t._getColGroupY = function(t, e) {
return e < 2 ? this.colYs[t] : (e = this.colYs.slice(t, t + e), Math.max.apply(Math, e))
}, t._getHorizontalColPosition = function(t, e) {
var i = this.horizontalColIndex % this.cols,
i = 1 < t && i + t > this.cols ? 0 : i,
e = e.size.outerWidth && e.size.outerHeight;
return this.horizontalColIndex = e ? i + t : this.horizontalColIndex, {
col: i,
y: this._getColGroupY(i, t)
}
}, t._manageStamp = function(t) {
var e = a(t),
i = this._getElementOffset(t),
t = (o = this._getOption("originLeft") ? i.left : i.right) + e.outerWidth,
o = Math.floor(o / this.columnWidth),
o = Math.max(0, o),
s = Math.floor(t / this.columnWidth);
s -= t % this.columnWidth ? 0 : 1, s = Math.min(this.cols - 1, s);
for (var n = (this._getOption("originTop") ? i.top : i.bottom) + e.outerHeight, r = o; r <= s; r++) this.colYs[r] = Math.max(n, this.colYs[r])
}, t._getContainerSize = function() {
this.maxY = Math.max.apply(Math, this.colYs);
var t = {
height: this.maxY
};
return this._getOption("fitWidth") && (t.width = this._getContainerFitWidth()), t
}, t._getContainerFitWidth = function() {
for (var t = 0, e = this.cols; --e && 0 === this.colYs[e];) t++;
return (this.cols - t) * this.columnWidth - this.gutter
}, t.needsResizeLayout = function() {
var t = this.containerWidth;
return this.getContainerWidth(), t != this.containerWidth
}, e
}),
function(t, e) {
"function" == typeof define && define.amd ? define("isotope/js/layout-modes/masonry", ["../layout-mode", "masonry/masonry"], e) : "object" == typeof module && module.exports ? module.exports = e(require("../layout-mode"), require("masonry-layout")) : e(t.Isotope.LayoutMode, t.Masonry)
}(window, function(t, e) {
"use strict";
var i, o = (t = t.create("masonry")).prototype,
s = {
_getElementOffset: !0,
layout: !0,
_getMeasurement: !0
};
for (i in e.prototype) s[i] || (o[i] = e.prototype[i]);
var n = o.measureColumns;
o.measureColumns = function() {
this.items = this.isotope.filteredItems, n.call(this)
};
var r = o._getOption;
return o._getOption = function(t) {
return "fitWidth" == t ? void 0 !== this.options.isFitWidth ? this.options.isFitWidth : this.options.fitWidth : r.apply(this.isotope, arguments)
}, t
}),
function(t, e) {
"function" == typeof define && define.amd ? define("isotope/js/layout-modes/fit-rows", ["../layout-mode"], e) : "object" == typeof exports ? module.exports = e(require("../layout-mode")) : e(t.Isotope.LayoutMode)
}(window, function(t) {
"use strict";
var e = t.create("fitRows");
return (t = e.prototype)._resetLayout = function() {
this.x = 0, this.y = 0, this.maxY = 0, this._getMeasurement("gutter", "outerWidth")
}, t._getItemLayoutPosition = function(t) {
t.getSize();
var e = t.size.outerWidth + this.gutter,
i = this.isotope.size.innerWidth + this.gutter;
return 0 !== this.x && e + this.x > i && (this.x = 0, this.y = this.maxY), i = {
x: this.x,
y: this.y
}, this.maxY = Math.max(this.maxY, this.y + t.size.outerHeight), this.x += e, i
}, t._getContainerSize = function() {
return {
height: this.maxY
}
}, e
}),
function(t, e) {
"function" == typeof define && define.amd ? define("isotope/js/layout-modes/vertical", ["../layout-mode"], e) : "object" == typeof module && module.exports ? module.exports = e(require("../layout-mode")) : e(t.Isotope.LayoutMode)
}(window, function(t) {
"use strict";
var e = t.create("vertical", {
horizontalAlignment: 0
});
return (t = e.prototype)._resetLayout = function() {
this.y = 0
}, t._getItemLayoutPosition = function(t) {
t.getSize();
var e = (this.isotope.size.innerWidth - t.size.outerWidth) * this.options.horizontalAlignment,
i = this.y;
return this.y += t.size.outerHeight, {
x: e,
y: i
}
}, t._getContainerSize = function() {
return {
height: this.y
}
}, e
}),
function(r, a) {
"function" == typeof define && define.amd ? define(["outlayer/outlayer", "get-size/get-size", "desandro-matches-selector/matches-selector", "fizzy-ui-utils/utils", "isotope/js/item", "isotope/js/layout-mode", "isotope/js/layout-modes/masonry", "isotope/js/layout-modes/fit-rows", "isotope/js/layout-modes/vertical"], function(t, e, i, o, s, n) {
return a(r, t, 0, i, o, s, n)
}) : "object" == typeof module && module.exports ? module.exports = a(r, require("outlayer"), require("get-size"), require("desandro-matches-selector"), require("fizzy-ui-utils"), require("isotope/js/item"), require("isotope/js/layout-mode"), require("isotope/js/layout-modes/masonry"), require("isotope/js/layout-modes/fit-rows"), require("isotope/js/layout-modes/vertical")) : r.Isotope = a(r, r.Outlayer, r.getSize, r.matchesSelector, r.fizzyUIUtils, r.Isotope.Item, r.Isotope.LayoutMode)
}(window, function(t, i, e, o, n, s, r) {
var a = t.jQuery,
l = String.prototype.trim ? function(t) {
return t.trim()
} : function(t) {
return t.replace(/^\s+|\s+$/g, "")
},
c = i.create("isotope", {
layoutMode: "masonry",
isJQueryFiltering: !0,
sortAscending: !0
});
c.Item = s, c.LayoutMode = r, (s = c.prototype)._create = function() {
for (var t in this.itemGUID = 0, this._sorters = {}, this._getSorters(), i.prototype._create.call(this), this.modes = {}, this.filteredItems = this.items, this.sortHistory = ["original-order"], r.modes) this._initLayoutMode(t)
}, s.reloadItems = function() {
this.itemGUID = 0, i.prototype.reloadItems.call(this)
}, s._itemize = function() {
for (var t = i.prototype._itemize.apply(this, arguments), e = 0; e < t.length; e++) t[e].id = this.itemGUID++;
return this._updateItemsSortData(t), t
}, s._initLayoutMode = function(t) {
var e = r.modes[t],
i = this.options[t] || {};
this.options[t] = e.options ? n.extend(e.options, i) : i, this.modes[t] = new e(this)
}, s.layout = function() {
return !this._isLayoutInited && this._getOption("initLayout") ? void this.arrange() : void this._layout()
}, s._layout = function() {
var t = this._getIsInstant();
this._resetLayout(), this._manageStamps(), this.layoutItems(this.filteredItems, t), this._isLayoutInited = !0
}, s.arrange = function(t) {
this.option(t), this._getIsInstant(), t = this._filter(this.items), this.filteredItems = t.matches, this._bindArrangeComplete(), this._isInstant ? this._noTransition(this._hideReveal, [t]) : this._hideReveal(t), this._sort(), this._layout()
}, s._init = s.arrange, s._hideReveal = function(t) {
this.reveal(t.needReveal), this.hide(t.needHide)
}, s._getIsInstant = function() {
var t = void 0 !== (t = this._getOption("layoutInstant")) ? t : !this._isLayoutInited;
return this._isInstant = t
}, s._bindArrangeComplete = function() {
function t() {
e && i && o && s.dispatchEvent("arrangeComplete", null, [s.filteredItems])
}
var e, i, o, s = this;
this.once("layoutComplete", function() {
e = !0, t()
}), this.once("hideComplete", function() {
i = !0, t()
}), this.once("revealComplete", function() {
o = !0, t()
})
}, s._filter = function(t) {
for (var e = this.options.filter || "*", i = [], o = [], s = [], n = this._getFilterTest(e), r = 0; r < t.length; r++) {
var a, l = t[r];
l.isIgnored || ((a = n(l)) && i.push(l), a && l.isHidden ? o.push(l) : a || l.isHidden || s.push(l))
}
return {
matches: i,
needReveal: o,
needHide: s
}
}, s._getFilterTest = function(e) {
return a && this.options.isJQueryFiltering ? function(t) {
return a(t.element).is(e)
} : "function" == typeof e ? function(t) {
return e(t.element)
} : function(t) {
return o(t.element, e)
}
}, s.updateSortData = function(t) {
t = t ? (t = n.makeArray(t), this.getItems(t)) : this.items, this._getSorters(), this._updateItemsSortData(t)
}, s._getSorters = function() {
var t, e = this.options.getSortData;
for (t in e) {
var i = e[t];
this._sorters[t] = h(i)
}
}, s._updateItemsSortData = function(t) {
for (var e = t && t.length, i = 0; e && i < e; i++) t[i].updateSortData()
};
var h = function(t) {
if ("string" != typeof t) return t;
var e, i, o = l(t).split(" "),
s = o[0],
t = (t = s.match(/^\[(.+)\]$/)) && t[1],
n = (i = s, (e = t) ? function(t) {
return t.getAttribute(e)
} : function(t) {
return (t = t.querySelector(i)) && t.textContent
}),
r = c.sortDataParsers[o[1]];
return r ? function(t) {
return t && r(n(t))
} : function(t) {
return t && n(t)
}
};
c.sortDataParsers = {
parseInt: function(t) {
return parseInt(t, 10)
},
parseFloat: function(t) {
return parseFloat(t)
}
}, s._sort = function() {
var t, r, a;
this.options.sortBy && (t = n.makeArray(this.options.sortBy), this._getIsSameSortBy(t) || (this.sortHistory = t.concat(this.sortHistory)), r = this.sortHistory, a = this.options.sortAscending, t = function(t, e) {
for (var i = 0; i < r.length; i++) {
var o = r[i],
s = t.sortData[o],
n = e.sortData[o];
if (n < s || s < n) return (n < s ? 1 : -1) * ((void 0 !== a[o] ? a[o] : a) ? 1 : -1)
}
return 0
}, this.filteredItems.sort(t))
}, s._getIsSameSortBy = function(t) {
for (var e = 0; e < t.length; e++)
if (t[e] != this.sortHistory[e]) return !1;
return !0
}, s._mode = function() {
var t = this.options.layoutMode,
e = this.modes[t];
if (!e) throw new Error("No layout mode: " + t);
return e.options = this.options[t], e
}, s._resetLayout = function() {
i.prototype._resetLayout.call(this), this._mode()._resetLayout()
}, s._getItemLayoutPosition = function(t) {
return this._mode()._getItemLayoutPosition(t)
}, s._manageStamp = function(t) {
this._mode()._manageStamp(t)
}, s._getContainerSize = function() {
return this._mode()._getContainerSize()
}, s.needsResizeLayout = function() {
return this._mode().needsResizeLayout()
}, s.appended = function(t) {
(t = this.addItems(t)).length && (t = this._filterRevealAdded(t), this.filteredItems = this.filteredItems.concat(t))
}, s.prepended = function(t) {
var e = this._itemize(t);
e.length && (this._resetLayout(), this._manageStamps(), t = this._filterRevealAdded(e), this.layoutItems(this.filteredItems), this.filteredItems = t.concat(this.filteredItems), this.items = e.concat(this.items))
}, s._filterRevealAdded = function(t) {
return t = this._filter(t), this.hide(t.needHide), this.reveal(t.matches), this.layoutItems(t.matches, !0), t.matches
}, s.insert = function(t) {
var e = this.addItems(t);
if (e.length) {
for (var i, o = e.length, s = 0; s < o; s++) i = e[s], this.element.appendChild(i.element);
for (t = this._filter(e).matches, s = 0; s < o; s++) e[s].isLayoutInstant = !0;
for (this.arrange(), s = 0; s < o; s++) delete e[s].isLayoutInstant;
this.reveal(t)
}
};
var u = s.remove;
return s.remove = function(t) {
t = n.makeArray(t);
var e = this.getItems(t);
u.call(this, t);
for (var i = e && e.length, o = 0; i && o < i; o++) {
var s = e[o];
n.removeFrom(this.filteredItems, s)
}
}, s.shuffle = function() {
for (var t = 0; t < this.items.length; t++) this.items[t].sortData.random = Math.random();
this.options.sortBy = "random", this._sort(), this._layout()
}, s._noTransition = function(t, e) {
var i = this.options.transitionDuration;
return this.options.transitionDuration = 0, e = t.apply(this, e), this.options.transitionDuration = i, e
}, s.getFilteredItemElements = function() {
return this.filteredItems.map(function(t) {
return t.element
})
}, c
}),
function(t, e) {
"object" == typeof exports && "object" == typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define([], e) : "object" == typeof exports ? exports.ClipboardJS = e() : t.ClipboardJS = e()
}(this, function() {
return o = {}, s.m = i = [function(t, e, i) {
"use strict";
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
},
s = function(t, e, i) {
return e && l(t.prototype, e), i && l(t, i), t
},
n = c(i(1)),
r = c(i(3)),
a = c(i(4));
function l(t, e) {
for (var i = 0; i < e.length; i++) {
var o = e[i];
o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o)
}
}
function c(t) {
return t && t.__esModule ? t : {
default: t
}
}
function h(t, e) {
! function(t) {
if (!(t instanceof h)) throw new TypeError("Cannot call a class as a function")
}(this);
var i = function(t, e) {
if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !e || "object" != typeof e && "function" != typeof e ? t : e
}(this, (h.__proto__ || Object.getPrototypeOf(h)).call(this));
return i.resolveOptions(e), i.listenClick(t), i
}
function u(t, e) {
if (t = "data-clipboard-" + t, e.hasAttribute(t)) return e.getAttribute(t)
}(function(t, e) {
if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
t.prototype = Object.create(e && e.prototype, {
constructor: {
value: t,
enumerable: !1,
writable: !0,
configurable: !0
}
}), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
})(h, r.default), s(h, [{
key: "resolveOptions",
value: function() {
var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};
this.action = "function" == typeof t.action ? t.action : this.defaultAction, this.target = "function" == typeof t.target ? t.target : this.defaultTarget, this.text = "function" == typeof t.text ? t.text : this.defaultText, this.container = "object" === o(t.container) ? t.container : document.body
}
}, {
key: "listenClick",
value: function(t) {
var e = this;
this.listener = (0, a.default)(t, "click", function(t) {
return e.onClick(t)
})
}
}, {
key: "onClick",
value: function(t) {
t = t.delegateTarget || t.currentTarget, this.clipboardAction && (this.clipboardAction = null), this.clipboardAction = new n.default({
action: this.action(t),
target: this.target(t),
text: this.text(t),
container: this.container,
trigger: t,
emitter: this
})
}
}, {
key: "defaultAction",
value: function(t) {
return u("action", t)
}
}, {
key: "defaultTarget",
value: function(t) {
if (t = u("target", t)) return document.querySelector(t)
}
}, {
key: "defaultText",
value: function(t) {
return u("text", t)
}
}, {
key: "destroy",
value: function() {
this.listener.destroy(), this.clipboardAction && (this.clipboardAction.destroy(), this.clipboardAction = null)
}
}], [{
key: "isSupported",
value: function() {
var t = "string" == typeof(t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : ["copy", "cut"]) ? [t] : t,
e = !!document.queryCommandSupported;
return t.forEach(function(t) {
e = e && !!document.queryCommandSupported(t)
}), e
}
}]), s = h, t.exports = s
}, function(t, e, i) {
"use strict";
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
},
s = function(t, e, i) {
return e && r(t.prototype, e), i && r(t, i), t
},
n = (i = i(2)) && i.__esModule ? i : {
default: i
};
function r(t, e) {
for (var i = 0; i < e.length; i++) {
var o = e[i];
o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o)
}
}
function a(t) {
! function(t) {
if (!(t instanceof a)) throw new TypeError("Cannot call a class as a function")
}(this), this.resolveOptions(t), this.initSelection()
}
s(a, [{
key: "resolveOptions",
value: function() {
var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};
this.action = t.action, this.container = t.container, this.emitter = t.emitter, this.target = t.target, this.text = t.text, this.trigger = t.trigger, this.selectedText = ""
}
}, {
key: "initSelection",
value: function() {
this.text ? this.selectFake() : this.target && this.selectTarget()
}
}, {
key: "selectFake",
value: function() {
var t = this,
e = "rtl" == document.documentElement.getAttribute("dir");
this.removeFake(), this.fakeHandlerCallback = function() {
return t.removeFake()
}, this.fakeHandler = this.container.addEventListener("click", this.fakeHandlerCallback) || !0, this.fakeElem = document.createElement("textarea"), this.fakeElem.style.fontSize = "12pt", this.fakeElem.style.border = "0", this.fakeElem.style.padding = "0", this.fakeElem.style.margin = "0", this.fakeElem.style.position = "absolute", this.fakeElem.style[e ? "right" : "left"] = "-9999px", e = window.pageYOffset || document.documentElement.scrollTop, this.fakeElem.style.top = e + "px", this.fakeElem.setAttribute("readonly", ""), this.fakeElem.value = this.text, this.container.appendChild(this.fakeElem), this.selectedText = (0, n.default)(this.fakeElem), this.copyText()
}
}, {
key: "removeFake",
value: function() {
this.fakeHandler && (this.container.removeEventListener("click", this.fakeHandlerCallback), this.fakeHandler = null, this.fakeHandlerCallback = null), this.fakeElem && (this.container.removeChild(this.fakeElem), this.fakeElem = null)
}
}, {
key: "selectTarget",
value: function() {
this.selectedText = (0, n.default)(this.target), this.copyText()
}
}, {
key: "copyText",
value: function() {
var e = void 0;
try {
e = document.execCommand(this.action)
} catch (t) {
e = !1
}
this.handleResult(e)
}
}, {
key: "handleResult",
value: function(t) {
this.emitter.emit(t ? "success" : "error", {
action: this.action,
text: this.selectedText,
trigger: this.trigger,
clearSelection: this.clearSelection.bind(this)
})
}
}, {
key: "clearSelection",
value: function() {
this.trigger && this.trigger.focus(), window.getSelection().removeAllRanges()
}
}, {
key: "destroy",
value: function() {
this.removeFake()
}
}, {
key: "action",
set: function() {
var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : "copy";
if (this._action = t, "copy" !== this._action && "cut" !== this._action) throw new Error('Invalid "action" value, use either "copy" or "cut"')
},
get: function() {
return this._action
}
}, {
key: "target",
set: function(t) {
if (void 0 !== t) {
if (!t || "object" !== (void 0 === t ? "undefined" : o(t)) || 1 !== t.nodeType) throw new Error('Invalid "target" value, use a valid Element');
if ("copy" === this.action && t.hasAttribute("disabled")) throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');
if ("cut" === this.action && (t.hasAttribute("readonly") || t.hasAttribute("disabled"))) throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');
this._target = t
}
},
get: function() {
return this._target
}
}]), s = a, t.exports = s
}, function(t, e) {
t.exports = function(t) {
var e, i = "SELECT" === t.nodeName ? (t.focus(), t.value) : "INPUT" === t.nodeName || "TEXTAREA" === t.nodeName ? ((e = t.hasAttribute("readonly")) || t.setAttribute("readonly", ""), t.select(), t.setSelectionRange(0, t.value.length), e || t.removeAttribute("readonly"), t.value) : (t.hasAttribute("contenteditable") && t.focus(), i = window.getSelection(), (e = document.createRange()).selectNodeContents(t), i.removeAllRanges(), i.addRange(e), i.toString());
return i
}
}, function(t, e) {
function i() {}
i.prototype = {
on: function(t, e, i) {
var o = this.e || (this.e = {});
return (o[t] || (o[t] = [])).push({
fn: e,
ctx: i
}), this
},
once: function(t, e, i) {
var o = this;
function s() {
o.off(t, s), e.apply(i, arguments)
}
return s._ = e, this.on(t, s, i)
},
emit: function(t) {
for (var e = [].slice.call(arguments, 1), i = ((this.e || (this.e = {}))[t] || []).slice(), o = 0, s = i.length; o < s; o++) i[o].fn.apply(i[o].ctx, e);
return this
},
off: function(t, e) {
var i = this.e || (this.e = {}),
o = i[t],
s = [];
if (o && e)
for (var n = 0, r = o.length; n < r; n++) o[n].fn !== e && o[n].fn._ !== e && s.push(o[n]);
return s.length ? i[t] = s : delete i[t], this
}
}, t.exports = i
}, function(t, e, i) {
var c = i(5),
h = i(6);
t.exports = function(t, e, i) {
if (!t && !e && !i) throw new Error("Missing required arguments");
if (!c.string(e)) throw new TypeError("Second argument must be a String");
if (!c.fn(i)) throw new TypeError("Third argument must be a Function");
if (c.node(t)) return a = e, l = i, (r = t).addEventListener(a, l), {
destroy: function() {
r.removeEventListener(a, l)
}
};
if (c.nodeList(t)) return o = t, s = e, n = i, Array.prototype.forEach.call(o, function(t) {
t.addEventListener(s, n)
}), {
destroy: function() {
Array.prototype.forEach.call(o, function(t) {
t.removeEventListener(s, n)
})
}
};
if (c.string(t)) return h(document.body, t, e, i);
throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList");
var o, s, n, r, a, l
}
}, function(t, i) {
i.node = function(t) {
return void 0 !== t && t instanceof HTMLElement && 1 === t.nodeType
}, i.nodeList = function(t) {
var e = Object.prototype.toString.call(t);
return void 0 !== t && ("[object NodeList]" === e || "[object HTMLCollection]" === e) && "length" in t && (0 === t.length || i.node(t[0]))
}, i.string = function(t) {
return "string" == typeof t || t instanceof String
}, i.fn = function(t) {
return "[object Function]" === Object.prototype.toString.call(t)
}
}, function(t, e, i) {
var r = i(7);
function n(t, e, i, o, s) {
var n = function(e, i, t, o) {
return function(t) {
t.delegateTarget = r(t.target, i), t.delegateTarget && o.call(e, t)
}
}.apply(this, arguments);
return t.addEventListener(i, n, s), {
destroy: function() {
t.removeEventListener(i, n, s)
}
}
}
t.exports = function(t, e, i, o, s) {
return "function" == typeof t.addEventListener ? n.apply(null, arguments) : "function" == typeof i ? n.bind(null, document).apply(null, arguments) : ("string" == typeof t && (t = document.querySelectorAll(t)), Array.prototype.map.call(t, function(t) {
return n(t, e, i, o, s)
}))
}
}, function(t, e) {
var i;
"undefined" == typeof Element || Element.prototype.matches || ((i = Element.prototype).matches = i.matchesSelector || i.mozMatchesSelector || i.msMatchesSelector || i.oMatchesSelector || i.webkitMatchesSelector), t.exports = function(t, e) {
for (; t && 9 !== t.nodeType;) {
if ("function" == typeof t.matches && t.matches(e)) return t;
t = t.parentNode
}
}
}], s.c = o, s.d = function(t, e, i) {
s.o(t, e) || Object.defineProperty(t, e, {
enumerable: !0,
get: i
})
}, s.r = function(t) {
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {
value: "Module"
}), Object.defineProperty(t, "__esModule", {
value: !0
})
}, s.t = function(e, t) {
if (1 & t && (e = s(e)), 8 & t) return e;
if (4 & t && "object" == typeof e && e && e.__esModule) return e;
var i = Object.create(null);
if (s.r(i), Object.defineProperty(i, "default", {
enumerable: !0,
value: e
}), 2 & t && "string" != typeof e)
for (var o in e) s.d(i, o, function(t) {
return e[t]
}.bind(null, o));
return i
}, s.n = function(t) {
var e = t && t.__esModule ? function() {
return t.default
} : function() {
return t
};
return s.d(e, "a", e), e
}, s.o = function(t, e) {
return Object.prototype.hasOwnProperty.call(t, e)
}, s.p = "", s(s.s = 0);
function s(t) {
if (o[t]) return o[t].exports;
var e = o[t] = {
i: t,
l: !1,
exports: {}
};
return i[t].call(e.exports, e, e.exports, s), e.l = !0, e.exports
}
var i, o
});
var _self = "undefined" != typeof window ? window : "undefined" != typeof WorkerGlobalScope && self instanceof WorkerGlobalScope ? self : {},
Prism = function(l) {
var c = /\blang(?:uage)?-([\w-]+)\b/i,
e = 0,
E = {
manual: l.Prism && l.Prism.manual,
disableWorkerMessageHandler: l.Prism && l.Prism.disableWorkerMessageHandler,
util: {
encode: function(t) {
return t instanceof I ? new I(t.type, E.util.encode(t.content), t.alias) : Array.isArray(t) ? t.map(E.util.encode) : t.replace(/&/g, "&").replace(/ t.length) return;
if (!(b instanceof I)) {
if (f && y != e.length - 1) {
if (u.lastIndex = v, !(T = u.exec(t))) break;
for (var w = T.index + (p ? T[1].length : 0), _ = T.index + T[0].length, x = y, C = v, $ = e.length; x < $ && (C < _ || !e[x].type && !e[x - 1].greedy); ++x)(C += e[x].length) <= w && (++y, v = C);
if (e[y] instanceof I) continue;
S = x - y, b = t.slice(v, C), T.index -= v
} else {
u.lastIndex = 0;
var T = u.exec(b),
S = 1
}
if (T) {
p && (g = T[1] ? T[1].length : 0), _ = (w = T.index + g) + (T = T[0].slice(g)).length;
var k = b.slice(0, w),
z = b.slice(_),
b = [y, S];
if (k && (++y, v += k.length, b.push(k)), k = new I(a, d ? E.tokenize(T, d) : T, m, T, f), b.push(k), z && b.push(z), Array.prototype.splice.apply(e, b), 1 != S && E.matchGrammar(t, e, i, y, v, !0, a), n) break
} else if (n) break
}
}
}
}
},
tokenize: function(t, e) {
var i = [t],
o = e.rest;
if (o) {
for (var s in o) e[s] = o[s];
delete e.rest
}
return E.matchGrammar(t, i, e, 0, 0, !1), i
},
hooks: {
all: {},
add: function(t, e) {
var i = E.hooks.all;
i[t] = i[t] || [], i[t].push(e)
},
run: function(t, e) {
var i = E.hooks.all[t];
if (i && i.length)
for (var o, s = 0; o = i[s++];) o(e)
}
},
Token: I
};
function I(t, e, i, o, s) {
this.type = t, this.content = e, this.alias = i, this.length = 0 | (o || "").length, this.greedy = !!s
}
if (l.Prism = E, I.stringify = function(t, e) {
if ("string" == typeof t) return t;
if (Array.isArray(t)) return t.map(function(t) {
return I.stringify(t, e)
}).join("");
var i = {
type: t.type,
content: I.stringify(t.content, e),
tag: "span",
classes: ["token", t.type],
attributes: {},
language: e
};
t.alias && (o = Array.isArray(t.alias) ? t.alias : [t.alias], Array.prototype.push.apply(i.classes, o)), E.hooks.run("wrap", i);
var o = Object.keys(i.attributes).map(function(t) {
return t + '="' + (i.attributes[t] || "").replace(/"/g, """) + '"'
}).join(" ");
return "<" + i.tag + ' class="' + i.classes.join(" ") + '"' + (o ? " " + o : "") + ">" + i.content + "" + i.tag + ">"
}, !l.document) return l.addEventListener && (E.disableWorkerMessageHandler || l.addEventListener("message", function(t) {
var e = (i = JSON.parse(t.data)).language,
t = i.code,
i = i.immediateClose;
l.postMessage(E.highlight(t, E.languages[e], e)), i && l.close()
}, !1)), E;
var t = document.currentScript || [].slice.call(document.getElementsByTagName("script")).pop();
return t && (E.filename = t.src, E.manual || t.hasAttribute("data-manual") || ("loading" !== document.readyState ? window.requestAnimationFrame ? window.requestAnimationFrame(E.highlightAll) : window.setTimeout(E.highlightAll, 16) : document.addEventListener("DOMContentLoaded", E.highlightAll))), E
}(_self);
"undefined" != typeof module && module.exports && (module.exports = Prism), "undefined" != typeof global && (global.Prism = Prism), Prism.languages.markup = {
comment: //,
prolog: /<\?[\s\S]+?\?>/,
doctype: //i,
cdata: //i,
tag: {
pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/i,
greedy: !0,
inside: {
tag: {
pattern: /^<\/?[^\s>\/]+/i,
inside: {
punctuation: /^<\/?/,
namespace: /^[^\s>\/:]+:/
}
},
"attr-value": {
pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/i,
inside: {
punctuation: [/^=/, {
pattern: /^(\s*)["']|["']$/,
lookbehind: !0
}]
}
},
punctuation: /\/?>/,
"attr-name": {
pattern: /[^\s>\/]+/,
inside: {
namespace: /^[^\s>\/:]+:/
}
}
}
},
entity: /?[\da-z]{1,8};/i
}, Prism.languages.markup.tag.inside["attr-value"].inside.entity = Prism.languages.markup.entity, Prism.hooks.add("wrap", function(t) {
"entity" === t.type && (t.attributes.title = t.content.replace(/&/, "&"))
}), Object.defineProperty(Prism.languages.markup.tag, "addInlined", {
value: function(t, e) {
var i = {};
i["language-" + e] = {
pattern: /(^$)/i,
lookbehind: !0,
inside: Prism.languages[e]
}, i.cdata = /^$/i, (i = {
"included-cdata": {
pattern: //i,
inside: i
}
})["language-" + e] = {
pattern: /[\s\S]+/,
inside: Prism.languages[e]
}, (e = {})[t] = {
pattern: RegExp("(<__[\\s\\S]*?>)(?:\\s*|[\\s\\S])*?(?=<\\/__>)".replace(/__/g, t), "i"),
lookbehind: !0,
greedy: !0,
inside: i
}, Prism.languages.insertBefore("markup", "cdata", e)
}
}), Prism.languages.xml = Prism.languages.extend("markup", {}), Prism.languages.html = Prism.languages.markup, Prism.languages.mathml = Prism.languages.markup, Prism.languages.svg = Prism.languages.markup,
function(t) {
var e = /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;
t.languages.css = {
comment: /\/\*[\s\S]*?\*\//,
atrule: {
pattern: /@[\w-]+[\s\S]*?(?:;|(?=\s*\{))/,
inside: {
rule: /@[\w-]+/
}
},
url: {
pattern: RegExp("url\\((?:" + e.source + "|[^\n\r()]*)\\)", "i"),
inside: {
function: /^url/i,
punctuation: /^\(|\)$/
}
},
selector: RegExp("[^{}\\s](?:[^{};\"']|" + e.source + ")*?(?=\\s*\\{)"),
string: {
pattern: e,
greedy: !0
},
property: /[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,
important: /!important\b/i,
function: /[-a-z0-9]+(?=\()/i,
punctuation: /[(){};:,]/
}, t.languages.css.atrule.inside.rest = t.languages.css, (e = t.languages.markup) && (e.tag.addInlined("style", "css"), t.languages.insertBefore("inside", "attr-value", {
"style-attr": {
pattern: /\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,
inside: {
"attr-name": {
pattern: /^\s*style/i,
inside: e.tag.inside
},
punctuation: /^\s*=\s*['"]|['"]\s*$/,
"attr-value": {
pattern: /.+/i,
inside: t.languages.css
}
},
alias: "language-css"
}
}, e.tag))
}(Prism), Prism.languages.clike = {
comment: [{
pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,
lookbehind: !0
}, {
pattern: /(^|[^\\:])\/\/.*/,
lookbehind: !0,
greedy: !0
}],
string: {
pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
greedy: !0
},
"class-name": {
pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,
lookbehind: !0,
inside: {
punctuation: /[.\\]/
}
},
keyword: /\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,
boolean: /\b(?:true|false)\b/,
function: /\w+(?=\()/,
number: /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,
operator: /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,
punctuation: /[{}[\];(),.:]/
}, Prism.languages.javascript = Prism.languages.extend("clike", {
"class-name": [Prism.languages.clike["class-name"], {
pattern: /(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/,
lookbehind: !0
}],
keyword: [{
pattern: /((?:^|})\s*)(?:catch|finally)\b/,
lookbehind: !0
}, {
pattern: /(^|[^.])\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,
lookbehind: !0
}],
number: /\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,
function: /[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,
operator: /-[-=]?|\+[+=]?|!=?=?|<=?|>>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/
}), Prism.languages.javascript["class-name"][0].pattern = /(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/, Prism.languages.insertBefore("javascript", "keyword", {
regex: {
pattern: /((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=\s*($|[\r\n,.;})\]]))/,
lookbehind: !0,
greedy: !0
},
"function-variable": {
pattern: /[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/,
alias: "function"
},
parameter: [{
pattern: /(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/,
lookbehind: !0,
inside: Prism.languages.javascript
}, {
pattern: /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i,
inside: Prism.languages.javascript
}, {
pattern: /(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/,
lookbehind: !0,
inside: Prism.languages.javascript
}, {
pattern: /((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/,
lookbehind: !0,
inside: Prism.languages.javascript
}],
constant: /\b[A-Z](?:[A-Z_]|\dx?)*\b/
}), Prism.languages.insertBefore("javascript", "string", {
"template-string": {
pattern: /`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|[^\\`])*`/,
greedy: !0,
inside: {
interpolation: {
pattern: /\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,
inside: {
"interpolation-punctuation": {
pattern: /^\${|}$/,
alias: "punctuation"
},
rest: Prism.languages.javascript
}
},
string: /[\s\S]+/
}
}
}), Prism.languages.markup && Prism.languages.markup.tag.addInlined("script", "javascript"), Prism.languages.js = Prism.languages.javascript;