lib/modules/Gallery/styles/javascript/blueimp-gallery.min.js
!function () {
"use strict";
function a(a, b) {
var c;
for (c in b)b.hasOwnProperty(c) && (a[c] = b[c]);
return a
}
function b(a) {
if (!this || this.find !== b.prototype.find)return new b(a);
if (this.length = 0, a)if ("string" == typeof a && (a = this.find(a)), a.nodeType || a === a.window)this.length = 1, this[0] = a; else {
var c = a.length;
for (this.length = c; c;)c -= 1, this[c] = a[c]
}
}
b.extend = a, b.contains = function (a, b) {
do if (b = b.parentNode, b === a)return !0; while (b);
return !1
}, b.parseJSON = function (a) {
return window.JSON && JSON.parse(a)
}, a(b.prototype, {
find: function (a) {
var c = this[0] || document;
return "string" == typeof a && (a = c.querySelectorAll ? c.querySelectorAll(a) : "#" === a.charAt(0) ? c.getElementById(a.slice(1)) : c.getElementsByTagName(a)), new b(a)
}, hasClass: function (a) {
return this[0] ? new RegExp("(^|\\s+)" + a + "(\\s+|$)").test(this[0].className) : !1
}, addClass: function (a) {
for (var b, c = this.length; c;) {
if (c -= 1, b = this[c], !b.className)return b.className = a, this;
if (this.hasClass(a))return this;
b.className += " " + a
}
return this
}, removeClass: function (a) {
for (var b, c = new RegExp("(^|\\s+)" + a + "(\\s+|$)"), d = this.length; d;)d -= 1, b = this[d], b.className = b.className.replace(c, " ");
return this
}, on: function (a, b) {
for (var c, d, e = a.split(/\s+/); e.length;)for (a = e.shift(), c = this.length; c;)c -= 1, d = this[c], d.addEventListener ? d.addEventListener(a, b, !1) : d.attachEvent && d.attachEvent("on" + a, b);
return this
}, off: function (a, b) {
for (var c, d, e = a.split(/\s+/); e.length;)for (a = e.shift(), c = this.length; c;)c -= 1, d = this[c], d.removeEventListener ? d.removeEventListener(a, b, !1) : d.detachEvent && d.detachEvent("on" + a, b);
return this
}, empty: function () {
for (var a, b = this.length; b;)for (b -= 1, a = this[b]; a.hasChildNodes();)a.removeChild(a.lastChild);
return this
}, first: function () {
return new b(this[0])
}
}), "function" == typeof define && define.amd ? define(function () {
return b
}) : (window.blueimp = window.blueimp || {}, window.blueimp.helper = b)
}(), function (a) {
"use strict";
"function" == typeof define && define.amd ? define(["./blueimp-helper"], a) : (window.blueimp = window.blueimp || {}, window.blueimp.Gallery = a(window.blueimp.helper || window.jQuery))
}(function (a) {
"use strict";
function b(a, c) {
return a && a.length && void 0 !== document.body.style.maxHeight ? this && this.options === b.prototype.options ? (this.list = a, this.num = a.length, this.initOptions(c), this.initialize(), void 0) : new b(a, c) : !1
}
return a.extend(b.prototype, {
options: {
container: "#blueimp-gallery",
slidesContainer: "div",
titleElement: "h3",
displayClass: "blueimp-gallery-display",
controlsClass: "blueimp-gallery-controls",
singleClass: "blueimp-gallery-single",
leftEdgeClass: "blueimp-gallery-left",
rightEdgeClass: "blueimp-gallery-right",
playingClass: "blueimp-gallery-playing",
slideClass: "slide",
slideLoadingClass: "slide-loading",
slideErrorClass: "slide-error",
slideContentClass: "slide-content",
toggleClass: "toggle",
prevClass: "prev",
nextClass: "next",
closeClass: "close",
playPauseClass: "play-pause",
typeProperty: "type",
titleProperty: "title",
urlProperty: "href",
displayTransition: !0,
clearSlides: !0,
stretchImages: !1,
toggleControlsOnReturn: !0,
toggleSlideshowOnSpace: !0,
enableKeyboardNavigation: !0,
closeOnEscape: !0,
closeOnSlideClick: !0,
closeOnSwipeUpOrDown: !0,
emulateTouchEvents: !0,
hiddenPageScrollbars: !0,
disableScroll: !0,
carousel: !1,
continuous: !0,
unloadElements: !0,
startSlideshow: !1,
slideshowInterval: 5e3,
index: 0,
preloadRange: 2,
transitionSpeed: 400,
slideshowTransitionSpeed: void 0,
event: void 0,
onopen: void 0,
onopened: void 0,
onslide: void 0,
onslideend: void 0,
onslidecomplete: void 0,
onclose: void 0,
onclosed: void 0
},
carouselOptions: {
hiddenPageScrollbars: !1,
toggleControlsOnReturn: !1,
toggleSlideshowOnSpace: !1,
enableKeyboardNavigation: !1,
closeOnEscape: !1,
closeOnSlideClick: !1,
closeOnSwipeUpOrDown: !1,
disableScroll: !1,
startSlideshow: !0
},
support: function (b) {
var c = {touch: void 0 !== window.ontouchstart || window.DocumentTouch && document instanceof DocumentTouch}, d = {
webkitTransition: {
end: "webkitTransitionEnd",
prefix: "-webkit-"
},
MozTransition: {end: "transitionend", prefix: "-moz-"},
OTransition: {end: "otransitionend", prefix: "-o-"},
transition: {end: "transitionend", prefix: ""}
}, e = function () {
var a, d, e = c.transition;
document.body.appendChild(b), e && (a = e.name.slice(0, -9) + "ransform", void 0 !== b.style[a] && (b.style[a] = "translateZ(0)", d = window.getComputedStyle(b).getPropertyValue(e.prefix + "transform"), c.transform = {
prefix: e.prefix,
name: a,
translate: !0,
translateZ: !!d && "none" !== d
})), void 0 !== b.style.backgroundSize && (c.backgroundSize = {}, b.style.backgroundSize = "contain", c.backgroundSize.contain = "contain" === window.getComputedStyle(b).getPropertyValue("background-size"), b.style.backgroundSize = "cover", c.backgroundSize.cover = "cover" === window.getComputedStyle(b).getPropertyValue("background-size")), document.body.removeChild(b)
};
return function (a, c) {
var d;
for (d in c)if (c.hasOwnProperty(d) && void 0 !== b.style[d]) {
a.transition = c[d], a.transition.name = d;
break
}
}(c, d), document.body ? e() : a(document).on("DOMContentLoaded", e), c
}(document.createElement("div")),
requestAnimationFrame: window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame,
initialize: function () {
return this.initStartIndex(), this.initWidget() === !1 ? !1 : (this.initEventListeners(), this.onslide(this.index), this.ontransitionend(), this.options.startSlideshow && this.play(), void 0)
},
slide: function (a, b) {
window.clearTimeout(this.timeout);
var c, d, e, f = this.index;
if (f !== a && 1 !== this.num) {
if (b || (b = this.options.transitionSpeed), this.support.transition) {
for (this.options.continuous || (a = this.circle(a)), c = Math.abs(f - a) / (f - a), this.options.continuous && (d = c, c = -this.positions[this.circle(a)] / this.slideWidth, c !== d && (a = -c * this.num + a)), e = Math.abs(f - a) - 1; e;)e -= 1, this.move(this.circle((a > f ? a : f) - e - 1), this.slideWidth * c, 0);
a = this.circle(a), this.move(f, this.slideWidth * c, b), this.move(a, 0, b), this.options.continuous && this.move(this.circle(a - c), -(this.slideWidth * c), 0)
} else a = this.circle(a), this.animate(f * -this.slideWidth, a * -this.slideWidth, b);
this.onslide(a)
}
},
getIndex: function () {
return this.index
},
getNumber: function () {
return this.num
},
prev: function () {
(this.options.continuous || this.index) && this.slide(this.index - 1)
},
next: function () {
(this.options.continuous || this.index < this.num - 1) && this.slide(this.index + 1)
},
play: function (a) {
var b = this;
window.clearTimeout(this.timeout), this.interval = a || this.options.slideshowInterval, this.elements[this.index] > 1 && (this.timeout = this.setTimeout(!this.requestAnimationFrame && this.slide || function (a, c) {
b.animationFrameId = b.requestAnimationFrame.call(window, function () {
b.slide(a, c)
})
}, [this.index + 1, this.options.slideshowTransitionSpeed], this.interval)), this.container.addClass(this.options.playingClass)
},
pause: function () {
window.clearTimeout(this.timeout), this.interval = null, this.container.removeClass(this.options.playingClass)
},
add: function (a) {
var b;
for (a.concat || (a = Array.prototype.slice.call(a)), this.list.concat || (this.list = Array.prototype.slice.call(this.list)), this.list = this.list.concat(a), this.num = this.list.length, this.num > 2 && null === this.options.continuous && (this.options.continuous = !0, this.container.removeClass(this.options.leftEdgeClass)), this.container.removeClass(this.options.rightEdgeClass).removeClass(this.options.singleClass), b = this.num - a.length; b < this.num; b += 1)this.addSlide(b), this.positionSlide(b);
this.positions.length = this.num, this.initSlides(!0)
},
resetSlides: function () {
this.slidesContainer.empty(), this.slides = []
},
handleClose: function () {
var a = this.options;
this.destroyEventListeners(), this.pause(), this.container[0].style.display = "none", this.container.removeClass(a.displayClass).removeClass(a.singleClass).removeClass(a.leftEdgeClass).removeClass(a.rightEdgeClass), a.hiddenPageScrollbars && (document.body.style.overflow = this.bodyOverflowStyle), this.options.clearSlides && this.resetSlides(), this.options.onclosed && this.options.onclosed.call(this)
},
close: function () {
var a = this, b = function (c) {
c.target === a.container[0] && (a.container.off(a.support.transition.end, b), a.handleClose())
};
this.options.onclose && this.options.onclose.call(this), this.support.transition && this.options.displayTransition ? (this.container.on(this.support.transition.end, b), this.container.removeClass(this.options.displayClass)) : this.handleClose()
},
circle: function (a) {
return (this.num + a % this.num) % this.num
},
move: function (a, b, c) {
this.translateX(a, b, c), this.positions[a] = b
},
translate: function (a, b, c, d) {
var e = this.slides[a].style, f = this.support.transition, g = this.support.transform;
e[f.name + "Duration"] = d + "ms", e[g.name] = "translate(" + b + "px, " + c + "px)" + (g.translateZ ? " translateZ(0)" : "")
},
translateX: function (a, b, c) {
this.translate(a, b, 0, c)
},
translateY: function (a, b, c) {
this.translate(a, 0, b, c)
},
animate: function (a, b, c) {
if (!c)return this.slidesContainer[0].style.left = b + "px", void 0;
var d = this, e = (new Date).getTime(), f = window.setInterval(function () {
var g = (new Date).getTime() - e;
return g > c ? (d.slidesContainer[0].style.left = b + "px", d.ontransitionend(), window.clearInterval(f), void 0) : (d.slidesContainer[0].style.left = (b - a) * (Math.floor(100 * (g / c)) / 100) + a + "px", void 0)
}, 4)
},
preventDefault: function (a) {
a.preventDefault ? a.preventDefault() : a.returnValue = !1
},
onresize: function () {
this.initSlides(!0)
},
onmousedown: function (a) {
a.which && 1 === a.which && "VIDEO" !== a.target.nodeName && ((a.originalEvent || a).touches = [
{pageX: a.pageX, pageY: a.pageY}
], this.ontouchstart(a))
},
onmousemove: function (a) {
this.touchStart && ((a.originalEvent || a).touches = [
{pageX: a.pageX, pageY: a.pageY}
], this.ontouchmove(a))
},
onmouseup: function (a) {
this.touchStart && (this.ontouchend(a), delete this.touchStart)
},
onmouseout: function (b) {
if (this.touchStart) {
var c = b.target, d = b.relatedTarget;
(!d || d !== c && !a.contains(c, d)) && this.onmouseup(b)
}
},
ontouchstart: function (a) {
var b = (a.originalEvent || a).touches[0];
this.touchStart = {
x: b.pageX,
y: b.pageY,
time: Date.now()
}, this.isScrolling = void 0, this.touchDelta = {}
},
ontouchmove: function (a) {
var b, c, d = (a.originalEvent || a).touches[0], e = (a.originalEvent || a).scale, f = this.index;
if (!(d.length > 1 || e && 1 !== e))if (this.options.disableScroll && a.preventDefault(), this.touchDelta = {
x: d.pageX - this.touchStart.x,
y: d.pageY - this.touchStart.y
}, b = this.touchDelta.x, void 0 === this.isScrolling && (this.isScrolling = this.isScrolling || Math.abs(b) < Math.abs(this.touchDelta.y)), this.isScrolling)this.options.closeOnSwipeUpOrDown && this.translateY(f, this.touchDelta.y + this.positions[f], 0); else for (a.preventDefault(), window.clearTimeout(this.timeout), this.options.continuous ? c = [this.circle(f + 1), f, this.circle(f - 1)] : (this.touchDelta.x = b /= !f && b > 0 || f === this.num - 1 && 0 > b ? Math.abs(b) / this.slideWidth + 1 : 1, c = [f], f && c.push(f - 1), f < this.num - 1 && c.unshift(f + 1)); c.length;)f = c.pop(), this.translateX(f, b + this.positions[f], 0)
},
ontouchend: function () {
var a, b, c, d, e, f = this.index, g = this.options.transitionSpeed, h = this.slideWidth, i = Number(Date.now() - this.touchStart.time) < 250, j = i && Math.abs(this.touchDelta.x) > 20 || Math.abs(this.touchDelta.x) > h / 2, k = !f && this.touchDelta.x > 0 || f === this.num - 1 && this.touchDelta.x < 0, l = !j && this.options.closeOnSwipeUpOrDown && (i && Math.abs(this.touchDelta.y) > 20 || Math.abs(this.touchDelta.y) > this.slideHeight / 2);
this.options.continuous && (k = !1), a = this.touchDelta.x < 0 ? -1 : 1, this.isScrolling ? l ? this.close() : this.translateY(f, 0, g) : j && !k ? (b = f + a, c = f - a, d = h * a, e = -h * a, this.options.continuous ? (this.move(this.circle(b), d, 0), this.move(this.circle(f - 2 * a), e, 0)) : b >= 0 && b < this.num && this.move(b, d, 0), this.move(f, this.positions[f] + d, g), this.move(this.circle(c), this.positions[this.circle(c)] + d, g), f = this.circle(c), this.onslide(f)) : this.options.continuous ? (this.move(this.circle(f - 1), -h, g), this.move(f, 0, g), this.move(this.circle(f + 1), h, g)) : (f && this.move(f - 1, -h, g), this.move(f, 0, g), f < this.num - 1 && this.move(f + 1, h, g))
},
ontransitionend: function (a) {
var b = this.slides[this.index];
a && b !== a.target || (this.interval && this.play(), this.setTimeout(this.options.onslideend, [this.index, b]))
},
oncomplete: function (b) {
var c, d = b.target || b.srcElement, e = d && d.parentNode;
d && e && (c = this.getNodeIndex(e), a(e).removeClass(this.options.slideLoadingClass), "error" === b.type ? (a(e).addClass(this.options.slideErrorClass), this.elements[c] = 3) : this.elements[c] = 2, d.clientHeight > this.container[0].clientHeight && (d.style.maxHeight = this.container[0].clientHeight), this.interval && this.slides[this.index] === e && this.play(), this.setTimeout(this.options.onslidecomplete, [c, e]))
},
onload: function (a) {
this.oncomplete(a)
},
onerror: function (a) {
this.oncomplete(a)
},
onkeydown: function (a) {
switch (a.which || a.keyCode) {
case 13:
this.options.toggleControlsOnReturn && (this.preventDefault(a), this.toggleControls());
break;
case 27:
this.options.closeOnEscape && this.close();
break;
case 32:
this.options.toggleSlideshowOnSpace && (this.preventDefault(a), this.toggleSlideshow());
break;
case 37:
this.options.enableKeyboardNavigation && (this.preventDefault(a), this.prev());
break;
case 39:
this.options.enableKeyboardNavigation && (this.preventDefault(a), this.next())
}
},
handleClick: function (b) {
var c = this.options, d = b.target || b.srcElement, e = d.parentNode, f = function (b) {
return a(d).hasClass(b) || a(e).hasClass(b)
};
e === this.slidesContainer[0] ? (this.preventDefault(b), c.closeOnSlideClick ? this.close() : this.toggleControls()) : e.parentNode && e.parentNode === this.slidesContainer[0] ? (this.preventDefault(b), this.toggleControls()) : f(c.toggleClass) ? (this.preventDefault(b), this.toggleControls()) : f(c.prevClass) ? (this.preventDefault(b), this.prev()) : f(c.nextClass) ? (this.preventDefault(b), this.next()) : f(c.closeClass) ? (this.preventDefault(b), this.close()) : f(c.playPauseClass) && (this.preventDefault(b), this.toggleSlideshow())
},
onclick: function (a) {
return this.options.emulateTouchEvents && this.touchDelta && (Math.abs(this.touchDelta.x) > 20 || Math.abs(this.touchDelta.y) > 20) ? (delete this.touchDelta, void 0) : this.handleClick(a)
},
updateEdgeClasses: function (a) {
a ? this.container.removeClass(this.options.leftEdgeClass) : this.container.addClass(this.options.leftEdgeClass), a === this.num - 1 ? this.container.addClass(this.options.rightEdgeClass) : this.container.removeClass(this.options.rightEdgeClass)
},
handleSlide: function (a) {
this.options.continuous || this.updateEdgeClasses(a), this.loadElements(a), this.options.unloadElements && this.unloadElements(a), this.setTitle(a)
},
onslide: function (a) {
this.index = a, this.handleSlide(a), this.setTimeout(this.options.onslide, [a, this.slides[a]])
},
setTitle: function (a) {
var b = this.slides[a].firstChild.title, c = this.titleElement;
c.length && (this.titleElement.empty(), b && c[0].appendChild(document.createTextNode(b)))
},
setTimeout: function (a, b, c) {
var d = this;
return a && window.setTimeout(function () {
a.apply(d, b || [])
}, c || 0)
},
imageFactory: function (b, c) {
var d, e, f, g = this, h = this.imagePrototype.cloneNode(!1), i = b, j = this.options.stretchImages, k = function (b) {
if (!d) {
if (b = {type: b.type, target: e}, !e.parentNode)return g.setTimeout(k, [b]);
d = !0, a(h).off("load error", k), j && "load" === b.type && (e.style.background = 'url("' + i + '") center no-repeat', e.style.backgroundSize = j), c(b)
}
};
return "string" != typeof i && (i = this.getItemProperty(b, this.options.urlProperty), f = this.getItemProperty(b, this.options.titleProperty)), j === !0 && (j = "contain"), j = this.support.backgroundSize && this.support.backgroundSize[j] && j, j ? e = this.elementPrototype.cloneNode(!1) : (e = h, h.draggable = !1), f && (e.title = f), a(h).on("load error", k), h.src = i, e
},
createElement: function (b, c) {
var d = b && this.getItemProperty(b, this.options.typeProperty), e = d && this[d.split("/")[0] + "Factory"] || this.imageFactory, f = b && e.call(this, b, c);
return f || (f = this.elementPrototype.cloneNode(!1), this.setTimeout(c, [
{type: "error", target: f}
])), a(f).addClass(this.options.slideContentClass), f
},
loadElement: function (b) {
this.elements[b] || (this.slides[b].firstChild ? this.elements[b] = a(this.slides[b]).hasClass(this.options.slideErrorClass) ? 3 : 2 : (this.elements[b] = 1, a(this.slides[b]).addClass(this.options.slideLoadingClass), this.slides[b].appendChild(this.createElement(this.list[b], this.proxyListener))))
},
loadElements: function (a) {
var b, c = Math.min(this.num, 2 * this.options.preloadRange + 1), d = a;
for (b = 0; c > b; b += 1)d += b * (0 === b % 2 ? -1 : 1), d = this.circle(d), this.loadElement(d)
},
unloadElements: function (a) {
var b, c, d;
for (b in this.elements)this.elements.hasOwnProperty(b) && (d = Math.abs(a - b), d > this.options.preloadRange && d + this.options.preloadRange < this.num && (c = this.slides[b], c.removeChild(c.firstChild), delete this.elements[b]))
},
addSlide: function (a) {
var b = this.slidePrototype.cloneNode(!1);
b.setAttribute("data-index", a), this.slidesContainer[0].appendChild(b), this.slides.push(b)
},
positionSlide: function (a) {
var b = this.slides[a];
b.style.width = this.slideWidth + "px", this.support.transition && (b.style.left = a * -this.slideWidth + "px", this.move(a, this.index > a ? -this.slideWidth : this.index < a ? this.slideWidth : 0, 0))
},
initSlides: function (b) {
var c, d;
for (b || (this.positions = [], this.positions.length = this.num, this.elements = {}, this.imagePrototype = document.createElement("img"), this.elementPrototype = document.createElement("div"), this.slidePrototype = document.createElement("div"), a(this.slidePrototype).addClass(this.options.slideClass), this.slides = this.slidesContainer[0].children, c = this.options.clearSlides || this.slides.length !== this.num), this.slideWidth = this.container[0].offsetWidth, this.slideHeight = this.container[0].offsetHeight, this.slidesContainer[0].style.width = this.num * this.slideWidth + "px", c && this.resetSlides(), d = 0; d < this.num; d += 1)c && this.addSlide(d), this.positionSlide(d);
this.options.continuous && this.support.transition && (this.move(this.circle(this.index - 1), -this.slideWidth, 0), this.move(this.circle(this.index + 1), this.slideWidth, 0)), this.support.transition || (this.slidesContainer[0].style.left = this.index * -this.slideWidth + "px")
},
toggleControls: function () {
var a = this.options.controlsClass;
this.container.hasClass(a) ? this.container.removeClass(a) : this.container.addClass(a)
},
toggleSlideshow: function () {
this.interval ? this.pause() : this.play()
},
getNodeIndex: function (a) {
return parseInt(a.getAttribute("data-index"), 10)
},
getNestedProperty: function (a, b) {
return b.replace(/\[(?:'([^']+)'|"([^"]+)"|(\d+))\]|(?:(?:^|\.)([^\.\[]+))/g, function (b, c, d, e, f) {
var g = f || c || d || e && parseInt(e, 10);
b && a && (a = a[g])
}), a
},
getDataProperty: function (b, c) {
if (b.getAttribute) {
var d = b.getAttribute("data-" + c.replace(/([A-Z])/g, "-$1").toLowerCase());
if ("string" == typeof d) {
if (/^(true|false|null|-?\d+(\.\d+)?|\{[\s\S]*\}|\[[\s\S]*\])$/.test(d))try {
return a.parseJSON(d)
} catch (e) {
}
return d
}
}
},
getItemProperty: function (a, b) {
var c = a[b];
return void 0 === c && (c = this.getDataProperty(a, b), void 0 === c && (c = this.getNestedProperty(a, b))), c
},
initStartIndex: function () {
var a, b = this.options.index, c = this.options.urlProperty;
if (b && "number" != typeof b)for (a = 0; a < this.num; a += 1)if (this.list[a] === b || this.getItemProperty(this.list[a], c) === this.getItemProperty(b, c)) {
b = a;
break
}
this.index = this.circle(parseInt(b, 10) || 0)
},
initEventListeners: function () {
var b = this, c = this.slidesContainer, d = function (a) {
var c = b.support.transition && b.support.transition.end === a.type ? "transitionend" : a.type;
b["on" + c](a)
};
a(window).on("resize", d), a(document.body).on("keydown", d), this.container.on("click", d), this.support.touch ? c.on("touchstart touchmove touchend", d) : this.options.emulateTouchEvents && this.support.transition && c.on("mousedown mousemove mouseup mouseout", d), this.support.transition && c.on(this.support.transition.end, d), this.proxyListener = d
},
destroyEventListeners: function () {
var b = this.slidesContainer, c = this.proxyListener;
a(window).off("resize", c), a(document.body).off("keydown", c), this.container.off("click", c), this.support.touch ? b.off("touchstart touchmove touchend", c) : this.options.emulateTouchEvents && this.support.transition && b.off("mousedown mousemove mouseup mouseout", c), this.support.transition && b.off(this.support.transition.end, c)
},
handleOpen: function () {
this.options.onopened && this.options.onopened.call(this)
},
initWidget: function () {
var b = this, c = function (a) {
a.target === b.container[0] && (b.container.off(b.support.transition.end, c), b.handleOpen())
};
return this.container = a(this.options.container), this.container.length ? (this.slidesContainer = this.container.find(this.options.slidesContainer).first(), this.slidesContainer.length ? (this.titleElement = this.container.find(this.options.titleElement).first(), 1 === this.num && this.container.addClass(this.options.singleClass), this.options.onopen && this.options.onopen.call(this), this.support.transition && this.options.displayTransition ? this.container.on(this.support.transition.end, c) : this.handleOpen(), this.options.hiddenPageScrollbars && (this.bodyOverflowStyle = document.body.style.overflow, document.body.style.overflow = "hidden"), this.container[0].style.display = "block", this.initSlides(), this.container.addClass(this.options.displayClass), void 0) : !1) : !1
},
initOptions: function (b) {
this.options = a.extend({}, this.options), (b && b.carousel || this.options.carousel && (!b || b.carousel !== !1)) && a.extend(this.options, this.carouselOptions), a.extend(this.options, b), this.num < 3 && (this.options.continuous = this.options.continuous ? null : !1), this.support.transition || (this.options.emulateTouchEvents = !1), this.options.event && this.preventDefault(this.options.event)
}
}), b
}), function (a) {
"use strict";
"function" == typeof define && define.amd ? define(["./blueimp-helper", "./blueimp-gallery"], a) : a(window.blueimp.helper || window.jQuery, window.blueimp.Gallery)
}(function (a, b) {
"use strict";
a.extend(b.prototype.options, {fullScreen: !1});
var c = b.prototype.initialize, d = b.prototype.handleClose;
return a.extend(b.prototype, {
getFullScreenElement: function () {
return document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement
}, requestFullScreen: function (a) {
a.requestFullscreen ? a.requestFullscreen() : a.webkitRequestFullscreen ? a.webkitRequestFullscreen() : a.mozRequestFullScreen && a.mozRequestFullScreen()
}, exitFullScreen: function () {
document.exitFullscreen ? document.exitFullscreen() : document.webkitCancelFullScreen ? document.webkitCancelFullScreen() : document.mozCancelFullScreen && document.mozCancelFullScreen()
}, initialize: function () {
c.call(this), this.options.fullScreen && !this.getFullScreenElement() && this.requestFullScreen(this.container[0])
}, handleClose: function () {
this.getFullScreenElement() === this.container[0] && this.exitFullScreen(), d.call(this)
}
}), b
}), function (a) {
"use strict";
"function" == typeof define && define.amd ? define(["./blueimp-helper", "./blueimp-gallery"], a) : a(window.blueimp.helper || window.jQuery, window.blueimp.Gallery)
}(function (a, b) {
"use strict";
a.extend(b.prototype.options, {
indicatorContainer: "ol",
activeIndicatorClass: "active",
thumbnailProperty: "thumbnail",
thumbnailIndicators: !0
});
var c = b.prototype.initSlides, d = b.prototype.addSlide, e = b.prototype.resetSlides, f = b.prototype.handleClick, g = b.prototype.handleSlide, h = b.prototype.handleClose;
return a.extend(b.prototype, {
createIndicator: function (b) {
var c, d, e = this.indicatorPrototype.cloneNode(!1), f = this.getItemProperty(b, this.options.titleProperty), g = this.options.thumbnailProperty;
return this.options.thumbnailIndicators && (d = b.getElementsByTagName && a(b).find("img")[0], d ? c = d.src : g && (c = this.getItemProperty(b, g)), c && (e.style.backgroundImage = 'url("' + c + '")')), f && (e.title = f), e
}, addIndicator: function (a) {
if (this.indicatorContainer.length) {
var b = this.createIndicator(this.list[a]);
b.setAttribute("data-index", a), this.indicatorContainer[0].appendChild(b), this.indicators.push(b)
}
}, setActiveIndicator: function (b) {
this.indicators && (this.activeIndicator && this.activeIndicator.removeClass(this.options.activeIndicatorClass), this.activeIndicator = a(this.indicators[b]), this.activeIndicator.addClass(this.options.activeIndicatorClass))
}, initSlides: function (a) {
a || (this.indicatorContainer = this.container.find(this.options.indicatorContainer), this.indicatorContainer.length && (this.indicatorPrototype = document.createElement("li"), this.indicators = this.indicatorContainer[0].children)), c.call(this, a)
}, addSlide: function (a) {
d.call(this, a), this.addIndicator(a)
}, resetSlides: function () {
e.call(this), this.indicatorContainer.empty(), this.indicators = []
}, handleClick: function (a) {
var b = a.target || a.srcElement, c = b.parentNode;
if (c === this.indicatorContainer[0])this.preventDefault(a), this.slide(this.getNodeIndex(b)); else {
if (c.parentNode !== this.indicatorContainer[0])return f.call(this, a);
this.preventDefault(a), this.slide(this.getNodeIndex(c))
}
}, handleSlide: function (a) {
g.call(this, a), this.setActiveIndicator(a)
}, handleClose: function () {
this.activeIndicator && this.activeIndicator.removeClass(this.options.activeIndicatorClass), h.call(this)
}
}), b
}), function (a) {
"use strict";
"function" == typeof define && define.amd ? define(["./blueimp-helper", "./blueimp-gallery"], a) : a(window.blueimp.helper || window.jQuery, window.blueimp.Gallery)
}(function (a, b) {
"use strict";
return a.extend(b.prototype.options, {
videoContentClass: "video-content",
videoLoadingClass: "video-loading",
videoPlayingClass: "video-playing",
videoPosterProperty: "poster",
videoSourcesProperty: "sources"
}), b.prototype.videoFactory = function (b, c, d) {
var e, f, g, h, i, j = this, k = this.options, l = this.elementPrototype.cloneNode(!1), m = a(l), n = [
{type: "error", target: l}
], o = d || document.createElement("video"), p = this.getItemProperty(b, k.urlProperty), q = this.getItemProperty(b, k.typeProperty), r = this.getItemProperty(b, k.titleProperty), s = this.getItemProperty(b, k.videoPosterProperty), t = this.getItemProperty(b, k.videoSourcesProperty);
if (m.addClass(k.videoContentClass), r && (l.title = r), o.canPlayType)if (p && q && o.canPlayType(q))o.src = p; else for (; t && t.length;)if (f = t.shift(), p = this.getItemProperty(f, k.urlProperty), q = this.getItemProperty(f, k.typeProperty), p && q && o.canPlayType(q)) {
o.src = p;
break
}
return s && (o.poster = s, e = this.imagePrototype.cloneNode(!1), a(e).addClass(k.toggleClass), e.src = s, e.draggable = !1, l.appendChild(e)), g = document.createElement("a"), g.setAttribute("target", "_blank"), d || g.setAttribute("download", r), g.href = p, o.src && (o.controls = !0, (d || a(o)).on("error", function () {
j.setTimeout(c, n)
}).on("pause", function () {
h = !1, m.removeClass(j.options.videoLoadingClass).removeClass(j.options.videoPlayingClass), i && j.container.addClass(j.options.controlsClass), j.interval && j.play()
}).on("playing", function () {
h = !1, m.removeClass(j.options.videoLoadingClass).addClass(j.options.videoPlayingClass), j.container.hasClass(j.options.controlsClass) ? (i = !0, j.container.removeClass(j.options.controlsClass)) : i = !1
}).on("play", function () {
window.clearTimeout(j.timeout), h = !0, m.addClass(j.options.videoLoadingClass)
}), a(g).on("click", function (a) {
j.preventDefault(a), h ? o.pause() : o.play()
}), l.appendChild(d && d.element || o)), l.appendChild(g), this.setTimeout(c, [
{type: "load", target: l}
]), l
}, b
}), function (a) {
"use strict";
"function" == typeof define && define.amd ? define(["./blueimp-helper", "./blueimp-gallery-video"], a) : a(window.blueimp.helper || window.jQuery, window.blueimp.Gallery)
}(function (a, b) {
"use strict";
if (!window.postMessage)return b;
a.extend(b.prototype.options, {
vimeoVideoIdProperty: "vimeo",
vimeoPlayerUrl: "//player.vimeo.com/video/VIDEO_ID?api=1&player_id=PLAYER_ID",
vimeoPlayerIdPrefix: "vimeo-player-",
vimeoClickToPlay: !0
});
var c = b.prototype.textFactory || b.prototype.imageFactory, d = function (a, b, c, d) {
this.url = a, this.videoId = b, this.playerId = c, this.clickToPlay = d, this.element = document.createElement("div"), this.listeners = {}
}, e = 0;
return a.extend(d.prototype, {
canPlayType: function () {
return !0
}, on: function (a, b) {
return this.listeners[a] = b, this
}, loadAPI: function () {
for (var b, c, d = this, e = "//" + ("https" === location.protocol ? "secure-" : "") + "a.vimeocdn.com/js/froogaloop2.min.js", f = document.getElementsByTagName("script"), g = f.length, h = function () {
!c && d.playOnReady && d.play(), c = !0
}; g;)if (g -= 1, f[g].src === e) {
b = f[g];
break
}
b || (b = document.createElement("script"), b.src = e), a(b).on("load", h), f[0].parentNode.insertBefore(b, f[0]), /loaded|complete/.test(b.readyState) && h()
}, onReady: function () {
var a = this;
this.ready = !0, this.player.addEvent("play", function () {
a.hasPlayed = !0, a.onPlaying()
}), this.player.addEvent("pause", function () {
a.onPause()
}), this.player.addEvent("finish", function () {
a.onPause()
}), this.playOnReady && this.play()
}, onPlaying: function () {
this.playStatus < 2 && (this.listeners.playing(), this.playStatus = 2)
}, onPause: function () {
this.listeners.pause(), delete this.playStatus
}, insertIframe: function () {
var a = document.createElement("iframe");
a.src = this.url.replace("VIDEO_ID", this.videoId).replace("PLAYER_ID", this.playerId), a.id = this.playerId, this.element.parentNode.replaceChild(a, this.element), this.element = a
}, play: function () {
var a = this;
this.playStatus || (this.listeners.play(), this.playStatus = 1), this.ready ? !this.hasPlayed && (this.clickToPlay || window.navigator && /iP(hone|od|ad)/.test(window.navigator.platform)) ? this.onPlaying() : this.player.api("play") : (this.playOnReady = !0, window.$f ? this.player || (this.insertIframe(), this.player = $f(this.element), this.player.addEvent("ready", function () {
a.onReady()
})) : this.loadAPI())
}, pause: function () {
this.ready ? this.player.api("pause") : this.playStatus && (delete this.playOnReady, this.listeners.pause(), delete this.playStatus)
}
}), a.extend(b.prototype, {
VimeoPlayer: d, textFactory: function (a, b) {
var f = this.getItemProperty(a, this.options.vimeoVideoIdProperty);
return f ? (e += 1, this.videoFactory(a, b, new d(this.options.vimeoPlayerUrl, f, this.options.vimeoPlayerIdPrefix + e, this.options.vimeoClickToPlay))) : c.call(this, a, b)
}
}), b
}), function (a) {
"use strict";
"function" == typeof define && define.amd ? define(["./blueimp-helper", "./blueimp-gallery-video"], a) : a(window.blueimp.helper || window.jQuery, window.blueimp.Gallery)
}(function (a, b) {
"use strict";
if (!window.postMessage)return b;
a.extend(b.prototype.options, {
youTubeVideoIdProperty: "youtube",
youTubePlayerVars: void 0,
youTubeClickToPlay: !0
});
var c = b.prototype.textFactory || b.prototype.imageFactory, d = function (a, b, c) {
this.videoId = a, this.playerVars = b, this.clickToPlay = c, this.element = document.createElement("div"), this.listeners = {}
};
return a.extend(d.prototype, {
canPlayType: function () {
return !0
}, on: function (a, b) {
return this.listeners[a] = b, this
}, loadAPI: function () {
var a, b = this, c = window.onYouTubeIframeAPIReady, d = "//www.youtube.com/iframe_api", e = document.getElementsByTagName("script"), f = e.length;
for (window.onYouTubeIframeAPIReady = function () {
c && c.apply(this), b.playOnReady && b.play()
}; f;)if (f -= 1, e[f].src === d)return;
a = document.createElement("script"), a.src = d, e[0].parentNode.insertBefore(a, e[0])
}, onReady: function () {
this.ready = !0, this.playOnReady && this.play()
}, onPlaying: function () {
this.playStatus < 2 && (this.listeners.playing(), this.playStatus = 2)
}, onPause: function () {
b.prototype.setTimeout.call(this, this.checkSeek, null, 2e3)
}, checkSeek: function () {
(this.stateChange === YT.PlayerState.PAUSED || this.stateChange === YT.PlayerState.ENDED) && (this.listeners.pause(), delete this.playStatus)
}, onStateChange: function (a) {
switch (a.data) {
case YT.PlayerState.PLAYING:
this.hasPlayed = !0, this.onPlaying();
break;
case YT.PlayerState.PAUSED:
case YT.PlayerState.ENDED:
this.onPause()
}
this.stateChange = a.data
}, onError: function (a) {
this.listeners.error(a)
}, play: function () {
var a = this;
this.playStatus || (this.listeners.play(), this.playStatus = 1), this.ready ? !this.hasPlayed && (this.clickToPlay || window.navigator && /iP(hone|od|ad)/.test(window.navigator.platform)) ? this.onPlaying() : this.player.playVideo() : (this.playOnReady = !0, window.YT && YT.Player ? this.player || (this.player = new YT.Player(this.element, {
videoId: this.videoId,
playerVars: this.playerVars,
events: {
onReady: function () {
a.onReady()
}, onStateChange: function (b) {
a.onStateChange(b)
}, onError: function (b) {
a.onError(b)
}
}
})) : this.loadAPI())
}, pause: function () {
this.ready ? this.player.pauseVideo() : this.playStatus && (delete this.playOnReady, this.listeners.pause(), delete this.playStatus)
}
}), a.extend(b.prototype, {
YouTubePlayer: d, textFactory: function (a, b) {
var e = this.getItemProperty(a, this.options.youTubeVideoIdProperty);
return e ? this.videoFactory(a, b, new d(e, this.options.youTubePlayerVars, this.options.youTubeClickToPlay)) : c.call(this, a, b)
}
}), b
});