").appendTo(i),
n = i.uniqueId().attr("id");
return this._addClass(s, "ui-tooltip-content"), this._addClass(i, "ui-tooltip", "ui-widget ui-widget-content"), i.appendTo(this._appendTo(e)), this.tooltips[n] = {
element: e,
tooltip: i
}
},
_find: function (t) {
var e = t.data("ui-tooltip-id");
return e ? this.tooltips[e] : null
},
_removeTooltip: function (t) {
t.remove(), delete this.tooltips[t.attr("id")]
},
_appendTo: function (t) {
var e = t.closest(".ui-front, dialog");
return e.length || (e = this.document[0].body), e
},
_destroy: function () {
var e = this;
t.each(this.tooltips, function (i, s) {
var n = t.Event("blur"),
o = s.element;
n.target = n.currentTarget = o[0], e.close(n, !0), t("#" + i).remove(), o.data("ui-tooltip-title") && (o.attr("title") || o.attr("title", o.data("ui-tooltip-title")), o.removeData("ui-tooltip-title"))
}), this.liveRegion.remove()
}
}), t.uiBackCompat !== !1 && t.widget("ui.tooltip", t.ui.tooltip, {
options: {
tooltipClass: null
},
_tooltip: function () {
var t = this._superApply(arguments);
return this.options.tooltipClass && t.tooltip.addClass(this.options.tooltipClass), t
}
}), t.ui.tooltip
});
/*
Bootstrap
Version: v5.1.0
Plugin URI: (https://getbootstrap.com/)
License: Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) | Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
! function (t, e) {
"object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : (t = "undefined" != typeof globalThis ? globalThis : t || self).bootstrap = e()
}(this, (function () {
"use strict";
const t = t => {
let e = t.getAttribute("data-bs-target");
if (!e || "#" === e) {
let i = t.getAttribute("href");
if (!i || !i.includes("#") && !i.startsWith(".")) return null;
i.includes("#") && !i.startsWith("#") && (i = "#" + i.split("#")[1]), e = i && "#" !== i ? i.trim() : null
}
return e
},
e = e => {
const i = t(e);
return i && document.querySelector(i) ? i : null
},
i = e => {
const i = t(e);
return i ? document.querySelector(i) : null
},
n = t => {
t.dispatchEvent(new Event("transitionend"))
},
s = t => !(!t || "object" != typeof t) && (void 0 !== t.jquery && (t = t[0]), void 0 !== t.nodeType),
o = t => s(t) ? t.jquery ? t[0] : t : "string" == typeof t && t.length > 0 ? document.querySelector(t) : null,
r = (t, e, i) => {
Object.keys(i).forEach(n => {
const o = i[n],
r = e[n],
a = r && s(r) ? "element" : null == (l = r) ? "" + l : {}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();
var l;
if (!new RegExp(o).test(a)) throw new TypeError(`${t.toUpperCase()}: Option "${n}" provided type "${a}" but expected type "${o}".`)
})
},
a = t => !(!s(t) || 0 === t.getClientRects().length) && "visible" === getComputedStyle(t).getPropertyValue("visibility"),
l = t => !t || t.nodeType !== Node.ELEMENT_NODE || !!t.classList.contains("disabled") || (void 0 !== t.disabled ? t.disabled : t.hasAttribute("disabled") && "false" !== t.getAttribute("disabled")),
c = t => {
if (!document.documentElement.attachShadow) return null;
if ("function" == typeof t.getRootNode) {
const e = t.getRootNode();
return e instanceof ShadowRoot ? e : null
}
return t instanceof ShadowRoot ? t : t.parentNode ? c(t.parentNode) : null
},
h = () => {},
d = t => {
t.offsetHeight
},
u = () => {
const {
jQuery: t
} = window;
return t && !document.body.hasAttribute("data-bs-no-jquery") ? t : null
},
f = [],
p = () => "rtl" === document.documentElement.dir,
m = t => {
var e;
e = () => {
const e = u();
if (e) {
const i = t.NAME,
n = e.fn[i];
e.fn[i] = t.jQueryInterface, e.fn[i].Constructor = t, e.fn[i].noConflict = () => (e.fn[i] = n, t.jQueryInterface)
}
}, "loading" === document.readyState ? (f.length || document.addEventListener("DOMContentLoaded", () => {
f.forEach(t => t())
}), f.push(e)) : e()
},
g = t => {
"function" == typeof t && t()
},
_ = (t, e, i = !0) => {
if (!i) return void g(t);
const s = (t => {
if (!t) return 0;
let {
transitionDuration: e,
transitionDelay: i
} = window.getComputedStyle(t);
const n = Number.parseFloat(e),
s = Number.parseFloat(i);
return n || s ? (e = e.split(",")[0], i = i.split(",")[0], 1e3 * (Number.parseFloat(e) + Number.parseFloat(i))) : 0
})(e) + 5;
let o = !1;
const r = ({
target: i
}) => {
i === e && (o = !0, e.removeEventListener("transitionend", r), g(t))
};
e.addEventListener("transitionend", r), setTimeout(() => {
o || n(e)
}, s)
},
b = (t, e, i, n) => {
let s = t.indexOf(e);
if (-1 === s) return t[!i && n ? t.length - 1 : 0];
const o = t.length;
return s += i ? 1 : -1, n && (s = (s + o) % o), t[Math.max(0, Math.min(s, o - 1))]
},
v = /[^.]*(?=\..*)\.|.*/,
y = /\..*/,
w = /::\d+$/,
E = {};
let A = 1;
const T = {
mouseenter: "mouseover",
mouseleave: "mouseout"
},
O = /^(mouseenter|mouseleave)/i,
C = new Set(["click", "dblclick", "mouseup", "mousedown", "contextmenu", "mousewheel", "DOMMouseScroll", "mouseover", "mouseout", "mousemove", "selectstart", "selectend", "keydown", "keypress", "keyup", "orientationchange", "touchstart", "touchmove", "touchend", "touchcancel", "pointerdown", "pointermove", "pointerup", "pointerleave", "pointercancel", "gesturestart", "gesturechange", "gestureend", "focus", "blur", "change", "reset", "select", "submit", "focusin", "focusout", "load", "unload", "beforeunload", "resize", "move", "DOMContentLoaded", "readystatechange", "error", "abort", "scroll"]);
function k(t, e) {
return e && `${e}::${A++}` || t.uidEvent || A++
}
function L(t) {
const e = k(t);
return t.uidEvent = e, E[e] = E[e] || {}, E[e]
}
function x(t, e, i = null) {
const n = Object.keys(t);
for (let s = 0, o = n.length; s < o; s++) {
const o = t[n[s]];
if (o.originalHandler === e && o.delegationSelector === i) return o
}
return null
}
function D(t, e, i) {
const n = "string" == typeof e,
s = n ? i : e;
let o = I(t);
return C.has(o) || (o = t), [n, s, o]
}
function S(t, e, i, n, s) {
if ("string" != typeof e || !t) return;
if (i || (i = n, n = null), O.test(e)) {
const t = t => function (e) {
if (!e.relatedTarget || e.relatedTarget !== e.delegateTarget && !e.delegateTarget.contains(e.relatedTarget)) return t.call(this, e)
};
n ? n = t(n) : i = t(i)
}
const [o, r, a] = D(e, i, n), l = L(t), c = l[a] || (l[a] = {}), h = x(c, r, o ? i : null);
if (h) return void(h.oneOff = h.oneOff && s);
const d = k(r, e.replace(v, "")),
u = o ? function (t, e, i) {
return function n(s) {
const o = t.querySelectorAll(e);
for (let {
target: r
} = s; r && r !== this; r = r.parentNode)
for (let a = o.length; a--;)
if (o[a] === r) return s.delegateTarget = r, n.oneOff && P.off(t, s.type, e, i), i.apply(r, [s]);
return null
}
}(t, i, n) : function (t, e) {
return function i(n) {
return n.delegateTarget = t, i.oneOff && P.off(t, n.type, e), e.apply(t, [n])
}
}(t, i);
u.delegationSelector = o ? i : null, u.originalHandler = r, u.oneOff = s, u.uidEvent = d, c[d] = u, t.addEventListener(a, u, o)
}
function N(t, e, i, n, s) {
const o = x(e[i], n, s);
o && (t.removeEventListener(i, o, Boolean(s)), delete e[i][o.uidEvent])
}
function I(t) {
return t = t.replace(y, ""), T[t] || t
}
const P = {
on(t, e, i, n) {
S(t, e, i, n, !1)
},
one(t, e, i, n) {
S(t, e, i, n, !0)
},
off(t, e, i, n) {
if ("string" != typeof e || !t) return;
const [s, o, r] = D(e, i, n), a = r !== e, l = L(t), c = e.startsWith(".");
if (void 0 !== o) {
if (!l || !l[r]) return;
return void N(t, l, r, o, s ? i : null)
}
c && Object.keys(l).forEach(i => {
! function (t, e, i, n) {
const s = e[i] || {};
Object.keys(s).forEach(o => {
if (o.includes(n)) {
const n = s[o];
N(t, e, i, n.originalHandler, n.delegationSelector)
}
})
}(t, l, i, e.slice(1))
});
const h = l[r] || {};
Object.keys(h).forEach(i => {
const n = i.replace(w, "");
if (!a || e.includes(n)) {
const e = h[i];
N(t, l, r, e.originalHandler, e.delegationSelector)
}
})
},
trigger(t, e, i) {
if ("string" != typeof e || !t) return null;
const n = u(),
s = I(e),
o = e !== s,
r = C.has(s);
let a, l = !0,
c = !0,
h = !1,
d = null;
return o && n && (a = n.Event(e, i), n(t).trigger(a), l = !a.isPropagationStopped(), c = !a.isImmediatePropagationStopped(), h = a.isDefaultPrevented()), r ? (d = document.createEvent("HTMLEvents"), d.initEvent(s, l, !0)) : d = new CustomEvent(e, {
bubbles: l,
cancelable: !0
}), void 0 !== i && Object.keys(i).forEach(t => {
Object.defineProperty(d, t, {
get: () => i[t]
})
}), h && d.preventDefault(), c && t.dispatchEvent(d), d.defaultPrevented && void 0 !== a && a.preventDefault(), d
}
},
j = new Map;
var M = {
set(t, e, i) {
j.has(t) || j.set(t, new Map);
const n = j.get(t);
n.has(e) || 0 === n.size ? n.set(e, i) : console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)
},
get: (t, e) => j.has(t) && j.get(t).get(e) || null,
remove(t, e) {
if (!j.has(t)) return;
const i = j.get(t);
i.delete(e), 0 === i.size && j.delete(t)
}
};
class H {
constructor(t) {
(t = o(t)) && (this._element = t, M.set(this._element, this.constructor.DATA_KEY, this))
}
dispose() {
M.remove(this._element, this.constructor.DATA_KEY), P.off(this._element, this.constructor.EVENT_KEY), Object.getOwnPropertyNames(this).forEach(t => {
this[t] = null
})
}
_queueCallback(t, e, i = !0) {
_(t, e, i)
}
static getInstance(t) {
return M.get(o(t), this.DATA_KEY)
}
static getOrCreateInstance(t, e = {}) {
return this.getInstance(t) || new this(t, "object" == typeof e ? e : null)
}
static get VERSION() {
return "5.1.0"
}
static get NAME() {
throw new Error('You have to implement the static method "NAME", for each component!')
}
static get DATA_KEY() {
return "bs." + this.NAME
}
static get EVENT_KEY() {
return "." + this.DATA_KEY
}
}
const B = (t, e = "hide") => {
const n = "click.dismiss" + t.EVENT_KEY,
s = t.NAME;
P.on(document, n, `[data-bs-dismiss="${s}"]`, (function (n) {
if (["A", "AREA"].includes(this.tagName) && n.preventDefault(), l(this)) return;
const o = i(this) || this.closest("." + s);
t.getOrCreateInstance(o)[e]()
}))
};
class R extends H {
static get NAME() {
return "alert"
}
close() {
if (P.trigger(this._element, "close.bs.alert").defaultPrevented) return;
this._element.classList.remove("show");
const t = this._element.classList.contains("fade");
this._queueCallback(() => this._destroyElement(), this._element, t)
}
_destroyElement() {
this._element.remove(), P.trigger(this._element, "closed.bs.alert"), this.dispose()
}
static jQueryInterface(t) {
return this.each((function () {
const e = R.getOrCreateInstance(this);
if ("string" == typeof t) {
if (void 0 === e[t] || t.startsWith("_") || "constructor" === t) throw new TypeError(`No method named "${t}"`);
e[t](this)
}
}))
}
}
B(R, "close"), m(R);
class W extends H {
static get NAME() {
return "button"
}
toggle() {
this._element.setAttribute("aria-pressed", this._element.classList.toggle("active"))
}
static jQueryInterface(t) {
return this.each((function () {
const e = W.getOrCreateInstance(this);
"toggle" === t && e[t]()
}))
}
}
function z(t) {
return "true" === t || "false" !== t && (t === Number(t).toString() ? Number(t) : "" === t || "null" === t ? null : t)
}
function q(t) {
return t.replace(/[A-Z]/g, t => "-" + t.toLowerCase())
}
P.on(document, "click.bs.button.data-api", '[data-bs-toggle="button"]', t => {
t.preventDefault();
const e = t.target.closest('[data-bs-toggle="button"]');
W.getOrCreateInstance(e).toggle()
}), m(W);
const F = {
setDataAttribute(t, e, i) {
t.setAttribute("data-bs-" + q(e), i)
},
removeDataAttribute(t, e) {
t.removeAttribute("data-bs-" + q(e))
},
getDataAttributes(t) {
if (!t) return {};
const e = {};
return Object.keys(t.dataset).filter(t => t.startsWith("bs")).forEach(i => {
let n = i.replace(/^bs/, "");
n = n.charAt(0).toLowerCase() + n.slice(1, n.length), e[n] = z(t.dataset[i])
}), e
},
getDataAttribute: (t, e) => z(t.getAttribute("data-bs-" + q(e))),
offset(t) {
const e = t.getBoundingClientRect();
return {
top: e.top + window.pageYOffset,
left: e.left + window.pageXOffset
}
},
position: t => ({
top: t.offsetTop,
left: t.offsetLeft
})
},
U = {
find: (t, e = document.documentElement) => [].concat(...Element.prototype.querySelectorAll.call(e, t)),
findOne: (t, e = document.documentElement) => Element.prototype.querySelector.call(e, t),
children: (t, e) => [].concat(...t.children).filter(t => t.matches(e)),
parents(t, e) {
const i = [];
let n = t.parentNode;
for (; n && n.nodeType === Node.ELEMENT_NODE && 3 !== n.nodeType;) n.matches(e) && i.push(n), n = n.parentNode;
return i
},
prev(t, e) {
let i = t.previousElementSibling;
for (; i;) {
if (i.matches(e)) return [i];
i = i.previousElementSibling
}
return []
},
next(t, e) {
let i = t.nextElementSibling;
for (; i;) {
if (i.matches(e)) return [i];
i = i.nextElementSibling
}
return []
},
focusableChildren(t) {
const e = ["a", "button", "input", "textarea", "select", "details", "[tabindex]", '[contenteditable="true"]'].map(t => t + ':not([tabindex^="-"])').join(", ");
return this.find(e, t).filter(t => !l(t) && a(t))
}
},
$ = {
interval: 5e3,
keyboard: !0,
slide: !1,
pause: "hover",
wrap: !0,
touch: !0
},
V = {
interval: "(number|boolean)",
keyboard: "boolean",
slide: "(boolean|string)",
pause: "(string|boolean)",
wrap: "boolean",
touch: "boolean"
},
K = "next",
X = "prev",
Y = "left",
Q = "right",
G = {
ArrowLeft: Q,
ArrowRight: Y
};
class Z extends H {
constructor(t, e) {
super(t), this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this.touchStartX = 0, this.touchDeltaX = 0, this._config = this._getConfig(e), this._indicatorsElement = U.findOne(".carousel-indicators", this._element), this._touchSupported = "ontouchstart" in document.documentElement || navigator.maxTouchPoints > 0, this._pointerEvent = Boolean(window.PointerEvent), this._addEventListeners()
}
static get Default() {
return $
}
static get NAME() {
return "carousel"
}
next() {
this._slide(K)
}
nextWhenVisible() {
!document.hidden && a(this._element) && this.next()
}
prev() {
this._slide(X)
}
pause(t) {
t || (this._isPaused = !0), U.findOne(".carousel-item-next, .carousel-item-prev", this._element) && (n(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null
}
cycle(t) {
t || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config && this._config.interval && !this._isPaused && (this._updateInterval(), this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval))
}
to(t) {
this._activeElement = U.findOne(".active.carousel-item", this._element);
const e = this._getItemIndex(this._activeElement);
if (t > this._items.length - 1 || t < 0) return;
if (this._isSliding) return void P.one(this._element, "slid.bs.carousel", () => this.to(t));
if (e === t) return this.pause(), void this.cycle();
const i = t > e ? K : X;
this._slide(i, this._items[t])
}
_getConfig(t) {
return t = {
...$,
...F.getDataAttributes(this._element),
..."object" == typeof t ? t : {}
}, r("carousel", t, V), t
}
_handleSwipe() {
const t = Math.abs(this.touchDeltaX);
if (t <= 40) return;
const e = t / this.touchDeltaX;
this.touchDeltaX = 0, e && this._slide(e > 0 ? Q : Y)
}
_addEventListeners() {
this._config.keyboard && P.on(this._element, "keydown.bs.carousel", t => this._keydown(t)), "hover" === this._config.pause && (P.on(this._element, "mouseenter.bs.carousel", t => this.pause(t)), P.on(this._element, "mouseleave.bs.carousel", t => this.cycle(t))), this._config.touch && this._touchSupported && this._addTouchEventListeners()
}
_addTouchEventListeners() {
const t = t => {
!this._pointerEvent || "pen" !== t.pointerType && "touch" !== t.pointerType ? this._pointerEvent || (this.touchStartX = t.touches[0].clientX) : this.touchStartX = t.clientX
},
e = t => {
this.touchDeltaX = t.touches && t.touches.length > 1 ? 0 : t.touches[0].clientX - this.touchStartX
},
i = t => {
!this._pointerEvent || "pen" !== t.pointerType && "touch" !== t.pointerType || (this.touchDeltaX = t.clientX - this.touchStartX), this._handleSwipe(), "hover" === this._config.pause && (this.pause(), this.touchTimeout && clearTimeout(this.touchTimeout), this.touchTimeout = setTimeout(t => this.cycle(t), 500 + this._config.interval))
};
U.find(".carousel-item img", this._element).forEach(t => {
P.on(t, "dragstart.bs.carousel", t => t.preventDefault())
}), this._pointerEvent ? (P.on(this._element, "pointerdown.bs.carousel", e => t(e)), P.on(this._element, "pointerup.bs.carousel", t => i(t)), this._element.classList.add("pointer-event")) : (P.on(this._element, "touchstart.bs.carousel", e => t(e)), P.on(this._element, "touchmove.bs.carousel", t => e(t)), P.on(this._element, "touchend.bs.carousel", t => i(t)))
}
_keydown(t) {
if (/input|textarea/i.test(t.target.tagName)) return;
const e = G[t.key];
e && (t.preventDefault(), this._slide(e))
}
_getItemIndex(t) {
return this._items = t && t.parentNode ? U.find(".carousel-item", t.parentNode) : [], this._items.indexOf(t)
}
_getItemByOrder(t, e) {
const i = t === K;
return b(this._items, e, i, this._config.wrap)
}
_triggerSlideEvent(t, e) {
const i = this._getItemIndex(t),
n = this._getItemIndex(U.findOne(".active.carousel-item", this._element));
return P.trigger(this._element, "slide.bs.carousel", {
relatedTarget: t,
direction: e,
from: n,
to: i
})
}
_setActiveIndicatorElement(t) {
if (this._indicatorsElement) {
const e = U.findOne(".active", this._indicatorsElement);
e.classList.remove("active"), e.removeAttribute("aria-current");
const i = U.find("[data-bs-target]", this._indicatorsElement);
for (let e = 0; e < i.length; e++)
if (Number.parseInt(i[e].getAttribute("data-bs-slide-to"), 10) === this._getItemIndex(t)) {
i[e].classList.add("active"), i[e].setAttribute("aria-current", "true");
break
}
}
}
_updateInterval() {
const t = this._activeElement || U.findOne(".active.carousel-item", this._element);
if (!t) return;
const e = Number.parseInt(t.getAttribute("data-bs-interval"), 10);
e ? (this._config.defaultInterval = this._config.defaultInterval || this._config.interval, this._config.interval = e) : this._config.interval = this._config.defaultInterval || this._config.interval
}
_slide(t, e) {
const i = this._directionToOrder(t),
n = U.findOne(".active.carousel-item", this._element),
s = this._getItemIndex(n),
o = e || this._getItemByOrder(i, n),
r = this._getItemIndex(o),
a = Boolean(this._interval),
l = i === K,
c = l ? "carousel-item-start" : "carousel-item-end",
h = l ? "carousel-item-next" : "carousel-item-prev",
u = this._orderToDirection(i);
if (o && o.classList.contains("active")) return void(this._isSliding = !1);
if (this._isSliding) return;
if (this._triggerSlideEvent(o, u).defaultPrevented) return;
if (!n || !o) return;
this._isSliding = !0, a && this.pause(), this._setActiveIndicatorElement(o), this._activeElement = o;
const f = () => {
P.trigger(this._element, "slid.bs.carousel", {
relatedTarget: o,
direction: u,
from: s,
to: r
})
};
if (this._element.classList.contains("slide")) {
o.classList.add(h), d(o), n.classList.add(c), o.classList.add(c);
const t = () => {
o.classList.remove(c, h), o.classList.add("active"), n.classList.remove("active", h, c), this._isSliding = !1, setTimeout(f, 0)
};
this._queueCallback(t, n, !0)
} else n.classList.remove("active"), o.classList.add("active"), this._isSliding = !1, f();
a && this.cycle()
}
_directionToOrder(t) {
return [Q, Y].includes(t) ? p() ? t === Y ? X : K : t === Y ? K : X : t
}
_orderToDirection(t) {
return [K, X].includes(t) ? p() ? t === X ? Y : Q : t === X ? Q : Y : t
}
static carouselInterface(t, e) {
const i = Z.getOrCreateInstance(t, e);
let {
_config: n
} = i;
"object" == typeof e && (n = {
...n,
...e
});
const s = "string" == typeof e ? e : n.slide;
if ("number" == typeof e) i.to(e);
else if ("string" == typeof s) {
if (void 0 === i[s]) throw new TypeError(`No method named "${s}"`);
i[s]()
} else n.interval && n.ride && (i.pause(), i.cycle())
}
static jQueryInterface(t) {
return this.each((function () {
Z.carouselInterface(this, t)
}))
}
static dataApiClickHandler(t) {
const e = i(this);
if (!e || !e.classList.contains("carousel")) return;
const n = {
...F.getDataAttributes(e),
...F.getDataAttributes(this)
},
s = this.getAttribute("data-bs-slide-to");
s && (n.interval = !1), Z.carouselInterface(e, n), s && Z.getInstance(e).to(s), t.preventDefault()
}
}
P.on(document, "click.bs.carousel.data-api", "[data-bs-slide], [data-bs-slide-to]", Z.dataApiClickHandler), P.on(window, "load.bs.carousel.data-api", () => {
const t = U.find('[data-bs-ride="carousel"]');
for (let e = 0, i = t.length; e < i; e++) Z.carouselInterface(t[e], Z.getInstance(t[e]))
}), m(Z);
const J = {
toggle: !0,
parent: null
},
tt = {
toggle: "boolean",
parent: "(null|element)"
};
class et extends H {
constructor(t, i) {
super(t), this._isTransitioning = !1, this._config = this._getConfig(i), this._triggerArray = [];
const n = U.find('[data-bs-toggle="collapse"]');
for (let t = 0, i = n.length; t < i; t++) {
const i = n[t],
s = e(i),
o = U.find(s).filter(t => t === this._element);
null !== s && o.length && (this._selector = s, this._triggerArray.push(i))
}
this._initializeChildren(), this._config.parent || this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()), this._config.toggle && this.toggle()
}
static get Default() {
return J
}
static get NAME() {
return "collapse"
}
toggle() {
this._isShown() ? this.hide() : this.show()
}
show() {
if (this._isTransitioning || this._isShown()) return;
let t, e = [];
if (this._config.parent) {
const t = U.find(".collapse .collapse", this._config.parent);
e = U.find(".show, .collapsing", this._config.parent).filter(e => !t.includes(e))
}
const i = U.findOne(this._selector);
if (e.length) {
const n = e.find(t => i !== t);
if (t = n ? et.getInstance(n) : null, t && t._isTransitioning) return
}
if (P.trigger(this._element, "show.bs.collapse").defaultPrevented) return;
e.forEach(e => {
i !== e && et.getOrCreateInstance(e, {
toggle: !1
}).hide(), t || M.set(e, "bs.collapse", null)
});
const n = this._getDimension();
this._element.classList.remove("collapse"), this._element.classList.add("collapsing"), this._element.style[n] = 0, this._addAriaAndCollapsedClass(this._triggerArray, !0), this._isTransitioning = !0;
const s = "scroll" + (n[0].toUpperCase() + n.slice(1));
this._queueCallback(() => {
this._isTransitioning = !1, this._element.classList.remove("collapsing"), this._element.classList.add("collapse", "show"), this._element.style[n] = "", P.trigger(this._element, "shown.bs.collapse")
}, this._element, !0), this._element.style[n] = this._element[s] + "px"
}
hide() {
if (this._isTransitioning || !this._isShown()) return;
if (P.trigger(this._element, "hide.bs.collapse").defaultPrevented) return;
const t = this._getDimension();
this._element.style[t] = this._element.getBoundingClientRect()[t] + "px", d(this._element), this._element.classList.add("collapsing"), this._element.classList.remove("collapse", "show");
const e = this._triggerArray.length;
for (let t = 0; t < e; t++) {
const e = this._triggerArray[t],
n = i(e);
n && !this._isShown(n) && this._addAriaAndCollapsedClass([e], !1)
}
this._isTransitioning = !0, this._element.style[t] = "", this._queueCallback(() => {
this._isTransitioning = !1, this._element.classList.remove("collapsing"), this._element.classList.add("collapse"), P.trigger(this._element, "hidden.bs.collapse")
}, this._element, !0)
}
_isShown(t = this._element) {
return t.classList.contains("show")
}
_getConfig(t) {
return (t = {
...J,
...F.getDataAttributes(this._element),
...t
}).toggle = Boolean(t.toggle), t.parent = o(t.parent), r("collapse", t, tt), t
}
_getDimension() {
return this._element.classList.contains("collapse-horizontal") ? "width" : "height"
}
_initializeChildren() {
if (!this._config.parent) return;
const t = U.find(".collapse .collapse", this._config.parent);
U.find('[data-bs-toggle="collapse"]', this._config.parent).filter(e => !t.includes(e)).forEach(t => {
const e = i(t);
e && this._addAriaAndCollapsedClass([t], this._isShown(e))
})
}
_addAriaAndCollapsedClass(t, e) {
t.length && t.forEach(t => {
e ? t.classList.remove("collapsed") : t.classList.add("collapsed"), t.setAttribute("aria-expanded", e)
})
}
static jQueryInterface(t) {
return this.each((function () {
const e = {};
"string" == typeof t && /show|hide/.test(t) && (e.toggle = !1);
const i = et.getOrCreateInstance(this, e);
if ("string" == typeof t) {
if (void 0 === i[t]) throw new TypeError(`No method named "${t}"`);
i[t]()
}
}))
}
}
P.on(document, "click.bs.collapse.data-api", '[data-bs-toggle="collapse"]', (function (t) {
("A" === t.target.tagName || t.delegateTarget && "A" === t.delegateTarget.tagName) && t.preventDefault();
const i = e(this);
U.find(i).forEach(t => {
et.getOrCreateInstance(t, {
toggle: !1
}).toggle()
})
})), m(et);
var it = "top",
nt = "bottom",
st = "right",
ot = "left",
rt = [it, nt, st, ot],
at = rt.reduce((function (t, e) {
return t.concat([e + "-start", e + "-end"])
}), []),
lt = [].concat(rt, ["auto"]).reduce((function (t, e) {
return t.concat([e, e + "-start", e + "-end"])
}), []),
ct = ["beforeRead", "read", "afterRead", "beforeMain", "main", "afterMain", "beforeWrite", "write", "afterWrite"];
function ht(t) {
return t ? (t.nodeName || "").toLowerCase() : null
}
function dt(t) {
if (null == t) return window;
if ("[object Window]" !== t.toString()) {
var e = t.ownerDocument;
return e && e.defaultView || window
}
return t
}
function ut(t) {
return t instanceof dt(t).Element || t instanceof Element
}
function ft(t) {
return t instanceof dt(t).HTMLElement || t instanceof HTMLElement
}
function pt(t) {
return "undefined" != typeof ShadowRoot && (t instanceof dt(t).ShadowRoot || t instanceof ShadowRoot)
}
var mt = {
name: "applyStyles",
enabled: !0,
phase: "write",
fn: function (t) {
var e = t.state;
Object.keys(e.elements).forEach((function (t) {
var i = e.styles[t] || {},
n = e.attributes[t] || {},
s = e.elements[t];
ft(s) && ht(s) && (Object.assign(s.style, i), Object.keys(n).forEach((function (t) {
var e = n[t];
!1 === e ? s.removeAttribute(t) : s.setAttribute(t, !0 === e ? "" : e)
})))
}))
},
effect: function (t) {
var e = t.state,
i = {
popper: {
position: e.options.strategy,
left: "0",
top: "0",
margin: "0"
},
arrow: {
position: "absolute"
},
reference: {}
};
return Object.assign(e.elements.popper.style, i.popper), e.styles = i, e.elements.arrow && Object.assign(e.elements.arrow.style, i.arrow),
function () {
Object.keys(e.elements).forEach((function (t) {
var n = e.elements[t],
s = e.attributes[t] || {},
o = Object.keys(e.styles.hasOwnProperty(t) ? e.styles[t] : i[t]).reduce((function (t, e) {
return t[e] = "", t
}), {});
ft(n) && ht(n) && (Object.assign(n.style, o), Object.keys(s).forEach((function (t) {
n.removeAttribute(t)
})))
}))
}
},
requires: ["computeStyles"]
};
function gt(t) {
return t.split("-")[0]
}
var _t = Math.round;
function bt(t, e) {
void 0 === e && (e = !1);
var i = t.getBoundingClientRect(),
n = 1,
s = 1;
return ft(t) && e && (n = i.width / t.offsetWidth || 1, s = i.height / t.offsetHeight || 1), {
width: _t(i.width / n),
height: _t(i.height / s),
top: _t(i.top / s),
right: _t(i.right / n),
bottom: _t(i.bottom / s),
left: _t(i.left / n),
x: _t(i.left / n),
y: _t(i.top / s)
}
}
function vt(t) {
var e = bt(t),
i = t.offsetWidth,
n = t.offsetHeight;
return Math.abs(e.width - i) <= 1 && (i = e.width), Math.abs(e.height - n) <= 1 && (n = e.height), {
x: t.offsetLeft,
y: t.offsetTop,
width: i,
height: n
}
}
function yt(t, e) {
var i = e.getRootNode && e.getRootNode();
if (t.contains(e)) return !0;
if (i && pt(i)) {
var n = e;
do {
if (n && t.isSameNode(n)) return !0;
n = n.parentNode || n.host
} while (n)
}
return !1
}
function wt(t) {
return dt(t).getComputedStyle(t)
}
function Et(t) {
return ["table", "td", "th"].indexOf(ht(t)) >= 0
}
function At(t) {
return ((ut(t) ? t.ownerDocument : t.document) || window.document).documentElement
}
function Tt(t) {
return "html" === ht(t) ? t : t.assignedSlot || t.parentNode || (pt(t) ? t.host : null) || At(t)
}
function Ot(t) {
return ft(t) && "fixed" !== wt(t).position ? t.offsetParent : null
}
function Ct(t) {
for (var e = dt(t), i = Ot(t); i && Et(i) && "static" === wt(i).position;) i = Ot(i);
return i && ("html" === ht(i) || "body" === ht(i) && "static" === wt(i).position) ? e : i || function (t) {
var e = -1 !== navigator.userAgent.toLowerCase().indexOf("firefox");
if (-1 !== navigator.userAgent.indexOf("Trident") && ft(t) && "fixed" === wt(t).position) return null;
for (var i = Tt(t); ft(i) && ["html", "body"].indexOf(ht(i)) < 0;) {
var n = wt(i);
if ("none" !== n.transform || "none" !== n.perspective || "paint" === n.contain || -1 !== ["transform", "perspective"].indexOf(n.willChange) || e && "filter" === n.willChange || e && n.filter && "none" !== n.filter) return i;
i = i.parentNode
}
return null
}(t) || e
}
function kt(t) {
return ["top", "bottom"].indexOf(t) >= 0 ? "x" : "y"
}
var Lt = Math.max,
xt = Math.min,
Dt = Math.round;
function St(t, e, i) {
return Lt(t, xt(e, i))
}
function Nt(t) {
return Object.assign({}, {
top: 0,
right: 0,
bottom: 0,
left: 0
}, t)
}
function It(t, e) {
return e.reduce((function (e, i) {
return e[i] = t, e
}), {})
}
var Pt = {
name: "arrow",
enabled: !0,
phase: "main",
fn: function (t) {
var e, i = t.state,
n = t.name,
s = t.options,
o = i.elements.arrow,
r = i.modifiersData.popperOffsets,
a = gt(i.placement),
l = kt(a),
c = [ot, st].indexOf(a) >= 0 ? "height" : "width";
if (o && r) {
var h = function (t, e) {
return Nt("number" != typeof (t = "function" == typeof t ? t(Object.assign({}, e.rects, {
placement: e.placement
})) : t) ? t : It(t, rt))
}(s.padding, i),
d = vt(o),
u = "y" === l ? it : ot,
f = "y" === l ? nt : st,
p = i.rects.reference[c] + i.rects.reference[l] - r[l] - i.rects.popper[c],
m = r[l] - i.rects.reference[l],
g = Ct(o),
_ = g ? "y" === l ? g.clientHeight || 0 : g.clientWidth || 0 : 0,
b = p / 2 - m / 2,
v = h[u],
y = _ - d[c] - h[f],
w = _ / 2 - d[c] / 2 + b,
E = St(v, w, y),
A = l;
i.modifiersData[n] = ((e = {})[A] = E, e.centerOffset = E - w, e)
}
},
effect: function (t) {
var e = t.state,
i = t.options.element,
n = void 0 === i ? "[data-popper-arrow]" : i;
null != n && ("string" != typeof n || (n = e.elements.popper.querySelector(n))) && yt(e.elements.popper, n) && (e.elements.arrow = n)
},
requires: ["popperOffsets"],
requiresIfExists: ["preventOverflow"]
},
jt = {
top: "auto",
right: "auto",
bottom: "auto",
left: "auto"
};
function Mt(t) {
var e, i = t.popper,
n = t.popperRect,
s = t.placement,
o = t.offsets,
r = t.position,
a = t.gpuAcceleration,
l = t.adaptive,
c = t.roundOffsets,
h = !0 === c ? function (t) {
var e = t.x,
i = t.y,
n = window.devicePixelRatio || 1;
return {
x: Dt(Dt(e * n) / n) || 0,
y: Dt(Dt(i * n) / n) || 0
}
}(o) : "function" == typeof c ? c(o) : o,
d = h.x,
u = void 0 === d ? 0 : d,
f = h.y,
p = void 0 === f ? 0 : f,
m = o.hasOwnProperty("x"),
g = o.hasOwnProperty("y"),
_ = ot,
b = it,
v = window;
if (l) {
var y = Ct(i),
w = "clientHeight",
E = "clientWidth";
y === dt(i) && "static" !== wt(y = At(i)).position && (w = "scrollHeight", E = "scrollWidth"), y = y, s === it && (b = nt, p -= y[w] - n.height, p *= a ? 1 : -1), s === ot && (_ = st, u -= y[E] - n.width, u *= a ? 1 : -1)
}
var A, T = Object.assign({
position: r
}, l && jt);
return a ? Object.assign({}, T, ((A = {})[b] = g ? "0" : "", A[_] = m ? "0" : "", A.transform = (v.devicePixelRatio || 1) < 2 ? "translate(" + u + "px, " + p + "px)" : "translate3d(" + u + "px, " + p + "px, 0)", A)) : Object.assign({}, T, ((e = {})[b] = g ? p + "px" : "", e[_] = m ? u + "px" : "", e.transform = "", e))
}
var Ht = {
name: "computeStyles",
enabled: !0,
phase: "beforeWrite",
fn: function (t) {
var e = t.state,
i = t.options,
n = i.gpuAcceleration,
s = void 0 === n || n,
o = i.adaptive,
r = void 0 === o || o,
a = i.roundOffsets,
l = void 0 === a || a,
c = {
placement: gt(e.placement),
popper: e.elements.popper,
popperRect: e.rects.popper,
gpuAcceleration: s
};
null != e.modifiersData.popperOffsets && (e.styles.popper = Object.assign({}, e.styles.popper, Mt(Object.assign({}, c, {
offsets: e.modifiersData.popperOffsets,
position: e.options.strategy,
adaptive: r,
roundOffsets: l
})))), null != e.modifiersData.arrow && (e.styles.arrow = Object.assign({}, e.styles.arrow, Mt(Object.assign({}, c, {
offsets: e.modifiersData.arrow,
position: "absolute",
adaptive: !1,
roundOffsets: l
})))), e.attributes.popper = Object.assign({}, e.attributes.popper, {
"data-popper-placement": e.placement
})
},
data: {}
},
Bt = {
passive: !0
},
Rt = {
name: "eventListeners",
enabled: !0,
phase: "write",
fn: function () {},
effect: function (t) {
var e = t.state,
i = t.instance,
n = t.options,
s = n.scroll,
o = void 0 === s || s,
r = n.resize,
a = void 0 === r || r,
l = dt(e.elements.popper),
c = [].concat(e.scrollParents.reference, e.scrollParents.popper);
return o && c.forEach((function (t) {
t.addEventListener("scroll", i.update, Bt)
})), a && l.addEventListener("resize", i.update, Bt),
function () {
o && c.forEach((function (t) {
t.removeEventListener("scroll", i.update, Bt)
})), a && l.removeEventListener("resize", i.update, Bt)
}
},
data: {}
},
Wt = {
left: "right",
right: "left",
bottom: "top",
top: "bottom"
};
function zt(t) {
return t.replace(/left|right|bottom|top/g, (function (t) {
return Wt[t]
}))
}
var qt = {
start: "end",
end: "start"
};
function Ft(t) {
return t.replace(/start|end/g, (function (t) {
return qt[t]
}))
}
function Ut(t) {
var e = dt(t);
return {
scrollLeft: e.pageXOffset,
scrollTop: e.pageYOffset
}
}
function $t(t) {
return bt(At(t)).left + Ut(t).scrollLeft
}
function Vt(t) {
var e = wt(t),
i = e.overflow,
n = e.overflowX,
s = e.overflowY;
return /auto|scroll|overlay|hidden/.test(i + s + n)
}
function Kt(t, e) {
var i;
void 0 === e && (e = []);
var n = function t(e) {
return ["html", "body", "#document"].indexOf(ht(e)) >= 0 ? e.ownerDocument.body : ft(e) && Vt(e) ? e : t(Tt(e))
}(t),
s = n === (null == (i = t.ownerDocument) ? void 0 : i.body),
o = dt(n),
r = s ? [o].concat(o.visualViewport || [], Vt(n) ? n : []) : n,
a = e.concat(r);
return s ? a : a.concat(Kt(Tt(r)))
}
function Xt(t) {
return Object.assign({}, t, {
left: t.x,
top: t.y,
right: t.x + t.width,
bottom: t.y + t.height
})
}
function Yt(t, e) {
return "viewport" === e ? Xt(function (t) {
var e = dt(t),
i = At(t),
n = e.visualViewport,
s = i.clientWidth,
o = i.clientHeight,
r = 0,
a = 0;
return n && (s = n.width, o = n.height, /^((?!chrome|android).)*safari/i.test(navigator.userAgent) || (r = n.offsetLeft, a = n.offsetTop)), {
width: s,
height: o,
x: r + $t(t),
y: a
}
}(t)) : ft(e) ? function (t) {
var e = bt(t);
return e.top = e.top + t.clientTop, e.left = e.left + t.clientLeft, e.bottom = e.top + t.clientHeight, e.right = e.left + t.clientWidth, e.width = t.clientWidth, e.height = t.clientHeight, e.x = e.left, e.y = e.top, e
}(e) : Xt(function (t) {
var e, i = At(t),
n = Ut(t),
s = null == (e = t.ownerDocument) ? void 0 : e.body,
o = Lt(i.scrollWidth, i.clientWidth, s ? s.scrollWidth : 0, s ? s.clientWidth : 0),
r = Lt(i.scrollHeight, i.clientHeight, s ? s.scrollHeight : 0, s ? s.clientHeight : 0),
a = -n.scrollLeft + $t(t),
l = -n.scrollTop;
return "rtl" === wt(s || i).direction && (a += Lt(i.clientWidth, s ? s.clientWidth : 0) - o), {
width: o,
height: r,
x: a,
y: l
}
}(At(t)))
}
function Qt(t) {
return t.split("-")[1]
}
function Gt(t) {
var e, i = t.reference,
n = t.element,
s = t.placement,
o = s ? gt(s) : null,
r = s ? Qt(s) : null,
a = i.x + i.width / 2 - n.width / 2,
l = i.y + i.height / 2 - n.height / 2;
switch (o) {
case it:
e = {
x: a,
y: i.y - n.height
};
break;
case nt:
e = {
x: a,
y: i.y + i.height
};
break;
case st:
e = {
x: i.x + i.width,
y: l
};
break;
case ot:
e = {
x: i.x - n.width,
y: l
};
break;
default:
e = {
x: i.x,
y: i.y
}
}
var c = o ? kt(o) : null;
if (null != c) {
var h = "y" === c ? "height" : "width";
switch (r) {
case "start":
e[c] = e[c] - (i[h] / 2 - n[h] / 2);
break;
case "end":
e[c] = e[c] + (i[h] / 2 - n[h] / 2)
}
}
return e
}
function Zt(t, e) {
void 0 === e && (e = {});
var i = e,
n = i.placement,
s = void 0 === n ? t.placement : n,
o = i.boundary,
r = void 0 === o ? "clippingParents" : o,
a = i.rootBoundary,
l = void 0 === a ? "viewport" : a,
c = i.elementContext,
h = void 0 === c ? "popper" : c,
d = i.altBoundary,
u = void 0 !== d && d,
f = i.padding,
p = void 0 === f ? 0 : f,
m = Nt("number" != typeof p ? p : It(p, rt)),
g = "popper" === h ? "reference" : "popper",
_ = t.elements.reference,
b = t.rects.popper,
v = t.elements[u ? g : h],
y = function (t, e, i) {
var n = "clippingParents" === e ? function (t) {
var e = Kt(Tt(t)),
i = ["absolute", "fixed"].indexOf(wt(t).position) >= 0 && ft(t) ? Ct(t) : t;
return ut(i) ? e.filter((function (t) {
return ut(t) && yt(t, i) && "body" !== ht(t)
})) : []
}(t) : [].concat(e),
s = [].concat(n, [i]),
o = s[0],
r = s.reduce((function (e, i) {
var n = Yt(t, i);
return e.top = Lt(n.top, e.top), e.right = xt(n.right, e.right), e.bottom = xt(n.bottom, e.bottom), e.left = Lt(n.left, e.left), e
}), Yt(t, o));
return r.width = r.right - r.left, r.height = r.bottom - r.top, r.x = r.left, r.y = r.top, r
}(ut(v) ? v : v.contextElement || At(t.elements.popper), r, l),
w = bt(_),
E = Gt({
reference: w,
element: b,
strategy: "absolute",
placement: s
}),
A = Xt(Object.assign({}, b, E)),
T = "popper" === h ? A : w,
O = {
top: y.top - T.top + m.top,
bottom: T.bottom - y.bottom + m.bottom,
left: y.left - T.left + m.left,
right: T.right - y.right + m.right
},
C = t.modifiersData.offset;
if ("popper" === h && C) {
var k = C[s];
Object.keys(O).forEach((function (t) {
var e = [st, nt].indexOf(t) >= 0 ? 1 : -1,
i = [it, nt].indexOf(t) >= 0 ? "y" : "x";
O[t] += k[i] * e
}))
}
return O
}
function Jt(t, e) {
void 0 === e && (e = {});
var i = e,
n = i.placement,
s = i.boundary,
o = i.rootBoundary,
r = i.padding,
a = i.flipVariations,
l = i.allowedAutoPlacements,
c = void 0 === l ? lt : l,
h = Qt(n),
d = h ? a ? at : at.filter((function (t) {
return Qt(t) === h
})) : rt,
u = d.filter((function (t) {
return c.indexOf(t) >= 0
}));
0 === u.length && (u = d);
var f = u.reduce((function (e, i) {
return e[i] = Zt(t, {
placement: i,
boundary: s,
rootBoundary: o,
padding: r
})[gt(i)], e
}), {});
return Object.keys(f).sort((function (t, e) {
return f[t] - f[e]
}))
}
var te = {
name: "flip",
enabled: !0,
phase: "main",
fn: function (t) {
var e = t.state,
i = t.options,
n = t.name;
if (!e.modifiersData[n]._skip) {
for (var s = i.mainAxis, o = void 0 === s || s, r = i.altAxis, a = void 0 === r || r, l = i.fallbackPlacements, c = i.padding, h = i.boundary, d = i.rootBoundary, u = i.altBoundary, f = i.flipVariations, p = void 0 === f || f, m = i.allowedAutoPlacements, g = e.options.placement, _ = gt(g), b = l || (_ !== g && p ? function (t) {
if ("auto" === gt(t)) return [];
var e = zt(t);
return [Ft(t), e, Ft(e)]
}(g) : [zt(g)]), v = [g].concat(b).reduce((function (t, i) {
return t.concat("auto" === gt(i) ? Jt(e, {
placement: i,
boundary: h,
rootBoundary: d,
padding: c,
flipVariations: p,
allowedAutoPlacements: m
}) : i)
}), []), y = e.rects.reference, w = e.rects.popper, E = new Map, A = !0, T = v[0], O = 0; O < v.length; O++) {
var C = v[O],
k = gt(C),
L = "start" === Qt(C),
x = [it, nt].indexOf(k) >= 0,
D = x ? "width" : "height",
S = Zt(e, {
placement: C,
boundary: h,
rootBoundary: d,
altBoundary: u,
padding: c
}),
N = x ? L ? st : ot : L ? nt : it;
y[D] > w[D] && (N = zt(N));
var I = zt(N),
P = [];
if (o && P.push(S[k] <= 0), a && P.push(S[N] <= 0, S[I] <= 0), P.every((function (t) {
return t
}))) {
T = C, A = !1;
break
}
E.set(C, P)
}
if (A)
for (var j = function (t) {
var e = v.find((function (e) {
var i = E.get(e);
if (i) return i.slice(0, t).every((function (t) {
return t
}))
}));
if (e) return T = e, "break"
}, M = p ? 3 : 1; M > 0 && "break" !== j(M); M--);
e.placement !== T && (e.modifiersData[n]._skip = !0, e.placement = T, e.reset = !0)
}
},
requiresIfExists: ["offset"],
data: {
_skip: !1
}
};
function ee(t, e, i) {
return void 0 === i && (i = {
x: 0,
y: 0
}), {
top: t.top - e.height - i.y,
right: t.right - e.width + i.x,
bottom: t.bottom - e.height + i.y,
left: t.left - e.width - i.x
}
}
function ie(t) {
return [it, st, nt, ot].some((function (e) {
return t[e] >= 0
}))
}
var ne = {
name: "hide",
enabled: !0,
phase: "main",
requiresIfExists: ["preventOverflow"],
fn: function (t) {
var e = t.state,
i = t.name,
n = e.rects.reference,
s = e.rects.popper,
o = e.modifiersData.preventOverflow,
r = Zt(e, {
elementContext: "reference"
}),
a = Zt(e, {
altBoundary: !0
}),
l = ee(r, n),
c = ee(a, s, o),
h = ie(l),
d = ie(c);
e.modifiersData[i] = {
referenceClippingOffsets: l,
popperEscapeOffsets: c,
isReferenceHidden: h,
hasPopperEscaped: d
}, e.attributes.popper = Object.assign({}, e.attributes.popper, {
"data-popper-reference-hidden": h,
"data-popper-escaped": d
})
}
},
se = {
name: "offset",
enabled: !0,
phase: "main",
requires: ["popperOffsets"],
fn: function (t) {
var e = t.state,
i = t.options,
n = t.name,
s = i.offset,
o = void 0 === s ? [0, 0] : s,
r = lt.reduce((function (t, i) {
return t[i] = function (t, e, i) {
var n = gt(t),
s = [ot, it].indexOf(n) >= 0 ? -1 : 1,
o = "function" == typeof i ? i(Object.assign({}, e, {
placement: t
})) : i,
r = o[0],
a = o[1];
return r = r || 0, a = (a || 0) * s, [ot, st].indexOf(n) >= 0 ? {
x: a,
y: r
} : {
x: r,
y: a
}
}(i, e.rects, o), t
}), {}),
a = r[e.placement],
l = a.x,
c = a.y;
null != e.modifiersData.popperOffsets && (e.modifiersData.popperOffsets.x += l, e.modifiersData.popperOffsets.y += c), e.modifiersData[n] = r
}
},
oe = {
name: "popperOffsets",
enabled: !0,
phase: "read",
fn: function (t) {
var e = t.state,
i = t.name;
e.modifiersData[i] = Gt({
reference: e.rects.reference,
element: e.rects.popper,
strategy: "absolute",
placement: e.placement
})
},
data: {}
},
re = {
name: "preventOverflow",
enabled: !0,
phase: "main",
fn: function (t) {
var e = t.state,
i = t.options,
n = t.name,
s = i.mainAxis,
o = void 0 === s || s,
r = i.altAxis,
a = void 0 !== r && r,
l = i.boundary,
c = i.rootBoundary,
h = i.altBoundary,
d = i.padding,
u = i.tether,
f = void 0 === u || u,
p = i.tetherOffset,
m = void 0 === p ? 0 : p,
g = Zt(e, {
boundary: l,
rootBoundary: c,
padding: d,
altBoundary: h
}),
_ = gt(e.placement),
b = Qt(e.placement),
v = !b,
y = kt(_),
w = "x" === y ? "y" : "x",
E = e.modifiersData.popperOffsets,
A = e.rects.reference,
T = e.rects.popper,
O = "function" == typeof m ? m(Object.assign({}, e.rects, {
placement: e.placement
})) : m,
C = {
x: 0,
y: 0
};
if (E) {
if (o || a) {
var k = "y" === y ? it : ot,
L = "y" === y ? nt : st,
x = "y" === y ? "height" : "width",
D = E[y],
S = E[y] + g[k],
N = E[y] - g[L],
I = f ? -T[x] / 2 : 0,
P = "start" === b ? A[x] : T[x],
j = "start" === b ? -T[x] : -A[x],
M = e.elements.arrow,
H = f && M ? vt(M) : {
width: 0,
height: 0
},
B = e.modifiersData["arrow#persistent"] ? e.modifiersData["arrow#persistent"].padding : {
top: 0,
right: 0,
bottom: 0,
left: 0
},
R = B[k],
W = B[L],
z = St(0, A[x], H[x]),
q = v ? A[x] / 2 - I - z - R - O : P - z - R - O,
F = v ? -A[x] / 2 + I + z + W + O : j + z + W + O,
U = e.elements.arrow && Ct(e.elements.arrow),
$ = U ? "y" === y ? U.clientTop || 0 : U.clientLeft || 0 : 0,
V = e.modifiersData.offset ? e.modifiersData.offset[e.placement][y] : 0,
K = E[y] + q - V - $,
X = E[y] + F - V;
if (o) {
var Y = St(f ? xt(S, K) : S, D, f ? Lt(N, X) : N);
E[y] = Y, C[y] = Y - D
}
if (a) {
var Q = "x" === y ? it : ot,
G = "x" === y ? nt : st,
Z = E[w],
J = Z + g[Q],
tt = Z - g[G],
et = St(f ? xt(J, K) : J, Z, f ? Lt(tt, X) : tt);
E[w] = et, C[w] = et - Z
}
}
e.modifiersData[n] = C
}
},
requiresIfExists: ["offset"]
};
function ae(t, e, i) {
void 0 === i && (i = !1);
var n, s, o = ft(e),
r = ft(e) && function (t) {
var e = t.getBoundingClientRect(),
i = e.width / t.offsetWidth || 1,
n = e.height / t.offsetHeight || 1;
return 1 !== i || 1 !== n
}(e),
a = At(e),
l = bt(t, r),
c = {
scrollLeft: 0,
scrollTop: 0
},
h = {
x: 0,
y: 0
};
return (o || !o && !i) && (("body" !== ht(e) || Vt(a)) && (c = (n = e) !== dt(n) && ft(n) ? {
scrollLeft: (s = n).scrollLeft,
scrollTop: s.scrollTop
} : Ut(n)), ft(e) ? ((h = bt(e, !0)).x += e.clientLeft, h.y += e.clientTop) : a && (h.x = $t(a))), {
x: l.left + c.scrollLeft - h.x,
y: l.top + c.scrollTop - h.y,
width: l.width,
height: l.height
}
}
var le = {
placement: "bottom",
modifiers: [],
strategy: "absolute"
};
function ce() {
for (var t = arguments.length, e = new Array(t), i = 0; i < t; i++) e[i] = arguments[i];
return !e.some((function (t) {
return !(t && "function" == typeof t.getBoundingClientRect)
}))
}
function he(t) {
void 0 === t && (t = {});
var e = t,
i = e.defaultModifiers,
n = void 0 === i ? [] : i,
s = e.defaultOptions,
o = void 0 === s ? le : s;
return function (t, e, i) {
void 0 === i && (i = o);
var s, r, a = {
placement: "bottom",
orderedModifiers: [],
options: Object.assign({}, le, o),
modifiersData: {},
elements: {
reference: t,
popper: e
},
attributes: {},
styles: {}
},
l = [],
c = !1,
h = {
state: a,
setOptions: function (i) {
d(), a.options = Object.assign({}, o, a.options, i), a.scrollParents = {
reference: ut(t) ? Kt(t) : t.contextElement ? Kt(t.contextElement) : [],
popper: Kt(e)
};
var s, r, c = function (t) {
var e = function (t) {
var e = new Map,
i = new Set,
n = [];
return t.forEach((function (t) {
e.set(t.name, t)
})), t.forEach((function (t) {
i.has(t.name) || function t(s) {
i.add(s.name), [].concat(s.requires || [], s.requiresIfExists || []).forEach((function (n) {
if (!i.has(n)) {
var s = e.get(n);
s && t(s)
}
})), n.push(s)
}(t)
})), n
}(t);
return ct.reduce((function (t, i) {
return t.concat(e.filter((function (t) {
return t.phase === i
})))
}), [])
}((s = [].concat(n, a.options.modifiers), r = s.reduce((function (t, e) {
var i = t[e.name];
return t[e.name] = i ? Object.assign({}, i, e, {
options: Object.assign({}, i.options, e.options),
data: Object.assign({}, i.data, e.data)
}) : e, t
}), {}), Object.keys(r).map((function (t) {
return r[t]
}))));
return a.orderedModifiers = c.filter((function (t) {
return t.enabled
})), a.orderedModifiers.forEach((function (t) {
var e = t.name,
i = t.options,
n = void 0 === i ? {} : i,
s = t.effect;
if ("function" == typeof s) {
var o = s({
state: a,
name: e,
instance: h,
options: n
});
l.push(o || function () {})
}
})), h.update()
},
forceUpdate: function () {
if (!c) {
var t = a.elements,
e = t.reference,
i = t.popper;
if (ce(e, i)) {
a.rects = {
reference: ae(e, Ct(i), "fixed" === a.options.strategy),
popper: vt(i)
}, a.reset = !1, a.placement = a.options.placement, a.orderedModifiers.forEach((function (t) {
return a.modifiersData[t.name] = Object.assign({}, t.data)
}));
for (var n = 0; n < a.orderedModifiers.length; n++)
if (!0 !== a.reset) {
var s = a.orderedModifiers[n],
o = s.fn,
r = s.options,
l = void 0 === r ? {} : r,
d = s.name;
"function" == typeof o && (a = o({
state: a,
options: l,
name: d,
instance: h
}) || a)
} else a.reset = !1, n = -1
}
}
},
update: (s = function () {
return new Promise((function (t) {
h.forceUpdate(), t(a)
}))
}, function () {
return r || (r = new Promise((function (t) {
Promise.resolve().then((function () {
r = void 0, t(s())
}))
}))), r
}),
destroy: function () {
d(), c = !0
}
};
if (!ce(t, e)) return h;
function d() {
l.forEach((function (t) {
return t()
})), l = []
}
return h.setOptions(i).then((function (t) {
!c && i.onFirstUpdate && i.onFirstUpdate(t)
})), h
}
}
var de = he(),
ue = he({
defaultModifiers: [Rt, oe, Ht, mt]
}),
fe = he({
defaultModifiers: [Rt, oe, Ht, mt, se, te, re, Pt, ne]
}),
pe = Object.freeze({
__proto__: null,
popperGenerator: he,
detectOverflow: Zt,
createPopperBase: de,
createPopper: fe,
createPopperLite: ue,
top: it,
bottom: nt,
right: st,
left: ot,
auto: "auto",
basePlacements: rt,
start: "start",
end: "end",
clippingParents: "clippingParents",
viewport: "viewport",
popper: "popper",
reference: "reference",
variationPlacements: at,
placements: lt,
beforeRead: "beforeRead",
read: "read",
afterRead: "afterRead",
beforeMain: "beforeMain",
main: "main",
afterMain: "afterMain",
beforeWrite: "beforeWrite",
write: "write",
afterWrite: "afterWrite",
modifierPhases: ct,
applyStyles: mt,
arrow: Pt,
computeStyles: Ht,
eventListeners: Rt,
flip: te,
hide: ne,
offset: se,
popperOffsets: oe,
preventOverflow: re
});
const me = new RegExp("ArrowUp|ArrowDown|Escape"),
ge = p() ? "top-end" : "top-start",
_e = p() ? "top-start" : "top-end",
be = p() ? "bottom-end" : "bottom-start",
ve = p() ? "bottom-start" : "bottom-end",
ye = p() ? "left-start" : "right-start",
we = p() ? "right-start" : "left-start",
Ee = {
offset: [0, 2],
boundary: "clippingParents",
reference: "toggle",
display: "dynamic",
popperConfig: null,
autoClose: !0
},
Ae = {
offset: "(array|string|function)",
boundary: "(string|element)",
reference: "(string|element|object)",
display: "string",
popperConfig: "(null|object|function)",
autoClose: "(boolean|string)"
};
class Te extends H {
constructor(t, e) {
super(t), this._popper = null, this._config = this._getConfig(e), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar()
}
static get Default() {
return Ee
}
static get DefaultType() {
return Ae
}
static get NAME() {
return "dropdown"
}
toggle() {
return this._isShown() ? this.hide() : this.show()
}
show() {
if (l(this._element) || this._isShown(this._menu)) return;
const t = {
relatedTarget: this._element
};
if (P.trigger(this._element, "show.bs.dropdown", t).defaultPrevented) return;
const e = Te.getParentFromElement(this._element);
this._inNavbar ? F.setDataAttribute(this._menu, "popper", "none") : this._createPopper(e), "ontouchstart" in document.documentElement && !e.closest(".navbar-nav") && [].concat(...document.body.children).forEach(t => P.on(t, "mouseover", h)), this._element.focus(), this._element.setAttribute("aria-expanded", !0), this._menu.classList.add("show"), this._element.classList.add("show"), P.trigger(this._element, "shown.bs.dropdown", t)
}
hide() {
if (l(this._element) || !this._isShown(this._menu)) return;
const t = {
relatedTarget: this._element
};
this._completeHide(t)
}
dispose() {
this._popper && this._popper.destroy(), super.dispose()
}
update() {
this._inNavbar = this._detectNavbar(), this._popper && this._popper.update()
}
_completeHide(t) {
P.trigger(this._element, "hide.bs.dropdown", t).defaultPrevented || ("ontouchstart" in document.documentElement && [].concat(...document.body.children).forEach(t => P.off(t, "mouseover", h)), this._popper && this._popper.destroy(), this._menu.classList.remove("show"), this._element.classList.remove("show"), this._element.setAttribute("aria-expanded", "false"), F.removeDataAttribute(this._menu, "popper"), P.trigger(this._element, "hidden.bs.dropdown", t))
}
_getConfig(t) {
if (t = {
...this.constructor.Default,
...F.getDataAttributes(this._element),
...t
}, r("dropdown", t, this.constructor.DefaultType), "object" == typeof t.reference && !s(t.reference) && "function" != typeof t.reference.getBoundingClientRect) throw new TypeError("dropdown".toUpperCase() + ': Option "reference" provided type "object" without a required "getBoundingClientRect" method.');
return t
}
_createPopper(t) {
if (void 0 === pe) throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");
let e = this._element;
"parent" === this._config.reference ? e = t : s(this._config.reference) ? e = o(this._config.reference) : "object" == typeof this._config.reference && (e = this._config.reference);
const i = this._getPopperConfig(),
n = i.modifiers.find(t => "applyStyles" === t.name && !1 === t.enabled);
this._popper = fe(e, this._menu, i), n && F.setDataAttribute(this._menu, "popper", "static")
}
_isShown(t = this._element) {
return t.classList.contains("show")
}
_getMenuElement() {
return U.next(this._element, ".dropdown-menu")[0]
}
_getPlacement() {
const t = this._element.parentNode;
if (t.classList.contains("dropend")) return ye;
if (t.classList.contains("dropstart")) return we;
const e = "end" === getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();
return t.classList.contains("dropup") ? e ? _e : ge : e ? ve : be
}
_detectNavbar() {
return null !== this._element.closest(".navbar")
}
_getOffset() {
const {
offset: t
} = this._config;
return "string" == typeof t ? t.split(",").map(t => Number.parseInt(t, 10)) : "function" == typeof t ? e => t(e, this._element) : t
}
_getPopperConfig() {
const t = {
placement: this._getPlacement(),
modifiers: [{
name: "preventOverflow",
options: {
boundary: this._config.boundary
}
}, {
name: "offset",
options: {
offset: this._getOffset()
}
}]
};
return "static" === this._config.display && (t.modifiers = [{
name: "applyStyles",
enabled: !1
}]), {
...t,
..."function" == typeof this._config.popperConfig ? this._config.popperConfig(t) : this._config.popperConfig
}
}
_selectMenuItem({
key: t,
target: e
}) {
const i = U.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)", this._menu).filter(a);
i.length && b(i, e, "ArrowDown" === t, !i.includes(e)).focus()
}
static jQueryInterface(t) {
return this.each((function () {
const e = Te.getOrCreateInstance(this, t);
if ("string" == typeof t) {
if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`);
e[t]()
}
}))
}
static clearMenus(t) {
if (t && (2 === t.button || "keyup" === t.type && "Tab" !== t.key)) return;
const e = U.find('[data-bs-toggle="dropdown"]');
for (let i = 0, n = e.length; i < n; i++) {
const n = Te.getInstance(e[i]);
if (!n || !1 === n._config.autoClose) continue;
if (!n._isShown()) continue;
const s = {
relatedTarget: n._element
};
if (t) {
const e = t.composedPath(),
i = e.includes(n._menu);
if (e.includes(n._element) || "inside" === n._config.autoClose && !i || "outside" === n._config.autoClose && i) continue;
if (n._menu.contains(t.target) && ("keyup" === t.type && "Tab" === t.key || /input|select|option|textarea|form/i.test(t.target.tagName))) continue;
"click" === t.type && (s.clickEvent = t)
}
n._completeHide(s)
}
}
static getParentFromElement(t) {
return i(t) || t.parentNode
}
static dataApiKeydownHandler(t) {
if (/input|textarea/i.test(t.target.tagName) ? "Space" === t.key || "Escape" !== t.key && ("ArrowDown" !== t.key && "ArrowUp" !== t.key || t.target.closest(".dropdown-menu")) : !me.test(t.key)) return;
const e = this.classList.contains("show");
if (!e && "Escape" === t.key) return;
if (t.preventDefault(), t.stopPropagation(), l(this)) return;
const i = this.matches('[data-bs-toggle="dropdown"]') ? this : U.prev(this, '[data-bs-toggle="dropdown"]')[0],
n = Te.getOrCreateInstance(i);
if ("Escape" !== t.key) return "ArrowUp" === t.key || "ArrowDown" === t.key ? (e || n.show(), void n._selectMenuItem(t)) : void(e && "Space" !== t.key || Te.clearMenus());
n.hide()
}
}
P.on(document, "keydown.bs.dropdown.data-api", '[data-bs-toggle="dropdown"]', Te.dataApiKeydownHandler), P.on(document, "keydown.bs.dropdown.data-api", ".dropdown-menu", Te.dataApiKeydownHandler), P.on(document, "click.bs.dropdown.data-api", Te.clearMenus), P.on(document, "keyup.bs.dropdown.data-api", Te.clearMenus), P.on(document, "click.bs.dropdown.data-api", '[data-bs-toggle="dropdown"]', (function (t) {
t.preventDefault(), Te.getOrCreateInstance(this).toggle()
})), m(Te);
class Oe {
constructor() {
this._element = document.body
}
getWidth() {
const t = document.documentElement.clientWidth;
return Math.abs(window.innerWidth - t)
}
hide() {
const t = this.getWidth();
this._disableOverFlow(), this._setElementAttributes(this._element, "paddingRight", e => e + t), this._setElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top", "paddingRight", e => e + t), this._setElementAttributes(".sticky-top", "marginRight", e => e - t)
}
_disableOverFlow() {
this._saveInitialAttribute(this._element, "overflow"), this._element.style.overflow = "hidden"
}
_setElementAttributes(t, e, i) {
const n = this.getWidth();
this._applyManipulationCallback(t, t => {
if (t !== this._element && window.innerWidth > t.clientWidth + n) return;
this._saveInitialAttribute(t, e);
const s = window.getComputedStyle(t)[e];
t.style[e] = i(Number.parseFloat(s)) + "px"
})
}
reset() {
this._resetElementAttributes(this._element, "overflow"), this._resetElementAttributes(this._element, "paddingRight"), this._resetElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top", "paddingRight"), this._resetElementAttributes(".sticky-top", "marginRight")
}
_saveInitialAttribute(t, e) {
const i = t.style[e];
i && F.setDataAttribute(t, e, i)
}
_resetElementAttributes(t, e) {
this._applyManipulationCallback(t, t => {
const i = F.getDataAttribute(t, e);
void 0 === i ? t.style.removeProperty(e) : (F.removeDataAttribute(t, e), t.style[e] = i)
})
}
_applyManipulationCallback(t, e) {
s(t) ? e(t) : U.find(t, this._element).forEach(e)
}
isOverflowing() {
return this.getWidth() > 0
}
}
const Ce = {
className: "modal-backdrop",
isVisible: !0,
isAnimated: !1,
rootElement: "body",
clickCallback: null
},
ke = {
className: "string",
isVisible: "boolean",
isAnimated: "boolean",
rootElement: "(element|string)",
clickCallback: "(function|null)"
};
class Le {
constructor(t) {
this._config = this._getConfig(t), this._isAppended = !1, this._element = null
}
show(t) {
this._config.isVisible ? (this._append(), this._config.isAnimated && d(this._getElement()), this._getElement().classList.add("show"), this._emulateAnimation(() => {
g(t)
})) : g(t)
}
hide(t) {
this._config.isVisible ? (this._getElement().classList.remove("show"), this._emulateAnimation(() => {
this.dispose(), g(t)
})) : g(t)
}
_getElement() {
if (!this._element) {
const t = document.createElement("div");
t.className = this._config.className, this._config.isAnimated && t.classList.add("fade"), this._element = t
}
return this._element
}
_getConfig(t) {
return (t = {
...Ce,
..."object" == typeof t ? t : {}
}).rootElement = o(t.rootElement), r("backdrop", t, ke), t
}
_append() {
this._isAppended || (this._config.rootElement.append(this._getElement()), P.on(this._getElement(), "mousedown.bs.backdrop", () => {
g(this._config.clickCallback)
}), this._isAppended = !0)
}
dispose() {
this._isAppended && (P.off(this._element, "mousedown.bs.backdrop"), this._element.remove(), this._isAppended = !1)
}
_emulateAnimation(t) {
_(t, this._getElement(), this._config.isAnimated)
}
}
const xe = {
trapElement: null,
autofocus: !0
},
De = {
trapElement: "element",
autofocus: "boolean"
};
class Se {
constructor(t) {
this._config = this._getConfig(t), this._isActive = !1, this._lastTabNavDirection = null
}
activate() {
const {
trapElement: t,
autofocus: e
} = this._config;
this._isActive || (e && t.focus(), P.off(document, ".bs.focustrap"), P.on(document, "focusin.bs.focustrap", t => this._handleFocusin(t)), P.on(document, "keydown.tab.bs.focustrap", t => this._handleKeydown(t)), this._isActive = !0)
}
deactivate() {
this._isActive && (this._isActive = !1, P.off(document, ".bs.focustrap"))
}
_handleFocusin(t) {
const {
target: e
} = t, {
trapElement: i
} = this._config;
if (e === document || e === i || i.contains(e)) return;
const n = U.focusableChildren(i);
0 === n.length ? i.focus() : "backward" === this._lastTabNavDirection ? n[n.length - 1].focus() : n[0].focus()
}
_handleKeydown(t) {
"Tab" === t.key && (this._lastTabNavDirection = t.shiftKey ? "backward" : "forward")
}
_getConfig(t) {
return t = {
...xe,
..."object" == typeof t ? t : {}
}, r("focustrap", t, De), t
}
}
const Ne = {
backdrop: !0,
keyboard: !0,
focus: !0
},
Ie = {
backdrop: "(boolean|string)",
keyboard: "boolean",
focus: "boolean"
};
class Pe extends H {
constructor(t, e) {
super(t), this._config = this._getConfig(e), this._dialog = U.findOne(".modal-dialog", this._element), this._backdrop = this._initializeBackDrop(), this._focustrap = this._initializeFocusTrap(), this._isShown = !1, this._ignoreBackdropClick = !1, this._isTransitioning = !1, this._scrollBar = new Oe
}
static get Default() {
return Ne
}
static get NAME() {
return "modal"
}
toggle(t) {
return this._isShown ? this.hide() : this.show(t)
}
show(t) {
this._isShown || this._isTransitioning || P.trigger(this._element, "show.bs.modal", {
relatedTarget: t
}).defaultPrevented || (this._isShown = !0, this._isAnimated() && (this._isTransitioning = !0), this._scrollBar.hide(), document.body.classList.add("modal-open"), this._adjustDialog(), this._setEscapeEvent(), this._setResizeEvent(), P.on(this._dialog, "mousedown.dismiss.bs.modal", () => {
P.one(this._element, "mouseup.dismiss.bs.modal", t => {
t.target === this._element && (this._ignoreBackdropClick = !0)
})
}), this._showBackdrop(() => this._showElement(t)))
}
hide() {
if (!this._isShown || this._isTransitioning) return;
if (P.trigger(this._element, "hide.bs.modal").defaultPrevented) return;
this._isShown = !1;
const t = this._isAnimated();
t && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), this._focustrap.deactivate(), this._element.classList.remove("show"), P.off(this._element, "click.dismiss.bs.modal"), P.off(this._dialog, "mousedown.dismiss.bs.modal"), this._queueCallback(() => this._hideModal(), this._element, t)
}
dispose() {
[window, this._dialog].forEach(t => P.off(t, ".bs.modal")), this._backdrop.dispose(), this._focustrap.deactivate(), super.dispose()
}
handleUpdate() {
this._adjustDialog()
}
_initializeBackDrop() {
return new Le({
isVisible: Boolean(this._config.backdrop),
isAnimated: this._isAnimated()
})
}
_initializeFocusTrap() {
return new Se({
trapElement: this._element
})
}
_getConfig(t) {
return t = {
...Ne,
...F.getDataAttributes(this._element),
..."object" == typeof t ? t : {}
}, r("modal", t, Ie), t
}
_showElement(t) {
const e = this._isAnimated(),
i = U.findOne(".modal-body", this._dialog);
this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.append(this._element), this._element.style.display = "block", this._element.removeAttribute("aria-hidden"), this._element.setAttribute("aria-modal", !0), this._element.setAttribute("role", "dialog"), this._element.scrollTop = 0, i && (i.scrollTop = 0), e && d(this._element), this._element.classList.add("show"), this._queueCallback(() => {
this._config.focus && this._focustrap.activate(), this._isTransitioning = !1, P.trigger(this._element, "shown.bs.modal", {
relatedTarget: t
})
}, this._dialog, e)
}
_setEscapeEvent() {
this._isShown ? P.on(this._element, "keydown.dismiss.bs.modal", t => {
this._config.keyboard && "Escape" === t.key ? (t.preventDefault(), this.hide()) : this._config.keyboard || "Escape" !== t.key || this._triggerBackdropTransition()
}) : P.off(this._element, "keydown.dismiss.bs.modal")
}
_setResizeEvent() {
this._isShown ? P.on(window, "resize.bs.modal", () => this._adjustDialog()) : P.off(window, "resize.bs.modal")
}
_hideModal() {
this._element.style.display = "none", this._element.setAttribute("aria-hidden", !0), this._element.removeAttribute("aria-modal"), this._element.removeAttribute("role"), this._isTransitioning = !1, this._backdrop.hide(() => {
document.body.classList.remove("modal-open"), this._resetAdjustments(), this._scrollBar.reset(), P.trigger(this._element, "hidden.bs.modal")
})
}
_showBackdrop(t) {
P.on(this._element, "click.dismiss.bs.modal", t => {
this._ignoreBackdropClick ? this._ignoreBackdropClick = !1 : t.target === t.currentTarget && (!0 === this._config.backdrop ? this.hide() : "static" === this._config.backdrop && this._triggerBackdropTransition())
}), this._backdrop.show(t)
}
_isAnimated() {
return this._element.classList.contains("fade")
}
_triggerBackdropTransition() {
if (P.trigger(this._element, "hidePrevented.bs.modal").defaultPrevented) return;
const {
classList: t,
scrollHeight: e,
style: i
} = this._element, n = e > document.documentElement.clientHeight;
!n && "hidden" === i.overflowY || t.contains("modal-static") || (n || (i.overflowY = "hidden"), t.add("modal-static"), this._queueCallback(() => {
t.remove("modal-static"), n || this._queueCallback(() => {
i.overflowY = ""
}, this._dialog)
}, this._dialog), this._element.focus())
}
_adjustDialog() {
const t = this._element.scrollHeight > document.documentElement.clientHeight,
e = this._scrollBar.getWidth(),
i = e > 0;
(!i && t && !p() || i && !t && p()) && (this._element.style.paddingLeft = e + "px"), (i && !t && !p() || !i && t && p()) && (this._element.style.paddingRight = e + "px")
}
_resetAdjustments() {
this._element.style.paddingLeft = "", this._element.style.paddingRight = ""
}
static jQueryInterface(t, e) {
return this.each((function () {
const i = Pe.getOrCreateInstance(this, t);
if ("string" == typeof t) {
if (void 0 === i[t]) throw new TypeError(`No method named "${t}"`);
i[t](e)
}
}))
}
}
P.on(document, "click.bs.modal.data-api", '[data-bs-toggle="modal"]', (function (t) {
const e = i(this);
["A", "AREA"].includes(this.tagName) && t.preventDefault(), P.one(e, "show.bs.modal", t => {
t.defaultPrevented || P.one(e, "hidden.bs.modal", () => {
a(this) && this.focus()
})
}), Pe.getOrCreateInstance(e).toggle(this)
})), B(Pe), m(Pe);
const je = {
backdrop: !0,
keyboard: !0,
scroll: !1
},
Me = {
backdrop: "boolean",
keyboard: "boolean",
scroll: "boolean"
};
class He extends H {
constructor(t, e) {
super(t), this._config = this._getConfig(e), this._isShown = !1, this._backdrop = this._initializeBackDrop(), this._focustrap = this._initializeFocusTrap(), this._addEventListeners()
}
static get NAME() {
return "offcanvas"
}
static get Default() {
return je
}
toggle(t) {
return this._isShown ? this.hide() : this.show(t)
}
show(t) {
this._isShown || P.trigger(this._element, "show.bs.offcanvas", {
relatedTarget: t
}).defaultPrevented || (this._isShown = !0, this._element.style.visibility = "visible", this._backdrop.show(), this._config.scroll || (new Oe).hide(), this._element.removeAttribute("aria-hidden"), this._element.setAttribute("aria-modal", !0), this._element.setAttribute("role", "dialog"), this._element.classList.add("show"), this._queueCallback(() => {
this._config.scroll || this._focustrap.activate(), P.trigger(this._element, "shown.bs.offcanvas", {
relatedTarget: t
})
}, this._element, !0))
}
hide() {
this._isShown && (P.trigger(this._element, "hide.bs.offcanvas").defaultPrevented || (this._focustrap.deactivate(), this._element.blur(), this._isShown = !1, this._element.classList.remove("show"), this._backdrop.hide(), this._queueCallback(() => {
this._element.setAttribute("aria-hidden", !0), this._element.removeAttribute("aria-modal"), this._element.removeAttribute("role"), this._element.style.visibility = "hidden", this._config.scroll || (new Oe).reset(), P.trigger(this._element, "hidden.bs.offcanvas")
}, this._element, !0)))
}
dispose() {
this._backdrop.dispose(), this._focustrap.deactivate(), super.dispose()
}
_getConfig(t) {
return t = {
...je,
...F.getDataAttributes(this._element),
..."object" == typeof t ? t : {}
}, r("offcanvas", t, Me), t
}
_initializeBackDrop() {
return new Le({
className: "offcanvas-backdrop",
isVisible: this._config.backdrop,
isAnimated: !0,
rootElement: this._element.parentNode,
clickCallback: () => this.hide()
})
}
_initializeFocusTrap() {
return new Se({
trapElement: this._element
})
}
_addEventListeners() {
P.on(this._element, "keydown.dismiss.bs.offcanvas", t => {
this._config.keyboard && "Escape" === t.key && this.hide()
})
}
static jQueryInterface(t) {
return this.each((function () {
const e = He.getOrCreateInstance(this, t);
if ("string" == typeof t) {
if (void 0 === e[t] || t.startsWith("_") || "constructor" === t) throw new TypeError(`No method named "${t}"`);
e[t](this)
}
}))
}
}
P.on(document, "click.bs.offcanvas.data-api", '[data-bs-toggle="offcanvas"]', (function (t) {
const e = i(this);
if (["A", "AREA"].includes(this.tagName) && t.preventDefault(), l(this)) return;
P.one(e, "hidden.bs.offcanvas", () => {
a(this) && this.focus()
});
const n = U.findOne(".offcanvas.show");
n && n !== e && He.getInstance(n).hide(), He.getOrCreateInstance(e).toggle(this)
})), P.on(window, "load.bs.offcanvas.data-api", () => U.find(".offcanvas.show").forEach(t => He.getOrCreateInstance(t).show())), B(He), m(He);
const Be = new Set(["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"]),
Re = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i,
We = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,
ze = (t, e) => {
const i = t.nodeName.toLowerCase();
if (e.includes(i)) return !Be.has(i) || Boolean(Re.test(t.nodeValue) || We.test(t.nodeValue));
const n = e.filter(t => t instanceof RegExp);
for (let t = 0, e = n.length; t < e; t++)
if (n[t].test(i)) return !0;
return !1
};
function qe(t, e, i) {
if (!t.length) return t;
if (i && "function" == typeof i) return i(t);
const n = (new window.DOMParser).parseFromString(t, "text/html"),
s = Object.keys(e),
o = [].concat(...n.body.querySelectorAll("*"));
for (let t = 0, i = o.length; t < i; t++) {
const i = o[t],
n = i.nodeName.toLowerCase();
if (!s.includes(n)) {
i.remove();
continue
}
const r = [].concat(...i.attributes),
a = [].concat(e["*"] || [], e[n] || []);
r.forEach(t => {
ze(t, a) || i.removeAttribute(t.nodeName)
})
}
return n.body.innerHTML
}
const Fe = new Set(["sanitize", "allowList", "sanitizeFn"]),
Ue = {
animation: "boolean",
template: "string",
title: "(string|element|function)",
trigger: "string",
delay: "(number|object)",
html: "boolean",
selector: "(string|boolean)",
placement: "(string|function)",
offset: "(array|string|function)",
container: "(string|element|boolean)",
fallbackPlacements: "array",
boundary: "(string|element)",
customClass: "(string|function)",
sanitize: "boolean",
sanitizeFn: "(null|function)",
allowList: "object",
popperConfig: "(null|object|function)"
},
$e = {
AUTO: "auto",
TOP: "top",
RIGHT: p() ? "left" : "right",
BOTTOM: "bottom",
LEFT: p() ? "right" : "left"
},
Ve = {
animation: !0,
template: '
',
trigger: "hover focus",
title: "",
delay: 0,
html: !1,
selector: !1,
placement: "top",
offset: [0, 0],
container: !1,
fallbackPlacements: ["top", "right", "bottom", "left"],
boundary: "clippingParents",
customClass: "",
sanitize: !0,
sanitizeFn: null,
allowList: {
"*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i],
a: ["target", "href", "title", "rel"],
area: [],
b: [],
br: [],
col: [],
code: [],
div: [],
em: [],
hr: [],
h1: [],
h2: [],
h3: [],
h4: [],
h5: [],
h6: [],
i: [],
img: ["src", "srcset", "alt", "title", "width", "height"],
li: [],
ol: [],
p: [],
pre: [],
s: [],
small: [],
span: [],
sub: [],
sup: [],
strong: [],
u: [],
ul: []
},
popperConfig: null
},
Ke = {
HIDE: "hide.bs.tooltip",
HIDDEN: "hidden.bs.tooltip",
SHOW: "show.bs.tooltip",
SHOWN: "shown.bs.tooltip",
INSERTED: "inserted.bs.tooltip",
CLICK: "click.bs.tooltip",
FOCUSIN: "focusin.bs.tooltip",
FOCUSOUT: "focusout.bs.tooltip",
MOUSEENTER: "mouseenter.bs.tooltip",
MOUSELEAVE: "mouseleave.bs.tooltip"
};
class Xe extends H {
constructor(t, e) {
if (void 0 === pe) throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");
super(t), this._isEnabled = !0, this._timeout = 0, this._hoverState = "", this._activeTrigger = {}, this._popper = null, this._config = this._getConfig(e), this.tip = null, this._setListeners()
}
static get Default() {
return Ve
}
static get NAME() {
return "tooltip"
}
static get Event() {
return Ke
}
static get DefaultType() {
return Ue
}
enable() {
this._isEnabled = !0
}
disable() {
this._isEnabled = !1
}
toggleEnabled() {
this._isEnabled = !this._isEnabled
}
toggle(t) {
if (this._isEnabled)
if (t) {
const e = this._initializeOnDelegatedTarget(t);
e._activeTrigger.click = !e._activeTrigger.click, e._isWithActiveTrigger() ? e._enter(null, e) : e._leave(null, e)
} else {
if (this.getTipElement().classList.contains("show")) return void this._leave(null, this);
this._enter(null, this)
}
}
dispose() {
clearTimeout(this._timeout), P.off(this._element.closest(".modal"), "hide.bs.modal", this._hideModalHandler), this.tip && this.tip.remove(), this._popper && this._popper.destroy(), super.dispose()
}
show() {
if ("none" === this._element.style.display) throw new Error("Please use show on visible elements");
if (!this.isWithContent() || !this._isEnabled) return;
const t = P.trigger(this._element, this.constructor.Event.SHOW),
e = c(this._element),
i = null === e ? this._element.ownerDocument.documentElement.contains(this._element) : e.contains(this._element);
if (t.defaultPrevented || !i) return;
const n = this.getTipElement(),
s = (t => {
do {
t += Math.floor(1e6 * Math.random())
} while (document.getElementById(t));
return t
})(this.constructor.NAME);
n.setAttribute("id", s), this._element.setAttribute("aria-describedby", s), this._config.animation && n.classList.add("fade");
const o = "function" == typeof this._config.placement ? this._config.placement.call(this, n, this._element) : this._config.placement,
r = this._getAttachment(o);
this._addAttachmentClass(r);
const {
container: a
} = this._config;
M.set(n, this.constructor.DATA_KEY, this), this._element.ownerDocument.documentElement.contains(this.tip) || (a.append(n), P.trigger(this._element, this.constructor.Event.INSERTED)), this._popper ? this._popper.update() : this._popper = fe(this._element, n, this._getPopperConfig(r)), n.classList.add("show");
const l = this._resolvePossibleFunction(this._config.customClass);
l && n.classList.add(...l.split(" ")), "ontouchstart" in document.documentElement && [].concat(...document.body.children).forEach(t => {
P.on(t, "mouseover", h)
});
const d = this.tip.classList.contains("fade");
this._queueCallback(() => {
const t = this._hoverState;
this._hoverState = null, P.trigger(this._element, this.constructor.Event.SHOWN), "out" === t && this._leave(null, this)
}, this.tip, d)
}
hide() {
if (!this._popper) return;
const t = this.getTipElement();
if (P.trigger(this._element, this.constructor.Event.HIDE).defaultPrevented) return;
t.classList.remove("show"), "ontouchstart" in document.documentElement && [].concat(...document.body.children).forEach(t => P.off(t, "mouseover", h)), this._activeTrigger.click = !1, this._activeTrigger.focus = !1, this._activeTrigger.hover = !1;
const e = this.tip.classList.contains("fade");
this._queueCallback(() => {
this._isWithActiveTrigger() || ("show" !== this._hoverState && t.remove(), this._cleanTipClass(), this._element.removeAttribute("aria-describedby"), P.trigger(this._element, this.constructor.Event.HIDDEN), this._popper && (this._popper.destroy(), this._popper = null))
}, this.tip, e), this._hoverState = ""
}
update() {
null !== this._popper && this._popper.update()
}
isWithContent() {
return Boolean(this.getTitle())
}
getTipElement() {
if (this.tip) return this.tip;
const t = document.createElement("div");
t.innerHTML = this._config.template;
const e = t.children[0];
return this.setContent(e), e.classList.remove("fade", "show"), this.tip = e, this.tip
}
setContent(t) {
this._sanitizeAndSetContent(t, this.getTitle(), ".tooltip-inner")
}
_sanitizeAndSetContent(t, e, i) {
const n = U.findOne(i, t);
e || !n ? this.setElementContent(n, e) : n.remove()
}
setElementContent(t, e) {
if (null !== t) return s(e) ? (e = o(e), void(this._config.html ? e.parentNode !== t && (t.innerHTML = "", t.append(e)) : t.textContent = e.textContent)) : void(this._config.html ? (this._config.sanitize && (e = qe(e, this._config.allowList, this._config.sanitizeFn)), t.innerHTML = e) : t.textContent = e)
}
getTitle() {
const t = this._element.getAttribute("data-bs-original-title") || this._config.title;
return this._resolvePossibleFunction(t)
}
updateAttachment(t) {
return "right" === t ? "end" : "left" === t ? "start" : t
}
_initializeOnDelegatedTarget(t, e) {
return e || this.constructor.getOrCreateInstance(t.delegateTarget, this._getDelegateConfig())
}
_getOffset() {
const {
offset: t
} = this._config;
return "string" == typeof t ? t.split(",").map(t => Number.parseInt(t, 10)) : "function" == typeof t ? e => t(e, this._element) : t
}
_resolvePossibleFunction(t) {
return "function" == typeof t ? t.call(this._element) : t
}
_getPopperConfig(t) {
const e = {
placement: t,
modifiers: [{
name: "flip",
options: {
fallbackPlacements: this._config.fallbackPlacements
}
}, {
name: "offset",
options: {
offset: this._getOffset()
}
}, {
name: "preventOverflow",
options: {
boundary: this._config.boundary
}
}, {
name: "arrow",
options: {
element: `.${this.constructor.NAME}-arrow`
}
}, {
name: "onChange",
enabled: !0,
phase: "afterWrite",
fn: t => this._handlePopperPlacementChange(t)
}],
onFirstUpdate: t => {
t.options.placement !== t.placement && this._handlePopperPlacementChange(t)
}
};
return {
...e,
..."function" == typeof this._config.popperConfig ? this._config.popperConfig(e) : this._config.popperConfig
}
}
_addAttachmentClass(t) {
this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(t)}`)
}
_getAttachment(t) {
return $e[t.toUpperCase()]
}
_setListeners() {
this._config.trigger.split(" ").forEach(t => {
if ("click" === t) P.on(this._element, this.constructor.Event.CLICK, this._config.selector, t => this.toggle(t));
else if ("manual" !== t) {
const e = "hover" === t ? this.constructor.Event.MOUSEENTER : this.constructor.Event.FOCUSIN,
i = "hover" === t ? this.constructor.Event.MOUSELEAVE : this.constructor.Event.FOCUSOUT;
P.on(this._element, e, this._config.selector, t => this._enter(t)), P.on(this._element, i, this._config.selector, t => this._leave(t))
}
}), this._hideModalHandler = () => {
this._element && this.hide()
}, P.on(this._element.closest(".modal"), "hide.bs.modal", this._hideModalHandler), this._config.selector ? this._config = {
...this._config,
trigger: "manual",
selector: ""
} : this._fixTitle()
}
_fixTitle() {
const t = this._element.getAttribute("title"),
e = typeof this._element.getAttribute("data-bs-original-title");
(t || "string" !== e) && (this._element.setAttribute("data-bs-original-title", t || ""), !t || this._element.getAttribute("aria-label") || this._element.textContent || this._element.setAttribute("aria-label", t), this._element.setAttribute("title", ""))
}
_enter(t, e) {
e = this._initializeOnDelegatedTarget(t, e), t && (e._activeTrigger["focusin" === t.type ? "focus" : "hover"] = !0), e.getTipElement().classList.contains("show") || "show" === e._hoverState ? e._hoverState = "show" : (clearTimeout(e._timeout), e._hoverState = "show", e._config.delay && e._config.delay.show ? e._timeout = setTimeout(() => {
"show" === e._hoverState && e.show()
}, e._config.delay.show) : e.show())
}
_leave(t, e) {
e = this._initializeOnDelegatedTarget(t, e), t && (e._activeTrigger["focusout" === t.type ? "focus" : "hover"] = e._element.contains(t.relatedTarget)), e._isWithActiveTrigger() || (clearTimeout(e._timeout), e._hoverState = "out", e._config.delay && e._config.delay.hide ? e._timeout = setTimeout(() => {
"out" === e._hoverState && e.hide()
}, e._config.delay.hide) : e.hide())
}
_isWithActiveTrigger() {
for (const t in this._activeTrigger)
if (this._activeTrigger[t]) return !0;
return !1
}
_getConfig(t) {
const e = F.getDataAttributes(this._element);
return Object.keys(e).forEach(t => {
Fe.has(t) && delete e[t]
}), (t = {
...this.constructor.Default,
...e,
..."object" == typeof t && t ? t : {}
}).container = !1 === t.container ? document.body : o(t.container), "number" == typeof t.delay && (t.delay = {
show: t.delay,
hide: t.delay
}), "number" == typeof t.title && (t.title = t.title.toString()), "number" == typeof t.content && (t.content = t.content.toString()), r("tooltip", t, this.constructor.DefaultType), t.sanitize && (t.template = qe(t.template, t.allowList, t.sanitizeFn)), t
}
_getDelegateConfig() {
const t = {};
for (const e in this._config) this.constructor.Default[e] !== this._config[e] && (t[e] = this._config[e]);
return t
}
_cleanTipClass() {
const t = this.getTipElement(),
e = new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`, "g"),
i = t.getAttribute("class").match(e);
null !== i && i.length > 0 && i.map(t => t.trim()).forEach(e => t.classList.remove(e))
}
_getBasicClassPrefix() {
return "bs-tooltip"
}
_handlePopperPlacementChange(t) {
const {
state: e
} = t;
e && (this.tip = e.elements.popper, this._cleanTipClass(), this._addAttachmentClass(this._getAttachment(e.placement)))
}
static jQueryInterface(t) {
return this.each((function () {
const e = Xe.getOrCreateInstance(this, t);
if ("string" == typeof t) {
if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`);
e[t]()
}
}))
}
}
m(Xe);
const Ye = {
...Xe.Default,
placement: "right",
offset: [0, 8],
trigger: "click",
content: "",
template: '
'
},
Qe = {
...Xe.DefaultType,
content: "(string|element|function)"
},
Ge = {
HIDE: "hide.bs.popover",
HIDDEN: "hidden.bs.popover",
SHOW: "show.bs.popover",
SHOWN: "shown.bs.popover",
INSERTED: "inserted.bs.popover",
CLICK: "click.bs.popover",
FOCUSIN: "focusin.bs.popover",
FOCUSOUT: "focusout.bs.popover",
MOUSEENTER: "mouseenter.bs.popover",
MOUSELEAVE: "mouseleave.bs.popover"
};
class Ze extends Xe {
static get Default() {
return Ye
}
static get NAME() {
return "popover"
}
static get Event() {
return Ge
}
static get DefaultType() {
return Qe
}
isWithContent() {
return this.getTitle() || this._getContent()
}
setContent(t) {
this._sanitizeAndSetContent(t, this.getTitle(), ".popover-header"), this._sanitizeAndSetContent(t, this._getContent(), ".popover-body")
}
_getContent() {
return this._resolvePossibleFunction(this._config.content)
}
_getBasicClassPrefix() {
return "bs-popover"
}
static jQueryInterface(t) {
return this.each((function () {
const e = Ze.getOrCreateInstance(this, t);
if ("string" == typeof t) {
if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`);
e[t]()
}
}))
}
}
m(Ze);
const Je = {
offset: 10,
method: "auto",
target: ""
},
ti = {
offset: "number",
method: "string",
target: "(string|element)"
},
ei = ".nav-link, .list-group-item, .dropdown-item";
class ii extends H {
constructor(t, e) {
super(t), this._scrollElement = "BODY" === this._element.tagName ? window : this._element, this._config = this._getConfig(e), this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, P.on(this._scrollElement, "scroll.bs.scrollspy", () => this._process()), this.refresh(), this._process()
}
static get Default() {
return Je
}
static get NAME() {
return "scrollspy"
}
refresh() {
const t = this._scrollElement === this._scrollElement.window ? "offset" : "position",
i = "auto" === this._config.method ? t : this._config.method,
n = "position" === i ? this._getScrollTop() : 0;
this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), U.find(ei, this._config.target).map(t => {
const s = e(t),
o = s ? U.findOne(s) : null;
if (o) {
const t = o.getBoundingClientRect();
if (t.width || t.height) return [F[i](o).top + n, s]
}
return null
}).filter(t => t).sort((t, e) => t[0] - e[0]).forEach(t => {
this._offsets.push(t[0]), this._targets.push(t[1])
})
}
dispose() {
P.off(this._scrollElement, ".bs.scrollspy"), super.dispose()
}
_getConfig(t) {
return (t = {
...Je,
...F.getDataAttributes(this._element),
..."object" == typeof t && t ? t : {}
}).target = o(t.target) || document.documentElement, r("scrollspy", t, ti), t
}
_getScrollTop() {
return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop
}
_getScrollHeight() {
return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)
}
_getOffsetHeight() {
return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height
}
_process() {
const t = this._getScrollTop() + this._config.offset,
e = this._getScrollHeight(),
i = this._config.offset + e - this._getOffsetHeight();
if (this._scrollHeight !== e && this.refresh(), t >= i) {
const t = this._targets[this._targets.length - 1];
this._activeTarget !== t && this._activate(t)
} else {
if (this._activeTarget && t < this._offsets[0] && this._offsets[0] > 0) return this._activeTarget = null, void this._clear();
for (let e = this._offsets.length; e--;) this._activeTarget !== this._targets[e] && t >= this._offsets[e] && (void 0 === this._offsets[e + 1] || t < this._offsets[e + 1]) && this._activate(this._targets[e])
}
}
_activate(t) {
this._activeTarget = t, this._clear();
const e = ei.split(",").map(e => `${e}[data-bs-target="${t}"],${e}[href="${t}"]`),
i = U.findOne(e.join(","), this._config.target);
i.classList.add("active"), i.classList.contains("dropdown-item") ? U.findOne(".dropdown-toggle", i.closest(".dropdown")).classList.add("active") : U.parents(i, ".nav, .list-group").forEach(t => {
U.prev(t, ".nav-link, .list-group-item").forEach(t => t.classList.add("active")), U.prev(t, ".nav-item").forEach(t => {
U.children(t, ".nav-link").forEach(t => t.classList.add("active"))
})
}), P.trigger(this._scrollElement, "activate.bs.scrollspy", {
relatedTarget: t
})
}
_clear() {
U.find(ei, this._config.target).filter(t => t.classList.contains("active")).forEach(t => t.classList.remove("active"))
}
static jQueryInterface(t) {
return this.each((function () {
const e = ii.getOrCreateInstance(this, t);
if ("string" == typeof t) {
if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`);
e[t]()
}
}))
}
}
P.on(window, "load.bs.scrollspy.data-api", () => {
U.find('[data-bs-spy="scroll"]').forEach(t => new ii(t))
}), m(ii);
class ni extends H {
static get NAME() {
return "tab"
}
show() {
if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains("active")) return;
let t;
const e = i(this._element),
n = this._element.closest(".nav, .list-group");
if (n) {
const e = "UL" === n.nodeName || "OL" === n.nodeName ? ":scope > li > .active" : ".active";
t = U.find(e, n), t = t[t.length - 1]
}
const s = t ? P.trigger(t, "hide.bs.tab", {
relatedTarget: this._element
}) : null;
if (P.trigger(this._element, "show.bs.tab", {
relatedTarget: t
}).defaultPrevented || null !== s && s.defaultPrevented) return;
this._activate(this._element, n);
const o = () => {
P.trigger(t, "hidden.bs.tab", {
relatedTarget: this._element
}), P.trigger(this._element, "shown.bs.tab", {
relatedTarget: t
})
};
e ? this._activate(e, e.parentNode, o) : o()
}
_activate(t, e, i) {
const n = (!e || "UL" !== e.nodeName && "OL" !== e.nodeName ? U.children(e, ".active") : U.find(":scope > li > .active", e))[0],
s = i && n && n.classList.contains("fade"),
o = () => this._transitionComplete(t, n, i);
n && s ? (n.classList.remove("show"), this._queueCallback(o, t, !0)) : o()
}
_transitionComplete(t, e, i) {
if (e) {
e.classList.remove("active");
const t = U.findOne(":scope > .dropdown-menu .active", e.parentNode);
t && t.classList.remove("active"), "tab" === e.getAttribute("role") && e.setAttribute("aria-selected", !1)
}
t.classList.add("active"), "tab" === t.getAttribute("role") && t.setAttribute("aria-selected", !0), d(t), t.classList.contains("fade") && t.classList.add("show");
let n = t.parentNode;
if (n && "LI" === n.nodeName && (n = n.parentNode), n && n.classList.contains("dropdown-menu")) {
const e = t.closest(".dropdown");
e && U.find(".dropdown-toggle", e).forEach(t => t.classList.add("active")), t.setAttribute("aria-expanded", !0)
}
i && i()
}
static jQueryInterface(t) {
return this.each((function () {
const e = ni.getOrCreateInstance(this);
if ("string" == typeof t) {
if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`);
e[t]()
}
}))
}
}
P.on(document, "click.bs.tab.data-api", '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]', (function (t) {
["A", "AREA"].includes(this.tagName) && t.preventDefault(), l(this) || ni.getOrCreateInstance(this).show()
})), m(ni);
const si = {
animation: "boolean",
autohide: "boolean",
delay: "number"
},
oi = {
animation: !0,
autohide: !0,
delay: 5e3
};
class ri extends H {
constructor(t, e) {
super(t), this._config = this._getConfig(e), this._timeout = null, this._hasMouseInteraction = !1, this._hasKeyboardInteraction = !1, this._setListeners()
}
static get DefaultType() {
return si
}
static get Default() {
return oi
}
static get NAME() {
return "toast"
}
show() {
P.trigger(this._element, "show.bs.toast").defaultPrevented || (this._clearTimeout(), this._config.animation && this._element.classList.add("fade"), this._element.classList.remove("hide"), d(this._element), this._element.classList.add("show"), this._element.classList.add("showing"), this._queueCallback(() => {
this._element.classList.remove("showing"), P.trigger(this._element, "shown.bs.toast"), this._maybeScheduleHide()
}, this._element, this._config.animation))
}
hide() {
this._element.classList.contains("show") && (P.trigger(this._element, "hide.bs.toast").defaultPrevented || (this._element.classList.add("showing"), this._queueCallback(() => {
this._element.classList.add("hide"), this._element.classList.remove("showing"), this._element.classList.remove("show"), P.trigger(this._element, "hidden.bs.toast")
}, this._element, this._config.animation)))
}
dispose() {
this._clearTimeout(), this._element.classList.contains("show") && this._element.classList.remove("show"), super.dispose()
}
_getConfig(t) {
return t = {
...oi,
...F.getDataAttributes(this._element),
..."object" == typeof t && t ? t : {}
}, r("toast", t, this.constructor.DefaultType), t
}
_maybeScheduleHide() {
this._config.autohide && (this._hasMouseInteraction || this._hasKeyboardInteraction || (this._timeout = setTimeout(() => {
this.hide()
}, this._config.delay)))
}
_onInteraction(t, e) {
switch (t.type) {
case "mouseover":
case "mouseout":
this._hasMouseInteraction = e;
break;
case "focusin":
case "focusout":
this._hasKeyboardInteraction = e
}
if (e) return void this._clearTimeout();
const i = t.relatedTarget;
this._element === i || this._element.contains(i) || this._maybeScheduleHide()
}
_setListeners() {
P.on(this._element, "mouseover.bs.toast", t => this._onInteraction(t, !0)), P.on(this._element, "mouseout.bs.toast", t => this._onInteraction(t, !1)), P.on(this._element, "focusin.bs.toast", t => this._onInteraction(t, !0)), P.on(this._element, "focusout.bs.toast", t => this._onInteraction(t, !1))
}
_clearTimeout() {
clearTimeout(this._timeout), this._timeout = null
}
static jQueryInterface(t) {
return this.each((function () {
const e = ri.getOrCreateInstance(this, t);
if ("string" == typeof t) {
if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`);
e[t](this)
}
}))
}
}
return B(ri), m(ri), {
Alert: R,
Button: W,
Carousel: Z,
Collapse: et,
Dropdown: Te,
Modal: Pe,
Offcanvas: He,
Popover: Ze,
ScrollSpy: ii,
Tab: ni,
Toast: ri,
Tooltip: Xe
}
}));
//# sourceMappingURL=bootstrap.bundle.min.js.map
/*
jQuery smooth scroll
Version: 2.2.0 - 2017-05-05
Plugin URI: https://github.com/kswedberg/jquery-smooth-scroll
License: Licensed under MIT | Copyright (c) 2017 Karl Swedberg
*/
! function (a) {
"function" == typeof define && define.amd ? define(["jquery"], a) : a("object" == typeof module && module.exports ? require("jquery") : jQuery)
}(function (a) {
var b = {},
c = {
exclude: [],
excludeWithin: [],
offset: 0,
direction: "top",
delegateSelector: null,
scrollElement: null,
scrollTarget: null,
autoFocus: !1,
beforeScroll: function () {},
afterScroll: function () {},
easing: "swing",
speed: 400,
autoCoefficient: 2,
preventDefault: !0
},
d = function (b) {
var c = [],
d = !1,
e = b.dir && "left" === b.dir ? "scrollLeft" : "scrollTop";
return this.each(function () {
var b = a(this);
if (this !== document && this !== window) return !document.scrollingElement || this !== document.documentElement && this !== document.body ? void(b[e]() > 0 ? c.push(this) : (b[e](1), d = b[e]() > 0, d && c.push(this), b[e](0))) : (c.push(document.scrollingElement), !1)
}), c.length || this.each(function () {
this === document.documentElement && "smooth" === a(this).css("scrollBehavior") && (c = [this]), c.length || "BODY" !== this.nodeName || (c = [this])
}), "first" === b.el && c.length > 1 && (c = [c[0]]), c
},
e = /^([\-\+]=)(\d+)/;
a.fn.extend({
scrollable: function (a) {
var b = d.call(this, {
dir: a
});
return this.pushStack(b)
},
firstScrollable: function (a) {
var b = d.call(this, {
el: "first",
dir: a
});
return this.pushStack(b)
},
smoothScroll: function (b, c) {
if ("options" === (b = b || {})) return c ? this.each(function () {
var b = a(this),
d = a.extend(b.data("ssOpts") || {}, c);
a(this).data("ssOpts", d)
}) : this.first().data("ssOpts");
var d = a.extend({}, a.fn.smoothScroll.defaults, b),
e = function (b) {
var c = function (a) {
return a.replace(/(:|\.|\/)/g, "\\$1")
},
e = this,
f = a(this),
g = a.extend({}, d, f.data("ssOpts") || {}),
h = d.exclude,
i = g.excludeWithin,
j = 0,
k = 0,
l = !0,
m = {},
n = a.smoothScroll.filterPath(location.pathname),
o = a.smoothScroll.filterPath(e.pathname),
p = location.hostname === e.hostname || !e.hostname,
q = g.scrollTarget || o === n,
r = c(e.hash);
if (r && !a(r).length && (l = !1), g.scrollTarget || p && q && r) {
for (; l && j < h.length;) f.is(c(h[j++])) && (l = !1);
for (; l && k < i.length;) f.closest(i[k++]).length && (l = !1)
} else l = !1;
l && (g.preventDefault && b.preventDefault(), a.extend(m, g, {
scrollTarget: g.scrollTarget || r,
link: e
}), a.smoothScroll(m))
};
return null !== b.delegateSelector ? this.off("click.smoothscroll", b.delegateSelector).on("click.smoothscroll", b.delegateSelector, e) : this.off("click.smoothscroll").on("click.smoothscroll", e), this
}
});
var f = function (a) {
var b = {
relative: ""
},
c = "string" == typeof a && e.exec(a);
return "number" == typeof a ? b.px = a : c && (b.relative = c[1], b.px = parseFloat(c[2]) || 0), b
},
g = function (b) {
var c = a(b.scrollTarget);
b.autoFocus && c.length && (c[0].focus(), c.is(document.activeElement) || (c.prop({
tabIndex: -1
}), c[0].focus())), b.afterScroll.call(b.link, b)
};
a.smoothScroll = function (c, d) {
if ("options" === c && "object" == typeof d) return a.extend(b, d);
var e, h, i, j, k = f(c),
l = {},
m = 0,
n = "offset",
o = "scrollTop",
p = {},
q = {};
k.px ? e = a.extend({
link: null
}, a.fn.smoothScroll.defaults, b) : (e = a.extend({
link: null
}, a.fn.smoothScroll.defaults, c || {}, b), e.scrollElement && (n = "position", "static" === e.scrollElement.css("position") && e.scrollElement.css("position", "relative")), d && (k = f(d))), o = "left" === e.direction ? "scrollLeft" : o, e.scrollElement ? (h = e.scrollElement, k.px || /^(?:HTML|BODY)$/.test(h[0].nodeName) || (m = h[o]())) : h = a("html, body").firstScrollable(e.direction), e.beforeScroll.call(h, e), l = k.px ? k : {
relative: "",
px: a(e.scrollTarget)[n]() && a(e.scrollTarget)[n]()[e.direction] || 0
}, p[o] = l.relative + (l.px + m + e.offset), i = e.speed, "auto" === i && (j = Math.abs(p[o] - h[o]()), i = j / e.autoCoefficient), q = {
duration: i,
easing: e.easing,
complete: function () {
g(e)
}
}, e.step && (q.step = e.step), h.length ? h.stop().animate(p, q) : g(e)
}, a.smoothScroll.version = "2.2.0", a.smoothScroll.filterPath = function (a) {
return a = a || "", a.replace(/^\//, "").replace(/(?:index|default).[a-zA-Z]{3,4}$/, "").replace(/\/$/, "")
}, a.fn.smoothScroll.defaults = c
});
/*
Swiper
Version: 6.8.1
Most modern mobile touch slider and framework with hardware accelerated transitions
Plugin URI: https://swiperjs.com
License: Copyright 2014-2021 Vladimir Kharlampidi | Released under the MIT License | Released on: August 3, 2021
*/
! function (e, t) {
"object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).Swiper = t()
}(this, (function () {
"use strict";
function e(e, t) {
for (var a = 0; a < t.length; a++) {
var i = t[a];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
function t() {
return (t = Object.assign || function (e) {
for (var t = 1; t < arguments.length; t++) {
var a = arguments[t];
for (var i in a) Object.prototype.hasOwnProperty.call(a, i) && (e[i] = a[i])
}
return e
}).apply(this, arguments)
}
function a(e) {
return null !== e && "object" == typeof e && "constructor" in e && e.constructor === Object
}
function i(e, t) {
void 0 === e && (e = {}), void 0 === t && (t = {}), Object.keys(t).forEach((function (s) {
void 0 === e[s] ? e[s] = t[s] : a(t[s]) && a(e[s]) && Object.keys(t[s]).length > 0 && i(e[s], t[s])
}))
}
var s = {
body: {},
addEventListener: function () {},
removeEventListener: function () {},
activeElement: {
blur: function () {},
nodeName: ""
},
querySelector: function () {
return null
},
querySelectorAll: function () {
return []
},
getElementById: function () {
return null
},
createEvent: function () {
return {
initEvent: function () {}
}
},
createElement: function () {
return {
children: [],
childNodes: [],
style: {},
setAttribute: function () {},
getElementsByTagName: function () {
return []
}
}
},
createElementNS: function () {
return {}
},
importNode: function () {
return null
},
location: {
hash: "",
host: "",
hostname: "",
href: "",
origin: "",
pathname: "",
protocol: "",
search: ""
}
};
function r() {
var e = "undefined" != typeof document ? document : {};
return i(e, s), e
}
var n = {
document: s,
navigator: {
userAgent: ""
},
location: {
hash: "",
host: "",
hostname: "",
href: "",
origin: "",
pathname: "",
protocol: "",
search: ""
},
history: {
replaceState: function () {},
pushState: function () {},
go: function () {},
back: function () {}
},
CustomEvent: function () {
return this
},
addEventListener: function () {},
removeEventListener: function () {},
getComputedStyle: function () {
return {
getPropertyValue: function () {
return ""
}
}
},
Image: function () {},
Date: function () {},
screen: {},
setTimeout: function () {},
clearTimeout: function () {},
matchMedia: function () {
return {}
},
requestAnimationFrame: function (e) {
return "undefined" == typeof setTimeout ? (e(), null) : setTimeout(e, 0)
},
cancelAnimationFrame: function (e) {
"undefined" != typeof setTimeout && clearTimeout(e)
}
};
function l() {
var e = "undefined" != typeof window ? window : {};
return i(e, n), e
}
function o(e) {
return (o = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
return e.__proto__ || Object.getPrototypeOf(e)
})(e)
}
function d(e, t) {
return (d = Object.setPrototypeOf || function (e, t) {
return e.__proto__ = t, e
})(e, t)
}
function p() {
if ("undefined" == typeof Reflect || !Reflect.construct) return !1;
if (Reflect.construct.sham) return !1;
if ("function" == typeof Proxy) return !0;
try {
return Date.prototype.toString.call(Reflect.construct(Date, [], (function () {}))), !0
} catch (e) {
return !1
}
}
function u(e, t, a) {
return (u = p() ? Reflect.construct : function (e, t, a) {
var i = [null];
i.push.apply(i, t);
var s = new(Function.bind.apply(e, i));
return a && d(s, a.prototype), s
}).apply(null, arguments)
}
function c(e) {
var t = "function" == typeof Map ? new Map : void 0;
return (c = function (e) {
if (null === e || (a = e, -1 === Function.toString.call(a).indexOf("[native code]"))) return e;
var a;
if ("function" != typeof e) throw new TypeError("Super expression must either be null or a function");
if (void 0 !== t) {
if (t.has(e)) return t.get(e);
t.set(e, i)
}
function i() {
return u(e, arguments, o(this).constructor)
}
return i.prototype = Object.create(e.prototype, {
constructor: {
value: i,
enumerable: !1,
writable: !0,
configurable: !0
}
}), d(i, e)
})(e)
}
var h = function (e) {
var t, a;
function i(t) {
var a, i, s;
return a = e.call.apply(e, [this].concat(t)) || this, i = function (e) {
if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return e
}(a), s = i.__proto__, Object.defineProperty(i, "__proto__", {
get: function () {
return s
},
set: function (e) {
s.__proto__ = e
}
}), a
}
return a = e, (t = i).prototype = Object.create(a.prototype), t.prototype.constructor = t, t.__proto__ = a, i
}(c(Array));
function v(e) {
void 0 === e && (e = []);
var t = [];
return e.forEach((function (e) {
Array.isArray(e) ? t.push.apply(t, v(e)) : t.push(e)
})), t
}
function f(e, t) {
return Array.prototype.filter.call(e, t)
}
function m(e, t) {
var a = l(),
i = r(),
s = [];
if (!t && e instanceof h) return e;
if (!e) return new h(s);
if ("string" == typeof e) {
var n = e.trim();
if (n.indexOf("<") >= 0 && n.indexOf(">") >= 0) {
var o = "div";
0 === n.indexOf("
0
})).length > 0
},
toggleClass: function () {
for (var e = arguments.length, t = new Array(e), a = 0; a < e; a++) t[a] = arguments[a];
var i = v(t.map((function (e) {
return e.split(" ")
})));
this.forEach((function (e) {
i.forEach((function (t) {
e.classList.toggle(t)
}))
}))
},
attr: function (e, t) {
if (1 === arguments.length && "string" == typeof e) return this[0] ? this[0].getAttribute(e) : void 0;
for (var a = 0; a < this.length; a += 1)
if (2 === arguments.length) this[a].setAttribute(e, t);
else
for (var i in e) this[a][i] = e[i], this[a].setAttribute(i, e[i]);
return this
},
removeAttr: function (e) {
for (var t = 0; t < this.length; t += 1) this[t].removeAttribute(e);
return this
},
transform: function (e) {
for (var t = 0; t < this.length; t += 1) this[t].style.transform = e;
return this
},
transition: function (e) {
for (var t = 0; t < this.length; t += 1) this[t].style.transitionDuration = "string" != typeof e ? e + "ms" : e;
return this
},
on: function () {
for (var e = arguments.length, t = new Array(e), a = 0; a < e; a++) t[a] = arguments[a];
var i = t[0],
s = t[1],
r = t[2],
n = t[3];
function l(e) {
var t = e.target;
if (t) {
var a = e.target.dom7EventData || [];
if (a.indexOf(e) < 0 && a.unshift(e), m(t).is(s)) r.apply(t, a);
else
for (var i = m(t).parents(), n = 0; n < i.length; n += 1) m(i[n]).is(s) && r.apply(i[n], a)
}
}
function o(e) {
var t = e && e.target && e.target.dom7EventData || [];
t.indexOf(e) < 0 && t.unshift(e), r.apply(this, t)
}
"function" == typeof t[1] && (i = t[0], r = t[1], n = t[2], s = void 0), n || (n = !1);
for (var d, p = i.split(" "), u = 0; u < this.length; u += 1) {
var c = this[u];
if (s)
for (d = 0; d < p.length; d += 1) {
var h = p[d];
c.dom7LiveListeners || (c.dom7LiveListeners = {}), c.dom7LiveListeners[h] || (c.dom7LiveListeners[h] = []), c.dom7LiveListeners[h].push({
listener: r,
proxyListener: l
}), c.addEventListener(h, l, n)
} else
for (d = 0; d < p.length; d += 1) {
var v = p[d];
c.dom7Listeners || (c.dom7Listeners = {}), c.dom7Listeners[v] || (c.dom7Listeners[v] = []), c.dom7Listeners[v].push({
listener: r,
proxyListener: o
}), c.addEventListener(v, o, n)
}
}
return this
},
off: function () {
for (var e = arguments.length, t = new Array(e), a = 0; a < e; a++) t[a] = arguments[a];
var i = t[0],
s = t[1],
r = t[2],
n = t[3];
"function" == typeof t[1] && (i = t[0], r = t[1], n = t[2], s = void 0), n || (n = !1);
for (var l = i.split(" "), o = 0; o < l.length; o += 1)
for (var d = l[o], p = 0; p < this.length; p += 1) {
var u = this[p],
c = void 0;
if (!s && u.dom7Listeners ? c = u.dom7Listeners[d] : s && u.dom7LiveListeners && (c = u.dom7LiveListeners[d]), c && c.length)
for (var h = c.length - 1; h >= 0; h -= 1) {
var v = c[h];
r && v.listener === r || r && v.listener && v.listener.dom7proxy && v.listener.dom7proxy === r ? (u.removeEventListener(d, v.proxyListener, n), c.splice(h, 1)) : r || (u.removeEventListener(d, v.proxyListener, n), c.splice(h, 1))
}
}
return this
},
trigger: function () {
for (var e = l(), t = arguments.length, a = new Array(t), i = 0; i < t; i++) a[i] = arguments[i];
for (var s = a[0].split(" "), r = a[1], n = 0; n < s.length; n += 1)
for (var o = s[n], d = 0; d < this.length; d += 1) {
var p = this[d];
if (e.CustomEvent) {
var u = new e.CustomEvent(o, {
detail: r,
bubbles: !0,
cancelable: !0
});
p.dom7EventData = a.filter((function (e, t) {
return t > 0
})), p.dispatchEvent(u), p.dom7EventData = [], delete p.dom7EventData
}
}
return this
},
transitionEnd: function (e) {
var t = this;
return e && t.on("transitionend", (function a(i) {
i.target === this && (e.call(this, i), t.off("transitionend", a))
})), this
},
outerWidth: function (e) {
if (this.length > 0) {
if (e) {
var t = this.styles();
return this[0].offsetWidth + parseFloat(t.getPropertyValue("margin-right")) + parseFloat(t.getPropertyValue("margin-left"))
}
return this[0].offsetWidth
}
return null
},
outerHeight: function (e) {
if (this.length > 0) {
if (e) {
var t = this.styles();
return this[0].offsetHeight + parseFloat(t.getPropertyValue("margin-top")) + parseFloat(t.getPropertyValue("margin-bottom"))
}
return this[0].offsetHeight
}
return null
},
styles: function () {
var e = l();
return this[0] ? e.getComputedStyle(this[0], null) : {}
},
offset: function () {
if (this.length > 0) {
var e = l(),
t = r(),
a = this[0],
i = a.getBoundingClientRect(),
s = t.body,
n = a.clientTop || s.clientTop || 0,
o = a.clientLeft || s.clientLeft || 0,
d = a === e ? e.scrollY : a.scrollTop,
p = a === e ? e.scrollX : a.scrollLeft;
return {
top: i.top + d - n,
left: i.left + p - o
}
}
return null
},
css: function (e, t) {
var a, i = l();
if (1 === arguments.length) {
if ("string" != typeof e) {
for (a = 0; a < this.length; a += 1)
for (var s in e) this[a].style[s] = e[s];
return this
}
if (this[0]) return i.getComputedStyle(this[0], null).getPropertyValue(e)
}
if (2 === arguments.length && "string" == typeof e) {
for (a = 0; a < this.length; a += 1) this[a].style[e] = t;
return this
}
return this
},
each: function (e) {
return e ? (this.forEach((function (t, a) {
e.apply(t, [t, a])
})), this) : this
},
html: function (e) {
if (void 0 === e) return this[0] ? this[0].innerHTML : null;
for (var t = 0; t < this.length; t += 1) this[t].innerHTML = e;
return this
},
text: function (e) {
if (void 0 === e) return this[0] ? this[0].textContent.trim() : null;
for (var t = 0; t < this.length; t += 1) this[t].textContent = e;
return this
},
is: function (e) {
var t, a, i = l(),
s = r(),
n = this[0];
if (!n || void 0 === e) return !1;
if ("string" == typeof e) {
if (n.matches) return n.matches(e);
if (n.webkitMatchesSelector) return n.webkitMatchesSelector(e);
if (n.msMatchesSelector) return n.msMatchesSelector(e);
for (t = m(e), a = 0; a < t.length; a += 1)
if (t[a] === n) return !0;
return !1
}
if (e === s) return n === s;
if (e === i) return n === i;
if (e.nodeType || e instanceof h) {
for (t = e.nodeType ? [e] : e, a = 0; a < t.length; a += 1)
if (t[a] === n) return !0;
return !1
}
return !1
},
index: function () {
var e, t = this[0];
if (t) {
for (e = 0; null !== (t = t.previousSibling);) 1 === t.nodeType && (e += 1);
return e
}
},
eq: function (e) {
if (void 0 === e) return this;
var t = this.length;
if (e > t - 1) return m([]);
if (e < 0) {
var a = t + e;
return m(a < 0 ? [] : [this[a]])
}
return m([this[e]])
},
append: function () {
for (var e, t = r(), a = 0; a < arguments.length; a += 1) {
e = a < 0 || arguments.length <= a ? void 0 : arguments[a];
for (var i = 0; i < this.length; i += 1)
if ("string" == typeof e) {
var s = t.createElement("div");
for (s.innerHTML = e; s.firstChild;) this[i].appendChild(s.firstChild)
} else if (e instanceof h)
for (var n = 0; n < e.length; n += 1) this[i].appendChild(e[n]);
else this[i].appendChild(e)
}
return this
},
prepend: function (e) {
var t, a, i = r();
for (t = 0; t < this.length; t += 1)
if ("string" == typeof e) {
var s = i.createElement("div");
for (s.innerHTML = e, a = s.childNodes.length - 1; a >= 0; a -= 1) this[t].insertBefore(s.childNodes[a], this[t].childNodes[0])
} else if (e instanceof h)
for (a = 0; a < e.length; a += 1) this[t].insertBefore(e[a], this[t].childNodes[0]);
else this[t].insertBefore(e, this[t].childNodes[0]);
return this
},
next: function (e) {
return this.length > 0 ? e ? this[0].nextElementSibling && m(this[0].nextElementSibling).is(e) ? m([this[0].nextElementSibling]) : m([]) : this[0].nextElementSibling ? m([this[0].nextElementSibling]) : m([]) : m([])
},
nextAll: function (e) {
var t = [],
a = this[0];
if (!a) return m([]);
for (; a.nextElementSibling;) {
var i = a.nextElementSibling;
e ? m(i).is(e) && t.push(i) : t.push(i), a = i
}
return m(t)
},
prev: function (e) {
if (this.length > 0) {
var t = this[0];
return e ? t.previousElementSibling && m(t.previousElementSibling).is(e) ? m([t.previousElementSibling]) : m([]) : t.previousElementSibling ? m([t.previousElementSibling]) : m([])
}
return m([])
},
prevAll: function (e) {
var t = [],
a = this[0];
if (!a) return m([]);
for (; a.previousElementSibling;) {
var i = a.previousElementSibling;
e ? m(i).is(e) && t.push(i) : t.push(i), a = i
}
return m(t)
},
parent: function (e) {
for (var t = [], a = 0; a < this.length; a += 1) null !== this[a].parentNode && (e ? m(this[a].parentNode).is(e) && t.push(this[a].parentNode) : t.push(this[a].parentNode));
return m(t)
},
parents: function (e) {
for (var t = [], a = 0; a < this.length; a += 1)
for (var i = this[a].parentNode; i;) e ? m(i).is(e) && t.push(i) : t.push(i), i = i.parentNode;
return m(t)
},
closest: function (e) {
var t = this;
return void 0 === e ? m([]) : (t.is(e) || (t = t.parents(e).eq(0)), t)
},
find: function (e) {
for (var t = [], a = 0; a < this.length; a += 1) {
try {
var i = this[a].querySelectorAll(e)
} catch (t) {
console.log(e)
}
for (var s = 0; s < i.length; s += 1) t.push(i[s])
}
return m(t)
},
children: function (e) {
for (var t = [], a = 0; a < this.length; a += 1)
for (var i = this[a].children, s = 0; s < i.length; s += 1) e && !m(i[s]).is(e) || t.push(i[s]);
return m(t)
},
filter: function (e) {
return m(f(this, e))
},
remove: function () {
for (var e = 0; e < this.length; e += 1) this[e].parentNode && this[e].parentNode.removeChild(this[e]);
return this
}
};
function E(e, t) {
return void 0 === t && (t = 0), setTimeout(e, t)
}
function x() {
return Date.now()
}
function T(e, t) {
void 0 === t && (t = "x");
var a, i, s, r = l(),
n = function (e) {
var t, a = l();
return a.getComputedStyle && (t = a.getComputedStyle(e, null)), !t && e.currentStyle && (t = e.currentStyle), t || (t = e.style), t
}(e);
return r.WebKitCSSMatrix ? ((i = n.transform || n.webkitTransform).split(",").length > 6 && (i = i.split(", ").map((function (e) {
return e.replace(",", ".")
})).join(", ")), s = new r.WebKitCSSMatrix("none" === i ? "" : i)) : a = (s = n.MozTransform || n.OTransform || n.MsTransform || n.msTransform || n.transform || n.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,")).toString().split(","), "x" === t && (i = r.WebKitCSSMatrix ? s.m41 : 16 === a.length ? parseFloat(a[12]) : parseFloat(a[4])), "y" === t && (i = r.WebKitCSSMatrix ? s.m42 : 16 === a.length ? parseFloat(a[13]) : parseFloat(a[5])), i || 0
}
function C(e) {
return "object" == typeof e && null !== e && e.constructor && "Object" === Object.prototype.toString.call(e).slice(8, -1)
}
function S(e) {
return "undefined" != typeof window && void 0 !== window.HTMLElement ? e instanceof HTMLElement : e && (1 === e.nodeType || 11 === e.nodeType)
}
function M() {
for (var e = Object(arguments.length <= 0 ? void 0 : arguments[0]), t = ["__proto__", "constructor", "prototype"], a = 1; a < arguments.length; a += 1) {
var i = a < 0 || arguments.length <= a ? void 0 : arguments[a];
if (null != i && !S(i))
for (var s = Object.keys(Object(i)).filter((function (e) {
return t.indexOf(e) < 0
})), r = 0, n = s.length; r < n; r += 1) {
var l = s[r],
o = Object.getOwnPropertyDescriptor(i, l);
void 0 !== o && o.enumerable && (C(e[l]) && C(i[l]) ? i[l].__swiper__ ? e[l] = i[l] : M(e[l], i[l]) : !C(e[l]) && C(i[l]) ? (e[l] = {}, i[l].__swiper__ ? e[l] = i[l] : M(e[l], i[l])) : e[l] = i[l])
}
}
return e
}
function z(e, t) {
Object.keys(t).forEach((function (a) {
C(t[a]) && Object.keys(t[a]).forEach((function (i) {
"function" == typeof t[a][i] && (t[a][i] = t[a][i].bind(e))
})), e[a] = t[a]
}))
}
function P(e) {
return void 0 === e && (e = ""), "." + e.trim().replace(/([\.:\/])/g, "\\$1").replace(/ /g, ".")
}
function k(e, t, a, i) {
var s = r();
return a && Object.keys(i).forEach((function (a) {
if (!t[a] && !0 === t.auto) {
var r = s.createElement("div");
r.className = i[a], e.append(r), t[a] = r
}
})), t
}
function $() {
return g || (g = function () {
var e = l(),
t = r();
return {
touch: !!("ontouchstart" in e || e.DocumentTouch && t instanceof e.DocumentTouch),
pointerEvents: !!e.PointerEvent && "maxTouchPoints" in e.navigator && e.navigator.maxTouchPoints >= 0,
observer: "MutationObserver" in e || "WebkitMutationObserver" in e,
passiveListener: function () {
var t = !1;
try {
var a = Object.defineProperty({}, "passive", {
get: function () {
t = !0
}
});
e.addEventListener("testPassiveListener", null, a)
} catch (e) {}
return t
}(),
gestures: "ongesturestart" in e
}
}()), g
}
function L(e) {
return void 0 === e && (e = {}), b || (b = function (e) {
var t = (void 0 === e ? {} : e).userAgent,
a = $(),
i = l(),
s = i.navigator.platform,
r = t || i.navigator.userAgent,
n = {
ios: !1,
android: !1
},
o = i.screen.width,
d = i.screen.height,
p = r.match(/(Android);?[\s\/]+([\d.]+)?/),
u = r.match(/(iPad).*OS\s([\d_]+)/),
c = r.match(/(iPod)(.*OS\s([\d_]+))?/),
h = !u && r.match(/(iPhone\sOS|iOS)\s([\d_]+)/),
v = "Win32" === s,
f = "MacIntel" === s;
return !u && f && a.touch && ["1024x1366", "1366x1024", "834x1194", "1194x834", "834x1112", "1112x834", "768x1024", "1024x768", "820x1180", "1180x820", "810x1080", "1080x810"].indexOf(o + "x" + d) >= 0 && ((u = r.match(/(Version)\/([\d.]+)/)) || (u = [0, 1, "13_0_0"]), f = !1), p && !v && (n.os = "android", n.android = !0), (u || h || c) && (n.os = "ios", n.ios = !0), n
}(e)), b
}
function I() {
return w || (w = function () {
var e, t = l();
return {
isEdge: !!t.navigator.userAgent.match(/Edge/g),
isSafari: (e = t.navigator.userAgent.toLowerCase(), e.indexOf("safari") >= 0 && e.indexOf("chrome") < 0 && e.indexOf("android") < 0),
isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(t.navigator.userAgent)
}
}()), w
}
Object.keys(y).forEach((function (e) {
Object.defineProperty(m.fn, e, {
value: y[e],
writable: !0
})
}));
var O = {
name: "resize",
create: function () {
var e = this;
M(e, {
resize: {
observer: null,
createObserver: function () {
e && !e.destroyed && e.initialized && (e.resize.observer = new ResizeObserver((function (t) {
var a = e.width,
i = e.height,
s = a,
r = i;
t.forEach((function (t) {
var a = t.contentBoxSize,
i = t.contentRect,
n = t.target;
n && n !== e.el || (s = i ? i.width : (a[0] || a).inlineSize, r = i ? i.height : (a[0] || a).blockSize)
})), s === a && r === i || e.resize.resizeHandler()
})), e.resize.observer.observe(e.el))
},
removeObserver: function () {
e.resize.observer && e.resize.observer.unobserve && e.el && (e.resize.observer.unobserve(e.el), e.resize.observer = null)
},
resizeHandler: function () {
e && !e.destroyed && e.initialized && (e.emit("beforeResize"), e.emit("resize"))
},
orientationChangeHandler: function () {
e && !e.destroyed && e.initialized && e.emit("orientationchange")
}
}
})
},
on: {
init: function (e) {
var t = l();
e.params.resizeObserver && void 0 !== l().ResizeObserver ? e.resize.createObserver() : (t.addEventListener("resize", e.resize.resizeHandler), t.addEventListener("orientationchange", e.resize.orientationChangeHandler))
},
destroy: function (e) {
var t = l();
e.resize.removeObserver(), t.removeEventListener("resize", e.resize.resizeHandler), t.removeEventListener("orientationchange", e.resize.orientationChangeHandler)
}
}
},
A = {
attach: function (e, t) {
void 0 === t && (t = {});
var a = l(),
i = this,
s = new(a.MutationObserver || a.WebkitMutationObserver)((function (e) {
if (1 !== e.length) {
var t = function () {
i.emit("observerUpdate", e[0])
};
a.requestAnimationFrame ? a.requestAnimationFrame(t) : a.setTimeout(t, 0)
} else i.emit("observerUpdate", e[0])
}));
s.observe(e, {
attributes: void 0 === t.attributes || t.attributes,
childList: void 0 === t.childList || t.childList,
characterData: void 0 === t.characterData || t.characterData
}), i.observer.observers.push(s)
},
init: function () {
var e = this;
if (e.support.observer && e.params.observer) {
if (e.params.observeParents)
for (var t = e.$el.parents(), a = 0; a < t.length; a += 1) e.observer.attach(t[a]);
e.observer.attach(e.$el[0], {
childList: e.params.observeSlideChildren
}), e.observer.attach(e.$wrapperEl[0], {
attributes: !1
})
}
},
destroy: function () {
this.observer.observers.forEach((function (e) {
e.disconnect()
})), this.observer.observers = []
}
},
D = {
name: "observer",
params: {
observer: !1,
observeParents: !1,
observeSlideChildren: !1
},
create: function () {
z(this, {
observer: t({}, A, {
observers: []
})
})
},
on: {
init: function (e) {
e.observer.init()
},
destroy: function (e) {
e.observer.destroy()
}
}
};
function N(e) {
var t = this,
a = r(),
i = l(),
s = t.touchEventsData,
n = t.params,
o = t.touches;
if (t.enabled && (!t.animating || !n.preventInteractionOnTransition)) {
var d = e;
d.originalEvent && (d = d.originalEvent);
var p = m(d.target);
if (("wrapper" !== n.touchEventsTarget || p.closest(t.wrapperEl).length) && (s.isTouchEvent = "touchstart" === d.type, (s.isTouchEvent || !("which" in d) || 3 !== d.which) && !(!s.isTouchEvent && "button" in d && d.button > 0 || s.isTouched && s.isMoved))) {
!!n.noSwipingClass && "" !== n.noSwipingClass && d.target && d.target.shadowRoot && e.path && e.path[0] && (p = m(e.path[0]));
var u = n.noSwipingSelector ? n.noSwipingSelector : "." + n.noSwipingClass,
c = !(!d.target || !d.target.shadowRoot);
if (n.noSwiping && (c ? function (e, t) {
return void 0 === t && (t = this),
function t(a) {
return a && a !== r() && a !== l() ? (a.assignedSlot && (a = a.assignedSlot), a.closest(e) || t(a.getRootNode().host)) : null
}(t)
}(u, d.target) : p.closest(u)[0])) t.allowClick = !0;
else if (!n.swipeHandler || p.closest(n.swipeHandler)[0]) {
o.currentX = "touchstart" === d.type ? d.targetTouches[0].pageX : d.pageX, o.currentY = "touchstart" === d.type ? d.targetTouches[0].pageY : d.pageY;
var h = o.currentX,
v = o.currentY,
f = n.edgeSwipeDetection || n.iOSEdgeSwipeDetection,
g = n.edgeSwipeThreshold || n.iOSEdgeSwipeThreshold;
if (f && (h <= g || h >= i.innerWidth - g)) {
if ("prevent" !== f) return;
e.preventDefault()
}
if (M(s, {
isTouched: !0,
isMoved: !1,
allowTouchCallbacks: !0,
isScrolling: void 0,
startMoving: void 0
}), o.startX = h, o.startY = v, s.touchStartTime = x(), t.allowClick = !0, t.updateSize(), t.swipeDirection = void 0, n.threshold > 0 && (s.allowThresholdMove = !1), "touchstart" !== d.type) {
var b = !0;
p.is(s.focusableElements) && (b = !1), a.activeElement && m(a.activeElement).is(s.focusableElements) && a.activeElement !== p[0] && a.activeElement.blur();
var w = b && t.allowTouchMove && n.touchStartPreventDefault;
!n.touchStartForcePreventDefault && !w || p[0].isContentEditable || d.preventDefault()
}
t.emit("touchStart", d)
}
}
}
}
function G(e) {
var t = r(),
a = this,
i = a.touchEventsData,
s = a.params,
n = a.touches,
l = a.rtlTranslate;
if (a.enabled) {
var o = e;
if (o.originalEvent && (o = o.originalEvent), i.isTouched) {
if (!i.isTouchEvent || "touchmove" === o.type) {
var d = "touchmove" === o.type && o.targetTouches && (o.targetTouches[0] || o.changedTouches[0]),
p = "touchmove" === o.type ? d.pageX : o.pageX,
u = "touchmove" === o.type ? d.pageY : o.pageY;
if (o.preventedByNestedSwiper) return n.startX = p, void(n.startY = u);
if (!a.allowTouchMove) return a.allowClick = !1, void(i.isTouched && (M(n, {
startX: p,
startY: u,
currentX: p,
currentY: u
}), i.touchStartTime = x()));
if (i.isTouchEvent && s.touchReleaseOnEdges && !s.loop)
if (a.isVertical()) {
if (u < n.startY && a.translate <= a.maxTranslate() || u > n.startY && a.translate >= a.minTranslate()) return i.isTouched = !1, void(i.isMoved = !1)
} else if (p < n.startX && a.translate <= a.maxTranslate() || p > n.startX && a.translate >= a.minTranslate()) return;
if (i.isTouchEvent && t.activeElement && o.target === t.activeElement && m(o.target).is(i.focusableElements)) return i.isMoved = !0, void(a.allowClick = !1);
if (i.allowTouchCallbacks && a.emit("touchMove", o), !(o.targetTouches && o.targetTouches.length > 1)) {
n.currentX = p, n.currentY = u;
var c = n.currentX - n.startX,
h = n.currentY - n.startY;
if (!(a.params.threshold && Math.sqrt(Math.pow(c, 2) + Math.pow(h, 2)) < a.params.threshold)) {
var v;
if (void 0 === i.isScrolling) a.isHorizontal() && n.currentY === n.startY || a.isVertical() && n.currentX === n.startX ? i.isScrolling = !1 : c * c + h * h >= 25 && (v = 180 * Math.atan2(Math.abs(h), Math.abs(c)) / Math.PI, i.isScrolling = a.isHorizontal() ? v > s.touchAngle : 90 - v > s.touchAngle);
if (i.isScrolling && a.emit("touchMoveOpposite", o), void 0 === i.startMoving && (n.currentX === n.startX && n.currentY === n.startY || (i.startMoving = !0)), i.isScrolling) i.isTouched = !1;
else if (i.startMoving) {
a.allowClick = !1, !s.cssMode && o.cancelable && o.preventDefault(), s.touchMoveStopPropagation && !s.nested && o.stopPropagation(), i.isMoved || (s.loop && a.loopFix(), i.startTranslate = a.getTranslate(), a.setTransition(0), a.animating && a.$wrapperEl.trigger("webkitTransitionEnd transitionend"), i.allowMomentumBounce = !1, !s.grabCursor || !0 !== a.allowSlideNext && !0 !== a.allowSlidePrev || a.setGrabCursor(!0), a.emit("sliderFirstMove", o)), a.emit("sliderMove", o), i.isMoved = !0;
var f = a.isHorizontal() ? c : h;
n.diff = f, f *= s.touchRatio, l && (f = -f), a.swipeDirection = f > 0 ? "prev" : "next", i.currentTranslate = f + i.startTranslate;
var g = !0,
b = s.resistanceRatio;
if (s.touchReleaseOnEdges && (b = 0), f > 0 && i.currentTranslate > a.minTranslate() ? (g = !1, s.resistance && (i.currentTranslate = a.minTranslate() - 1 + Math.pow(-a.minTranslate() + i.startTranslate + f, b))) : f < 0 && i.currentTranslate < a.maxTranslate() && (g = !1, s.resistance && (i.currentTranslate = a.maxTranslate() + 1 - Math.pow(a.maxTranslate() - i.startTranslate - f, b))), g && (o.preventedByNestedSwiper = !0), !a.allowSlideNext && "next" === a.swipeDirection && i.currentTranslate < i.startTranslate && (i.currentTranslate = i.startTranslate), !a.allowSlidePrev && "prev" === a.swipeDirection && i.currentTranslate > i.startTranslate && (i.currentTranslate = i.startTranslate), a.allowSlidePrev || a.allowSlideNext || (i.currentTranslate = i.startTranslate), s.threshold > 0) {
if (!(Math.abs(f) > s.threshold || i.allowThresholdMove)) return void(i.currentTranslate = i.startTranslate);
if (!i.allowThresholdMove) return i.allowThresholdMove = !0, n.startX = n.currentX, n.startY = n.currentY, i.currentTranslate = i.startTranslate, void(n.diff = a.isHorizontal() ? n.currentX - n.startX : n.currentY - n.startY)
}
s.followFinger && !s.cssMode && ((s.freeMode || s.watchSlidesProgress || s.watchSlidesVisibility) && (a.updateActiveIndex(), a.updateSlidesClasses()), s.freeMode && (0 === i.velocities.length && i.velocities.push({
position: n[a.isHorizontal() ? "startX" : "startY"],
time: i.touchStartTime
}), i.velocities.push({
position: n[a.isHorizontal() ? "currentX" : "currentY"],
time: x()
})), a.updateProgress(i.currentTranslate), a.setTranslate(i.currentTranslate))
}
}
}
}
} else i.startMoving && i.isScrolling && a.emit("touchMoveOpposite", o)
}
}
function B(e) {
var t = this,
a = t.touchEventsData,
i = t.params,
s = t.touches,
r = t.rtlTranslate,
n = t.$wrapperEl,
l = t.slidesGrid,
o = t.snapGrid;
if (t.enabled) {
var d = e;
if (d.originalEvent && (d = d.originalEvent), a.allowTouchCallbacks && t.emit("touchEnd", d), a.allowTouchCallbacks = !1, !a.isTouched) return a.isMoved && i.grabCursor && t.setGrabCursor(!1), a.isMoved = !1, void(a.startMoving = !1);
i.grabCursor && a.isMoved && a.isTouched && (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) && t.setGrabCursor(!1);
var p, u = x(),
c = u - a.touchStartTime;
if (t.allowClick && (t.updateClickedSlide(d), t.emit("tap click", d), c < 300 && u - a.lastClickTime < 300 && t.emit("doubleTap doubleClick", d)), a.lastClickTime = x(), E((function () {
t.destroyed || (t.allowClick = !0)
})), !a.isTouched || !a.isMoved || !t.swipeDirection || 0 === s.diff || a.currentTranslate === a.startTranslate) return a.isTouched = !1, a.isMoved = !1, void(a.startMoving = !1);
if (a.isTouched = !1, a.isMoved = !1, a.startMoving = !1, p = i.followFinger ? r ? t.translate : -t.translate : -a.currentTranslate, !i.cssMode)
if (i.freeMode) {
if (p < -t.minTranslate()) return void t.slideTo(t.activeIndex);
if (p > -t.maxTranslate()) return void(t.slides.length < o.length ? t.slideTo(o.length - 1) : t.slideTo(t.slides.length - 1));
if (i.freeModeMomentum) {
if (a.velocities.length > 1) {
var h = a.velocities.pop(),
v = a.velocities.pop(),
f = h.position - v.position,
m = h.time - v.time;
t.velocity = f / m, t.velocity /= 2, Math.abs(t.velocity) < i.freeModeMinimumVelocity && (t.velocity = 0), (m > 150 || x() - h.time > 300) && (t.velocity = 0)
} else t.velocity = 0;
t.velocity *= i.freeModeMomentumVelocityRatio, a.velocities.length = 0;
var g = 1e3 * i.freeModeMomentumRatio,
b = t.velocity * g,
w = t.translate + b;
r && (w = -w);
var y, T, C = !1,
S = 20 * Math.abs(t.velocity) * i.freeModeMomentumBounceRatio;
if (w < t.maxTranslate()) i.freeModeMomentumBounce ? (w + t.maxTranslate() < -S && (w = t.maxTranslate() - S), y = t.maxTranslate(), C = !0, a.allowMomentumBounce = !0) : w = t.maxTranslate(), i.loop && i.centeredSlides && (T = !0);
else if (w > t.minTranslate()) i.freeModeMomentumBounce ? (w - t.minTranslate() > S && (w = t.minTranslate() + S), y = t.minTranslate(), C = !0, a.allowMomentumBounce = !0) : w = t.minTranslate(), i.loop && i.centeredSlides && (T = !0);
else if (i.freeModeSticky) {
for (var M, z = 0; z < o.length; z += 1)
if (o[z] > -w) {
M = z;
break
} w = -(w = Math.abs(o[M] - w) < Math.abs(o[M - 1] - w) || "next" === t.swipeDirection ? o[M] : o[M - 1])
}
if (T && t.once("transitionEnd", (function () {
t.loopFix()
})), 0 !== t.velocity) {
if (g = r ? Math.abs((-w - t.translate) / t.velocity) : Math.abs((w - t.translate) / t.velocity), i.freeModeSticky) {
var P = Math.abs((r ? -w : w) - t.translate),
k = t.slidesSizesGrid[t.activeIndex];
g = P < k ? i.speed : P < 2 * k ? 1.5 * i.speed : 2.5 * i.speed
}
} else if (i.freeModeSticky) return void t.slideToClosest();
i.freeModeMomentumBounce && C ? (t.updateProgress(y), t.setTransition(g), t.setTranslate(w), t.transitionStart(!0, t.swipeDirection), t.animating = !0, n.transitionEnd((function () {
t && !t.destroyed && a.allowMomentumBounce && (t.emit("momentumBounce"), t.setTransition(i.speed), setTimeout((function () {
t.setTranslate(y), n.transitionEnd((function () {
t && !t.destroyed && t.transitionEnd()
}))
}), 0))
}))) : t.velocity ? (t.updateProgress(w), t.setTransition(g), t.setTranslate(w), t.transitionStart(!0, t.swipeDirection), t.animating || (t.animating = !0, n.transitionEnd((function () {
t && !t.destroyed && t.transitionEnd()
})))) : (t.emit("_freeModeNoMomentumRelease"), t.updateProgress(w)), t.updateActiveIndex(), t.updateSlidesClasses()
} else {
if (i.freeModeSticky) return void t.slideToClosest();
i.freeMode && t.emit("_freeModeNoMomentumRelease")
}(!i.freeModeMomentum || c >= i.longSwipesMs) && (t.updateProgress(), t.updateActiveIndex(), t.updateSlidesClasses())
} else {
for (var $ = 0, L = t.slidesSizesGrid[0], I = 0; I < l.length; I += I < i.slidesPerGroupSkip ? 1 : i.slidesPerGroup) {
var O = I < i.slidesPerGroupSkip - 1 ? 1 : i.slidesPerGroup;
void 0 !== l[I + O] ? p >= l[I] && p < l[I + O] && ($ = I, L = l[I + O] - l[I]) : p >= l[I] && ($ = I, L = l[l.length - 1] - l[l.length - 2])
}
var A = (p - l[$]) / L,
D = $ < i.slidesPerGroupSkip - 1 ? 1 : i.slidesPerGroup;
if (c > i.longSwipesMs) {
if (!i.longSwipes) return void t.slideTo(t.activeIndex);
"next" === t.swipeDirection && (A >= i.longSwipesRatio ? t.slideTo($ + D) : t.slideTo($)), "prev" === t.swipeDirection && (A > 1 - i.longSwipesRatio ? t.slideTo($ + D) : t.slideTo($))
} else {
if (!i.shortSwipes) return void t.slideTo(t.activeIndex);
t.navigation && (d.target === t.navigation.nextEl || d.target === t.navigation.prevEl) ? d.target === t.navigation.nextEl ? t.slideTo($ + D) : t.slideTo($) : ("next" === t.swipeDirection && t.slideTo($ + D), "prev" === t.swipeDirection && t.slideTo($))
}
}
}
}
function H() {
var e = this,
t = e.params,
a = e.el;
if (!a || 0 !== a.offsetWidth) {
t.breakpoints && e.setBreakpoint();
var i = e.allowSlideNext,
s = e.allowSlidePrev,
r = e.snapGrid;
e.allowSlideNext = !0, e.allowSlidePrev = !0, e.updateSize(), e.updateSlides(), e.updateSlidesClasses(), ("auto" === t.slidesPerView || t.slidesPerView > 1) && e.isEnd && !e.isBeginning && !e.params.centeredSlides ? e.slideTo(e.slides.length - 1, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0), e.autoplay && e.autoplay.running && e.autoplay.paused && e.autoplay.run(), e.allowSlidePrev = s, e.allowSlideNext = i, e.params.watchOverflow && r !== e.snapGrid && e.checkOverflow()
}
}
function R(e) {
var t = this;
t.enabled && (t.allowClick || (t.params.preventClicks && e.preventDefault(), t.params.preventClicksPropagation && t.animating && (e.stopPropagation(), e.stopImmediatePropagation())))
}
function X() {
var e = this,
t = e.wrapperEl,
a = e.rtlTranslate;
if (e.enabled) {
e.previousTranslate = e.translate, e.isHorizontal() ? e.translate = a ? t.scrollWidth - t.offsetWidth - t.scrollLeft : -t.scrollLeft : e.translate = -t.scrollTop, -0 === e.translate && (e.translate = 0), e.updateActiveIndex(), e.updateSlidesClasses();
var i = e.maxTranslate() - e.minTranslate();
(0 === i ? 0 : (e.translate - e.minTranslate()) / i) !== e.progress && e.updateProgress(a ? -e.translate : e.translate), e.emit("setTranslate", e.translate, !1)
}
}
var Y = !1;
function V() {}
var W = {
init: !0,
direction: "horizontal",
touchEventsTarget: "container",
initialSlide: 0,
speed: 1600,
cssMode: !1,
updateOnWindowResize: !0,
resizeObserver: !1,
nested: !1,
createElements: !1,
enabled: !0,
focusableElements: "input, select, option, textarea, button, video, label",
width: null,
height: null,
preventInteractionOnTransition: !1,
userAgent: null,
url: null,
edgeSwipeDetection: !1,
edgeSwipeThreshold: 40,
freeMode: !1,
freeModeMomentum: !0,
freeModeMomentumRatio: 1,
freeModeMomentumBounce: !0,
freeModeMomentumBounceRatio: 1,
freeModeMomentumVelocityRatio: 1,
freeModeSticky: !1,
freeModeMinimumVelocity: .02,
autoHeight: !1,
setWrapperSize: !1,
virtualTranslate: !1,
effect: "slide",
breakpoints: void 0,
breakpointsBase: "window",
spaceBetween: 0,
slidesPerView: 1,
slidesPerColumn: 1,
slidesPerColumnFill: "column",
slidesPerGroup: 1,
slidesPerGroupSkip: 0,
centeredSlides: !1,
centeredSlidesBounds: !1,
slidesOffsetBefore: 0,
slidesOffsetAfter: 0,
normalizeSlideIndex: !0,
centerInsufficientSlides: !1,
watchOverflow: !1,
roundLengths: !1,
touchRatio: 1,
touchAngle: 45,
simulateTouch: !0,
shortSwipes: !0,
longSwipes: !0,
longSwipesRatio: .5,
longSwipesMs: 300,
followFinger: !0,
allowTouchMove: !0,
threshold: 0,
touchMoveStopPropagation: !1,
touchStartPreventDefault: !0,
touchStartForcePreventDefault: !1,
touchReleaseOnEdges: !1,
uniqueNavElements: !0,
resistance: !0,
resistanceRatio: .85,
watchSlidesProgress: !1,
watchSlidesVisibility: !1,
grabCursor: !1,
preventClicks: !0,
preventClicksPropagation: !0,
slideToClickedSlide: !1,
preloadImages: !0,
updateOnImagesReady: !0,
loop: !1,
loopAdditionalSlides: 0,
loopedSlides: null,
loopFillGroupWithBlank: !1,
loopPreventsSlide: !0,
allowSlidePrev: !0,
allowSlideNext: !0,
swipeHandler: null,
noSwiping: !0,
noSwipingClass: "swiper-no-swiping",
noSwipingSelector: null,
passiveListeners: !0,
containerModifierClass: "swiper-container-",
slideClass: "swiper-slide",
slideBlankClass: "swiper-slide-invisible-blank",
slideActiveClass: "swiper-slide-active",
slideDuplicateActiveClass: "swiper-slide-duplicate-active",
slideVisibleClass: "swiper-slide-visible",
slideDuplicateClass: "swiper-slide-duplicate",
slideNextClass: "swiper-slide-next",
slideDuplicateNextClass: "swiper-slide-duplicate-next",
slidePrevClass: "swiper-slide-prev",
slideDuplicatePrevClass: "swiper-slide-duplicate-prev",
wrapperClass: "swiper-wrapper",
runCallbacksOnInit: !0,
_emitClasses: !1
},
F = {
modular: {
useParams: function (e) {
var t = this;
t.modules && Object.keys(t.modules).forEach((function (a) {
var i = t.modules[a];
i.params && M(e, i.params)
}))
},
useModules: function (e) {
void 0 === e && (e = {});
var t = this;
t.modules && Object.keys(t.modules).forEach((function (a) {
var i = t.modules[a],
s = e[a] || {};
i.on && t.on && Object.keys(i.on).forEach((function (e) {
t.on(e, i.on[e])
})), i.create && i.create.bind(t)(s)
}))
}
},
eventsEmitter: {
on: function (e, t, a) {
var i = this;
if ("function" != typeof t) return i;
var s = a ? "unshift" : "push";
return e.split(" ").forEach((function (e) {
i.eventsListeners[e] || (i.eventsListeners[e] = []), i.eventsListeners[e][s](t)
})), i
},
once: function (e, t, a) {
var i = this;
if ("function" != typeof t) return i;
function s() {
i.off(e, s), s.__emitterProxy && delete s.__emitterProxy;
for (var a = arguments.length, r = new Array(a), n = 0; n < a; n++) r[n] = arguments[n];
t.apply(i, r)
}
return s.__emitterProxy = t, i.on(e, s, a)
},
onAny: function (e, t) {
var a = this;
if ("function" != typeof e) return a;
var i = t ? "unshift" : "push";
return a.eventsAnyListeners.indexOf(e) < 0 && a.eventsAnyListeners[i](e), a
},
offAny: function (e) {
var t = this;
if (!t.eventsAnyListeners) return t;
var a = t.eventsAnyListeners.indexOf(e);
return a >= 0 && t.eventsAnyListeners.splice(a, 1), t
},
off: function (e, t) {
var a = this;
return a.eventsListeners ? (e.split(" ").forEach((function (e) {
void 0 === t ? a.eventsListeners[e] = [] : a.eventsListeners[e] && a.eventsListeners[e].forEach((function (i, s) {
(i === t || i.__emitterProxy && i.__emitterProxy === t) && a.eventsListeners[e].splice(s, 1)
}))
})), a) : a
},
emit: function () {
var e, t, a, i = this;
if (!i.eventsListeners) return i;
for (var s = arguments.length, r = new Array(s), n = 0; n < s; n++) r[n] = arguments[n];
"string" == typeof r[0] || Array.isArray(r[0]) ? (e = r[0], t = r.slice(1, r.length), a = i) : (e = r[0].events, t = r[0].data, a = r[0].context || i), t.unshift(a);
var l = Array.isArray(e) ? e : e.split(" ");
return l.forEach((function (e) {
i.eventsAnyListeners && i.eventsAnyListeners.length && i.eventsAnyListeners.forEach((function (i) {
i.apply(a, [e].concat(t))
})), i.eventsListeners && i.eventsListeners[e] && i.eventsListeners[e].forEach((function (e) {
e.apply(a, t)
}))
})), i
}
},
update: {
updateSize: function () {
var e, t, a = this,
i = a.$el;
e = void 0 !== a.params.width && null !== a.params.width ? a.params.width : i[0].clientWidth, t = void 0 !== a.params.height && null !== a.params.height ? a.params.height : i[0].clientHeight, 0 === e && a.isHorizontal() || 0 === t && a.isVertical() || (e = e - parseInt(i.css("padding-left") || 0, 10) - parseInt(i.css("padding-right") || 0, 10), t = t - parseInt(i.css("padding-top") || 0, 10) - parseInt(i.css("padding-bottom") || 0, 10), Number.isNaN(e) && (e = 0), Number.isNaN(t) && (t = 0), M(a, {
width: e,
height: t,
size: a.isHorizontal() ? e : t
}))
},
updateSlides: function () {
var e = this;
function t(t) {
return e.isHorizontal() ? t : {
width: "height",
"margin-top": "margin-left",
"margin-bottom ": "margin-right",
"margin-left": "margin-top",
"margin-right": "margin-bottom",
"padding-left": "padding-top",
"padding-right": "padding-bottom",
marginRight: "marginBottom"
} [t]
}
function a(e, a) {
return parseFloat(e.getPropertyValue(t(a)) || 0)
}
var i = e.params,
s = e.$wrapperEl,
r = e.size,
n = e.rtlTranslate,
l = e.wrongRTL,
o = e.virtual && i.virtual.enabled,
d = o ? e.virtual.slides.length : e.slides.length,
p = s.children("." + e.params.slideClass),
u = o ? e.virtual.slides.length : p.length,
c = [],
h = [],
v = [],
f = i.slidesOffsetBefore;
"function" == typeof f && (f = i.slidesOffsetBefore.call(e));
var m = i.slidesOffsetAfter;
"function" == typeof m && (m = i.slidesOffsetAfter.call(e));
var g = e.snapGrid.length,
b = e.slidesGrid.length,
w = i.spaceBetween,
y = -f,
E = 0,
x = 0;
if (void 0 !== r) {
var T, C;
"string" == typeof w && w.indexOf("%") >= 0 && (w = parseFloat(w.replace("%", "")) / 100 * r), e.virtualSize = -w, n ? p.css({
marginLeft: "",
marginBottom: "",
marginTop: ""
}) : p.css({
marginRight: "",
marginBottom: "",
marginTop: ""
}), i.slidesPerColumn > 1 && (T = Math.floor(u / i.slidesPerColumn) === u / e.params.slidesPerColumn ? u : Math.ceil(u / i.slidesPerColumn) * i.slidesPerColumn, "auto" !== i.slidesPerView && "row" === i.slidesPerColumnFill && (T = Math.max(T, i.slidesPerView * i.slidesPerColumn)));
for (var S, z, P, k = i.slidesPerColumn, $ = T / k, L = Math.floor(u / i.slidesPerColumn), I = 0; I < u; I += 1) {
C = 0;
var O = p.eq(I);
if (i.slidesPerColumn > 1) {
var A = void 0,
D = void 0,
N = void 0;
if ("row" === i.slidesPerColumnFill && i.slidesPerGroup > 1) {
var G = Math.floor(I / (i.slidesPerGroup * i.slidesPerColumn)),
B = I - i.slidesPerColumn * i.slidesPerGroup * G,
H = 0 === G ? i.slidesPerGroup : Math.min(Math.ceil((u - G * k * i.slidesPerGroup) / k), i.slidesPerGroup);
A = (D = B - (N = Math.floor(B / H)) * H + G * i.slidesPerGroup) + N * T / k, O.css({
"-webkit-box-ordinal-group": A,
"-moz-box-ordinal-group": A,
"-ms-flex-order": A,
"-webkit-order": A,
order: A
})
} else "column" === i.slidesPerColumnFill ? (N = I - (D = Math.floor(I / k)) * k, (D > L || D === L && N === k - 1) && (N += 1) >= k && (N = 0, D += 1)) : D = I - (N = Math.floor(I / $)) * $;
O.css(t("margin-top"), 0 !== N ? i.spaceBetween && i.spaceBetween + "px" : "")
}
if ("none" !== O.css("display")) {
if ("auto" === i.slidesPerView) {
var R = getComputedStyle(O[0]),
X = O[0].style.transform,
Y = O[0].style.webkitTransform;
if (X && (O[0].style.transform = "none"), Y && (O[0].style.webkitTransform = "none"), i.roundLengths) C = e.isHorizontal() ? O.outerWidth(!0) : O.outerHeight(!0);
else {
var V = a(R, "width"),
W = a(R, "padding-left"),
F = a(R, "padding-right"),
_ = a(R, "margin-left"),
q = a(R, "margin-right"),
j = R.getPropertyValue("box-sizing");
if (j && "border-box" === j) C = V + _ + q;
else {
var U = O[0],
K = U.clientWidth;
C = V + W + F + _ + q + (U.offsetWidth - K)
}
}
X && (O[0].style.transform = X), Y && (O[0].style.webkitTransform = Y), i.roundLengths && (C = Math.floor(C))
} else C = (r - (i.slidesPerView - 1) * w) / i.slidesPerView, i.roundLengths && (C = Math.floor(C)), p[I] && (p[I].style[t("width")] = C + "px");
p[I] && (p[I].swiperSlideSize = C), v.push(C), i.centeredSlides ? (y = y + C / 2 + E / 2 + w, 0 === E && 0 !== I && (y = y - r / 2 - w), 0 === I && (y = y - r / 2 - w), Math.abs(y) < .001 && (y = 0), i.roundLengths && (y = Math.floor(y)), x % i.slidesPerGroup == 0 && c.push(y), h.push(y)) : (i.roundLengths && (y = Math.floor(y)), (x - Math.min(e.params.slidesPerGroupSkip, x)) % e.params.slidesPerGroup == 0 && c.push(y), h.push(y), y = y + C + w), e.virtualSize += C + w, E = C, x += 1
}
}
if (e.virtualSize = Math.max(e.virtualSize, r) + m, n && l && ("slide" === i.effect || "coverflow" === i.effect) && s.css({
width: e.virtualSize + i.spaceBetween + "px"
}), i.setWrapperSize) s.css(((z = {})[t("width")] = e.virtualSize + i.spaceBetween + "px", z));
if (i.slidesPerColumn > 1)
if (e.virtualSize = (C + i.spaceBetween) * T, e.virtualSize = Math.ceil(e.virtualSize / i.slidesPerColumn) - i.spaceBetween, s.css(((P = {})[t("width")] = e.virtualSize + i.spaceBetween + "px", P)), i.centeredSlides) {
S = [];
for (var Z = 0; Z < c.length; Z += 1) {
var J = c[Z];
i.roundLengths && (J = Math.floor(J)), c[Z] < e.virtualSize + c[0] && S.push(J)
}
c = S
} if (!i.centeredSlides) {
S = [];
for (var Q = 0; Q < c.length; Q += 1) {
var ee = c[Q];
i.roundLengths && (ee = Math.floor(ee)), c[Q] <= e.virtualSize - r && S.push(ee)
}
c = S, Math.floor(e.virtualSize - r) - Math.floor(c[c.length - 1]) > 1 && c.push(e.virtualSize - r)
}
if (0 === c.length && (c = [0]), 0 !== i.spaceBetween) {
var te, ae = e.isHorizontal() && n ? "marginLeft" : t("marginRight");
p.filter((function (e, t) {
return !i.cssMode || t !== p.length - 1
})).css(((te = {})[ae] = w + "px", te))
}
if (i.centeredSlides && i.centeredSlidesBounds) {
var ie = 0;
v.forEach((function (e) {
ie += e + (i.spaceBetween ? i.spaceBetween : 0)
}));
var se = (ie -= i.spaceBetween) - r;
c = c.map((function (e) {
return e < 0 ? -f : e > se ? se + m : e
}))
}
if (i.centerInsufficientSlides) {
var re = 0;
if (v.forEach((function (e) {
re += e + (i.spaceBetween ? i.spaceBetween : 0)
})), (re -= i.spaceBetween) < r) {
var ne = (r - re) / 2;
c.forEach((function (e, t) {
c[t] = e - ne
})), h.forEach((function (e, t) {
h[t] = e + ne
}))
}
}
M(e, {
slides: p,
snapGrid: c,
slidesGrid: h,
slidesSizesGrid: v
}), u !== d && e.emit("slidesLengthChange"), c.length !== g && (e.params.watchOverflow && e.checkOverflow(), e.emit("snapGridLengthChange")), h.length !== b && e.emit("slidesGridLengthChange"), (i.watchSlidesProgress || i.watchSlidesVisibility) && e.updateSlidesOffset()
}
},
updateAutoHeight: function (e) {
var t, a = this,
i = [],
s = a.virtual && a.params.virtual.enabled,
r = 0;
"number" == typeof e ? a.setTransition(e) : !0 === e && a.setTransition(a.params.speed);
var n = function (e) {
return s ? a.slides.filter((function (t) {
return parseInt(t.getAttribute("data-swiper-slide-index"), 10) === e
}))[0] : a.slides.eq(e)[0]
};
if ("auto" !== a.params.slidesPerView && a.params.slidesPerView > 1)
if (a.params.centeredSlides) a.visibleSlides.each((function (e) {
i.push(e)
}));
else
for (t = 0; t < Math.ceil(a.params.slidesPerView); t += 1) {
var l = a.activeIndex + t;
if (l > a.slides.length && !s) break;
i.push(n(l))
} else i.push(n(a.activeIndex));
for (t = 0; t < i.length; t += 1)
if (void 0 !== i[t]) {
var o = i[t].offsetHeight;
r = o > r ? o : r
} r && a.$wrapperEl.css("height", r + "px")
},
updateSlidesOffset: function () {
for (var e = this.slides, t = 0; t < e.length; t += 1) e[t].swiperSlideOffset = this.isHorizontal() ? e[t].offsetLeft : e[t].offsetTop
},
updateSlidesProgress: function (e) {
void 0 === e && (e = this && this.translate || 0);
var t = this,
a = t.params,
i = t.slides,
s = t.rtlTranslate;
if (0 !== i.length) {
void 0 === i[0].swiperSlideOffset && t.updateSlidesOffset();
var r = -e;
s && (r = e), i.removeClass(a.slideVisibleClass), t.visibleSlidesIndexes = [], t.visibleSlides = [];
for (var n = 0; n < i.length; n += 1) {
var l = i[n],
o = (r + (a.centeredSlides ? t.minTranslate() : 0) - l.swiperSlideOffset) / (l.swiperSlideSize + a.spaceBetween);
if (a.watchSlidesVisibility || a.centeredSlides && a.autoHeight) {
var d = -(r - l.swiperSlideOffset),
p = d + t.slidesSizesGrid[n];
(d >= 0 && d < t.size - 1 || p > 1 && p <= t.size || d <= 0 && p >= t.size) && (t.visibleSlides.push(l), t.visibleSlidesIndexes.push(n), i.eq(n).addClass(a.slideVisibleClass))
}
l.progress = s ? -o : o
}
t.visibleSlides = m(t.visibleSlides)
}
},
updateProgress: function (e) {
var t = this;
if (void 0 === e) {
var a = t.rtlTranslate ? -1 : 1;
e = t && t.translate && t.translate * a || 0
}
var i = t.params,
s = t.maxTranslate() - t.minTranslate(),
r = t.progress,
n = t.isBeginning,
l = t.isEnd,
o = n,
d = l;
0 === s ? (r = 0, n = !0, l = !0) : (n = (r = (e - t.minTranslate()) / s) <= 0, l = r >= 1), M(t, {
progress: r,
isBeginning: n,
isEnd: l
}), (i.watchSlidesProgress || i.watchSlidesVisibility || i.centeredSlides && i.autoHeight) && t.updateSlidesProgress(e), n && !o && t.emit("reachBeginning toEdge"), l && !d && t.emit("reachEnd toEdge"), (o && !n || d && !l) && t.emit("fromEdge"), t.emit("progress", r)
},
updateSlidesClasses: function () {
var e, t = this,
a = t.slides,
i = t.params,
s = t.$wrapperEl,
r = t.activeIndex,
n = t.realIndex,
l = t.virtual && i.virtual.enabled;
a.removeClass(i.slideActiveClass + " " + i.slideNextClass + " " + i.slidePrevClass + " " + i.slideDuplicateActiveClass + " " + i.slideDuplicateNextClass + " " + i.slideDuplicatePrevClass), (e = l ? t.$wrapperEl.find("." + i.slideClass + '[data-swiper-slide-index="' + r + '"]') : a.eq(r)).addClass(i.slideActiveClass), i.loop && (e.hasClass(i.slideDuplicateClass) ? s.children("." + i.slideClass + ":not(." + i.slideDuplicateClass + ')[data-swiper-slide-index="' + n + '"]').addClass(i.slideDuplicateActiveClass) : s.children("." + i.slideClass + "." + i.slideDuplicateClass + '[data-swiper-slide-index="' + n + '"]').addClass(i.slideDuplicateActiveClass));
var o = e.nextAll("." + i.slideClass).eq(0).addClass(i.slideNextClass);
i.loop && 0 === o.length && (o = a.eq(0)).addClass(i.slideNextClass);
var d = e.prevAll("." + i.slideClass).eq(0).addClass(i.slidePrevClass);
i.loop && 0 === d.length && (d = a.eq(-1)).addClass(i.slidePrevClass), i.loop && (o.hasClass(i.slideDuplicateClass) ? s.children("." + i.slideClass + ":not(." + i.slideDuplicateClass + ')[data-swiper-slide-index="' + o.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicateNextClass) : s.children("." + i.slideClass + "." + i.slideDuplicateClass + '[data-swiper-slide-index="' + o.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicateNextClass), d.hasClass(i.slideDuplicateClass) ? s.children("." + i.slideClass + ":not(." + i.slideDuplicateClass + ')[data-swiper-slide-index="' + d.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicatePrevClass) : s.children("." + i.slideClass + "." + i.slideDuplicateClass + '[data-swiper-slide-index="' + d.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicatePrevClass)), t.emitSlidesClasses()
},
updateActiveIndex: function (e) {
var t, a = this,
i = a.rtlTranslate ? a.translate : -a.translate,
s = a.slidesGrid,
r = a.snapGrid,
n = a.params,
l = a.activeIndex,
o = a.realIndex,
d = a.snapIndex,
p = e;
if (void 0 === p) {
for (var u = 0; u < s.length; u += 1) void 0 !== s[u + 1] ? i >= s[u] && i < s[u + 1] - (s[u + 1] - s[u]) / 2 ? p = u : i >= s[u] && i < s[u + 1] && (p = u + 1) : i >= s[u] && (p = u);
n.normalizeSlideIndex && (p < 0 || void 0 === p) && (p = 0)
}
if (r.indexOf(i) >= 0) t = r.indexOf(i);
else {
var c = Math.min(n.slidesPerGroupSkip, p);
t = c + Math.floor((p - c) / n.slidesPerGroup)
}
if (t >= r.length && (t = r.length - 1), p !== l) {
var h = parseInt(a.slides.eq(p).attr("data-swiper-slide-index") || p, 10);
M(a, {
snapIndex: t,
realIndex: h,
previousIndex: l,
activeIndex: p
}), a.emit("activeIndexChange"), a.emit("snapIndexChange"), o !== h && a.emit("realIndexChange"), (a.initialized || a.params.runCallbacksOnInit) && a.emit("slideChange")
} else t !== d && (a.snapIndex = t, a.emit("snapIndexChange"))
},
updateClickedSlide: function (e) {
var t, a = this,
i = a.params,
s = m(e.target).closest("." + i.slideClass)[0],
r = !1;
if (s)
for (var n = 0; n < a.slides.length; n += 1)
if (a.slides[n] === s) {
r = !0, t = n;
break
} if (!s || !r) return a.clickedSlide = void 0, void(a.clickedIndex = void 0);
a.clickedSlide = s, a.virtual && a.params.virtual.enabled ? a.clickedIndex = parseInt(m(s).attr("data-swiper-slide-index"), 10) : a.clickedIndex = t, i.slideToClickedSlide && void 0 !== a.clickedIndex && a.clickedIndex !== a.activeIndex && a.slideToClickedSlide()
}
},
translate: {
getTranslate: function (e) {
void 0 === e && (e = this.isHorizontal() ? "x" : "y");
var t = this,
a = t.params,
i = t.rtlTranslate,
s = t.translate,
r = t.$wrapperEl;
if (a.virtualTranslate) return i ? -s : s;
if (a.cssMode) return s;
var n = T(r[0], e);
return i && (n = -n), n || 0
},
setTranslate: function (e, t) {
var a = this,
i = a.rtlTranslate,
s = a.params,
r = a.$wrapperEl,
n = a.wrapperEl,
l = a.progress,
o = 0,
d = 0;
a.isHorizontal() ? o = i ? -e : e : d = e, s.roundLengths && (o = Math.floor(o), d = Math.floor(d)), s.cssMode ? n[a.isHorizontal() ? "scrollLeft" : "scrollTop"] = a.isHorizontal() ? -o : -d : s.virtualTranslate || r.transform("translate3d(" + o + "px, " + d + "px, 0px)"), a.previousTranslate = a.translate, a.translate = a.isHorizontal() ? o : d;
var p = a.maxTranslate() - a.minTranslate();
(0 === p ? 0 : (e - a.minTranslate()) / p) !== l && a.updateProgress(e), a.emit("setTranslate", a.translate, t)
},
minTranslate: function () {
return -this.snapGrid[0]
},
maxTranslate: function () {
return -this.snapGrid[this.snapGrid.length - 1]
},
translateTo: function (e, t, a, i, s) {
void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), void 0 === a && (a = !0), void 0 === i && (i = !0);
var r = this,
n = r.params,
l = r.wrapperEl;
if (r.animating && n.preventInteractionOnTransition) return !1;
var o, d = r.minTranslate(),
p = r.maxTranslate();
if (o = i && e > d ? d : i && e < p ? p : e, r.updateProgress(o), n.cssMode) {
var u, c = r.isHorizontal();
if (0 === t) l[c ? "scrollLeft" : "scrollTop"] = -o;
else if (l.scrollTo) l.scrollTo(((u = {})[c ? "left" : "top"] = -o, u.behavior = "smooth", u));
else l[c ? "scrollLeft" : "scrollTop"] = -o;
return !0
}
return 0 === t ? (r.setTransition(0), r.setTranslate(o), a && (r.emit("beforeTransitionStart", t, s), r.emit("transitionEnd"))) : (r.setTransition(t), r.setTranslate(o), a && (r.emit("beforeTransitionStart", t, s), r.emit("transitionStart")), r.animating || (r.animating = !0, r.onTranslateToWrapperTransitionEnd || (r.onTranslateToWrapperTransitionEnd = function (e) {
r && !r.destroyed && e.target === this && (r.$wrapperEl[0].removeEventListener("transitionend", r.onTranslateToWrapperTransitionEnd), r.$wrapperEl[0].removeEventListener("webkitTransitionEnd", r.onTranslateToWrapperTransitionEnd), r.onTranslateToWrapperTransitionEnd = null, delete r.onTranslateToWrapperTransitionEnd, a && r.emit("transitionEnd"))
}), r.$wrapperEl[0].addEventListener("transitionend", r.onTranslateToWrapperTransitionEnd), r.$wrapperEl[0].addEventListener("webkitTransitionEnd", r.onTranslateToWrapperTransitionEnd))), !0
}
},
transition: {
setTransition: function (e, t) {
var a = this;
a.params.cssMode || a.$wrapperEl.transition(e), a.emit("setTransition", e, t)
},
transitionStart: function (e, t) {
void 0 === e && (e = !0);
var a = this,
i = a.activeIndex,
s = a.params,
r = a.previousIndex;
if (!s.cssMode) {
s.autoHeight && a.updateAutoHeight();
var n = t;
if (n || (n = i > r ? "next" : i < r ? "prev" : "reset"), a.emit("transitionStart"), e && i !== r) {
if ("reset" === n) return void a.emit("slideResetTransitionStart");
a.emit("slideChangeTransitionStart"), "next" === n ? a.emit("slideNextTransitionStart") : a.emit("slidePrevTransitionStart")
}
}
},
transitionEnd: function (e, t) {
void 0 === e && (e = !0);
var a = this,
i = a.activeIndex,
s = a.previousIndex,
r = a.params;
if (a.animating = !1, !r.cssMode) {
a.setTransition(0);
var n = t;
if (n || (n = i > s ? "next" : i < s ? "prev" : "reset"), a.emit("transitionEnd"), e && i !== s) {
if ("reset" === n) return void a.emit("slideResetTransitionEnd");
a.emit("slideChangeTransitionEnd"), "next" === n ? a.emit("slideNextTransitionEnd") : a.emit("slidePrevTransitionEnd")
}
}
}
},
slide: {
slideTo: function (e, t, a, i, s) {
if (void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), void 0 === a && (a = !0), "number" != typeof e && "string" != typeof e) throw new Error("The 'index' argument cannot have type other than 'number' or 'string'. [" + typeof e + "] given.");
if ("string" == typeof e) {
var r = parseInt(e, 10);
if (!isFinite(r)) throw new Error("The passed-in 'index' (string) couldn't be converted to 'number'. [" + e + "] given.");
e = r
}
var n = this,
l = e;
l < 0 && (l = 0);
var o = n.params,
d = n.snapGrid,
p = n.slidesGrid,
u = n.previousIndex,
c = n.activeIndex,
h = n.rtlTranslate,
v = n.wrapperEl,
f = n.enabled;
if (n.animating && o.preventInteractionOnTransition || !f && !i && !s) return !1;
var m = Math.min(n.params.slidesPerGroupSkip, l),
g = m + Math.floor((l - m) / n.params.slidesPerGroup);
g >= d.length && (g = d.length - 1), (c || o.initialSlide || 0) === (u || 0) && a && n.emit("beforeSlideChangeStart");
var b, w = -d[g];
if (n.updateProgress(w), o.normalizeSlideIndex)
for (var y = 0; y < p.length; y += 1) {
var E = -Math.floor(100 * w),
x = Math.floor(100 * p[y]),
T = Math.floor(100 * p[y + 1]);
void 0 !== p[y + 1] ? E >= x && E < T - (T - x) / 2 ? l = y : E >= x && E < T && (l = y + 1) : E >= x && (l = y)
}
if (n.initialized && l !== c) {
if (!n.allowSlideNext && w < n.translate && w < n.minTranslate()) return !1;
if (!n.allowSlidePrev && w > n.translate && w > n.maxTranslate() && (c || 0) !== l) return !1
}
if (b = l > c ? "next" : l < c ? "prev" : "reset", h && -w === n.translate || !h && w === n.translate) return n.updateActiveIndex(l), o.autoHeight && n.updateAutoHeight(), n.updateSlidesClasses(), "slide" !== o.effect && n.setTranslate(w), "reset" !== b && (n.transitionStart(a, b), n.transitionEnd(a, b)), !1;
if (o.cssMode) {
var C, S = n.isHorizontal(),
M = -w;
if (h && (M = v.scrollWidth - v.offsetWidth - M), 0 === t) v[S ? "scrollLeft" : "scrollTop"] = M;
else if (v.scrollTo) v.scrollTo(((C = {})[S ? "left" : "top"] = M, C.behavior = "smooth", C));
else v[S ? "scrollLeft" : "scrollTop"] = M;
return !0
}
return 0 === t ? (n.setTransition(0), n.setTranslate(w), n.updateActiveIndex(l), n.updateSlidesClasses(), n.emit("beforeTransitionStart", t, i), n.transitionStart(a, b), n.transitionEnd(a, b)) : (n.setTransition(t), n.setTranslate(w), n.updateActiveIndex(l), n.updateSlidesClasses(), n.emit("beforeTransitionStart", t, i), n.transitionStart(a, b), n.animating || (n.animating = !0, n.onSlideToWrapperTransitionEnd || (n.onSlideToWrapperTransitionEnd = function (e) {
n && !n.destroyed && e.target === this && (n.$wrapperEl[0].removeEventListener("transitionend", n.onSlideToWrapperTransitionEnd), n.$wrapperEl[0].removeEventListener("webkitTransitionEnd", n.onSlideToWrapperTransitionEnd), n.onSlideToWrapperTransitionEnd = null, delete n.onSlideToWrapperTransitionEnd, n.transitionEnd(a, b))
}), n.$wrapperEl[0].addEventListener("transitionend", n.onSlideToWrapperTransitionEnd), n.$wrapperEl[0].addEventListener("webkitTransitionEnd", n.onSlideToWrapperTransitionEnd))), !0
},
slideToLoop: function (e, t, a, i) {
void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), void 0 === a && (a = !0);
var s = this,
r = e;
return s.params.loop && (r += s.loopedSlides), s.slideTo(r, t, a, i)
},
slideNext: function (e, t, a) {
void 0 === e && (e = this.params.speed), void 0 === t && (t = !0);
var i = this,
s = i.params,
r = i.animating;
if (!i.enabled) return i;
var n = i.activeIndex < s.slidesPerGroupSkip ? 1 : s.slidesPerGroup;
if (s.loop) {
if (r && s.loopPreventsSlide) return !1;
i.loopFix(), i._clientLeft = i.$wrapperEl[0].clientLeft
}
return i.slideTo(i.activeIndex + n, e, t, a)
},
slidePrev: function (e, t, a) {
void 0 === e && (e = this.params.speed), void 0 === t && (t = !0);
var i = this,
s = i.params,
r = i.animating,
n = i.snapGrid,
l = i.slidesGrid,
o = i.rtlTranslate;
if (!i.enabled) return i;
if (s.loop) {
if (r && s.loopPreventsSlide) return !1;
i.loopFix(), i._clientLeft = i.$wrapperEl[0].clientLeft
}
function d(e) {
return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e)
}
var p, u = d(o ? i.translate : -i.translate),
c = n.map((function (e) {
return d(e)
})),
h = n[c.indexOf(u) - 1];
return void 0 === h && s.cssMode && n.forEach((function (e) {
!h && u >= e && (h = e)
})), void 0 !== h && (p = l.indexOf(h)) < 0 && (p = i.activeIndex - 1), i.slideTo(p, e, t, a)
},
slideReset: function (e, t, a) {
return void 0 === e && (e = this.params.speed), void 0 === t && (t = !0), this.slideTo(this.activeIndex, e, t, a)
},
slideToClosest: function (e, t, a, i) {
void 0 === e && (e = this.params.speed), void 0 === t && (t = !0), void 0 === i && (i = .5);
var s = this,
r = s.activeIndex,
n = Math.min(s.params.slidesPerGroupSkip, r),
l = n + Math.floor((r - n) / s.params.slidesPerGroup),
o = s.rtlTranslate ? s.translate : -s.translate;
if (o >= s.snapGrid[l]) {
var d = s.snapGrid[l];
o - d > (s.snapGrid[l + 1] - d) * i && (r += s.params.slidesPerGroup)
} else {
var p = s.snapGrid[l - 1];
o - p <= (s.snapGrid[l] - p) * i && (r -= s.params.slidesPerGroup)
}
return r = Math.max(r, 0), r = Math.min(r, s.slidesGrid.length - 1), s.slideTo(r, e, t, a)
},
slideToClickedSlide: function () {
var e, t = this,
a = t.params,
i = t.$wrapperEl,
s = "auto" === a.slidesPerView ? t.slidesPerViewDynamic() : a.slidesPerView,
r = t.clickedIndex;
if (a.loop) {
if (t.animating) return;
e = parseInt(m(t.clickedSlide).attr("data-swiper-slide-index"), 10), a.centeredSlides ? r < t.loopedSlides - s / 2 || r > t.slides.length - t.loopedSlides + s / 2 ? (t.loopFix(), r = i.children("." + a.slideClass + '[data-swiper-slide-index="' + e + '"]:not(.' + a.slideDuplicateClass + ")").eq(0).index(), E((function () {
t.slideTo(r)
}))) : t.slideTo(r) : r > t.slides.length - s ? (t.loopFix(), r = i.children("." + a.slideClass + '[data-swiper-slide-index="' + e + '"]:not(.' + a.slideDuplicateClass + ")").eq(0).index(), E((function () {
t.slideTo(r)
}))) : t.slideTo(r)
} else t.slideTo(r)
}
},
loop: {
loopCreate: function () {
var e = this,
t = r(),
a = e.params,
i = e.$wrapperEl;
i.children("." + a.slideClass + "." + a.slideDuplicateClass).remove();
var s = i.children("." + a.slideClass);
if (a.loopFillGroupWithBlank) {
var n = a.slidesPerGroup - s.length % a.slidesPerGroup;
if (n !== a.slidesPerGroup) {
for (var l = 0; l < n; l += 1) {
var o = m(t.createElement("div")).addClass(a.slideClass + " " + a.slideBlankClass);
i.append(o)
}
s = i.children("." + a.slideClass)
}
}
"auto" !== a.slidesPerView || a.loopedSlides || (a.loopedSlides = s.length), e.loopedSlides = Math.ceil(parseFloat(a.loopedSlides || a.slidesPerView, 10)), e.loopedSlides += a.loopAdditionalSlides, e.loopedSlides > s.length && (e.loopedSlides = s.length);
var d = [],
p = [];
s.each((function (t, a) {
var i = m(t);
a < e.loopedSlides && p.push(t), a < s.length && a >= s.length - e.loopedSlides && d.push(t), i.attr("data-swiper-slide-index", a)
}));
for (var u = 0; u < p.length; u += 1) i.append(m(p[u].cloneNode(!0)).addClass(a.slideDuplicateClass));
for (var c = d.length - 1; c >= 0; c -= 1) i.prepend(m(d[c].cloneNode(!0)).addClass(a.slideDuplicateClass))
},
loopFix: function () {
var e = this;
e.emit("beforeLoopFix");
var t, a = e.activeIndex,
i = e.slides,
s = e.loopedSlides,
r = e.allowSlidePrev,
n = e.allowSlideNext,
l = e.snapGrid,
o = e.rtlTranslate;
e.allowSlidePrev = !0, e.allowSlideNext = !0;
var d = -l[a] - e.getTranslate();
if (a < s) t = i.length - 3 * s + a, t += s, e.slideTo(t, 0, !1, !0) && 0 !== d && e.setTranslate((o ? -e.translate : e.translate) - d);
else if (a >= i.length - s) {
t = -i.length + a + s, t += s, e.slideTo(t, 0, !1, !0) && 0 !== d && e.setTranslate((o ? -e.translate : e.translate) - d)
}
e.allowSlidePrev = r, e.allowSlideNext = n, e.emit("loopFix")
},
loopDestroy: function () {
var e = this,
t = e.$wrapperEl,
a = e.params,
i = e.slides;
t.children("." + a.slideClass + "." + a.slideDuplicateClass + ",." + a.slideClass + "." + a.slideBlankClass).remove(), i.removeAttr("data-swiper-slide-index")
}
},
grabCursor: {
setGrabCursor: function (e) {
var t = this;
if (!(t.support.touch || !t.params.simulateTouch || t.params.watchOverflow && t.isLocked || t.params.cssMode)) {
var a = t.el;
a.style.cursor = "move", a.style.cursor = e ? "-webkit-grabbing" : "-webkit-grab", a.style.cursor = e ? "-moz-grabbin" : "-moz-grab", a.style.cursor = e ? "grabbing" : "grab"
}
},
unsetGrabCursor: function () {
var e = this;
e.support.touch || e.params.watchOverflow && e.isLocked || e.params.cssMode || (e.el.style.cursor = "")
}
},
manipulation: {
appendSlide: function (e) {
var t = this,
a = t.$wrapperEl,
i = t.params;
if (i.loop && t.loopDestroy(), "object" == typeof e && "length" in e)
for (var s = 0; s < e.length; s += 1) e[s] && a.append(e[s]);
else a.append(e);
i.loop && t.loopCreate(), i.observer && t.support.observer || t.update()
},
prependSlide: function (e) {
var t = this,
a = t.params,
i = t.$wrapperEl,
s = t.activeIndex;
a.loop && t.loopDestroy();
var r = s + 1;
if ("object" == typeof e && "length" in e) {
for (var n = 0; n < e.length; n += 1) e[n] && i.prepend(e[n]);
r = s + e.length
} else i.prepend(e);
a.loop && t.loopCreate(), a.observer && t.support.observer || t.update(), t.slideTo(r, 0, !1)
},
addSlide: function (e, t) {
var a = this,
i = a.$wrapperEl,
s = a.params,
r = a.activeIndex;
s.loop && (r -= a.loopedSlides, a.loopDestroy(), a.slides = i.children("." + s.slideClass));
var n = a.slides.length;
if (e <= 0) a.prependSlide(t);
else if (e >= n) a.appendSlide(t);
else {
for (var l = r > e ? r + 1 : r, o = [], d = n - 1; d >= e; d -= 1) {
var p = a.slides.eq(d);
p.remove(), o.unshift(p)
}
if ("object" == typeof t && "length" in t) {
for (var u = 0; u < t.length; u += 1) t[u] && i.append(t[u]);
l = r > e ? r + t.length : r
} else i.append(t);
for (var c = 0; c < o.length; c += 1) i.append(o[c]);
s.loop && a.loopCreate(), s.observer && a.support.observer || a.update(), s.loop ? a.slideTo(l + a.loopedSlides, 0, !1) : a.slideTo(l, 0, !1)
}
},
removeSlide: function (e) {
var t = this,
a = t.params,
i = t.$wrapperEl,
s = t.activeIndex;
a.loop && (s -= t.loopedSlides, t.loopDestroy(), t.slides = i.children("." + a.slideClass));
var r, n = s;
if ("object" == typeof e && "length" in e) {
for (var l = 0; l < e.length; l += 1) r = e[l], t.slides[r] && t.slides.eq(r).remove(), r < n && (n -= 1);
n = Math.max(n, 0)
} else r = e, t.slides[r] && t.slides.eq(r).remove(), r < n && (n -= 1), n = Math.max(n, 0);
a.loop && t.loopCreate(), a.observer && t.support.observer || t.update(), a.loop ? t.slideTo(n + t.loopedSlides, 0, !1) : t.slideTo(n, 0, !1)
},
removeAllSlides: function () {
for (var e = [], t = 0; t < this.slides.length; t += 1) e.push(t);
this.removeSlide(e)
}
},
events: {
attachEvents: function () {
var e = this,
t = r(),
a = e.params,
i = e.touchEvents,
s = e.el,
n = e.wrapperEl,
l = e.device,
o = e.support;
e.onTouchStart = N.bind(e), e.onTouchMove = G.bind(e), e.onTouchEnd = B.bind(e), a.cssMode && (e.onScroll = X.bind(e)), e.onClick = R.bind(e);
var d = !!a.nested;
if (!o.touch && o.pointerEvents) s.addEventListener(i.start, e.onTouchStart, !1), t.addEventListener(i.move, e.onTouchMove, d), t.addEventListener(i.end, e.onTouchEnd, !1);
else {
if (o.touch) {
var p = !("touchstart" !== i.start || !o.passiveListener || !a.passiveListeners) && {
passive: !0,
capture: !1
};
s.addEventListener(i.start, e.onTouchStart, p), s.addEventListener(i.move, e.onTouchMove, o.passiveListener ? {
passive: !1,
capture: d
} : d), s.addEventListener(i.end, e.onTouchEnd, p), i.cancel && s.addEventListener(i.cancel, e.onTouchEnd, p), Y || (t.addEventListener("touchstart", V), Y = !0)
}(a.simulateTouch && !l.ios && !l.android || a.simulateTouch && !o.touch && l.ios) && (s.addEventListener("mousedown", e.onTouchStart, !1), t.addEventListener("mousemove", e.onTouchMove, d), t.addEventListener("mouseup", e.onTouchEnd, !1))
}(a.preventClicks || a.preventClicksPropagation) && s.addEventListener("click", e.onClick, !0), a.cssMode && n.addEventListener("scroll", e.onScroll), a.updateOnWindowResize ? e.on(l.ios || l.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", H, !0) : e.on("observerUpdate", H, !0)
},
detachEvents: function () {
var e = this,
t = r(),
a = e.params,
i = e.touchEvents,
s = e.el,
n = e.wrapperEl,
l = e.device,
o = e.support,
d = !!a.nested;
if (!o.touch && o.pointerEvents) s.removeEventListener(i.start, e.onTouchStart, !1), t.removeEventListener(i.move, e.onTouchMove, d), t.removeEventListener(i.end, e.onTouchEnd, !1);
else {
if (o.touch) {
var p = !("onTouchStart" !== i.start || !o.passiveListener || !a.passiveListeners) && {
passive: !0,
capture: !1
};
s.removeEventListener(i.start, e.onTouchStart, p), s.removeEventListener(i.move, e.onTouchMove, d), s.removeEventListener(i.end, e.onTouchEnd, p), i.cancel && s.removeEventListener(i.cancel, e.onTouchEnd, p)
}(a.simulateTouch && !l.ios && !l.android || a.simulateTouch && !o.touch && l.ios) && (s.removeEventListener("mousedown", e.onTouchStart, !1), t.removeEventListener("mousemove", e.onTouchMove, d), t.removeEventListener("mouseup", e.onTouchEnd, !1))
}(a.preventClicks || a.preventClicksPropagation) && s.removeEventListener("click", e.onClick, !0), a.cssMode && n.removeEventListener("scroll", e.onScroll), e.off(l.ios || l.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", H)
}
},
breakpoints: {
setBreakpoint: function () {
var e = this,
t = e.activeIndex,
a = e.initialized,
i = e.loopedSlides,
s = void 0 === i ? 0 : i,
r = e.params,
n = e.$el,
l = r.breakpoints;
if (l && (!l || 0 !== Object.keys(l).length)) {
var o = e.getBreakpoint(l, e.params.breakpointsBase, e.el);
if (o && e.currentBreakpoint !== o) {
var d = o in l ? l[o] : void 0;
d && ["slidesPerView", "spaceBetween", "slidesPerGroup", "slidesPerGroupSkip", "slidesPerColumn"].forEach((function (e) {
var t = d[e];
void 0 !== t && (d[e] = "slidesPerView" !== e || "AUTO" !== t && "auto" !== t ? "slidesPerView" === e ? parseFloat(t) : parseInt(t, 10) : "auto")
}));
var p = d || e.originalParams,
u = r.slidesPerColumn > 1,
c = p.slidesPerColumn > 1,
h = r.enabled;
u && !c ? (n.removeClass(r.containerModifierClass + "multirow " + r.containerModifierClass + "multirow-column"), e.emitContainerClasses()) : !u && c && (n.addClass(r.containerModifierClass + "multirow"), (p.slidesPerColumnFill && "column" === p.slidesPerColumnFill || !p.slidesPerColumnFill && "column" === r.slidesPerColumnFill) && n.addClass(r.containerModifierClass + "multirow-column"), e.emitContainerClasses());
var v = p.direction && p.direction !== r.direction,
f = r.loop && (p.slidesPerView !== r.slidesPerView || v);
v && a && e.changeDirection(), M(e.params, p);
var m = e.params.enabled;
M(e, {
allowTouchMove: e.params.allowTouchMove,
allowSlideNext: e.params.allowSlideNext,
allowSlidePrev: e.params.allowSlidePrev
}), h && !m ? e.disable() : !h && m && e.enable(), e.currentBreakpoint = o, e.emit("_beforeBreakpoint", p), f && a && (e.loopDestroy(), e.loopCreate(), e.updateSlides(), e.slideTo(t - s + e.loopedSlides, 0, !1)), e.emit("breakpoint", p)
}
}
},
getBreakpoint: function (e, t, a) {
if (void 0 === t && (t = "window"), e && ("container" !== t || a)) {
var i = !1,
s = l(),
r = "window" === t ? s.innerHeight : a.clientHeight,
n = Object.keys(e).map((function (e) {
if ("string" == typeof e && 0 === e.indexOf("@")) {
var t = parseFloat(e.substr(1));
return {
value: r * t,
point: e
}
}
return {
value: e,
point: e
}
}));
n.sort((function (e, t) {
return parseInt(e.value, 10) - parseInt(t.value, 10)
}));
for (var o = 0; o < n.length; o += 1) {
var d = n[o],
p = d.point,
u = d.value;
"window" === t ? s.matchMedia("(min-width: " + u + "px)").matches && (i = p) : u <= a.clientWidth && (i = p)
}
return i || "max"
}
}
},
checkOverflow: {
checkOverflow: function () {
var e = this,
t = e.params,
a = e.isLocked,
i = e.slides.length > 0 && t.slidesOffsetBefore + t.spaceBetween * (e.slides.length - 1) + e.slides[0].offsetWidth * e.slides.length;
t.slidesOffsetBefore && t.slidesOffsetAfter && i ? e.isLocked = i <= e.size : e.isLocked = 1 === e.snapGrid.length, e.allowSlideNext = !e.isLocked, e.allowSlidePrev = !e.isLocked, a !== e.isLocked && e.emit(e.isLocked ? "lock" : "unlock"), a && a !== e.isLocked && (e.isEnd = !1, e.navigation && e.navigation.update())
}
},
classes: {
addClasses: function () {
var e, t, a, i = this,
s = i.classNames,
r = i.params,
n = i.rtl,
l = i.$el,
o = i.device,
d = i.support,
p = (e = ["initialized", r.direction, {
"pointer-events": d.pointerEvents && !d.touch
}, {
"free-mode": r.freeMode
}, {
autoheight: r.autoHeight
}, {
rtl: n
}, {
multirow: r.slidesPerColumn > 1
}, {
"multirow-column": r.slidesPerColumn > 1 && "column" === r.slidesPerColumnFill
}, {
android: o.android
}, {
ios: o.ios
}, {
"css-mode": r.cssMode
}], t = r.containerModifierClass, a = [], e.forEach((function (e) {
"object" == typeof e ? Object.keys(e).forEach((function (i) {
e[i] && a.push(t + i)
})) : "string" == typeof e && a.push(t + e)
})), a);
s.push.apply(s, p), l.addClass([].concat(s).join(" ")), i.emitContainerClasses()
},
removeClasses: function () {
var e = this,
t = e.$el,
a = e.classNames;
t.removeClass(a.join(" ")), e.emitContainerClasses()
}
},
images: {
loadImage: function (e, t, a, i, s, r) {
var n, o = l();
function d() {
r && r()
}
m(e).parent("picture")[0] || e.complete && s ? d() : t ? ((n = new o.Image).onload = d, n.onerror = d, i && (n.sizes = i), a && (n.srcset = a), t && (n.src = t)) : d()
},
preloadImages: function () {
var e = this;
function t() {
null != e && e && !e.destroyed && (void 0 !== e.imagesLoaded && (e.imagesLoaded += 1), e.imagesLoaded === e.imagesToLoad.length && (e.params.updateOnImagesReady && e.update(), e.emit("imagesReady")))
}
e.imagesToLoad = e.$el.find("img");
for (var a = 0; a < e.imagesToLoad.length; a += 1) {
var i = e.imagesToLoad[a];
e.loadImage(i, i.currentSrc || i.getAttribute("src"), i.srcset || i.getAttribute("srcset"), i.sizes || i.getAttribute("sizes"), !0, t)
}
}
}
},
_ = {},
q = function () {
function t() {
for (var e, a, i = arguments.length, s = new Array(i), r = 0; r < i; r++) s[r] = arguments[r];
if (1 === s.length && s[0].constructor && "Object" === Object.prototype.toString.call(s[0]).slice(8, -1) ? a = s[0] : (e = s[0], a = s[1]), a || (a = {}), a = M({}, a), e && !a.el && (a.el = e), a.el && m(a.el).length > 1) {
var n = [];
return m(a.el).each((function (e) {
var i = M({}, a, {
el: e
});
n.push(new t(i))
})), n
}
var l = this;
l.__swiper__ = !0, l.support = $(), l.device = L({
userAgent: a.userAgent
}), l.browser = I(), l.eventsListeners = {}, l.eventsAnyListeners = [], void 0 === l.modules && (l.modules = {}), Object.keys(l.modules).forEach((function (e) {
var t = l.modules[e];
if (t.params) {
var i = Object.keys(t.params)[0],
s = t.params[i];
if ("object" != typeof s || null === s) return;
if (["navigation", "pagination", "scrollbar"].indexOf(i) >= 0 && !0 === a[i] && (a[i] = {
auto: !0
}), !(i in a) || !("enabled" in s)) return;
!0 === a[i] && (a[i] = {
enabled: !0
}), "object" != typeof a[i] || "enabled" in a[i] || (a[i].enabled = !0), a[i] || (a[i] = {
enabled: !1
})
}
}));
var o, d, p = M({}, W);
return l.useParams(p), l.params = M({}, p, _, a), l.originalParams = M({}, l.params), l.passedParams = M({}, a), l.params && l.params.on && Object.keys(l.params.on).forEach((function (e) {
l.on(e, l.params.on[e])
})), l.params && l.params.onAny && l.onAny(l.params.onAny), l.$ = m, M(l, {
enabled: l.params.enabled,
el: e,
classNames: [],
slides: m(),
slidesGrid: [],
snapGrid: [],
slidesSizesGrid: [],
isHorizontal: function () {
return "horizontal" === l.params.direction
},
isVertical: function () {
return "vertical" === l.params.direction
},
activeIndex: 0,
realIndex: 0,
isBeginning: !0,
isEnd: !1,
translate: 0,
previousTranslate: 0,
progress: 0,
velocity: 0,
animating: !1,
allowSlideNext: l.params.allowSlideNext,
allowSlidePrev: l.params.allowSlidePrev,
touchEvents: (o = ["touchstart", "touchmove", "touchend", "touchcancel"], d = ["mousedown", "mousemove", "mouseup"], l.support.pointerEvents && (d = ["pointerdown", "pointermove", "pointerup"]), l.touchEventsTouch = {
start: o[0],
move: o[1],
end: o[2],
cancel: o[3]
}, l.touchEventsDesktop = {
start: d[0],
move: d[1],
end: d[2]
}, l.support.touch || !l.params.simulateTouch ? l.touchEventsTouch : l.touchEventsDesktop),
touchEventsData: {
isTouched: void 0,
isMoved: void 0,
allowTouchCallbacks: void 0,
touchStartTime: void 0,
isScrolling: void 0,
currentTranslate: void 0,
startTranslate: void 0,
allowThresholdMove: void 0,
focusableElements: l.params.focusableElements,
lastClickTime: x(),
clickTimeout: void 0,
velocities: [],
allowMomentumBounce: void 0,
isTouchEvent: void 0,
startMoving: void 0
},
allowClick: !0,
allowTouchMove: l.params.allowTouchMove,
touches: {
startX: 0,
startY: 0,
currentX: 0,
currentY: 0,
diff: 0
},
imagesToLoad: [],
imagesLoaded: 0
}), l.useModules(), l.emit("_swiper"), l.params.init && l.init(), l
}
var a, i, s, n = t.prototype;
return n.enable = function () {
var e = this;
e.enabled || (e.enabled = !0, e.params.grabCursor && e.setGrabCursor(), e.emit("enable"))
}, n.disable = function () {
var e = this;
e.enabled && (e.enabled = !1, e.params.grabCursor && e.unsetGrabCursor(), e.emit("disable"))
}, n.setProgress = function (e, t) {
var a = this;
e = Math.min(Math.max(e, 0), 1);
var i = a.minTranslate(),
s = (a.maxTranslate() - i) * e + i;
a.translateTo(s, void 0 === t ? 0 : t), a.updateActiveIndex(), a.updateSlidesClasses()
}, n.emitContainerClasses = function () {
var e = this;
if (e.params._emitClasses && e.el) {
var t = e.el.className.split(" ").filter((function (t) {
return 0 === t.indexOf("swiper-container") || 0 === t.indexOf(e.params.containerModifierClass)
}));
e.emit("_containerClasses", t.join(" "))
}
}, n.getSlideClasses = function (e) {
var t = this;
return e.className.split(" ").filter((function (e) {
return 0 === e.indexOf("swiper-slide") || 0 === e.indexOf(t.params.slideClass)
})).join(" ")
}, n.emitSlidesClasses = function () {
var e = this;
if (e.params._emitClasses && e.el) {
var t = [];
e.slides.each((function (a) {
var i = e.getSlideClasses(a);
t.push({
slideEl: a,
classNames: i
}), e.emit("_slideClass", a, i)
})), e.emit("_slideClasses", t)
}
}, n.slidesPerViewDynamic = function () {
var e = this,
t = e.params,
a = e.slides,
i = e.slidesGrid,
s = e.size,
r = e.activeIndex,
n = 1;
if (t.centeredSlides) {
for (var l, o = a[r].swiperSlideSize, d = r + 1; d < a.length; d += 1) a[d] && !l && (n += 1, (o += a[d].swiperSlideSize) > s && (l = !0));
for (var p = r - 1; p >= 0; p -= 1) a[p] && !l && (n += 1, (o += a[p].swiperSlideSize) > s && (l = !0))
} else
for (var u = r + 1; u < a.length; u += 1) i[u] - i[r] < s && (n += 1);
return n
}, n.update = function () {
var e = this;
if (e && !e.destroyed) {
var t = e.snapGrid,
a = e.params;
a.breakpoints && e.setBreakpoint(), e.updateSize(), e.updateSlides(), e.updateProgress(), e.updateSlidesClasses(), e.params.freeMode ? (i(), e.params.autoHeight && e.updateAutoHeight()) : (("auto" === e.params.slidesPerView || e.params.slidesPerView > 1) && e.isEnd && !e.params.centeredSlides ? e.slideTo(e.slides.length - 1, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0)) || i(), a.watchOverflow && t !== e.snapGrid && e.checkOverflow(), e.emit("update")
}
function i() {
var t = e.rtlTranslate ? -1 * e.translate : e.translate,
a = Math.min(Math.max(t, e.maxTranslate()), e.minTranslate());
e.setTranslate(a), e.updateActiveIndex(), e.updateSlidesClasses()
}
}, n.changeDirection = function (e, t) {
void 0 === t && (t = !0);
var a = this,
i = a.params.direction;
return e || (e = "horizontal" === i ? "vertical" : "horizontal"), e === i || "horizontal" !== e && "vertical" !== e || (a.$el.removeClass("" + a.params.containerModifierClass + i).addClass("" + a.params.containerModifierClass + e), a.emitContainerClasses(), a.params.direction = e, a.slides.each((function (t) {
"vertical" === e ? t.style.width = "" : t.style.height = ""
})), a.emit("changeDirection"), t && a.update()), a
}, n.mount = function (e) {
var t = this;
if (t.mounted) return !0;
var a = m(e || t.params.el);
if (!(e = a[0])) return !1;
e.swiper = t;
var i = function () {
return "." + (t.params.wrapperClass || "").trim().split(" ").join(".")
},
s = function () {
if (e && e.shadowRoot && e.shadowRoot.querySelector) {
var t = m(e.shadowRoot.querySelector(i()));
return t.children = function (e) {
return a.children(e)
}, t
}
return a.children(i())
}();
if (0 === s.length && t.params.createElements) {
var n = r().createElement("div");
s = m(n), n.className = t.params.wrapperClass, a.append(n), a.children("." + t.params.slideClass).each((function (e) {
s.append(e)
}))
}
return M(t, {
$el: a,
el: e,
$wrapperEl: s,
wrapperEl: s[0],
mounted: !0,
rtl: "rtl" === e.dir.toLowerCase() || "rtl" === a.css("direction"),
rtlTranslate: "horizontal" === t.params.direction && ("rtl" === e.dir.toLowerCase() || "rtl" === a.css("direction")),
wrongRTL: "-webkit-box" === s.css("display")
}), !0
}, n.init = function (e) {
var t = this;
return t.initialized || !1 === t.mount(e) || (t.emit("beforeInit"), t.params.breakpoints && t.setBreakpoint(), t.addClasses(), t.params.loop && t.loopCreate(), t.updateSize(), t.updateSlides(), t.params.watchOverflow && t.checkOverflow(), t.params.grabCursor && t.enabled && t.setGrabCursor(), t.params.preloadImages && t.preloadImages(), t.params.loop ? t.slideTo(t.params.initialSlide + t.loopedSlides, 0, t.params.runCallbacksOnInit, !1, !0) : t.slideTo(t.params.initialSlide, 0, t.params.runCallbacksOnInit, !1, !0), t.attachEvents(), t.initialized = !0, t.emit("init"), t.emit("afterInit")), t
}, n.destroy = function (e, t) {
void 0 === e && (e = !0), void 0 === t && (t = !0);
var a, i = this,
s = i.params,
r = i.$el,
n = i.$wrapperEl,
l = i.slides;
return void 0 === i.params || i.destroyed || (i.emit("beforeDestroy"), i.initialized = !1, i.detachEvents(), s.loop && i.loopDestroy(), t && (i.removeClasses(), r.removeAttr("style"), n.removeAttr("style"), l && l.length && l.removeClass([s.slideVisibleClass, s.slideActiveClass, s.slideNextClass, s.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")), i.emit("destroy"), Object.keys(i.eventsListeners).forEach((function (e) {
i.off(e)
})), !1 !== e && (i.$el[0].swiper = null, a = i, Object.keys(a).forEach((function (e) {
try {
a[e] = null
} catch (e) {}
try {
delete a[e]
} catch (e) {}
}))), i.destroyed = !0), null
}, t.extendDefaults = function (e) {
M(_, e)
}, t.installModule = function (e) {
t.prototype.modules || (t.prototype.modules = {});
var a = e.name || Object.keys(t.prototype.modules).length + "_" + x();
t.prototype.modules[a] = e
}, t.use = function (e) {
return Array.isArray(e) ? (e.forEach((function (e) {
return t.installModule(e)
})), t) : (t.installModule(e), t)
}, a = t, s = [{
key: "extendedDefaults",
get: function () {
return _
}
}, {
key: "defaults",
get: function () {
return W
}
}], (i = null) && e(a.prototype, i), s && e(a, s), t
}();
Object.keys(F).forEach((function (e) {
Object.keys(F[e]).forEach((function (t) {
q.prototype[t] = F[e][t]
}))
})), q.use([O, D]);
var j = {
update: function (e) {
var t = this,
a = t.params,
i = a.slidesPerView,
s = a.slidesPerGroup,
r = a.centeredSlides,
n = t.params.virtual,
l = n.addSlidesBefore,
o = n.addSlidesAfter,
d = t.virtual,
p = d.from,
u = d.to,
c = d.slides,
h = d.slidesGrid,
v = d.renderSlide,
f = d.offset;
t.updateActiveIndex();
var m, g, b, w = t.activeIndex || 0;
m = t.rtlTranslate ? "right" : t.isHorizontal() ? "left" : "top", r ? (g = Math.floor(i / 2) + s + o, b = Math.floor(i / 2) + s + l) : (g = i + (s - 1) + o, b = s + l);
var y = Math.max((w || 0) - b, 0),
E = Math.min((w || 0) + g, c.length - 1),
x = (t.slidesGrid[y] || 0) - (t.slidesGrid[0] || 0);
function T() {
t.updateSlides(), t.updateProgress(), t.updateSlidesClasses(), t.lazy && t.params.lazy.enabled && t.lazy.load()
}
if (M(t.virtual, {
from: y,
to: E,
offset: x,
slidesGrid: t.slidesGrid
}), p === y && u === E && !e) return t.slidesGrid !== h && x !== f && t.slides.css(m, x + "px"), void t.updateProgress();
if (t.params.virtual.renderExternal) return t.params.virtual.renderExternal.call(t, {
offset: x,
from: y,
to: E,
slides: function () {
for (var e = [], t = y; t <= E; t += 1) e.push(c[t]);
return e
}()
}), void(t.params.virtual.renderExternalUpdate && T());
var C = [],
S = [];
if (e) t.$wrapperEl.find("." + t.params.slideClass).remove();
else
for (var z = p; z <= u; z += 1)(z < y || z > E) && t.$wrapperEl.find("." + t.params.slideClass + '[data-swiper-slide-index="' + z + '"]').remove();
for (var P = 0; P < c.length; P += 1) P >= y && P <= E && (void 0 === u || e ? S.push(P) : (P > u && S.push(P), P < p && C.push(P)));
S.forEach((function (e) {
t.$wrapperEl.append(v(c[e], e))
})), C.sort((function (e, t) {
return t - e
})).forEach((function (e) {
t.$wrapperEl.prepend(v(c[e], e))
})), t.$wrapperEl.children(".swiper-slide").css(m, x + "px"), T()
},
renderSlide: function (e, t) {
var a = this,
i = a.params.virtual;
if (i.cache && a.virtual.cache[t]) return a.virtual.cache[t];
var s = i.renderSlide ? m(i.renderSlide.call(a, e, t)) : m('' + e + "
");
return s.attr("data-swiper-slide-index") || s.attr("data-swiper-slide-index", t), i.cache && (a.virtual.cache[t] = s), s
},
appendSlide: function (e) {
var t = this;
if ("object" == typeof e && "length" in e)
for (var a = 0; a < e.length; a += 1) e[a] && t.virtual.slides.push(e[a]);
else t.virtual.slides.push(e);
t.virtual.update(!0)
},
prependSlide: function (e) {
var t = this,
a = t.activeIndex,
i = a + 1,
s = 1;
if (Array.isArray(e)) {
for (var r = 0; r < e.length; r += 1) e[r] && t.virtual.slides.unshift(e[r]);
i = a + e.length, s = e.length
} else t.virtual.slides.unshift(e);
if (t.params.virtual.cache) {
var n = t.virtual.cache,
l = {};
Object.keys(n).forEach((function (e) {
var t = n[e],
a = t.attr("data-swiper-slide-index");
a && t.attr("data-swiper-slide-index", parseInt(a, 10) + 1), l[parseInt(e, 10) + s] = t
})), t.virtual.cache = l
}
t.virtual.update(!0), t.slideTo(i, 0)
},
removeSlide: function (e) {
var t = this;
if (null != e) {
var a = t.activeIndex;
if (Array.isArray(e))
for (var i = e.length - 1; i >= 0; i -= 1) t.virtual.slides.splice(e[i], 1), t.params.virtual.cache && delete t.virtual.cache[e[i]], e[i] < a && (a -= 1), a = Math.max(a, 0);
else t.virtual.slides.splice(e, 1), t.params.virtual.cache && delete t.virtual.cache[e], e < a && (a -= 1), a = Math.max(a, 0);
t.virtual.update(!0), t.slideTo(a, 0)
}
},
removeAllSlides: function () {
var e = this;
e.virtual.slides = [], e.params.virtual.cache && (e.virtual.cache = {}), e.virtual.update(!0), e.slideTo(0, 0)
}
},
U = {
name: "virtual",
params: {
virtual: {
enabled: !1,
slides: [],
cache: !0,
renderSlide: null,
renderExternal: null,
renderExternalUpdate: !0,
addSlidesBefore: 0,
addSlidesAfter: 0
}
},
create: function () {
z(this, {
virtual: t({}, j, {
slides: this.params.virtual.slides,
cache: {}
})
})
},
on: {
beforeInit: function (e) {
if (e.params.virtual.enabled) {
e.classNames.push(e.params.containerModifierClass + "virtual");
var t = {
watchSlidesProgress: !0
};
M(e.params, t), M(e.originalParams, t), e.params.initialSlide || e.virtual.update()
}
},
setTranslate: function (e) {
e.params.virtual.enabled && e.virtual.update()
}
}
},
K = {
handle: function (e) {
var t = this;
if (t.enabled) {
var a = l(),
i = r(),
s = t.rtlTranslate,
n = e;
n.originalEvent && (n = n.originalEvent);
var o = n.keyCode || n.charCode,
d = t.params.keyboard.pageUpDown,
p = d && 33 === o,
u = d && 34 === o,
c = 37 === o,
h = 39 === o,
v = 38 === o,
f = 40 === o;
if (!t.allowSlideNext && (t.isHorizontal() && h || t.isVertical() && f || u)) return !1;
if (!t.allowSlidePrev && (t.isHorizontal() && c || t.isVertical() && v || p)) return !1;
if (!(n.shiftKey || n.altKey || n.ctrlKey || n.metaKey || i.activeElement && i.activeElement.nodeName && ("input" === i.activeElement.nodeName.toLowerCase() || "textarea" === i.activeElement.nodeName.toLowerCase()))) {
if (t.params.keyboard.onlyInViewport && (p || u || c || h || v || f)) {
var m = !1;
if (t.$el.parents("." + t.params.slideClass).length > 0 && 0 === t.$el.parents("." + t.params.slideActiveClass).length) return;
var g = t.$el,
b = g[0].clientWidth,
w = g[0].clientHeight,
y = a.innerWidth,
E = a.innerHeight,
x = t.$el.offset();
s && (x.left -= t.$el[0].scrollLeft);
for (var T = [
[x.left, x.top],
[x.left + b, x.top],
[x.left, x.top + w],
[x.left + b, x.top + w]
], C = 0; C < T.length; C += 1) {
var S = T[C];
if (S[0] >= 0 && S[0] <= y && S[1] >= 0 && S[1] <= E) {
if (0 === S[0] && 0 === S[1]) continue;
m = !0
}
}
if (!m) return
}
t.isHorizontal() ? ((p || u || c || h) && (n.preventDefault ? n.preventDefault() : n.returnValue = !1), ((u || h) && !s || (p || c) && s) && t.slideNext(), ((p || c) && !s || (u || h) && s) && t.slidePrev()) : ((p || u || v || f) && (n.preventDefault ? n.preventDefault() : n.returnValue = !1), (u || f) && t.slideNext(), (p || v) && t.slidePrev()), t.emit("keyPress", o)
}
}
},
enable: function () {
var e = this,
t = r();
e.keyboard.enabled || (m(t).on("keydown", e.keyboard.handle), e.keyboard.enabled = !0)
},
disable: function () {
var e = this,
t = r();
e.keyboard.enabled && (m(t).off("keydown", e.keyboard.handle), e.keyboard.enabled = !1)
}
},
Z = {
name: "keyboard",
params: {
keyboard: {
enabled: !1,
onlyInViewport: !0,
pageUpDown: !0
}
},
create: function () {
z(this, {
keyboard: t({
enabled: !1
}, K)
})
},
on: {
init: function (e) {
e.params.keyboard.enabled && e.keyboard.enable()
},
destroy: function (e) {
e.keyboard.enabled && e.keyboard.disable()
}
}
};
var J = {
lastScrollTime: x(),
lastEventBeforeSnap: void 0,
recentWheelEvents: [],
event: function () {
return l().navigator.userAgent.indexOf("firefox") > -1 ? "DOMMouseScroll" : function () {
var e = r(),
t = "onwheel",
a = t in e;
if (!a) {
var i = e.createElement("div");
i.setAttribute(t, "return;"), a = "function" == typeof i.onwheel
}
return !a && e.implementation && e.implementation.hasFeature && !0 !== e.implementation.hasFeature("", "") && (a = e.implementation.hasFeature("Events.wheel", "3.0")), a
}() ? "wheel" : "mousewheel"
},
normalize: function (e) {
var t = 0,
a = 0,
i = 0,
s = 0;
return "detail" in e && (a = e.detail), "wheelDelta" in e && (a = -e.wheelDelta / 120), "wheelDeltaY" in e && (a = -e.wheelDeltaY / 120), "wheelDeltaX" in e && (t = -e.wheelDeltaX / 120), "axis" in e && e.axis === e.HORIZONTAL_AXIS && (t = a, a = 0), i = 10 * t, s = 10 * a, "deltaY" in e && (s = e.deltaY), "deltaX" in e && (i = e.deltaX), e.shiftKey && !i && (i = s, s = 0), (i || s) && e.deltaMode && (1 === e.deltaMode ? (i *= 40, s *= 40) : (i *= 800, s *= 800)), i && !t && (t = i < 1 ? -1 : 1), s && !a && (a = s < 1 ? -1 : 1), {
spinX: t,
spinY: a,
pixelX: i,
pixelY: s
}
},
handleMouseEnter: function () {
this.enabled && (this.mouseEntered = !0)
},
handleMouseLeave: function () {
this.enabled && (this.mouseEntered = !1)
},
handle: function (e) {
var t = e,
a = this;
if (a.enabled) {
var i = a.params.mousewheel;
a.params.cssMode && t.preventDefault();
var s = a.$el;
if ("container" !== a.params.mousewheel.eventsTarget && (s = m(a.params.mousewheel.eventsTarget)), !a.mouseEntered && !s[0].contains(t.target) && !i.releaseOnEdges) return !0;
t.originalEvent && (t = t.originalEvent);
var r = 0,
n = a.rtlTranslate ? -1 : 1,
l = J.normalize(t);
if (i.forceToAxis)
if (a.isHorizontal()) {
if (!(Math.abs(l.pixelX) > Math.abs(l.pixelY))) return !0;
r = -l.pixelX * n
} else {
if (!(Math.abs(l.pixelY) > Math.abs(l.pixelX))) return !0;
r = -l.pixelY
}
else r = Math.abs(l.pixelX) > Math.abs(l.pixelY) ? -l.pixelX * n : -l.pixelY;
if (0 === r) return !0;
i.invert && (r = -r);
var o = a.getTranslate() + r * i.sensitivity;
if (o >= a.minTranslate() && (o = a.minTranslate()), o <= a.maxTranslate() && (o = a.maxTranslate()), (!!a.params.loop || !(o === a.minTranslate() || o === a.maxTranslate())) && a.params.nested && t.stopPropagation(), a.params.freeMode) {
var d = {
time: x(),
delta: Math.abs(r),
direction: Math.sign(r)
},
p = a.mousewheel.lastEventBeforeSnap,
u = p && d.time < p.time + 500 && d.delta <= p.delta && d.direction === p.direction;
if (!u) {
a.mousewheel.lastEventBeforeSnap = void 0, a.params.loop && a.loopFix();
var c = a.getTranslate() + r * i.sensitivity,
h = a.isBeginning,
v = a.isEnd;
if (c >= a.minTranslate() && (c = a.minTranslate()), c <= a.maxTranslate() && (c = a.maxTranslate()), a.setTransition(0), a.setTranslate(c), a.updateProgress(), a.updateActiveIndex(), a.updateSlidesClasses(), (!h && a.isBeginning || !v && a.isEnd) && a.updateSlidesClasses(), a.params.freeModeSticky) {
clearTimeout(a.mousewheel.timeout), a.mousewheel.timeout = void 0;
var f = a.mousewheel.recentWheelEvents;
f.length >= 15 && f.shift();
var g = f.length ? f[f.length - 1] : void 0,
b = f[0];
if (f.push(d), g && (d.delta > g.delta || d.direction !== g.direction)) f.splice(0);
else if (f.length >= 15 && d.time - b.time < 500 && b.delta - d.delta >= 1 && d.delta <= 6) {
var w = r > 0 ? .8 : .2;
a.mousewheel.lastEventBeforeSnap = d, f.splice(0), a.mousewheel.timeout = E((function () {
a.slideToClosest(a.params.speed, !0, void 0, w)
}), 0)
}
a.mousewheel.timeout || (a.mousewheel.timeout = E((function () {
a.mousewheel.lastEventBeforeSnap = d, f.splice(0), a.slideToClosest(a.params.speed, !0, void 0, .5)
}), 500))
}
if (u || a.emit("scroll", t), a.params.autoplay && a.params.autoplayDisableOnInteraction && a.autoplay.stop(), c === a.minTranslate() || c === a.maxTranslate()) return !0
}
} else {
var y = {
time: x(),
delta: Math.abs(r),
direction: Math.sign(r),
raw: e
},
T = a.mousewheel.recentWheelEvents;
T.length >= 2 && T.shift();
var C = T.length ? T[T.length - 1] : void 0;
if (T.push(y), C ? (y.direction !== C.direction || y.delta > C.delta || y.time > C.time + 150) && a.mousewheel.animateSlider(y) : a.mousewheel.animateSlider(y), a.mousewheel.releaseScroll(y)) return !0
}
return t.preventDefault ? t.preventDefault() : t.returnValue = !1, !1
}
},
animateSlider: function (e) {
var t = this,
a = l();
return !(this.params.mousewheel.thresholdDelta && e.delta < this.params.mousewheel.thresholdDelta) && (!(this.params.mousewheel.thresholdTime && x() - t.mousewheel.lastScrollTime < this.params.mousewheel.thresholdTime) && (e.delta >= 6 && x() - t.mousewheel.lastScrollTime < 60 || (e.direction < 0 ? t.isEnd && !t.params.loop || t.animating || (t.slideNext(), t.emit("scroll", e.raw)) : t.isBeginning && !t.params.loop || t.animating || (t.slidePrev(), t.emit("scroll", e.raw)), t.mousewheel.lastScrollTime = (new a.Date).getTime(), !1)))
},
releaseScroll: function (e) {
var t = this,
a = t.params.mousewheel;
if (e.direction < 0) {
if (t.isEnd && !t.params.loop && a.releaseOnEdges) return !0
} else if (t.isBeginning && !t.params.loop && a.releaseOnEdges) return !0;
return !1
},
enable: function () {
var e = this,
t = J.event();
if (e.params.cssMode) return e.wrapperEl.removeEventListener(t, e.mousewheel.handle), !0;
if (!t) return !1;
if (e.mousewheel.enabled) return !1;
var a = e.$el;
return "container" !== e.params.mousewheel.eventsTarget && (a = m(e.params.mousewheel.eventsTarget)), a.on("mouseenter", e.mousewheel.handleMouseEnter), a.on("mouseleave", e.mousewheel.handleMouseLeave), a.on(t, e.mousewheel.handle), e.mousewheel.enabled = !0, !0
},
disable: function () {
var e = this,
t = J.event();
if (e.params.cssMode) return e.wrapperEl.addEventListener(t, e.mousewheel.handle), !0;
if (!t) return !1;
if (!e.mousewheel.enabled) return !1;
var a = e.$el;
return "container" !== e.params.mousewheel.eventsTarget && (a = m(e.params.mousewheel.eventsTarget)), a.off(t, e.mousewheel.handle), e.mousewheel.enabled = !1, !0
}
},
Q = {
toggleEl: function (e, t) {
e[t ? "addClass" : "removeClass"](this.params.navigation.disabledClass), e[0] && "BUTTON" === e[0].tagName && (e[0].disabled = t)
},
update: function () {
var e = this,
t = e.params.navigation,
a = e.navigation.toggleEl;
if (!e.params.loop) {
var i = e.navigation,
s = i.$nextEl,
r = i.$prevEl;
r && r.length > 0 && (e.isBeginning ? a(r, !0) : a(r, !1), e.params.watchOverflow && e.enabled && r[e.isLocked ? "addClass" : "removeClass"](t.lockClass)), s && s.length > 0 && (e.isEnd ? a(s, !0) : a(s, !1), e.params.watchOverflow && e.enabled && s[e.isLocked ? "addClass" : "removeClass"](t.lockClass))
}
},
onPrevClick: function (e) {
var t = this;
e.preventDefault(), t.isBeginning && !t.params.loop || t.slidePrev()
},
onNextClick: function (e) {
var t = this;
e.preventDefault(), t.isEnd && !t.params.loop || t.slideNext()
},
init: function () {
var e, t, a = this,
i = a.params.navigation;
(a.params.navigation = k(a.$el, a.params.navigation, a.params.createElements, {
nextEl: "swiper-button-next",
prevEl: "swiper-button-prev"
}), i.nextEl || i.prevEl) && (i.nextEl && (e = m(i.nextEl), a.params.uniqueNavElements && "string" == typeof i.nextEl && e.length > 1 && 1 === a.$el.find(i.nextEl).length && (e = a.$el.find(i.nextEl))), i.prevEl && (t = m(i.prevEl), a.params.uniqueNavElements && "string" == typeof i.prevEl && t.length > 1 && 1 === a.$el.find(i.prevEl).length && (t = a.$el.find(i.prevEl))), e && e.length > 0 && e.on("click", a.navigation.onNextClick), t && t.length > 0 && t.on("click", a.navigation.onPrevClick), M(a.navigation, {
$nextEl: e,
nextEl: e && e[0],
$prevEl: t,
prevEl: t && t[0]
}), a.enabled || (e && e.addClass(i.lockClass), t && t.addClass(i.lockClass)))
},
destroy: function () {
var e = this,
t = e.navigation,
a = t.$nextEl,
i = t.$prevEl;
a && a.length && (a.off("click", e.navigation.onNextClick), a.removeClass(e.params.navigation.disabledClass)), i && i.length && (i.off("click", e.navigation.onPrevClick), i.removeClass(e.params.navigation.disabledClass))
}
},
ee = {
update: function () {
var e = this,
t = e.rtl,
a = e.params.pagination;
if (a.el && e.pagination.el && e.pagination.$el && 0 !== e.pagination.$el.length) {
var i, s = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : e.slides.length,
r = e.pagination.$el,
n = e.params.loop ? Math.ceil((s - 2 * e.loopedSlides) / e.params.slidesPerGroup) : e.snapGrid.length;
if (e.params.loop ? ((i = Math.ceil((e.activeIndex - e.loopedSlides) / e.params.slidesPerGroup)) > s - 1 - 2 * e.loopedSlides && (i -= s - 2 * e.loopedSlides), i > n - 1 && (i -= n), i < 0 && "bullets" !== e.params.paginationType && (i = n + i)) : i = void 0 !== e.snapIndex ? e.snapIndex : e.activeIndex || 0, "bullets" === a.type && e.pagination.bullets && e.pagination.bullets.length > 0) {
var l, o, d, p = e.pagination.bullets;
if (a.dynamicBullets && (e.pagination.bulletSize = p.eq(0)[e.isHorizontal() ? "outerWidth" : "outerHeight"](!0), r.css(e.isHorizontal() ? "width" : "height", e.pagination.bulletSize * (a.dynamicMainBullets + 4) + "px"), a.dynamicMainBullets > 1 && void 0 !== e.previousIndex && (e.pagination.dynamicBulletIndex += i - e.previousIndex, e.pagination.dynamicBulletIndex > a.dynamicMainBullets - 1 ? e.pagination.dynamicBulletIndex = a.dynamicMainBullets - 1 : e.pagination.dynamicBulletIndex < 0 && (e.pagination.dynamicBulletIndex = 0)), l = i - e.pagination.dynamicBulletIndex, d = ((o = l + (Math.min(p.length, a.dynamicMainBullets) - 1)) + l) / 2), p.removeClass(a.bulletActiveClass + " " + a.bulletActiveClass + "-next " + a.bulletActiveClass + "-next-next " + a.bulletActiveClass + "-prev " + a.bulletActiveClass + "-prev-prev " + a.bulletActiveClass + "-main"), r.length > 1) p.each((function (e) {
var t = m(e),
s = t.index();
s === i && t.addClass(a.bulletActiveClass), a.dynamicBullets && (s >= l && s <= o && t.addClass(a.bulletActiveClass + "-main"), s === l && t.prev().addClass(a.bulletActiveClass + "-prev").prev().addClass(a.bulletActiveClass + "-prev-prev"), s === o && t.next().addClass(a.bulletActiveClass + "-next").next().addClass(a.bulletActiveClass + "-next-next"))
}));
else {
var u = p.eq(i),
c = u.index();
if (u.addClass(a.bulletActiveClass), a.dynamicBullets) {
for (var h = p.eq(l), v = p.eq(o), f = l; f <= o; f += 1) p.eq(f).addClass(a.bulletActiveClass + "-main");
if (e.params.loop)
if (c >= p.length - a.dynamicMainBullets) {
for (var g = a.dynamicMainBullets; g >= 0; g -= 1) p.eq(p.length - g).addClass(a.bulletActiveClass + "-main");
p.eq(p.length - a.dynamicMainBullets - 1).addClass(a.bulletActiveClass + "-prev")
} else h.prev().addClass(a.bulletActiveClass + "-prev").prev().addClass(a.bulletActiveClass + "-prev-prev"), v.next().addClass(a.bulletActiveClass + "-next").next().addClass(a.bulletActiveClass + "-next-next");
else h.prev().addClass(a.bulletActiveClass + "-prev").prev().addClass(a.bulletActiveClass + "-prev-prev"), v.next().addClass(a.bulletActiveClass + "-next").next().addClass(a.bulletActiveClass + "-next-next")
}
}
if (a.dynamicBullets) {
var b = Math.min(p.length, a.dynamicMainBullets + 4),
w = (e.pagination.bulletSize * b - e.pagination.bulletSize) / 2 - d * e.pagination.bulletSize,
y = t ? "right" : "left";
p.css(e.isHorizontal() ? y : "top", w + "px")
}
}
if ("fraction" === a.type && (r.find(P(a.currentClass)).text(a.formatFractionCurrent(i + 1)), r.find(P(a.totalClass)).text(a.formatFractionTotal(n))), "progressbar" === a.type) {
var E;
E = a.progressbarOpposite ? e.isHorizontal() ? "vertical" : "horizontal" : e.isHorizontal() ? "horizontal" : "vertical";
var x = (i + 1) / n,
T = 1,
C = 1;
"horizontal" === E ? T = x : C = x, r.find(P(a.progressbarFillClass)).transform("translate3d(0,0,0) scaleX(" + T + ") scaleY(" + C + ")").transition(e.params.speed)
}
"custom" === a.type && a.renderCustom ? (r.html(a.renderCustom(e, i + 1, n)), e.emit("paginationRender", r[0])) : e.emit("paginationUpdate", r[0]), e.params.watchOverflow && e.enabled && r[e.isLocked ? "addClass" : "removeClass"](a.lockClass)
}
},
render: function () {
var e = this,
t = e.params.pagination;
if (t.el && e.pagination.el && e.pagination.$el && 0 !== e.pagination.$el.length) {
var a = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : e.slides.length,
i = e.pagination.$el,
s = "";
if ("bullets" === t.type) {
var r = e.params.loop ? Math.ceil((a - 2 * e.loopedSlides) / e.params.slidesPerGroup) : e.snapGrid.length;
e.params.freeMode && !e.params.loop && r > a && (r = a);
for (var n = 0; n < r; n += 1) t.renderBullet ? s += t.renderBullet.call(e, n, t.bulletClass) : s += "<" + t.bulletElement + ' class="' + t.bulletClass + '">' + t.bulletElement + ">";
i.html(s), e.pagination.bullets = i.find(P(t.bulletClass))
}
"fraction" === t.type && (s = t.renderFraction ? t.renderFraction.call(e, t.currentClass, t.totalClass) : ' / ', i.html(s)), "progressbar" === t.type && (s = t.renderProgressbar ? t.renderProgressbar.call(e, t.progressbarFillClass) : ' ', i.html(s)), "custom" !== t.type && e.emit("paginationRender", e.pagination.$el[0])
}
},
init: function () {
var e = this;
e.params.pagination = k(e.$el, e.params.pagination, e.params.createElements, {
el: "swiper-pagination"
});
var t = e.params.pagination;
if (t.el) {
var a = m(t.el);
0 !== a.length && (e.params.uniqueNavElements && "string" == typeof t.el && a.length > 1 && (a = e.$el.find(t.el)), "bullets" === t.type && t.clickable && a.addClass(t.clickableClass), a.addClass(t.modifierClass + t.type), "bullets" === t.type && t.dynamicBullets && (a.addClass("" + t.modifierClass + t.type + "-dynamic"), e.pagination.dynamicBulletIndex = 0, t.dynamicMainBullets < 1 && (t.dynamicMainBullets = 1)), "progressbar" === t.type && t.progressbarOpposite && a.addClass(t.progressbarOppositeClass), t.clickable && a.on("click", P(t.bulletClass), (function (t) {
t.preventDefault();
var a = m(this).index() * e.params.slidesPerGroup;
e.params.loop && (a += e.loopedSlides), e.slideTo(a)
})), M(e.pagination, {
$el: a,
el: a[0]
}), e.enabled || a.addClass(t.lockClass))
}
},
destroy: function () {
var e = this,
t = e.params.pagination;
if (t.el && e.pagination.el && e.pagination.$el && 0 !== e.pagination.$el.length) {
var a = e.pagination.$el;
a.removeClass(t.hiddenClass), a.removeClass(t.modifierClass + t.type), e.pagination.bullets && e.pagination.bullets.removeClass(t.bulletActiveClass), t.clickable && a.off("click", P(t.bulletClass))
}
}
},
te = {
setTranslate: function () {
var e = this;
if (e.params.scrollbar.el && e.scrollbar.el) {
var t = e.scrollbar,
a = e.rtlTranslate,
i = e.progress,
s = t.dragSize,
r = t.trackSize,
n = t.$dragEl,
l = t.$el,
o = e.params.scrollbar,
d = s,
p = (r - s) * i;
a ? (p = -p) > 0 ? (d = s - p, p = 0) : -p + s > r && (d = r + p) : p < 0 ? (d = s + p, p = 0) : p + s > r && (d = r - p), e.isHorizontal() ? (n.transform("translate3d(" + p + "px, 0, 0)"), n[0].style.width = d + "px") : (n.transform("translate3d(0px, " + p + "px, 0)"), n[0].style.height = d + "px"), o.hide && (clearTimeout(e.scrollbar.timeout), l[0].style.opacity = 1, e.scrollbar.timeout = setTimeout((function () {
l[0].style.opacity = 0, l.transition(400)
}), 1e3))
}
},
setTransition: function (e) {
var t = this;
t.params.scrollbar.el && t.scrollbar.el && t.scrollbar.$dragEl.transition(e)
},
updateSize: function () {
var e = this;
if (e.params.scrollbar.el && e.scrollbar.el) {
var t = e.scrollbar,
a = t.$dragEl,
i = t.$el;
a[0].style.width = "", a[0].style.height = "";
var s, r = e.isHorizontal() ? i[0].offsetWidth : i[0].offsetHeight,
n = e.size / e.virtualSize,
l = n * (r / e.size);
s = "auto" === e.params.scrollbar.dragSize ? r * n : parseInt(e.params.scrollbar.dragSize, 10), e.isHorizontal() ? a[0].style.width = s + "px" : a[0].style.height = s + "px", i[0].style.display = n >= 1 ? "none" : "", e.params.scrollbar.hide && (i[0].style.opacity = 0), M(t, {
trackSize: r,
divider: n,
moveDivider: l,
dragSize: s
}), e.params.watchOverflow && e.enabled && t.$el[e.isLocked ? "addClass" : "removeClass"](e.params.scrollbar.lockClass)
}
},
getPointerPosition: function (e) {
return this.isHorizontal() ? "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].clientX : e.clientX : "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].clientY : e.clientY
},
setDragPosition: function (e) {
var t, a = this,
i = a.scrollbar,
s = a.rtlTranslate,
r = i.$el,
n = i.dragSize,
l = i.trackSize,
o = i.dragStartPos;
t = (i.getPointerPosition(e) - r.offset()[a.isHorizontal() ? "left" : "top"] - (null !== o ? o : n / 2)) / (l - n), t = Math.max(Math.min(t, 1), 0), s && (t = 1 - t);
var d = a.minTranslate() + (a.maxTranslate() - a.minTranslate()) * t;
a.updateProgress(d), a.setTranslate(d), a.updateActiveIndex(), a.updateSlidesClasses()
},
onDragStart: function (e) {
var t = this,
a = t.params.scrollbar,
i = t.scrollbar,
s = t.$wrapperEl,
r = i.$el,
n = i.$dragEl;
t.scrollbar.isTouched = !0, t.scrollbar.dragStartPos = e.target === n[0] || e.target === n ? i.getPointerPosition(e) - e.target.getBoundingClientRect()[t.isHorizontal() ? "left" : "top"] : null, e.preventDefault(), e.stopPropagation(), s.transition(100), n.transition(100), i.setDragPosition(e), clearTimeout(t.scrollbar.dragTimeout), r.transition(0), a.hide && r.css("opacity", 1), t.params.cssMode && t.$wrapperEl.css("scroll-snap-type", "none"), t.emit("scrollbarDragStart", e)
},
onDragMove: function (e) {
var t = this,
a = t.scrollbar,
i = t.$wrapperEl,
s = a.$el,
r = a.$dragEl;
t.scrollbar.isTouched && (e.preventDefault ? e.preventDefault() : e.returnValue = !1, a.setDragPosition(e), i.transition(0), s.transition(0), r.transition(0), t.emit("scrollbarDragMove", e))
},
onDragEnd: function (e) {
var t = this,
a = t.params.scrollbar,
i = t.scrollbar,
s = t.$wrapperEl,
r = i.$el;
t.scrollbar.isTouched && (t.scrollbar.isTouched = !1, t.params.cssMode && (t.$wrapperEl.css("scroll-snap-type", ""), s.transition("")), a.hide && (clearTimeout(t.scrollbar.dragTimeout), t.scrollbar.dragTimeout = E((function () {
r.css("opacity", 0), r.transition(400)
}), 1e3)), t.emit("scrollbarDragEnd", e), a.snapOnRelease && t.slideToClosest())
},
enableDraggable: function () {
var e = this;
if (e.params.scrollbar.el) {
var t = r(),
a = e.scrollbar,
i = e.touchEventsTouch,
s = e.touchEventsDesktop,
n = e.params,
l = e.support,
o = a.$el[0],
d = !(!l.passiveListener || !n.passiveListeners) && {
passive: !1,
capture: !1
},
p = !(!l.passiveListener || !n.passiveListeners) && {
passive: !0,
capture: !1
};
o && (l.touch ? (o.addEventListener(i.start, e.scrollbar.onDragStart, d), o.addEventListener(i.move, e.scrollbar.onDragMove, d), o.addEventListener(i.end, e.scrollbar.onDragEnd, p)) : (o.addEventListener(s.start, e.scrollbar.onDragStart, d), t.addEventListener(s.move, e.scrollbar.onDragMove, d), t.addEventListener(s.end, e.scrollbar.onDragEnd, p)))
}
},
disableDraggable: function () {
var e = this;
if (e.params.scrollbar.el) {
var t = r(),
a = e.scrollbar,
i = e.touchEventsTouch,
s = e.touchEventsDesktop,
n = e.params,
l = e.support,
o = a.$el[0],
d = !(!l.passiveListener || !n.passiveListeners) && {
passive: !1,
capture: !1
},
p = !(!l.passiveListener || !n.passiveListeners) && {
passive: !0,
capture: !1
};
o && (l.touch ? (o.removeEventListener(i.start, e.scrollbar.onDragStart, d), o.removeEventListener(i.move, e.scrollbar.onDragMove, d), o.removeEventListener(i.end, e.scrollbar.onDragEnd, p)) : (o.removeEventListener(s.start, e.scrollbar.onDragStart, d), t.removeEventListener(s.move, e.scrollbar.onDragMove, d), t.removeEventListener(s.end, e.scrollbar.onDragEnd, p)))
}
},
init: function () {
var e = this,
t = e.scrollbar,
a = e.$el;
e.params.scrollbar = k(a, e.params.scrollbar, e.params.createElements, {
el: "swiper-scrollbar"
});
var i = e.params.scrollbar;
if (i.el) {
var s = m(i.el);
e.params.uniqueNavElements && "string" == typeof i.el && s.length > 1 && 1 === a.find(i.el).length && (s = a.find(i.el));
var r = s.find("." + e.params.scrollbar.dragClass);
0 === r.length && (r = m('
'), s.append(r)), M(t, {
$el: s,
el: s[0],
$dragEl: r,
dragEl: r[0]
}), i.draggable && t.enableDraggable(), s && s[e.enabled ? "removeClass" : "addClass"](e.params.scrollbar.lockClass)
}
},
destroy: function () {
this.scrollbar.disableDraggable()
}
},
ae = {
setTransform: function (e, t) {
var a = this.rtl,
i = m(e),
s = a ? -1 : 1,
r = i.attr("data-swiper-parallax") || "0",
n = i.attr("data-swiper-parallax-x"),
l = i.attr("data-swiper-parallax-y"),
o = i.attr("data-swiper-parallax-scale"),
d = i.attr("data-swiper-parallax-opacity");
if (n || l ? (n = n || "0", l = l || "0") : this.isHorizontal() ? (n = r, l = "0") : (l = r, n = "0"), n = n.indexOf("%") >= 0 ? parseInt(n, 10) * t * s + "%" : n * t * s + "px", l = l.indexOf("%") >= 0 ? parseInt(l, 10) * t + "%" : l * t + "px", null != d) {
var p = d - (d - 1) * (1 - Math.abs(t));
i[0].style.opacity = p
}
if (null == o) i.transform("translate3d(" + n + ", " + l + ", 0px)");
else {
var u = o - (o - 1) * (1 - Math.abs(t));
i.transform("translate3d(" + n + ", " + l + ", 0px) scale(" + u + ")")
}
},
setTranslate: function () {
var e = this,
t = e.$el,
a = e.slides,
i = e.progress,
s = e.snapGrid;
t.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((function (t) {
e.parallax.setTransform(t, i)
})), a.each((function (t, a) {
var r = t.progress;
e.params.slidesPerGroup > 1 && "auto" !== e.params.slidesPerView && (r += Math.ceil(a / 2) - i * (s.length - 1)), r = Math.min(Math.max(r, -1), 1), m(t).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((function (t) {
e.parallax.setTransform(t, r)
}))
}))
},
setTransition: function (e) {
void 0 === e && (e = this.params.speed);
this.$el.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((function (t) {
var a = m(t),
i = parseInt(a.attr("data-swiper-parallax-duration"), 10) || e;
0 === e && (i = 0), a.transition(i)
}))
}
},
ie = {
getDistanceBetweenTouches: function (e) {
if (e.targetTouches.length < 2) return 1;
var t = e.targetTouches[0].pageX,
a = e.targetTouches[0].pageY,
i = e.targetTouches[1].pageX,
s = e.targetTouches[1].pageY;
return Math.sqrt(Math.pow(i - t, 2) + Math.pow(s - a, 2))
},
onGestureStart: function (e) {
var t = this,
a = t.support,
i = t.params.zoom,
s = t.zoom,
r = s.gesture;
if (s.fakeGestureTouched = !1, s.fakeGestureMoved = !1, !a.gestures) {
if ("touchstart" !== e.type || "touchstart" === e.type && e.targetTouches.length < 2) return;
s.fakeGestureTouched = !0, r.scaleStart = ie.getDistanceBetweenTouches(e)
}
r.$slideEl && r.$slideEl.length || (r.$slideEl = m(e.target).closest("." + t.params.slideClass), 0 === r.$slideEl.length && (r.$slideEl = t.slides.eq(t.activeIndex)), r.$imageEl = r.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"), r.$imageWrapEl = r.$imageEl.parent("." + i.containerClass), r.maxRatio = r.$imageWrapEl.attr("data-swiper-zoom") || i.maxRatio, 0 !== r.$imageWrapEl.length) ? (r.$imageEl && r.$imageEl.transition(0), t.zoom.isScaling = !0) : r.$imageEl = void 0
},
onGestureChange: function (e) {
var t = this,
a = t.support,
i = t.params.zoom,
s = t.zoom,
r = s.gesture;
if (!a.gestures) {
if ("touchmove" !== e.type || "touchmove" === e.type && e.targetTouches.length < 2) return;
s.fakeGestureMoved = !0, r.scaleMove = ie.getDistanceBetweenTouches(e)
}
r.$imageEl && 0 !== r.$imageEl.length ? (a.gestures ? s.scale = e.scale * s.currentScale : s.scale = r.scaleMove / r.scaleStart * s.currentScale, s.scale > r.maxRatio && (s.scale = r.maxRatio - 1 + Math.pow(s.scale - r.maxRatio + 1, .5)), s.scale < i.minRatio && (s.scale = i.minRatio + 1 - Math.pow(i.minRatio - s.scale + 1, .5)), r.$imageEl.transform("translate3d(0,0,0) scale(" + s.scale + ")")) : "gesturechange" === e.type && s.onGestureStart(e)
},
onGestureEnd: function (e) {
var t = this,
a = t.device,
i = t.support,
s = t.params.zoom,
r = t.zoom,
n = r.gesture;
if (!i.gestures) {
if (!r.fakeGestureTouched || !r.fakeGestureMoved) return;
if ("touchend" !== e.type || "touchend" === e.type && e.changedTouches.length < 2 && !a.android) return;
r.fakeGestureTouched = !1, r.fakeGestureMoved = !1
}
n.$imageEl && 0 !== n.$imageEl.length && (r.scale = Math.max(Math.min(r.scale, n.maxRatio), s.minRatio), n.$imageEl.transition(t.params.speed).transform("translate3d(0,0,0) scale(" + r.scale + ")"), r.currentScale = r.scale, r.isScaling = !1, 1 === r.scale && (n.$slideEl = void 0))
},
onTouchStart: function (e) {
var t = this.device,
a = this.zoom,
i = a.gesture,
s = a.image;
i.$imageEl && 0 !== i.$imageEl.length && (s.isTouched || (t.android && e.cancelable && e.preventDefault(), s.isTouched = !0, s.touchesStart.x = "touchstart" === e.type ? e.targetTouches[0].pageX : e.pageX, s.touchesStart.y = "touchstart" === e.type ? e.targetTouches[0].pageY : e.pageY))
},
onTouchMove: function (e) {
var t = this,
a = t.zoom,
i = a.gesture,
s = a.image,
r = a.velocity;
if (i.$imageEl && 0 !== i.$imageEl.length && (t.allowClick = !1, s.isTouched && i.$slideEl)) {
s.isMoved || (s.width = i.$imageEl[0].offsetWidth, s.height = i.$imageEl[0].offsetHeight, s.startX = T(i.$imageWrapEl[0], "x") || 0, s.startY = T(i.$imageWrapEl[0], "y") || 0, i.slideWidth = i.$slideEl[0].offsetWidth, i.slideHeight = i.$slideEl[0].offsetHeight, i.$imageWrapEl.transition(0));
var n = s.width * a.scale,
l = s.height * a.scale;
if (!(n < i.slideWidth && l < i.slideHeight)) {
if (s.minX = Math.min(i.slideWidth / 2 - n / 2, 0), s.maxX = -s.minX, s.minY = Math.min(i.slideHeight / 2 - l / 2, 0), s.maxY = -s.minY, s.touchesCurrent.x = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX, s.touchesCurrent.y = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY, !s.isMoved && !a.isScaling) {
if (t.isHorizontal() && (Math.floor(s.minX) === Math.floor(s.startX) && s.touchesCurrent.x < s.touchesStart.x || Math.floor(s.maxX) === Math.floor(s.startX) && s.touchesCurrent.x > s.touchesStart.x)) return void(s.isTouched = !1);
if (!t.isHorizontal() && (Math.floor(s.minY) === Math.floor(s.startY) && s.touchesCurrent.y < s.touchesStart.y || Math.floor(s.maxY) === Math.floor(s.startY) && s.touchesCurrent.y > s.touchesStart.y)) return void(s.isTouched = !1)
}
e.cancelable && e.preventDefault(), e.stopPropagation(), s.isMoved = !0, s.currentX = s.touchesCurrent.x - s.touchesStart.x + s.startX, s.currentY = s.touchesCurrent.y - s.touchesStart.y + s.startY, s.currentX < s.minX && (s.currentX = s.minX + 1 - Math.pow(s.minX - s.currentX + 1, .8)), s.currentX > s.maxX && (s.currentX = s.maxX - 1 + Math.pow(s.currentX - s.maxX + 1, .8)), s.currentY < s.minY && (s.currentY = s.minY + 1 - Math.pow(s.minY - s.currentY + 1, .8)), s.currentY > s.maxY && (s.currentY = s.maxY - 1 + Math.pow(s.currentY - s.maxY + 1, .8)), r.prevPositionX || (r.prevPositionX = s.touchesCurrent.x), r.prevPositionY || (r.prevPositionY = s.touchesCurrent.y), r.prevTime || (r.prevTime = Date.now()), r.x = (s.touchesCurrent.x - r.prevPositionX) / (Date.now() - r.prevTime) / 2, r.y = (s.touchesCurrent.y - r.prevPositionY) / (Date.now() - r.prevTime) / 2, Math.abs(s.touchesCurrent.x - r.prevPositionX) < 2 && (r.x = 0), Math.abs(s.touchesCurrent.y - r.prevPositionY) < 2 && (r.y = 0), r.prevPositionX = s.touchesCurrent.x, r.prevPositionY = s.touchesCurrent.y, r.prevTime = Date.now(), i.$imageWrapEl.transform("translate3d(" + s.currentX + "px, " + s.currentY + "px,0)")
}
}
},
onTouchEnd: function () {
var e = this.zoom,
t = e.gesture,
a = e.image,
i = e.velocity;
if (t.$imageEl && 0 !== t.$imageEl.length) {
if (!a.isTouched || !a.isMoved) return a.isTouched = !1, void(a.isMoved = !1);
a.isTouched = !1, a.isMoved = !1;
var s = 300,
r = 300,
n = i.x * s,
l = a.currentX + n,
o = i.y * r,
d = a.currentY + o;
0 !== i.x && (s = Math.abs((l - a.currentX) / i.x)), 0 !== i.y && (r = Math.abs((d - a.currentY) / i.y));
var p = Math.max(s, r);
a.currentX = l, a.currentY = d;
var u = a.width * e.scale,
c = a.height * e.scale;
a.minX = Math.min(t.slideWidth / 2 - u / 2, 0), a.maxX = -a.minX, a.minY = Math.min(t.slideHeight / 2 - c / 2, 0), a.maxY = -a.minY, a.currentX = Math.max(Math.min(a.currentX, a.maxX), a.minX), a.currentY = Math.max(Math.min(a.currentY, a.maxY), a.minY), t.$imageWrapEl.transition(p).transform("translate3d(" + a.currentX + "px, " + a.currentY + "px,0)")
}
},
onTransitionEnd: function () {
var e = this,
t = e.zoom,
a = t.gesture;
a.$slideEl && e.previousIndex !== e.activeIndex && (a.$imageEl && a.$imageEl.transform("translate3d(0,0,0) scale(1)"), a.$imageWrapEl && a.$imageWrapEl.transform("translate3d(0,0,0)"), t.scale = 1, t.currentScale = 1, a.$slideEl = void 0, a.$imageEl = void 0, a.$imageWrapEl = void 0)
},
toggle: function (e) {
var t = this.zoom;
t.scale && 1 !== t.scale ? t.out() : t.in(e)
},
in: function (e) {
var t, a, i, s, r, n, o, d, p, u, c, h, v, f, g, b, w = this,
y = l(),
E = w.zoom,
x = w.params.zoom,
T = E.gesture,
C = E.image;
(T.$slideEl || (e && e.target && (T.$slideEl = m(e.target).closest("." + w.params.slideClass)), T.$slideEl || (w.params.virtual && w.params.virtual.enabled && w.virtual ? T.$slideEl = w.$wrapperEl.children("." + w.params.slideActiveClass) : T.$slideEl = w.slides.eq(w.activeIndex)), T.$imageEl = T.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"), T.$imageWrapEl = T.$imageEl.parent("." + x.containerClass)), T.$imageEl && 0 !== T.$imageEl.length && T.$imageWrapEl && 0 !== T.$imageWrapEl.length) && (T.$slideEl.addClass("" + x.zoomedSlideClass), void 0 === C.touchesStart.x && e ? (t = "touchend" === e.type ? e.changedTouches[0].pageX : e.pageX, a = "touchend" === e.type ? e.changedTouches[0].pageY : e.pageY) : (t = C.touchesStart.x, a = C.touchesStart.y), E.scale = T.$imageWrapEl.attr("data-swiper-zoom") || x.maxRatio, E.currentScale = T.$imageWrapEl.attr("data-swiper-zoom") || x.maxRatio, e ? (g = T.$slideEl[0].offsetWidth, b = T.$slideEl[0].offsetHeight, i = T.$slideEl.offset().left + y.scrollX + g / 2 - t, s = T.$slideEl.offset().top + y.scrollY + b / 2 - a, o = T.$imageEl[0].offsetWidth, d = T.$imageEl[0].offsetHeight, p = o * E.scale, u = d * E.scale, v = -(c = Math.min(g / 2 - p / 2, 0)), f = -(h = Math.min(b / 2 - u / 2, 0)), (r = i * E.scale) < c && (r = c), r > v && (r = v), (n = s * E.scale) < h && (n = h), n > f && (n = f)) : (r = 0, n = 0), T.$imageWrapEl.transition(300).transform("translate3d(" + r + "px, " + n + "px,0)"), T.$imageEl.transition(300).transform("translate3d(0,0,0) scale(" + E.scale + ")"))
},
out: function () {
var e = this,
t = e.zoom,
a = e.params.zoom,
i = t.gesture;
i.$slideEl || (e.params.virtual && e.params.virtual.enabled && e.virtual ? i.$slideEl = e.$wrapperEl.children("." + e.params.slideActiveClass) : i.$slideEl = e.slides.eq(e.activeIndex), i.$imageEl = i.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"), i.$imageWrapEl = i.$imageEl.parent("." + a.containerClass)), i.$imageEl && 0 !== i.$imageEl.length && i.$imageWrapEl && 0 !== i.$imageWrapEl.length && (t.scale = 1, t.currentScale = 1, i.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"), i.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"), i.$slideEl.removeClass("" + a.zoomedSlideClass), i.$slideEl = void 0)
},
toggleGestures: function (e) {
var t = this,
a = t.zoom,
i = a.slideSelector,
s = a.passiveListener;
t.$wrapperEl[e]("gesturestart", i, a.onGestureStart, s), t.$wrapperEl[e]("gesturechange", i, a.onGestureChange, s), t.$wrapperEl[e]("gestureend", i, a.onGestureEnd, s)
},
enableGestures: function () {
this.zoom.gesturesEnabled || (this.zoom.gesturesEnabled = !0, this.zoom.toggleGestures("on"))
},
disableGestures: function () {
this.zoom.gesturesEnabled && (this.zoom.gesturesEnabled = !1, this.zoom.toggleGestures("off"))
},
enable: function () {
var e = this,
t = e.support,
a = e.zoom;
if (!a.enabled) {
a.enabled = !0;
var i = !("touchstart" !== e.touchEvents.start || !t.passiveListener || !e.params.passiveListeners) && {
passive: !0,
capture: !1
},
s = !t.passiveListener || {
passive: !1,
capture: !0
},
r = "." + e.params.slideClass;
e.zoom.passiveListener = i, e.zoom.slideSelector = r, t.gestures ? (e.$wrapperEl.on(e.touchEvents.start, e.zoom.enableGestures, i), e.$wrapperEl.on(e.touchEvents.end, e.zoom.disableGestures, i)) : "touchstart" === e.touchEvents.start && (e.$wrapperEl.on(e.touchEvents.start, r, a.onGestureStart, i), e.$wrapperEl.on(e.touchEvents.move, r, a.onGestureChange, s), e.$wrapperEl.on(e.touchEvents.end, r, a.onGestureEnd, i), e.touchEvents.cancel && e.$wrapperEl.on(e.touchEvents.cancel, r, a.onGestureEnd, i)), e.$wrapperEl.on(e.touchEvents.move, "." + e.params.zoom.containerClass, a.onTouchMove, s)
}
},
disable: function () {
var e = this,
t = e.zoom;
if (t.enabled) {
var a = e.support;
e.zoom.enabled = !1;
var i = !("touchstart" !== e.touchEvents.start || !a.passiveListener || !e.params.passiveListeners) && {
passive: !0,
capture: !1
},
s = !a.passiveListener || {
passive: !1,
capture: !0
},
r = "." + e.params.slideClass;
a.gestures ? (e.$wrapperEl.off(e.touchEvents.start, e.zoom.enableGestures, i), e.$wrapperEl.off(e.touchEvents.end, e.zoom.disableGestures, i)) : "touchstart" === e.touchEvents.start && (e.$wrapperEl.off(e.touchEvents.start, r, t.onGestureStart, i), e.$wrapperEl.off(e.touchEvents.move, r, t.onGestureChange, s), e.$wrapperEl.off(e.touchEvents.end, r, t.onGestureEnd, i), e.touchEvents.cancel && e.$wrapperEl.off(e.touchEvents.cancel, r, t.onGestureEnd, i)), e.$wrapperEl.off(e.touchEvents.move, "." + e.params.zoom.containerClass, t.onTouchMove, s)
}
}
},
se = {
loadInSlide: function (e, t) {
void 0 === t && (t = !0);
var a = this,
i = a.params.lazy;
if (void 0 !== e && 0 !== a.slides.length) {
var s = a.virtual && a.params.virtual.enabled ? a.$wrapperEl.children("." + a.params.slideClass + '[data-swiper-slide-index="' + e + '"]') : a.slides.eq(e),
r = s.find("." + i.elementClass + ":not(." + i.loadedClass + "):not(." + i.loadingClass + ")");
!s.hasClass(i.elementClass) || s.hasClass(i.loadedClass) || s.hasClass(i.loadingClass) || r.push(s[0]), 0 !== r.length && r.each((function (e) {
var r = m(e);
r.addClass(i.loadingClass);
var n = r.attr("data-background"),
l = r.attr("data-src"),
o = r.attr("data-srcset"),
d = r.attr("data-sizes"),
p = r.parent("picture");
a.loadImage(r[0], l || n, o, d, !1, (function () {
if (null != a && a && (!a || a.params) && !a.destroyed) {
if (n ? (r.css("background-image", 'url("' + n + '")'), r.removeAttr("data-background")) : (o && (r.attr("srcset", o), r.removeAttr("data-srcset")), d && (r.attr("sizes", d), r.removeAttr("data-sizes")), p.length && p.children("source").each((function (e) {
var t = m(e);
t.attr("data-srcset") && (t.attr("srcset", t.attr("data-srcset")), t.removeAttr("data-srcset"))
})), l && (r.attr("src", l), r.removeAttr("data-src"))), r.addClass(i.loadedClass).removeClass(i.loadingClass), s.find("." + i.preloaderClass).remove(), a.params.loop && t) {
var e = s.attr("data-swiper-slide-index");
if (s.hasClass(a.params.slideDuplicateClass)) {
var u = a.$wrapperEl.children('[data-swiper-slide-index="' + e + '"]:not(.' + a.params.slideDuplicateClass + ")");
a.lazy.loadInSlide(u.index(), !1)
} else {
var c = a.$wrapperEl.children("." + a.params.slideDuplicateClass + '[data-swiper-slide-index="' + e + '"]');
a.lazy.loadInSlide(c.index(), !1)
}
}
a.emit("lazyImageReady", s[0], r[0]), a.params.autoHeight && a.updateAutoHeight()
}
})), a.emit("lazyImageLoad", s[0], r[0])
}))
}
},
load: function () {
var e = this,
t = e.$wrapperEl,
a = e.params,
i = e.slides,
s = e.activeIndex,
r = e.virtual && a.virtual.enabled,
n = a.lazy,
l = a.slidesPerView;
function o(e) {
if (r) {
if (t.children("." + a.slideClass + '[data-swiper-slide-index="' + e + '"]').length) return !0
} else if (i[e]) return !0;
return !1
}
function d(e) {
return r ? m(e).attr("data-swiper-slide-index") : m(e).index()
}
if ("auto" === l && (l = 0), e.lazy.initialImageLoaded || (e.lazy.initialImageLoaded = !0), e.params.watchSlidesVisibility) t.children("." + a.slideVisibleClass).each((function (t) {
var a = r ? m(t).attr("data-swiper-slide-index") : m(t).index();
e.lazy.loadInSlide(a)
}));
else if (l > 1)
for (var p = s; p < s + l; p += 1) o(p) && e.lazy.loadInSlide(p);
else e.lazy.loadInSlide(s);
if (n.loadPrevNext)
if (l > 1 || n.loadPrevNextAmount && n.loadPrevNextAmount > 1) {
for (var u = n.loadPrevNextAmount, c = l, h = Math.min(s + c + Math.max(u, c), i.length), v = Math.max(s - Math.max(c, u), 0), f = s + l; f < h; f += 1) o(f) && e.lazy.loadInSlide(f);
for (var g = v; g < s; g += 1) o(g) && e.lazy.loadInSlide(g)
} else {
var b = t.children("." + a.slideNextClass);
b.length > 0 && e.lazy.loadInSlide(d(b));
var w = t.children("." + a.slidePrevClass);
w.length > 0 && e.lazy.loadInSlide(d(w))
}
},
checkInViewOnLoad: function () {
var e = l(),
t = this;
if (t && !t.destroyed) {
var a = t.params.lazy.scrollingElement ? m(t.params.lazy.scrollingElement) : m(e),
i = a[0] === e,
s = i ? e.innerWidth : a[0].offsetWidth,
r = i ? e.innerHeight : a[0].offsetHeight,
n = t.$el.offset(),
o = !1;
t.rtlTranslate && (n.left -= t.$el[0].scrollLeft);
for (var d = [
[n.left, n.top],
[n.left + t.width, n.top],
[n.left, n.top + t.height],
[n.left + t.width, n.top + t.height]
], p = 0; p < d.length; p += 1) {
var u = d[p];
if (u[0] >= 0 && u[0] <= s && u[1] >= 0 && u[1] <= r) {
if (0 === u[0] && 0 === u[1]) continue;
o = !0
}
}
var c = !("touchstart" !== t.touchEvents.start || !t.support.passiveListener || !t.params.passiveListeners) && {
passive: !0,
capture: !1
};
o ? (t.lazy.load(), a.off("scroll", t.lazy.checkInViewOnLoad, c)) : t.lazy.scrollHandlerAttached || (t.lazy.scrollHandlerAttached = !0, a.on("scroll", t.lazy.checkInViewOnLoad, c))
}
}
},
re = {
LinearSpline: function (e, t) {
var a, i, s, r, n, l = function (e, t) {
for (i = -1, a = e.length; a - i > 1;) e[s = a + i >> 1] <= t ? i = s : a = s;
return a
};
return this.x = e, this.y = t, this.lastIndex = e.length - 1, this.interpolate = function (e) {
return e ? (n = l(this.x, e), r = n - 1, (e - this.x[r]) * (this.y[n] - this.y[r]) / (this.x[n] - this.x[r]) + this.y[r]) : 0
}, this
},
getInterpolateFunction: function (e) {
var t = this;
t.controller.spline || (t.controller.spline = t.params.loop ? new re.LinearSpline(t.slidesGrid, e.slidesGrid) : new re.LinearSpline(t.snapGrid, e.snapGrid))
},
setTranslate: function (e, t) {
var a, i, s = this,
r = s.controller.control,
n = s.constructor;
function l(e) {
var t = s.rtlTranslate ? -s.translate : s.translate;
"slide" === s.params.controller.by && (s.controller.getInterpolateFunction(e), i = -s.controller.spline.interpolate(-t)), i && "container" !== s.params.controller.by || (a = (e.maxTranslate() - e.minTranslate()) / (s.maxTranslate() - s.minTranslate()), i = (t - s.minTranslate()) * a + e.minTranslate()), s.params.controller.inverse && (i = e.maxTranslate() - i), e.updateProgress(i), e.setTranslate(i, s), e.updateActiveIndex(), e.updateSlidesClasses()
}
if (Array.isArray(r))
for (var o = 0; o < r.length; o += 1) r[o] !== t && r[o] instanceof n && l(r[o]);
else r instanceof n && t !== r && l(r)
},
setTransition: function (e, t) {
var a, i = this,
s = i.constructor,
r = i.controller.control;
function n(t) {
t.setTransition(e, i), 0 !== e && (t.transitionStart(), t.params.autoHeight && E((function () {
t.updateAutoHeight()
})), t.$wrapperEl.transitionEnd((function () {
r && (t.params.loop && "slide" === i.params.controller.by && t.loopFix(), t.transitionEnd())
})))
}
if (Array.isArray(r))
for (a = 0; a < r.length; a += 1) r[a] !== t && r[a] instanceof s && n(r[a]);
else r instanceof s && t !== r && n(r)
}
},
ne = {
getRandomNumber: function (e) {
void 0 === e && (e = 16);
return "x".repeat(e).replace(/x/g, (function () {
return Math.round(16 * Math.random()).toString(16)
}))
},
makeElFocusable: function (e) {
return e.attr("tabIndex", "0"), e
},
makeElNotFocusable: function (e) {
return e.attr("tabIndex", "-1"), e
},
addElRole: function (e, t) {
return e.attr("role", t), e
},
addElRoleDescription: function (e, t) {
return e.attr("aria-roledescription", t), e
},
addElControls: function (e, t) {
return e.attr("aria-controls", t), e
},
addElLabel: function (e, t) {
return e.attr("aria-label", t), e
},
addElId: function (e, t) {
return e.attr("id", t), e
},
addElLive: function (e, t) {
return e.attr("aria-live", t), e
},
disableEl: function (e) {
return e.attr("aria-disabled", !0), e
},
enableEl: function (e) {
return e.attr("aria-disabled", !1), e
},
onEnterOrSpaceKey: function (e) {
if (13 === e.keyCode || 32 === e.keyCode) {
var t = this,
a = t.params.a11y,
i = m(e.target);
t.navigation && t.navigation.$nextEl && i.is(t.navigation.$nextEl) && (t.isEnd && !t.params.loop || t.slideNext(), t.isEnd ? t.a11y.notify(a.lastSlideMessage) : t.a11y.notify(a.nextSlideMessage)), t.navigation && t.navigation.$prevEl && i.is(t.navigation.$prevEl) && (t.isBeginning && !t.params.loop || t.slidePrev(), t.isBeginning ? t.a11y.notify(a.firstSlideMessage) : t.a11y.notify(a.prevSlideMessage)), t.pagination && i.is(P(t.params.pagination.bulletClass)) && i[0].click()
}
},
notify: function (e) {
var t = this.a11y.liveRegion;
0 !== t.length && (t.html(""), t.html(e))
},
updateNavigation: function () {
var e = this;
if (!e.params.loop && e.navigation) {
var t = e.navigation,
a = t.$nextEl,
i = t.$prevEl;
i && i.length > 0 && (e.isBeginning ? (e.a11y.disableEl(i), e.a11y.makeElNotFocusable(i)) : (e.a11y.enableEl(i), e.a11y.makeElFocusable(i))), a && a.length > 0 && (e.isEnd ? (e.a11y.disableEl(a), e.a11y.makeElNotFocusable(a)) : (e.a11y.enableEl(a), e.a11y.makeElFocusable(a)))
}
},
updatePagination: function () {
var e = this,
t = e.params.a11y;
e.pagination && e.params.pagination.clickable && e.pagination.bullets && e.pagination.bullets.length && e.pagination.bullets.each((function (a) {
var i = m(a);
e.a11y.makeElFocusable(i), e.params.pagination.renderBullet || (e.a11y.addElRole(i, "button"), e.a11y.addElLabel(i, t.paginationBulletMessage.replace(/\{\{index\}\}/, i.index() + 1)))
}))
},
init: function () {
var e = this,
t = e.params.a11y;
e.$el.append(e.a11y.liveRegion);
var a = e.$el;
t.containerRoleDescriptionMessage && e.a11y.addElRoleDescription(a, t.containerRoleDescriptionMessage), t.containerMessage && e.a11y.addElLabel(a, t.containerMessage);
var i = e.$wrapperEl,
s = i.attr("id") || "swiper-wrapper-" + e.a11y.getRandomNumber(16),
r = e.params.autoplay && e.params.autoplay.enabled ? "off" : "polite";
e.a11y.addElId(i, s), e.a11y.addElLive(i, r), t.itemRoleDescriptionMessage && e.a11y.addElRoleDescription(m(e.slides), t.itemRoleDescriptionMessage), e.a11y.addElRole(m(e.slides), t.slideRole);
var n, l, o = e.params.loop ? e.slides.filter((function (t) {
return !t.classList.contains(e.params.slideDuplicateClass)
})).length : e.slides.length;
e.slides.each((function (a, i) {
var s = m(a),
r = e.params.loop ? parseInt(s.attr("data-swiper-slide-index"), 10) : i,
n = t.slideLabelMessage.replace(/\{\{index\}\}/, r + 1).replace(/\{\{slidesLength\}\}/, o);
e.a11y.addElLabel(s, n)
})), e.navigation && e.navigation.$nextEl && (n = e.navigation.$nextEl), e.navigation && e.navigation.$prevEl && (l = e.navigation.$prevEl), n && n.length && (e.a11y.makeElFocusable(n), "BUTTON" !== n[0].tagName && (e.a11y.addElRole(n, "button"), n.on("keydown", e.a11y.onEnterOrSpaceKey)), e.a11y.addElLabel(n, t.nextSlideMessage), e.a11y.addElControls(n, s)), l && l.length && (e.a11y.makeElFocusable(l), "BUTTON" !== l[0].tagName && (e.a11y.addElRole(l, "button"), l.on("keydown", e.a11y.onEnterOrSpaceKey)), e.a11y.addElLabel(l, t.prevSlideMessage), e.a11y.addElControls(l, s)), e.pagination && e.params.pagination.clickable && e.pagination.bullets && e.pagination.bullets.length && e.pagination.$el.on("keydown", P(e.params.pagination.bulletClass), e.a11y.onEnterOrSpaceKey)
},
destroy: function () {
var e, t, a = this;
a.a11y.liveRegion && a.a11y.liveRegion.length > 0 && a.a11y.liveRegion.remove(), a.navigation && a.navigation.$nextEl && (e = a.navigation.$nextEl), a.navigation && a.navigation.$prevEl && (t = a.navigation.$prevEl), e && e.off("keydown", a.a11y.onEnterOrSpaceKey), t && t.off("keydown", a.a11y.onEnterOrSpaceKey), a.pagination && a.params.pagination.clickable && a.pagination.bullets && a.pagination.bullets.length && a.pagination.$el.off("keydown", P(a.params.pagination.bulletClass), a.a11y.onEnterOrSpaceKey)
}
},
le = {
init: function () {
var e = this,
t = l();
if (e.params.history) {
if (!t.history || !t.history.pushState) return e.params.history.enabled = !1, void(e.params.hashNavigation.enabled = !0);
var a = e.history;
a.initialized = !0, a.paths = le.getPathValues(e.params.url), (a.paths.key || a.paths.value) && (a.scrollToSlide(0, a.paths.value, e.params.runCallbacksOnInit), e.params.history.replaceState || t.addEventListener("popstate", e.history.setHistoryPopState))
}
},
destroy: function () {
var e = l();
this.params.history.replaceState || e.removeEventListener("popstate", this.history.setHistoryPopState)
},
setHistoryPopState: function () {
var e = this;
e.history.paths = le.getPathValues(e.params.url), e.history.scrollToSlide(e.params.speed, e.history.paths.value, !1)
},
getPathValues: function (e) {
var t = l(),
a = (e ? new URL(e) : t.location).pathname.slice(1).split("/").filter((function (e) {
return "" !== e
})),
i = a.length;
return {
key: a[i - 2],
value: a[i - 1]
}
},
setHistory: function (e, t) {
var a = this,
i = l();
if (a.history.initialized && a.params.history.enabled) {
var s;
s = a.params.url ? new URL(a.params.url) : i.location;
var r = a.slides.eq(t),
n = le.slugify(r.attr("data-history"));
if (a.params.history.root.length > 0) {
var o = a.params.history.root;
"/" === o[o.length - 1] && (o = o.slice(0, o.length - 1)), n = o + "/" + e + "/" + n
} else s.pathname.includes(e) || (n = e + "/" + n);
var d = i.history.state;
d && d.value === n || (a.params.history.replaceState ? i.history.replaceState({
value: n
}, null, n) : i.history.pushState({
value: n
}, null, n))
}
},
slugify: function (e) {
return e.toString().replace(/\s+/g, "-").replace(/[^\w-]+/g, "").replace(/--+/g, "-").replace(/^-+/, "").replace(/-+$/, "")
},
scrollToSlide: function (e, t, a) {
var i = this;
if (t)
for (var s = 0, r = i.slides.length; s < r; s += 1) {
var n = i.slides.eq(s);
if (le.slugify(n.attr("data-history")) === t && !n.hasClass(i.params.slideDuplicateClass)) {
var l = n.index();
i.slideTo(l, e, a)
}
} else i.slideTo(0, e, a)
}
},
oe = {
onHashChange: function () {
var e = this,
t = r();
e.emit("hashChange");
var a = t.location.hash.replace("#", "");
if (a !== e.slides.eq(e.activeIndex).attr("data-hash")) {
var i = e.$wrapperEl.children("." + e.params.slideClass + '[data-hash="' + a + '"]').index();
if (void 0 === i) return;
e.slideTo(i)
}
},
setHash: function () {
var e = this,
t = l(),
a = r();
if (e.hashNavigation.initialized && e.params.hashNavigation.enabled)
if (e.params.hashNavigation.replaceState && t.history && t.history.replaceState) t.history.replaceState(null, null, "#" + e.slides.eq(e.activeIndex).attr("data-hash") || ""), e.emit("hashSet");
else {
var i = e.slides.eq(e.activeIndex),
s = i.attr("data-hash") || i.attr("data-history");
a.location.hash = s || "", e.emit("hashSet")
}
},
init: function () {
var e = this,
t = r(),
a = l();
if (!(!e.params.hashNavigation.enabled || e.params.history && e.params.history.enabled)) {
e.hashNavigation.initialized = !0;
var i = t.location.hash.replace("#", "");
if (i)
for (var s = 0, n = e.slides.length; s < n; s += 1) {
var o = e.slides.eq(s);
if ((o.attr("data-hash") || o.attr("data-history")) === i && !o.hasClass(e.params.slideDuplicateClass)) {
var d = o.index();
e.slideTo(d, 0, e.params.runCallbacksOnInit, !0)
}
}
e.params.hashNavigation.watchState && m(a).on("hashchange", e.hashNavigation.onHashChange)
}
},
destroy: function () {
var e = l();
this.params.hashNavigation.watchState && m(e).off("hashchange", this.hashNavigation.onHashChange)
}
},
de = {
run: function () {
var e = this,
t = e.slides.eq(e.activeIndex),
a = e.params.autoplay.delay;
t.attr("data-swiper-autoplay") && (a = t.attr("data-swiper-autoplay") || e.params.autoplay.delay), clearTimeout(e.autoplay.timeout), e.autoplay.timeout = E((function () {
var t;
e.params.autoplay.reverseDirection ? e.params.loop ? (e.loopFix(), t = e.slidePrev(e.params.speed, !0, !0), e.emit("autoplay")) : e.isBeginning ? e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (t = e.slideTo(e.slides.length - 1, e.params.speed, !0, !0), e.emit("autoplay")) : (t = e.slidePrev(e.params.speed, !0, !0), e.emit("autoplay")) : e.params.loop ? (e.loopFix(), t = e.slideNext(e.params.speed, !0, !0), e.emit("autoplay")) : e.isEnd ? e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (t = e.slideTo(0, e.params.speed, !0, !0), e.emit("autoplay")) : (t = e.slideNext(e.params.speed, !0, !0), e.emit("autoplay")), (e.params.cssMode && e.autoplay.running || !1 === t) && e.autoplay.run()
}), a)
},
start: function () {
var e = this;
return void 0 === e.autoplay.timeout && (!e.autoplay.running && (e.autoplay.running = !0, e.emit("autoplayStart"), e.autoplay.run(), !0))
},
stop: function () {
var e = this;
return !!e.autoplay.running && (void 0 !== e.autoplay.timeout && (e.autoplay.timeout && (clearTimeout(e.autoplay.timeout), e.autoplay.timeout = void 0), e.autoplay.running = !1, e.emit("autoplayStop"), !0))
},
pause: function (e) {
var t = this;
t.autoplay.running && (t.autoplay.paused || (t.autoplay.timeout && clearTimeout(t.autoplay.timeout), t.autoplay.paused = !0, 0 !== e && t.params.autoplay.waitForTransition ? ["transitionend", "webkitTransitionEnd"].forEach((function (e) {
t.$wrapperEl[0].addEventListener(e, t.autoplay.onTransitionEnd)
})) : (t.autoplay.paused = !1, t.autoplay.run())))
},
onVisibilityChange: function () {
var e = this,
t = r();
"hidden" === t.visibilityState && e.autoplay.running && e.autoplay.pause(), "visible" === t.visibilityState && e.autoplay.paused && (e.autoplay.run(), e.autoplay.paused = !1)
},
onTransitionEnd: function (e) {
var t = this;
t && !t.destroyed && t.$wrapperEl && e.target === t.$wrapperEl[0] && (["transitionend", "webkitTransitionEnd"].forEach((function (e) {
t.$wrapperEl[0].removeEventListener(e, t.autoplay.onTransitionEnd)
})), t.autoplay.paused = !1, t.autoplay.running ? t.autoplay.run() : t.autoplay.stop())
},
onMouseEnter: function () {
var e = this;
e.params.autoplay.disableOnInteraction ? e.autoplay.stop() : e.autoplay.pause(), ["transitionend", "webkitTransitionEnd"].forEach((function (t) {
e.$wrapperEl[0].removeEventListener(t, e.autoplay.onTransitionEnd)
}))
},
onMouseLeave: function () {
var e = this;
e.params.autoplay.disableOnInteraction || (e.autoplay.paused = !1, e.autoplay.run())
},
attachMouseEvents: function () {
var e = this;
e.params.autoplay.pauseOnMouseEnter && (e.$el.on("mouseenter", e.autoplay.onMouseEnter), e.$el.on("mouseleave", e.autoplay.onMouseLeave))
},
detachMouseEvents: function () {
var e = this;
e.$el.off("mouseenter", e.autoplay.onMouseEnter), e.$el.off("mouseleave", e.autoplay.onMouseLeave)
}
},
pe = {
setTranslate: function () {
for (var e = this, t = e.slides, a = 0; a < t.length; a += 1) {
var i = e.slides.eq(a),
s = -i[0].swiperSlideOffset;
e.params.virtualTranslate || (s -= e.translate);
var r = 0;
e.isHorizontal() || (r = s, s = 0);
var n = e.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(i[0].progress), 0) : 1 + Math.min(Math.max(i[0].progress, -1), 0);
i.css({
opacity: n
}).transform("translate3d(" + s + "px, " + r + "px, 0px)")
}
},
setTransition: function (e) {
var t = this,
a = t.slides,
i = t.$wrapperEl;
if (a.transition(e), t.params.virtualTranslate && 0 !== e) {
var s = !1;
a.transitionEnd((function () {
if (!s && t && !t.destroyed) {
s = !0, t.animating = !1;
for (var e = ["webkitTransitionEnd", "transitionend"], a = 0; a < e.length; a += 1) i.trigger(e[a])
}
}))
}
}
},
ue = {
setTranslate: function () {
var e, t = this,
a = t.$el,
i = t.$wrapperEl,
s = t.slides,
r = t.width,
n = t.height,
l = t.rtlTranslate,
o = t.size,
d = t.browser,
p = t.params.cubeEffect,
u = t.isHorizontal(),
c = t.virtual && t.params.virtual.enabled,
h = 0;
p.shadow && (u ? (0 === (e = i.find(".swiper-cube-shadow")).length && (e = m('
'), i.append(e)), e.css({
height: r + "px"
})) : 0 === (e = a.find(".swiper-cube-shadow")).length && (e = m('
'), a.append(e)));
for (var v = 0; v < s.length; v += 1) {
var f = s.eq(v),
g = v;
c && (g = parseInt(f.attr("data-swiper-slide-index"), 10));
var b = 90 * g,
w = Math.floor(b / 360);
l && (b = -b, w = Math.floor(-b / 360));
var y = Math.max(Math.min(f[0].progress, 1), -1),
E = 0,
x = 0,
T = 0;
g % 4 == 0 ? (E = 4 * -w * o, T = 0) : (g - 1) % 4 == 0 ? (E = 0, T = 4 * -w * o) : (g - 2) % 4 == 0 ? (E = o + 4 * w * o, T = o) : (g - 3) % 4 == 0 && (E = -o, T = 3 * o + 4 * o * w), l && (E = -E), u || (x = E, E = 0);
var C = "rotateX(" + (u ? 0 : -b) + "deg) rotateY(" + (u ? b : 0) + "deg) translate3d(" + E + "px, " + x + "px, " + T + "px)";
if (y <= 1 && y > -1 && (h = 90 * g + 90 * y, l && (h = 90 * -g - 90 * y)), f.transform(C), p.slideShadows) {
var S = u ? f.find(".swiper-slide-shadow-left") : f.find(".swiper-slide-shadow-top"),
M = u ? f.find(".swiper-slide-shadow-right") : f.find(".swiper-slide-shadow-bottom");
0 === S.length && (S = m('
'), f.append(S)), 0 === M.length && (M = m('
'), f.append(M)), S.length && (S[0].style.opacity = Math.max(-y, 0)), M.length && (M[0].style.opacity = Math.max(y, 0))
}
}
if (i.css({
"-webkit-transform-origin": "50% 50% -" + o / 2 + "px",
"-moz-transform-origin": "50% 50% -" + o / 2 + "px",
"-ms-transform-origin": "50% 50% -" + o / 2 + "px",
"transform-origin": "50% 50% -" + o / 2 + "px"
}), p.shadow)
if (u) e.transform("translate3d(0px, " + (r / 2 + p.shadowOffset) + "px, " + -r / 2 + "px) rotateX(90deg) rotateZ(0deg) scale(" + p.shadowScale + ")");
else {
var z = Math.abs(h) - 90 * Math.floor(Math.abs(h) / 90),
P = 1.5 - (Math.sin(2 * z * Math.PI / 360) / 2 + Math.cos(2 * z * Math.PI / 360) / 2),
k = p.shadowScale,
$ = p.shadowScale / P,
L = p.shadowOffset;
e.transform("scale3d(" + k + ", 1, " + $ + ") translate3d(0px, " + (n / 2 + L) + "px, " + -n / 2 / $ + "px) rotateX(-90deg)")
} var I = d.isSafari || d.isWebView ? -o / 2 : 0;
i.transform("translate3d(0px,0," + I + "px) rotateX(" + (t.isHorizontal() ? 0 : h) + "deg) rotateY(" + (t.isHorizontal() ? -h : 0) + "deg)")
},
setTransition: function (e) {
var t = this,
a = t.$el;
t.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e), t.params.cubeEffect.shadow && !t.isHorizontal() && a.find(".swiper-cube-shadow").transition(e)
}
},
ce = {
setTranslate: function () {
for (var e = this, t = e.slides, a = e.rtlTranslate, i = 0; i < t.length; i += 1) {
var s = t.eq(i),
r = s[0].progress;
e.params.flipEffect.limitRotation && (r = Math.max(Math.min(s[0].progress, 1), -1));
var n = -180 * r,
l = 0,
o = -s[0].swiperSlideOffset,
d = 0;
if (e.isHorizontal() ? a && (n = -n) : (d = o, o = 0, l = -n, n = 0), s[0].style.zIndex = -Math.abs(Math.round(r)) + t.length, e.params.flipEffect.slideShadows) {
var p = e.isHorizontal() ? s.find(".swiper-slide-shadow-left") : s.find(".swiper-slide-shadow-top"),
u = e.isHorizontal() ? s.find(".swiper-slide-shadow-right") : s.find(".swiper-slide-shadow-bottom");
0 === p.length && (p = m('
'), s.append(p)), 0 === u.length && (u = m('
'), s.append(u)), p.length && (p[0].style.opacity = Math.max(-r, 0)), u.length && (u[0].style.opacity = Math.max(r, 0))
}
s.transform("translate3d(" + o + "px, " + d + "px, 0px) rotateX(" + l + "deg) rotateY(" + n + "deg)")
}
},
setTransition: function (e) {
var t = this,
a = t.slides,
i = t.activeIndex,
s = t.$wrapperEl;
if (a.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e), t.params.virtualTranslate && 0 !== e) {
var r = !1;
a.eq(i).transitionEnd((function () {
if (!r && t && !t.destroyed) {
r = !0, t.animating = !1;
for (var e = ["webkitTransitionEnd", "transitionend"], a = 0; a < e.length; a += 1) s.trigger(e[a])
}
}))
}
}
},
he = {
setTranslate: function () {
for (var e = this, t = e.width, a = e.height, i = e.slides, s = e.slidesSizesGrid, r = e.params.coverflowEffect, n = e.isHorizontal(), l = e.translate, o = n ? t / 2 - l : a / 2 - l, d = n ? r.rotate : -r.rotate, p = r.depth, u = 0, c = i.length; u < c; u += 1) {
var h = i.eq(u),
v = s[u],
f = (o - h[0].swiperSlideOffset - v / 2) / v * r.modifier,
g = n ? d * f : 0,
b = n ? 0 : d * f,
w = -p * Math.abs(f),
y = r.stretch;
"string" == typeof y && -1 !== y.indexOf("%") && (y = parseFloat(r.stretch) / 100 * v);
var E = n ? 0 : y * f,
x = n ? y * f : 0,
T = 1 - (1 - r.scale) * Math.abs(f);
Math.abs(x) < .001 && (x = 0), Math.abs(E) < .001 && (E = 0), Math.abs(w) < .001 && (w = 0), Math.abs(g) < .001 && (g = 0), Math.abs(b) < .001 && (b = 0), Math.abs(T) < .001 && (T = 0);
var C = "translate3d(" + x + "px," + E + "px," + w + "px) rotateX(" + b + "deg) rotateY(" + g + "deg) scale(" + T + ")";
if (h.transform(C), h[0].style.zIndex = 1 - Math.abs(Math.round(f)), r.slideShadows) {
var S = n ? h.find(".swiper-slide-shadow-left") : h.find(".swiper-slide-shadow-top"),
M = n ? h.find(".swiper-slide-shadow-right") : h.find(".swiper-slide-shadow-bottom");
0 === S.length && (S = m('
'), h.append(S)), 0 === M.length && (M = m('
'), h.append(M)), S.length && (S[0].style.opacity = f > 0 ? f : 0), M.length && (M[0].style.opacity = -f > 0 ? -f : 0)
}
}
},
setTransition: function (e) {
this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)
}
},
ve = {
init: function () {
var e = this,
t = e.params.thumbs;
if (e.thumbs.initialized) return !1;
e.thumbs.initialized = !0;
var a = e.constructor;
return t.swiper instanceof a ? (e.thumbs.swiper = t.swiper, M(e.thumbs.swiper.originalParams, {
watchSlidesProgress: !0,
slideToClickedSlide: !1
}), M(e.thumbs.swiper.params, {
watchSlidesProgress: !0,
slideToClickedSlide: !1
})) : C(t.swiper) && (e.thumbs.swiper = new a(M({}, t.swiper, {
watchSlidesVisibility: !0,
watchSlidesProgress: !0,
slideToClickedSlide: !1
})), e.thumbs.swiperCreated = !0), e.thumbs.swiper.$el.addClass(e.params.thumbs.thumbsContainerClass), e.thumbs.swiper.on("tap", e.thumbs.onThumbClick), !0
},
onThumbClick: function () {
var e = this,
t = e.thumbs.swiper;
if (t) {
var a = t.clickedIndex,
i = t.clickedSlide;
if (!(i && m(i).hasClass(e.params.thumbs.slideThumbActiveClass) || null == a)) {
var s;
if (s = t.params.loop ? parseInt(m(t.clickedSlide).attr("data-swiper-slide-index"), 10) : a, e.params.loop) {
var r = e.activeIndex;
e.slides.eq(r).hasClass(e.params.slideDuplicateClass) && (e.loopFix(), e._clientLeft = e.$wrapperEl[0].clientLeft, r = e.activeIndex);
var n = e.slides.eq(r).prevAll('[data-swiper-slide-index="' + s + '"]').eq(0).index(),
l = e.slides.eq(r).nextAll('[data-swiper-slide-index="' + s + '"]').eq(0).index();
s = void 0 === n ? l : void 0 === l ? n : l - r < r - n ? l : n
}
e.slideTo(s)
}
}
},
update: function (e) {
var t = this,
a = t.thumbs.swiper;
if (a) {
var i = "auto" === a.params.slidesPerView ? a.slidesPerViewDynamic() : a.params.slidesPerView,
s = t.params.thumbs.autoScrollOffset,
r = s && !a.params.loop;
if (t.realIndex !== a.realIndex || r) {
var n, l, o = a.activeIndex;
if (a.params.loop) {
a.slides.eq(o).hasClass(a.params.slideDuplicateClass) && (a.loopFix(), a._clientLeft = a.$wrapperEl[0].clientLeft, o = a.activeIndex);
var d = a.slides.eq(o).prevAll('[data-swiper-slide-index="' + t.realIndex + '"]').eq(0).index(),
p = a.slides.eq(o).nextAll('[data-swiper-slide-index="' + t.realIndex + '"]').eq(0).index();
n = void 0 === d ? p : void 0 === p ? d : p - o == o - d ? a.params.slidesPerGroup > 1 ? p : o : p - o < o - d ? p : d, l = t.activeIndex > t.previousIndex ? "next" : "prev"
} else l = (n = t.realIndex) > t.previousIndex ? "next" : "prev";
r && (n += "next" === l ? s : -1 * s), a.visibleSlidesIndexes && a.visibleSlidesIndexes.indexOf(n) < 0 && (a.params.centeredSlides ? n = n > o ? n - Math.floor(i / 2) + 1 : n + Math.floor(i / 2) - 1 : n > o && a.params.slidesPerGroup, a.slideTo(n, e ? 0 : void 0))
}
var u = 1,
c = t.params.thumbs.slideThumbActiveClass;
if (t.params.slidesPerView > 1 && !t.params.centeredSlides && (u = t.params.slidesPerView), t.params.thumbs.multipleActiveThumbs || (u = 1), u = Math.floor(u), a.slides.removeClass(c), a.params.loop || a.params.virtual && a.params.virtual.enabled)
for (var h = 0; h < u; h += 1) a.$wrapperEl.children('[data-swiper-slide-index="' + (t.realIndex + h) + '"]').addClass(c);
else
for (var v = 0; v < u; v += 1) a.slides.eq(t.realIndex + v).addClass(c)
}
}
},
fe = [U, Z, {
name: "mousewheel",
params: {
mousewheel: {
enabled: !1,
releaseOnEdges: !1,
invert: !1,
forceToAxis: !1,
sensitivity: 1,
eventsTarget: "container",
thresholdDelta: null,
thresholdTime: null
}
},
create: function () {
z(this, {
mousewheel: {
enabled: !1,
lastScrollTime: x(),
lastEventBeforeSnap: void 0,
recentWheelEvents: [],
enable: J.enable,
disable: J.disable,
handle: J.handle,
handleMouseEnter: J.handleMouseEnter,
handleMouseLeave: J.handleMouseLeave,
animateSlider: J.animateSlider,
releaseScroll: J.releaseScroll
}
})
},
on: {
init: function (e) {
!e.params.mousewheel.enabled && e.params.cssMode && e.mousewheel.disable(), e.params.mousewheel.enabled && e.mousewheel.enable()
},
destroy: function (e) {
e.params.cssMode && e.mousewheel.enable(), e.mousewheel.enabled && e.mousewheel.disable()
}
}
}, {
name: "navigation",
params: {
navigation: {
nextEl: null,
prevEl: null,
hideOnClick: !1,
disabledClass: "swiper-button-disabled",
hiddenClass: "swiper-button-hidden",
lockClass: "swiper-button-lock"
}
},
create: function () {
z(this, {
navigation: t({}, Q)
})
},
on: {
init: function (e) {
e.navigation.init(), e.navigation.update()
},
toEdge: function (e) {
e.navigation.update()
},
fromEdge: function (e) {
e.navigation.update()
},
destroy: function (e) {
e.navigation.destroy()
},
"enable disable": function (e) {
var t = e.navigation,
a = t.$nextEl,
i = t.$prevEl;
a && a[e.enabled ? "removeClass" : "addClass"](e.params.navigation.lockClass), i && i[e.enabled ? "removeClass" : "addClass"](e.params.navigation.lockClass)
},
click: function (e, t) {
var a = e.navigation,
i = a.$nextEl,
s = a.$prevEl,
r = t.target;
if (e.params.navigation.hideOnClick && !m(r).is(s) && !m(r).is(i)) {
if (e.pagination && e.params.pagination && e.params.pagination.clickable && (e.pagination.el === r || e.pagination.el.contains(r))) return;
var n;
i ? n = i.hasClass(e.params.navigation.hiddenClass) : s && (n = s.hasClass(e.params.navigation.hiddenClass)), !0 === n ? e.emit("navigationShow") : e.emit("navigationHide"), i && i.toggleClass(e.params.navigation.hiddenClass), s && s.toggleClass(e.params.navigation.hiddenClass)
}
}
}
}, {
name: "pagination",
params: {
pagination: {
el: null,
bulletElement: "span",
clickable: !1,
hideOnClick: !1,
renderBullet: null,
renderProgressbar: null,
renderFraction: null,
renderCustom: null,
progressbarOpposite: !1,
type: "bullets",
dynamicBullets: !1,
dynamicMainBullets: 1,
formatFractionCurrent: function (e) {
return e
},
formatFractionTotal: function (e) {
return e
},
bulletClass: "swiper-pagination-bullet",
bulletActiveClass: "swiper-pagination-bullet-active",
modifierClass: "swiper-pagination-",
currentClass: "swiper-pagination-current",
totalClass: "swiper-pagination-total",
hiddenClass: "swiper-pagination-hidden",
progressbarFillClass: "swiper-pagination-progressbar-fill",
progressbarOppositeClass: "swiper-pagination-progressbar-opposite",
clickableClass: "swiper-pagination-clickable",
lockClass: "swiper-pagination-lock"
}
},
create: function () {
z(this, {
pagination: t({
dynamicBulletIndex: 0
}, ee)
})
},
on: {
init: function (e) {
e.pagination.init(), e.pagination.render(), e.pagination.update()
},
activeIndexChange: function (e) {
(e.params.loop || void 0 === e.snapIndex) && e.pagination.update()
},
snapIndexChange: function (e) {
e.params.loop || e.pagination.update()
},
slidesLengthChange: function (e) {
e.params.loop && (e.pagination.render(), e.pagination.update())
},
snapGridLengthChange: function (e) {
e.params.loop || (e.pagination.render(), e.pagination.update())
},
destroy: function (e) {
e.pagination.destroy()
},
"enable disable": function (e) {
var t = e.pagination.$el;
t && t[e.enabled ? "removeClass" : "addClass"](e.params.pagination.lockClass)
},
click: function (e, t) {
var a = t.target;
if (e.params.pagination.el && e.params.pagination.hideOnClick && e.pagination.$el.length > 0 && !m(a).hasClass(e.params.pagination.bulletClass)) {
if (e.navigation && (e.navigation.nextEl && a === e.navigation.nextEl || e.navigation.prevEl && a === e.navigation.prevEl)) return;
!0 === e.pagination.$el.hasClass(e.params.pagination.hiddenClass) ? e.emit("paginationShow") : e.emit("paginationHide"), e.pagination.$el.toggleClass(e.params.pagination.hiddenClass)
}
}
}
}, {
name: "scrollbar",
params: {
scrollbar: {
el: null,
dragSize: "auto",
hide: !1,
draggable: !1,
snapOnRelease: !0,
lockClass: "swiper-scrollbar-lock",
dragClass: "swiper-scrollbar-drag"
}
},
create: function () {
z(this, {
scrollbar: t({
isTouched: !1,
timeout: null,
dragTimeout: null
}, te)
})
},
on: {
init: function (e) {
e.scrollbar.init(), e.scrollbar.updateSize(), e.scrollbar.setTranslate()
},
update: function (e) {
e.scrollbar.updateSize()
},
resize: function (e) {
e.scrollbar.updateSize()
},
observerUpdate: function (e) {
e.scrollbar.updateSize()
},
setTranslate: function (e) {
e.scrollbar.setTranslate()
},
setTransition: function (e, t) {
e.scrollbar.setTransition(t)
},
"enable disable": function (e) {
var t = e.scrollbar.$el;
t && t[e.enabled ? "removeClass" : "addClass"](e.params.scrollbar.lockClass)
},
destroy: function (e) {
e.scrollbar.destroy()
}
}
}, {
name: "parallax",
params: {
parallax: {
enabled: !1
}
},
create: function () {
z(this, {
parallax: t({}, ae)
})
},
on: {
beforeInit: function (e) {
e.params.parallax.enabled && (e.params.watchSlidesProgress = !0, e.originalParams.watchSlidesProgress = !0)
},
init: function (e) {
e.params.parallax.enabled && e.parallax.setTranslate()
},
setTranslate: function (e) {
e.params.parallax.enabled && e.parallax.setTranslate()
},
setTransition: function (e, t) {
e.params.parallax.enabled && e.parallax.setTransition(t)
}
}
}, {
name: "zoom",
params: {
zoom: {
enabled: !1,
maxRatio: 3,
minRatio: 1,
toggle: !0,
containerClass: "swiper-zoom-container",
zoomedSlideClass: "swiper-slide-zoomed"
}
},
create: function () {
var e = this;
z(e, {
zoom: t({
enabled: !1,
scale: 1,
currentScale: 1,
isScaling: !1,
gesture: {
$slideEl: void 0,
slideWidth: void 0,
slideHeight: void 0,
$imageEl: void 0,
$imageWrapEl: void 0,
maxRatio: 3
},
image: {
isTouched: void 0,
isMoved: void 0,
currentX: void 0,
currentY: void 0,
minX: void 0,
minY: void 0,
maxX: void 0,
maxY: void 0,
width: void 0,
height: void 0,
startX: void 0,
startY: void 0,
touchesStart: {},
touchesCurrent: {}
},
velocity: {
x: void 0,
y: void 0,
prevPositionX: void 0,
prevPositionY: void 0,
prevTime: void 0
}
}, ie)
});
var a = 1;
Object.defineProperty(e.zoom, "scale", {
get: function () {
return a
},
set: function (t) {
if (a !== t) {
var i = e.zoom.gesture.$imageEl ? e.zoom.gesture.$imageEl[0] : void 0,
s = e.zoom.gesture.$slideEl ? e.zoom.gesture.$slideEl[0] : void 0;
e.emit("zoomChange", t, i, s)
}
a = t
}
})
},
on: {
init: function (e) {
e.params.zoom.enabled && e.zoom.enable()
},
destroy: function (e) {
e.zoom.disable()
},
touchStart: function (e, t) {
e.zoom.enabled && e.zoom.onTouchStart(t)
},
touchEnd: function (e, t) {
e.zoom.enabled && e.zoom.onTouchEnd(t)
},
doubleTap: function (e, t) {
!e.animating && e.params.zoom.enabled && e.zoom.enabled && e.params.zoom.toggle && e.zoom.toggle(t)
},
transitionEnd: function (e) {
e.zoom.enabled && e.params.zoom.enabled && e.zoom.onTransitionEnd()
},
slideChange: function (e) {
e.zoom.enabled && e.params.zoom.enabled && e.params.cssMode && e.zoom.onTransitionEnd()
}
}
}, {
name: "lazy",
params: {
lazy: {
checkInView: !1,
enabled: !1,
loadPrevNext: !1,
loadPrevNextAmount: 1,
loadOnTransitionStart: !1,
scrollingElement: "",
elementClass: "swiper-lazy",
loadingClass: "swiper-lazy-loading",
loadedClass: "swiper-lazy-loaded",
preloaderClass: "swiper-lazy-preloader"
}
},
create: function () {
z(this, {
lazy: t({
initialImageLoaded: !1
}, se)
})
},
on: {
beforeInit: function (e) {
e.params.lazy.enabled && e.params.preloadImages && (e.params.preloadImages = !1)
},
init: function (e) {
e.params.lazy.enabled && !e.params.loop && 0 === e.params.initialSlide && (e.params.lazy.checkInView ? e.lazy.checkInViewOnLoad() : e.lazy.load())
},
scroll: function (e) {
e.params.freeMode && !e.params.freeModeSticky && e.lazy.load()
},
"scrollbarDragMove resize _freeModeNoMomentumRelease": function (e) {
e.params.lazy.enabled && e.lazy.load()
},
transitionStart: function (e) {
e.params.lazy.enabled && (e.params.lazy.loadOnTransitionStart || !e.params.lazy.loadOnTransitionStart && !e.lazy.initialImageLoaded) && e.lazy.load()
},
transitionEnd: function (e) {
e.params.lazy.enabled && !e.params.lazy.loadOnTransitionStart && e.lazy.load()
},
slideChange: function (e) {
var t = e.params,
a = t.lazy,
i = t.cssMode,
s = t.watchSlidesVisibility,
r = t.watchSlidesProgress,
n = t.touchReleaseOnEdges,
l = t.resistanceRatio;
a.enabled && (i || (s || r) && (n || 0 === l)) && e.lazy.load()
}
}
}, {
name: "controller",
params: {
controller: {
control: void 0,
inverse: !1,
by: "slide"
}
},
create: function () {
z(this, {
controller: t({
control: this.params.controller.control
}, re)
})
},
on: {
update: function (e) {
e.controller.control && e.controller.spline && (e.controller.spline = void 0, delete e.controller.spline)
},
resize: function (e) {
e.controller.control && e.controller.spline && (e.controller.spline = void 0, delete e.controller.spline)
},
observerUpdate: function (e) {
e.controller.control && e.controller.spline && (e.controller.spline = void 0, delete e.controller.spline)
},
setTranslate: function (e, t, a) {
e.controller.control && e.controller.setTranslate(t, a)
},
setTransition: function (e, t, a) {
e.controller.control && e.controller.setTransition(t, a)
}
}
}, {
name: "a11y",
params: {
a11y: {
enabled: !0,
notificationClass: "swiper-notification",
prevSlideMessage: "Previous slide",
nextSlideMessage: "Next slide",
firstSlideMessage: "This is the first slide",
lastSlideMessage: "This is the last slide",
paginationBulletMessage: "Go to slide {{index}}",
slideLabelMessage: "{{index}} / {{slidesLength}}",
containerMessage: null,
containerRoleDescriptionMessage: null,
itemRoleDescriptionMessage: null,
slideRole: "group"
}
},
create: function () {
z(this, {
a11y: t({}, ne, {
liveRegion: m(' ')
})
})
},
on: {
afterInit: function (e) {
e.params.a11y.enabled && (e.a11y.init(), e.a11y.updateNavigation())
},
toEdge: function (e) {
e.params.a11y.enabled && e.a11y.updateNavigation()
},
fromEdge: function (e) {
e.params.a11y.enabled && e.a11y.updateNavigation()
},
paginationUpdate: function (e) {
e.params.a11y.enabled && e.a11y.updatePagination()
},
destroy: function (e) {
e.params.a11y.enabled && e.a11y.destroy()
}
}
}, {
name: "history",
params: {
history: {
enabled: !1,
root: "",
replaceState: !1,
key: "slides"
}
},
create: function () {
z(this, {
history: t({}, le)
})
},
on: {
init: function (e) {
e.params.history.enabled && e.history.init()
},
destroy: function (e) {
e.params.history.enabled && e.history.destroy()
},
"transitionEnd _freeModeNoMomentumRelease": function (e) {
e.history.initialized && e.history.setHistory(e.params.history.key, e.activeIndex)
},
slideChange: function (e) {
e.history.initialized && e.params.cssMode && e.history.setHistory(e.params.history.key, e.activeIndex)
}
}
}, {
name: "hash-navigation",
params: {
hashNavigation: {
enabled: !1,
replaceState: !1,
watchState: !1
}
},
create: function () {
z(this, {
hashNavigation: t({
initialized: !1
}, oe)
})
},
on: {
init: function (e) {
e.params.hashNavigation.enabled && e.hashNavigation.init()
},
destroy: function (e) {
e.params.hashNavigation.enabled && e.hashNavigation.destroy()
},
"transitionEnd _freeModeNoMomentumRelease": function (e) {
e.hashNavigation.initialized && e.hashNavigation.setHash()
},
slideChange: function (e) {
e.hashNavigation.initialized && e.params.cssMode && e.hashNavigation.setHash()
}
}
}, {
name: "autoplay",
params: {
autoplay: {
enabled: !1,
delay: 3e3,
waitForTransition: !0,
disableOnInteraction: !0,
stopOnLastSlide: !1,
reverseDirection: !1,
pauseOnMouseEnter: !1
}
},
create: function () {
z(this, {
autoplay: t({}, de, {
running: !1,
paused: !1
})
})
},
on: {
init: function (e) {
e.params.autoplay.enabled && (e.autoplay.start(), r().addEventListener("visibilitychange", e.autoplay.onVisibilityChange), e.autoplay.attachMouseEvents())
},
beforeTransitionStart: function (e, t, a) {
e.autoplay.running && (a || !e.params.autoplay.disableOnInteraction ? e.autoplay.pause(t) : e.autoplay.stop())
},
sliderFirstMove: function (e) {
e.autoplay.running && (e.params.autoplay.disableOnInteraction ? e.autoplay.stop() : e.autoplay.pause())
},
touchEnd: function (e) {
e.params.cssMode && e.autoplay.paused && !e.params.autoplay.disableOnInteraction && e.autoplay.run()
},
destroy: function (e) {
e.autoplay.detachMouseEvents(), e.autoplay.running && e.autoplay.stop(), r().removeEventListener("visibilitychange", e.autoplay.onVisibilityChange)
}
}
}, {
name: "effect-fade",
params: {
fadeEffect: {
crossFade: !1
}
},
create: function () {
z(this, {
fadeEffect: t({}, pe)
})
},
on: {
beforeInit: function (e) {
if ("fade" === e.params.effect) {
e.classNames.push(e.params.containerModifierClass + "fade");
var t = {
slidesPerView: 1,
slidesPerColumn: 1,
slidesPerGroup: 1,
watchSlidesProgress: !0,
spaceBetween: 0,
virtualTranslate: !0
};
M(e.params, t), M(e.originalParams, t)
}
},
setTranslate: function (e) {
"fade" === e.params.effect && e.fadeEffect.setTranslate()
},
setTransition: function (e, t) {
"fade" === e.params.effect && e.fadeEffect.setTransition(t)
}
}
}, {
name: "effect-cube",
params: {
cubeEffect: {
slideShadows: !0,
shadow: !0,
shadowOffset: 20,
shadowScale: .94
}
},
create: function () {
z(this, {
cubeEffect: t({}, ue)
})
},
on: {
beforeInit: function (e) {
if ("cube" === e.params.effect) {
e.classNames.push(e.params.containerModifierClass + "cube"), e.classNames.push(e.params.containerModifierClass + "3d");
var t = {
slidesPerView: 1,
slidesPerColumn: 1,
slidesPerGroup: 1,
watchSlidesProgress: !0,
resistanceRatio: 0,
spaceBetween: 0,
centeredSlides: !1,
virtualTranslate: !0
};
M(e.params, t), M(e.originalParams, t)
}
},
setTranslate: function (e) {
"cube" === e.params.effect && e.cubeEffect.setTranslate()
},
setTransition: function (e, t) {
"cube" === e.params.effect && e.cubeEffect.setTransition(t)
}
}
}, {
name: "effect-flip",
params: {
flipEffect: {
slideShadows: !0,
limitRotation: !0
}
},
create: function () {
z(this, {
flipEffect: t({}, ce)
})
},
on: {
beforeInit: function (e) {
if ("flip" === e.params.effect) {
e.classNames.push(e.params.containerModifierClass + "flip"), e.classNames.push(e.params.containerModifierClass + "3d");
var t = {
slidesPerView: 1,
slidesPerColumn: 1,
slidesPerGroup: 1,
watchSlidesProgress: !0,
spaceBetween: 0,
virtualTranslate: !0
};
M(e.params, t), M(e.originalParams, t)
}
},
setTranslate: function (e) {
"flip" === e.params.effect && e.flipEffect.setTranslate()
},
setTransition: function (e, t) {
"flip" === e.params.effect && e.flipEffect.setTransition(t)
}
}
}, {
name: "effect-coverflow",
params: {
coverflowEffect: {
rotate: 50,
stretch: 0,
depth: 100,
scale: 1,
modifier: 1,
slideShadows: !0
}
},
create: function () {
z(this, {
coverflowEffect: t({}, he)
})
},
on: {
beforeInit: function (e) {
"coverflow" === e.params.effect && (e.classNames.push(e.params.containerModifierClass + "coverflow"), e.classNames.push(e.params.containerModifierClass + "3d"), e.params.watchSlidesProgress = !0, e.originalParams.watchSlidesProgress = !0)
},
setTranslate: function (e) {
"coverflow" === e.params.effect && e.coverflowEffect.setTranslate()
},
setTransition: function (e, t) {
"coverflow" === e.params.effect && e.coverflowEffect.setTransition(t)
}
}
}, {
name: "thumbs",
params: {
thumbs: {
swiper: null,
multipleActiveThumbs: !0,
autoScrollOffset: 0,
slideThumbActiveClass: "swiper-slide-thumb-active",
thumbsContainerClass: "swiper-container-thumbs"
}
},
create: function () {
z(this, {
thumbs: t({
swiper: null,
initialized: !1
}, ve)
})
},
on: {
beforeInit: function (e) {
var t = e.params.thumbs;
t && t.swiper && (e.thumbs.init(), e.thumbs.update(!0))
},
slideChange: function (e) {
e.thumbs.swiper && e.thumbs.update()
},
update: function (e) {
e.thumbs.swiper && e.thumbs.update()
},
resize: function (e) {
e.thumbs.swiper && e.thumbs.update()
},
observerUpdate: function (e) {
e.thumbs.swiper && e.thumbs.update()
},
setTransition: function (e, t) {
var a = e.thumbs.swiper;
a && a.setTransition(t)
},
beforeDestroy: function (e) {
var t = e.thumbs.swiper;
t && e.thumbs.swiperCreated && t && t.destroy()
}
}
}];
return q.use(fe), q
}));
//# sourceMappingURL=swiper-bundle.min.js.map
/*
jQuery countTo
Plugin URI: https://github.com/mhuggins/jquery-countTo
License: MIT License (MIT)
*/
! function (t) {
var e = function (o, i) {
this.$element = t(o), this.options = t.extend({}, e.DEFAULTS, this.dataOptions(), i), this.init()
};
e.DEFAULTS = {
from: 0,
to: 0,
speed: 1e3,
refreshInterval: 100,
decimals: 0,
formatter: function (t, e) {
return t.toFixed(e.decimals)
},
onUpdate: null,
onComplete: null
}, e.prototype.init = function () {
this.value = this.options.from, this.loops = Math.ceil(this.options.speed / this.options.refreshInterval), this.loopCount = 0, this.increment = (this.options.to - this.options.from) / this.loops
}, e.prototype.dataOptions = function () {
var t = {
from: this.$element.data("from"),
to: this.$element.data("to"),
speed: this.$element.data("speed"),
refreshInterval: this.$element.data("refresh-interval"),
decimals: this.$element.data("decimals")
},
e = Object.keys(t);
for (var o in e) {
var i = e[o];
void 0 === t[i] && delete t[i]
}
return t
}, e.prototype.update = function () {
this.value += this.increment, this.loopCount++, this.render(), "function" == typeof this.options.onUpdate && this.options.onUpdate.call(this.$element, this.value), this.loopCount >= this.loops && (clearInterval(this.interval), this.value = this.options.to, "function" == typeof this.options.onComplete && this.options.onComplete.call(this.$element, this.value))
}, e.prototype.render = function () {
var t = this.options.formatter.call(this.$element, this.value, this.options);
this.$element.text(t)
}, e.prototype.restart = function () {
this.stop(), this.init(), this.start()
}, e.prototype.start = function () {
this.stop(), this.render(), this.interval = setInterval(this.update.bind(this), this.options.refreshInterval)
}, e.prototype.stop = function () {
this.interval && clearInterval(this.interval)
}, e.prototype.toggle = function () {
this.interval ? this.stop() : this.start()
}, t.fn.countTo = function (o) {
return this.each(function () {
var i = t(this),
s = i.data("countTo"),
n = "object" == typeof o ? o : {},
r = "string" == typeof o ? o : "start";
(!s || "object" == typeof o) && (s && s.stop(), i.data("countTo", s = new e(this, n))), s[r].call(s)
})
}
}(jQuery);
/*
jQuery appear
Version: 0.4
Plugin URI: https://github.com/morr/jquery.appear/
License: Copyright (c) 2012 Andrey Sidorov | Released under the MIT License
*/
! function (e) {
var r = [],
t = !1,
n = !1,
i = {
interval: 250,
force_process: !1
},
a = e(window),
o = [];
function p() {
n = !1;
for (var t = 0, i = r.length; t < i; t++) {
var a = (f = r[t], e(f).filter(function () {
return e(this).is(":appeared")
}));
if (a.trigger("appear", [a]), o[t]) {
var p = o[t].not(a);
p.trigger("disappear", [p])
}
o[t] = a
}
var f
}
e.expr.pseudos.appeared = e.expr.createPseudo(function (r) {
return function (r) {
var t = e(r);
if (!t.is(":visible")) return !1;
var n = a.scrollLeft(),
i = a.scrollTop(),
o = t.offset(),
p = o.left,
f = o.top;
return f + t.height() >= i && f - (t.data("appear-top-offset") || 0) <= i + a.height() && p + t.width() >= n && p - (t.data("appear-left-offset") || 0) <= n + a.width()
}
}), e.fn.extend({
appear: function (r, t) {
return e.appear(this, t), this
}
}), e.extend({
appear: function (a, f) {
var u = e.extend({}, i, f || {});
if (!t) {
var s = function () {
n || (n = !0, setTimeout(p, u.interval))
};
e(window).scroll(s).resize(s), t = !0
}
u.force_process && setTimeout(p, u.interval),
function (e) {
r.push(e), o.push()
}(a)
},
force_appear: function () {
return !!t && (p(), !0)
}
})
}("undefined" != typeof module ? require("jquery") : jQuery);
/*
Magnific popup
Version: 1.1.0 - 2016-02-20
Plugin URI: http://dimsemenov.com/plugins/magnific-popup/
License: Copyright (c) 2016 Dmitry Semenov;
*/
! function (a) {
"function" == typeof define && define.amd ? define(["jquery"], a) : a("object" == typeof exports ? require("jquery") : window.jQuery || window.Zepto)
}(function (a) {
var b, c, d, e, f, g, h = "Close",
i = "BeforeClose",
j = "AfterClose",
k = "BeforeAppend",
l = "MarkupParse",
m = "Open",
n = "Change",
o = "mfp",
p = "." + o,
q = "mfp-ready",
r = "mfp-removing",
s = "mfp-prevent-close",
t = function () {},
u = !!window.jQuery,
v = a(window),
w = function (a, c) {
b.ev.on(o + a + p, c)
},
x = function (b, c, d, e) {
var f = document.createElement("div");
return f.className = "mfp-" + b, d && (f.innerHTML = d), e ? c && c.appendChild(f) : (f = a(f), c && f.appendTo(c)), f
},
y = function (c, d) {
b.ev.triggerHandler(o + c, d), b.st.callbacks && (c = c.charAt(0).toLowerCase() + c.slice(1), b.st.callbacks[c] && b.st.callbacks[c].apply(b, a.isArray(d) ? d : [d]))
},
z = function (c) {
return c === g && b.currTemplate.closeBtn || (b.currTemplate.closeBtn = a(b.st.closeMarkup.replace("%title%", b.st.tClose)), g = c), b.currTemplate.closeBtn
},
A = function () {
a.magnificPopup.instance || (b = new t, b.init(), a.magnificPopup.instance = b)
},
B = function () {
var a = document.createElement("p").style,
b = ["ms", "O", "Moz", "Webkit"];
if (void 0 !== a.transition) return !0;
for (; b.length;)
if (b.pop() + "Transition" in a) return !0;
return !1
};
t.prototype = {
constructor: t,
init: function () {
var c = navigator.appVersion;
b.isLowIE = b.isIE8 = document.all && !document.addEventListener, b.isAndroid = /android/gi.test(c), b.isIOS = /iphone|ipad|ipod/gi.test(c), b.supportsTransition = B(), b.probablyMobile = b.isAndroid || b.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent), d = a(document), b.popupsCache = {}
},
open: function (c) {
var e;
if (c.isObj === !1) {
b.items = c.items.toArray(), b.index = 0;
var g, h = c.items;
for (e = 0; e < h.length; e++)
if (g = h[e], g.parsed && (g = g.el[0]), g === c.el[0]) {
b.index = e;
break
}
} else b.items = a.isArray(c.items) ? c.items : [c.items], b.index = c.index || 0;
if (b.isOpen) return void b.updateItemHTML();
b.types = [], f = "", c.mainEl && c.mainEl.length ? b.ev = c.mainEl.eq(0) : b.ev = d, c.key ? (b.popupsCache[c.key] || (b.popupsCache[c.key] = {}), b.currTemplate = b.popupsCache[c.key]) : b.currTemplate = {}, b.st = a.extend(!0, {}, a.magnificPopup.defaults, c), b.fixedContentPos = "auto" === b.st.fixedContentPos ? !b.probablyMobile : b.st.fixedContentPos, b.st.modal && (b.st.closeOnContentClick = !1, b.st.closeOnBgClick = !1, b.st.showCloseBtn = !1, b.st.enableEscapeKey = !1), b.bgOverlay || (b.bgOverlay = x("bg").on("click" + p, function () {
b.close()
}), b.wrap = x("wrap").attr("tabindex", -1).on("click" + p, function (a) {
b._checkIfClose(a.target) && b.close()
}), b.container = x("container", b.wrap)), b.contentContainer = x("content"), b.st.preloader && (b.preloader = x("preloader", b.container, b.st.tLoading));
var i = a.magnificPopup.modules;
for (e = 0; e < i.length; e++) {
var j = i[e];
j = j.charAt(0).toUpperCase() + j.slice(1), b["init" + j].call(b)
}
y("BeforeOpen"), b.st.showCloseBtn && (b.st.closeBtnInside ? (w(l, function (a, b, c, d) {
c.close_replaceWith = z(d.type)
}), f += " mfp-close-btn-in") : b.wrap.append(z())), b.st.alignTop && (f += " mfp-align-top"), b.fixedContentPos ? b.wrap.css({
overflow: b.st.overflowY,
overflowX: "hidden",
overflowY: b.st.overflowY
}) : b.wrap.css({
top: v.scrollTop(),
position: "absolute"
}), (b.st.fixedBgPos === !1 || "auto" === b.st.fixedBgPos && !b.fixedContentPos) && b.bgOverlay.css({
height: d.height(),
position: "absolute"
}), b.st.enableEscapeKey && d.on("keyup" + p, function (a) {
27 === a.keyCode && b.close()
}), v.on("resize" + p, function () {
b.updateSize()
}), b.st.closeOnContentClick || (f += " mfp-auto-cursor"), f && b.wrap.addClass(f);
var k = b.wH = v.height(),
n = {};
if (b.fixedContentPos && b._hasScrollBar(k)) {
var o = b._getScrollbarSize();
o && (n.marginRight = o)
}
b.fixedContentPos && (b.isIE7 ? a("body, html").css("overflow", "hidden") : n.overflow = "hidden");
var r = b.st.mainClass;
return b.isIE7 && (r += " mfp-ie7"), r && b._addClassToMFP(r), b.updateItemHTML(), y("BuildControls"), a("html").css(n), b.bgOverlay.add(b.wrap).prependTo(b.st.prependTo || a(document.body)), b._lastFocusedEl = document.activeElement, setTimeout(function () {
b.content ? (b._addClassToMFP(q), b._setFocus()) : b.bgOverlay.addClass(q), d.on("focusin" + p, b._onFocusIn)
}, 16), b.isOpen = !0, b.updateSize(k), y(m), c
},
close: function () {
b.isOpen && (y(i), b.isOpen = !1, b.st.removalDelay && !b.isLowIE && b.supportsTransition ? (b._addClassToMFP(r), setTimeout(function () {
b._close()
}, b.st.removalDelay)) : b._close())
},
_close: function () {
y(h);
var c = r + " " + q + " ";
if (b.bgOverlay.detach(), b.wrap.detach(), b.container.empty(), b.st.mainClass && (c += b.st.mainClass + " "), b._removeClassFromMFP(c), b.fixedContentPos) {
var e = {
marginRight: ""
};
b.isIE7 ? a("body, html").css("overflow", "") : e.overflow = "", a("html").css(e)
}
d.off("keyup" + p + " focusin" + p), b.ev.off(p), b.wrap.attr("class", "mfp-wrap").removeAttr("style"), b.bgOverlay.attr("class", "mfp-bg"), b.container.attr("class", "mfp-container"), !b.st.showCloseBtn || b.st.closeBtnInside && b.currTemplate[b.currItem.type] !== !0 || b.currTemplate.closeBtn && b.currTemplate.closeBtn.detach(), b.st.autoFocusLast && b._lastFocusedEl && a(b._lastFocusedEl).focus(), b.currItem = null, b.content = null, b.currTemplate = null, b.prevHeight = 0, y(j)
},
updateSize: function (a) {
if (b.isIOS) {
var c = document.documentElement.clientWidth / window.innerWidth,
d = window.innerHeight * c;
b.wrap.css("height", d), b.wH = d
} else b.wH = a || v.height();
b.fixedContentPos || b.wrap.css("height", b.wH), y("Resize")
},
updateItemHTML: function () {
var c = b.items[b.index];
b.contentContainer.detach(), b.content && b.content.detach(), c.parsed || (c = b.parseEl(b.index));
var d = c.type;
if (y("BeforeChange", [b.currItem ? b.currItem.type : "", d]), b.currItem = c, !b.currTemplate[d]) {
var f = b.st[d] ? b.st[d].markup : !1;
y("FirstMarkupParse", f), f ? b.currTemplate[d] = a(f) : b.currTemplate[d] = !0
}
e && e !== c.type && b.container.removeClass("mfp-" + e + "-holder");
var g = b["get" + d.charAt(0).toUpperCase() + d.slice(1)](c, b.currTemplate[d]);
b.appendContent(g, d), c.preloaded = !0, y(n, c), e = c.type, b.container.prepend(b.contentContainer), y("AfterChange")
},
appendContent: function (a, c) {
b.content = a, a ? b.st.showCloseBtn && b.st.closeBtnInside && b.currTemplate[c] === !0 ? b.content.find(".mfp-close").length || b.content.append(z()) : b.content = a : b.content = "", y(k), b.container.addClass("mfp-" + c + "-holder"), b.contentContainer.append(b.content)
},
parseEl: function (c) {
var d, e = b.items[c];
if (e.tagName ? e = {
el: a(e)
} : (d = e.type, e = {
data: e,
src: e.src
}), e.el) {
for (var f = b.types, g = 0; g < f.length; g++)
if (e.el.hasClass("mfp-" + f[g])) {
d = f[g];
break
} e.src = e.el.attr("data-mfp-src"), e.src || (e.src = e.el.attr("href"))
}
return e.type = d || b.st.type || "inline", e.index = c, e.parsed = !0, b.items[c] = e, y("ElementParse", e), b.items[c]
},
addGroup: function (a, c) {
var d = function (d) {
d.mfpEl = this, b._openClick(d, a, c)
};
c || (c = {});
var e = "click.magnificPopup";
c.mainEl = a, c.items ? (c.isObj = !0, a.off(e).on(e, d)) : (c.isObj = !1, c.delegate ? a.off(e).on(e, c.delegate, d) : (c.items = a, a.off(e).on(e, d)))
},
_openClick: function (c, d, e) {
var f = void 0 !== e.midClick ? e.midClick : a.magnificPopup.defaults.midClick;
if (f || !(2 === c.which || c.ctrlKey || c.metaKey || c.altKey || c.shiftKey)) {
var g = void 0 !== e.disableOn ? e.disableOn : a.magnificPopup.defaults.disableOn;
if (g)
if (a.isFunction(g)) {
if (!g.call(b)) return !0
} else if (v.width() < g) return !0;
c.type && (c.preventDefault(), b.isOpen && c.stopPropagation()), e.el = a(c.mfpEl), e.delegate && (e.items = d.find(e.delegate)), b.open(e)
}
},
updateStatus: function (a, d) {
if (b.preloader) {
c !== a && b.container.removeClass("mfp-s-" + c), d || "loading" !== a || (d = b.st.tLoading);
var e = {
status: a,
text: d
};
y("UpdateStatus", e), a = e.status, d = e.text, b.preloader.html(d), b.preloader.find("a").on("click", function (a) {
a.stopImmediatePropagation()
}), b.container.addClass("mfp-s-" + a), c = a
}
},
_checkIfClose: function (c) {
if (!a(c).hasClass(s)) {
var d = b.st.closeOnContentClick,
e = b.st.closeOnBgClick;
if (d && e) return !0;
if (!b.content || a(c).hasClass("mfp-close") || b.preloader && c === b.preloader[0]) return !0;
if (c === b.content[0] || a.contains(b.content[0], c)) {
if (d) return !0
} else if (e && a.contains(document, c)) return !0;
return !1
}
},
_addClassToMFP: function (a) {
b.bgOverlay.addClass(a), b.wrap.addClass(a)
},
_removeClassFromMFP: function (a) {
this.bgOverlay.removeClass(a), b.wrap.removeClass(a)
},
_hasScrollBar: function (a) {
return (b.isIE7 ? d.height() : document.body.scrollHeight) > (a || v.height())
},
_setFocus: function () {
(b.st.focus ? b.content.find(b.st.focus).eq(0) : b.wrap).focus()
},
_onFocusIn: function (c) {
return c.target === b.wrap[0] || a.contains(b.wrap[0], c.target) ? void 0 : (b._setFocus(), !1)
},
_parseMarkup: function (b, c, d) {
var e;
d.data && (c = a.extend(d.data, c)), y(l, [b, c, d]), a.each(c, function (c, d) {
if (void 0 === d || d === !1) return !0;
if (e = c.split("_"), e.length > 1) {
var f = b.find(p + "-" + e[0]);
if (f.length > 0) {
var g = e[1];
"replaceWith" === g ? f[0] !== d[0] && f.replaceWith(d) : "img" === g ? f.is("img") ? f.attr("src", d) : f.replaceWith(a(" ").attr("src", d).attr("class", f.attr("class"))) : f.attr(e[1], d)
}
} else b.find(p + "-" + c).html(d)
})
},
_getScrollbarSize: function () {
if (void 0 === b.scrollbarSize) {
var a = document.createElement("div");
a.style.cssText = "width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;", document.body.appendChild(a), b.scrollbarSize = a.offsetWidth - a.clientWidth, document.body.removeChild(a)
}
return b.scrollbarSize
}
}, a.magnificPopup = {
instance: null,
proto: t.prototype,
modules: [],
open: function (b, c) {
return A(), b = b ? a.extend(!0, {}, b) : {}, b.isObj = !0, b.index = c || 0, this.instance.open(b)
},
close: function () {
return a.magnificPopup.instance && a.magnificPopup.instance.close()
},
registerModule: function (b, c) {
c.options && (a.magnificPopup.defaults[b] = c.options), a.extend(this.proto, c.proto), this.modules.push(b)
},
defaults: {
disableOn: 0,
key: null,
midClick: !1,
mainClass: "",
preloader: !0,
focus: "",
closeOnContentClick: !1,
closeOnBgClick: !0,
closeBtnInside: !0,
showCloseBtn: !0,
enableEscapeKey: !0,
modal: !1,
alignTop: !1,
removalDelay: 0,
prependTo: null,
fixedContentPos: "auto",
fixedBgPos: "auto",
overflowY: "auto",
closeMarkup: '× ',
tClose: "Close (Esc)",
tLoading: "Loading...",
autoFocusLast: !0
}
}, a.fn.magnificPopup = function (c) {
A();
var d = a(this);
if ("string" == typeof c)
if ("open" === c) {
var e, f = u ? d.data("magnificPopup") : d[0].magnificPopup,
g = parseInt(arguments[1], 10) || 0;
f.items ? e = f.items[g] : (e = d, f.delegate && (e = e.find(f.delegate)), e = e.eq(g)), b._openClick({
mfpEl: e
}, d, f)
} else b.isOpen && b[c].apply(b, Array.prototype.slice.call(arguments, 1));
else c = a.extend(!0, {}, c), u ? d.data("magnificPopup", c) : d[0].magnificPopup = c, b.addGroup(d, c);
return d
};
var C, D, E, F = "inline",
G = function () {
E && (D.after(E.addClass(C)).detach(), E = null)
};
a.magnificPopup.registerModule(F, {
options: {
hiddenClass: "hide",
markup: "",
tNotFound: "Content not found"
},
proto: {
initInline: function () {
b.types.push(F), w(h + "." + F, function () {
G()
})
},
getInline: function (c, d) {
if (G(), c.src) {
var e = b.st.inline,
f = a(c.src);
if (f.length) {
var g = f[0].parentNode;
g && g.tagName && (D || (C = e.hiddenClass, D = x(C), C = "mfp-" + C), E = f.after(D).detach().removeClass(C)), b.updateStatus("ready")
} else b.updateStatus("error", e.tNotFound), f = a("");
return c.inlineElement = f, f
}
return b.updateStatus("ready"), b._parseMarkup(d, {}, c), d
}
}
});
var H, I = "ajax",
J = function () {
H && a(document.body).removeClass(H)
},
K = function () {
J(), b.req && b.req.abort()
};
a.magnificPopup.registerModule(I, {
options: {
settings: null,
cursor: "mfp-ajax-cur",
tError: '
The content could not be loaded.'
},
proto: {
initAjax: function () {
b.types.push(I), H = b.st.ajax.cursor, w(h + "." + I, K), w("BeforeChange." + I, K)
},
getAjax: function (c) {
H && a(document.body).addClass(H), b.updateStatus("loading");
var d = a.extend({
url: c.src,
success: function (d, e, f) {
var g = {
data: d,
xhr: f
};
y("ParseAjax", g), b.appendContent(a(g.data), I), c.finished = !0, J(), b._setFocus(), setTimeout(function () {
b.wrap.addClass(q)
}, 16), b.updateStatus("ready"), y("AjaxContentAdded")
},
error: function () {
J(), c.finished = c.loadError = !0, b.updateStatus("error", b.st.ajax.tError.replace("%url%", c.src))
}
}, b.st.ajax.settings);
return b.req = a.ajax(d), ""
}
}
});
var L, M = function (c) {
if (c.data && void 0 !== c.data.title) return c.data.title;
var d = b.st.image.titleSrc;
if (d) {
if (a.isFunction(d)) return d.call(b, c);
if (c.el) return c.el.attr(d) || ""
}
return ""
};
a.magnificPopup.registerModule("image", {
options: {
markup: '
',
cursor: "mfp-zoom-out-cur",
titleSrc: "title",
verticalFit: !0,
tError: '
The image could not be loaded.'
},
proto: {
initImage: function () {
var c = b.st.image,
d = ".image";
b.types.push("image"), w(m + d, function () {
"image" === b.currItem.type && c.cursor && a(document.body).addClass(c.cursor)
}), w(h + d, function () {
c.cursor && a(document.body).removeClass(c.cursor), v.off("resize" + p)
}), w("Resize" + d, b.resizeImage), b.isLowIE && w("AfterChange", b.resizeImage)
},
resizeImage: function () {
var a = b.currItem;
if (a && a.img && b.st.image.verticalFit) {
var c = 0;
b.isLowIE && (c = parseInt(a.img.css("padding-top"), 10) + parseInt(a.img.css("padding-bottom"), 10)), a.img.css("max-height", b.wH - c)
}
},
_onImageHasSize: function (a) {
a.img && (a.hasSize = !0, L && clearInterval(L), a.isCheckingImgSize = !1, y("ImageHasSize", a), a.imgHidden && (b.content && b.content.removeClass("mfp-loading"), a.imgHidden = !1))
},
findImageSize: function (a) {
var c = 0,
d = a.img[0],
e = function (f) {
L && clearInterval(L), L = setInterval(function () {
return d.naturalWidth > 0 ? void b._onImageHasSize(a) : (c > 200 && clearInterval(L), c++, void(3 === c ? e(10) : 40 === c ? e(50) : 100 === c && e(500)))
}, f)
};
e(1)
},
getImage: function (c, d) {
var e = 0,
f = function () {
c && (c.img[0].complete ? (c.img.off(".mfploader"), c === b.currItem && (b._onImageHasSize(c), b.updateStatus("ready")), c.hasSize = !0, c.loaded = !0, y("ImageLoadComplete")) : (e++, 200 > e ? setTimeout(f, 100) : g()))
},
g = function () {
c && (c.img.off(".mfploader"), c === b.currItem && (b._onImageHasSize(c), b.updateStatus("error", h.tError.replace("%url%", c.src))), c.hasSize = !0, c.loaded = !0, c.loadError = !0)
},
h = b.st.image,
i = d.find(".mfp-img");
if (i.length) {
var j = document.createElement("img");
j.className = "mfp-img", c.el && c.el.find("img").length && (j.alt = c.el.find("img").attr("alt")), c.img = a(j).on("load.mfploader", f).on("error.mfploader", g), j.src = c.src, i.is("img") && (c.img = c.img.clone()), j = c.img[0], j.naturalWidth > 0 ? c.hasSize = !0 : j.width || (c.hasSize = !1)
}
return b._parseMarkup(d, {
title: M(c),
img_replaceWith: c.img
}, c), b.resizeImage(), c.hasSize ? (L && clearInterval(L), c.loadError ? (d.addClass("mfp-loading"), b.updateStatus("error", h.tError.replace("%url%", c.src))) : (d.removeClass("mfp-loading"), b.updateStatus("ready")), d) : (b.updateStatus("loading"), c.loading = !0, c.hasSize || (c.imgHidden = !0, d.addClass("mfp-loading"), b.findImageSize(c)), d)
}
}
});
var N, O = function () {
return void 0 === N && (N = void 0 !== document.createElement("p").style.MozTransform), N
};
a.magnificPopup.registerModule("zoom", {
options: {
enabled: !1,
easing: "ease-in-out",
duration: 300,
opener: function (a) {
return a.is("img") ? a : a.find("img")
}
},
proto: {
initZoom: function () {
var a, c = b.st.zoom,
d = ".zoom";
if (c.enabled && b.supportsTransition) {
var e, f, g = c.duration,
j = function (a) {
var b = a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),
d = "all " + c.duration / 1e3 + "s " + c.easing,
e = {
position: "fixed",
zIndex: 9999,
left: 0,
top: 0,
"-webkit-backface-visibility": "hidden"
},
f = "transition";
return e["-webkit-" + f] = e["-moz-" + f] = e["-o-" + f] = e[f] = d, b.css(e), b
},
k = function () {
b.content.css("visibility", "visible")
};
w("BuildControls" + d, function () {
if (b._allowZoom()) {
if (clearTimeout(e), b.content.css("visibility", "hidden"), a = b._getItemToZoom(), !a) return void k();
f = j(a), f.css(b._getOffset()), b.wrap.append(f), e = setTimeout(function () {
f.css(b._getOffset(!0)), e = setTimeout(function () {
k(), setTimeout(function () {
f.remove(), a = f = null, y("ZoomAnimationEnded")
}, 16)
}, g)
}, 16)
}
}), w(i + d, function () {
if (b._allowZoom()) {
if (clearTimeout(e), b.st.removalDelay = g, !a) {
if (a = b._getItemToZoom(), !a) return;
f = j(a)
}
f.css(b._getOffset(!0)), b.wrap.append(f), b.content.css("visibility", "hidden"), setTimeout(function () {
f.css(b._getOffset())
}, 16)
}
}), w(h + d, function () {
b._allowZoom() && (k(), f && f.remove(), a = null)
})
}
},
_allowZoom: function () {
return "image" === b.currItem.type
},
_getItemToZoom: function () {
return b.currItem.hasSize ? b.currItem.img : !1
},
_getOffset: function (c) {
var d;
d = c ? b.currItem.img : b.st.zoom.opener(b.currItem.el || b.currItem);
var e = d.offset(),
f = parseInt(d.css("padding-top"), 10),
g = parseInt(d.css("padding-bottom"), 10);
e.top -= a(window).scrollTop() - f;
var h = {
width: d.width(),
height: (u ? d.innerHeight() : d[0].offsetHeight) - g - f
};
return O() ? h["-moz-transform"] = h.transform = "translate(" + e.left + "px," + e.top + "px)" : (h.left = e.left, h.top = e.top), h
}
}
});
var P = "iframe",
Q = "//about:blank",
R = function (a) {
if (b.currTemplate[P]) {
var c = b.currTemplate[P].find("iframe");
c.length && (a || (c[0].src = Q), b.isIE8 && c.css("display", a ? "block" : "none"))
}
};
a.magnificPopup.registerModule(P, {
options: {
markup: '
',
srcAction: "iframe_src",
patterns: {
youtube: {
index: "youtube.com",
id: "v=",
src: "//www.youtube.com/embed/%id%?autoplay=1"
},
vimeo: {
index: "vimeo.com/",
id: "/",
src: "//player.vimeo.com/video/%id%?autoplay=1"
},
gmaps: {
index: "//maps.google.",
src: "%id%&output=embed"
}
}
},
proto: {
initIframe: function () {
b.types.push(P), w("BeforeChange", function (a, b, c) {
b !== c && (b === P ? R() : c === P && R(!0))
}), w(h + "." + P, function () {
R()
})
},
getIframe: function (c, d) {
var e = c.src,
f = b.st.iframe;
a.each(f.patterns, function () {
return e.indexOf(this.index) > -1 ? (this.id && (e = "string" == typeof this.id ? e.substr(e.lastIndexOf(this.id) + this.id.length, e.length) : this.id.call(this, e)), e = this.src.replace("%id%", e), !1) : void 0
});
var g = {};
return f.srcAction && (g[f.srcAction] = e), b._parseMarkup(d, g, c), b.updateStatus("ready"), d
}
}
});
var S = function (a) {
var c = b.items.length;
return a > c - 1 ? a - c : 0 > a ? c + a : a
},
T = function (a, b, c) {
return a.replace(/%curr%/gi, b + 1).replace(/%total%/gi, c)
};
a.magnificPopup.registerModule("gallery", {
options: {
enabled: !1,
arrowMarkup: '
',
preload: [0, 2],
navigateByImgClick: !0,
arrows: !0,
tPrev: "Previous (Left arrow key)",
tNext: "Next (Right arrow key)",
tCounter: "%curr% of %total%"
},
proto: {
initGallery: function () {
var c = b.st.gallery,
e = ".mfp-gallery";
return b.direction = !0, c && c.enabled ? (f += " mfp-gallery", w(m + e, function () {
c.navigateByImgClick && b.wrap.on("click" + e, ".mfp-img", function () {
return b.items.length > 1 ? (b.next(), !1) : void 0
}), d.on("keydown" + e, function (a) {
37 === a.keyCode ? b.prev() : 39 === a.keyCode && b.next()
})
}), w("UpdateStatus" + e, function (a, c) {
c.text && (c.text = T(c.text, b.currItem.index, b.items.length))
}), w(l + e, function (a, d, e, f) {
var g = b.items.length;
e.counter = g > 1 ? T(c.tCounter, f.index, g) : ""
}), w("BuildControls" + e, function () {
if (b.items.length > 1 && c.arrows && !b.arrowLeft) {
var d = c.arrowMarkup,
e = b.arrowLeft = a(d.replace(/%title%/gi, c.tPrev).replace(/%dir%/gi, "left")).addClass(s),
f = b.arrowRight = a(d.replace(/%title%/gi, c.tNext).replace(/%dir%/gi, "right")).addClass(s);
e.click(function () {
b.prev()
}), f.click(function () {
b.next()
}), b.container.append(e.add(f))
}
}), w(n + e, function () {
b._preloadTimeout && clearTimeout(b._preloadTimeout), b._preloadTimeout = setTimeout(function () {
b.preloadNearbyImages(), b._preloadTimeout = null
}, 16)
}), void w(h + e, function () {
d.off(e), b.wrap.off("click" + e), b.arrowRight = b.arrowLeft = null
})) : !1
},
next: function () {
b.direction = !0, b.index = S(b.index + 1), b.updateItemHTML()
},
prev: function () {
b.direction = !1, b.index = S(b.index - 1), b.updateItemHTML()
},
goTo: function (a) {
b.direction = a >= b.index, b.index = a, b.updateItemHTML()
},
preloadNearbyImages: function () {
var a, c = b.st.gallery.preload,
d = Math.min(c[0], b.items.length),
e = Math.min(c[1], b.items.length);
for (a = 1; a <= (b.direction ? e : d); a++) b._preloadItem(b.index + a);
for (a = 1; a <= (b.direction ? d : e); a++) b._preloadItem(b.index - a)
},
_preloadItem: function (c) {
if (c = S(c), !b.items[c].preloaded) {
var d = b.items[c];
d.parsed || (d = b.parseEl(c)), y("LazyLoad", d), "image" === d.type && (d.img = a('
').on("load.mfploader", function () {
d.hasSize = !0
}).on("error.mfploader", function () {
d.hasSize = !0, d.loadError = !0, y("LazyLoadError", d)
}).attr("src", d.src)), d.preloaded = !0
}
}
}
});
var U = "retina";
a.magnificPopup.registerModule(U, {
options: {
replaceSrc: function (a) {
return a.src.replace(/\.\w+$/, function (a) {
return "@2x" + a
})
},
ratio: 1
},
proto: {
initRetina: function () {
if (window.devicePixelRatio > 1) {
var a = b.st.retina,
c = a.ratio;
c = isNaN(c) ? c() : c, c > 1 && (w("ImageHasSize." + U, function (a, b) {
b.img.css({
"max-width": b.img[0].naturalWidth / c,
width: "100%"
})
}), w("ElementParse." + U, function (b, d) {
d.src = a.replaceSrc(d, c)
}))
}
}
}
}), A()
});
/*
WOW
Version: 1.3.0 - 2016-10-04
Plugin URI: https://wowjs.uk
License: Copyright (c) 2016 Thomas Grainger; | Released under the MIT License
*/
(function () {
var t, e, n, i, o, r = function (t, e) {
return function () {
return t.apply(e, arguments)
}
},
s = [].indexOf || function (t) {
for (var e = 0, n = this.length; n > e; e++)
if (e in this && this[e] === t) return e;
return -1
};
e = function () {
function t() {}
return t.prototype.extend = function (t, e) {
var n, i;
for (n in e) i = e[n], null == t[n] && (t[n] = i);
return t
}, t.prototype.isMobile = function (t) {
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(t)
}, t.prototype.createEvent = function (t, e, n, i) {
var o;
return null == e && (e = !1), null == n && (n = !1), null == i && (i = null), null != document.createEvent ? (o = document.createEvent("CustomEvent")).initCustomEvent(t, e, n, i) : null != document.createEventObject ? (o = document.createEventObject()).eventType = t : o.eventName = t, o
}, t.prototype.emitEvent = function (t, e) {
return null != t.dispatchEvent ? t.dispatchEvent(e) : e in (null != t) ? t[e]() : "on" + e in (null != t) ? t["on" + e]() : void 0
}, t.prototype.addEvent = function (t, e, n) {
return null != t.addEventListener ? t.addEventListener(e, n, !1) : null != t.attachEvent ? t.attachEvent("on" + e, n) : t[e] = n
}, t.prototype.removeEvent = function (t, e, n) {
return null != t.removeEventListener ? t.removeEventListener(e, n, !1) : null != t.detachEvent ? t.detachEvent("on" + e, n) : delete t[e]
}, t.prototype.innerHeight = function () {
return "innerHeight" in window ? window.innerHeight : document.documentElement.clientHeight
}, t
}(), n = this.WeakMap || this.MozWeakMap || (n = function () {
function t() {
this.keys = [], this.values = []
}
return t.prototype.get = function (t) {
var e, n, i, o;
for (e = n = 0, i = (o = this.keys).length; i > n; e = ++n)
if (o[e] === t) return this.values[e]
}, t.prototype.set = function (t, e) {
var n, i, o, r;
for (n = i = 0, o = (r = this.keys).length; o > i; n = ++i)
if (r[n] === t) return void(this.values[n] = e);
return this.keys.push(t), this.values.push(e)
}, t
}()), t = this.MutationObserver || this.WebkitMutationObserver || this.MozMutationObserver || (t = function () {
function t() {
"undefined" != typeof console && null !== console && console.warn("MutationObserver is not supported by your browser."), "undefined" != typeof console && null !== console && console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.")
}
return t.notSupported = !0, t.prototype.observe = function () {}, t
}()), i = this.getComputedStyle || function (t, e) {
return this.getPropertyValue = function (e) {
var n;
return "float" === e && (e = "styleFloat"), o.test(e) && e.replace(o, function (t, e) {
return e.toUpperCase()
}), (null != (n = t.currentStyle) ? n[e] : void 0) || null
}, this
}, o = /(\-([a-z]){1})/g, this.WOW = function () {
function o(t) {
null == t && (t = {}), this.scrollCallback = r(this.scrollCallback, this), this.scrollHandler = r(this.scrollHandler, this), this.resetAnimation = r(this.resetAnimation, this), this.start = r(this.start, this), this.scrolled = !0, this.config = this.util().extend(t, this.defaults), null != t.scrollContainer && (this.config.scrollContainer = document.querySelector(t.scrollContainer)), this.animationNameCache = new n, this.wowEvent = this.util().createEvent(this.config.boxClass)
}
return o.prototype.defaults = {
boxClass: "wow",
animateClass: "animated",
offset: 0,
mobile: !0,
live: !0,
callback: null,
scrollContainer: null
}, o.prototype.init = function () {
var t;
return this.element = window.document.documentElement, "interactive" === (t = document.readyState) || "complete" === t ? this.start() : this.util().addEvent(document, "DOMContentLoaded", this.start), this.finished = []
}, o.prototype.start = function () {
var e, n, i, o;
if (this.stopped = !1, this.boxes = function () {
var t, n, i, o;
for (o = [], t = 0, n = (i = this.element.querySelectorAll("." + this.config.boxClass)).length; n > t; t++) e = i[t], o.push(e);
return o
}.call(this), this.all = function () {
var t, n, i, o;
for (o = [], t = 0, n = (i = this.boxes).length; n > t; t++) e = i[t], o.push(e);
return o
}.call(this), this.boxes.length)
if (this.disabled()) this.resetStyle();
else
for (n = 0, i = (o = this.boxes).length; i > n; n++) e = o[n], this.applyStyle(e, !0);
return this.disabled() || (this.util().addEvent(this.config.scrollContainer || window, "scroll", this.scrollHandler), this.util().addEvent(window, "resize", this.scrollHandler), this.interval = setInterval(this.scrollCallback, 50)), this.config.live ? new t(function (t) {
return function (e) {
var n, i, o, r, s;
for (s = [], n = 0, i = e.length; i > n; n++) r = e[n], s.push(function () {
var t, e, n, i;
for (i = [], t = 0, e = (n = r.addedNodes || []).length; e > t; t++) o = n[t], i.push(this.doSync(o));
return i
}.call(t));
return s
}
}(this)).observe(document.body, {
childList: !0,
subtree: !0
}) : void 0
}, o.prototype.stop = function () {
return this.stopped = !0, this.util().removeEvent(this.config.scrollContainer || window, "scroll", this.scrollHandler), this.util().removeEvent(window, "resize", this.scrollHandler), null != this.interval ? clearInterval(this.interval) : void 0
}, o.prototype.sync = function (e) {
return t.notSupported ? this.doSync(this.element) : void 0
}, o.prototype.doSync = function (t) {
var e, n, i, o, r;
if (null == t && (t = this.element), 1 === t.nodeType) {
for (r = [], n = 0, i = (o = (t = t.parentNode || t).querySelectorAll("." + this.config.boxClass)).length; i > n; n++) e = o[n], s.call(this.all, e) < 0 ? (this.boxes.push(e), this.all.push(e), this.stopped || this.disabled() ? this.resetStyle() : this.applyStyle(e, !0), r.push(this.scrolled = !0)) : r.push(void 0);
return r
}
}, o.prototype.show = function (t) {
return this.applyStyle(t), t.className = t.className + " " + this.config.animateClass, null != this.config.callback && this.config.callback(t), this.util().emitEvent(t, this.wowEvent), this.util().addEvent(t, "animationend", this.resetAnimation), this.util().addEvent(t, "oanimationend", this.resetAnimation), this.util().addEvent(t, "webkitAnimationEnd", this.resetAnimation), this.util().addEvent(t, "MSAnimationEnd", this.resetAnimation), t
}, o.prototype.applyStyle = function (t, e) {
var n, i, o, r;
return i = t.getAttribute("data-wow-duration"), n = t.getAttribute("data-wow-delay"), o = t.getAttribute("data-wow-iteration"), this.animate((r = this, function () {
return r.customStyle(t, e, i, n, o)
}))
}, o.prototype.animate = "requestAnimationFrame" in window ? function (t) {
return window.requestAnimationFrame(t)
} : function (t) {
return t()
}, o.prototype.resetStyle = function () {
var t, e, n, i, o;
for (o = [], e = 0, n = (i = this.boxes).length; n > e; e++) t = i[e], o.push(t.style.visibility = "visible");
return o
}, o.prototype.resetAnimation = function (t) {
var e;
return t.type.toLowerCase().indexOf("animationend") >= 0 ? (e = t.target || t.srcElement).className = e.className.replace(this.config.animateClass, "").trim() : void 0
}, o.prototype.customStyle = function (t, e, n, i, o) {
return e && this.cacheAnimationName(t), t.style.visibility = e ? "hidden" : "visible", n && this.vendorSet(t.style, {
animationDuration: n
}), i && this.vendorSet(t.style, {
animationDelay: i
}), o && this.vendorSet(t.style, {
animationIterationCount: o
}), this.vendorSet(t.style, {
animationName: e ? "none" : this.cachedAnimationName(t)
}), t
}, o.prototype.vendors = ["moz", "webkit"], o.prototype.vendorSet = function (t, e) {
var n, i, o, r;
for (n in i = [], e) o = e[n], t["" + n] = o, i.push(function () {
var e, i, s, l;
for (l = [], e = 0, i = (s = this.vendors).length; i > e; e++) r = s[e], l.push(t["" + r + n.charAt(0).toUpperCase() + n.substr(1)] = o);
return l
}.call(this));
return i
}, o.prototype.vendorCSS = function (t, e) {
var n, o, r, s, l, a;
for (s = (l = i(t)).getPropertyCSSValue(e), n = 0, o = (r = this.vendors).length; o > n; n++) a = r[n], s = s || l.getPropertyCSSValue("-" + a + "-" + e);
return s
}, o.prototype.animationName = function (t) {
var e;
try {
e = this.vendorCSS(t, "animation-name").cssText
} catch (n) {
e = i(t).getPropertyValue("animation-name")
}
return "none" === e ? "" : e
}, o.prototype.cacheAnimationName = function (t) {
return this.animationNameCache.set(t, this.animationName(t))
}, o.prototype.cachedAnimationName = function (t) {
return this.animationNameCache.get(t)
}, o.prototype.scrollHandler = function () {
return this.scrolled = !0
}, o.prototype.scrollCallback = function () {
var t;
return !this.scrolled || (this.scrolled = !1, this.boxes = function () {
var e, n, i, o;
for (o = [], e = 0, n = (i = this.boxes).length; n > e; e++)(t = i[e]) && (this.isVisible(t) ? this.show(t) : o.push(t));
return o
}.call(this), this.boxes.length || this.config.live) ? void 0 : this.stop()
}, o.prototype.offsetTop = function (t) {
for (var e; void 0 === t.offsetTop;) t = t.parentNode;
for (e = t.offsetTop; t = t.offsetParent;) e += t.offsetTop;
return e
}, o.prototype.isVisible = function (t) {
var e, n, i, o, r;
return n = t.getAttribute("data-wow-offset") || this.config.offset, o = (r = this.config.scrollContainer && this.config.scrollContainer.scrollTop || window.pageYOffset) + Math.min(this.element.clientHeight, this.util().innerHeight()) - n, e = (i = this.offsetTop(t)) + t.clientHeight, o >= i && e >= r
}, o.prototype.util = function () {
return null != this._util ? this._util : this._util = new e
}, o.prototype.disabled = function () {
return !this.config.mobile && this.util().isMobile(navigator.userAgent)
}, o.prototype.removeBox = function (t) {
var e = this.boxes.indexOf(t);
e > -1 && this.boxes.splice(e, 1)
}, o
}()
}).call(this);
/*
Isotope
Version: 3.0.6
Plugin URI: https://isotope.metafizzy.co
License: Copyright 2010-2018 Metafizzy | Licensed GPLv3 for open source use or Isotope Commercial License for commercial use
*/
! function (t, e) {
"function" == typeof define && define.amd ? define("jquery-bridget/jquery-bridget", ["jquery"], function (i) {
return e(t, i)
}) : "object" == typeof module && module.exports ? module.exports = e(t, require("jquery")) : t.jQueryBridget = e(t, t.jQuery)
}(window, function (t, e) {
"use strict";
function i(i, s, a) {
function u(t, e, o) {
var n, s = "$()." + i + '("' + e + '")';
return t.each(function (t, u) {
var h = a.data(u, i);
if (!h) return void r(i + " not initialized. Cannot call methods, i.e. " + s);
var d = h[e];
if (!d || "_" == e.charAt(0)) return void r(s + " is not a valid method");
var l = d.apply(h, o);
n = void 0 === n ? l : n
}), void 0 !== n ? n : t
}
function h(t, e) {
t.each(function (t, o) {
var n = a.data(o, i);
n ? (n.option(e), n._init()) : (n = new s(o, e), a.data(o, i, n))
})
}
a = a || e || t.jQuery, a && (s.prototype.option || (s.prototype.option = function (t) {
a.isPlainObject(t) && (this.options = a.extend(!0, this.options, t))
}), a.fn[i] = function (t) {
if ("string" == typeof t) {
var e = n.call(arguments, 1);
return u(this, t, e)
}
return h(this, t), this
}, o(a))
}
function o(t) {
!t || t && t.bridget || (t.bridget = i)
}
var n = Array.prototype.slice,
s = t.console,
r = "undefined" == typeof s ? function () {} : function (t) {
s.error(t)
};
return o(e || t.jQuery), i
}),
function (t, e) {
"function" == typeof define && define.amd ? define("ev-emitter/ev-emitter", e) : "object" == typeof module && module.exports ? module.exports = e() : t.EvEmitter = e()
}("undefined" != typeof window ? window : this, function () {
function t() {}
var e = t.prototype;
return e.on = function (t, e) {
if (t && e) {
var i = this._events = this._events || {},
o = i[t] = i[t] || [];
return o.indexOf(e) == -1 && o.push(e), this
}
}, e.once = function (t, e) {
if (t && e) {
this.on(t, e);
var i = this._onceEvents = this._onceEvents || {},
o = i[t] = i[t] || {};
return o[e] = !0, this
}
}, e.off = function (t, e) {
var i = this._events && this._events[t];
if (i && i.length) {
var o = i.indexOf(e);
return o != -1 && i.splice(o, 1), this
}
}, e.emitEvent = function (t, e) {
var i = this._events && this._events[t];
if (i && i.length) {
i = i.slice(0), e = e || [];
for (var o = this._onceEvents && this._onceEvents[t], n = 0; n < i.length; n++) {
var s = i[n],
r = o && o[s];
r && (this.off(t, s), delete o[s]), s.apply(this, e)
}
return this
}
}, e.allOff = function () {
delete this._events, delete this._onceEvents
}, t
}),
function (t, e) {
"function" == typeof define && define.amd ? define("get-size/get-size", e) : "object" == typeof module && module.exports ? module.exports = e() : t.getSize = e()
}(window, function () {
"use strict";
function t(t) {
var e = parseFloat(t),
i = t.indexOf("%") == -1 && !isNaN(e);
return i && e
}
function e() {}
function i() {
for (var t = {
width: 0,
height: 0,
innerWidth: 0,
innerHeight: 0,
outerWidth: 0,
outerHeight: 0
}, e = 0; e < h; e++) {
var i = u[e];
t[i] = 0
}
return t
}
function o(t) {
var e = getComputedStyle(t);
return e || a("Style returned " + e + ". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"), e
}
function n() {
if (!d) {
d = !0;
var e = document.createElement("div");
e.style.width = "200px", e.style.padding = "1px 2px 3px 4px", e.style.borderStyle = "solid", e.style.borderWidth = "1px 2px 3px 4px", e.style.boxSizing = "border-box";
var i = document.body || document.documentElement;
i.appendChild(e);
var n = o(e);
r = 200 == Math.round(t(n.width)), s.isBoxSizeOuter = r, i.removeChild(e)
}
}
function s(e) {
if (n(), "string" == typeof e && (e = document.querySelector(e)), e && "object" == typeof e && e.nodeType) {
var s = o(e);
if ("none" == s.display) return i();
var a = {};
a.width = e.offsetWidth, a.height = e.offsetHeight;
for (var d = a.isBorderBox = "border-box" == s.boxSizing, l = 0; l < h; l++) {
var f = u[l],
c = s[f],
m = parseFloat(c);
a[f] = isNaN(m) ? 0 : m
}
var p = a.paddingLeft + a.paddingRight,
y = a.paddingTop + a.paddingBottom,
g = a.marginLeft + a.marginRight,
v = a.marginTop + a.marginBottom,
_ = a.borderLeftWidth + a.borderRightWidth,
z = a.borderTopWidth + a.borderBottomWidth,
I = d && r,
x = t(s.width);
x !== !1 && (a.width = x + (I ? 0 : p + _));
var S = t(s.height);
return S !== !1 && (a.height = S + (I ? 0 : y + z)), a.innerWidth = a.width - (p + _), a.innerHeight = a.height - (y + z), a.outerWidth = a.width + g, a.outerHeight = a.height + v, a
}
}
var r, a = "undefined" == typeof console ? e : function (t) {
console.error(t)
},
u = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth"],
h = u.length,
d = !1;
return s
}),
function (t, e) {
"use strict";
"function" == typeof define && define.amd ? define("desandro-matches-selector/matches-selector", e) : "object" == typeof module && module.exports ? module.exports = e() : t.matchesSelector = e()
}(window, function () {
"use strict";
var t = function () {
var t = window.Element.prototype;
if (t.matches) return "matches";
if (t.matchesSelector) return "matchesSelector";
for (var e = ["webkit", "moz", "ms", "o"], i = 0; i < e.length; i++) {
var o = e[i],
n = o + "MatchesSelector";
if (t[n]) return n
}
}();
return function (e, i) {
return e[t](i)
}
}),
function (t, e) {
"function" == typeof define && define.amd ? define("fizzy-ui-utils/utils", ["desandro-matches-selector/matches-selector"], function (i) {
return e(t, i)
}) : "object" == typeof module && module.exports ? module.exports = e(t, require("desandro-matches-selector")) : t.fizzyUIUtils = e(t, t.matchesSelector)
}(window, function (t, e) {
var i = {};
i.extend = function (t, e) {
for (var i in e) t[i] = e[i];
return t
}, i.modulo = function (t, e) {
return (t % e + e) % e
};
var o = Array.prototype.slice;
i.makeArray = function (t) {
if (Array.isArray(t)) return t;
if (null === t || void 0 === t) return [];
var e = "object" == typeof t && "number" == typeof t.length;
return e ? o.call(t) : [t]
}, i.removeFrom = function (t, e) {
var i = t.indexOf(e);
i != -1 && t.splice(i, 1)
}, i.getParent = function (t, i) {
for (; t.parentNode && t != document.body;)
if (t = t.parentNode, e(t, i)) return t
}, i.getQueryElement = function (t) {
return "string" == typeof t ? document.querySelector(t) : t
}, i.handleEvent = function (t) {
var e = "on" + t.type;
this[e] && this[e](t)
}, i.filterFindElements = function (t, o) {
t = i.makeArray(t);
var n = [];
return t.forEach(function (t) {
if (t instanceof HTMLElement) {
if (!o) return void n.push(t);
e(t, o) && n.push(t);
for (var i = t.querySelectorAll(o), s = 0; s < i.length; s++) n.push(i[s])
}
}), n
}, i.debounceMethod = function (t, e, i) {
i = i || 100;
var o = t.prototype[e],
n = e + "Timeout";
t.prototype[e] = function () {
var t = this[n];
clearTimeout(t);
var e = arguments,
s = this;
this[n] = setTimeout(function () {
o.apply(s, e), delete s[n]
}, i)
}
}, i.docReady = function (t) {
var e = document.readyState;
"complete" == e || "interactive" == e ? setTimeout(t) : document.addEventListener("DOMContentLoaded", t)
}, i.toDashed = function (t) {
return t.replace(/(.)([A-Z])/g, function (t, e, i) {
return e + "-" + i
}).toLowerCase()
};
var n = t.console;
return i.htmlInit = function (e, o) {
i.docReady(function () {
var s = i.toDashed(o),
r = "data-" + s,
a = document.querySelectorAll("[" + r + "]"),
u = document.querySelectorAll(".js-" + s),
h = i.makeArray(a).concat(i.makeArray(u)),
d = r + "-options",
l = t.jQuery;
h.forEach(function (t) {
var i, s = t.getAttribute(r) || t.getAttribute(d);
try {
i = s && JSON.parse(s)
} catch (a) {
return void(n && n.error("Error parsing " + r + " on " + t.className + ": " + a))
}
var u = new e(t, i);
l && l.data(t, o, u)
})
})
}, i
}),
function (t, e) {
"function" == typeof define && define.amd ? define("outlayer/item", ["ev-emitter/ev-emitter", "get-size/get-size"], e) : "object" == typeof module && module.exports ? module.exports = e(require("ev-emitter"), require("get-size")) : (t.Outlayer = {}, t.Outlayer.Item = e(t.EvEmitter, t.getSize))
}(window, function (t, e) {
"use strict";
function i(t) {
for (var e in t) return !1;
return e = null, !0
}
function o(t, e) {
t && (this.element = t, this.layout = e, this.position = {
x: 0,
y: 0
}, this._create())
}
function n(t) {
return t.replace(/([A-Z])/g, function (t) {
return "-" + t.toLowerCase()
})
}
var s = document.documentElement.style,
r = "string" == typeof s.transition ? "transition" : "WebkitTransition",
a = "string" == typeof s.transform ? "transform" : "WebkitTransform",
u = {
WebkitTransition: "webkitTransitionEnd",
transition: "transitionend"
} [r],
h = {
transform: a,
transition: r,
transitionDuration: r + "Duration",
transitionProperty: r + "Property",
transitionDelay: r + "Delay"
},
d = o.prototype = Object.create(t.prototype);
d.constructor = o, d._create = function () {
this._transn = {
ingProperties: {},
clean: {},
onEnd: {}
}, this.css({
position: "absolute"
})
}, d.handleEvent = function (t) {
var e = "on" + t.type;
this[e] && this[e](t)
}, d.getSize = function () {
this.size = e(this.element)
}, d.css = function (t) {
var e = this.element.style;
for (var i in t) {
var o = h[i] || i;
e[o] = t[i]
}
}, d.getPosition = function () {
var t = getComputedStyle(this.element),
e = this.layout._getOption("originLeft"),
i = this.layout._getOption("originTop"),
o = t[e ? "left" : "right"],
n = t[i ? "top" : "bottom"],
s = parseFloat(o),
r = parseFloat(n),
a = this.layout.size;
o.indexOf("%") != -1 && (s = s / 100 * a.width), n.indexOf("%") != -1 && (r = r / 100 * a.height), s = isNaN(s) ? 0 : s, r = isNaN(r) ? 0 : r, s -= e ? a.paddingLeft : a.paddingRight, r -= i ? a.paddingTop : a.paddingBottom, this.position.x = s, this.position.y = r
}, d.layoutPosition = function () {
var t = this.layout.size,
e = {},
i = this.layout._getOption("originLeft"),
o = this.layout._getOption("originTop"),
n = i ? "paddingLeft" : "paddingRight",
s = i ? "left" : "right",
r = i ? "right" : "left",
a = this.position.x + t[n];
e[s] = this.getXValue(a), e[r] = "";
var u = o ? "paddingTop" : "paddingBottom",
h = o ? "top" : "bottom",
d = o ? "bottom" : "top",
l = this.position.y + t[u];
e[h] = this.getYValue(l), e[d] = "", this.css(e), this.emitEvent("layout", [this])
}, d.getXValue = function (t) {
var e = this.layout._getOption("horizontal");
return this.layout.options.percentPosition && !e ? t / this.layout.size.width * 100 + "%" : t + "px"
}, d.getYValue = function (t) {
var e = this.layout._getOption("horizontal");
return this.layout.options.percentPosition && e ? t / this.layout.size.height * 100 + "%" : t + "px"
}, d._transitionTo = function (t, e) {
this.getPosition();
var i = this.position.x,
o = this.position.y,
n = t == this.position.x && e == this.position.y;
if (this.setPosition(t, e), n && !this.isTransitioning) return void this.layoutPosition();
var s = t - i,
r = e - o,
a = {};
a.transform = this.getTranslate(s, r), this.transition({
to: a,
onTransitionEnd: {
transform: this.layoutPosition
},
isCleaning: !0
})
}, d.getTranslate = function (t, e) {
var i = this.layout._getOption("originLeft"),
o = this.layout._getOption("originTop");
return t = i ? t : -t, e = o ? e : -e, "translate3d(" + t + "px, " + e + "px, 0)"
}, d.goTo = function (t, e) {
this.setPosition(t, e), this.layoutPosition()
}, d.moveTo = d._transitionTo, d.setPosition = function (t, e) {
this.position.x = parseFloat(t), this.position.y = parseFloat(e)
}, d._nonTransition = function (t) {
this.css(t.to), t.isCleaning && this._removeStyles(t.to);
for (var e in t.onTransitionEnd) t.onTransitionEnd[e].call(this)
}, d.transition = function (t) {
if (!parseFloat(this.layout.options.transitionDuration)) return void this._nonTransition(t);
var e = this._transn;
for (var i in t.onTransitionEnd) e.onEnd[i] = t.onTransitionEnd[i];
for (i in t.to) e.ingProperties[i] = !0, t.isCleaning && (e.clean[i] = !0);
if (t.from) {
this.css(t.from);
var o = this.element.offsetHeight;
o = null
}
this.enableTransition(t.to), this.css(t.to), this.isTransitioning = !0
};
var l = "opacity," + n(a);
d.enableTransition = function () {
if (!this.isTransitioning) {
var t = this.layout.options.transitionDuration;
t = "number" == typeof t ? t + "ms" : t, this.css({
transitionProperty: l,
transitionDuration: t,
transitionDelay: this.staggerDelay || 0
}), this.element.addEventListener(u, this, !1)
}
}, d.onwebkitTransitionEnd = function (t) {
this.ontransitionend(t)
}, d.onotransitionend = function (t) {
this.ontransitionend(t)
};
var f = {
"-webkit-transform": "transform"
};
d.ontransitionend = function (t) {
if (t.target === this.element) {
var e = this._transn,
o = f[t.propertyName] || t.propertyName;
if (delete e.ingProperties[o], i(e.ingProperties) && this.disableTransition(), o in e.clean && (this.element.style[t.propertyName] = "", delete e.clean[o]), o in e.onEnd) {
var n = e.onEnd[o];
n.call(this), delete e.onEnd[o]
}
this.emitEvent("transitionEnd", [this])
}
}, d.disableTransition = function () {
this.removeTransitionStyles(), this.element.removeEventListener(u, this, !1), this.isTransitioning = !1
}, d._removeStyles = function (t) {
var e = {};
for (var i in t) e[i] = "";
this.css(e)
};
var c = {
transitionProperty: "",
transitionDuration: "",
transitionDelay: ""
};
return d.removeTransitionStyles = function () {
this.css(c)
}, d.stagger = function (t) {
t = isNaN(t) ? 0 : t, this.staggerDelay = t + "ms"
}, d.removeElem = function () {
this.element.parentNode.removeChild(this.element), this.css({
display: ""
}), this.emitEvent("remove", [this])
}, d.remove = function () {
return r && parseFloat(this.layout.options.transitionDuration) ? (this.once("transitionEnd", function () {
this.removeElem()
}), void this.hide()) : void this.removeElem()
}, d.reveal = function () {
delete this.isHidden, this.css({
display: ""
});
var t = this.layout.options,
e = {},
i = this.getHideRevealTransitionEndProperty("visibleStyle");
e[i] = this.onRevealTransitionEnd, this.transition({
from: t.hiddenStyle,
to: t.visibleStyle,
isCleaning: !0,
onTransitionEnd: e
})
}, d.onRevealTransitionEnd = function () {
this.isHidden || this.emitEvent("reveal")
}, d.getHideRevealTransitionEndProperty = function (t) {
var e = this.layout.options[t];
if (e.opacity) return "opacity";
for (var i in e) return i
}, d.hide = function () {
this.isHidden = !0, this.css({
display: ""
});
var t = this.layout.options,
e = {},
i = this.getHideRevealTransitionEndProperty("hiddenStyle");
e[i] = this.onHideTransitionEnd, this.transition({
from: t.visibleStyle,
to: t.hiddenStyle,
isCleaning: !0,
onTransitionEnd: e
})
}, d.onHideTransitionEnd = function () {
this.isHidden && (this.css({
display: "none"
}), this.emitEvent("hide"))
}, d.destroy = function () {
this.css({
position: "",
left: "",
right: "",
top: "",
bottom: "",
transition: "",
transform: ""
})
}, o
}),
function (t, e) {
"use strict";
"function" == typeof define && define.amd ? define("outlayer/outlayer", ["ev-emitter/ev-emitter", "get-size/get-size", "fizzy-ui-utils/utils", "./item"], function (i, o, n, s) {
return e(t, i, o, n, s)
}) : "object" == typeof module && module.exports ? module.exports = e(t, require("ev-emitter"), require("get-size"), require("fizzy-ui-utils"), require("./item")) : t.Outlayer = e(t, t.EvEmitter, t.getSize, t.fizzyUIUtils, t.Outlayer.Item)
}(window, function (t, e, i, o, n) {
"use strict";
function s(t, e) {
var i = o.getQueryElement(t);
if (!i) return void(u && u.error("Bad element for " + this.constructor.namespace + ": " + (i || t)));
this.element = i, h && (this.$element = h(this.element)), this.options = o.extend({}, this.constructor.defaults), this.option(e);
var n = ++l;
this.element.outlayerGUID = n, f[n] = this, this._create();
var s = this._getOption("initLayout");
s && this.layout()
}
function r(t) {
function e() {
t.apply(this, arguments)
}
return e.prototype = Object.create(t.prototype), e.prototype.constructor = e, e
}
function a(t) {
if ("number" == typeof t) return t;
var e = t.match(/(^\d*\.?\d*)(\w*)/),
i = e && e[1],
o = e && e[2];
if (!i.length) return 0;
i = parseFloat(i);
var n = m[o] || 1;
return i * n
}
var u = t.console,
h = t.jQuery,
d = function () {},
l = 0,
f = {};
s.namespace = "outlayer", s.Item = n, s.defaults = {
containerStyle: {
position: "relative"
},
initLayout: !0,
originLeft: !0,
originTop: !0,
resize: !0,
resizeContainer: !0,
transitionDuration: "0.4s",
hiddenStyle: {
opacity: 0,
transform: "scale(0.001)"
},
visibleStyle: {
opacity: 1,
transform: "scale(1)"
}
};
var c = s.prototype;
o.extend(c, e.prototype), c.option = function (t) {
o.extend(this.options, t)
}, c._getOption = function (t) {
var e = this.constructor.compatOptions[t];
return e && void 0 !== this.options[e] ? this.options[e] : this.options[t]
}, s.compatOptions = {
initLayout: "isInitLayout",
horizontal: "isHorizontal",
layoutInstant: "isLayoutInstant",
originLeft: "isOriginLeft",
originTop: "isOriginTop",
resize: "isResizeBound",
resizeContainer: "isResizingContainer"
}, c._create = function () {
this.reloadItems(), this.stamps = [], this.stamp(this.options.stamp), o.extend(this.element.style, this.options.containerStyle);
var t = this._getOption("resize");
t && this.bindResize()
}, c.reloadItems = function () {
this.items = this._itemize(this.element.children)
}, c._itemize = function (t) {
for (var e = this._filterFindItemElements(t), i = this.constructor.Item, o = [], n = 0; n < e.length; n++) {
var s = e[n],
r = new i(s, this);
o.push(r)
}
return o
}, c._filterFindItemElements = function (t) {
return o.filterFindElements(t, this.options.itemSelector)
}, c.getItemElements = function () {
return this.items.map(function (t) {
return t.element
})
}, c.layout = function () {
this._resetLayout(), this._manageStamps();
var t = this._getOption("layoutInstant"),
e = void 0 !== t ? t : !this._isLayoutInited;
this.layoutItems(this.items, e), this._isLayoutInited = !0
}, c._init = c.layout, c._resetLayout = function () {
this.getSize()
}, c.getSize = function () {
this.size = i(this.element)
}, c._getMeasurement = function (t, e) {
var o, n = this.options[t];
n ? ("string" == typeof n ? o = this.element.querySelector(n) : n instanceof HTMLElement && (o = n), this[t] = o ? i(o)[e] : n) : this[t] = 0
}, c.layoutItems = function (t, e) {
t = this._getItemsForLayout(t), this._layoutItems(t, e), this._postLayout()
}, c._getItemsForLayout = function (t) {
return t.filter(function (t) {
return !t.isIgnored
})
}, c._layoutItems = function (t, e) {
if (this._emitCompleteOnItems("layout", t), t && t.length) {
var i = [];
t.forEach(function (t) {
var o = this._getItemLayoutPosition(t);
o.item = t, o.isInstant = e || t.isLayoutInstant, i.push(o)
}, this), this._processLayoutQueue(i)
}
}, c._getItemLayoutPosition = function () {
return {
x: 0,
y: 0
}
}, c._processLayoutQueue = function (t) {
this.updateStagger(), t.forEach(function (t, e) {
this._positionItem(t.item, t.x, t.y, t.isInstant, e)
}, this)
}, c.updateStagger = function () {
var t = this.options.stagger;
return null === t || void 0 === t ? void(this.stagger = 0) : (this.stagger = a(t), this.stagger)
}, c._positionItem = function (t, e, i, o, n) {
o ? t.goTo(e, i) : (t.stagger(n * this.stagger), t.moveTo(e, i))
}, c._postLayout = function () {
this.resizeContainer()
}, c.resizeContainer = function () {
var t = this._getOption("resizeContainer");
if (t) {
var e = this._getContainerSize();
e && (this._setContainerMeasure(e.width, !0), this._setContainerMeasure(e.height, !1))
}
}, c._getContainerSize = d, c._setContainerMeasure = function (t, e) {
if (void 0 !== t) {
var i = this.size;
i.isBorderBox && (t += e ? i.paddingLeft + i.paddingRight + i.borderLeftWidth + i.borderRightWidth : i.paddingBottom + i.paddingTop + i.borderTopWidth + i.borderBottomWidth), t = Math.max(t, 0), this.element.style[e ? "width" : "height"] = t + "px"
}
}, c._emitCompleteOnItems = function (t, e) {
function i() {
n.dispatchEvent(t + "Complete", null, [e])
}
function o() {
r++, r == s && i()
}
var n = this,
s = e.length;
if (!e || !s) return void i();
var r = 0;
e.forEach(function (e) {
e.once(t, o)
})
}, c.dispatchEvent = function (t, e, i) {
var o = e ? [e].concat(i) : i;
if (this.emitEvent(t, o), h)
if (this.$element = this.$element || h(this.element), e) {
var n = h.Event(e);
n.type = t, this.$element.trigger(n, i)
} else this.$element.trigger(t, i)
}, c.ignore = function (t) {
var e = this.getItem(t);
e && (e.isIgnored = !0)
}, c.unignore = function (t) {
var e = this.getItem(t);
e && delete e.isIgnored
}, c.stamp = function (t) {
t = this._find(t), t && (this.stamps = this.stamps.concat(t), t.forEach(this.ignore, this))
}, c.unstamp = function (t) {
t = this._find(t), t && t.forEach(function (t) {
o.removeFrom(this.stamps, t), this.unignore(t)
}, this)
}, c._find = function (t) {
if (t) return "string" == typeof t && (t = this.element.querySelectorAll(t)), t = o.makeArray(t)
}, c._manageStamps = function () {
this.stamps && this.stamps.length && (this._getBoundingRect(), this.stamps.forEach(this._manageStamp, this))
}, c._getBoundingRect = function () {
var t = this.element.getBoundingClientRect(),
e = this.size;
this._boundingRect = {
left: t.left + e.paddingLeft + e.borderLeftWidth,
top: t.top + e.paddingTop + e.borderTopWidth,
right: t.right - (e.paddingRight + e.borderRightWidth),
bottom: t.bottom - (e.paddingBottom + e.borderBottomWidth)
}
}, c._manageStamp = d, c._getElementOffset = function (t) {
var e = t.getBoundingClientRect(),
o = this._boundingRect,
n = i(t),
s = {
left: e.left - o.left - n.marginLeft,
top: e.top - o.top - n.marginTop,
right: o.right - e.right - n.marginRight,
bottom: o.bottom - e.bottom - n.marginBottom
};
return s
}, c.handleEvent = o.handleEvent, c.bindResize = function () {
t.addEventListener("resize", this), this.isResizeBound = !0
}, c.unbindResize = function () {
t.removeEventListener("resize", this), this.isResizeBound = !1
}, c.onresize = function () {
this.resize()
}, o.debounceMethod(s, "onresize", 100), c.resize = function () {
this.isResizeBound && this.needsResizeLayout() && this.layout()
}, c.needsResizeLayout = function () {
var t = i(this.element),
e = this.size && t;
return e && t.innerWidth !== this.size.innerWidth
}, c.addItems = function (t) {
var e = this._itemize(t);
return e.length && (this.items = this.items.concat(e)), e
}, c.appended = function (t) {
var e = this.addItems(t);
e.length && (this.layoutItems(e, !0), this.reveal(e))
}, c.prepended = function (t) {
var e = this._itemize(t);
if (e.length) {
var i = this.items.slice(0);
this.items = e.concat(i), this._resetLayout(), this._manageStamps(), this.layoutItems(e, !0), this.reveal(e), this.layoutItems(i)
}
}, c.reveal = function (t) {
if (this._emitCompleteOnItems("reveal", t), t && t.length) {
var e = this.updateStagger();
t.forEach(function (t, i) {
t.stagger(i * e), t.reveal()
})
}
}, c.hide = function (t) {
if (this._emitCompleteOnItems("hide", t), t && t.length) {
var e = this.updateStagger();
t.forEach(function (t, i) {
t.stagger(i * e), t.hide()
})
}
}, c.revealItemElements = function (t) {
var e = this.getItems(t);
this.reveal(e)
}, c.hideItemElements = function (t) {
var e = this.getItems(t);
this.hide(e)
}, c.getItem = function (t) {
for (var e = 0; e < this.items.length; e++) {
var i = this.items[e];
if (i.element == t) return i
}
}, c.getItems = function (t) {
t = o.makeArray(t);
var e = [];
return t.forEach(function (t) {
var i = this.getItem(t);
i && e.push(i)
}, this), e
}, c.remove = function (t) {
var e = this.getItems(t);
this._emitCompleteOnItems("remove", e), e && e.length && e.forEach(function (t) {
t.remove(), o.removeFrom(this.items, t)
}, this)
}, c.destroy = function () {
var t = this.element.style;
t.height = "", t.position = "", t.width = "", this.items.forEach(function (t) {
t.destroy()
}), this.unbindResize();
var e = this.element.outlayerGUID;
delete f[e], delete this.element.outlayerGUID, h && h.removeData(this.element, this.constructor.namespace)
}, s.data = function (t) {
t = o.getQueryElement(t);
var e = t && t.outlayerGUID;
return e && f[e]
}, s.create = function (t, e) {
var i = r(s);
return i.defaults = o.extend({}, s.defaults), o.extend(i.defaults, e), i.compatOptions = o.extend({}, s.compatOptions), i.namespace = t, i.data = s.data, i.Item = r(n), o.htmlInit(i, t), h && h.bridget && h.bridget(t, i), i
};
var m = {
ms: 1,
s: 1e3
};
return s.Item = n, s
}),
function (t, e) {
"function" == typeof define && define.amd ? define("isotope-layout/js/item", ["outlayer/outlayer"], e) : "object" == typeof module && module.exports ? module.exports = e(require("outlayer")) : (t.Isotope = t.Isotope || {}, t.Isotope.Item = e(t.Outlayer))
}(window, function (t) {
"use strict";
function e() {
t.Item.apply(this, arguments)
}
var i = e.prototype = Object.create(t.Item.prototype),
o = i._create;
i._create = function () {
this.id = this.layout.itemGUID++, o.call(this), this.sortData = {}
}, i.updateSortData = function () {
if (!this.isIgnored) {
this.sortData.id = this.id, this.sortData["original-order"] = this.id, this.sortData.random = Math.random();
var t = this.layout.options.getSortData,
e = this.layout._sorters;
for (var i in t) {
var o = e[i];
this.sortData[i] = o(this.element, this)
}
}
};
var n = i.destroy;
return i.destroy = function () {
n.apply(this, arguments), this.css({
display: ""
})
}, e
}),
function (t, e) {
"function" == typeof define && define.amd ? define("isotope-layout/js/layout-mode", ["get-size/get-size", "outlayer/outlayer"], e) : "object" == typeof module && module.exports ? module.exports = e(require("get-size"), require("outlayer")) : (t.Isotope = t.Isotope || {}, t.Isotope.LayoutMode = e(t.getSize, t.Outlayer))
}(window, function (t, e) {
"use strict";
function i(t) {
this.isotope = t, t && (this.options = t.options[this.namespace], this.element = t.element, this.items = t.filteredItems, this.size = t.size)
}
var o = i.prototype,
n = ["_resetLayout", "_getItemLayoutPosition", "_manageStamp", "_getContainerSize", "_getElementOffset", "needsResizeLayout", "_getOption"];
return n.forEach(function (t) {
o[t] = function () {
return e.prototype[t].apply(this.isotope, arguments)
}
}), o.needsVerticalResizeLayout = function () {
var e = t(this.isotope.element),
i = this.isotope.size && e;
return i && e.innerHeight != this.isotope.size.innerHeight
}, o._getMeasurement = function () {
this.isotope._getMeasurement.apply(this, arguments)
}, o.getColumnWidth = function () {
this.getSegmentSize("column", "Width")
}, o.getRowHeight = function () {
this.getSegmentSize("row", "Height")
}, o.getSegmentSize = function (t, e) {
var i = t + e,
o = "outer" + e;
if (this._getMeasurement(i, o), !this[i]) {
var n = this.getFirstItemSize();
this[i] = n && n[o] || this.isotope.size["inner" + e]
}
}, o.getFirstItemSize = function () {
var e = this.isotope.filteredItems[0];
return e && e.element && t(e.element)
}, o.layout = function () {
this.isotope.layout.apply(this.isotope, arguments)
}, o.getSize = function () {
this.isotope.getSize(), this.size = this.isotope.size
}, i.modes = {}, i.create = function (t, e) {
function n() {
i.apply(this, arguments)
}
return n.prototype = Object.create(o), n.prototype.constructor = n, e && (n.options = e), n.prototype.namespace = t, i.modes[t] = n, n
}, i
}),
function (t, e) {
"function" == typeof define && define.amd ? define("masonry-layout/masonry", ["outlayer/outlayer", "get-size/get-size"], e) : "object" == typeof module && module.exports ? module.exports = e(require("outlayer"), require("get-size")) : t.Masonry = e(t.Outlayer, t.getSize)
}(window, function (t, e) {
var i = t.create("masonry");
i.compatOptions.fitWidth = "isFitWidth";
var o = i.prototype;
return o._resetLayout = function () {
this.getSize(), this._getMeasurement("columnWidth", "outerWidth"), this._getMeasurement("gutter", "outerWidth"), this.measureColumns(), this.colYs = [];
for (var t = 0; t < this.cols; t++) this.colYs.push(0);
this.maxY = 0, this.horizontalColIndex = 0
}, o.measureColumns = function () {
if (this.getContainerWidth(), !this.columnWidth) {
var t = this.items[0],
i = t && t.element;
this.columnWidth = i && e(i).outerWidth || this.containerWidth
}
var o = this.columnWidth += this.gutter,
n = this.containerWidth + this.gutter,
s = n / o,
r = o - n % o,
a = r && r < 1 ? "round" : "floor";
s = Math[a](s), this.cols = Math.max(s, 1)
}, o.getContainerWidth = function () {
var t = this._getOption("fitWidth"),
i = t ? this.element.parentNode : this.element,
o = e(i);
this.containerWidth = o && o.innerWidth
}, o._getItemLayoutPosition = function (t) {
t.getSize();
var e = t.size.outerWidth % this.columnWidth,
i = e && e < 1 ? "round" : "ceil",
o = Math[i](t.size.outerWidth / this.columnWidth);
o = Math.min(o, this.cols);
for (var n = this.options.horizontalOrder ? "_getHorizontalColPosition" : "_getTopColPosition", s = this[n](o, t), r = {
x: this.columnWidth * s.col,
y: s.y
}, a = s.y + t.size.outerHeight, u = o + s.col, h = s.col; h < u; h++) this.colYs[h] = a;
return r
}, o._getTopColPosition = function (t) {
var e = this._getTopColGroup(t),
i = Math.min.apply(Math, e);
return {
col: e.indexOf(i),
y: i
}
}, o._getTopColGroup = function (t) {
if (t < 2) return this.colYs;
for (var e = [], i = this.cols + 1 - t, o = 0; o < i; o++) e[o] = this._getColGroupY(o, t);
return e
}, o._getColGroupY = function (t, e) {
if (e < 2) return this.colYs[t];
var i = this.colYs.slice(t, t + e);
return Math.max.apply(Math, i)
}, o._getHorizontalColPosition = function (t, e) {
var i = this.horizontalColIndex % this.cols,
o = t > 1 && i + t > this.cols;
i = o ? 0 : i;
var n = e.size.outerWidth && e.size.outerHeight;
return this.horizontalColIndex = n ? i + t : this.horizontalColIndex, {
col: i,
y: this._getColGroupY(i, t)
}
}, o._manageStamp = function (t) {
var i = e(t),
o = this._getElementOffset(t),
n = this._getOption("originLeft"),
s = n ? o.left : o.right,
r = s + i.outerWidth,
a = Math.floor(s / this.columnWidth);
a = Math.max(0, a);
var u = Math.floor(r / this.columnWidth);
u -= r % this.columnWidth ? 0 : 1, u = Math.min(this.cols - 1, u);
for (var h = this._getOption("originTop"), d = (h ? o.top : o.bottom) + i.outerHeight, l = a; l <= u; l++) this.colYs[l] = Math.max(d, this.colYs[l])
}, o._getContainerSize = function () {
this.maxY = Math.max.apply(Math, this.colYs);
var t = {
height: this.maxY
};
return this._getOption("fitWidth") && (t.width = this._getContainerFitWidth()), t
}, o._getContainerFitWidth = function () {
for (var t = 0, e = this.cols; --e && 0 === this.colYs[e];) t++;
return (this.cols - t) * this.columnWidth - this.gutter
}, o.needsResizeLayout = function () {
var t = this.containerWidth;
return this.getContainerWidth(), t != this.containerWidth
}, i
}),
function (t, e) {
"function" == typeof define && define.amd ? define("isotope-layout/js/layout-modes/masonry", ["../layout-mode", "masonry-layout/masonry"], e) : "object" == typeof module && module.exports ? module.exports = e(require("../layout-mode"), require("masonry-layout")) : e(t.Isotope.LayoutMode, t.Masonry)
}(window, function (t, e) {
"use strict";
var i = t.create("masonry"),
o = i.prototype,
n = {
_getElementOffset: !0,
layout: !0,
_getMeasurement: !0
};
for (var s in e.prototype) n[s] || (o[s] = e.prototype[s]);
var r = o.measureColumns;
o.measureColumns = function () {
this.items = this.isotope.filteredItems, r.call(this)
};
var a = o._getOption;
return o._getOption = function (t) {
return "fitWidth" == t ? void 0 !== this.options.isFitWidth ? this.options.isFitWidth : this.options.fitWidth : a.apply(this.isotope, arguments)
}, i
}),
function (t, e) {
"function" == typeof define && define.amd ? define("isotope-layout/js/layout-modes/fit-rows", ["../layout-mode"], e) : "object" == typeof exports ? module.exports = e(require("../layout-mode")) : e(t.Isotope.LayoutMode)
}(window, function (t) {
"use strict";
var e = t.create("fitRows"),
i = e.prototype;
return i._resetLayout = function () {
this.x = 0, this.y = 0, this.maxY = 0, this._getMeasurement("gutter", "outerWidth")
}, i._getItemLayoutPosition = function (t) {
t.getSize();
var e = t.size.outerWidth + this.gutter,
i = this.isotope.size.innerWidth + this.gutter;
0 !== this.x && e + this.x > i && (this.x = 0, this.y = this.maxY);
var o = {
x: this.x,
y: this.y
};
return this.maxY = Math.max(this.maxY, this.y + t.size.outerHeight), this.x += e, o
}, i._getContainerSize = function () {
return {
height: this.maxY
}
}, e
}),
function (t, e) {
"function" == typeof define && define.amd ? define("isotope-layout/js/layout-modes/vertical", ["../layout-mode"], e) : "object" == typeof module && module.exports ? module.exports = e(require("../layout-mode")) : e(t.Isotope.LayoutMode)
}(window, function (t) {
"use strict";
var e = t.create("vertical", {
horizontalAlignment: 0
}),
i = e.prototype;
return i._resetLayout = function () {
this.y = 0
}, i._getItemLayoutPosition = function (t) {
t.getSize();
var e = (this.isotope.size.innerWidth - t.size.outerWidth) * this.options.horizontalAlignment,
i = this.y;
return this.y += t.size.outerHeight, {
x: e,
y: i
}
}, i._getContainerSize = function () {
return {
height: this.y
}
}, e
}),
function (t, e) {
"function" == typeof define && define.amd ? define(["outlayer/outlayer", "get-size/get-size", "desandro-matches-selector/matches-selector", "fizzy-ui-utils/utils", "isotope-layout/js/item", "isotope-layout/js/layout-mode", "isotope-layout/js/layout-modes/masonry", "isotope-layout/js/layout-modes/fit-rows", "isotope-layout/js/layout-modes/vertical"], function (i, o, n, s, r, a) {
return e(t, i, o, n, s, r, a)
}) : "object" == typeof module && module.exports ? module.exports = e(t, require("outlayer"), require("get-size"), require("desandro-matches-selector"), require("fizzy-ui-utils"), require("isotope-layout/js/item"), require("isotope-layout/js/layout-mode"), require("isotope-layout/js/layout-modes/masonry"), require("isotope-layout/js/layout-modes/fit-rows"), require("isotope-layout/js/layout-modes/vertical")) : t.Isotope = e(t, t.Outlayer, t.getSize, t.matchesSelector, t.fizzyUIUtils, t.Isotope.Item, t.Isotope.LayoutMode)
}(window, function (t, e, i, o, n, s, r) {
function a(t, e) {
return function (i, o) {
for (var n = 0; n < t.length; n++) {
var s = t[n],
r = i.sortData[s],
a = o.sortData[s];
if (r > a || r < a) {
var u = void 0 !== e[s] ? e[s] : e,
h = u ? 1 : -1;
return (r > a ? 1 : -1) * h
}
}
return 0
}
}
var u = t.jQuery,
h = String.prototype.trim ? function (t) {
return t.trim()
} : function (t) {
return t.replace(/^\s+|\s+$/g, "")
},
d = e.create("isotope", {
layoutMode: "masonry",
isJQueryFiltering: !0,
sortAscending: !0
});
d.Item = s, d.LayoutMode = r;
var l = d.prototype;
l._create = function () {
this.itemGUID = 0, this._sorters = {}, this._getSorters(), e.prototype._create.call(this), this.modes = {}, this.filteredItems = this.items, this.sortHistory = ["original-order"];
for (var t in r.modes) this._initLayoutMode(t)
}, l.reloadItems = function () {
this.itemGUID = 0, e.prototype.reloadItems.call(this)
}, l._itemize = function () {
for (var t = e.prototype._itemize.apply(this, arguments), i = 0; i < t.length; i++) {
var o = t[i];
o.id = this.itemGUID++
}
return this._updateItemsSortData(t), t
}, l._initLayoutMode = function (t) {
var e = r.modes[t],
i = this.options[t] || {};
this.options[t] = e.options ? n.extend(e.options, i) : i, this.modes[t] = new e(this)
}, l.layout = function () {
return !this._isLayoutInited && this._getOption("initLayout") ? void this.arrange() : void this._layout()
}, l._layout = function () {
var t = this._getIsInstant();
this._resetLayout(), this._manageStamps(), this.layoutItems(this.filteredItems, t), this._isLayoutInited = !0
}, l.arrange = function (t) {
this.option(t), this._getIsInstant();
var e = this._filter(this.items);
this.filteredItems = e.matches, this._bindArrangeComplete(), this._isInstant ? this._noTransition(this._hideReveal, [e]) : this._hideReveal(e), this._sort(), this._layout()
}, l._init = l.arrange, l._hideReveal = function (t) {
this.reveal(t.needReveal), this.hide(t.needHide)
}, l._getIsInstant = function () {
var t = this._getOption("layoutInstant"),
e = void 0 !== t ? t : !this._isLayoutInited;
return this._isInstant = e, e
}, l._bindArrangeComplete = function () {
function t() {
e && i && o && n.dispatchEvent("arrangeComplete", null, [n.filteredItems])
}
var e, i, o, n = this;
this.once("layoutComplete", function () {
e = !0, t()
}), this.once("hideComplete", function () {
i = !0, t()
}), this.once("revealComplete", function () {
o = !0, t()
})
}, l._filter = function (t) {
var e = this.options.filter;
e = e || "*";
for (var i = [], o = [], n = [], s = this._getFilterTest(e), r = 0; r < t.length; r++) {
var a = t[r];
if (!a.isIgnored) {
var u = s(a);
u && i.push(a), u && a.isHidden ? o.push(a) : u || a.isHidden || n.push(a)
}
}
return {
matches: i,
needReveal: o,
needHide: n
}
}, l._getFilterTest = function (t) {
return u && this.options.isJQueryFiltering ? function (e) {
return u(e.element).is(t);
} : "function" == typeof t ? function (e) {
return t(e.element)
} : function (e) {
return o(e.element, t)
}
}, l.updateSortData = function (t) {
var e;
t ? (t = n.makeArray(t), e = this.getItems(t)) : e = this.items, this._getSorters(), this._updateItemsSortData(e)
}, l._getSorters = function () {
var t = this.options.getSortData;
for (var e in t) {
var i = t[e];
this._sorters[e] = f(i)
}
}, l._updateItemsSortData = function (t) {
for (var e = t && t.length, i = 0; e && i < e; i++) {
var o = t[i];
o.updateSortData()
}
};
var f = function () {
function t(t) {
if ("string" != typeof t) return t;
var i = h(t).split(" "),
o = i[0],
n = o.match(/^\[(.+)\]$/),
s = n && n[1],
r = e(s, o),
a = d.sortDataParsers[i[1]];
return t = a ? function (t) {
return t && a(r(t))
} : function (t) {
return t && r(t)
}
}
function e(t, e) {
return t ? function (e) {
return e.getAttribute(t)
} : function (t) {
var i = t.querySelector(e);
return i && i.textContent
}
}
return t
}();
d.sortDataParsers = {
parseInt: function (t) {
return parseInt(t, 10)
},
parseFloat: function (t) {
return parseFloat(t)
}
}, l._sort = function () {
if (this.options.sortBy) {
var t = n.makeArray(this.options.sortBy);
this._getIsSameSortBy(t) || (this.sortHistory = t.concat(this.sortHistory));
var e = a(this.sortHistory, this.options.sortAscending);
this.filteredItems.sort(e)
}
}, l._getIsSameSortBy = function (t) {
for (var e = 0; e < t.length; e++)
if (t[e] != this.sortHistory[e]) return !1;
return !0
}, l._mode = function () {
var t = this.options.layoutMode,
e = this.modes[t];
if (!e) throw new Error("No layout mode: " + t);
return e.options = this.options[t], e
}, l._resetLayout = function () {
e.prototype._resetLayout.call(this), this._mode()._resetLayout()
}, l._getItemLayoutPosition = function (t) {
return this._mode()._getItemLayoutPosition(t)
}, l._manageStamp = function (t) {
this._mode()._manageStamp(t)
}, l._getContainerSize = function () {
return this._mode()._getContainerSize()
}, l.needsResizeLayout = function () {
return this._mode().needsResizeLayout()
}, l.appended = function (t) {
var e = this.addItems(t);
if (e.length) {
var i = this._filterRevealAdded(e);
this.filteredItems = this.filteredItems.concat(i)
}
}, l.prepended = function (t) {
var e = this._itemize(t);
if (e.length) {
this._resetLayout(), this._manageStamps();
var i = this._filterRevealAdded(e);
this.layoutItems(this.filteredItems), this.filteredItems = i.concat(this.filteredItems), this.items = e.concat(this.items)
}
}, l._filterRevealAdded = function (t) {
var e = this._filter(t);
return this.hide(e.needHide), this.reveal(e.matches), this.layoutItems(e.matches, !0), e.matches
}, l.insert = function (t) {
var e = this.addItems(t);
if (e.length) {
var i, o, n = e.length;
for (i = 0; i < n; i++) o = e[i], this.element.appendChild(o.element);
var s = this._filter(e).matches;
for (i = 0; i < n; i++) e[i].isLayoutInstant = !0;
for (this.arrange(), i = 0; i < n; i++) delete e[i].isLayoutInstant;
this.reveal(s)
}
};
var c = l.remove;
return l.remove = function (t) {
t = n.makeArray(t);
var e = this.getItems(t);
c.call(this, t);
for (var i = e && e.length, o = 0; i && o < i; o++) {
var s = e[o];
n.removeFrom(this.filteredItems, s)
}
}, l.shuffle = function () {
for (var t = 0; t < this.items.length; t++) {
var e = this.items[t];
e.sortData.random = Math.random()
}
this.options.sortBy = "random", this._sort(), this._layout()
}, l._noTransition = function (t, e) {
var i = this.options.transitionDuration;
this.options.transitionDuration = 0;
var o = t.apply(this, e);
return this.options.transitionDuration = i, o
}, l.getFilteredItemElements = function () {
return this.filteredItems.map(function (t) {
return t.element
})
}, d
});
/*
imagesLoaded
Version: 4.1.4
Plugin URI: https://imagesloaded.desandro.com/
License: Released under the MIT License
*/
! function (e, t) {
"function" == typeof define && define.amd ? define("ev-emitter/ev-emitter", t) : "object" == typeof module && module.exports ? module.exports = t() : e.EvEmitter = t()
}("undefined" != typeof window ? window : this, function () {
function e() {}
var t = e.prototype;
return t.on = function (e, t) {
if (e && t) {
var i = this._events = this._events || {},
n = i[e] = i[e] || [];
return n.indexOf(t) == -1 && n.push(t), this
}
}, t.once = function (e, t) {
if (e && t) {
this.on(e, t);
var i = this._onceEvents = this._onceEvents || {},
n = i[e] = i[e] || {};
return n[t] = !0, this
}
}, t.off = function (e, t) {
var i = this._events && this._events[e];
if (i && i.length) {
var n = i.indexOf(t);
return n != -1 && i.splice(n, 1), this
}
}, t.emitEvent = function (e, t) {
var i = this._events && this._events[e];
if (i && i.length) {
i = i.slice(0), t = t || [];
for (var n = this._onceEvents && this._onceEvents[e], o = 0; o < i.length; o++) {
var r = i[o],
s = n && n[r];
s && (this.off(e, r), delete n[r]), r.apply(this, t)
}
return this
}
}, t.allOff = function () {
delete this._events, delete this._onceEvents
}, e
}),
function (e, t) {
"use strict";
"function" == typeof define && define.amd ? define(["ev-emitter/ev-emitter"], function (i) {
return t(e, i)
}) : "object" == typeof module && module.exports ? module.exports = t(e, require("ev-emitter")) : e.imagesLoaded = t(e, e.EvEmitter)
}("undefined" != typeof window ? window : this, function (e, t) {
function i(e, t) {
for (var i in t) e[i] = t[i];
return e
}
function n(e) {
if (Array.isArray(e)) return e;
var t = "object" == typeof e && "number" == typeof e.length;
return t ? d.call(e) : [e]
}
function o(e, t, r) {
if (!(this instanceof o)) return new o(e, t, r);
var s = e;
return "string" == typeof e && (s = document.querySelectorAll(e)), s ? (this.elements = n(s), this.options = i({}, this.options), "function" == typeof t ? r = t : i(this.options, t), r && this.on("always", r), this.getImages(), h && (this.jqDeferred = new h.Deferred), void setTimeout(this.check.bind(this))) : void a.error("Bad element for imagesLoaded " + (s || e))
}
function r(e) {
this.img = e
}
function s(e, t) {
this.url = e, this.element = t, this.img = new Image
}
var h = e.jQuery,
a = e.console,
d = Array.prototype.slice;
o.prototype = Object.create(t.prototype), o.prototype.options = {}, o.prototype.getImages = function () {
this.images = [], this.elements.forEach(this.addElementImages, this)
}, o.prototype.addElementImages = function (e) {
"IMG" == e.nodeName && this.addImage(e), this.options.background === !0 && this.addElementBackgroundImages(e);
var t = e.nodeType;
if (t && u[t]) {
for (var i = e.querySelectorAll("img"), n = 0; n < i.length; n++) {
var o = i[n];
this.addImage(o)
}
if ("string" == typeof this.options.background) {
var r = e.querySelectorAll(this.options.background);
for (n = 0; n < r.length; n++) {
var s = r[n];
this.addElementBackgroundImages(s)
}
}
}
};
var u = {
1: !0,
9: !0,
11: !0
};
return o.prototype.addElementBackgroundImages = function (e) {
var t = getComputedStyle(e);
if (t)
for (var i = /url\((['"])?(.*?)\1\)/gi, n = i.exec(t.backgroundImage); null !== n;) {
var o = n && n[2];
o && this.addBackground(o, e), n = i.exec(t.backgroundImage)
}
}, o.prototype.addImage = function (e) {
var t = new r(e);
this.images.push(t)
}, o.prototype.addBackground = function (e, t) {
var i = new s(e, t);
this.images.push(i)
}, o.prototype.check = function () {
function e(e, i, n) {
setTimeout(function () {
t.progress(e, i, n)
})
}
var t = this;
return this.progressedCount = 0, this.hasAnyBroken = !1, this.images.length ? void this.images.forEach(function (t) {
t.once("progress", e), t.check()
}) : void this.complete()
}, o.prototype.progress = function (e, t, i) {
this.progressedCount++, this.hasAnyBroken = this.hasAnyBroken || !e.isLoaded, this.emitEvent("progress", [this, e, t]), this.jqDeferred && this.jqDeferred.notify && this.jqDeferred.notify(this, e), this.progressedCount == this.images.length && this.complete(), this.options.debug && a && a.log("progress: " + i, e, t)
}, o.prototype.complete = function () {
var e = this.hasAnyBroken ? "fail" : "done";
if (this.isComplete = !0, this.emitEvent(e, [this]), this.emitEvent("always", [this]), this.jqDeferred) {
var t = this.hasAnyBroken ? "reject" : "resolve";
this.jqDeferred[t](this)
}
}, r.prototype = Object.create(t.prototype), r.prototype.check = function () {
var e = this.getIsImageComplete();
return e ? void this.confirm(0 !== this.img.naturalWidth, "naturalWidth") : (this.proxyImage = new Image, this.proxyImage.addEventListener("load", this), this.proxyImage.addEventListener("error", this), this.img.addEventListener("load", this), this.img.addEventListener("error", this), void(this.proxyImage.src = this.img.src))
}, r.prototype.getIsImageComplete = function () {
return this.img.complete && this.img.naturalWidth
}, r.prototype.confirm = function (e, t) {
this.isLoaded = e, this.emitEvent("progress", [this, this.img, t])
}, r.prototype.handleEvent = function (e) {
var t = "on" + e.type;
this[t] && this[t](e)
}, r.prototype.onload = function () {
this.confirm(!0, "onload"), this.unbindEvents()
}, r.prototype.onerror = function () {
this.confirm(!1, "onerror"), this.unbindEvents()
}, r.prototype.unbindEvents = function () {
this.proxyImage.removeEventListener("load", this), this.proxyImage.removeEventListener("error", this), this.img.removeEventListener("load", this), this.img.removeEventListener("error", this)
}, s.prototype = Object.create(r.prototype), s.prototype.check = function () {
this.img.addEventListener("load", this), this.img.addEventListener("error", this), this.img.src = this.url;
var e = this.getIsImageComplete();
e && (this.confirm(0 !== this.img.naturalWidth, "naturalWidth"), this.unbindEvents())
}, s.prototype.unbindEvents = function () {
this.img.removeEventListener("load", this), this.img.removeEventListener("error", this)
}, s.prototype.confirm = function (e, t) {
this.isLoaded = e, this.emitEvent("progress", [this, this.element, t])
}, o.makeJQueryPlugin = function (t) {
t = t || e.jQuery, t && (h = t, h.fn.imagesLoaded = function (e, t) {
var i = new o(this, e, t);
return i.jqDeferred.promise(h(this))
})
}, o.makeJQueryPlugin(), o
});
/*
justifiedGallery
Version: 3.8.1
Plugin URI: http://miromannino.github.io/Justified-Gallery/
License: Copyright (c) 2020 Miro Mannino | Released under the MIT License
*/
! function (e) {
"function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof module && module.exports ? module.exports = function (t, i) {
return void 0 === i && (i = "undefined" != typeof window ? require("jquery") : require("jquery")(t)), e(i), i
} : e(jQuery)
}(function (l) {
var r = function (t, i) {
this.settings = i, this.checkSettings(), this.imgAnalyzerTimeout = null, this.entries = null, this.buildingRow = {
entriesBuff: [],
width: 0,
height: 0,
aspectRatio: 0
}, this.lastFetchedEntry = null, this.lastAnalyzedIndex = -1, this.yield = {
every: 2,
flushed: 0
}, this.border = 0 <= i.border ? i.border : i.margins, this.maxRowHeight = this.retrieveMaxRowHeight(), this.suffixRanges = this.retrieveSuffixRanges(), this.offY = this.border, this.rows = 0, this.spinner = {
phase: 0,
timeSlot: 150,
$el: l('
'),
intervalId: null
}, this.scrollBarOn = !1, this.checkWidthIntervalId = null, this.galleryWidth = t.width(), this.$gallery = t
};
r.prototype.getSuffix = function (t, i) {
var e, s;
for (e = i < t ? t : i, s = 0; s < this.suffixRanges.length; s++)
if (e <= this.suffixRanges[s]) return this.settings.sizeRangeSuffixes[this.suffixRanges[s]];
return this.settings.sizeRangeSuffixes[this.suffixRanges[s - 1]]
}, r.prototype.removeSuffix = function (t, i) {
return t.substring(0, t.length - i.length)
}, r.prototype.endsWith = function (t, i) {
return -1 !== t.indexOf(i, t.length - i.length)
}, r.prototype.getUsedSuffix = function (t) {
for (var i in this.settings.sizeRangeSuffixes)
if (this.settings.sizeRangeSuffixes.hasOwnProperty(i)) {
if (0 === this.settings.sizeRangeSuffixes[i].length) continue;
if (this.endsWith(t, this.settings.sizeRangeSuffixes[i])) return this.settings.sizeRangeSuffixes[i]
} return ""
}, r.prototype.newSrc = function (t, i, e, s) {
var n;
if (this.settings.thumbnailPath) n = this.settings.thumbnailPath(t, i, e, s);
else {
var r = t.match(this.settings.extension),
o = null !== r ? r[0] : "";
n = t.replace(this.settings.extension, ""), n = this.removeSuffix(n, this.getUsedSuffix(n)), n += this.getSuffix(i, e) + o
}
return n
}, r.prototype.showImg = function (t, i) {
this.settings.cssAnimation ? (t.addClass("jg-entry-visible"), i && i()) : (t.stop().fadeTo(this.settings.imagesAnimationDuration, 1, i), t.find(this.settings.imgSelector).stop().fadeTo(this.settings.imagesAnimationDuration, 1, i))
}, r.prototype.extractImgSrcFromImage = function (t) {
var i = t.data("safe-src"),
e = "data-safe-src";
return void 0 === i && (i = t.attr("src"), e = "src"), t.data("jg.originalSrc", i), t.data("jg.src", i), t.data("jg.originalSrcLoc", e), i
}, r.prototype.imgFromEntry = function (t) {
var i = t.find(this.settings.imgSelector);
return 0 === i.length ? null : i
}, r.prototype.captionFromEntry = function (t) {
var i = t.find("> .jg-caption");
return 0 === i.length ? null : i
}, r.prototype.displayEntry = function (t, i, e, s, n, r) {
t.width(s), t.height(r), t.css("top", e), t.css("left", i);
var o = this.imgFromEntry(t);
if (null !== o) {
o.css("width", s), o.css("height", n), o.css("margin-left", -s / 2), o.css("margin-top", -n / 2);
var a = o.data("jg.src");
if (a) {
a = this.newSrc(a, s, n, o[0]), o.one("error", function () {
this.resetImgSrc(o)
});
var h = function () {
o.attr("src", a)
};
"skipped" === t.data("jg.loaded") && a ? this.onImageEvent(a, function () {
this.showImg(t, h), t.data("jg.loaded", !0)
}.bind(this)) : this.showImg(t, h)
}
} else this.showImg(t);
this.displayEntryCaption(t)
}, r.prototype.displayEntryCaption = function (t) {
var i = this.imgFromEntry(t);
if (null !== i && this.settings.captions) {
var e = this.captionFromEntry(t);
if (null === e) {
var s = i.attr("alt");
this.isValidCaption(s) || (s = t.attr("title")), this.isValidCaption(s) && (e = l('
' + s + "
"), t.append(e), t.data("jg.createdCaption", !0))
}
null !== e && (this.settings.cssAnimation || e.stop().fadeTo(0, this.settings.captionSettings.nonVisibleOpacity), this.addCaptionEventsHandlers(t))
} else this.removeCaptionEventsHandlers(t)
}, r.prototype.isValidCaption = function (t) {
return void 0 !== t && 0 < t.length
}, r.prototype.onEntryMouseEnterForCaption = function (t) {
var i = this.captionFromEntry(l(t.currentTarget));
this.settings.cssAnimation ? i.addClass("jg-caption-visible").removeClass("jg-caption-hidden") : i.stop().fadeTo(this.settings.captionSettings.animationDuration, this.settings.captionSettings.visibleOpacity)
}, r.prototype.onEntryMouseLeaveForCaption = function (t) {
var i = this.captionFromEntry(l(t.currentTarget));
this.settings.cssAnimation ? i.removeClass("jg-caption-visible").removeClass("jg-caption-hidden") : i.stop().fadeTo(this.settings.captionSettings.animationDuration, this.settings.captionSettings.nonVisibleOpacity)
}, r.prototype.addCaptionEventsHandlers = function (t) {
var i = t.data("jg.captionMouseEvents");
void 0 === i && (i = {
mouseenter: l.proxy(this.onEntryMouseEnterForCaption, this),
mouseleave: l.proxy(this.onEntryMouseLeaveForCaption, this)
}, t.on("mouseenter", void 0, void 0, i.mouseenter), t.on("mouseleave", void 0, void 0, i.mouseleave), t.data("jg.captionMouseEvents", i))
}, r.prototype.removeCaptionEventsHandlers = function (t) {
var i = t.data("jg.captionMouseEvents");
void 0 !== i && (t.off("mouseenter", void 0, i.mouseenter), t.off("mouseleave", void 0, i.mouseleave), t.removeData("jg.captionMouseEvents"))
}, r.prototype.clearBuildingRow = function () {
this.buildingRow.entriesBuff = [], this.buildingRow.aspectRatio = 0, this.buildingRow.width = 0
}, r.prototype.prepareBuildingRow = function (t, i) {
var e, s, n, r, o, a = !0,
h = 0,
g = this.galleryWidth - 2 * this.border - (this.buildingRow.entriesBuff.length - 1) * this.settings.margins,
l = g / this.buildingRow.aspectRatio,
u = this.settings.rowHeight,
d = this.buildingRow.width / g > this.settings.justifyThreshold;
if (i || t && "hide" === this.settings.lastRow && !d) {
for (e = 0; e < this.buildingRow.entriesBuff.length; e++) s = this.buildingRow.entriesBuff[e], this.settings.cssAnimation ? s.removeClass("jg-entry-visible") : (s.stop().fadeTo(0, .1), s.find("> img, > a > img").fadeTo(0, 0));
return -1
}
for (t && !d && "justify" !== this.settings.lastRow && "hide" !== this.settings.lastRow && (a = !1, 0 < this.rows && (a = (u = (this.offY - this.border - this.settings.margins * this.rows) / this.rows) * this.buildingRow.aspectRatio / g > this.settings.justifyThreshold)), e = 0; e < this.buildingRow.entriesBuff.length; e++) n = (s = this.buildingRow.entriesBuff[e]).data("jg.width") / s.data("jg.height"), o = a ? (r = e === this.buildingRow.entriesBuff.length - 1 ? g : l * n, l) : (r = u * n, u), g -= Math.round(r), s.data("jg.jwidth", Math.round(r)), s.data("jg.jheight", Math.ceil(o)), (0 === e || o < h) && (h = o);
return this.buildingRow.height = h, a
}, r.prototype.flushRow = function (t, i) {
var e, s, n, r = this.settings,
o = this.border;
if (s = this.prepareBuildingRow(t, i), i || t && "hide" === r.lastRow && -1 === s) this.clearBuildingRow();
else {
if (this.maxRowHeight && this.maxRowHeight < this.buildingRow.height && (this.buildingRow.height = this.maxRowHeight), t && ("center" === r.lastRow || "right" === r.lastRow)) {
var a = this.galleryWidth - 2 * this.border - (this.buildingRow.entriesBuff.length - 1) * r.margins;
for (n = 0; n < this.buildingRow.entriesBuff.length; n++) a -= (e = this.buildingRow.entriesBuff[n]).data("jg.jwidth");
"center" === r.lastRow ? o += Math.round(a / 2) : "right" === r.lastRow && (o += a)
}
var h = this.buildingRow.entriesBuff.length - 1;
for (n = 0; n <= h; n++) e = this.buildingRow.entriesBuff[this.settings.rtl ? h - n : n], this.displayEntry(e, o, this.offY, e.data("jg.jwidth"), e.data("jg.jheight"), this.buildingRow.height), o += e.data("jg.jwidth") + r.margins;
this.galleryHeightToSet = this.offY + this.buildingRow.height + this.border, this.setGalleryTempHeight(this.galleryHeightToSet + this.getSpinnerHeight()), (!t || this.buildingRow.height <= r.rowHeight && s) && (this.offY += this.buildingRow.height + r.margins, this.rows += 1, this.clearBuildingRow(), this.settings.triggerEvent.call(this, "jg.rowflush"))
}
};
var i = 0;
r.prototype.rememberGalleryHeight = function () {
i = this.$gallery.height(), this.$gallery.height(i)
}, r.prototype.setGalleryTempHeight = function (t) {
i = Math.max(t, i), this.$gallery.height(i)
}, r.prototype.setGalleryFinalHeight = function (t) {
i = t, this.$gallery.height(t)
}, r.prototype.checkWidth = function () {
this.checkWidthIntervalId = setInterval(l.proxy(function () {
if (this.$gallery.is(":visible")) {
var t = parseFloat(this.$gallery.width());
Math.abs(t - this.galleryWidth) > this.settings.refreshSensitivity && (this.galleryWidth = t, this.rewind(), this.rememberGalleryHeight(), this.startImgAnalyzer(!0))
}
}, this), this.settings.refreshTime)
}, r.prototype.isSpinnerActive = function () {
return null !== this.spinner.intervalId
}, r.prototype.getSpinnerHeight = function () {
return this.spinner.$el.innerHeight()
}, r.prototype.stopLoadingSpinnerAnimation = function () {
clearInterval(this.spinner.intervalId), this.spinner.intervalId = null, this.setGalleryTempHeight(this.$gallery.height() - this.getSpinnerHeight()), this.spinner.$el.detach()
}, r.prototype.startLoadingSpinnerAnimation = function () {
var t = this.spinner,
i = t.$el.find("span");
clearInterval(t.intervalId), this.$gallery.append(t.$el), this.setGalleryTempHeight(this.offY + this.buildingRow.height + this.getSpinnerHeight()), t.intervalId = setInterval(function () {
t.phase < i.length ? i.eq(t.phase).fadeTo(t.timeSlot, 1) : i.eq(t.phase - i.length).fadeTo(t.timeSlot, 0), t.phase = (t.phase + 1) % (2 * i.length)
}, t.timeSlot)
}, r.prototype.rewind = function () {
this.lastFetchedEntry = null, this.lastAnalyzedIndex = -1, this.offY = this.border, this.rows = 0, this.clearBuildingRow()
}, r.prototype.getSelectorWithoutSpinner = function () {
return this.settings.selector + ", div:not(.jg-spinner)"
}, r.prototype.getAllEntries = function () {
var t = this.getSelectorWithoutSpinner();
return this.$gallery.children(t).toArray()
}, r.prototype.updateEntries = function (t) {
var i;
if (t && null != this.lastFetchedEntry) {
var e = this.getSelectorWithoutSpinner();
i = l(this.lastFetchedEntry).nextAll(e).toArray()
} else this.entries = [], i = this.getAllEntries();
return 0 < i.length && (l.isFunction(this.settings.sort) ? i = this.sortArray(i) : this.settings.randomize && (i = this.shuffleArray(i)), this.lastFetchedEntry = i[i.length - 1], this.settings.filter ? i = this.filterArray(i) : this.resetFilters(i)), this.entries = this.entries.concat(i), !0
}, r.prototype.insertToGallery = function (t) {
var i = this;
l.each(t, function () {
l(this).appendTo(i.$gallery)
})
}, r.prototype.shuffleArray = function (t) {
var i, e, s;
for (i = t.length - 1; 0 < i; i--) e = Math.floor(Math.random() * (i + 1)), s = t[i], t[i] = t[e], t[e] = s;
return this.insertToGallery(t), t
}, r.prototype.sortArray = function (t) {
return t.sort(this.settings.sort), this.insertToGallery(t), t
}, r.prototype.resetFilters = function (t) {
for (var i = 0; i < t.length; i++) l(t[i]).removeClass("jg-filtered")
}, r.prototype.filterArray = function (t) {
var e = this.settings;
if ("string" === l.type(e.filter)) return t.filter(function (t) {
var i = l(t);
return i.is(e.filter) ? (i.removeClass("jg-filtered"), !0) : (i.addClass("jg-filtered").removeClass("jg-visible"), !1)
});
if (l.isFunction(e.filter)) {
for (var i = t.filter(e.filter), s = 0; s < t.length; s++) - 1 === i.indexOf(t[s]) ? l(t[s]).addClass("jg-filtered").removeClass("jg-visible") : l(t[s]).removeClass("jg-filtered");
return i
}
}, r.prototype.resetImgSrc = function (t) {
"src" === t.data("jg.originalSrcLoc") ? t.attr("src", t.data("jg.originalSrc")) : t.attr("src", "")
}, r.prototype.destroy = function () {
clearInterval(this.checkWidthIntervalId), this.stopImgAnalyzerStarter(), l.each(this.getAllEntries(), l.proxy(function (t, i) {
var e = l(i);
e.css("width", ""), e.css("height", ""), e.css("top", ""), e.css("left", ""), e.data("jg.loaded", void 0), e.removeClass("jg-entry jg-filtered jg-entry-visible");
var s = this.imgFromEntry(e);
s && (s.css("width", ""), s.css("height", ""), s.css("margin-left", ""), s.css("margin-top", ""), this.resetImgSrc(s), s.data("jg.originalSrc", void 0), s.data("jg.originalSrcLoc", void 0), s.data("jg.src", void 0)), this.removeCaptionEventsHandlers(e);
var n = this.captionFromEntry(e);
e.data("jg.createdCaption") ? (e.data("jg.createdCaption", void 0), null !== n && n.remove()) : null !== n && n.fadeTo(0, 1)
}, this)), this.$gallery.css("height", ""), this.$gallery.removeClass("justified-gallery"), this.$gallery.data("jg.controller", void 0), this.settings.triggerEvent.call(this, "jg.destroy")
}, r.prototype.analyzeImages = function (t) {
for (var i = this.lastAnalyzedIndex + 1; i < this.entries.length; i++) {
var e = l(this.entries[i]);
if (!0 === e.data("jg.loaded") || "skipped" === e.data("jg.loaded")) {
var s = this.galleryWidth - 2 * this.border - (this.buildingRow.entriesBuff.length - 1) * this.settings.margins,
n = e.data("jg.width") / e.data("jg.height");
if (this.buildingRow.entriesBuff.push(e), this.buildingRow.aspectRatio += n, this.buildingRow.width += n * this.settings.rowHeight, this.lastAnalyzedIndex = i, s / (this.buildingRow.aspectRatio + n) < this.settings.rowHeight && (this.flushRow(!1, 0 < this.settings.maxRowsCount && this.rows === this.settings.maxRowsCount), ++this.yield.flushed >= this.yield.every)) return void this.startImgAnalyzer(t)
} else if ("error" !== e.data("jg.loaded")) return
}
0 < this.buildingRow.entriesBuff.length && this.flushRow(!0, 0 < this.settings.maxRowsCount && this.rows === this.settings.maxRowsCount), this.isSpinnerActive() && this.stopLoadingSpinnerAnimation(), this.stopImgAnalyzerStarter(), this.setGalleryFinalHeight(this.galleryHeightToSet), this.settings.triggerEvent.call(this, t ? "jg.resize" : "jg.complete")
}, r.prototype.stopImgAnalyzerStarter = function () {
this.yield.flushed = 0, null !== this.imgAnalyzerTimeout && (clearTimeout(this.imgAnalyzerTimeout), this.imgAnalyzerTimeout = null)
}, r.prototype.startImgAnalyzer = function (t) {
var i = this;
this.stopImgAnalyzerStarter(), this.imgAnalyzerTimeout = setTimeout(function () {
i.analyzeImages(t)
}, .001)
}, r.prototype.onImageEvent = function (t, i, e) {
if (i || e) {
var s = new Image,
n = l(s);
i && n.one("load", function () {
n.off("load error"), i(s)
}), e && n.one("error", function () {
n.off("load error"), e(s)
}), s.src = t
}
}, r.prototype.init = function () {
var a = !1,
h = !1,
g = this;
l.each(this.entries, function (t, i) {
var e = l(i),
s = g.imgFromEntry(e);
if (e.addClass("jg-entry"), !0 !== e.data("jg.loaded") && "skipped" !== e.data("jg.loaded"))
if (null !== g.settings.rel && e.attr("rel", g.settings.rel), null !== g.settings.target && e.attr("target", g.settings.target), null !== s) {
var n = g.extractImgSrcFromImage(s);
if (!1 === g.settings.waitThumbnailsLoad || !n) {
var r = parseFloat(s.attr("width")),
o = parseFloat(s.attr("height"));
if ("svg" === s.prop("tagName") && (r = parseFloat(s[0].getBBox().width), o = parseFloat(s[0].getBBox().height)), !isNaN(r) && !isNaN(o)) return e.data("jg.width", r), e.data("jg.height", o), e.data("jg.loaded", "skipped"), h = !0, g.startImgAnalyzer(!1), !0
}
e.data("jg.loaded", !1), a = !0, g.isSpinnerActive() || g.startLoadingSpinnerAnimation(), g.onImageEvent(n, function (t) {
e.data("jg.width", t.width), e.data("jg.height", t.height), e.data("jg.loaded", !0), g.startImgAnalyzer(!1)
}, function () {
e.data("jg.loaded", "error"), g.startImgAnalyzer(!1)
})
} else e.data("jg.loaded", !0), e.data("jg.width", e.width() | parseFloat(e.css("width")) | 1), e.data("jg.height", e.height() | parseFloat(e.css("height")) | 1)
}), a || h || this.startImgAnalyzer(!1), this.checkWidth()
}, r.prototype.checkOrConvertNumber = function (t, i) {
if ("string" === l.type(t[i]) && (t[i] = parseFloat(t[i])), "number" !== l.type(t[i])) throw i + " must be a number";
if (isNaN(t[i])) throw "invalid number for " + i
}, r.prototype.checkSizeRangesSuffixes = function () {
if ("object" !== l.type(this.settings.sizeRangeSuffixes)) throw "sizeRangeSuffixes must be defined and must be an object";
var t = [];
for (var i in this.settings.sizeRangeSuffixes) this.settings.sizeRangeSuffixes.hasOwnProperty(i) && t.push(i);
for (var e = {
0: ""
}, s = 0; s < t.length; s++)
if ("string" === l.type(t[s])) try {
e[parseInt(t[s].replace(/^[a-z]+/, ""), 10)] = this.settings.sizeRangeSuffixes[t[s]]
} catch (t) {
throw "sizeRangeSuffixes keys must contains correct numbers (" + t + ")"
} else e[t[s]] = this.settings.sizeRangeSuffixes[t[s]];
this.settings.sizeRangeSuffixes = e
}, r.prototype.retrieveMaxRowHeight = function () {
var t = null,
i = this.settings.rowHeight;
if ("string" === l.type(this.settings.maxRowHeight)) t = this.settings.maxRowHeight.match(/^[0-9]+%$/) ? i * parseFloat(this.settings.maxRowHeight.match(/^([0-9]+)%$/)[1]) / 100 : parseFloat(this.settings.maxRowHeight);
else {
if ("number" !== l.type(this.settings.maxRowHeight)) {
if (!1 === this.settings.maxRowHeight || null == this.settings.maxRowHeight) return null;
throw "maxRowHeight must be a number or a percentage"
}
t = this.settings.maxRowHeight
}
if (isNaN(t)) throw "invalid number for maxRowHeight";
return t < i && (t = i), t
}, r.prototype.checkSettings = function () {
this.checkSizeRangesSuffixes(), this.checkOrConvertNumber(this.settings, "rowHeight"), this.checkOrConvertNumber(this.settings, "margins"), this.checkOrConvertNumber(this.settings, "border"), this.checkOrConvertNumber(this.settings, "maxRowsCount");
var t = ["justify", "nojustify", "left", "center", "right", "hide"];
if (-1 === t.indexOf(this.settings.lastRow)) throw "lastRow must be one of: " + t.join(", ");
if (this.checkOrConvertNumber(this.settings, "justifyThreshold"), this.settings.justifyThreshold < 0 || 1 < this.settings.justifyThreshold) throw "justifyThreshold must be in the interval [0,1]";
if ("boolean" !== l.type(this.settings.cssAnimation)) throw "cssAnimation must be a boolean";
if ("boolean" !== l.type(this.settings.captions)) throw "captions must be a boolean";
if (this.checkOrConvertNumber(this.settings.captionSettings, "animationDuration"), this.checkOrConvertNumber(this.settings.captionSettings, "visibleOpacity"), this.settings.captionSettings.visibleOpacity < 0 || 1 < this.settings.captionSettings.visibleOpacity) throw "captionSettings.visibleOpacity must be in the interval [0, 1]";
if (this.checkOrConvertNumber(this.settings.captionSettings, "nonVisibleOpacity"), this.settings.captionSettings.nonVisibleOpacity < 0 || 1 < this.settings.captionSettings.nonVisibleOpacity) throw "captionSettings.nonVisibleOpacity must be in the interval [0, 1]";
if (this.checkOrConvertNumber(this.settings, "imagesAnimationDuration"), this.checkOrConvertNumber(this.settings, "refreshTime"), this.checkOrConvertNumber(this.settings, "refreshSensitivity"), "boolean" !== l.type(this.settings.randomize)) throw "randomize must be a boolean";
if ("string" !== l.type(this.settings.selector)) throw "selector must be a string";
if (!1 !== this.settings.sort && !l.isFunction(this.settings.sort)) throw "sort must be false or a comparison function";
if (!1 !== this.settings.filter && !l.isFunction(this.settings.filter) && "string" !== l.type(this.settings.filter)) throw "filter must be false, a string or a filter function"
}, r.prototype.retrieveSuffixRanges = function () {
var t = [];
for (var i in this.settings.sizeRangeSuffixes) this.settings.sizeRangeSuffixes.hasOwnProperty(i) && t.push(parseInt(i, 10));
return t.sort(function (t, i) {
return i < t ? 1 : t < i ? -1 : 0
}), t
}, r.prototype.updateSettings = function (t) {
this.settings = l.extend({}, this.settings, t), this.checkSettings(), this.border = 0 <= this.settings.border ? this.settings.border : this.settings.margins, this.maxRowHeight = this.retrieveMaxRowHeight(), this.suffixRanges = this.retrieveSuffixRanges()
}, r.prototype.defaults = {
sizeRangeSuffixes: {},
thumbnailPath: void 0,
rowHeight: 120,
maxRowHeight: !1,
maxRowsCount: 0,
margins: 1,
border: -1,
lastRow: "nojustify",
justifyThreshold: .9,
waitThumbnailsLoad: !0,
captions: !0,
cssAnimation: !0,
imagesAnimationDuration: 500,
captionSettings: {
animationDuration: 500,
visibleOpacity: .7,
nonVisibleOpacity: 0
},
rel: null,
target: null,
extension: /\.[^.\\/]+$/,
refreshTime: 200,
refreshSensitivity: 0,
randomize: !1,
rtl: !1,
sort: !1,
filter: !1,
selector: "a",
imgSelector: "> img, > a > img, > svg, > a > svg",
triggerEvent: function (t) {
this.$gallery.trigger(t)
}
}, l.fn.justifiedGallery = function (n) {
return this.each(function (t, i) {
var e = l(i);
e.addClass("justified-gallery");
var s = e.data("jg.controller");
if (void 0 === s) {
if (null != n && "object" !== l.type(n)) {
if ("destroy" === n) return;
throw "The argument must be an object"
}
s = new r(e, l.extend({}, r.prototype.defaults, n)), e.data("jg.controller", s)
} else if ("norewind" === n);
else {
if ("destroy" === n) return void s.destroy();
s.updateSettings(n), s.rewind()
}
s.updateEntries("norewind" === n) && s.init()
})
}
});
/*
Easy pie chart
Version: 2.1.7
Plugin URI: https://rendro.github.io/easy-pie-chart/
License: Robert Fleischmann
(http://robert-fleischmann.de)
*/
! function (a, b) {
"function" == typeof define && define.amd ? define(["jquery"], function (a) {
return b(a)
}) : "object" == typeof exports ? module.exports = b(require("jquery")) : b(jQuery)
}(this, function (a) {
var b = function (a, b) {
var c, d = document.createElement("canvas");
a.appendChild(d), "object" == typeof G_vmlCanvasManager && G_vmlCanvasManager.initElement(d);
var e = d.getContext("2d");
d.width = d.height = b.size;
var f = 1;
window.devicePixelRatio > 1 && (f = window.devicePixelRatio, d.style.width = d.style.height = [b.size, "px"].join(""), d.width = d.height = b.size * f, e.scale(f, f)), e.translate(b.size / 2, b.size / 2), e.rotate((-0.5 + b.rotate / 180) * Math.PI);
var g = (b.size - b.lineWidth) / 2;
b.scaleColor && b.scaleLength && (g -= b.scaleLength + 2), Date.now = Date.now || function () {
return +new Date
};
var h = function (a, b, c) {
c = Math.min(Math.max(-1, c || 0), 1);
var d = 0 >= c ? !0 : !1;
e.beginPath(), e.arc(0, 0, g, 0, 2 * Math.PI * c, d), e.strokeStyle = a, e.lineWidth = b, e.stroke()
},
i = function () {
var a, c;
e.lineWidth = 1, e.fillStyle = b.scaleColor, e.save();
for (var d = 24; d > 0; --d) d % 6 === 0 ? (c = b.scaleLength, a = 0) : (c = .6 * b.scaleLength, a = b.scaleLength - c), e.fillRect(-b.size / 2 + a, 0, c, 1), e.rotate(Math.PI / 12);
e.restore()
},
j = function () {
return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (a) {
window.setTimeout(a, 1e3 / 60)
}
}(),
k = function () {
b.scaleColor && i(), b.trackColor && h(b.trackColor, b.trackWidth || b.lineWidth, 1)
};
this.getCanvas = function () {
return d
}, this.getCtx = function () {
return e
}, this.clear = function () {
e.clearRect(b.size / -2, b.size / -2, b.size, b.size)
}, this.draw = function (a) {
b.scaleColor || b.trackColor ? e.getImageData && e.putImageData ? c ? e.putImageData(c, 0, 0) : (k(), c = e.getImageData(0, 0, b.size * f, b.size * f)) : (this.clear(), k()) : this.clear(), e.lineCap = b.lineCap;
var d;
d = "function" == typeof b.barColor ? b.barColor(a) : b.barColor, h(d, b.lineWidth, a / 100)
}.bind(this), this.animate = function (a, c) {
var d = Date.now();
b.onStart(a, c);
var e = function () {
var f = Math.min(Date.now() - d, b.animate.duration),
g = b.easing(this, f, a, c - a, b.animate.duration);
this.draw(g), b.onStep(a, c, g), f >= b.animate.duration ? b.onStop(a, c) : j(e)
}.bind(this);
j(e)
}.bind(this)
},
c = function (a, c) {
var d = {
barColor: "#ef1e25",
trackColor: "#f9f9f9",
scaleColor: "#dfe0e0",
scaleLength: 5,
lineCap: "round",
lineWidth: 3,
trackWidth: void 0,
size: 110,
rotate: 0,
animate: {
duration: 1e3,
enabled: !0
},
easing: function (a, b, c, d, e) {
return b /= e / 2, 1 > b ? d / 2 * b * b + c : -d / 2 * (--b * (b - 2) - 1) + c
},
onStart: function (a, b) {},
onStep: function (a, b, c) {},
onStop: function (a, b) {}
};
if ("undefined" != typeof b) d.renderer = b;
else {
if ("undefined" == typeof SVGRenderer) throw new Error("Please load either the SVG- or the CanvasRenderer");
d.renderer = SVGRenderer
}
var e = {},
f = 0,
g = function () {
this.el = a, this.options = e;
for (var b in d) d.hasOwnProperty(b) && (e[b] = c && "undefined" != typeof c[b] ? c[b] : d[b], "function" == typeof e[b] && (e[b] = e[b].bind(this)));
"string" == typeof e.easing && "undefined" != typeof jQuery && jQuery.isFunction(jQuery.easing[e.easing]) ? e.easing = jQuery.easing[e.easing] : e.easing = d.easing, "number" == typeof e.animate && (e.animate = {
duration: e.animate,
enabled: !0
}), "boolean" != typeof e.animate || e.animate || (e.animate = {
duration: 1e3,
enabled: e.animate
}), this.renderer = new e.renderer(a, e), this.renderer.draw(f), a.dataset && a.dataset.percent ? this.update(parseFloat(a.dataset.percent)) : a.getAttribute && a.getAttribute("data-percent") && this.update(parseFloat(a.getAttribute("data-percent")))
}.bind(this);
this.update = function (a) {
return a = parseFloat(a), e.animate.enabled ? this.renderer.animate(f, a) : this.renderer.draw(a), f = a, this
}.bind(this), this.disableAnimation = function () {
return e.animate.enabled = !1, this
}, this.enableAnimation = function () {
return e.animate.enabled = !0, this
}, g()
};
a.fn.easyPieChart = function (b) {
return this.each(function () {
var d;
a.data(this, "easyPieChart") || (d = a.extend({}, b, a(this).data()), a.data(this, "easyPieChart", new c(this, d)))
})
}
});
/*
Countdown
Version: 2.2.0
Plugin URI: http://hilios.github.io/jQuery.countdown/
License: Copyright (c) 2016 Edson Hilios
*/
! function (a) {
"use strict";
"function" == typeof define && define.amd ? define(["jquery"], a) : a(jQuery)
}(function (a) {
"use strict";
function b(a) {
if (a instanceof Date) return a;
if (String(a).match(g)) return String(a).match(/^[0-9]*$/) && (a = Number(a)), String(a).match(/\-/) && (a = String(a).replace(/\-/g, "/")), new Date(a);
throw new Error("Couldn't cast `" + a + "` to a date object.")
}
function c(a) {
var b = a.toString().replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1");
return new RegExp(b)
}
function d(a) {
return function (b) {
var d = b.match(/%(-|!)?[A-Z]{1}(:[^;]+;)?/gi);
if (d)
for (var f = 0, g = d.length; f < g; ++f) {
var h = d[f].match(/%(-|!)?([a-zA-Z]{1})(:[^;]+;)?/),
j = c(h[0]),
k = h[1] || "",
l = h[3] || "",
m = null;
h = h[2], i.hasOwnProperty(h) && (m = i[h], m = Number(a[m])), null !== m && ("!" === k && (m = e(l, m)), "" === k && m < 10 && (m = "0" + m.toString()), b = b.replace(j, m.toString()))
}
return b = b.replace(/%%/, "%")
}
}
function e(a, b) {
var c = "s",
d = "";
return a && (a = a.replace(/(:|;|\s)/gi, "").split(/\,/), 1 === a.length ? c = a[0] : (d = a[0], c = a[1])), Math.abs(b) > 1 ? c : d
}
var f = [],
g = [],
h = {
precision: 100,
elapse: !1,
defer: !1
};
g.push(/^[0-9]*$/.source), g.push(/([0-9]{1,2}\/){2}[0-9]{4}( [0-9]{1,2}(:[0-9]{2}){2})?/.source), g.push(/[0-9]{4}([\/\-][0-9]{1,2}){2}( [0-9]{1,2}(:[0-9]{2}){2})?/.source), g = new RegExp(g.join("|"));
var i = {
Y: "years",
m: "months",
n: "daysToMonth",
d: "daysToWeek",
w: "weeks",
W: "weeksToMonth",
H: "hours",
M: "minutes",
S: "seconds",
D: "totalDays",
I: "totalHours",
N: "totalMinutes",
T: "totalSeconds"
},
j = function (b, c, d) {
this.el = b, this.$el = a(b), this.interval = null, this.offset = {}, this.options = a.extend({}, h), this.instanceNumber = f.length, f.push(this), this.$el.data("countdown-instance", this.instanceNumber), d && ("function" == typeof d ? (this.$el.on("update.countdown", d), this.$el.on("stoped.countdown", d), this.$el.on("finish.countdown", d)) : this.options = a.extend({}, h, d)), this.setFinalDate(c), this.options.defer === !1 && this.start()
};
a.extend(j.prototype, {
start: function () {
null !== this.interval && clearInterval(this.interval);
var a = this;
this.update(), this.interval = setInterval(function () {
a.update.call(a)
}, this.options.precision)
},
stop: function () {
clearInterval(this.interval), this.interval = null, this.dispatchEvent("stoped")
},
toggle: function () {
this.interval ? this.stop() : this.start()
},
pause: function () {
this.stop()
},
resume: function () {
this.start()
},
remove: function () {
this.stop.call(this), f[this.instanceNumber] = null, delete this.$el.data().countdownInstance
},
setFinalDate: function (a) {
this.finalDate = b(a)
},
update: function () {
if (0 === this.$el.closest("html").length) return void this.remove();
var b, c = void 0 !== a._data(this.el, "events"),
d = new Date;
b = this.finalDate.getTime() - d.getTime(), b = Math.ceil(b / 1e3), b = !this.options.elapse && b < 0 ? 0 : Math.abs(b), this.totalSecsLeft !== b && c && (this.totalSecsLeft = b, this.elapsed = d >= this.finalDate, this.offset = {
seconds: this.totalSecsLeft % 60,
minutes: Math.floor(this.totalSecsLeft / 60) % 60,
hours: Math.floor(this.totalSecsLeft / 60 / 60) % 24,
days: Math.floor(this.totalSecsLeft / 60 / 60 / 24) % 7,
daysToWeek: Math.floor(this.totalSecsLeft / 60 / 60 / 24) % 7,
daysToMonth: Math.floor(this.totalSecsLeft / 60 / 60 / 24 % 30.4368),
weeks: Math.floor(this.totalSecsLeft / 60 / 60 / 24 / 7),
weeksToMonth: Math.floor(this.totalSecsLeft / 60 / 60 / 24 / 7) % 4,
months: Math.floor(this.totalSecsLeft / 60 / 60 / 24 / 30.4368),
years: Math.abs(this.finalDate.getFullYear() - d.getFullYear()),
totalDays: Math.floor(this.totalSecsLeft / 60 / 60 / 24),
totalHours: Math.floor(this.totalSecsLeft / 60 / 60),
totalMinutes: Math.floor(this.totalSecsLeft / 60),
totalSeconds: this.totalSecsLeft
}, this.options.elapse || 0 !== this.totalSecsLeft ? this.dispatchEvent("update") : (this.stop(), this.dispatchEvent("finish")))
},
dispatchEvent: function (b) {
var c = a.Event(b + ".countdown");
c.finalDate = this.finalDate, c.elapsed = this.elapsed, c.offset = a.extend({}, this.offset), c.strftime = d(this.offset), this.$el.trigger(c)
}
}), a.fn.countdown = function () {
var b = Array.prototype.slice.call(arguments, 0);
return this.each(function () {
var c = a(this).data("countdown-instance");
if (void 0 !== c) {
var d = f[c],
e = b[0];
j.prototype.hasOwnProperty(e) ? d[e].apply(d, b.slice(1)) : null === String(e).match(/^[$A-Z_][0-9A-Z_$]*$/i) ? (d.setFinalDate.call(d, e), d.start()) : a.error("Method %s does not exist on jQuery.countdown".replace(/\%s/gi, e))
} else new j(this, b[0], b[1])
})
}
});
/*
FitVids
Version: 1.1
Plugin URI: http://fitvidsjs.com/
License: Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com | Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/ | Released under the WTFPL license - http://sam.zoy.org/wtfpl/
*/
! function (t) {
"use strict";
t.fn.fitVids = function (e) {
var i = {
customSelector: null,
ignore: null
};
if (!document.getElementById("fit-vids-style")) {
var r = document.head || document.getElementsByTagName("head")[0],
a = document.createElement("div");
a.innerHTML = 'x
', r.appendChild(a.childNodes[1])
}
return e && t.extend(i, e), this.each(function () {
var e = ['iframe[src*="player.vimeo.com"]', 'iframe[src*="youtube.com"]', 'iframe[src*="youtube-nocookie.com"]', 'iframe[src*="kickstarter.com"][src*="video.html"]', "object", "embed"];
i.customSelector && e.push(i.customSelector);
var r = ".fitvidsignore";
i.ignore && (r = r + ", " + i.ignore);
var a = t(this).find(e.join(","));
(a = (a = a.not("object object")).not(r)).each(function (e) {
var i = t(this);
if (!(i.parents(r).length > 0 || "embed" === this.tagName.toLowerCase() && i.parent("object").length || i.parent(".fluid-width-video-wrapper").length)) {
i.css("height") || i.css("width") || !isNaN(i.attr("height")) && !isNaN(i.attr("width")) || (i.attr("height", 9), i.attr("width", 16));
var a = ("object" === this.tagName.toLowerCase() || i.attr("height") && !isNaN(parseInt(i.attr("height"), 10)) ? parseInt(i.attr("height"), 10) : i.height()) / (isNaN(parseInt(i.attr("width"), 10)) ? i.width() : parseInt(i.attr("width"), 10));
if (!i.attr("id")) {
var d = "fitvid" + e;
i.attr("id", d)
}
i.wrap('
').parent(".fluid-width-video-wrapper").css("padding-top", 100 * a + "%"), i.removeAttr("height").removeAttr("width")
}
})
})
}
}(window.jQuery || window.Zepto);
/*
Retina
Version: 1.3.0
Plugin URI: http://imulus.github.io/retinajs/
License: Copyright 2014 Imulus, LLC | Released under the MIT license
*/
! function () {
function a() {}
function b(a) {
return f.retinaImageSuffix + a
}
function c(a, c) {
if (this.path = a || "", "undefined" != typeof c && null !== c) this.at_2x_path = c, this.perform_check = !1;
else {
if (void 0 !== document.createElement) {
var d = document.createElement("a");
d.href = this.path, d.pathname = d.pathname.replace(g, b), this.at_2x_path = d.href
} else {
var e = this.path.split("?");
e[0] = e[0].replace(g, b), this.at_2x_path = e.join("?")
}
this.perform_check = !0
}
}
function d(a) {
this.el = a, this.path = new c(this.el.getAttribute("src"), this.el.getAttribute("data-at2x"));
var b = this;
this.path.check_2x_variant(function (a) {
a && b.swap()
})
}
var e = "undefined" == typeof exports ? window : exports,
f = {
retinaImageSuffix: "@2x",
check_mime_type: !0,
force_original_dimensions: !0
};
e.Retina = a, a.configure = function (a) {
null === a && (a = {});
for (var b in a) a.hasOwnProperty(b) && (f[b] = a[b])
}, a.init = function (a) {
null === a && (a = e);
var b = a.onload || function () {};
a.onload = function () {
var a, c, e = document.getElementsByTagName("img"),
f = [];
for (a = 0; a < e.length; a += 1) c = e[a], c.getAttributeNode("data-no-retina") || f.push(new d(c));
b()
}
}, a.isRetina = function () {
var a = "(-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (-o-min-device-pixel-ratio: 3/2), (min-resolution: 1.5dppx)";
return e.devicePixelRatio > 1 ? !0 : e.matchMedia && e.matchMedia(a).matches ? !0 : !1
};
var g = /\.\w+$/;
e.RetinaImagePath = c, c.confirmed_paths = [], c.prototype.is_external = function () {
return !(!this.path.match(/^https?\:/i) || this.path.match("//" + document.domain))
}, c.prototype.check_2x_variant = function (a) {
var b, d = this;
return this.is_external() ? a(!1) : this.perform_check || "undefined" == typeof this.at_2x_path || null === this.at_2x_path ? this.at_2x_path in c.confirmed_paths ? a(!0) : (b = new XMLHttpRequest, b.open("HEAD", this.at_2x_path), b.onreadystatechange = function () {
if (4 !== b.readyState) return a(!1);
if (b.status >= 200 && b.status <= 399) {
if (f.check_mime_type) {
var e = b.getResponseHeader("Content-Type");
if (null === e || !e.match(/^image/i)) return a(!1)
}
return c.confirmed_paths.push(d.at_2x_path), a(!0)
}
return a(!1)
}, b.send(), void 0) : a(!0)
}, e.RetinaImage = d, d.prototype.swap = function (a) {
function b() {
c.el.complete ? (f.force_original_dimensions && (c.el.setAttribute("width", c.el.offsetWidth), c.el.setAttribute("height", c.el.offsetHeight)), c.el.setAttribute("src", a)) : setTimeout(b, 5)
}
"undefined" == typeof a && (a = this.path.at_2x_path);
var c = this;
b()
}, a.isRetina() && a.init(e)
}();
/*
Tilt
Version: 1.1.19 - 2017-05-03
Plugin URI: https://github.com/gijsroge/tilt.js
License: Released under the MIT license
*/
"use strict";
var _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
return typeof t
} : function (t) {
return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
};
! function (t) {
"function" == typeof define && define.amd ? define(["jquery"], t) : "object" === ("undefined" == typeof module ? "undefined" : _typeof(module)) && module.exports ? module.exports = function (i, s) {
return void 0 === s && (s = "undefined" != typeof window ? require("jquery") : require("jquery")(i)), t(s), s
} : t(jQuery)
}(function (t) {
return t.fn.tilt = function (i) {
var s = function () {
this.ticking || (requestAnimationFrame(g.bind(this)), this.ticking = !0)
},
e = function () {
var i = this;
t(this).on("mousemove", o), t(this).on("mouseenter", a), this.settings.reset && t(this).on("mouseleave", l), this.settings.glare && t(window).on("resize", d.bind(i))
},
n = function () {
var i = this;
void 0 !== this.timeout && clearTimeout(this.timeout), t(this).css({
transition: this.settings.speed + "ms " + this.settings.easing
}), this.settings.glare && this.glareElement.css({
transition: "opacity " + this.settings.speed + "ms " + this.settings.easing
}), this.timeout = setTimeout(function () {
t(i).css({
transition: ""
}), i.settings.glare && i.glareElement.css({
transition: ""
})
}, this.settings.speed)
},
a = function (i) {
this.ticking = !1, t(this).css({
"will-change": "transform"
}), n.call(this), t(this).trigger("tilt.mouseEnter")
},
r = function (i) {
return "undefined" == typeof i && (i = {
pageX: t(this).offset().left + t(this).outerWidth() / 2,
pageY: t(this).offset().top + t(this).outerHeight() / 2
}), {
x: i.pageX,
y: i.pageY
}
},
o = function (t) {
this.mousePositions = r(t), s.call(this)
},
l = function () {
n.call(this), this.reset = !0, s.call(this), t(this).trigger("tilt.mouseLeave")
},
h = function () {
var i = t(this).outerWidth(),
s = t(this).outerHeight(),
e = t(this).offset().left,
n = t(this).offset().top,
a = (this.mousePositions.x - e) / i,
r = (this.mousePositions.y - n) / s,
o = (this.settings.maxTilt / 2 - a * this.settings.maxTilt).toFixed(2),
l = (r * this.settings.maxTilt - this.settings.maxTilt / 2).toFixed(2),
h = Math.atan2(this.mousePositions.x - (e + i / 2), -(this.mousePositions.y - (n + s / 2))) * (180 / Math.PI);
return {
tiltX: o,
tiltY: l,
percentageX: 100 * a,
percentageY: 100 * r,
angle: h
}
},
g = function () {
return this.transforms = h.call(this), this.reset ? (this.reset = !1, t(this).css("transform", "perspective(" + this.settings.perspective + "px) rotateX(0deg) rotateY(0deg)"), void(this.settings.glare && (this.glareElement.css("transform", "rotate(180deg) translate(-50%, -50%)"), this.glareElement.css("opacity", "0")))) : (t(this).css("transform", "perspective(" + this.settings.perspective + "px) rotateX(" + ("x" === this.settings.disableAxis ? 0 : this.transforms.tiltY) + "deg) rotateY(" + ("y" === this.settings.disableAxis ? 0 : this.transforms.tiltX) + "deg) scale3d(" + this.settings.scale + "," + this.settings.scale + "," + this.settings.scale + ")"), this.settings.glare && (this.glareElement.css("transform", "rotate(" + this.transforms.angle + "deg) translate(-50%, -50%)"), this.glareElement.css("opacity", "" + this.transforms.percentageY * this.settings.maxGlare / 100)), t(this).trigger("change", [this.transforms]), void(this.ticking = !1))
},
c = function () {
var i = this.settings.glarePrerender;
if (i || t(this).append(''), this.glareElementWrapper = t(this).find(".js-tilt-glare"), this.glareElement = t(this).find(".js-tilt-glare-inner"), !i) {
var s = {
position: "absolute",
top: "0",
left: "0",
width: "100%",
height: "100%"
};
this.glareElementWrapper.css(s).css({
overflow: "hidden",
"pointer-events": "none"
}), this.glareElement.css({
position: "absolute",
top: "50%",
left: "50%",
"background-image": "linear-gradient(0deg, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%)",
width: "" + 2 * t(this).outerWidth(),
height: "" + 2 * t(this).outerWidth(),
transform: "rotate(180deg) translate(-50%, -50%)",
"transform-origin": "0% 0%",
opacity: "0"
})
}
},
d = function () {
this.glareElement.css({
width: "" + 2 * t(this).outerWidth(),
height: "" + 2 * t(this).outerWidth()
})
};
return t.fn.tilt.destroy = function () {
t(this).each(function () {
t(this).find(".js-tilt-glare").remove(), t(this).css({
"will-change": "",
transform: ""
}), t(this).off("mousemove mouseenter mouseleave")
})
}, t.fn.tilt.getValues = function () {
var i = [];
return t(this).each(function () {
this.mousePositions = r.call(this), i.push(h.call(this))
}), i
}, t.fn.tilt.reset = function () {
t(this).each(function () {
var i = this;
this.mousePositions = r.call(this), this.settings = t(this).data("settings"), l.call(this), setTimeout(function () {
i.reset = !1
}, this.settings.transition)
})
}, this.each(function () {
var s = this;
this.settings = t.extend({
maxTilt: t(this).is("[data-tilt-max]") ? t(this).data("tilt-max") : 20,
perspective: t(this).is("[data-tilt-perspective]") ? t(this).data("tilt-perspective") : 300,
easing: t(this).is("[data-tilt-easing]") ? t(this).data("tilt-easing") : "cubic-bezier(.03,.98,.52,.99)",
scale: t(this).is("[data-tilt-scale]") ? t(this).data("tilt-scale") : "1",
speed: t(this).is("[data-tilt-speed]") ? t(this).data("tilt-speed") : "400",
transition: !t(this).is("[data-tilt-transition]") || t(this).data("tilt-transition"),
disableAxis: t(this).is("[data-tilt-disable-axis]") ? t(this).data("tilt-disable-axis") : null,
axis: t(this).is("[data-tilt-axis]") ? t(this).data("tilt-axis") : null,
reset: !t(this).is("[data-tilt-reset]") || t(this).data("tilt-reset"),
glare: !!t(this).is("[data-tilt-glare]") && t(this).data("tilt-glare"),
maxGlare: t(this).is("[data-tilt-maxglare]") ? t(this).data("tilt-maxglare") : 1
}, i), null !== this.settings.axis && (console.warn("Tilt.js: the axis setting has been renamed to disableAxis. See https://github.com/gijsroge/tilt.js/pull/26 for more information"), this.settings.disableAxis = this.settings.axis), this.init = function () {
t(s).data("settings", s.settings), s.settings.glare && c.call(s), e.call(s)
}, this.init()
})
}, t("[data-tilt]").tilt(), !0
});
/*
Custom scrollbar - jquery mousewheel plugin
Version: 3.1.13
Plugin URI: http://manos.malihu.gr/jquery-custom-content-scroller
License: Copyright Manos Malihutsakis | Released under the MIT license
*/
! function (a) {
"function" == typeof define && define.amd ? define(["jquery"], a) : "object" == typeof exports ? module.exports = a : a(jQuery)
}(function (a) {
function b(b) {
var g = b || window.event,
h = i.call(arguments, 1),
j = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0;
if (b = a.event.fix(g), b.type = "mousewheel", "detail" in g && (m = -1 * g.detail), "wheelDelta" in g && (m = g.wheelDelta), "wheelDeltaY" in g && (m = g.wheelDeltaY), "wheelDeltaX" in g && (l = -1 * g.wheelDeltaX), "axis" in g && g.axis === g.HORIZONTAL_AXIS && (l = -1 * m, m = 0), j = 0 === m ? l : m, "deltaY" in g && (m = -1 * g.deltaY, j = m), "deltaX" in g && (l = g.deltaX, 0 === m && (j = -1 * l)), 0 !== m || 0 !== l) {
if (1 === g.deltaMode) {
var q = a.data(this, "mousewheel-line-height");
j *= q, m *= q, l *= q
} else if (2 === g.deltaMode) {
var r = a.data(this, "mousewheel-page-height");
j *= r, m *= r, l *= r
}
if (n = Math.max(Math.abs(m), Math.abs(l)), (!f || f > n) && (f = n, d(g, n) && (f /= 40)), d(g, n) && (j /= 40, l /= 40, m /= 40), j = Math[j >= 1 ? "floor" : "ceil"](j / f), l = Math[l >= 1 ? "floor" : "ceil"](l / f), m = Math[m >= 1 ? "floor" : "ceil"](m / f), k.settings.normalizeOffset && this.getBoundingClientRect) {
var s = this.getBoundingClientRect();
o = b.clientX - s.left, p = b.clientY - s.top
}
return b.deltaX = l, b.deltaY = m, b.deltaFactor = f, b.offsetX = o, b.offsetY = p, b.deltaMode = 0, h.unshift(b, j, l, m), e && clearTimeout(e), e = setTimeout(c, 200), (a.event.dispatch || a.event.handle).apply(this, h)
}
}
function c() {
f = null
}
function d(a, b) {
return k.settings.adjustOldDeltas && "mousewheel" === a.type && b % 120 === 0
}
var e, f, g = ["wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll"],
h = "onwheel" in document || document.documentMode >= 9 ? ["wheel"] : ["mousewheel", "DomMouseScroll", "MozMousePixelScroll"],
i = Array.prototype.slice;
if (a.event.fixHooks)
for (var j = g.length; j;) a.event.fixHooks[g[--j]] = a.event.mouseHooks;
var k = a.event.special.mousewheel = {
version: "3.1.12",
setup: function () {
if (this.addEventListener)
for (var c = h.length; c;) this.addEventListener(h[--c], b, !1);
else this.onmousewheel = b;
a.data(this, "mousewheel-line-height", k.getLineHeight(this)), a.data(this, "mousewheel-page-height", k.getPageHeight(this))
},
teardown: function () {
if (this.removeEventListener)
for (var c = h.length; c;) this.removeEventListener(h[--c], b, !1);
else this.onmousewheel = null;
a.removeData(this, "mousewheel-line-height"), a.removeData(this, "mousewheel-page-height")
},
getLineHeight: function (b) {
var c = a(b),
d = c["offsetParent" in a.fn ? "offsetParent" : "parent"]();
return d.length || (d = a("body")), parseInt(d.css("fontSize"), 10) || parseInt(c.css("fontSize"), 10) || 16
},
getPageHeight: function (b) {
return a(b).height()
},
settings: {
adjustOldDeltas: !0,
normalizeOffset: !0
}
};
a.fn.extend({
mousewheel: function (a) {
return a ? this.bind("mousewheel", a) : this.trigger("mousewheel")
},
unmousewheel: function (a) {
return this.unbind("mousewheel", a)
}
})
});
! function (a) {
"function" == typeof define && define.amd ? define(["jquery"], a) : "object" == typeof exports ? module.exports = a : a(jQuery)
}(function (a) {
function b(b) {
var g = b || window.event,
h = i.call(arguments, 1),
j = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0;
if (b = a.event.fix(g), b.type = "mousewheel", "detail" in g && (m = -1 * g.detail), "wheelDelta" in g && (m = g.wheelDelta), "wheelDeltaY" in g && (m = g.wheelDeltaY), "wheelDeltaX" in g && (l = -1 * g.wheelDeltaX), "axis" in g && g.axis === g.HORIZONTAL_AXIS && (l = -1 * m, m = 0), j = 0 === m ? l : m, "deltaY" in g && (m = -1 * g.deltaY, j = m), "deltaX" in g && (l = g.deltaX, 0 === m && (j = -1 * l)), 0 !== m || 0 !== l) {
if (1 === g.deltaMode) {
var q = a.data(this, "mousewheel-line-height");
j *= q, m *= q, l *= q
} else if (2 === g.deltaMode) {
var r = a.data(this, "mousewheel-page-height");
j *= r, m *= r, l *= r
}
if (n = Math.max(Math.abs(m), Math.abs(l)), (!f || f > n) && (f = n, d(g, n) && (f /= 40)), d(g, n) && (j /= 40, l /= 40, m /= 40), j = Math[j >= 1 ? "floor" : "ceil"](j / f), l = Math[l >= 1 ? "floor" : "ceil"](l / f), m = Math[m >= 1 ? "floor" : "ceil"](m / f), k.settings.normalizeOffset && this.getBoundingClientRect) {
var s = this.getBoundingClientRect();
o = b.clientX - s.left, p = b.clientY - s.top
}
return b.deltaX = l, b.deltaY = m, b.deltaFactor = f, b.offsetX = o, b.offsetY = p, b.deltaMode = 0, h.unshift(b, j, l, m), e && clearTimeout(e), e = setTimeout(c, 200), (a.event.dispatch || a.event.handle).apply(this, h)
}
}
function c() {
f = null
}
function d(a, b) {
return k.settings.adjustOldDeltas && "mousewheel" === a.type && b % 120 === 0
}
var e, f, g = ["wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll"],
h = "onwheel" in document || document.documentMode >= 9 ? ["wheel"] : ["mousewheel", "DomMouseScroll", "MozMousePixelScroll"],
i = Array.prototype.slice;
if (a.event.fixHooks)
for (var j = g.length; j;) a.event.fixHooks[g[--j]] = a.event.mouseHooks;
var k = a.event.special.mousewheel = {
version: "3.1.12",
setup: function () {
if (this.addEventListener)
for (var c = h.length; c;) this.addEventListener(h[--c], b, !1);
else this.onmousewheel = b;
a.data(this, "mousewheel-line-height", k.getLineHeight(this)), a.data(this, "mousewheel-page-height", k.getPageHeight(this))
},
teardown: function () {
if (this.removeEventListener)
for (var c = h.length; c;) this.removeEventListener(h[--c], b, !1);
else this.onmousewheel = null;
a.removeData(this, "mousewheel-line-height"), a.removeData(this, "mousewheel-page-height")
},
getLineHeight: function (b) {
var c = a(b),
d = c["offsetParent" in a.fn ? "offsetParent" : "parent"]();
return d.length || (d = a("body")), parseInt(d.css("fontSize"), 10) || parseInt(c.css("fontSize"), 10) || 16
},
getPageHeight: function (b) {
return a(b).height()
},
settings: {
adjustOldDeltas: !0,
normalizeOffset: !0
}
};
a.fn.extend({
mousewheel: function (a) {
return a ? this.bind("mousewheel", a) : this.trigger("mousewheel")
},
unmousewheel: function (a) {
return this.unbind("mousewheel", a)
}
})
});
/*
Custom scrollbar - malihu jquery custom scrollbar plugin
Version: 3.1.5
Plugin URI: http://manos.malihu.gr/jquery-custom-content-scroller
License: Copyright Manos Malihutsakis | Released under the MIT license
*/
! function (e) {
"function" == typeof define && define.amd ? define(["jquery"], e) : "undefined" != typeof module && module.exports ? module.exports = e : e(jQuery, window, document)
}(function (e) {
! function (t) {
var o = "function" == typeof define && define.amd,
a = "undefined" != typeof module && module.exports,
n = "https:" == document.location.protocol ? "https:" : "http:",
i = "cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js";
o || (a ? require("jquery-mousewheel")(e) : e.event.special.mousewheel || e("head").append(decodeURI("%3Cscript src=" + n + "//" + i + "%3E%3C/script%3E"))), t()
}(function () {
var t, o = "mCustomScrollbar",
a = "mCS",
n = ".mCustomScrollbar",
i = {
setTop: 0,
setLeft: 0,
axis: "y",
scrollbarPosition: "inside",
scrollInertia: 950,
autoDraggerLength: !0,
alwaysShowScrollbar: 0,
snapOffset: 0,
mouseWheel: {
enable: !0,
scrollAmount: "auto",
axis: "y",
deltaFactor: "auto",
disableOver: ["select", "option", "keygen", "datalist", "textarea"]
},
scrollButtons: {
scrollType: "stepless",
scrollAmount: "auto"
},
keyboard: {
enable: !0,
scrollType: "stepless",
scrollAmount: "auto"
},
contentTouchScroll: 25,
documentTouchScroll: !0,
advanced: {
autoScrollOnFocus: "input,textarea,select,button,datalist,keygen,a[tabindex],area,object,[contenteditable='true']",
updateOnContentResize: !0,
updateOnImageLoad: "auto",
autoUpdateTimeout: 60
},
theme: "light",
callbacks: {
onTotalScrollOffset: 0,
onTotalScrollBackOffset: 0,
alwaysTriggerOffsets: !0
}
},
r = 0,
l = {},
s = window.attachEvent && !window.addEventListener ? 1 : 0,
c = !1,
d = ["mCSB_dragger_onDrag", "mCSB_scrollTools_onDrag", "mCS_img_loaded", "mCS_disabled", "mCS_destroyed", "mCS_no_scrollbar", "mCS-autoHide", "mCS-dir-rtl", "mCS_no_scrollbar_y", "mCS_no_scrollbar_x", "mCS_y_hidden", "mCS_x_hidden", "mCSB_draggerContainer", "mCSB_buttonUp", "mCSB_buttonDown", "mCSB_buttonLeft", "mCSB_buttonRight"],
u = {
init: function (t) {
var t = e.extend(!0, {}, i, t),
o = f.call(this);
if (t.live) {
var s = t.liveSelector || this.selector || n,
c = e(s);
if ("off" === t.live) return void m(s);
l[s] = setTimeout(function () {
c.mCustomScrollbar(t), "once" === t.live && c.length && m(s)
}, 500)
} else m(s);
return t.setWidth = t.set_width ? t.set_width : t.setWidth, t.setHeight = t.set_height ? t.set_height : t.setHeight, t.axis = t.horizontalScroll ? "x" : p(t.axis), t.scrollInertia = t.scrollInertia > 0 && t.scrollInertia < 17 ? 17 : t.scrollInertia, "object" != typeof t.mouseWheel && 1 == t.mouseWheel && (t.mouseWheel = {
enable: !0,
scrollAmount: "auto",
axis: "y",
preventDefault: !1,
deltaFactor: "auto",
normalizeDelta: !1,
invert: !1
}), t.mouseWheel.scrollAmount = t.mouseWheelPixels ? t.mouseWheelPixels : t.mouseWheel.scrollAmount, t.mouseWheel.normalizeDelta = t.advanced.normalizeMouseWheelDelta ? t.advanced.normalizeMouseWheelDelta : t.mouseWheel.normalizeDelta, t.scrollButtons.scrollType = g(t.scrollButtons.scrollType), h(t), e(o).each(function () {
var o = e(this);
if (!o.data(a)) {
o.data(a, {
idx: ++r,
opt: t,
scrollRatio: {
y: null,
x: null
},
overflowed: null,
contentReset: {
y: null,
x: null
},
bindEvents: !1,
tweenRunning: !1,
sequential: {},
langDir: o.css("direction"),
cbOffsets: null,
trigger: null,
poll: {
size: {
o: 0,
n: 0
},
img: {
o: 0,
n: 0
},
change: {
o: 0,
n: 0
}
}
});
var n = o.data(a),
i = n.opt,
l = o.data("mcs-axis"),
s = o.data("mcs-scrollbar-position"),
c = o.data("mcs-theme");
l && (i.axis = l), s && (i.scrollbarPosition = s), c && (i.theme = c, h(i)), v.call(this), n && i.callbacks.onCreate && "function" == typeof i.callbacks.onCreate && i.callbacks.onCreate.call(this), e("#mCSB_" + n.idx + "_container img:not(." + d[2] + ")").addClass(d[2]), u.update.call(null, o)
}
})
},
update: function (t, o) {
var n = t || f.call(this);
return e(n).each(function () {
var t = e(this);
if (t.data(a)) {
var n = t.data(a),
i = n.opt,
r = e("#mCSB_" + n.idx + "_container"),
l = e("#mCSB_" + n.idx),
s = [e("#mCSB_" + n.idx + "_dragger_vertical"), e("#mCSB_" + n.idx + "_dragger_horizontal")];
if (!r.length) return;
n.tweenRunning && Q(t), o && n && i.callbacks.onBeforeUpdate && "function" == typeof i.callbacks.onBeforeUpdate && i.callbacks.onBeforeUpdate.call(this), t.hasClass(d[3]) && t.removeClass(d[3]), t.hasClass(d[4]) && t.removeClass(d[4]), l.css("max-height", "none"), l.height() !== t.height() && l.css("max-height", t.height()), _.call(this), "y" === i.axis || i.advanced.autoExpandHorizontalScroll || r.css("width", x(r)), n.overflowed = y.call(this), M.call(this), i.autoDraggerLength && S.call(this), b.call(this), T.call(this);
var c = [Math.abs(r[0].offsetTop), Math.abs(r[0].offsetLeft)];
"x" !== i.axis && (n.overflowed[0] ? s[0].height() > s[0].parent().height() ? B.call(this) : (G(t, c[0].toString(), {
dir: "y",
dur: 0,
overwrite: "none"
}), n.contentReset.y = null) : (B.call(this), "y" === i.axis ? k.call(this) : "yx" === i.axis && n.overflowed[1] && G(t, c[1].toString(), {
dir: "x",
dur: 0,
overwrite: "none"
}))), "y" !== i.axis && (n.overflowed[1] ? s[1].width() > s[1].parent().width() ? B.call(this) : (G(t, c[1].toString(), {
dir: "x",
dur: 0,
overwrite: "none"
}), n.contentReset.x = null) : (B.call(this), "x" === i.axis ? k.call(this) : "yx" === i.axis && n.overflowed[0] && G(t, c[0].toString(), {
dir: "y",
dur: 0,
overwrite: "none"
}))), o && n && (2 === o && i.callbacks.onImageLoad && "function" == typeof i.callbacks.onImageLoad ? i.callbacks.onImageLoad.call(this) : 3 === o && i.callbacks.onSelectorChange && "function" == typeof i.callbacks.onSelectorChange ? i.callbacks.onSelectorChange.call(this) : i.callbacks.onUpdate && "function" == typeof i.callbacks.onUpdate && i.callbacks.onUpdate.call(this)), N.call(this)
}
})
},
scrollTo: function (t, o) {
if ("undefined" != typeof t && null != t) {
var n = f.call(this);
return e(n).each(function () {
var n = e(this);
if (n.data(a)) {
var i = n.data(a),
r = i.opt,
l = {
trigger: "external",
scrollInertia: r.scrollInertia,
scrollEasing: "mcsEaseInOut",
moveDragger: !1,
timeout: 60,
callbacks: !0,
onStart: !0,
onUpdate: !0,
onComplete: !0
},
s = e.extend(!0, {}, l, o),
c = Y.call(this, t),
d = s.scrollInertia > 0 && s.scrollInertia < 17 ? 17 : s.scrollInertia;
c[0] = X.call(this, c[0], "y"), c[1] = X.call(this, c[1], "x"), s.moveDragger && (c[0] *= i.scrollRatio.y, c[1] *= i.scrollRatio.x), s.dur = ne() ? 0 : d, setTimeout(function () {
null !== c[0] && "undefined" != typeof c[0] && "x" !== r.axis && i.overflowed[0] && (s.dir = "y", s.overwrite = "all", G(n, c[0].toString(), s)), null !== c[1] && "undefined" != typeof c[1] && "y" !== r.axis && i.overflowed[1] && (s.dir = "x", s.overwrite = "none", G(n, c[1].toString(), s))
}, s.timeout)
}
})
}
},
stop: function () {
var t = f.call(this);
return e(t).each(function () {
var t = e(this);
t.data(a) && Q(t)
})
},
disable: function (t) {
var o = f.call(this);
return e(o).each(function () {
var o = e(this);
if (o.data(a)) {
o.data(a);
N.call(this, "remove"), k.call(this), t && B.call(this), M.call(this, !0), o.addClass(d[3])
}
})
},
destroy: function () {
var t = f.call(this);
return e(t).each(function () {
var n = e(this);
if (n.data(a)) {
var i = n.data(a),
r = i.opt,
l = e("#mCSB_" + i.idx),
s = e("#mCSB_" + i.idx + "_container"),
c = e(".mCSB_" + i.idx + "_scrollbar");
r.live && m(r.liveSelector || e(t).selector), N.call(this, "remove"), k.call(this), B.call(this), n.removeData(a), $(this, "mcs"), c.remove(), s.find("img." + d[2]).removeClass(d[2]), l.replaceWith(s.contents()), n.removeClass(o + " _" + a + "_" + i.idx + " " + d[6] + " " + d[7] + " " + d[5] + " " + d[3]).addClass(d[4])
}
})
}
},
f = function () {
return "object" != typeof e(this) || e(this).length < 1 ? n : this
},
h = function (t) {
var o = ["rounded", "rounded-dark", "rounded-dots", "rounded-dots-dark"],
a = ["rounded-dots", "rounded-dots-dark", "3d", "3d-dark", "3d-thick", "3d-thick-dark", "inset", "inset-dark", "inset-2", "inset-2-dark", "inset-3", "inset-3-dark"],
n = ["minimal", "minimal-dark"],
i = ["minimal", "minimal-dark"],
r = ["minimal", "minimal-dark"];
t.autoDraggerLength = e.inArray(t.theme, o) > -1 ? !1 : t.autoDraggerLength, t.autoExpandScrollbar = e.inArray(t.theme, a) > -1 ? !1 : t.autoExpandScrollbar, t.scrollButtons.enable = e.inArray(t.theme, n) > -1 ? !1 : t.scrollButtons.enable, t.autoHideScrollbar = e.inArray(t.theme, i) > -1 ? !0 : t.autoHideScrollbar, t.scrollbarPosition = e.inArray(t.theme, r) > -1 ? "outside" : t.scrollbarPosition
},
m = function (e) {
l[e] && (clearTimeout(l[e]), $(l, e))
},
p = function (e) {
return "yx" === e || "xy" === e || "auto" === e ? "yx" : "x" === e || "horizontal" === e ? "x" : "y"
},
g = function (e) {
return "stepped" === e || "pixels" === e || "step" === e || "click" === e ? "stepped" : "stepless"
},
v = function () {
var t = e(this),
n = t.data(a),
i = n.opt,
r = i.autoExpandScrollbar ? " " + d[1] + "_expand" : "",
l = ["", ""],
s = "yx" === i.axis ? "mCSB_vertical_horizontal" : "x" === i.axis ? "mCSB_horizontal" : "mCSB_vertical",
c = "yx" === i.axis ? l[0] + l[1] : "x" === i.axis ? l[1] : l[0],
u = "yx" === i.axis ? "
" : "",
f = i.autoHideScrollbar ? " " + d[6] : "",
h = "x" !== i.axis && "rtl" === n.langDir ? " " + d[7] : "";
i.setWidth && t.css("width", i.setWidth), i.setHeight && t.css("height", i.setHeight), i.setLeft = "y" !== i.axis && "rtl" === n.langDir ? "989999px" : i.setLeft, t.addClass(o + " _" + a + "_" + n.idx + f + h).wrapInner("");
var m = e("#mCSB_" + n.idx),
p = e("#mCSB_" + n.idx + "_container");
"y" === i.axis || i.advanced.autoExpandHorizontalScroll || p.css("width", x(p)), "outside" === i.scrollbarPosition ? ("static" === t.css("position") && t.css("position", "relative"), t.css("overflow", "visible"), m.addClass("mCSB_outside").after(c)) : (m.addClass("mCSB_inside").append(c), p.wrap(u)), w.call(this);
var g = [e("#mCSB_" + n.idx + "_dragger_vertical"), e("#mCSB_" + n.idx + "_dragger_horizontal")];
g[0].css("min-height", g[0].height()), g[1].css("min-width", g[1].width())
},
x = function (t) {
var o = [t[0].scrollWidth, Math.max.apply(Math, t.children().map(function () {
return e(this).outerWidth(!0)
}).get())],
a = t.parent().width();
return o[0] > a ? o[0] : o[1] > a ? o[1] : "100%"
},
_ = function () {
var t = e(this),
o = t.data(a),
n = o.opt,
i = e("#mCSB_" + o.idx + "_container");
if (n.advanced.autoExpandHorizontalScroll && "y" !== n.axis) {
i.css({
width: "auto",
"min-width": 0,
"overflow-x": "scroll"
});
var r = Math.ceil(i[0].scrollWidth);
3 === n.advanced.autoExpandHorizontalScroll || 2 !== n.advanced.autoExpandHorizontalScroll && r > i.parent().width() ? i.css({
width: r,
"min-width": "100%",
"overflow-x": "inherit"
}) : i.css({
"overflow-x": "inherit",
position: "absolute"
}).wrap("
").css({
width: Math.ceil(i[0].getBoundingClientRect().right + .4) - Math.floor(i[0].getBoundingClientRect().left),
"min-width": "100%",
position: "relative"
}).unwrap()
}
},
w = function () {
var t = e(this),
o = t.data(a),
n = o.opt,
i = e(".mCSB_" + o.idx + "_scrollbar:first"),
r = oe(n.scrollButtons.tabindex) ? "tabindex='" + n.scrollButtons.tabindex + "'" : "",
l = [" ", " ", " ", " "],
s = ["x" === n.axis ? l[2] : l[0], "x" === n.axis ? l[3] : l[1], l[2], l[3]];
n.scrollButtons.enable && i.prepend(s[0]).append(s[1]).next(".mCSB_scrollTools").prepend(s[2]).append(s[3])
},
S = function () {
var t = e(this),
o = t.data(a),
n = e("#mCSB_" + o.idx),
i = e("#mCSB_" + o.idx + "_container"),
r = [e("#mCSB_" + o.idx + "_dragger_vertical"), e("#mCSB_" + o.idx + "_dragger_horizontal")],
l = [n.height() / i.outerHeight(!1), n.width() / i.outerWidth(!1)],
c = [parseInt(r[0].css("min-height")), Math.round(l[0] * r[0].parent().height()), parseInt(r[1].css("min-width")), Math.round(l[1] * r[1].parent().width())],
d = s && c[1] < c[0] ? c[0] : c[1],
u = s && c[3] < c[2] ? c[2] : c[3];
r[0].css({
height: d,
"max-height": r[0].parent().height() - 10
}).find(".mCSB_dragger_bar").css({
"line-height": c[0] + "px"
}), r[1].css({
width: u,
"max-width": r[1].parent().width() - 10
})
},
b = function () {
var t = e(this),
o = t.data(a),
n = e("#mCSB_" + o.idx),
i = e("#mCSB_" + o.idx + "_container"),
r = [e("#mCSB_" + o.idx + "_dragger_vertical"), e("#mCSB_" + o.idx + "_dragger_horizontal")],
l = [i.outerHeight(!1) - n.height(), i.outerWidth(!1) - n.width()],
s = [l[0] / (r[0].parent().height() - r[0].height()), l[1] / (r[1].parent().width() - r[1].width())];
o.scrollRatio = {
y: s[0],
x: s[1]
}
},
C = function (e, t, o) {
var a = o ? d[0] + "_expanded" : "",
n = e.closest(".mCSB_scrollTools");
"active" === t ? (e.toggleClass(d[0] + " " + a), n.toggleClass(d[1]), e[0]._draggable = e[0]._draggable ? 0 : 1) : e[0]._draggable || ("hide" === t ? (e.removeClass(d[0]), n.removeClass(d[1])) : (e.addClass(d[0]), n.addClass(d[1])))
},
y = function () {
var t = e(this),
o = t.data(a),
n = e("#mCSB_" + o.idx),
i = e("#mCSB_" + o.idx + "_container"),
r = null == o.overflowed ? i.height() : i.outerHeight(!1),
l = null == o.overflowed ? i.width() : i.outerWidth(!1),
s = i[0].scrollHeight,
c = i[0].scrollWidth;
return s > r && (r = s), c > l && (l = c), [r > n.height(), l > n.width()]
},
B = function () {
var t = e(this),
o = t.data(a),
n = o.opt,
i = e("#mCSB_" + o.idx),
r = e("#mCSB_" + o.idx + "_container"),
l = [e("#mCSB_" + o.idx + "_dragger_vertical"), e("#mCSB_" + o.idx + "_dragger_horizontal")];
if (Q(t), ("x" !== n.axis && !o.overflowed[0] || "y" === n.axis && o.overflowed[0]) && (l[0].add(r).css("top", 0), G(t, "_resetY")), "y" !== n.axis && !o.overflowed[1] || "x" === n.axis && o.overflowed[1]) {
var s = dx = 0;
"rtl" === o.langDir && (s = i.width() - r.outerWidth(!1), dx = Math.abs(s / o.scrollRatio.x)), r.css("left", s), l[1].css("left", dx), G(t, "_resetX")
}
},
T = function () {
function t() {
r = setTimeout(function () {
e.event.special.mousewheel ? (clearTimeout(r), W.call(o[0])) : t()
}, 100)
}
var o = e(this),
n = o.data(a),
i = n.opt;
if (!n.bindEvents) {
if (I.call(this), i.contentTouchScroll && D.call(this), E.call(this), i.mouseWheel.enable) {
var r;
t()
}
P.call(this), U.call(this), i.advanced.autoScrollOnFocus && H.call(this), i.scrollButtons.enable && F.call(this), i.keyboard.enable && q.call(this), n.bindEvents = !0
}
},
k = function () {
var t = e(this),
o = t.data(a),
n = o.opt,
i = a + "_" + o.idx,
r = ".mCSB_" + o.idx + "_scrollbar",
l = e("#mCSB_" + o.idx + ",#mCSB_" + o.idx + "_container,#mCSB_" + o.idx + "_container_wrapper," + r + " ." + d[12] + ",#mCSB_" + o.idx + "_dragger_vertical,#mCSB_" + o.idx + "_dragger_horizontal," + r + ">a"),
s = e("#mCSB_" + o.idx + "_container");
n.advanced.releaseDraggableSelectors && l.add(e(n.advanced.releaseDraggableSelectors)), n.advanced.extraDraggableSelectors && l.add(e(n.advanced.extraDraggableSelectors)), o.bindEvents && (e(document).add(e(!A() || top.document)).unbind("." + i), l.each(function () {
e(this).unbind("." + i)
}), clearTimeout(t[0]._focusTimeout), $(t[0], "_focusTimeout"), clearTimeout(o.sequential.step), $(o.sequential, "step"), clearTimeout(s[0].onCompleteTimeout), $(s[0], "onCompleteTimeout"), o.bindEvents = !1)
},
M = function (t) {
var o = e(this),
n = o.data(a),
i = n.opt,
r = e("#mCSB_" + n.idx + "_container_wrapper"),
l = r.length ? r : e("#mCSB_" + n.idx + "_container"),
s = [e("#mCSB_" + n.idx + "_scrollbar_vertical"), e("#mCSB_" + n.idx + "_scrollbar_horizontal")],
c = [s[0].find(".mCSB_dragger"), s[1].find(".mCSB_dragger")];
"x" !== i.axis && (n.overflowed[0] && !t ? (s[0].add(c[0]).add(s[0].children("a")).css("display", "block"), l.removeClass(d[8] + " " + d[10])) : (i.alwaysShowScrollbar ? (2 !== i.alwaysShowScrollbar && c[0].css("display", "none"), l.removeClass(d[10])) : (s[0].css("display", "none"), l.addClass(d[10])), l.addClass(d[8]))), "y" !== i.axis && (n.overflowed[1] && !t ? (s[1].add(c[1]).add(s[1].children("a")).css("display", "block"), l.removeClass(d[9] + " " + d[11])) : (i.alwaysShowScrollbar ? (2 !== i.alwaysShowScrollbar && c[1].css("display", "none"), l.removeClass(d[11])) : (s[1].css("display", "none"), l.addClass(d[11])), l.addClass(d[9]))), n.overflowed[0] || n.overflowed[1] ? o.removeClass(d[5]) : o.addClass(d[5])
},
O = function (t) {
var o = t.type,
a = t.target.ownerDocument !== document && null !== frameElement ? [e(frameElement).offset().top, e(frameElement).offset().left] : null,
n = A() && t.target.ownerDocument !== top.document && null !== frameElement ? [e(t.view.frameElement).offset().top, e(t.view.frameElement).offset().left] : [0, 0];
switch (o) {
case "pointerdown":
case "MSPointerDown":
case "pointermove":
case "MSPointerMove":
case "pointerup":
case "MSPointerUp":
return a ? [t.originalEvent.pageY - a[0] + n[0], t.originalEvent.pageX - a[1] + n[1], !1] : [t.originalEvent.pageY, t.originalEvent.pageX, !1];
case "touchstart":
case "touchmove":
case "touchend":
var i = t.originalEvent.touches[0] || t.originalEvent.changedTouches[0],
r = t.originalEvent.touches.length || t.originalEvent.changedTouches.length;
return t.target.ownerDocument !== document ? [i.screenY, i.screenX, r > 1] : [i.pageY, i.pageX, r > 1];
default:
return a ? [t.pageY - a[0] + n[0], t.pageX - a[1] + n[1], !1] : [t.pageY, t.pageX, !1]
}
},
I = function () {
function t(e, t, a, n) {
if (h[0].idleTimer = d.scrollInertia < 233 ? 250 : 0, o.attr("id") === f[1]) var i = "x",
s = (o[0].offsetLeft - t + n) * l.scrollRatio.x;
else var i = "y",
s = (o[0].offsetTop - e + a) * l.scrollRatio.y;
G(r, s.toString(), {
dir: i,
drag: !0
})
}
var o, n, i, r = e(this),
l = r.data(a),
d = l.opt,
u = a + "_" + l.idx,
f = ["mCSB_" + l.idx + "_dragger_vertical", "mCSB_" + l.idx + "_dragger_horizontal"],
h = e("#mCSB_" + l.idx + "_container"),
m = e("#" + f[0] + ",#" + f[1]),
p = d.advanced.releaseDraggableSelectors ? m.add(e(d.advanced.releaseDraggableSelectors)) : m,
g = d.advanced.extraDraggableSelectors ? e(!A() || top.document).add(e(d.advanced.extraDraggableSelectors)) : e(!A() || top.document);
m.bind("contextmenu." + u, function (e) {
e.preventDefault()
}).bind("mousedown." + u + " touchstart." + u + " pointerdown." + u + " MSPointerDown." + u, function (t) {
if (t.stopImmediatePropagation(), t.preventDefault(), ee(t)) {
c = !0, s && (document.onselectstart = function () {
return !1
}), L.call(h, !1), Q(r), o = e(this);
var a = o.offset(),
l = O(t)[0] - a.top,
u = O(t)[1] - a.left,
f = o.height() + a.top,
m = o.width() + a.left;
f > l && l > 0 && m > u && u > 0 && (n = l, i = u), C(o, "active", d.autoExpandScrollbar)
}
}).bind("touchmove." + u, function (e) {
e.stopImmediatePropagation(), e.preventDefault();
var a = o.offset(),
r = O(e)[0] - a.top,
l = O(e)[1] - a.left;
t(n, i, r, l)
}), e(document).add(g).bind("mousemove." + u + " pointermove." + u + " MSPointerMove." + u, function (e) {
if (o) {
var a = o.offset(),
r = O(e)[0] - a.top,
l = O(e)[1] - a.left;
if (n === r && i === l) return;
t(n, i, r, l)
}
}).add(p).bind("mouseup." + u + " touchend." + u + " pointerup." + u + " MSPointerUp." + u, function () {
o && (C(o, "active", d.autoExpandScrollbar), o = null), c = !1, s && (document.onselectstart = null), L.call(h, !0)
})
},
D = function () {
function o(e) {
if (!te(e) || c || O(e)[2]) return void(t = 0);
t = 1, b = 0, C = 0, d = 1, y.removeClass("mCS_touch_action");
var o = I.offset();
u = O(e)[0] - o.top, f = O(e)[1] - o.left, z = [O(e)[0], O(e)[1]]
}
function n(e) {
if (te(e) && !c && !O(e)[2] && (T.documentTouchScroll || e.preventDefault(), e.stopImmediatePropagation(), (!C || b) && d)) {
g = K();
var t = M.offset(),
o = O(e)[0] - t.top,
a = O(e)[1] - t.left,
n = "mcsLinearOut";
if (E.push(o), W.push(a), z[2] = Math.abs(O(e)[0] - z[0]), z[3] = Math.abs(O(e)[1] - z[1]), B.overflowed[0]) var i = D[0].parent().height() - D[0].height(),
r = u - o > 0 && o - u > -(i * B.scrollRatio.y) && (2 * z[3] < z[2] || "yx" === T.axis);
if (B.overflowed[1]) var l = D[1].parent().width() - D[1].width(),
h = f - a > 0 && a - f > -(l * B.scrollRatio.x) && (2 * z[2] < z[3] || "yx" === T.axis);
r || h ? (U || e.preventDefault(), b = 1) : (C = 1, y.addClass("mCS_touch_action")), U && e.preventDefault(), w = "yx" === T.axis ? [u - o, f - a] : "x" === T.axis ? [null, f - a] : [u - o, null], I[0].idleTimer = 250, B.overflowed[0] && s(w[0], R, n, "y", "all", !0), B.overflowed[1] && s(w[1], R, n, "x", L, !0)
}
}
function i(e) {
if (!te(e) || c || O(e)[2]) return void(t = 0);
t = 1, e.stopImmediatePropagation(), Q(y), p = K();
var o = M.offset();
h = O(e)[0] - o.top, m = O(e)[1] - o.left, E = [], W = []
}
function r(e) {
if (te(e) && !c && !O(e)[2]) {
d = 0, e.stopImmediatePropagation(), b = 0, C = 0, v = K();
var t = M.offset(),
o = O(e)[0] - t.top,
a = O(e)[1] - t.left;
if (!(v - g > 30)) {
_ = 1e3 / (v - p);
var n = "mcsEaseOut",
i = 2.5 > _,
r = i ? [E[E.length - 2], W[W.length - 2]] : [0, 0];
x = i ? [o - r[0], a - r[1]] : [o - h, a - m];
var u = [Math.abs(x[0]), Math.abs(x[1])];
_ = i ? [Math.abs(x[0] / 4), Math.abs(x[1] / 4)] : [_, _];
var f = [Math.abs(I[0].offsetTop) - x[0] * l(u[0] / _[0], _[0]), Math.abs(I[0].offsetLeft) - x[1] * l(u[1] / _[1], _[1])];
w = "yx" === T.axis ? [f[0], f[1]] : "x" === T.axis ? [null, f[1]] : [f[0], null], S = [4 * u[0] + T.scrollInertia, 4 * u[1] + T.scrollInertia];
var y = parseInt(T.contentTouchScroll) || 0;
w[0] = u[0] > y ? w[0] : 0, w[1] = u[1] > y ? w[1] : 0, B.overflowed[0] && s(w[0], S[0], n, "y", L, !1), B.overflowed[1] && s(w[1], S[1], n, "x", L, !1)
}
}
}
function l(e, t) {
var o = [1.5 * t, 2 * t, t / 1.5, t / 2];
return e > 90 ? t > 4 ? o[0] : o[3] : e > 60 ? t > 3 ? o[3] : o[2] : e > 30 ? t > 8 ? o[1] : t > 6 ? o[0] : t > 4 ? t : o[2] : t > 8 ? t : o[3]
}
function s(e, t, o, a, n, i) {
e && G(y, e.toString(), {
dur: t,
scrollEasing: o,
dir: a,
overwrite: n,
drag: i
})
}
var d, u, f, h, m, p, g, v, x, _, w, S, b, C, y = e(this),
B = y.data(a),
T = B.opt,
k = a + "_" + B.idx,
M = e("#mCSB_" + B.idx),
I = e("#mCSB_" + B.idx + "_container"),
D = [e("#mCSB_" + B.idx + "_dragger_vertical"), e("#mCSB_" + B.idx + "_dragger_horizontal")],
E = [],
W = [],
R = 0,
L = "yx" === T.axis ? "none" : "all",
z = [],
P = I.find("iframe"),
H = ["touchstart." + k + " pointerdown." + k + " MSPointerDown." + k, "touchmove." + k + " pointermove." + k + " MSPointerMove." + k, "touchend." + k + " pointerup." + k + " MSPointerUp." + k],
U = void 0 !== document.body.style.touchAction && "" !== document.body.style.touchAction;
I.bind(H[0], function (e) {
o(e)
}).bind(H[1], function (e) {
n(e)
}), M.bind(H[0], function (e) {
i(e)
}).bind(H[2], function (e) {
r(e)
}), P.length && P.each(function () {
e(this).bind("load", function () {
A(this) && e(this.contentDocument || this.contentWindow.document).bind(H[0], function (e) {
o(e), i(e)
}).bind(H[1], function (e) {
n(e)
}).bind(H[2], function (e) {
r(e)
})
})
})
},
E = function () {
function o() {
return window.getSelection ? window.getSelection().toString() : document.selection && "Control" != document.selection.type ? document.selection.createRange().text : 0
}
function n(e, t, o) {
d.type = o && i ? "stepped" : "stepless", d.scrollAmount = 10, j(r, e, t, "mcsLinearOut", o ? 60 : null)
}
var i, r = e(this),
l = r.data(a),
s = l.opt,
d = l.sequential,
u = a + "_" + l.idx,
f = e("#mCSB_" + l.idx + "_container"),
h = f.parent();
f.bind("mousedown." + u, function () {
t || i || (i = 1, c = !0)
}).add(document).bind("mousemove." + u, function (e) {
if (!t && i && o()) {
var a = f.offset(),
r = O(e)[0] - a.top + f[0].offsetTop,
c = O(e)[1] - a.left + f[0].offsetLeft;
r > 0 && r < h.height() && c > 0 && c < h.width() ? d.step && n("off", null, "stepped") : ("x" !== s.axis && l.overflowed[0] && (0 > r ? n("on", 38) : r > h.height() && n("on", 40)), "y" !== s.axis && l.overflowed[1] && (0 > c ? n("on", 37) : c > h.width() && n("on", 39)))
}
}).bind("mouseup." + u + " dragend." + u, function () {
t || (i && (i = 0, n("off", null)), c = !1)
})
},
W = function () {
function t(t, a) {
if (Q(o), !z(o, t.target)) {
var r = "auto" !== i.mouseWheel.deltaFactor ? parseInt(i.mouseWheel.deltaFactor) : s && t.deltaFactor < 100 ? 100 : t.deltaFactor || 100,
d = i.scrollInertia;
if ("x" === i.axis || "x" === i.mouseWheel.axis) var u = "x",
f = [Math.round(r * n.scrollRatio.x), parseInt(i.mouseWheel.scrollAmount)],
h = "auto" !== i.mouseWheel.scrollAmount ? f[1] : f[0] >= l.width() ? .9 * l.width() : f[0],
m = Math.abs(e("#mCSB_" + n.idx + "_container")[0].offsetLeft),
p = c[1][0].offsetLeft,
g = c[1].parent().width() - c[1].width(),
v = "y" === i.mouseWheel.axis ? t.deltaY || a : t.deltaX;
else var u = "y",
f = [Math.round(r * n.scrollRatio.y), parseInt(i.mouseWheel.scrollAmount)],
h = "auto" !== i.mouseWheel.scrollAmount ? f[1] : f[0] >= l.height() ? .9 * l.height() : f[0],
m = Math.abs(e("#mCSB_" + n.idx + "_container")[0].offsetTop),
p = c[0][0].offsetTop,
g = c[0].parent().height() - c[0].height(),
v = t.deltaY || a;
"y" === u && !n.overflowed[0] || "x" === u && !n.overflowed[1] || ((i.mouseWheel.invert || t.webkitDirectionInvertedFromDevice) && (v = -v), i.mouseWheel.normalizeDelta && (v = 0 > v ? -1 : 1), (v > 0 && 0 !== p || 0 > v && p !== g || i.mouseWheel.preventDefault) && (t.stopImmediatePropagation(), t.preventDefault()), t.deltaFactor < 5 && !i.mouseWheel.normalizeDelta && (h = t.deltaFactor, d = 17), G(o, (m - v * h).toString(), {
dir: u,
dur: d
}))
}
}
if (e(this).data(a)) {
var o = e(this),
n = o.data(a),
i = n.opt,
r = a + "_" + n.idx,
l = e("#mCSB_" + n.idx),
c = [e("#mCSB_" + n.idx + "_dragger_vertical"), e("#mCSB_" + n.idx + "_dragger_horizontal")],
d = e("#mCSB_" + n.idx + "_container").find("iframe");
d.length && d.each(function () {
e(this).bind("load", function () {
A(this) && e(this.contentDocument || this.contentWindow.document).bind("mousewheel." + r, function (e, o) {
t(e, o)
})
})
}), l.bind("mousewheel." + r, function (e, o) {
t(e, o)
})
}
},
R = new Object,
A = function (t) {
var o = !1,
a = !1,
n = null;
if (void 0 === t ? a = "#empty" : void 0 !== e(t).attr("id") && (a = e(t).attr("id")), a !== !1 && void 0 !== R[a]) return R[a];
if (t) {
try {
var i = t.contentDocument || t.contentWindow.document;
n = i.body.innerHTML
} catch (r) {}
o = null !== n
} else {
try {
var i = top.document;
n = i.body.innerHTML
} catch (r) {}
o = null !== n
}
return a !== !1 && (R[a] = o), o
},
L = function (e) {
var t = this.find("iframe");
if (t.length) {
var o = e ? "auto" : "none";
t.css("pointer-events", o)
}
},
z = function (t, o) {
var n = o.nodeName.toLowerCase(),
i = t.data(a).opt.mouseWheel.disableOver,
r = ["select", "textarea"];
return e.inArray(n, i) > -1 && !(e.inArray(n, r) > -1 && !e(o).is(":focus"))
},
P = function () {
var t, o = e(this),
n = o.data(a),
i = a + "_" + n.idx,
r = e("#mCSB_" + n.idx + "_container"),
l = r.parent(),
s = e(".mCSB_" + n.idx + "_scrollbar ." + d[12]);
s.bind("mousedown." + i + " touchstart." + i + " pointerdown." + i + " MSPointerDown." + i, function (o) {
c = !0, e(o.target).hasClass("mCSB_dragger") || (t = 1)
}).bind("touchend." + i + " pointerup." + i + " MSPointerUp." + i, function () {
c = !1
}).bind("click." + i, function (a) {
if (t && (t = 0, e(a.target).hasClass(d[12]) || e(a.target).hasClass("mCSB_draggerRail"))) {
Q(o);
var i = e(this),
s = i.find(".mCSB_dragger");
if (i.parent(".mCSB_scrollTools_horizontal").length > 0) {
if (!n.overflowed[1]) return;
var c = "x",
u = a.pageX > s.offset().left ? -1 : 1,
f = Math.abs(r[0].offsetLeft) - u * (.9 * l.width())
} else {
if (!n.overflowed[0]) return;
var c = "y",
u = a.pageY > s.offset().top ? -1 : 1,
f = Math.abs(r[0].offsetTop) - u * (.9 * l.height())
}
G(o, f.toString(), {
dir: c,
scrollEasing: "mcsEaseInOut"
})
}
})
},
H = function () {
var t = e(this),
o = t.data(a),
n = o.opt,
i = a + "_" + o.idx,
r = e("#mCSB_" + o.idx + "_container"),
l = r.parent();
r.bind("focusin." + i, function () {
var o = e(document.activeElement),
a = r.find(".mCustomScrollBox").length,
i = 0;
o.is(n.advanced.autoScrollOnFocus) && (Q(t), clearTimeout(t[0]._focusTimeout), t[0]._focusTimer = a ? (i + 17) * a : 0, t[0]._focusTimeout = setTimeout(function () {
var e = [ae(o)[0], ae(o)[1]],
a = [r[0].offsetTop, r[0].offsetLeft],
s = [a[0] + e[0] >= 0 && a[0] + e[0] < l.height() - o.outerHeight(!1), a[1] + e[1] >= 0 && a[0] + e[1] < l.width() - o.outerWidth(!1)],
c = "yx" !== n.axis || s[0] || s[1] ? "all" : "none";
"x" === n.axis || s[0] || G(t, e[0].toString(), {
dir: "y",
scrollEasing: "mcsEaseInOut",
overwrite: c,
dur: i
}), "y" === n.axis || s[1] || G(t, e[1].toString(), {
dir: "x",
scrollEasing: "mcsEaseInOut",
overwrite: c,
dur: i
})
}, t[0]._focusTimer))
})
},
U = function () {
var t = e(this),
o = t.data(a),
n = a + "_" + o.idx,
i = e("#mCSB_" + o.idx + "_container").parent();
i.bind("scroll." + n, function () {
0 === i.scrollTop() && 0 === i.scrollLeft() || e(".mCSB_" + o.idx + "_scrollbar").css("visibility", "hidden")
})
},
F = function () {
var t = e(this),
o = t.data(a),
n = o.opt,
i = o.sequential,
r = a + "_" + o.idx,
l = ".mCSB_" + o.idx + "_scrollbar",
s = e(l + ">a");
s.bind("contextmenu." + r, function (e) {
e.preventDefault()
}).bind("mousedown." + r + " touchstart." + r + " pointerdown." + r + " MSPointerDown." + r + " mouseup." + r + " touchend." + r + " pointerup." + r + " MSPointerUp." + r + " mouseout." + r + " pointerout." + r + " MSPointerOut." + r + " click." + r, function (a) {
function r(e, o) {
i.scrollAmount = n.scrollButtons.scrollAmount, j(t, e, o)
}
if (a.preventDefault(), ee(a)) {
var l = e(this).attr("class");
switch (i.type = n.scrollButtons.scrollType, a.type) {
case "mousedown":
case "touchstart":
case "pointerdown":
case "MSPointerDown":
if ("stepped" === i.type) return;
c = !0, o.tweenRunning = !1, r("on", l);
break;
case "mouseup":
case "touchend":
case "pointerup":
case "MSPointerUp":
case "mouseout":
case "pointerout":
case "MSPointerOut":
if ("stepped" === i.type) return;
c = !1, i.dir && r("off", l);
break;
case "click":
if ("stepped" !== i.type || o.tweenRunning) return;
r("on", l)
}
}
})
},
q = function () {
function t(t) {
function a(e, t) {
r.type = i.keyboard.scrollType, r.scrollAmount = i.keyboard.scrollAmount, "stepped" === r.type && n.tweenRunning || j(o, e, t)
}
switch (t.type) {
case "blur":
n.tweenRunning && r.dir && a("off", null);
break;
case "keydown":
case "keyup":
var l = t.keyCode ? t.keyCode : t.which,
s = "on";
if ("x" !== i.axis && (38 === l || 40 === l) || "y" !== i.axis && (37 === l || 39 === l)) {
if ((38 === l || 40 === l) && !n.overflowed[0] || (37 === l || 39 === l) && !n.overflowed[1]) return;
"keyup" === t.type && (s = "off"), e(document.activeElement).is(u) || (t.preventDefault(), t.stopImmediatePropagation(), a(s, l))
} else if (33 === l || 34 === l) {
if ((n.overflowed[0] || n.overflowed[1]) && (t.preventDefault(), t.stopImmediatePropagation()), "keyup" === t.type) {
Q(o);
var f = 34 === l ? -1 : 1;
if ("x" === i.axis || "yx" === i.axis && n.overflowed[1] && !n.overflowed[0]) var h = "x",
m = Math.abs(c[0].offsetLeft) - f * (.9 * d.width());
else var h = "y",
m = Math.abs(c[0].offsetTop) - f * (.9 * d.height());
G(o, m.toString(), {
dir: h,
scrollEasing: "mcsEaseInOut"
})
}
} else if ((35 === l || 36 === l) && !e(document.activeElement).is(u) && ((n.overflowed[0] || n.overflowed[1]) && (t.preventDefault(), t.stopImmediatePropagation()), "keyup" === t.type)) {
if ("x" === i.axis || "yx" === i.axis && n.overflowed[1] && !n.overflowed[0]) var h = "x",
m = 35 === l ? Math.abs(d.width() - c.outerWidth(!1)) : 0;
else var h = "y",
m = 35 === l ? Math.abs(d.height() - c.outerHeight(!1)) : 0;
G(o, m.toString(), {
dir: h,
scrollEasing: "mcsEaseInOut"
})
}
}
}
var o = e(this),
n = o.data(a),
i = n.opt,
r = n.sequential,
l = a + "_" + n.idx,
s = e("#mCSB_" + n.idx),
c = e("#mCSB_" + n.idx + "_container"),
d = c.parent(),
u = "input,textarea,select,datalist,keygen,[contenteditable='true']",
f = c.find("iframe"),
h = ["blur." + l + " keydown." + l + " keyup." + l];
f.length && f.each(function () {
e(this).bind("load", function () {
A(this) && e(this.contentDocument || this.contentWindow.document).bind(h[0], function (e) {
t(e)
})
})
}), s.attr("tabindex", "0").bind(h[0], function (e) {
t(e)
})
},
j = function (t, o, n, i, r) {
function l(e) {
u.snapAmount && (f.scrollAmount = u.snapAmount instanceof Array ? "x" === f.dir[0] ? u.snapAmount[1] : u.snapAmount[0] : u.snapAmount);
var o = "stepped" !== f.type,
a = r ? r : e ? o ? p / 1.5 : g : 1e3 / 60,
n = e ? o ? 7.5 : 40 : 2.5,
s = [Math.abs(h[0].offsetTop), Math.abs(h[0].offsetLeft)],
d = [c.scrollRatio.y > 10 ? 10 : c.scrollRatio.y, c.scrollRatio.x > 10 ? 10 : c.scrollRatio.x],
m = "x" === f.dir[0] ? s[1] + f.dir[1] * (d[1] * n) : s[0] + f.dir[1] * (d[0] * n),
v = "x" === f.dir[0] ? s[1] + f.dir[1] * parseInt(f.scrollAmount) : s[0] + f.dir[1] * parseInt(f.scrollAmount),
x = "auto" !== f.scrollAmount ? v : m,
_ = i ? i : e ? o ? "mcsLinearOut" : "mcsEaseInOut" : "mcsLinear",
w = !!e;
return e && 17 > a && (x = "x" === f.dir[0] ? s[1] : s[0]), G(t, x.toString(), {
dir: f.dir[0],
scrollEasing: _,
dur: a,
onComplete: w
}), e ? void(f.dir = !1) : (clearTimeout(f.step), void(f.step = setTimeout(function () {
l()
}, a)))
}
function s() {
clearTimeout(f.step), $(f, "step"), Q(t)
}
var c = t.data(a),
u = c.opt,
f = c.sequential,
h = e("#mCSB_" + c.idx + "_container"),
m = "stepped" === f.type,
p = u.scrollInertia < 26 ? 26 : u.scrollInertia,
g = u.scrollInertia < 1 ? 17 : u.scrollInertia;
switch (o) {
case "on":
if (f.dir = [n === d[16] || n === d[15] || 39 === n || 37 === n ? "x" : "y", n === d[13] || n === d[15] || 38 === n || 37 === n ? -1 : 1], Q(t), oe(n) && "stepped" === f.type) return;
l(m);
break;
case "off":
s(), (m || c.tweenRunning && f.dir) && l(!0)
}
},
Y = function (t) {
var o = e(this).data(a).opt,
n = [];
return "function" == typeof t && (t = t()), t instanceof Array ? n = t.length > 1 ? [t[0], t[1]] : "x" === o.axis ? [null, t[0]] : [t[0], null] : (n[0] = t.y ? t.y : t.x || "x" === o.axis ? null : t, n[1] = t.x ? t.x : t.y || "y" === o.axis ? null : t), "function" == typeof n[0] && (n[0] = n[0]()), "function" == typeof n[1] && (n[1] = n[1]()), n
},
X = function (t, o) {
if (null != t && "undefined" != typeof t) {
var n = e(this),
i = n.data(a),
r = i.opt,
l = e("#mCSB_" + i.idx + "_container"),
s = l.parent(),
c = typeof t;
o || (o = "x" === r.axis ? "x" : "y");
var d = "x" === o ? l.outerWidth(!1) - s.width() : l.outerHeight(!1) - s.height(),
f = "x" === o ? l[0].offsetLeft : l[0].offsetTop,
h = "x" === o ? "left" : "top";
switch (c) {
case "function":
return t();
case "object":
var m = t.jquery ? t : e(t);
if (!m.length) return;
return "x" === o ? ae(m)[1] : ae(m)[0];
case "string":
case "number":
if (oe(t)) return Math.abs(t);
if (-1 !== t.indexOf("%")) return Math.abs(d * parseInt(t) / 100);
if (-1 !== t.indexOf("-=")) return Math.abs(f - parseInt(t.split("-=")[1]));
if (-1 !== t.indexOf("+=")) {
var p = f + parseInt(t.split("+=")[1]);
return p >= 0 ? 0 : Math.abs(p)
}
if (-1 !== t.indexOf("px") && oe(t.split("px")[0])) return Math.abs(t.split("px")[0]);
if ("top" === t || "left" === t) return 0;
if ("bottom" === t) return Math.abs(s.height() - l.outerHeight(!1));
if ("right" === t) return Math.abs(s.width() - l.outerWidth(!1));
if ("first" === t || "last" === t) {
var m = l.find(":" + t);
return "x" === o ? ae(m)[1] : ae(m)[0]
}
return e(t).length ? "x" === o ? ae(e(t))[1] : ae(e(t))[0] : (l.css(h, t), void u.update.call(null, n[0]))
}
}
},
N = function (t) {
function o() {
return clearTimeout(f[0].autoUpdate), 0 === l.parents("html").length ? void(l = null) : void(f[0].autoUpdate = setTimeout(function () {
return c.advanced.updateOnSelectorChange && (s.poll.change.n = i(), s.poll.change.n !== s.poll.change.o) ? (s.poll.change.o = s.poll.change.n, void r(3)) : c.advanced.updateOnContentResize && (s.poll.size.n = l[0].scrollHeight + l[0].scrollWidth + f[0].offsetHeight + l[0].offsetHeight + l[0].offsetWidth, s.poll.size.n !== s.poll.size.o) ? (s.poll.size.o = s.poll.size.n, void r(1)) : !c.advanced.updateOnImageLoad || "auto" === c.advanced.updateOnImageLoad && "y" === c.axis || (s.poll.img.n = f.find("img").length, s.poll.img.n === s.poll.img.o) ? void((c.advanced.updateOnSelectorChange || c.advanced.updateOnContentResize || c.advanced.updateOnImageLoad) && o()) : (s.poll.img.o = s.poll.img.n, void f.find("img").each(function () {
n(this)
}))
}, c.advanced.autoUpdateTimeout))
}
function n(t) {
function o(e, t) {
return function () {
return t.apply(e, arguments)
}
}
function a() {
this.onload = null, e(t).addClass(d[2]), r(2)
}
if (e(t).hasClass(d[2])) return void r();
var n = new Image;
n.onload = o(n, a), n.src = t.src
}
function i() {
c.advanced.updateOnSelectorChange === !0 && (c.advanced.updateOnSelectorChange = "*");
var e = 0,
t = f.find(c.advanced.updateOnSelectorChange);
return c.advanced.updateOnSelectorChange && t.length > 0 && t.each(function () {
e += this.offsetHeight + this.offsetWidth
}), e
}
function r(e) {
clearTimeout(f[0].autoUpdate), u.update.call(null, l[0], e)
}
var l = e(this),
s = l.data(a),
c = s.opt,
f = e("#mCSB_" + s.idx + "_container");
return t ? (clearTimeout(f[0].autoUpdate), void $(f[0], "autoUpdate")) : void o()
},
V = function (e, t, o) {
return Math.round(e / t) * t - o
},
Q = function (t) {
var o = t.data(a),
n = e("#mCSB_" + o.idx + "_container,#mCSB_" + o.idx + "_container_wrapper,#mCSB_" + o.idx + "_dragger_vertical,#mCSB_" + o.idx + "_dragger_horizontal");
n.each(function () {
Z.call(this)
})
},
G = function (t, o, n) {
function i(e) {
return s && c.callbacks[e] && "function" == typeof c.callbacks[e]
}
function r() {
return [c.callbacks.alwaysTriggerOffsets || w >= S[0] + y, c.callbacks.alwaysTriggerOffsets || -B >= w]
}
function l() {
var e = [h[0].offsetTop, h[0].offsetLeft],
o = [x[0].offsetTop, x[0].offsetLeft],
a = [h.outerHeight(!1), h.outerWidth(!1)],
i = [f.height(), f.width()];
t[0].mcs = {
content: h,
top: e[0],
left: e[1],
draggerTop: o[0],
draggerLeft: o[1],
topPct: Math.round(100 * Math.abs(e[0]) / (Math.abs(a[0]) - i[0])),
leftPct: Math.round(100 * Math.abs(e[1]) / (Math.abs(a[1]) - i[1])),
direction: n.dir
}
}
var s = t.data(a),
c = s.opt,
d = {
trigger: "internal",
dir: "y",
scrollEasing: "mcsEaseOut",
drag: !1,
dur: c.scrollInertia,
overwrite: "all",
callbacks: !0,
onStart: !0,
onUpdate: !0,
onComplete: !0
},
n = e.extend(d, n),
u = [n.dur, n.drag ? 0 : n.dur],
f = e("#mCSB_" + s.idx),
h = e("#mCSB_" + s.idx + "_container"),
m = h.parent(),
p = c.callbacks.onTotalScrollOffset ? Y.call(t, c.callbacks.onTotalScrollOffset) : [0, 0],
g = c.callbacks.onTotalScrollBackOffset ? Y.call(t, c.callbacks.onTotalScrollBackOffset) : [0, 0];
if (s.trigger = n.trigger, 0 === m.scrollTop() && 0 === m.scrollLeft() || (e(".mCSB_" + s.idx + "_scrollbar").css("visibility", "visible"), m.scrollTop(0).scrollLeft(0)), "_resetY" !== o || s.contentReset.y || (i("onOverflowYNone") && c.callbacks.onOverflowYNone.call(t[0]), s.contentReset.y = 1), "_resetX" !== o || s.contentReset.x || (i("onOverflowXNone") && c.callbacks.onOverflowXNone.call(t[0]), s.contentReset.x = 1), "_resetY" !== o && "_resetX" !== o) {
if (!s.contentReset.y && t[0].mcs || !s.overflowed[0] || (i("onOverflowY") && c.callbacks.onOverflowY.call(t[0]), s.contentReset.x = null), !s.contentReset.x && t[0].mcs || !s.overflowed[1] || (i("onOverflowX") && c.callbacks.onOverflowX.call(t[0]), s.contentReset.x = null), c.snapAmount) {
var v = c.snapAmount instanceof Array ? "x" === n.dir ? c.snapAmount[1] : c.snapAmount[0] : c.snapAmount;
o = V(o, v, c.snapOffset)
}
switch (n.dir) {
case "x":
var x = e("#mCSB_" + s.idx + "_dragger_horizontal"),
_ = "left",
w = h[0].offsetLeft,
S = [f.width() - h.outerWidth(!1), x.parent().width() - x.width()],
b = [o, 0 === o ? 0 : o / s.scrollRatio.x],
y = p[1],
B = g[1],
T = y > 0 ? y / s.scrollRatio.x : 0,
k = B > 0 ? B / s.scrollRatio.x : 0;
break;
case "y":
var x = e("#mCSB_" + s.idx + "_dragger_vertical"),
_ = "top",
w = h[0].offsetTop,
S = [f.height() - h.outerHeight(!1), x.parent().height() - x.height()],
b = [o, 0 === o ? 0 : o / s.scrollRatio.y],
y = p[0],
B = g[0],
T = y > 0 ? y / s.scrollRatio.y : 0,
k = B > 0 ? B / s.scrollRatio.y : 0
}
b[1] < 0 || 0 === b[0] && 0 === b[1] ? b = [0, 0] : b[1] >= S[1] ? b = [S[0], S[1]] : b[0] = -b[0], t[0].mcs || (l(), i("onInit") && c.callbacks.onInit.call(t[0])), clearTimeout(h[0].onCompleteTimeout), J(x[0], _, Math.round(b[1]), u[1], n.scrollEasing), !s.tweenRunning && (0 === w && b[0] >= 0 || w === S[0] && b[0] <= S[0]) || J(h[0], _, Math.round(b[0]), u[0], n.scrollEasing, n.overwrite, {
onStart: function () {
n.callbacks && n.onStart && !s.tweenRunning && (i("onScrollStart") && (l(), c.callbacks.onScrollStart.call(t[0])), s.tweenRunning = !0, C(x), s.cbOffsets = r())
},
onUpdate: function () {
n.callbacks && n.onUpdate && i("whileScrolling") && (l(), c.callbacks.whileScrolling.call(t[0]))
},
onComplete: function () {
if (n.callbacks && n.onComplete) {
"yx" === c.axis && clearTimeout(h[0].onCompleteTimeout);
var e = h[0].idleTimer || 0;
h[0].onCompleteTimeout = setTimeout(function () {
i("onScroll") && (l(), c.callbacks.onScroll.call(t[0])), i("onTotalScroll") && b[1] >= S[1] - T && s.cbOffsets[0] && (l(), c.callbacks.onTotalScroll.call(t[0])), i("onTotalScrollBack") && b[1] <= k && s.cbOffsets[1] && (l(), c.callbacks.onTotalScrollBack.call(t[0])), s.tweenRunning = !1, h[0].idleTimer = 0, C(x, "hide")
}, e)
}
}
})
}
},
J = function (e, t, o, a, n, i, r) {
function l() {
S.stop || (x || m.call(), x = K() - v, s(), x >= S.time && (S.time = x > S.time ? x + f - (x - S.time) : x + f - 1, S.time < x + 1 && (S.time = x + 1)), S.time < a ? S.id = h(l) : g.call())
}
function s() {
a > 0 ? (S.currVal = u(S.time, _, b, a, n), w[t] = Math.round(S.currVal) + "px") : w[t] = o + "px", p.call()
}
function c() {
f = 1e3 / 60, S.time = x + f, h = window.requestAnimationFrame ? window.requestAnimationFrame : function (e) {
return s(), setTimeout(e, .01)
}, S.id = h(l)
}
function d() {
null != S.id && (window.requestAnimationFrame ? window.cancelAnimationFrame(S.id) : clearTimeout(S.id), S.id = null)
}
function u(e, t, o, a, n) {
switch (n) {
case "linear":
case "mcsLinear":
return o * e / a + t;
case "mcsLinearOut":
return e /= a, e--, o * Math.sqrt(1 - e * e) + t;
case "easeInOutSmooth":
return e /= a / 2, 1 > e ? o / 2 * e * e + t : (e--, -o / 2 * (e * (e - 2) - 1) + t);
case "easeInOutStrong":
return e /= a / 2, 1 > e ? o / 2 * Math.pow(2, 10 * (e - 1)) + t : (e--, o / 2 * (-Math.pow(2, -10 * e) + 2) + t);
case "easeInOut":
case "mcsEaseInOut":
return e /= a / 2, 1 > e ? o / 2 * e * e * e + t : (e -= 2, o / 2 * (e * e * e + 2) + t);
case "easeOutSmooth":
return e /= a, e--, -o * (e * e * e * e - 1) + t;
case "easeOutStrong":
return o * (-Math.pow(2, -10 * e / a) + 1) + t;
case "easeOut":
case "mcsEaseOut":
default:
var i = (e /= a) * e,
r = i * e;
return t + o * (.499999999999997 * r * i + -2.5 * i * i + 5.5 * r + -6.5 * i + 4 * e)
}
}
e._mTween || (e._mTween = {
top: {},
left: {}
});
var f, h, r = r || {},
m = r.onStart || function () {},
p = r.onUpdate || function () {},
g = r.onComplete || function () {},
v = K(),
x = 0,
_ = e.offsetTop,
w = e.style,
S = e._mTween[t];
"left" === t && (_ = e.offsetLeft);
var b = o - _;
S.stop = 0, "none" !== i && d(), c()
},
K = function () {
return window.performance && window.performance.now ? window.performance.now() : window.performance && window.performance.webkitNow ? window.performance.webkitNow() : Date.now ? Date.now() : (new Date).getTime()
},
Z = function () {
var e = this;
e._mTween || (e._mTween = {
top: {},
left: {}
});
for (var t = ["top", "left"], o = 0; o < t.length; o++) {
var a = t[o];
e._mTween[a].id && (window.requestAnimationFrame ? window.cancelAnimationFrame(e._mTween[a].id) : clearTimeout(e._mTween[a].id), e._mTween[a].id = null, e._mTween[a].stop = 1)
}
},
$ = function (e, t) {
try {
delete e[t]
} catch (o) {
e[t] = null
}
},
ee = function (e) {
return !(e.which && 1 !== e.which)
},
te = function (e) {
var t = e.originalEvent.pointerType;
return !(t && "touch" !== t && 2 !== t)
},
oe = function (e) {
return !isNaN(parseFloat(e)) && isFinite(e)
},
ae = function (e) {
var t = e.parents(".mCSB_container");
return [e.offset().top - t.offset().top, e.offset().left - t.offset().left]
},
ne = function () {
function e() {
var e = ["webkit", "moz", "ms", "o"];
if ("hidden" in document) return "hidden";
for (var t = 0; t < e.length; t++)
if (e[t] + "Hidden" in document) return e[t] + "Hidden";
return null
}
var t = e();
return t ? document[t] : !1
};
e.fn[o] = function (t) {
return u[t] ? u[t].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof t && t ? void e.error("Method " + t + " does not exist") : u.init.apply(this, arguments)
}, e[o] = function (t) {
return u[t] ? u[t].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof t && t ? void e.error("Method " + t + " does not exist") : u.init.apply(this, arguments)
}, e[o].defaults = i, window[o] = !0, e(window).bind("load", function () {
e(n)[o](), e.extend(e.expr[":"], {
mcsInView: e.expr[":"].mcsInView || function (t) {
var o, a, n = e(t),
i = n.parents(".mCSB_container");
if (i.length) return o = i.parent(), a = [i[0].offsetTop, i[0].offsetLeft], a[0] + ae(n)[0] >= 0 && a[0] + ae(n)[0] < o.height() - n.outerHeight(!1) && a[1] + ae(n)[1] >= 0 && a[1] + ae(n)[1] < o.width() - n.outerWidth(!1)
},
mcsInSight: e.expr[":"].mcsInSight || function (t, o, a) {
var n, i, r, l, s = e(t),
c = s.parents(".mCSB_container"),
d = "exact" === a[3] ? [
[1, 0],
[1, 0]
] : [
[.9, .1],
[.6, .4]
];
if (c.length) return n = [s.outerHeight(!1), s.outerWidth(!1)], r = [c[0].offsetTop + ae(s)[0], c[0].offsetLeft + ae(s)[1]], i = [c.parent()[0].offsetHeight, c.parent()[0].offsetWidth], l = [n[0] < i[0] ? d[0] : d[1], n[1] < i[1] ? d[0] : d[1]], r[0] - i[0] * l[0][0] < 0 && r[0] + n[0] - i[0] * l[0][1] >= 0 && r[1] - i[1] * l[1][0] < 0 && r[1] + n[1] - i[1] * l[1][1] >= 0
},
mcsOverflow: e.expr[":"].mcsOverflow || function (t) {
var o = e(t).data(a);
if (o) return o.overflowed[0] || o.overflowed[1]
}
})
})
})
});
/*
Animated headlines
Plugin URI: https://codyhouse.co/gem/css-animated-headlines/
*/
jQuery(document).ready(function (s) {
var e, a, t = 2500,
n = 3800,
d = n - 3e3,
r = 50,
l = 150,
o = 500,
c = o + 800,
h = 600,
p = 1500;
function u(i) {
var e = C(i);
if (i.parents(".cd-headline").hasClass("type")) {
var a = i.parent(".cd-words-wrapper");
a.addClass("selected").removeClass("waiting"), setTimeout(function () {
a.removeClass("selected"), i.removeClass("is-visible").addClass("is-hidden").children("i").removeClass("in").addClass("out")
}, o), setTimeout(function () {
f(e, l)
}, c)
} else if (i.parents(".cd-headline").hasClass("letters")) {
var p = i.children("i").length >= e.children("i").length;
! function i(e, a, n, d) {
e.removeClass("in").addClass("out");
e.is(":last-child") ? n && setTimeout(function () {
u(C(a))
}, t) : setTimeout(function () {
i(e.next(), a, n, d)
}, d);
if (e.is(":last-child") && s("html").hasClass("no-csstransitions")) {
var r = C(a);
m(a, r)
}
}(i.find("i").eq(0), i, p, r), w(e.find("i").eq(0), e, p, r)
} else i.parents(".cd-headline").hasClass("clip") ? i.parents(".cd-words-wrapper").animate({
width: "2px"
}, h, function () {
m(i, e), f(e)
}) : i.parents(".cd-headline").hasClass("loading-bar") ? (i.parents(".cd-words-wrapper").removeClass("is-loading"), m(i, e), setTimeout(function () {
u(e)
}, n), setTimeout(function () {
i.parents(".cd-words-wrapper").addClass("is-loading")
}, d)) : (m(i, e), setTimeout(function () {
u(e)
}, t))
}
function f(s, i) {
s.parents(".cd-headline").hasClass("type") ? (w(s.find("i").eq(0), s, !1, i), s.addClass("is-visible").removeClass("is-hidden")) : s.parents(".cd-headline").hasClass("clip") && s.parents(".cd-words-wrapper").animate({
width: s.width() + 10
}, h, function () {
setTimeout(function () {
u(s)
}, p)
})
}
function w(s, i, e, a) {
s.addClass("in").removeClass("out"), s.is(":last-child") ? (i.parents(".cd-headline").hasClass("type") && setTimeout(function () {
i.parents(".cd-words-wrapper").addClass("waiting")
}, 200), e || setTimeout(function () {
u(i)
}, t)) : setTimeout(function () {
w(s.next(), i, e, a)
}, a)
}
function C(s) {
return s.is(":last-child") ? s.parent().children().eq(0) : s.next()
}
function m(s, i) {
s.removeClass("is-visible").addClass("is-hidden"), i.removeClass("is-hidden").addClass("is-visible")
}
s(".cd-headline.letters").find("b").each(function () {
var e = s(this),
a = e.text().split(""),
t = e.hasClass("is-visible");
for (i in a) e.parents(".rotate-2").length > 0 && (a[i] = "" + a[i] + " "), a[i] = t ? '' + a[i] + " " : "" + a[i] + " ";
var n = a.join("");
e.html(n).css("opacity", 1)
}), e = s(".cd-headline"), a = t, e.each(function () {
var i = s(this);
if (i.hasClass("loading-bar")) a = n, setTimeout(function () {
i.find(".cd-words-wrapper").addClass("is-loading")
}, d);
else if (i.hasClass("clip")) {
var e = i.find(".cd-words-wrapper"),
t = e.width() + 10;
e.css("width", t)
} else if (!i.hasClass("type")) {
var r = i.find(".cd-words-wrapper b"),
l = 0;
r.each(function () {
var i = s(this).width();
i > l && (l = i)
}), i.find(".cd-words-wrapper").css("width", l)
}
setTimeout(function () {
u(i.find(".is-visible").eq(0))
}, a)
}), s(window).resize(function () {
s(".cd-words-wrapper").each(function () {
s(this).css("width", "auto").css("width", s(this).width())
})
})
});
/*
Sticky-kit
Version: 1.1.3
Plugin URI: https://github.com/leafo/sticky-kit
License: Leaf Corcoran 2015 | http://leafo.net | Released under the MIT license
*/
(function () {
var c, f;
c = window.jQuery;
f = c(window);
c.fn.stick_in_parent = function (b) {
var A, w, J, n, B, K, p, q, L, k, E, t;
null == b && (b = {});
t = b.sticky_class;
B = b.inner_scrolling;
E = b.recalc_every;
k = b.parent;
q = b.offset_top;
p = b.spacer;
w = b.bottoming;
null == q && (q = 0);
null == k && (k = void 0);
null == B && (B = !0);
null == t && (t = "is_stuck");
A = c(document);
null == w && (w = !0);
L = function (a) {
var b;
return window.getComputedStyle ? (a = window.getComputedStyle(a[0]), b = parseFloat(a.getPropertyValue("width")) + parseFloat(a.getPropertyValue("margin-left"))
+ parseFloat(a.getPropertyValue("margin-right")), "border-box" !== a.getPropertyValue("box-sizing") && (b += parseFloat(a.getPropertyValue("border-left-width")) + parseFloat(a.getPropertyValue("border-right-width")) + parseFloat(a.getPropertyValue("padding-left")) + parseFloat(a.getPropertyValue("padding-right"))), b) : a.outerWidth(!0)
};
J = function (a, b, n, C, F, u, r, G) {
var v, H, m, D, I, d, g, x, y, z, h, l;
if (!a.data("sticky_kit")) {
a.data("sticky_kit", !0);
I = A.height();
g = a.parent();
null != k && (g = g.closest(k));
if (!g.length) throw "failed to find stick parent";
v = m = !1;
(h = null != p ? p && a.closest(p) : c("
")) && h.css("position", a.css("position"));
x = function () {
var d, f, e;
if (!G && (I = A.height(), d = parseInt(g.css("border-top-width"), 10), f = parseInt(g.css("padding-top"), 10), b = parseInt(g.css("padding-bottom"), 10), n = g.offset().top + d + f, C = g.height(), m && (v = m = !1, null == p && (a.insertAfter(h), h.detach()), a.css({
position: "",
top: "",
width: "",
bottom: ""
}).removeClass(t), e = !0), F = a.offset().top - (parseInt(a.css("margin-top"), 10) || 0) - q, u = a.outerHeight(!0), r = a.css("float"), h && h.css({
width: L(a),
height: u,
display: a.css("display"),
"vertical-align": a.css("vertical-align"),
"float": r
}), e)) return l()
};
x();
if (u !== C) return D = void 0, d = q, z = E, l = function () {
var c, l, e, k;
if (!G && (e = !1, null != z && (--z, 0 >= z && (z = E, x(), e = !0)), e || A.height() === I || x(), e = f.scrollTop(), null != D && (l = e - D), D = e, m ? (w && (k = e + u + d > C + n, v && !k && (v = !1, a.css({
position: "fixed",
bottom: "",
top: d
}).trigger("sticky_kit:unbottom"))), e < F && (m = !1, d = q, null == p && ("left" !== r && "right" !== r || a.insertAfter(h), h.detach()), c = {
position: "",
width: "",
top: ""
}, a.css(c).removeClass(t).trigger("sticky_kit:unstick")),
B && (c = f.height(), u + q > c && !v && (d -= l, d = Math.max(c - u, d), d = Math.min(q, d), m && a.css({
top: d + "px"
})))) : e > F && (m = !0, c = {
position: "fixed",
top: d
}, c.width = "border-box" === a.css("box-sizing") ? a.outerWidth() + "px" : a.width() + "px", a.css(c).addClass(t), null == p && (a.after(h), "left" !== r && "right" !== r || h.append(a)), a.trigger("sticky_kit:stick")), m && w && (null == k && (k = e + u + d > C + n), !v && k))) return v = !0, "static" === g.css("position") && g.css({
position: "relative"
}), a.css({
position: "absolute",
bottom: b,
top: "auto"
}).trigger("sticky_kit:bottom")
},
y = function () {
x();
return l()
}, H = function () {
G = !0;
f.off("touchmove", l);
f.off("scroll", l);
f.off("resize", y);
c(document.body).off("sticky_kit:recalc", y);
a.off("sticky_kit:detach", H);
a.removeData("sticky_kit");
a.css({
position: "",
bottom: "",
top: "",
width: ""
});
g.position("position", "");
if (m) return null == p && ("left" !== r && "right" !== r || a.insertAfter(h), h.remove()), a.removeClass(t)
}, f.on("touchmove", l), f.on("scroll", l), f.on("resize", y), c(document.body).on("sticky_kit:recalc", y), a.on("sticky_kit:detach", H), setTimeout(l,
0)
}
};
n = 0;
for (K = this.length; n < K; n++) b = this[n], J(c(b));
return this
}
}).call(this);
/*
Page scroll
*/
! function () {
var e, t, o, n, r = {
frameRate: 150,
animationTime: 400,
stepSize: 100,
pulseAlgorithm: !0,
pulseScale: 4,
pulseNormalize: 1,
accelerationDelta: 50,
accelerationMax: 3,
keyboardSupport: !0,
arrowScroll: 50,
fixedBackground: !0,
excluded: ""
},
a = r,
l = !1,
i = !1,
c = {
x: 0,
y: 0
},
u = !1,
s = document.documentElement,
d = [],
f = /^Mac/.test(navigator.platform),
m = {
left: 37,
up: 38,
right: 39,
down: 40,
spacebar: 32,
pageup: 33,
pagedown: 34,
end: 35,
home: 36
},
h = {
37: 1,
38: 1,
39: 1,
40: 1
};
function w() {
if (!u && document.body) {
u = !0;
var n = document.body,
r = document.documentElement,
c = window.innerHeight,
d = n.scrollHeight;
if (s = document.compatMode.indexOf("CSS") >= 0 ? r : n, e = n, a.keyboardSupport && A("keydown", S), top != self) i = !0;
else if (Z && d > c && (n.offsetHeight <= c || r.offsetHeight <= c)) {
var f, m = document.createElement("div");
m.style.cssText = "position:absolute; z-index:-10000; top:0; left:0; right:0; height:" + s.scrollHeight + "px", document.body.appendChild(m), o = function () {
f || (f = setTimeout(function () {
l || (m.style.height = "0", m.style.height = s.scrollHeight + "px", f = null)
}, 500))
}, setTimeout(o, 10), A("resize", o);
if ((t = new q(o)).observe(n, {
attributes: !0,
childList: !0,
characterData: !1
}), s.offsetHeight <= c) {
var h = document.createElement("div");
h.style.clear = "both", n.appendChild(h)
}
}
a.fixedBackground || l || (n.style.backgroundAttachment = "scroll", r.style.backgroundAttachment = "scroll")
}
}
var p = [],
v = !1,
y = Date.now();
function b(e, t, o) {
var n, r;
if (n = (n = t) > 0 ? 1 : -1, r = (r = o) > 0 ? 1 : -1, (c.x !== n || c.y !== r) && (c.x = n, c.y = r, p = [], y = 0), 1 != a.accelerationMax) {
var l = Date.now() - y;
if (l < a.accelerationDelta) {
var i = (1 + 50 / l) / 2;
i > 1 && (i = Math.min(i, a.accelerationMax), t *= i, o *= i)
}
y = Date.now()
}
if (p.push({
x: t,
y: o,
lastX: t < 0 ? .99 : -.99,
lastY: o < 0 ? .99 : -.99,
start: Date.now()
}), !v) {
var u = V(),
s = e === u || e === document.body;
null == e.$scrollBehavior && function (e) {
var t = M(e);
if (null == B[t]) {
var o = getComputedStyle(e, "")["scroll-behavior"];
B[t] = "smooth" == o
}
return B[t]
}(e) && (e.$scrollBehavior = e.style.scrollBehavior, e.style.scrollBehavior = "auto");
var d = function (n) {
for (var r = Date.now(), l = 0, i = 0, c = 0; c < p.length; c++) {
var u = p[c],
f = r - u.start,
m = f >= a.animationTime,
h = m ? 1 : f / a.animationTime;
a.pulseAlgorithm && (h = I(h));
var w = u.x * h - u.lastX >> 0,
y = u.y * h - u.lastY >> 0;
l += w, i += y, u.lastX += w, u.lastY += y, m && (p.splice(c, 1), c--)
}
s ? window.scrollBy(l, i) : (l && (e.scrollLeft += l), i && (e.scrollTop += i)), t || o || (p = []), p.length ? R(d, e, 1e3 / a.frameRate + 1) : (v = !1, null != e.$scrollBehavior && (e.style.scrollBehavior = e.$scrollBehavior, e.$scrollBehavior = null))
};
R(d, e, 0), v = !0
}
}
function g(t) {
u || w();
var o = t.target;
if (t.defaultPrevented || t.ctrlKey) return !0;
if (K(e, "embed") || K(o, "embed") && /\.pdf/i.test(o.src) || K(e, "object") || o.shadowRoot) return !0;
var r = -t.wheelDeltaX || t.deltaX || 0,
l = -t.wheelDeltaY || t.deltaY || 0;
f && (t.wheelDeltaX && P(t.wheelDeltaX, 120) && (r = t.wheelDeltaX / Math.abs(t.wheelDeltaX) * -120), t.wheelDeltaY && P(t.wheelDeltaY, 120) && (l = t.wheelDeltaY / Math.abs(t.wheelDeltaY) * -120)), r || l || (l = -t.wheelDelta || 0), 1 === t.deltaMode && (r *= 40, l *= 40);
var c = L(o);
return c ? !! function (e) {
if (!e) return;
d.length || (d = [e, e, e]);
e = Math.abs(e), d.push(e), d.shift(), clearTimeout(n), n = setTimeout(function () {
try {
localStorage.SS_deltaBuffer = d.join(",")
} catch (e) {}
}, 1e3);
var t = e > 120 && $(e);
return !$(120) && !$(100) && !t
}(l) || (Math.abs(r) > 1.2 && (r *= a.stepSize / 120), Math.abs(l) > 1.2 && (l *= a.stepSize / 120), b(c, r, l), t.preventDefault(), void C()) : !i || !U || (Object.defineProperty(t, "target", {
value: window.frameElement
}), parent.wheel(t))
}
function S(t) {
var o = t.target,
n = t.ctrlKey || t.altKey || t.metaKey || t.shiftKey && t.keyCode !== m.spacebar;
document.body.contains(e) || (e = document.activeElement);
var r = /^(button|submit|radio|checkbox|file|color|image)$/i;
if (t.defaultPrevented || /^(textarea|select|embed|object)$/i.test(o.nodeName) || K(o, "input") && !r.test(o.type) || K(e, "video") || function (e) {
var t = e.target,
o = !1;
if (-1 != document.URL.indexOf("www.youtube.com/watch"))
do {
if (o = t.classList && t.classList.contains("html5-video-controls")) break
} while (t = t.parentNode);
return o
}(t) || o.isContentEditable || n) return !0;
if ((K(o, "button") || K(o, "input") && r.test(o.type)) && t.keyCode === m.spacebar) return !0;
if (K(o, "input") && "radio" == o.type && h[t.keyCode]) return !0;
var l = 0,
c = 0,
u = L(e);
if (!u) return !i || !U || parent.keydown(t);
var s = u.clientHeight;
switch (u == document.body && (s = window.innerHeight), t.keyCode) {
case m.up:
c = -a.arrowScroll;
break;
case m.down:
c = a.arrowScroll;
break;
case m.spacebar:
c = -(t.shiftKey ? 1 : -1) * s * .9;
break;
case m.pageup:
c = .9 * -s;
break;
case m.pagedown:
c = .9 * s;
break;
case m.home:
u == document.body && document.scrollingElement && (u = document.scrollingElement), c = -u.scrollTop;
break;
case m.end:
var d = u.scrollHeight - u.scrollTop - s;
c = d > 0 ? d + 10 : 0;
break;
case m.left:
l = -a.arrowScroll;
break;
case m.right:
l = a.arrowScroll;
break;
default:
return !0
}
b(u, l, c), t.preventDefault(), C()
}
function x(t) {
e = t.target
}
var k, D, M = (k = 0, function (e) {
return e.uniqueID || (e.uniqueID = k++)
}),
E = {},
T = {},
B = {};
function C() {
clearTimeout(D), D = setInterval(function () {
E = T = B = {}
}, 1e3)
}
function H(e, t, o) {
for (var n = o ? E : T, r = e.length; r--;) n[M(e[r])] = t;
return t
}
function z(e, t) {
return (t ? E : T)[M(e)]
}
function L(e) {
var t = [],
o = document.body,
n = s.scrollHeight;
do {
var r = z(e, !1);
if (r) return H(t, r);
if (t.push(e), n === e.scrollHeight) {
var a = X(s) && X(o) || Y(s);
if (i && O(s) || !i && a) return H(t, V())
} else if (O(e) && Y(e)) return H(t, e)
} while (e = e.parentElement)
}
function O(e) {
return e.clientHeight + 10 < e.scrollHeight
}
function X(e) {
return "hidden" !== getComputedStyle(e, "").getPropertyValue("overflow-y")
}
function Y(e) {
var t = getComputedStyle(e, "").getPropertyValue("overflow-y");
return "scroll" === t || "auto" === t
}
function A(e, t, o) {
window.addEventListener(e, t, o || !1)
}
function N(e, t, o) {
window.removeEventListener(e, t, o || !1)
}
function K(e, t) {
return e && (e.nodeName || "").toLowerCase() === t.toLowerCase()
}
if (window.localStorage && localStorage.SS_deltaBuffer) try {
d = localStorage.SS_deltaBuffer.split(",")
} catch (e) {}
function P(e, t) {
return Math.floor(e / t) == e / t
}
function $(e) {
return P(d[0], e) && P(d[1], e) && P(d[2], e)
}
var j, R = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (e, t, o) {
window.setTimeout(e, o || 1e3 / 60)
},
q = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver,
V = (j = document.scrollingElement, function () {
if (!j) {
var e = document.createElement("div");
e.style.cssText = "height:10000px;width:1px;", document.body.appendChild(e);
var t = document.body.scrollTop;
document.documentElement.scrollTop, window.scrollBy(0, 3), j = document.body.scrollTop != t ? document.body : document.documentElement, window.scrollBy(0, -3), document.body.removeChild(e)
}
return j
});
function F(e) {
var t, o;
return (e *= a.pulseScale) < 1 ? t = e - (1 - Math.exp(-e)) : (e -= 1, t = (o = Math.exp(-1)) + (1 - Math.exp(-e)) * (1 - o)), t * a.pulseNormalize
}
function I(e) {
return e >= 1 ? 1 : e <= 0 ? 0 : (1 == a.pulseNormalize && (a.pulseNormalize /= F(1)), F(e))
}
var _ = window.navigator.userAgent,
W = /Edge/.test(_),
U = /chrome/i.test(_) && !W,
G = /safari/i.test(_) && !W,
J = /mobile/i.test(_),
Q = /Windows NT 6.1/i.test(_) && /rv:11/i.test(_),
Z = G && (/Version\/8/i.test(_) || /Version\/9/i.test(_)),
ee = (U || G || Q) && !J,
te = !1;
try {
window.addEventListener("test", null, Object.defineProperty({}, "passive", {
get: function () {
te = !0
}
}))
} catch (e) {}
var oe = !!te && {
passive: !1
},
ne = "onwheel" in document.createElement("div") ? "wheel" : "mousewheel";
function re(e) {
for (var t in e) r.hasOwnProperty(t) && (a[t] = e[t])
}
ne && ee && (A(ne, g, oe), A("mousedown", x), A("load", w)), re.destroy = function () {
t && t.disconnect(), N(ne, g), N("mousedown", x), N("keydown", S), N("resize", o), N("load", w)
}, window.SmoothScrollOptions && re(window.SmoothScrollOptions), "function" == typeof define && define.amd ? define(function () {
return re
}) : "object" == typeof exports ? module.exports = re : window.SmoothScroll = re
}();
/*
Litho custom parallax
*/
! function (n) {
var t = n(window),
o = t.height();
t.resize(function () {
o = t.height()
}), n.fn.parallax = function (i, e, l) {
var r, u = n(this);
function c() {
var l = t.scrollTop();
u.each(function () {
var t = n(this),
c = t.offset().top;
c + r(t) < l || c > l + o || (n(window).width() > 1050 ? u.css("backgroundPosition", i + " " + (c - l) * e + "px") : u.css("backgroundPosition", ""))
})
}
u.each(function (n) {
u.offset().top
}), (arguments.length < 1 || null === i) && (i = "50%"), (arguments.length < 2 || null === e) && (e = .5), (arguments.length < 3 || null === l) && (l = !0), (arguments.length < 4 || null === pos) && (pos = 0), r = l ? function (n) {
return n.outerHeight(!0)
} : function (n) {
return n.height()
}, t.bind("scroll", c).resize(c), c()
}, n.fn.parallaxImg = function (i, e) {
var l, r = n(this);
function u() {
var e = t.scrollTop();
r.each(function () {
var t = n(this),
u = t.offset().top;
u + l(t) < e || u > e + o || (n(window).width() > 1050 ? r.css("bottom", i / 10 * -(u - e) + "px") : r.css("bottom", ""))
})
}(arguments.length < 1 || null === i) && (i = 1), (arguments.length < 2 || null === e) && (e = !0), l = e ? function (n) {
return n.outerHeight(!0)
} : function (n) {
return n.height()
}, t.bind("scroll", u).resize(u), u()
}
}(jQuery);