You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3318 lines
115 KiB
3318 lines
115 KiB
// ==================================================
|
|
// fancyBox v3.5.7
|
|
//
|
|
// Licensed GPLv3 for open source use
|
|
// or fancyBox Commercial License for commercial use
|
|
//
|
|
// http://fancyapps.com/fancybox/
|
|
// Copyright 2019 fancyApps
|
|
//
|
|
// ==================================================
|
|
!(function (t, e, n, o) {
|
|
"use strict";
|
|
function i(t, e) {
|
|
var o,
|
|
i,
|
|
a,
|
|
s = [],
|
|
r = 0;
|
|
(t && t.isDefaultPrevented()) ||
|
|
(t.preventDefault(),
|
|
(e = e || {}),
|
|
t && t.data && (e = h(t.data.options, e)),
|
|
(o = e.$target || n(t.currentTarget).trigger("blur")),
|
|
((a = n.fancybox.getInstance()) && a.$trigger && a.$trigger.is(o)) ||
|
|
(e.selector
|
|
? (s = n(e.selector))
|
|
: ((i = o.attr("data-fancybox") || ""),
|
|
i
|
|
? ((s = t.data ? t.data.items : []),
|
|
(s = s.length
|
|
? s.filter('[data-fancybox="' + i + '"]')
|
|
: n('[data-fancybox="' + i + '"]')))
|
|
: (s = [o])),
|
|
(r = n(s).index(o)),
|
|
r < 0 && (r = 0),
|
|
(a = n.fancybox.open(s, e, r)),
|
|
(a.$trigger = o)));
|
|
}
|
|
if (((t.console = t.console || { info: function (t) {} }), n)) {
|
|
if (n.fn.fancybox) return void console.info("fancyBox already initialized");
|
|
var a = {
|
|
closeExisting: !1,
|
|
loop: !1,
|
|
gutter: 50,
|
|
keyboard: !0,
|
|
preventCaptionOverlap: !0,
|
|
arrows: !0,
|
|
infobar: !0,
|
|
smallBtn: "auto",
|
|
toolbar: "auto",
|
|
buttons: ["zoom", "slideShow", "thumbs", "close"],
|
|
idleTime: 3,
|
|
protect: !1,
|
|
modal: !1,
|
|
image: { preload: !1 },
|
|
ajax: { settings: { data: { fancybox: !0 } } },
|
|
iframe: {
|
|
tpl: '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" allowfullscreen="allowfullscreen" allow="autoplay; fullscreen" src=""></iframe>',
|
|
preload: !0,
|
|
css: {},
|
|
attr: { scrolling: "auto" },
|
|
},
|
|
video: {
|
|
tpl: '<video class="fancybox-video" controls controlsList="nodownload" poster="{{poster}}"><source src="{{src}}" type="{{format}}" />Sorry, your browser doesn\'t support embedded videos, <a href="{{src}}">download</a> and watch with your favorite video player!</video>',
|
|
format: "",
|
|
autoStart: !0,
|
|
},
|
|
defaultType: "image",
|
|
animationEffect: "zoom",
|
|
animationDuration: 366,
|
|
zoomOpacity: "auto",
|
|
transitionEffect: "fade",
|
|
transitionDuration: 366,
|
|
slideClass: "",
|
|
baseClass: "",
|
|
baseTpl:
|
|
'<div class="fancybox-container" role="dialog" tabindex="-1"><div class="fancybox-bg"></div><div class="fancybox-inner"><div class="fancybox-infobar"><span data-fancybox-index></span> / <span data-fancybox-count></span></div><div class="fancybox-toolbar">{{buttons}}</div><div class="fancybox-navigation">{{arrows}}</div><div class="fancybox-stage"></div><div class="fancybox-caption"><div class="fancybox-caption__body"></div></div></div></div>',
|
|
spinnerTpl: '<div class="fancybox-loading"></div>',
|
|
errorTpl: '<div class="fancybox-error"><p>{{ERROR}}</p></div>',
|
|
btnTpl: {
|
|
download:
|
|
'<a download data-fancybox-download class="fancybox-button fancybox-button--download" title="{{DOWNLOAD}}" href="javascript:;"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.62 17.09V19H5.38v-1.91zm-2.97-6.96L17 11.45l-5 4.87-5-4.87 1.36-1.32 2.68 2.64V5h1.92v7.77z"/></svg></a>',
|
|
zoom: '<button data-fancybox-zoom class="fancybox-button fancybox-button--zoom" title="{{ZOOM}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.7 17.3l-3-3a5.9 5.9 0 0 0-.6-7.6 5.9 5.9 0 0 0-8.4 0 5.9 5.9 0 0 0 0 8.4 5.9 5.9 0 0 0 7.7.7l3 3a1 1 0 0 0 1.3 0c.4-.5.4-1 0-1.5zM8.1 13.8a4 4 0 0 1 0-5.7 4 4 0 0 1 5.7 0 4 4 0 0 1 0 5.7 4 4 0 0 1-5.7 0z"/></svg></button>',
|
|
close:
|
|
'<button data-fancybox-close class="fancybox-button fancybox-button--close" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 10.6L6.6 5.2 5.2 6.6l5.4 5.4-5.4 5.4 1.4 1.4 5.4-5.4 5.4 5.4 1.4-1.4-5.4-5.4 5.4-5.4-1.4-1.4-5.4 5.4z"/></svg></button>',
|
|
arrowLeft:
|
|
'<button data-fancybox-prev class="fancybox-button fancybox-button--arrow_left" title="{{PREV}}"><div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11.28 15.7l-1.34 1.37L5 12l4.94-5.07 1.34 1.38-2.68 2.72H19v1.94H8.6z"/></svg></div></button>',
|
|
arrowRight:
|
|
'<button data-fancybox-next class="fancybox-button fancybox-button--arrow_right" title="{{NEXT}}"><div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.4 12.97l-2.68 2.72 1.34 1.38L19 12l-4.94-5.07-1.34 1.38 2.68 2.72H5v1.94z"/></svg></div></button>',
|
|
smallBtn:
|
|
'<button type="button" data-fancybox-close class="fancybox-button fancybox-close-small" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" version="1" viewBox="0 0 24 24"><path d="M13 12l5-5-1-1-5 5-5-5-1 1 5 5-5 5 1 1 5-5 5 5 1-1z"/></svg></button>',
|
|
},
|
|
parentEl: "body",
|
|
hideScrollbar: !0,
|
|
autoFocus: !0,
|
|
backFocus: !0,
|
|
trapFocus: !0,
|
|
fullScreen: { autoStart: !1 },
|
|
touch: { vertical: !0, momentum: !0 },
|
|
hash: null,
|
|
media: {},
|
|
slideShow: { autoStart: !1, speed: 3e3 },
|
|
thumbs: {
|
|
autoStart: !1,
|
|
hideOnClose: !0,
|
|
parentEl: ".fancybox-container",
|
|
axis: "y",
|
|
},
|
|
wheel: "auto",
|
|
onInit: n.noop,
|
|
beforeLoad: n.noop,
|
|
afterLoad: n.noop,
|
|
beforeShow: n.noop,
|
|
afterShow: n.noop,
|
|
beforeClose: n.noop,
|
|
afterClose: n.noop,
|
|
onActivate: n.noop,
|
|
onDeactivate: n.noop,
|
|
clickContent: function (t, e) {
|
|
return "image" === t.type && "zoom";
|
|
},
|
|
clickSlide: "close",
|
|
clickOutside: "close",
|
|
dblclickContent: !1,
|
|
dblclickSlide: !1,
|
|
dblclickOutside: !1,
|
|
mobile: {
|
|
preventCaptionOverlap: !1,
|
|
idleTime: !1,
|
|
clickContent: function (t, e) {
|
|
return "image" === t.type && "toggleControls";
|
|
},
|
|
clickSlide: function (t, e) {
|
|
return "image" === t.type ? "toggleControls" : "close";
|
|
},
|
|
dblclickContent: function (t, e) {
|
|
return "image" === t.type && "zoom";
|
|
},
|
|
dblclickSlide: function (t, e) {
|
|
return "image" === t.type && "zoom";
|
|
},
|
|
},
|
|
lang: "en",
|
|
i18n: {
|
|
en: {
|
|
CLOSE: "Close",
|
|
NEXT: "Next",
|
|
PREV: "Previous",
|
|
ERROR:
|
|
"The requested content cannot be loaded. <br/> Please try again later.",
|
|
PLAY_START: "Start slideshow",
|
|
PLAY_STOP: "Pause slideshow",
|
|
FULL_SCREEN: "Full screen",
|
|
THUMBS: "Thumbnails",
|
|
DOWNLOAD: "Download",
|
|
SHARE: "Share",
|
|
ZOOM: "Zoom",
|
|
},
|
|
de: {
|
|
CLOSE: "Schließen",
|
|
NEXT: "Weiter",
|
|
PREV: "Zurück",
|
|
ERROR:
|
|
"Die angeforderten Daten konnten nicht geladen werden. <br/> Bitte versuchen Sie es später nochmal.",
|
|
PLAY_START: "Diaschau starten",
|
|
PLAY_STOP: "Diaschau beenden",
|
|
FULL_SCREEN: "Vollbild",
|
|
THUMBS: "Vorschaubilder",
|
|
DOWNLOAD: "Herunterladen",
|
|
SHARE: "Teilen",
|
|
ZOOM: "Vergrößern",
|
|
},
|
|
},
|
|
},
|
|
s = n(t),
|
|
r = n(e),
|
|
c = 0,
|
|
l = function (t) {
|
|
return t && t.hasOwnProperty && t instanceof n;
|
|
},
|
|
d = (function () {
|
|
return (
|
|
t.requestAnimationFrame ||
|
|
t.webkitRequestAnimationFrame ||
|
|
t.mozRequestAnimationFrame ||
|
|
t.oRequestAnimationFrame ||
|
|
function (e) {
|
|
return t.setTimeout(e, 1e3 / 60);
|
|
}
|
|
);
|
|
})(),
|
|
u = (function () {
|
|
return (
|
|
t.cancelAnimationFrame ||
|
|
t.webkitCancelAnimationFrame ||
|
|
t.mozCancelAnimationFrame ||
|
|
t.oCancelAnimationFrame ||
|
|
function (e) {
|
|
t.clearTimeout(e);
|
|
}
|
|
);
|
|
})(),
|
|
f = (function () {
|
|
var t,
|
|
n = e.createElement("fakeelement"),
|
|
o = {
|
|
transition: "transitionend",
|
|
OTransition: "oTransitionEnd",
|
|
MozTransition: "transitionend",
|
|
WebkitTransition: "webkitTransitionEnd",
|
|
};
|
|
for (t in o) if (void 0 !== n.style[t]) return o[t];
|
|
return "transitionend";
|
|
})(),
|
|
p = function (t) {
|
|
return t && t.length && t[0].offsetHeight;
|
|
},
|
|
h = function (t, e) {
|
|
var o = n.extend(!0, {}, t, e);
|
|
return (
|
|
n.each(e, function (t, e) {
|
|
n.isArray(e) && (o[t] = e);
|
|
}),
|
|
o
|
|
);
|
|
},
|
|
g = function (t) {
|
|
var o, i;
|
|
return (
|
|
!(!t || t.ownerDocument !== e) &&
|
|
(n(".fancybox-container").css("pointer-events", "none"),
|
|
(o = {
|
|
x: t.getBoundingClientRect().left + t.offsetWidth / 2,
|
|
y: t.getBoundingClientRect().top + t.offsetHeight / 2,
|
|
}),
|
|
(i = e.elementFromPoint(o.x, o.y) === t),
|
|
n(".fancybox-container").css("pointer-events", ""),
|
|
i)
|
|
);
|
|
},
|
|
b = function (t, e, o) {
|
|
var i = this;
|
|
(i.opts = h({ index: o }, n.fancybox.defaults)),
|
|
n.isPlainObject(e) && (i.opts = h(i.opts, e)),
|
|
n.fancybox.isMobile && (i.opts = h(i.opts, i.opts.mobile)),
|
|
(i.id = i.opts.id || ++c),
|
|
(i.currIndex = parseInt(i.opts.index, 10) || 0),
|
|
(i.prevIndex = null),
|
|
(i.prevPos = null),
|
|
(i.currPos = 0),
|
|
(i.firstRun = !0),
|
|
(i.group = []),
|
|
(i.slides = {}),
|
|
i.addContent(t),
|
|
i.group.length && i.init();
|
|
};
|
|
n.extend(b.prototype, {
|
|
init: function () {
|
|
var o,
|
|
i,
|
|
a = this,
|
|
s = a.group[a.currIndex],
|
|
r = s.opts;
|
|
r.closeExisting && n.fancybox.close(!0),
|
|
n("body").addClass("fancybox-active"),
|
|
!n.fancybox.getInstance() &&
|
|
!1 !== r.hideScrollbar &&
|
|
!n.fancybox.isMobile &&
|
|
e.body.scrollHeight > t.innerHeight &&
|
|
(n("head").append(
|
|
'<style id="fancybox-style-noscroll" type="text/css">.compensate-for-scrollbar{margin-right:' +
|
|
(t.innerWidth - e.documentElement.clientWidth) +
|
|
"px;}</style>"
|
|
),
|
|
n("body").addClass("compensate-for-scrollbar")),
|
|
(i = ""),
|
|
n.each(r.buttons, function (t, e) {
|
|
i += r.btnTpl[e] || "";
|
|
}),
|
|
(o = n(
|
|
a.translate(
|
|
a,
|
|
r.baseTpl
|
|
.replace("{{buttons}}", i)
|
|
.replace("{{arrows}}", r.btnTpl.arrowLeft + r.btnTpl.arrowRight)
|
|
)
|
|
)
|
|
.attr("id", "fancybox-container-" + a.id)
|
|
.addClass(r.baseClass)
|
|
.data("FancyBox", a)
|
|
.appendTo(r.parentEl)),
|
|
(a.$refs = { container: o }),
|
|
[
|
|
"bg",
|
|
"inner",
|
|
"infobar",
|
|
"toolbar",
|
|
"stage",
|
|
"caption",
|
|
"navigation",
|
|
].forEach(function (t) {
|
|
a.$refs[t] = o.find(".fancybox-" + t);
|
|
}),
|
|
a.trigger("onInit"),
|
|
a.activate(),
|
|
a.jumpTo(a.currIndex);
|
|
},
|
|
translate: function (t, e) {
|
|
var n = t.opts.i18n[t.opts.lang] || t.opts.i18n.en;
|
|
return e.replace(/\{\{(\w+)\}\}/g, function (t, e) {
|
|
return void 0 === n[e] ? t : n[e];
|
|
});
|
|
},
|
|
addContent: function (t) {
|
|
var e,
|
|
o = this,
|
|
i = n.makeArray(t);
|
|
n.each(i, function (t, e) {
|
|
var i,
|
|
a,
|
|
s,
|
|
r,
|
|
c,
|
|
l = {},
|
|
d = {};
|
|
n.isPlainObject(e)
|
|
? ((l = e), (d = e.opts || e))
|
|
: "object" === n.type(e) && n(e).length
|
|
? ((i = n(e)),
|
|
(d = i.data() || {}),
|
|
(d = n.extend(!0, {}, d, d.options)),
|
|
(d.$orig = i),
|
|
(l.src = o.opts.src || d.src || i.attr("href")),
|
|
l.type || l.src || ((l.type = "inline"), (l.src = e)))
|
|
: (l = { type: "html", src: e + "" }),
|
|
(l.opts = n.extend(!0, {}, o.opts, d)),
|
|
n.isArray(d.buttons) && (l.opts.buttons = d.buttons),
|
|
n.fancybox.isMobile &&
|
|
l.opts.mobile &&
|
|
(l.opts = h(l.opts, l.opts.mobile)),
|
|
(a = l.type || l.opts.type),
|
|
(r = l.src || ""),
|
|
!a &&
|
|
r &&
|
|
((s = r.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i))
|
|
? ((a = "video"),
|
|
l.opts.video.format ||
|
|
(l.opts.video.format =
|
|
"video/" + ("ogv" === s[1] ? "ogg" : s[1])))
|
|
: r.match(
|
|
/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i
|
|
)
|
|
? (a = "image")
|
|
: r.match(/\.(pdf)((\?|#).*)?$/i)
|
|
? ((a = "iframe"),
|
|
(l = n.extend(!0, l, {
|
|
contentType: "pdf",
|
|
opts: { iframe: { preload: !1 } },
|
|
})))
|
|
: "#" === r.charAt(0) && (a = "inline")),
|
|
a ? (l.type = a) : o.trigger("objectNeedsType", l),
|
|
l.contentType ||
|
|
(l.contentType =
|
|
n.inArray(l.type, ["html", "inline", "ajax"]) > -1
|
|
? "html"
|
|
: l.type),
|
|
(l.index = o.group.length),
|
|
"auto" == l.opts.smallBtn &&
|
|
(l.opts.smallBtn =
|
|
n.inArray(l.type, ["html", "inline", "ajax"]) > -1),
|
|
"auto" === l.opts.toolbar && (l.opts.toolbar = !l.opts.smallBtn),
|
|
(l.$thumb = l.opts.$thumb || null),
|
|
l.opts.$trigger &&
|
|
l.index === o.opts.index &&
|
|
((l.$thumb = l.opts.$trigger.find("img:first")),
|
|
l.$thumb.length && (l.opts.$orig = l.opts.$trigger)),
|
|
(l.$thumb && l.$thumb.length) ||
|
|
!l.opts.$orig ||
|
|
(l.$thumb = l.opts.$orig.find("img:first")),
|
|
l.$thumb && !l.$thumb.length && (l.$thumb = null),
|
|
(l.thumb = l.opts.thumb || (l.$thumb ? l.$thumb[0].src : null)),
|
|
"function" === n.type(l.opts.caption) &&
|
|
(l.opts.caption = l.opts.caption.apply(e, [o, l])),
|
|
"function" === n.type(o.opts.caption) &&
|
|
(l.opts.caption = o.opts.caption.apply(e, [o, l])),
|
|
l.opts.caption instanceof n ||
|
|
(l.opts.caption =
|
|
void 0 === l.opts.caption ? "" : l.opts.caption + ""),
|
|
"ajax" === l.type &&
|
|
((c = r.split(/\s+/, 2)),
|
|
c.length > 1 &&
|
|
((l.src = c.shift()), (l.opts.filter = c.shift()))),
|
|
l.opts.modal &&
|
|
(l.opts = n.extend(!0, l.opts, {
|
|
trapFocus: !0,
|
|
infobar: 0,
|
|
toolbar: 0,
|
|
smallBtn: 0,
|
|
keyboard: 0,
|
|
slideShow: 0,
|
|
fullScreen: 0,
|
|
thumbs: 0,
|
|
touch: 0,
|
|
clickContent: !1,
|
|
clickSlide: !1,
|
|
clickOutside: !1,
|
|
dblclickContent: !1,
|
|
dblclickSlide: !1,
|
|
dblclickOutside: !1,
|
|
})),
|
|
o.group.push(l);
|
|
}),
|
|
Object.keys(o.slides).length &&
|
|
(o.updateControls(),
|
|
(e = o.Thumbs) && e.isActive && (e.create(), e.focus()));
|
|
},
|
|
addEvents: function () {
|
|
var e = this;
|
|
e.removeEvents(),
|
|
e.$refs.container
|
|
.on("click.fb-close", "[data-fancybox-close]", function (t) {
|
|
t.stopPropagation(), t.preventDefault(), e.close(t);
|
|
})
|
|
.on(
|
|
"touchstart.fb-prev click.fb-prev",
|
|
"[data-fancybox-prev]",
|
|
function (t) {
|
|
t.stopPropagation(), t.preventDefault(), e.previous();
|
|
}
|
|
)
|
|
.on(
|
|
"touchstart.fb-next click.fb-next",
|
|
"[data-fancybox-next]",
|
|
function (t) {
|
|
t.stopPropagation(), t.preventDefault(), e.next();
|
|
}
|
|
)
|
|
.on("click.fb", "[data-fancybox-zoom]", function (t) {
|
|
e[e.isScaledDown() ? "scaleToActual" : "scaleToFit"]();
|
|
}),
|
|
s.on("orientationchange.fb resize.fb", function (t) {
|
|
t && t.originalEvent && "resize" === t.originalEvent.type
|
|
? (e.requestId && u(e.requestId),
|
|
(e.requestId = d(function () {
|
|
e.update(t);
|
|
})))
|
|
: (e.current &&
|
|
"iframe" === e.current.type &&
|
|
e.$refs.stage.hide(),
|
|
setTimeout(
|
|
function () {
|
|
e.$refs.stage.show(), e.update(t);
|
|
},
|
|
n.fancybox.isMobile ? 600 : 250
|
|
));
|
|
}),
|
|
r.on("keydown.fb", function (t) {
|
|
var o = n.fancybox ? n.fancybox.getInstance() : null,
|
|
i = o.current,
|
|
a = t.keyCode || t.which;
|
|
if (9 == a) return void (i.opts.trapFocus && e.focus(t));
|
|
if (
|
|
!(
|
|
!i.opts.keyboard ||
|
|
t.ctrlKey ||
|
|
t.altKey ||
|
|
t.shiftKey ||
|
|
n(t.target).is("input,textarea,video,audio,select")
|
|
)
|
|
)
|
|
return 8 === a || 27 === a
|
|
? (t.preventDefault(), void e.close(t))
|
|
: 37 === a || 38 === a
|
|
? (t.preventDefault(), void e.previous())
|
|
: 39 === a || 40 === a
|
|
? (t.preventDefault(), void e.next())
|
|
: void e.trigger("afterKeydown", t, a);
|
|
}),
|
|
e.group[e.currIndex].opts.idleTime &&
|
|
((e.idleSecondsCounter = 0),
|
|
r.on(
|
|
"mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle",
|
|
function (t) {
|
|
(e.idleSecondsCounter = 0),
|
|
e.isIdle && e.showControls(),
|
|
(e.isIdle = !1);
|
|
}
|
|
),
|
|
(e.idleInterval = t.setInterval(function () {
|
|
++e.idleSecondsCounter >= e.group[e.currIndex].opts.idleTime &&
|
|
!e.isDragging &&
|
|
((e.isIdle = !0), (e.idleSecondsCounter = 0), e.hideControls());
|
|
}, 1e3)));
|
|
},
|
|
removeEvents: function () {
|
|
var e = this;
|
|
s.off("orientationchange.fb resize.fb"),
|
|
r.off("keydown.fb .fb-idle"),
|
|
this.$refs.container.off(".fb-close .fb-prev .fb-next"),
|
|
e.idleInterval &&
|
|
(t.clearInterval(e.idleInterval), (e.idleInterval = null));
|
|
},
|
|
previous: function (t) {
|
|
return this.jumpTo(this.currPos - 1, t);
|
|
},
|
|
next: function (t) {
|
|
return this.jumpTo(this.currPos + 1, t);
|
|
},
|
|
jumpTo: function (t, e) {
|
|
var o,
|
|
i,
|
|
a,
|
|
s,
|
|
r,
|
|
c,
|
|
l,
|
|
d,
|
|
u,
|
|
f = this,
|
|
h = f.group.length;
|
|
if (!(f.isDragging || f.isClosing || (f.isAnimating && f.firstRun))) {
|
|
if (
|
|
((t = parseInt(t, 10)),
|
|
!(a = f.current ? f.current.opts.loop : f.opts.loop) &&
|
|
(t < 0 || t >= h))
|
|
)
|
|
return !1;
|
|
if (
|
|
((o = f.firstRun = !Object.keys(f.slides).length),
|
|
(r = f.current),
|
|
(f.prevIndex = f.currIndex),
|
|
(f.prevPos = f.currPos),
|
|
(s = f.createSlide(t)),
|
|
h > 1 &&
|
|
((a || s.index < h - 1) && f.createSlide(t + 1),
|
|
(a || s.index > 0) && f.createSlide(t - 1)),
|
|
(f.current = s),
|
|
(f.currIndex = s.index),
|
|
(f.currPos = s.pos),
|
|
f.trigger("beforeShow", o),
|
|
f.updateControls(),
|
|
(s.forcedDuration = void 0),
|
|
n.isNumeric(e)
|
|
? (s.forcedDuration = e)
|
|
: (e = s.opts[o ? "animationDuration" : "transitionDuration"]),
|
|
(e = parseInt(e, 10)),
|
|
(i = f.isMoved(s)),
|
|
s.$slide.addClass("fancybox-slide--current"),
|
|
o)
|
|
)
|
|
return (
|
|
s.opts.animationEffect &&
|
|
e &&
|
|
f.$refs.container.css("transition-duration", e + "ms"),
|
|
f.$refs.container.addClass("fancybox-is-open").trigger("focus"),
|
|
f.loadSlide(s),
|
|
void f.preload("image")
|
|
);
|
|
(c = n.fancybox.getTranslate(r.$slide)),
|
|
(l = n.fancybox.getTranslate(f.$refs.stage)),
|
|
n.each(f.slides, function (t, e) {
|
|
n.fancybox.stop(e.$slide, !0);
|
|
}),
|
|
r.pos !== s.pos && (r.isComplete = !1),
|
|
r.$slide.removeClass(
|
|
"fancybox-slide--complete fancybox-slide--current"
|
|
),
|
|
i
|
|
? ((u = c.left - (r.pos * c.width + r.pos * r.opts.gutter)),
|
|
n.each(f.slides, function (t, o) {
|
|
o.$slide
|
|
.removeClass("fancybox-animated")
|
|
.removeClass(function (t, e) {
|
|
return (e.match(/(^|\s)fancybox-fx-\S+/g) || []).join(
|
|
" "
|
|
);
|
|
});
|
|
var i = o.pos * c.width + o.pos * o.opts.gutter;
|
|
n.fancybox.setTranslate(o.$slide, {
|
|
top: 0,
|
|
left: i - l.left + u,
|
|
}),
|
|
o.pos !== s.pos &&
|
|
o.$slide.addClass(
|
|
"fancybox-slide--" +
|
|
(o.pos > s.pos ? "next" : "previous")
|
|
),
|
|
p(o.$slide),
|
|
n.fancybox.animate(
|
|
o.$slide,
|
|
{
|
|
top: 0,
|
|
left:
|
|
(o.pos - s.pos) * c.width +
|
|
(o.pos - s.pos) * o.opts.gutter,
|
|
},
|
|
e,
|
|
function () {
|
|
o.$slide
|
|
.css({ transform: "", opacity: "" })
|
|
.removeClass(
|
|
"fancybox-slide--next fancybox-slide--previous"
|
|
),
|
|
o.pos === f.currPos && f.complete();
|
|
}
|
|
);
|
|
}))
|
|
: e &&
|
|
s.opts.transitionEffect &&
|
|
((d =
|
|
"fancybox-animated fancybox-fx-" + s.opts.transitionEffect),
|
|
r.$slide.addClass(
|
|
"fancybox-slide--" + (r.pos > s.pos ? "next" : "previous")
|
|
),
|
|
n.fancybox.animate(
|
|
r.$slide,
|
|
d,
|
|
e,
|
|
function () {
|
|
r.$slide
|
|
.removeClass(d)
|
|
.removeClass(
|
|
"fancybox-slide--next fancybox-slide--previous"
|
|
);
|
|
},
|
|
!1
|
|
)),
|
|
s.isLoaded ? f.revealContent(s) : f.loadSlide(s),
|
|
f.preload("image");
|
|
}
|
|
},
|
|
createSlide: function (t) {
|
|
var e,
|
|
o,
|
|
i = this;
|
|
return (
|
|
(o = t % i.group.length),
|
|
(o = o < 0 ? i.group.length + o : o),
|
|
!i.slides[t] &&
|
|
i.group[o] &&
|
|
((e = n('<div class="fancybox-slide"></div>').appendTo(
|
|
i.$refs.stage
|
|
)),
|
|
(i.slides[t] = n.extend(!0, {}, i.group[o], {
|
|
pos: t,
|
|
$slide: e,
|
|
isLoaded: !1,
|
|
})),
|
|
i.updateSlide(i.slides[t])),
|
|
i.slides[t]
|
|
);
|
|
},
|
|
scaleToActual: function (t, e, o) {
|
|
var i,
|
|
a,
|
|
s,
|
|
r,
|
|
c,
|
|
l = this,
|
|
d = l.current,
|
|
u = d.$content,
|
|
f = n.fancybox.getTranslate(d.$slide).width,
|
|
p = n.fancybox.getTranslate(d.$slide).height,
|
|
h = d.width,
|
|
g = d.height;
|
|
l.isAnimating ||
|
|
l.isMoved() ||
|
|
!u ||
|
|
"image" != d.type ||
|
|
!d.isLoaded ||
|
|
d.hasError ||
|
|
((l.isAnimating = !0),
|
|
n.fancybox.stop(u),
|
|
(t = void 0 === t ? 0.5 * f : t),
|
|
(e = void 0 === e ? 0.5 * p : e),
|
|
(i = n.fancybox.getTranslate(u)),
|
|
(i.top -= n.fancybox.getTranslate(d.$slide).top),
|
|
(i.left -= n.fancybox.getTranslate(d.$slide).left),
|
|
(r = h / i.width),
|
|
(c = g / i.height),
|
|
(a = 0.5 * f - 0.5 * h),
|
|
(s = 0.5 * p - 0.5 * g),
|
|
h > f &&
|
|
((a = i.left * r - (t * r - t)),
|
|
a > 0 && (a = 0),
|
|
a < f - h && (a = f - h)),
|
|
g > p &&
|
|
((s = i.top * c - (e * c - e)),
|
|
s > 0 && (s = 0),
|
|
s < p - g && (s = p - g)),
|
|
l.updateCursor(h, g),
|
|
n.fancybox.animate(
|
|
u,
|
|
{ top: s, left: a, scaleX: r, scaleY: c },
|
|
o || 366,
|
|
function () {
|
|
l.isAnimating = !1;
|
|
}
|
|
),
|
|
l.SlideShow && l.SlideShow.isActive && l.SlideShow.stop());
|
|
},
|
|
scaleToFit: function (t) {
|
|
var e,
|
|
o = this,
|
|
i = o.current,
|
|
a = i.$content;
|
|
o.isAnimating ||
|
|
o.isMoved() ||
|
|
!a ||
|
|
"image" != i.type ||
|
|
!i.isLoaded ||
|
|
i.hasError ||
|
|
((o.isAnimating = !0),
|
|
n.fancybox.stop(a),
|
|
(e = o.getFitPos(i)),
|
|
o.updateCursor(e.width, e.height),
|
|
n.fancybox.animate(
|
|
a,
|
|
{
|
|
top: e.top,
|
|
left: e.left,
|
|
scaleX: e.width / a.width(),
|
|
scaleY: e.height / a.height(),
|
|
},
|
|
t || 366,
|
|
function () {
|
|
o.isAnimating = !1;
|
|
}
|
|
));
|
|
},
|
|
getFitPos: function (t) {
|
|
var e,
|
|
o,
|
|
i,
|
|
a,
|
|
s = this,
|
|
r = t.$content,
|
|
c = t.$slide,
|
|
l = t.width || t.opts.width,
|
|
d = t.height || t.opts.height,
|
|
u = {};
|
|
return (
|
|
!!(t.isLoaded && r && r.length) &&
|
|
((e = n.fancybox.getTranslate(s.$refs.stage).width),
|
|
(o = n.fancybox.getTranslate(s.$refs.stage).height),
|
|
(e -=
|
|
parseFloat(c.css("paddingLeft")) +
|
|
parseFloat(c.css("paddingRight")) +
|
|
parseFloat(r.css("marginLeft")) +
|
|
parseFloat(r.css("marginRight"))),
|
|
(o -=
|
|
parseFloat(c.css("paddingTop")) +
|
|
parseFloat(c.css("paddingBottom")) +
|
|
parseFloat(r.css("marginTop")) +
|
|
parseFloat(r.css("marginBottom"))),
|
|
(l && d) || ((l = e), (d = o)),
|
|
(i = Math.min(1, e / l, o / d)),
|
|
(l *= i),
|
|
(d *= i),
|
|
l > e - 0.5 && (l = e),
|
|
d > o - 0.5 && (d = o),
|
|
"image" === t.type
|
|
? ((u.top =
|
|
Math.floor(0.5 * (o - d)) + parseFloat(c.css("paddingTop"))),
|
|
(u.left =
|
|
Math.floor(0.5 * (e - l)) + parseFloat(c.css("paddingLeft"))))
|
|
: "video" === t.contentType &&
|
|
((a =
|
|
t.opts.width && t.opts.height ? l / d : t.opts.ratio || 16 / 9),
|
|
d > l / a ? (d = l / a) : l > d * a && (l = d * a)),
|
|
(u.width = l),
|
|
(u.height = d),
|
|
u)
|
|
);
|
|
},
|
|
update: function (t) {
|
|
var e = this;
|
|
n.each(e.slides, function (n, o) {
|
|
e.updateSlide(o, t);
|
|
});
|
|
},
|
|
updateSlide: function (t, e) {
|
|
var o = this,
|
|
i = t && t.$content,
|
|
a = t.width || t.opts.width,
|
|
s = t.height || t.opts.height,
|
|
r = t.$slide;
|
|
o.adjustCaption(t),
|
|
i &&
|
|
(a || s || "video" === t.contentType) &&
|
|
!t.hasError &&
|
|
(n.fancybox.stop(i),
|
|
n.fancybox.setTranslate(i, o.getFitPos(t)),
|
|
t.pos === o.currPos && ((o.isAnimating = !1), o.updateCursor())),
|
|
o.adjustLayout(t),
|
|
r.length &&
|
|
(r.trigger("refresh"),
|
|
t.pos === o.currPos &&
|
|
o.$refs.toolbar
|
|
.add(o.$refs.navigation.find(".fancybox-button--arrow_right"))
|
|
.toggleClass(
|
|
"compensate-for-scrollbar",
|
|
r.get(0).scrollHeight > r.get(0).clientHeight
|
|
)),
|
|
o.trigger("onUpdate", t, e);
|
|
},
|
|
centerSlide: function (t) {
|
|
var e = this,
|
|
o = e.current,
|
|
i = o.$slide;
|
|
!e.isClosing &&
|
|
o &&
|
|
(i.siblings().css({ transform: "", opacity: "" }),
|
|
i
|
|
.parent()
|
|
.children()
|
|
.removeClass("fancybox-slide--previous fancybox-slide--next"),
|
|
n.fancybox.animate(
|
|
i,
|
|
{ top: 0, left: 0, opacity: 1 },
|
|
void 0 === t ? 0 : t,
|
|
function () {
|
|
i.css({ transform: "", opacity: "" }),
|
|
o.isComplete || e.complete();
|
|
},
|
|
!1
|
|
));
|
|
},
|
|
isMoved: function (t) {
|
|
var e,
|
|
o,
|
|
i = t || this.current;
|
|
return (
|
|
!!i &&
|
|
((o = n.fancybox.getTranslate(this.$refs.stage)),
|
|
(e = n.fancybox.getTranslate(i.$slide)),
|
|
!i.$slide.hasClass("fancybox-animated") &&
|
|
(Math.abs(e.top - o.top) > 0.5 || Math.abs(e.left - o.left) > 0.5))
|
|
);
|
|
},
|
|
updateCursor: function (t, e) {
|
|
var o,
|
|
i,
|
|
a = this,
|
|
s = a.current,
|
|
r = a.$refs.container;
|
|
s &&
|
|
!a.isClosing &&
|
|
a.Guestures &&
|
|
(r.removeClass(
|
|
"fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan"
|
|
),
|
|
(o = a.canPan(t, e)),
|
|
(i = !!o || a.isZoomable()),
|
|
r.toggleClass("fancybox-is-zoomable", i),
|
|
n("[data-fancybox-zoom]").prop("disabled", !i),
|
|
o
|
|
? r.addClass("fancybox-can-pan")
|
|
: i &&
|
|
("zoom" === s.opts.clickContent ||
|
|
(n.isFunction(s.opts.clickContent) &&
|
|
"zoom" == s.opts.clickContent(s)))
|
|
? r.addClass("fancybox-can-zoomIn")
|
|
: s.opts.touch &&
|
|
(s.opts.touch.vertical || a.group.length > 1) &&
|
|
"video" !== s.contentType &&
|
|
r.addClass("fancybox-can-swipe"));
|
|
},
|
|
isZoomable: function () {
|
|
var t,
|
|
e = this,
|
|
n = e.current;
|
|
if (n && !e.isClosing && "image" === n.type && !n.hasError) {
|
|
if (!n.isLoaded) return !0;
|
|
if (
|
|
(t = e.getFitPos(n)) &&
|
|
(n.width > t.width || n.height > t.height)
|
|
)
|
|
return !0;
|
|
}
|
|
return !1;
|
|
},
|
|
isScaledDown: function (t, e) {
|
|
var o = this,
|
|
i = !1,
|
|
a = o.current,
|
|
s = a.$content;
|
|
return (
|
|
void 0 !== t && void 0 !== e
|
|
? (i = t < a.width && e < a.height)
|
|
: s &&
|
|
((i = n.fancybox.getTranslate(s)),
|
|
(i = i.width < a.width && i.height < a.height)),
|
|
i
|
|
);
|
|
},
|
|
canPan: function (t, e) {
|
|
var o = this,
|
|
i = o.current,
|
|
a = null,
|
|
s = !1;
|
|
return (
|
|
"image" === i.type &&
|
|
(i.isComplete || (t && e)) &&
|
|
!i.hasError &&
|
|
((s = o.getFitPos(i)),
|
|
void 0 !== t && void 0 !== e
|
|
? (a = { width: t, height: e })
|
|
: i.isComplete && (a = n.fancybox.getTranslate(i.$content)),
|
|
a &&
|
|
s &&
|
|
(s =
|
|
Math.abs(a.width - s.width) > 1.5 ||
|
|
Math.abs(a.height - s.height) > 1.5)),
|
|
s
|
|
);
|
|
},
|
|
loadSlide: function (t) {
|
|
var e,
|
|
o,
|
|
i,
|
|
a = this;
|
|
if (!t.isLoading && !t.isLoaded) {
|
|
if (((t.isLoading = !0), !1 === a.trigger("beforeLoad", t)))
|
|
return (t.isLoading = !1), !1;
|
|
switch (
|
|
((e = t.type),
|
|
(o = t.$slide),
|
|
o.off("refresh").trigger("onReset").addClass(t.opts.slideClass),
|
|
e)
|
|
) {
|
|
case "image":
|
|
a.setImage(t);
|
|
break;
|
|
case "iframe":
|
|
a.setIframe(t);
|
|
break;
|
|
case "html":
|
|
a.setContent(t, t.src || t.content);
|
|
break;
|
|
case "video":
|
|
a.setContent(
|
|
t,
|
|
t.opts.video.tpl
|
|
.replace(/\{\{src\}\}/gi, t.src)
|
|
.replace(
|
|
"{{format}}",
|
|
t.opts.videoFormat || t.opts.video.format || ""
|
|
)
|
|
.replace("{{poster}}", t.thumb || "")
|
|
);
|
|
break;
|
|
case "inline":
|
|
n(t.src).length ? a.setContent(t, n(t.src)) : a.setError(t);
|
|
break;
|
|
case "ajax":
|
|
a.showLoading(t),
|
|
(i = n.ajax(
|
|
n.extend({}, t.opts.ajax.settings, {
|
|
url: t.src,
|
|
success: function (e, n) {
|
|
"success" === n && a.setContent(t, e);
|
|
},
|
|
error: function (e, n) {
|
|
e && "abort" !== n && a.setError(t);
|
|
},
|
|
})
|
|
)),
|
|
o.one("onReset", function () {
|
|
i.abort();
|
|
});
|
|
break;
|
|
default:
|
|
a.setError(t);
|
|
}
|
|
return !0;
|
|
}
|
|
},
|
|
setImage: function (t) {
|
|
var o,
|
|
i = this;
|
|
setTimeout(function () {
|
|
var e = t.$image;
|
|
i.isClosing ||
|
|
!t.isLoading ||
|
|
(e && e.length && e[0].complete) ||
|
|
t.hasError ||
|
|
i.showLoading(t);
|
|
}, 50),
|
|
i.checkSrcset(t),
|
|
(t.$content = n('<div class="fancybox-content"></div>')
|
|
.addClass("fancybox-is-hidden")
|
|
.appendTo(t.$slide.addClass("fancybox-slide--image"))),
|
|
!1 !== t.opts.preload &&
|
|
t.opts.width &&
|
|
t.opts.height &&
|
|
t.thumb &&
|
|
((t.width = t.opts.width),
|
|
(t.height = t.opts.height),
|
|
(o = e.createElement("img")),
|
|
(o.onerror = function () {
|
|
n(this).remove(), (t.$ghost = null);
|
|
}),
|
|
(o.onload = function () {
|
|
i.afterLoad(t);
|
|
}),
|
|
(t.$ghost = n(o)
|
|
.addClass("fancybox-image")
|
|
.appendTo(t.$content)
|
|
.attr("src", t.thumb))),
|
|
i.setBigImage(t);
|
|
},
|
|
checkSrcset: function (e) {
|
|
var n,
|
|
o,
|
|
i,
|
|
a,
|
|
s = e.opts.srcset || e.opts.image.srcset;
|
|
if (s) {
|
|
(i = t.devicePixelRatio || 1),
|
|
(a = t.innerWidth * i),
|
|
(o = s.split(",").map(function (t) {
|
|
var e = {};
|
|
return (
|
|
t
|
|
.trim()
|
|
.split(/\s+/)
|
|
.forEach(function (t, n) {
|
|
var o = parseInt(t.substring(0, t.length - 1), 10);
|
|
if (0 === n) return (e.url = t);
|
|
o && ((e.value = o), (e.postfix = t[t.length - 1]));
|
|
}),
|
|
e
|
|
);
|
|
})),
|
|
o.sort(function (t, e) {
|
|
return t.value - e.value;
|
|
});
|
|
for (var r = 0; r < o.length; r++) {
|
|
var c = o[r];
|
|
if (
|
|
("w" === c.postfix && c.value >= a) ||
|
|
("x" === c.postfix && c.value >= i)
|
|
) {
|
|
n = c;
|
|
break;
|
|
}
|
|
}
|
|
!n && o.length && (n = o[o.length - 1]),
|
|
n &&
|
|
((e.src = n.url),
|
|
e.width &&
|
|
e.height &&
|
|
"w" == n.postfix &&
|
|
((e.height = (e.width / e.height) * n.value),
|
|
(e.width = n.value)),
|
|
(e.opts.srcset = s));
|
|
}
|
|
},
|
|
setBigImage: function (t) {
|
|
var o = this,
|
|
i = e.createElement("img"),
|
|
a = n(i);
|
|
(t.$image = a
|
|
.one("error", function () {
|
|
o.setError(t);
|
|
})
|
|
.one("load", function () {
|
|
var e;
|
|
t.$ghost ||
|
|
(o.resolveImageSlideSize(
|
|
t,
|
|
this.naturalWidth,
|
|
this.naturalHeight
|
|
),
|
|
o.afterLoad(t)),
|
|
o.isClosing ||
|
|
(t.opts.srcset &&
|
|
((e = t.opts.sizes),
|
|
(e && "auto" !== e) ||
|
|
(e =
|
|
(t.width / t.height > 1 && s.width() / s.height() > 1
|
|
? "100"
|
|
: Math.round((t.width / t.height) * 100)) + "vw"),
|
|
a.attr("sizes", e).attr("srcset", t.opts.srcset)),
|
|
t.$ghost &&
|
|
setTimeout(function () {
|
|
t.$ghost && !o.isClosing && t.$ghost.hide();
|
|
}, Math.min(300, Math.max(1e3, t.height / 1600))),
|
|
o.hideLoading(t));
|
|
})
|
|
.addClass("fancybox-image")
|
|
.attr("src", t.src)
|
|
.appendTo(t.$content)),
|
|
(i.complete || "complete" == i.readyState) &&
|
|
a.naturalWidth &&
|
|
a.naturalHeight
|
|
? a.trigger("load")
|
|
: i.error && a.trigger("error");
|
|
},
|
|
resolveImageSlideSize: function (t, e, n) {
|
|
var o = parseInt(t.opts.width, 10),
|
|
i = parseInt(t.opts.height, 10);
|
|
(t.width = e),
|
|
(t.height = n),
|
|
o > 0 && ((t.width = o), (t.height = Math.floor((o * n) / e))),
|
|
i > 0 && ((t.width = Math.floor((i * e) / n)), (t.height = i));
|
|
},
|
|
setIframe: function (t) {
|
|
var e,
|
|
o = this,
|
|
i = t.opts.iframe,
|
|
a = t.$slide;
|
|
(t.$content = n(
|
|
'<div class="fancybox-content' +
|
|
(i.preload ? " fancybox-is-hidden" : "") +
|
|
'"></div>'
|
|
)
|
|
.css(i.css)
|
|
.appendTo(a)),
|
|
a.addClass("fancybox-slide--" + t.contentType),
|
|
(t.$iframe = e =
|
|
n(i.tpl.replace(/\{rnd\}/g, new Date().getTime()))
|
|
.attr(i.attr)
|
|
.appendTo(t.$content)),
|
|
i.preload
|
|
? (o.showLoading(t),
|
|
e.on("load.fb error.fb", function (e) {
|
|
(this.isReady = 1), t.$slide.trigger("refresh"), o.afterLoad(t);
|
|
}),
|
|
a.on("refresh.fb", function () {
|
|
var n,
|
|
o,
|
|
s = t.$content,
|
|
r = i.css.width,
|
|
c = i.css.height;
|
|
if (1 === e[0].isReady) {
|
|
try {
|
|
(n = e.contents()), (o = n.find("body"));
|
|
} catch (t) {}
|
|
o &&
|
|
o.length &&
|
|
o.children().length &&
|
|
(a.css("overflow", "visible"),
|
|
s.css({
|
|
width: "100%",
|
|
"max-width": "100%",
|
|
height: "9999px",
|
|
}),
|
|
void 0 === r &&
|
|
(r = Math.ceil(
|
|
Math.max(o[0].clientWidth, o.outerWidth(!0))
|
|
)),
|
|
s.css("width", r || "").css("max-width", ""),
|
|
void 0 === c &&
|
|
(c = Math.ceil(
|
|
Math.max(o[0].clientHeight, o.outerHeight(!0))
|
|
)),
|
|
s.css("height", c || ""),
|
|
a.css("overflow", "auto")),
|
|
s.removeClass("fancybox-is-hidden");
|
|
}
|
|
}))
|
|
: o.afterLoad(t),
|
|
e.attr("src", t.src),
|
|
a.one("onReset", function () {
|
|
try {
|
|
n(this)
|
|
.find("iframe")
|
|
.hide()
|
|
.unbind()
|
|
.attr("src", "//about:blank");
|
|
} catch (t) {}
|
|
n(this).off("refresh.fb").empty(),
|
|
(t.isLoaded = !1),
|
|
(t.isRevealed = !1);
|
|
});
|
|
},
|
|
setContent: function (t, e) {
|
|
var o = this;
|
|
o.isClosing ||
|
|
(o.hideLoading(t),
|
|
t.$content && n.fancybox.stop(t.$content),
|
|
t.$slide.empty(),
|
|
l(e) && e.parent().length
|
|
? ((e.hasClass("fancybox-content") ||
|
|
e.parent().hasClass("fancybox-content")) &&
|
|
e.parents(".fancybox-slide").trigger("onReset"),
|
|
(t.$placeholder = n("<div>").hide().insertAfter(e)),
|
|
e.css("display", "inline-block"))
|
|
: t.hasError ||
|
|
("string" === n.type(e) &&
|
|
(e = n("<div>").append(n.trim(e)).contents()),
|
|
t.opts.filter && (e = n("<div>").html(e).find(t.opts.filter))),
|
|
t.$slide.one("onReset", function () {
|
|
n(this).find("video,audio").trigger("pause"),
|
|
t.$placeholder &&
|
|
(t.$placeholder
|
|
.after(e.removeClass("fancybox-content").hide())
|
|
.remove(),
|
|
(t.$placeholder = null)),
|
|
t.$smallBtn && (t.$smallBtn.remove(), (t.$smallBtn = null)),
|
|
t.hasError ||
|
|
(n(this).empty(), (t.isLoaded = !1), (t.isRevealed = !1));
|
|
}),
|
|
n(e).appendTo(t.$slide),
|
|
n(e).is("video,audio") &&
|
|
(n(e).addClass("fancybox-video"),
|
|
n(e).wrap("<div></div>"),
|
|
(t.contentType = "video"),
|
|
(t.opts.width = t.opts.width || n(e).attr("width")),
|
|
(t.opts.height = t.opts.height || n(e).attr("height"))),
|
|
(t.$content = t.$slide
|
|
.children()
|
|
.filter("div,form,main,video,audio,article,.fancybox-content")
|
|
.first()),
|
|
t.$content.siblings().hide(),
|
|
t.$content.length ||
|
|
(t.$content = t.$slide.wrapInner("<div></div>").children().first()),
|
|
t.$content.addClass("fancybox-content"),
|
|
t.$slide.addClass("fancybox-slide--" + t.contentType),
|
|
o.afterLoad(t));
|
|
},
|
|
setError: function (t) {
|
|
(t.hasError = !0),
|
|
t.$slide
|
|
.trigger("onReset")
|
|
.removeClass("fancybox-slide--" + t.contentType)
|
|
.addClass("fancybox-slide--error"),
|
|
(t.contentType = "html"),
|
|
this.setContent(t, this.translate(t, t.opts.errorTpl)),
|
|
t.pos === this.currPos && (this.isAnimating = !1);
|
|
},
|
|
showLoading: function (t) {
|
|
var e = this;
|
|
(t = t || e.current) &&
|
|
!t.$spinner &&
|
|
(t.$spinner = n(e.translate(e, e.opts.spinnerTpl))
|
|
.appendTo(t.$slide)
|
|
.hide()
|
|
.fadeIn("fast"));
|
|
},
|
|
hideLoading: function (t) {
|
|
var e = this;
|
|
(t = t || e.current) &&
|
|
t.$spinner &&
|
|
(t.$spinner.stop().remove(), delete t.$spinner);
|
|
},
|
|
afterLoad: function (t) {
|
|
var e = this;
|
|
e.isClosing ||
|
|
((t.isLoading = !1),
|
|
(t.isLoaded = !0),
|
|
e.trigger("afterLoad", t),
|
|
e.hideLoading(t),
|
|
!t.opts.smallBtn ||
|
|
(t.$smallBtn && t.$smallBtn.length) ||
|
|
(t.$smallBtn = n(e.translate(t, t.opts.btnTpl.smallBtn)).appendTo(
|
|
t.$content
|
|
)),
|
|
t.opts.protect &&
|
|
t.$content &&
|
|
!t.hasError &&
|
|
(t.$content.on("contextmenu.fb", function (t) {
|
|
return 2 == t.button && t.preventDefault(), !0;
|
|
}),
|
|
"image" === t.type &&
|
|
n('<div class="fancybox-spaceball"></div>').appendTo(t.$content)),
|
|
e.adjustCaption(t),
|
|
e.adjustLayout(t),
|
|
t.pos === e.currPos && e.updateCursor(),
|
|
e.revealContent(t));
|
|
},
|
|
adjustCaption: function (t) {
|
|
var e,
|
|
n = this,
|
|
o = t || n.current,
|
|
i = o.opts.caption,
|
|
a = o.opts.preventCaptionOverlap,
|
|
s = n.$refs.caption,
|
|
r = !1;
|
|
s.toggleClass("fancybox-caption--separate", a),
|
|
a &&
|
|
i &&
|
|
i.length &&
|
|
(o.pos !== n.currPos
|
|
? ((e = s.clone().appendTo(s.parent())),
|
|
e.children().eq(0).empty().html(i),
|
|
(r = e.outerHeight(!0)),
|
|
e.empty().remove())
|
|
: n.$caption && (r = n.$caption.outerHeight(!0)),
|
|
o.$slide.css("padding-bottom", r || ""));
|
|
},
|
|
adjustLayout: function (t) {
|
|
var e,
|
|
n,
|
|
o,
|
|
i,
|
|
a = this,
|
|
s = t || a.current;
|
|
s.isLoaded &&
|
|
!0 !== s.opts.disableLayoutFix &&
|
|
(s.$content.css("margin-bottom", ""),
|
|
s.$content.outerHeight() > s.$slide.height() + 0.5 &&
|
|
((o = s.$slide[0].style["padding-bottom"]),
|
|
(i = s.$slide.css("padding-bottom")),
|
|
parseFloat(i) > 0 &&
|
|
((e = s.$slide[0].scrollHeight),
|
|
s.$slide.css("padding-bottom", 0),
|
|
Math.abs(e - s.$slide[0].scrollHeight) < 1 && (n = i),
|
|
s.$slide.css("padding-bottom", o))),
|
|
s.$content.css("margin-bottom", n));
|
|
},
|
|
revealContent: function (t) {
|
|
var e,
|
|
o,
|
|
i,
|
|
a,
|
|
s = this,
|
|
r = t.$slide,
|
|
c = !1,
|
|
l = !1,
|
|
d = s.isMoved(t),
|
|
u = t.isRevealed;
|
|
return (
|
|
(t.isRevealed = !0),
|
|
(e = t.opts[s.firstRun ? "animationEffect" : "transitionEffect"]),
|
|
(i = t.opts[s.firstRun ? "animationDuration" : "transitionDuration"]),
|
|
(i = parseInt(
|
|
void 0 === t.forcedDuration ? i : t.forcedDuration,
|
|
10
|
|
)),
|
|
(!d && t.pos === s.currPos && i) || (e = !1),
|
|
"zoom" === e &&
|
|
(t.pos === s.currPos &&
|
|
i &&
|
|
"image" === t.type &&
|
|
!t.hasError &&
|
|
(l = s.getThumbPos(t))
|
|
? (c = s.getFitPos(t))
|
|
: (e = "fade")),
|
|
"zoom" === e
|
|
? ((s.isAnimating = !0),
|
|
(c.scaleX = c.width / l.width),
|
|
(c.scaleY = c.height / l.height),
|
|
(a = t.opts.zoomOpacity),
|
|
"auto" == a &&
|
|
(a = Math.abs(t.width / t.height - l.width / l.height) > 0.1),
|
|
a && ((l.opacity = 0.1), (c.opacity = 1)),
|
|
n.fancybox.setTranslate(
|
|
t.$content.removeClass("fancybox-is-hidden"),
|
|
l
|
|
),
|
|
p(t.$content),
|
|
void n.fancybox.animate(t.$content, c, i, function () {
|
|
(s.isAnimating = !1), s.complete();
|
|
}))
|
|
: (s.updateSlide(t),
|
|
e
|
|
? (n.fancybox.stop(r),
|
|
(o =
|
|
"fancybox-slide--" +
|
|
(t.pos >= s.prevPos ? "next" : "previous") +
|
|
" fancybox-animated fancybox-fx-" +
|
|
e),
|
|
r.addClass(o).removeClass("fancybox-slide--current"),
|
|
t.$content.removeClass("fancybox-is-hidden"),
|
|
p(r),
|
|
"image" !== t.type && t.$content.hide().show(0),
|
|
void n.fancybox.animate(
|
|
r,
|
|
"fancybox-slide--current",
|
|
i,
|
|
function () {
|
|
r.removeClass(o).css({ transform: "", opacity: "" }),
|
|
t.pos === s.currPos && s.complete();
|
|
},
|
|
!0
|
|
))
|
|
: (t.$content.removeClass("fancybox-is-hidden"),
|
|
u ||
|
|
!d ||
|
|
"image" !== t.type ||
|
|
t.hasError ||
|
|
t.$content.hide().fadeIn("fast"),
|
|
void (t.pos === s.currPos && s.complete())))
|
|
);
|
|
},
|
|
getThumbPos: function (t) {
|
|
var e,
|
|
o,
|
|
i,
|
|
a,
|
|
s,
|
|
r = !1,
|
|
c = t.$thumb;
|
|
return (
|
|
!(!c || !g(c[0])) &&
|
|
((e = n.fancybox.getTranslate(c)),
|
|
(o = parseFloat(c.css("border-top-width") || 0)),
|
|
(i = parseFloat(c.css("border-right-width") || 0)),
|
|
(a = parseFloat(c.css("border-bottom-width") || 0)),
|
|
(s = parseFloat(c.css("border-left-width") || 0)),
|
|
(r = {
|
|
top: e.top + o,
|
|
left: e.left + s,
|
|
width: e.width - i - s,
|
|
height: e.height - o - a,
|
|
scaleX: 1,
|
|
scaleY: 1,
|
|
}),
|
|
e.width > 0 && e.height > 0 && r)
|
|
);
|
|
},
|
|
complete: function () {
|
|
var t,
|
|
e = this,
|
|
o = e.current,
|
|
i = {};
|
|
!e.isMoved() &&
|
|
o.isLoaded &&
|
|
(o.isComplete ||
|
|
((o.isComplete = !0),
|
|
o.$slide.siblings().trigger("onReset"),
|
|
e.preload("inline"),
|
|
p(o.$slide),
|
|
o.$slide.addClass("fancybox-slide--complete"),
|
|
n.each(e.slides, function (t, o) {
|
|
o.pos >= e.currPos - 1 && o.pos <= e.currPos + 1
|
|
? (i[o.pos] = o)
|
|
: o && (n.fancybox.stop(o.$slide), o.$slide.off().remove());
|
|
}),
|
|
(e.slides = i)),
|
|
(e.isAnimating = !1),
|
|
e.updateCursor(),
|
|
e.trigger("afterShow"),
|
|
o.opts.video.autoStart &&
|
|
o.$slide
|
|
.find("video,audio")
|
|
.filter(":visible:first")
|
|
.trigger("play")
|
|
.one("ended", function () {
|
|
Document.exitFullscreen
|
|
? Document.exitFullscreen()
|
|
: this.webkitExitFullscreen && this.webkitExitFullscreen(),
|
|
e.next();
|
|
}),
|
|
o.opts.autoFocus &&
|
|
"html" === o.contentType &&
|
|
((t = o.$content.find("input[autofocus]:enabled:visible:first")),
|
|
t.length ? t.trigger("focus") : e.focus(null, !0)),
|
|
o.$slide.scrollTop(0).scrollLeft(0));
|
|
},
|
|
preload: function (t) {
|
|
var e,
|
|
n,
|
|
o = this;
|
|
o.group.length < 2 ||
|
|
((n = o.slides[o.currPos + 1]),
|
|
(e = o.slides[o.currPos - 1]),
|
|
e && e.type === t && o.loadSlide(e),
|
|
n && n.type === t && o.loadSlide(n));
|
|
},
|
|
focus: function (t, o) {
|
|
var i,
|
|
a,
|
|
s = this,
|
|
r = [
|
|
"a[href]",
|
|
"area[href]",
|
|
'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',
|
|
"select:not([disabled]):not([aria-hidden])",
|
|
"textarea:not([disabled]):not([aria-hidden])",
|
|
"button:not([disabled]):not([aria-hidden])",
|
|
"iframe",
|
|
"object",
|
|
"embed",
|
|
"video",
|
|
"audio",
|
|
"[contenteditable]",
|
|
'[tabindex]:not([tabindex^="-"])',
|
|
].join(",");
|
|
s.isClosing ||
|
|
((i =
|
|
!t && s.current && s.current.isComplete
|
|
? s.current.$slide.find(
|
|
"*:visible" + (o ? ":not(.fancybox-close-small)" : "")
|
|
)
|
|
: s.$refs.container.find("*:visible")),
|
|
(i = i.filter(r).filter(function () {
|
|
return (
|
|
"hidden" !== n(this).css("visibility") &&
|
|
!n(this).hasClass("disabled")
|
|
);
|
|
})),
|
|
i.length
|
|
? ((a = i.index(e.activeElement)),
|
|
t && t.shiftKey
|
|
? (a < 0 || 0 == a) &&
|
|
(t.preventDefault(), i.eq(i.length - 1).trigger("focus"))
|
|
: (a < 0 || a == i.length - 1) &&
|
|
(t && t.preventDefault(), i.eq(0).trigger("focus")))
|
|
: s.$refs.container.trigger("focus"));
|
|
},
|
|
activate: function () {
|
|
var t = this;
|
|
n(".fancybox-container").each(function () {
|
|
var e = n(this).data("FancyBox");
|
|
e &&
|
|
e.id !== t.id &&
|
|
!e.isClosing &&
|
|
(e.trigger("onDeactivate"), e.removeEvents(), (e.isVisible = !1));
|
|
}),
|
|
(t.isVisible = !0),
|
|
(t.current || t.isIdle) && (t.update(), t.updateControls()),
|
|
t.trigger("onActivate"),
|
|
t.addEvents();
|
|
},
|
|
close: function (t, e) {
|
|
var o,
|
|
i,
|
|
a,
|
|
s,
|
|
r,
|
|
c,
|
|
l,
|
|
u = this,
|
|
f = u.current,
|
|
h = function () {
|
|
u.cleanUp(t);
|
|
};
|
|
return (
|
|
!u.isClosing &&
|
|
((u.isClosing = !0),
|
|
!1 === u.trigger("beforeClose", t)
|
|
? ((u.isClosing = !1),
|
|
d(function () {
|
|
u.update();
|
|
}),
|
|
!1)
|
|
: (u.removeEvents(),
|
|
(a = f.$content),
|
|
(o = f.opts.animationEffect),
|
|
(i = n.isNumeric(e) ? e : o ? f.opts.animationDuration : 0),
|
|
f.$slide.removeClass(
|
|
"fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated"
|
|
),
|
|
!0 !== t ? n.fancybox.stop(f.$slide) : (o = !1),
|
|
f.$slide.siblings().trigger("onReset").remove(),
|
|
i &&
|
|
u.$refs.container
|
|
.removeClass("fancybox-is-open")
|
|
.addClass("fancybox-is-closing")
|
|
.css("transition-duration", i + "ms"),
|
|
u.hideLoading(f),
|
|
u.hideControls(!0),
|
|
u.updateCursor(),
|
|
"zoom" !== o ||
|
|
(a &&
|
|
i &&
|
|
"image" === f.type &&
|
|
!u.isMoved() &&
|
|
!f.hasError &&
|
|
(l = u.getThumbPos(f))) ||
|
|
(o = "fade"),
|
|
"zoom" === o
|
|
? (n.fancybox.stop(a),
|
|
(s = n.fancybox.getTranslate(a)),
|
|
(c = {
|
|
top: s.top,
|
|
left: s.left,
|
|
scaleX: s.width / l.width,
|
|
scaleY: s.height / l.height,
|
|
width: l.width,
|
|
height: l.height,
|
|
}),
|
|
(r = f.opts.zoomOpacity),
|
|
"auto" == r &&
|
|
(r =
|
|
Math.abs(f.width / f.height - l.width / l.height) > 0.1),
|
|
r && (l.opacity = 0),
|
|
n.fancybox.setTranslate(a, c),
|
|
p(a),
|
|
n.fancybox.animate(a, l, i, h),
|
|
!0)
|
|
: (o && i
|
|
? n.fancybox.animate(
|
|
f.$slide
|
|
.addClass("fancybox-slide--previous")
|
|
.removeClass("fancybox-slide--current"),
|
|
"fancybox-animated fancybox-fx-" + o,
|
|
i,
|
|
h
|
|
)
|
|
: !0 === t
|
|
? setTimeout(h, i)
|
|
: h(),
|
|
!0)))
|
|
);
|
|
},
|
|
cleanUp: function (e) {
|
|
var o,
|
|
i,
|
|
a,
|
|
s = this,
|
|
r = s.current.opts.$orig;
|
|
s.current.$slide.trigger("onReset"),
|
|
s.$refs.container.empty().remove(),
|
|
s.trigger("afterClose", e),
|
|
s.current.opts.backFocus &&
|
|
((r && r.length && r.is(":visible")) || (r = s.$trigger),
|
|
r &&
|
|
r.length &&
|
|
((i = t.scrollX),
|
|
(a = t.scrollY),
|
|
r.trigger("focus"),
|
|
n("html, body").scrollTop(a).scrollLeft(i))),
|
|
(s.current = null),
|
|
(o = n.fancybox.getInstance()),
|
|
o
|
|
? o.activate()
|
|
: (n("body").removeClass(
|
|
"fancybox-active compensate-for-scrollbar"
|
|
),
|
|
n("#fancybox-style-noscroll").remove());
|
|
},
|
|
trigger: function (t, e) {
|
|
var o,
|
|
i = Array.prototype.slice.call(arguments, 1),
|
|
a = this,
|
|
s = e && e.opts ? e : a.current;
|
|
if (
|
|
(s ? i.unshift(s) : (s = a),
|
|
i.unshift(a),
|
|
n.isFunction(s.opts[t]) && (o = s.opts[t].apply(s, i)),
|
|
!1 === o)
|
|
)
|
|
return o;
|
|
"afterClose" !== t && a.$refs
|
|
? a.$refs.container.trigger(t + ".fb", i)
|
|
: r.trigger(t + ".fb", i);
|
|
},
|
|
updateControls: function () {
|
|
var t = this,
|
|
o = t.current,
|
|
i = o.index,
|
|
a = t.$refs.container,
|
|
s = t.$refs.caption,
|
|
r = o.opts.caption;
|
|
o.$slide.trigger("refresh"),
|
|
r && r.length
|
|
? ((t.$caption = s), s.children().eq(0).html(r))
|
|
: (t.$caption = null),
|
|
t.hasHiddenControls || t.isIdle || t.showControls(),
|
|
a.find("[data-fancybox-count]").html(t.group.length),
|
|
a.find("[data-fancybox-index]").html(i + 1),
|
|
a
|
|
.find("[data-fancybox-prev]")
|
|
.prop("disabled", !o.opts.loop && i <= 0),
|
|
a
|
|
.find("[data-fancybox-next]")
|
|
.prop("disabled", !o.opts.loop && i >= t.group.length - 1),
|
|
"image" === o.type
|
|
? a
|
|
.find("[data-fancybox-zoom]")
|
|
.show()
|
|
.end()
|
|
.find("[data-fancybox-download]")
|
|
.attr("href", o.opts.image.src || o.src)
|
|
.show()
|
|
: o.opts.toolbar &&
|
|
a.find("[data-fancybox-download],[data-fancybox-zoom]").hide(),
|
|
n(e.activeElement).is(":hidden,[disabled]") &&
|
|
t.$refs.container.trigger("focus");
|
|
},
|
|
hideControls: function (t) {
|
|
var e = this,
|
|
n = ["infobar", "toolbar", "nav"];
|
|
(!t && e.current.opts.preventCaptionOverlap) || n.push("caption"),
|
|
this.$refs.container.removeClass(
|
|
n
|
|
.map(function (t) {
|
|
return "fancybox-show-" + t;
|
|
})
|
|
.join(" ")
|
|
),
|
|
(this.hasHiddenControls = !0);
|
|
},
|
|
showControls: function () {
|
|
var t = this,
|
|
e = t.current ? t.current.opts : t.opts,
|
|
n = t.$refs.container;
|
|
(t.hasHiddenControls = !1),
|
|
(t.idleSecondsCounter = 0),
|
|
n
|
|
.toggleClass("fancybox-show-toolbar", !(!e.toolbar || !e.buttons))
|
|
.toggleClass(
|
|
"fancybox-show-infobar",
|
|
!!(e.infobar && t.group.length > 1)
|
|
)
|
|
.toggleClass("fancybox-show-caption", !!t.$caption)
|
|
.toggleClass(
|
|
"fancybox-show-nav",
|
|
!!(e.arrows && t.group.length > 1)
|
|
)
|
|
.toggleClass("fancybox-is-modal", !!e.modal);
|
|
},
|
|
toggleControls: function () {
|
|
this.hasHiddenControls ? this.showControls() : this.hideControls();
|
|
},
|
|
}),
|
|
(n.fancybox = {
|
|
version: "3.5.7",
|
|
defaults: a,
|
|
getInstance: function (t) {
|
|
var e = n(
|
|
'.fancybox-container:not(".fancybox-is-closing"):last'
|
|
).data("FancyBox"),
|
|
o = Array.prototype.slice.call(arguments, 1);
|
|
return (
|
|
e instanceof b &&
|
|
("string" === n.type(t)
|
|
? e[t].apply(e, o)
|
|
: "function" === n.type(t) && t.apply(e, o),
|
|
e)
|
|
);
|
|
},
|
|
open: function (t, e, n) {
|
|
return new b(t, e, n);
|
|
},
|
|
close: function (t) {
|
|
var e = this.getInstance();
|
|
e && (e.close(), !0 === t && this.close(t));
|
|
},
|
|
destroy: function () {
|
|
this.close(!0), r.add("body").off("click.fb-start", "**");
|
|
},
|
|
isMobile:
|
|
/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
|
|
navigator.userAgent
|
|
),
|
|
use3d: (function () {
|
|
var n = e.createElement("div");
|
|
return (
|
|
t.getComputedStyle &&
|
|
t.getComputedStyle(n) &&
|
|
t.getComputedStyle(n).getPropertyValue("transform") &&
|
|
!(e.documentMode && e.documentMode < 11)
|
|
);
|
|
})(),
|
|
getTranslate: function (t) {
|
|
var e;
|
|
return (
|
|
!(!t || !t.length) &&
|
|
((e = t[0].getBoundingClientRect()),
|
|
{
|
|
top: e.top || 0,
|
|
left: e.left || 0,
|
|
width: e.width,
|
|
height: e.height,
|
|
opacity: parseFloat(t.css("opacity")),
|
|
})
|
|
);
|
|
},
|
|
setTranslate: function (t, e) {
|
|
var n = "",
|
|
o = {};
|
|
if (t && e)
|
|
return (
|
|
(void 0 === e.left && void 0 === e.top) ||
|
|
((n =
|
|
(void 0 === e.left ? t.position().left : e.left) +
|
|
"px, " +
|
|
(void 0 === e.top ? t.position().top : e.top) +
|
|
"px"),
|
|
(n = this.use3d
|
|
? "translate3d(" + n + ", 0px)"
|
|
: "translate(" + n + ")")),
|
|
void 0 !== e.scaleX && void 0 !== e.scaleY
|
|
? (n += " scale(" + e.scaleX + ", " + e.scaleY + ")")
|
|
: void 0 !== e.scaleX && (n += " scaleX(" + e.scaleX + ")"),
|
|
n.length && (o.transform = n),
|
|
void 0 !== e.opacity && (o.opacity = e.opacity),
|
|
void 0 !== e.width && (o.width = e.width),
|
|
void 0 !== e.height && (o.height = e.height),
|
|
t.css(o)
|
|
);
|
|
},
|
|
animate: function (t, e, o, i, a) {
|
|
var s,
|
|
r = this;
|
|
n.isFunction(o) && ((i = o), (o = null)),
|
|
r.stop(t),
|
|
(s = r.getTranslate(t)),
|
|
t.on(f, function (c) {
|
|
(!c ||
|
|
!c.originalEvent ||
|
|
(t.is(c.originalEvent.target) &&
|
|
"z-index" != c.originalEvent.propertyName)) &&
|
|
(r.stop(t),
|
|
n.isNumeric(o) && t.css("transition-duration", ""),
|
|
n.isPlainObject(e)
|
|
? void 0 !== e.scaleX &&
|
|
void 0 !== e.scaleY &&
|
|
r.setTranslate(t, {
|
|
top: e.top,
|
|
left: e.left,
|
|
width: s.width * e.scaleX,
|
|
height: s.height * e.scaleY,
|
|
scaleX: 1,
|
|
scaleY: 1,
|
|
})
|
|
: !0 !== a && t.removeClass(e),
|
|
n.isFunction(i) && i(c));
|
|
}),
|
|
n.isNumeric(o) && t.css("transition-duration", o + "ms"),
|
|
n.isPlainObject(e)
|
|
? (void 0 !== e.scaleX &&
|
|
void 0 !== e.scaleY &&
|
|
(delete e.width,
|
|
delete e.height,
|
|
t.parent().hasClass("fancybox-slide--image") &&
|
|
t.parent().addClass("fancybox-is-scaling")),
|
|
n.fancybox.setTranslate(t, e))
|
|
: t.addClass(e),
|
|
t.data(
|
|
"timer",
|
|
setTimeout(function () {
|
|
t.trigger(f);
|
|
}, o + 33)
|
|
);
|
|
},
|
|
stop: function (t, e) {
|
|
t &&
|
|
t.length &&
|
|
(clearTimeout(t.data("timer")),
|
|
e && t.trigger(f),
|
|
t.off(f).css("transition-duration", ""),
|
|
t.parent().removeClass("fancybox-is-scaling"));
|
|
},
|
|
}),
|
|
(n.fn.fancybox = function (t) {
|
|
var e;
|
|
return (
|
|
(t = t || {}),
|
|
(e = t.selector || !1),
|
|
e
|
|
? n("body")
|
|
.off("click.fb-start", e)
|
|
.on("click.fb-start", e, { options: t }, i)
|
|
: this.off("click.fb-start").on(
|
|
"click.fb-start",
|
|
{ items: this, options: t },
|
|
i
|
|
),
|
|
this
|
|
);
|
|
}),
|
|
r.on("click.fb-start", "[data-fancybox]", i),
|
|
r.on("click.fb-start", "[data-fancybox-trigger]", function (t) {
|
|
n('[data-fancybox="' + n(this).attr("data-fancybox-trigger") + '"]')
|
|
.eq(n(this).attr("data-fancybox-index") || 0)
|
|
.trigger("click.fb-start", { $trigger: n(this) });
|
|
}),
|
|
(function () {
|
|
var t = null;
|
|
r.on("mousedown mouseup focus blur", ".fancybox-button", function (e) {
|
|
switch (e.type) {
|
|
case "mousedown":
|
|
t = n(this);
|
|
break;
|
|
case "mouseup":
|
|
t = null;
|
|
break;
|
|
case "focusin":
|
|
n(".fancybox-button").removeClass("fancybox-focus"),
|
|
n(this).is(t) ||
|
|
n(this).is("[disabled]") ||
|
|
n(this).addClass("fancybox-focus");
|
|
break;
|
|
case "focusout":
|
|
n(".fancybox-button").removeClass("fancybox-focus");
|
|
}
|
|
});
|
|
})();
|
|
}
|
|
})(window, document, jQuery),
|
|
(function (t) {
|
|
"use strict";
|
|
var e = {
|
|
youtube: {
|
|
matcher:
|
|
/(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i,
|
|
params: {
|
|
autoplay: 1,
|
|
autohide: 1,
|
|
fs: 1,
|
|
rel: 0,
|
|
hd: 1,
|
|
wmode: "transparent",
|
|
enablejsapi: 1,
|
|
html5: 1,
|
|
},
|
|
paramPlace: 8,
|
|
type: "iframe",
|
|
url: "https://www.youtube-nocookie.com/embed/$4",
|
|
thumb: "https://img.youtube.com/vi/$4/hqdefault.jpg",
|
|
},
|
|
vimeo: {
|
|
matcher: /^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/,
|
|
params: {
|
|
autoplay: 1,
|
|
hd: 1,
|
|
show_title: 1,
|
|
show_byline: 1,
|
|
show_portrait: 0,
|
|
fullscreen: 1,
|
|
},
|
|
paramPlace: 3,
|
|
type: "iframe",
|
|
url: "//player.vimeo.com/video/$2",
|
|
},
|
|
instagram: {
|
|
matcher: /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,
|
|
type: "image",
|
|
url: "//$1/p/$2/media/?size=l",
|
|
},
|
|
gmap_place: {
|
|
matcher:
|
|
/(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i,
|
|
type: "iframe",
|
|
url: function (t) {
|
|
return (
|
|
"//maps.google." +
|
|
t[2] +
|
|
"/?ll=" +
|
|
(t[9]
|
|
? t[9] +
|
|
"&z=" +
|
|
Math.floor(t[10]) +
|
|
(t[12] ? t[12].replace(/^\//, "&") : "")
|
|
: t[12] + ""
|
|
).replace(/\?/, "&") +
|
|
"&output=" +
|
|
(t[12] && t[12].indexOf("layer=c") > 0 ? "svembed" : "embed")
|
|
);
|
|
},
|
|
},
|
|
gmap_search: {
|
|
matcher:
|
|
/(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i,
|
|
type: "iframe",
|
|
url: function (t) {
|
|
return (
|
|
"//maps.google." +
|
|
t[2] +
|
|
"/maps?q=" +
|
|
t[5].replace("query=", "q=").replace("api=1", "") +
|
|
"&output=embed"
|
|
);
|
|
},
|
|
},
|
|
},
|
|
n = function (e, n, o) {
|
|
if (e)
|
|
return (
|
|
(o = o || ""),
|
|
"object" === t.type(o) && (o = t.param(o, !0)),
|
|
t.each(n, function (t, n) {
|
|
e = e.replace("$" + t, n || "");
|
|
}),
|
|
o.length && (e += (e.indexOf("?") > 0 ? "&" : "?") + o),
|
|
e
|
|
);
|
|
};
|
|
t(document).on("objectNeedsType.fb", function (o, i, a) {
|
|
var s,
|
|
r,
|
|
c,
|
|
l,
|
|
d,
|
|
u,
|
|
f,
|
|
p = a.src || "",
|
|
h = !1;
|
|
(s = t.extend(!0, {}, e, a.opts.media)),
|
|
t.each(s, function (e, o) {
|
|
if ((c = p.match(o.matcher))) {
|
|
if (
|
|
((h = o.type), (f = e), (u = {}), o.paramPlace && c[o.paramPlace])
|
|
) {
|
|
(d = c[o.paramPlace]),
|
|
"?" == d[0] && (d = d.substring(1)),
|
|
(d = d.split("&"));
|
|
for (var i = 0; i < d.length; ++i) {
|
|
var s = d[i].split("=", 2);
|
|
2 == s.length &&
|
|
(u[s[0]] = decodeURIComponent(s[1].replace(/\+/g, " ")));
|
|
}
|
|
}
|
|
return (
|
|
(l = t.extend(!0, {}, o.params, a.opts[e], u)),
|
|
(p =
|
|
"function" === t.type(o.url)
|
|
? o.url.call(this, c, l, a)
|
|
: n(o.url, c, l)),
|
|
(r =
|
|
"function" === t.type(o.thumb)
|
|
? o.thumb.call(this, c, l, a)
|
|
: n(o.thumb, c)),
|
|
"youtube" === e
|
|
? (p = p.replace(/&t=((\d+)m)?(\d+)s/, function (t, e, n, o) {
|
|
return (
|
|
"&start=" +
|
|
((n ? 60 * parseInt(n, 10) : 0) + parseInt(o, 10))
|
|
);
|
|
}))
|
|
: "vimeo" === e && (p = p.replace("&%23", "#")),
|
|
!1
|
|
);
|
|
}
|
|
}),
|
|
h
|
|
? (a.opts.thumb ||
|
|
(a.opts.$thumb && a.opts.$thumb.length) ||
|
|
(a.opts.thumb = r),
|
|
"iframe" === h &&
|
|
(a.opts = t.extend(!0, a.opts, {
|
|
iframe: { preload: !1, attr: { scrolling: "no" } },
|
|
})),
|
|
t.extend(a, {
|
|
type: h,
|
|
src: p,
|
|
origSrc: a.src,
|
|
contentSource: f,
|
|
contentType:
|
|
"image" === h
|
|
? "image"
|
|
: "gmap_place" == f || "gmap_search" == f
|
|
? "map"
|
|
: "video",
|
|
}))
|
|
: p && (a.type = a.opts.defaultType);
|
|
});
|
|
var o = {
|
|
youtube: {
|
|
src: "https://www.youtube.com/iframe_api",
|
|
class: "YT",
|
|
loading: !1,
|
|
loaded: !1,
|
|
},
|
|
vimeo: {
|
|
src: "https://player.vimeo.com/api/player.js",
|
|
class: "Vimeo",
|
|
loading: !1,
|
|
loaded: !1,
|
|
},
|
|
load: function (t) {
|
|
var e,
|
|
n = this;
|
|
if (this[t].loaded)
|
|
return void setTimeout(function () {
|
|
n.done(t);
|
|
});
|
|
this[t].loading ||
|
|
((this[t].loading = !0),
|
|
(e = document.createElement("script")),
|
|
(e.type = "text/javascript"),
|
|
(e.src = this[t].src),
|
|
"youtube" === t
|
|
? (window.onYouTubeIframeAPIReady = function () {
|
|
(n[t].loaded = !0), n.done(t);
|
|
})
|
|
: (e.onload = function () {
|
|
(n[t].loaded = !0), n.done(t);
|
|
}),
|
|
document.body.appendChild(e));
|
|
},
|
|
done: function (e) {
|
|
var n, o, i;
|
|
"youtube" === e && delete window.onYouTubeIframeAPIReady,
|
|
(n = t.fancybox.getInstance()) &&
|
|
((o = n.current.$content.find("iframe")),
|
|
"youtube" === e && void 0 !== YT && YT
|
|
? (i = new YT.Player(o.attr("id"), {
|
|
events: {
|
|
onStateChange: function (t) {
|
|
0 == t.data && n.next();
|
|
},
|
|
},
|
|
}))
|
|
: "vimeo" === e &&
|
|
void 0 !== Vimeo &&
|
|
Vimeo &&
|
|
((i = new Vimeo.Player(o)),
|
|
i.on("ended", function () {
|
|
n.next();
|
|
})));
|
|
},
|
|
};
|
|
t(document).on({
|
|
"afterShow.fb": function (t, e, n) {
|
|
e.group.length > 1 &&
|
|
("youtube" === n.contentSource || "vimeo" === n.contentSource) &&
|
|
o.load(n.contentSource);
|
|
},
|
|
});
|
|
})(jQuery),
|
|
(function (t, e, n) {
|
|
"use strict";
|
|
var o = (function () {
|
|
return (
|
|
t.requestAnimationFrame ||
|
|
t.webkitRequestAnimationFrame ||
|
|
t.mozRequestAnimationFrame ||
|
|
t.oRequestAnimationFrame ||
|
|
function (e) {
|
|
return t.setTimeout(e, 1e3 / 60);
|
|
}
|
|
);
|
|
})(),
|
|
i = (function () {
|
|
return (
|
|
t.cancelAnimationFrame ||
|
|
t.webkitCancelAnimationFrame ||
|
|
t.mozCancelAnimationFrame ||
|
|
t.oCancelAnimationFrame ||
|
|
function (e) {
|
|
t.clearTimeout(e);
|
|
}
|
|
);
|
|
})(),
|
|
a = function (e) {
|
|
var n = [];
|
|
(e = e.originalEvent || e || t.e),
|
|
(e =
|
|
e.touches && e.touches.length
|
|
? e.touches
|
|
: e.changedTouches && e.changedTouches.length
|
|
? e.changedTouches
|
|
: [e]);
|
|
for (var o in e)
|
|
e[o].pageX
|
|
? n.push({ x: e[o].pageX, y: e[o].pageY })
|
|
: e[o].clientX && n.push({ x: e[o].clientX, y: e[o].clientY });
|
|
return n;
|
|
},
|
|
s = function (t, e, n) {
|
|
return e && t
|
|
? "x" === n
|
|
? t.x - e.x
|
|
: "y" === n
|
|
? t.y - e.y
|
|
: Math.sqrt(Math.pow(t.x - e.x, 2) + Math.pow(t.y - e.y, 2))
|
|
: 0;
|
|
},
|
|
r = function (t) {
|
|
if (
|
|
t.is(
|
|
'a,area,button,[role="button"],input,label,select,summary,textarea,video,audio,iframe'
|
|
) ||
|
|
n.isFunction(t.get(0).onclick) ||
|
|
t.data("selectable")
|
|
)
|
|
return !0;
|
|
for (var e = 0, o = t[0].attributes, i = o.length; e < i; e++)
|
|
if ("data-fancybox-" === o[e].nodeName.substr(0, 14)) return !0;
|
|
return !1;
|
|
},
|
|
c = function (e) {
|
|
var n = t.getComputedStyle(e)["overflow-y"],
|
|
o = t.getComputedStyle(e)["overflow-x"],
|
|
i =
|
|
("scroll" === n || "auto" === n) && e.scrollHeight > e.clientHeight,
|
|
a = ("scroll" === o || "auto" === o) && e.scrollWidth > e.clientWidth;
|
|
return i || a;
|
|
},
|
|
l = function (t) {
|
|
for (var e = !1; ; ) {
|
|
if ((e = c(t.get(0)))) break;
|
|
if (
|
|
((t = t.parent()),
|
|
!t.length || t.hasClass("fancybox-stage") || t.is("body"))
|
|
)
|
|
break;
|
|
}
|
|
return e;
|
|
},
|
|
d = function (t) {
|
|
var e = this;
|
|
(e.instance = t),
|
|
(e.$bg = t.$refs.bg),
|
|
(e.$stage = t.$refs.stage),
|
|
(e.$container = t.$refs.container),
|
|
e.destroy(),
|
|
e.$container.on(
|
|
"touchstart.fb.touch mousedown.fb.touch",
|
|
n.proxy(e, "ontouchstart")
|
|
);
|
|
};
|
|
(d.prototype.destroy = function () {
|
|
var t = this;
|
|
t.$container.off(".fb.touch"),
|
|
n(e).off(".fb.touch"),
|
|
t.requestId && (i(t.requestId), (t.requestId = null)),
|
|
t.tapped && (clearTimeout(t.tapped), (t.tapped = null));
|
|
}),
|
|
(d.prototype.ontouchstart = function (o) {
|
|
var i = this,
|
|
c = n(o.target),
|
|
d = i.instance,
|
|
u = d.current,
|
|
f = u.$slide,
|
|
p = u.$content,
|
|
h = "touchstart" == o.type;
|
|
if (
|
|
(h && i.$container.off("mousedown.fb.touch"),
|
|
(!o.originalEvent || 2 != o.originalEvent.button) &&
|
|
f.length &&
|
|
c.length &&
|
|
!r(c) &&
|
|
!r(c.parent()) &&
|
|
(c.is("img") ||
|
|
!(o.originalEvent.clientX > c[0].clientWidth + c.offset().left)))
|
|
) {
|
|
if (!u || d.isAnimating || u.$slide.hasClass("fancybox-animated"))
|
|
return o.stopPropagation(), void o.preventDefault();
|
|
(i.realPoints = i.startPoints = a(o)),
|
|
i.startPoints.length &&
|
|
(u.touch && o.stopPropagation(),
|
|
(i.startEvent = o),
|
|
(i.canTap = !0),
|
|
(i.$target = c),
|
|
(i.$content = p),
|
|
(i.opts = u.opts.touch),
|
|
(i.isPanning = !1),
|
|
(i.isSwiping = !1),
|
|
(i.isZooming = !1),
|
|
(i.isScrolling = !1),
|
|
(i.canPan = d.canPan()),
|
|
(i.startTime = new Date().getTime()),
|
|
(i.distanceX = i.distanceY = i.distance = 0),
|
|
(i.canvasWidth = Math.round(f[0].clientWidth)),
|
|
(i.canvasHeight = Math.round(f[0].clientHeight)),
|
|
(i.contentLastPos = null),
|
|
(i.contentStartPos = n.fancybox.getTranslate(i.$content) || {
|
|
top: 0,
|
|
left: 0,
|
|
}),
|
|
(i.sliderStartPos = n.fancybox.getTranslate(f)),
|
|
(i.stagePos = n.fancybox.getTranslate(d.$refs.stage)),
|
|
(i.sliderStartPos.top -= i.stagePos.top),
|
|
(i.sliderStartPos.left -= i.stagePos.left),
|
|
(i.contentStartPos.top -= i.stagePos.top),
|
|
(i.contentStartPos.left -= i.stagePos.left),
|
|
n(e)
|
|
.off(".fb.touch")
|
|
.on(
|
|
h
|
|
? "touchend.fb.touch touchcancel.fb.touch"
|
|
: "mouseup.fb.touch mouseleave.fb.touch",
|
|
n.proxy(i, "ontouchend")
|
|
)
|
|
.on(
|
|
h ? "touchmove.fb.touch" : "mousemove.fb.touch",
|
|
n.proxy(i, "ontouchmove")
|
|
),
|
|
n.fancybox.isMobile &&
|
|
e.addEventListener("scroll", i.onscroll, !0),
|
|
(((i.opts || i.canPan) &&
|
|
(c.is(i.$stage) || i.$stage.find(c).length)) ||
|
|
(c.is(".fancybox-image") && o.preventDefault(),
|
|
n.fancybox.isMobile &&
|
|
c.parents(".fancybox-caption").length)) &&
|
|
((i.isScrollable = l(c) || l(c.parent())),
|
|
(n.fancybox.isMobile && i.isScrollable) || o.preventDefault(),
|
|
(1 === i.startPoints.length || u.hasError) &&
|
|
(i.canPan
|
|
? (n.fancybox.stop(i.$content), (i.isPanning = !0))
|
|
: (i.isSwiping = !0),
|
|
i.$container.addClass("fancybox-is-grabbing")),
|
|
2 === i.startPoints.length &&
|
|
"image" === u.type &&
|
|
(u.isLoaded || u.$ghost) &&
|
|
((i.canTap = !1),
|
|
(i.isSwiping = !1),
|
|
(i.isPanning = !1),
|
|
(i.isZooming = !0),
|
|
n.fancybox.stop(i.$content),
|
|
(i.centerPointStartX =
|
|
0.5 * (i.startPoints[0].x + i.startPoints[1].x) -
|
|
n(t).scrollLeft()),
|
|
(i.centerPointStartY =
|
|
0.5 * (i.startPoints[0].y + i.startPoints[1].y) -
|
|
n(t).scrollTop()),
|
|
(i.percentageOfImageAtPinchPointX =
|
|
(i.centerPointStartX - i.contentStartPos.left) /
|
|
i.contentStartPos.width),
|
|
(i.percentageOfImageAtPinchPointY =
|
|
(i.centerPointStartY - i.contentStartPos.top) /
|
|
i.contentStartPos.height),
|
|
(i.startDistanceBetweenFingers = s(
|
|
i.startPoints[0],
|
|
i.startPoints[1]
|
|
)))));
|
|
}
|
|
}),
|
|
(d.prototype.onscroll = function (t) {
|
|
var n = this;
|
|
(n.isScrolling = !0), e.removeEventListener("scroll", n.onscroll, !0);
|
|
}),
|
|
(d.prototype.ontouchmove = function (t) {
|
|
var e = this;
|
|
return void 0 !== t.originalEvent.buttons &&
|
|
0 === t.originalEvent.buttons
|
|
? void e.ontouchend(t)
|
|
: e.isScrolling
|
|
? void (e.canTap = !1)
|
|
: ((e.newPoints = a(t)),
|
|
void (
|
|
(e.opts || e.canPan) &&
|
|
e.newPoints.length &&
|
|
e.newPoints.length &&
|
|
((e.isSwiping && !0 === e.isSwiping) || t.preventDefault(),
|
|
(e.distanceX = s(e.newPoints[0], e.startPoints[0], "x")),
|
|
(e.distanceY = s(e.newPoints[0], e.startPoints[0], "y")),
|
|
(e.distance = s(e.newPoints[0], e.startPoints[0])),
|
|
e.distance > 0 &&
|
|
(e.isSwiping
|
|
? e.onSwipe(t)
|
|
: e.isPanning
|
|
? e.onPan()
|
|
: e.isZooming && e.onZoom()))
|
|
));
|
|
}),
|
|
(d.prototype.onSwipe = function (e) {
|
|
var a,
|
|
s = this,
|
|
r = s.instance,
|
|
c = s.isSwiping,
|
|
l = s.sliderStartPos.left || 0;
|
|
if (!0 !== c)
|
|
"x" == c &&
|
|
(s.distanceX > 0 &&
|
|
(s.instance.group.length < 2 ||
|
|
(0 === s.instance.current.index && !s.instance.current.opts.loop))
|
|
? (l += Math.pow(s.distanceX, 0.8))
|
|
: s.distanceX < 0 &&
|
|
(s.instance.group.length < 2 ||
|
|
(s.instance.current.index === s.instance.group.length - 1 &&
|
|
!s.instance.current.opts.loop))
|
|
? (l -= Math.pow(-s.distanceX, 0.8))
|
|
: (l += s.distanceX)),
|
|
(s.sliderLastPos = {
|
|
top: "x" == c ? 0 : s.sliderStartPos.top + s.distanceY,
|
|
left: l,
|
|
}),
|
|
s.requestId && (i(s.requestId), (s.requestId = null)),
|
|
(s.requestId = o(function () {
|
|
s.sliderLastPos &&
|
|
(n.each(s.instance.slides, function (t, e) {
|
|
var o = e.pos - s.instance.currPos;
|
|
n.fancybox.setTranslate(e.$slide, {
|
|
top: s.sliderLastPos.top,
|
|
left:
|
|
s.sliderLastPos.left +
|
|
o * s.canvasWidth +
|
|
o * e.opts.gutter,
|
|
});
|
|
}),
|
|
s.$container.addClass("fancybox-is-sliding"));
|
|
}));
|
|
else if (Math.abs(s.distance) > 10) {
|
|
if (
|
|
((s.canTap = !1),
|
|
r.group.length < 2 && s.opts.vertical
|
|
? (s.isSwiping = "y")
|
|
: r.isDragging ||
|
|
!1 === s.opts.vertical ||
|
|
("auto" === s.opts.vertical && n(t).width() > 800)
|
|
? (s.isSwiping = "x")
|
|
: ((a = Math.abs(
|
|
(180 * Math.atan2(s.distanceY, s.distanceX)) / Math.PI
|
|
)),
|
|
(s.isSwiping = a > 45 && a < 135 ? "y" : "x")),
|
|
"y" === s.isSwiping && n.fancybox.isMobile && s.isScrollable)
|
|
)
|
|
return void (s.isScrolling = !0);
|
|
(r.isDragging = s.isSwiping),
|
|
(s.startPoints = s.newPoints),
|
|
n.each(r.slides, function (t, e) {
|
|
var o, i;
|
|
n.fancybox.stop(e.$slide),
|
|
(o = n.fancybox.getTranslate(e.$slide)),
|
|
(i = n.fancybox.getTranslate(r.$refs.stage)),
|
|
e.$slide
|
|
.css({
|
|
transform: "",
|
|
opacity: "",
|
|
"transition-duration": "",
|
|
})
|
|
.removeClass("fancybox-animated")
|
|
.removeClass(function (t, e) {
|
|
return (e.match(/(^|\s)fancybox-fx-\S+/g) || []).join(" ");
|
|
}),
|
|
e.pos === r.current.pos &&
|
|
((s.sliderStartPos.top = o.top - i.top),
|
|
(s.sliderStartPos.left = o.left - i.left)),
|
|
n.fancybox.setTranslate(e.$slide, {
|
|
top: o.top - i.top,
|
|
left: o.left - i.left,
|
|
});
|
|
}),
|
|
r.SlideShow && r.SlideShow.isActive && r.SlideShow.stop();
|
|
}
|
|
}),
|
|
(d.prototype.onPan = function () {
|
|
var t = this;
|
|
if (s(t.newPoints[0], t.realPoints[0]) < (n.fancybox.isMobile ? 10 : 5))
|
|
return void (t.startPoints = t.newPoints);
|
|
(t.canTap = !1),
|
|
(t.contentLastPos = t.limitMovement()),
|
|
t.requestId && i(t.requestId),
|
|
(t.requestId = o(function () {
|
|
n.fancybox.setTranslate(t.$content, t.contentLastPos);
|
|
}));
|
|
}),
|
|
(d.prototype.limitMovement = function () {
|
|
var t,
|
|
e,
|
|
n,
|
|
o,
|
|
i,
|
|
a,
|
|
s = this,
|
|
r = s.canvasWidth,
|
|
c = s.canvasHeight,
|
|
l = s.distanceX,
|
|
d = s.distanceY,
|
|
u = s.contentStartPos,
|
|
f = u.left,
|
|
p = u.top,
|
|
h = u.width,
|
|
g = u.height;
|
|
return (
|
|
(i = h > r ? f + l : f),
|
|
(a = p + d),
|
|
(t = Math.max(0, 0.5 * r - 0.5 * h)),
|
|
(e = Math.max(0, 0.5 * c - 0.5 * g)),
|
|
(n = Math.min(r - h, 0.5 * r - 0.5 * h)),
|
|
(o = Math.min(c - g, 0.5 * c - 0.5 * g)),
|
|
l > 0 && i > t && (i = t - 1 + Math.pow(-t + f + l, 0.8) || 0),
|
|
l < 0 && i < n && (i = n + 1 - Math.pow(n - f - l, 0.8) || 0),
|
|
d > 0 && a > e && (a = e - 1 + Math.pow(-e + p + d, 0.8) || 0),
|
|
d < 0 && a < o && (a = o + 1 - Math.pow(o - p - d, 0.8) || 0),
|
|
{ top: a, left: i }
|
|
);
|
|
}),
|
|
(d.prototype.limitPosition = function (t, e, n, o) {
|
|
var i = this,
|
|
a = i.canvasWidth,
|
|
s = i.canvasHeight;
|
|
return (
|
|
n > a
|
|
? ((t = t > 0 ? 0 : t), (t = t < a - n ? a - n : t))
|
|
: (t = Math.max(0, a / 2 - n / 2)),
|
|
o > s
|
|
? ((e = e > 0 ? 0 : e), (e = e < s - o ? s - o : e))
|
|
: (e = Math.max(0, s / 2 - o / 2)),
|
|
{ top: e, left: t }
|
|
);
|
|
}),
|
|
(d.prototype.onZoom = function () {
|
|
var e = this,
|
|
a = e.contentStartPos,
|
|
r = a.width,
|
|
c = a.height,
|
|
l = a.left,
|
|
d = a.top,
|
|
u = s(e.newPoints[0], e.newPoints[1]),
|
|
f = u / e.startDistanceBetweenFingers,
|
|
p = Math.floor(r * f),
|
|
h = Math.floor(c * f),
|
|
g = (r - p) * e.percentageOfImageAtPinchPointX,
|
|
b = (c - h) * e.percentageOfImageAtPinchPointY,
|
|
m = (e.newPoints[0].x + e.newPoints[1].x) / 2 - n(t).scrollLeft(),
|
|
v = (e.newPoints[0].y + e.newPoints[1].y) / 2 - n(t).scrollTop(),
|
|
y = m - e.centerPointStartX,
|
|
x = v - e.centerPointStartY,
|
|
w = l + (g + y),
|
|
$ = d + (b + x),
|
|
S = { top: $, left: w, scaleX: f, scaleY: f };
|
|
(e.canTap = !1),
|
|
(e.newWidth = p),
|
|
(e.newHeight = h),
|
|
(e.contentLastPos = S),
|
|
e.requestId && i(e.requestId),
|
|
(e.requestId = o(function () {
|
|
n.fancybox.setTranslate(e.$content, e.contentLastPos);
|
|
}));
|
|
}),
|
|
(d.prototype.ontouchend = function (t) {
|
|
var o = this,
|
|
s = o.isSwiping,
|
|
r = o.isPanning,
|
|
c = o.isZooming,
|
|
l = o.isScrolling;
|
|
if (
|
|
((o.endPoints = a(t)),
|
|
(o.dMs = Math.max(new Date().getTime() - o.startTime, 1)),
|
|
o.$container.removeClass("fancybox-is-grabbing"),
|
|
n(e).off(".fb.touch"),
|
|
e.removeEventListener("scroll", o.onscroll, !0),
|
|
o.requestId && (i(o.requestId), (o.requestId = null)),
|
|
(o.isSwiping = !1),
|
|
(o.isPanning = !1),
|
|
(o.isZooming = !1),
|
|
(o.isScrolling = !1),
|
|
(o.instance.isDragging = !1),
|
|
o.canTap)
|
|
)
|
|
return o.onTap(t);
|
|
(o.speed = 100),
|
|
(o.velocityX = (o.distanceX / o.dMs) * 0.5),
|
|
(o.velocityY = (o.distanceY / o.dMs) * 0.5),
|
|
r ? o.endPanning() : c ? o.endZooming() : o.endSwiping(s, l);
|
|
}),
|
|
(d.prototype.endSwiping = function (t, e) {
|
|
var o = this,
|
|
i = !1,
|
|
a = o.instance.group.length,
|
|
s = Math.abs(o.distanceX),
|
|
r = "x" == t && a > 1 && ((o.dMs > 130 && s > 10) || s > 50);
|
|
(o.sliderLastPos = null),
|
|
"y" == t && !e && Math.abs(o.distanceY) > 50
|
|
? (n.fancybox.animate(
|
|
o.instance.current.$slide,
|
|
{
|
|
top: o.sliderStartPos.top + o.distanceY + 150 * o.velocityY,
|
|
opacity: 0,
|
|
},
|
|
200
|
|
),
|
|
(i = o.instance.close(!0, 250)))
|
|
: r && o.distanceX > 0
|
|
? (i = o.instance.previous(300))
|
|
: r && o.distanceX < 0 && (i = o.instance.next(300)),
|
|
!1 !== i || ("x" != t && "y" != t) || o.instance.centerSlide(200),
|
|
o.$container.removeClass("fancybox-is-sliding");
|
|
}),
|
|
(d.prototype.endPanning = function () {
|
|
var t,
|
|
e,
|
|
o,
|
|
i = this;
|
|
i.contentLastPos &&
|
|
(!1 === i.opts.momentum || i.dMs > 350
|
|
? ((t = i.contentLastPos.left), (e = i.contentLastPos.top))
|
|
: ((t = i.contentLastPos.left + 500 * i.velocityX),
|
|
(e = i.contentLastPos.top + 500 * i.velocityY)),
|
|
(o = i.limitPosition(
|
|
t,
|
|
e,
|
|
i.contentStartPos.width,
|
|
i.contentStartPos.height
|
|
)),
|
|
(o.width = i.contentStartPos.width),
|
|
(o.height = i.contentStartPos.height),
|
|
n.fancybox.animate(i.$content, o, 366));
|
|
}),
|
|
(d.prototype.endZooming = function () {
|
|
var t,
|
|
e,
|
|
o,
|
|
i,
|
|
a = this,
|
|
s = a.instance.current,
|
|
r = a.newWidth,
|
|
c = a.newHeight;
|
|
a.contentLastPos &&
|
|
((t = a.contentLastPos.left),
|
|
(e = a.contentLastPos.top),
|
|
(i = { top: e, left: t, width: r, height: c, scaleX: 1, scaleY: 1 }),
|
|
n.fancybox.setTranslate(a.$content, i),
|
|
r < a.canvasWidth && c < a.canvasHeight
|
|
? a.instance.scaleToFit(150)
|
|
: r > s.width || c > s.height
|
|
? a.instance.scaleToActual(
|
|
a.centerPointStartX,
|
|
a.centerPointStartY,
|
|
150
|
|
)
|
|
: ((o = a.limitPosition(t, e, r, c)),
|
|
n.fancybox.animate(a.$content, o, 150)));
|
|
}),
|
|
(d.prototype.onTap = function (e) {
|
|
var o,
|
|
i = this,
|
|
s = n(e.target),
|
|
r = i.instance,
|
|
c = r.current,
|
|
l = (e && a(e)) || i.startPoints,
|
|
d = l[0] ? l[0].x - n(t).scrollLeft() - i.stagePos.left : 0,
|
|
u = l[0] ? l[0].y - n(t).scrollTop() - i.stagePos.top : 0,
|
|
f = function (t) {
|
|
var o = c.opts[t];
|
|
if ((n.isFunction(o) && (o = o.apply(r, [c, e])), o))
|
|
switch (o) {
|
|
case "close":
|
|
r.close(i.startEvent);
|
|
break;
|
|
case "toggleControls":
|
|
r.toggleControls();
|
|
break;
|
|
case "next":
|
|
r.next();
|
|
break;
|
|
case "nextOrClose":
|
|
r.group.length > 1 ? r.next() : r.close(i.startEvent);
|
|
break;
|
|
case "zoom":
|
|
"image" == c.type &&
|
|
(c.isLoaded || c.$ghost) &&
|
|
(r.canPan()
|
|
? r.scaleToFit()
|
|
: r.isScaledDown()
|
|
? r.scaleToActual(d, u)
|
|
: r.group.length < 2 && r.close(i.startEvent));
|
|
}
|
|
};
|
|
if (
|
|
(!e.originalEvent || 2 != e.originalEvent.button) &&
|
|
(s.is("img") || !(d > s[0].clientWidth + s.offset().left))
|
|
) {
|
|
if (
|
|
s.is(
|
|
".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container"
|
|
)
|
|
)
|
|
o = "Outside";
|
|
else if (s.is(".fancybox-slide")) o = "Slide";
|
|
else {
|
|
if (
|
|
!r.current.$content ||
|
|
!r.current.$content.find(s).addBack().filter(s).length
|
|
)
|
|
return;
|
|
o = "Content";
|
|
}
|
|
if (i.tapped) {
|
|
if (
|
|
(clearTimeout(i.tapped),
|
|
(i.tapped = null),
|
|
Math.abs(d - i.tapX) > 50 || Math.abs(u - i.tapY) > 50)
|
|
)
|
|
return this;
|
|
f("dblclick" + o);
|
|
} else
|
|
(i.tapX = d),
|
|
(i.tapY = u),
|
|
c.opts["dblclick" + o] &&
|
|
c.opts["dblclick" + o] !== c.opts["click" + o]
|
|
? (i.tapped = setTimeout(function () {
|
|
(i.tapped = null), r.isAnimating || f("click" + o);
|
|
}, 500))
|
|
: f("click" + o);
|
|
return this;
|
|
}
|
|
}),
|
|
n(e)
|
|
.on("onActivate.fb", function (t, e) {
|
|
e && !e.Guestures && (e.Guestures = new d(e));
|
|
})
|
|
.on("beforeClose.fb", function (t, e) {
|
|
e && e.Guestures && e.Guestures.destroy();
|
|
});
|
|
})(window, document, jQuery),
|
|
(function (t, e) {
|
|
"use strict";
|
|
e.extend(!0, e.fancybox.defaults, {
|
|
btnTpl: {
|
|
slideShow:
|
|
'<button data-fancybox-play class="fancybox-button fancybox-button--play" title="{{PLAY_START}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 5.4v13.2l11-6.6z"/></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.33 5.75h2.2v12.5h-2.2V5.75zm5.15 0h2.2v12.5h-2.2V5.75z"/></svg></button>',
|
|
},
|
|
slideShow: { autoStart: !1, speed: 3e3, progress: !0 },
|
|
});
|
|
var n = function (t) {
|
|
(this.instance = t), this.init();
|
|
};
|
|
e.extend(n.prototype, {
|
|
timer: null,
|
|
isActive: !1,
|
|
$button: null,
|
|
init: function () {
|
|
var t = this,
|
|
n = t.instance,
|
|
o = n.group[n.currIndex].opts.slideShow;
|
|
(t.$button = n.$refs.toolbar
|
|
.find("[data-fancybox-play]")
|
|
.on("click", function () {
|
|
t.toggle();
|
|
})),
|
|
n.group.length < 2 || !o
|
|
? t.$button.hide()
|
|
: o.progress &&
|
|
(t.$progress = e(
|
|
'<div class="fancybox-progress"></div>'
|
|
).appendTo(n.$refs.inner));
|
|
},
|
|
set: function (t) {
|
|
var n = this,
|
|
o = n.instance,
|
|
i = o.current;
|
|
i && (!0 === t || i.opts.loop || o.currIndex < o.group.length - 1)
|
|
? n.isActive &&
|
|
"video" !== i.contentType &&
|
|
(n.$progress &&
|
|
e.fancybox.animate(
|
|
n.$progress.show(),
|
|
{ scaleX: 1 },
|
|
i.opts.slideShow.speed
|
|
),
|
|
(n.timer = setTimeout(function () {
|
|
o.current.opts.loop || o.current.index != o.group.length - 1
|
|
? o.next()
|
|
: o.jumpTo(0);
|
|
}, i.opts.slideShow.speed)))
|
|
: (n.stop(), (o.idleSecondsCounter = 0), o.showControls());
|
|
},
|
|
clear: function () {
|
|
var t = this;
|
|
clearTimeout(t.timer),
|
|
(t.timer = null),
|
|
t.$progress && t.$progress.removeAttr("style").hide();
|
|
},
|
|
start: function () {
|
|
var t = this,
|
|
e = t.instance.current;
|
|
e &&
|
|
(t.$button
|
|
.attr(
|
|
"title",
|
|
(e.opts.i18n[e.opts.lang] || e.opts.i18n.en).PLAY_STOP
|
|
)
|
|
.removeClass("fancybox-button--play")
|
|
.addClass("fancybox-button--pause"),
|
|
(t.isActive = !0),
|
|
e.isComplete && t.set(!0),
|
|
t.instance.trigger("onSlideShowChange", !0));
|
|
},
|
|
stop: function () {
|
|
var t = this,
|
|
e = t.instance.current;
|
|
t.clear(),
|
|
t.$button
|
|
.attr(
|
|
"title",
|
|
(e.opts.i18n[e.opts.lang] || e.opts.i18n.en).PLAY_START
|
|
)
|
|
.removeClass("fancybox-button--pause")
|
|
.addClass("fancybox-button--play"),
|
|
(t.isActive = !1),
|
|
t.instance.trigger("onSlideShowChange", !1),
|
|
t.$progress && t.$progress.removeAttr("style").hide();
|
|
},
|
|
toggle: function () {
|
|
var t = this;
|
|
t.isActive ? t.stop() : t.start();
|
|
},
|
|
}),
|
|
e(t).on({
|
|
"onInit.fb": function (t, e) {
|
|
e && !e.SlideShow && (e.SlideShow = new n(e));
|
|
},
|
|
"beforeShow.fb": function (t, e, n, o) {
|
|
var i = e && e.SlideShow;
|
|
o
|
|
? i && n.opts.slideShow.autoStart && i.start()
|
|
: i && i.isActive && i.clear();
|
|
},
|
|
"afterShow.fb": function (t, e, n) {
|
|
var o = e && e.SlideShow;
|
|
o && o.isActive && o.set();
|
|
},
|
|
"afterKeydown.fb": function (n, o, i, a, s) {
|
|
var r = o && o.SlideShow;
|
|
!r ||
|
|
!i.opts.slideShow ||
|
|
(80 !== s && 32 !== s) ||
|
|
e(t.activeElement).is("button,a,input") ||
|
|
(a.preventDefault(), r.toggle());
|
|
},
|
|
"beforeClose.fb onDeactivate.fb": function (t, e) {
|
|
var n = e && e.SlideShow;
|
|
n && n.stop();
|
|
},
|
|
}),
|
|
e(t).on("visibilitychange", function () {
|
|
var n = e.fancybox.getInstance(),
|
|
o = n && n.SlideShow;
|
|
o && o.isActive && (t.hidden ? o.clear() : o.set());
|
|
});
|
|
})(document, jQuery),
|
|
(function (t, e) {
|
|
"use strict";
|
|
var n = (function () {
|
|
for (
|
|
var e = [
|
|
[
|
|
"requestFullscreen",
|
|
"exitFullscreen",
|
|
"fullscreenElement",
|
|
"fullscreenEnabled",
|
|
"fullscreenchange",
|
|
"fullscreenerror",
|
|
],
|
|
[
|
|
"webkitRequestFullscreen",
|
|
"webkitExitFullscreen",
|
|
"webkitFullscreenElement",
|
|
"webkitFullscreenEnabled",
|
|
"webkitfullscreenchange",
|
|
"webkitfullscreenerror",
|
|
],
|
|
[
|
|
"webkitRequestFullScreen",
|
|
"webkitCancelFullScreen",
|
|
"webkitCurrentFullScreenElement",
|
|
"webkitCancelFullScreen",
|
|
"webkitfullscreenchange",
|
|
"webkitfullscreenerror",
|
|
],
|
|
[
|
|
"mozRequestFullScreen",
|
|
"mozCancelFullScreen",
|
|
"mozFullScreenElement",
|
|
"mozFullScreenEnabled",
|
|
"mozfullscreenchange",
|
|
"mozfullscreenerror",
|
|
],
|
|
[
|
|
"msRequestFullscreen",
|
|
"msExitFullscreen",
|
|
"msFullscreenElement",
|
|
"msFullscreenEnabled",
|
|
"MSFullscreenChange",
|
|
"MSFullscreenError",
|
|
],
|
|
],
|
|
n = {},
|
|
o = 0;
|
|
o < e.length;
|
|
o++
|
|
) {
|
|
var i = e[o];
|
|
if (i && i[1] in t) {
|
|
for (var a = 0; a < i.length; a++) n[e[0][a]] = i[a];
|
|
return n;
|
|
}
|
|
}
|
|
return !1;
|
|
})();
|
|
if (n) {
|
|
var o = {
|
|
request: function (e) {
|
|
(e = e || t.documentElement),
|
|
e[n.requestFullscreen](e.ALLOW_KEYBOARD_INPUT);
|
|
},
|
|
exit: function () {
|
|
t[n.exitFullscreen]();
|
|
},
|
|
toggle: function (e) {
|
|
(e = e || t.documentElement),
|
|
this.isFullscreen() ? this.exit() : this.request(e);
|
|
},
|
|
isFullscreen: function () {
|
|
return Boolean(t[n.fullscreenElement]);
|
|
},
|
|
enabled: function () {
|
|
return Boolean(t[n.fullscreenEnabled]);
|
|
},
|
|
};
|
|
e.extend(!0, e.fancybox.defaults, {
|
|
btnTpl: {
|
|
fullScreen:
|
|
'<button data-fancybox-fullscreen class="fancybox-button fancybox-button--fsenter" title="{{FULL_SCREEN}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"/></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 16h3v3h2v-5H5zm3-8H5v2h5V5H8zm6 11h2v-3h3v-2h-5zm2-11V5h-2v5h5V8z"/></svg></button>',
|
|
},
|
|
fullScreen: { autoStart: !1 },
|
|
}),
|
|
e(t).on(n.fullscreenchange, function () {
|
|
var t = o.isFullscreen(),
|
|
n = e.fancybox.getInstance();
|
|
n &&
|
|
(n.current &&
|
|
"image" === n.current.type &&
|
|
n.isAnimating &&
|
|
((n.isAnimating = !1),
|
|
n.update(!0, !0, 0),
|
|
n.isComplete || n.complete()),
|
|
n.trigger("onFullscreenChange", t),
|
|
n.$refs.container.toggleClass("fancybox-is-fullscreen", t),
|
|
n.$refs.toolbar
|
|
.find("[data-fancybox-fullscreen]")
|
|
.toggleClass("fancybox-button--fsenter", !t)
|
|
.toggleClass("fancybox-button--fsexit", t));
|
|
});
|
|
}
|
|
e(t).on({
|
|
"onInit.fb": function (t, e) {
|
|
var i;
|
|
if (!n)
|
|
return void e.$refs.toolbar
|
|
.find("[data-fancybox-fullscreen]")
|
|
.remove();
|
|
e && e.group[e.currIndex].opts.fullScreen
|
|
? ((i = e.$refs.container),
|
|
i.on(
|
|
"click.fb-fullscreen",
|
|
"[data-fancybox-fullscreen]",
|
|
function (t) {
|
|
t.stopPropagation(), t.preventDefault(), o.toggle();
|
|
}
|
|
),
|
|
e.opts.fullScreen &&
|
|
!0 === e.opts.fullScreen.autoStart &&
|
|
o.request(),
|
|
(e.FullScreen = o))
|
|
: e && e.$refs.toolbar.find("[data-fancybox-fullscreen]").hide();
|
|
},
|
|
"afterKeydown.fb": function (t, e, n, o, i) {
|
|
e &&
|
|
e.FullScreen &&
|
|
70 === i &&
|
|
(o.preventDefault(), e.FullScreen.toggle());
|
|
},
|
|
"beforeClose.fb": function (t, e) {
|
|
e &&
|
|
e.FullScreen &&
|
|
e.$refs.container.hasClass("fancybox-is-fullscreen") &&
|
|
o.exit();
|
|
},
|
|
});
|
|
})(document, jQuery),
|
|
(function (t, e) {
|
|
"use strict";
|
|
var n = "fancybox-thumbs";
|
|
e.fancybox.defaults = e.extend(
|
|
!0,
|
|
{
|
|
btnTpl: {
|
|
thumbs:
|
|
'<button data-fancybox-thumbs class="fancybox-button fancybox-button--thumbs" title="{{THUMBS}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14.59 14.59h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76H5.65V5.65z"/></svg></button>',
|
|
},
|
|
thumbs: {
|
|
autoStart: !1,
|
|
hideOnClose: !0,
|
|
parentEl: ".fancybox-container",
|
|
axis: "y",
|
|
},
|
|
},
|
|
e.fancybox.defaults
|
|
);
|
|
var o = function (t) {
|
|
this.init(t);
|
|
};
|
|
e.extend(o.prototype, {
|
|
$button: null,
|
|
$grid: null,
|
|
$list: null,
|
|
isVisible: !1,
|
|
isActive: !1,
|
|
init: function (t) {
|
|
var e = this,
|
|
n = t.group,
|
|
o = 0;
|
|
(e.instance = t),
|
|
(e.opts = n[t.currIndex].opts.thumbs),
|
|
(t.Thumbs = e),
|
|
(e.$button = t.$refs.toolbar.find("[data-fancybox-thumbs]"));
|
|
for (
|
|
var i = 0, a = n.length;
|
|
i < a && (n[i].thumb && o++, !(o > 1));
|
|
i++
|
|
);
|
|
o > 1 && e.opts
|
|
? (e.$button.removeAttr("style").on("click", function () {
|
|
e.toggle();
|
|
}),
|
|
(e.isActive = !0))
|
|
: e.$button.hide();
|
|
},
|
|
create: function () {
|
|
var t,
|
|
o = this,
|
|
i = o.instance,
|
|
a = o.opts.parentEl,
|
|
s = [];
|
|
o.$grid ||
|
|
((o.$grid = e(
|
|
'<div class="' + n + " " + n + "-" + o.opts.axis + '"></div>'
|
|
).appendTo(i.$refs.container.find(a).addBack().filter(a))),
|
|
o.$grid.on("click", "a", function () {
|
|
i.jumpTo(e(this).attr("data-index"));
|
|
})),
|
|
o.$list ||
|
|
(o.$list = e('<div class="' + n + '__list">').appendTo(o.$grid)),
|
|
e.each(i.group, function (e, n) {
|
|
(t = n.thumb),
|
|
t || "image" !== n.type || (t = n.src),
|
|
s.push(
|
|
'<a href="javascript:;" tabindex="0" data-index="' +
|
|
e +
|
|
'"' +
|
|
(t && t.length
|
|
? ' style="background-image:url(' + t + ')"'
|
|
: 'class="fancybox-thumbs-missing"') +
|
|
"></a>"
|
|
);
|
|
}),
|
|
(o.$list[0].innerHTML = s.join("")),
|
|
"x" === o.opts.axis &&
|
|
o.$list.width(
|
|
parseInt(o.$grid.css("padding-right"), 10) +
|
|
i.group.length * o.$list.children().eq(0).outerWidth(!0)
|
|
);
|
|
},
|
|
focus: function (t) {
|
|
var e,
|
|
n,
|
|
o = this,
|
|
i = o.$list,
|
|
a = o.$grid;
|
|
o.instance.current &&
|
|
((e = i
|
|
.children()
|
|
.removeClass("fancybox-thumbs-active")
|
|
.filter('[data-index="' + o.instance.current.index + '"]')
|
|
.addClass("fancybox-thumbs-active")),
|
|
(n = e.position()),
|
|
"y" === o.opts.axis &&
|
|
(n.top < 0 || n.top > i.height() - e.outerHeight())
|
|
? i.stop().animate({ scrollTop: i.scrollTop() + n.top }, t)
|
|
: "x" === o.opts.axis &&
|
|
(n.left < a.scrollLeft() ||
|
|
n.left > a.scrollLeft() + (a.width() - e.outerWidth())) &&
|
|
i.parent().stop().animate({ scrollLeft: n.left }, t));
|
|
},
|
|
update: function () {
|
|
var t = this;
|
|
t.instance.$refs.container.toggleClass(
|
|
"fancybox-show-thumbs",
|
|
this.isVisible
|
|
),
|
|
t.isVisible
|
|
? (t.$grid || t.create(),
|
|
t.instance.trigger("onThumbsShow"),
|
|
t.focus(0))
|
|
: t.$grid && t.instance.trigger("onThumbsHide"),
|
|
t.instance.update();
|
|
},
|
|
hide: function () {
|
|
(this.isVisible = !1), this.update();
|
|
},
|
|
show: function () {
|
|
(this.isVisible = !0), this.update();
|
|
},
|
|
toggle: function () {
|
|
(this.isVisible = !this.isVisible), this.update();
|
|
},
|
|
}),
|
|
e(t).on({
|
|
"onInit.fb": function (t, e) {
|
|
var n;
|
|
e &&
|
|
!e.Thumbs &&
|
|
((n = new o(e)), n.isActive && !0 === n.opts.autoStart && n.show());
|
|
},
|
|
"beforeShow.fb": function (t, e, n, o) {
|
|
var i = e && e.Thumbs;
|
|
i && i.isVisible && i.focus(o ? 0 : 250);
|
|
},
|
|
"afterKeydown.fb": function (t, e, n, o, i) {
|
|
var a = e && e.Thumbs;
|
|
a && a.isActive && 71 === i && (o.preventDefault(), a.toggle());
|
|
},
|
|
"beforeClose.fb": function (t, e) {
|
|
var n = e && e.Thumbs;
|
|
n && n.isVisible && !1 !== n.opts.hideOnClose && n.$grid.hide();
|
|
},
|
|
});
|
|
})(document, jQuery),
|
|
(function (t, e) {
|
|
"use strict";
|
|
function n(t) {
|
|
var e = {
|
|
"&": "&",
|
|
"<": "<",
|
|
">": ">",
|
|
'"': """,
|
|
"'": "'",
|
|
"/": "/",
|
|
"`": "`",
|
|
"=": "=",
|
|
};
|
|
return String(t).replace(/[&<>"'`=\/]/g, function (t) {
|
|
return e[t];
|
|
});
|
|
}
|
|
e.extend(!0, e.fancybox.defaults, {
|
|
btnTpl: {
|
|
share:
|
|
'<button data-fancybox-share class="fancybox-button fancybox-button--share" title="{{SHARE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M2.55 19c1.4-8.4 9.1-9.8 11.9-9.8V5l7 7-7 6.3v-3.5c-2.8 0-10.5 2.1-11.9 4.2z"/></svg></button>',
|
|
},
|
|
share: {
|
|
url: function (t, e) {
|
|
return (
|
|
(!t.currentHash &&
|
|
"inline" !== e.type &&
|
|
"html" !== e.type &&
|
|
(e.origSrc || e.src)) ||
|
|
window.location
|
|
);
|
|
},
|
|
tpl: '<div class="fancybox-share"><h1>{{SHARE}}</h1><p><a class="fancybox-share__button fancybox-share__button--fb" href="https://www.facebook.com/sharer/sharer.php?u={{url}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m287 456v-299c0-21 6-35 35-35h38v-63c-7-1-29-3-55-3-54 0-91 33-91 94v306m143-254h-205v72h196" /></svg><span>Facebook</span></a><a class="fancybox-share__button fancybox-share__button--tw" href="https://twitter.com/intent/tweet?url={{url}}&text={{descr}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m456 133c-14 7-31 11-47 13 17-10 30-27 37-46-15 10-34 16-52 20-61-62-157-7-141 75-68-3-129-35-169-85-22 37-11 86 26 109-13 0-26-4-37-9 0 39 28 72 65 80-12 3-25 4-37 2 10 33 41 57 77 57-42 30-77 38-122 34 170 111 378-32 359-208 16-11 30-25 41-42z" /></svg><span>Twitter</span></a><a class="fancybox-share__button fancybox-share__button--pt" href="https://www.pinterest.com/pin/create/button/?url={{url}}&description={{descr}}&media={{media}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m265 56c-109 0-164 78-164 144 0 39 15 74 47 87 5 2 10 0 12-5l4-19c2-6 1-8-3-13-9-11-15-25-15-45 0-58 43-110 113-110 62 0 96 38 96 88 0 67-30 122-73 122-24 0-42-19-36-44 6-29 20-60 20-81 0-19-10-35-31-35-25 0-44 26-44 60 0 21 7 36 7 36l-30 125c-8 37-1 83 0 87 0 3 4 4 5 2 2-3 32-39 42-75l16-64c8 16 31 29 56 29 74 0 124-67 124-157 0-69-58-132-146-132z" fill="#fff"/></svg><span>Pinterest</span></a></p><p><input class="fancybox-share__input" type="text" value="{{url_raw}}" onclick="select()" /></p></div>',
|
|
},
|
|
}),
|
|
e(t).on("click", "[data-fancybox-share]", function () {
|
|
var t,
|
|
o,
|
|
i = e.fancybox.getInstance(),
|
|
a = i.current || null;
|
|
a &&
|
|
("function" === e.type(a.opts.share.url) &&
|
|
(t = a.opts.share.url.apply(a, [i, a])),
|
|
(o = a.opts.share.tpl
|
|
.replace(
|
|
/\{\{media\}\}/g,
|
|
"image" === a.type ? encodeURIComponent(a.src) : ""
|
|
)
|
|
.replace(/\{\{url\}\}/g, encodeURIComponent(t))
|
|
.replace(/\{\{url_raw\}\}/g, n(t))
|
|
.replace(
|
|
/\{\{descr\}\}/g,
|
|
i.$caption ? encodeURIComponent(i.$caption.text()) : ""
|
|
)),
|
|
e.fancybox.open({
|
|
src: i.translate(i, o),
|
|
type: "html",
|
|
opts: {
|
|
touch: !1,
|
|
animationEffect: !1,
|
|
afterLoad: function (t, e) {
|
|
i.$refs.container.one("beforeClose.fb", function () {
|
|
t.close(null, 0);
|
|
}),
|
|
e.$content.find(".fancybox-share__button").click(function () {
|
|
return (
|
|
window.open(this.href, "Share", "width=550, height=450"),
|
|
!1
|
|
);
|
|
});
|
|
},
|
|
mobile: { autoFocus: !1 },
|
|
},
|
|
}));
|
|
});
|
|
})(document, jQuery),
|
|
(function (t, e, n) {
|
|
"use strict";
|
|
function o() {
|
|
var e = t.location.hash.substr(1),
|
|
n = e.split("-"),
|
|
o =
|
|
n.length > 1 && /^\+?\d+$/.test(n[n.length - 1])
|
|
? parseInt(n.pop(-1), 10) || 1
|
|
: 1,
|
|
i = n.join("-");
|
|
return { hash: e, index: o < 1 ? 1 : o, gallery: i };
|
|
}
|
|
function i(t) {
|
|
"" !== t.gallery &&
|
|
n("[data-fancybox='" + n.escapeSelector(t.gallery) + "']")
|
|
.eq(t.index - 1)
|
|
.focus()
|
|
.trigger("click.fb-start");
|
|
}
|
|
function a(t) {
|
|
var e, n;
|
|
return (
|
|
!!t &&
|
|
((e = t.current ? t.current.opts : t.opts),
|
|
"" !==
|
|
(n =
|
|
e.hash ||
|
|
(e.$orig
|
|
? e.$orig.data("fancybox") || e.$orig.data("fancybox-trigger")
|
|
: "")) && n)
|
|
);
|
|
}
|
|
n.escapeSelector ||
|
|
(n.escapeSelector = function (t) {
|
|
return (t + "").replace(
|
|
/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,
|
|
function (t, e) {
|
|
return e
|
|
? "\0" === t
|
|
? "锟�"
|
|
: t.slice(0, -1) +
|
|
"\\" +
|
|
t.charCodeAt(t.length - 1).toString(16) +
|
|
" "
|
|
: "\\" + t;
|
|
}
|
|
);
|
|
}),
|
|
n(function () {
|
|
!1 !== n.fancybox.defaults.hash &&
|
|
(n(e).on({
|
|
"onInit.fb": function (t, e) {
|
|
var n, i;
|
|
!1 !== e.group[e.currIndex].opts.hash &&
|
|
((n = o()),
|
|
(i = a(e)) &&
|
|
n.gallery &&
|
|
i == n.gallery &&
|
|
(e.currIndex = n.index - 1));
|
|
},
|
|
"beforeShow.fb": function (n, o, i, s) {
|
|
var r;
|
|
i &&
|
|
!1 !== i.opts.hash &&
|
|
(r = a(o)) &&
|
|
((o.currentHash =
|
|
r + (o.group.length > 1 ? "-" + (i.index + 1) : "")),
|
|
t.location.hash !== "#" + o.currentHash &&
|
|
(s && !o.origHash && (o.origHash = t.location.hash),
|
|
o.hashTimer && clearTimeout(o.hashTimer),
|
|
(o.hashTimer = setTimeout(function () {
|
|
"replaceState" in t.history
|
|
? (t.history[s ? "pushState" : "replaceState"](
|
|
{},
|
|
e.title,
|
|
t.location.pathname +
|
|
t.location.search +
|
|
"#" +
|
|
o.currentHash
|
|
),
|
|
s && (o.hasCreatedHistory = !0))
|
|
: (t.location.hash = o.currentHash),
|
|
(o.hashTimer = null);
|
|
}, 300))));
|
|
},
|
|
"beforeClose.fb": function (n, o, i) {
|
|
i &&
|
|
!1 !== i.opts.hash &&
|
|
(clearTimeout(o.hashTimer),
|
|
o.currentHash && o.hasCreatedHistory
|
|
? t.history.back()
|
|
: o.currentHash &&
|
|
("replaceState" in t.history
|
|
? t.history.replaceState(
|
|
{},
|
|
e.title,
|
|
t.location.pathname +
|
|
t.location.search +
|
|
(o.origHash || "")
|
|
)
|
|
: (t.location.hash = o.origHash)),
|
|
(o.currentHash = null));
|
|
},
|
|
}),
|
|
n(t).on("hashchange.fb", function () {
|
|
var t = o(),
|
|
e = null;
|
|
n.each(n(".fancybox-container").get().reverse(), function (t, o) {
|
|
var i = n(o).data("FancyBox");
|
|
if (i && i.currentHash) return (e = i), !1;
|
|
}),
|
|
e
|
|
? e.currentHash === t.gallery + "-" + t.index ||
|
|
(1 === t.index && e.currentHash == t.gallery) ||
|
|
((e.currentHash = null), e.close())
|
|
: "" !== t.gallery && i(t);
|
|
}),
|
|
setTimeout(function () {
|
|
n.fancybox.getInstance() || i(o());
|
|
}, 50));
|
|
});
|
|
})(window, document, jQuery),
|
|
(function (t, e) {
|
|
"use strict";
|
|
var n = new Date().getTime();
|
|
e(t).on({
|
|
"onInit.fb": function (t, e, o) {
|
|
e.$refs.stage.on(
|
|
"mousewheel DOMMouseScroll wheel MozMousePixelScroll",
|
|
function (t) {
|
|
var o = e.current,
|
|
i = new Date().getTime();
|
|
e.group.length < 2 ||
|
|
!1 === o.opts.wheel ||
|
|
("auto" === o.opts.wheel && "image" !== o.type) ||
|
|
(t.preventDefault(),
|
|
t.stopPropagation(),
|
|
o.$slide.hasClass("fancybox-animated") ||
|
|
((t = t.originalEvent || t),
|
|
i - n < 250 ||
|
|
((n = i),
|
|
e[
|
|
(-t.deltaY || -t.deltaX || t.wheelDelta || -t.detail) < 0
|
|
? "next"
|
|
: "previous"
|
|
]())));
|
|
}
|
|
);
|
|
},
|
|
});
|
|
})(document, jQuery);
|
|
|