/*!jQuery Migrate v3.3.2 | (c) OpenJS Foundation and other contributors | jquery.org/license*/ "undefined" ==
typeof jQuery.migrateMute && (jQuery.migrateMute = !0),
(function (t) {
"use strict";
"function" == typeof define && define.amd
? define(["jquery"], function (e) {
return t(e, window);
})
: "object" == typeof module && module.exports
? (module.exports = t(require("jquery"), window))
: t(jQuery, window);
})(function (s, n) {
"use strict";
function e(e) {
return (
0 <=
(function (e, t) {
for (
var r = /^(\d+)\.(\d+)\.(\d+)/,
n = r.exec(e) || [],
o = r.exec(t) || [],
i = 1;
i <= 3;
i++
) {
if (+o[i] < +n[i]) return 1;
if (+n[i] < +o[i]) return -1;
}
return 0;
})(s.fn.jquery, e)
);
}
(s.migrateVersion = "3.3.2"),
n.console &&
n.console.log &&
((s && e("3.0.0")) ||
n.console.log("JQMIGRATE: jQuery 3.0.0+ REQUIRED"),
s.migrateWarnings &&
n.console.log("JQMIGRATE: Migrate plugin loaded multiple times"),
n.console.log(
"JQMIGRATE: Migrate is installed" +
(s.migrateMute ? "" : " with logging active") +
", version " +
s.migrateVersion
));
var r = {};
function u(e) {
var t = n.console;
(s.migrateDeduplicateWarnings && r[e]) ||
((r[e] = !0),
s.migrateWarnings.push(e),
t &&
t.warn &&
!s.migrateMute &&
(t.warn("JQMIGRATE: " + e), s.migrateTrace && t.trace && t.trace()));
}
function t(e, t, r, n) {
Object.defineProperty(e, t, {
configurable: !0,
enumerable: !0,
get: function () {
return u(n), r;
},
set: function (e) {
u(n), (r = e);
},
});
}
function o(e, t, r, n) {
e[t] = function () {
return u(n), r.apply(this, arguments);
};
}
(s.migrateDeduplicateWarnings = !0),
(s.migrateWarnings = []),
void 0 === s.migrateTrace && (s.migrateTrace = !0),
(s.migrateReset = function () {
(r = {}), (s.migrateWarnings.length = 0);
}),
"BackCompat" === n.document.compatMode &&
u("jQuery is not compatible with Quirks Mode");
var i,
a,
c,
d = {},
l = s.fn.init,
p = s.find,
f = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,
y = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g,
m = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
for (i in ((s.fn.init = function (e) {
var t = Array.prototype.slice.call(arguments);
return (
"string" == typeof e &&
"#" === e &&
(u("jQuery( '#' ) is not a valid selector"), (t[0] = [])),
l.apply(this, t)
);
}),
(s.fn.init.prototype = s.fn),
(s.find = function (t) {
var r = Array.prototype.slice.call(arguments);
if ("string" == typeof t && f.test(t))
try {
n.document.querySelector(t);
} catch (e) {
t = t.replace(y, function (e, t, r, n) {
return "[" + t + r + '"' + n + '"]';
});
try {
n.document.querySelector(t),
u("Attribute selector with '#' must be quoted: " + r[0]),
(r[0] = t);
} catch (e) {
u("Attribute selector with '#' was not fixed: " + r[0]);
}
}
return p.apply(this, r);
}),
p))
Object.prototype.hasOwnProperty.call(p, i) && (s.find[i] = p[i]);
o(
s.fn,
"size",
function () {
return this.length;
},
"jQuery.fn.size() is deprecated and removed; use the .length property"
),
o(
s,
"parseJSON",
function () {
return JSON.parse.apply(null, arguments);
},
"jQuery.parseJSON is deprecated; use JSON.parse"
),
o(s, "holdReady", s.holdReady, "jQuery.holdReady is deprecated"),
o(
s,
"unique",
s.uniqueSort,
"jQuery.unique is deprecated; use jQuery.uniqueSort"
),
t(
s.expr,
"filters",
s.expr.pseudos,
"jQuery.expr.filters is deprecated; use jQuery.expr.pseudos"
),
t(
s.expr,
":",
s.expr.pseudos,
"jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos"
),
e("3.1.1") &&
o(
s,
"trim",
function (e) {
return null == e ? "" : (e + "").replace(m, "");
},
"jQuery.trim is deprecated; use String.prototype.trim"
),
e("3.2.0") &&
(o(
s,
"nodeName",
function (e, t) {
return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase();
},
"jQuery.nodeName is deprecated"
),
o(
s,
"isArray",
Array.isArray,
"jQuery.isArray is deprecated; use Array.isArray"
)),
e("3.3.0") &&
(o(
s,
"isNumeric",
function (e) {
var t = typeof e;
return (
("number" == t || "string" == t) && !isNaN(e - parseFloat(e))
);
},
"jQuery.isNumeric() is deprecated"
),
s.each(
"Boolean Number String Function Array Date RegExp Object Error Symbol".split(
" "
),
function (e, t) {
d["[object " + t + "]"] = t.toLowerCase();
}
),
o(
s,
"type",
function (e) {
return null == e
? e + ""
: "object" == typeof e || "function" == typeof e
? d[Object.prototype.toString.call(e)] || "object"
: typeof e;
},
"jQuery.type is deprecated"
),
o(
s,
"isFunction",
function (e) {
return "function" == typeof e;
},
"jQuery.isFunction() is deprecated"
),
o(
s,
"isWindow",
function (e) {
return null != e && e === e.window;
},
"jQuery.isWindow() is deprecated"
)),
s.ajax &&
((a = s.ajax),
(c = /(=)\?(?=&|$)|\?\?/),
(s.ajax = function () {
var e = a.apply(this, arguments);
return (
e.promise &&
(o(
e,
"success",
e.done,
"jQXHR.success is deprecated and removed"
),
o(e, "error", e.fail, "jQXHR.error is deprecated and removed"),
o(
e,
"complete",
e.always,
"jQXHR.complete is deprecated and removed"
)),
e
);
}),
e("4.0.0") ||
s.ajaxPrefilter("+json", function (e) {
!1 !== e.jsonp &&
(c.test(e.url) ||
("string" == typeof e.data &&
0 ===
(e.contentType || "").indexOf(
"application/x-www-form-urlencoded"
) &&
c.test(e.data))) &&
u("JSON-to-JSONP auto-promotion is deprecated");
}));
var g = s.fn.removeAttr,
h = s.fn.toggleClass,
v = /\S+/g;
function j(e) {
return e.replace(/-([a-z])/g, function (e, t) {
return t.toUpperCase();
});
}
s.fn.removeAttr = function (e) {
var r = this;
return (
s.each(e.match(v), function (e, t) {
s.expr.match.bool.test(t) &&
(u("jQuery.fn.removeAttr no longer sets boolean properties: " + t),
r.prop(t, !1));
}),
g.apply(this, arguments)
);
};
var Q,
b = !(s.fn.toggleClass = function (t) {
return void 0 !== t && "boolean" != typeof t
? h.apply(this, arguments)
: (u("jQuery.fn.toggleClass( boolean ) is deprecated"),
this.each(function () {
var e = (this.getAttribute && this.getAttribute("class")) || "";
e && s.data(this, "__className__", e),
this.setAttribute &&
this.setAttribute(
"class",
(!e && !1 !== t && s.data(this, "__className__")) || ""
);
}));
}),
w = /^[a-z]/,
x =
/^(?:Border(?:Top|Right|Bottom|Left)?(?:Width|)|(?:Margin|Padding)?(?:Top|Right|Bottom|Left)?|(?:Min|Max)?(?:Width|Height))$/;
s.swap &&
s.each(["height", "width", "reliableMarginRight"], function (e, t) {
var r = s.cssHooks[t] && s.cssHooks[t].get;
r &&
(s.cssHooks[t].get = function () {
var e;
return (b = !0), (e = r.apply(this, arguments)), (b = !1), e;
});
}),
(s.swap = function (e, t, r, n) {
var o,
i,
a = {};
for (i in (b || u("jQuery.swap() is undocumented and deprecated"), t))
(a[i] = e.style[i]), (e.style[i] = t[i]);
for (i in ((o = r.apply(e, n || [])), t)) e.style[i] = a[i];
return o;
}),
e("3.4.0") &&
"undefined" != typeof Proxy &&
(s.cssProps = new Proxy(s.cssProps || {}, {
set: function () {
return (
u("JQMIGRATE: jQuery.cssProps is deprecated"),
Reflect.set.apply(this, arguments)
);
},
})),
s.cssNumber || (s.cssNumber = {}),
(Q = s.fn.css),
(s.fn.css = function (e, t) {
var r,
n,
o = this;
return e && "object" == typeof e && !Array.isArray(e)
? (s.each(e, function (e, t) {
s.fn.css.call(o, e, t);
}),
this)
: ("number" == typeof t &&
((r = j(e)),
(n = r),
(w.test(n) && x.test(n[0].toUpperCase() + n.slice(1))) ||
s.cssNumber[r] ||
u(
'Number-typed values are deprecated for jQuery.fn.css( "' +
e +
'", value )'
)),
Q.apply(this, arguments));
});
var A,
k,
S,
M,
N = s.data;
(s.data = function (e, t, r) {
var n, o, i;
if (t && "object" == typeof t && 2 === arguments.length) {
for (i in ((n = s.hasData(e) && N.call(this, e)), (o = {}), t))
i !== j(i)
? (u("jQuery.data() always sets/gets camelCased names: " + i),
(n[i] = t[i]))
: (o[i] = t[i]);
return N.call(this, e, o), t;
}
return t &&
"string" == typeof t &&
t !== j(t) &&
(n = s.hasData(e) && N.call(this, e)) &&
t in n
? (u("jQuery.data() always sets/gets camelCased names: " + t),
2 < arguments.length && (n[t] = r),
n[t])
: N.apply(this, arguments);
}),
s.fx &&
((S = s.Tween.prototype.run),
(M = function (e) {
return e;
}),
(s.Tween.prototype.run = function () {
1 < s.easing[this.easing].length &&
(u(
"'jQuery.easing." +
this.easing.toString() +
"' should use only one argument"
),
(s.easing[this.easing] = M)),
S.apply(this, arguments);
}),
(A = s.fx.interval || 13),
(k = "jQuery.fx.interval is deprecated"),
n.requestAnimationFrame &&
Object.defineProperty(s.fx, "interval", {
configurable: !0,
enumerable: !0,
get: function () {
return n.document.hidden || u(k), A;
},
set: function (e) {
u(k), (A = e);
},
}));
var R = s.fn.load,
H = s.event.add,
C = s.event.fix;
(s.event.props = []),
(s.event.fixHooks = {}),
t(
s.event.props,
"concat",
s.event.props.concat,
"jQuery.event.props.concat() is deprecated and removed"
),
(s.event.fix = function (e) {
var t,
r = e.type,
n = this.fixHooks[r],
o = s.event.props;
if (o.length) {
u("jQuery.event.props are deprecated and removed: " + o.join());
while (o.length) s.event.addProp(o.pop());
}
if (
n &&
!n._migrated_ &&
((n._migrated_ = !0),
u("jQuery.event.fixHooks are deprecated and removed: " + r),
(o = n.props) && o.length)
)
while (o.length) s.event.addProp(o.pop());
return (t = C.call(this, e)), n && n.filter ? n.filter(t, e) : t;
}),
(s.event.add = function (e, t) {
return (
e === n &&
"load" === t &&
"complete" === n.document.readyState &&
u("jQuery(window).on('load'...) called after load event occurred"),
H.apply(this, arguments)
);
}),
s.each(["load", "unload", "error"], function (e, t) {
s.fn[t] = function () {
var e = Array.prototype.slice.call(arguments, 0);
return "load" === t && "string" == typeof e[0]
? R.apply(this, e)
: (u("jQuery.fn." + t + "() is deprecated"),
e.splice(0, 0, t),
arguments.length
? this.on.apply(this, e)
: (this.triggerHandler.apply(this, e), this));
};
}),
s.each(
"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(
" "
),
function (e, r) {
s.fn[r] = function (e, t) {
return (
u("jQuery.fn." + r + "() event shorthand is deprecated"),
0 < arguments.length ? this.on(r, null, e, t) : this.trigger(r)
);
};
}
),
s(function () {
s(n.document).triggerHandler("ready");
}),
(s.event.special.ready = {
setup: function () {
this === n.document && u("'ready' event is deprecated");
},
}),
s.fn.extend({
bind: function (e, t, r) {
return u("jQuery.fn.bind() is deprecated"), this.on(e, null, t, r);
},
unbind: function (e, t) {
return u("jQuery.fn.unbind() is deprecated"), this.off(e, null, t);
},
delegate: function (e, t, r, n) {
return u("jQuery.fn.delegate() is deprecated"), this.on(t, e, r, n);
},
undelegate: function (e, t, r) {
return (
u("jQuery.fn.undelegate() is deprecated"),
1 === arguments.length
? this.off(e, "**")
: this.off(t, e || "**", r)
);
},
hover: function (e, t) {
return (
u("jQuery.fn.hover() is deprecated"),
this.on("mouseenter", e).on("mouseleave", t || e)
);
},
});
function T(e) {
var t = n.document.implementation.createHTMLDocument("");
return (t.body.innerHTML = e), t.body && t.body.innerHTML;
}
function P(e) {
var t = e.replace(O, "<$1>$2>");
t !== e &&
T(e) !== T(t) &&
u("HTML tags must be properly nested and closed: " + e);
}
var O =
/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
q = s.htmlPrefilter;
(s.UNSAFE_restoreLegacyHtmlPrefilter = function () {
s.htmlPrefilter = function (e) {
return P(e), e.replace(O, "<$1>$2>");
};
}),
(s.htmlPrefilter = function (e) {
return P(e), q(e);
});
var D,
_ = s.fn.offset;
(s.fn.offset = function () {
var e = this[0];
return !e || (e.nodeType && e.getBoundingClientRect)
? _.apply(this, arguments)
: (u("jQuery.fn.offset() requires a valid DOM element"),
arguments.length ? this : void 0);
}),
s.ajax &&
((D = s.param),
(s.param = function (e, t) {
var r = s.ajaxSettings && s.ajaxSettings.traditional;
return (
void 0 === t &&
r &&
(u(
"jQuery.param() no longer uses jQuery.ajaxSettings.traditional"
),
(t = r)),
D.call(this, e, t)
);
}));
var E,
F,
J = s.fn.andSelf || s.fn.addBack;
return (
(s.fn.andSelf = function () {
return (
u(
"jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()"
),
J.apply(this, arguments)
);
}),
s.Deferred &&
((E = s.Deferred),
(F = [
[
"resolve",
"done",
s.Callbacks("once memory"),
s.Callbacks("once memory"),
"resolved",
],
[
"reject",
"fail",
s.Callbacks("once memory"),
s.Callbacks("once memory"),
"rejected",
],
["notify", "progress", s.Callbacks("memory"), s.Callbacks("memory")],
]),
(s.Deferred = function (e) {
var i = E(),
a = i.promise();
return (
(i.pipe = a.pipe =
function () {
var o = arguments;
return (
u("deferred.pipe() is deprecated"),
s
.Deferred(function (n) {
s.each(F, function (e, t) {
var r = "function" == typeof o[e] && o[e];
i[t[1]](function () {
var e = r && r.apply(this, arguments);
e && "function" == typeof e.promise
? e
.promise()
.done(n.resolve)
.fail(n.reject)
.progress(n.notify)
: n[t[0] + "With"](
this === a ? n.promise() : this,
r ? [e] : arguments
);
});
}),
(o = null);
})
.promise()
);
}),
e && e.call(i, i),
i
);
}),
(s.Deferred.exceptionHook = E.exceptionHook)),
s
);
});
(function ($, window, document, undefined) {
"use strict";
$(window).on("elementor/frontend/init", function () {
function auxGlobalElementorFrondEndElementReady($scope) {
if ($scope.hasClass("aux-appear-watch-animation")) {
$.fn.AuxinAppearAnimationsInit($scope);
}
if ($scope.hasClass("aux-parallax-section")) {
$.fn.AuxinParallaxSectionInit($scope);
}
}
window.auxGlobalElementorFrondEndElementReady = auxGlobalElementorFrondEndElementReady
elementorFrontend.hooks.addAction(
"frontend/element_ready/section",
auxGlobalElementorFrondEndElementReady
);
elementorFrontend.hooks.addAction(
"frontend/element_ready/column",
auxGlobalElementorFrondEndElementReady
);
elementorFrontend.hooks.addAction(
"frontend/element_ready/widget",
auxGlobalElementorFrondEndElementReady
);
elementorFrontend.hooks.addAction(
"frontend/element_ready/aux_counter.default",
function ($scope) {
$.fn.AuxinCounter($scope);
}
);
elementorFrontend.hooks.addAction(
"frontend/element_ready/aux_faq.default",
function ($scope) {
$.fn.AuxinIsotopeFAQInit($("body"));
}
);
});
})(jQuery, window, document);
(function ($) {
"use strict";
})(jQuery);
/*!
* @preserve
* jquery.scrolldepth.js | v0.7.2
* Copyright (c) 2015 Rob Flaherty (@robflaherty)
* Licensed under the MIT and GPL licenses.
*/ !(function (e, n, t) {
"use strict";
var o,
r,
a,
l = {
minHeight: 0,
elements: [],
percentage: !0,
userTiming: !0,
pixelDepth: !0,
nonInteraction: !0,
},
i = e(n),
c = [],
u = 0;
e.scrollDepth = function (h) {
function p(e) {
a
? a({
event: "ScrollDistance",
eventCategory: "Scroll Depth",
eventAction: e,
eventLabel: "Baseline",
eventValue: 1,
eventNonInteraction: !0,
})
: (o &&
ga("send", "event", "Scroll Depth", e, "Baseline", 1, {
nonInteraction: !0,
}),
r &&
_gaq.push(["_trackEvent", "Scroll Depth", e, "Baseline", 1, !0]));
}
function g(e, n, t, l) {
a
? (a({
event: "ScrollDistance",
eventCategory: "Scroll Depth",
eventAction: e,
eventLabel: n,
eventValue: 1,
eventNonInteraction: h.nonInteraction,
}),
h.pixelDepth &&
arguments.length > 2 &&
t > u &&
((u = t),
a({
event: "ScrollDistance",
eventCategory: "Scroll Depth",
eventAction: "Pixel Depth",
eventLabel: D(t),
eventValue: 1,
eventNonInteraction: h.nonInteraction,
})),
h.userTiming &&
arguments.length > 3 &&
a({
event: "ScrollTiming",
eventCategory: "Scroll Depth",
eventAction: e,
eventLabel: n,
eventTiming: l,
}))
: (o &&
(ga("send", "event", "Scroll Depth", e, n, 1, {
nonInteraction: h.nonInteraction,
}),
h.pixelDepth &&
arguments.length > 2 &&
t > u &&
((u = t),
ga("send", "event", "Scroll Depth", "Pixel Depth", D(t), 1, {
nonInteraction: h.nonInteraction,
})),
h.userTiming &&
arguments.length > 3 &&
ga("send", "timing", "Scroll Depth", e, l, n)),
r &&
(_gaq.push([
"_trackEvent",
"Scroll Depth",
e,
n,
1,
h.nonInteraction,
]),
h.pixelDepth &&
arguments.length > 2 &&
t > u &&
((u = t),
_gaq.push([
"_trackEvent",
"Scroll Depth",
"Pixel Depth",
D(t),
1,
h.nonInteraction,
])),
h.userTiming &&
arguments.length > 3 &&
_gaq.push(["_trackTiming", "Scroll Depth", e, l, n, 100])));
}
function s(e) {
return {
"25%": parseInt(0.25 * e, 10),
"50%": parseInt(0.5 * e, 10),
"75%": parseInt(0.75 * e, 10),
"100%": e - 5,
};
}
function v(n, t, o) {
e.each(n, function (n, r) {
-1 === e.inArray(n, c) &&
t >= r &&
(g("Percentage", n, t, o), c.push(n));
});
}
function f(n, t, o) {
e.each(n, function (n, r) {
-1 === e.inArray(r, c) &&
e(r).length &&
t >= e(r).offset().top &&
(g("Elements", r, t, o), c.push(r));
});
}
function D(e) {
return (250 * Math.floor(e / 250)).toString();
}
function m(e, n) {
var t,
o,
r,
a = null,
l = 0,
i = function () {
(l = new Date()), (a = null), (r = e.apply(t, o));
};
return function () {
var c = new Date();
l || (l = c);
var u = n - (c - l);
return (
(t = this),
(o = arguments),
0 >= u
? (clearTimeout(a), (a = null), (l = c), (r = e.apply(t, o)))
: a || (a = setTimeout(i, u)),
r
);
};
}
var d = +new Date();
(h = e.extend({}, l, h)),
e(t).height() < h.minHeight ||
("function" == typeof ga && (o = !0),
"undefined" != typeof _gaq &&
"function" == typeof _gaq.push &&
(r = !0),
"function" == typeof h.eventHandler
? (a = h.eventHandler)
: "undefined" != typeof dataLayer &&
"function" == typeof dataLayer.push &&
(a = function (e) {
dataLayer.push(e);
}),
h.percentage ? p("Percentage") : h.elements && p("Elements"),
i.on(
"scroll.scrollDepth",
m(function () {
var o = e(t).height(),
r = n.innerHeight ? n.innerHeight : i.height(),
a = i.scrollTop() + r,
l = s(o),
u = +new Date() - d;
return c.length >= 4 + h.elements.length
? void i.off("scroll.scrollDepth")
: (h.elements && f(h.elements, a, u),
void (h.percentage && v(l, a, u)));
}, 500)
));
};
})(jQuery, window, document);
(function ($) {
$.fn.track = function (options) {
var defaults = {
additional: [],
dictionary: [],
options: {
forms: true,
outbound: true,
email: true,
phone: true,
anchor: true,
universal: false,
debug: false,
},
};
var settings = $.extend(true, {}, defaults, options);
$.expr[":"].external = function (obj) {
return (
!obj.href.match(/^mailto:/) &&
!obj.href.match(/^tel:/) &&
!obj.href.match(/^#/) &&
obj.hostname.replace(/^www\./i, "") !=
document.location.hostname.replace(/^www\./i, "")
);
};
var calculateLabel = function ($obj, possibilities) {
var possibilities =
typeof possibilities == "object"
? possibilities
: ["data-track-everything-name", "name", "title", "id"];
var eventLabel = null;
for (var i = 0; i <= possibilities.length - 1; i++) {
var possibility = $obj.attr(possibilities[i]);
if (possibility && possibility.length) {
eventLabel = possibility;
break;
}
}
return eventLabel;
},
pushEvent = function (eventInfo) {
if (settings.options.debug) {
console.log(eventInfo);
}
if (settings.options.universal) {
var gauEventInfo = {
hitType: "event",
eventCategory: eventInfo[1],
eventAction: eventInfo[2],
};
if (eventInfo[3]) {
gauEventInfo["eventLabel"] = eventInfo[3];
}
if (eventInfo[4]) {
gauEventInfo["eventValue"] = eventInfo[4];
}
if (eventInfo[5]) {
gauEventInfo["nonInteraction"] = Number(eventInfo[4]);
}
try {
ga("send", gauEventInfo);
} catch (e) {
if (settings.options.debug) {
console.log(
"Google Analytics must be installed and initiated for Track Everything to work"
);
}
}
} else {
try {
_gaq.push(eventInfo);
} catch (e) {
if (settings.options.debug) {
console.log(
"Google Analytics must be installed and initiated for Track Everything to work"
);
}
}
}
},
trackSpecialLink = function (context, identifier, name) {
var $special = $(context).find('a[href^="' + identifier + '"]');
$special.on(
"click.track-everything.track-everything-default keypress.track-everything.track-everything-default",
function (e) {
var eventLabel = calculateLabel($(this), [
"data-track-everything-name",
"href",
]);
var elementHref = $(this).attr("href");
if (eventLabel == elementHref) {
eventLabel = elementHref.substring(identifier.length);
}
var eventInfo = ["_trackEvent", "Link", name, eventLabel];
pushEvent(eventInfo);
}
);
if (settings.options.debug) {
$special.addClass(
"track-everything track-everything-default track-everything-" +
name.toLowerCase()
);
}
};
return this.each(function () {
for (var i = settings.dictionary.length - 1; i >= 0; i--) {
$(this)
.find(settings.dictionary[i].selector)
.attr("data-track-everything-name", settings.dictionary[i].name);
}
if (settings.options.forms) {
var $forms = $(this).find("form");
$forms.on(
"submit.track-everything.track-everything-default",
function (e) {
var eventLabel = calculateLabel($(this));
var eventInfo = ["_trackEvent", "Form", "Submission"];
if (eventLabel !== null) {
eventInfo.push(eventLabel);
}
pushEvent(eventInfo);
}
);
if (settings.options.debug) {
$forms.addClass(
"track-everything track-everything-default track-everything-form"
);
}
}
if (settings.options.outbound) {
var $outbound = $(this).find("a:external");
$outbound.on(
"click.track-everything.track-everything-default keypress.track-everything.track-everything-default",
function (e) {
var eventLabel = calculateLabel($(this), [
"data-track-everything-name",
"href",
]);
var eventInfo = [
"_trackEvent",
"Link",
"Outbound",
eventLabel,
null,
true,
];
pushEvent(eventInfo);
}
);
if (settings.options.debug) {
$outbound.addClass(
"track-everything track-everything-default track-everything-outbound"
);
}
}
if (settings.options.email) {
trackSpecialLink(this, "mailto:", "Email");
}
if (settings.options.phone) {
trackSpecialLink(this, "tel:", "Phone");
}
if (settings.options.anchor) {
trackSpecialLink(this, "#", "Anchor");
}
var context = this;
$.each(settings.additional, function (i, additional) {
var $additional = $(context).find(additional.selector);
$additional.off(".track-everything-default");
if (settings.options.debug) {
$additional
.addClass("track-everything track-everything-additional")
.removeClass("track-everything-default");
}
var events = [];
for (var j = additional.events.length - 1; j >= 0; j--) {
events.push(
additional.events[j] +
".track-everything.track-everything-additional"
);
}
$additional.on(events.join(" "), function () {
if (additional.name.length) {
$(this).attr("data-track-everything-override", additional.name);
}
var eventLabel = calculateLabel($(this), [
"data-track-everything-override",
"data-track-everything-name",
"name",
"title",
"id",
"href",
]);
var eventInfo = [
"_trackEvent",
additional.category,
additional.action,
eventLabel,
];
pushEvent(eventInfo);
});
});
});
};
})(jQuery);
!(function (window, document, undefined) {
var tests = [],
ModernizrProto = {
_version: "3.5.0",
_config: {
classPrefix: "",
enableClasses: !0,
enableJSClass: !0,
usePrefixes: !0,
},
_q: [],
on: function (test, cb) {
var self = this;
setTimeout(function () {
cb(self[test]);
}, 0);
},
addTest: function (name, fn, options) {
tests.push({ name: name, fn: fn, options: options });
},
addAsyncTest: function (fn) {
tests.push({ name: null, fn: fn });
},
},
Modernizr = function () {};
(Modernizr.prototype = ModernizrProto), (Modernizr = new Modernizr());
var classes = [];
function is(obj, type) {
return typeof obj === type;
}
var hasOwnProp,
_hasOwnProperty,
docElement = document.documentElement,
isSVG = "svg" === docElement.nodeName.toLowerCase();
function setClasses(classes) {
var className = docElement.className,
classPrefix = Modernizr._config.classPrefix || "";
if (
(isSVG && (className = className.baseVal),
Modernizr._config.enableJSClass)
) {
var reJS = new RegExp("(^|\\s)" + classPrefix + "no-js(\\s|$)");
className = className.replace(reJS, "$1" + classPrefix + "js$2");
}
Modernizr._config.enableClasses &&
((className += " " + classPrefix + classes.join(" " + classPrefix)),
isSVG
? (docElement.className.baseVal = className)
: (docElement.className = className));
}
function addTest(feature, test) {
if ("object" == typeof feature)
for (var key in feature)
hasOwnProp(feature, key) && addTest(key, feature[key]);
else {
var featureNameSplit = (feature = feature.toLowerCase()).split("."),
last = Modernizr[featureNameSplit[0]];
if (
(2 == featureNameSplit.length && (last = last[featureNameSplit[1]]),
void 0 !== last)
)
return Modernizr;
(test = "function" == typeof test ? test() : test),
1 == featureNameSplit.length
? (Modernizr[featureNameSplit[0]] = test)
: (!Modernizr[featureNameSplit[0]] ||
Modernizr[featureNameSplit[0]] instanceof Boolean ||
(Modernizr[featureNameSplit[0]] = new Boolean(
Modernizr[featureNameSplit[0]]
)),
(Modernizr[featureNameSplit[0]][featureNameSplit[1]] = test)),
setClasses([
(test && 0 != test ? "" : "no-") + featureNameSplit.join("-"),
]),
Modernizr._trigger(feature, test);
}
return Modernizr;
}
function createElement(argument_0) {
return "function" != typeof document.createElement
? document.createElement(argument_0)
: isSVG
? document.createElementNS.call(
document,
"http://www.w3.org/2000/svg",
argument_0
)
: document.createElement.apply(document, arguments);
}
isSVG ||
(function (window, document) {
var supportsHtml5Styles,
supportsUnknownElements,
options = window.html5 || {},
reSkip =
/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,
saveClones =
/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,
expando = "_html5shiv",
expanID = 0,
expandoData = {};
function getElements() {
var elements = html5.elements;
return "string" == typeof elements ? elements.split(" ") : elements;
}
function getExpandoData(ownerDocument) {
var data = expandoData[ownerDocument[expando]];
return (
data ||
((data = {}),
expanID++,
(ownerDocument[expando] = expanID),
(expandoData[expanID] = data)),
data
);
}
function createElement(nodeName, ownerDocument, data) {
return (
(ownerDocument = ownerDocument || document),
supportsUnknownElements
? ownerDocument.createElement(nodeName)
: !(node = (data = data || getExpandoData(ownerDocument)).cache[
nodeName
]
? data.cache[nodeName].cloneNode()
: saveClones.test(nodeName)
? (data.cache[nodeName] = data.createElem(nodeName)).cloneNode()
: data.createElem(nodeName)).canHaveChildren ||
reSkip.test(nodeName) ||
node.tagUrn
? node
: data.frag.appendChild(node)
);
var node;
}
function shivDocument(ownerDocument) {
var data = getExpandoData((ownerDocument = ownerDocument || document));
return (
!html5.shivCSS ||
supportsHtml5Styles ||
data.hasCSS ||
(data.hasCSS = !!(function (ownerDocument, cssText) {
var p = ownerDocument.createElement("p"),
parent =
ownerDocument.getElementsByTagName("head")[0] ||
ownerDocument.documentElement;
return (
(p.innerHTML = "x"),
parent.insertBefore(p.lastChild, parent.firstChild)
);
})(
ownerDocument,
"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}"
)),
supportsUnknownElements ||
(function (ownerDocument, data) {
data.cache ||
((data.cache = {}),
(data.createElem = ownerDocument.createElement),
(data.createFrag = ownerDocument.createDocumentFragment),
(data.frag = data.createFrag())),
(ownerDocument.createElement = function (nodeName) {
return html5.shivMethods
? createElement(nodeName, ownerDocument, data)
: data.createElem(nodeName);
}),
(ownerDocument.createDocumentFragment = Function(
"h,f",
"return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(" +
getElements()
.join()
.replace(/[\w\-:]+/g, function (nodeName) {
return (
data.createElem(nodeName),
data.frag.createElement(nodeName),
'c("' + nodeName + '")'
);
}) +
");return n}"
)(html5, data.frag));
})(ownerDocument, data),
ownerDocument
);
}
!(function () {
try {
var a = document.createElement("a");
(a.innerHTML = ""),
(supportsHtml5Styles = "hidden" in a),
(supportsUnknownElements =
1 == a.childNodes.length ||
(function () {
document.createElement("a");
var frag = document.createDocumentFragment();
return (
void 0 === frag.cloneNode ||
void 0 === frag.createDocumentFragment ||
void 0 === frag.createElement
);
})());
} catch (e) {
supportsUnknownElements = supportsHtml5Styles = !0;
}
})();
var html5 = {
elements:
options.elements ||
"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",
version: "3.7.3",
shivCSS: !1 !== options.shivCSS,
supportsUnknownElements: supportsUnknownElements,
shivMethods: !1 !== options.shivMethods,
type: "default",
shivDocument: shivDocument,
createElement: createElement,
createDocumentFragment: function (ownerDocument, data) {
if (
((ownerDocument = ownerDocument || document),
supportsUnknownElements)
)
return ownerDocument.createDocumentFragment();
for (
var clone = (data =
data || getExpandoData(ownerDocument)).frag.cloneNode(),
i = 0,
elems = getElements(),
l = elems.length;
i < l;
i++
)
clone.createElement(elems[i]);
return clone;
},
addElements: function (newElements, ownerDocument) {
var elements = html5.elements;
"string" != typeof elements && (elements = elements.join(" ")),
"string" != typeof newElements &&
(newElements = newElements.join(" ")),
(html5.elements = elements + " " + newElements),
shivDocument(ownerDocument);
},
};
(window.html5 = html5),
shivDocument(document),
"object" == typeof module && module.exports && (module.exports = html5);
})(void 0 !== window ? window : this, document),
(hasOwnProp =
is((_hasOwnProperty = {}.hasOwnProperty), "undefined") ||
is(_hasOwnProperty.call, "undefined")
? function (object, property) {
return (
property in object &&
is(object.constructor.prototype[property], "undefined")
);
}
: function (object, property) {
return _hasOwnProperty.call(object, property);
}),
(ModernizrProto._l = {}),
(ModernizrProto.on = function (feature, cb) {
this._l[feature] || (this._l[feature] = []),
this._l[feature].push(cb),
Modernizr.hasOwnProperty(feature) &&
setTimeout(function () {
Modernizr._trigger(feature, Modernizr[feature]);
}, 0);
}),
(ModernizrProto._trigger = function (feature, res) {
if (this._l[feature]) {
var cbs = this._l[feature];
setTimeout(function () {
var i;
for (i = 0; i < cbs.length; i++) (0, cbs[i])(res);
}, 0),
delete this._l[feature];
}
}),
Modernizr._q.push(function () {
ModernizrProto.addTest = addTest;
});
var modElem = { elem: createElement("modernizr") };
Modernizr._q.push(function () {
delete modElem.elem;
});
var mStyle = { style: modElem.elem.style };
function injectElementWithStyles(rule, callback, nodes, testnames) {
var style,
ret,
node,
docOverflow,
mod = "modernizr",
div = createElement("div"),
body = (function () {
var body = document.body;
return (
body || ((body = createElement(isSVG ? "svg" : "body")).fake = !0),
body
);
})();
if (parseInt(nodes, 10))
for (; nodes--; )
((node = createElement("div")).id = testnames
? testnames[nodes]
: mod + (nodes + 1)),
div.appendChild(node);
return (
((style = createElement("style")).type = "text/css"),
(style.id = "s" + mod),
(body.fake ? body : div).appendChild(style),
body.appendChild(div),
style.styleSheet
? (style.styleSheet.cssText = rule)
: style.appendChild(document.createTextNode(rule)),
(div.id = mod),
body.fake &&
((body.style.background = ""),
(body.style.overflow = "hidden"),
(docOverflow = docElement.style.overflow),
(docElement.style.overflow = "hidden"),
docElement.appendChild(body)),
(ret = callback(div, rule)),
body.fake
? (body.parentNode.removeChild(body),
(docElement.style.overflow = docOverflow),
docElement.offsetHeight)
: div.parentNode.removeChild(div),
!!ret
);
}
function domToCSS(name) {
return name
.replace(/([A-Z])/g, function (str, m1) {
return "-" + m1.toLowerCase();
})
.replace(/^ms-/, "-ms-");
}
function nativeTestProps(props, value) {
var i = props.length;
if ("CSS" in window && "supports" in window.CSS) {
for (; i--; )
if (window.CSS.supports(domToCSS(props[i]), value)) return !0;
return !1;
}
if ("CSSSupportsRule" in window) {
for (var conditionText = []; i--; )
conditionText.push("(" + domToCSS(props[i]) + ":" + value + ")");
return injectElementWithStyles(
"@supports (" +
(conditionText = conditionText.join(" or ")) +
") { #modernizr { position: absolute; } }",
function (node) {
return (
"absolute" ==
(function (elem, pseudo, prop) {
var result;
if ("getComputedStyle" in window) {
result = getComputedStyle.call(window, elem, pseudo);
var console = window.console;
if (null !== result)
prop && (result = result.getPropertyValue(prop));
else if (console)
console[console.error ? "error" : "log"].call(
console,
"getComputedStyle returning null, its possible modernizr test results are inaccurate"
);
} else
result =
!pseudo && elem.currentStyle && elem.currentStyle[prop];
return result;
})(node, null, "position")
);
}
);
}
return undefined;
}
function cssToDOM(name) {
return name
.replace(/([a-z])-([a-z])/g, function (str, m1, m2) {
return m1 + m2.toUpperCase();
})
.replace(/^-/, "");
}
function testProps(props, prefixed, value, skipValueTest) {
if (
((skipValueTest = !is(skipValueTest, "undefined") && skipValueTest),
!is(value, "undefined"))
) {
var result = nativeTestProps(props, value);
if (!is(result, "undefined")) return result;
}
for (
var afterInit,
i,
propsLength,
prop,
before,
elems = ["modernizr", "tspan", "samp"];
!mStyle.style && elems.length;
)
(afterInit = !0),
(mStyle.modElem = createElement(elems.shift())),
(mStyle.style = mStyle.modElem.style);
function cleanElems() {
afterInit && (delete mStyle.style, delete mStyle.modElem);
}
for (propsLength = props.length, i = 0; i < propsLength; i++)
if (
((prop = props[i]),
(before = mStyle.style[prop]),
~("" + prop).indexOf("-") && (prop = cssToDOM(prop)),
mStyle.style[prop] !== undefined)
) {
if (skipValueTest || is(value, "undefined"))
return cleanElems(), "pfx" != prefixed || prop;
try {
mStyle.style[prop] = value;
} catch (e) {}
if (mStyle.style[prop] != before)
return cleanElems(), "pfx" != prefixed || prop;
}
return cleanElems(), !1;
}
Modernizr._q.unshift(function () {
delete mStyle.style;
});
ModernizrProto.testProp = function (prop, value, useValue) {
return testProps([prop], undefined, value, useValue);
};
Modernizr.addTest("audio", function () {
var elem = createElement("audio"),
bool = !1;
try {
(bool = !!elem.canPlayType) &&
(((bool = new Boolean(bool)).ogg = elem
.canPlayType('audio/ogg; codecs="vorbis"')
.replace(/^no$/, "")),
(bool.mp3 = elem
.canPlayType('audio/mpeg; codecs="mp3"')
.replace(/^no$/, "")),
(bool.opus =
elem.canPlayType('audio/ogg; codecs="opus"') ||
elem.canPlayType('audio/webm; codecs="opus"').replace(/^no$/, "")),
(bool.wav = elem
.canPlayType('audio/wav; codecs="1"')
.replace(/^no$/, "")),
(bool.m4a = (
elem.canPlayType("audio/x-m4a;") || elem.canPlayType("audio/aac;")
).replace(/^no$/, "")));
} catch (e) {}
return bool;
}),
Modernizr.addTest("canvas", function () {
var elem = createElement("canvas");
return !(!elem.getContext || !elem.getContext("2d"));
});
var cssomPrefixes = ModernizrProto._config.usePrefixes
? "Moz O ms Webkit".split(" ")
: [];
ModernizrProto._cssomPrefixes = cssomPrefixes;
var domPrefixes = ModernizrProto._config.usePrefixes
? "Moz O ms Webkit".toLowerCase().split(" ")
: [];
function fnBind(fn, that) {
return function () {
return fn.apply(that, arguments);
};
}
function testPropsAll(prop, prefixed, elem, value, skipValueTest) {
var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1),
props = (prop + " " + cssomPrefixes.join(ucProp + " ") + ucProp).split(
" "
);
return is(prefixed, "string") || is(prefixed, "undefined")
? testProps(props, prefixed, value, skipValueTest)
: (function (props, obj, elem) {
var item;
for (var i in props)
if (props[i] in obj)
return !1 === elem
? props[i]
: is((item = obj[props[i]]), "function")
? fnBind(item, elem || obj)
: item;
return !1;
})(
(props = (prop + " " + domPrefixes.join(ucProp + " ") + ucProp).split(
" "
)),
prefixed,
elem
);
}
(ModernizrProto._domPrefixes = domPrefixes),
(ModernizrProto.testAllProps = testPropsAll);
function atRule(prop) {
var rule,
length = prefixes.length,
cssrule = window.CSSRule;
if (void 0 === cssrule) return undefined;
if (!prop) return !1;
if (
(rule =
(prop = prop.replace(/^@/, "")).replace(/-/g, "_").toUpperCase() +
"_RULE") in cssrule
)
return "@" + prop;
for (var i = 0; i < length; i++) {
var prefix = prefixes[i];
if (prefix.toUpperCase() + "_" + rule in cssrule)
return "@-" + prefix.toLowerCase() + "-" + prop;
}
return !1;
}
ModernizrProto.atRule = atRule;
var prefixed = (ModernizrProto.prefixed = function (prop, obj, elem) {
return 0 === prop.indexOf("@")
? atRule(prop)
: (-1 != prop.indexOf("-") && (prop = cssToDOM(prop)),
obj ? testPropsAll(prop, obj, elem) : testPropsAll(prop, "pfx"));
});
Modernizr.addTest(
"fullscreen",
!(
!prefixed("exitFullscreen", document, !1) &&
!prefixed("cancelFullScreen", document, !1)
)
);
var inputElem = createElement("input"),
inputattrs =
"autocomplete autofocus list placeholder max min multiple pattern required step".split(
" "
),
attrs = {};
Modernizr.input = (function (props) {
for (var i = 0, len = props.length; i < len; i++)
attrs[props[i]] = !!(props[i] in inputElem);
return (
attrs.list &&
(attrs.list = !(
!createElement("datalist") || !window.HTMLDataListElement
)),
attrs
);
})(inputattrs);
var inputtypes =
"search tel url email datetime date month week time datetime-local number range color".split(
" "
),
inputs = {};
function testAllProps(prop, value, skipValueTest) {
return testPropsAll(prop, undefined, undefined, value, skipValueTest);
}
(Modernizr.inputtypes = (function (props) {
for (
var inputElemType, defaultView, bool, len = props.length, i = 0;
i < len;
i++
)
inputElem.setAttribute("type", (inputElemType = props[i])),
(bool = "text" !== inputElem.type && "style" in inputElem) &&
((inputElem.value = "1)"),
(inputElem.style.cssText = "position:absolute;visibility:hidden;"),
/^range$/.test(inputElemType) &&
inputElem.style.WebkitAppearance !== undefined
? (docElement.appendChild(inputElem),
(bool =
(defaultView = document.defaultView).getComputedStyle &&
"textfield" !==
defaultView.getComputedStyle(inputElem, null)
.WebkitAppearance &&
0 !== inputElem.offsetHeight),
docElement.removeChild(inputElem))
: /^(search|tel)$/.test(inputElemType) ||
(bool = /^(url|email)$/.test(inputElemType)
? inputElem.checkValidity && !1 === inputElem.checkValidity()
: "1)" != inputElem.value)),
(inputs[props[i]] = !!bool);
return inputs;
})(inputtypes)),
Modernizr.addTest(
"svg",
!!document.createElementNS &&
!!document.createElementNS("http://www.w3.org/2000/svg", "svg")
.createSVGRect
),
Modernizr.addTest("video", function () {
var elem = createElement("video"),
bool = !1;
try {
(bool = !!elem.canPlayType) &&
(((bool = new Boolean(bool)).ogg = elem
.canPlayType('video/ogg; codecs="theora"')
.replace(/^no$/, "")),
(bool.h264 = elem
.canPlayType('video/mp4; codecs="avc1.42E01E"')
.replace(/^no$/, "")),
(bool.webm = elem
.canPlayType('video/webm; codecs="vp8, vorbis"')
.replace(/^no$/, "")),
(bool.vp9 = elem
.canPlayType('video/webm; codecs="vp9"')
.replace(/^no$/, "")),
(bool.hls = elem
.canPlayType('application/x-mpegURL; codecs="avc1.42E01E"')
.replace(/^no$/, "")));
} catch (e) {}
return bool;
}),
(ModernizrProto.testAllProps = testAllProps),
Modernizr.addTest("cssanimations", testAllProps("animationName", "a", !0)),
Modernizr.addTest("boxshadow", testAllProps("boxShadow", "1px 1px", !0)),
(function () {
Modernizr.addTest("csscolumns", function () {
var bool = !1,
test = testAllProps("columnCount");
try {
bool = (bool = !!test) && new Boolean(bool);
} catch (e) {}
return bool;
});
for (
var name,
test,
props = [
"Width",
"Span",
"Fill",
"Gap",
"Rule",
"RuleColor",
"RuleStyle",
"RuleWidth",
"BreakBefore",
"BreakAfter",
"BreakInside",
],
i = 0;
i < props.length;
i++
)
(name = props[i].toLowerCase()),
(test = testAllProps("column" + props[i])),
("breakbefore" !== name &&
"breakafter" !== name &&
"breakinside" != name) ||
(test = test || testAllProps(props[i])),
Modernizr.addTest("csscolumns." + name, test);
})(),
Modernizr.addTest("flexbox", testAllProps("flexBasis", "1px", !0));
var prefixes = ModernizrProto._config.usePrefixes
? " -webkit- -moz- -o- -ms- ".split(" ")
: ["", ""];
(ModernizrProto._prefixes = prefixes),
Modernizr.addTest("csscalc", function () {
var el = createElement("a");
return (
(el.style.cssText = "width:" + prefixes.join("calc(10px);width:")),
!!el.style.length
);
}),
Modernizr.addTest("flexboxtweener", testAllProps("flexAlign", "end", !0)),
Modernizr.addTest("cssgradients", function () {
for (
var angle,
str1 = "background-image:",
css = "",
i = 0,
len = prefixes.length - 1;
i < len;
i++
)
(angle = 0 === i ? "to " : ""),
(css +=
str1 +
prefixes[i] +
"linear-gradient(" +
angle +
"left top, #9f9, white);");
Modernizr._config.usePrefixes &&
(css +=
str1 +
"-webkit-gradient(linear,left top,right bottom,from(#9f9),to(white));");
var style = createElement("a").style;
return (
(style.cssText = css),
-1 < ("" + style.backgroundImage).indexOf("gradient")
);
}),
Modernizr.addTest("csstransforms", function () {
return (
-1 === navigator.userAgent.indexOf("Android 2.") &&
testAllProps("transform", "scale(1)", !0)
);
});
var testStyles = (ModernizrProto.testStyles = injectElementWithStyles),
newSyntax = "CSS" in window && "supports" in window.CSS,
oldSyntax = "supportsCSS" in window;
Modernizr.addTest("supports", newSyntax || oldSyntax),
Modernizr.addTest("csstransforms3d", function () {
var ret = !!testAllProps("perspective", "1px", !0),
usePrefix = Modernizr._config.usePrefixes;
if (ret && (!usePrefix || "webkitPerspective" in docElement.style)) {
var mq;
Modernizr.supports
? (mq = "@supports (perspective: 1px)")
: ((mq = "@media (transform-3d)"),
usePrefix && (mq += ",(-webkit-transform-3d)")),
testStyles(
"#modernizr{width:0;height:0}" +
(mq +=
"{#modernizr{width:7px;height:18px;margin:0;padding:0;border:0}}"),
function (elem) {
ret = 7 === elem.offsetWidth && 18 === elem.offsetHeight;
}
);
}
return ret;
}),
Modernizr.addTest("csstransitions", testAllProps("transition", "all", !0)),
Modernizr.addTest("objectfit", !!prefixed("objectFit"), {
aliases: ["object-fit"],
}),
(function () {
var featureNames, feature, aliasIdx, result, nameIdx, featureNameSplit;
for (var featureIdx in tests)
if (tests.hasOwnProperty(featureIdx)) {
if (
((featureNames = []),
(feature = tests[featureIdx]).name &&
(featureNames.push(feature.name.toLowerCase()),
feature.options &&
feature.options.aliases &&
feature.options.aliases.length))
)
for (
aliasIdx = 0;
aliasIdx < feature.options.aliases.length;
aliasIdx++
)
featureNames.push(
feature.options.aliases[aliasIdx].toLowerCase()
);
for (
result = is(feature.fn, "function") ? feature.fn() : feature.fn,
nameIdx = 0;
nameIdx < featureNames.length;
nameIdx++
)
1 === (featureNameSplit = featureNames[nameIdx].split(".")).length
? (Modernizr[featureNameSplit[0]] = result)
: (!Modernizr[featureNameSplit[0]] ||
Modernizr[featureNameSplit[0]] instanceof Boolean ||
(Modernizr[featureNameSplit[0]] = new Boolean(
Modernizr[featureNameSplit[0]]
)),
(Modernizr[featureNameSplit[0]][featureNameSplit[1]] = result)),
classes.push((result ? "" : "no-") + featureNameSplit.join("-"));
}
})(),
setClasses(classes),
delete ModernizrProto.addTest,
delete ModernizrProto.addAsyncTest;
for (var i = 0; i < Modernizr._q.length; i++) Modernizr._q[i]();
window.Modernizr = Modernizr;
})(window, document),
(function (Modernizr) {
for (
var name,
value,
prop,
tests = [
{ name: "svg", value: "url(#test)" },
{ name: "inset", value: "inset(10px 20px 30px 40px)" },
{ name: "circle", value: "circle(60px at center)" },
{ name: "ellipse", value: "ellipse(50% 50% at 50% 50%)" },
{ name: "polygon", value: "polygon(50% 0%, 0% 100%, 100% 100%)" },
],
t = 0;
t < tests.length;
t++
)
(name = tests[t].name),
(value = tests[t].value),
Modernizr.addTest("cssclippath" + name, function () {
if ("CSS" in window && "supports" in window.CSS) {
for (var i = 0; i < Modernizr._prefixes.length; i++)
if (
((prop = Modernizr._prefixes[i] + "clip-path"),
window.CSS.supports(prop, value))
)
return !0;
return !1;
}
return Modernizr.testStyles(
"#modernizr { " +
Modernizr._prefixes.join("clip-path:" + value + "; ") +
" }",
function (elem, rule) {
var style = getComputedStyle(elem),
clip = style.clipPath;
if (!clip || "none" == clip) {
clip = !1;
for (var i = 0; i < Modernizr._domPrefixes.length; i++)
if (
((test = Modernizr._domPrefixes[i] + "ClipPath"),
style[test] && "none" !== style[test])
) {
clip = !0;
break;
}
}
return Modernizr.testProp("clipPath") && clip;
}
);
});
})(Modernizr);
/*!This file is auto-generated*/ /*!
* imagesLoaded PACKAGED v4.1.4
* JavaScript is all like "You images are done yet or what?"
* 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
);
});
/*!This file is auto-generated*/ /*!
* Masonry PACKAGED v4.2.2
* Cascading grid layout library
* https://masonry.desandro.com
* MIT License
* by David DeSandro
*/ !(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, r, a) {
function h(t, e, n) {
var o,
r = "$()." + i + '("' + e + '")';
return (
t.each(function (t, h) {
var u = a.data(h, i);
if (!u)
return void s(
i + " not initialized. Cannot call methods, i.e. " + r
);
var d = u[e];
if (!d || "_" == e.charAt(0))
return void s(r + " is not a valid method");
var l = d.apply(u, n);
o = void 0 === o ? l : o;
}),
void 0 !== o ? o : t
);
}
function u(t, e) {
t.each(function (t, n) {
var o = a.data(n, i);
o ? (o.option(e), o._init()) : ((o = new r(n, e)), a.data(n, i, o));
});
}
(a = a || e || t.jQuery),
a &&
(r.prototype.option ||
(r.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 = o.call(arguments, 1);
return h(this, t, e);
}
return u(this, t), this;
}),
n(a));
}
function n(t) {
!t || (t && t.bridget) || (t.bridget = i);
}
var o = Array.prototype.slice,
r = t.console,
s =
"undefined" == typeof r
? function () {}
: function (t) {
r.error(t);
};
return n(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 || {}),
n = (i[t] = i[t] || []);
return -1 == n.indexOf(e) && n.push(e), this;
}
}),
(e.once = function (t, e) {
if (t && e) {
this.on(t, e);
var i = (this._onceEvents = this._onceEvents || {}),
n = (i[t] = i[t] || {});
return (n[e] = !0), this;
}
}),
(e.off = function (t, e) {
var i = this._events && this._events[t];
if (i && i.length) {
var n = i.indexOf(e);
return -1 != n && i.splice(n, 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 n = this._onceEvents && this._onceEvents[t], o = 0;
o < i.length;
o++
) {
var r = i[o],
s = n && n[r];
s && (this.off(t, r), delete n[r]), r.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 = -1 == t.indexOf("%") && !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;
u > e;
e++
) {
var i = h[e];
t[i] = 0;
}
return t;
}
function n(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 o() {
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 o = n(e);
(s = 200 == Math.round(t(o.width))),
(r.isBoxSizeOuter = s),
i.removeChild(e);
}
}
function r(e) {
if (
(o(),
"string" == typeof e && (e = document.querySelector(e)),
e && "object" == typeof e && e.nodeType)
) {
var r = n(e);
if ("none" == r.display) return i();
var a = {};
(a.width = e.offsetWidth), (a.height = e.offsetHeight);
for (
var d = (a.isBorderBox = "border-box" == r.boxSizing), l = 0;
u > l;
l++
) {
var c = h[l],
f = r[c],
m = parseFloat(f);
a[c] = isNaN(m) ? 0 : m;
}
var p = a.paddingLeft + a.paddingRight,
g = a.paddingTop + a.paddingBottom,
y = a.marginLeft + a.marginRight,
v = a.marginTop + a.marginBottom,
_ = a.borderLeftWidth + a.borderRightWidth,
z = a.borderTopWidth + a.borderBottomWidth,
E = d && s,
b = t(r.width);
b !== !1 && (a.width = b + (E ? 0 : p + _));
var x = t(r.height);
return (
x !== !1 && (a.height = x + (E ? 0 : g + z)),
(a.innerWidth = a.width - (p + _)),
(a.innerHeight = a.height - (g + z)),
(a.outerWidth = a.width + y),
(a.outerHeight = a.height + v),
a
);
}
}
var s,
a =
"undefined" == typeof console
? e
: function (t) {
console.error(t);
},
h = [
"paddingLeft",
"paddingRight",
"paddingTop",
"paddingBottom",
"marginLeft",
"marginRight",
"marginTop",
"marginBottom",
"borderLeftWidth",
"borderRightWidth",
"borderTopWidth",
"borderBottomWidth",
],
u = h.length,
d = !1;
return r;
}),
(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 n = e[i],
o = n + "MatchesSelector";
if (t[o]) return o;
}
})();
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 n = 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 ? n.call(t) : [t];
}),
(i.removeFrom = function (t, e) {
var i = t.indexOf(e);
-1 != i && 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, n) {
t = i.makeArray(t);
var o = [];
return (
t.forEach(function (t) {
if (t instanceof HTMLElement) {
if (!n) return void o.push(t);
e(t, n) && o.push(t);
for (var i = t.querySelectorAll(n), r = 0; r < i.length; r++)
o.push(i[r]);
}
}),
o
);
}),
(i.debounceMethod = function (t, e, i) {
i = i || 100;
var n = t.prototype[e],
o = e + "Timeout";
t.prototype[e] = function () {
var t = this[o];
clearTimeout(t);
var e = arguments,
r = this;
this[o] = setTimeout(function () {
n.apply(r, e), delete r[o];
}, 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 o = t.console;
return (
(i.htmlInit = function (e, n) {
i.docReady(function () {
var r = i.toDashed(n),
s = "data-" + r,
a = document.querySelectorAll("[" + s + "]"),
h = document.querySelectorAll(".js-" + r),
u = i.makeArray(a).concat(i.makeArray(h)),
d = s + "-options",
l = t.jQuery;
u.forEach(function (t) {
var i,
r = t.getAttribute(s) || t.getAttribute(d);
try {
i = r && JSON.parse(r);
} catch (a) {
return void (
o &&
o.error("Error parsing " + s + " on " + t.className + ": " + a)
);
}
var h = new e(t, i);
l && l.data(t, n, h);
});
});
}),
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 n(t, e) {
t &&
((this.element = t),
(this.layout = e),
(this.position = { x: 0, y: 0 }),
this._create());
}
function o(t) {
return t.replace(/([A-Z])/g, function (t) {
return "-" + t.toLowerCase();
});
}
var r = document.documentElement.style,
s = "string" == typeof r.transition ? "transition" : "WebkitTransition",
a = "string" == typeof r.transform ? "transform" : "WebkitTransform",
h = {
WebkitTransition: "webkitTransitionEnd",
transition: "transitionend",
}[s],
u = {
transform: a,
transition: s,
transitionDuration: s + "Duration",
transitionProperty: s + "Property",
transitionDelay: s + "Delay",
},
d = (n.prototype = Object.create(t.prototype));
(d.constructor = n),
(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 n = u[i] || i;
e[n] = t[i];
}
}),
(d.getPosition = function () {
var t = getComputedStyle(this.element),
e = this.layout._getOption("originLeft"),
i = this.layout._getOption("originTop"),
n = t[e ? "left" : "right"],
o = t[i ? "top" : "bottom"],
r = parseFloat(n),
s = parseFloat(o),
a = this.layout.size;
-1 != n.indexOf("%") && (r = (r / 100) * a.width),
-1 != o.indexOf("%") && (s = (s / 100) * a.height),
(r = isNaN(r) ? 0 : r),
(s = isNaN(s) ? 0 : s),
(r -= e ? a.paddingLeft : a.paddingRight),
(s -= i ? a.paddingTop : a.paddingBottom),
(this.position.x = r),
(this.position.y = s);
}),
(d.layoutPosition = function () {
var t = this.layout.size,
e = {},
i = this.layout._getOption("originLeft"),
n = this.layout._getOption("originTop"),
o = i ? "paddingLeft" : "paddingRight",
r = i ? "left" : "right",
s = i ? "right" : "left",
a = this.position.x + t[o];
(e[r] = this.getXValue(a)), (e[s] = "");
var h = n ? "paddingTop" : "paddingBottom",
u = n ? "top" : "bottom",
d = n ? "bottom" : "top",
l = this.position.y + t[h];
(e[u] = 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,
n = this.position.y,
o = t == this.position.x && e == this.position.y;
if ((this.setPosition(t, e), o && !this.isTransitioning))
return void this.layoutPosition();
var r = t - i,
s = e - n,
a = {};
(a.transform = this.getTranslate(r, s)),
this.transition({
to: a,
onTransitionEnd: { transform: this.layoutPosition },
isCleaning: !0,
});
}),
(d.getTranslate = function (t, e) {
var i = this.layout._getOption("originLeft"),
n = this.layout._getOption("originTop");
return (
(t = i ? t : -t),
(e = n ? 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 n = this.element.offsetHeight;
n = null;
}
this.enableTransition(t.to),
this.css(t.to),
(this.isTransitioning = !0);
});
var l = "opacity," + o(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(h, this, !1);
}
}),
(d.onwebkitTransitionEnd = function (t) {
this.ontransitionend(t);
}),
(d.onotransitionend = function (t) {
this.ontransitionend(t);
});
var c = { "-webkit-transform": "transform" };
(d.ontransitionend = function (t) {
if (t.target === this.element) {
var e = this._transn,
n = c[t.propertyName] || t.propertyName;
if (
(delete e.ingProperties[n],
i(e.ingProperties) && this.disableTransition(),
n in e.clean &&
((this.element.style[t.propertyName] = ""), delete e.clean[n]),
n in e.onEnd)
) {
var o = e.onEnd[n];
o.call(this), delete e.onEnd[n];
}
this.emitEvent("transitionEnd", [this]);
}
}),
(d.disableTransition = function () {
this.removeTransitionStyles(),
this.element.removeEventListener(h, this, !1),
(this.isTransitioning = !1);
}),
(d._removeStyles = function (t) {
var e = {};
for (var i in t) e[i] = "";
this.css(e);
});
var f = {
transitionProperty: "",
transitionDuration: "",
transitionDelay: "",
};
return (
(d.removeTransitionStyles = function () {
this.css(f);
}),
(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 s && 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: "",
});
}),
n
);
}),
(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, n, o, r) {
return e(t, i, n, o, r);
}
)
: "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, n, o) {
"use strict";
function r(t, e) {
var i = n.getQueryElement(t);
if (!i)
return void (
h &&
h.error(
"Bad element for " + this.constructor.namespace + ": " + (i || t)
)
);
(this.element = i),
u && (this.$element = u(this.element)),
(this.options = n.extend({}, this.constructor.defaults)),
this.option(e);
var o = ++l;
(this.element.outlayerGUID = o), (c[o] = this), this._create();
var r = this._getOption("initLayout");
r && this.layout();
}
function s(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],
n = e && e[2];
if (!i.length) return 0;
i = parseFloat(i);
var o = m[n] || 1;
return i * o;
}
var h = t.console,
u = t.jQuery,
d = function () {},
l = 0,
c = {};
(r.namespace = "outlayer"),
(r.Item = o),
(r.defaults = {
containerStyle: { position: "relative" },
initLayout: !0,
originLeft: !0,
originTop: !0,
resize: !0,
resizeContainer: !0,
transitionDuration: "0.4s",
hiddenStyle: { opacity: 0, transform: "scale(0.001)" },
visibleStyle: { opacity: 1, transform: "scale(1)" },
});
var f = r.prototype;
n.extend(f, e.prototype),
(f.option = function (t) {
n.extend(this.options, t);
}),
(f._getOption = function (t) {
var e = this.constructor.compatOptions[t];
return e && void 0 !== this.options[e]
? this.options[e]
: this.options[t];
}),
(r.compatOptions = {
initLayout: "isInitLayout",
horizontal: "isHorizontal",
layoutInstant: "isLayoutInstant",
originLeft: "isOriginLeft",
originTop: "isOriginTop",
resize: "isResizeBound",
resizeContainer: "isResizingContainer",
}),
(f._create = function () {
this.reloadItems(),
(this.stamps = []),
this.stamp(this.options.stamp),
n.extend(this.element.style, this.options.containerStyle);
var t = this._getOption("resize");
t && this.bindResize();
}),
(f.reloadItems = function () {
this.items = this._itemize(this.element.children);
}),
(f._itemize = function (t) {
for (
var e = this._filterFindItemElements(t),
i = this.constructor.Item,
n = [],
o = 0;
o < e.length;
o++
) {
var r = e[o],
s = new i(r, this);
n.push(s);
}
return n;
}),
(f._filterFindItemElements = function (t) {
return n.filterFindElements(t, this.options.itemSelector);
}),
(f.getItemElements = function () {
return this.items.map(function (t) {
return t.element;
});
}),
(f.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);
}),
(f._init = f.layout),
(f._resetLayout = function () {
this.getSize();
}),
(f.getSize = function () {
this.size = i(this.element);
}),
(f._getMeasurement = function (t, e) {
var n,
o = this.options[t];
o
? ("string" == typeof o
? (n = this.element.querySelector(o))
: o instanceof HTMLElement && (n = o),
(this[t] = n ? i(n)[e] : o))
: (this[t] = 0);
}),
(f.layoutItems = function (t, e) {
(t = this._getItemsForLayout(t)),
this._layoutItems(t, e),
this._postLayout();
}),
(f._getItemsForLayout = function (t) {
return t.filter(function (t) {
return !t.isIgnored;
});
}),
(f._layoutItems = function (t, e) {
if ((this._emitCompleteOnItems("layout", t), t && t.length)) {
var i = [];
t.forEach(function (t) {
var n = this._getItemLayoutPosition(t);
(n.item = t), (n.isInstant = e || t.isLayoutInstant), i.push(n);
}, this),
this._processLayoutQueue(i);
}
}),
(f._getItemLayoutPosition = function () {
return { x: 0, y: 0 };
}),
(f._processLayoutQueue = function (t) {
this.updateStagger(),
t.forEach(function (t, e) {
this._positionItem(t.item, t.x, t.y, t.isInstant, e);
}, this);
}),
(f.updateStagger = function () {
var t = this.options.stagger;
return null === t || void 0 === t
? void (this.stagger = 0)
: ((this.stagger = a(t)), this.stagger);
}),
(f._positionItem = function (t, e, i, n, o) {
n ? t.goTo(e, i) : (t.stagger(o * this.stagger), t.moveTo(e, i));
}),
(f._postLayout = function () {
this.resizeContainer();
}),
(f.resizeContainer = function () {
var t = this._getOption("resizeContainer");
if (t) {
var e = this._getContainerSize();
e &&
(this._setContainerMeasure(e.width, !0),
this._setContainerMeasure(e.height, !1));
}
}),
(f._getContainerSize = d),
(f._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");
}
}),
(f._emitCompleteOnItems = function (t, e) {
function i() {
o.dispatchEvent(t + "Complete", null, [e]);
}
function n() {
s++, s == r && i();
}
var o = this,
r = e.length;
if (!e || !r) return void i();
var s = 0;
e.forEach(function (e) {
e.once(t, n);
});
}),
(f.dispatchEvent = function (t, e, i) {
var n = e ? [e].concat(i) : i;
if ((this.emitEvent(t, n), u))
if (((this.$element = this.$element || u(this.element)), e)) {
var o = u.Event(e);
(o.type = t), this.$element.trigger(o, i);
} else this.$element.trigger(t, i);
}),
(f.ignore = function (t) {
var e = this.getItem(t);
e && (e.isIgnored = !0);
}),
(f.unignore = function (t) {
var e = this.getItem(t);
e && delete e.isIgnored;
}),
(f.stamp = function (t) {
(t = this._find(t)),
t &&
((this.stamps = this.stamps.concat(t)),
t.forEach(this.ignore, this));
}),
(f.unstamp = function (t) {
(t = this._find(t)),
t &&
t.forEach(function (t) {
n.removeFrom(this.stamps, t), this.unignore(t);
}, this);
}),
(f._find = function (t) {
return t
? ("string" == typeof t && (t = this.element.querySelectorAll(t)),
(t = n.makeArray(t)))
: void 0;
}),
(f._manageStamps = function () {
this.stamps &&
this.stamps.length &&
(this._getBoundingRect(),
this.stamps.forEach(this._manageStamp, this));
}),
(f._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),
};
}),
(f._manageStamp = d),
(f._getElementOffset = function (t) {
var e = t.getBoundingClientRect(),
n = this._boundingRect,
o = i(t),
r = {
left: e.left - n.left - o.marginLeft,
top: e.top - n.top - o.marginTop,
right: n.right - e.right - o.marginRight,
bottom: n.bottom - e.bottom - o.marginBottom,
};
return r;
}),
(f.handleEvent = n.handleEvent),
(f.bindResize = function () {
t.addEventListener("resize", this), (this.isResizeBound = !0);
}),
(f.unbindResize = function () {
t.removeEventListener("resize", this), (this.isResizeBound = !1);
}),
(f.onresize = function () {
this.resize();
}),
n.debounceMethod(r, "onresize", 100),
(f.resize = function () {
this.isResizeBound && this.needsResizeLayout() && this.layout();
}),
(f.needsResizeLayout = function () {
var t = i(this.element),
e = this.size && t;
return e && t.innerWidth !== this.size.innerWidth;
}),
(f.addItems = function (t) {
var e = this._itemize(t);
return e.length && (this.items = this.items.concat(e)), e;
}),
(f.appended = function (t) {
var e = this.addItems(t);
e.length && (this.layoutItems(e, !0), this.reveal(e));
}),
(f.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);
}
}),
(f.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();
});
}
}),
(f.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();
});
}
}),
(f.revealItemElements = function (t) {
var e = this.getItems(t);
this.reveal(e);
}),
(f.hideItemElements = function (t) {
var e = this.getItems(t);
this.hide(e);
}),
(f.getItem = function (t) {
for (var e = 0; e < this.items.length; e++) {
var i = this.items[e];
if (i.element == t) return i;
}
}),
(f.getItems = function (t) {
t = n.makeArray(t);
var e = [];
return (
t.forEach(function (t) {
var i = this.getItem(t);
i && e.push(i);
}, this),
e
);
}),
(f.remove = function (t) {
var e = this.getItems(t);
this._emitCompleteOnItems("remove", e),
e &&
e.length &&
e.forEach(function (t) {
t.remove(), n.removeFrom(this.items, t);
}, this);
}),
(f.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 c[e],
delete this.element.outlayerGUID,
u && u.removeData(this.element, this.constructor.namespace);
}),
(r.data = function (t) {
t = n.getQueryElement(t);
var e = t && t.outlayerGUID;
return e && c[e];
}),
(r.create = function (t, e) {
var i = s(r);
return (
(i.defaults = n.extend({}, r.defaults)),
n.extend(i.defaults, e),
(i.compatOptions = n.extend({}, r.compatOptions)),
(i.namespace = t),
(i.data = r.data),
(i.Item = s(o)),
n.htmlInit(i, t),
u && u.bridget && u.bridget(t, i),
i
);
});
var m = { ms: 1, s: 1e3 };
return (r.Item = o), r;
}),
(function (t, e) {
"function" == typeof define && define.amd
? define(["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 n = i.prototype;
return (
(n._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);
}),
(n.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 n = (this.columnWidth += this.gutter),
o = this.containerWidth + this.gutter,
r = o / n,
s = n - (o % n),
a = s && 1 > s ? "round" : "floor";
(r = Math[a](r)), (this.cols = Math.max(r, 1));
}),
(n.getContainerWidth = function () {
var t = this._getOption("fitWidth"),
i = t ? this.element.parentNode : this.element,
n = e(i);
this.containerWidth = n && n.innerWidth;
}),
(n._getItemLayoutPosition = function (t) {
t.getSize();
var e = t.size.outerWidth % this.columnWidth,
i = e && 1 > e ? "round" : "ceil",
n = Math[i](t.size.outerWidth / this.columnWidth);
n = Math.min(n, this.cols);
for (
var o = this.options.horizontalOrder
? "_getHorizontalColPosition"
: "_getTopColPosition",
r = this[o](n, t),
s = { x: this.columnWidth * r.col, y: r.y },
a = r.y + t.size.outerHeight,
h = n + r.col,
u = r.col;
h > u;
u++
)
this.colYs[u] = a;
return s;
}),
(n._getTopColPosition = function (t) {
var e = this._getTopColGroup(t),
i = Math.min.apply(Math, e);
return { col: e.indexOf(i), y: i };
}),
(n._getTopColGroup = function (t) {
if (2 > t) return this.colYs;
for (var e = [], i = this.cols + 1 - t, n = 0; i > n; n++)
e[n] = this._getColGroupY(n, t);
return e;
}),
(n._getColGroupY = function (t, e) {
if (2 > e) return this.colYs[t];
var i = this.colYs.slice(t, t + e);
return Math.max.apply(Math, i);
}),
(n._getHorizontalColPosition = function (t, e) {
var i = this.horizontalColIndex % this.cols,
n = t > 1 && i + t > this.cols;
i = n ? 0 : i;
var o = e.size.outerWidth && e.size.outerHeight;
return (
(this.horizontalColIndex = o ? i + t : this.horizontalColIndex),
{ col: i, y: this._getColGroupY(i, t) }
);
}),
(n._manageStamp = function (t) {
var i = e(t),
n = this._getElementOffset(t),
o = this._getOption("originLeft"),
r = o ? n.left : n.right,
s = r + i.outerWidth,
a = Math.floor(r / this.columnWidth);
a = Math.max(0, a);
var h = Math.floor(s / this.columnWidth);
(h -= s % this.columnWidth ? 0 : 1), (h = Math.min(this.cols - 1, h));
for (
var u = this._getOption("originTop"),
d = (u ? n.top : n.bottom) + i.outerHeight,
l = a;
h >= l;
l++
)
this.colYs[l] = Math.max(d, this.colYs[l]);
}),
(n._getContainerSize = function () {
this.maxY = Math.max.apply(Math, this.colYs);
var t = { height: this.maxY };
return (
this._getOption("fitWidth") &&
(t.width = this._getContainerFitWidth()),
t
);
}),
(n._getContainerFitWidth = function () {
for (var t = 0, e = this.cols; --e && 0 === this.colYs[e]; ) t++;
return (this.cols - t) * this.columnWidth - this.gutter;
}),
(n.needsResizeLayout = function () {
var t = this.containerWidth;
return this.getContainerWidth(), t != this.containerWidth;
}),
i
);
});
"function" != typeof Object.create &&
(Object.create = function (obj) {
function F() {}
return (F.prototype = obj), new F();
}),
(window.lazySizesConfig = window.lazySizesConfig || {}),
(window.lazySizesConfig.lazyClass = "aux-preload"),
(window.lazySizesConfig.loadingClass = "aux-preloading"),
(window.lazySizesConfig.loadedClass = "aux-preloaded"),
document.addEventListener("lazybeforeunveil", function (e) {
var color = e.target.getAttribute("data-bg-color");
color && (e.target.style.backgroundColor = color);
}),
document.addEventListener("lazyloaded", function (e) {
if (
(e.target.getAttribute("data-bg-color") &&
(e.target.style.backgroundColor = "initial"),
e.target.classList.contains("aux-has-preload-height") &&
(e.target.classList.remove("aux-has-preload-height"),
(e.target.style.height = "auto")),
"VIDEO" === e.target.nodeName)
) {
var video = e.target;
for (var source in video.children) {
var videoSource = video.children[source];
"SOURCE" === videoSource.tagName &&
videoSource.getAttribute("data-src") &&
(videoSource.src = videoSource.getAttribute("data-src"));
}
video.load(), video.classList.contains("aux-autoplay") && video.play();
}
}),
(function ($, window, document) {
"use strict";
function resposiveNotLoadedImages() {
var width,
height,
lazysizeImages = document.querySelectorAll(".aux-preload");
Array.prototype.forEach.call(lazysizeImages, function (el, i) {
(width = el.getAttribute("width")) &&
(height = el.getAttribute("height")) &&
((el.style.height = el.clientWidth / (width / height) + "px"),
el.classList.add("aux-has-preload-height"));
});
}
window.addEventListener("orientationchange", resposiveNotLoadedImages),
window.addEventListener("resize", resposiveNotLoadedImages),
$(resposiveNotLoadedImages);
})(jQuery, window, document),
(function (factory) {
"function" == typeof define && define.amd
? define(["jquery"], function ($) {
return factory($);
})
: "object" == typeof module && "object" == typeof module.exports
? (exports = factory(require("jquery")))
: factory(jQuery);
})(function ($) {
void 0 !== $.easing && ($.easing.jswing = $.easing.swing);
var pow = Math.pow,
sqrt = Math.sqrt,
sin = Math.sin,
cos = Math.cos,
PI = Math.PI,
c1 = 1.70158,
c2 = 1.525 * c1,
c4 = (2 * PI) / 3,
c5 = (2 * PI) / 4.5;
function bounceOut(x) {
var n1 = 7.5625,
d1 = 2.75;
return x < 1 / d1
? n1 * x * x
: x < 2 / d1
? n1 * (x -= 1.5 / d1) * x + 0.75
: x < 2.5 / d1
? n1 * (x -= 2.25 / d1) * x + 0.9375
: n1 * (x -= 2.625 / d1) * x + 0.984375;
}
$.extend($.easing, {
def: "easeOutQuad",
swing: function (x) {
return $.easing[$.easing.def](x);
},
easeInQuad: function (x) {
return x * x;
},
easeOutQuad: function (x) {
return 1 - (1 - x) * (1 - x);
},
easeInOutQuad: function (x) {
return x < 0.5 ? 2 * x * x : 1 - pow(-2 * x + 2, 2) / 2;
},
easeInCubic: function (x) {
return x * x * x;
},
easeOutCubic: function (x) {
return 1 - pow(1 - x, 3);
},
easeInOutCubic: function (x) {
return x < 0.5 ? 4 * x * x * x : 1 - pow(-2 * x + 2, 3) / 2;
},
easeInQuart: function (x) {
return x * x * x * x;
},
easeOutQuart: function (x) {
return 1 - pow(1 - x, 4);
},
easeInOutQuart: function (x) {
return x < 0.5 ? 8 * x * x * x * x : 1 - pow(-2 * x + 2, 4) / 2;
},
easeInQuint: function (x) {
return x * x * x * x * x;
},
easeOutQuint: function (x) {
return 1 - pow(1 - x, 5);
},
easeInOutQuint: function (x) {
return x < 0.5 ? 16 * x * x * x * x * x : 1 - pow(-2 * x + 2, 5) / 2;
},
easeInSine: function (x) {
return 1 - cos((x * PI) / 2);
},
easeOutSine: function (x) {
return sin((x * PI) / 2);
},
easeInOutSine: function (x) {
return -(cos(PI * x) - 1) / 2;
},
easeInExpo: function (x) {
return 0 === x ? 0 : pow(2, 10 * x - 10);
},
easeOutExpo: function (x) {
return 1 === x ? 1 : 1 - pow(2, -10 * x);
},
easeInOutExpo: function (x) {
return 0 === x
? 0
: 1 === x
? 1
: x < 0.5
? pow(2, 20 * x - 10) / 2
: (2 - pow(2, -20 * x + 10)) / 2;
},
easeInCirc: function (x) {
return 1 - sqrt(1 - pow(x, 2));
},
easeOutCirc: function (x) {
return sqrt(1 - pow(x - 1, 2));
},
easeInOutCirc: function (x) {
return x < 0.5
? (1 - sqrt(1 - pow(2 * x, 2))) / 2
: (sqrt(1 - pow(-2 * x + 2, 2)) + 1) / 2;
},
easeInElastic: function (x) {
return 0 === x
? 0
: 1 === x
? 1
: -pow(2, 10 * x - 10) * sin((10 * x - 10.75) * c4);
},
easeOutElastic: function (x) {
return 0 === x
? 0
: 1 === x
? 1
: pow(2, -10 * x) * sin((10 * x - 0.75) * c4) + 1;
},
easeInOutElastic: function (x) {
return 0 === x
? 0
: 1 === x
? 1
: x < 0.5
? (-pow(2, 20 * x - 10) * sin((20 * x - 11.125) * c5)) / 2
: (pow(2, -20 * x + 10) * sin((20 * x - 11.125) * c5)) / 2 + 1;
},
easeInBack: function (x) {
return 2.70158 * x * x * x - c1 * x * x;
},
easeOutBack: function (x) {
return 1 + 2.70158 * pow(x - 1, 3) + c1 * pow(x - 1, 2);
},
easeInOutBack: function (x) {
return x < 0.5
? (pow(2 * x, 2) * (7.189819 * x - c2)) / 2
: (pow(2 * x - 2, 2) * ((1 + c2) * (2 * x - 2) + c2) + 2) / 2;
},
easeInBounce: function (x) {
return 1 - bounceOut(1 - x);
},
easeOutBounce: bounceOut,
easeInOutBounce: function (x) {
return x < 0.5
? (1 - bounceOut(1 - 2 * x)) / 2
: (1 + bounceOut(2 * x - 1)) / 2;
},
});
}),
(function ($) {
var $special,
resizeTimeout,
$event = $.event;
$special = $event.special.debouncedresize = {
setup: function () {
$(this).on("resize", $special.handler);
},
teardown: function () {
$(this).off("resize", $special.handler);
},
handler: function (event, execAsap) {
function dispatch() {
(event.type = "debouncedresize"),
$event.dispatch.apply(context, args);
}
var context = this,
args = arguments;
resizeTimeout && clearTimeout(resizeTimeout),
execAsap
? dispatch()
: (resizeTimeout = setTimeout(dispatch, $special.threshold));
},
threshold: 150,
};
})(jQuery),
(function ($) {
"use strict";
($.fn.fitVids = function (options) {
var settings = { customSelector: null, ignore: null };
if (!document.getElementById("fit-vids-style")) {
var head = document.head || document.getElementsByTagName("head")[0],
div = document.createElement("div");
(div.innerHTML =
'
x
'),
head.appendChild(div.childNodes[1]);
}
return (
options && $.extend(settings, options),
this.each(function () {
var selectors = [
'iframe[src*="player.vimeo.com"]',
'iframe[src*="youtube.com"]',
'iframe[src*="youtube-nocookie.com"]',
'iframe[src*="kickstarter.com"][src*="video.html"]',
"object",
"embed",
];
settings.customSelector && selectors.push(settings.customSelector);
var ignoreList = ".fitvidsignore";
settings.ignore && (ignoreList = ignoreList + ", " + settings.ignore);
var $allVideos = $(this).find(selectors.join(","));
($allVideos = ($allVideos = $allVideos.not("object object")).not(
ignoreList
)).each(function () {
var $this = $(this);
if (
!(
0 < $this.parents(ignoreList).length ||
("embed" === this.tagName.toLowerCase() &&
$this.parent("object").length) ||
$this.parent(".fluid-width-video-wrapper").length
)
) {
$this.css("height") ||
$this.css("width") ||
(!isNaN($this.attr("height")) && !isNaN($this.attr("width"))) ||
($this.attr("height", 9), $this.attr("width", 16));
var aspectRatio =
("object" === this.tagName.toLowerCase() ||
($this.attr("height") &&
!isNaN(parseInt($this.attr("height"), 10)))
? parseInt($this.attr("height"), 10)
: $this.height()) /
(isNaN(parseInt($this.attr("width"), 10))
? $this.width()
: parseInt($this.attr("width"), 10));
if (!$this.attr("name")) {
var videoName = "fitvid" + $.fn.fitVids._count;
$this.attr("name", videoName), $.fn.fitVids._count++;
}
$this
.wrap('')
.parent(".fluid-width-video-wrapper")
.css("padding-top", 100 * aspectRatio + "%"),
$this.removeAttr("height").removeAttr("width");
}
});
})
);
}),
($.fn.fitVids._count = 0);
})(window.jQuery || window.Zepto),
(function (factory) {
"function" == typeof define && define.amd
? define(["jquery"], factory)
: "object" == typeof exports
? (module.exports = factory)
: factory(jQuery);
})(function ($) {
var nullLowestDeltaTimeout,
lowestDelta,
toFix = ["wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll"],
toBind =
"onwheel" in window.document || 9 <= window.document.documentMode
? ["wheel"]
: ["mousewheel", "DomMouseScroll", "MozMousePixelScroll"],
slice = Array.prototype.slice;
if ($.event.fixHooks)
for (var i = toFix.length; i; )
$.event.fixHooks[toFix[--i]] = $.event.mouseHooks;
var special = ($.event.special.mousewheel = {
version: "3.1.12",
setup: function () {
if (this.addEventListener)
for (var i = toBind.length; i; )
this.addEventListener(toBind[--i], handler, !1);
else this.onmousewheel = handler;
$.data(this, "mousewheel-line-height", special.getLineHeight(this)),
$.data(this, "mousewheel-page-height", special.getPageHeight(this));
},
teardown: function () {
if (this.removeEventListener)
for (var i = toBind.length; i; )
this.removeEventListener(toBind[--i], handler, !1);
else this.onmousewheel = null;
$.removeData(this, "mousewheel-line-height"),
$.removeData(this, "mousewheel-page-height");
},
getLineHeight: function (elem) {
var $elem = $(elem),
$parent = $elem["offsetParent" in $.fn ? "offsetParent" : "parent"]();
return (
$parent.length || ($parent = $("body")),
parseInt($parent.css("fontSize"), 10) ||
parseInt($elem.css("fontSize"), 10) ||
16
);
},
getPageHeight: function (elem) {
return $(elem).height();
},
settings: { adjustOldDeltas: !0, normalizeOffset: !0 },
});
function handler(event) {
var absDelta,
orgEvent = event || window.event,
args = slice.call(arguments, 1),
delta = 0,
deltaX = 0,
deltaY = 0;
if (
(((event = $.event.fix(orgEvent)).type = "mousewheel"),
"detail" in orgEvent && (deltaY = -1 * orgEvent.detail),
"wheelDelta" in orgEvent && (deltaY = orgEvent.wheelDelta),
"wheelDeltaY" in orgEvent && (deltaY = orgEvent.wheelDeltaY),
"wheelDeltaX" in orgEvent && (deltaX = -1 * orgEvent.wheelDeltaX),
"axis" in orgEvent &&
orgEvent.axis === orgEvent.HORIZONTAL_AXIS &&
((deltaX = -1 * deltaY), (deltaY = 0)),
(delta = 0 === deltaY ? deltaX : deltaY),
"deltaY" in orgEvent && (delta = deltaY = -1 * orgEvent.deltaY),
"deltaX" in orgEvent &&
((deltaX = orgEvent.deltaX), 0 === deltaY && (delta = -1 * deltaX)),
0 !== deltaY || 0 !== deltaX)
) {
if (1 === orgEvent.deltaMode) {
var lineHeight = $.data(this, "mousewheel-line-height");
(delta *= lineHeight), (deltaY *= lineHeight), (deltaX *= lineHeight);
} else if (2 === orgEvent.deltaMode) {
var pageHeight = $.data(this, "mousewheel-page-height");
(delta *= pageHeight), (deltaY *= pageHeight), (deltaX *= pageHeight);
}
if (
((absDelta = Math.max(Math.abs(deltaY), Math.abs(deltaX))),
(!lowestDelta || absDelta < lowestDelta) &&
shouldAdjustOldDeltas(orgEvent, (lowestDelta = absDelta)) &&
(lowestDelta /= 40),
shouldAdjustOldDeltas(orgEvent, absDelta) &&
((delta /= 40), (deltaX /= 40), (deltaY /= 40)),
(delta = Math[1 <= delta ? "floor" : "ceil"](delta / lowestDelta)),
(deltaX = Math[1 <= deltaX ? "floor" : "ceil"](deltaX / lowestDelta)),
(deltaY = Math[1 <= deltaY ? "floor" : "ceil"](deltaY / lowestDelta)),
special.settings.normalizeOffset && this.getBoundingClientRect)
) {
var boundingRect = this.getBoundingClientRect();
(event.offsetX = event.clientX - boundingRect.left),
(event.offsetY = event.clientY - boundingRect.top);
}
return (
(event.deltaX = deltaX),
(event.deltaY = deltaY),
(event.deltaFactor = lowestDelta),
(event.deltaMode = 0),
args.unshift(event, delta, deltaX, deltaY),
nullLowestDeltaTimeout && window.clearTimeout(nullLowestDeltaTimeout),
(nullLowestDeltaTimeout = window.setTimeout(nullLowestDelta, 200)),
($.event.dispatch || $.event.handle).apply(this, args)
);
}
}
function nullLowestDelta() {
lowestDelta = null;
}
function shouldAdjustOldDeltas(orgEvent, absDelta) {
return (
special.settings.adjustOldDeltas &&
"mousewheel" === orgEvent.type &&
absDelta % 120 == 0
);
}
$.fn.extend({
mousewheel: function (fn) {
return fn ? this.on("mousewheel", fn) : this.trigger("mousewheel");
},
unmousewheel: function (fn) {
return this.off("mousewheel", fn);
},
});
}),
(function (a, b) {
"object" == typeof exports
? (module.exports = b())
: "function" == typeof define && define.amd
? define(["jquery", "googlemaps!"], b)
: (a.GMaps = b());
})(this, function () {
function h(a, b) {
return (
(a = a.replace("#", "")),
"jQuery" in window && b ? $("#" + a, b)[0] : document.getElementById(a)
);
}
var k,
l,
a = function (a, b) {
var c;
if (a === b) return a;
for (c in b) void 0 !== b[c] && (a[c] = b[c]);
return a;
},
b = function (a, b) {
var c,
d = Array.prototype.slice.call(arguments, 2),
e = [],
f = a.length;
if (Array.prototype.map && a.map === Array.prototype.map)
e = Array.prototype.map.call(a, function (a) {
var c = d.slice(0);
return c.splice(0, 0, a), b.apply(this, c);
});
else
for (c = 0; c < f; c++)
(callback_params = d),
callback_params.splice(0, 0, a[c]),
e.push(b.apply(this, callback_params));
return e;
},
c = function (a) {
var b,
c = [];
for (b = 0; b < a.length; b++) c = c.concat(a[b]);
return c;
},
d = function (a, b) {
var c = a[0],
d = a[1];
return b && ((c = a[1]), (d = a[0])), new google.maps.LatLng(c, d);
},
f = function (a, b) {
var c;
for (c = 0; c < a.length; c++)
a[c] instanceof google.maps.LatLng ||
(0 < a[c].length && "object" == typeof a[c][0]
? (a[c] = f(a[c], b))
: (a[c] = d(a[c], b)));
return a;
},
j = (function () {
var c = document,
d = function (b) {
if ("object" != typeof window.google || !window.google.maps)
return (
"object" == typeof window.console &&
window.console.error &&
console.error(
"Google Maps API is required. Please register the following JavaScript library https://maps.googleapis.com/maps/api/js."
),
function () {}
);
if (!this) return new d(b);
(b.zoom = b.zoom || 15), (b.mapType = b.mapType || "roadmap");
function f(a, b) {
return void 0 === a ? b : a;
}
var e,
j = this,
k = [
"bounds_changed",
"center_changed",
"click",
"dblclick",
"drag",
"dragend",
"dragstart",
"idle",
"maptypeid_changed",
"projection_changed",
"resize",
"tilesloaded",
"zoom_changed",
],
l = ["mousemove", "mouseout", "mouseover"],
m = [
"el",
"lat",
"lng",
"mapType",
"width",
"height",
"markerClusterer",
"enableNewStyle",
],
n = b.el || b.div,
o = b.markerClusterer,
p = google.maps.MapTypeId[b.mapType.toUpperCase()],
q = new google.maps.LatLng(b.lat, b.lng),
r = f(b.zoomControl, !0),
s = b.zoomControlOpt || {
style: "DEFAULT",
position: "TOP_LEFT",
},
t = s.style || "DEFAULT",
u = s.position || "TOP_LEFT",
v = f(b.panControl, !0),
w = f(b.mapTypeControl, !0),
x = f(b.scaleControl, !0),
y = f(b.streetViewControl, !0),
z = f(z, !0),
A = {},
B = { zoom: this.zoom, center: q, mapTypeId: p },
C = {
panControl: v,
zoomControl: r,
zoomControlOptions: {
style: google.maps.ZoomControlStyle[t],
position: google.maps.ControlPosition[u],
},
mapTypeControl: w,
scaleControl: x,
streetViewControl: y,
overviewMapControl: z,
};
if (
("string" == typeof b.el || "string" == typeof b.div
? -1 < n.indexOf("#")
? (this.el = h(n, b.context))
: (this.el = function (a, b) {
var c = a.replace(".", "");
return "jQuery" in this && b
? $("." + c, b)[0]
: document.getElementsByClassName(c)[0];
}.apply(this, [n, b.context]))
: (this.el = n),
void 0 === this.el || null === this.el)
)
throw "No element defined.";
for (
window.context_menu = window.context_menu || {},
window.context_menu[j.el.id] = {},
this.controls = [],
this.overlays = [],
this.layers = [],
this.singleLayers = {},
this.markers = [],
this.polylines = [],
this.routes = [],
this.polygons = [],
this.infoWindow = null,
this.overlay_el = null,
this.zoom = b.zoom,
this.registered_events = {},
this.el.style.width =
b.width || this.el.scrollWidth || this.el.offsetWidth,
this.el.style.height =
b.height || this.el.scrollHeight || this.el.offsetHeight,
google.maps.visualRefresh = b.enableNewStyle,
e = 0;
e < m.length;
e++
)
delete b[m[e]];
for (
1 != b.disableDefaultUI && (B = a(B, C)), A = a(B, b), e = 0;
e < k.length;
e++
)
delete A[k[e]];
for (e = 0; e < l.length; e++) delete A[l[e]];
(this.map = new google.maps.Map(this.el, A)),
o && (this.markerClusterer = o.apply(this, [this.map]));
function D(a, b) {
var c = "",
d = window.context_menu[j.el.id][a];
for (var e in d)
if (d.hasOwnProperty(e)) {
var f = d[e];
c +=
'' +
f.title +
"";
}
if (h("gmaps_context_menu")) {
var g = h("gmaps_context_menu");
g.innerHTML = c;
var k = g.getElementsByTagName("a"),
l = k.length;
for (e = 0; e < l; e++) {
var m = k[e];
google.maps.event.clearListeners(m, "click"),
google.maps.event.addDomListenerOnce(
m,
"click",
function (c) {
c.preventDefault(),
d[this.id.replace(a + "_", "")].action.apply(j, [b]),
j.hideContextMenu();
},
!1
);
}
var o = function (a) {
var b = 0,
c = 0;
if (a.getBoundingClientRect) {
var d = a.getBoundingClientRect(),
e = -(window.scrollX
? window.scrollX
: window.pageXOffset),
f = -(window.scrollY
? window.scrollY
: window.pageYOffset);
return [d.left - e, d.top - f];
}
if (a.offsetParent)
for (
;
(b += a.offsetLeft),
(c += a.offsetTop),
(a = a.offsetParent);
);
return [b, c];
}.apply(this, [j.el]),
p = o[0] + b.pixel.x - 15,
q = o[1] + b.pixel.y - 15;
(g.style.left = p + "px"), (g.style.top = q + "px");
}
}
(this.buildContextMenu = function (a, b) {
if ("marker" === a) {
b.pixel = {};
var c = new google.maps.OverlayView();
c.setMap(j.map),
(c.draw = function () {
var d = c.getProjection(),
e = b.marker.getPosition();
(b.pixel = d.fromLatLngToContainerPixel(e)), D(a, b);
});
} else D(a, b);
var d = h("gmaps_context_menu");
setTimeout(function () {
d.style.display = "block";
}, 0);
}),
(this.setContextMenu = function (a) {
window.context_menu[j.el.id][a.control] = {};
var b,
d = c.createElement("ul");
for (b in a.options)
if (a.options.hasOwnProperty(b)) {
var e = a.options[b];
window.context_menu[j.el.id][a.control][e.name] = {
title: e.title,
action: e.action,
};
}
(d.id = "gmaps_context_menu"),
(d.style.display = "none"),
(d.style.position = "absolute"),
(d.style.minWidth = "100px"),
(d.style.background = "white"),
(d.style.listStyle = "none"),
(d.style.padding = "8px"),
(d.style.boxShadow = "2px 2px 6px #ccc"),
h("gmaps_context_menu") || c.body.appendChild(d);
var f = h("gmaps_context_menu");
google.maps.event.addDomListener(
f,
"mouseout",
function (a) {
(a.relatedTarget && this.contains(a.relatedTarget)) ||
window.setTimeout(function () {
f.style.display = "none";
}, 400);
},
!1
);
}),
(this.hideContextMenu = function () {
var a = h("gmaps_context_menu");
a && (a.style.display = "none");
});
function E(a, c) {
google.maps.event.addListener(a, c, function (a) {
null == a && (a = this),
b[c].apply(this, [a]),
j.hideContextMenu();
});
}
google.maps.event.addListener(
this.map,
"zoom_changed",
this.hideContextMenu
);
for (var F = 0; F < k.length; F++) {
(G = k[F]) in b && E(this.map, G);
}
for (F = 0; F < l.length; F++) {
var G;
(G = l[F]) in b && E(this.map, G);
}
google.maps.event.addListener(this.map, "rightclick", function (a) {
b.rightclick && b.rightclick.apply(this, [a]),
null != window.context_menu[j.el.id].map &&
j.buildContextMenu("map", a);
}),
(this.refresh = function () {
google.maps.event.trigger(this.map, "resize");
}),
(this.fitZoom = function () {
var a,
b = [],
c = this.markers.length;
for (a = 0; a < c; a++)
"boolean" == typeof this.markers[a].visible &&
this.markers[a].visible &&
b.push(this.markers[a].getPosition());
this.fitLatLngBounds(b);
}),
(this.fitLatLngBounds = function (a) {
var b,
c = a.length,
d = new google.maps.LatLngBounds();
for (b = 0; b < c; b++) d.extend(a[b]);
this.map.fitBounds(d);
}),
(this.setCenter = function (a, b, c) {
this.map.panTo(new google.maps.LatLng(a, b)), c && c();
}),
(this.getElement = function () {
return this.el;
}),
(this.zoomIn = function (a) {
(a = a || 1),
(this.zoom = this.map.getZoom() + a),
this.map.setZoom(this.zoom);
}),
(this.zoomOut = function (a) {
(a = a || 1),
(this.zoom = this.map.getZoom() - a),
this.map.setZoom(this.zoom);
});
var H,
I = [];
for (H in this.map)
"function" != typeof this.map[H] || this[H] || I.push(H);
for (e = 0; e < I.length; e++)
!(function (a, b, c) {
a[c] = function () {
return b[c].apply(b, arguments);
};
})(this, this.map, I[e]);
};
return d;
})();
return (
(j.prototype.createControl = function (a) {
var b = document.createElement("div");
for (var c in ((b.style.cursor = "pointer"),
!0 !== a.disableDefaultStyles &&
((b.style.fontFamily = "Roboto, Arial, sans-serif"),
(b.style.fontSize = "11px"),
(b.style.boxShadow = "rgba(0, 0, 0, 0.298039) 0px 1px 4px -1px")),
a.style))
b.style[c] = a.style[c];
for (var d in (a.id && (b.id = a.id),
a.title && (b.title = a.title),
a.classes && (b.className = a.classes),
a.content &&
("string" == typeof a.content
? (b.innerHTML = a.content)
: a.content instanceof HTMLElement && b.appendChild(a.content)),
a.position &&
(b.position = google.maps.ControlPosition[a.position.toUpperCase()]),
a.events))
!(function (b, c) {
google.maps.event.addDomListener(b, c, function () {
a.events[c].apply(this, [this]);
});
})(b, d);
return (b.index = 1), b;
}),
(j.prototype.addControl = function (a) {
var b = this.createControl(a);
return this.controls.push(b), this.map.controls[b.position].push(b), b;
}),
(j.prototype.removeControl = function (a) {
var b,
c = null;
for (b = 0; b < this.controls.length; b++)
this.controls[b] == a &&
((c = this.controls[b].position), this.controls.splice(b, 1));
if (c)
for (b = 0; b < this.map.controls.length; b++) {
var d = this.map.controls[a.position];
if (d.getAt(b) == a) {
d.removeAt(b);
break;
}
}
return a;
}),
(j.prototype.createMarker = function (b) {
if (null == b.lat && null == b.lng && null == b.position)
throw "No latitude or longitude defined.";
var c = this,
d = b.details,
e = b.fences,
f = b.outside,
g = { position: new google.maps.LatLng(b.lat, b.lng), map: null },
h = a(g, b);
delete h.lat, delete h.lng, delete h.fences, delete h.outside;
var i = new google.maps.Marker(h);
if (((i.fences = e), b.infoWindow)) {
i.infoWindow = new google.maps.InfoWindow(b.infoWindow);
for (
var j = [
"closeclick",
"content_changed",
"domready",
"position_changed",
"zindex_changed",
],
k = 0;
k < j.length;
k++
)
!(function (a, c) {
b.infoWindow[c] &&
google.maps.event.addListener(a, c, function (a) {
b.infoWindow[c].apply(this, [a]);
});
})(i.infoWindow, j[k]);
}
var l = [
"animation_changed",
"clickable_changed",
"cursor_changed",
"draggable_changed",
"flat_changed",
"icon_changed",
"position_changed",
"shadow_changed",
"shape_changed",
"title_changed",
"visible_changed",
"zindex_changed",
],
m = [
"dblclick",
"drag",
"dragend",
"dragstart",
"mousedown",
"mouseout",
"mouseover",
"mouseup",
];
for (k = 0; k < l.length; k++)
!(function (a, c) {
b[c] &&
google.maps.event.addListener(a, c, function () {
b[c].apply(this, [this]);
});
})(i, l[k]);
for (k = 0; k < m.length; k++)
!(function (a, c, d) {
b[d] &&
google.maps.event.addListener(c, d, function (c) {
c.pixel ||
(c.pixel = a.getProjection().fromLatLngToPoint(c.latLng)),
b[d].apply(this, [c]);
});
})(this.map, i, m[k]);
return (
google.maps.event.addListener(i, "click", function () {
(this.details = d),
b.click && b.click.apply(this, [this]),
i.infoWindow &&
(c.hideInfoWindows(), i.infoWindow.open(c.map, i));
}),
google.maps.event.addListener(i, "rightclick", function (a) {
(a.marker = this),
b.rightclick && b.rightclick.apply(this, [a]),
null != window.context_menu[c.el.id].marker &&
c.buildContextMenu("marker", a);
}),
i.fences &&
google.maps.event.addListener(i, "dragend", function () {
c.checkMarkerGeofence(i, function (a, b) {
f(a, b);
});
}),
i
);
}),
(j.prototype.addMarker = function (a) {
var b;
if (a.hasOwnProperty("gm_accessors_")) b = a;
else {
if (
!(
(a.hasOwnProperty("lat") && a.hasOwnProperty("lng")) ||
a.position
)
)
throw "No latitude or longitude defined.";
b = this.createMarker(a);
}
return (
b.setMap(this.map),
this.markerClusterer && this.markerClusterer.addMarker(b),
this.markers.push(b),
j.fire("marker_added", b, this),
b
);
}),
(j.prototype.addMarkers = function (a) {
for (var b, c = 0; (b = a[c]); c++) this.addMarker(b);
return this.markers;
}),
(j.prototype.hideInfoWindows = function () {
for (var a, b = 0; (a = this.markers[b]); b++)
a.infoWindow && a.infoWindow.close();
}),
(j.prototype.removeMarker = function (a) {
for (var b = 0; b < this.markers.length; b++)
if (this.markers[b] === a) {
this.markers[b].setMap(null),
this.markers.splice(b, 1),
this.markerClusterer && this.markerClusterer.removeMarker(a),
j.fire("marker_removed", a, this);
break;
}
return a;
}),
(j.prototype.removeMarkers = function (a) {
var b = [];
if (void 0 === a) {
for (var c = 0; c < this.markers.length; c++) {
(d = this.markers[c]).setMap(null),
j.fire("marker_removed", d, this);
}
this.markerClusterer &&
this.markerClusterer.clearMarkers &&
this.markerClusterer.clearMarkers(),
(this.markers = b);
} else {
for (c = 0; c < a.length; c++) {
var e = this.markers.indexOf(a[c]);
if (-1 < e)
(d = this.markers[e]).setMap(null),
this.markerClusterer && this.markerClusterer.removeMarker(d),
j.fire("marker_removed", d, this);
}
for (c = 0; c < this.markers.length; c++) {
var d;
null != (d = this.markers[c]).getMap() && b.push(d);
}
this.markers = b;
}
}),
(j.prototype.drawOverlay = function (a) {
var b = new google.maps.OverlayView(),
c = !0;
return (
b.setMap(this.map),
null != a.auto_show && (c = a.auto_show),
(b.onAdd = function () {
var c = document.createElement("div");
(c.style.borderStyle = "none"),
(c.style.borderWidth = "0px"),
(c.style.position = "absolute"),
(c.style.zIndex = 100),
(c.innerHTML = a.content),
(b.el = c),
a.layer || (a.layer = "overlayLayer");
var d = this.getPanes(),
f = ["contextmenu", "DOMMouseScroll", "dblclick", "mousedown"];
d[a.layer].appendChild(c);
for (var g = 0; g < f.length; g++)
!(function (a, b) {
google.maps.event.addDomListener(a, b, function (a) {
-1 != navigator.userAgent.toLowerCase().indexOf("msie") &&
document.all
? ((a.cancelBubble = !0), (a.returnValue = !1))
: a.stopPropagation();
});
})(c, f[g]);
a.click &&
(d.overlayMouseTarget.appendChild(b.el),
google.maps.event.addDomListener(b.el, "click", function () {
a.click.apply(b, [b]);
})),
google.maps.event.trigger(this, "ready");
}),
(b.draw = function () {
var e = this.getProjection().fromLatLngToDivPixel(
new google.maps.LatLng(a.lat, a.lng)
);
(a.horizontalOffset = a.horizontalOffset || 0),
(a.verticalOffset = a.verticalOffset || 0);
var f = b.el,
g = f.children[0],
h = g.clientHeight,
i = g.clientWidth;
switch (a.verticalAlign) {
case "top":
f.style.top = e.y - h + a.verticalOffset + "px";
break;
default:
case "middle":
f.style.top = e.y - h / 2 + a.verticalOffset + "px";
break;
case "bottom":
f.style.top = e.y + a.verticalOffset + "px";
}
switch (a.horizontalAlign) {
case "left":
f.style.left = e.x - i + a.horizontalOffset + "px";
break;
default:
case "center":
f.style.left = e.x - i / 2 + a.horizontalOffset + "px";
break;
case "right":
f.style.left = e.x + a.horizontalOffset + "px";
}
(f.style.display = c ? "block" : "none"),
c || a.show.apply(this, [f]);
}),
(b.onRemove = function () {
var c = b.el;
a.remove
? a.remove.apply(this, [c])
: (b.el.parentNode.removeChild(b.el), (b.el = null));
}),
this.overlays.push(b),
b
);
}),
(j.prototype.removeOverlay = function (a) {
for (var b = 0; b < this.overlays.length; b++)
if (this.overlays[b] === a) {
this.overlays[b].setMap(null), this.overlays.splice(b, 1);
break;
}
}),
(j.prototype.removeOverlays = function () {
for (var a, b = 0; (a = this.overlays[b]); b++) a.setMap(null);
this.overlays = [];
}),
(j.prototype.drawPolyline = function (a) {
var b = [],
c = a.path;
if (c.length)
if (void 0 === c[0][0]) b = c;
else
for (var d, e = 0; (d = c[e]); e++)
b.push(new google.maps.LatLng(d[0], d[1]));
var f = {
map: this.map,
path: b,
strokeColor: a.strokeColor,
strokeOpacity: a.strokeOpacity,
strokeWeight: a.strokeWeight,
geodesic: a.geodesic,
clickable: !0,
editable: !1,
visible: !0,
};
a.hasOwnProperty("clickable") && (f.clickable = a.clickable),
a.hasOwnProperty("editable") && (f.editable = a.editable),
a.hasOwnProperty("icons") && (f.icons = a.icons),
a.hasOwnProperty("zIndex") && (f.zIndex = a.zIndex);
for (
var g = new google.maps.Polyline(f),
h = [
"click",
"dblclick",
"mousedown",
"mousemove",
"mouseout",
"mouseover",
"mouseup",
"rightclick",
],
i = 0;
i < h.length;
i++
)
!(function (b, c) {
a[c] &&
google.maps.event.addListener(b, c, function (b) {
a[c].apply(this, [b]);
});
})(g, h[i]);
return this.polylines.push(g), j.fire("polyline_added", g, this), g;
}),
(j.prototype.removePolyline = function (a) {
for (var b = 0; b < this.polylines.length; b++)
if (this.polylines[b] === a) {
this.polylines[b].setMap(null),
this.polylines.splice(b, 1),
j.fire("polyline_removed", a, this);
break;
}
}),
(j.prototype.removePolylines = function () {
for (var a, b = 0; (a = this.polylines[b]); b++) a.setMap(null);
this.polylines = [];
}),
(j.prototype.drawCircle = function (b) {
delete (b = a(
{ map: this.map, center: new google.maps.LatLng(b.lat, b.lng) },
b
)).lat,
delete b.lng;
for (
var c = new google.maps.Circle(b),
d = [
"click",
"dblclick",
"mousedown",
"mousemove",
"mouseout",
"mouseover",
"mouseup",
"rightclick",
],
e = 0;
e < d.length;
e++
)
!(function (a, c) {
b[c] &&
google.maps.event.addListener(a, c, function (a) {
b[c].apply(this, [a]);
});
})(c, d[e]);
return this.polygons.push(c), c;
}),
(j.prototype.drawRectangle = function (b) {
b = a({ map: this.map }, b);
var c = new google.maps.LatLngBounds(
new google.maps.LatLng(b.bounds[0][0], b.bounds[0][1]),
new google.maps.LatLng(b.bounds[1][0], b.bounds[1][1])
);
b.bounds = c;
for (
var d = new google.maps.Rectangle(b),
e = [
"click",
"dblclick",
"mousedown",
"mousemove",
"mouseout",
"mouseover",
"mouseup",
"rightclick",
],
f = 0;
f < e.length;
f++
)
!(function (a, c) {
b[c] &&
google.maps.event.addListener(a, c, function (a) {
b[c].apply(this, [a]);
});
})(d, e[f]);
return this.polygons.push(d), d;
}),
(j.prototype.drawPolygon = function (d) {
var e = !1;
d.hasOwnProperty("useGeoJSON") && (e = d.useGeoJSON),
delete d.useGeoJSON,
(d = a({ map: this.map }, d)),
0 == e && (d.paths = [d.paths.slice(0)]),
0 < d.paths.length &&
0 < d.paths[0].length &&
(d.paths = c(b(d.paths, f, e)));
for (
var g = new google.maps.Polygon(d),
h = [
"click",
"dblclick",
"mousedown",
"mousemove",
"mouseout",
"mouseover",
"mouseup",
"rightclick",
],
i = 0;
i < h.length;
i++
)
!(function (a, b) {
d[b] &&
google.maps.event.addListener(a, b, function (a) {
d[b].apply(this, [a]);
});
})(g, h[i]);
return this.polygons.push(g), j.fire("polygon_added", g, this), g;
}),
(j.prototype.removePolygon = function (a) {
for (var b = 0; b < this.polygons.length; b++)
if (this.polygons[b] === a) {
this.polygons[b].setMap(null),
this.polygons.splice(b, 1),
j.fire("polygon_removed", a, this);
break;
}
}),
(j.prototype.removePolygons = function () {
for (var a, b = 0; (a = this.polygons[b]); b++) a.setMap(null);
this.polygons = [];
}),
(j.prototype.getFromFusionTables = function (a) {
var b = a.events;
delete a.events;
var c = a,
d = new google.maps.FusionTablesLayer(c);
for (var e in b)
!(function (a, c) {
google.maps.event.addListener(a, c, function (a) {
b[c].apply(this, [a]);
});
})(d, e);
return this.layers.push(d), d;
}),
(j.prototype.loadFromFusionTables = function (a) {
var b = this.getFromFusionTables(a);
return b.setMap(this.map), b;
}),
(j.prototype.getFromKML = function (a) {
var b = a.url,
c = a.events;
delete a.url, delete a.events;
var d = a,
e = new google.maps.KmlLayer(b, d);
for (var f in c)
!(function (a, b) {
google.maps.event.addListener(a, b, function (a) {
c[b].apply(this, [a]);
});
})(e, f);
return this.layers.push(e), e;
}),
(j.prototype.loadFromKML = function (a) {
var b = this.getFromKML(a);
return b.setMap(this.map), b;
}),
(j.prototype.addLayer = function (a, b) {
var c;
switch (((b = b || {}), a)) {
case "weather":
this.singleLayers.weather = c =
new google.maps.weather.WeatherLayer();
break;
case "clouds":
this.singleLayers.clouds = c = new google.maps.weather.CloudLayer();
break;
case "traffic":
this.singleLayers.traffic = c = new google.maps.TrafficLayer();
break;
case "transit":
this.singleLayers.transit = c = new google.maps.TransitLayer();
break;
case "bicycling":
this.singleLayers.bicycling = c = new google.maps.BicyclingLayer();
break;
case "panoramio":
(this.singleLayers.panoramio = c =
new google.maps.panoramio.PanoramioLayer()),
c.setTag(b.filter),
delete b.filter,
b.click &&
google.maps.event.addListener(c, "click", function (a) {
b.click(a), delete b.click;
});
break;
case "places":
if (
((this.singleLayers.places = c =
new google.maps.places.PlacesService(this.map)),
b.search || b.nearbySearch || b.radarSearch)
) {
var d = {
bounds: b.bounds || null,
keyword: b.keyword || null,
location: b.location || null,
name: b.name || null,
radius: b.radius || null,
rankBy: b.rankBy || null,
types: b.types || null,
};
b.radarSearch && c.radarSearch(d, b.radarSearch),
b.search && c.search(d, b.search),
b.nearbySearch && c.nearbySearch(d, b.nearbySearch);
}
if (b.textSearch) {
var e = {
bounds: b.bounds || null,
location: b.location || null,
query: b.query || null,
radius: b.radius || null,
};
c.textSearch(e, b.textSearch);
}
}
if (void 0 !== c)
return (
"function" == typeof c.setOptions && c.setOptions(b),
"function" == typeof c.setMap && c.setMap(this.map),
c
);
}),
(j.prototype.removeLayer = function (a) {
if ("string" == typeof a && void 0 !== this.singleLayers[a])
this.singleLayers[a].setMap(null), delete this.singleLayers[a];
else
for (var b = 0; b < this.layers.length; b++)
if (this.layers[b] === a) {
this.layers[b].setMap(null), this.layers.splice(b, 1);
break;
}
}),
(j.prototype.getRoutes = function (b) {
switch (b.travelMode) {
case "bicycling":
k = google.maps.TravelMode.BICYCLING;
break;
case "transit":
k = google.maps.TravelMode.TRANSIT;
break;
case "driving":
k = google.maps.TravelMode.DRIVING;
break;
default:
k = google.maps.TravelMode.WALKING;
}
l =
"imperial" === b.unitSystem
? google.maps.UnitSystem.IMPERIAL
: google.maps.UnitSystem.METRIC;
var d = a(
{
avoidHighways: !1,
avoidTolls: !1,
optimizeWaypoints: !1,
waypoints: [],
},
b
);
(d.origin = /string/.test(typeof b.origin)
? b.origin
: new google.maps.LatLng(b.origin[0], b.origin[1])),
(d.destination = /string/.test(typeof b.destination)
? b.destination
: new google.maps.LatLng(b.destination[0], b.destination[1])),
(d.travelMode = k),
(d.unitSystem = l),
delete d.callback,
delete d.error;
var e = [];
new google.maps.DirectionsService().route(d, function (a, c) {
if (c === google.maps.DirectionsStatus.OK) {
for (var d in a.routes)
a.routes.hasOwnProperty(d) && e.push(a.routes[d]);
b.callback && b.callback(e, a, c);
} else b.error && b.error(a, c);
});
}),
(j.prototype.removeRoutes = function () {
this.routes.length = 0;
}),
(j.prototype.getElevations = function (d) {
0 <
(d = a({ locations: [], path: !1, samples: 256 }, d)).locations
.length &&
0 < d.locations[0].length &&
(d.locations = c(b([d.locations], f, !1)));
var e = d.callback;
delete d.callback;
var g = new google.maps.ElevationService();
if (d.path) {
var h = { path: d.locations, samples: d.samples };
g.getElevationAlongPath(h, function (a, b) {
e && "function" == typeof e && e(a, b);
});
} else
delete d.path,
delete d.samples,
g.getElevationForLocations(d, function (a, b) {
e && "function" == typeof e && e(a, b);
});
}),
(j.prototype.cleanRoute = j.prototype.removePolylines),
(j.prototype.renderRoute = function (b, c) {
var d,
e =
"string" == typeof c.panel
? document.getElementById(c.panel.replace("#", ""))
: c.panel;
(c.panel = e),
(c = a({ map: this.map }, c)),
(d = new google.maps.DirectionsRenderer(c)),
this.getRoutes({
origin: b.origin,
destination: b.destination,
travelMode: b.travelMode,
waypoints: b.waypoints,
unitSystem: b.unitSystem,
error: b.error,
avoidHighways: b.avoidHighways,
avoidTolls: b.avoidTolls,
optimizeWaypoints: b.optimizeWaypoints,
callback: function (a, b, c) {
c === google.maps.DirectionsStatus.OK && d.setDirections(b);
},
});
}),
(j.prototype.drawRoute = function (a) {
var b = this;
this.getRoutes({
origin: a.origin,
destination: a.destination,
travelMode: a.travelMode,
waypoints: a.waypoints,
unitSystem: a.unitSystem,
error: a.error,
avoidHighways: a.avoidHighways,
avoidTolls: a.avoidTolls,
optimizeWaypoints: a.optimizeWaypoints,
callback: function (c) {
if (0 < c.length) {
var d = {
path: c[c.length - 1].overview_path,
strokeColor: a.strokeColor,
strokeOpacity: a.strokeOpacity,
strokeWeight: a.strokeWeight,
};
a.hasOwnProperty("icons") && (d.icons = a.icons),
b.drawPolyline(d),
a.callback && a.callback(c[c.length - 1]);
}
},
});
}),
(j.prototype.travelRoute = function (a) {
if (a.origin && a.destination)
this.getRoutes({
origin: a.origin,
destination: a.destination,
travelMode: a.travelMode,
waypoints: a.waypoints,
unitSystem: a.unitSystem,
error: a.error,
callback: function (b) {
if (
(0 < b.length && a.start && a.start(b[b.length - 1]),
0 < b.length && a.step)
) {
var c = b[b.length - 1];
if (0 < c.legs.length)
for (var d, e = c.legs[0].steps, f = 0; (d = e[f]); f++)
(d.step_number = f), a.step(d, c.legs[0].steps.length - 1);
}
0 < b.length && a.end && a.end(b[b.length - 1]);
},
});
else if (a.route && 0 < a.route.legs.length)
for (var b, c = a.route.legs[0].steps, d = 0; (b = c[d]); d++)
(b.step_number = d), a.step(b);
}),
(j.prototype.drawSteppedRoute = function (a) {
var b = this;
if (a.origin && a.destination)
this.getRoutes({
origin: a.origin,
destination: a.destination,
travelMode: a.travelMode,
waypoints: a.waypoints,
error: a.error,
callback: function (c) {
if (
(0 < c.length && a.start && a.start(c[c.length - 1]),
0 < c.length && a.step)
) {
var d = c[c.length - 1];
if (0 < d.legs.length)
for (var e, f = d.legs[0].steps, g = 0; (e = f[g]); g++) {
e.step_number = g;
var h = {
path: e.path,
strokeColor: a.strokeColor,
strokeOpacity: a.strokeOpacity,
strokeWeight: a.strokeWeight,
};
a.hasOwnProperty("icons") && (h.icons = a.icons),
b.drawPolyline(h),
a.step(e, d.legs[0].steps.length - 1);
}
}
0 < c.length && a.end && a.end(c[c.length - 1]);
},
});
else if (a.route && 0 < a.route.legs.length)
for (var c, d = a.route.legs[0].steps, e = 0; (c = d[e]); e++) {
c.step_number = e;
var f = {
path: c.path,
strokeColor: a.strokeColor,
strokeOpacity: a.strokeOpacity,
strokeWeight: a.strokeWeight,
};
a.hasOwnProperty("icons") && (f.icons = a.icons),
b.drawPolyline(f),
a.step(c);
}
}),
(j.Route = function (a) {
(this.origin = a.origin),
(this.destination = a.destination),
(this.waypoints = a.waypoints),
(this.map = a.map),
(this.route = a.route),
(this.step_count = 0),
(this.steps = this.route.legs[0].steps),
(this.steps_length = this.steps.length);
var b = {
path: new google.maps.MVCArray(),
strokeColor: a.strokeColor,
strokeOpacity: a.strokeOpacity,
strokeWeight: a.strokeWeight,
};
a.hasOwnProperty("icons") && (b.icons = a.icons),
(this.polyline = this.map.drawPolyline(b).getPath());
}),
(j.Route.prototype.getRoute = function (a) {
var b = this;
this.map.getRoutes({
origin: this.origin,
destination: this.destination,
travelMode: a.travelMode,
waypoints: this.waypoints || [],
error: a.error,
callback: function () {
(b.route = e[0]), a.callback && a.callback.call(b);
},
});
}),
(j.Route.prototype.back = function () {
if (0 < this.step_count) {
this.step_count--;
var a = this.route.legs[0].steps[this.step_count].path;
for (var b in a) a.hasOwnProperty(b) && this.polyline.pop();
}
}),
(j.Route.prototype.forward = function () {
if (this.step_count < this.steps_length) {
var a = this.route.legs[0].steps[this.step_count].path;
for (var b in a) a.hasOwnProperty(b) && this.polyline.push(a[b]);
this.step_count++;
}
}),
(j.prototype.checkGeofence = function (a, b, c) {
return c.containsLatLng(new google.maps.LatLng(a, b));
}),
(j.prototype.checkMarkerGeofence = function (a, b) {
if (a.fences)
for (var c, d = 0; (c = a.fences[d]); d++) {
var e = a.getPosition();
this.checkGeofence(e.lat(), e.lng(), c) || b(a, c);
}
}),
(j.prototype.toImage = function (a) {
a = a || {};
var b = {};
if (
((b.size = a.size || [this.el.clientWidth, this.el.clientHeight]),
(b.lat = this.getCenter().lat()),
(b.lng = this.getCenter().lng()),
0 < this.markers.length)
) {
b.markers = [];
for (var c = 0; c < this.markers.length; c++)
b.markers.push({
lat: this.markers[c].getPosition().lat(),
lng: this.markers[c].getPosition().lng(),
});
}
if (0 < this.polylines.length) {
var d = this.polylines[0];
(b.polyline = {}),
(b.polyline.path = google.maps.geometry.encoding.encodePath(
d.getPath()
)),
(b.polyline.strokeColor = d.strokeColor),
(b.polyline.strokeOpacity = d.strokeOpacity),
(b.polyline.strokeWeight = d.strokeWeight);
}
return j.staticMapURL(b);
}),
(j.staticMapURL = function (a) {
function b(a, b) {
if ("#" === a[0] && ((a = a.replace("#", "0x")), b)) {
if (((b = parseFloat(b)), 0 === (b = Math.min(1, Math.max(b, 0)))))
return "0x00000000";
1 === (b = (255 * b).toString(16)).length && (b += b),
(a = a.slice(0, 8) + b);
}
return a;
}
var c,
d = [],
e =
("file:" === location.protocol ? "http:" : location.protocol) +
"//maps.googleapis.com/maps/api/staticmap";
a.url && ((e = a.url), delete a.url), (e += "?");
var f = a.markers;
delete a.markers, !f && a.marker && ((f = [a.marker]), delete a.marker);
var g = a.styles;
delete a.styles;
var h = a.polyline;
if ((delete a.polyline, a.center))
d.push("center=" + a.center), delete a.center;
else if (a.address) d.push("center=" + a.address), delete a.address;
else if (a.lat)
d.push(["center=", a.lat, ",", a.lng].join("")),
delete a.lat,
delete a.lng;
else if (a.visible) {
var i = encodeURI(a.visible.join("|"));
d.push("visible=" + i);
}
var j = a.size;
j ? (j.join && (j = j.join("x")), delete a.size) : (j = "630x300"),
d.push("size=" + j),
a.zoom || !1 === a.zoom || (a.zoom = 15);
var k = !a.hasOwnProperty("sensor") || !!a.sensor;
for (var l in (delete a.sensor, d.push("sensor=" + k), a))
a.hasOwnProperty(l) && d.push(l + "=" + a[l]);
if (f)
for (var m, n, o = 0; (c = f[o]); o++) {
for (var l in ((m = []),
c.size && "normal" !== c.size
? (m.push("size:" + c.size), delete c.size)
: c.icon && (m.push("icon:" + encodeURI(c.icon)), delete c.icon),
c.color &&
(m.push("color:" + c.color.replace("#", "0x")), delete c.color),
c.label &&
(m.push("label:" + c.label[0].toUpperCase()), delete c.label),
(n = c.address ? c.address : c.lat + "," + c.lng),
delete c.address,
delete c.lat,
delete c.lng,
c))
c.hasOwnProperty(l) && m.push(l + ":" + c[l]);
m.length || 0 === o
? (m.push(n),
(m = m.join("|")),
d.push("markers=" + encodeURI(m)))
: ((m = d.pop() + encodeURI("|" + n)), d.push(m));
}
if (g)
for (o = 0; o < g.length; o++) {
var p = [];
g[o].featureType &&
p.push("feature:" + g[o].featureType.toLowerCase()),
g[o].elementType &&
p.push("element:" + g[o].elementType.toLowerCase());
for (var q = 0; q < g[o].stylers.length; q++)
for (var r in g[o].stylers[q]) {
var s = g[o].stylers[q][r];
("hue" != r && "color" != r) || (s = "0x" + s.substring(1)),
p.push(r + ":" + s);
}
var t = p.join("|");
"" != t && d.push("style=" + t);
}
if (h) {
if (
((c = h),
(h = []),
c.strokeWeight && h.push("weight:" + parseInt(c.strokeWeight, 10)),
c.strokeColor)
) {
var u = b(c.strokeColor, c.strokeOpacity);
h.push("color:" + u);
}
if (c.fillColor) {
var v = b(c.fillColor, c.fillOpacity);
h.push("fillcolor:" + v);
}
var w = c.path;
if (w.join) {
var x;
for (q = 0; (x = w[q]); q++) h.push(x.join(","));
} else h.push("enc:" + w);
(h = h.join("|")), d.push("path=" + encodeURI(h));
}
var y = window.devicePixelRatio || 1;
return d.push("scale=" + y), e + (d = d.join("&"));
}),
(j.prototype.addMapType = function (a, b) {
if (
!b.hasOwnProperty("getTileUrl") ||
"function" != typeof b.getTileUrl
)
throw "'getTileUrl' function required.";
b.tileSize = b.tileSize || new google.maps.Size(256, 256);
var c = new google.maps.ImageMapType(b);
this.map.mapTypes.set(a, c);
}),
(j.prototype.addOverlayMapType = function (a) {
if (!a.hasOwnProperty("getTile") || "function" != typeof a.getTile)
throw "'getTile' function required.";
var b = a.index;
delete a.index, this.map.overlayMapTypes.insertAt(b, a);
}),
(j.prototype.removeOverlayMapType = function (a) {
this.map.overlayMapTypes.removeAt(a);
}),
(j.prototype.addStyle = function (a) {
var b = new google.maps.StyledMapType(a.styles, {
name: a.styledMapName,
});
this.map.mapTypes.set(a.mapTypeId, b);
}),
(j.prototype.setStyle = function (a) {
this.map.setMapTypeId(a);
}),
(j.prototype.createPanorama = function (a) {
return (
(a.hasOwnProperty("lat") && a.hasOwnProperty("lng")) ||
((a.lat = this.getCenter().lat()),
(a.lng = this.getCenter().lng())),
(this.panorama = j.createPanorama(a)),
this.map.setStreetView(this.panorama),
this.panorama
);
}),
(j.createPanorama = function (b) {
var c = h(b.el, b.context);
(b.position = new google.maps.LatLng(b.lat, b.lng)),
delete b.el,
delete b.context,
delete b.lat,
delete b.lng;
for (
var d = [
"closeclick",
"links_changed",
"pano_changed",
"position_changed",
"pov_changed",
"resize",
"visible_changed",
],
e = a({ visible: !0 }, b),
f = 0;
f < d.length;
f++
)
delete e[d[f]];
var g = new google.maps.StreetViewPanorama(c, e);
for (f = 0; f < d.length; f++)
!(function (a, c) {
b[c] &&
google.maps.event.addListener(a, c, function () {
b[c].apply(this);
});
})(g, d[f]);
return g;
}),
(j.prototype.on = function (a, b) {
return j.on(a, this, b);
}),
(j.prototype.off = function (a) {
j.off(a, this);
}),
(j.prototype.once = function (a, b) {
return j.once(a, this, b);
}),
(j.custom_events = [
"marker_added",
"marker_removed",
"polyline_added",
"polyline_removed",
"polygon_added",
"polygon_removed",
"geolocated",
"geolocation_failed",
]),
(j.on = function (a, b, c) {
if (-1 == j.custom_events.indexOf(a))
return (
b instanceof j && (b = b.map),
google.maps.event.addListener(b, a, c)
);
var d = { handler: c, eventName: a };
return (
(b.registered_events[a] = b.registered_events[a] || []),
b.registered_events[a].push(d),
d
);
}),
(j.off = function (a, b) {
-1 == j.custom_events.indexOf(a)
? (b instanceof j && (b = b.map),
google.maps.event.clearListeners(b, a))
: (b.registered_events[a] = []);
}),
(j.once = function (a, b, c) {
if (-1 == j.custom_events.indexOf(a))
return (
b instanceof j && (b = b.map),
google.maps.event.addListenerOnce(b, a, c)
);
}),
(j.fire = function (a, b, c) {
if (-1 == j.custom_events.indexOf(a))
google.maps.event.trigger(
b,
a,
Array.prototype.slice.apply(arguments).slice(2)
);
else if (a in c.registered_events)
for (var d = c.registered_events[a], e = 0; e < d.length; e++)
!(function (a, b, c) {
a.apply(b, [c]);
})(d[e].handler, c, b);
}),
(j.geolocate = function (a) {
var b = a.always || a.complete;
navigator.geolocation
? navigator.geolocation.getCurrentPosition(
function (c) {
a.success(c), b && b();
},
function (c) {
a.error(c), b && b();
},
a.options
)
: (a.not_supported(), b && b());
}),
(j.geocode = function (a) {
this.geocoder = new google.maps.Geocoder();
var b = a.callback;
a.hasOwnProperty("lat") &&
a.hasOwnProperty("lng") &&
(a.latLng = new google.maps.LatLng(a.lat, a.lng)),
delete a.lat,
delete a.lng,
delete a.callback,
this.geocoder.geocode(a, function (a, c) {
b(a, c);
});
}),
"object" == typeof window.google &&
window.google.maps &&
(google.maps.Polygon.prototype.getBounds ||
(google.maps.Polygon.prototype.getBounds = function (a) {
for (
var b,
c = new google.maps.LatLngBounds(),
d = this.getPaths(),
e = 0;
e < d.getLength();
e++
) {
b = d.getAt(e);
for (var f = 0; f < b.getLength(); f++) c.extend(b.getAt(f));
}
return c;
}),
google.maps.Polygon.prototype.containsLatLng ||
(google.maps.Polygon.prototype.containsLatLng = function (a) {
var b = this.getBounds();
if (null !== b && !b.contains(a)) return !1;
for (var c = !1, d = this.getPaths().getLength(), e = 0; e < d; e++)
for (
var f = this.getPaths().getAt(e),
g = f.getLength(),
h = g - 1,
i = 0;
i < g;
i++
) {
var j = f.getAt(i),
k = f.getAt(h);
((j.lng() < a.lng() && k.lng() >= a.lng()) ||
(k.lng() < a.lng() && j.lng() >= a.lng())) &&
j.lat() +
((a.lng() - j.lng()) / (k.lng() - j.lng())) *
(k.lat() - j.lat()) <
a.lat() &&
(c = !c),
(h = i);
}
return c;
}),
google.maps.Circle.prototype.containsLatLng ||
(google.maps.Circle.prototype.containsLatLng = function (a) {
return (
!google.maps.geometry ||
google.maps.geometry.spherical.computeDistanceBetween(
this.getCenter(),
a
) <= this.getRadius()
);
}),
(google.maps.Rectangle.prototype.containsLatLng = function (a) {
return this.getBounds().contains(a);
}),
(google.maps.LatLngBounds.prototype.containsLatLng = function (a) {
return this.contains(a);
}),
(google.maps.Marker.prototype.setFences = function (a) {
this.fences = a;
}),
(google.maps.Marker.prototype.addFence = function (a) {
this.fences.push(a);
}),
(google.maps.Marker.prototype.getId = function () {
return this.__gm_id;
})),
Array.prototype.indexOf ||
(Array.prototype.indexOf = function (a) {
if (null == this) throw new TypeError();
var b = Object(this),
c = b.length >>> 0;
if (0 == c) return -1;
var d = 0;
if (
(1 < arguments.length &&
((d = Number(arguments[1])) != d
? (d = 0)
: 0 != d &&
d != 1 / 0 &&
d != -1 / 0 &&
(d = (0 < d || -1) * Math.floor(Math.abs(d)))),
c <= d)
)
return -1;
for (var e = 0 <= d ? d : Math.max(c - Math.abs(d), 0); e < c; e++)
if (e in b && b[e] === a) return e;
return -1;
}),
j
);
});
var _typeof =
"function" == typeof Symbol && "symbol" == typeof Symbol.iterator
? function (obj) {
return typeof obj;
}
: function (obj) {
return obj &&
"function" == typeof Symbol &&
obj.constructor === Symbol &&
obj !== Symbol.prototype
? "symbol"
: typeof obj;
};
!(function (factory) {
"function" == typeof define && define.amd
? define(["jquery"], factory)
: "object" ===
("undefined" == typeof module ? "undefined" : _typeof(module)) &&
module.exports
? (module.exports = function (root, jQuery) {
return (
void 0 === jQuery &&
(jQuery =
"undefined" != typeof window
? require("jquery")
: require("jquery")(root)),
factory(jQuery),
jQuery
);
})
: factory(jQuery);
})(function ($) {
return (
($.fn.tilt = function (options) {
var requestTick = function () {
this.ticking ||
(requestAnimationFrame(updateTransforms.bind(this)),
(this.ticking = !0));
},
setTransition = function () {
var _this2 = this;
void 0 !== this.timeout && clearTimeout(this.timeout),
$(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 () {
$(_this2).css({ transition: "" }),
_this2.settings.glare &&
_this2.glareElement.css({ transition: "" });
}, this.settings.speed));
},
mouseEnter = function () {
(this.ticking = !1),
$(this).css({ "will-change": "transform" }),
setTransition.call(this),
$(this).trigger("tilt.mouseEnter");
},
getMousePositions = function (event) {
return (
void 0 === event &&
(event = {
pageX: $(this).offset().left + $(this).outerWidth() / 2,
pageY: $(this).offset().top + $(this).outerHeight() / 2,
}),
{ x: event.pageX, y: event.pageY }
);
},
mouseMove = function (event) {
(this.mousePositions = getMousePositions(event)),
requestTick.call(this);
},
mouseLeave = function () {
setTransition.call(this),
(this.reset = !0),
requestTick.call(this),
$(this).trigger("tilt.mouseLeave");
},
getValues = function () {
var reverse = this.settings.reverse ? 1 : -1,
width = $(this).outerWidth(),
height = $(this).outerHeight(),
left = $(this).offset().left,
top = $(this).offset().top,
percentageX = (this.mousePositions.x - left) / width,
percentageY = (this.mousePositions.y - top) / height;
return {
tiltX:
reverse *
(
this.settings.maxTilt / 2 -
percentageX * this.settings.maxTilt
).toFixed(2),
tiltY:
reverse *
(
percentageY * this.settings.maxTilt -
this.settings.maxTilt / 2
).toFixed(2),
percentageX: 100 * percentageX,
percentageY: 100 * percentageY,
angle:
Math.atan2(
this.mousePositions.x - (left + width / 2),
-(this.mousePositions.y - (top + height / 2))
) *
(180 / Math.PI),
};
},
updateTransforms = function () {
if (((this.transforms = getValues.call(this)), this.reset))
return (
(this.reset = !1),
$(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"))
)
);
$(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
)),
$(this).trigger("change", [this.transforms]),
(this.ticking = !1);
},
updateGlareSize = function () {
this.glareElement.css({
width: "" + 2 * $(this).outerWidth(),
height: "" + 2 * $(this).outerWidth(),
});
};
return (
($.fn.tilt.destroy = function () {
$(this).each(function () {
$(this).find(".js-tilt-glare").remove(),
$(this).css({ "will-change": "", transform: "" }),
$(this).off("mousemove mouseenter mouseleave");
});
}),
($.fn.tilt.getValues = function () {
var results = [];
return (
$(this).each(function () {
(this.mousePositions = getMousePositions.call(this)),
results.push(getValues.call(this));
}),
results
);
}),
($.fn.tilt.reset = function () {
$(this).each(function () {
var _this3 = this;
(this.mousePositions = getMousePositions.call(this)),
(this.settings = $(this).data("settings")),
mouseLeave.call(this),
setTimeout(function () {
_this3.reset = !1;
}, this.settings.transition);
});
}),
this.each(function () {
var _this4 = this;
(this.settings = $.extend(
{
maxTilt: $(this).is("[data-tilt-max]")
? $(this).data("tilt-max")
: 20,
perspective: $(this).is("[data-tilt-perspective]")
? $(this).data("tilt-perspective")
: 300,
easing: $(this).is("[data-tilt-easing]")
? $(this).data("tilt-easing")
: "cubic-bezier(.03,.98,.52,.99)",
scale: $(this).is("[data-tilt-scale]")
? $(this).data("tilt-scale")
: "1",
speed: $(this).is("[data-tilt-speed]")
? $(this).data("tilt-speed")
: "400",
transition:
!$(this).is("[data-tilt-transition]") ||
$(this).data("tilt-transition"),
disableAxis: $(this).is("[data-tilt-disable-axis]")
? $(this).data("tilt-disable-axis")
: null,
axis: $(this).is("[data-tilt-axis]")
? $(this).data("tilt-axis")
: null,
reset:
!$(this).is("[data-tilt-reset]") || $(this).data("tilt-reset"),
glare:
!!$(this).is("[data-tilt-glare]") && $(this).data("tilt-glare"),
maxGlare: $(this).is("[data-tilt-maxglare]")
? $(this).data("tilt-maxglare")
: 1,
reverse:
!!$(this).is("[data-tilt-reverse]") &&
$(this).data("tilt-reverse"),
},
options
)),
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 () {
$(_this4).data("settings", _this4.settings),
_this4.settings.glare &&
function () {
var glarePrerender = this.settings.glarePrerender;
if (
(glarePrerender ||
$(this).append(
''
),
(this.glareElementWrapper =
$(this).find(".js-tilt-glare")),
(this.glareElement = $(this).find(
".js-tilt-glare-inner"
)),
!glarePrerender)
) {
this.glareElementWrapper
.css({
position: "absolute",
top: "0",
left: "0",
width: "100%",
height: "100%",
})
.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 * $(this).outerWidth(),
height: "" + 2 * $(this).outerWidth(),
transform: "rotate(180deg) translate(-50%, -50%)",
"transform-origin": "0% 0%",
opacity: "0",
});
}
}.call(_this4),
function () {
$(this).on("mousemove", mouseMove),
$(this).on("mouseenter", mouseEnter),
this.settings.reset && $(this).on("mouseleave", mouseLeave),
this.settings.glare &&
$(window).on("resize", updateGlareSize.bind(this));
}.call(_this4);
}),
this.init();
})
);
}),
$("[data-tilt]").tilt(),
!0
);
}),
(function (factory) {
"use strict";
"function" == typeof define && define.amd
? define(["jquery"], factory)
: "undefined" != typeof module && module.exports
? (module.exports = factory(require("jquery")))
: factory(jQuery);
})(function ($) {
function _parse(value) {
return parseFloat(value) || 0;
}
function _rows(elements) {
var $elements = $(elements),
lastTop = null,
rows = [];
return (
$elements.each(function () {
var $that = $(this),
top = $that.offset().top - _parse($that.css("margin-top")),
lastRow = 0 < rows.length ? rows[rows.length - 1] : null;
null === lastRow
? rows.push($that)
: Math.floor(Math.abs(lastTop - top)) <= 1
? (rows[rows.length - 1] = lastRow.add($that))
: rows.push($that),
(lastTop = top);
}),
rows
);
}
function _parseOptions(options) {
var opts = { byRow: !0, property: "height", target: null, remove: !1 };
return "object" == typeof options
? $.extend(opts, options)
: ("boolean" == typeof options
? (opts.byRow = options)
: "remove" === options && (opts.remove = !0),
opts);
}
var _previousResizeWidth = -1,
_updateTimeout = -1,
matchHeight = ($.fn.matchHeight = function (options) {
var opts = _parseOptions(options);
if (opts.remove) {
var that = this;
return (
this.css(opts.property, ""),
$.each(matchHeight._groups, function (key, group) {
group.elements = group.elements.not(that);
}),
this
);
}
return (
(this.length <= 1 && !opts.target) ||
(matchHeight._groups.push({ elements: this, options: opts }),
matchHeight._apply(this, opts)),
this
);
});
(matchHeight.version = "0.7.2"),
(matchHeight._groups = []),
(matchHeight._throttle = 80),
(matchHeight._maintainScroll = !1),
(matchHeight._beforeUpdate = null),
(matchHeight._afterUpdate = null),
(matchHeight._rows = _rows),
(matchHeight._parse = _parse),
(matchHeight._parseOptions = _parseOptions),
(matchHeight._apply = function (elements, options) {
var opts = _parseOptions(options),
$elements = $(elements),
rows = [$elements],
scrollTop = $(window).scrollTop(),
htmlHeight = $("html").outerHeight(!0),
$hiddenParents = $elements.parents().filter(":hidden");
return (
$hiddenParents.each(function () {
var $that = $(this);
$that.data("style-cache", $that.attr("style"));
}),
$hiddenParents.css("display", "block"),
opts.byRow &&
!opts.target &&
($elements.each(function () {
var $that = $(this),
display = $that.css("display");
"inline-block" !== display &&
"flex" !== display &&
"inline-flex" !== display &&
(display = "block"),
$that.data("style-cache", $that.attr("style")),
$that.css({
display: display,
"padding-top": "0",
"padding-bottom": "0",
"margin-top": "0",
"margin-bottom": "0",
"border-top-width": "0",
"border-bottom-width": "0",
height: "100px",
overflow: "hidden",
});
}),
(rows = _rows($elements)),
$elements.each(function () {
var $that = $(this);
$that.attr("style", $that.data("style-cache") || "");
})),
$.each(rows, function (key, row) {
var $row = $(row),
targetHeight = 0;
if (opts.target) targetHeight = opts.target.outerHeight(!1);
else {
if (opts.byRow && $row.length <= 1)
return void $row.css(opts.property, "");
$row.each(function () {
var $that = $(this),
style = $that.attr("style"),
display = $that.css("display");
"inline-block" !== display &&
"flex" !== display &&
"inline-flex" !== display &&
(display = "block");
var css = { display: display };
(css[opts.property] = ""),
$that.css(css),
$that.outerHeight(!1) > targetHeight &&
(targetHeight = $that.outerHeight(!1)),
style ? $that.attr("style", style) : $that.css("display", "");
});
}
$row.each(function () {
var $that = $(this),
verticalPadding = 0;
(opts.target && $that.is(opts.target)) ||
("border-box" !== $that.css("box-sizing") &&
((verticalPadding +=
_parse($that.css("border-top-width")) +
_parse($that.css("border-bottom-width"))),
(verticalPadding +=
_parse($that.css("padding-top")) +
_parse($that.css("padding-bottom")))),
$that.css(
opts.property,
targetHeight - verticalPadding + "px"
));
});
}),
$hiddenParents.each(function () {
var $that = $(this);
$that.attr("style", $that.data("style-cache") || null);
}),
matchHeight._maintainScroll &&
$(window).scrollTop(
(scrollTop / htmlHeight) * $("html").outerHeight(!0)
),
this
);
}),
(matchHeight._applyDataApi = function () {
var groups = {};
$("[data-match-height], [data-mh]").each(function () {
var $this = $(this),
groupId = $this.attr("data-mh") || $this.attr("data-match-height");
groups[groupId] =
groupId in groups ? groups[groupId].add($this) : $this;
}),
$.each(groups, function () {
this.matchHeight(!0);
});
});
function _update(event) {
matchHeight._beforeUpdate &&
matchHeight._beforeUpdate(event, matchHeight._groups),
$.each(matchHeight._groups, function () {
matchHeight._apply(this.elements, this.options);
}),
matchHeight._afterUpdate &&
matchHeight._afterUpdate(event, matchHeight._groups);
}
(matchHeight._update = function (throttle, event) {
if (event && "resize" === event.type) {
var windowWidth = $(window).width();
if (windowWidth === _previousResizeWidth) return;
_previousResizeWidth = windowWidth;
}
throttle
? -1 === _updateTimeout &&
(_updateTimeout = setTimeout(function () {
_update(event), (_updateTimeout = -1);
}, matchHeight._throttle))
: _update(event);
}),
$(matchHeight._applyDataApi);
var on = $.fn.on ? "on" : "bind";
$(window)[on]("load", function (event) {
matchHeight._update(!1, event);
}),
$(window)[on]("resize orientationchange", function (event) {
matchHeight._update(!0, event);
});
}),
(function (window, factory) {
"function" == typeof define && define.amd
? define("jquery-bridget/jquery-bridget", ["jquery"], function (jQuery) {
return factory(window, jQuery);
})
: "object" == typeof module && module.exports
? (module.exports = factory(window, require("jquery")))
: (window.jQueryBridget = factory(window, window.jQuery));
})(window, function (window, jQuery) {
"use strict";
var arraySlice = Array.prototype.slice,
console = window.console,
logError =
void 0 === console
? function () {}
: function (message) {
console.error(message);
};
function jQueryBridget(namespace, PluginClass, $) {
($ = $ || jQuery || window.jQuery) &&
(PluginClass.prototype.option ||
(PluginClass.prototype.option = function (opts) {
$.isPlainObject(opts) &&
(this.options = $.extend(!0, this.options, opts));
}),
($.fn[namespace] = function (arg0) {
return "string" == typeof arg0
? (function ($elems, methodName, args) {
var returnValue,
pluginMethodStr =
"$()." + namespace + '("' + methodName + '")';
return (
$elems.each(function (i, elem) {
var instance = $.data(elem, namespace);
if (instance) {
var method = instance[methodName];
if (method && "_" != methodName.charAt(0)) {
var value = method.apply(instance, args);
returnValue =
void 0 === returnValue ? value : returnValue;
} else
logError(pluginMethodStr + " is not a valid method");
} else logError(namespace + " not initialized. Cannot call methods, i.e. " + pluginMethodStr);
}),
void 0 !== returnValue ? returnValue : $elems
);
})(this, arg0, arraySlice.call(arguments, 1))
: ((function ($elems, options) {
$elems.each(function (i, elem) {
var instance = $.data(elem, namespace);
instance
? (instance.option(options), instance._init())
: ((instance = new PluginClass(elem, options)),
$.data(elem, namespace, instance));
});
})(this, arg0),
this);
}),
updateJQuery($));
}
function updateJQuery($) {
!$ || ($ && $.bridget) || ($.bridget = jQueryBridget);
}
return updateJQuery(jQuery || window.jQuery), jQueryBridget;
}),
(function (global, factory) {
"function" == typeof define && define.amd
? define("ev-emitter/ev-emitter", factory)
: "object" == typeof module && module.exports
? (module.exports = factory())
: (global.EvEmitter = factory());
})("undefined" != typeof window ? window : this, function () {
function EvEmitter() {}
var proto = EvEmitter.prototype;
return (
(proto.on = function (eventName, listener) {
if (eventName && listener) {
var events = (this._events = this._events || {}),
listeners = (events[eventName] = events[eventName] || []);
return (
-1 == listeners.indexOf(listener) && listeners.push(listener), this
);
}
}),
(proto.once = function (eventName, listener) {
if (eventName && listener) {
this.on(eventName, listener);
var onceEvents = (this._onceEvents = this._onceEvents || {});
return (
((onceEvents[eventName] = onceEvents[eventName] || {})[listener] =
!0),
this
);
}
}),
(proto.off = function (eventName, listener) {
var listeners = this._events && this._events[eventName];
if (listeners && listeners.length) {
var index = listeners.indexOf(listener);
return -1 != index && listeners.splice(index, 1), this;
}
}),
(proto.emitEvent = function (eventName, args) {
var listeners = this._events && this._events[eventName];
if (listeners && listeners.length) {
(listeners = listeners.slice(0)), (args = args || []);
for (
var onceListeners = this._onceEvents && this._onceEvents[eventName],
i = 0;
i < listeners.length;
i++
) {
var listener = listeners[i];
onceListeners &&
onceListeners[listener] &&
(this.off(eventName, listener), delete onceListeners[listener]),
listener.apply(this, args);
}
return this;
}
}),
(proto.allOff = function () {
delete this._events, delete this._onceEvents;
}),
EvEmitter
);
}),
(function (window, factory) {
"function" == typeof define && define.amd
? define("get-size/get-size", factory)
: "object" == typeof module && module.exports
? (module.exports = factory())
: (window.getSize = factory());
})(window, function () {
"use strict";
function getStyleSize(value) {
var num = parseFloat(value);
return -1 == value.indexOf("%") && !isNaN(num) && num;
}
var logError =
"undefined" == typeof console
? function () {}
: function (message) {
console.error(message);
},
measurements = [
"paddingLeft",
"paddingRight",
"paddingTop",
"paddingBottom",
"marginLeft",
"marginRight",
"marginTop",
"marginBottom",
"borderLeftWidth",
"borderRightWidth",
"borderTopWidth",
"borderBottomWidth",
],
measurementsLength = measurements.length;
function getStyle(elem) {
var style = getComputedStyle(elem);
return (
style ||
logError(
"Style returned " +
style +
". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"
),
style
);
}
var isBoxSizeOuter,
isSetup = !1;
function getSize(elem) {
if (
(!(function () {
if (!isSetup) {
isSetup = !0;
var div = document.createElement("div");
(div.style.width = "200px"),
(div.style.padding = "1px 2px 3px 4px"),
(div.style.borderStyle = "solid"),
(div.style.borderWidth = "1px 2px 3px 4px"),
(div.style.boxSizing = "border-box");
var body = document.body || document.documentElement;
body.appendChild(div);
var style = getStyle(div);
(isBoxSizeOuter = 200 == Math.round(getStyleSize(style.width))),
(getSize.isBoxSizeOuter = isBoxSizeOuter),
body.removeChild(div);
}
})(),
"string" == typeof elem && (elem = document.querySelector(elem)),
elem && "object" == typeof elem && elem.nodeType)
) {
var style = getStyle(elem);
if ("none" == style.display)
return (function () {
for (
var size = {
width: 0,
height: 0,
innerWidth: 0,
innerHeight: 0,
outerWidth: 0,
outerHeight: 0,
},
i = 0;
i < measurementsLength;
i++
) {
size[measurements[i]] = 0;
}
return size;
})();
var size = {};
(size.width = elem.offsetWidth), (size.height = elem.offsetHeight);
for (
var isBorderBox = (size.isBorderBox =
"border-box" == style.boxSizing),
i = 0;
i < measurementsLength;
i++
) {
var measurement = measurements[i],
value = style[measurement],
num = parseFloat(value);
size[measurement] = isNaN(num) ? 0 : num;
}
var paddingWidth = size.paddingLeft + size.paddingRight,
paddingHeight = size.paddingTop + size.paddingBottom,
marginWidth = size.marginLeft + size.marginRight,
marginHeight = size.marginTop + size.marginBottom,
borderWidth = size.borderLeftWidth + size.borderRightWidth,
borderHeight = size.borderTopWidth + size.borderBottomWidth,
isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter,
styleWidth = getStyleSize(style.width);
!1 !== styleWidth &&
(size.width =
styleWidth +
(isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth));
var styleHeight = getStyleSize(style.height);
return (
!1 !== styleHeight &&
(size.height =
styleHeight +
(isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight)),
(size.innerWidth = size.width - (paddingWidth + borderWidth)),
(size.innerHeight = size.height - (paddingHeight + borderHeight)),
(size.outerWidth = size.width + marginWidth),
(size.outerHeight = size.height + marginHeight),
size
);
}
}
return getSize;
}),
(function (window, factory) {
"use strict";
"function" == typeof define && define.amd
? define("desandro-matches-selector/matches-selector", factory)
: "object" == typeof module && module.exports
? (module.exports = factory())
: (window.matchesSelector = factory());
})(window, function () {
"use strict";
var matchesMethod = (function () {
var ElemProto = window.Element.prototype;
if (ElemProto.matches) return "matches";
if (ElemProto.matchesSelector) return "matchesSelector";
for (
var prefixes = ["webkit", "moz", "ms", "o"], i = 0;
i < prefixes.length;
i++
) {
var method = prefixes[i] + "MatchesSelector";
if (ElemProto[method]) return method;
}
})();
return function (elem, selector) {
return elem[matchesMethod](selector);
};
}),
(function (window, factory) {
"function" == typeof define && define.amd
? define(
"fizzy-ui-utils/utils",
["desandro-matches-selector/matches-selector"],
function (matchesSelector) {
return factory(window, matchesSelector);
}
)
: "object" == typeof module && module.exports
? (module.exports = factory(window, require("desandro-matches-selector")))
: (window.fizzyUIUtils = factory(window, window.matchesSelector));
})(window, function (window, matchesSelector) {
var utils = {
extend: function (a, b) {
for (var prop in b) a[prop] = b[prop];
return a;
},
modulo: function (num, div) {
return ((num % div) + div) % div;
},
},
arraySlice = Array.prototype.slice;
(utils.makeArray = function (obj) {
return Array.isArray(obj)
? obj
: null == obj
? []
: "object" == typeof obj && "number" == typeof obj.length
? arraySlice.call(obj)
: [obj];
}),
(utils.removeFrom = function (ary, obj) {
var index = ary.indexOf(obj);
-1 != index && ary.splice(index, 1);
}),
(utils.getParent = function (elem, selector) {
for (; elem.parentNode && elem != document.body; )
if (((elem = elem.parentNode), matchesSelector(elem, selector)))
return elem;
}),
(utils.getQueryElement = function (elem) {
return "string" == typeof elem ? document.querySelector(elem) : elem;
}),
(utils.handleEvent = function (event) {
var method = "on" + event.type;
this[method] && this[method](event);
}),
(utils.filterFindElements = function (elems, selector) {
elems = utils.makeArray(elems);
var ffElems = [];
return (
elems.forEach(function (elem) {
if (
(function (elem) {
return "object" == typeof HTMLElement
? elem instanceof HTMLElement
: elem &&
"object" == typeof elem &&
null !== elem &&
1 === elem.nodeType &&
"string" == typeof elem.nodeName;
})(elem)
)
if (selector) {
matchesSelector(elem, selector) && ffElems.push(elem);
for (
var childElems = elem.querySelectorAll(selector), i = 0;
i < childElems.length;
i++
)
ffElems.push(childElems[i]);
} else ffElems.push(elem);
}),
ffElems
);
}),
(utils.debounceMethod = function (_class, methodName, threshold) {
threshold = threshold || 100;
var method = _class.prototype[methodName],
timeoutName = methodName + "Timeout";
_class.prototype[methodName] = function () {
var timeout = this[timeoutName];
clearTimeout(timeout);
var args = arguments,
_this = this;
this[timeoutName] = setTimeout(function () {
method.apply(_this, args), delete _this[timeoutName];
}, threshold);
};
}),
(utils.docReady = function (callback) {
var readyState = document.readyState;
"complete" == readyState || "interactive" == readyState
? setTimeout(callback)
: document.addEventListener("DOMContentLoaded", callback);
}),
(utils.toDashed = function (str) {
return str
.replace(/(.)([A-Z])/g, function (match, $1, $2) {
return $1 + "-" + $2;
})
.toLowerCase();
});
var console = window.console;
return (
(utils.htmlInit = function (WidgetClass, namespace) {
utils.docReady(function () {
var dashedNamespace = utils.toDashed(namespace),
dataAttr = "data-" + dashedNamespace,
dataAttrElems = document.querySelectorAll("[" + dataAttr + "]"),
jsDashElems = document.querySelectorAll(".js-" + dashedNamespace),
elems = utils
.makeArray(dataAttrElems)
.concat(utils.makeArray(jsDashElems)),
dataOptionsAttr = dataAttr + "-options",
jQuery = window.jQuery;
elems.forEach(function (elem) {
var options,
attr =
elem.getAttribute(dataAttr) ||
elem.getAttribute(dataOptionsAttr);
try {
options = attr && JSON.parse(attr);
} catch (error) {
return void (
console &&
console.error(
"Error parsing " +
dataAttr +
" on " +
elem.className +
": " +
error
)
);
}
var instance = new WidgetClass(elem, options);
jQuery && jQuery.data(elem, namespace, instance);
});
});
}),
utils
);
}),
(function (window, factory) {
"function" == typeof define && define.amd
? define(
"outlayer/item",
["ev-emitter/ev-emitter", "get-size/get-size"],
factory
)
: "object" == typeof module && module.exports
? (module.exports = factory(require("ev-emitter"), require("get-size")))
: ((window.Outlayer = {}),
(window.Outlayer.Item = factory(window.EvEmitter, window.getSize)));
})(window, function (EvEmitter, getSize) {
"use strict";
var docElemStyle = document.documentElement.style,
transitionProperty =
"string" == typeof docElemStyle.transition
? "transition"
: "WebkitTransition",
transformProperty =
"string" == typeof docElemStyle.transform
? "transform"
: "WebkitTransform",
transitionEndEvent = {
WebkitTransition: "webkitTransitionEnd",
transition: "transitionend",
}[transitionProperty],
vendorProperties = {
transform: transformProperty,
transition: transitionProperty,
transitionDuration: transitionProperty + "Duration",
transitionProperty: transitionProperty + "Property",
transitionDelay: transitionProperty + "Delay",
};
function Item(element, layout) {
element &&
((this.element = element),
(this.layout = layout),
(this.position = { x: 0, y: 0 }),
this._create());
}
var proto = (Item.prototype = Object.create(EvEmitter.prototype));
(proto.constructor = Item),
(proto._create = function () {
(this._transn = { ingProperties: {}, clean: {}, onEnd: {} }),
this.css({ position: "absolute" });
}),
(proto.handleEvent = function (event) {
var method = "on" + event.type;
this[method] && this[method](event);
}),
(proto.getSize = function () {
this.size = getSize(this.element);
}),
(proto.css = function (style) {
var elemStyle = this.element.style;
for (var prop in style) {
elemStyle[vendorProperties[prop] || prop] = style[prop];
}
}),
(proto.getPosition = function () {
var style = getComputedStyle(this.element),
isOriginLeft = this.layout._getOption("originLeft"),
isOriginTop = this.layout._getOption("originTop"),
xValue = style[isOriginLeft ? "left" : "right"],
yValue = style[isOriginTop ? "top" : "bottom"],
x = parseFloat(xValue),
y = parseFloat(yValue),
layoutSize = this.layout.size;
-1 != xValue.indexOf("%") && (x = (x / 100) * layoutSize.width),
-1 != yValue.indexOf("%") && (y = (y / 100) * layoutSize.height),
(x = isNaN(x) ? 0 : x),
(y = isNaN(y) ? 0 : y),
(x -= isOriginLeft
? layoutSize.paddingLeft
: layoutSize.paddingRight),
(y -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom),
(this.position.x = x),
(this.position.y = y);
}),
(proto.layoutPosition = function () {
var layoutSize = this.layout.size,
style = {},
isOriginLeft = this.layout._getOption("originLeft"),
isOriginTop = this.layout._getOption("originTop"),
xPadding = isOriginLeft ? "paddingLeft" : "paddingRight",
xProperty = isOriginLeft ? "left" : "right",
xResetProperty = isOriginLeft ? "right" : "left",
x = this.position.x + layoutSize[xPadding];
(style[xProperty] = this.getXValue(x)), (style[xResetProperty] = "");
var yPadding = isOriginTop ? "paddingTop" : "paddingBottom",
yProperty = isOriginTop ? "top" : "bottom",
yResetProperty = isOriginTop ? "bottom" : "top",
y = this.position.y + layoutSize[yPadding];
(style[yProperty] = this.getYValue(y)),
(style[yResetProperty] = ""),
this.css(style),
this.emitEvent("layout", [this]);
}),
(proto.getXValue = function (x) {
var isHorizontal = this.layout._getOption("horizontal");
return this.layout.options.percentPosition && !isHorizontal
? (x / this.layout.size.width) * 100 + "%"
: x + "px";
}),
(proto.getYValue = function (y) {
var isHorizontal = this.layout._getOption("horizontal");
return this.layout.options.percentPosition && isHorizontal
? (y / this.layout.size.height) * 100 + "%"
: y + "px";
}),
(proto._transitionTo = function (x, y) {
this.getPosition();
var curX = this.position.x,
curY = this.position.y,
didNotMove = x == this.position.x && y == this.position.y;
if ((this.setPosition(x, y), !didNotMove || this.isTransitioning)) {
var transX = x - curX,
transY = y - curY,
transitionStyle = {};
(transitionStyle.transform = this.getTranslate(transX, transY)),
this.transition({
to: transitionStyle,
onTransitionEnd: { transform: this.layoutPosition },
isCleaning: !0,
});
} else this.layoutPosition();
}),
(proto.getTranslate = function (x, y) {
return (
"translate3d(" +
(x = this.layout._getOption("originLeft") ? x : -x) +
"px, " +
(y = this.layout._getOption("originTop") ? y : -y) +
"px, 0)"
);
}),
(proto.goTo = function (x, y) {
this.setPosition(x, y), this.layoutPosition();
}),
(proto.moveTo = proto._transitionTo),
(proto.setPosition = function (x, y) {
(this.position.x = parseFloat(x)), (this.position.y = parseFloat(y));
}),
(proto._nonTransition = function (args) {
for (var prop in (this.css(args.to),
args.isCleaning && this._removeStyles(args.to),
args.onTransitionEnd))
args.onTransitionEnd[prop].call(this);
}),
(proto.transition = function (args) {
if (parseFloat(this.layout.options.transitionDuration)) {
var _transition = this._transn;
for (var prop in args.onTransitionEnd)
_transition.onEnd[prop] = args.onTransitionEnd[prop];
for (prop in args.to)
(_transition.ingProperties[prop] = !0),
args.isCleaning && (_transition.clean[prop] = !0);
if (args.from) {
this.css(args.from);
this.element.offsetHeight;
null;
}
this.enableTransition(args.to),
this.css(args.to),
(this.isTransitioning = !0);
} else this._nonTransition(args);
});
var transitionProps =
"opacity," +
transformProperty.replace(/([A-Z])/g, function ($1) {
return "-" + $1.toLowerCase();
});
(proto.enableTransition = function () {
if (!this.isTransitioning) {
var duration = this.layout.options.transitionDuration;
(duration = "number" == typeof duration ? duration + "ms" : duration),
this.css({
transitionProperty: transitionProps,
transitionDuration: duration,
transitionDelay: this.staggerDelay || 0,
}),
this.element.addEventListener(transitionEndEvent, this, !1);
}
}),
(proto.onwebkitTransitionEnd = function (event) {
this.ontransitionend(event);
}),
(proto.onotransitionend = function (event) {
this.ontransitionend(event);
});
var dashedVendorProperties = { "-webkit-transform": "transform" };
(proto.ontransitionend = function (event) {
if (event.target === this.element) {
var _transition = this._transn,
propertyName =
dashedVendorProperties[event.propertyName] || event.propertyName;
if (
(delete _transition.ingProperties[propertyName],
(function (obj) {
for (var prop in obj) return !1;
return !null;
})(_transition.ingProperties) && this.disableTransition(),
propertyName in _transition.clean &&
((this.element.style[event.propertyName] = ""),
delete _transition.clean[propertyName]),
propertyName in _transition.onEnd)
)
_transition.onEnd[propertyName].call(this),
delete _transition.onEnd[propertyName];
this.emitEvent("transitionEnd", [this]);
}
}),
(proto.disableTransition = function () {
this.removeTransitionStyles(),
this.element.removeEventListener(transitionEndEvent, this, !1),
(this.isTransitioning = !1);
}),
(proto._removeStyles = function (style) {
var cleanStyle = {};
for (var prop in style) cleanStyle[prop] = "";
this.css(cleanStyle);
});
var cleanTransitionStyle = {
transitionProperty: "",
transitionDuration: "",
transitionDelay: "",
};
return (
(proto.removeTransitionStyles = function () {
this.css(cleanTransitionStyle);
}),
(proto.stagger = function (delay) {
(delay = isNaN(delay) ? 0 : delay), (this.staggerDelay = delay + "ms");
}),
(proto.removeElem = function () {
this.element.parentNode.removeChild(this.element),
this.css({ display: "" }),
this.emitEvent("remove", [this]);
}),
(proto.remove = function () {
transitionProperty && parseFloat(this.layout.options.transitionDuration)
? (this.once("transitionEnd", function () {
this.removeElem();
}),
this.hide())
: this.removeElem();
}),
(proto.reveal = function () {
delete this.isHidden, this.css({ display: "" });
var options = this.layout.options,
onTransitionEnd = {};
(onTransitionEnd[
this.getHideRevealTransitionEndProperty("visibleStyle")
] = this.onRevealTransitionEnd),
this.transition({
from: options.hiddenStyle,
to: options.visibleStyle,
isCleaning: !0,
onTransitionEnd: onTransitionEnd,
});
}),
(proto.onRevealTransitionEnd = function () {
this.isHidden || this.emitEvent("reveal");
}),
(proto.getHideRevealTransitionEndProperty = function (styleProperty) {
var optionStyle = this.layout.options[styleProperty];
if (optionStyle.opacity) return "opacity";
for (var prop in optionStyle) return prop;
}),
(proto.hide = function () {
(this.isHidden = !0), this.css({ display: "" });
var options = this.layout.options,
onTransitionEnd = {};
(onTransitionEnd[
this.getHideRevealTransitionEndProperty("hiddenStyle")
] = this.onHideTransitionEnd),
this.transition({
from: options.visibleStyle,
to: options.hiddenStyle,
isCleaning: !0,
onTransitionEnd: onTransitionEnd,
});
}),
(proto.onHideTransitionEnd = function () {
this.isHidden &&
(this.css({ display: "none" }), this.emitEvent("hide"));
}),
(proto.destroy = function () {
this.css({
position: "",
left: "",
right: "",
top: "",
bottom: "",
transition: "",
transform: "",
});
}),
Item
);
}),
(function (window, factory) {
"use strict";
"function" == typeof define && define.amd
? define(
"outlayer/outlayer",
[
"ev-emitter/ev-emitter",
"get-size/get-size",
"fizzy-ui-utils/utils",
"./item",
],
function (EvEmitter, getSize, utils, Item) {
return factory(window, EvEmitter, getSize, utils, Item);
}
)
: "object" == typeof module && module.exports
? (module.exports = factory(
window,
require("ev-emitter"),
require("get-size"),
require("fizzy-ui-utils"),
require("./item")
))
: (window.Outlayer = factory(
window,
window.EvEmitter,
window.getSize,
window.fizzyUIUtils,
window.Outlayer.Item
));
})(window, function (window, EvEmitter, getSize, utils, Item) {
"use strict";
function noop() {}
var console = window.console,
jQuery = window.jQuery,
GUID = 0,
instances = {};
function Outlayer(element, options) {
var queryElement = utils.getQueryElement(element);
if (queryElement) {
(this.element = queryElement),
jQuery && (this.$element = jQuery(this.element)),
(this.options = utils.extend({}, this.constructor.defaults)),
this.option(options);
var id = ++GUID;
(this.element.outlayerGUID = id),
(instances[id] = this)._create(),
this._getOption("initLayout") && this.layout();
} else console && console.error("Bad element for " + this.constructor.namespace + ": " + (queryElement || element));
}
(Outlayer.namespace = "outlayer"),
(Outlayer.Item = Item),
(Outlayer.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 proto = Outlayer.prototype;
function subclass(Parent) {
function SubClass() {
Parent.apply(this, arguments);
}
return ((SubClass.prototype = Object.create(
Parent.prototype
)).constructor = SubClass);
}
utils.extend(proto, EvEmitter.prototype),
(proto.option = function (opts) {
utils.extend(this.options, opts);
}),
(proto._getOption = function (option) {
var oldOption = this.constructor.compatOptions[option];
return oldOption && void 0 !== this.options[oldOption]
? this.options[oldOption]
: this.options[option];
}),
(Outlayer.compatOptions = {
initLayout: "isInitLayout",
horizontal: "isHorizontal",
layoutInstant: "isLayoutInstant",
originLeft: "isOriginLeft",
originTop: "isOriginTop",
resize: "isResizeBound",
resizeContainer: "isResizingContainer",
}),
(proto._create = function () {
this.reloadItems(),
(this.stamps = []),
this.stamp(this.options.stamp),
utils.extend(this.element.style, this.options.containerStyle),
this._getOption("resize") && this.bindResize();
}),
(proto.reloadItems = function () {
this.items = this._itemize(this.element.children);
}),
(proto._itemize = function (elems) {
for (
var itemElems = this._filterFindItemElements(elems),
Item = this.constructor.Item,
items = [],
i = 0;
i < itemElems.length;
i++
) {
var item = new Item(itemElems[i], this);
items.push(item);
}
return items;
}),
(proto._filterFindItemElements = function (elems) {
return utils.filterFindElements(elems, this.options.itemSelector);
}),
(proto.getItemElements = function () {
return this.items.map(function (item) {
return item.element;
});
}),
(proto.layout = function () {
this._resetLayout(), this._manageStamps();
var layoutInstant = this._getOption("layoutInstant"),
isInstant =
void 0 !== layoutInstant ? layoutInstant : !this._isLayoutInited;
this.layoutItems(this.items, isInstant), (this._isLayoutInited = !0);
}),
(proto._init = proto.layout),
(proto._resetLayout = function () {
this.getSize();
}),
(proto.getSize = function () {
this.size = getSize(this.element);
}),
(proto._getMeasurement = function (measurement, size) {
var elem,
option = this.options[measurement];
option
? ("string" == typeof option
? (elem = this.element.querySelector(option))
: option instanceof HTMLElement && (elem = option),
(this[measurement] = elem ? getSize(elem)[size] : option))
: (this[measurement] = 0);
}),
(proto.layoutItems = function (items, isInstant) {
(items = this._getItemsForLayout(items)),
this._layoutItems(items, isInstant),
this._postLayout();
}),
(proto._getItemsForLayout = function (items) {
return items.filter(function (item) {
return !item.isIgnored;
});
}),
(proto._layoutItems = function (items, isInstant) {
if (
(this._emitCompleteOnItems("layout", items), items && items.length)
) {
var queue = [];
items.forEach(function (item) {
var position = this._getItemLayoutPosition(item);
(position.item = item),
(position.isInstant = isInstant || item.isLayoutInstant),
queue.push(position);
}, this),
this._processLayoutQueue(queue);
}
}),
(proto._getItemLayoutPosition = function () {
return { x: 0, y: 0 };
}),
(proto._processLayoutQueue = function (queue) {
this.updateStagger(),
queue.forEach(function (obj, i) {
this._positionItem(obj.item, obj.x, obj.y, obj.isInstant, i);
}, this);
}),
(proto.updateStagger = function () {
var stagger = this.options.stagger;
if (null != stagger)
return (
(this.stagger = (function (time) {
if ("number" == typeof time) return time;
var matches = time.match(/(^\d*\.?\d*)(\w*)/),
num = matches && matches[1],
unit = matches && matches[2];
if (!num.length) return 0;
num = parseFloat(num);
var mult = msUnits[unit] || 1;
return num * mult;
})(stagger)),
this.stagger
);
this.stagger = 0;
}),
(proto._positionItem = function (item, x, y, isInstant, i) {
isInstant
? item.goTo(x, y)
: (item.stagger(i * this.stagger), item.moveTo(x, y));
}),
(proto._postLayout = function () {
this.resizeContainer();
}),
(proto.resizeContainer = function () {
if (this._getOption("resizeContainer")) {
var size = this._getContainerSize();
size &&
(this._setContainerMeasure(size.width, !0),
this._setContainerMeasure(size.height, !1));
}
}),
(proto._getContainerSize = noop),
(proto._setContainerMeasure = function (measure, isWidth) {
if (void 0 !== measure) {
var elemSize = this.size;
elemSize.isBorderBox &&
(measure += isWidth
? elemSize.paddingLeft +
elemSize.paddingRight +
elemSize.borderLeftWidth +
elemSize.borderRightWidth
: elemSize.paddingBottom +
elemSize.paddingTop +
elemSize.borderTopWidth +
elemSize.borderBottomWidth),
(measure = Math.max(measure, 0)),
(this.element.style[isWidth ? "width" : "height"] = measure + "px");
}
}),
(proto._emitCompleteOnItems = function (eventName, items) {
var _this = this;
function onComplete() {
_this.dispatchEvent(eventName + "Complete", null, [items]);
}
var count = items.length;
if (items && count) {
var doneCount = 0;
items.forEach(function (item) {
item.once(eventName, tick);
});
} else onComplete();
function tick() {
++doneCount == count && onComplete();
}
}),
(proto.dispatchEvent = function (type, event, args) {
var emitArgs = event ? [event].concat(args) : args;
if ((this.emitEvent(type, emitArgs), jQuery))
if (
((this.$element = this.$element || jQuery(this.element)), event)
) {
var $event = jQuery.Event(event);
($event.type = type), this.$element.trigger($event, args);
} else this.$element.trigger(type, args);
}),
(proto.ignore = function (elem) {
var item = this.getItem(elem);
item && (item.isIgnored = !0);
}),
(proto.unignore = function (elem) {
var item = this.getItem(elem);
item && delete item.isIgnored;
}),
(proto.stamp = function (elems) {
(elems = this._find(elems)) &&
((this.stamps = this.stamps.concat(elems)),
elems.forEach(this.ignore, this));
}),
(proto.unstamp = function (elems) {
(elems = this._find(elems)) &&
elems.forEach(function (elem) {
utils.removeFrom(this.stamps, elem), this.unignore(elem);
}, this);
}),
(proto._find = function (elems) {
if (elems)
return (
"string" == typeof elems &&
(elems = this.element.querySelectorAll(elems)),
(elems = utils.makeArray(elems))
);
}),
(proto._manageStamps = function () {
this.stamps &&
this.stamps.length &&
(this._getBoundingRect(),
this.stamps.forEach(this._manageStamp, this));
}),
(proto._getBoundingRect = function () {
var boundingRect = this.element.getBoundingClientRect(),
size = this.size;
this._boundingRect = {
left: boundingRect.left + size.paddingLeft + size.borderLeftWidth,
top: boundingRect.top + size.paddingTop + size.borderTopWidth,
right:
boundingRect.right - (size.paddingRight + size.borderRightWidth),
bottom:
boundingRect.bottom - (size.paddingBottom + size.borderBottomWidth),
};
}),
(proto._manageStamp = noop),
(proto._getElementOffset = function (elem) {
var boundingRect = elem.getBoundingClientRect(),
thisRect = this._boundingRect,
size = getSize(elem);
return {
left: boundingRect.left - thisRect.left - size.marginLeft,
top: boundingRect.top - thisRect.top - size.marginTop,
right: thisRect.right - boundingRect.right - size.marginRight,
bottom: thisRect.bottom - boundingRect.bottom - size.marginBottom,
};
}),
(proto.handleEvent = utils.handleEvent),
(proto.bindResize = function () {
window.addEventListener("resize", this), (this.isResizeBound = !0);
}),
(proto.unbindResize = function () {
window.removeEventListener("resize", this), (this.isResizeBound = !1);
}),
(proto.onresize = function () {
this.resize();
}),
utils.debounceMethod(Outlayer, "onresize", 100),
(proto.resize = function () {
this.isResizeBound && this.needsResizeLayout() && this.layout();
}),
(proto.needsResizeLayout = function () {
var size = getSize(this.element);
return this.size && size && size.innerWidth !== this.size.innerWidth;
}),
(proto.addItems = function (elems) {
var items = this._itemize(elems);
return items.length && (this.items = this.items.concat(items)), items;
}),
(proto.appended = function (elems) {
var items = this.addItems(elems);
items.length && (this.layoutItems(items, !0), this.reveal(items));
}),
(proto.prepended = function (elems) {
var items = this._itemize(elems);
if (items.length) {
var previousItems = this.items.slice(0);
(this.items = items.concat(previousItems)),
this._resetLayout(),
this._manageStamps(),
this.layoutItems(items, !0),
this.reveal(items),
this.layoutItems(previousItems);
}
}),
(proto.reveal = function (items) {
if (
(this._emitCompleteOnItems("reveal", items), items && items.length)
) {
var stagger = this.updateStagger();
items.forEach(function (item, i) {
item.stagger(i * stagger), item.reveal();
});
}
}),
(proto.hide = function (items) {
if ((this._emitCompleteOnItems("hide", items), items && items.length)) {
var stagger = this.updateStagger();
items.forEach(function (item, i) {
item.stagger(i * stagger), item.hide();
});
}
}),
(proto.revealItemElements = function (elems) {
var items = this.getItems(elems);
this.reveal(items);
}),
(proto.hideItemElements = function (elems) {
var items = this.getItems(elems);
this.hide(items);
}),
(proto.getItem = function (elem) {
for (var i = 0; i < this.items.length; i++) {
var item = this.items[i];
if (item.element == elem) return item;
}
}),
(proto.getItems = function (elems) {
elems = utils.makeArray(elems);
var items = [];
return (
elems.forEach(function (elem) {
var item = this.getItem(elem);
item && items.push(item);
}, this),
items
);
}),
(proto.remove = function (elems) {
var removeItems = this.getItems(elems);
this._emitCompleteOnItems("remove", removeItems),
removeItems &&
removeItems.length &&
removeItems.forEach(function (item) {
item.remove(), utils.removeFrom(this.items, item);
}, this);
}),
(proto.destroy = function () {
var style = this.element.style;
(style.height = ""),
(style.position = ""),
(style.width = ""),
this.items.forEach(function (item) {
item.destroy();
}),
this.unbindResize();
var id = this.element.outlayerGUID;
delete instances[id],
delete this.element.outlayerGUID,
jQuery && jQuery.removeData(this.element, this.constructor.namespace);
}),
(Outlayer.data = function (elem) {
var id = (elem = utils.getQueryElement(elem)) && elem.outlayerGUID;
return id && instances[id];
}),
(Outlayer.create = function (namespace, options) {
var Layout = subclass(Outlayer);
return (
(Layout.defaults = utils.extend({}, Outlayer.defaults)),
utils.extend(Layout.defaults, options),
(Layout.compatOptions = utils.extend({}, Outlayer.compatOptions)),
(Layout.namespace = namespace),
(Layout.data = Outlayer.data),
(Layout.Item = subclass(Item)),
utils.htmlInit(Layout, namespace),
jQuery && jQuery.bridget && jQuery.bridget(namespace, Layout),
Layout
);
});
var msUnits = { ms: 1, s: 1e3 };
return (Outlayer.Item = Item), Outlayer;
}),
(function (window, factory) {
"function" == typeof define && define.amd
? define("isotope-layout/js/item", ["outlayer/outlayer"], factory)
: "object" == typeof module && module.exports
? (module.exports = factory(require("outlayer")))
: ((window.Isotope = window.Isotope || {}),
(window.Isotope.Item = factory(window.Outlayer)));
})(window, function (Outlayer) {
"use strict";
function Item() {
Outlayer.Item.apply(this, arguments);
}
var proto = (Item.prototype = Object.create(Outlayer.Item.prototype)),
_create = proto._create;
(proto._create = function () {
(this.id = this.layout.itemGUID++),
_create.call(this),
(this.sortData = {});
}),
(proto.updateSortData = function () {
if (!this.isIgnored) {
(this.sortData.id = this.id),
(this.sortData["original-order"] = this.id),
(this.sortData.random = Math.random());
var getSortData = this.layout.options.getSortData,
sorters = this.layout._sorters;
for (var key in getSortData) {
var sorter = sorters[key];
this.sortData[key] = sorter(this.element, this);
}
}
});
var _setPosition = proto.setPosition;
(proto.setPosition = function () {
if ((_setPosition.apply(this, arguments), this.layout.options.imgSizes)) {
this.imageElements ||
(this.imageElements =
this.element.querySelectorAll('img[sizes="auto"]'));
for (
var images = this.imageElements, i = 0, len = images.length;
i !== len;
i++
) {
var img = images[i];
img.setAttribute("sizes", img.offsetWidth + "px");
}
}
!this._lazyloadStarted &&
this.layout.options.lazyload &&
((this._lazyloadStarted = !0), this._lazyload());
}),
(proto._lazyload = function () {
this.layout.dispatchEvent("beforeItemLoading", null, [this]);
for (
var imagesLoadedInstance,
images = this.element.querySelectorAll("img[data-src]"),
i = 0,
len = images.length;
i !== len;
i++
) {
var img = images[i];
img.setAttribute("src", img.getAttribute("data-src")),
img.removeAttribute("data-src"),
img.getAttribute("data-srcset") &&
(img.setAttribute("srcset", img.getAttribute("data-srcset")),
img.removeAttribute("data-srcset"));
}
this.layout.options.useImagesLoaded &&
window.imagesLoaded &&
(imagesLoadedInstance = window.imagesLoaded(this.element)),
this.layout.dispatchEvent("itemLoading", null, [
this,
imagesLoadedInstance,
]);
});
var _destroy = proto.destroy;
return (
(proto.destroy = function () {
_destroy.apply(this, arguments), this.css({ display: "" });
}),
Item
);
}),
(function (window, factory) {
"function" == typeof define && define.amd
? define(
"isotope-layout/js/layout-mode",
["get-size/get-size", "outlayer/outlayer"],
factory
)
: "object" == typeof module && module.exports
? (module.exports = factory(require("get-size"), require("outlayer")))
: ((window.Isotope = window.Isotope || {}),
(window.Isotope.LayoutMode = factory(window.getSize, window.Outlayer)));
})(window, function (getSize, Outlayer) {
"use strict";
function LayoutMode(isotope) {
(this.isotope = isotope) &&
((this.options = isotope.options[this.namespace]),
(this.element = isotope.element),
(this.items = isotope.filteredItems),
(this.size = isotope.size));
}
var proto = LayoutMode.prototype;
return (
[
"_resetLayout",
"_getItemLayoutPosition",
"_manageStamp",
"_getContainerSize",
"_getElementOffset",
"needsResizeLayout",
"_getOption",
].forEach(function (methodName) {
proto[methodName] = function () {
return Outlayer.prototype[methodName].apply(this.isotope, arguments);
};
}),
(proto.needsVerticalResizeLayout = function () {
var size = getSize(this.isotope.element);
return (
this.isotope.size &&
size &&
size.innerHeight != this.isotope.size.innerHeight
);
}),
(proto._getMeasurement = function () {
this.isotope._getMeasurement.apply(this, arguments);
}),
(proto.getColumnWidth = function () {
this.getSegmentSize("column", "Width");
}),
(proto.getRowHeight = function () {
this.getSegmentSize("row", "Height");
}),
(proto.getSegmentSize = function (segment, size) {
var segmentName = segment + size,
outerSize = "outer" + size;
if (
(this._getMeasurement(segmentName, outerSize), !this[segmentName])
) {
var firstItemSize = this.getFirstItemSize();
this[segmentName] =
(firstItemSize && firstItemSize[outerSize]) ||
this.isotope.size["inner" + size];
}
}),
(proto.getFirstItemSize = function () {
var firstItem = this.isotope.filteredItems[0];
return firstItem && firstItem.element && getSize(firstItem.element);
}),
(proto.layout = function () {
this.isotope.layout.apply(this.isotope, arguments);
}),
(proto.getSize = function () {
this.isotope.getSize(), (this.size = this.isotope.size);
}),
(LayoutMode.modes = {}),
(LayoutMode.create = function (namespace, options) {
function Mode() {
LayoutMode.apply(this, arguments);
}
return (
((Mode.prototype = Object.create(proto)).constructor = Mode),
options && (Mode.options = options),
(LayoutMode.modes[(Mode.prototype.namespace = namespace)] = Mode)
);
}),
LayoutMode
);
}),
(function (window, factory) {
"function" == typeof define && define.amd
? define(
"masonry-layout/masonry",
["outlayer/outlayer", "get-size/get-size"],
factory
)
: "object" == typeof module && module.exports
? (module.exports = factory(require("outlayer"), require("get-size")))
: (window.Masonry = factory(window.Outlayer, window.getSize));
})(window, function (Outlayer, getSize) {
var Masonry = Outlayer.create("masonry");
Masonry.compatOptions.fitWidth = "isFitWidth";
var proto = Masonry.prototype;
return (
(proto._resetLayout = function () {
this.getSize(),
this._getMeasurement("columnWidth", "outerWidth"),
this._getMeasurement("gutter", "outerWidth"),
this.measureColumns(),
(this.colYs = []);
for (var i = 0; i < this.cols; i++) this.colYs.push(0);
(this.maxY = 0), (this.horizontalColIndex = 0);
}),
(proto.measureColumns = function () {
if ((this.getContainerWidth(), !this.columnWidth)) {
var firstItem = this.items[0],
firstItemElem = firstItem && firstItem.element;
this.columnWidth =
(firstItemElem && getSize(firstItemElem).outerWidth) ||
this.containerWidth;
}
var columnWidth = (this.columnWidth += this.gutter),
containerWidth = this.containerWidth + this.gutter,
cols = containerWidth / columnWidth,
excess = columnWidth - (containerWidth % columnWidth);
(cols = Math[excess && excess < 1 ? "round" : "floor"](cols)),
(this.cols = Math.max(cols, 1));
}),
(proto.getContainerWidth = function () {
var container = this._getOption("fitWidth")
? this.element.parentNode
: this.element,
size = getSize(container);
this.containerWidth = size && size.innerWidth;
}),
(proto._getItemLayoutPosition = function (item) {
item.getSize();
var remainder = item.size.outerWidth % this.columnWidth,
colSpan = Math[remainder && remainder < 1 ? "round" : "ceil"](
item.size.outerWidth / this.columnWidth
);
colSpan = Math.min(colSpan, this.cols);
for (
var colPosition = this[
this.options.horizontalOrder
? "_getHorizontalColPosition"
: "_getTopColPosition"
](colSpan, item),
position = {
x: this.columnWidth * colPosition.col,
y: colPosition.y,
},
setHeight = colPosition.y + item.size.outerHeight,
setMax = colSpan + colPosition.col,
i = colPosition.col;
i < setMax;
i++
)
this.colYs[i] = setHeight;
return position;
}),
(proto._getTopColPosition = function (colSpan) {
var colGroup = this._getTopColGroup(colSpan),
minimumY = Math.min.apply(Math, colGroup);
return { col: colGroup.indexOf(minimumY), y: minimumY };
}),
(proto._getTopColGroup = function (colSpan) {
if (colSpan < 2) return this.colYs;
for (
var colGroup = [], groupCount = this.cols + 1 - colSpan, i = 0;
i < groupCount;
i++
)
colGroup[i] = this._getColGroupY(i, colSpan);
return colGroup;
}),
(proto._getColGroupY = function (col, colSpan) {
if (colSpan < 2) return this.colYs[col];
var groupColYs = this.colYs.slice(col, col + colSpan);
return Math.max.apply(Math, groupColYs);
}),
(proto._getHorizontalColPosition = function (colSpan, item) {
var col = this.horizontalColIndex % this.cols;
col = 1 < colSpan && col + colSpan > this.cols ? 0 : col;
var hasSize = item.size.outerWidth && item.size.outerHeight;
return (
(this.horizontalColIndex = hasSize
? col + colSpan
: this.horizontalColIndex),
{ col: col, y: this._getColGroupY(col, colSpan) }
);
}),
(proto._manageStamp = function (stamp) {
var stampSize = getSize(stamp),
offset = this._getElementOffset(stamp),
firstX = this._getOption("originLeft") ? offset.left : offset.right,
lastX = firstX + stampSize.outerWidth,
firstCol = Math.floor(firstX / this.columnWidth);
firstCol = Math.max(0, firstCol);
var lastCol = Math.floor(lastX / this.columnWidth);
(lastCol -= lastX % this.columnWidth ? 0 : 1),
(lastCol = Math.min(this.cols - 1, lastCol));
for (
var stampMaxY =
(this._getOption("originTop") ? offset.top : offset.bottom) +
stampSize.outerHeight,
i = firstCol;
i <= lastCol;
i++
)
this.colYs[i] = Math.max(stampMaxY, this.colYs[i]);
}),
(proto._getContainerSize = function () {
this.maxY = Math.max.apply(Math, this.colYs);
var size = { height: this.maxY };
return (
this._getOption("fitWidth") &&
(size.width = this._getContainerFitWidth()),
size
);
}),
(proto._getContainerFitWidth = function () {
for (var unusedCols = 0, i = this.cols; --i && 0 === this.colYs[i]; )
unusedCols++;
return (this.cols - unusedCols) * this.columnWidth - this.gutter;
}),
(proto.needsResizeLayout = function () {
var previousWidth = this.containerWidth;
return this.getContainerWidth(), previousWidth != this.containerWidth;
}),
Masonry
);
}),
(function (window, factory) {
"function" == typeof define && define.amd
? define(
"isotope-layout/js/layout-modes/masonry",
["../layout-mode", "masonry-layout/masonry"],
factory
)
: "object" == typeof module && module.exports
? (module.exports = factory(require("../layout-mode")))
: factory(window.Isotope.LayoutMode, window.Masonry);
})(window, function (LayoutMode, Masonry) {
"use strict";
var MasonryMode = LayoutMode.create("masonry"),
proto = MasonryMode.prototype,
keepModeMethods = {
_getElementOffset: !0,
layout: !0,
_getMeasurement: !0,
};
for (var method in Masonry.prototype)
keepModeMethods[method] || (proto[method] = Masonry.prototype[method]);
var measureColumns = proto.measureColumns;
proto.measureColumns = function () {
(this.items = this.isotope.filteredItems), measureColumns.call(this);
};
var _getOption = proto._getOption;
return (
(proto._getOption = function (option) {
return "fitWidth" == option
? void 0 !== this.options.isFitWidth
? this.options.isFitWidth
: this.options.fitWidth
: _getOption.apply(this.isotope, arguments);
}),
MasonryMode
);
}),
(function (window, factory) {
"use strict";
"function" == typeof define && define.amd
? define(
"isotope-layout/js/layout-modes/justify-rows",
["../layout-mode"],
factory
)
: "object" == typeof exports
? (module.exports = factory(require("../layout-mode")))
: factory(window.Isotope.LayoutMode);
})(window, function (LayoutMode) {
"use strict";
var JustifyRows = LayoutMode.create("justifyRows"),
proto = JustifyRows.prototype;
return (
(proto._resetLayout = function () {
(this.x = 0),
(this.y = 0),
(this.maxY = 0),
this._getMeasurement("gutter", "outerWidth");
}),
(proto._getRowHeight = function (rowItems, containerWidth) {
containerWidth -= rowItems.length * this.gutter;
for (
var totalHeight = 0, i = 0, len = rowItems.length;
i !== len;
i++
) {
var itemEle = rowItems[i].element;
totalHeight +=
(parseInt(itemEle.getAttribute("data-width"), 10) ||
rowItems[i].size.outerWidth) /
(parseInt(itemEle.getAttribute("data-height"), 10) ||
rowItems[i].size.outerHeight);
}
return containerWidth / totalHeight;
}),
(proto._resizeItems = function (rowItems, rowHeight) {
for (var i = 0, len = rowItems.length; i !== len; i++) {
var itemEle = rowItems[i].element,
w =
parseInt(itemEle.getAttribute("data-width"), 10) ||
rowItems[i].size.outerWidth,
h =
parseInt(itemEle.getAttribute("data-height"), 10) ||
rowItems[i].size.outerHeight;
(itemEle.style.width = (rowHeight * w) / h + "px"),
(itemEle.style.height = rowHeight + "px");
}
}),
(proto._beforeLayout = function () {
var row,
rowHeight,
maxHeight = this.options.maxHeight || 200,
containerWidth = this.isotope.size.innerWidth + this.gutter,
checkItems = this.isotope.filteredItems.slice(0);
newRow: for (; 0 < checkItems.length; ) {
for (var i = 0, len = checkItems.length; i !== len; i++)
if (
((row = checkItems.slice(0, i + 1)),
(rowHeight = this._getRowHeight(row, containerWidth)) < maxHeight)
) {
this._resizeItems(row, rowHeight),
(checkItems = checkItems.slice(i + 1));
continue newRow;
}
this._resizeItems(row, Math.min(rowHeight, maxHeight));
break;
}
}),
(proto._getItemLayoutPosition = function (item) {
item.getSize();
var itemWidth = item.size.outerWidth + this.gutter,
containerWidth = this.isotope.size.innerWidth + this.gutter;
0 !== this.x &&
itemWidth + this.x > containerWidth &&
((this.x = 0), (this.y = this.maxY));
var position = { x: this.x, y: this.y };
return (
(this.maxY = Math.max(this.maxY, this.y + item.size.outerHeight)),
(this.x += itemWidth),
position
);
}),
(proto._getContainerSize = function () {
return { height: this.maxY };
}),
JustifyRows
);
}),
(function (window, factory) {
"function" == typeof define && define.amd
? define(
"isotope-layout/js/layout-modes/fit-rows",
["../layout-mode"],
factory
)
: "object" == typeof exports
? (module.exports = factory(require("../layout-mode")))
: factory(window.Isotope.LayoutMode);
})(window, function (LayoutMode) {
"use strict";
var FitRows = LayoutMode.create("fitRows"),
proto = FitRows.prototype;
return (
(proto._resetLayout = function () {
(this.x = 0),
(this.y = 0),
(this.maxY = 0),
this._getMeasurement("gutter", "outerWidth");
}),
(proto._getItemLayoutPosition = function (item) {
item.getSize();
var itemWidth = item.size.outerWidth + this.gutter,
containerWidth = this.isotope.size.innerWidth + this.gutter;
0 !== this.x &&
itemWidth + this.x > containerWidth &&
((this.x = 0), (this.y = this.maxY));
var position = { x: this.x, y: this.y };
return (
(this.maxY = Math.max(this.maxY, this.y + item.size.outerHeight)),
(this.x += itemWidth),
position
);
}),
(proto._getContainerSize = function () {
return { height: this.maxY };
}),
FitRows
);
}),
(function (window, factory) {
"function" == typeof define && define.amd
? define(
"isotope-layout/js/layout-modes/vertical",
["../layout-mode"],
factory
)
: "object" == typeof module && module.exports
? (module.exports = factory(require("../layout-mode")))
: factory(window.Isotope.LayoutMode);
})(window, function (LayoutMode) {
"use strict";
var Vertical = LayoutMode.create("vertical", { horizontalAlignment: 0 }),
proto = Vertical.prototype;
return (
(proto._resetLayout = function () {
this.y = 0;
}),
(proto._getItemLayoutPosition = function (item) {
item.getSize();
var x =
(this.isotope.size.innerWidth - item.size.outerWidth) *
this.options.horizontalAlignment,
y = this.y;
return (this.y += item.size.outerHeight), { x: x, y: y };
}),
(proto._getContainerSize = function () {
return { height: this.y };
}),
Vertical
);
}),
(function (window, factory) {
"function" == typeof define && define.amd
? define(
"isotope-layout/js/isotope",
[
"outlayer/outlayer",
"get-size/get-size",
"desandro-matches-selector/matches-selector",
"fizzy-ui-utils/utils",
"./item",
"./layout-mode",
"./layout-modes/masonry",
"./layout-modes/justify-rows",
"./layout-modes/fit-rows",
"./layout-modes/vertical",
],
function (
Outlayer,
getSize,
matchesSelector,
utils,
Item,
LayoutMode
) {
return factory(
window,
Outlayer,
getSize,
matchesSelector,
utils,
Item,
LayoutMode
);
}
)
: "object" == typeof module && module.exports
? (module.exports = factory(
window,
require("outlayer"),
require("get-size"),
require("desandro-matches-selector"),
require("fizzy-ui-utils"),
require("./item"),
require("./layout-mode"),
require("./layout-modes/masonry"),
require("./layout-modes/fit-rows"),
require("./layout-modes/justify-rows"),
require("./layout-modes/vertical")
))
: (window.Isotope = factory(
window,
window.Outlayer,
window.getSize,
window.matchesSelector,
window.fizzyUIUtils,
window.Isotope.Item,
window.Isotope.LayoutMode
));
})(
window,
function (
window,
Outlayer,
getSize,
matchesSelector,
utils,
Item,
LayoutMode
) {
var jQuery = window.jQuery,
trim = String.prototype.trim
? function (str) {
return str.trim();
}
: function (str) {
return str.replace(/^\s+|\s+$/g, "");
},
Isotope = Outlayer.create("isotope", {
layoutMode: "masonry",
isJQueryFiltering: !0,
sortAscending: !0,
pagination: !1,
inPage: 20,
page: 1,
useImagesLoaded: !0,
lazyload: !1,
resizeTransition: !0,
});
(Isotope.Item = Item), (Isotope.LayoutMode = LayoutMode);
var proto = Isotope.prototype;
(proto._create = function () {
for (var name in ((this.itemGUID = 0),
(this._sorters = {}),
this._getSorters(),
Outlayer.prototype._create.call(this),
(this.modes = {}),
(this.filteredItems = this.items),
(this.sortHistory = ["original-order"]),
LayoutMode.modes))
this._initLayoutMode(name);
}),
(proto.reloadItems = function () {
(this.itemGUID = 0), Outlayer.prototype.reloadItems.call(this);
}),
(proto._itemize = function () {
for (
var items = Outlayer.prototype._itemize.apply(this, arguments),
i = 0;
i < items.length;
i++
) {
items[i].id = this.itemGUID++;
}
return this._updateItemsSortData(items), items;
}),
(proto._initLayoutMode = function (name) {
var Mode = LayoutMode.modes[name],
initialOpts = this.options[name] || {};
(this.options[name] = Mode.options
? utils.extend(Mode.options, initialOpts)
: initialOpts),
(this.modes[name] = new Mode(this));
}),
(proto.layout = function () {
this._isLayoutInited || !this._getOption("initLayout")
? this._layout()
: this.arrange();
}),
(proto._layout = function () {
var isInstant = this._getIsInstant();
this._resetLayout(),
this._manageStamps(),
this.layoutItems(this.filteredItems, isInstant),
(this._isLayoutInited = !0);
});
var _layoutItems = Isotope.prototype.layoutItems;
(Isotope.prototype.layoutItems = function (items, isInstant) {
this._beforeLayout(items, isInstant),
_layoutItems.apply(this, arguments);
}),
(proto.arrange = function (opts) {
this.option(opts), this._getIsInstant();
var filtered = this._filter(this.items);
if (
((this.filteredItems = filtered.matches),
(this.notPaginatedItems = this.filteredItems),
this._sort(),
this.options.pagination)
) {
var paginationResult = this._pagination();
(filtered.needHide = filtered.needHide.concat(
paginationResult.needHide
)),
(filtered.needReveal = paginationResult.needReveal);
}
if (
(this._bindArrangeComplete(),
this._hideRevealItems(filtered),
this._layout(),
this.options.pagination)
)
for (var i = 0, l = this.filteredItems.length; i !== l; i++)
this.filteredItems[i].isLayoutInstant = !1;
}),
(Isotope.prototype._init = Isotope.prototype.arrange),
(proto._hideRevealItems = function (items) {
this._isInstant
? this._noTransition(this._hideReveal, [items])
: this._hideReveal(items);
}),
(proto._init = proto.arrange),
(proto._hideReveal = function (filtered) {
this.reveal(filtered.needReveal), this.hide(filtered.needHide);
}),
(proto._getIsInstant = function () {
var isLayoutInstant = this._getOption("layoutInstant"),
isInstant =
void 0 !== isLayoutInstant
? isLayoutInstant
: !this._isLayoutInited;
return (this._isInstant = isInstant);
}),
(proto._bindArrangeComplete = function () {
var isLayoutComplete,
isHideComplete,
isRevealComplete,
_this = this;
function arrangeParallelCallback() {
isLayoutComplete &&
isHideComplete &&
isRevealComplete &&
_this.dispatchEvent("arrangeComplete", null, [
_this.filteredItems,
]);
}
this.once("layoutComplete", function () {
(isLayoutComplete = !0), arrangeParallelCallback();
}),
this.once("hideComplete", function () {
(isHideComplete = !0), arrangeParallelCallback();
}),
this.once("revealComplete", function () {
(isRevealComplete = !0), arrangeParallelCallback();
});
}),
(proto._pagination = function () {
this._lastFilter !== this.options.filter &&
((this._lastFilter = this.options.filter), (this.options.page = 1)),
this.notPaginatedItems ||
(this.notPaginatedItems = this.filteredItems);
var page = this.options.page,
items = this.notPaginatedItems,
startItemInPage = (page - 1) * this.options.inPage,
endItemInPage = startItemInPage + this.options.inPage - 1,
inPage = [],
needHide = [],
needReveal = [],
totalPages = Math.ceil(items.length / this.options.inPage),
pageChanged =
this._lastPage !== page || this._totalPages !== totalPages;
(this._lastPage = page), (this._totalPages = totalPages);
for (var i = 0, len = items.length; i !== len; i++) {
var item = items[i];
startItemInPage <= i && i <= endItemInPage
? (inPage.push(item),
item.isHidden &&
(needReveal.push(item), (item.isLayoutInstant = !0)))
: item.isHidden || needHide.push(item);
}
return (
(this.filteredItems = inPage),
pageChanged &&
this.dispatchEvent("paginationUpdate", null, [
page,
totalPages,
inPage,
]),
{ matches: inPage, needHide: needHide, needReveal: needReveal }
);
}),
(proto.page = function (pageNum) {
(this.options.page = Math.max(
1,
Math.min(pageNum, this.totalPages())
)),
this._hideRevealItems(this._pagination()),
this._layout();
}),
(proto.nextPage = function () {
this.page(this.options.page + 1);
}),
(proto.previousPage = function () {
this.page(this.options.page - 1);
}),
(proto.lastPage = function () {
this.page(this.totalPages());
}),
(proto.firstPage = function () {
this.page(1);
}),
(proto.totalPages = function () {
return this._totalPages;
}),
(proto.currentPage = function () {
return this.options.page;
}),
(proto._filter = function (items) {
var filter = this.options.filter;
filter = filter || "*";
for (
var matches = [],
hiddenMatched = [],
visibleUnmatched = [],
test = this._getFilterTest(filter),
i = 0;
i < items.length;
i++
) {
var item = items[i];
if (!item.isIgnored) {
var isMatched = test(item);
isMatched && matches.push(item),
isMatched && item.isHidden
? hiddenMatched.push(item)
: isMatched || item.isHidden || visibleUnmatched.push(item);
}
}
return {
matches: matches,
needReveal: hiddenMatched,
needHide: visibleUnmatched,
};
}),
(proto._getFilterTest = function (filter) {
return jQuery && this.options.isJQueryFiltering
? function (item) {
return jQuery(item.element).is(filter);
}
: "function" == typeof filter
? function (item) {
return filter(item.element);
}
: function (item) {
return matchesSelector(item.element, filter);
};
}),
(proto.updateSortData = function (elems) {
var items;
(items = elems
? ((elems = utils.makeArray(elems)), this.getItems(elems))
: this.items),
this._getSorters(),
this._updateItemsSortData(items);
});
var mungeSorter = function (sorter) {
if ("string" != typeof sorter) return sorter;
var args = trim(sorter).split(" "),
query = args[0],
attrMatch = query.match(/^\[(.+)\]$/),
getValue = (function (attr, query) {
return attr
? function (elem) {
return elem.getAttribute(attr);
}
: function (elem) {
var child = elem.querySelector(query);
return child && child.textContent;
};
})(attrMatch && attrMatch[1], query),
parser = Isotope.sortDataParsers[args[1]];
return (sorter = parser
? function (elem) {
return elem && parser(getValue(elem));
}
: function (elem) {
return elem && getValue(elem);
});
};
(proto._getSorters = function () {
var getSortData = this.options.getSortData;
for (var key in getSortData) {
var sorter = getSortData[key];
this._sorters[key] = mungeSorter(sorter);
}
}),
(proto._updateItemsSortData = function (items) {
var len = items && items.length;
if (len)
for (var i = 0; i < len; i++) {
items[i].updateSortData();
}
}),
(Isotope.sortDataParsers = {
parseInt: function (val) {
return parseInt(val, 10);
},
parseFloat: function (val) {
return parseFloat(val);
},
}),
(proto._sort = function () {
if (this.options.sortBy) {
var sortBys = utils.makeArray(this.options.sortBy);
this._getIsSameSortBy(sortBys) ||
(this.sortHistory = sortBys.concat(this.sortHistory));
var itemSorter = (function (sortBys, sortAsc) {
return function (itemA, itemB) {
for (var i = 0; i < sortBys.length; i++) {
var sortBy = sortBys[i],
a = itemA.sortData[sortBy],
b = itemB.sortData[sortBy];
if (b < a || a < b)
return (
(b < a ? 1 : -1) *
((void 0 !== sortAsc[sortBy] ? sortAsc[sortBy] : sortAsc)
? 1
: -1)
);
}
return 0;
};
})(this.sortHistory, this.options.sortAscending);
this.options.pagination
? this.notPaginatedItems.sort(itemSorter)
: this.filteredItems.sort(itemSorter);
}
}),
(proto._getIsSameSortBy = function (sortBys) {
for (var i = 0; i < sortBys.length; i++)
if (sortBys[i] != this.sortHistory[i]) return !1;
return !0;
}),
(proto._mode = function () {
var layoutMode = this.options.layoutMode,
mode = this.modes[layoutMode];
if (!mode) throw new Error("No layout mode: " + layoutMode);
return (mode.options = this.options[layoutMode]), mode;
}),
(proto._resetLayout = function () {
Outlayer.prototype._resetLayout.call(this),
this._mode()._resetLayout();
}),
(Isotope.prototype._beforeLayout = function (items, isInstant) {
var mode = this._mode();
mode._beforeLayout && mode._beforeLayout(items, isInstant);
}),
(proto._getItemLayoutPosition = function (item) {
return this._mode()._getItemLayoutPosition(item);
}),
(proto._manageStamp = function (stamp) {
this._mode()._manageStamp(stamp);
}),
(proto._getContainerSize = function () {
return this._mode()._getContainerSize();
}),
(proto.needsResizeLayout = function () {
return this._mode().needsResizeLayout();
}),
(Isotope.prototype.resize = function () {
this.isResizeBound &&
this.needsResizeLayout() &&
(this.options.resizeTransition
? this.layout()
: this._noTransition(this.layout));
}),
(proto.appended = function (elems) {
var items = this.addItems(elems);
if (items.length) {
var pagination = this.options.pagination,
filteredItems = this._filterRevealAdded(items, !pagination);
if (pagination) {
(this.notPaginatedItems =
this.notPaginatedItems.concat(filteredItems)),
this._resetLayout(),
this._manageStamps();
var paginateResult = this._pagination();
this._hideRevealItems(paginateResult),
this.layoutItems(this.filteredItems);
} else
this.filteredItems = this.filteredItems.concat(filteredItems);
}
}),
(proto.prepended = function (elems) {
var items = this._itemize(elems);
if (items.length) {
this._resetLayout(), this._manageStamps();
var pagination = this.options.pagination,
filteredItems = this._filterRevealAdded(items, !pagination);
if (pagination) {
this.notPaginatedItems = filteredItems.concat(
this.notPaginatedItems
);
var paginateResult = this._pagination();
this._hideRevealItems(paginateResult),
this.layoutItems(this.filteredItems);
} else
this.layoutItems(this.filteredItems),
(this.filteredItems = filteredItems.concat(this.filteredItems));
this.items = items.concat(this.items);
}
}),
(proto._filterRevealAdded = function (items) {
var filtered = this._filter(items);
return (
this.hide(filtered.needHide),
this.reveal(filtered.matches),
this.layoutItems(filtered.matches, !0),
filtered.matches
);
}),
(proto.insert = function (elems) {
var items = this.addItems(elems);
if (items.length) {
var i,
item,
len = items.length;
for (i = 0; i < len; i++)
(item = items[i]), this.element.appendChild(item.element);
var filteredInsertItems = this._filter(items).matches;
for (i = 0; i < len; i++) items[i].isLayoutInstant = !0;
for (this.arrange(), i = 0; i < len; i++)
delete items[i].isLayoutInstant;
this.reveal(filteredInsertItems);
}
});
var _remove = proto.remove;
return (
(proto.remove = function (elems) {
elems = utils.makeArray(elems);
var removeItems = this.getItems(elems);
_remove.call(this, elems);
var len = removeItems && removeItems.length;
if (len)
for (var i = 0; i < len; i++) {
var item = removeItems[i];
utils.removeFrom(this.filteredItems, item);
}
}),
(proto.shuffle = function () {
for (var i = 0; i < this.items.length; i++) {
this.items[i].sortData.random = Math.random();
}
(this.options.sortBy = "random"), this._sort(), this._layout();
}),
(proto._noTransition = function (fn, args) {
var transitionDuration = this.options.transitionDuration;
this.options.transitionDuration = 0;
var returnValue = fn.apply(this, args);
return (
(this.options.transitionDuration = transitionDuration), returnValue
);
}),
(proto.getFilteredItemElements = function () {
return this.filteredItems.map(function (item) {
return item.element;
});
}),
Isotope
);
}
),
(function (window, factory) {
"function" == typeof define && define.amd
? define("packery/js/rect", factory)
: "object" == typeof module && module.exports
? (module.exports = factory())
: ((window.Packery = window.Packery || {}),
(window.Packery.Rect = factory()));
})(window, function () {
function Rect(props) {
for (var prop in Rect.defaults) this[prop] = Rect.defaults[prop];
for (prop in props) this[prop] = props[prop];
}
Rect.defaults = { x: 0, y: 0, width: 0, height: 0 };
var proto = Rect.prototype;
return (
(proto.contains = function (rect) {
var otherWidth = rect.width || 0,
otherHeight = rect.height || 0;
return (
this.x <= rect.x &&
this.y <= rect.y &&
this.x + this.width >= rect.x + otherWidth &&
this.y + this.height >= rect.y + otherHeight
);
}),
(proto.overlaps = function (rect) {
var thisRight = this.x + this.width,
thisBottom = this.y + this.height,
rectRight = rect.x + rect.width,
rectBottom = rect.y + rect.height;
return (
this.x < rectRight &&
thisRight > rect.x &&
this.y < rectBottom &&
thisBottom > rect.y
);
}),
(proto.getMaximalFreeRects = function (rect) {
if (!this.overlaps(rect)) return !1;
var freeRect,
freeRects = [],
thisRight = this.x + this.width,
thisBottom = this.y + this.height,
rectRight = rect.x + rect.width,
rectBottom = rect.y + rect.height;
return (
this.y < rect.y &&
((freeRect = new Rect({
x: this.x,
y: this.y,
width: this.width,
height: rect.y - this.y,
})),
freeRects.push(freeRect)),
rectRight < thisRight &&
((freeRect = new Rect({
x: rectRight,
y: this.y,
width: thisRight - rectRight,
height: this.height,
})),
freeRects.push(freeRect)),
rectBottom < thisBottom &&
((freeRect = new Rect({
x: this.x,
y: rectBottom,
width: this.width,
height: thisBottom - rectBottom,
})),
freeRects.push(freeRect)),
this.x < rect.x &&
((freeRect = new Rect({
x: this.x,
y: this.y,
width: rect.x - this.x,
height: this.height,
})),
freeRects.push(freeRect)),
freeRects
);
}),
(proto.canFit = function (rect) {
return this.width >= rect.width && this.height >= rect.height;
}),
Rect
);
}),
(function (window, factory) {
if ("function" == typeof define && define.amd)
define("packery/js/packer", ["./rect"], factory);
else if ("object" == typeof module && module.exports)
module.exports = factory(require("./rect"));
else {
var Packery = (window.Packery = window.Packery || {});
Packery.Packer = factory(Packery.Rect);
}
})(window, function (Rect) {
function Packer(width, height, sortDirection) {
(this.width = width || 0),
(this.height = height || 0),
(this.sortDirection = sortDirection || "downwardLeftToRight"),
this.reset();
}
var proto = Packer.prototype;
(proto.reset = function () {
this.spaces = [];
var initialSpace = new Rect({
x: 0,
y: 0,
width: this.width,
height: this.height,
});
this.spaces.push(initialSpace),
(this.sorter =
sorters[this.sortDirection] || sorters.downwardLeftToRight);
}),
(proto.pack = function (rect) {
for (var i = 0; i < this.spaces.length; i++) {
var space = this.spaces[i];
if (space.canFit(rect)) {
this.placeInSpace(rect, space);
break;
}
}
}),
(proto.columnPack = function (rect) {
for (var i = 0; i < this.spaces.length; i++) {
var space = this.spaces[i];
if (
space.x <= rect.x &&
space.x + space.width >= rect.x + rect.width &&
space.height >= rect.height - 0.01
) {
(rect.y = space.y), this.placed(rect);
break;
}
}
}),
(proto.rowPack = function (rect) {
for (var i = 0; i < this.spaces.length; i++) {
var space = this.spaces[i];
if (
space.y <= rect.y &&
space.y + space.height >= rect.y + rect.height &&
space.width >= rect.width - 0.01
) {
(rect.x = space.x), this.placed(rect);
break;
}
}
}),
(proto.placeInSpace = function (rect, space) {
(rect.x = space.x), (rect.y = space.y), this.placed(rect);
}),
(proto.placed = function (rect) {
for (var revisedSpaces = [], i = 0; i < this.spaces.length; i++) {
var space = this.spaces[i],
newSpaces = space.getMaximalFreeRects(rect);
newSpaces
? revisedSpaces.push.apply(revisedSpaces, newSpaces)
: revisedSpaces.push(space);
}
(this.spaces = revisedSpaces), this.mergeSortSpaces();
}),
(proto.mergeSortSpaces = function () {
Packer.mergeRects(this.spaces), this.spaces.sort(this.sorter);
}),
(proto.addSpace = function (rect) {
this.spaces.push(rect), this.mergeSortSpaces();
}),
(Packer.mergeRects = function (rects) {
var i = 0,
rect = rects[i];
rectLoop: for (; rect; ) {
for (var j = 0, compareRect = rects[i + j]; compareRect; ) {
if (compareRect == rect) j++;
else {
if (compareRect.contains(rect)) {
rects.splice(i, 1), (rect = rects[i]);
continue rectLoop;
}
rect.contains(compareRect) ? rects.splice(i + j, 1) : j++;
}
compareRect = rects[i + j];
}
rect = rects[++i];
}
return rects;
});
var sorters = {
downwardLeftToRight: function (a, b) {
return a.y - b.y || a.x - b.x;
},
rightwardTopToBottom: function (a, b) {
return a.x - b.x || a.y - b.y;
},
};
return Packer;
}),
(function (window, factory) {
"function" == typeof define && define.amd
? define("packery/js/item", ["outlayer/outlayer", "./rect"], factory)
: "object" == typeof module && module.exports
? (module.exports = factory(require("outlayer"), require("./rect")))
: (window.Packery.Item = factory(window.Outlayer, window.Packery.Rect));
})(window, function (Outlayer, Rect) {
function Item() {
Outlayer.Item.apply(this, arguments);
}
var transformProperty =
"string" == typeof document.documentElement.style.transform
? "transform"
: "WebkitTransform",
proto = (Item.prototype = Object.create(Outlayer.Item.prototype)),
__create = proto._create;
proto._create = function () {
__create.call(this), (this.rect = new Rect());
};
var _moveTo = proto.moveTo;
return (
(proto.moveTo = function (x, y) {
var dx = Math.abs(this.position.x - x),
dy = Math.abs(this.position.y - y);
this.layout.dragItemCount &&
!this.isPlacing &&
!this.isTransitioning &&
dx < 1 &&
dy < 1
? this.goTo(x, y)
: _moveTo.apply(this, arguments);
}),
(proto.enablePlacing = function () {
this.removeTransitionStyles(),
this.isTransitioning &&
transformProperty &&
(this.element.style[transformProperty] = "none"),
(this.isTransitioning = !1),
this.getSize(),
this.layout._setRectSize(this.element, this.rect),
(this.isPlacing = !0);
}),
(proto.disablePlacing = function () {
this.isPlacing = !1;
}),
(proto.removeElem = function () {
this.element.parentNode.removeChild(this.element),
this.layout.packer.addSpace(this.rect),
this.emitEvent("remove", [this]);
}),
(proto.showDropPlaceholder = function () {
var dropPlaceholder = this.dropPlaceholder;
dropPlaceholder ||
(((dropPlaceholder = this.dropPlaceholder =
document.createElement("div")).className =
"packery-drop-placeholder"),
(dropPlaceholder.style.position = "absolute")),
(dropPlaceholder.style.width = this.size.width + "px"),
(dropPlaceholder.style.height = this.size.height + "px"),
this.positionDropPlaceholder(),
this.layout.element.appendChild(dropPlaceholder);
}),
(proto.positionDropPlaceholder = function () {
this.dropPlaceholder.style[transformProperty] =
"translate(" + this.rect.x + "px, " + this.rect.y + "px)";
}),
(proto.hideDropPlaceholder = function () {
this.layout.element.removeChild(this.dropPlaceholder);
}),
Item
);
}),
(function (window, factory) {
"function" == typeof define && define.amd
? define(
"packery/js/packery",
[
"get-size/get-size",
"outlayer/outlayer",
"./rect",
"./packer",
"./item",
],
factory
)
: "object" == typeof module && module.exports
? (module.exports = factory(
require("get-size"),
require("outlayer"),
require("./rect"),
require("./packer"),
require("./item")
))
: (window.Packery = factory(
window.getSize,
window.Outlayer,
window.Packery.Rect,
window.Packery.Packer,
window.Packery.Item
));
})(window, function (getSize, Outlayer, Rect, Packer, Item) {
Rect.prototype.canFit = function (rect) {
return this.width >= rect.width - 1 && this.height >= rect.height - 1;
};
var Packery = Outlayer.create("packery");
Packery.Item = Item;
var proto = Packery.prototype;
function verticalSorter(a, b) {
return a.position.y - b.position.y || a.position.x - b.position.x;
}
function horizontalSorter(a, b) {
return a.position.x - b.position.x || a.position.y - b.position.y;
}
(proto._create = function () {
Outlayer.prototype._create.call(this),
(this.packer = new Packer()),
(this.shiftPacker = new Packer()),
(this.isEnabled = !0),
(this.dragItemCount = 0);
var _this = this;
(this.handleDraggabilly = {
dragStart: function () {
_this.itemDragStart(this.element);
},
dragMove: function () {
_this.itemDragMove(this.element, this.position.x, this.position.y);
},
dragEnd: function () {
_this.itemDragEnd(this.element);
},
}),
(this.handleUIDraggable = {
start: function (event, ui) {
ui && _this.itemDragStart(event.currentTarget);
},
drag: function (event, ui) {
ui &&
_this.itemDragMove(
event.currentTarget,
ui.position.left,
ui.position.top
);
},
stop: function (event, ui) {
ui && _this.itemDragEnd(event.currentTarget);
},
});
}),
(proto._resetLayout = function () {
var width, height, sortDirection;
this.getSize(),
this._getMeasurements(),
(sortDirection = this._getOption("horizontal")
? ((width = 1 / 0),
(height = this.size.innerHeight + this.gutter),
"rightwardTopToBottom")
: ((width = this.size.innerWidth + this.gutter),
(height = 1 / 0),
"downwardLeftToRight")),
(this.packer.width = this.shiftPacker.width = width),
(this.packer.height = this.shiftPacker.height = height),
(this.packer.sortDirection = this.shiftPacker.sortDirection =
sortDirection),
this.packer.reset(),
(this.maxY = 0),
(this.maxX = 0);
}),
(proto._getMeasurements = function () {
this._getMeasurement("columnWidth", "width"),
this._getMeasurement("rowHeight", "height"),
this._getMeasurement("gutter", "width");
}),
(proto._getItemLayoutPosition = function (item) {
if (
(this._setRectSize(item.element, item.rect),
this.isShifting || 0 < this.dragItemCount)
) {
var packMethod = this._getPackMethod();
this.packer[packMethod](item.rect);
} else this.packer.pack(item.rect);
return this._setMaxXY(item.rect), item.rect;
}),
(proto.shiftLayout = function () {
(this.isShifting = !0), this.layout(), delete this.isShifting;
}),
(proto._getPackMethod = function () {
return this._getOption("horizontal") ? "rowPack" : "columnPack";
}),
(proto._setMaxXY = function (rect) {
(this.maxX = Math.max(rect.x + rect.width, this.maxX)),
(this.maxY = Math.max(rect.y + rect.height, this.maxY));
}),
(proto._setRectSize = function (elem, rect) {
var size = getSize(elem),
w = size.outerWidth,
h = size.outerHeight;
(w || h) &&
((w = this._applyGridGutter(w, this.columnWidth)),
(h = this._applyGridGutter(h, this.rowHeight))),
(rect.width = Math.min(w, this.packer.width)),
(rect.height = Math.min(h, this.packer.height));
}),
(proto._applyGridGutter = function (measurement, gridSize) {
if (!gridSize) return measurement + this.gutter;
var remainder = measurement % (gridSize += this.gutter);
return (measurement =
Math[remainder && remainder < 1 ? "round" : "ceil"](
measurement / gridSize
) * gridSize);
}),
(proto._getContainerSize = function () {
return this._getOption("horizontal")
? { width: this.maxX - this.gutter }
: { height: this.maxY - this.gutter };
}),
(proto._manageStamp = function (elem) {
var rect,
item = this.getItem(elem);
if (item && item.isPlacing) rect = item.rect;
else {
var offset = this._getElementOffset(elem);
rect = new Rect({
x: this._getOption("originLeft") ? offset.left : offset.right,
y: this._getOption("originTop") ? offset.top : offset.bottom,
});
}
this._setRectSize(elem, rect),
this.packer.placed(rect),
this._setMaxXY(rect);
}),
(proto.sortItemsByPosition = function () {
var sorter = this._getOption("horizontal")
? horizontalSorter
: verticalSorter;
this.items.sort(sorter);
}),
(proto.fit = function (elem, x, y) {
var item = this.getItem(elem);
item &&
(this.stamp(item.element),
item.enablePlacing(),
this.updateShiftTargets(item),
(x = void 0 === x ? item.rect.x : x),
(y = void 0 === y ? item.rect.y : y),
this.shift(item, x, y),
this._bindFitEvents(item),
item.moveTo(item.rect.x, item.rect.y),
this.shiftLayout(),
this.unstamp(item.element),
this.sortItemsByPosition(),
item.disablePlacing());
}),
(proto._bindFitEvents = function (item) {
var _this = this,
ticks = 0;
function onLayout() {
2 == ++ticks && _this.dispatchEvent("fitComplete", null, [item]);
}
item.once("layout", onLayout), this.once("layoutComplete", onLayout);
}),
(proto.resize = function () {
this.isResizeBound &&
this.needsResizeLayout() &&
(this.options.shiftPercentResize
? this.resizeShiftPercentLayout()
: this.layout());
}),
(proto.needsResizeLayout = function () {
var size = getSize(this.element),
innerSize = this._getOption("horizontal")
? "innerHeight"
: "innerWidth";
return size[innerSize] != this.size[innerSize];
}),
(proto.resizeShiftPercentLayout = function () {
var items = this._getItemsForLayout(this.items),
isHorizontal = this._getOption("horizontal"),
coord = isHorizontal ? "y" : "x",
measure = isHorizontal ? "height" : "width",
segmentName = isHorizontal ? "rowHeight" : "columnWidth",
innerSize = isHorizontal ? "innerHeight" : "innerWidth",
previousSegment = this[segmentName];
if (
(previousSegment = previousSegment && previousSegment + this.gutter)
) {
this._getMeasurements();
var currentSegment = this[segmentName] + this.gutter;
items.forEach(function (item) {
var seg = Math.round(item.rect[coord] / previousSegment);
item.rect[coord] = seg * currentSegment;
});
} else {
var currentSize = getSize(this.element)[innerSize] + this.gutter,
previousSize = this.packer[measure];
items.forEach(function (item) {
item.rect[coord] = (item.rect[coord] / previousSize) * currentSize;
});
}
this.shiftLayout();
}),
(proto.itemDragStart = function (elem) {
if (this.isEnabled) {
this.stamp(elem);
var item = this.getItem(elem);
item &&
(item.enablePlacing(),
item.showDropPlaceholder(),
this.dragItemCount++,
this.updateShiftTargets(item));
}
}),
(proto.updateShiftTargets = function (dropItem) {
this.shiftPacker.reset(), this._getBoundingRect();
var isOriginLeft = this._getOption("originLeft"),
isOriginTop = this._getOption("originTop");
this.stamps.forEach(function (stamp) {
var item = this.getItem(stamp);
if (!item || !item.isPlacing) {
var offset = this._getElementOffset(stamp),
rect = new Rect({
x: isOriginLeft ? offset.left : offset.right,
y: isOriginTop ? offset.top : offset.bottom,
});
this._setRectSize(stamp, rect), this.shiftPacker.placed(rect);
}
}, this);
var boundsSize,
isHorizontal = this._getOption("horizontal"),
segmentName = isHorizontal ? "rowHeight" : "columnWidth",
measure = isHorizontal ? "height" : "width";
(this.shiftTargetKeys = []), (this.shiftTargets = []);
var segment = this[segmentName];
if ((segment = segment && segment + this.gutter)) {
var segmentSpan = Math.ceil(dropItem.rect[measure] / segment),
segs = Math.floor(
(this.shiftPacker[measure] + this.gutter) / segment
);
boundsSize = (segs - segmentSpan) * segment;
for (var i = 0; i < segs; i++)
this._addShiftTarget(i * segment, 0, boundsSize);
} else
(boundsSize =
this.shiftPacker[measure] + this.gutter - dropItem.rect[measure]),
this._addShiftTarget(0, 0, boundsSize);
var items = this._getItemsForLayout(this.items),
packMethod = this._getPackMethod();
items.forEach(function (item) {
var rect = item.rect;
this._setRectSize(item.element, rect),
this.shiftPacker[packMethod](rect),
this._addShiftTarget(rect.x, rect.y, boundsSize);
var cornerX = isHorizontal ? rect.x + rect.width : rect.x,
cornerY = isHorizontal ? rect.y : rect.y + rect.height;
if ((this._addShiftTarget(cornerX, cornerY, boundsSize), segment))
for (
var segSpan = Math.round(rect[measure] / segment), i = 1;
i < segSpan;
i++
) {
var segX = isHorizontal ? cornerX : rect.x + segment * i,
segY = isHorizontal ? rect.y + segment * i : cornerY;
this._addShiftTarget(segX, segY, boundsSize);
}
}, this);
}),
(proto._addShiftTarget = function (x, y, boundsSize) {
var checkCoord = this._getOption("horizontal") ? y : x;
if (!(0 !== checkCoord && boundsSize < checkCoord)) {
var key = x + "," + y;
-1 != this.shiftTargetKeys.indexOf(key) ||
(this.shiftTargetKeys.push(key),
this.shiftTargets.push({ x: x, y: y }));
}
}),
(proto.shift = function (item, x, y) {
var shiftPosition,
minDistance = 1 / 0,
position = { x: x, y: y };
this.shiftTargets.forEach(function (target) {
var distance = (function (a, b) {
var dx = b.x - a.x,
dy = b.y - a.y;
return Math.sqrt(dx * dx + dy * dy);
})(target, position);
distance < minDistance &&
((shiftPosition = target), (minDistance = distance));
}),
(item.rect.x = shiftPosition.x),
(item.rect.y = shiftPosition.y);
});
(proto.itemDragMove = function (elem, x, y) {
var item = this.isEnabled && this.getItem(elem);
if (item) {
(x -= this.size.paddingLeft), (y -= this.size.paddingTop);
var _this = this,
now = new Date();
this._itemDragTime && now - this._itemDragTime < 120
? (clearTimeout(this.dragTimeout),
(this.dragTimeout = setTimeout(onDrag, 120)))
: (onDrag(), (this._itemDragTime = now));
}
function onDrag() {
_this.shift(item, x, y), item.positionDropPlaceholder(), _this.layout();
}
}),
(proto.itemDragEnd = function (elem) {
var item = this.isEnabled && this.getItem(elem);
if (item) {
clearTimeout(this.dragTimeout),
item.element.classList.add("is-positioning-post-drag");
var completeCount = 0,
_this = this;
item.once("layout", onDragEndLayoutComplete),
this.once("layoutComplete", onDragEndLayoutComplete),
item.moveTo(item.rect.x, item.rect.y),
this.layout(),
(this.dragItemCount = Math.max(0, this.dragItemCount - 1)),
this.sortItemsByPosition(),
item.disablePlacing(),
this.unstamp(item.element);
}
function onDragEndLayoutComplete() {
2 == ++completeCount &&
(item.element.classList.remove("is-positioning-post-drag"),
item.hideDropPlaceholder(),
_this.dispatchEvent("dragItemPositioned", null, [item]));
}
}),
(proto.bindDraggabillyEvents = function (draggie) {
this._bindDraggabillyEvents(draggie, "on");
}),
(proto.unbindDraggabillyEvents = function (draggie) {
this._bindDraggabillyEvents(draggie, "off");
}),
(proto._bindDraggabillyEvents = function (draggie, method) {
var handlers = this.handleDraggabilly;
draggie[method]("dragStart", handlers.dragStart),
draggie[method]("dragMove", handlers.dragMove),
draggie[method]("dragEnd", handlers.dragEnd);
}),
(proto.bindUIDraggableEvents = function ($elems) {
this._bindUIDraggableEvents($elems, "on");
}),
(proto.unbindUIDraggableEvents = function ($elems) {
this._bindUIDraggableEvents($elems, "off");
}),
(proto._bindUIDraggableEvents = function ($elems, method) {
var handlers = this.handleUIDraggable;
$elems[method]("dragstart", handlers.start)
[method]("drag", handlers.drag)
[method]("dragstop", handlers.stop);
});
var _destroy = proto.destroy;
return (
(proto.destroy = function () {
_destroy.apply(this, arguments), (this.isEnabled = !1);
}),
(Packery.Rect = Rect),
(Packery.Packer = Packer),
Packery
);
}),
(function (window, factory) {
"function" == typeof define && define.amd
? define(["isotope-layout/js/layout-mode", "packery/js/packery"], factory)
: "object" == typeof module && module.exports
? (module.exports = factory(
require("isotope-layout/js/layout-mode"),
require("packery")
))
: factory(window.Isotope.LayoutMode, window.Packery);
})(window, function (LayoutMode, Packery) {
var PackeryMode = LayoutMode.create("packery"),
proto = PackeryMode.prototype,
keepModeMethods = { _getElementOffset: !0, _getMeasurement: !0 };
for (var method in Packery.prototype)
keepModeMethods[method] || (proto[method] = Packery.prototype[method]);
var _resetLayout = proto._resetLayout;
proto._resetLayout = function () {
(this.packer = this.packer || new Packery.Packer()),
(this.shiftPacker = this.shiftPacker || new Packery.Packer()),
_resetLayout.apply(this, arguments);
};
var _getItemLayoutPosition = proto._getItemLayoutPosition;
proto._getItemLayoutPosition = function (item) {
return (
(item.rect = item.rect || new Packery.Rect()),
_getItemLayoutPosition.call(this, item)
);
};
var _needsResizeLayout = proto.needsResizeLayout;
proto.needsResizeLayout = function () {
return this._getOption("horizontal")
? this.needsVerticalResizeLayout()
: _needsResizeLayout.call(this);
};
var _getOption = proto._getOption;
return (
(proto._getOption = function (option) {
return "horizontal" == option
? void 0 !== this.options.isHorizontal
? this.options.isHorizontal
: this.options.horizontal
: _getOption.apply(this.isotope, arguments);
}),
PackeryMode
);
}),
(function (root, factory) {
"function" == typeof define && define.amd
? define(factory)
: "object" == typeof exports
? (module.exports = factory())
: (root.PhotoSwipe = factory());
})(this, function () {
"use strict";
return function (template, UiClass, items, options) {
var framework = {
features: null,
bind: function (target, type, listener, unbind) {
var methodName = (unbind ? "remove" : "add") + "EventListener";
type = type.split(" ");
for (var i = 0; i < type.length; i++)
type[i] && target[methodName](type[i], listener, !1);
},
isArray: function (obj) {
return obj instanceof Array;
},
createEl: function (classes, tag) {
var el = document.createElement(tag || "div");
return classes && (el.className = classes), el;
},
getScrollY: function () {
var yOffset = window.pageYOffset;
return void 0 !== yOffset
? yOffset
: document.documentElement.scrollTop;
},
unbind: function (target, type, listener) {
framework.bind(target, type, listener, !0);
},
removeClass: function (el, className) {
var reg = new RegExp("(\\s|^)" + className + "(\\s|$)");
el.className = el.className
.replace(reg, " ")
.replace(/^\s\s*/, "")
.replace(/\s\s*$/, "");
},
addClass: function (el, className) {
framework.hasClass(el, className) ||
(el.className += (el.className ? " " : "") + className);
},
hasClass: function (el, className) {
return (
el.className &&
new RegExp("(^|\\s)" + className + "(\\s|$)").test(el.className)
);
},
getChildByClass: function (parentEl, childClassName) {
for (var node = parentEl.firstChild; node; ) {
if (framework.hasClass(node, childClassName)) return node;
node = node.nextSibling;
}
},
arraySearch: function (array, value, key) {
for (var i = array.length; i--; )
if (array[i][key] === value) return i;
return -1;
},
extend: function (o1, o2, preventOverwrite) {
for (var prop in o2)
if (o2.hasOwnProperty(prop)) {
if (preventOverwrite && o1.hasOwnProperty(prop)) continue;
o1[prop] = o2[prop];
}
},
easing: {
sine: {
out: function (k) {
return Math.sin(k * (Math.PI / 2));
},
inOut: function (k) {
return -(Math.cos(Math.PI * k) - 1) / 2;
},
},
cubic: {
out: function (k) {
return --k * k * k + 1;
},
},
},
detectFeatures: function () {
if (framework.features) return framework.features;
var helperStyle = framework.createEl().style,
vendor = "",
features = {};
if (
((features.oldIE = document.all && !document.addEventListener),
(features.touch = "ontouchstart" in window),
window.requestAnimationFrame &&
((features.raf = window.requestAnimationFrame),
(features.caf = window.cancelAnimationFrame)),
(features.pointerEvent =
!!window.PointerEvent || navigator.msPointerEnabled),
!features.pointerEvent)
) {
var ua = navigator.userAgent;
if (/iP(hone|od)/.test(navigator.platform)) {
var v = navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);
v &&
0 < v.length &&
1 <= (v = parseInt(v[1], 10)) &&
v < 8 &&
(features.isOldIOSPhone = !0);
}
var match = ua.match(/Android\s([0-9\.]*)/),
androidversion = match ? match[1] : 0;
1 <= (androidversion = parseFloat(androidversion)) &&
(androidversion < 4.4 && (features.isOldAndroid = !0),
(features.androidVersion = androidversion)),
(features.isMobileOpera = /opera mini|opera mobi/i.test(ua));
}
for (
var styleCheckItem,
styleName,
styleChecks = ["transform", "perspective", "animationName"],
vendors = ["", "webkit", "Moz", "ms", "O"],
i = 0;
i < 4;
i++
) {
vendor = vendors[i];
for (var a = 0; a < 3; a++)
(styleCheckItem = styleChecks[a]),
(styleName =
vendor +
(vendor
? styleCheckItem.charAt(0).toUpperCase() +
styleCheckItem.slice(1)
: styleCheckItem)),
!features[styleCheckItem] &&
styleName in helperStyle &&
(features[styleCheckItem] = styleName);
vendor &&
!features.raf &&
((vendor = vendor.toLowerCase()),
(features.raf = window[vendor + "RequestAnimationFrame"]),
features.raf &&
(features.caf =
window[vendor + "CancelAnimationFrame"] ||
window[vendor + "CancelRequestAnimationFrame"]));
}
if (!features.raf) {
var lastTime = 0;
(features.raf = function (fn) {
var currTime = new Date().getTime(),
timeToCall = Math.max(0, 16 - (currTime - lastTime)),
id = window.setTimeout(function () {
fn(currTime + timeToCall);
}, timeToCall);
return (lastTime = currTime + timeToCall), id;
}),
(features.caf = function (id) {
clearTimeout(id);
});
}
return (
(features.svg =
!!document.createElementNS &&
!!document.createElementNS("http://www.w3.org/2000/svg", "svg")
.createSVGRect),
(framework.features = features)
);
},
};
framework.detectFeatures(),
framework.features.oldIE &&
(framework.bind = function (target, type, listener, unbind) {
type = type.split(" ");
for (
var evName,
methodName = (unbind ? "detach" : "attach") + "Event",
_handleEv = function () {
listener.handleEvent.call(listener);
},
i = 0;
i < type.length;
i++
)
if ((evName = type[i]))
if ("object" == typeof listener && listener.handleEvent) {
if (unbind) {
if (!listener["oldIE" + evName]) return !1;
} else listener["oldIE" + evName] = _handleEv;
target[methodName]("on" + evName, listener["oldIE" + evName]);
} else target[methodName]("on" + evName, listener);
});
var self = this,
_options = {
allowPanToNext: !0,
spacing: 0.12,
bgOpacity: 1,
mouseUsed: !1,
loop: !0,
pinchToClose: !0,
closeOnScroll: !0,
closeOnVerticalDrag: !0,
verticalDragRange: 0.75,
hideAnimationDuration: 333,
showAnimationDuration: 333,
showHideOpacity: !1,
focus: !0,
escKey: !0,
arrowKeys: !0,
mainScrollEndFriction: 0.35,
panEndFriction: 0.35,
isClickableElement: function (el) {
return "A" === el.tagName;
},
getDoubleTapZoom: function (isMouseClick, item) {
return isMouseClick ? 1 : item.initialZoomLevel < 0.7 ? 1 : 1.33;
},
maxSpreadZoom: 1.33,
modal: !0,
scaleMode: "fit",
};
framework.extend(_options, options);
function _registerModule(name, module) {
framework.extend(self, module.publicMethods), _modules.push(name);
}
function _getLoopedId(index) {
var numSlides = _getNumItems();
return numSlides - 1 < index
? index - numSlides
: index < 0
? numSlides + index
: index;
}
function _listen(name, fn) {
return (
_listeners[name] || (_listeners[name] = []), _listeners[name].push(fn)
);
}
function _shout(name) {
var listeners = _listeners[name];
if (listeners) {
var args = Array.prototype.slice.call(arguments);
args.shift();
for (var i = 0; i < listeners.length; i++)
listeners[i].apply(self, args);
}
}
function _getCurrentTime() {
return new Date().getTime();
}
function _applyBgOpacity(opacity) {
(_bgOpacity = opacity),
(self.bg.style.opacity = opacity * _options.bgOpacity);
}
function _applyZoomTransform(styleObj, x, y, zoom, item) {
(!_renderMaxResolution || (item && item !== self.currItem)) &&
(zoom /= item ? item.fitRatio : self.currItem.fitRatio),
(styleObj[_transformKey] =
_translatePrefix +
x +
"px, " +
y +
"px" +
_translateSufix +
" scale(" +
zoom +
")");
}
function _moveMainScroll(x, dragging) {
if (!_options.loop && dragging) {
var newSlideIndexOffset =
_currentItemIndex +
(_slideSize.x * _currPositionIndex - x) / _slideSize.x,
delta = Math.round(x - _mainScrollPos.x);
((newSlideIndexOffset < 0 && 0 < delta) ||
(newSlideIndexOffset >= _getNumItems() - 1 && delta < 0)) &&
(x = _mainScrollPos.x + delta * _options.mainScrollEndFriction);
}
(_mainScrollPos.x = x), _setTranslateX(x, _containerStyle);
}
function _calculatePanOffset(axis, zoomLevel) {
var m = _midZoomPoint[axis] - _offset[axis];
return (
_startPanOffset[axis] +
_currPanDist[axis] +
m -
(zoomLevel / _startZoomLevel) * m
);
}
function _equalizePoints(p1, p2) {
(p1.x = p2.x), (p1.y = p2.y), p2.id && (p1.id = p2.id);
}
function _roundPoint(p) {
(p.x = Math.round(p.x)), (p.y = Math.round(p.y));
}
function _calculatePanBounds(zoomLevel, update) {
var bounds = _calculateItemSize(
self.currItem,
_viewportSize,
zoomLevel
);
return update && (_currPanBounds = bounds), bounds;
}
function _getMinZoomLevel(item) {
return (item = item || self.currItem).initialZoomLevel;
}
function _getMaxZoomLevel(item) {
return 0 < (item = item || self.currItem).w
? _options.maxSpreadZoom
: 1;
}
function _modifyDestPanOffset(
axis,
destPanBounds,
destPanOffset,
destZoomLevel
) {
return destZoomLevel === self.currItem.initialZoomLevel
? ((destPanOffset[axis] = self.currItem.initialPosition[axis]), !0)
: ((destPanOffset[axis] = _calculatePanOffset(axis, destZoomLevel)),
destPanOffset[axis] > destPanBounds.min[axis]
? ((destPanOffset[axis] = destPanBounds.min[axis]), !0)
: destPanOffset[axis] < destPanBounds.max[axis] &&
((destPanOffset[axis] = destPanBounds.max[axis]), !0));
}
function _onKeyDown(e) {
var keydownAction = "";
_options.escKey && 27 === e.keyCode
? (keydownAction = "close")
: _options.arrowKeys &&
(37 === e.keyCode
? (keydownAction = "prev")
: 39 === e.keyCode && (keydownAction = "next")),
keydownAction &&
(e.ctrlKey ||
e.altKey ||
e.shiftKey ||
e.metaKey ||
(e.preventDefault ? e.preventDefault() : (e.returnValue = !1),
self[keydownAction]()));
}
function _onGlobalClick(e) {
e &&
(_moved ||
_zoomStarted ||
_mainScrollAnimating ||
_verticalDragInitiated) &&
(e.preventDefault(), e.stopPropagation());
}
function _updatePageScrollOffset() {
self.setScrollOffset(0, framework.getScrollY());
}
function _stopAnimation(name) {
_animations[name] &&
(_animations[name].raf && _cancelAF(_animations[name].raf),
_numAnimations--,
delete _animations[name]);
}
function _registerStartAnimation(name) {
_animations[name] && _stopAnimation(name),
_animations[name] || (_numAnimations++, (_animations[name] = {}));
}
function _stopAllAnimations() {
for (var prop in _animations)
_animations.hasOwnProperty(prop) && _stopAnimation(prop);
}
function _animateProp(
name,
b,
endProp,
d,
easingFn,
onUpdate,
onComplete
) {
var t,
startAnimTime = _getCurrentTime();
_registerStartAnimation(name);
var animloop = function () {
if (_animations[name]) {
if (((t = _getCurrentTime() - startAnimTime), d <= t))
return (
_stopAnimation(name),
onUpdate(endProp),
void (onComplete && onComplete())
);
onUpdate((endProp - b) * easingFn(t / d) + b),
(_animations[name].raf = _requestAF(animloop));
}
};
animloop();
}
function _calculatePointsDistance(p1, p2) {
return (
(_tempPoint.x = Math.abs(p1.x - p2.x)),
(_tempPoint.y = Math.abs(p1.y - p2.y)),
Math.sqrt(_tempPoint.x * _tempPoint.x + _tempPoint.y * _tempPoint.y)
);
}
function _preventDefaultEventBehaviour(e, isDown) {
return (
(_preventObj.prevent = !_closestElement(
e.target,
_options.isClickableElement
)),
_shout("preventDragEvent", e, isDown, _preventObj),
_preventObj.prevent
);
}
function _convertTouchToPoint(touch, p) {
return (
(p.x = touch.pageX), (p.y = touch.pageY), (p.id = touch.identifier), p
);
}
function _findCenterOfPoints(p1, p2, pCenter) {
(pCenter.x = 0.5 * (p1.x + p2.x)), (pCenter.y = 0.5 * (p1.y + p2.y));
}
function _calculateVerticalDragOpacityRatio() {
var yOffset = _panOffset.y - self.currItem.initialPosition.y;
return 1 - Math.abs(yOffset / (_viewportSize.y / 2));
}
function _getTouchPoints(e) {
for (; 0 < _tempPointsArr.length; ) _tempPointsArr.pop();
return (
_pointerEventEnabled
? ((_tempCounter = 0),
_currPointers.forEach(function (p) {
0 === _tempCounter
? (_tempPointsArr[0] = p)
: 1 === _tempCounter && (_tempPointsArr[1] = p),
_tempCounter++;
}))
: -1 < e.type.indexOf("touch")
? e.touches &&
0 < e.touches.length &&
((_tempPointsArr[0] = _convertTouchToPoint(
e.touches[0],
_ePoint1
)),
1 < e.touches.length &&
(_tempPointsArr[1] = _convertTouchToPoint(
e.touches[1],
_ePoint2
)))
: ((_ePoint1.x = e.pageX),
(_ePoint1.y = e.pageY),
(_ePoint1.id = ""),
(_tempPointsArr[0] = _ePoint1)),
_tempPointsArr
);
}
function _panOrMoveMainScroll(axis, delta) {
var panFriction,
startOverDiff,
newPanPos,
newMainScrollPos,
newOffset = _panOffset[axis] + delta[axis],
dir = 0 < delta[axis],
newMainScrollPosition = _mainScrollPos.x + delta.x,
mainScrollDiff = _mainScrollPos.x - _startMainScrollPos.x;
if (
((panFriction =
newOffset > _currPanBounds.min[axis] ||
newOffset < _currPanBounds.max[axis]
? _options.panEndFriction
: 1),
(newOffset = _panOffset[axis] + delta[axis] * panFriction),
(_options.allowPanToNext ||
_currZoomLevel === self.currItem.initialZoomLevel) &&
(_currZoomElementStyle
? "h" !== _direction ||
"x" !== axis ||
_zoomStarted ||
(dir
? (newOffset > _currPanBounds.min[axis] &&
((panFriction = _options.panEndFriction),
_currPanBounds.min[axis] - newOffset,
(startOverDiff =
_currPanBounds.min[axis] - _startPanOffset[axis])),
(startOverDiff <= 0 || mainScrollDiff < 0) &&
1 < _getNumItems()
? ((newMainScrollPos = newMainScrollPosition),
mainScrollDiff < 0 &&
newMainScrollPosition > _startMainScrollPos.x &&
(newMainScrollPos = _startMainScrollPos.x))
: _currPanBounds.min.x !== _currPanBounds.max.x &&
(newPanPos = newOffset))
: (newOffset < _currPanBounds.max[axis] &&
((panFriction = _options.panEndFriction),
newOffset - _currPanBounds.max[axis],
(startOverDiff =
_startPanOffset[axis] - _currPanBounds.max[axis])),
(startOverDiff <= 0 || 0 < mainScrollDiff) &&
1 < _getNumItems()
? ((newMainScrollPos = newMainScrollPosition),
0 < mainScrollDiff &&
newMainScrollPosition < _startMainScrollPos.x &&
(newMainScrollPos = _startMainScrollPos.x))
: _currPanBounds.min.x !== _currPanBounds.max.x &&
(newPanPos = newOffset)))
: (newMainScrollPos = newMainScrollPosition),
"x" === axis))
)
return (
void 0 !== newMainScrollPos &&
(_moveMainScroll(newMainScrollPos, !0),
(_mainScrollShifted =
newMainScrollPos !== _startMainScrollPos.x)),
_currPanBounds.min.x !== _currPanBounds.max.x &&
(void 0 !== newPanPos
? (_panOffset.x = newPanPos)
: _mainScrollShifted ||
(_panOffset.x += delta.x * panFriction)),
void 0 !== newMainScrollPos
);
_mainScrollAnimating ||
_mainScrollShifted ||
(_currZoomLevel > self.currItem.fitRatio &&
(_panOffset[axis] += delta[axis] * panFriction));
}
function _onDragStart(e) {
if (!("mousedown" === e.type && 0 < e.button))
if (_initialZoomRunning) e.preventDefault();
else if (!_oldAndroidTouchEndTimeout || "mousedown" !== e.type) {
if (
(_preventDefaultEventBehaviour(e, !0) && e.preventDefault(),
_shout("pointerDown"),
_pointerEventEnabled)
) {
var pointerIndex = framework.arraySearch(
_currPointers,
e.pointerId,
"id"
);
pointerIndex < 0 && (pointerIndex = _currPointers.length),
(_currPointers[pointerIndex] = {
x: e.pageX,
y: e.pageY,
id: e.pointerId,
});
}
var startPointsList = _getTouchPoints(e),
numPoints = startPointsList.length;
(_currentPoints = null),
_stopAllAnimations(),
(_isDragging && 1 !== numPoints) ||
((_isDragging = _isFirstMove = !0),
framework.bind(window, _upMoveEvents, self),
(_isZoomingIn =
_wasOverInitialZoom =
_opacityChanged =
_verticalDragInitiated =
_mainScrollShifted =
_moved =
_isMultitouch =
_zoomStarted =
!1),
(_direction = null),
_shout("firstTouchStart", startPointsList),
_equalizePoints(_startPanOffset, _panOffset),
(_currPanDist.x = _currPanDist.y = 0),
_equalizePoints(_currPoint, startPointsList[0]),
_equalizePoints(_startPoint, _currPoint),
(_startMainScrollPos.x = _slideSize.x * _currPositionIndex),
(_posPoints = [{ x: _currPoint.x, y: _currPoint.y }]),
(_gestureCheckSpeedTime = _gestureStartTime =
_getCurrentTime()),
_calculatePanBounds(_currZoomLevel, !0),
_stopDragUpdateLoop(),
_dragUpdateLoop()),
!_isZooming &&
1 < numPoints &&
!_mainScrollAnimating &&
!_mainScrollShifted &&
((_startZoomLevel = _currZoomLevel),
(_isZooming = _isMultitouch = !(_zoomStarted = !1)),
(_currPanDist.y = _currPanDist.x = 0),
_equalizePoints(_startPanOffset, _panOffset),
_equalizePoints(p, startPointsList[0]),
_equalizePoints(p2, startPointsList[1]),
_findCenterOfPoints(p, p2, _currCenterPoint),
(_midZoomPoint.x = Math.abs(_currCenterPoint.x) - _panOffset.x),
(_midZoomPoint.y = Math.abs(_currCenterPoint.y) - _panOffset.y),
(_startPointsDistance = _calculatePointsDistance(p, p2)));
}
}
function _onDragMove(e) {
if ((e.preventDefault(), _pointerEventEnabled)) {
var pointerIndex = framework.arraySearch(
_currPointers,
e.pointerId,
"id"
);
if (-1 < pointerIndex) {
var p = _currPointers[pointerIndex];
(p.x = e.pageX), (p.y = e.pageY);
}
}
if (_isDragging) {
var touchesList = _getTouchPoints(e);
if (_direction || _moved || _isZooming) _currentPoints = touchesList;
else if (_mainScrollPos.x !== _slideSize.x * _currPositionIndex)
_direction = "h";
else {
var diff =
Math.abs(touchesList[0].x - _currPoint.x) -
Math.abs(touchesList[0].y - _currPoint.y);
10 <= Math.abs(diff) &&
((_direction = 0 < diff ? "h" : "v"),
(_currentPoints = touchesList));
}
}
}
function _onDragRelease(e) {
if (_features.isOldAndroid) {
if (_oldAndroidTouchEndTimeout && "mouseup" === e.type) return;
-1 < e.type.indexOf("touch") &&
(clearTimeout(_oldAndroidTouchEndTimeout),
(_oldAndroidTouchEndTimeout = setTimeout(function () {
_oldAndroidTouchEndTimeout = 0;
}, 600)));
}
var releasePoint;
if (
(_shout("pointerUp"),
_preventDefaultEventBehaviour(e, !1) && e.preventDefault(),
_pointerEventEnabled)
) {
var pointerIndex = framework.arraySearch(
_currPointers,
e.pointerId,
"id"
);
if (-1 < pointerIndex)
if (
((releasePoint = _currPointers.splice(pointerIndex, 1)[0]),
navigator.msPointerEnabled)
) {
(releasePoint.type = { 4: "mouse", 2: "touch", 3: "pen" }[
e.pointerType
]),
releasePoint.type ||
(releasePoint.type = e.pointerType || "mouse");
} else releasePoint.type = e.pointerType || "mouse";
}
var gestureType,
touchList = _getTouchPoints(e),
numPoints = touchList.length;
if (("mouseup" === e.type && (numPoints = 0), 2 === numPoints))
return !(_currentPoints = null);
1 === numPoints && _equalizePoints(_startPoint, touchList[0]),
0 !== numPoints ||
_direction ||
_mainScrollAnimating ||
(releasePoint ||
("mouseup" === e.type
? (releasePoint = { x: e.pageX, y: e.pageY, type: "mouse" })
: e.changedTouches &&
e.changedTouches[0] &&
(releasePoint = {
x: e.changedTouches[0].pageX,
y: e.changedTouches[0].pageY,
type: "touch",
})),
_shout("touchRelease", e, releasePoint));
var releaseTimeDiff = -1;
if (
(0 === numPoints &&
((_isDragging = !1),
framework.unbind(window, _upMoveEvents, self),
_stopDragUpdateLoop(),
_isZooming
? (releaseTimeDiff = 0)
: -1 !== _lastReleaseTime &&
(releaseTimeDiff = _getCurrentTime() - _lastReleaseTime)),
(_lastReleaseTime = 1 === numPoints ? _getCurrentTime() : -1),
(gestureType =
-1 !== releaseTimeDiff && releaseTimeDiff < 150 ? "zoom" : "swipe"),
_isZooming &&
numPoints < 2 &&
((_isZooming = !1),
1 === numPoints && (gestureType = "zoomPointerUp"),
_shout("zoomGestureEnded")),
(_currentPoints = null),
_moved ||
_zoomStarted ||
_mainScrollAnimating ||
_verticalDragInitiated)
)
if (
(_stopAllAnimations(),
(_releaseAnimData =
_releaseAnimData ||
_initDragReleaseAnimationData()).calculateSwipeSpeed("x"),
_verticalDragInitiated)
) {
if (
_calculateVerticalDragOpacityRatio() < _options.verticalDragRange
)
self.close();
else {
var initalPanY = _panOffset.y,
initialBgOpacity = _bgOpacity;
_animateProp(
"verticalDrag",
0,
1,
300,
framework.easing.cubic.out,
function (now) {
(_panOffset.y =
(self.currItem.initialPosition.y - initalPanY) * now +
initalPanY),
_applyBgOpacity(
(1 - initialBgOpacity) * now + initialBgOpacity
),
_applyCurrentZoomPan();
}
),
_shout("onVerticalDrag", 1);
}
} else {
if (
(_mainScrollShifted || _mainScrollAnimating) &&
0 === numPoints
) {
if (_finishSwipeMainScrollGesture(gestureType, _releaseAnimData))
return;
gestureType = "zoomPointerUp";
}
_mainScrollAnimating ||
("swipe" === gestureType
? !_mainScrollShifted &&
_currZoomLevel > self.currItem.fitRatio &&
_completePanGesture(_releaseAnimData)
: _completeZoomGesture());
}
}
var _isOpen,
_isDestroying,
_closedByScroll,
_currentItemIndex,
_containerStyle,
_containerShiftIndex,
_upMoveEvents,
_downEvents,
_globalEventHandlers,
_currZoomLevel,
_startZoomLevel,
_translatePrefix,
_translateSufix,
_updateSizeInterval,
_itemsNeedUpdate,
_itemHolders,
_prevItemIndex,
_dragStartEvent,
_dragMoveEvent,
_dragEndEvent,
_dragCancelEvent,
_transformKey,
_pointerEventEnabled,
_likelyTouchDevice,
_requestAF,
_cancelAF,
_initalClassName,
_initalWindowScrollY,
_oldIE,
_currentWindowScrollY,
_features,
_orientationChangeTimeout,
_gestureStartTime,
_gestureCheckSpeedTime,
_releaseAnimData,
_isZoomingIn,
_verticalDragInitiated,
_oldAndroidTouchEndTimeout,
_isDragging,
_isMultitouch,
_zoomStarted,
_moved,
_dragAnimFrame,
_mainScrollShifted,
_currentPoints,
_isZooming,
_startPointsDistance,
_currPanBounds,
_currZoomElementStyle,
_mainScrollAnimating,
_direction,
_isFirstMove,
_opacityChanged,
_bgOpacity,
_wasOverInitialZoom,
_tempCounter,
_currPanDist = { x: 0, y: 0 },
_startPanOffset = { x: 0, y: 0 },
_panOffset = { x: 0, y: 0 },
_viewportSize = {},
_currPositionIndex = 0,
_offset = {},
_slideSize = { x: 0, y: 0 },
_indexDiff = 0,
_isFixedPosition = !0,
_modules = [],
_windowVisibleSize = {},
_renderMaxResolution = !1,
_listeners = {},
_applyCurrentZoomPan = function (allowRenderResolution) {
_currZoomElementStyle &&
(allowRenderResolution &&
(_currZoomLevel > self.currItem.fitRatio
? _renderMaxResolution ||
(_setImageSize(self.currItem, !1, !0),
(_renderMaxResolution = !0))
: _renderMaxResolution &&
(_setImageSize(self.currItem), (_renderMaxResolution = !1))),
_applyZoomTransform(
_currZoomElementStyle,
_panOffset.x,
_panOffset.y,
_currZoomLevel
));
},
_applyZoomPanToItem = function (item) {
item.container &&
_applyZoomTransform(
item.container.style,
item.initialPosition.x,
item.initialPosition.y,
item.initialZoomLevel,
item
);
},
_setTranslateX = function (x, elStyle) {
elStyle[_transformKey] =
_translatePrefix + x + "px, 0px" + _translateSufix;
},
_mouseMoveTimeout = null,
_onFirstMouseMove = function () {
_mouseMoveTimeout &&
(framework.unbind(document, "mousemove", _onFirstMouseMove),
framework.addClass(template, "pswp--has_mouse"),
(_options.mouseUsed = !0),
_shout("mouseUsed")),
(_mouseMoveTimeout = setTimeout(function () {
_mouseMoveTimeout = null;
}, 100));
},
_animations = {},
_numAnimations = 0,
publicMethods = {
shout: _shout,
listen: _listen,
viewportSize: _viewportSize,
options: _options,
isMainScrollAnimating: function () {
return _mainScrollAnimating;
},
getZoomLevel: function () {
return _currZoomLevel;
},
getCurrentIndex: function () {
return _currentItemIndex;
},
isDragging: function () {
return _isDragging;
},
isZooming: function () {
return _isZooming;
},
setScrollOffset: function (x, y) {
(_offset.x = x),
(_currentWindowScrollY = _offset.y = y),
_shout("updateScrollOffset", _offset);
},
applyZoomPan: function (
zoomLevel,
panX,
panY,
allowRenderResolution
) {
(_panOffset.x = panX),
(_panOffset.y = panY),
(_currZoomLevel = zoomLevel),
_applyCurrentZoomPan(allowRenderResolution);
},
init: function () {
if (!_isOpen && !_isDestroying) {
var i;
(self.framework = framework),
(self.template = template),
(self.bg = framework.getChildByClass(template, "pswp__bg")),
(_initalClassName = template.className),
(_isOpen = !0),
(_features = framework.detectFeatures()),
(_requestAF = _features.raf),
(_cancelAF = _features.caf),
(_transformKey = _features.transform),
(_oldIE = _features.oldIE),
(self.scrollWrap = framework.getChildByClass(
template,
"pswp__scroll-wrap"
)),
(self.container = framework.getChildByClass(
self.scrollWrap,
"pswp__container"
)),
(_containerStyle = self.container.style),
(self.itemHolders = _itemHolders =
[
{ el: self.container.children[0], wrap: 0, index: -1 },
{ el: self.container.children[1], wrap: 0, index: -1 },
{ el: self.container.children[2], wrap: 0, index: -1 },
]),
(_itemHolders[0].el.style.display =
_itemHolders[2].el.style.display =
"none"),
(function () {
if (_transformKey) {
var allow3dTransform =
_features.perspective && !_likelyTouchDevice;
return (
(_translatePrefix =
"translate" + (allow3dTransform ? "3d(" : "(")),
(_translateSufix = _features.perspective ? ", 0px)" : ")")
);
}
(_transformKey = "left"),
framework.addClass(template, "pswp--ie"),
(_setTranslateX = function (x, elStyle) {
elStyle.left = x + "px";
}),
(_applyZoomPanToItem = function (item) {
var zoomRatio = 1 < item.fitRatio ? 1 : item.fitRatio,
s = item.container.style,
w = zoomRatio * item.w,
h = zoomRatio * item.h;
(s.width = w + "px"),
(s.height = h + "px"),
(s.left = item.initialPosition.x + "px"),
(s.top = item.initialPosition.y + "px");
}),
(_applyCurrentZoomPan = function () {
if (_currZoomElementStyle) {
var s = _currZoomElementStyle,
item = self.currItem,
zoomRatio = 1 < item.fitRatio ? 1 : item.fitRatio,
w = zoomRatio * item.w,
h = zoomRatio * item.h;
(s.width = w + "px"),
(s.height = h + "px"),
(s.left = _panOffset.x + "px"),
(s.top = _panOffset.y + "px");
}
});
})(),
(_globalEventHandlers = {
resize: self.updateSize,
orientationchange: function () {
clearTimeout(_orientationChangeTimeout),
(_orientationChangeTimeout = setTimeout(function () {
_viewportSize.x !== self.scrollWrap.clientWidth &&
self.updateSize();
}, 500));
},
scroll: _updatePageScrollOffset,
keydown: _onKeyDown,
click: _onGlobalClick,
});
var oldPhone =
_features.isOldIOSPhone ||
_features.isOldAndroid ||
_features.isMobileOpera;
for (
(_features.animationName && _features.transform && !oldPhone) ||
(_options.showAnimationDuration =
_options.hideAnimationDuration =
0),
i = 0;
i < _modules.length;
i++
)
self["init" + _modules[i]]();
if (UiClass) (self.ui = new UiClass(self, framework)).init();
_shout("firstUpdate"),
(_currentItemIndex = _currentItemIndex || _options.index || 0),
(isNaN(_currentItemIndex) ||
_currentItemIndex < 0 ||
_currentItemIndex >= _getNumItems()) &&
(_currentItemIndex = 0),
(self.currItem = _getItemAt(_currentItemIndex)),
(_features.isOldIOSPhone || _features.isOldAndroid) &&
(_isFixedPosition = !1),
template.setAttribute("aria-hidden", "false"),
_options.modal &&
(_isFixedPosition
? (template.style.position = "fixed")
: ((template.style.position = "absolute"),
(template.style.top = framework.getScrollY() + "px"))),
void 0 === _currentWindowScrollY &&
(_shout("initialLayout"),
(_currentWindowScrollY = _initalWindowScrollY =
framework.getScrollY()));
var rootClasses = "pswp--open ";
for (
_options.mainClass && (rootClasses += _options.mainClass + " "),
_options.showHideOpacity &&
(rootClasses += "pswp--animate_opacity "),
rootClasses += _likelyTouchDevice
? "pswp--touch"
: "pswp--notouch",
rootClasses += _features.animationName
? " pswp--css_animation"
: "",
rootClasses += _features.svg ? " pswp--svg" : "",
framework.addClass(template, rootClasses),
self.updateSize(),
_containerShiftIndex = -1,
_indexDiff = null,
i = 0;
i < 3;
i++
)
_setTranslateX(
(i + _containerShiftIndex) * _slideSize.x,
_itemHolders[i].el.style
);
_oldIE || framework.bind(self.scrollWrap, _downEvents, self),
_listen("initialZoomInEnd", function () {
self.setContent(_itemHolders[0], _currentItemIndex - 1),
self.setContent(_itemHolders[2], _currentItemIndex + 1),
(_itemHolders[0].el.style.display =
_itemHolders[2].el.style.display =
"block"),
_options.focus && template.focus(),
framework.bind(document, "keydown", self),
_features.transform &&
framework.bind(self.scrollWrap, "click", self),
_options.mouseUsed ||
framework.bind(document, "mousemove", _onFirstMouseMove),
framework.bind(
window,
"resize scroll orientationchange",
self
),
_shout("bindEvents");
}),
self.setContent(_itemHolders[1], _currentItemIndex),
self.updateCurrItem(),
_shout("afterInit"),
_isFixedPosition ||
(_updateSizeInterval = setInterval(function () {
_numAnimations ||
_isDragging ||
_isZooming ||
_currZoomLevel !== self.currItem.initialZoomLevel ||
self.updateSize();
}, 1e3)),
framework.addClass(template, "pswp--visible");
}
},
close: function () {
_isOpen &&
((_isDestroying = !(_isOpen = !1)),
_shout("close"),
framework.unbind(window, "resize scroll orientationchange", self),
framework.unbind(window, "scroll", _globalEventHandlers.scroll),
framework.unbind(document, "keydown", self),
framework.unbind(document, "mousemove", _onFirstMouseMove),
_features.transform &&
framework.unbind(self.scrollWrap, "click", self),
_isDragging && framework.unbind(window, _upMoveEvents, self),
clearTimeout(_orientationChangeTimeout),
_shout("unbindEvents"),
_showOrHide(self.currItem, null, !0, self.destroy));
},
destroy: function () {
_shout("destroy"),
_showOrHideTimeout && clearTimeout(_showOrHideTimeout),
template.setAttribute("aria-hidden", "true"),
(template.className = _initalClassName),
_updateSizeInterval && clearInterval(_updateSizeInterval),
framework.unbind(self.scrollWrap, _downEvents, self),
framework.unbind(window, "scroll", self),
_stopDragUpdateLoop(),
_stopAllAnimations(),
(_listeners = null);
},
panTo: function (x, y, force) {
force ||
(x > _currPanBounds.min.x
? (x = _currPanBounds.min.x)
: x < _currPanBounds.max.x && (x = _currPanBounds.max.x),
y > _currPanBounds.min.y
? (y = _currPanBounds.min.y)
: y < _currPanBounds.max.y && (y = _currPanBounds.max.y)),
(_panOffset.x = x),
(_panOffset.y = y),
_applyCurrentZoomPan();
},
handleEvent: function (e) {
(e = e || window.event),
_globalEventHandlers[e.type] && _globalEventHandlers[e.type](e);
},
goTo: function (index) {
var diff = (index = _getLoopedId(index)) - _currentItemIndex;
(_indexDiff = diff),
(_currentItemIndex = index),
(self.currItem = _getItemAt(_currentItemIndex)),
(_currPositionIndex -= diff),
_moveMainScroll(_slideSize.x * _currPositionIndex),
_stopAllAnimations(),
(_mainScrollAnimating = !1),
self.updateCurrItem();
},
next: function () {
self.goTo(_currentItemIndex + 1);
},
prev: function () {
self.goTo(_currentItemIndex - 1);
},
updateCurrZoomItem: function (emulateSetContent) {
if (
(emulateSetContent && _shout("beforeChange", 0),
_itemHolders[1].el.children.length)
) {
var zoomElement = _itemHolders[1].el.children[0];
_currZoomElementStyle = framework.hasClass(
zoomElement,
"pswp__zoom-wrap"
)
? zoomElement.style
: null;
} else _currZoomElementStyle = null;
(_currPanBounds = self.currItem.bounds),
(_startZoomLevel = _currZoomLevel =
self.currItem.initialZoomLevel),
(_panOffset.x = _currPanBounds.center.x),
(_panOffset.y = _currPanBounds.center.y),
emulateSetContent && _shout("afterChange");
},
invalidateCurrItems: function () {
_itemsNeedUpdate = !0;
for (var i = 0; i < 3; i++)
_itemHolders[i].item && (_itemHolders[i].item.needsUpdate = !0);
},
updateCurrItem: function (beforeAnimation) {
if (0 !== _indexDiff) {
var tempHolder,
diffAbs = Math.abs(_indexDiff);
if (!(beforeAnimation && diffAbs < 2)) {
(self.currItem = _getItemAt(_currentItemIndex)),
(_renderMaxResolution = !1),
_shout("beforeChange", _indexDiff),
3 <= diffAbs &&
((_containerShiftIndex +=
_indexDiff + (0 < _indexDiff ? -3 : 3)),
(diffAbs = 3));
for (var i = 0; i < diffAbs; i++)
0 < _indexDiff
? ((tempHolder = _itemHolders.shift()),
(_itemHolders[2] = tempHolder),
_setTranslateX(
(++_containerShiftIndex + 2) * _slideSize.x,
tempHolder.el.style
),
self.setContent(
tempHolder,
_currentItemIndex - diffAbs + i + 1 + 1
))
: ((tempHolder = _itemHolders.pop()),
_itemHolders.unshift(tempHolder),
_setTranslateX(
--_containerShiftIndex * _slideSize.x,
tempHolder.el.style
),
self.setContent(
tempHolder,
_currentItemIndex + diffAbs - i - 1 - 1
));
if (_currZoomElementStyle && 1 === Math.abs(_indexDiff)) {
var prevItem = _getItemAt(_prevItemIndex);
prevItem.initialZoomLevel !== _currZoomLevel &&
(_calculateItemSize(prevItem, _viewportSize),
_setImageSize(prevItem),
_applyZoomPanToItem(prevItem));
}
(_indexDiff = 0),
self.updateCurrZoomItem(),
(_prevItemIndex = _currentItemIndex),
_shout("afterChange");
}
}
},
updateSize: function (force) {
if (!_isFixedPosition && _options.modal) {
var windowScrollY = framework.getScrollY();
if (
(_currentWindowScrollY !== windowScrollY &&
((template.style.top = windowScrollY + "px"),
(_currentWindowScrollY = windowScrollY)),
!force &&
_windowVisibleSize.x === window.innerWidth &&
_windowVisibleSize.y === window.innerHeight)
)
return;
(_windowVisibleSize.x = window.innerWidth),
(_windowVisibleSize.y = window.innerHeight),
(template.style.height = _windowVisibleSize.y + "px");
}
if (
((_viewportSize.x = self.scrollWrap.clientWidth),
(_viewportSize.y = self.scrollWrap.clientHeight),
_updatePageScrollOffset(),
(_slideSize.x =
_viewportSize.x +
Math.round(_viewportSize.x * _options.spacing)),
(_slideSize.y = _viewportSize.y),
_moveMainScroll(_slideSize.x * _currPositionIndex),
_shout("beforeResize"),
void 0 !== _containerShiftIndex)
) {
for (var holder, item, hIndex, i = 0; i < 3; i++)
(holder = _itemHolders[i]),
_setTranslateX(
(i + _containerShiftIndex) * _slideSize.x,
holder.el.style
),
(hIndex = _currentItemIndex + i - 1),
_options.loop &&
2 < _getNumItems() &&
(hIndex = _getLoopedId(hIndex)),
(item = _getItemAt(hIndex)) &&
(_itemsNeedUpdate || item.needsUpdate || !item.bounds)
? (self.cleanSlide(item),
self.setContent(holder, hIndex),
1 === i &&
((self.currItem = item), self.updateCurrZoomItem(!0)),
(item.needsUpdate = !1))
: -1 === holder.index &&
0 <= hIndex &&
self.setContent(holder, hIndex),
item &&
item.container &&
(_calculateItemSize(item, _viewportSize),
_setImageSize(item),
_applyZoomPanToItem(item));
_itemsNeedUpdate = !1;
}
(_startZoomLevel = _currZoomLevel = self.currItem.initialZoomLevel),
(_currPanBounds = self.currItem.bounds) &&
((_panOffset.x = _currPanBounds.center.x),
(_panOffset.y = _currPanBounds.center.y),
_applyCurrentZoomPan(!0)),
_shout("resize");
},
zoomTo: function (
destZoomLevel,
centerPoint,
speed,
easingFn,
updateFn
) {
centerPoint &&
((_startZoomLevel = _currZoomLevel),
(_midZoomPoint.x = Math.abs(centerPoint.x) - _panOffset.x),
(_midZoomPoint.y = Math.abs(centerPoint.y) - _panOffset.y),
_equalizePoints(_startPanOffset, _panOffset));
var destPanBounds = _calculatePanBounds(destZoomLevel, !1),
destPanOffset = {};
_modifyDestPanOffset(
"x",
destPanBounds,
destPanOffset,
destZoomLevel
),
_modifyDestPanOffset(
"y",
destPanBounds,
destPanOffset,
destZoomLevel
);
var initialZoomLevel = _currZoomLevel,
initialPanOffset_x = _panOffset.x,
initialPanOffset_y = _panOffset.y;
_roundPoint(destPanOffset);
function onUpdate(now) {
1 === now
? ((_currZoomLevel = destZoomLevel),
(_panOffset.x = destPanOffset.x),
(_panOffset.y = destPanOffset.y))
: ((_currZoomLevel =
(destZoomLevel - initialZoomLevel) * now +
initialZoomLevel),
(_panOffset.x =
(destPanOffset.x - initialPanOffset_x) * now +
initialPanOffset_x),
(_panOffset.y =
(destPanOffset.y - initialPanOffset_y) * now +
initialPanOffset_y)),
updateFn && updateFn(now),
_applyCurrentZoomPan(1 === now);
}
speed
? _animateProp(
"customZoomTo",
0,
1,
speed,
easingFn || framework.easing.sine.inOut,
onUpdate
)
: onUpdate(1);
},
},
p = {},
p2 = {},
delta = {},
_currPoint = {},
_startPoint = {},
_currPointers = [],
_startMainScrollPos = {},
_posPoints = [],
_tempPoint = {},
_currZoomedItemIndex = 0,
_centerPoint = { x: 0, y: 0 },
_lastReleaseTime = 0,
_mainScrollPos = { x: 0, y: 0 },
_midZoomPoint = { x: 0, y: 0 },
_currCenterPoint = { x: 0, y: 0 },
_stopDragUpdateLoop = function () {
_dragAnimFrame &&
(_cancelAF(_dragAnimFrame), (_dragAnimFrame = null));
},
_dragUpdateLoop = function () {
_isDragging &&
((_dragAnimFrame = _requestAF(_dragUpdateLoop)), _renderMovement());
},
_closestElement = function (el, fn) {
return (
!(!el || el === document) &&
!(
el.getAttribute("class") &&
-1 < el.getAttribute("class").indexOf("pswp__scroll-wrap")
) &&
(fn(el) ? el : _closestElement(el.parentNode, fn))
);
},
_preventObj = {},
_ePoint1 = {},
_ePoint2 = {},
_tempPointsArr = [],
_renderMovement = function () {
if (_currentPoints) {
var numPoints = _currentPoints.length;
if (0 !== numPoints)
if (
(_equalizePoints(p, _currentPoints[0]),
(delta.x = p.x - _currPoint.x),
(delta.y = p.y - _currPoint.y),
_isZooming && 1 < numPoints)
) {
if (
((_currPoint.x = p.x),
(_currPoint.y = p.y),
!delta.x &&
!delta.y &&
(function (p1, p2) {
return p1.x === p2.x && p1.y === p2.y;
})(_currentPoints[1], p2))
)
return;
_equalizePoints(p2, _currentPoints[1]),
_zoomStarted ||
((_zoomStarted = !0), _shout("zoomGestureStarted"));
var pointsDistance = _calculatePointsDistance(p, p2),
zoomLevel = _calculateZoomLevel(pointsDistance);
zoomLevel >
self.currItem.initialZoomLevel +
self.currItem.initialZoomLevel / 15 &&
(_wasOverInitialZoom = !0);
var zoomFriction = 1,
minZoomLevel = _getMinZoomLevel(),
maxZoomLevel = _getMaxZoomLevel();
if (zoomLevel < minZoomLevel)
if (
_options.pinchToClose &&
!_wasOverInitialZoom &&
_startZoomLevel <= self.currItem.initialZoomLevel
) {
var percent =
1 - (minZoomLevel - zoomLevel) / (minZoomLevel / 1.2);
_applyBgOpacity(percent),
_shout("onPinchClose", percent),
(_opacityChanged = !0);
} else
1 <
(zoomFriction =
(minZoomLevel - zoomLevel) / minZoomLevel) &&
(zoomFriction = 1),
(zoomLevel =
minZoomLevel - zoomFriction * (minZoomLevel / 3));
else
maxZoomLevel < zoomLevel &&
(1 <
(zoomFriction =
(zoomLevel - maxZoomLevel) / (6 * minZoomLevel)) &&
(zoomFriction = 1),
(zoomLevel = maxZoomLevel + zoomFriction * minZoomLevel));
zoomFriction < 0 && (zoomFriction = 0),
pointsDistance,
_findCenterOfPoints(p, p2, _centerPoint),
(_currPanDist.x += _centerPoint.x - _currCenterPoint.x),
(_currPanDist.y += _centerPoint.y - _currCenterPoint.y),
_equalizePoints(_currCenterPoint, _centerPoint),
(_panOffset.x = _calculatePanOffset("x", zoomLevel)),
(_panOffset.y = _calculatePanOffset("y", zoomLevel)),
(_isZoomingIn = _currZoomLevel < zoomLevel),
(_currZoomLevel = zoomLevel),
_applyCurrentZoomPan();
} else {
if (!_direction) return;
if (
(_isFirstMove &&
((_isFirstMove = !1),
10 <= Math.abs(delta.x) &&
(delta.x -= _currentPoints[0].x - _startPoint.x),
10 <= Math.abs(delta.y) &&
(delta.y -= _currentPoints[0].y - _startPoint.y)),
(_currPoint.x = p.x),
(_currPoint.y = p.y),
0 === delta.x && 0 === delta.y)
)
return;
if (
"v" === _direction &&
_options.closeOnVerticalDrag &&
"fit" === _options.scaleMode &&
_currZoomLevel === self.currItem.initialZoomLevel
) {
(_currPanDist.y += delta.y), (_panOffset.y += delta.y);
var opacityRatio = _calculateVerticalDragOpacityRatio();
return (
(_verticalDragInitiated = !0),
_shout("onVerticalDrag", opacityRatio),
_applyBgOpacity(opacityRatio),
void _applyCurrentZoomPan()
);
}
!(function (time, x, y) {
if (50 < time - _gestureCheckSpeedTime) {
var o = 2 < _posPoints.length ? _posPoints.shift() : {};
(o.x = x),
(o.y = y),
_posPoints.push(o),
(_gestureCheckSpeedTime = time);
}
})(_getCurrentTime(), p.x, p.y),
(_moved = !0),
(_currPanBounds = self.currItem.bounds),
_panOrMoveMainScroll("x", delta) ||
(_panOrMoveMainScroll("y", delta),
_roundPoint(_panOffset),
_applyCurrentZoomPan());
}
}
},
_initDragReleaseAnimationData = function () {
var lastFlickDuration,
tempReleasePos,
s = {
lastFlickOffset: {},
lastFlickDist: {},
lastFlickSpeed: {},
slowDownRatio: {},
slowDownRatioReverse: {},
speedDecelerationRatio: {},
speedDecelerationRatioAbs: {},
distanceOffset: {},
backAnimDestination: {},
backAnimStarted: {},
calculateSwipeSpeed: function (axis) {
(tempReleasePos =
1 < _posPoints.length
? ((lastFlickDuration =
_getCurrentTime() - _gestureCheckSpeedTime + 50),
_posPoints[_posPoints.length - 2][axis])
: ((lastFlickDuration =
_getCurrentTime() - _gestureStartTime),
_startPoint[axis])),
(s.lastFlickOffset[axis] = _currPoint[axis] - tempReleasePos),
(s.lastFlickDist[axis] = Math.abs(s.lastFlickOffset[axis])),
20 < s.lastFlickDist[axis]
? (s.lastFlickSpeed[axis] =
s.lastFlickOffset[axis] / lastFlickDuration)
: (s.lastFlickSpeed[axis] = 0),
Math.abs(s.lastFlickSpeed[axis]) < 0.1 &&
(s.lastFlickSpeed[axis] = 0),
(s.slowDownRatio[axis] = 0.95),
(s.slowDownRatioReverse[axis] = 1 - s.slowDownRatio[axis]),
(s.speedDecelerationRatio[axis] = 1);
},
calculateOverBoundsAnimOffset: function (axis, speed) {
s.backAnimStarted[axis] ||
(_panOffset[axis] > _currPanBounds.min[axis]
? (s.backAnimDestination[axis] = _currPanBounds.min[axis])
: _panOffset[axis] < _currPanBounds.max[axis] &&
(s.backAnimDestination[axis] = _currPanBounds.max[axis]),
void 0 !== s.backAnimDestination[axis] &&
((s.slowDownRatio[axis] = 0.7),
(s.slowDownRatioReverse[axis] = 1 - s.slowDownRatio[axis]),
s.speedDecelerationRatioAbs[axis] < 0.05 &&
((s.lastFlickSpeed[axis] = 0),
(s.backAnimStarted[axis] = !0),
_animateProp(
"bounceZoomPan" + axis,
_panOffset[axis],
s.backAnimDestination[axis],
speed || 300,
framework.easing.sine.out,
function (pos) {
(_panOffset[axis] = pos), _applyCurrentZoomPan();
}
))));
},
calculateAnimOffset: function (axis) {
s.backAnimStarted[axis] ||
((s.speedDecelerationRatio[axis] =
s.speedDecelerationRatio[axis] *
(s.slowDownRatio[axis] +
s.slowDownRatioReverse[axis] -
(s.slowDownRatioReverse[axis] * s.timeDiff) / 10)),
(s.speedDecelerationRatioAbs[axis] = Math.abs(
s.lastFlickSpeed[axis] * s.speedDecelerationRatio[axis]
)),
(s.distanceOffset[axis] =
s.lastFlickSpeed[axis] *
s.speedDecelerationRatio[axis] *
s.timeDiff),
(_panOffset[axis] += s.distanceOffset[axis]));
},
panAnimLoop: function () {
if (
_animations.zoomPan &&
((_animations.zoomPan.raf = _requestAF(s.panAnimLoop)),
(s.now = _getCurrentTime()),
(s.timeDiff = s.now - s.lastNow),
(s.lastNow = s.now),
s.calculateAnimOffset("x"),
s.calculateAnimOffset("y"),
_applyCurrentZoomPan(),
s.calculateOverBoundsAnimOffset("x"),
s.calculateOverBoundsAnimOffset("y"),
s.speedDecelerationRatioAbs.x < 0.05 &&
s.speedDecelerationRatioAbs.y < 0.05)
)
return (
(_panOffset.x = Math.round(_panOffset.x)),
(_panOffset.y = Math.round(_panOffset.y)),
_applyCurrentZoomPan(),
void _stopAnimation("zoomPan")
);
},
};
return s;
},
_completePanGesture = function (animData) {
if (
(animData.calculateSwipeSpeed("y"),
(_currPanBounds = self.currItem.bounds),
(animData.backAnimDestination = {}),
(animData.backAnimStarted = {}),
Math.abs(animData.lastFlickSpeed.x) <= 0.05 &&
Math.abs(animData.lastFlickSpeed.y) <= 0.05)
)
return (
(animData.speedDecelerationRatioAbs.x =
animData.speedDecelerationRatioAbs.y =
0),
animData.calculateOverBoundsAnimOffset("x"),
animData.calculateOverBoundsAnimOffset("y"),
!0
);
_registerStartAnimation("zoomPan"),
(animData.lastNow = _getCurrentTime()),
animData.panAnimLoop();
},
_finishSwipeMainScrollGesture = function (
gestureType,
_releaseAnimData
) {
var itemChanged, itemsDiff, nextCircle;
if (
(_mainScrollAnimating || (_currZoomedItemIndex = _currentItemIndex),
"swipe" === gestureType)
) {
var totalShiftDist = _currPoint.x - _startPoint.x,
isFastLastFlick = _releaseAnimData.lastFlickDist.x < 10;
30 < totalShiftDist &&
(isFastLastFlick || 20 < _releaseAnimData.lastFlickOffset.x)
? (itemsDiff = -1)
: totalShiftDist < -30 &&
(isFastLastFlick || _releaseAnimData.lastFlickOffset.x < -20) &&
(itemsDiff = 1);
}
itemsDiff &&
((_currentItemIndex += itemsDiff) < 0
? ((_currentItemIndex = _options.loop ? _getNumItems() - 1 : 0),
(nextCircle = !0))
: _currentItemIndex >= _getNumItems() &&
((_currentItemIndex = _options.loop ? 0 : _getNumItems() - 1),
(nextCircle = !0)),
(nextCircle && !_options.loop) ||
((_indexDiff += itemsDiff),
(_currPositionIndex -= itemsDiff),
(itemChanged = !0)));
var finishAnimDuration,
animateToX = _slideSize.x * _currPositionIndex,
animateToDist = Math.abs(animateToX - _mainScrollPos.x);
return (
(finishAnimDuration =
itemChanged ||
animateToX > _mainScrollPos.x ==
0 < _releaseAnimData.lastFlickSpeed.x
? ((finishAnimDuration =
0 < Math.abs(_releaseAnimData.lastFlickSpeed.x)
? animateToDist /
Math.abs(_releaseAnimData.lastFlickSpeed.x)
: 333),
(finishAnimDuration = Math.min(finishAnimDuration, 400)),
Math.max(finishAnimDuration, 250))
: 333),
_currZoomedItemIndex === _currentItemIndex && (itemChanged = !1),
(_mainScrollAnimating = !0),
_shout("mainScrollAnimStart"),
_animateProp(
"mainScroll",
_mainScrollPos.x,
animateToX,
finishAnimDuration,
framework.easing.cubic.out,
_moveMainScroll,
function () {
_stopAllAnimations(),
(_mainScrollAnimating = !1),
(_currZoomedItemIndex = -1),
(!itemChanged &&
_currZoomedItemIndex === _currentItemIndex) ||
self.updateCurrItem(),
_shout("mainScrollAnimComplete");
}
),
itemChanged && self.updateCurrItem(!0),
itemChanged
);
},
_calculateZoomLevel = function (touchesDistance) {
return (1 / _startPointsDistance) * touchesDistance * _startZoomLevel;
},
_completeZoomGesture = function () {
var destZoomLevel = _currZoomLevel,
minZoomLevel = _getMinZoomLevel(),
maxZoomLevel = _getMaxZoomLevel();
_currZoomLevel < minZoomLevel
? (destZoomLevel = minZoomLevel)
: maxZoomLevel < _currZoomLevel && (destZoomLevel = maxZoomLevel);
var onUpdate,
initialOpacity = _bgOpacity;
return (
_opacityChanged &&
!_isZoomingIn &&
!_wasOverInitialZoom &&
_currZoomLevel < minZoomLevel
? self.close()
: (_opacityChanged &&
(onUpdate = function (now) {
_applyBgOpacity(
(1 - initialOpacity) * now + initialOpacity
);
}),
self.zoomTo(
destZoomLevel,
0,
200,
framework.easing.cubic.out,
onUpdate
)),
!0
);
};
_registerModule("Gestures", {
publicMethods: {
initGestures: function () {
function addEventNames(pref, down, move, up, cancel) {
(_dragStartEvent = pref + down),
(_dragMoveEvent = pref + move),
(_dragEndEvent = pref + up),
(_dragCancelEvent = cancel ? pref + cancel : "");
}
(_pointerEventEnabled = _features.pointerEvent) &&
_features.touch &&
(_features.touch = !1),
_pointerEventEnabled
? navigator.msPointerEnabled
? addEventNames("MSPointer", "Down", "Move", "Up", "Cancel")
: addEventNames("pointer", "down", "move", "up", "cancel")
: _features.touch
? (addEventNames("touch", "start", "move", "end", "cancel"),
(_likelyTouchDevice = !0))
: addEventNames("mouse", "down", "move", "up"),
(_upMoveEvents =
_dragMoveEvent + " " + _dragEndEvent + " " + _dragCancelEvent),
(_downEvents = _dragStartEvent),
_pointerEventEnabled &&
!_likelyTouchDevice &&
(_likelyTouchDevice =
1 < navigator.maxTouchPoints ||
1 < navigator.msMaxTouchPoints),
(self.likelyTouchDevice = _likelyTouchDevice),
(_globalEventHandlers[_dragStartEvent] = _onDragStart),
(_globalEventHandlers[_dragMoveEvent] = _onDragMove),
(_globalEventHandlers[_dragEndEvent] = _onDragRelease),
_dragCancelEvent &&
(_globalEventHandlers[_dragCancelEvent] =
_globalEventHandlers[_dragEndEvent]),
_features.touch &&
((_downEvents += " mousedown"),
(_upMoveEvents += " mousemove mouseup"),
(_globalEventHandlers.mousedown =
_globalEventHandlers[_dragStartEvent]),
(_globalEventHandlers.mousemove =
_globalEventHandlers[_dragMoveEvent]),
(_globalEventHandlers.mouseup =
_globalEventHandlers[_dragEndEvent])),
_likelyTouchDevice || (_options.allowPanToNext = !1);
},
},
});
function _appendImage(
index,
item,
baseDiv,
img,
preventAnimation,
keepPlaceholder
) {
item.loadError ||
(img &&
((item.imageAppended = !0),
_setImageSize(
item,
img,
item === self.currItem && _renderMaxResolution
),
baseDiv.appendChild(img),
keepPlaceholder &&
setTimeout(function () {
item &&
item.loaded &&
item.placeholder &&
((item.placeholder.style.display = "none"),
(item.placeholder = null));
}, 500)));
}
function _preloadImage(item) {
function onComplete() {
(item.loading = !1),
(item.loaded = !0),
item.loadComplete ? item.loadComplete(item) : (item.img = null),
(img.onload = img.onerror = null),
(img = null);
}
(item.loading = !0), (item.loaded = !1);
var img = (item.img = framework.createEl("pswp__img", "img"));
return (
(img.onload = onComplete),
(img.onerror = function () {
(item.loadError = !0), onComplete();
}),
(img.src = item.src),
img
);
}
function _checkForError(item, cleanUp) {
if (item.src && item.loadError && item.container)
return (
cleanUp && (item.container.innerHTML = ""),
(item.container.innerHTML = _options.errorMsg.replace(
"%url%",
item.src
)),
!0
);
}
function _appendImagesPool() {
if (_imagesToAppendPool.length) {
for (var poolItem, i = 0; i < _imagesToAppendPool.length; i++)
(poolItem = _imagesToAppendPool[i]).holder.index ===
poolItem.index &&
_appendImage(
poolItem.index,
poolItem.item,
poolItem.baseDiv,
poolItem.img,
0,
poolItem.clearPlaceholder
);
_imagesToAppendPool = [];
}
}
var _showOrHideTimeout,
_items,
_initialContentSet,
_initialZoomRunning,
_getItemAt,
_getNumItems,
_showOrHide = function (item, img, out, completeFn) {
var thumbBounds;
_showOrHideTimeout && clearTimeout(_showOrHideTimeout),
(_initialContentSet = _initialZoomRunning = !0),
item.initialLayout
? ((thumbBounds = item.initialLayout),
(item.initialLayout = null))
: (thumbBounds =
_options.getThumbBoundsFn &&
_options.getThumbBoundsFn(_currentItemIndex));
function onComplete() {
_stopAnimation("initialZoom"),
out
? (self.template.removeAttribute("style"),
self.bg.removeAttribute("style"))
: (_applyBgOpacity(1),
img && (img.style.display = "block"),
framework.addClass(template, "pswp--animated-in"),
_shout("initialZoom" + (out ? "OutEnd" : "InEnd"))),
completeFn && completeFn(),
(_initialZoomRunning = !1);
}
var duration = out
? _options.hideAnimationDuration
: _options.showAnimationDuration;
if (!duration || !thumbBounds || void 0 === thumbBounds.x)
return (
_shout("initialZoom" + (out ? "Out" : "In")),
(_currZoomLevel = item.initialZoomLevel),
_equalizePoints(_panOffset, item.initialPosition),
_applyCurrentZoomPan(),
(template.style.opacity = out ? 0 : 1),
_applyBgOpacity(1),
void (duration
? setTimeout(function () {
onComplete();
}, duration)
: onComplete())
);
var closeWithRaf, fadeEverything;
(closeWithRaf = _closedByScroll),
(fadeEverything =
!self.currItem.src ||
self.currItem.loadError ||
_options.showHideOpacity),
item.miniImg &&
(item.miniImg.style.webkitBackfaceVisibility = "hidden"),
out ||
((_currZoomLevel = thumbBounds.w / item.w),
(_panOffset.x = thumbBounds.x),
(_panOffset.y = thumbBounds.y - _initalWindowScrollY),
(self[fadeEverything ? "template" : "bg"].style.opacity = 0.001),
_applyCurrentZoomPan()),
_registerStartAnimation("initialZoom"),
out &&
!closeWithRaf &&
framework.removeClass(template, "pswp--animated-in"),
fadeEverything &&
(out
? framework[(closeWithRaf ? "remove" : "add") + "Class"](
template,
"pswp--animate_opacity"
)
: setTimeout(function () {
framework.addClass(template, "pswp--animate_opacity");
}, 30)),
(_showOrHideTimeout = setTimeout(
function () {
if ((_shout("initialZoom" + (out ? "Out" : "In")), out)) {
var destZoomLevel = thumbBounds.w / item.w,
initialPanOffset_x = _panOffset.x,
initialPanOffset_y = _panOffset.y,
initialZoomLevel = _currZoomLevel,
initalBgOpacity = _bgOpacity,
onUpdate = function (now) {
1 === now
? ((_currZoomLevel = destZoomLevel),
(_panOffset.x = thumbBounds.x),
(_panOffset.y =
thumbBounds.y - _currentWindowScrollY))
: ((_currZoomLevel =
(destZoomLevel - initialZoomLevel) * now +
initialZoomLevel),
(_panOffset.x =
(thumbBounds.x - initialPanOffset_x) * now +
initialPanOffset_x),
(_panOffset.y =
(thumbBounds.y -
_currentWindowScrollY -
initialPanOffset_y) *
now +
initialPanOffset_y)),
_applyCurrentZoomPan(),
fadeEverything
? (template.style.opacity = 1 - now)
: _applyBgOpacity(
initalBgOpacity - now * initalBgOpacity
);
};
closeWithRaf
? _animateProp(
"initialZoom",
0,
1,
duration,
framework.easing.cubic.out,
onUpdate,
onComplete
)
: (onUpdate(1),
(_showOrHideTimeout = setTimeout(
onComplete,
duration + 20
)));
} else
(_currZoomLevel = item.initialZoomLevel),
_equalizePoints(_panOffset, item.initialPosition),
_applyCurrentZoomPan(),
_applyBgOpacity(1),
fadeEverything
? (template.style.opacity = 1)
: _applyBgOpacity(1),
(_showOrHideTimeout = setTimeout(
onComplete,
duration + 20
));
},
out ? 25 : 90
));
},
_tempPanAreaSize = {},
_imagesToAppendPool = [],
_controllerDefaultOptions = {
index: 0,
errorMsg:
'',
forceProgressiveLoading: !1,
preload: [1, 1],
getNumItemsFn: function () {
return _items.length;
},
},
_calculateItemSize = function (item, viewportSize, zoomLevel) {
if (!item.src || item.loadError)
return (
(item.w = item.h = 0),
(item.initialZoomLevel = item.fitRatio = 1),
(item.bounds = {
center: { x: 0, y: 0 },
max: { x: 0, y: 0 },
min: { x: 0, y: 0 },
}),
(item.initialPosition = item.bounds.center),
item.bounds
);
var isInitial = !zoomLevel;
if (
(isInitial &&
(item.vGap || (item.vGap = { top: 0, bottom: 0 }),
_shout("parseVerticalMargin", item)),
(_tempPanAreaSize.x = viewportSize.x),
(_tempPanAreaSize.y =
viewportSize.y - item.vGap.top - item.vGap.bottom),
isInitial)
) {
var hRatio = _tempPanAreaSize.x / item.w,
vRatio = _tempPanAreaSize.y / item.h;
item.fitRatio = hRatio < vRatio ? hRatio : vRatio;
var scaleMode = _options.scaleMode;
"orig" === scaleMode
? (zoomLevel = 1)
: "fit" === scaleMode && (zoomLevel = item.fitRatio),
1 < zoomLevel && (zoomLevel = 1),
(item.initialZoomLevel = zoomLevel),
item.bounds ||
(item.bounds = {
center: { x: 0, y: 0 },
max: { x: 0, y: 0 },
min: { x: 0, y: 0 },
});
}
return zoomLevel
? ((function (item, realPanElementW, realPanElementH) {
var bounds = item.bounds;
(bounds.center.x = Math.round(
(_tempPanAreaSize.x - realPanElementW) / 2
)),
(bounds.center.y =
Math.round((_tempPanAreaSize.y - realPanElementH) / 2) +
item.vGap.top),
(bounds.max.x =
realPanElementW > _tempPanAreaSize.x
? Math.round(_tempPanAreaSize.x - realPanElementW)
: bounds.center.x),
(bounds.max.y =
realPanElementH > _tempPanAreaSize.y
? Math.round(_tempPanAreaSize.y - realPanElementH) +
item.vGap.top
: bounds.center.y),
(bounds.min.x =
realPanElementW > _tempPanAreaSize.x ? 0 : bounds.center.x),
(bounds.min.y =
realPanElementH > _tempPanAreaSize.y
? item.vGap.top
: bounds.center.y);
})(item, item.w * zoomLevel, item.h * zoomLevel),
isInitial &&
zoomLevel === item.initialZoomLevel &&
(item.initialPosition = item.bounds.center),
item.bounds)
: void 0;
},
_setImageSize = function (item, img, maxRes) {
if (item.src) {
img = img || item.container.lastChild;
var w = maxRes ? item.w : Math.round(item.w * item.fitRatio),
h = maxRes ? item.h : Math.round(item.h * item.fitRatio);
item.placeholder &&
!item.loaded &&
((item.placeholder.style.width = w + "px"),
(item.placeholder.style.height = h + "px")),
(img.style.width = w + "px"),
(img.style.height = h + "px");
}
};
_registerModule("Controller", {
publicMethods: {
lazyLoadItem: function (index) {
index = _getLoopedId(index);
var item = _getItemAt(index);
item &&
((!item.loaded && !item.loading) || _itemsNeedUpdate) &&
(_shout("gettingData", index, item),
item.src && _preloadImage(item));
},
initController: function () {
framework.extend(_options, _controllerDefaultOptions, !0),
(self.items = _items = items),
(_getItemAt = self.getItemAt),
(_getNumItems = _options.getNumItemsFn),
_options.loop,
_getNumItems() < 3 && (_options.loop = !1),
_listen("beforeChange", function (diff) {
var i,
p = _options.preload,
isNext = null === diff || 0 <= diff,
preloadBefore = Math.min(p[0], _getNumItems()),
preloadAfter = Math.min(p[1], _getNumItems());
for (i = 1; i <= (isNext ? preloadAfter : preloadBefore); i++)
self.lazyLoadItem(_currentItemIndex + i);
for (i = 1; i <= (isNext ? preloadBefore : preloadAfter); i++)
self.lazyLoadItem(_currentItemIndex - i);
}),
_listen("initialLayout", function () {
self.currItem.initialLayout =
_options.getThumbBoundsFn &&
_options.getThumbBoundsFn(_currentItemIndex);
}),
_listen("mainScrollAnimComplete", _appendImagesPool),
_listen("initialZoomInEnd", _appendImagesPool),
_listen("destroy", function () {
for (var item, i = 0; i < _items.length; i++)
(item = _items[i]).container && (item.container = null),
item.placeholder && (item.placeholder = null),
item.img && (item.img = null),
item.preloader && (item.preloader = null),
item.loadError && (item.loaded = item.loadError = !1);
_imagesToAppendPool = null;
});
},
getItemAt: function (index) {
return 0 <= index && void 0 !== _items[index] && _items[index];
},
allowProgressiveImg: function () {
return (
_options.forceProgressiveLoading ||
!_likelyTouchDevice ||
_options.mouseUsed ||
1200 < screen.width
);
},
setContent: function (holder, index) {
_options.loop && (index = _getLoopedId(index));
var prevItem = self.getItemAt(holder.index);
prevItem && (prevItem.container = null);
var img,
item = self.getItemAt(index);
if (item) {
_shout("gettingData", index, item), (holder.index = index);
var baseDiv = ((holder.item = item).container =
framework.createEl("pswp__zoom-wrap"));
if (
(!item.src &&
item.html &&
(item.html.tagName
? baseDiv.appendChild(item.html)
: (baseDiv.innerHTML = item.html)),
_checkForError(item),
_calculateItemSize(item, _viewportSize),
!item.src || item.loadError || item.loaded)
)
item.src &&
!item.loadError &&
(((img = framework.createEl(
"pswp__img",
"img"
)).style.opacity = 1),
(img.src = item.src),
_setImageSize(item, img),
_appendImage(0, item, baseDiv, img));
else {
if (
((item.loadComplete = function (item) {
if (_isOpen) {
if (holder && holder.index === index) {
if (_checkForError(item, !0))
return (
(item.loadComplete = item.img = null),
_calculateItemSize(item, _viewportSize),
_applyZoomPanToItem(item),
void (
holder.index === _currentItemIndex &&
self.updateCurrZoomItem()
)
);
item.imageAppended
? !_initialZoomRunning &&
item.placeholder &&
((item.placeholder.style.display = "none"),
(item.placeholder = null))
: _features.transform &&
(_mainScrollAnimating || _initialZoomRunning)
? _imagesToAppendPool.push({
item: item,
baseDiv: baseDiv,
img: item.img,
index: index,
holder: holder,
clearPlaceholder: !0,
})
: _appendImage(0, item, baseDiv, item.img, 0, !0);
}
(item.loadComplete = null),
(item.img = null),
_shout("imageLoadComplete", index, item);
}
}),
framework.features.transform)
) {
var placeholderClassName = "pswp__img pswp__img--placeholder";
placeholderClassName += item.msrc
? ""
: " pswp__img--placeholder--blank";
var placeholder = framework.createEl(
placeholderClassName,
item.msrc ? "img" : ""
);
item.msrc && (placeholder.src = item.msrc),
_setImageSize(item, placeholder),
baseDiv.appendChild(placeholder),
(item.placeholder = placeholder);
}
item.loading || _preloadImage(item),
self.allowProgressiveImg() &&
(!_initialContentSet && _features.transform
? _imagesToAppendPool.push({
item: item,
baseDiv: baseDiv,
img: item.img,
index: index,
holder: holder,
})
: _appendImage(0, item, baseDiv, item.img, 0, !0));
}
_initialContentSet || index !== _currentItemIndex
? _applyZoomPanToItem(item)
: ((_currZoomElementStyle = baseDiv.style),
_showOrHide(item, img || item.img)),
(holder.el.innerHTML = ""),
holder.el.appendChild(baseDiv);
} else holder.el.innerHTML = "";
},
cleanSlide: function (item) {
item.img && (item.img.onload = item.img.onerror = null),
(item.loaded = item.loading = item.img = item.imageAppended = !1);
},
},
});
function _dispatchTapEvent(origEvent, releasePoint, pointerType) {
var e = document.createEvent("CustomEvent"),
eDetail = {
origEvent: origEvent,
target: origEvent.target,
releasePoint: releasePoint,
pointerType: pointerType || "touch",
};
e.initCustomEvent("pswpTap", !0, !0, eDetail),
origEvent.target.dispatchEvent(e);
}
var tapTimer,
_wheelDelta,
tapReleasePoint = {};
_registerModule("Tap", {
publicMethods: {
initTap: function () {
_listen("firstTouchStart", self.onTapStart),
_listen("touchRelease", self.onTapRelease),
_listen("destroy", function () {
(tapReleasePoint = {}), (tapTimer = null);
});
},
onTapStart: function (touchList) {
1 < touchList.length && (clearTimeout(tapTimer), (tapTimer = null));
},
onTapRelease: function (e, releasePoint) {
if (releasePoint && !_moved && !_isMultitouch && !_numAnimations) {
var p0 = releasePoint;
if (
tapTimer &&
(clearTimeout(tapTimer),
(tapTimer = null),
(function (touch0, touch1) {
return (
Math.abs(touch0.x - touch1.x) < 25 &&
Math.abs(touch0.y - touch1.y) < 25
);
})(p0, tapReleasePoint))
)
return void _shout("doubleTap", p0);
if ("mouse" === releasePoint.type)
return void _dispatchTapEvent(e, releasePoint, "mouse");
if (
"BUTTON" === e.target.tagName.toUpperCase() ||
framework.hasClass(e.target, "pswp__single-tap")
)
return void _dispatchTapEvent(e, releasePoint);
_equalizePoints(tapReleasePoint, p0),
(tapTimer = setTimeout(function () {
_dispatchTapEvent(e, releasePoint), (tapTimer = null);
}, 300));
}
},
},
}),
_registerModule("DesktopZoom", {
publicMethods: {
initDesktopZoom: function () {
_oldIE ||
(_likelyTouchDevice
? _listen("mouseUsed", function () {
self.setupDesktopZoom();
})
: self.setupDesktopZoom(!0));
},
setupDesktopZoom: function (onInit) {
_wheelDelta = {};
var events = "wheel mousewheel DOMMouseScroll";
_listen("bindEvents", function () {
framework.bind(template, events, self.handleMouseWheel);
}),
_listen("unbindEvents", function () {
_wheelDelta &&
framework.unbind(template, events, self.handleMouseWheel);
}),
(self.mouseZoomedIn = !1);
function updateZoomable() {
self.mouseZoomedIn &&
(framework.removeClass(template, "pswp--zoomed-in"),
(self.mouseZoomedIn = !1)),
_currZoomLevel < 1
? framework.addClass(template, "pswp--zoom-allowed")
: framework.removeClass(template, "pswp--zoom-allowed"),
removeDraggingClass();
}
var hasDraggingClass,
removeDraggingClass = function () {
hasDraggingClass &&
(framework.removeClass(template, "pswp--dragging"),
(hasDraggingClass = !1));
};
_listen("resize", updateZoomable),
_listen("afterChange", updateZoomable),
_listen("pointerDown", function () {
self.mouseZoomedIn &&
((hasDraggingClass = !0),
framework.addClass(template, "pswp--dragging"));
}),
_listen("pointerUp", removeDraggingClass),
onInit || updateZoomable();
},
handleMouseWheel: function (e) {
if (_currZoomLevel <= self.currItem.fitRatio)
return (
_options.modal &&
(!_options.closeOnScroll || _numAnimations || _isDragging
? e.preventDefault()
: _transformKey &&
2 < Math.abs(e.deltaY) &&
((_closedByScroll = !0), self.close())),
!0
);
if ((e.stopPropagation(), (_wheelDelta.x = 0), "deltaX" in e))
1 === e.deltaMode
? ((_wheelDelta.x = 18 * e.deltaX),
(_wheelDelta.y = 18 * e.deltaY))
: ((_wheelDelta.x = e.deltaX), (_wheelDelta.y = e.deltaY));
else if ("wheelDelta" in e)
e.wheelDeltaX && (_wheelDelta.x = -0.16 * e.wheelDeltaX),
e.wheelDeltaY
? (_wheelDelta.y = -0.16 * e.wheelDeltaY)
: (_wheelDelta.y = -0.16 * e.wheelDelta);
else {
if (!("detail" in e)) return;
_wheelDelta.y = e.detail;
}
_calculatePanBounds(_currZoomLevel, !0);
var newPanX = _panOffset.x - _wheelDelta.x,
newPanY = _panOffset.y - _wheelDelta.y;
(_options.modal ||
(newPanX <= _currPanBounds.min.x &&
newPanX >= _currPanBounds.max.x &&
newPanY <= _currPanBounds.min.y &&
newPanY >= _currPanBounds.max.y)) &&
e.preventDefault(),
self.panTo(newPanX, newPanY);
},
toggleDesktopZoom: function (centerPoint) {
centerPoint = centerPoint || {
x: _viewportSize.x / 2 + _offset.x,
y: _viewportSize.y / 2 + _offset.y,
};
var doubleTapZoomLevel = _options.getDoubleTapZoom(
!0,
self.currItem
),
zoomOut = _currZoomLevel === doubleTapZoomLevel;
(self.mouseZoomedIn = !zoomOut),
self.zoomTo(
zoomOut ? self.currItem.initialZoomLevel : doubleTapZoomLevel,
centerPoint,
333
),
framework[(zoomOut ? "remove" : "add") + "Class"](
template,
"pswp--zoomed-in"
);
},
},
});
function _getHash() {
return _windowLoc.hash.substring(1);
}
function _cleanHistoryTimeouts() {
_historyUpdateTimeout && clearTimeout(_historyUpdateTimeout),
_hashAnimCheckTimeout && clearTimeout(_hashAnimCheckTimeout);
}
function _parseItemIndexFromURL() {
var hash = _getHash(),
params = {};
if (hash.length < 5) return params;
var i,
vars = hash.split("&");
for (i = 0; i < vars.length; i++)
if (vars[i]) {
var pair = vars[i].split("=");
pair.length < 2 || (params[pair[0]] = pair[1]);
}
if (_options.galleryPIDs) {
var searchfor = params.pid;
for (i = params.pid = 0; i < _items.length; i++)
if (_items[i].pid === searchfor) {
params.pid = i;
break;
}
} else params.pid = parseInt(params.pid, 10) - 1;
return params.pid < 0 && (params.pid = 0), params;
}
var _historyUpdateTimeout,
_hashChangeTimeout,
_hashAnimCheckTimeout,
_hashChangedByScript,
_hashChangedByHistory,
_hashReseted,
_initialHash,
_historyChanged,
_closedFromURL,
_urlChangedOnce,
_windowLoc,
_supportsPushState,
_historyDefaultOptions = { history: !0, galleryUID: 1 },
_updateHash = function () {
if (
(_hashAnimCheckTimeout && clearTimeout(_hashAnimCheckTimeout),
_numAnimations || _isDragging)
)
_hashAnimCheckTimeout = setTimeout(_updateHash, 500);
else {
_hashChangedByScript
? clearTimeout(_hashChangeTimeout)
: (_hashChangedByScript = !0);
var pid = _currentItemIndex + 1,
item = _getItemAt(_currentItemIndex);
item.hasOwnProperty("pid") && (pid = item.pid);
var newHash =
_initialHash + "&gid=" + _options.galleryUID + "&pid=" + pid;
_historyChanged ||
(-1 === _windowLoc.hash.indexOf(newHash) &&
(_urlChangedOnce = !0));
var newURL = _windowLoc.href.split("#")[0] + "#" + newHash;
_supportsPushState
? "#" + newHash !== window.location.hash &&
history[_historyChanged ? "replaceState" : "pushState"](
"",
document.title,
newURL
)
: _historyChanged
? _windowLoc.replace(newURL)
: (_windowLoc.hash = newHash),
(_historyChanged = !0),
(_hashChangeTimeout = setTimeout(function () {
_hashChangedByScript = !1;
}, 60));
}
};
_registerModule("History", {
publicMethods: {
initHistory: function () {
if (
(framework.extend(_options, _historyDefaultOptions, !0),
_options.history)
) {
(_windowLoc = window.location),
(_historyChanged = _closedFromURL = _urlChangedOnce = !1),
(_initialHash = _getHash()),
(_supportsPushState = "pushState" in history),
-1 < _initialHash.indexOf("gid=") &&
(_initialHash = (_initialHash =
_initialHash.split("&gid=")[0]).split("?gid=")[0]),
_listen("afterChange", self.updateURL),
_listen("unbindEvents", function () {
framework.unbind(window, "hashchange", self.onHashChange);
});
var returnToOriginal = function () {
(_hashReseted = !0),
_closedFromURL ||
(_urlChangedOnce
? history.back()
: _initialHash
? (_windowLoc.hash = _initialHash)
: _supportsPushState
? history.pushState(
"",
document.title,
_windowLoc.pathname + _windowLoc.search
)
: (_windowLoc.hash = "")),
_cleanHistoryTimeouts();
};
_listen("unbindEvents", function () {
_closedByScroll && returnToOriginal();
}),
_listen("destroy", function () {
_hashReseted || returnToOriginal();
}),
_listen("firstUpdate", function () {
_currentItemIndex = _parseItemIndexFromURL().pid;
});
var index = _initialHash.indexOf("pid=");
-1 < index &&
"&" ===
(_initialHash = _initialHash.substring(0, index)).slice(-1) &&
(_initialHash = _initialHash.slice(0, -1)),
setTimeout(function () {
_isOpen &&
framework.bind(window, "hashchange", self.onHashChange);
}, 40);
}
},
onHashChange: function () {
if (_getHash() === _initialHash)
return (_closedFromURL = !0), void self.close();
_hashChangedByScript ||
((_hashChangedByHistory = !0),
self.goTo(_parseItemIndexFromURL().pid),
(_hashChangedByHistory = !1));
},
updateURL: function () {
_cleanHistoryTimeouts(),
_hashChangedByHistory ||
(_historyChanged
? (_historyUpdateTimeout = setTimeout(_updateHash, 800))
: _updateHash());
},
},
}),
framework.extend(self, publicMethods);
};
}),
(function (root, factory) {
"function" == typeof define && define.amd
? define(factory)
: "object" == typeof exports
? (module.exports = factory())
: (root.PhotoSwipeUI_Default = factory());
})(this, function () {
"use strict";
return function (pswp, framework) {
function _onControlsTap(e) {
if (_blockControlsTap) return !0;
(e = e || window.event),
_options.timeToIdle &&
_options.mouseUsed &&
!_isIdle &&
_onIdleMouseMove();
for (
var uiElement,
found,
clickedClass =
(e.target || e.srcElement).getAttribute("class") || "",
i = 0;
i < _uiElements.length;
i++
)
(uiElement = _uiElements[i]).onTap &&
-1 < clickedClass.indexOf("pswp__" + uiElement.name) &&
(uiElement.onTap(), (found = !0));
if (found) {
e.stopPropagation && e.stopPropagation(), (_blockControlsTap = !0);
var tapDelay = framework.features.isOldAndroid ? 600 : 30;
setTimeout(function () {
_blockControlsTap = !1;
}, tapDelay);
}
}
function _togglePswpClass(el, cName, add) {
framework[(add ? "add" : "remove") + "Class"](el, "pswp__" + cName);
}
function _countNumItems() {
var hasOneSlide = 1 === _options.getNumItemsFn();
hasOneSlide !== _galleryHasOneSlide &&
(_togglePswpClass(_controls, "ui--one-slide", hasOneSlide),
(_galleryHasOneSlide = hasOneSlide));
}
function _toggleShareModalClass() {
_togglePswpClass(_shareModal, "share-modal--hidden", _shareModalHidden);
}
function _toggleShareModal() {
return (
(_shareModalHidden = !_shareModalHidden)
? (framework.removeClass(_shareModal, "pswp__share-modal--fade-in"),
setTimeout(function () {
_shareModalHidden && _toggleShareModalClass();
}, 300))
: (_toggleShareModalClass(),
setTimeout(function () {
_shareModalHidden ||
framework.addClass(_shareModal, "pswp__share-modal--fade-in");
}, 30)),
_shareModalHidden || _updateShareURLs(),
!1
);
}
function _openWindowPopup(e) {
var target = (e = e || window.event).target || e.srcElement;
return (
pswp.shout("shareLinkClick", e, target),
!!target.href &&
(!!target.hasAttribute("download") ||
(window.open(
target.href,
"pswp_share",
"scrollbars=yes,resizable=yes,toolbar=no,location=yes,width=550,height=420,top=100,left=" +
(window.screen ? Math.round(screen.width / 2 - 275) : 100)
),
_shareModalHidden || _toggleShareModal(),
!1))
);
}
function _hasCloseClass(target) {
for (var i = 0; i < _options.closeElClasses.length; i++)
if (framework.hasClass(target, "pswp__" + _options.closeElClasses[i]))
return !0;
}
function _onMouseLeaveWindow(e) {
var from = (e = e || window.event).relatedTarget || e.toElement;
(from && "HTML" !== from.nodeName) ||
(clearTimeout(_idleTimer),
(_idleTimer = setTimeout(function () {
ui.setIdle(!0);
}, _options.timeToIdleOutside)));
}
function _applyNavBarGaps(item) {
var gap = item.vGap;
if (
!pswp.likelyTouchDevice ||
_options.mouseUsed ||
screen.width > _options.fitControlsWidth
) {
var bars = _options.barsSize;
if (_options.captionEl && "auto" === bars.bottom)
if (
(_fakeCaptionContainer ||
((_fakeCaptionContainer = framework.createEl(
"pswp__caption pswp__caption--fake"
)).appendChild(framework.createEl("pswp__caption__center")),
_controls.insertBefore(
_fakeCaptionContainer,
_captionContainer
),
framework.addClass(_controls, "pswp__ui--fit")),
_options.addCaptionHTMLFn(item, _fakeCaptionContainer, !0))
) {
var captionSize = _fakeCaptionContainer.clientHeight;
gap.bottom = parseInt(captionSize, 10) || 44;
} else gap.bottom = bars.top;
else gap.bottom = "auto" === bars.bottom ? 0 : bars.bottom;
gap.top = bars.top;
} else gap.top = gap.bottom = 0;
}
function _setupUIElements() {
function loopThroughChildElements(sChildren) {
if (sChildren)
for (var l = sChildren.length, i = 0; i < l; i++) {
(item = sChildren[i]), (classAttr = item.className);
for (var a = 0; a < _uiElements.length; a++)
(uiElement = _uiElements[a]),
-1 < classAttr.indexOf("pswp__" + uiElement.name) &&
(_options[uiElement.option]
? (framework.removeClass(item, "pswp__element--disabled"),
uiElement.onInit && uiElement.onInit(item))
: framework.addClass(item, "pswp__element--disabled"));
}
}
var item, classAttr, uiElement;
loopThroughChildElements(_controls.children);
var topBar = framework.getChildByClass(_controls, "pswp__top-bar");
topBar && loopThroughChildElements(topBar.children);
}
var _fullscrenAPI,
_controls,
_captionContainer,
_fakeCaptionContainer,
_indexIndicator,
_shareButton,
_shareModal,
_initalCloseOnScrollValue,
_isIdle,
_listen,
_loadingIndicator,
_loadingIndicatorHidden,
_loadingIndicatorTimeout,
_galleryHasOneSlide,
_options,
_blockControlsTap,
_idleInterval,
_idleTimer,
ui = this,
_overlayUIUpdated = !1,
_controlsVisible = !0,
_shareModalHidden = !0,
_defaultUIOptions = {
barsSize: { top: 44, bottom: "auto" },
closeElClasses: ["item", "caption", "zoom-wrap", "ui", "top-bar"],
timeToIdle: 4e3,
timeToIdleOutside: 1e3,
loadingIndicatorDelay: 1e3,
addCaptionHTMLFn: function (item, captionEl) {
return item.title
? ((captionEl.children[0].innerHTML = item.title), !0)
: ((captionEl.children[0].innerHTML = ""), !1);
},
closeEl: !0,
captionEl: !0,
fullscreenEl: !0,
zoomEl: !0,
shareEl: !0,
counterEl: !0,
arrowEl: !0,
preloaderEl: !0,
tapToClose: !1,
tapToToggleControls: !0,
clickToCloseNonZoomable: !0,
shareButtons: [
{
id: "facebook",
label: "Share on Facebook",
url: "https://www.facebook.com/sharer/sharer.php?u={{url}}",
},
{
id: "twitter",
label: "Tweet",
url: "https://twitter.com/intent/tweet?text={{text}}&url={{url}}",
},
{
id: "pinterest",
label: "Pin it",
url: "http://www.pinterest.com/pin/create/button/?url={{url}}&media={{image_url}}&description={{text}}",
},
{
id: "download",
label: "Download image",
url: "{{raw_image_url}}",
download: !0,
},
],
getImageURLForShare: function () {
return pswp.currItem.src || "";
},
getPageURLForShare: function () {
return window.location.href;
},
getTextForShare: function () {
return pswp.currItem.title || "";
},
indexIndicatorSep: " / ",
fitControlsWidth: 1200,
},
_updateShareURLs = function () {
for (
var shareButtonData,
image_url,
page_url,
share_text,
shareButtonOut = "",
i = 0;
i < _options.shareButtons.length;
i++
)
(shareButtonData = _options.shareButtons[i]),
(image_url = _options.getImageURLForShare(shareButtonData)),
(page_url = _options.getPageURLForShare(shareButtonData)),
(share_text = _options.getTextForShare(shareButtonData)),
(shareButtonOut +=
'" +
shareButtonData.label +
""),
_options.parseShareButtonOut &&
(shareButtonOut = _options.parseShareButtonOut(
shareButtonData,
shareButtonOut
));
(_shareModal.children[0].innerHTML = shareButtonOut),
(_shareModal.children[0].onclick = _openWindowPopup);
},
_idleIncrement = 0,
_onIdleMouseMove = function () {
clearTimeout(_idleTimer),
(_idleIncrement = 0),
_isIdle && ui.setIdle(!1);
},
_toggleLoadingIndicator = function (hide) {
_loadingIndicatorHidden !== hide &&
(_togglePswpClass(_loadingIndicator, "preloader--active", !hide),
(_loadingIndicatorHidden = hide));
},
_uiElements = [
{
name: "caption",
option: "captionEl",
onInit: function (el) {
_captionContainer = el;
},
},
{
name: "share-modal",
option: "shareEl",
onInit: function (el) {
_shareModal = el;
},
onTap: function () {
_toggleShareModal();
},
},
{
name: "button--share",
option: "shareEl",
onInit: function (el) {
_shareButton = el;
},
onTap: function () {
_toggleShareModal();
},
},
{
name: "button--zoom",
option: "zoomEl",
onTap: pswp.toggleDesktopZoom,
},
{
name: "counter",
option: "counterEl",
onInit: function (el) {
_indexIndicator = el;
},
},
{ name: "button--close", option: "closeEl", onTap: pswp.close },
{ name: "button--arrow--left", option: "arrowEl", onTap: pswp.prev },
{ name: "button--arrow--right", option: "arrowEl", onTap: pswp.next },
{
name: "button--fs",
option: "fullscreenEl",
onTap: function () {
_fullscrenAPI.isFullscreen()
? _fullscrenAPI.exit()
: _fullscrenAPI.enter();
},
},
{
name: "preloader",
option: "preloaderEl",
onInit: function (el) {
_loadingIndicator = el;
},
},
];
(ui.init = function () {
framework.extend(pswp.options, _defaultUIOptions, !0),
(_options = pswp.options),
(_controls = framework.getChildByClass(pswp.scrollWrap, "pswp__ui")),
(_listen = pswp.listen),
(function () {
var pinchControlsHidden;
_listen("onVerticalDrag", function (now) {
_controlsVisible && now < 0.95
? ui.hideControls()
: !_controlsVisible && 0.95 <= now && ui.showControls();
}),
_listen("onPinchClose", function (now) {
_controlsVisible && now < 0.9
? (ui.hideControls(), (pinchControlsHidden = !0))
: pinchControlsHidden &&
!_controlsVisible &&
0.9 < now &&
ui.showControls();
}),
_listen("zoomGestureEnded", function () {
(pinchControlsHidden = !1) &&
!_controlsVisible &&
ui.showControls();
});
})(),
_listen("beforeChange", ui.update),
_listen("doubleTap", function (point) {
var initialZoomLevel = pswp.currItem.initialZoomLevel;
pswp.getZoomLevel() !== initialZoomLevel
? pswp.zoomTo(initialZoomLevel, point, 333)
: pswp.zoomTo(
_options.getDoubleTapZoom(!1, pswp.currItem),
point,
333
);
}),
_listen("preventDragEvent", function (e, isDown, preventObj) {
var t = e.target || e.srcElement;
t &&
t.getAttribute("class") &&
-1 < e.type.indexOf("mouse") &&
(0 < t.getAttribute("class").indexOf("__caption") ||
/(SMALL|STRONG|EM)/i.test(t.tagName)) &&
(preventObj.prevent = !1);
}),
_listen("bindEvents", function () {
framework.bind(_controls, "pswpTap click", _onControlsTap),
framework.bind(pswp.scrollWrap, "pswpTap", ui.onGlobalTap),
pswp.likelyTouchDevice ||
framework.bind(pswp.scrollWrap, "mouseover", ui.onMouseOver);
}),
_listen("unbindEvents", function () {
_shareModalHidden || _toggleShareModal(),
_idleInterval && clearInterval(_idleInterval),
framework.unbind(document, "mouseout", _onMouseLeaveWindow),
framework.unbind(document, "mousemove", _onIdleMouseMove),
framework.unbind(_controls, "pswpTap click", _onControlsTap),
framework.unbind(pswp.scrollWrap, "pswpTap", ui.onGlobalTap),
framework.unbind(pswp.scrollWrap, "mouseover", ui.onMouseOver),
_fullscrenAPI &&
(framework.unbind(
document,
_fullscrenAPI.eventK,
ui.updateFullscreen
),
_fullscrenAPI.isFullscreen() &&
((_options.hideAnimationDuration = 0), _fullscrenAPI.exit()),
(_fullscrenAPI = null));
}),
_listen("destroy", function () {
_options.captionEl &&
(_fakeCaptionContainer &&
_controls.removeChild(_fakeCaptionContainer),
framework.removeClass(_captionContainer, "pswp__caption--empty")),
_shareModal && (_shareModal.children[0].onclick = null),
framework.removeClass(_controls, "pswp__ui--over-close"),
framework.addClass(_controls, "pswp__ui--hidden"),
ui.setIdle(!1);
}),
_options.showAnimationDuration ||
framework.removeClass(_controls, "pswp__ui--hidden"),
_listen("initialZoomIn", function () {
_options.showAnimationDuration &&
framework.removeClass(_controls, "pswp__ui--hidden");
}),
_listen("initialZoomOut", function () {
framework.addClass(_controls, "pswp__ui--hidden");
}),
_listen("parseVerticalMargin", _applyNavBarGaps),
_setupUIElements(),
_options.shareEl &&
_shareButton &&
_shareModal &&
(_shareModalHidden = !0),
_countNumItems(),
_options.timeToIdle &&
_listen("mouseUsed", function () {
framework.bind(document, "mousemove", _onIdleMouseMove),
framework.bind(document, "mouseout", _onMouseLeaveWindow),
(_idleInterval = setInterval(function () {
2 === ++_idleIncrement && ui.setIdle(!0);
}, _options.timeToIdle / 2));
}),
_options.fullscreenEl &&
!framework.features.isOldAndroid &&
((_fullscrenAPI = _fullscrenAPI || ui.getFullscreenAPI())
? (framework.bind(
document,
_fullscrenAPI.eventK,
ui.updateFullscreen
),
ui.updateFullscreen(),
framework.addClass(pswp.template, "pswp--supports-fs"))
: framework.removeClass(pswp.template, "pswp--supports-fs")),
_options.preloaderEl &&
(_toggleLoadingIndicator(!0),
_listen("beforeChange", function () {
clearTimeout(_loadingIndicatorTimeout),
(_loadingIndicatorTimeout = setTimeout(function () {
pswp.currItem && pswp.currItem.loading
? (pswp.allowProgressiveImg() &&
(!pswp.currItem.img ||
pswp.currItem.img.naturalWidth)) ||
_toggleLoadingIndicator(!1)
: _toggleLoadingIndicator(!0);
}, _options.loadingIndicatorDelay));
}),
_listen("imageLoadComplete", function (index, item) {
pswp.currItem === item && _toggleLoadingIndicator(!0);
}));
}),
(ui.setIdle = function (isIdle) {
_togglePswpClass(_controls, "ui--idle", (_isIdle = isIdle));
}),
(ui.update = function () {
(_overlayUIUpdated =
!(!_controlsVisible || !pswp.currItem) &&
(ui.updateIndexIndicator(),
_options.captionEl &&
(_options.addCaptionHTMLFn(pswp.currItem, _captionContainer),
_togglePswpClass(
_captionContainer,
"caption--empty",
!pswp.currItem.title
)),
!0)),
_shareModalHidden || _toggleShareModal(),
_countNumItems();
}),
(ui.updateFullscreen = function (e) {
e &&
setTimeout(function () {
pswp.setScrollOffset(0, framework.getScrollY());
}, 50),
framework[
(_fullscrenAPI.isFullscreen() ? "add" : "remove") + "Class"
](pswp.template, "pswp--fs");
}),
(ui.updateIndexIndicator = function () {
_options.counterEl &&
(_indexIndicator.innerHTML =
pswp.getCurrentIndex() +
1 +
_options.indexIndicatorSep +
_options.getNumItemsFn());
}),
(ui.onGlobalTap = function (e) {
var target = (e = e || window.event).target || e.srcElement;
if (!_blockControlsTap)
if (e.detail && "mouse" === e.detail.pointerType) {
if (_hasCloseClass(target)) return void pswp.close();
framework.hasClass(target, "pswp__img") &&
(1 === pswp.getZoomLevel() &&
pswp.getZoomLevel() <= pswp.currItem.fitRatio
? _options.clickToCloseNonZoomable && pswp.close()
: pswp.toggleDesktopZoom(e.detail.releasePoint));
} else if (
(_options.tapToToggleControls &&
(_controlsVisible ? ui.hideControls() : ui.showControls()),
_options.tapToClose &&
(framework.hasClass(target, "pswp__img") ||
_hasCloseClass(target)))
)
return void pswp.close();
}),
(ui.onMouseOver = function (e) {
var target = (e = e || window.event).target || e.srcElement;
_togglePswpClass(_controls, "ui--over-close", _hasCloseClass(target));
}),
(ui.hideControls = function () {
framework.addClass(_controls, "pswp__ui--hidden"),
(_controlsVisible = !1);
}),
(ui.showControls = function () {
(_controlsVisible = !0),
_overlayUIUpdated || ui.update(),
framework.removeClass(_controls, "pswp__ui--hidden");
}),
(ui.supportsFullscreen = function () {
var d = document;
return !!(
d.exitFullscreen ||
d.mozCancelFullScreen ||
d.webkitExitFullscreen ||
d.msExitFullscreen
);
}),
(ui.getFullscreenAPI = function () {
var api,
dE = document.documentElement,
tF = "fullscreenchange";
return (
dE.requestFullscreen
? (api = {
enterK: "requestFullscreen",
exitK: "exitFullscreen",
elementK: "fullscreenElement",
eventK: tF,
})
: dE.mozRequestFullScreen
? (api = {
enterK: "mozRequestFullScreen",
exitK: "mozCancelFullScreen",
elementK: "mozFullScreenElement",
eventK: "moz" + tF,
})
: dE.webkitRequestFullscreen
? (api = {
enterK: "webkitRequestFullscreen",
exitK: "webkitExitFullscreen",
elementK: "webkitFullscreenElement",
eventK: "webkit" + tF,
})
: dE.msRequestFullscreen &&
(api = {
enterK: "msRequestFullscreen",
exitK: "msExitFullscreen",
elementK: "msFullscreenElement",
eventK: "MSFullscreenChange",
}),
api &&
((api.enter = function () {
if (
((_initalCloseOnScrollValue = _options.closeOnScroll),
(_options.closeOnScroll = !1),
"webkitRequestFullscreen" !== this.enterK)
)
return pswp.template[this.enterK]();
pswp.template[this.enterK](Element.ALLOW_KEYBOARD_INPUT);
}),
(api.exit = function () {
return (
(_options.closeOnScroll = _initalCloseOnScrollValue),
document[this.exitK]()
);
}),
(api.isFullscreen = function () {
return document[this.elementK];
})),
api
);
});
};
}),
(function (factory) {
"use strict";
"function" == typeof define && define.amd
? define(["jquery"], factory)
: "undefined" != typeof module && module.exports
? (module.exports = factory(require("jquery")))
: factory(jQuery);
})(function ($) {
"use strict";
var $scrollTo = ($.scrollTo = function (target, duration, settings) {
return $(window).scrollTo(target, duration, settings);
});
function isWin(elem) {
return (
!elem.nodeName ||
-1 !==
$.inArray(elem.nodeName.toLowerCase(), [
"iframe",
"#document",
"html",
"body",
])
);
}
function isFunction(obj) {
return "function" == typeof obj;
}
function both(val) {
return isFunction(val) || $.isPlainObject(val)
? val
: { top: val, left: val };
}
return (
($scrollTo.defaults = { axis: "xy", duration: 0, limit: !0 }),
($.fn.scrollTo = function (target, duration, settings) {
"object" == typeof duration && ((settings = duration), (duration = 0)),
"function" == typeof settings && (settings = { onAfter: settings }),
"max" === target && (target = 9e9),
(settings = $.extend({}, $scrollTo.defaults, settings)),
(duration = duration || settings.duration);
var queue = settings.queue && 1 < settings.axis.length;
return (
queue && (duration /= 2),
(settings.offset = both(settings.offset)),
(settings.over = both(settings.over)),
this.each(function () {
if (null !== target) {
var toff,
win = isWin(this),
elem = win ? this.contentWindow || window : this,
$elem = $(elem),
targ = target,
attr = {};
switch (typeof targ) {
case "number":
case "string":
if (/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(targ)) {
targ = both(targ);
break;
}
targ = win ? $(targ) : $(targ, elem);
case "object":
if (0 === targ.length) return;
(targ.is || targ.style) && (toff = (targ = $(targ)).offset());
}
var offset =
(isFunction(settings.offset) && settings.offset(elem, targ)) ||
settings.offset;
$.each(settings.axis.split(""), function (i, axis) {
var Pos = "x" === axis ? "Left" : "Top",
pos = Pos.toLowerCase(),
key = "scroll" + Pos,
prev = $elem[key](),
max = $scrollTo.max(elem, axis);
if (toff)
(attr[key] =
toff[pos] + (win ? 0 : prev - $elem.offset()[pos])),
settings.margin &&
((attr[key] -=
parseInt(targ.css("margin" + Pos), 10) || 0),
(attr[key] -=
parseInt(targ.css("border" + Pos + "Width"), 10) || 0)),
(attr[key] += offset[pos] || 0),
settings.over[pos] &&
(attr[key] +=
targ["x" === axis ? "width" : "height"]() *
settings.over[pos]);
else {
var val = targ[pos];
attr[key] =
val.slice && "%" === val.slice(-1)
? (parseFloat(val) / 100) * max
: val;
}
settings.limit &&
/^\d+$/.test(attr[key]) &&
(attr[key] = attr[key] <= 0 ? 0 : Math.min(attr[key], max)),
!i &&
1 < settings.axis.length &&
(prev === attr[key]
? (attr = {})
: queue && (animate(settings.onAfterFirst), (attr = {})));
}),
animate(settings.onAfter);
}
function animate(callback) {
var opts = $.extend({}, settings, {
queue: !0,
duration: duration,
complete:
callback &&
function () {
callback.call(elem, targ, settings);
},
});
$elem.animate(attr, opts);
}
})
);
}),
($scrollTo.max = function (elem, axis) {
var Dim = "x" === axis ? "Width" : "Height",
scroll = "scroll" + Dim;
if (!isWin(elem)) return elem[scroll] - $(elem)[Dim.toLowerCase()]();
var size = "client" + Dim,
doc = elem.ownerDocument || elem.document,
html = doc.documentElement,
body = doc.body;
return (
Math.max(html[scroll], body[scroll]) -
Math.min(html[size], body[size])
);
}),
($.Tween.propHooks.scrollLeft = $.Tween.propHooks.scrollTop =
{
get: function (t) {
return $(t.elem)[t.prop]();
},
set: function (t) {
var curr = this.get(t);
if (t.options.interrupt && t._last && t._last !== curr)
return $(t.elem).stop();
var next = Math.round(t.now);
curr !== next && ($(t.elem)[t.prop](next), (t._last = this.get(t)));
},
}),
$scrollTo
);
}),
(function (window) {
var lazySizes = (function (window, document, Date) {
"use strict";
var lazysizes, lazySizesCfg;
if (
((function () {
var prop;
var lazySizesDefaults = {
lazyClass: "lazyload",
loadedClass: "lazyloaded",
loadingClass: "lazyloading",
preloadClass: "lazypreload",
errorClass: "lazyerror",
autosizesClass: "lazyautosizes",
fastLoadedClass: "ls-is-cached",
iframeLoadMode: 0,
srcAttr: "data-src",
srcsetAttr: "data-srcset",
sizesAttr: "data-sizes",
minSize: 40,
customMedia: {},
init: true,
expFactor: 1.5,
hFac: 0.8,
loadMode: 2,
loadHidden: true,
ricTimeout: 0,
throttleDelay: 125,
};
lazySizesCfg = window.lazySizesConfig || window.lazysizesConfig || {};
for (prop in lazySizesDefaults) {
if (!(prop in lazySizesCfg)) {
lazySizesCfg[prop] = lazySizesDefaults[prop];
}
}
})(),
!document || !document.getElementsByClassName)
) {
return { init: function () {}, cfg: lazySizesCfg, noSupport: true };
}
var docElem = document.documentElement,
supportPicture = window.HTMLPictureElement,
_addEventListener = "addEventListener",
_getAttribute = "getAttribute",
addEventListener = window[_addEventListener].bind(window),
setTimeout = window.setTimeout,
requestAnimationFrame = window.requestAnimationFrame || setTimeout,
requestIdleCallback = window.requestIdleCallback,
regPicture = /^picture$/i,
loadEvents = ["load", "error", "lazyincluded", "_lazyloaded"],
regClassCache = {},
forEach = Array.prototype.forEach,
hasClass = function (ele, cls) {
if (!regClassCache[cls]) {
regClassCache[cls] = new RegExp("(\\s|^)" + cls + "(\\s|$)");
}
return (
regClassCache[cls].test(ele[_getAttribute]("class") || "") &&
regClassCache[cls]
);
},
addClass = function (ele, cls) {
if (!hasClass(ele, cls)) {
ele.setAttribute(
"class",
(ele[_getAttribute]("class") || "").trim() + " " + cls
);
}
},
removeClass = function (ele, cls) {
var reg;
if ((reg = hasClass(ele, cls))) {
ele.setAttribute(
"class",
(ele[_getAttribute]("class") || "").replace(reg, " ")
);
}
},
addRemoveLoadEvents = function (dom, fn, add) {
var action = add ? _addEventListener : "removeEventListener";
if (add) {
addRemoveLoadEvents(dom, fn);
}
loadEvents.forEach(function (evt) {
dom[action](evt, fn);
});
},
triggerEvent = function (elem, name, detail, noBubbles, noCancelable) {
var event = document.createEvent("Event");
if (!detail) {
detail = {};
}
detail.instance = lazysizes;
event.initEvent(name, !noBubbles, !noCancelable);
event.detail = detail;
elem.dispatchEvent(event);
return event;
},
updatePolyfill = function (el, full) {
var polyfill;
if (
!supportPicture &&
(polyfill = window.picturefill || lazySizesCfg.pf)
) {
if (full && full.src && !el[_getAttribute]("srcset")) {
el.setAttribute("srcset", full.src);
}
polyfill({ reevaluate: true, elements: [el] });
} else if (full && full.src) {
el.src = full.src;
}
},
getCSS = function (elem, style) {
return (getComputedStyle(elem, null) || {})[style];
},
getWidth = function (elem, parent, width) {
width = width || elem.offsetWidth;
while (
width < lazySizesCfg.minSize &&
parent &&
!elem._lazysizesWidth
) {
width = parent.offsetWidth;
parent = parent.parentNode;
}
return width;
},
rAF = (function () {
var running, waiting;
var firstFns = [];
var secondFns = [];
var fns = firstFns;
var run = function () {
var runFns = fns;
fns = firstFns.length ? secondFns : firstFns;
running = true;
waiting = false;
while (runFns.length) {
runFns.shift()();
}
running = false;
};
var rafBatch = function (fn, queue) {
if (running && !queue) {
fn.apply(this, arguments);
} else {
fns.push(fn);
if (!waiting) {
waiting = true;
(document.hidden ? setTimeout : requestAnimationFrame)(run);
}
}
};
rafBatch._lsFlush = run;
return rafBatch;
})(),
rAFIt = function (fn, simple) {
return simple
? function () {
rAF(fn);
}
: function () {
var that = this;
var args = arguments;
rAF(function () {
fn.apply(that, args);
});
};
},
throttle = function (fn) {
var running;
var lastTime = 0;
var gDelay = lazySizesCfg.throttleDelay;
var rICTimeout = lazySizesCfg.ricTimeout;
var run = function () {
running = false;
lastTime = Date.now();
fn();
};
var idleCallback =
requestIdleCallback && rICTimeout > 49
? function () {
requestIdleCallback(run, { timeout: rICTimeout });
if (rICTimeout !== lazySizesCfg.ricTimeout) {
rICTimeout = lazySizesCfg.ricTimeout;
}
}
: rAFIt(function () {
setTimeout(run);
}, true);
return function (isPriority) {
var delay;
if ((isPriority = isPriority === true)) {
rICTimeout = 33;
}
if (running) {
return;
}
running = true;
delay = gDelay - (Date.now() - lastTime);
if (delay < 0) {
delay = 0;
}
if (isPriority || delay < 9) {
idleCallback();
} else {
setTimeout(idleCallback, delay);
}
};
},
debounce = function (func) {
var timeout, timestamp;
var wait = 99;
var run = function () {
timeout = null;
func();
};
var later = function () {
var last = Date.now() - timestamp;
if (last < wait) {
setTimeout(later, wait - last);
} else {
(requestIdleCallback || run)(run);
}
};
return function () {
timestamp = Date.now();
if (!timeout) {
timeout = setTimeout(later, wait);
}
};
},
loader = (function () {
var preloadElems,
isCompleted,
resetPreloadingTimer,
loadMode,
started;
var eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden;
var regImg = /^img$/i;
var regIframe = /^iframe$/i;
var supportScroll =
"onscroll" in window && !/(gle|ing)bot/.test(navigator.userAgent);
var shrinkExpand = 0;
var currentExpand = 0;
var isLoading = 0;
var lowRuns = -1;
var resetPreloading = function (e) {
isLoading--;
if (!e || isLoading < 0 || !e.target) {
isLoading = 0;
}
};
var isVisible = function (elem) {
if (isBodyHidden == null) {
isBodyHidden = getCSS(document.body, "visibility") == "hidden";
}
return (
isBodyHidden ||
!(
getCSS(elem.parentNode, "visibility") == "hidden" &&
getCSS(elem, "visibility") == "hidden"
)
);
};
var isNestedVisible = function (elem, elemExpand) {
var outerRect;
var parent = elem;
var visible = isVisible(elem);
eLtop -= elemExpand;
eLbottom += elemExpand;
eLleft -= elemExpand;
eLright += elemExpand;
while (
visible &&
(parent = parent.offsetParent) &&
parent != document.body &&
parent != docElem
) {
visible = (getCSS(parent, "opacity") || 1) > 0;
if (visible && getCSS(parent, "overflow") != "visible") {
outerRect = parent.getBoundingClientRect();
visible =
eLright > outerRect.left &&
eLleft < outerRect.right &&
eLbottom > outerRect.top - 1 &&
eLtop < outerRect.bottom + 1;
}
}
return visible;
};
var checkElements = function () {
var eLlen,
i,
rect,
autoLoadElem,
loadedSomething,
elemExpand,
elemNegativeExpand,
elemExpandVal,
beforeExpandVal,
defaultExpand,
preloadExpand,
hFac;
var lazyloadElems = lazysizes.elements;
if (
(loadMode = lazySizesCfg.loadMode) &&
isLoading < 8 &&
(eLlen = lazyloadElems.length)
) {
i = 0;
lowRuns++;
for (; i < eLlen; i++) {
if (!lazyloadElems[i] || lazyloadElems[i]._lazyRace) {
continue;
}
if (
!supportScroll ||
(lazysizes.prematureUnveil &&
lazysizes.prematureUnveil(lazyloadElems[i]))
) {
unveilElement(lazyloadElems[i]);
continue;
}
if (
!(elemExpandVal =
lazyloadElems[i][_getAttribute]("data-expand")) ||
!(elemExpand = elemExpandVal * 1)
) {
elemExpand = currentExpand;
}
if (!defaultExpand) {
defaultExpand =
!lazySizesCfg.expand || lazySizesCfg.expand < 1
? docElem.clientHeight > 500 && docElem.clientWidth > 500
? 500
: 370
: lazySizesCfg.expand;
lazysizes._defEx = defaultExpand;
preloadExpand = defaultExpand * lazySizesCfg.expFactor;
hFac = lazySizesCfg.hFac;
isBodyHidden = null;
if (
currentExpand < preloadExpand &&
isLoading < 1 &&
lowRuns > 2 &&
loadMode > 2 &&
!document.hidden
) {
currentExpand = preloadExpand;
lowRuns = 0;
} else if (loadMode > 1 && lowRuns > 1 && isLoading < 6) {
currentExpand = defaultExpand;
} else {
currentExpand = shrinkExpand;
}
}
if (beforeExpandVal !== elemExpand) {
eLvW = innerWidth + elemExpand * hFac;
elvH = innerHeight + elemExpand;
elemNegativeExpand = elemExpand * -1;
beforeExpandVal = elemExpand;
}
rect = lazyloadElems[i].getBoundingClientRect();
if (
(eLbottom = rect.bottom) >= elemNegativeExpand &&
(eLtop = rect.top) <= elvH &&
(eLright = rect.right) >= elemNegativeExpand * hFac &&
(eLleft = rect.left) <= eLvW &&
(eLbottom || eLright || eLleft || eLtop) &&
(lazySizesCfg.loadHidden || isVisible(lazyloadElems[i])) &&
((isCompleted &&
isLoading < 3 &&
!elemExpandVal &&
(loadMode < 3 || lowRuns < 4)) ||
isNestedVisible(lazyloadElems[i], elemExpand))
) {
unveilElement(lazyloadElems[i]);
loadedSomething = true;
if (isLoading > 9) {
break;
}
} else if (
!loadedSomething &&
isCompleted &&
!autoLoadElem &&
isLoading < 4 &&
lowRuns < 4 &&
loadMode > 2 &&
(preloadElems[0] || lazySizesCfg.preloadAfterLoad) &&
(preloadElems[0] ||
(!elemExpandVal &&
(eLbottom ||
eLright ||
eLleft ||
eLtop ||
lazyloadElems[i][_getAttribute](
lazySizesCfg.sizesAttr
) != "auto")))
) {
autoLoadElem = preloadElems[0] || lazyloadElems[i];
}
}
if (autoLoadElem && !loadedSomething) {
unveilElement(autoLoadElem);
}
}
};
var throttledCheckElements = throttle(checkElements);
var switchLoadingClass = function (e) {
var elem = e.target;
if (elem._lazyCache) {
delete elem._lazyCache;
return;
}
resetPreloading(e);
addClass(elem, lazySizesCfg.loadedClass);
removeClass(elem, lazySizesCfg.loadingClass);
addRemoveLoadEvents(elem, rafSwitchLoadingClass);
triggerEvent(elem, "lazyloaded");
};
var rafedSwitchLoadingClass = rAFIt(switchLoadingClass);
var rafSwitchLoadingClass = function (e) {
rafedSwitchLoadingClass({ target: e.target });
};
var changeIframeSrc = function (elem, src) {
var loadMode =
elem.getAttribute("data-load-mode") ||
lazySizesCfg.iframeLoadMode;
if (loadMode == 0) {
elem.contentWindow.location.replace(src);
} else if (loadMode == 1) {
elem.src = src;
}
};
var handleSources = function (source) {
var customMedia;
var sourceSrcset = source[_getAttribute](lazySizesCfg.srcsetAttr);
if (
(customMedia =
lazySizesCfg.customMedia[
source[_getAttribute]("data-media") ||
source[_getAttribute]("media")
])
) {
source.setAttribute("media", customMedia);
}
if (sourceSrcset) {
source.setAttribute("srcset", sourceSrcset);
}
};
var lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg) {
var src, srcset, parent, isPicture, event, firesLoad;
if (
!(event = triggerEvent(elem, "lazybeforeunveil", detail))
.defaultPrevented
) {
if (sizes) {
if (isAuto) {
addClass(elem, lazySizesCfg.autosizesClass);
} else {
elem.setAttribute("sizes", sizes);
}
}
srcset = elem[_getAttribute](lazySizesCfg.srcsetAttr);
src = elem[_getAttribute](lazySizesCfg.srcAttr);
if (isImg) {
parent = elem.parentNode;
isPicture = parent && regPicture.test(parent.nodeName || "");
}
firesLoad =
detail.firesLoad ||
("src" in elem && (srcset || src || isPicture));
event = { target: elem };
addClass(elem, lazySizesCfg.loadingClass);
if (firesLoad) {
clearTimeout(resetPreloadingTimer);
resetPreloadingTimer = setTimeout(resetPreloading, 2500);
addRemoveLoadEvents(elem, rafSwitchLoadingClass, true);
}
if (isPicture) {
forEach.call(
parent.getElementsByTagName("source"),
handleSources
);
}
if (srcset) {
elem.setAttribute("srcset", srcset);
} else if (src && !isPicture) {
if (regIframe.test(elem.nodeName)) {
changeIframeSrc(elem, src);
} else {
elem.src = src;
}
}
if (isImg && (srcset || isPicture)) {
updatePolyfill(elem, { src: src });
}
}
if (elem._lazyRace) {
delete elem._lazyRace;
}
removeClass(elem, lazySizesCfg.lazyClass);
rAF(function () {
var isLoaded = elem.complete && elem.naturalWidth > 1;
if (!firesLoad || isLoaded) {
if (isLoaded) {
addClass(elem, lazySizesCfg.fastLoadedClass);
}
switchLoadingClass(event);
elem._lazyCache = true;
setTimeout(function () {
if ("_lazyCache" in elem) {
delete elem._lazyCache;
}
}, 9);
}
if (elem.loading == "lazy") {
isLoading--;
}
}, true);
});
var unveilElement = function (elem) {
if (elem._lazyRace) {
return;
}
var detail;
var isImg = regImg.test(elem.nodeName);
var sizes =
isImg &&
(elem[_getAttribute](lazySizesCfg.sizesAttr) ||
elem[_getAttribute]("sizes"));
var isAuto = sizes == "auto";
if (
(isAuto || !isCompleted) &&
isImg &&
(elem[_getAttribute]("src") || elem.srcset) &&
!elem.complete &&
!hasClass(elem, lazySizesCfg.errorClass) &&
hasClass(elem, lazySizesCfg.lazyClass)
) {
return;
}
detail = triggerEvent(elem, "lazyunveilread").detail;
if (isAuto) {
autoSizer.updateElem(elem, true, elem.offsetWidth);
}
elem._lazyRace = true;
isLoading++;
lazyUnveil(elem, detail, isAuto, sizes, isImg);
};
var afterScroll = debounce(function () {
lazySizesCfg.loadMode = 3;
throttledCheckElements();
});
var altLoadmodeScrollListner = function () {
if (lazySizesCfg.loadMode == 3) {
lazySizesCfg.loadMode = 2;
}
afterScroll();
};
var onload = function () {
if (isCompleted) {
return;
}
if (Date.now() - started < 999) {
setTimeout(onload, 999);
return;
}
isCompleted = true;
lazySizesCfg.loadMode = 3;
throttledCheckElements();
addEventListener("scroll", altLoadmodeScrollListner, true);
};
return {
_: function () {
started = Date.now();
lazysizes.elements = document.getElementsByClassName(
lazySizesCfg.lazyClass
);
preloadElems = document.getElementsByClassName(
lazySizesCfg.lazyClass + " " + lazySizesCfg.preloadClass
);
addEventListener("scroll", throttledCheckElements, true);
addEventListener("resize", throttledCheckElements, true);
addEventListener("pageshow", function (e) {
if (e.persisted) {
var loadingElements = document.querySelectorAll(
"." + lazySizesCfg.loadingClass
);
if (loadingElements.length && loadingElements.forEach) {
requestAnimationFrame(function () {
loadingElements.forEach(function (img) {
if (img.complete) {
unveilElement(img);
}
});
});
}
}
});
if (window.MutationObserver) {
new MutationObserver(throttledCheckElements).observe(docElem, {
childList: true,
subtree: true,
attributes: true,
});
} else {
docElem[_addEventListener](
"DOMNodeInserted",
throttledCheckElements,
true
);
docElem[_addEventListener](
"DOMAttrModified",
throttledCheckElements,
true
);
setInterval(throttledCheckElements, 999);
}
addEventListener("hashchange", throttledCheckElements, true);
[
"focus",
"mouseover",
"click",
"load",
"transitionend",
"animationend",
].forEach(function (name) {
document[_addEventListener](name, throttledCheckElements, true);
});
if (/d$|^c/.test(document.readyState)) {
onload();
} else {
addEventListener("load", onload);
document[_addEventListener](
"DOMContentLoaded",
throttledCheckElements
);
setTimeout(onload, 2e4);
}
if (lazysizes.elements.length) {
checkElements();
rAF._lsFlush();
} else {
throttledCheckElements();
}
},
checkElems: throttledCheckElements,
unveil: unveilElement,
_aLSL: altLoadmodeScrollListner,
};
})(),
autoSizer = (function () {
var autosizesElems;
var sizeElement = rAFIt(function (elem, parent, event, width) {
var sources, i, len;
elem._lazysizesWidth = width;
width += "px";
elem.setAttribute("sizes", width);
if (regPicture.test(parent.nodeName || "")) {
sources = parent.getElementsByTagName("source");
for (i = 0, len = sources.length; i < len; i++) {
sources[i].setAttribute("sizes", width);
}
}
if (!event.detail.dataAttr) {
updatePolyfill(elem, event.detail);
}
});
var getSizeElement = function (elem, dataAttr, width) {
var event;
var parent = elem.parentNode;
if (parent) {
width = getWidth(elem, parent, width);
event = triggerEvent(elem, "lazybeforesizes", {
width: width,
dataAttr: !!dataAttr,
});
if (!event.defaultPrevented) {
width = event.detail.width;
if (width && width !== elem._lazysizesWidth) {
sizeElement(elem, parent, event, width);
}
}
}
};
var updateElementsSizes = function () {
var i;
var len = autosizesElems.length;
if (len) {
i = 0;
for (; i < len; i++) {
getSizeElement(autosizesElems[i]);
}
}
};
var debouncedUpdateElementsSizes = debounce(updateElementsSizes);
return {
_: function () {
autosizesElems = document.getElementsByClassName(
lazySizesCfg.autosizesClass
);
addEventListener("resize", debouncedUpdateElementsSizes);
},
checkElems: debouncedUpdateElementsSizes,
updateElem: getSizeElement,
};
})(),
init = function () {
if (!init.i && document.getElementsByClassName) {
init.i = true;
autoSizer._();
loader._();
}
};
return (
setTimeout(function () {
lazySizesCfg.init && init();
}),
(lazysizes = {
cfg: lazySizesCfg,
autoSizer: autoSizer,
loader: loader,
init: init,
uP: updatePolyfill,
aC: addClass,
rC: removeClass,
hC: hasClass,
fire: triggerEvent,
gW: getWidth,
rAF: rAF,
})
);
})(window, window.document, Date);
(window.lazySizes = lazySizes),
"object" == typeof module &&
module.exports &&
(module.exports = lazySizes);
})("undefined" != typeof window ? window : {}),
(function (fn) {
"function" == typeof define && define.amd
? define([], fn)
: "undefined" != typeof module && null !== module && module.exports
? (module.exports = fn)
: fn();
})(function () {
var assign = Object.assign || (window.jQuery && jQuery.extend),
threshold = 8,
requestFrame =
window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function (fn, element) {
return window.setTimeout(function () {
fn();
}, 25);
},
ignoreTags = { textarea: !0, input: !0, select: !0, button: !0 },
mouseevents = {
move: "mousemove",
cancel: "mouseup dragstart",
end: "mouseup",
},
touchevents = { move: "touchmove", cancel: "touchend", end: "touchend" },
rspaces = /\s+/,
eventOptions = { bubbles: !0, cancelable: !0 },
eventsSymbol = Symbol("events");
function getEvents(node) {
return node[eventsSymbol] || (node[eventsSymbol] = {});
}
function on(node, types, fn, data) {
types = types.split(rspaces);
var type,
events = getEvents(node),
i = types.length;
function handler(e) {
fn(e, data);
}
for (; i--; )
(events[(type = types[i])] || (events[type] = [])).push([fn, handler]),
node.addEventListener(type, handler);
}
function off(node, types, fn) {
types = types.split(rspaces);
var type,
handlers,
k,
events = getEvents(node),
i = types.length;
if (events)
for (; i--; )
if ((handlers = events[(type = types[i])]))
for (k = handlers.length; k--; )
handlers[k][0] === fn &&
(node.removeEventListener(type, handlers[k][1]),
handlers.splice(k, 1));
}
function trigger(node, type, properties) {
var event = (function (type) {
return new CustomEvent(type, eventOptions);
})(type);
properties && assign(event, properties), node.dispatchEvent(event);
}
function Timer(fn) {
var callback = fn,
active = !1,
running = !1;
function trigger(time) {
active
? (callback(), requestFrame(trigger), (active = !(running = !0)))
: (running = !1);
}
(this.kick = function (fn) {
(active = !0), running || trigger();
}),
(this.end = function (fn) {
var cb = callback;
fn &&
(running
? ((callback = active
? function () {
cb(), fn();
}
: fn),
(active = !0))
: fn());
});
}
function noop() {}
function preventDefault(e) {
e.preventDefault();
}
function identifiedTouch(touchList, id) {
var i, l;
if (touchList.identifiedTouch) return touchList.identifiedTouch(id);
for (i = -1, l = touchList.length; ++i < l; )
if (touchList[i].identifier === id) return touchList[i];
}
function changedTouch(e, data) {
var touch = identifiedTouch(e.changedTouches, data.identifier);
if (touch && (touch.pageX !== data.pageX || touch.pageY !== data.pageY))
return touch;
}
function mousemove(e, data) {
checkThreshold(e, data, e, removeMouse);
}
function mouseend(e, data) {
removeMouse();
}
function removeMouse() {
off(document, mouseevents.move, mousemove),
off(document, mouseevents.cancel, mouseend);
}
function removeTouch(data) {
off(document, touchevents.move, data.touchmove),
off(document, touchevents.cancel, data.touchend);
}
function checkThreshold(e, data, touch, fn) {
var distX = touch.pageX - data.pageX,
distY = touch.pageY - data.pageY;
distX * distX + distY * distY < threshold * threshold ||
(function (e, data, touch, distX, distY, fn) {
var touches = e.targetTouches,
time = e.timeStamp - data.timeStamp,
template = {
altKey: e.altKey,
ctrlKey: e.ctrlKey,
shiftKey: e.shiftKey,
startX: data.pageX,
startY: data.pageY,
distX: distX,
distY: distY,
deltaX: distX,
deltaY: distY,
pageX: touch.pageX,
pageY: touch.pageY,
velocityX: distX / time,
velocityY: distY / time,
identifier: data.identifier,
targetTouches: touches,
finger: touches ? touches.length : 1,
enableMove: function () {
(this.moveEnabled = !0),
(this.enableMove = noop),
e.preventDefault();
},
};
trigger(data.target, "movestart", template), fn(data);
})(e, data, touch, distX, distY, fn);
}
function activeMousemove(e, data) {
var timer = data.timer;
(data.touch = e), (data.timeStamp = e.timeStamp), timer.kick();
}
function activeMouseend(e, data) {
var target = data.target,
event = data.event,
timer = data.timer;
off(document, mouseevents.move, activeMousemove),
off(document, mouseevents.end, activeMouseend),
endEvent(target, event, timer, function () {
setTimeout(function () {
off(target, "click", preventDefault);
}, 0);
});
}
function activeTouchend(e, data) {
var target = data.target,
event = data.event,
timer = data.timer;
identifiedTouch(e.changedTouches, event.identifier) &&
((function (data) {
off(document, touchevents.move, data.activeTouchmove),
off(document, touchevents.end, data.activeTouchend);
})(data),
endEvent(target, event, timer));
}
function endEvent(target, event, timer, fn) {
timer.end(function () {
return trigger(target, "moveend", event), fn && fn();
});
}
if (
(on(document, "mousedown", function (e) {
!(function (e) {
return 1 === e.which && !e.ctrlKey && !e.altKey;
})(e) ||
(function (e) {
return !!ignoreTags[e.target.tagName.toLowerCase()];
})(e) ||
(on(document, mouseevents.move, mousemove, e),
on(document, mouseevents.cancel, mouseend, e));
}),
on(document, "touchstart", function (e) {
if (!ignoreTags[e.target.tagName.toLowerCase()]) {
var touch = e.changedTouches[0],
data = {
target: touch.target,
pageX: touch.pageX,
pageY: touch.pageY,
identifier: touch.identifier,
touchmove: function (e, data) {
!(function (e, data) {
var touch = changedTouch(e, data);
if (!touch) return;
checkThreshold(e, data, touch, removeTouch);
})(e, data);
},
touchend: function (e, data) {
!(function (e, data) {
if (!identifiedTouch(e.changedTouches, data.identifier))
return;
removeTouch(data);
})(e, data);
},
};
on(document, touchevents.move, data.touchmove, data),
on(document, touchevents.cancel, data.touchend, data);
}
}),
on(document, "movestart", function (e) {
if (!e.defaultPrevented && e.moveEnabled) {
var event = {
startX: e.startX,
startY: e.startY,
pageX: e.pageX,
pageY: e.pageY,
distX: e.distX,
distY: e.distY,
deltaX: e.deltaX,
deltaY: e.deltaY,
velocityX: e.velocityX,
velocityY: e.velocityY,
identifier: e.identifier,
targetTouches: e.targetTouches,
finger: e.finger,
},
data = {
target: e.target,
event: event,
timer: new Timer(function (time) {
(function (event, touch, timeStamp) {
var time = timeStamp - event.timeStamp;
(event.distX = touch.pageX - event.startX),
(event.distY = touch.pageY - event.startY),
(event.deltaX = touch.pageX - event.pageX),
(event.deltaY = touch.pageY - event.pageY),
(event.velocityX =
0.3 * event.velocityX + (0.7 * event.deltaX) / time),
(event.velocityY =
0.3 * event.velocityY + (0.7 * event.deltaY) / time),
(event.pageX = touch.pageX),
(event.pageY = touch.pageY);
})(event, data.touch, data.timeStamp),
trigger(data.target, "move", event);
}),
touch: void 0,
timeStamp: e.timeStamp,
};
void 0 === e.identifier
? (on(e.target, "click", preventDefault),
on(document, mouseevents.move, activeMousemove, data),
on(document, mouseevents.end, activeMouseend, data))
: ((data.activeTouchmove = function (e, data) {
!(function (e, data) {
var event = data.event,
timer = data.timer,
touch = changedTouch(e, event);
touch &&
(e.preventDefault(),
(event.targetTouches = e.targetTouches),
(data.touch = touch),
(data.timeStamp = e.timeStamp),
timer.kick());
})(e, data);
}),
(data.activeTouchend = function (e, data) {
activeTouchend(e, data);
}),
on(document, touchevents.move, data.activeTouchmove, data),
on(document, touchevents.end, data.activeTouchend, data));
}
}),
window.jQuery)
) {
var properties =
"startX startY pageX pageY distX distY deltaX deltaY velocityX velocityY".split(
" "
);
(jQuery.event.special.movestart = {
setup: function () {
return on(this, "movestart", enableMove1), !1;
},
teardown: function () {
return off(this, "movestart", enableMove1), !1;
},
add: add,
}),
(jQuery.event.special.move = {
setup: function () {
return on(this, "movestart", enableMove2), !1;
},
teardown: function () {
return off(this, "movestart", enableMove2), !1;
},
add: add,
}),
(jQuery.event.special.moveend = {
setup: function () {
return on(this, "movestart", enableMove3), !1;
},
teardown: function () {
return off(this, "movestart", enableMove3), !1;
},
add: add,
});
}
function enableMove1(e) {
e.enableMove();
}
function enableMove2(e) {
e.enableMove();
}
function enableMove3(e) {
e.enableMove();
}
function add(handleObj) {
var handler = handleObj.handler;
handleObj.handler = function (e) {
for (var property, i = properties.length; i--; )
e[(property = properties[i])] = e.originalEvent[property];
handler.apply(this, arguments);
};
}
}),
(function (window, $) {
function proxy(callback, context) {
return callback.bind(context);
}
function isFunction(value) {
return "function" == typeof value;
}
function getOrApply(value, context) {
return isFunction(value)
? value.apply(context, $.makeArray(arguments).slice(2))
: value;
}
var IMG_SRC_REGEX =
/(\.(jpeg|png|gif|bmp|svg)$|^data:image\/(jpeg|png|gif|bmp|svg\+xml);base64)/i,
URL_PARAMS_REGEX = /(&?[a-zA-Z0-9]+=)?\{([a-zA-Z0-9]+)\}/g,
MEASURES = { G: 1e9, M: 1e6, K: 1e3 },
shares = {};
function Socials(element, config) {
var $element = $(element);
$element.data("JSSocials", this),
(this._$element = $element),
(this.shares = []),
this._init(config),
this._render();
}
(Socials.prototype = {
url: "",
text: "",
shareIn: "blank",
showLabel: function (screenWidth) {
return !1 === this.showCount
? screenWidth > this.smallScreenWidth
: screenWidth >= this.largeScreenWidth;
},
showCount: function (screenWidth) {
return !(screenWidth <= this.smallScreenWidth) || "inside";
},
smallScreenWidth: 640,
largeScreenWidth: 1024,
resizeTimeout: 200,
elementClass: "jssocials",
sharesClass: "jssocials-shares",
shareClass: "jssocials-share",
shareButtonClass: "jssocials-share-button",
shareLinkClass: "jssocials-share-link",
shareLogoClass: "jssocials-share-logo",
shareLabelClass: "jssocials-share-label",
shareLinkCountClass: "jssocials-share-link-count",
shareCountBoxClass: "jssocials-share-count-box",
shareCountClass: "jssocials-share-count",
shareZeroCountClass: "jssocials-share-no-count",
_init: function (config) {
this._initDefaults(),
$.extend(this, config),
this._initShares(),
this._attachWindowResizeCallback();
},
_initDefaults: function () {
(this.url = window.location.href),
(this.text = (
$("meta[name=description]").attr("content") || $("title").text()
).trim());
},
_initShares: function () {
this.shares = $.map(
this.shares,
proxy(function (shareConfig) {
"string" == typeof shareConfig &&
(shareConfig = { share: shareConfig });
var share = shareConfig.share && shares[shareConfig.share];
if (!share && !shareConfig.renderer)
throw Error("Share '" + shareConfig.share + "' is not found");
return $.extend(
{ url: this.url, text: this.text },
share,
shareConfig
);
}, this)
);
},
_attachWindowResizeCallback: function () {
$(window).on("resize", proxy(this._windowResizeHandler, this));
},
_detachWindowResizeCallback: function () {
$(window).off("resize", this._windowResizeHandler);
},
_windowResizeHandler: function () {
(isFunction(this.showLabel) || isFunction(this.showCount)) &&
(window.clearTimeout(this._resizeTimer),
(this._resizeTimer = setTimeout(
proxy(this.refresh, this),
this.resizeTimeout
)));
},
_render: function () {
this._clear(),
this._defineOptionsByScreen(),
this._$element.addClass(this.elementClass),
(this._$shares = $("")
.addClass(this.sharesClass)
.appendTo(this._$element)),
this._renderShares();
},
_defineOptionsByScreen: function () {
(this._screenWidth = $(window).width()),
(this._showLabel = getOrApply(
this.showLabel,
this,
this._screenWidth
)),
(this._showCount = getOrApply(
this.showCount,
this,
this._screenWidth
));
},
_renderShares: function () {
$.each(
this.shares,
proxy(function (_, share) {
this._renderShare(share);
}, this)
);
},
_renderShare: function (share) {
(isFunction(share.renderer)
? $(share.renderer())
: this._createShare(share)
)
.addClass(this.shareClass)
.addClass(share.share ? "jssocials-share-" + share.share : "")
.addClass(share.css)
.appendTo(this._$shares);
},
_createShare: function (share) {
var $result = $("
"),
$shareLink = this._createShareLink(share).appendTo($result);
if (this._showCount) {
var isInsideCount = "inside" === this._showCount,
$countContainer = isInsideCount
? $shareLink
: $("
").addClass(this.shareCountBoxClass).appendTo($result);
$countContainer.addClass(
isInsideCount ? this.shareLinkCountClass : this.shareCountBoxClass
),
this._renderShareCount(share, $countContainer);
}
return $result;
},
_createShareLink: function (share) {
var $result = this._getShareStrategy(share).call(share, {
shareUrl: this._getShareUrl(share),
});
return (
$result
.addClass(this.shareLinkClass)
.append(this._createShareLogo(share)),
this._showLabel && $result.append(this._createShareLabel(share)),
$.each(this.on || {}, function (event, handler) {
isFunction(handler) && $result.on(event, proxy(handler, share));
}),
$result
);
},
_getShareStrategy: function (share) {
var result = shareStrategies[share.shareIn || this.shareIn];
if (!result)
throw Error("Share strategy '" + this.shareIn + "' not found");
return result;
},
_getShareUrl: function (share) {
var shareUrl = getOrApply(share.shareUrl, share);
return this._formatShareUrl(shareUrl, share);
},
_createShareLogo: function (share) {
var logo = share.logo,
$result = IMG_SRC_REGEX.test(logo)
? $("
").attr("src", share.logo)
: $("
").addClass(logo);
return $result.addClass(this.shareLogoClass), $result;
},
_createShareLabel: function (share) {
return $("").addClass(this.shareLabelClass).text(share.label);
},
_renderShareCount: function (share, $container) {
var $count = $("").addClass(this.shareCountClass);
$container.addClass(this.shareZeroCountClass).append($count),
this._loadCount(share).done(
proxy(function (count) {
count &&
($container.removeClass(this.shareZeroCountClass),
$count.text(count));
}, this)
);
},
_loadCount: function (share) {
var deferred = $.Deferred(),
countUrl = this._getCountUrl(share);
if (!countUrl) return deferred.resolve(0).promise();
var handleSuccess = proxy(function (response) {
deferred.resolve(this._getCountValue(response, share));
}, this);
return (
$.getJSON(countUrl)
.done(handleSuccess)
.fail(function () {
$.get(countUrl)
.done(handleSuccess)
.fail(function () {
deferred.resolve(0);
});
}),
deferred.promise()
);
},
_getCountUrl: function (share) {
var countUrl = getOrApply(share.countUrl, share);
return this._formatShareUrl(countUrl, share);
},
_getCountValue: function (response, share) {
var count =
(isFunction(share.getCount) ? share.getCount(response) : response) ||
0;
return "string" == typeof count ? count : this._formatNumber(count);
},
_formatNumber: function (number) {
return (
$.each(MEASURES, function (letter, value) {
if (value <= number)
return (
(number = parseFloat((number / value).toFixed(2)) + letter), !1
);
}),
number
);
},
_formatShareUrl: function (url, share) {
return url.replace(URL_PARAMS_REGEX, function (match, key, field) {
var value = share[field] || "";
return value ? (key || "") + window.encodeURIComponent(value) : "";
});
},
_clear: function () {
window.clearTimeout(this._resizeTimer), this._$element.empty();
},
_passOptionToShares: function (key, value) {
var shares = this.shares;
$.each(["url", "text"], function (_, optionName) {
optionName === key &&
$.each(shares, function (_, share) {
share[key] = value;
});
});
},
_normalizeShare: function (share) {
return $.isNumeric(share)
? this.shares[share]
: "string" == typeof share
? $.grep(this.shares, function (s) {
return s.share === share;
})[0]
: share;
},
refresh: function () {
this._render();
},
destroy: function () {
this._clear(),
this._detachWindowResizeCallback(),
this._$element.removeClass(this.elementClass).removeData("JSSocials");
},
option: function (key, value) {
if (1 === arguments.length) return this[key];
(this[key] = value),
this._passOptionToShares(key, value),
this.refresh();
},
shareOption: function (share, key, value) {
if (((share = this._normalizeShare(share)), 2 === arguments.length))
return share[key];
(share[key] = value), this.refresh();
},
}),
($.fn.jsSocials = function (config) {
var methodArgs = $.makeArray(arguments).slice(1),
result = this;
return (
this.each(function () {
var methodResult,
$element = $(this),
instance = $element.data("JSSocials");
if (instance)
if ("string" == typeof config) {
if (
void 0 !==
(methodResult = instance[config].apply(
instance,
methodArgs
)) &&
methodResult !== instance
)
return (result = methodResult), !1;
} else
instance._detachWindowResizeCallback(),
instance._init(config),
instance._render();
else new Socials($element, config);
}),
result
);
});
var shareStrategies = {
popup: function (args) {
return $("")
.attr("href", "#")
.on("click", function () {
return (
window.open(
args.shareUrl,
null,
"width=600, height=400, location=0, menubar=0, resizeable=0, scrollbars=0, status=0, titlebar=0, toolbar=0"
),
!1
);
});
},
blank: function (args) {
return $("").attr({ target: "_blank", href: args.shareUrl });
},
self: function (args) {
return $("").attr({ target: "_self", href: args.shareUrl });
},
};
window.jsSocials = {
Socials: Socials,
shares: shares,
shareStrategies: shareStrategies,
setDefaults: function (config) {
var component;
$.isPlainObject(config)
? (component = Socials.prototype)
: ((component = shares[config]), (config = arguments[1] || {})),
$.extend(component, config);
},
};
})(window, jQuery),
(function (window, $, jsSocials) {
$.extend(jsSocials.shares, {
email: {
label: "E-mail",
logo: "fa fa-at",
shareUrl: "mailto:{to}?subject={text}&body={url}",
countUrl: "",
shareIn: "self",
},
twitter: {
label: "Tweet",
logo: "fa fa-twitter",
shareUrl:
"https://twitter.com/share?url={url}&text={text}&via={via}&hashtags={hashtags}",
countUrl: "",
},
facebook: {
label: "Like",
logo: "fa fa-facebook",
shareUrl: "https://facebook.com/sharer/sharer.php?u={url}",
countUrl: "https://graph.facebook.com/?id={url}",
getCount: function (data) {
return (data.share && data.share.share_count) || 0;
},
},
vkontakte: {
label: "Like",
logo: "fa fa-vk",
shareUrl:
"https://vk.com/share.php?url={url}&title={title}&description={text}",
countUrl: "https://vk.com/share.php?act=count&index=1&url={url}",
getCount: function (data) {
return parseInt(data.slice(15, -2).split(", ")[1]);
},
},
googleplus: {
label: "+1",
logo: "fa fa-google",
shareUrl: "https://plus.google.com/share?url={url}",
countUrl: "",
},
linkedin: {
label: "Share",
logo: "fa fa-linkedin",
shareUrl: "https://www.linkedin.com/shareArticle?mini=true&url={url}",
countUrl:
"https://www.linkedin.com/countserv/count/share?format=jsonp&url={url}&callback=?",
getCount: function (data) {
return data.count;
},
},
pinterest: {
label: "Pin it",
logo: "fa fa-pinterest",
shareUrl:
"https://pinterest.com/pin/create/bookmarklet/?media={media}&url={url}&description={text}",
countUrl:
"https://api.pinterest.com/v1/urls/count.json?&url={url}&callback=?",
getCount: function (data) {
return data.count;
},
},
stumbleupon: {
label: "Share",
logo: "fa fa-stumbleupon",
shareUrl: "http://www.stumbleupon.com/submit?url={url}&title={title}",
countUrl:
"https://cors-anywhere.herokuapp.com/https://www.stumbleupon.com/services/1.01/badge.getinfo?url={url}",
getCount: function (data) {
return data.result && data.result.views;
},
},
telegram: {
label: "Telegram",
logo: "fa fa-telegram",
shareUrl: "tg://msg?text={url} {text}",
countUrl: "",
shareIn: "self",
},
whatsapp: {
label: "WhatsApp",
logo: "fa fa-whatsapp",
shareUrl: "whatsapp://send?text={url} {text}",
countUrl: "",
shareIn: "self",
},
line: {
label: "LINE",
logo: "fa fa-comment",
shareUrl: "http://line.me/R/msg/text/?{text} {url}",
countUrl: "",
},
viber: {
label: "Viber",
logo: "fa fa-volume-control-phone",
shareUrl: "viber://forward?text={url} {text}",
countUrl: "",
shareIn: "self",
},
pocket: {
label: "Pocket",
logo: "fa fa-get-pocket",
shareUrl: "https://getpocket.com/save?url={url}&title={title}",
countUrl: "",
},
messenger: {
label: "Share",
logo: "fa fa-commenting",
shareUrl: "fb-messenger://share?link={url}",
countUrl: "",
shareIn: "self",
},
rss: {
label: "RSS",
logo: "fa fa-rss",
shareUrl: "/feeds/",
countUrl: "",
shareIn: "blank",
},
});
})(window, jQuery, window.jsSocials),
(function ($) {
$.fn.twentytwenty = function (options) {
options = $.extend(
{
default_offset_pct: 0.5,
orientation: "horizontal",
before_label: "Before",
after_label: "After",
no_overlay: !1,
move_slider_on_hover: !1,
move_with_handle_only: !0,
click_to_move: !1,
},
options
);
return this.each(function () {
var sliderPct = options.default_offset_pct,
container = $(this),
sliderOrientation = options.orientation,
beforeDirection = "vertical" === sliderOrientation ? "down" : "left",
afterDirection = "vertical" === sliderOrientation ? "up" : "right";
if (
(container.wrap(
""
),
!options.no_overlay)
) {
container.append("");
var overlay = container.find(".twentytwenty-overlay");
overlay.append(
""
),
overlay.append(
""
);
}
var beforeImg = container.find("img:first"),
afterImg = container.find("img:last");
container.append("");
var slider = container.find(".twentytwenty-handle");
slider.append(
""
),
slider.append(
""
),
container.addClass("twentytwenty-container"),
beforeImg.addClass("twentytwenty-before"),
afterImg.addClass("twentytwenty-after");
function adjustSlider(pct) {
var offset = (function (dimensionPct) {
var w = beforeImg.width(),
h = beforeImg.height();
return {
w: w + "px",
h: h + "px",
cw: dimensionPct * w + "px",
ch: dimensionPct * h + "px",
};
})(pct);
slider.css(
"vertical" === sliderOrientation ? "top" : "left",
"vertical" === sliderOrientation ? offset.ch : offset.cw
),
(function (offset) {
"vertical" === sliderOrientation
? (beforeImg.css(
"clip",
"rect(0," + offset.w + "," + offset.ch + ",0)"
),
afterImg.css(
"clip",
"rect(" +
offset.ch +
"," +
offset.w +
"," +
offset.h +
",0)"
))
: (beforeImg.css(
"clip",
"rect(0," + offset.cw + "," + offset.h + ",0)"
),
afterImg.css(
"clip",
"rect(0," +
offset.w +
"," +
offset.h +
"," +
offset.cw +
")"
)),
container.css("height", offset.h);
})(offset);
}
function getSliderPercentage(positionX, positionY) {
return (function (num, min, max) {
return Math.max(min, Math.min(max, num));
})(
"vertical" === sliderOrientation
? (positionY - offsetY) / imgHeight
: (positionX - offsetX) / imgWidth,
0,
1
);
}
$(window).on("resize.twentytwenty", function (e) {
adjustSlider(sliderPct);
});
function onMoveStart(e) {
((e.distX > e.distY && e.distX < -e.distY) ||
(e.distX < e.distY && e.distX > -e.distY)) &&
"vertical" !== sliderOrientation
? e.preventDefault()
: ((e.distX < e.distY && e.distX < -e.distY) ||
(e.distX > e.distY && e.distX > -e.distY)) &&
"vertical" === sliderOrientation &&
e.preventDefault(),
container.addClass("active"),
(offsetX = container.offset().left),
(offsetY = container.offset().top),
(imgWidth = beforeImg.width()),
(imgHeight = beforeImg.height());
}
function onMove(e) {
container.hasClass("active") &&
((sliderPct = getSliderPercentage(e.pageX, e.pageY)),
adjustSlider(sliderPct));
}
function onMoveEnd() {
container.removeClass("active");
}
var offsetX = 0,
offsetY = 0,
imgWidth = 0,
imgHeight = 0,
moveTarget = options.move_with_handle_only ? slider : container;
moveTarget.on("movestart", onMoveStart),
moveTarget.on("move", onMove),
moveTarget.on("moveend", onMoveEnd),
options.move_slider_on_hover &&
(container.on("mouseenter", onMoveStart),
container.on("mousemove", onMove),
container.on("mouseleave", onMoveEnd)),
slider.on("touchmove", function (e) {
e.preventDefault();
}),
container.find("img").on("mousedown", function (event) {
event.preventDefault();
}),
options.click_to_move &&
container.on("click", function (e) {
(offsetX = container.offset().left),
(offsetY = container.offset().top),
(imgWidth = beforeImg.width()),
(imgHeight = beforeImg.height()),
(sliderPct = getSliderPercentage(e.pageX, e.pageY)),
adjustSlider(sliderPct);
}),
$(window).trigger("resize.twentytwenty");
});
};
})(jQuery),
(function (window) {
"use strict";
var MODEL = "model",
NAME = "name",
TYPE = "type",
VENDOR = "vendor",
VERSION = "version",
MOBILE = "mobile",
TABLET = "tablet",
util = {
extend: function (regexes, extensions) {
for (var i in extensions)
-1 !== "browser cpu device engine os".indexOf(i) &&
extensions[i].length % 2 == 0 &&
(regexes[i] = extensions[i].concat(regexes[i]));
return regexes;
},
has: function (str1, str2) {
return (
"string" == typeof str1 &&
-1 !== str2.toLowerCase().indexOf(str1.toLowerCase())
);
},
lowerize: function (str) {
return str.toLowerCase();
},
major: function (version) {
return "string" == typeof version ? version.split(".")[0] : void 0;
},
},
mapper = {
rgx: function () {
for (
var result, j, k, p, q, matches, match, i = 0, args = arguments;
i < args.length && !matches;
) {
var regex = args[i],
props = args[i + 1];
if (void 0 === result)
for (p in ((result = {}), props))
"object" == typeof (q = props[p])
? (result[q[0]] = void 0)
: (result[q] = void 0);
for (j = k = 0; j < regex.length && !matches; )
if ((matches = regex[j++].exec(this.getUA())))
for (p = 0; p < props.length; p++)
(match = matches[++k]),
"object" == typeof (q = props[p]) && 0 < q.length
? 2 == q.length
? "function" == typeof q[1]
? (result[q[0]] = q[1].call(this, match))
: (result[q[0]] = q[1])
: 3 == q.length
? "function" != typeof q[1] || (q[1].exec && q[1].test)
? (result[q[0]] = match
? match.replace(q[1], q[2])
: void 0)
: (result[q[0]] = match
? q[1].call(this, match, q[2])
: void 0)
: 4 == q.length &&
(result[q[0]] = match
? q[3].call(this, match.replace(q[1], q[2]))
: void 0)
: (result[q] = match || void 0);
i += 2;
}
return result;
},
str: function (str, map) {
for (var i in map)
if ("object" == typeof map[i] && 0 < map[i].length) {
for (var j = 0; j < map[i].length; j++)
if (util.has(map[i][j], str)) return "?" === i ? void 0 : i;
} else if (util.has(map[i], str)) return "?" === i ? void 0 : i;
return str;
},
},
maps = {
browser: {
oldsafari: {
version: {
"1.0": "/8",
1.2: "/1",
1.3: "/3",
"2.0": "/412",
"2.0.2": "/416",
"2.0.3": "/417",
"2.0.4": "/419",
"?": "/",
},
},
},
device: {
amazon: { model: { "Fire Phone": ["SD", "KF"] } },
sprint: {
model: { "Evo Shift 4G": "7373KT" },
vendor: { HTC: "APA", Sprint: "Sprint" },
},
},
os: {
windows: {
version: {
ME: "4.90",
"NT 3.11": "NT3.51",
"NT 4.0": "NT4.0",
2e3: "NT 5.0",
XP: ["NT 5.1", "NT 5.2"],
Vista: "NT 6.0",
7: "NT 6.1",
8: "NT 6.2",
8.1: "NT 6.3",
10: ["NT 6.4", "NT 10.0"],
RT: "ARM",
},
},
},
},
regexes = {
browser: [
[
/(opera\smini)\/([\w\.-]+)/i,
/(opera\s[mobiletab]+).+version\/([\w\.-]+)/i,
/(opera).+version\/([\w\.]+)/i,
/(opera)[\/\s]+([\w\.]+)/i,
],
[NAME, VERSION],
[/\s(opr)\/([\w\.]+)/i],
[[NAME, "Opera"], VERSION],
[
/(kindle)\/([\w\.]+)/i,
/(lunascape|maxthon|netfront|jasmine|blazer)[\/\s]?([\w\.]+)*/i,
/(avant\s|iemobile|slim|baidu)(?:browser)?[\/\s]?([\w\.]*)/i,
/(?:ms|\()(ie)\s([\w\.]+)/i,
/(rekonq)\/([\w\.]+)*/i,
/(chromium|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium)\/([\w\.-]+)/i,
],
[NAME, VERSION],
[/(trident).+rv[:\s]([\w\.]+).+like\sgecko/i],
[[NAME, "IE"], VERSION],
[/(edge)\/((\d+)?[\w\.]+)/i],
[NAME, VERSION],
[/(yabrowser)\/([\w\.]+)/i],
[[NAME, "Yandex"], VERSION],
[/(comodo_dragon)\/([\w\.]+)/i],
[[NAME, /_/g, " "], VERSION],
[
/(chrome|omniweb|arora|[tizenoka]{5}\s?browser)\/v?([\w\.]+)/i,
/(uc\s?browser|qqbrowser)[\/\s]?([\w\.]+)/i,
],
[NAME, VERSION],
[/(dolfin)\/([\w\.]+)/i],
[[NAME, "Dolphin"], VERSION],
[/((?:android.+)crmo|crios)\/([\w\.]+)/i],
[[NAME, "Chrome"], VERSION],
[/XiaoMi\/MiuiBrowser\/([\w\.]+)/i],
[VERSION, [NAME, "MIUI Browser"]],
[/android.+version\/([\w\.]+)\s+(?:mobile\s?safari|safari)/i],
[VERSION, [NAME, "Android Browser"]],
[/FBAV\/([\w\.]+);/i],
[VERSION, [NAME, "Facebook"]],
[/version\/([\w\.]+).+?mobile\/\w+\s(safari)/i],
[VERSION, [NAME, "Mobile Safari"]],
[/version\/([\w\.]+).+?(mobile\s?safari|safari)/i],
[VERSION, NAME],
[/webkit.+?(mobile\s?safari|safari)(\/[\w\.]+)/i],
[NAME, [VERSION, mapper.str, maps.browser.oldsafari.version]],
[/(konqueror)\/([\w\.]+)/i, /(webkit|khtml)\/([\w\.]+)/i],
[NAME, VERSION],
[/(navigator|netscape)\/([\w\.-]+)/i],
[[NAME, "Netscape"], VERSION],
[/fxios\/([\w\.-]+)/i],
[VERSION, [NAME, "Firefox"]],
[
/(swiftfox)/i,
/(icedragon|iceweasel|camino|chimera|fennec|maemo\sbrowser|minimo|conkeror)[\/\s]?([\w\.\+]+)/i,
/(firefox|seamonkey|k-meleon|icecat|iceape|firebird|phoenix)\/([\w\.-]+)/i,
/(mozilla)\/([\w\.]+).+rv\:.+gecko\/\d+/i,
/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf)[\/\s]?([\w\.]+)/i,
/(links)\s\(([\w\.]+)/i,
/(gobrowser)\/?([\w\.]+)*/i,
/(ice\s?browser)\/v?([\w\._]+)/i,
/(mosaic)[\/\s]([\w\.]+)/i,
],
[NAME, VERSION],
],
cpu: [
[/(?:(amd|x(?:(?:86|64)[_-])?|wow|win)64)[;\)]/i],
[["architecture", "amd64"]],
[/(ia32(?=;))/i],
[["architecture", util.lowerize]],
[/((?:i[346]|x)86)[;\)]/i],
[["architecture", "ia32"]],
[/windows\s(ce|mobile);\sppc;/i],
[["architecture", "arm"]],
[/((?:ppc|powerpc)(?:64)?)(?:\smac|;|\))/i],
[["architecture", /ower/, "", util.lowerize]],
[/(sun4\w)[;\)]/i],
[["architecture", "sparc"]],
[
/((?:avr32|ia64(?=;))|68k(?=\))|arm(?:64|(?=v\d+;))|(?=atmel\s)avr|(?:irix|mips|sparc)(?:64)?(?=;)|pa-risc)/i,
],
[["architecture", util.lowerize]],
],
device: [
[/\((ipad|playbook);[\w\s\);-]+(rim|apple)/i],
[MODEL, VENDOR, [TYPE, TABLET]],
[/applecoremedia\/[\w\.]+ \((ipad)/],
[MODEL, [VENDOR, "Apple"], [TYPE, TABLET]],
[/(apple\s{0,1}tv)/i],
[
[MODEL, "Apple TV"],
[VENDOR, "Apple"],
],
[
/(archos)\s(gamepad2?)/i,
/(hp).+(touchpad)/i,
/(kindle)\/([\w\.]+)/i,
/\s(nook)[\w\s]+build\/(\w+)/i,
/(dell)\s(strea[kpr\s\d]*[\dko])/i,
],
[VENDOR, MODEL, [TYPE, TABLET]],
[/(kf[A-z]+)\sbuild\/[\w\.]+.*silk\//i],
[MODEL, [VENDOR, "Amazon"], [TYPE, TABLET]],
[/(sd|kf)[0349hijorstuw]+\sbuild\/[\w\.]+.*silk\//i],
[
[MODEL, mapper.str, maps.device.amazon.model],
[VENDOR, "Amazon"],
[TYPE, MOBILE],
],
[/\((ip[honed|\s\w*]+);.+(apple)/i],
[MODEL, VENDOR, [TYPE, MOBILE]],
[/\((ip[honed|\s\w*]+);/i],
[MODEL, [VENDOR, "Apple"], [TYPE, MOBILE]],
[
/(blackberry)[\s-]?(\w+)/i,
/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|huawei|meizu|motorola|polytron)[\s_-]?([\w-]+)*/i,
/(hp)\s([\w\s]+\w)/i,
/(asus)-?(\w+)/i,
],
[VENDOR, MODEL, [TYPE, MOBILE]],
[/\(bb10;\s(\w+)/i],
[MODEL, [VENDOR, "BlackBerry"], [TYPE, MOBILE]],
[/android.+(transfo[prime\s]{4,10}\s\w+|eeepc|slider\s\w+|nexus 7)/i],
[MODEL, [VENDOR, "Asus"], [TYPE, TABLET]],
[/(sony)\s(tablet\s[ps])\sbuild\//i, /(sony)?(?:sgp.+)\sbuild\//i],
[
[VENDOR, "Sony"],
[MODEL, "Xperia Tablet"],
[TYPE, TABLET],
],
[/(?:sony)?(?:(?:(?:c|d)\d{4})|(?:so[-l].+))\sbuild\//i],
[
[VENDOR, "Sony"],
[MODEL, "Xperia Phone"],
[TYPE, MOBILE],
],
[/\s(ouya)\s/i, /(nintendo)\s([wids3u]+)/i],
[VENDOR, MODEL, [TYPE, "console"]],
[/android.+;\s(shield)\sbuild/i],
[MODEL, [VENDOR, "Nvidia"], [TYPE, "console"]],
[/(playstation\s[3portablevi]+)/i],
[MODEL, [VENDOR, "Sony"], [TYPE, "console"]],
[/(sprint\s(\w+))/i],
[
[VENDOR, mapper.str, maps.device.sprint.vendor],
[MODEL, mapper.str, maps.device.sprint.model],
[TYPE, MOBILE],
],
[/(lenovo)\s?(S(?:5000|6000)+(?:[-][\w+]))/i],
[VENDOR, MODEL, [TYPE, TABLET]],
[
/(htc)[;_\s-]+([\w\s]+(?=\))|\w+)*/i,
/(zte)-(\w+)*/i,
/(alcatel|geeksphone|huawei|lenovo|nexian|panasonic|(?=;\s)sony)[_\s-]?([\w-]+)*/i,
],
[VENDOR, [MODEL, /_/g, " "], [TYPE, MOBILE]],
[/(nexus\s9)/i],
[MODEL, [VENDOR, "HTC"], [TYPE, TABLET]],
[/[\s\(;](xbox(?:\sone)?)[\s\);]/i],
[MODEL, [VENDOR, "Microsoft"], [TYPE, "console"]],
[/(kin\.[onetw]{3})/i],
[
[MODEL, /\./g, " "],
[VENDOR, "Microsoft"],
[TYPE, MOBILE],
],
[
/\s(milestone|droid(?:[2-4x]|\s(?:bionic|x2|pro|razr))?(:?\s4g)?)[\w\s]+build\//i,
/mot[\s-]?(\w+)*/i,
/(XT\d{3,4}) build\//i,
],
[MODEL, [VENDOR, "Motorola"], [TYPE, MOBILE]],
[/android.+\s(mz60\d|xoom[\s2]{0,2})\sbuild\//i],
[MODEL, [VENDOR, "Motorola"], [TYPE, TABLET]],
[
/android.+((sch-i[89]0\d|shw-m380s|gt-p\d{4}|gt-n8000|sgh-t8[56]9|nexus 10))/i,
/((SM-T\w+))/i,
],
[[VENDOR, "Samsung"], MODEL, [TYPE, TABLET]],
[
/((s[cgp]h-\w+|gt-\w+|galaxy\snexus|sm-n900))/i,
/(sam[sung]*)[\s-]*(\w+-?[\w-]*)*/i,
/sec-((sgh\w+))/i,
],
[[VENDOR, "Samsung"], MODEL, [TYPE, MOBILE]],
[/(samsung);smarttv/i],
[VENDOR, MODEL, [TYPE, "smarttv"]],
[/\(dtv[\);].+(aquos)/i],
[MODEL, [VENDOR, "Sharp"], [TYPE, "smarttv"]],
[/sie-(\w+)*/i],
[MODEL, [VENDOR, "Siemens"], [TYPE, MOBILE]],
[/(maemo|nokia).*(n900|lumia\s\d+)/i, /(nokia)[\s_-]?([\w-]+)*/i],
[[VENDOR, "Nokia"], MODEL, [TYPE, MOBILE]],
[/android\s3\.[\s\w;-]{10}(a\d{3})/i],
[MODEL, [VENDOR, "Acer"], [TYPE, TABLET]],
[/android\s3\.[\s\w;-]{10}(lg?)-([06cv9]{3,4})/i],
[[VENDOR, "LG"], MODEL, [TYPE, TABLET]],
[/(lg) netcast\.tv/i],
[VENDOR, MODEL, [TYPE, "smarttv"]],
[/(nexus\s[45])/i, /lg[e;\s\/-]+(\w+)*/i],
[MODEL, [VENDOR, "LG"], [TYPE, MOBILE]],
[/android.+(ideatab[a-z0-9\-\s]+)/i],
[MODEL, [VENDOR, "Lenovo"], [TYPE, TABLET]],
[/linux;.+((jolla));/i],
[VENDOR, MODEL, [TYPE, MOBILE]],
[/((pebble))app\/[\d\.]+\s/i],
[VENDOR, MODEL, [TYPE, "wearable"]],
[/android.+;\s(glass)\s\d/i],
[MODEL, [VENDOR, "Google"], [TYPE, "wearable"]],
[
/android.+(\w+)\s+build\/hm\1/i,
/android.+(hm[\s\-_]*note?[\s_]*(?:\d\w)?)\s+build/i,
/android.+(mi[\s\-_]*(?:one|one[\s_]plus)?[\s_]*(?:\d\w)?)\s+build/i,
],
[
[MODEL, /_/g, " "],
[VENDOR, "Xiaomi"],
[TYPE, MOBILE],
],
[/(mobile|tablet);.+rv\:.+gecko\//i],
[[TYPE, util.lowerize], VENDOR, MODEL],
],
engine: [
[/windows.+\sedge\/([\w\.]+)/i],
[VERSION, [NAME, "EdgeHTML"]],
[
/(presto)\/([\w\.]+)/i,
/(webkit|trident|netfront|netsurf|amaya|lynx|w3m)\/([\w\.]+)/i,
/(khtml|tasman|links)[\/\s]\(?([\w\.]+)/i,
/(icab)[\/\s]([23]\.[\d\.]+)/i,
],
[NAME, VERSION],
[/rv\:([\w\.]+).*(gecko)/i],
[VERSION, NAME],
],
os: [
[/microsoft\s(windows)\s(vista|xp)/i],
[NAME, VERSION],
[
/(windows)\snt\s6\.2;\s(arm)/i,
/(windows\sphone(?:\sos)*|windows\smobile|windows)[\s\/]?([ntce\d\.\s]+\w)/i,
],
[NAME, [VERSION, mapper.str, maps.os.windows.version]],
[/(win(?=3|9|n)|win\s9x\s)([nt\d\.]+)/i],
[
[NAME, "Windows"],
[VERSION, mapper.str, maps.os.windows.version],
],
[/\((bb)(10);/i],
[[NAME, "BlackBerry"], VERSION],
[
/(blackberry)\w*\/?([\w\.]+)*/i,
/(tizen)[\/\s]([\w\.]+)/i,
/(android|webos|palm\sos|qnx|bada|rim\stablet\sos|meego|contiki)[\/\s-]?([\w\.]+)*/i,
/linux;.+(sailfish);/i,
],
[NAME, VERSION],
[/(symbian\s?os|symbos|s60(?=;))[\/\s-]?([\w\.]+)*/i],
[[NAME, "Symbian"], VERSION],
[/\((series40);/i],
[NAME],
[/mozilla.+\(mobile;.+gecko.+firefox/i],
[[NAME, "Firefox OS"], VERSION],
[
/(nintendo|playstation)\s([wids3portablevu]+)/i,
/(mint)[\/\s\(]?(\w+)*/i,
/(mageia|vectorlinux)[;\s]/i,
/(joli|[kxln]?ubuntu|debian|[open]*suse|gentoo|arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus)[\/\s-]?([\w\.-]+)*/i,
/(hurd|linux)\s?([\w\.]+)*/i,
/(gnu)\s?([\w\.]+)*/i,
],
[NAME, VERSION],
[/(cros)\s[\w]+\s([\w\.]+\w)/i],
[[NAME, "Chromium OS"], VERSION],
[/(sunos)\s?([\w\.]+\d)*/i],
[[NAME, "Solaris"], VERSION],
[/\s([frentopc-]{0,4}bsd|dragonfly)\s?([\w\.]+)*/i],
[NAME, VERSION],
[/(ip[honead]+)(?:.*os\s*([\w]+)*\slike\smac|;\sopera)/i],
[
[NAME, "iOS"],
[VERSION, /_/g, "."],
],
[/(mac\sos\sx)\s?([\w\s\.]+\w)*/i, /(macintosh|mac(?=_powerpc)\s)/i],
[
[NAME, "Mac OS"],
[VERSION, /_/g, "."],
],
[
/((?:open)?solaris)[\/\s-]?([\w\.]+)*/i,
/(haiku)\s(\w+)/i,
/(aix)\s((\d)(?=\.|\)|\s)[\w\.]*)*/i,
/(plan\s9|minix|beos|os\/2|amigaos|morphos|risc\sos|openvms)/i,
/(unix)\s?([\w\.]+)*/i,
],
[NAME, VERSION],
],
},
UAParser = function (uastring, extensions) {
if (!(this instanceof UAParser))
return new UAParser(uastring, extensions).getResult();
var ua =
uastring ||
(window && window.navigator && window.navigator.userAgent
? window.navigator.userAgent
: ""),
rgxmap = extensions ? util.extend(regexes, extensions) : regexes;
return (
(this.getBrowser = function () {
var browser = mapper.rgx.apply(this, rgxmap.browser);
return (browser.major = util.major(browser.version)), browser;
}),
(this.getCPU = function () {
return mapper.rgx.apply(this, rgxmap.cpu);
}),
(this.getDevice = function () {
return mapper.rgx.apply(this, rgxmap.device);
}),
(this.getEngine = function () {
return mapper.rgx.apply(this, rgxmap.engine);
}),
(this.getOS = function () {
return mapper.rgx.apply(this, rgxmap.os);
}),
(this.getResult = function () {
return {
ua: this.getUA(),
browser: this.getBrowser(),
engine: this.getEngine(),
os: this.getOS(),
device: this.getDevice(),
cpu: this.getCPU(),
};
}),
(this.getUA = function () {
return ua;
}),
(this.setUA = function (uastring) {
return (ua = uastring), this;
}),
this.setUA(ua),
this
);
};
(UAParser.VERSION = "0.7.9"),
(UAParser.BROWSER = { NAME: NAME, MAJOR: "major", VERSION: VERSION }),
(UAParser.CPU = { ARCHITECTURE: "architecture" }),
(UAParser.DEVICE = {
MODEL: MODEL,
VENDOR: VENDOR,
TYPE: TYPE,
CONSOLE: "console",
MOBILE: MOBILE,
SMARTTV: "smarttv",
TABLET: TABLET,
WEARABLE: "wearable",
EMBEDDED: "embedded",
}),
(UAParser.ENGINE = { NAME: NAME, VERSION: VERSION }),
(UAParser.OS = { NAME: NAME, VERSION: VERSION }),
"undefined" != typeof exports
? ("undefined" != typeof module &&
module.exports &&
(exports = module.exports = UAParser),
(exports.UAParser = UAParser))
: "function" == typeof define && define.amd
? define(function () {
return UAParser;
})
: (window.UAParser = UAParser);
var $ = window.jQuery || window.Zepto;
if (void 0 !== $) {
var parser = new UAParser();
($.ua = parser.getResult()),
($.ua.get = function () {
return parser.getUA();
}),
($.ua.set = function (uastring) {
parser.setUA(uastring);
var result = parser.getResult();
for (var prop in result) $.ua[prop] = result[prop];
});
}
})("object" == typeof window ? window : this),
(window.averta = {}),
(function ($) {
window.package = function (name) {
window[name] || (window[name] = {});
};
var extend = function (target, object) {
for (var key in object) target[key] = object[key];
};
Function.prototype.extend = function (superclass) {
"function" == typeof superclass.prototype.constructor
? extend(this.prototype, superclass.prototype)
: this.prototype.extend(superclass),
(this.prototype.constructor = this);
};
var trans = {
Moz: "-moz-",
Webkit: "-webkit-",
Khtml: "-khtml-",
O: "-o-",
ms: "-ms-",
Icab: "-icab-",
};
function getVendorPrefix() {
if ("result" in arguments.callee) return arguments.callee.result;
var regex = /^(Moz|Webkit|Khtml|O|ms|Icab)(?=[A-Z])/,
someScript = document.getElementsByTagName("script")[0];
for (var prop in someScript.style)
if (regex.test(prop))
return (arguments.callee.result = prop.match(regex)[0]);
return "WebkitOpacity" in someScript.style
? (arguments.callee.result = "Webkit")
: "KhtmlOpacity" in someScript.style
? (arguments.callee.result = "Khtml")
: (arguments.callee.result = "");
}
function checkStyleValue(prop) {
var s = (document.body || document.documentElement).style,
p = prop;
if ("string" == typeof s[p]) return !0;
(v = ["Moz", "Webkit", "Khtml", "O", "ms"]),
(p = p.charAt(0).toUpperCase() + p.substr(1));
for (var i = 0; i < v.length; i++)
if ("string" == typeof s[v[i] + p]) return !0;
return !1;
}
function supportsTransitions() {
return checkStyleValue("transition");
}
function supportsTransforms() {
return checkStyleValue("transform");
}
function supports3DTransforms() {
if (!supportsTransforms()) return !1;
var has3d,
el = document.createElement("i"),
transforms = {
WebkitTransform: "-webkit-transform",
OTransform: "-o-transform",
MSTransform: "-ms-transform",
msTransform: "-ms-transform",
MozTransform: "-moz-transform",
Transform: "transform",
transform: "transform",
};
for (var t in ((el.style.display = "block"),
document.body.insertBefore(el, null),
transforms))
void 0 !== el.style[t] &&
((el.style[t] = "translate3d(1px,1px,1px)"),
(has3d = window
.getComputedStyle(el)
.getPropertyValue(transforms[t])));
return (
document.body.removeChild(el),
null != has3d && 0 < has3d.length && "none" !== has3d
);
}
(window._mobile =
/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
navigator.userAgent
)),
(window._touch = "ontouchstart" in document),
(window.parseQueryString = function (url) {
var queryString = {};
return (
url.replace(
new RegExp("([^?=&]+)(=([^&]*))?", "g"),
function ($0, $1, $2, $3) {
queryString[$1] = $3;
}
),
queryString
);
});
for (
var lastTime = 0, vendors = ["ms", "moz", "webkit", "o"], x = 0;
x < vendors.length && !window.requestAnimationFrame;
++x
)
(window.requestAnimationFrame =
window[vendors[x] + "RequestAnimationFrame"]),
(window.cancelAnimationFrame =
window[vendors[x] + "CancelAnimationFrame"] ||
window[vendors[x] + "CancelRequestAnimationFrame"]);
window.requestAnimationFrame ||
(window.requestAnimationFrame = function (callback, element) {
var currTime = new Date().getTime(),
timeToCall = Math.max(0, 16 - (currTime - lastTime)),
id = window.setTimeout(function () {
callback(currTime + timeToCall);
}, timeToCall);
return (lastTime = currTime + timeToCall), id;
}),
window.cancelAnimationFrame ||
(window.cancelAnimationFrame = function (id) {
clearTimeout(id);
}),
window.getComputedStyle ||
(window.getComputedStyle = function (el, pseudo) {
return (
(this.el = el),
(this.getPropertyValue = function (prop) {
var re = /(\-([a-z]){1})/g;
return (
"float" == prop && (prop = "styleFloat"),
re.test(prop) &&
(prop = prop.replace(re, function () {
return arguments[2].toUpperCase();
})),
el.currentStyle[prop] ? el.currentStyle[prop] : null
);
}),
el.currentStyle
);
}),
Array.prototype.indexOf ||
(Array.prototype.indexOf = function (elt) {
var len = this.length >>> 0,
from = Number(arguments[1]) || 0;
for (
(from = from < 0 ? Math.ceil(from) : Math.floor(from)) < 0 &&
(from += len);
from < len;
from++
)
if (from in this && this[from] === elt) return from;
return -1;
}),
($.removeDataAttrs = function ($target, exclude) {
var i,
attrName,
dataAttrsToDelete = [],
dataAttrs = $target[0].attributes,
dataAttrsLen = dataAttrs.length;
for (exclude = exclude || [], i = 0; i < dataAttrsLen; i++)
"data-" === (attrName = dataAttrs[i].name).substring(0, 5) &&
-1 === exclude.indexOf(attrName) &&
dataAttrsToDelete.push(dataAttrs[i].name);
$.each(dataAttrsToDelete, function (index, attrName) {
$target.removeAttr(attrName);
});
}),
(function () {
window.AuxUserAgent = new UAParser().getResult();
var browser = AuxUserAgent.browser;
(browser.isMSIE = function (version) {
if (!browser.msie) return !1;
if (!version) return !0;
var ieVer = browser.version.slice(0, browser.version.indexOf("."));
return "string" == typeof version
? -1 !== version.indexOf("<") || -1 !== version.indexOf(">")
? eval(ieVer + version)
: eval(version + "==" + ieVer)
: version == ieVer;
}),
(browser.webkit = "WebKit" === AuxUserAgent.engine.name),
(browser.firefox = "Firefox" === browser.name),
(browser.opera = "Opera" === browser.name),
(browser.chrome = "Chrome" === browser.name),
(browser.safari = "Safari" === browser.name),
(browser.msie = "IE" === browser.name),
(averta.browser = browser),
(window.AuxBrowser = browser);
})(),
$ &&
(($.fn.preloadImg = function (src, _event) {
return (
this.each(function () {
var $this = $(this),
self = this,
img = new Image();
(img.onload = function (event) {
null == event && (event = {}),
$this.attr("src", src),
(event.width = img.width),
(event.height = img.height),
$this.data("width", img.width),
$this.data("height", img.height),
setTimeout(function () {
_event.call(self, event);
}, 50),
(img = null);
}),
(img.src = src);
}),
this
);
}),
$(document).ready(function () {
(window._jcsspfx = getVendorPrefix()),
(window._csspfx = trans[window._jcsspfx]),
(window._cssanim = supportsTransitions()),
(window._css3d = supports3DTransforms()),
(window._css2d = supportsTransforms());
})),
(function () {
setTimeout(
function (arg1) {
if ("test" !== arg1) {
var __nativeST__ = window.setTimeout;
window.setTimeout = function (vCallback, nDelay) {
var aArgs = Array.prototype.slice.call(arguments, 2);
return __nativeST__(
vCallback instanceof Function
? function () {
vCallback.apply(null, aArgs);
}
: vCallback,
nDelay
);
};
}
},
0,
"test"
);
var interval = setInterval(
function (arg1) {
if ((clearInterval(interval), "test" !== arg1)) {
var __nativeSI__ = window.setInterval;
window.setInterval = function (vCallback, nDelay) {
var aArgs = Array.prototype.slice.call(arguments, 2);
return __nativeSI__(
vCallback instanceof Function
? function () {
vCallback.apply(null, aArgs);
}
: vCallback,
nDelay
);
};
}
},
0,
"test"
);
})();
})(jQuery),
(function () {
"use strict";
averta.Ticker = function () {};
var st = averta.Ticker,
list = [],
len = 0,
__stopped = !0;
(st.add = function (listener, ref) {
return (
list.push([listener, ref]),
1 === list.length && st.start(),
(len = list.length)
);
}),
(st.remove = function (listener, ref) {
for (var i = 0, l = list.length; i < l; ++i)
list[i] &&
list[i][0] === listener &&
list[i][1] === ref &&
list.splice(i, 1);
0 === (len = list.length) && st.stop();
}),
(st.start = function () {
__stopped && ((__stopped = !1), __tick());
}),
(st.stop = function () {
__stopped = !0;
});
var __tick = function () {
if (!st.__stopped) {
for (var item, i = 0; i !== len; i++) (item = list[i])[0].call(item[1]);
requestAnimationFrame(__tick);
}
};
})(),
(function () {
"use strict";
Date.now ||
(Date.now = function () {
return new Date().getTime();
}),
(averta.Timer = function (delay, autoStart) {
(this.delay = delay),
(this.currentCount = 0),
(this.paused = !1),
(this.onTimer = null),
(this.refrence = null),
autoStart && this.start();
}),
(averta.Timer.prototype = {
constructor: averta.Timer,
start: function () {
(this.paused = !1),
(this.lastTime = Date.now()),
averta.Ticker.add(this.update, this);
},
stop: function () {
(this.paused = !0), averta.Ticker.remove(this.update, this);
},
reset: function () {
(this.currentCount = 0),
(this.paused = !0),
(this.lastTime = Date.now());
},
update: function () {
this.paused ||
Date.now() - this.lastTime < this.delay ||
(this.currentCount++,
(this.lastTime = Date.now()),
this.onTimer && this.onTimer.call(this.refrence, this.getTime()));
},
getTime: function () {
return this.delay * this.currentCount;
},
});
})(),
(function () {
"use strict";
(averta.EventDispatcher = function () {
this.listeners = {};
}),
(averta.EventDispatcher.extend = function (_proto) {
var instance = new averta.EventDispatcher();
for (var key in instance)
"constructor" != key &&
(_proto[key] = averta.EventDispatcher.prototype[key]);
}),
(averta.EventDispatcher.prototype = {
constructor: averta.EventDispatcher,
addEventListener: function (event, listener, ref) {
this.listeners[event] || (this.listeners[event] = []),
this.listeners[event].push({ listener: listener, ref: ref });
},
removeEventListener: function (event, listener, ref) {
if (this.listeners[event]) {
for (var i = 0; i < this.listeners[event].length; ++i)
listener === this.listeners[event][i].listener &&
ref === this.listeners[event][i].ref &&
this.listeners[event].splice(i--, 1);
0 === this.listeners[event].length &&
(this.listeners[event] = null);
}
},
dispatchEvent: function (event) {
if ((event.target = this).listeners[event.type])
for (var i = 0, l = this.listeners[event.type].length; i < l; ++i)
this.listeners[event.type][i].listener.call(
this.listeners[event.type][i].ref,
event
);
},
});
})(),
(function (window, document) {
"use strict";
var isTouch = "ontouchstart" in document,
isPointer = window.navigator.pointerEnabled,
isMSPoiner = !isPointer && window.navigator.msPointerEnabled,
usePointer = isPointer || isMSPoiner,
ev_start =
(isPointer ? "pointerdown " : "") +
(isMSPoiner ? "MSPointerDown " : "") +
(isTouch ? "touchstart " : "") +
"mousedown",
ev_move =
(isPointer ? "pointermove " : "") +
(isMSPoiner ? "MSPointerMove " : "") +
(isTouch ? "touchmove " : "") +
"mousemove",
ev_end =
(isPointer ? "pointerup " : "") +
(isMSPoiner ? "MSPointerUp " : "") +
(isTouch ? "touchend " : "") +
"mouseup",
ev_cancel =
(isPointer ? "pointercancel " : "") +
(isMSPoiner ? "MSPointerCancel " : "") +
"touchcancel";
averta.TouchSwipe = function (element) {
if (element.jquery) {
if (!element.length) return;
element = element[0];
}
(this.element = element),
(this.enabled = !0),
this._bindEvents(element, ev_start, this._touchStart),
((element.swipe = this).onSwipe = null),
(this.swipeType = "horizontal"),
(this.noSwipeSelector =
"input, textarea, button, .no-swipe, .ms-no-swipe"),
(this.lastStatus = {});
};
var p = averta.TouchSwipe.prototype;
(p._bindEvents = function (target, events, cb) {
events.split(" ").forEach(function (event) {
target.addEventListener(event, cb.bind(this));
}, this);
}),
(p._unbindEvents = function (target, events, cb) {
events.split(" ").forEach(function (event) {
target.removeEventListener(event, cb.bind(this));
}, this);
}),
(p._getDirection = function (new_x, new_y) {
switch (this.swipeType) {
case "horizontal":
return new_x <= this.start_x ? "left" : "right";
case "vertical":
return new_y <= this.start_y ? "up" : "down";
case "all":
return Math.abs(new_x - this.start_x) >
Math.abs(new_y - this.start_y)
? new_x <= this.start_x
? "left"
: "right"
: new_y <= this.start_y
? "up"
: "down";
}
}),
(p._priventDefultEvent = function (new_x, new_y) {
var dx = Math.abs(new_x - this.start_x),
horiz = Math.abs(new_y - this.start_y) < dx;
return (
("horizontal" === this.swipeType && horiz) ||
("vertical" === this.swipeType && !horiz)
);
}),
(p._createStatusObject = function (evt) {
var temp_x,
temp_y,
status_data = {};
return (
(temp_x = this.lastStatus.distanceX || 0),
(temp_y = this.lastStatus.distanceY || 0),
(status_data.distanceX = evt.pageX - this.start_x),
(status_data.distanceY = evt.pageY - this.start_y),
(status_data.moveX = status_data.distanceX - temp_x),
(status_data.moveY = status_data.distanceY - temp_y),
(status_data.distance = parseInt(
Math.sqrt(
Math.pow(status_data.distanceX, 2) +
Math.pow(status_data.distanceY, 2)
)
)),
(status_data.duration = new Date().getTime() - this.start_time),
(status_data.direction = this._getDirection(evt.pageX, evt.pageY)),
status_data
);
}),
(p._reset = function (event) {
(this.reset = !1),
(this.lastStatus = {}),
(this.start_time = new Date().getTime()),
(this.start_x = isTouch ? event.touches[0].pageX : event.pageX),
(this.start_y = isTouch ? event.touches[0].pageY : event.pageY);
}),
(p._touchStart = function (event) {
if (
this.enabled &&
!event.target.closest(this.noSwipeSelector, this.$element)
)
if (
(usePointer &&
(this.element.style.msTouchAction =
"horizontal" === this.swipeType ? "pan-y" : "pan-x"),
this.onSwipe)
) {
if (!this.touchStarted) {
var swipeEvent = isTouch ? event.touches[0] : event;
(this.start_x = swipeEvent.pageX),
(this.start_y = swipeEvent.pageY),
(this.start_time = new Date().getTime()),
this._bindEvents(document, ev_end, this._touchEnd),
this._bindEvents(document, ev_move, this._touchMove),
this._bindEvents(document, ev_cancel, this._touchCancel);
var status = this._createStatusObject(swipeEvent);
(status.phase = "start"),
this.onSwipe.call(null, status),
isTouch || event.preventDefault(),
(this.lastStatus = status),
(this.touchStarted = !0);
}
} else console.log("Swipe listener is undefined");
}),
(p._touchMove = function (event) {
if (this.touchStarted) {
clearTimeout(this.timo),
(this.timo = setTimeout(function () {
this._reset(event);
}, 60));
var swipeEvent = isTouch ? event.touches[0] : event,
status = this._createStatusObject(swipeEvent);
this._priventDefultEvent(swipeEvent.pageX, swipeEvent.pageY) &&
event.preventDefault(),
(status.phase = "move"),
(this.lastStatus = status),
this.onSwipe.call(null, status);
}
}),
(p._touchEnd = function (event) {
if (this.touchStarted) {
clearTimeout(this.timo);
isTouch && event.touches[0];
var status = this.lastStatus;
isTouch || event.preventDefault(),
(status.phase = "end"),
(this.touchStarted = !1),
(this.priventEvt = null),
this._unbindEvents(document, ev_end, this._touchEnd),
this._unbindEvents(document, ev_move, this._touchMove),
this._unbindEvents(document, ev_cancel, this._touchCancel),
(status.speed = status.distance / status.duration),
this.onSwipe.call(null, status);
}
}),
(p._touchCancel = function (event) {
this._touchEnd(event);
}),
(p.enable = function () {
this.enabled = !0;
}),
(p.disable = function () {
this.enabled = !1;
});
})(window, document),
(function (ElementProto) {
"function" != typeof ElementProto.matches &&
(ElementProto.matches =
ElementProto.msMatchesSelector ||
ElementProto.mozMatchesSelector ||
ElementProto.webkitMatchesSelector ||
function (selector) {
for (
var elements = (
this.document || this.ownerDocument
).querySelectorAll(selector),
index = 0;
elements[index] && elements[index] !== this;
)
++index;
return Boolean(elements[index]);
}),
"function" != typeof ElementProto.closest &&
(ElementProto.closest = function (selector) {
for (var element = this; element && 1 === element.nodeType; ) {
if (element.matches(selector)) return element;
element = element.parentNode;
}
return null;
});
})(window.Element.prototype),
(function () {
"use strict";
window.AVTAligner = function (type, $container, $img, options) {
(this.$container = $container),
(this.$img = $img),
(this.img = $img[0]),
(this.options = options || {}),
(this.type = type || "stretch"),
(this.widthOnly = !1),
(this.heightOnly = !1);
};
var p = AVTAligner.prototype;
(p.init = function (w, h) {
switch (
((w = w || this.img.naturalWidth),
(h = h || this.img.naturalHeight),
(this.baseWidth = w),
(this.baseHeight = h),
(this.imgRatio = w / h),
(this.imgRatio2 = h / w),
this.type)
) {
case "tile":
this.$container.css(
"background-image",
"url(" + this.$img.attr("src") + ")"
),
this.$img.hide();
break;
case "center":
this.$container.css(
"background-image",
"url(" + this.$img.attr("src") + ")"
),
this.$container.css({
backgroundPosition: "center center",
backgroundRepeat: "no-repeat",
}),
this.$img.hide();
break;
case "stretch":
this.$img.css({ width: "100%", height: "100%" });
break;
case "fill":
case "fit":
(this.needAlign = !0), this.align();
}
this.options.srcset &&
this.$img.on(
"load",
function (e) {
var img = e.target,
w = img.naturalWidth || this.$img.width(),
h = img.naturalHeight || this.$image.height();
(this.baseWidth = w),
(this.baseHeight = h),
(this.imgRatio = w / h),
(this.imgRatio2 = h / w),
this.align();
}.bind(this)
);
}),
(p.align = function () {
if (this.needAlign) {
(this.cont_w = this.options.containerWidth
? this.options.containerWidth()
: this.$container.width()),
(this.cont_h = this.options.containerHeight
? this.options.containerHeight()
: this.$container.height());
var contRatio = this.cont_w / this.cont_h;
"fill" == this.type
? this.imgRatio < contRatio
? (this.$img.width(this.cont_w),
this.$img.height(this.cont_w * this.imgRatio2))
: (this.$img.height(this.cont_h),
this.$img.width(this.cont_h * this.imgRatio))
: "fit" == this.type &&
(this.imgRatio < contRatio
? (this.$img.height(this.cont_h),
this.$img.width(this.cont_h * this.imgRatio))
: (this.$img.width(this.cont_w),
this.$img.height(this.cont_w * this.imgRatio2))),
this.setMargin();
}
}),
(p.setMargin = function () {
var position = this.options.position || "cm",
img = this.$img[0];
switch (position.charAt(0)) {
case "l":
img.style.marginLeft = 0;
break;
case "r":
img.style.marginLeft = this.cont_w - img.offsetWidth + "px";
break;
case "c":
default:
img.style.marginLeft = (this.cont_w - img.offsetWidth) / 2 + "px";
}
switch (position.charAt(1)) {
case "t":
img.style.marginTop = 0;
break;
case "b":
img.style.marginTop = this.cont_h - img.offsetHeight + "px";
break;
case "m":
default:
img.style.marginTop = (this.cont_h - img.offsetHeight) / 2 + "px";
}
});
})(),
(function () {
"use strict";
window.CSSTween = function (element, duration, delay, ease) {
if (element.jquery) {
if (!element.length) return;
element = element[0];
}
(this.element = element),
(this.duration = duration || 1e3),
(this.delay = delay || 0),
(this.ease = ease || "linear");
};
var p = CSSTween.prototype;
(p.to = function (callback, target) {
return (this.to_cb = callback), (this.to_cb_target = target), this;
}),
(p.from = function (callback, target) {
return (this.fr_cb = callback), (this.fr_cb_target = target), this;
}),
(p.onComplete = function (callback, target) {
return (this.oc_fb = callback), (this.oc_fb_target = target), this;
}),
(p.chain = function (csstween) {
return (this.chained_tween = csstween), this;
}),
(p.reset = function () {
clearTimeout(this.start_to), clearTimeout(this.end_to);
}),
(p.start = function () {
var element = this.element;
clearTimeout(this.start_to),
clearTimeout(this.end_to),
(this.fresh = !0),
this.fr_cb &&
((element.style[window._jcsspfx + "TransitionDuration"] = "0ms"),
this.fr_cb.call(this.fr_cb_target));
var that = this;
return (
(this.onTransComplete = function (event) {
that.fresh &&
(that.reset(),
(element.style[window._jcsspfx + "TransitionDuration"] = ""),
(element.style[window._jcsspfx + "TransitionProperty"] = ""),
(element.style[window._jcsspfx + "TransitionTimingFunction"] =
""),
(element.style[window._jcsspfx + "TransitionDelay"] = ""),
(that.fresh = !1),
that.chained_tween && that.chained_tween.start(),
that.oc_fb && that.oc_fb.call(that.oc_fb_target));
}),
(this.start_to = setTimeout(function () {
that.element &&
((element.style[window._jcsspfx + "TransitionDuration"] =
that.duration + "ms"),
(element.style[window._jcsspfx + "TransitionProperty"] =
that.transProperty || "all"),
0 < that.delay
? (element.style[window._jcsspfx + "TransitionDelay"] =
that.delay + "ms")
: (element.style[window._jcsspfx + "TransitionDelay"] = ""),
(element.style[window._jcsspfx + "TransitionTimingFunction"] =
that.ease),
that.to_cb && that.to_cb.call(that.to_cb_target),
(that.end_to = setTimeout(function () {
that.onTransComplete();
}, that.duration + (that.delay || 0))));
}, 10)),
this
);
});
})(),
(function () {
"use strict";
var _cssanim = null;
(window.CTween = {}),
(CTween.animate = function (element, duration, properties, options) {
if (
(null == _cssanim && (_cssanim = window._cssanim),
(options = options || {}),
_cssanim)
) {
var tween = new CSSTween(
element,
duration,
options.delay,
EaseDic[options.ease]
);
return (
options.transProperty &&
(tween.transProperty = options.transProperty),
tween.to(function () {
element.css(properties);
}),
options.complete &&
tween.onComplete(options.complete, options.target),
tween.start(),
(tween.stop = tween.reset),
tween
);
}
var onCl;
return (
options.delay && element.delay(options.delay),
options.complete &&
(onCl = function () {
options.complete.call(options.target);
}),
element
.stop(!0)
.animate(properties, duration, options.ease || "linear", onCl),
element
);
}),
(CTween.fadeOut = function (target, duration, remove) {
var options = {};
!0 === remove
? (options.complete = function () {
target.remove();
})
: 2 === remove &&
(options.complete = function () {
target.css("display", "none");
}),
CTween.animate(target, duration || 1e3, { opacity: 0 }, options);
}),
(CTween.fadeIn = function (target, duration, reset) {
!1 !== reset && target.css("opacity", 0).css("display", ""),
CTween.animate(target, duration || 1e3, { opacity: 1 });
});
})(),
(window.EaseDic = {
linear: "linear",
ease: "ease",
easeIn: "ease-in",
easeOut: "ease-out",
easeInOut: "ease-in-out",
easeInCubic: "cubic-bezier(.55,.055,.675,.19)",
easeOutCubic: "cubic-bezier(.215,.61,.355,1)",
easeInOutCubic: "cubic-bezier(.645,.045,.355,1)",
easeInCirc: "cubic-bezier(.6,.04,.98,.335)",
easeOutCirc: "cubic-bezier(.075,.82,.165,1)",
easeInOutCirc: "cubic-bezier(.785,.135,.15,.86)",
easeInExpo: "cubic-bezier(.95,.05,.795,.035)",
easeOutExpo: "cubic-bezier(.19,1,.22,1)",
easeInOutExpo: "cubic-bezier(1,0,0,1)",
easeInQuad: "cubic-bezier(.55,.085,.68,.53)",
easeOutQuad: "cubic-bezier(.25,.46,.45,.94)",
easeInOutQuad: "cubic-bezier(.455,.03,.515,.955)",
easeInQuart: "cubic-bezier(.895,.03,.685,.22)",
easeOutQuart: "cubic-bezier(.165,.84,.44,1)",
easeInOutQuart: "cubic-bezier(.77,0,.175,1)",
easeInQuint: "cubic-bezier(.755,.05,.855,.06)",
easeOutQuint: "cubic-bezier(.23,1,.32,1)",
easeInOutQuint: "cubic-bezier(.86,0,.07,1)",
easeInSine: "cubic-bezier(.47,0,.745,.715)",
easeOutSine: "cubic-bezier(.39,.575,.565,1)",
easeInOutSine: "cubic-bezier(.445,.05,.55,.95)",
easeInBack: "cubic-bezier(.6,-.28,.735,.045)",
easeOutBack: "cubic-bezier(.175, .885,.32,1.275)",
easeInOutBack: "cubic-bezier(.68,-.55,.265,1.55)",
}),
(function () {
"use strict";
function SlickController(min, max, options) {
if (null === max || null === min)
throw new Error("Max and Min values are required.");
for (var key in ((this.options = options || {}), _options))
key in this.options || (this.options[key] = _options[key]);
(this._max_value = max),
(this._min_value = min),
(this.value = min),
(this.end_loc = min),
(this.current_snap = this.getSnapNum(min)),
(this.__extrStep = 0),
(this.__extraMove = 0),
(this.__animID = -1);
}
var _options = {
bouncing: !0,
snapping: !1,
snapsize: null,
friction: 0.05,
outFriction: 0.05,
outAcceleration: 0.09,
minValidDist: 0.3,
snappingMinSpeed: 2,
paging: !1,
endless: !1,
maxSpeed: 160,
},
p = SlickController.prototype;
(p.changeTo = function (value, animate, speed, snap_num, dispatch) {
if (
((this.stopped = !1),
this._internalStop(),
(value = this._checkLimits(value)),
(speed = Math.abs(speed || 0)),
this.options.snapping &&
((snap_num = snap_num || this.getSnapNum(value)),
!1 !== dispatch && this._callsnapChange(snap_num),
(this.current_snap = snap_num)),
animate)
) {
this.animating = !0;
var self = this,
active_id = ++self.__animID,
amplitude = value - self.value,
timeStep = 0,
targetPosition = value,
animFrict = 1 - self.options.friction,
timeconst =
animFrict +
((speed - 20) * animFrict * 1.3) / self.options.maxSpeed,
tick = function () {
if (active_id === self.__animID) {
var dis = value - self.value;
if (
!(Math.abs(dis) > self.options.minValidDist && self.animating)
)
return (
self.animating &&
((self.value = value), self._callrenderer()),
(self.animating = !1),
active_id !== self.__animID && (self.__animID = -1),
void self._callonComplete("anim")
);
window.requestAnimationFrame(tick),
(self.value =
targetPosition -
amplitude * Math.exp(-++timeStep * timeconst)),
self._callrenderer();
}
};
tick();
} else (this.value = value), this._callrenderer();
}),
(p.drag = function (move) {
this.start_drag &&
((this.drag_start_loc = this.value), (this.start_drag = !1)),
(this.animating = !1),
(this._deceleration = !1),
(this.value -= move),
!this.options.endless &&
(this.value > this._max_value || this.value < 0)
? this.options.bouncing
? ((this.__isout = !0), (this.value += 0.6 * move))
: this.value > this._max_value
? (this.value = this._max_value)
: (this.value = 0)
: !this.options.endless &&
this.options.bouncing &&
(this.__isout = !1),
this._callrenderer();
}),
(p.push = function (speed) {
if (
((this.stopped = !1),
this.options.snapping &&
Math.abs(speed) <= this.options.snappingMinSpeed)
)
this.cancel();
else {
if (
((this.__speed = speed),
(this.__startSpeed = speed),
(this.end_loc = this._calculateEnd()),
this.options.snapping)
) {
var snap_loc = this.getSnapNum(this.value),
end_snap = this.getSnapNum(this.end_loc);
if (this.options.paging)
return (
(snap_loc = this.getSnapNum(this.drag_start_loc)),
(this.__isout = !1),
void (0 < speed
? this.gotoSnap(snap_loc + 1, !0, speed)
: this.gotoSnap(snap_loc - 1, !0, speed))
);
if (snap_loc === end_snap) return void this.cancel();
this._callsnapChange(end_snap), (this.current_snap = end_snap);
}
(this.animating = !1),
(this.__needsSnap =
this.options.endless ||
(this.end_loc > this._min_value &&
this.end_loc < this._max_value)),
this.options.snapping &&
this.__needsSnap &&
(this.__extraMove = this._calculateExtraMove(this.end_loc)),
this._startDecelaration();
}
}),
(p.bounce = function (speed) {
this.animating ||
((this.stopped = !1),
(this.animating = !1),
(this.__speed = speed),
(this.__startSpeed = speed),
(this.end_loc = this._calculateEnd()),
this._startDecelaration());
}),
(p.stop = function () {
(this.stopped = !0), this._internalStop();
}),
(p.cancel = function () {
(this.start_drag = !0),
this.__isout
? ((this.__speed = 4e-4), this._startDecelaration())
: this.options.snapping &&
this.gotoSnap(this.getSnapNum(this.value), !0);
}),
(p.renderCallback = function (listener, ref) {
this.__renderHook = { fun: listener, ref: ref };
}),
(p.snappingCallback = function (listener, ref) {
this.__snapHook = { fun: listener, ref: ref };
}),
(p.snapCompleteCallback = function (listener, ref) {
this.__compHook = { fun: listener, ref: ref };
}),
(p.getSnapNum = function (value) {
return Math.floor(
(value + this.options.snapsize / 2) / this.options.snapsize
);
}),
(p.nextSnap = function (animate, speed) {
this._internalStop();
var curr_snap = this.getSnapNum(this.value),
snapsize = this.options.snapsize;
if (
!this.options.endless &&
(curr_snap + 1) * snapsize > this._max_value
) {
if (this._max_value - this.value > 0.1 * snapsize)
return void this.changeTo(this._max_value, !0);
(this.__speed = 8),
(this.__needsSnap = !1),
this._startDecelaration();
} else this.gotoSnap(curr_snap + 1, !0);
}),
(p.prevSnap = function (animate, speed) {
this._internalStop();
var curr_snap = this.getSnapNum(this.value),
snapsize = this.options.snapsize;
if (
!this.options.endless &&
(curr_snap - 1) * snapsize < this._min_value
) {
if (this.value - this._min_value > 0.1 * snapsize)
return void this.changeTo(this._min_value, !0);
(this.__speed = -8),
(this.__needsSnap = !1),
this._startDecelaration();
} else this.gotoSnap(curr_snap - 1, !0);
}),
(p.gotoSnap = function (snap_num, animate, speed) {
this.changeTo(
snap_num * this.options.snapsize,
animate,
speed,
snap_num
);
}),
(p.destroy = function () {
this._internalStop(),
(this.__renderHook = null),
(this.__snapHook = null),
(this.__compHook = null);
}),
(p._internalStop = function () {
(this.start_drag = !0),
(this.animating = !1),
(this._deceleration = !1),
(this.__extrStep = 0);
}),
(p._calculateExtraMove = function (value) {
var m = value % this.options.snapsize;
return m < this.options.snapsize / 2 ? -m : this.options.snapsize - m;
}),
(p._calculateEnd = function (step) {
for (
var temp_speed = this.__speed, temp_value = this.value, i = 0;
Math.abs(temp_speed) > this.options.minValidDist;
)
(temp_value += temp_speed),
(temp_speed *= this.options.friction),
i++;
return step ? i : temp_value;
}),
(p._checkLimits = function (value) {
return this.options.endless
? value
: value < this._min_value
? this._min_value
: value > this._max_value
? this._max_value
: value;
}),
(p._callrenderer = function () {
this.__renderHook &&
this.__renderHook.fun.call(this.__renderHook.ref, this, this.value);
}),
(p._callsnapChange = function (targetSnap) {
this.__snapHook &&
targetSnap !== this.current_snap &&
this.__snapHook.fun.call(
this.__snapHook.ref,
this,
targetSnap,
targetSnap - this.current_snap
);
}),
(p._callonComplete = function (type) {
this.__compHook &&
!this.stopped &&
this.__compHook.fun.call(
this.__compHook.ref,
this,
this.current_snap,
type
);
}),
(p._computeDeceleration = function () {
if (this.options.snapping && this.__needsSnap) {
var xtr_move =
((this.__startSpeed - this.__speed) / this.__startSpeed) *
this.__extraMove;
(this.value += this.__speed + xtr_move - this.__extrStep),
(this.__extrStep = xtr_move);
} else this.value += this.__speed;
if (
((this.__speed *= this.options.friction),
this.options.endless ||
this.options.bouncing ||
(this.value <= this._min_value
? ((this.value = this._min_value), (this.__speed = 0))
: this.value >= this._max_value &&
((this.value = this._max_value), (this.__speed = 0))),
this._callrenderer(),
!this.options.endless && this.options.bouncing)
) {
var out_value = 0;
this.value < this._min_value
? (out_value = this._min_value - this.value)
: this.value > this._max_value &&
(out_value = this._max_value - this.value),
(this.__isout = Math.abs(out_value) >= this.options.minValidDist),
this.__isout &&
(this.__speed * out_value <= 0
? (this.__speed += out_value * this.options.outFriction)
: (this.__speed = out_value * this.options.outAcceleration));
}
}),
(p._startDecelaration = function () {
if (!this._deceleration) {
this._deceleration = !0;
var self = this,
tick = function () {
self._deceleration &&
(self._computeDeceleration(),
Math.abs(self.__speed) > self.options.minValidDist ||
self.__isout
? window.requestAnimationFrame(tick)
: ((self._deceleration = !1),
(self.__isout = !1),
self.__needsSnap &&
self.options.snapping &&
!self.options.paging
? (self.value = self._checkLimits(
self.end_loc + self.__extraMove
))
: (self.value = Math.round(self.value)),
self._callrenderer(),
self._callonComplete("decel")));
};
tick();
}
}),
(window.SlickController = SlickController);
})(),
(function (e) {
var n =
("object" == typeof window && window) ||
("object" == typeof self && self);
"undefined" != typeof exports
? e(exports)
: n &&
((n.hljs = e({})),
"function" == typeof define &&
define.amd &&
define([], function () {
return n.hljs;
}));
})(function (e) {
function n(e) {
return e
.replace(/&/gm, "&")
.replace(//gm, ">");
}
function t(e) {
return e.nodeName.toLowerCase();
}
function r(e, n) {
var t = e && e.exec(n);
return t && 0 == t.index;
}
function a(e) {
return /^(no-?highlight|plain|text)$/i.test(e);
}
function o(e, n) {
var t,
r = {};
for (t in e) r[t] = e[t];
if (n) for (t in n) r[t] = n[t];
return r;
}
function u(e) {
var n = [];
return (
(function r(e, a) {
for (var i = e.firstChild; i; i = i.nextSibling)
3 == i.nodeType
? (a += i.nodeValue.length)
: 1 == i.nodeType &&
(n.push({ event: "start", offset: a, node: i }),
(a = r(i, a)),
t(i).match(/br|hr|img|input/) ||
n.push({ event: "stop", offset: a, node: i }));
return a;
})(e, 0),
n
);
}
function c(e, r, a) {
function i() {
return e.length && r.length
? e[0].offset != r[0].offset
? e[0].offset < r[0].offset
? e
: r
: "start" == r[0].event
? e
: r
: e.length
? e
: r;
}
function o(e) {
f +=
"<" +
t(e) +
Array.prototype.map
.call(e.attributes, function (e) {
return " " + e.nodeName + '="' + n(e.value) + '"';
})
.join("") +
">";
}
function u(e) {
f += "" + t(e) + ">";
}
function c(e) {
("start" == e.event ? o : u)(e.node);
}
for (var s = 0, f = "", l = []; e.length || r.length; ) {
var g = i();
if (
((f += n(a.substr(s, g[0].offset - s))), (s = g[0].offset), g == e)
) {
for (
l.reverse().forEach(u);
c(g.splice(0, 1)[0]),
(g = i()) == e && g.length && g[0].offset == s;
);
l.reverse().forEach(o);
} else
"start" == g[0].event ? l.push(g[0].node) : l.pop(),
c(g.splice(0, 1)[0]);
}
return f + n(a.substr(s));
}
function s(e) {
function n(e) {
return (e && e.source) || e;
}
function t(t, r) {
return new RegExp(n(t), "m" + (e.cI ? "i" : "") + (r ? "g" : ""));
}
!(function r(a, i) {
if (!a.compiled) {
if (((a.compiled = !0), (a.k = a.k || a.bK), a.k)) {
function c(n, t) {
e.cI && (t = t.toLowerCase()),
t.split(" ").forEach(function (e) {
var t = e.split("|");
u[t[0]] = [n, t[1] ? Number(t[1]) : 1];
});
}
var u = {};
"string" == typeof a.k
? c("keyword", a.k)
: Object.keys(a.k).forEach(function (e) {
c(e, a.k[e]);
}),
(a.k = u);
}
(a.lR = t(a.l || /\w+/, !0)),
i &&
(a.bK && (a.b = "\\b(" + a.bK.split(" ").join("|") + ")\\b"),
a.b || (a.b = /\B|\b/),
(a.bR = t(a.b)),
a.e || a.eW || (a.e = /\B|\b/),
a.e && (a.eR = t(a.e)),
(a.tE = n(a.e) || ""),
a.eW && i.tE && (a.tE += (a.e ? "|" : "") + i.tE)),
a.i && (a.iR = t(a.i)),
void 0 === a.r && (a.r = 1),
a.c || (a.c = []);
var s = [];
a.c.forEach(function (e) {
e.v
? e.v.forEach(function (n) {
s.push(o(e, n));
})
: s.push("self" == e ? a : e);
}),
(a.c = s),
a.c.forEach(function (e) {
r(e, a);
}),
a.starts && r(a.starts, i);
var f = a.c
.map(function (e) {
return e.bK ? "\\.?(" + e.b + ")\\.?" : e.b;
})
.concat([a.tE, a.i])
.map(n)
.filter(Boolean);
a.t = f.length
? t(f.join("|"), !0)
: {
exec: function () {
return null;
},
};
}
})(e);
}
function f(e, t, a, i) {
function o(e, n) {
for (var t = 0; t < n.c.length; t++) if (r(n.c[t].bR, e)) return n.c[t];
}
function u(e, n) {
if (r(e.eR, n)) {
for (; e.endsParent && e.parent; ) e = e.parent;
return e;
}
return e.eW ? u(e.parent, n) : void 0;
}
function c(e, n) {
return !a && r(n.iR, e);
}
function g(e, n) {
var t = N.cI ? n[0].toLowerCase() : n[0];
return e.k.hasOwnProperty(t) && e.k[t];
}
function p(e, n, t, r) {
var i = '') + n + (t ? "" : "");
}
function b() {
(L +=
void 0 !== k.sL
? (function () {
var e = "string" == typeof k.sL;
if (e && !R[k.sL]) return n(M);
var t = e
? f(k.sL, M, !0, y[k.sL])
: l(M, k.sL.length ? k.sL : void 0);
return (
0 < k.r && (B += t.r),
e && (y[k.sL] = t.top),
p(t.language, t.value, !1, !0)
);
})()
: (function () {
if (!k.k) return n(M);
var e = "",
t = 0;
k.lR.lastIndex = 0;
for (var r = k.lR.exec(M); r; ) {
e += n(M.substr(t, r.index - t));
var a = g(k, r);
a ? ((B += a[1]), (e += p(a[0], n(r[0])))) : (e += n(r[0])),
(t = k.lR.lastIndex),
(r = k.lR.exec(M));
}
return e + n(M.substr(t));
})()),
(M = "");
}
function v(e) {
(L += e.cN ? p(e.cN, "", !0) : ""),
(k = Object.create(e, { parent: { value: k } }));
}
function m(e, n) {
if (((M += e), void 0 === n)) return b(), 0;
var t = o(n, k);
if (t)
return (
t.skip
? (M += n)
: (t.eB && (M += n), b(), t.rB || t.eB || (M = n)),
v(t),
t.rB ? 0 : n.length
);
var r = u(k, n);
if (r) {
var a = k;
for (
a.skip
? (M += n)
: (a.rE || a.eE || (M += n), b(), a.eE && (M = n));
k.cN && (L += ""),
k.skip || (B += k.r),
(k = k.parent) != r.parent;
);
return r.starts && v(r.starts), a.rE ? 0 : n.length;
}
if (c(n, k))
throw new Error(
'Illegal lexeme "' +
n +
'" for mode "' +
(k.cN || "") +
'"'
);
return (M += n), n.length || 1;
}
var N = w(e);
if (!N) throw new Error('Unknown language: "' + e + '"');
s(N);
var x,
k = i || N,
y = {},
L = "";
for (x = k; x != N; x = x.parent) x.cN && (L = p(x.cN, "", !0) + L);
var M = "",
B = 0;
try {
for (var C, j, I = 0; (k.t.lastIndex = I), (C = k.t.exec(t)); )
(j = m(t.substr(I, C.index - I), C[0])), (I = C.index + j);
for (m(t.substr(I)), x = k; x.parent; x = x.parent)
x.cN && (L += "");
return { r: B, value: L, language: e, top: k };
} catch (O) {
if (-1 != O.message.indexOf("Illegal")) return { r: 0, value: n(t) };
throw O;
}
}
function l(e, t) {
t = t || E.languages || Object.keys(R);
var r = { r: 0, value: n(e) },
a = r;
return (
t.filter(w).forEach(function (n) {
var t = f(n, e, !1);
(t.language = n),
t.r > a.r && (a = t),
t.r > r.r && ((a = r), (r = t));
}),
a.language && (r.second_best = a),
r
);
}
function g(e) {
return (
E.tabReplace &&
(e = e.replace(/^((<[^>]+>|\t)+)/gm, function (e, n) {
return n.replace(/\t/g, E.tabReplace);
})),
E.useBR && (e = e.replace(/\n/g, "
")),
e
);
}
function h(e) {
var n = (function (e) {
var n,
t,
r,
i = e.className + " ";
if (
((i += e.parentNode ? e.parentNode.className : ""),
(t = /\blang(?:uage)?-([\w-]+)\b/i.exec(i)))
)
return w(t[1]) ? t[1] : "no-highlight";
for (n = 0, r = (i = i.split(/\s+/)).length; n < r; n++)
if (w(i[n]) || a(i[n])) return i[n];
})(e);
if (!a(n)) {
var t;
E.useBR
? ((t = document.createElementNS(
"http://www.w3.org/1999/xhtml",
"div"
)).innerHTML = e.innerHTML
.replace(/\n/g, "")
.replace(/
/g, "\n"))
: (t = e);
var r = t.textContent,
o = n ? f(n, r, !0) : l(r),
s = u(t);
if (s.length) {
var h = document.createElementNS(
"http://www.w3.org/1999/xhtml",
"div"
);
(h.innerHTML = o.value), (o.value = c(s, u(h), r));
}
(o.value = g(o.value)),
(e.innerHTML = o.value),
(e.className = (function (e, n, t) {
var r = n ? x[n] : t,
a = [e.trim()];
return (
e.match(/\bhljs\b/) || a.push("hljs"),
-1 === e.indexOf(r) && a.push(r),
a.join(" ").trim()
);
})(e.className, n, o.language)),
(e.result = { language: o.language, re: o.r }),
o.second_best &&
(e.second_best = {
language: o.second_best.language,
re: o.second_best.r,
});
}
}
function b() {
if (!b.called) {
b.called = !0;
var e = document.querySelectorAll("pre code");
Array.prototype.forEach.call(e, h);
}
}
function w(e) {
return (e = (e || "").toLowerCase()), R[e] || R[x[e]];
}
var E = {
classPrefix: "hljs-",
tabReplace: null,
useBR: !1,
languages: void 0,
},
R = {},
x = {};
return (
(e.highlight = f),
(e.highlightAuto = l),
(e.fixMarkup = g),
(e.highlightBlock = h),
(e.configure = function (e) {
E = o(E, e);
}),
(e.initHighlighting = b),
(e.initHighlightingOnLoad = function () {
addEventListener("DOMContentLoaded", b, !1),
addEventListener("load", b, !1);
}),
(e.registerLanguage = function (n, t) {
var r = (R[n] = t(e));
r.aliases &&
r.aliases.forEach(function (e) {
x[e] = n;
});
}),
(e.listLanguages = function () {
return Object.keys(R);
}),
(e.getLanguage = w),
(e.inherit = o),
(e.IR = "[a-zA-Z]\\w*"),
(e.UIR = "[a-zA-Z_]\\w*"),
(e.NR = "\\b\\d+(\\.\\d+)?"),
(e.CNR =
"(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)"),
(e.BNR = "\\b(0b[01]+)"),
(e.RSR =
"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~"),
(e.BE = { b: "\\\\[\\s\\S]", r: 0 }),
(e.ASM = { cN: "string", b: "'", e: "'", i: "\\n", c: [e.BE] }),
(e.QSM = { cN: "string", b: '"', e: '"', i: "\\n", c: [e.BE] }),
(e.PWM = {
b: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|like)\b/,
}),
(e.C = function (n, t, r) {
var a = e.inherit({ cN: "comment", b: n, e: t, c: [] }, r || {});
return (
a.c.push(e.PWM),
a.c.push({ cN: "doctag", b: "(?:TODO|FIXME|NOTE|BUG|XXX):", r: 0 }),
a
);
}),
(e.CLCM = e.C("//", "$")),
(e.CBCM = e.C("/\\*", "\\*/")),
(e.HCM = e.C("#", "$")),
(e.NM = { cN: "number", b: e.NR, r: 0 }),
(e.CNM = { cN: "number", b: e.CNR, r: 0 }),
(e.BNM = { cN: "number", b: e.BNR, r: 0 }),
(e.CSSNM = {
cN: "number",
b:
e.NR +
"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",
r: 0,
}),
(e.RM = {
cN: "regexp",
b: /\//,
e: /\/[gimuy]*/,
i: /\n/,
c: [e.BE, { b: /\[/, e: /\]/, r: 0, c: [e.BE] }],
}),
(e.TM = { cN: "title", b: e.IR, r: 0 }),
(e.UTM = { cN: "title", b: e.UIR, r: 0 }),
(e.METHOD_GUARD = { b: "\\.\\s*" + e.UIR, r: 0 }),
e
);
}),
hljs.registerLanguage("xml", function (s) {
var t = {
eW: !0,
i: /,
r: 0,
c: [
{ cN: "attr", b: "[A-Za-z0-9\\._:-]+", r: 0 },
{
b: /=\s*/,
r: 0,
c: [
{
cN: "string",
endsParent: !0,
v: [
{ b: /"/, e: /"/ },
{ b: /'/, e: /'/ },
{ b: /[^\s"'=<>`]+/ },
],
},
],
},
],
};
return {
aliases: ["html", "xhtml", "rss", "atom", "xsl", "plist"],
cI: !0,
c: [
{
cN: "meta",
b: "",
r: 10,
c: [{ b: "\\[", e: "\\]" }],
},
s.C("\x3c!--", "--\x3e", { r: 10 }),
{ b: "<\\!\\[CDATA\\[", e: "\\]\\]>", r: 10 },
{
b: /<\?(php)?/,
e: /\?>/,
sL: "php",
c: [{ b: "/\\*", e: "\\*/", skip: !0 }],
},
{
cN: "tag",
b: "", rE: !0, sL: ["css", "xml"] },
},
{
cN: "tag",
b: "",
rE: !0,
sL: ["actionscript", "javascript", "handlebars", "xml"],
},
},
{
cN: "meta",
v: [
{ b: /<\?xml/, e: /\?>/, r: 10 },
{ b: /<\?\w+/, e: /\?>/ },
],
},
{
cN: "tag",
b: "?",
e: "/?>",
c: [{ cN: "name", b: /[^\/><\s]+/, r: 0 }, t],
},
],
};
}),
hljs.registerLanguage("java", function (e) {
var t = e.UIR + "(<" + e.UIR + "(\\s*,\\s*" + e.UIR + ")*>)?",
a =
"false synchronized int abstract float private char boolean static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports",
s = {
cN: "number",
b: "\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",
r: 0,
};
return {
aliases: ["jsp"],
k: a,
i: /<\/|#/,
c: [
e.C("/\\*\\*", "\\*/", {
r: 0,
c: [
{ b: /\w+@/, r: 0 },
{ cN: "doctag", b: "@[A-Za-z]+" },
],
}),
e.CLCM,
e.CBCM,
e.ASM,
e.QSM,
{
cN: "class",
bK: "class interface",
e: /[{;=]/,
eE: !0,
k: "class interface",
i: /[:"\[\]]/,
c: [{ bK: "extends implements" }, e.UTM],
},
{ bK: "new throw return else", r: 0 },
{
cN: "function",
b: "(" + t + "\\s+)+" + e.UIR + "\\s*\\(",
rB: !0,
e: /[{;=]/,
eE: !0,
k: a,
c: [
{ b: e.UIR + "\\s*\\(", rB: !0, r: 0, c: [e.UTM] },
{
cN: "params",
b: /\(/,
e: /\)/,
k: a,
r: 0,
c: [e.ASM, e.QSM, e.CNM, e.CBCM],
},
e.CLCM,
e.CBCM,
],
},
s,
{ cN: "meta", b: "@[A-Za-z]+" },
],
};
}),
hljs.registerLanguage("css", function (e) {
var t = {
b: /[A-Z\_\.\-]+\s*:/,
rB: !0,
e: ";",
eW: !0,
c: [
{
cN: "attribute",
b: /\S/,
e: ":",
eE: !0,
starts: {
eW: !0,
eE: !0,
c: [
{
b: /[\w-]+\(/,
rB: !0,
c: [
{ cN: "built_in", b: /[\w-]+/ },
{ b: /\(/, e: /\)/, c: [e.ASM, e.QSM] },
],
},
e.CSSNM,
e.QSM,
e.ASM,
e.CBCM,
{ cN: "number", b: "#[0-9A-Fa-f]+" },
{ cN: "meta", b: "!important" },
],
},
},
],
};
return {
cI: !0,
i: /[=\/|'\$]/,
c: [
e.CBCM,
{ cN: "selector-id", b: /#[A-Za-z0-9_-]+/ },
{ cN: "selector-class", b: /\.[A-Za-z0-9_-]+/ },
{ cN: "selector-attr", b: /\[/, e: /\]/, i: "$" },
{ cN: "selector-pseudo", b: /:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/ },
{ b: "@(font-face|page)", l: "[a-z-]+", k: "font-face page" },
{
b: "@",
e: "[{;]",
i: /:/,
c: [
{ cN: "keyword", b: /\w+/ },
{ b: /\s/, eW: !0, eE: !0, r: 0, c: [e.ASM, e.QSM, e.CSSNM] },
],
},
{ cN: "selector-tag", b: "[a-zA-Z-][a-zA-Z0-9_-]*", r: 0 },
{ b: "{", e: "}", i: /\S/, c: [e.CBCM, t] },
],
};
}),
hljs.registerLanguage("ruby", function (e) {
var r =
"[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",
b = {
keyword:
"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",
literal: "true false nil",
},
c = { cN: "doctag", b: "@[A-Za-z]+" },
a = { b: "#<", e: ">" },
s = [
e.C("#", "$", { c: [c] }),
e.C("^\\=begin", "^\\=end", { c: [c], r: 10 }),
e.C("^__END__", "\\n$"),
],
n = { cN: "subst", b: "#\\{", e: "}", k: b },
t = {
cN: "string",
c: [e.BE, n],
v: [
{ b: /'/, e: /'/ },
{ b: /"/, e: /"/ },
{ b: /`/, e: /`/ },
{ b: "%[qQwWx]?\\(", e: "\\)" },
{ b: "%[qQwWx]?\\[", e: "\\]" },
{ b: "%[qQwWx]?{", e: "}" },
{ b: "%[qQwWx]?<", e: ">" },
{ b: "%[qQwWx]?/", e: "/" },
{ b: "%[qQwWx]?%", e: "%" },
{ b: "%[qQwWx]?-", e: "-" },
{ b: "%[qQwWx]?\\|", e: "\\|" },
{
b: /\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/,
},
],
},
i = { cN: "params", b: "\\(", e: "\\)", endsParent: !0, k: b },
d = [
t,
a,
{
cN: "class",
bK: "class module",
e: "$|;",
i: /=/,
c: [
e.inherit(e.TM, { b: "[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?" }),
{ b: "<\\s*", c: [{ b: "(" + e.IR + "::)?" + e.IR }] },
].concat(s),
},
{
cN: "function",
bK: "def",
e: "$|;",
c: [e.inherit(e.TM, { b: r }), i].concat(s),
},
{ b: e.IR + "::" },
{ cN: "symbol", b: e.UIR + "(\\!|\\?)?:", r: 0 },
{ cN: "symbol", b: ":(?!\\s)", c: [t, { b: r }], r: 0 },
{
cN: "number",
b: "(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",
r: 0,
},
{ b: "(\\$\\W)|((\\$|\\@\\@?)(\\w+))" },
{ cN: "params", b: /\|/, e: /\|/, k: b },
{
b: "(" + e.RSR + ")\\s*",
c: [
a,
{
cN: "regexp",
c: [e.BE, n],
i: /\n/,
v: [
{ b: "/", e: "/[a-z]*" },
{ b: "%r{", e: "}[a-z]*" },
{ b: "%r\\(", e: "\\)[a-z]*" },
{ b: "%r!", e: "![a-z]*" },
{ b: "%r\\[", e: "\\][a-z]*" },
],
},
].concat(s),
r: 0,
},
].concat(s);
n.c = d;
var w = [
{ b: /^\s*=>/, starts: { e: "$", c: (i.c = d) } },
{
cN: "meta",
b: "^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>)",
starts: { e: "$", c: d },
},
];
return {
aliases: ["rb", "gemspec", "podspec", "thor", "irb"],
k: b,
i: /\/\*/,
c: s.concat(w).concat(d),
};
}),
hljs.registerLanguage("coffeescript", function (e) {
var c = {
keyword:
"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",
literal: "true false null undefined yes no on off",
built_in: "npm require console print module global window document",
},
n = "[A-Za-z$_][0-9A-Za-z$_]*",
r = { cN: "subst", b: /#\{/, e: /}/, k: c },
s = [
e.BNM,
e.inherit(e.CNM, { starts: { e: "(\\s*/)?", r: 0 } }),
{
cN: "string",
v: [
{ b: /'''/, e: /'''/, c: [e.BE] },
{ b: /'/, e: /'/, c: [e.BE] },
{ b: /"""/, e: /"""/, c: [e.BE, r] },
{ b: /"/, e: /"/, c: [e.BE, r] },
],
},
{
cN: "regexp",
v: [
{ b: "///", e: "///", c: [r, e.HCM] },
{ b: "//[gim]*", r: 0 },
{ b: /\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/ },
],
},
{ b: "@" + n },
{ b: "`", e: "`", eB: !0, eE: !0, sL: "javascript" },
];
r.c = s;
var i = e.inherit(e.TM, { b: n }),
t = "(\\(.*\\))?\\s*\\B[-=]>",
o = {
cN: "params",
b: "\\([^\\(]",
rB: !0,
c: [{ b: /\(/, e: /\)/, k: c, c: ["self"].concat(s) }],
};
return {
aliases: ["coffee", "cson", "iced"],
k: c,
i: /\/\*/,
c: s.concat([
e.C("###", "###"),
e.HCM,
{
cN: "function",
b: "^\\s*" + n + "\\s*=\\s*" + t,
e: "[-=]>",
rB: !0,
c: [i, o],
},
{
b: /[:\(,=]\s*/,
r: 0,
c: [{ cN: "function", b: t, e: "[-=]>", rB: !0, c: [o] }],
},
{
cN: "class",
bK: "class",
e: "$",
i: /[:="\[\]]/,
c: [{ bK: "extends", eW: !0, i: /[:="\[\]]/, c: [i] }, i],
},
{ b: n + ":", e: ":", rB: !0, rE: !0, r: 0 },
]),
};
}),
hljs.registerLanguage("cs", function (e) {
var r = {
keyword:
"abstract as base bool break byte case catch char checked const continue decimal dynamic default delegate do double else enum event explicit extern finally fixed float for foreach goto if implicit in int interface internal is lock long when object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async protected public private internal ascending descending from get group into join let orderby partial select set value var where yield",
literal: "null false true",
},
t = e.IR + "(<" + e.IR + ">)?(\\[\\])?";
return {
aliases: ["csharp"],
k: r,
i: /::/,
c: [
e.C("///", "$", {
rB: !0,
c: [
{
cN: "doctag",
v: [
{ b: "///", r: 0 },
{ b: "\x3c!--|--\x3e" },
{ b: "?", e: ">" },
],
},
],
}),
e.CLCM,
e.CBCM,
{
cN: "meta",
b: "#",
e: "$",
k: {
"meta-keyword":
"if else elif endif define undef warning error line region endregion pragma checksum",
},
},
{ cN: "string", b: '@"', e: '"', c: [{ b: '""' }] },
e.ASM,
e.QSM,
e.CNM,
{
bK: "class interface",
e: /[{;=]/,
i: /[^\s:]/,
c: [e.TM, e.CLCM, e.CBCM],
},
{
bK: "namespace",
e: /[{;=]/,
i: /[^\s:]/,
c: [e.inherit(e.TM, { b: "[a-zA-Z](\\.?\\w)*" }), e.CLCM, e.CBCM],
},
{ bK: "new return throw await", r: 0 },
{
cN: "function",
b: "(" + t + "\\s+)+" + e.IR + "\\s*\\(",
rB: !0,
e: /[{;=]/,
eE: !0,
k: r,
c: [
{ b: e.IR + "\\s*\\(", rB: !0, c: [e.TM], r: 0 },
{
cN: "params",
b: /\(/,
e: /\)/,
eB: !0,
eE: !0,
k: r,
r: 0,
c: [e.ASM, e.QSM, e.CNM, e.CBCM],
},
e.CLCM,
e.CBCM,
],
},
],
};
}),
hljs.registerLanguage("sql", function (e) {
var t = e.C("--", "$");
return {
cI: !0,
i: /[<>{}*#]/,
c: [
{
bK: "begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke",
e: /;/,
eW: !0,
l: /[\w\.]+/,
k: {
keyword:
"abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",
literal: "true false null",
built_in:
"array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void",
},
c: [
{ cN: "string", b: "'", e: "'", c: [e.BE, { b: "''" }] },
{ cN: "string", b: '"', e: '"', c: [e.BE, { b: '""' }] },
{ cN: "string", b: "`", e: "`", c: [e.BE] },
e.CNM,
e.CBCM,
t,
],
},
e.CBCM,
t,
],
};
}),
hljs.registerLanguage("markdown", function (e) {
return {
aliases: ["md", "mkdown", "mkd"],
c: [
{
cN: "section",
v: [{ b: "^#{1,6}", e: "$" }, { b: "^.+?\\n[=-]{2,}$" }],
},
{ b: "<", e: ">", sL: "xml", r: 0 },
{ cN: "bullet", b: "^([*+-]|(\\d+\\.))\\s+" },
{ cN: "strong", b: "[*_]{2}.+?[*_]{2}" },
{ cN: "emphasis", v: [{ b: "\\*.+?\\*" }, { b: "_.+?_", r: 0 }] },
{ cN: "quote", b: "^>\\s+", e: "$" },
{
cN: "code",
v: [
{ b: "^```w*s*$", e: "^```s*$" },
{ b: "`.+?`" },
{ b: "^( {4}|\t)", e: "$", r: 0 },
],
},
{ b: "^[-\\*]{3,}", e: "$" },
{
b: "\\[.+?\\][\\(\\[].*?[\\)\\]]",
rB: !0,
c: [
{ cN: "string", b: "\\[", e: "\\]", eB: !0, rE: !0, r: 0 },
{ cN: "link", b: "\\]\\(", e: "\\)", eB: !0, eE: !0 },
{ cN: "symbol", b: "\\]\\[", e: "\\]", eB: !0, eE: !0 },
],
r: 10,
},
{
b: "^\\[.+\\]:",
rB: !0,
c: [
{
cN: "symbol",
b: "\\[",
e: "\\]:",
eB: !0,
eE: !0,
starts: { cN: "link", e: "$" },
},
],
},
],
};
}),
hljs.registerLanguage("php", function (e) {
var c = { b: "\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*" },
a = { cN: "meta", b: /<\?(php)?|\?>/ },
i = {
cN: "string",
c: [e.BE, a],
v: [
{ b: 'b"', e: '"' },
{ b: "b'", e: "'" },
e.inherit(e.ASM, { i: null }),
e.inherit(e.QSM, { i: null }),
],
},
t = { v: [e.BNM, e.CNM] };
return {
aliases: ["php3", "php4", "php5", "php6"],
cI: !0,
k: "and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",
c: [
e.HCM,
e.C("//", "$", { c: [a] }),
e.C("/\\*", "\\*/", { c: [{ cN: "doctag", b: "@[A-Za-z]+" }] }),
e.C("__halt_compiler.+?;", !1, {
eW: !0,
k: "__halt_compiler",
l: e.UIR,
}),
{
cN: "string",
b: /<<<['"]?\w+['"]?$/,
e: /^\w+;?$/,
c: [
e.BE,
{ cN: "subst", v: [{ b: /\$\w+/ }, { b: /\{\$/, e: /\}/ }] },
],
},
a,
c,
{ b: /(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/ },
{
cN: "function",
bK: "function",
e: /[;{]/,
eE: !0,
i: "\\$|\\[|%",
c: [
e.UTM,
{ cN: "params", b: "\\(", e: "\\)", c: ["self", c, e.CBCM, i, t] },
],
},
{
cN: "class",
bK: "class interface",
e: "{",
eE: !0,
i: /[:\(\$"]/,
c: [{ bK: "extends implements" }, e.UTM],
},
{ bK: "namespace", e: ";", i: /[\.']/, c: [e.UTM] },
{ bK: "use", e: ";", c: [e.UTM] },
{ b: "=>" },
i,
t,
],
};
}),
hljs.registerLanguage("json", function (e) {
var i = { literal: "true false null" },
n = [e.QSM, e.CNM],
r = { e: ",", eW: !0, eE: !0, c: n, k: i },
t = {
b: "{",
e: "}",
c: [
{ cN: "attr", b: /"/, e: /"/, c: [e.BE], i: "\\n" },
e.inherit(r, { b: /:/ }),
],
i: "\\S",
},
c = { b: "\\[", e: "\\]", c: [e.inherit(r)], i: "\\S" };
return n.splice(n.length, 0, t, c), { c: n, k: i, i: "\\S" };
}),
hljs.registerLanguage("javascript", function (e) {
return {
aliases: ["js", "jsx"],
k: {
keyword:
"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as",
literal: "true false null undefined NaN Infinity",
built_in:
"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise",
},
c: [
{ cN: "meta", r: 10, b: /^\s*['"]use (strict|asm)['"]/ },
{ cN: "meta", b: /^#!/, e: /$/ },
e.ASM,
e.QSM,
{
cN: "string",
b: "`",
e: "`",
c: [e.BE, { cN: "subst", b: "\\$\\{", e: "\\}" }],
},
e.CLCM,
e.CBCM,
{
cN: "number",
v: [
{ b: "\\b(0[bB][01]+)" },
{ b: "\\b(0[oO][0-7]+)" },
{ b: e.CNR },
],
r: 0,
},
{
b: "(" + e.RSR + "|\\b(case|return|throw)\\b)\\s*",
k: "return throw case",
c: [
e.CLCM,
e.CBCM,
e.RM,
{
b: /,
e: /(\/\w+|\w+\/)>/,
sL: "xml",
c: [
{ b: /<\w+\s*\/>/, skip: !0 },
{ b: /<\w+/, e: /(\/\w+|\w+\/)>/, skip: !0, c: ["self"] },
],
},
],
r: 0,
},
{
cN: "function",
bK: "function",
e: /\{/,
eE: !0,
c: [
e.inherit(e.TM, { b: /[A-Za-z$_][0-9A-Za-z$_]*/ }),
{
cN: "params",
b: /\(/,
e: /\)/,
eB: !0,
eE: !0,
c: [e.CLCM, e.CBCM],
},
],
i: /\[|%/,
},
{ b: /\$[(.]/ },
e.METHOD_GUARD,
{
cN: "class",
bK: "class",
e: /[{;=]/,
eE: !0,
i: /[:"\[\]]/,
c: [{ bK: "extends" }, e.UTM],
},
{ bK: "constructor", e: /\{/, eE: !0 },
],
i: /#(?!!)/,
};
}),
(function ($, window, document) {
"use strict";
window.photoswipe_l10n || (window.photoswipe_l10n = {});
var $pswp = $(
''
).appendTo("body"),
youtubeRegex =
/(?:https?:)?(?:\/\/)?(?:[0-9A-Z-]+\.)?(?:youtu\.be\/|youtube(?:-nocookie)?\.com\S*?[^\w\s-])([\w-]{11})(?=[^\w-]|$)(?![?=&+%\w.-]*(?:['"][^<>]*>|<\/a>))[?=&+%\w.-]*/,
vimeoRegex =
/(http|https)?:\/\/(www\.|player\.)?vimeo\.com\/(?:channels\/(?:\w+\/)?|groups\/([^\\/]*)\/videos\/|video\/|)(\d+)(?:|\/\?)/,
embedURLRegex = /\.(3gp|m4v|mkv|mov|mp4|mpeg|mpg|ogg|webm|wmv)$/,
defaults = {
target: "a",
ui: PhotoSwipeUI_Default,
titleMap: !1,
thumbnailMap: !1,
autoplay: 0,
showHideOpacity: !0,
getThumbBoundsFn: !1,
},
_uid = 1;
function JQPhotoSwipe(element, options) {
(this.settings = $.extend({}, defaults, options)),
(this._defaults = defaults),
(this.slides = []),
(this.UID = _uid++),
(this.element = element),
(this.$element = $(element)),
this.init();
}
$.extend(JQPhotoSwipe.prototype, {
init: function () {
this.$element
.find(this.settings.target)
.each(this._registerSlide.bind(this));
var hashData = this._photoswipeParseHash();
if (hashData.pid && hashData.gid) {
var animDuration = this.settings.showAnimationDuration;
(this.settings.showAnimationDuration = 0),
this._openPhotoSwipe(hashData.pid, !0),
(this.settings.showAnimationDuration = animDuration);
}
},
getSlides: function () {
return this.slides;
},
_registerSlide: function (index, item) {
var $item = $(item),
slide = {
src: $item.is("a")
? $item.attr("href")
: $item.data("original-src") || $item.attr("src"),
w: $item.data("original-width"),
h: $item.data("original-height"),
item: item,
};
if ("video" == $item.data("type") && $item.is("a")) {
var videoURLType = this._getVideoURLType($item.attr("href"));
if (!videoURLType) return;
slide = {
html: this._getVideoHtml($item.attr("href"), videoURLType),
};
}
if (
(this.settings.titleMap
? (slide.title = this.settings.titleMap($item, index, this))
: (slide.title =
$item.data("caption") ||
$item.attr("title") ||
$item.attr("alt")),
this.settings.thumbnailMap)
) {
var thumb = this.settings.thumbnailMap($item, index, this);
(slide.el = thumb.element), (slide.msrc = thumb.src);
} else if ($item.is("img"))
(slide.el = item), (slide.msrc = $item.attr("src"));
else {
var img = $item.find("img");
img.length && ((slide.el = img[0]), (slide.msrc = img.attr("src")));
}
$item.data("index", index),
$item.on("click.photoswipe", this._onItemClick.bind(this)),
this.slides.push(slide);
},
_getVideoURLType: function (url) {
return url.match(youtubeRegex)
? "youtube"
: url.match(vimeoRegex)
? "vimeo"
: !!url.match(embedURLRegex) && "embed";
},
_getVideoHtml: function (url, type) {
var videoEmbedLink = url;
"youtube" === type &&
(videoEmbedLink =
"//www.youtube.com/embed/" + url.match(youtubeRegex)[1]);
"vimeo" === type &&
(videoEmbedLink =
"//player.vimeo.com/video/" + url.match(vimeoRegex)[4]);
return (
''
);
},
_onItemClick: function (e) {
e.preventDefault(),
this._openPhotoSwipe($(e.currentTarget).data("index"));
},
_thumbnailBounds: function (index) {
var thumbnail = this.slides[index].el,
pageYScroll =
window.pageYOffset || document.documentElement.scrollTop;
if (thumbnail) {
var rect = thumbnail.getBoundingClientRect();
return { x: rect.left, y: rect.top + pageYScroll, w: rect.width };
}
return null;
},
_photoswipeParseHash: function () {
var hash = window.location.hash.substring(1),
params = {};
if (hash.length < 5) return params;
for (var vars = hash.split("&"), i = 0; i < vars.length; i++)
if (vars[i]) {
var pair = vars[i].split("=");
pair.length < 2 || (params[pair[0]] = pair[1]);
}
return params.gid && (params.gid = parseInt(params.gid, 10)), params;
},
_openPhotoSwipe: function (index, fromURL) {
var gallery,
options = this.settings;
$.extend(options, {
galleryUID: this.UID,
getThumbBoundsFn: this._thumbnailBounds.bind(this),
}),
(options.index = fromURL
? parseInt(index, 10) - 1
: parseInt(index, 10)),
isNaN(options.index) ||
((gallery = new PhotoSwipe(
$pswp[0],
options.ui,
this.slides,
options
)).init(),
this._photoswipeListen(gallery));
},
_photoswipeListen: function (gallery) {
gallery.listen("beforeChange", function () {
var $allItems = $(this.container).find(".pswp__video");
$allItems.removeClass("active"),
$(this.currItem.container).find(".pswp__video").addClass("active"),
$allItems.each(function () {
$(this).hasClass("active") ||
$(this).attr("src", $(this).attr("src"));
});
}),
gallery.listen("close", function () {
$(this.currItem.container)
.find(".pswp__video")
.each(function () {
$(this).attr("src", "about:blank");
});
});
},
}),
($.fn.photoSwipe = function (options) {
var returns,
args = arguments,
plugin = "averta_photoswipe";
return void 0 === options || "object" == typeof options
? this.each(function () {
$.data(this, plugin) ||
$.data(this, plugin, new JQPhotoSwipe(this, options));
})
: "string" == typeof options &&
"_" !== options[0] &&
"init" !== options
? (this.each(function () {
var instance = $.data(this, plugin);
instance instanceof JQPhotoSwipe &&
"function" == typeof instance[options] &&
(returns = instance[options].apply(
instance,
Array.prototype.slice.call(args, 1)
)),
"destroy" === options && $.data(this, plugin, null);
}),
void 0 !== returns ? returns : this)
: void 0;
});
})(jQuery, window, document),
(function ($, window) {
"use strict";
var $window = $(window),
pluginName = "AuxinFloatLayout",
defaults = {
autoLocate: !0,
placeholder: "aux-placehoder",
dynamicSelector: ".aux-auto-locate",
checkMiddle: !0,
phoneClassName: "aux-phone",
tabletClassName: "aux-tablet",
desktopClassName: "aux-desktop",
breakpoints: { 1025: "tablet", 767: "phone" },
};
function Plugin(element, options) {
(this.element = element),
(this.$element = $(element)),
(this.settings = $.extend({}, defaults, options)),
(this._defaults = defaults),
(this._name = pluginName),
this.init();
}
$.extend(Plugin.prototype, {
init: function () {
var dynamicElements = this.$element.find(this.settings.dynamicSelector);
if (
((this.dynamicElements = dynamicElements),
this.settings.autoLocate && dynamicElements.length)
)
for (var i = 0, l = dynamicElements.length; i !== l; i++) {
var element = $(dynamicElements[i]);
dynamicElements[i] = element
.data("placeholder", $(''))
.data("layout", "default");
}
$window.on("resize", this._onResize.bind(this)), this._onResize();
},
update: function () {
this._onResize(), this.$containerPlaceHolder && this._onScroll();
},
destroy: function () {
if (
($window.off("resize", this._onResize).off("scroll", this._onScroll),
this.dynamicElements)
) {
for (var i = 0, l = this.dynamicElements.length; i !== l; i++) {
var dynamicElement = this.dynamicElements[i];
dynamicElement.data("placeholder").remove(),
dynamicElement.data("placeholder", null);
}
this.dynamicElements = null;
}
this.$containerPlaceHolder && this.$containerPlaceHolder.remove();
},
_onResize: function () {
var width = window.innerWidth,
layout = "default",
lastPoint = null;
for (var point in this.settings.breakpoints)
width < point &&
(null === lastPoint || point < lastPoint) &&
((layout = this.settings.breakpoints[point]), (lastPoint = point));
if (
layout !== this.lastLayout &&
(this.$element
.removeClass(this.settings.desktopClassName)
.removeClass(this.settings.phoneClassName)
.removeClass(this.settings.tabletClassName),
"default" === layout
? this.$element.addClass(this.settings.desktopClassName)
: this.$element.addClass(this.settings[layout + "ClassName"]),
this.settings.checkMiddle &&
this.$element.find('[class*="-middle"]').each(
function (index, element) {
$(element).height() % 2 != 0 &&
(element.style.paddingBottom = "1px");
}.bind(this)
),
(this.lastLayout = layout),
this.settings.autoLocate)
)
for (var i = 0, l = this.dynamicElements.length; i !== l; i++)
this._checkElement(this.dynamicElements[i], layout);
},
_checkElement: function ($dynamicElement, layout) {
if ($dynamicElement.data("layout") !== layout) {
if ("phone" === layout || "tablet" === layout) {
"default" === $dynamicElement.data("layout") &&
$dynamicElement.after($dynamicElement.data("placeholder"));
var target = $dynamicElement.data(layout);
void 0 === target
? ((target = $dynamicElement.data("locate")),
$(target)
.eq(0)
[$dynamicElement.data("locate-method") || "append"](
$dynamicElement
))
: $(target)
.eq(0)
[$dynamicElement.data(layout + "-method") || "append"](
$dynamicElement
);
} else
$dynamicElement.data("placeholder").after($dynamicElement).detach();
$dynamicElement.data("layout", layout);
}
},
}),
($.fn[pluginName] = function (options) {
var _arguments = arguments;
return this.each(function () {
if ($.data(this, "plugin_" + pluginName)) {
if ("string" == typeof options && "_" !== options.indexOf(0)) {
var plugin = $.data(this, "plugin_" + pluginName);
plugin[options].apply(
plugin,
Array.prototype.slice.call(_arguments, 1)
);
}
} else $.data(this, "plugin_" + pluginName, new Plugin(this, options));
});
});
})(jQuery, window, document),
(function ($, window) {
"use strict";
var pluginName = "AuxinStickyPosition",
$window = $(window),
defaults = {
className: "aux-sticky",
placeholder: "aux-sticky-placeholder",
schemePrefix: "aux-header-",
stickyMargin: 0,
disablePoint: 0,
checkBoundaries: !1,
boundryTarget: "",
rearrange: !0,
useTransform: !1,
},
attributesMap = {
"sticky-margin": "stickyMargin",
"sticky-off": "disablePoint",
rearrange: "rearrange",
boundaries: "checkBoundaries",
"boundry-target": "boundryTarget",
"use-transform": "useTransform",
};
function Plugin(element, options) {
for (var attrName in ((this.element = element),
(this.$element = $(element)),
(this.settings = $.extend({}, defaults, options)),
(this._defaults = defaults),
(this._name = pluginName),
(this._scheme = this.$element.data("color-scheme") || !1),
(this._stickyScheme = this.$element.data("sticky-scheme") || !1),
(this._stickyDisableFlag = !1),
attributesMap)) {
var value = this.$element.data(attrName);
void 0 !== value && (this.settings[attributesMap[attrName]] = value);
}
this.init();
}
$.extend(Plugin.prototype, {
init: function () {
(this.containerHeight = this.$element.outerHeight()),
(this.$containerPlaceHolder = $("").addClass(
this.settings.placeholder
)),
this.$element.before(this.$containerPlaceHolder),
(this._wpadminbarHeight = $("#wpadminbar").outerHeight() || 0),
(this.isOverlay =
"absolute" === window.getComputedStyle(this.element).position),
$window.on("scroll resize", this._update.bind(this)),
this._update();
},
_disable: function () {
this.settings.useTransform
? (this.element.style[_jcsspfx + "Transform"] = "")
: (this.element.style.top = ""),
(this._stickyDisableFlag = !0),
this.$containerPlaceHolder.css("display", "none"),
this.$element.trigger("unsticky");
},
_update: function () {
var wst = $window.scrollTop(),
etp = Math.round(
this.$containerPlaceHolder.offset().top -
this.settings.stickyMargin -
this._wpadminbarHeight
);
if (this.settings.disablePoint >= window.innerWidth) this._disable();
else if (
(this._stickyDisableFlag &&
this.$containerPlaceHolder.css("display", "initial"),
etp < wst && !this.stickyEnabled
? (this.$element.addClass(this.settings.className),
(this.stickyEnabled = !0),
this._scheme !== this._stickyScheme &&
(this._scheme &&
this.$element.removeClass(
this.settings.schemePrefix + this._scheme
),
this._stickyScheme &&
this.$element.addClass(
this.settings.schemePrefix + this._stickyScheme
)),
this.settings.useTransform ||
this.isOverlay ||
this.$containerPlaceHolder.height(this.containerHeight),
this.settings.rearrange && this._checkForRearrange(!0),
this.useTransform ||
(!this.settings.stickyMargin &&
0 !== this.settings.stickyMargin) ||
(this.element.style.top =
this.settings.stickyMargin + this._wpadminbarHeight + "px"),
this.$element.trigger("sticky"))
: this.stickyEnabled &&
wst <= etp &&
((this.stickyEnabled = !1),
this.$containerPlaceHolder.height(0),
this.$element.removeClass(this.settings.className),
this._scheme !== this._stickyScheme &&
(this._scheme &&
this.$element.addClass(
this.settings.schemePrefix + this._scheme
),
this._stickyScheme &&
this.$element.removeClass(
this.settings.schemePrefix + this._stickyScheme
)),
this.settings.rearrange && this._checkForRearrange(!1),
this.useTransform ||
(!this.settings.stickyMargin &&
0 !== this.settings.stickyMargin) ||
(this.element.style.top = ""),
this.$element.trigger("unsticky")),
this.settings.useTransform)
)
if (this.stickyEnabled) {
var calc = wst - etp;
this.settings.checkBoundaries
? this._checkElementBoundaries(etp, wst, calc)
: (this.element.style[_jcsspfx + "Transform"] =
"translateY(" + calc + "px)");
} else this.element.style[_jcsspfx + "Transform"] = "";
else
this.settings.checkBoundaries &&
this._checkElementBoundaries(etp, wst);
},
_checkElementBoundaries: function (etp, wst, calc) {
(etp = etp || this.$containerPlaceHolder.offset().top),
(wst = wst || $window.scrollTop()),
(calc = calc || 0),
(this.$boundryTarget = this.settings.boundryTarget.length
? $(this.settings.boundryTarget)
: this.$element.parent().eq(0));
var diff =
this.$boundryTarget.offset().top -
this._wpadminbarHeight +
this.$boundryTarget.outerHeight(!0) -
(etp + this.$element.outerHeight(!0));
this.element.style[_jcsspfx + "Transform"] =
0 <= calc && calc <= diff
? "translateY(" + calc + "px)"
: diff < calc
? "translateY(" + diff + "px)"
: "";
},
_checkForRearrange: function (attach) {
var self = this;
attach
? this.$element.find("[data-sticky-move]").each(function () {
var $this = $(this),
$target = self.$element.find($this.data("sticky-move"));
0 != $target.length &&
($this.data("placeholder") ||
$this.data(
"placeholder",
$('')
),
$this.after($this.data("placeholder")),
$target[$this.data("sticky-move-method") || "append"]($this));
})
: this.$element.find("[data-sticky-move]").each(function () {
var $this = $(this);
$this.data("placeholder") &&
$this.data("placeholder").after($this).detach();
});
},
}),
($.fn[pluginName] = function (options) {
return this.each(function () {
$.data(this, "plugin_" + pluginName) ||
$.data(this, "plugin_" + pluginName, new Plugin(this, options));
});
});
})(jQuery, window, document),
(function ($) {
"use strict";
var defaults = { hitArea: ".aux-hover-active" };
function Plugin(element, options) {
(this.element = element),
(this.$element = $(element)),
(this.settings = $.extend({}, defaults, options)),
(this._name = "AuxinCubeHover"),
this.init();
}
$.extend(Plugin.prototype, {
init: function () {
if (this.settings.hitArea) {
var target = this.$element.parents(this.settings.hitArea).eq(0);
target.on("mouseenter", this._movein.bind(this)),
target.on("mouseleave", this._moveout.bind(this));
} else
this.$element.on("mouseenter", this._movein.bind(this)),
this.$element.on("mouseleave", this._moveout.bind(this));
this._fixOrigin();
},
_fixOrigin: function () {
var shift = -this.$element.outerHeight() / 2,
dir = -1,
axis = "X";
this.$element.hasClass("aux-rotate-down")
? (dir = 1)
: this.$element.hasClass("aux-rotate-left")
? ((shift = -this.$element.outerWidth() / 2), (axis = "Y"), (dir = 1))
: this.$element.hasClass("aux-rotate-right") &&
((shift = -this.$element.outerWidth() / 2), (axis = "Y")),
(this._outTransform =
"perspective(1000px) translateZ(" + shift + "px)"),
(this._inTransform =
this._outTransform + " rotate" + axis + "( " + 90 * dir + "deg )"),
(this.element.style[_jcsspfx + "TransitionDuration"] = "0ms"),
(this.element.style[_jcsspfx + "Transform"] = this._outTransform),
(this.element.style[_jcsspfx + "TransformOrigin"] =
"center center " + shift + "px"),
setTimeout(
function () {
this.element.style[_jcsspfx + "TransitionDuration"] = "";
}.bind(this),
5
);
},
_movein: function () {
this._fixOrigin(),
clearTimeout(this._hoverdelay),
(this._hoverdelay = setTimeout(
function () {
this.element.style[_jcsspfx + "Transform"] = this._inTransform;
}.bind(this),
10
));
},
_moveout: function () {
clearTimeout(this._hoverdelay),
(this.element.style[_jcsspfx + "Transform"] = this._outTransform);
},
destroy: function () {},
}),
($.fn.AuxinCubeHover = function (options) {
return this.each(function () {
$.data(this, "plugin_AuxinCubeHover") ||
$.data(this, "plugin_AuxinCubeHover", new Plugin(this, options));
});
});
})(jQuery, window, document),
(function ($) {
"use strict";
var defaults = {
in: "aux-hover-in",
out: "aux-hover-out",
reset: "aux-hover-reset",
};
function Plugin(element, options) {
(this.element = element),
(this.settings = $.extend({}, defaults, options)),
(this._defaults = defaults),
(this._name = "AuxTwoWayHover"),
this.init();
}
$.extend(Plugin.prototype, {
init: function () {
var $element = $(this.element),
st = this.settings;
$element
.on(
"mouseenter",
function () {
$element.removeClass(st.out).addClass(st.reset),
clearTimeout(this._hoverTimeout),
(this._hoverTimeout = setTimeout(function () {
$element.addClass(st.in).removeClass(st.reset);
}, 30));
}.bind(this)
)
.on(
"mouseleave",
function (event) {
clearTimeout(this._hoverTimeout),
$element.addClass(st.out),
$element.removeClass(st.in);
}.bind(this)
);
},
}),
($.fn.AuxTwoWayHover = function (options) {
return this.each(function () {
$.data(this, "plugin_AuxTwoWayHover") ||
$.data(this, "plugin_AuxTwoWayHover", new Plugin(this, options));
});
});
})(jQuery, window, document),
(function ($, window) {
"use strict";
var defaults = {
space: -1,
layoutMode: "masonry",
lazyload: !1,
paginationLoc: null,
loadingHeight: 500,
searchFilter: !1,
grouping: null,
deeplink: !0,
isOriginLeft: !0,
slug: "recent",
filters: ".aux-isotope-filters",
revealTransitionDelay: 50,
revealTransitionDuration: 50,
revealBetweenDelay: 200,
hideTransitionDuration: null,
hideTransitionDelay: 0,
hideBetweenDelay: 200,
loadingTransitionDuration: 600,
imgSizes: !0,
resizeTransition: !1,
paginationClass:
"aux-pagination aux-round aux-page-no-border aux-iso-pagination",
loadingClass: "aux-loading",
afterInitClass: "aux-isotope-ready",
groupingPrefix: ".aux-grouping-",
searchClass: ".aux-isotope-search",
updateUponResize: !1,
isInitLayout: !1,
transitionDuration: 0,
itemsLoading: ".aux-items-loading",
loadingVisible: "aux-loading-visible",
loadingHide: "aux-loading-hide",
transitionHelpers: {
hiding: "aux-iso-hiding",
hidden: "aux-iso-hidden",
revealing: "aux-iso-revealing",
visible: "aux-iso-visible",
},
},
attributeOptionsMap = {
pagination: "pagination",
perpage: "inPage",
layout: "layoutMode",
lazyload: "lazyload",
space: "space",
"loading-height": "loadingHeight",
"search-filter": "searchFilter",
grouping: "grouping",
deeplink: "deeplink",
slug: "slug",
filters: "filters",
"pagination-class": "paginationClass",
};
function Plugin(element, options) {
if (window.Isotope || $.fn.isotope) {
for (var attr in ((this.element = element),
(this.$element = $(element)),
(this.settings = $.extend({}, defaults, options)),
(this._defaults = defaults),
(this._name = "AuxIsotope"),
attributeOptionsMap)) {
var value = this.$element.data(attr);
void 0 !== value &&
(this.settings[attributeOptionsMap[attr]] = value);
}
"grid" === this.settings.layoutMode &&
(this.settings.layoutMode = "masonry"),
this.init();
} else $.error("isotope is not available in this page.");
}
$.extend(Plugin.prototype, {
init: function () {
this.$element.addClass(this.settings.afterInitClass),
this.settings.lazyload &&
this.$element.height(this.settings.loadingHeight),
this.$element.parents(".rtl").length &&
(this.settings.isOriginLeft = !1),
(this._isoElement = this.$element[0]),
0 <= this.settings.space &&
(this.$element
.children(this.settings.itemSelector)
.css({
"margin-bottom": this.settings.space + "px",
"padding-right": this.settings.space + "px",
}),
this.$element.css("margin-right", -this.settings.space + "px")),
(this.settings.revealTransitionDuration =
this.$element.data("reveal-transition-duration") ||
this.settings.revealTransitionDuration),
(this.settings.revealBetweenDelay =
this.$element.data("reveal-between-delay") ||
this.settings.revealBetweenDelay),
(this.settings.revealTransitionDelay =
this.$element.data("reveal-transition-delay") ||
this.settings.revealTransitionDelay),
(this.settings.hideTransitionDuration =
this.$element.data("hide-transition-duration") ||
this.settings.hideTransitionDuration),
(this.settings.hideBetweenDelay =
this.$element.data("hide-between-delay") ||
this.settings.hideBetweenDelay),
(this.settings.hideTransitionDelay =
this.$element.data("hide-transition-delay") ||
this.settings.hideTransitionDelay),
(this._isotope = new Isotope(this._isoElement, this.settings)),
(this._isotope.options.hiddenStyle = {}),
(this._isotope.options.visibleStyle = {}),
this.$element.data("isotope", this._isotope);
var self = this;
(this._isotope.options.filter = function () {
return self._filtering(this);
}),
(this._groupValue = null),
(this._filterValue = null),
(this._searchValue = null),
(this._currentFilter = null),
(this._currentSearch = null),
(this._currentGroup = null),
this.settings.grouping && this._setGroupValue(),
this.settings.deeplink && this._initDeeplink(),
this.settings.pagination &&
((this._isotope.options.pagination = !0), this._initPagination()),
this.settings.lazyload && window.imagesLoaded
? this._isotope.on("itemLoading", this._setLazyload.bind(this))
: window.imagesLoaded &&
this.$element.imagesLoaded().always(
function (instance, image) {
this._arrangeIsotope();
}.bind(this)
),
this._isotope.arrange(),
(this._currentPage = this._isotope.options.page),
this._isotope.items.forEach(function (item) {
item.$element || (item.$element = $(item.element));
}, this),
this.settings.lazyload &&
((this.$loading = this.$element
.find(this.settings.itemsLoading)
.addClass(this.settings.loadingHide)
.appendTo(this.$element)),
this._instantlyHideItems(),
this._revealItems()),
this.settings.updateUponResize &&
$(window).on("resize", this._arrangeIsotope.bind(this)),
this.ـinitFilters();
},
arrange: function (method, options) {
var io = this._isotope.options;
if (
this._currentFilter !== this._filterValue ||
(this.settings.grouping && this._currentGroup !== this._groupValue) ||
(this.settings.searchFilter &&
this._currentSearch !== this._searchValue) ||
(this.settings.pagination && this._currentPage !== io.page)
) {
(this._currentPage = io.page),
(this._currentFilter = this._filterValue),
(this._currentSearch = this._searchValue),
(this._currentGroup = this._groupValue);
var items = this._isotope.filteredItems,
totalHideDuration = this.settings.transitionDelay,
i = (this.settings.transitionHelpers, 0),
st = this.settings,
self = this;
items.forEach(function (item) {
self._hideItem(
item,
self.settings.hideBetweenDelay * ++i + st.hideTransitionDelay,
st.hideTransitionDuration
);
}),
(totalHideDuration =
st.hideBetweenDelay * i +
st.hideTransitionDelay +
st.hideTransitionDuration),
clearTimeout(this._hidingTimeout),
clearTimeout(this._revealingTimeout),
(this._hidingTimeout = setTimeout(function () {
self._instantlyHideItems(),
method && "arrange" !== method
? self._isotope[method].apply(self._isotope, options)
: self._isotope._noTransition(self._isotope.arrange),
self._revealItems();
}, totalHideDuration)),
st.deeplink && self._updateHash(),
this.$element.trigger("auxinIsotopeArrange");
}
},
insert: function ($item) {
0 <= this.settings.space &&
$item.css({
"margin-bottom": this.settings.space + "px",
"padding-right": this.settings.space + "px",
}),
this._isotope.insert($item),
this._isotope.items.forEach(function (item) {
item.$element || (item.$element = $(item.element));
}, this);
},
remove: function (items) {
Array.isArray(items) || (items = [items]),
this._isotope.remove(
items.map(function (item) {
return item.element;
})
),
this._isotope.arrange();
},
removeAll: function () {
this._isotope.remove(
this._isotope.items.map(function (item) {
return item.element;
})
),
this.updateIsotope(),
(this._isotope.options.page = 1);
},
updateIsotope: function () {
this._arrangeIsotope();
},
destroy: function () {
this.settings.pagination && this.$pagination.remove(),
this.settings.updateUponResize &&
$(window).off("resize", this._arrangeIsotope.bind(this)),
this.$element.data("isotope", null),
this._isotope.destroy(),
this.$element.remove();
},
changeGroup: function (groupName) {
(this._oldGroup = this._groupValue),
(this._groupValue = groupName),
localStorage.setItem("auxinIsotopeGroup", this._groupValue),
this.$filters
.find(this.settings.groupingPrefix + this._groupValue)
.removeClass(this.settings.transitionHelpers.hidden),
this.$filters
.find(this.settings.groupingPrefix + this._oldGroup)
.addClass(this.settings.transitionHelpers.hidden),
this._internalFilterChange
? (this._internalFilterChange = !1)
: this.arrange("arrange");
},
showLoading: function () {
this._loadingIsVisible ||
(this.$element.height(this.settings.loadingHeight),
(this._loadingIsVisible = !0),
clearTimeout(this._loadingTimeout),
this.$loading.show(),
setTimeout(
function () {
this.$loading
.addClass(this.settings.loadingVisible)
.removeClass(this.settings.loadingHide);
}.bind(this),
1
));
},
hideLoading: function () {
this._loadingIsVisible &&
((this._loadingIsVisible = !1),
this.$loading
.removeClass(this.settings.loadingVisible)
.addClass(this.settings.loadingHide),
clearTimeout(this._loadingTimeout),
(this._loadingTimeout = setTimeout(
function () {
this.$loading.hide();
}.bind(this),
this.settings.loadingTransitionDuration
)));
},
_instantlyHideItems: function () {
this._isotope.items.forEach(function (item) {
(item.element.style[window._jcsspfx + "TransitionDelay"] = "0"),
(item.element.style[window._jcsspfx + "TransitionDuration"] = "0"),
this._removeHelpers(item.$element),
item.$element.addClass(this.settings.transitionHelpers.hidden);
}, this);
},
_isFilteredItemsLoaded: function () {
for (
var items = this._isotope.filteredItems, i = 0, l = items.length;
i !== l;
i++
)
if (!items[i].loaded) return !1;
return !0;
},
_revealItems: function () {
var items = this._isotope.filteredItems,
st = this.settings,
i = 0;
!st.lazyload || this._isFilteredItemsLoaded()
? (st.lazyload &&
(this.hideLoading(),
this._isotope._noTransition(this._isotope.layout),
(this._waitForLoad = !1)),
(this._revealingTimeout = setTimeout(
function () {
items.forEach(function (item) {
this._removeHelpers(item.$element),
item.$element.addClass(st.transitionHelpers.hidden),
this._revealItem(
item,
st.revealBetweenDelay * ++i,
st.revealTransitionDuration
);
}, this);
}.bind(this),
Math.max(st.revealTransitionDelay, 10)
)),
this.$element.trigger("auxinIsotopeReveal", [items]))
: (this.showLoading(), (this._waitForLoad = !0));
},
_revealItem: function (item, delay, duration) {
(item.element.style[window._jcsspfx + "TransitionDelay"] =
delay + "ms"),
(item.element.style[window._jcsspfx + "TransitionDuration"] =
duration + "ms"),
this._removeHelpers(item.$element),
item.$element.addClass(this.settings.transitionHelpers.revealing),
clearTimeout(item._animTimeout),
(item._animTimeout = setTimeout(
function () {
this._removeHelpers(item.$element),
(item.element.style[window._jcsspfx + "TransitionDelay"] = ""),
(item.element.style[window._jcsspfx + "TransitionDuration"] =
""),
item.$element.addClass(this.settings.transitionHelpers.visible);
}.bind(this),
delay + duration
));
},
_hideItem: function (item, delay, duration) {
(item.element.style[window._jcsspfx + "TransitionDelay"] =
delay + "ms"),
(item.element.style[window._jcsspfx + "TransitionDuration"] =
duration + "ms"),
this._removeHelpers(item.$element),
item.$element.addClass(this.settings.transitionHelpers.hiding),
clearTimeout(item._animTimeout),
(item._animTimeout = setTimeout(
function () {
this._removeHelpers(item.$element),
(item.element.style[window._jcsspfx + "TransitionDelay"] = ""),
(item.element.style[window._jcsspfx + "TransitionDuration"] =
""),
item.$element.addClass(this.settings.transitionHelpers.hidden);
}.bind(this),
delay + duration
));
},
_arrangeIsotope: function () {
this._isotope.layout();
},
_removeHelpers: function ($item) {
var helpers = this.settings.transitionHelpers;
for (var classKey in helpers) $item.removeClass(helpers[classKey]);
},
_setLazyload: function (item, imagesloaded) {
this._isotope;
var that = this;
imagesloaded.on("always", function (e) {
(item.loaded = !0),
(item.element.style.height = ""),
(item.element.style.width = ""),
setTimeout(
function () {
this.elements.forEach(function (element) {
$(element).removeClass(this.settings.loadingClass);
}, that),
that._revealItems();
}.bind(this)
);
});
},
_filtering: function (itemElement) {
var $item = $(itemElement);
return (
!(
this._filterValue &&
"all" !== this._filterValue &&
!$item.is(this._filterValue)
) &&
!(
this._searchValue &&
!$item.text().match(this._searchValue) &&
!itemElement.className.match(this._searchValue)
) &&
!(
this._groupValue &&
!$item.is(this.settings.groupingPrefix + this._groupValue)
)
);
},
ـinitFilters: function () {
if (this.settings.filters) {
if (
((this.$filters = this.$element
.siblings(this.settings.filters)
.eq(0)),
!this.$filters)
)
return;
var self = this;
this.$filters.find("li").on("click", function (e) {
var filter = $(this).data("filter");
filter.length
? (self._filterValue = "all" !== filter && "." + filter)
: (self._filterValue = !1),
!self._internalFilterChange && e.originalEvent
? self.arrange("arrange")
: (self._internalFilterChange = !1),
e.preventDefault();
}),
this.$filters.find(self.settings.searchClass).on(
"keyup",
this._debounce(function (e) {
var filter = $(this).val();
2 < filter.length
? (self._searchValue = new RegExp(filter, "gi"))
: (self._searchValue = !1),
!self._internalFilterChange && e.originalEvent
? self.arrange("arrange")
: (self._internalFilterChange = !1);
}, 200)
),
setTimeout(this._updateSelectedFilter.bind(this), 300);
}
},
_setGroupValue: function () {
(this._localGroupValue = localStorage.getItem("auxinIsotopeGroup")),
(this._groupValue = this._localGroupValue
? this._localGroupValue
: this.settings.grouping);
},
_updateSelectedFilter: function () {
(this._internalFilterChange = !0),
this.$filters
.find(
'[data-filter="' +
(this._filterValue || "all").replace(".", "") +
'"] a'
)
.trigger("click");
},
_debounce: function (fn, threshold) {
var timeout;
return (
(threshold = threshold || 100),
function () {
clearTimeout(timeout);
var args = arguments,
_this = this;
timeout = setTimeout(function () {
fn.apply(_this, args);
}, threshold);
}
);
},
_initPagination: function () {
(this.$pagination = $("").addClass(
this.settings.paginationClass
)),
this.settings.paginationLoc
? this.$pagination.appendTo(this.settings.paginationLoc)
: this.$pagination.insertAfter(this.$element),
this.$pagination.on("click", this._updatePage.bind(this)),
this._isotope.on(
"paginationUpdate",
this._updatePagination.bind(this)
);
},
_updatePagination: function (currentPage, totalPage, items) {
if (this._internalPaginate) this._internalPaginate = !1;
else {
var html = '"), this.$pagination.html(html);
}
},
_updatePage: function (event) {
var page,
$btn = $(event.target);
if (void 0 !== $btn.data("page")) page = $btn.data("page");
else if ($btn.data("next"))
page = Math.min(
this._isotope.currentPage() + 1,
this._isotope.totalPages()
);
else {
if (!$btn.data("prev")) return;
page = Math.max(this._isotope.currentPage() - 1, 1);
}
(this._isotope.options.page = page),
this.$pagination
.find(".page")
.removeClass("active")
.eq(page - 1)
.addClass("active"),
(this._internalPaginate = !0),
this.arrange("arrange"),
event.preventDefault();
},
_initDeeplink: function () {
this._readHash(!1),
$(window).on("hashchange", this._readHash.bind(this));
},
_findHashData: function () {
for (
var result,
hash = window.location.hash.slice(1).split(","),
i = 0,
l = hash.length;
i !== l;
i++
)
if (-1 !== (result = hash[i].split("/")).indexOf(this.settings.slug))
return result;
return !1;
},
_readHash: function (arrange) {
if (this._internalHashUpdate) this._internalHashUpdate = !1;
else {
var result = this._findHashData();
if (result) {
var io = this._isotope.options,
oldFilter = this._filterValue,
oldPage = io.page;
(this._filterValue = this._parseFilter(result[2])),
this.settings.pagination &&
(io.page = this._checkPagePolicy(parseInt(result[3]))),
arrange &&
(this._filterValue !== oldFilter ||
(this.settings.pagination && io.page !== oldPage)) &&
(this.$filters && this._updateSelectedFilter(),
(this._internalHashRead = !0),
this.arrange("arrange"));
}
}
},
_updateHash: function () {
if (this._internalHashRead) this._internalHashRead = !1;
else {
var hashStr =
"/" +
this.settings.slug +
"/" +
this._sanitizeFilter(this._filterValue),
currentHash = window.location.hash.slice(1);
this.settings.pagination &&
(hashStr += "/" + this._isotope.options.page);
var inHash = this._findHashData();
if (((this._internalHashUpdate = !0), inHash)) {
for (
var hash = currentHash.split(","), i = 0, l = hash.length;
i !== l;
i++
)
if (-1 !== hash[i].split("/").indexOf(this.settings.slug)) {
hash[i] = hashStr;
break;
}
window.location.hash = hash.join(",");
} else
currentHash.length
? (window.location.hash = currentHash + "," + hashStr)
: (window.location.hash = hashStr);
}
},
_checkPagePolicy: function (page) {
if (this._isotope.options.pagination)
return page <= 0
? 1
: page > this._isotope.totalPages()
? this._isotope.totalPages()
: isNaN(page)
? 1
: page;
},
_sanitizeFilter: function (filter) {
return filter ? filter.replace(/\s/g, "&").replace(".", "") : "all";
},
_parseFilter: function (filter) {
if ("all" !== filter && void 0 !== filter)
return "." + filter.replace("&", " .").trim();
},
}),
($.fn.AuxIsotope = function (options) {
var returns,
args = arguments,
plugin = "plugin_AuxIsotope";
return void 0 === options || "object" == typeof options
? this.each(function () {
$.data(this, plugin) ||
$.data(this, plugin, new Plugin(this, options));
})
: "string" == typeof options &&
"_" !== options[0] &&
"init" !== options
? (this.each(function () {
var instance = $.data(this, plugin);
instance instanceof Plugin &&
"function" == typeof instance[options] &&
(returns = instance[options].apply(
instance,
Array.prototype.slice.call(args, 1)
)),
"destroy" === options && $.data(this, plugin, null);
}),
void 0 !== returns ? returns : this)
: void 0;
});
})(jQuery, window, document),
(function ($, window) {
"use strict";
var $window = $(window),
defaults = { elementID: "" },
attributesMap = { "element-id": "elementID" };
function Plugin(element, options) {
for (var attrName in ((this.element = element),
(this.$element = $(element)),
(this.settings = $.extend({}, defaults, options)),
(this._defaults = defaults),
(this._name = "AuxLoadMore"),
(this._isotopeLayout = this.$element.find(".aux-isotope-ready").length),
(this.ajaxView = this.$element.find(".aux-ajax-view")),
attributesMap)) {
var value = this.ajaxView.data(attrName);
void 0 !== value && (this.settings[attributesMap[attrName]] = value);
}
(this.content = auxin.content.loadmore[this.settings.elementID]),
(this.args = this.content.args),
(this.nonce = this.content.nonce),
(this.handler = this.content.handler),
(this.postPerPage = parseInt(this.args.loadmore_per_page)),
(this.offset = parseInt(this.args.offset) || 0),
(this.defaultOffset = this.offset),
(this.ajaxController = this.$element.find(".aux-ajax-controller")),
(this.loadNextPrev = this.ajaxController.find(".aux-load-next-prev")),
(this.loadMoreBtn = this.ajaxController.find(".aux-load-more")),
(this.ajaxLoaded = !0),
this.init();
}
$.extend(Plugin.prototype, {
init: function () {
this.$element.is(".aux-ajax-type-next-prev")
? this.loadNextPrev.on("click", this._loadNextPrev.bind(this))
: this.$element.is(".aux-ajax-type-scroll")
? $window.scroll(this._loadScroll.bind(this))
: this.$element.is(".aux-ajax-type-next") &&
this.loadMoreBtn.on("click", this._loadNext.bind(this));
},
_callAjax: function (type, offset) {
(this.args.offset = offset),
(this.ajaxLoaded = !1),
$.ajax({
type: "POST",
dataType: "json",
url: auxin.ajax_url,
data: {
action: "load_more_element",
handler: this.handler,
nonce: this.nonce,
args: this.args,
},
success: function (response) {
var postCounter, allpostCounter;
if (response.success) {
switch (type) {
case "next-prev":
this._isotopeLayout
? this.ajaxView.AuxIsotope("removeAll")
: $(this.ajaxView).empty(),
offset === this.defaultOffset
? this.ajaxController
.find(".np-prev-section")
.addClass("hidden")
: this.ajaxController
.find(".np-prev-section")
.removeClass("hidden");
break;
default:
this.loadMoreBtn.removeClass("aux-active-loading");
}
this.$element.removeClass("aux-in-progress");
var $newContent = $(response.data);
(postCounter = $newContent.filter(".aux-post-count").text()),
(allpostCounter = $newContent
.filter(".aux-all-posts-count")
.text()),
($newContent = $newContent.filter(
".aux-ajax-item, .aux-date-label, style"
)),
this._isotopeLayout
? $newContent.each(
function (index, element) {
var $item = $(element);
$item.is("style")
? this.ajaxView.append($item)
: (this.ajaxView.AuxIsotope("insert", $item),
$item.imagesLoaded(
{},
function () {
this.ajaxView
.AuxIsotope("arrange")
.AuxIsotope("updateIsotope");
}.bind(this)
),
this._afterAppend($item));
}.bind(this)
)
: $newContent.each(
function (index, element) {
var $item = $(element);
this.ajaxView.append($item),
$item.is("style") || this._afterAppend($item);
}.bind(this)
),
this.ajaxController
.find(".np-next-section")
.removeClass("hidden");
}
if (
postCounter < this.postPerPage ||
!response.success ||
parseInt(offset) + parseInt(postCounter) ==
parseInt(allpostCounter)
)
switch (type) {
case "next-prev":
this.ajaxController
.find(".np-next-section")
.addClass("hidden");
break;
default:
this.ajaxController.remove();
}
$newContent &&
this.ajaxView.hasClass("aux-match-height") &&
(($.fn.matchHeight._maintainScroll = !0),
$newContent.imagesLoaded(
{},
function () {
this.ajaxView.find(".aux-col").matchHeight(),
setTimeout($.fn.matchHeight._update, 100);
}.bind(this)
)),
(this.ajaxLoaded = !0);
}.bind(this),
});
},
_afterAppend: function ($content) {
$content.setOnAppear(!0, 100).addClass("aux-ajax-anim"),
$content.hasClass("aux-image-box") && $content.AuxinImagebox(),
$content.AuxinCarouselInit(),
$content.find(".aux-frame-cube").AuxinCubeHover(),
$content.find(".aux-hover-twoway").AuxTwoWayHover(),
$content.find(".aux-media-video, .aux-media-audio").length &&
($content.find("iframe").length
? $content.fitVids({
customSelector:
'iframe[src^="http://w.soundcloud.com"], iframe[src^="https://w.soundcloud.com"]',
})
: $content.find("video,audio").mediaelementplayer()),
$content
.find(".aux-lightbox-frame")
.photoSwipe({
target: ".aux-lightbox-btn",
bgOpacity: 0.8,
shareEl: !0,
});
},
_loadNext: function () {
this.ajaxLoaded &&
((this.offset += this.postPerPage),
this.loadMoreBtn.addClass("aux-active-loading"),
this.$element.addClass("aux-in-progress"),
this._callAjax("next", this.offset));
},
_loadScroll: function (event) {
this.ajaxLoaded &&
(this.ajaxController[0].getBoundingClientRect().bottom <=
$window.height() &&
((this.offset += this.postPerPage),
this.$element.addClass("aux-in-progress"),
this.loadMoreBtn.addClass("aux-active-loading"),
this._callAjax("scroll", this.offset)),
event.preventDefault());
},
_loadNextPrev: function (event) {
this.ajaxLoaded &&
($(event.currentTarget).hasClass("np-next-section")
? (this.offset += this.postPerPage)
: (this.offset =
this.offset <= this.defaultOffset
? this.defaultOffset
: this.offset - this.postPerPage),
this.$element.addClass("aux-in-progress"),
this._callAjax("next-prev", this.offset),
event.preventDefault());
},
}),
($.fn.AuxLoadMore = function (options) {
return this.each(function () {
$.data(this, "plugin_AuxLoadMore") ||
$.data(this, "plugin_AuxLoadMore", new Plugin(this, options));
});
});
})(jQuery, window, document),
(function ($, window) {
"use strict";
var $window = $(window),
defaults = {
viewClass: "aux-mc-view",
containerClass: "aux-mc-container",
itemClass: "aux-mc-item",
arrowsClass: "aux-mc-arrows",
bulletsClass: "aux-bullets",
bulletClass: "aux-bullet",
selectedBulletClass: "aux-selected",
arrows: !0,
matchHeight: !1,
startItem: 0,
bullets: !1,
wrapControls: !1,
arrowNextMarkup: ".aux-next-arrow",
arrowPrevMarkup: ".aux-prev-arrow",
controlsClass: "aux-mc-controls",
noJS: "aux-no-js",
initClass: "aux-mc-init",
beforeInit: "aux-mc-before-init",
initCb: null,
},
attributeOptionsMap = {
loop: "loop",
space: "space",
dir: "dir",
center: "center",
speed: "speed",
swipe: "swipe",
"mouse-swipe": "mouseSwipe",
start: "startItem",
rtl: "rtl",
arrows: "arrows",
bullets: "bullets",
"bullet-class": "bulletsClass",
"auto-height": "autoHeight",
autoplay: "autoplay",
delay: "autoplayDelay",
columns: "columns",
"same-height": "matchHeight",
responsive: "responsive",
"auto-pause": "pauseOnHover",
navigation: "navigation",
lazyload: "preload",
"empty-height": "emptyHeight",
"wrap-controls": "wrapControls",
"element-id": "elementID",
};
function Plugin(element, options) {
window.AuxinCarousel || (window.AuxinCarousel = {}),
(this.element = element),
(this.settings = $.extend({}, defaults, options)),
(this.$element = $(element)),
(this._defaults = defaults),
(this._name = "AuxinCarousel"),
this.init();
}
$.extend(Plugin.prototype, {
init: function () {
if (window.MasterCarousel) {
for (var attrName in attributeOptionsMap) {
var value = this.$element.data(attrName);
void 0 !== value &&
(this.settings[attributeOptionsMap[attrName]] = value);
}
if (this.$element.data("responsive")) {
var resp = {};
$.each(
this.settings.responsive.replace(/\s+/g, "").split(","),
function (index, value) {
(value = value.split(":")),
(resp[value[0]] = { columns: value[1] });
}
),
(this.settings.responsive = resp);
}
this.settings.matchHeight &&
$window.on("resize", this._updateItemsHeight.bind(this)),
(this.mc = new MasterCarousel(this.$element[0], this.settings)),
this.mc.addEventListener(MCEvents.INIT, this._onCarouselInit, this),
this.mc.setup(),
this.$element.removeClass(this.settings.noJS),
(AuxinCarousel[this.settings.elementID] = this);
} else $.error("Master Carousel does not found in the page.");
},
_onCarouselInit: function () {
var st = this.settings;
this.$element
.addClass(this.settings.initClass)
.removeClass(this.settings.beforeInit),
(st.arrows || (st.bullets && st.wrapControls)) &&
(this.$controlsWrap = $("")
.addClass(st.controlsClass)
.insertAfter(this.$element)),
st.arrows &&
((this.$prevArrow = $("")
.addClass(st.arrowsClass + " aux-prev")
.on(
"click",
{ action: "prev" },
this._controlCarousel.bind(this)
)),
st.wrapControls
? this.$prevArrow.appendTo(this.$controlsWrap)
: this.$prevArrow.insertAfter(this.$element),
st.arrowPrevMarkup &&
this.$element.find(st.arrowPrevMarkup).appendTo(this.$prevArrow),
(this.$nextArrow = $("")
.addClass(st.arrowsClass + " aux-next")
.on(
"click",
{ action: "next" },
this._controlCarousel.bind(this)
)),
st.wrapControls
? this.$nextArrow.appendTo(this.$controlsWrap)
: this.$nextArrow.insertAfter(this.$element),
st.arrowNextMarkup &&
this.$element.find(st.arrowNextMarkup).appendTo(this.$nextArrow)),
st.bullets &&
((this.$bullets = $("").addClass(st.bulletsClass)),
this._generateBullets(),
this.mc.view.addEventListener(
MCEvents.SCROLL,
this._updateCurrentBullet,
this
),
$window.on("resize", this._updateBullets.bind(this))),
st.matchHeight &&
(this.matchHeightTo = setTimeout(
this._updateItemsHeight.bind(this),
150,
!0
)),
this.$element.parents(".siteorigin-panels-stretch").length &&
($window.on(
"resize.master-carousel",
this._updateCarouselSize.bind(this)
),
this._updateCarouselSize()),
st.initCb && st.initCb(this),
this.$element.trigger("auxinCarouselInit");
},
_updateCarouselSize: function () {
setTimeout(this.mc.view._resize.bind(this.mc.view), 0);
},
_generateBullets: function () {
this.$bullets.children().remove(),
(this._bullets = []),
this.settings.wrapControls
? this.$bullets.appendTo(this.$controlsWrap)
: this.insertAfter(this.$element);
for (var i = 0, l = this.mc.count(); i !== l; i++)
this._bullets.push(
$("")
.addClass(this.settings.bulletClass)
.appendTo(this.$bullets)
.on(
"click",
{ action: "bullet", index: i },
this._controlCarousel.bind(this)
)
);
this._updateCurrentBullet();
},
_updateBullets: function () {
this._bullets.length !== this.mc.count() && this._generateBullets();
},
_updateItemsHeight: function (withDelay) {
if (this.mc.items) {
if (!0 !== withDelay)
return (
clearTimeout(this.matchHeightTo),
void (this.matchHeightTo = setTimeout(
this._updateItemsHeight.bind(this),
20,
!0
))
);
var maxHeight = 0;
this.mc.items.forEach(
function (item) {
(item.$element[0].style.height = ""),
(maxHeight = Math.max(item.$element.height(), maxHeight));
}.bind(this)
),
this.mc.items.forEach(
function (item) {
item.$element.height(maxHeight);
}.bind(this)
);
}
},
_controlCarousel: function (event) {
event.target;
switch (event.data.action) {
case "next":
this.mc.next();
break;
case "prev":
this.mc.previous();
break;
case "bullet":
this.mc.goto(event.data.index + 1, !0);
}
},
_updateCurrentBullet: function () {
var target = this.mc.current() - 1;
this._currentPosition !== target &&
((this._currentPosition = target),
this.$bullets
.find("." + this.settings.bulletClass)
.removeClass(this.settings.selectedBulletClass)
.eq(target)
.addClass(this.settings.selectedBulletClass));
},
destroy: function () {
this.mc.removeEventListener(MCEvents.INIT, this._onCarouselInit, this),
this.mc.view.removeEventListener(
MCEvents.SCROLL,
this._updateCurrentBullet,
this
),
this.settings.matchHeight &&
$window.off("resize", this._updateItemsHeight.bind(this)),
$window.off("resize.master-carousel"),
this.settings.arrows &&
(this.$nextArrow.remove(), this.$prevArrow.remove()),
this.settings.bullets &&
($window.off("resize", this._updateBullets.bind(this)),
this.$bullets.remove()),
this.mc.destroy(),
this.$element.remove();
},
}),
($.fn.AuxinCarousel = function (options) {
var returns,
args = arguments,
plugin = "plugin_AuxinCarousel";
return void 0 === options || "object" == typeof options
? this.each(function () {
$.data(this, plugin) ||
$.data(this, plugin, new Plugin(this, options));
})
: "string" == typeof options &&
"_" !== options[0] &&
"init" !== options
? (this.each(function () {
var instance = $.data(this, plugin);
instance instanceof Plugin &&
"function" == typeof instance[options] &&
(returns = instance[options].apply(
instance,
Array.prototype.slice.call(args, 1)
)),
"destroy" === options && $.data(this, plugin, null);
}),
void 0 !== returns ? returns : this)
: void 0;
});
})(jQuery, window, document),
(function ($, window) {
"use strict";
function Plugin(element, options) {
(this.element = element),
(this.$element = $(element)),
(this._name = "AuxinVideobox"),
this.init();
}
$.extend(Plugin.prototype, {
init: function () {
(this.$video = this.$element.find(">video")),
0 !== this.$video.length &&
((this.video = this.$video[0]),
this.video.addEventListener(
"loadedmetadata",
this._initVideo.bind(this)
),
AVTAligner
? ((this.aligner = new AVTAligner(
this.$element.data("fill") || "fill",
this.$element,
this.$video
)),
$(window).on("resize", this._alignVideo.bind(this)))
: $.error(
"AVTAligner is not defined in this page, Auxin video box requires this library to perform correctly."
));
},
_initVideo: function () {
this._videoInit ||
((this._videoInit = !0),
this.aligner.init(this.video.videoWidth, this.video.videoHeight),
this.aligner.align(),
this.video.play());
},
_alignVideo: function () {
this.aligner.align();
},
destroy: function () {
$(window).off("resize", this._alignVideo);
},
}),
($.fn.AuxinVideobox = function (options) {
var returns,
args = arguments,
plugin = "plugin_AuxinVideobox";
return void 0 === options || "object" == typeof options
? this.each(function () {
$.data(this, plugin) ||
$.data(this, plugin, new Plugin(this, options));
})
: "string" == typeof options &&
"_" !== options[0] &&
"init" !== options
? (this.each(function () {
var instance = $.data(this, plugin);
instance instanceof Plugin &&
"function" == typeof instance[options] &&
(returns = instance[options].apply(
instance,
Array.prototype.slice.call(args, 1)
)),
"destroy" === options && $.data(this, plugin, null);
}),
void 0 !== returns ? returns : this)
: void 0;
});
})(jQuery, window, document),
(function ($, window) {
"use strict";
var defaults = { target: "img", frame: null, fill: "fill" },
attributeOptionsMap = { fill: "fill", target: "target", frame: "frame" };
function Plugin(element, options) {
(this.element = element),
(this.$element = $(element)),
(this.settings = $.extend({}, defaults, options)),
(this._name = "AuxinImagebox"),
this.init();
}
$.extend(Plugin.prototype, {
init: function () {
if (AVTAligner) {
for (var attrName in attributeOptionsMap) {
var value = this.$element.data(attrName);
void 0 !== value &&
(this.settings[attributeOptionsMap[attrName]] = value);
}
(this.$image = this.$element.find(this.settings.target)),
this.$image.length &&
(this.$image.preloadImg(
this.$image.attr("src"),
this._initAligner.bind(this)
),
(this.$frame = this.settings.frame
? this.$element.find(this.settings.frame)
: this.$element),
(this.aligner = new AVTAligner(
this.settings.fill,
this.$parent,
this.$image,
{
containerWidth: this.$frame.innerWidth.bind(this.$frame),
containerHeight: this.$frame.innerHeight.bind(this.$frame),
srcset: !!this.$image.attr("srcset"),
}
)),
$(window).on("resize", this._alignImage.bind(this)));
} else
$.error(
"AVTAligner is not defined in this page, Auxin image box requires this library to perform correctly."
);
},
_initAligner: function () {
if (!this._aligenrInit) {
this._aligenrInit = !0;
var img = this.$image[0],
w = img.naturalWidth || this.$image.data("width"),
h = img.naturalHeight || this.$image.data("height");
this.aligner.init(w, h), this.aligner.align();
}
},
_alignImage: function () {
this.aligner.align();
},
update: function () {
this._alignImage();
},
destroy: function () {
$(window).off("resize", this._alignImage);
},
}),
($.fn.AuxinImagebox = function (options) {
var returns,
args = arguments,
plugin = "plugin_AuxinImagebox";
return void 0 === options || "object" == typeof options
? this.each(function () {
$.data(this, plugin) ||
$.data(this, plugin, new Plugin(this, options));
})
: "string" == typeof options &&
"_" !== options[0] &&
"init" !== options
? (this.each(function () {
var instance = $.data(this, plugin);
instance instanceof Plugin &&
"function" == typeof instance[options] &&
(returns = instance[options].apply(
instance,
Array.prototype.slice.call(args, 1)
)),
"destroy" === options && $.data(this, plugin, null);
}),
void 0 !== returns ? returns : this)
: void 0;
});
})(jQuery, window, document),
(function ($, window) {
"use strict";
var pluginName = "AuxinFullscreenHero";
function Plugin(element, options) {
(this.element = element),
(this.$element = $(element)),
(this._name = pluginName),
this.init();
}
$.extend(Plugin.prototype, {
init: function () {
$(window).on("resize", this.update.bind(this)), this.update();
},
update: function () {
this.$element.height(
Math.max(0, window.innerHeight - this.$element.offset().top) + "px"
);
},
}),
($.fn[pluginName] = function (options) {
return this.each(function () {
$.data(this, "plugin_" + pluginName) ||
$.data(this, "plugin_" + pluginName, new Plugin(this, options));
});
});
})(jQuery, window, document),
(function ($, window, document) {
"use strict";
var pluginName = "AuxinAnimateAndRedirect",
defaults = {
target: "body",
scrollFixTarget: "body",
checkLinkTarget: !0,
checkTargetEvents: !0,
skipRelativeLinks: !0,
noAnimate:
'.aux-no-page-animate, .aux-lightbox-btn, [data-elementor-open-lightbox="yes"], [bdt-lightbox] a',
animateIn: "aux-show-page",
animateOut: "aux-hide-page",
beforeAnimateOut: "aux-before-hide-page",
disableOn: null,
delay: 800,
fixScroll: !0,
linkClicked: null,
startToHide: null,
startToShow: null,
};
function Plugin(element, options) {
(this.element = element),
(this.$element = $(element)),
(this.settings = $.extend({}, defaults, options)),
(this._defaults = defaults),
(this._name = pluginName),
this.init();
}
$.extend(Plugin.prototype, {
init: function () {
var st = this.settings,
evts = $._data(this.element, "events") || {},
$target = $(st.target),
$scrollTarget = $(st.scrollFixTarget);
this.element.href;
st.animateIn &&
!$target.data("isAnimated") &&
($target.addClass(st.animateIn).data("isAnimated", !0),
st.startToShow && st.startToShow()),
(st.noAnimate && this.$element.is(st.noAnimate)) ||
(st.skipRelativeLinks &&
!/http(s?):\/\//.test(this.$element.attr("href"))) ||
("_blank" !== this.$element.attr("target") &&
((st.checkTargetEvents &&
("click" in evts || this.element.onclick)) ||
("" !== this.element.hash &&
this.element.origin +
this.element.pathname +
this.element.search ===
location.origin + location.pathname + location.search) ||
(st.disableOn && this.$element.parents(st.disableOn).length) ||
this.$element.on(
"click",
function (e) {
if (!e.ctrlKey && !e.metaKey && 1 === e.which) {
e.preventDefault();
var scrollTop = document.documentElement.scrollTop;
$target
.addClass(st.beforeAnimateOut)
.removeClass(st.animateIn),
setTimeout(function () {
$target.addClass(st.animateOut);
}, 1),
st.fixScroll && $scrollTarget.scrollTop(scrollTop),
st.linkClicked && st.linkClicked(),
clearTimeout(this.timeout),
(this.timeout = setTimeout(
function () {
(window.location.href = this.element.href),
st.startToHide && st.startToHide();
}.bind(this),
st.delay
));
}
}.bind(this)
)));
},
}),
($.fn[pluginName] = function (options) {
return this.each(function () {
$.data(this, "plugin_" + pluginName) ||
$.data(this, "plugin_" + pluginName, new Plugin(this, options));
});
});
})(jQuery, window, document),
(function ($, window) {
"use strict";
var pluginName = "AvertaParallaxBox",
defaults = {
targets: "aux-parallax",
defaultDepth: 0.5,
defaultOrigin: "top",
forceHR: !1,
},
$window = $(window);
function Plugin(element, options) {
(this.element = element),
(this.$element = $(element)),
(this.settings = $.extend({}, defaults, options)),
(this._defaults = defaults),
(this._name = pluginName),
this.init();
}
$.extend(Plugin.prototype, {
init: function () {
(this.$targets = this.$element.find("." + this.settings.targets)),
(this._targetsNum = this.$targets.length),
(this._prefix = window._jcsspfx || ""),
0 !== this._targetsNum &&
($window.on("scroll resize", this.update.bind(this)),
this.update());
},
_setPosition: function ($target, scrollValue) {
var value,
origin =
$target.data("parallax-origin") || this.settings.defaultOrigin,
depth = $target.data("parallax-depth") || this.settings.defaultDepth,
disablePoint = $target.data("parallax-off"),
absDepth = Math.abs(depth),
dir = depth < 0 ? 1 : -1,
type = $target.data("parallax-type") || "position";
if (disablePoint >= window.innerWidth) {
if ($target.data("disabled")) return;
return (
$target.data("disabled", !0),
void ("background" === type
? ($target[0].style.backgroundPosition = "")
: ($target[0].style[this._prefix + "Transform"] = ""))
);
}
switch (($target.data("disabled", !1), origin)) {
case "top":
value = Math.min(0, this._spaceFromTop * absDepth);
break;
case "bottom":
value = Math.max(0, this._spaceFromBot * absDepth);
break;
case "middle":
value = this._spaceFromMid * absDepth;
}
(value =
value < 0
? Math.max(value, -window.innerHeight)
: Math.min(value, window.innerHeight)),
"background" === type
? ($target[0].style.backgroundPosition =
"50% " + value * dir + "px")
: ($target[0].style[this._prefix + "Transform"] =
"translateY(" +
value * dir +
"px)" +
(this.settings.forceHR ? " translateZ(1px)" : ""));
},
update: function () {
(this._boxHeight = this.$element.height()),
(this._spaceFromTop = this.$element[0].getBoundingClientRect().top),
(this._spaceFromBot =
window.innerHeight - this._boxHeight - this._spaceFromTop),
(this._spaceFromMid =
window.innerHeight / 2 - this._boxHeight / 2 - this._spaceFromTop);
for (var i = 0; i !== this._targetsNum; i++)
this._setPosition(this.$targets.eq(i), $window.scrollTop());
},
enable: function () {
$window.on("resize scroll", this.update), this.update();
},
disable: function () {
$window.off("resize scroll", this.update);
},
destroy: function () {
this.disable();
},
}),
($.fn[pluginName] = function (options) {
var _arguments = arguments;
return this.each(function () {
if ($.data(this, "plugin_" + pluginName)) {
if ("string" == typeof options && "_" !== options.indexOf(0)) {
var plugin = $.data(this, "plugin_" + pluginName);
plugin[options].apply(
plugin,
Array.prototype.slice.call(_arguments, 1)
);
}
} else $.data(this, "plugin_" + pluginName, new Plugin(this, options));
});
});
})(jQuery, window, document),
(function ($, window, document) {
"use strict";
var pluginName = "AuxinMasonryAnimate",
defaults = {
columns: 3,
tabletColumns: 2,
mobileColumns: 1,
columnClass: "aux-parallax-column",
numItems: 8,
offset: 0.2,
minHeight: 500,
insetOffset: 0.3,
},
attributeDataMap = {
"d-columns": "columns",
"t-columns": "tabletColumns",
"m-columns": "mobileColumns",
length: "numItems",
offset: "offset",
"inset-offset": "insetOffset",
},
$window = $(window);
function Plugin(element, options) {
(this.element = element), (this.$element = $(element));
var tempData,
elementData = {};
for (var attribute in attributeDataMap)
void 0 !== (tempData = this.$element.data(attribute)) &&
(elementData[attributeDataMap[attribute]] = tempData);
(this.settings = $.extend({}, defaults, options, elementData)),
(this._defaults = defaults),
(this._name = pluginName),
(this.items = this.$element.find(".aux-parallax-item")),
(this.oldBreakPoint = null),
(this.loading = !1),
this.init();
}
$.extend(Plugin.prototype, {
init: function () {
this.showLoading(),
$window.on("load resize", this.initializeLayout.bind(this)),
setTimeout(
function () {
this.hideLoading();
}.bind(this),
1e3
);
},
update: function () {
if (
this.items.length <= this.columns.length ||
this.items.length % this.columns.length == 0
)
return (
this.columns.css(window._jcsspfx + "Transform", "none"),
void (this.element.style.marginBottom = 0)
);
var shortCol = this.shortCol,
shortColRect = shortCol.getBoundingClientRect(),
refDeltaNormal =
(window.innerHeight -
window.innerHeight * this.settings.offset -
shortColRect.top) /
shortColRect.height;
(this.element.style.marginBottom =
shortCol.offsetHeight * this.settings.insetOffset -
this.element.offsetHeight +
"px"),
1 <= refDeltaNormal
? (refDeltaNormal = 1)
: refDeltaNormal <= 0 && (refDeltaNormal = 0),
this.columns.each(
function (index, column) {
var colTransform;
(colTransform =
-1 *
(column.offsetHeight +
column.offsetTop -
(shortColRect.height * this.settings.insetOffset +
shortCol.offsetTop)) *
refDeltaNormal),
(column.style[window._jcsspfx + "Transform"] =
"translateY(" + colTransform + "px)");
}.bind(this)
);
},
initializeLayout: function () {
var columnsNum, currentBreakPoint;
if (
((currentBreakPoint =
$window.width() < 1024 && 768 < $window.width()
? ((columnsNum = this.settings.tabletColumns), "tablet")
: $window.width() < 768
? ((columnsNum = this.settings.mobileColumns), "mobile")
: ((columnsNum = this.settings.columns), "desktop")),
this.oldBreakPoint !== currentBreakPoint)
) {
this.oldBreakPoint = currentBreakPoint;
var shortCol,
colObject = this.initializeColumn(columnsNum),
columns = [],
self = this;
this.columns && this.columns.remove(),
Object.keys(colObject).forEach(function (key) {
var columnNode = document.createElement("div");
columnNode.classList.add(self.settings.columnClass + "-" + key),
colObject[key].posts.forEach(function (item) {
columnNode.appendChild(item);
}),
self.element.appendChild(columnNode),
columns.push(columnNode),
(!shortCol ||
columnNode.offsetHeight < shortCol.offsetHeight) &&
(shortCol = columnNode);
}),
(this.shortCol = shortCol),
(this.columns = $(columns)),
$window.on("scroll resize", this.update.bind(this));
}
},
initializeColumn: function (columnsNum) {
this.settings.numItems !== this.items.length &&
(this.settings.numItems = this.items.length);
for (
var colObj = {},
numExtraItems =
this.settings.numItems < columnsNum
? 0
: this.settings.numItems % columnsNum,
orderdItems =
0 != numExtraItems
? this.items.slice(0, -1 * numExtraItems)
: this.items,
extraItems =
0 != numExtraItems ? this.items.slice(-1 * numExtraItems) : null,
i = 1;
i <= columnsNum;
i++
)
colObj[i] = { posts: [] };
if (
(orderdItems.each(function (index, item) {
var columnIndex = (index + 1) % columnsNum;
colObj[
(columnIndex = 0 === columnIndex ? columnsNum : columnIndex)
].posts.push(item);
}),
extraItems)
)
switch (columnsNum) {
case 5:
1 == 5 - numExtraItems
? extraItems.each(function (index, item) {
colObj[index + 1].posts.push(item);
})
: 2 == 5 - numExtraItems
? extraItems.each(function (index, item) {
colObj[2 * index + 1].posts.push(item);
})
: 3 == 5 - numExtraItems
? extraItems.each(function (index, item) {
colObj[2 * (index + 1)].posts.push(item);
})
: extraItems.each(function (index, item) {
colObj[index + 1].posts.push(item);
});
break;
case 4:
1 == 4 - numExtraItems
? extraItems.each(function (index, item) {
colObj[index + 1].posts.push(item);
})
: 2 == 4 - numExtraItems
? extraItems.each(function (index, item) {
colObj[2 * (index + 1)].posts.push(item);
})
: extraItems.each(function (index, item) {
colObj[index + 1].posts.push(item);
});
break;
case 3:
1 == 3 - numExtraItems
? extraItems.each(function (index, item) {
colObj[2 * index + 1].posts.push(item);
})
: extraItems.each(function (index, item) {
colObj[2 * (index + 1)].posts.push(item);
});
break;
case 2:
extraItems.each(function (index, item) {
colObj[index + 1].posts.push(item);
});
break;
default:
extraItems.each(function (index, item) {
colObj[index + 1].posts.push(item);
});
}
return colObj;
},
showLoading: function () {
this.$element.css({
height: this.settings.minHeight,
overflow: "hidden",
}),
this.$element.find(".aux-items-loading").addClass("aux-loading-hide");
},
hideLoading: function () {
this.$element.css({ height: "auto", overflow: "visible" }),
this.$element
.find(".aux-items-loading")
.removeClass("aux-loading-hide");
},
insertItem: function (items) {
(this.oldBreakPoint = null),
this.columns.remove(),
(this.items = items),
this.initializeLayout();
},
}),
($.fn[pluginName] = function (options) {
var _arguments = arguments;
return this.each(function () {
if ($.data(this, "plugin_" + pluginName)) {
if ("string" == typeof options && "_" !== options.indexOf(0)) {
var plugin = $.data(this, "plugin_" + pluginName);
plugin[options].apply(
plugin,
Array.prototype.slice.call(_arguments, 1)
);
}
} else $.data(this, "plugin_" + pluginName, new Plugin(this, options));
});
});
})(jQuery, window, document),
(function ($, window) {
"use strict";
var pluginName = "AvertaScrollAnims",
defaults = {
targets: "aux-scroll-anim",
elementOrigin: 0.2,
viewPortTopOrigin: 0.4,
viewPortBotOrigin: 0.6,
moveInEffect: "fade",
moveOutEffect: "fade",
xAxis: 200,
yAxis: -200,
rotate: 90,
scale: 1,
containerTarget: ".elementor-widget-container",
disableScrollAnims: 1,
},
attributeDataMap = {
"move-in": "moveInEffect",
"move-out": "moveOutEffect",
"axis-x": "xAxis",
"axis-y": "yAxis",
rotate: "rotate",
scale: "scale",
"el-top": "elementOrigin",
"vp-bot": "viewPortBotOrigin",
"vp-top": "viewPortTopOrigin",
"scroll-animation-off": "disableScrollAnims",
},
$window = $(window);
function Plugin(element, options) {
(this.element = element), (this.$element = $(element));
var tempData,
elementData = {};
for (var attribute in attributeDataMap)
void 0 !== (tempData = this.$element.data(attribute)) &&
(elementData[attributeDataMap[attribute]] = tempData);
(this.settings = $.extend({}, defaults, options, elementData)),
(this._defaults = defaults),
(this._name = pluginName),
this.init();
}
$.extend(Plugin.prototype, {
init: function () {
(this._prefix = window._jcsspfx || ""),
(this.settings.viewPortOrigin = [
this.settings.viewPortTopOrigin,
this.settings.viewPortBotOrigin,
]),
(this.oldEffect = this.settings.moveInEffect),
0 !== this.$element.length &&
($window.on("scroll resize", this.update.bind(this)),
this.update());
},
_setStyles: function ($target, scrollValue) {
var effect,
delta = this._getDelta(
$target[0],
this.settings.elementOrigin,
this.settings.viewPortOrigin
),
styles = this._getStyle(delta);
(effect =
delta < 0
? this.settings.moveOutEffect
: 0 < delta
? this.settings.moveInEffect
: this.oldEffect),
this.oldEffect !== effect &&
this._generateEffect(
this.oldEffect,
this._getStyle(0),
$target.find(this.settings.containerTarget)
),
this._generateEffect(
effect,
styles,
$target.find(this.settings.containerTarget)
),
(this.oldEffect = effect);
},
_getDelta: function ($target, elementOrigin, viewPortOrigin) {
var dimensions = $target.getBoundingClientRect(),
isRange = Array.isArray(viewPortOrigin),
lowerRange = isRange ? viewPortOrigin[0] : viewPortOrigin,
upperRange = isRange ? viewPortOrigin[1] : viewPortOrigin,
elementTop = dimensions.y + elementOrigin * dimensions.height,
elementPosition = elementTop / window.innerHeight;
return lowerRange <= elementPosition && elementPosition <= upperRange
? 0
: upperRange <= elementPosition
? Math.min(
(elementTop - window.innerHeight * upperRange) /
(window.innerHeight - window.innerHeight * upperRange),
1
)
: Math.max(
(elementTop - window.innerHeight * lowerRange) /
(window.innerHeight * lowerRange),
-1
);
},
_getStyle: function (delta) {
var style = {};
return (
(style.opacity = 1 - Math.abs(delta)),
(style.xAxis = this.settings.xAxis * delta),
(style.yAxis = this.settings.yAxis * delta),
(style.slide = Math.abs(100 * delta)),
(style.mask = Math.abs(100 * delta)),
(style.rotate = this.settings.rotate * delta),
(style.scale = (this.settings.scale - 1) * Math.abs(delta) + 1),
style
);
},
_generateEffect: function (effect, styles, $target) {
switch (effect) {
case "moveVertical":
$target[0].style[this._prefix + "Transform"] =
"translateY(" + styles.yAxis + "px)";
break;
case "moveHorizontal":
$target[0] && ($target[0].style[this._prefix + "Transform"] =
"translateX(" + styles.xAxis + "px)");
break;
case "fade":
$target[0].style.opacity = styles.opacity;
break;
case "fadeTop":
($target[0].style.opacity = styles.opacity),
($target[0].style[this._prefix + "Transform"] =
"translateY(" + -1 * styles.yAxis + "px)");
break;
case "fadeBottom":
($target[0].style.opacity = styles.opacity),
($target[0].style[this._prefix + "Transform"] =
"translateY(" + styles.yAxis + "px)");
break;
case "fadeRight":
($target[0].style.opacity = styles.opacity),
($target[0].style[this._prefix + "Transform"] =
"translateX(" + styles.xAxis + "px)");
break;
case "fadeLeft":
($target[0].style.opacity = styles.opacity),
($target[0].style[this._prefix + "Transform"] =
"translateX(" + -1 * styles.xAxis + "px)");
break;
case "slideRight":
($target.parent()[0].style.overflow = "hidden"),
($target[0].style[this._prefix + "Transform"] =
"translateX(" + styles.slide + "%)");
break;
case "slideLeft":
($target.parent()[0].style.overflow = "hidden"),
($target[0].style[this._prefix + "Transform"] =
"translateX(" + -1 * styles.slide + "%)");
break;
case "slideTop":
($target.parent()[0].style.overflow = "hidden"),
($target[0].style[this._prefix + "Transform"] =
"translateY(" + -1 * styles.slide + "%)");
break;
case "slideBottom":
($target.parent()[0].style.overflow = "hidden"),
($target[0].style[this._prefix + "Transform"] =
"translateY(" + styles.slide + "%)");
break;
case "maskTop":
$target[0].style[this._prefix + "ClipPath"] =
"inset(0 0 " + styles.mask + "% 0)";
break;
case "maskBottom":
$target[0].style[this._prefix + "ClipPath"] =
"inset(" + styles.mask + "% 0 0 0)";
break;
case "maskRight":
$target[0].style[this._prefix + "ClipPath"] =
"inset(0 0 0 " + styles.mask + "%)";
break;
case "maskLeft":
$target[0].style[this._prefix + "ClipPath"] =
"inset(0 " + styles.mask + "% 0 0)";
break;
case "rotateIn":
$target[0].style[this._prefix + "Transform"] =
"rotate(" + -1 * styles.rotate + "deg)";
break;
case "rotateOut":
$target[0].style[this._prefix + "Transform"] =
"rotate(" + styles.rotate + "deg)";
break;
case "fadeScale":
($target[0].style.opacity = styles.opacity),
($target[0].style[this._prefix + "Transform"] =
"scale(" + styles.scale + ")");
break;
case "scale":
$target[0].style[this._prefix + "Transform"] =
"scale(" + styles.scale + ")";
break;
default:
return;
}
},
update: function () {
$window.width() <= this.settings.disableScrollAnims
? this.disable()
: this._setStyles(this.$element, $window.scrollTop());
},
enable: function () {
$window.on("resize scroll", this.update), this.update();
},
disable: function () {
$window.off("resize scroll", this.update);
},
destroy: function () {
this.disable();
},
}),
($.fn[pluginName] = function (options) {
var _arguments = arguments;
return this.each(function () {
if ($.data(this, "plugin_" + pluginName)) {
if ("string" == typeof options && "_" !== options.indexOf(0)) {
var plugin = $.data(this, "plugin_" + pluginName);
plugin[options].apply(
plugin,
Array.prototype.slice.call(_arguments, 1)
);
}
} else $.data(this, "plugin_" + pluginName, new Plugin(this, options));
});
});
})(jQuery, window, document),
(function ($, window) {
"use strict";
var defaults = {
layout: "center",
responsive: { 760: "left" },
layoutMap: {
left: "aux-left",
right: "aux-right",
middle: "aux-middle",
center: "aux-center",
},
},
$window = $(window);
function Plugin(element, options) {
(this.element = element),
(this.$element = $(element)),
(this.settings = $.extend({}, defaults, options)),
(this._defaults = defaults),
(this._name = "AuxinTimeline"),
this.init();
}
$.extend(Plugin.prototype, {
init: function () {
void 0 !== this.$element.data("layout") &&
(this.settings.layout = this.$element.data("layout")),
$window.on("resize", this._onResize.bind(this)),
this._onResize();
},
_onResize: function (e) {
var width = $window.width(),
layout = this.settings.layout;
for (var bp in this.settings.responsive)
width < bp && (layout = this.settings.responsive[bp]);
this._update(layout);
},
_update: function (newLayout) {
if (this._currentLayout !== newLayout) {
for (var key in ((this._currentLayout = newLayout),
this.settings.layoutMap))
this.$element.removeClass(this.settings.layoutMap[key]);
this.$element.addClass(this.settings.layoutMap[newLayout]);
}
},
}),
($.fn.AuxinTimeline = function (options) {
return this.each(function () {
$.data(this, "plugin_AuxinTimeline") ||
$.data(this, "plugin_AuxinTimeline", new Plugin(this, options));
});
});
})(jQuery, window, document),
"function" != typeof Object.create &&
(Object.create = function (obj) {
function F() {}
return (F.prototype = obj), new F();
}),
(function ($) {
var Container = {
init: function (el, options) {
(this.options = $.extend(
{},
$.fn.avertaAccordion.defaultOptions,
options || {}
)),
(this.$el = $(el)),
(this.el = el),
(this.$items = this.$el.find(this.options.items)),
this.$items.length &&
(this.$items
.find(this.options.itemContent)
.wrap(
''
),
(this.$headers = this.$items.find(this.options.itemHeader)),
(this.$contents = this.$items.find(
"." + this.options.contentWrapClass
)),
this.setup());
},
setup: function () {
if (
(this.$headers.on("click", { self: this }, this.onHeaderClicked),
(this.options.collapseOnInit || this.options.oneVisible) &&
(this._closeContent(this.$contents, 0),
this.options.onCollapse(this.$items)),
this.options.oneVisible)
) {
var $actives = this.$items
.filter("." + this.options.itemActiveClass)
.first();
($actives = $actives.length
? $actives
: this.$items.first().addClass(this.options.itemActiveClass)),
this._openContent(
$actives.find("." + this.options.contentWrapClass),
0
),
this.options.onExpand($actives);
} else
this.options.collapseOnInit &&
this.$items.removeClass(this.options.itemActiveClass);
window.location.hash &&
this.options.expandHashItem &&
this.expandHashItem(),
this.options.expandHashItem &&
$(window).on("hashchange", this.expandHashItem);
},
expandHashItem: function () {
$(window.location.hash)
.find(this.options.itemHeader)
.trigger("click", { self: this }, this.onHeaderClicked);
},
onHeaderClicked: function (event) {
event.preventDefault();
var self = event.data.self,
$item = $(this).closest(self.options.items);
if (
!$item.hasClass(self.options.itemActiveClass) ||
!self.options.oneVisible
) {
var $content = $item.find("." + self.options.contentWrapClass);
self.options.oneVisible
? (self.$items.removeClass(self.options.itemActiveClass),
$item.addClass(self.options.itemActiveClass),
self._closeContent(
self.$contents,
self.options.hideDuration,
$content
),
self.options.onCollapse(self.$items),
self._openContent($content, self.options.showDuration),
self.options.onExpand($item))
: $item.hasClass(self.options.itemActiveClass)
? (self._closeContent($content, self.options.hideDuration),
$item.removeClass(self.options.itemActiveClass),
self.options.onCollapse($item))
: (self._openContent($content, self.options.showDuration),
$item.addClass(self.options.itemActiveClass),
self.options.onExpand($item));
}
},
_openContent: function ($contents, duration, $exclude) {
var self = this;
$contents.length || ($contents = [$contents]),
$.each($contents, function (index, content) {
var $content = $(content);
($exclude && $content === $exclude) ||
(clearTimeout($content.data("toggle-to")),
0 === duration
? $content.css("height", "auto")
: ($content.css(
"height",
$content.find(self.options.itemContent).outerHeight() + "px"
),
$content.data(
"toggle-to",
setTimeout(function () {
$content.css("height", "auto");
}, duration)
)));
});
},
_closeContent: function ($contents, duration, $exclude) {
var self = this;
$contents.length || ($contents = [$contents]),
$.each($contents, function (index, content) {
var $content = $(content);
($exclude && $content === $exclude) ||
(clearTimeout($content.data("toggle-to")),
0 === duration
? $content.css("height", "0")
: ($content.css(
"height",
$content.find(self.options.itemContent).outerHeight() + "px"
),
$content.data(
"toggle-to",
setTimeout(function () {
$content.css("height", "0");
}, 1)
)));
});
},
};
($.fn.avertaAccordion = function (options) {
return this.each(function () {
Object.create(Container).init(this, options);
});
}),
($.fn.avertaAccordion.defaultOptions = {
items: "section",
itemActiveClass: "active",
contentWrapClass: "acc-content-wrap",
itemHeader: "dt",
itemContent: "dd",
transition: "fade",
hideDuration: "300",
showDuration: "500",
hideEase: "linear",
showEase: "linear",
oneVisible: !0,
collapseOnInit: !0,
expandHashItem: !0,
onExpand: function () {},
onCollapse: function () {},
});
})(jQuery),
"function" != typeof Object.create &&
(Object.create = function (obj) {
function F() {}
return (F.prototype = obj), new F();
}),
(function ($) {
var Container = {
init: function (el, options) {
(this.options = $.extend(
{},
$.fn.avertaLiveTabs.defaultOptions,
options || {}
)),
(this.$el = $(el)),
(this.el = el),
(this.$tabs = this.$el.find(this.options.tabs)),
(this.$contents = this.$el.find(this.options.contents)),
this.setup();
},
setup: function () {
var $activeTab;
if (
(this.$tabs.on("click", { self: this }, this.onTabClicked),
this.options.enableHash && "" !== window.location.hash)
) {
var id = this.trimID(window.location.hash);
$activeTab = this.getTabById(id);
} else
$activeTab = this.$tabs.filter("." + this.options.tabsActiveClass);
($activeTab = $activeTab.length
? $activeTab
: this.$tabs.first()).trigger("click", !0);
},
onTabClicked: function (event, fromSetup) {
event.preventDefault();
var $tabContent,
activeId,
self = event.data.self,
$this = $(this);
(!fromSetup && $this.hasClass("active")) ||
(self.$tabs.removeClass(self.options.tabsActiveClass),
$this.addClass(self.options.tabsActiveClass),
self.$contents.hide(),
($tabContent =
"id" === self.options.connectType
? ((activeId = self.getIdByTab($this)),
self.getContentById(activeId))
: self.$contents.eq($this.index())).fadeIn(self.options.duration),
self.options.updateHash &&
((activeId = self.getIdByTab($this)),
(activeId = (activeId = self.trimID(activeId))
? activeId + self.options.hashSuffix
: ""),
window.history && window.history.pushState
? window.history.pushState(
null,
null,
window.location.href.split("#")[0] + "#" + activeId
)
: (window.location.hash = activeId)),
self.$el.trigger("avtTabChange", $tabContent.attr("id")));
},
getTabById: function (id) {
id = id.split(this.options.hashSuffix)[0];
var $activeTab = this.$tabs.find('[href="#' + id + '"]').eq(0);
return (
$activeTab.length ||
($activeTab = this.$tabs.find('[href="' + id + '"]').eq(0)),
$activeTab.length ? $activeTab.parent() : $activeTab
);
},
getContentById: function (id) {
return this.$contents.filter("#" + this.trimID(id));
},
trimID: function (id) {
return id.replace(/^\s+|\s+$|#/g, "");
},
getIdByTab: function ($tab) {
var $anchor = $tab.find("[href]").eq(0);
return !!$anchor.length && $anchor.attr("href");
},
};
($.fn.avertaLiveTabs = function (options) {
return this.each(function () {
Object.create(Container).init(this, options);
});
}),
($.fn.avertaLiveTabs.defaultOptions = {
tabs: "ul.tabs > li",
tabsActiveClass: "active",
contents: "ul.tabs-content > li",
contentsActiveClass: "active",
transition: "fade",
duration: "500",
connectType: "index",
enableHash: !1,
updateHash: !1,
hashSuffix: "-tab",
});
})(jQuery),
(function ($, window, document) {
"use strict";
var id = 1,
defaults = {
menuItem: "aux-menu-item",
menuItemContent: "aux-item-content",
submenu: "aux-submenu",
subIndicator: "aux-submenu-indicator",
hover: "aux-hover",
open: "aux-open",
noJS: "aux-no-js",
tabs: "aux-menu-tabs",
tab: "aux-menu-tab",
narrow: "aux-narrow",
wide: "aux-wide",
submenuHeader: "aux-submenu-header",
submenuBack: "aux-submenu-back",
type: "horizontal",
openOn: "over",
openDelay: 100,
closeDelay: 50,
autoSwitch: 600,
autoSwitchType: "accordion",
autoSwitchParent: null,
addSubIndicator: !0,
useSubIndicator: !0,
skipDelayForTabs: !0,
keepSubmenuInView: !0,
insertHeaderInSubs: !0,
backLabel: "Back",
typeMap: {
toggle: "aux-toggle",
accordion: "aux-toggle aux-accordion",
vertical: "aux-vertical",
horizontal: "aux-horizontal",
cover: "aux-toggle aux-cover",
},
submenuAlignMap: {
left: "aux-temp-left",
right: "aux-temp-right",
bottom: "aux-temp-bottom",
top: "aux-temp-top",
pattern: /aux-temp-\w+/g,
},
},
attributeDataMap = {
type: "type",
"open-on": "openOn",
"open-delay": "openDelay",
"close-delay": "closeDelay",
"switch-width": "autoSwitch",
"switch-type": "autoSwitchType",
"switch-parent": "autoSwitchParent",
indicator: "addSubIndicator",
};
function MasterMenuPlugin(element, options) {
(this.element = element), (this.$element = $(element));
var tempData,
elementData = {};
for (var attribute in attributeDataMap)
void 0 !== (tempData = this.$element.data(attribute)) &&
(elementData[attributeDataMap[attribute]] = tempData);
(this.settings = $.extend({}, defaults, options, elementData)),
(this._defaults = defaults),
(this._name = "mastermenu"),
(this._uniqueId = this._name + "_" + id++),
this.init();
}
$.extend(MasterMenuPlugin.prototype, {
init: function () {
var st = this.settings;
this.$element.removeClass(st.noJS),
(this.lastLocation = "defautlt"),
(this.defaultParent = this.$element.parent()),
(this.defaultPrev = this.$element.prev()),
(this.$menuItems = this.$element.find("." + st.menuItem)),
(this.pressEvent = "click." + this._uniqueId),
st.addSubIndicator &&
(this.$menuItems
.has("." + st.submenu)
.find(">." + st.menuItemContent)
.append(''),
(this.$subIndicators = this.$menuItems.find(
"." + st.subIndicator
))),
(this.handlerProxy = this._menuInteract.bind(this)),
this.$menuItems
.on("mouseenter." + this._uniqueId, this.handlerProxy)
.on("focusin." + this._uniqueId, this.handlerProxy)
.on("mouseleave." + this._uniqueId, this.handlerProxy)
.on("focusout." + this._uniqueId, this.handlerProxy),
this.changeType(st.type),
0 < st.autoSwitch &&
($(window).on(
"resize." + this._uniqueId,
this._autoSwitch.bind(this)
),
this._autoSwitch());
},
_onTypeChanged: function () {
if (this.lastType !== this.type) {
var type = this.type,
st = this.settings;
this.lastType &&
(this.$menuItems.off(this.pressEvent, this.handlerProxy),
st.useSubIndicator &&
this.$subIndicators.off(this.pressEvent, this.handlerProxy),
"press" === st.openOn &&
$(document).off(this.pressEvent, this.handlerProxy)),
this._closeAll(!1),
"horizontal" === type || "vertical" === type
? (this.$element.removeClass(st.narrow).addClass(st.wide),
(this.isNarrow = !1),
"over" === st.openOn
? (this.openOnOver = !0)
: "press" === st.openOn &&
($(document).on(this.pressEvent, this.handlerProxy),
this.$menuItems.on(this.pressEvent, this.handlerProxy)),
(this.keepTabs = !0),
this.$element
.find("." + st.tabs + ">." + st.tab + ":first-child")
.addClass(st.open),
"cover" === this.lastType && this._removeCoverMenuElements())
: ((this.openOnOver = !1),
(this.isNarrow = !0),
this.$element.addClass(st.narrow).removeClass(st.wide),
st.useSubIndicator && st.addSubIndicator
? this.$subIndicators.on(this.pressEvent, this.handlerProxy)
: this.$menuItems.on(this.pressEvent, this.handlerProxy),
(this.keepTabs = !1),
"cover" === type
? this._insertCoverMenuElements()
: this._removeCoverMenuElements()),
(this.lastType = type),
this.$element.trigger("typeChanged");
}
},
_menuInteract: function (event) {
var $this = $(event.currentTarget),
$menuItem = $this,
st = this.settings,
etype = event.type;
$this.hasClass(st.subIndicator)
? ($menuItem = $this.parents("." + st.menuItem).eq(0))
: $this.hasClass(st.submenuBack) &&
($menuItem = $this.parents("." + st.menuItem).eq(0));
var hasSubmenu = 0 !== $menuItem.find(">." + st.submenu).length;
switch (etype) {
case "mouseenter":
case "focusin":
$menuItem.addClass(st.hover),
hasSubmenu &&
this.openOnOver &&
this._openMenu($menuItem, st.openDelay);
break;
case "mouseleave":
case "focusout":
$menuItem.removeClass(st.hover),
hasSubmenu &&
this.openOnOver &&
this._closeMenu($menuItem, st.closeDelay);
break;
case "mouseup":
case "click":
$menuItem.is(document)
? this._closeAll()
: ($menuItem.hasClass(st.open)
? (this._closeMenu($menuItem, 0), event.preventDefault())
: ("toggle" !== this.type && this._closeOthers($menuItem),
hasSubmenu &&
(this._openMenu($menuItem, 0), event.preventDefault())),
event.stopPropagation());
}
},
_autoSwitch: function (event) {
var autoSwitchType = this.settings.autoSwitchType;
this.type !== autoSwitchType &&
window.innerWidth <= this.settings.autoSwitch
? (this.changeType(autoSwitchType),
this.settings.autoSwitchParent &&
this.changeLocation(this.settings.autoSwitchParent))
: this.type !== this.settings.type &&
window.innerWidth > this.settings.autoSwitch &&
(this.changeType("default"),
this.settings.autoSwitchParent && this.changeLocation("default"));
},
_insertCoverMenuElements: function () {
var self = this,
st = self.settings;
self.$element.find("." + st.submenu).each(function () {
var $this = $(this);
$("")
.html(
'"
)
.addClass(st.menuItem)
.addClass(st.submenuBack)
.prependTo($this)
.on(self.pressEvent, self.handlerProxy);
if (st.insertHeaderInSubs) {
var headerContent = $this
.parent()
.find(">." + st.menuItemContent)
.eq(0)
.clone();
headerContent.find("." + st.subIndicator).remove(),
$("")
.append(headerContent)
.prependTo($this)
.addClass(st.menuItem)
.addClass(st.submenuHeader);
}
});
},
_removeCoverMenuElements: function () {
var st = this.settings;
this.$element.find("." + st.submenuBack).remove(),
st.insertHeaderInSubs &&
this.$element.find("." + st.submenuHeader).remove();
},
_checkSubmenuPosition: function ($menuItem) {
var st = this.settings,
submenu = $menuItem.find(">." + st.submenu),
$window = $(window);
if (!$menuItem.parent().hasClass(st.megamenu)) {
submenu.attr(
"class",
submenu.attr("class").replace(st.submenuAlignMap.pattern, "")
);
var offset = submenu.offset(),
offsetTop = offset.top - $window.scrollTop(),
offsetLeft = offset.left - $window.scrollLeft(),
offsetRight = offsetLeft + submenu.width();
submenu.height();
if (
$menuItem.parent().is(this.$element) &&
offsetRight > $window.width()
) {
var lastShift = submenu.data("menu-shift") || 0,
shift = $window.width() - offsetRight + lastShift;
return (
$("body").hasClass("rtl")
? submenu.css("right", Math.min(0, shift))
: submenu.css("left", Math.min(0, shift)),
void submenu.data("menu-shift", shift)
);
}
offsetRight > $window.width()
? submenu.addClass(st.submenuAlignMap.left)
: offsetLeft < 0 && submenu.addClass(st.submenuAlignMap.right);
}
},
_openMenu: function ($menuItem, delay) {
var st = this.settings;
if (
(clearTimeout($menuItem.data("openTo")),
clearTimeout($menuItem.data("closeTo")),
st.skipDelayForTabs && $menuItem.hasClass(st.tab) && (delay = 0),
0 === delay)
)
return (
this.$element.trigger({ type: "beforeOpen", item: $menuItem }),
$menuItem.addClass(this.settings.open),
!this.isNarrow &&
st.keepSubmenuInView &&
this._checkSubmenuPosition($menuItem),
this.keepTabs &&
$menuItem.hasClass(st.tab) &&
this._closeOthers($menuItem, !1),
void this.$element.trigger({ type: "afterOpen", item: $menuItem })
);
var openTo = setTimeout(this._openMenu.bind(this), delay, $menuItem, 0);
$menuItem.data("openTo", openTo);
},
_closeMenu: function ($menuItem, delay, notTabs) {
var st = this.settings;
if (
(void 0 === notTabs && (notTabs = this.keepTabs),
clearTimeout($menuItem.data("closeTo")),
clearTimeout($menuItem.data("openTo")),
0 === delay)
)
return (
this.$element.trigger({ type: "beforeClose", item: $menuItem }),
(notTabs && $menuItem.hasClass(st.tab)) ||
$menuItem.removeClass(st.open),
$menuItem
.find(
"." +
st.menuItem +
"." +
st.open +
(notTabs ? ":not(." + st.tab + ")" : "")
)
.removeClass(st.open),
void this.$element.trigger({ type: "afterClose", item: $menuItem })
);
var closeTo = setTimeout(
this._closeMenu.bind(this),
delay,
$menuItem,
0,
notTabs
);
$menuItem.data("closeTo", closeTo);
},
_closeOthers: function ($menuItem, notTabs) {
void 0 === notTabs && (notTabs = this.keepTabs),
this._closeMenu($menuItem.siblings(), 0, notTabs);
},
_closeAll: function (notTabs) {
void 0 === notTabs && (notTabs = this.keepTabs),
this.$element
.find(
"." +
this.settings.open +
(notTabs ? ":not(." + this.settings.tab + ")" : "")
)
.removeClass(this.settings.open);
},
changeType: function (type) {
if (void 0 !== this.type)
this.$element.removeClass(this.settings.typeMap[this.type]);
else
for (var typeKey in this.settings.typeMap)
this.$element.removeClass(this.settings.typeMap[typeKey]);
"default" === type && (type = this.settings.type),
(this.type = type),
this.$element.addClass(this.settings.typeMap[this.type]),
this._onTypeChanged();
},
changeLocation: function (location) {
this.lastLocation !== location &&
("default" === location
? ((this.locationChanged = !1),
0 === this.defaultPrev.length
? this.$element.prependTo(this.defaultParent[0])
: this.defaultPrev[0].after(this.$element))
: ((this.locationChanged = !0), this.$element.appendTo(location)),
(this.lastLocation = location),
this.$element.trigger("locationChanged"));
},
}),
(window.MasterMenuPlugin = window.MasterMenuPlugin || MasterMenuPlugin),
($.fn.mastermenu = function (options) {
var returns,
args = arguments,
plugin = "plugin_mastermenu";
return void 0 === options || "object" == typeof options
? this.each(function () {
$.data(this, plugin) ||
$.data(this, plugin, new MasterMenuPlugin(this, options));
})
: "string" == typeof options &&
"_" !== options[0] &&
"init" !== options
? (this.each(function () {
var instance = $.data(this, plugin);
instance instanceof MasterMenuPlugin &&
"function" == typeof instance[options] &&
(returns = instance[options].apply(
instance,
Array.prototype.slice.call(args, 1)
)),
"destroy" === options && $.data(this, plugin, null);
}),
void 0 !== returns ? returns : this)
: void 0;
});
})(jQuery, window, document),
(function ($, window) {
"use strict";
var defaults = { offset: 0, insetOffset: "50%" },
attributesMap = { offset: "offset", "inset-offset": "insetOffset" },
$window = $(window);
function Plugin(element, options) {
for (var key in ((this.element = element),
(this.$element = $(element)),
(this.settings = $.extend({}, defaults, options)),
attributesMap)) {
var value = attributesMap[key],
dataAttr = this.$element.data(key);
void 0 !== dataAttr && (this.settings[value] = dataAttr);
}
this.init();
}
$.extend(Plugin.prototype, {
init: function () {
"object" == typeof this.settings.offset
? ((this._offsetTop = this.settings.offset.top),
(this._offsetBottom = this.settings.offset.bottom))
: (this._offsetTop = this._offsetBottom = this.settings.offset),
this._isOnViewPort(this.$element) &&
(this._offsetTop = this._offsetBottom = 0),
(this._appeared = !1),
(this._lastScroll = 0),
$window.on("scroll resize", this.update.bind(this)),
setTimeout(this.update.bind(this));
},
update: function (event) {
var rect = this.element.getBoundingClientRect(),
areaTop = this._parseOffset(this._offsetTop),
areaBottom =
window.innerHeight - this._parseOffset(this._offsetBottom),
insetOffset = this._parseOffset(this.settings.insetOffset, !0);
rect.top + insetOffset <= areaBottom &&
rect.bottom - insetOffset >= areaTop
? (this._appeared ||
this.$element.trigger("appear", [
{
from:
this._lastScroll <= $window.scrollTop() ? "bottom" : "top",
},
]),
(this._appeared = !0))
: this._appeared &&
(this.$element.trigger("disappear", [
{ from: rect.top < areaTop ? "top" : "bottom" },
]),
(this._appeared = !1)),
(this._lastScroll = $window.scrollTop());
},
_parseOffset: function (value, inset) {
var percentage = "string" == typeof value && -1 !== value.indexOf("%");
return (
(value = parseInt(value)),
percentage
? ((inset ? this.element.offsetHeight : window.innerHeight) *
value) /
100
: value
);
},
_isOnViewPort: function (element) {
return this.element.getBoundingClientRect().bottom < window.innerHeight;
},
}),
($.fn.appearl = function (options) {
return this.each(function () {
$.data(this, "plugin_appearl") ||
$.data(this, "plugin_appearl", new Plugin(this, options));
});
});
})(jQuery, window, document),
(function (global, factory) {
"object" == typeof exports && "undefined" != typeof module
? (module.exports = factory())
: "function" == typeof define && define.amd
? define(factory)
: ((global = global || self).PerfectScrollbar = factory());
})(this, function () {
"use strict";
function get(element) {
return getComputedStyle(element);
}
function set(element, obj) {
for (var key in obj) {
var val = obj[key];
"number" == typeof val && (val += "px"), (element.style[key] = val);
}
return element;
}
function div(className) {
var div = document.createElement("div");
return (div.className = className), div;
}
var elMatches =
"undefined" != typeof Element &&
(Element.prototype.matches ||
Element.prototype.webkitMatchesSelector ||
Element.prototype.mozMatchesSelector ||
Element.prototype.msMatchesSelector);
function matches(element, query) {
if (!elMatches) throw new Error("No element matching method supported");
return elMatches.call(element, query);
}
function remove(element) {
element.remove
? element.remove()
: element.parentNode && element.parentNode.removeChild(element);
}
function queryChildren(element, selector) {
return Array.prototype.filter.call(element.children, function (child) {
return matches(child, selector);
});
}
var cls = {
main: "ps",
rtl: "ps__rtl",
element: {
thumb: function (x) {
return "ps__thumb-" + x;
},
rail: function (x) {
return "ps__rail-" + x;
},
consuming: "ps__child--consume",
},
state: {
focus: "ps--focus",
clicking: "ps--clicking",
active: function (x) {
return "ps--active-" + x;
},
scrolling: function (x) {
return "ps--scrolling-" + x;
},
},
},
scrollingClassTimeout = { x: null, y: null };
function addScrollingClass(i, x) {
var classList = i.element.classList,
className = cls.state.scrolling(x);
classList.contains(className)
? clearTimeout(scrollingClassTimeout[x])
: classList.add(className);
}
function removeScrollingClass(i, x) {
scrollingClassTimeout[x] = setTimeout(function () {
return i.isAlive && i.element.classList.remove(cls.state.scrolling(x));
}, i.settings.scrollingThreshold);
}
var EventElement = function (element) {
(this.element = element), (this.handlers = {});
},
prototypeAccessors = { isEmpty: { configurable: !0 } };
(EventElement.prototype.bind = function (eventName, handler) {
void 0 === this.handlers[eventName] && (this.handlers[eventName] = []),
this.handlers[eventName].push(handler),
this.element.addEventListener(eventName, handler, !1);
}),
(EventElement.prototype.unbind = function (eventName, target) {
var this$1 = this;
this.handlers[eventName] = this.handlers[eventName].filter(function (
handler
) {
return (
!(!target || handler === target) ||
(this$1.element.removeEventListener(eventName, handler, !1), !1)
);
});
}),
(EventElement.prototype.unbindAll = function () {
for (var name in this.handlers) this.unbind(name);
}),
(prototypeAccessors.isEmpty.get = function () {
var this$1 = this;
return Object.keys(this.handlers).every(function (key) {
return 0 === this$1.handlers[key].length;
});
}),
Object.defineProperties(EventElement.prototype, prototypeAccessors);
var EventManager = function () {
this.eventElements = [];
};
function createEvent(name) {
if ("function" == typeof window.CustomEvent) return new CustomEvent(name);
var evt = document.createEvent("CustomEvent");
return evt.initCustomEvent(name, !1, !1, void 0), evt;
}
function processScrollDiff(
i,
axis,
diff,
useScrollingClass,
forceFireReachEvent
) {
var fields;
if (
(void 0 === useScrollingClass && (useScrollingClass = !0),
void 0 === forceFireReachEvent && (forceFireReachEvent = !1),
"top" === axis)
)
fields = [
"contentHeight",
"containerHeight",
"scrollTop",
"y",
"up",
"down",
];
else {
if ("left" !== axis)
throw new Error("A proper axis should be provided");
fields = [
"contentWidth",
"containerWidth",
"scrollLeft",
"x",
"left",
"right",
];
}
!(function (i, diff, ref, useScrollingClass, forceFireReachEvent) {
var contentHeight = ref[0],
containerHeight = ref[1],
scrollTop = ref[2],
y = ref[3],
up = ref[4],
down = ref[5];
void 0 === useScrollingClass && (useScrollingClass = !0);
void 0 === forceFireReachEvent && (forceFireReachEvent = !1);
var element = i.element;
(i.reach[y] = null), element[scrollTop] < 1 && (i.reach[y] = "start");
element[scrollTop] > i[contentHeight] - i[containerHeight] - 1 &&
(i.reach[y] = "end");
diff &&
(element.dispatchEvent(createEvent("ps-scroll-" + y)),
diff < 0
? element.dispatchEvent(createEvent("ps-scroll-" + up))
: 0 < diff &&
element.dispatchEvent(createEvent("ps-scroll-" + down)),
useScrollingClass &&
(function (i, x) {
addScrollingClass(i, x), removeScrollingClass(i, x);
})(i, y));
i.reach[y] &&
(diff || forceFireReachEvent) &&
element.dispatchEvent(
createEvent("ps-" + y + "-reach-" + i.reach[y])
);
})(i, diff, fields, useScrollingClass, forceFireReachEvent);
}
function toInt(x) {
return parseInt(x, 10) || 0;
}
(EventManager.prototype.eventElement = function (element) {
var ee = this.eventElements.filter(function (ee) {
return ee.element === element;
})[0];
return (
ee || ((ee = new EventElement(element)), this.eventElements.push(ee)),
ee
);
}),
(EventManager.prototype.bind = function (element, eventName, handler) {
this.eventElement(element).bind(eventName, handler);
}),
(EventManager.prototype.unbind = function (element, eventName, handler) {
var ee = this.eventElement(element);
ee.unbind(eventName, handler),
ee.isEmpty &&
this.eventElements.splice(this.eventElements.indexOf(ee), 1);
}),
(EventManager.prototype.unbindAll = function () {
this.eventElements.forEach(function (e) {
return e.unbindAll();
}),
(this.eventElements = []);
}),
(EventManager.prototype.once = function (element, eventName, handler) {
var ee = this.eventElement(element),
onceHandler = function (evt) {
ee.unbind(eventName, onceHandler), handler(evt);
};
ee.bind(eventName, onceHandler);
});
var env = {
isWebKit:
"undefined" != typeof document &&
"WebkitAppearance" in document.documentElement.style,
supportsTouch:
"undefined" != typeof window &&
("ontouchstart" in window ||
("maxTouchPoints" in window.navigator &&
0 < window.navigator.maxTouchPoints) ||
(window.DocumentTouch && document instanceof window.DocumentTouch)),
supportsIePointer:
"undefined" != typeof navigator && navigator.msMaxTouchPoints,
isChrome:
"undefined" != typeof navigator &&
/Chrome/i.test(navigator && navigator.userAgent),
};
function updateGeometry(i) {
var element = i.element,
roundedScrollTop = Math.floor(element.scrollTop),
rect = element.getBoundingClientRect();
(i.containerWidth = Math.round(rect.width)),
(i.containerHeight = Math.round(rect.height)),
(i.contentWidth = element.scrollWidth),
(i.contentHeight = element.scrollHeight),
element.contains(i.scrollbarXRail) ||
(queryChildren(element, cls.element.rail("x")).forEach(function (el) {
return remove(el);
}),
element.appendChild(i.scrollbarXRail)),
element.contains(i.scrollbarYRail) ||
(queryChildren(element, cls.element.rail("y")).forEach(function (el) {
return remove(el);
}),
element.appendChild(i.scrollbarYRail)),
!i.settings.suppressScrollX &&
i.containerWidth + i.settings.scrollXMarginOffset < i.contentWidth
? ((i.scrollbarXActive = !0),
(i.railXWidth = i.containerWidth - i.railXMarginWidth),
(i.railXRatio = i.containerWidth / i.railXWidth),
(i.scrollbarXWidth = getThumbSize(
i,
toInt((i.railXWidth * i.containerWidth) / i.contentWidth)
)),
(i.scrollbarXLeft = toInt(
((i.negativeScrollAdjustment + element.scrollLeft) *
(i.railXWidth - i.scrollbarXWidth)) /
(i.contentWidth - i.containerWidth)
)))
: (i.scrollbarXActive = !1),
!i.settings.suppressScrollY &&
i.containerHeight + i.settings.scrollYMarginOffset < i.contentHeight
? ((i.scrollbarYActive = !0),
(i.railYHeight = i.containerHeight - i.railYMarginHeight),
(i.railYRatio = i.containerHeight / i.railYHeight),
(i.scrollbarYHeight = getThumbSize(
i,
toInt((i.railYHeight * i.containerHeight) / i.contentHeight)
)),
(i.scrollbarYTop = toInt(
(roundedScrollTop * (i.railYHeight - i.scrollbarYHeight)) /
(i.contentHeight - i.containerHeight)
)))
: (i.scrollbarYActive = !1),
i.scrollbarXLeft >= i.railXWidth - i.scrollbarXWidth &&
(i.scrollbarXLeft = i.railXWidth - i.scrollbarXWidth),
i.scrollbarYTop >= i.railYHeight - i.scrollbarYHeight &&
(i.scrollbarYTop = i.railYHeight - i.scrollbarYHeight),
(function (element, i) {
var xRailOffset = { width: i.railXWidth },
roundedScrollTop = Math.floor(element.scrollTop);
i.isRtl
? (xRailOffset.left =
i.negativeScrollAdjustment +
element.scrollLeft +
i.containerWidth -
i.contentWidth)
: (xRailOffset.left = element.scrollLeft);
i.isScrollbarXUsingBottom
? (xRailOffset.bottom = i.scrollbarXBottom - roundedScrollTop)
: (xRailOffset.top = i.scrollbarXTop + roundedScrollTop);
set(i.scrollbarXRail, xRailOffset);
var yRailOffset = { top: roundedScrollTop, height: i.railYHeight };
i.isScrollbarYUsingRight
? i.isRtl
? (yRailOffset.right =
i.contentWidth -
(i.negativeScrollAdjustment + element.scrollLeft) -
i.scrollbarYRight -
i.scrollbarYOuterWidth -
9)
: (yRailOffset.right = i.scrollbarYRight - element.scrollLeft)
: i.isRtl
? (yRailOffset.left =
i.negativeScrollAdjustment +
element.scrollLeft +
2 * i.containerWidth -
i.contentWidth -
i.scrollbarYLeft -
i.scrollbarYOuterWidth)
: (yRailOffset.left = i.scrollbarYLeft + element.scrollLeft);
set(i.scrollbarYRail, yRailOffset),
set(i.scrollbarX, {
left: i.scrollbarXLeft,
width: i.scrollbarXWidth - i.railBorderXWidth,
}),
set(i.scrollbarY, {
top: i.scrollbarYTop,
height: i.scrollbarYHeight - i.railBorderYWidth,
});
})(element, i),
i.scrollbarXActive
? element.classList.add(cls.state.active("x"))
: (element.classList.remove(cls.state.active("x")),
(i.scrollbarXWidth = 0),
(i.scrollbarXLeft = 0),
(element.scrollLeft = !0 === i.isRtl ? i.contentWidth : 0)),
i.scrollbarYActive
? element.classList.add(cls.state.active("y"))
: (element.classList.remove(cls.state.active("y")),
(i.scrollbarYHeight = 0),
(i.scrollbarYTop = 0),
(element.scrollTop = 0));
}
function getThumbSize(i, thumbSize) {
return (
i.settings.minScrollbarLength &&
(thumbSize = Math.max(thumbSize, i.settings.minScrollbarLength)),
i.settings.maxScrollbarLength &&
(thumbSize = Math.min(thumbSize, i.settings.maxScrollbarLength)),
thumbSize
);
}
function bindMouseScrollHandler(i, ref) {
var containerHeight = ref[0],
contentHeight = ref[1],
pageY = ref[2],
railYHeight = ref[3],
scrollbarY = ref[4],
scrollbarYHeight = ref[5],
scrollTop = ref[6],
y = ref[7],
scrollbarYRail = ref[8],
element = i.element,
startingScrollTop = null,
startingMousePageY = null,
scrollBy = null;
function mouseMoveHandler(e) {
e.touches && e.touches[0] && (e[pageY] = e.touches[0].pageY),
(element[scrollTop] =
startingScrollTop + scrollBy * (e[pageY] - startingMousePageY)),
addScrollingClass(i, y),
updateGeometry(i),
e.stopPropagation(),
e.preventDefault();
}
function mouseUpHandler() {
removeScrollingClass(i, y),
i[scrollbarYRail].classList.remove(cls.state.clicking),
i.event.unbind(i.ownerDocument, "mousemove", mouseMoveHandler);
}
function bindMoves(e, touchMode) {
(startingScrollTop = element[scrollTop]),
touchMode && e.touches && (e[pageY] = e.touches[0].pageY),
(startingMousePageY = e[pageY]),
(scrollBy =
(i[contentHeight] - i[containerHeight]) /
(i[railYHeight] - i[scrollbarYHeight])),
touchMode
? i.event.bind(i.ownerDocument, "touchmove", mouseMoveHandler)
: (i.event.bind(i.ownerDocument, "mousemove", mouseMoveHandler),
i.event.once(i.ownerDocument, "mouseup", mouseUpHandler),
e.preventDefault()),
i[scrollbarYRail].classList.add(cls.state.clicking),
e.stopPropagation();
}
i.event.bind(i[scrollbarY], "mousedown", function (e) {
bindMoves(e);
}),
i.event.bind(i[scrollbarY], "touchstart", function (e) {
bindMoves(e, !0);
});
}
var handlers = {
"click-rail": function (i) {
i.element,
i.event.bind(i.scrollbarY, "mousedown", function (e) {
return e.stopPropagation();
}),
i.event.bind(i.scrollbarYRail, "mousedown", function (e) {
var direction =
e.pageY -
window.pageYOffset -
i.scrollbarYRail.getBoundingClientRect().top >
i.scrollbarYTop
? 1
: -1;
(i.element.scrollTop += direction * i.containerHeight),
updateGeometry(i),
e.stopPropagation();
}),
i.event.bind(i.scrollbarX, "mousedown", function (e) {
return e.stopPropagation();
}),
i.event.bind(i.scrollbarXRail, "mousedown", function (e) {
var direction =
e.pageX -
window.pageXOffset -
i.scrollbarXRail.getBoundingClientRect().left >
i.scrollbarXLeft
? 1
: -1;
(i.element.scrollLeft += direction * i.containerWidth),
updateGeometry(i),
e.stopPropagation();
});
},
"drag-thumb": function (i) {
bindMouseScrollHandler(i, [
"containerWidth",
"contentWidth",
"pageX",
"railXWidth",
"scrollbarX",
"scrollbarXWidth",
"scrollLeft",
"x",
"scrollbarXRail",
]),
bindMouseScrollHandler(i, [
"containerHeight",
"contentHeight",
"pageY",
"railYHeight",
"scrollbarY",
"scrollbarYHeight",
"scrollTop",
"y",
"scrollbarYRail",
]);
},
keyboard: function (i) {
var element = i.element;
i.event.bind(i.ownerDocument, "keydown", function (e) {
if (
!(
(e.isDefaultPrevented && e.isDefaultPrevented()) ||
e.defaultPrevented
) &&
(matches(element, ":hover") ||
matches(i.scrollbarX, ":focus") ||
matches(i.scrollbarY, ":focus"))
) {
var activeElement = document.activeElement
? document.activeElement
: i.ownerDocument.activeElement;
if (activeElement) {
if ("IFRAME" === activeElement.tagName)
activeElement = activeElement.contentDocument.activeElement;
else
for (; activeElement.shadowRoot; )
activeElement = activeElement.shadowRoot.activeElement;
if (
(function (el) {
return (
matches(el, "input,[contenteditable]") ||
matches(el, "select,[contenteditable]") ||
matches(el, "textarea,[contenteditable]") ||
matches(el, "button,[contenteditable]")
);
})(activeElement)
)
return;
}
var deltaX = 0,
deltaY = 0;
switch (e.which) {
case 37:
deltaX = e.metaKey
? -i.contentWidth
: e.altKey
? -i.containerWidth
: -30;
break;
case 38:
deltaY = e.metaKey
? i.contentHeight
: e.altKey
? i.containerHeight
: 30;
break;
case 39:
deltaX = e.metaKey
? i.contentWidth
: e.altKey
? i.containerWidth
: 30;
break;
case 40:
deltaY = e.metaKey
? -i.contentHeight
: e.altKey
? -i.containerHeight
: -30;
break;
case 32:
deltaY = e.shiftKey ? i.containerHeight : -i.containerHeight;
break;
case 33:
deltaY = i.containerHeight;
break;
case 34:
deltaY = -i.containerHeight;
break;
case 36:
deltaY = i.contentHeight;
break;
case 35:
deltaY = -i.contentHeight;
break;
default:
return;
}
(i.settings.suppressScrollX && 0 !== deltaX) ||
(i.settings.suppressScrollY && 0 !== deltaY) ||
((element.scrollTop -= deltaY),
(element.scrollLeft += deltaX),
updateGeometry(i),
(function (deltaX, deltaY) {
var scrollTop = Math.floor(element.scrollTop);
if (0 === deltaX) {
if (!i.scrollbarYActive) return !1;
if (
(0 === scrollTop && 0 < deltaY) ||
(scrollTop >= i.contentHeight - i.containerHeight &&
deltaY < 0)
)
return !i.settings.wheelPropagation;
}
var scrollLeft = element.scrollLeft;
if (0 === deltaY) {
if (!i.scrollbarXActive) return !1;
if (
(0 === scrollLeft && deltaX < 0) ||
(scrollLeft >= i.contentWidth - i.containerWidth &&
0 < deltaX)
)
return !i.settings.wheelPropagation;
}
return !0;
})(deltaX, deltaY) && e.preventDefault());
}
});
},
wheel: function (i) {
var element = i.element;
function mousewheelHandler(e) {
var ref = (function (e) {
var deltaX = e.deltaX,
deltaY = -1 * e.deltaY;
return (
(void 0 !== deltaX && void 0 !== deltaY) ||
((deltaX = (-1 * e.wheelDeltaX) / 6),
(deltaY = e.wheelDeltaY / 6)),
e.deltaMode &&
1 === e.deltaMode &&
((deltaX *= 10), (deltaY *= 10)),
deltaX != deltaX &&
deltaY != deltaY &&
((deltaX = 0), (deltaY = e.wheelDelta)),
e.shiftKey ? [-deltaY, -deltaX] : [deltaX, deltaY]
);
})(e),
deltaX = ref[0],
deltaY = ref[1];
if (
!(function (target, deltaX, deltaY) {
if (!env.isWebKit && element.querySelector("select:focus"))
return !0;
if (!element.contains(target)) return !1;
for (var cursor = target; cursor && cursor !== element; ) {
if (cursor.classList.contains(cls.element.consuming))
return !0;
var style = get(cursor);
if (deltaY && style.overflowY.match(/(scroll|auto)/)) {
var maxScrollTop =
cursor.scrollHeight - cursor.clientHeight;
if (
0 < maxScrollTop &&
((0 < cursor.scrollTop && deltaY < 0) ||
(cursor.scrollTop < maxScrollTop && 0 < deltaY))
)
return !0;
}
if (deltaX && style.overflowX.match(/(scroll|auto)/)) {
var maxScrollLeft = cursor.scrollWidth - cursor.clientWidth;
if (
0 < maxScrollLeft &&
((0 < cursor.scrollLeft && deltaX < 0) ||
(cursor.scrollLeft < maxScrollLeft && 0 < deltaX))
)
return !0;
}
cursor = cursor.parentNode;
}
return !1;
})(e.target, deltaX, deltaY)
) {
var shouldPrevent = !1;
i.settings.useBothWheelAxes
? i.scrollbarYActive && !i.scrollbarXActive
? (deltaY
? (element.scrollTop -= deltaY * i.settings.wheelSpeed)
: (element.scrollTop += deltaX * i.settings.wheelSpeed),
(shouldPrevent = !0))
: i.scrollbarXActive &&
!i.scrollbarYActive &&
(deltaX
? (element.scrollLeft += deltaX * i.settings.wheelSpeed)
: (element.scrollLeft -= deltaY * i.settings.wheelSpeed),
(shouldPrevent = !0))
: ((element.scrollTop -= deltaY * i.settings.wheelSpeed),
(element.scrollLeft += deltaX * i.settings.wheelSpeed)),
updateGeometry(i),
(shouldPrevent =
shouldPrevent ||
(function (deltaX, deltaY) {
var roundedScrollTop = Math.floor(element.scrollTop),
isTop = 0 === element.scrollTop,
isBottom =
roundedScrollTop + element.offsetHeight ===
element.scrollHeight,
isLeft = 0 === element.scrollLeft,
isRight =
element.scrollLeft + element.offsetWidth ===
element.scrollWidth;
return (
!(Math.abs(deltaY) > Math.abs(deltaX)
? isTop || isBottom
: isLeft || isRight) || !i.settings.wheelPropagation
);
})(deltaX, deltaY)) &&
!e.ctrlKey &&
(e.stopPropagation(), e.preventDefault());
}
}
void 0 !== window.onwheel
? i.event.bind(element, "wheel", mousewheelHandler)
: void 0 !== window.onmousewheel &&
i.event.bind(element, "mousewheel", mousewheelHandler);
},
touch: function (i) {
if (env.supportsTouch || env.supportsIePointer) {
var element = i.element,
startOffset = {},
startTime = 0,
speed = {},
easingLoop = null;
env.supportsTouch
? (i.event.bind(element, "touchstart", touchStart),
i.event.bind(element, "touchmove", touchMove),
i.event.bind(element, "touchend", touchEnd))
: env.supportsIePointer &&
(window.PointerEvent
? (i.event.bind(element, "pointerdown", touchStart),
i.event.bind(element, "pointermove", touchMove),
i.event.bind(element, "pointerup", touchEnd))
: window.MSPointerEvent &&
(i.event.bind(element, "MSPointerDown", touchStart),
i.event.bind(element, "MSPointerMove", touchMove),
i.event.bind(element, "MSPointerUp", touchEnd)));
}
function applyTouchMove(differenceX, differenceY) {
(element.scrollTop -= differenceY),
(element.scrollLeft -= differenceX),
updateGeometry(i);
}
function getTouch(e) {
return e.targetTouches ? e.targetTouches[0] : e;
}
function shouldHandle(e) {
return (
(!e.pointerType || "pen" !== e.pointerType || 0 !== e.buttons) &&
(!(!e.targetTouches || 1 !== e.targetTouches.length) ||
!(
!e.pointerType ||
"mouse" === e.pointerType ||
e.pointerType === e.MSPOINTER_TYPE_MOUSE
))
);
}
function touchStart(e) {
if (shouldHandle(e)) {
var touch = getTouch(e);
(startOffset.pageX = touch.pageX),
(startOffset.pageY = touch.pageY),
(startTime = new Date().getTime()),
null !== easingLoop && clearInterval(easingLoop);
}
}
function touchMove(e) {
if (shouldHandle(e)) {
var touch = getTouch(e),
currentOffset = { pageX: touch.pageX, pageY: touch.pageY },
differenceX = currentOffset.pageX - startOffset.pageX,
differenceY = currentOffset.pageY - startOffset.pageY;
if (
(function (target, deltaX, deltaY) {
if (!element.contains(target)) return !1;
for (var cursor = target; cursor && cursor !== element; ) {
if (cursor.classList.contains(cls.element.consuming))
return !0;
var style = get(cursor);
if (deltaY && style.overflowY.match(/(scroll|auto)/)) {
var maxScrollTop =
cursor.scrollHeight - cursor.clientHeight;
if (
0 < maxScrollTop &&
((0 < cursor.scrollTop && deltaY < 0) ||
(cursor.scrollTop < maxScrollTop && 0 < deltaY))
)
return !0;
}
if (deltaX && style.overflowX.match(/(scroll|auto)/)) {
var maxScrollLeft =
cursor.scrollWidth - cursor.clientWidth;
if (
0 < maxScrollLeft &&
((0 < cursor.scrollLeft && deltaX < 0) ||
(cursor.scrollLeft < maxScrollLeft && 0 < deltaX))
)
return !0;
}
cursor = cursor.parentNode;
}
return !1;
})(e.target, differenceX, differenceY)
)
return;
applyTouchMove(differenceX, differenceY),
(startOffset = currentOffset);
var currentTime = new Date().getTime(),
timeGap = currentTime - startTime;
0 < timeGap &&
((speed.x = differenceX / timeGap),
(speed.y = differenceY / timeGap),
(startTime = currentTime)),
(function (deltaX, deltaY) {
var scrollTop = Math.floor(element.scrollTop),
scrollLeft = element.scrollLeft,
magnitudeX = Math.abs(deltaX),
magnitudeY = Math.abs(deltaY);
if (magnitudeX < magnitudeY) {
if (
(deltaY < 0 &&
scrollTop === i.contentHeight - i.containerHeight) ||
(0 < deltaY && 0 === scrollTop)
)
return 0 === window.scrollY && 0 < deltaY && env.isChrome;
} else if (
magnitudeY < magnitudeX &&
((deltaX < 0 &&
scrollLeft === i.contentWidth - i.containerWidth) ||
(0 < deltaX && 0 === scrollLeft))
)
return !0;
return !0;
})(differenceX, differenceY) && e.preventDefault();
}
}
function touchEnd() {
i.settings.swipeEasing &&
(clearInterval(easingLoop),
(easingLoop = setInterval(function () {
i.isInitialized
? clearInterval(easingLoop)
: speed.x || speed.y
? Math.abs(speed.x) < 0.01 && Math.abs(speed.y) < 0.01
? clearInterval(easingLoop)
: i.element
? (applyTouchMove(30 * speed.x, 30 * speed.y),
(speed.x *= 0.8),
(speed.y *= 0.8))
: clearInterval(easingLoop)
: clearInterval(easingLoop);
}, 10)));
}
},
},
PerfectScrollbar = function (element, userSettings) {
var this$1 = this;
if (
(void 0 === userSettings && (userSettings = {}),
"string" == typeof element &&
(element = document.querySelector(element)),
!element || !element.nodeName)
)
throw new Error(
"no element is specified to initialize PerfectScrollbar"
);
for (var key in ((this.element = element).classList.add(cls.main),
(this.settings = {
handlers: ["click-rail", "drag-thumb", "keyboard", "wheel", "touch"],
maxScrollbarLength: null,
minScrollbarLength: null,
scrollingThreshold: 1e3,
scrollXMarginOffset: 0,
scrollYMarginOffset: 0,
suppressScrollX: !1,
suppressScrollY: !1,
swipeEasing: !0,
useBothWheelAxes: !1,
wheelPropagation: !0,
wheelSpeed: 1,
}),
userSettings))
this.settings[key] = userSettings[key];
(this.containerWidth = null),
(this.containerHeight = null),
(this.contentWidth = null),
(this.contentHeight = null);
function focus() {
return element.classList.add(cls.state.focus);
}
function blur() {
return element.classList.remove(cls.state.focus);
}
var result, originalScrollLeft;
(this.isRtl = "rtl" === get(element).direction),
!0 === this.isRtl && element.classList.add(cls.rtl),
(this.isNegativeScroll =
((originalScrollLeft = element.scrollLeft),
(element.scrollLeft = -1),
(result = element.scrollLeft < 0),
(element.scrollLeft = originalScrollLeft),
result)),
(this.negativeScrollAdjustment = this.isNegativeScroll
? element.scrollWidth - element.clientWidth
: 0),
(this.event = new EventManager()),
(this.ownerDocument = element.ownerDocument || document),
(this.scrollbarXRail = div(cls.element.rail("x"))),
element.appendChild(this.scrollbarXRail),
(this.scrollbarX = div(cls.element.thumb("x"))),
this.scrollbarXRail.appendChild(this.scrollbarX),
this.scrollbarX.setAttribute("tabindex", 0),
this.event.bind(this.scrollbarX, "focus", focus),
this.event.bind(this.scrollbarX, "blur", blur),
(this.scrollbarXActive = null),
(this.scrollbarXWidth = null),
(this.scrollbarXLeft = null);
var railXStyle = get(this.scrollbarXRail);
(this.scrollbarXBottom = parseInt(railXStyle.bottom, 10)),
isNaN(this.scrollbarXBottom)
? ((this.isScrollbarXUsingBottom = !1),
(this.scrollbarXTop = toInt(railXStyle.top)))
: (this.isScrollbarXUsingBottom = !0),
(this.railBorderXWidth =
toInt(railXStyle.borderLeftWidth) +
toInt(railXStyle.borderRightWidth)),
set(this.scrollbarXRail, { display: "block" }),
(this.railXMarginWidth =
toInt(railXStyle.marginLeft) + toInt(railXStyle.marginRight)),
set(this.scrollbarXRail, { display: "" }),
(this.railXWidth = null),
(this.railXRatio = null),
(this.scrollbarYRail = div(cls.element.rail("y"))),
element.appendChild(this.scrollbarYRail),
(this.scrollbarY = div(cls.element.thumb("y"))),
this.scrollbarYRail.appendChild(this.scrollbarY),
this.scrollbarY.setAttribute("tabindex", 0),
this.event.bind(this.scrollbarY, "focus", focus),
this.event.bind(this.scrollbarY, "blur", blur),
(this.scrollbarYActive = null),
(this.scrollbarYHeight = null),
(this.scrollbarYTop = null);
var railYStyle = get(this.scrollbarYRail);
(this.scrollbarYRight = parseInt(railYStyle.right, 10)),
isNaN(this.scrollbarYRight)
? ((this.isScrollbarYUsingRight = !1),
(this.scrollbarYLeft = toInt(railYStyle.left)))
: (this.isScrollbarYUsingRight = !0),
(this.scrollbarYOuterWidth = this.isRtl
? (function (element) {
var styles = get(element);
return (
toInt(styles.width) +
toInt(styles.paddingLeft) +
toInt(styles.paddingRight) +
toInt(styles.borderLeftWidth) +
toInt(styles.borderRightWidth)
);
})(this.scrollbarY)
: null),
(this.railBorderYWidth =
toInt(railYStyle.borderTopWidth) +
toInt(railYStyle.borderBottomWidth)),
set(this.scrollbarYRail, { display: "block" }),
(this.railYMarginHeight =
toInt(railYStyle.marginTop) + toInt(railYStyle.marginBottom)),
set(this.scrollbarYRail, { display: "" }),
(this.railYHeight = null),
(this.railYRatio = null),
(this.reach = {
x:
element.scrollLeft <= 0
? "start"
: element.scrollLeft >= this.contentWidth - this.containerWidth
? "end"
: null,
y:
element.scrollTop <= 0
? "start"
: element.scrollTop >= this.contentHeight - this.containerHeight
? "end"
: null,
}),
(this.isAlive = !0),
this.settings.handlers.forEach(function (handlerName) {
return handlers[handlerName](this$1);
}),
(this.lastScrollTop = Math.floor(element.scrollTop)),
(this.lastScrollLeft = element.scrollLeft),
this.event.bind(this.element, "scroll", function (e) {
return this$1.onScroll(e);
}),
updateGeometry(this);
};
return (
(PerfectScrollbar.prototype.update = function () {
this.isAlive &&
((this.negativeScrollAdjustment = this.isNegativeScroll
? this.element.scrollWidth - this.element.clientWidth
: 0),
set(this.scrollbarXRail, { display: "block" }),
set(this.scrollbarYRail, { display: "block" }),
(this.railXMarginWidth =
toInt(get(this.scrollbarXRail).marginLeft) +
toInt(get(this.scrollbarXRail).marginRight)),
(this.railYMarginHeight =
toInt(get(this.scrollbarYRail).marginTop) +
toInt(get(this.scrollbarYRail).marginBottom)),
set(this.scrollbarXRail, { display: "none" }),
set(this.scrollbarYRail, { display: "none" }),
updateGeometry(this),
processScrollDiff(this, "top", 0, !1, !0),
processScrollDiff(this, "left", 0, !1, !0),
set(this.scrollbarXRail, { display: "" }),
set(this.scrollbarYRail, { display: "" }));
}),
(PerfectScrollbar.prototype.onScroll = function () {
this.isAlive &&
(updateGeometry(this),
processScrollDiff(
this,
"top",
this.element.scrollTop - this.lastScrollTop
),
processScrollDiff(
this,
"left",
this.element.scrollLeft - this.lastScrollLeft
),
(this.lastScrollTop = Math.floor(this.element.scrollTop)),
(this.lastScrollLeft = this.element.scrollLeft));
}),
(PerfectScrollbar.prototype.destroy = function () {
this.isAlive &&
(this.event.unbindAll(),
remove(this.scrollbarX),
remove(this.scrollbarY),
remove(this.scrollbarXRail),
remove(this.scrollbarYRail),
this.removePsClasses(),
(this.element = null),
(this.scrollbarX = null),
(this.scrollbarY = null),
(this.scrollbarXRail = null),
(this.scrollbarYRail = null),
(this.isAlive = !1));
}),
(PerfectScrollbar.prototype.removePsClasses = function () {
this.element.className = this.element.className
.split(" ")
.filter(function (name) {
return !name.match(/^ps([-_].+|)$/);
})
.join(" ");
}),
PerfectScrollbar
);
}),
(function (factory) {
"function" == typeof define && define.amd
? define(["jquery"], factory)
: "object" == typeof module && module.exports
? (module.exports = function (root, jQuery) {
return (
void 0 === jQuery &&
(jQuery =
"undefined" != typeof window
? require("jquery")
: require("jquery")(root)),
factory(jQuery),
jQuery
);
})
: factory(jQuery);
})(function (jQuery) {
var S2 = (function () {
if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd)
var S2 = jQuery.fn.select2.amd;
var requirejs,
require,
define,
main,
req,
makeMap,
handlers,
defined,
waiting,
config,
defining,
hasOwn,
aps,
jsSuffixRegExp,
factory;
function hasProp(obj, prop) {
return hasOwn.call(obj, prop);
}
function normalize(name, baseName) {
var nameParts,
nameSegment,
mapValue,
foundMap,
lastIndex,
foundI,
foundStarMap,
starI,
i,
j,
part,
baseParts = baseName && baseName.split("/"),
map = config.map,
starMap = (map && map["*"]) || {};
if (name) {
for (
lastIndex = (name = name.split("/")).length - 1,
config.nodeIdCompat &&
jsSuffixRegExp.test(name[lastIndex]) &&
(name[lastIndex] = name[lastIndex].replace(
jsSuffixRegExp,
""
)),
"." === name[0].charAt(0) &&
baseParts &&
(name = baseParts
.slice(0, baseParts.length - 1)
.concat(name)),
i = 0;
i < name.length;
i++
)
if ("." === (part = name[i])) name.splice(i, 1), (i -= 1);
else if (".." === part) {
if (
0 === i ||
(1 === i && ".." === name[2]) ||
".." === name[i - 1]
)
continue;
0 < i && (name.splice(i - 1, 2), (i -= 2));
}
name = name.join("/");
}
if ((baseParts || starMap) && map) {
for (i = (nameParts = name.split("/")).length; 0 < i; i -= 1) {
if (((nameSegment = nameParts.slice(0, i).join("/")), baseParts))
for (j = baseParts.length; 0 < j; j -= 1)
if (
(mapValue =
(mapValue = map[baseParts.slice(0, j).join("/")]) &&
mapValue[nameSegment])
) {
(foundMap = mapValue), (foundI = i);
break;
}
if (foundMap) break;
!foundStarMap &&
starMap &&
starMap[nameSegment] &&
((foundStarMap = starMap[nameSegment]), (starI = i));
}
!foundMap &&
foundStarMap &&
((foundMap = foundStarMap), (foundI = starI)),
foundMap &&
(nameParts.splice(0, foundI, foundMap),
(name = nameParts.join("/")));
}
return name;
}
function makeRequire(relName, forceSync) {
return function () {
var args = aps.call(arguments, 0);
return (
"string" != typeof args[0] &&
1 === args.length &&
args.push(null),
req.apply(void 0, args.concat([relName, forceSync]))
);
};
}
function makeLoad(depName) {
return function (value) {
defined[depName] = value;
};
}
function callDep(name) {
if (hasProp(waiting, name)) {
var args = waiting[name];
delete waiting[name],
(defining[name] = !0),
main.apply(void 0, args);
}
if (!hasProp(defined, name) && !hasProp(defining, name))
throw new Error("No " + name);
return defined[name];
}
function splitPrefix(name) {
var prefix,
index = name ? name.indexOf("!") : -1;
return (
-1 < index &&
((prefix = name.substring(0, index)),
(name = name.substring(index + 1, name.length))),
[prefix, name]
);
}
function makeRelParts(relName) {
return relName ? splitPrefix(relName) : [];
}
return (
(S2 && S2.requirejs) ||
(S2 ? (require = S2) : (S2 = {}),
(defined = {}),
(waiting = {}),
(config = {}),
(defining = {}),
(hasOwn = Object.prototype.hasOwnProperty),
(aps = [].slice),
(jsSuffixRegExp = /\.js$/),
(makeMap = function (name, relParts) {
var plugin,
parts = splitPrefix(name),
prefix = parts[0],
relResourceName = relParts[1];
return (
(name = parts[1]),
prefix &&
(plugin = callDep(
(prefix = normalize(prefix, relResourceName))
)),
prefix
? (name =
plugin && plugin.normalize
? plugin.normalize(
name,
(function (relName) {
return function (name) {
return normalize(name, relName);
};
})(relResourceName)
)
: normalize(name, relResourceName))
: ((prefix = (parts = splitPrefix(
(name = normalize(name, relResourceName))
))[0]),
(name = parts[1]),
prefix && (plugin = callDep(prefix))),
{
f: prefix ? prefix + "!" + name : name,
n: name,
pr: prefix,
p: plugin,
}
);
}),
(handlers = {
require: function (name) {
return makeRequire(name);
},
exports: function (name) {
var e = defined[name];
return void 0 !== e ? e : (defined[name] = {});
},
module: function (name) {
return {
id: name,
uri: "",
exports: defined[name],
config: (function (name) {
return function () {
return (
(config && config.config && config.config[name]) || {}
);
};
})(name),
};
},
}),
(main = function (name, deps, callback, relName) {
var cjsModule,
depName,
ret,
map,
i,
relParts,
usingExports,
args = [],
callbackType = typeof callback;
if (
((relParts = makeRelParts((relName = relName || name))),
"undefined" == callbackType || "function" == callbackType)
) {
for (
deps =
!deps.length && callback.length
? ["require", "exports", "module"]
: deps,
i = 0;
i < deps.length;
i += 1
)
if (
"require" ===
(depName = (map = makeMap(deps[i], relParts)).f)
)
args[i] = handlers.require(name);
else if ("exports" === depName)
(args[i] = handlers.exports(name)), (usingExports = !0);
else if ("module" === depName)
cjsModule = args[i] = handlers.module(name);
else if (
hasProp(defined, depName) ||
hasProp(waiting, depName) ||
hasProp(defining, depName)
)
args[i] = callDep(depName);
else {
if (!map.p) throw new Error(name + " missing " + depName);
map.p.load(
map.n,
makeRequire(relName, !0),
makeLoad(depName),
{}
),
(args[i] = defined[depName]);
}
(ret = callback ? callback.apply(defined[name], args) : void 0),
name &&
(cjsModule &&
void 0 !== cjsModule.exports &&
cjsModule.exports !== defined[name]
? (defined[name] = cjsModule.exports)
: (void 0 === ret && usingExports) ||
(defined[name] = ret));
} else name && (defined[name] = callback);
}),
(requirejs =
require =
req =
function (deps, callback, relName, forceSync, alt) {
if ("string" == typeof deps)
return handlers[deps]
? handlers[deps](callback)
: callDep(makeMap(deps, makeRelParts(callback)).f);
if (!deps.splice) {
if (
((config = deps).deps &&
req(config.deps, config.callback),
!callback)
)
return;
callback.splice
? ((deps = callback),
(callback = relName),
(relName = null))
: (deps = void 0);
}
return (
(callback = callback || function () {}),
"function" == typeof relName &&
((relName = forceSync), (forceSync = alt)),
forceSync
? main(void 0, deps, callback, relName)
: setTimeout(function () {
main(void 0, deps, callback, relName);
}, 4),
req
);
}),
(req.config = function (cfg) {
return req(cfg);
}),
(requirejs._defined = defined),
((define = function (name, deps, callback) {
if ("string" != typeof name)
throw new Error(
"See almond README: incorrect module build, no module name"
);
deps.splice || ((callback = deps), (deps = [])),
hasProp(defined, name) ||
hasProp(waiting, name) ||
(waiting[name] = [name, deps, callback]);
}).amd = { jQuery: !0 }),
(S2.requirejs = requirejs),
(S2.require = require),
(S2.define = define)),
S2.define("almond", function () {}),
S2.define("jquery", [], function () {
var _$ = jQuery || $;
return (
null == _$ &&
console &&
console.error &&
console.error(
"Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."
),
_$
);
}),
S2.define("select2/utils", ["jquery"], function ($) {
var Utils = {};
function getMethods(theClass) {
var proto = theClass.prototype,
methods = [];
for (var methodName in proto) {
"function" == typeof proto[methodName] &&
"constructor" !== methodName &&
methods.push(methodName);
}
return methods;
}
(Utils.Extend = function (ChildClass, SuperClass) {
var __hasProp = {}.hasOwnProperty;
function BaseConstructor() {
this.constructor = ChildClass;
}
for (var key in SuperClass)
__hasProp.call(SuperClass, key) &&
(ChildClass[key] = SuperClass[key]);
return (
(BaseConstructor.prototype = SuperClass.prototype),
(ChildClass.prototype = new BaseConstructor()),
(ChildClass.__super__ = SuperClass.prototype),
ChildClass
);
}),
(Utils.Decorate = function (SuperClass, DecoratorClass) {
var decoratedMethods = getMethods(DecoratorClass),
superMethods = getMethods(SuperClass);
function DecoratedClass() {
var unshift = Array.prototype.unshift,
argCount = DecoratorClass.prototype.constructor.length,
calledConstructor = SuperClass.prototype.constructor;
0 < argCount &&
(unshift.call(arguments, SuperClass.prototype.constructor),
(calledConstructor = DecoratorClass.prototype.constructor)),
calledConstructor.apply(this, arguments);
}
(DecoratorClass.displayName = SuperClass.displayName),
(DecoratedClass.prototype = new (function () {
this.constructor = DecoratedClass;
})());
for (var m = 0; m < superMethods.length; m++) {
var superMethod = superMethods[m];
DecoratedClass.prototype[superMethod] =
SuperClass.prototype[superMethod];
}
function calledMethod(methodName) {
var originalMethod = function () {};
methodName in DecoratedClass.prototype &&
(originalMethod = DecoratedClass.prototype[methodName]);
var decoratedMethod = DecoratorClass.prototype[methodName];
return function () {
return (
Array.prototype.unshift.call(arguments, originalMethod),
decoratedMethod.apply(this, arguments)
);
};
}
for (var d = 0; d < decoratedMethods.length; d++) {
var decoratedMethod = decoratedMethods[d];
DecoratedClass.prototype[decoratedMethod] =
calledMethod(decoratedMethod);
}
return DecoratedClass;
});
function Observable() {
this.listeners = {};
}
(Observable.prototype.on = function (event, callback) {
(this.listeners = this.listeners || {}),
event in this.listeners
? this.listeners[event].push(callback)
: (this.listeners[event] = [callback]);
}),
(Observable.prototype.trigger = function (event) {
var slice = Array.prototype.slice,
params = slice.call(arguments, 1);
(this.listeners = this.listeners || {}),
null == params && (params = []),
0 === params.length && params.push({}),
(params[0]._type = event) in this.listeners &&
this.invoke(
this.listeners[event],
slice.call(arguments, 1)
),
"*" in this.listeners &&
this.invoke(this.listeners["*"], arguments);
}),
(Observable.prototype.invoke = function (listeners, params) {
for (var i = 0, len = listeners.length; i < len; i++)
listeners[i].apply(this, params);
}),
(Utils.Observable = Observable),
(Utils.generateChars = function (length) {
for (var chars = "", i = 0; i < length; i++) {
chars += Math.floor(36 * Math.random()).toString(36);
}
return chars;
}),
(Utils.bind = function (func, context) {
return function () {
func.apply(context, arguments);
};
}),
(Utils._convertData = function (data) {
for (var originalKey in data) {
var keys = originalKey.split("-"),
dataLevel = data;
if (1 !== keys.length) {
for (var k = 0; k < keys.length; k++) {
var key = keys[k];
(key =
key.substring(0, 1).toLowerCase() + key.substring(1)) in
dataLevel || (dataLevel[key] = {}),
k == keys.length - 1 &&
(dataLevel[key] = data[originalKey]),
(dataLevel = dataLevel[key]);
}
delete data[originalKey];
}
}
return data;
}),
(Utils.hasScroll = function (index, el) {
var $el = $(el),
overflowX = el.style.overflowX,
overflowY = el.style.overflowY;
return (
(overflowX !== overflowY ||
("hidden" !== overflowY && "visible" !== overflowY)) &&
("scroll" === overflowX ||
"scroll" === overflowY ||
$el.innerHeight() < el.scrollHeight ||
$el.innerWidth() < el.scrollWidth)
);
}),
(Utils.escapeMarkup = function (markup) {
var replaceMap = {
"\\": "\",
"&": "&",
"<": "<",
">": ">",
'"': """,
"'": "'",
"/": "/",
};
return "string" != typeof markup
? markup
: String(markup).replace(/[&<>"'\/\\]/g, function (match) {
return replaceMap[match];
});
}),
(Utils.__cache = {});
var id = 0;
return (
(Utils.GetUniqueElementId = function (element) {
var select2Id = element.getAttribute("data-select2-id");
return (
null != select2Id ||
((select2Id = element.id
? "select2-data-" + element.id
: "select2-data-" +
(++id).toString() +
"-" +
Utils.generateChars(4)),
element.setAttribute("data-select2-id", select2Id)),
select2Id
);
}),
(Utils.StoreData = function (element, name, value) {
var id = Utils.GetUniqueElementId(element);
Utils.__cache[id] || (Utils.__cache[id] = {}),
(Utils.__cache[id][name] = value);
}),
(Utils.GetData = function (element, name) {
var id = Utils.GetUniqueElementId(element);
return name
? Utils.__cache[id] && null != Utils.__cache[id][name]
? Utils.__cache[id][name]
: $(element).data(name)
: Utils.__cache[id];
}),
(Utils.RemoveData = function (element) {
var id = Utils.GetUniqueElementId(element);
null != Utils.__cache[id] && delete Utils.__cache[id],
element.removeAttribute("data-select2-id");
}),
(Utils.copyNonInternalCssClasses = function (dest, src) {
var destinationClasses = dest
.getAttribute("class")
.trim()
.split(/\s+/);
destinationClasses = destinationClasses.filter(function (
clazz
) {
return 0 === clazz.indexOf("select2-");
});
var sourceClasses = src
.getAttribute("class")
.trim()
.split(/\s+/);
sourceClasses = sourceClasses.filter(function (clazz) {
return 0 !== clazz.indexOf("select2-");
});
var replacements = destinationClasses.concat(sourceClasses);
dest.setAttribute("class", replacements.join(" "));
}),
Utils
);
}),
S2.define(
"select2/results",
["jquery", "./utils"],
function ($, Utils) {
function Results($element, options, dataAdapter) {
(this.$element = $element),
(this.data = dataAdapter),
(this.options = options),
Results.__super__.constructor.call(this);
}
return (
Utils.Extend(Results, Utils.Observable),
(Results.prototype.render = function () {
var $results = $(
''
);
return (
this.options.get("multiple") &&
$results.attr("aria-multiselectable", "true"),
(this.$results = $results)
);
}),
(Results.prototype.clear = function () {
this.$results.empty();
}),
(Results.prototype.displayMessage = function (params) {
var escapeMarkup = this.options.get("escapeMarkup");
this.clear(), this.hideLoading();
var $message = $(
''
),
message = this.options
.get("translations")
.get(params.message);
$message.append(escapeMarkup(message(params.args))),
($message[0].className += " select2-results__message"),
this.$results.append($message);
}),
(Results.prototype.hideMessages = function () {
this.$results.find(".select2-results__message").remove();
}),
(Results.prototype.append = function (data) {
this.hideLoading();
var $options = [];
if (null != data.results && 0 !== data.results.length) {
data.results = this.sort(data.results);
for (var d = 0; d < data.results.length; d++) {
var item = data.results[d],
$option = this.option(item);
$options.push($option);
}
this.$results.append($options);
} else
0 === this.$results.children().length &&
this.trigger("results:message", { message: "noResults" });
}),
(Results.prototype.position = function ($results, $dropdown) {
$dropdown.find(".select2-results").append($results);
}),
(Results.prototype.sort = function (data) {
return this.options.get("sorter")(data);
}),
(Results.prototype.highlightFirstItem = function () {
var $options = this.$results.find(
".select2-results__option--selectable"
),
$selected = $options.filter(
".select2-results__option--selected"
);
0 < $selected.length
? $selected.first().trigger("mouseenter")
: $options.first().trigger("mouseenter"),
this.ensureHighlightVisible();
}),
(Results.prototype.setClasses = function () {
var self = this;
this.data.current(function (selected) {
var selectedIds = selected.map(function (s) {
return s.id.toString();
});
self.$results
.find(".select2-results__option--selectable")
.each(function () {
var $option = $(this),
item = Utils.GetData(this, "data"),
id = "" + item.id;
(null != item.element && item.element.selected) ||
(null == item.element && -1 < selectedIds.indexOf(id))
? (this.classList.add(
"select2-results__option--selected"
),
$option.attr("aria-selected", "true"))
: (this.classList.remove(
"select2-results__option--selected"
),
$option.attr("aria-selected", "false"));
});
});
}),
(Results.prototype.showLoading = function (params) {
this.hideLoading();
var loading = {
disabled: !0,
loading: !0,
text: this.options.get("translations").get("searching")(
params
),
},
$loading = this.option(loading);
($loading.className += " loading-results"),
this.$results.prepend($loading);
}),
(Results.prototype.hideLoading = function () {
this.$results.find(".loading-results").remove();
}),
(Results.prototype.option = function (data) {
var option = document.createElement("li");
option.classList.add("select2-results__option"),
option.classList.add("select2-results__option--selectable");
var attrs = { role: "option" },
matches =
window.Element.prototype.matches ||
window.Element.prototype.msMatchesSelector ||
window.Element.prototype.webkitMatchesSelector;
for (var attr in (((null != data.element &&
matches.call(data.element, ":disabled")) ||
(null == data.element && data.disabled)) &&
((attrs["aria-disabled"] = "true"),
option.classList.remove(
"select2-results__option--selectable"
),
option.classList.add("select2-results__option--disabled")),
null == data.id &&
option.classList.remove(
"select2-results__option--selectable"
),
null != data._resultId && (option.id = data._resultId),
data.title && (option.title = data.title),
data.children &&
((attrs.role = "group"),
(attrs["aria-label"] = data.text),
option.classList.remove(
"select2-results__option--selectable"
),
option.classList.add("select2-results__option--group")),
attrs)) {
var val = attrs[attr];
option.setAttribute(attr, val);
}
if (data.children) {
var $option = $(option),
label = document.createElement("strong");
(label.className = "select2-results__group"),
this.template(data, label);
for (
var $children = [], c = 0;
c < data.children.length;
c++
) {
var child = data.children[c],
$child = this.option(child);
$children.push($child);
}
var $childrenContainer = $("", {
class:
"select2-results__options select2-results__options--nested",
role: "none",
});
$childrenContainer.append($children),
$option.append(label),
$option.append($childrenContainer);
} else this.template(data, option);
return Utils.StoreData(option, "data", data), option;
}),
(Results.prototype.bind = function (container, $container) {
var self = this,
id = container.id + "-results";
this.$results.attr("id", id),
container.on("results:all", function (params) {
self.clear(),
self.append(params.data),
container.isOpen() &&
(self.setClasses(), self.highlightFirstItem());
}),
container.on("results:append", function (params) {
self.append(params.data),
container.isOpen() && self.setClasses();
}),
container.on("query", function (params) {
self.hideMessages(), self.showLoading(params);
}),
container.on("select", function () {
container.isOpen() &&
(self.setClasses(),
self.options.get("scrollAfterSelect") &&
self.highlightFirstItem());
}),
container.on("unselect", function () {
container.isOpen() &&
(self.setClasses(),
self.options.get("scrollAfterSelect") &&
self.highlightFirstItem());
}),
container.on("open", function () {
self.$results.attr("aria-expanded", "true"),
self.$results.attr("aria-hidden", "false"),
self.setClasses(),
self.ensureHighlightVisible();
}),
container.on("close", function () {
self.$results.attr("aria-expanded", "false"),
self.$results.attr("aria-hidden", "true"),
self.$results.removeAttr("aria-activedescendant");
}),
container.on("results:toggle", function () {
var $highlighted = self.getHighlightedResults();
0 !== $highlighted.length &&
$highlighted.trigger("mouseup");
}),
container.on("results:select", function () {
var $highlighted = self.getHighlightedResults();
if (0 !== $highlighted.length) {
var data = Utils.GetData($highlighted[0], "data");
$highlighted.hasClass(
"select2-results__option--selected"
)
? self.trigger("close", {})
: self.trigger("select", { data: data });
}
}),
container.on("results:previous", function () {
var $highlighted = self.getHighlightedResults(),
$options = self.$results.find(
".select2-results__option--selectable"
),
currentIndex = $options.index($highlighted);
if (!(currentIndex <= 0)) {
var nextIndex = currentIndex - 1;
0 === $highlighted.length && (nextIndex = 0);
var $next = $options.eq(nextIndex);
$next.trigger("mouseenter");
var currentOffset = self.$results.offset().top,
nextTop = $next.offset().top,
nextOffset =
self.$results.scrollTop() +
(nextTop - currentOffset);
0 === nextIndex
? self.$results.scrollTop(0)
: nextTop - currentOffset < 0 &&
self.$results.scrollTop(nextOffset);
}
}),
container.on("results:next", function () {
var $highlighted = self.getHighlightedResults(),
$options = self.$results.find(
".select2-results__option--selectable"
),
nextIndex = $options.index($highlighted) + 1;
if (!(nextIndex >= $options.length)) {
var $next = $options.eq(nextIndex);
$next.trigger("mouseenter");
var currentOffset =
self.$results.offset().top +
self.$results.outerHeight(!1),
nextBottom =
$next.offset().top + $next.outerHeight(!1),
nextOffset =
self.$results.scrollTop() +
nextBottom -
currentOffset;
0 === nextIndex
? self.$results.scrollTop(0)
: currentOffset < nextBottom &&
self.$results.scrollTop(nextOffset);
}
}),
container.on("results:focus", function (params) {
params.element[0].classList.add(
"select2-results__option--highlighted"
),
params.element[0].setAttribute("aria-selected", "true");
}),
container.on("results:message", function (params) {
self.displayMessage(params);
}),
$.fn.mousewheel &&
this.$results.on("mousewheel", function (e) {
var top = self.$results.scrollTop(),
bottom =
self.$results.get(0).scrollHeight - top + e.deltaY,
isAtTop = 0 < e.deltaY && top - e.deltaY <= 0,
isAtBottom =
e.deltaY < 0 && bottom <= self.$results.height();
isAtTop
? (self.$results.scrollTop(0),
e.preventDefault(),
e.stopPropagation())
: isAtBottom &&
(self.$results.scrollTop(
self.$results.get(0).scrollHeight -
self.$results.height()
),
e.preventDefault(),
e.stopPropagation());
}),
this.$results.on(
"mouseup",
".select2-results__option--selectable",
function (evt) {
var $this = $(this),
data = Utils.GetData(this, "data");
$this.hasClass("select2-results__option--selected")
? self.options.get("multiple")
? self.trigger("unselect", {
originalEvent: evt,
data: data,
})
: self.trigger("close", {})
: self.trigger("select", {
originalEvent: evt,
data: data,
});
}
),
this.$results.on(
"mouseenter",
".select2-results__option--selectable",
function (evt) {
var data = Utils.GetData(this, "data");
self
.getHighlightedResults()
.removeClass("select2-results__option--highlighted")
.attr("aria-selected", "false"),
self.trigger("results:focus", {
data: data,
element: $(this),
});
}
);
}),
(Results.prototype.getHighlightedResults = function () {
return this.$results.find(
".select2-results__option--highlighted"
);
}),
(Results.prototype.destroy = function () {
this.$results.remove();
}),
(Results.prototype.ensureHighlightVisible = function () {
var $highlighted = this.getHighlightedResults();
if (0 !== $highlighted.length) {
var currentIndex = this.$results
.find(".select2-results__option--selectable")
.index($highlighted),
currentOffset = this.$results.offset().top,
nextTop = $highlighted.offset().top,
nextOffset =
this.$results.scrollTop() + (nextTop - currentOffset),
offsetDelta = nextTop - currentOffset;
(nextOffset -= 2 * $highlighted.outerHeight(!1)),
currentIndex <= 2
? this.$results.scrollTop(0)
: (offsetDelta > this.$results.outerHeight() ||
offsetDelta < 0) &&
this.$results.scrollTop(nextOffset);
}
}),
(Results.prototype.template = function (result, container) {
var template = this.options.get("templateResult"),
escapeMarkup = this.options.get("escapeMarkup"),
content = template(result, container);
null == content
? (container.style.display = "none")
: "string" == typeof content
? (container.innerHTML = escapeMarkup(content))
: $(container).append(content);
}),
Results
);
}
),
S2.define("select2/keys", [], function () {
return {
BACKSPACE: 8,
TAB: 9,
ENTER: 13,
SHIFT: 16,
CTRL: 17,
ALT: 18,
ESC: 27,
SPACE: 32,
PAGE_UP: 33,
PAGE_DOWN: 34,
END: 35,
HOME: 36,
LEFT: 37,
UP: 38,
RIGHT: 39,
DOWN: 40,
DELETE: 46,
};
}),
S2.define(
"select2/selection/base",
["jquery", "../utils", "../keys"],
function ($, Utils, KEYS) {
function BaseSelection($element, options) {
(this.$element = $element),
(this.options = options),
BaseSelection.__super__.constructor.call(this);
}
return (
Utils.Extend(BaseSelection, Utils.Observable),
(BaseSelection.prototype.render = function () {
var $selection = $(
''
);
return (
(this._tabindex = 0),
null != Utils.GetData(this.$element[0], "old-tabindex")
? (this._tabindex = Utils.GetData(
this.$element[0],
"old-tabindex"
))
: null != this.$element.attr("tabindex") &&
(this._tabindex = this.$element.attr("tabindex")),
$selection.attr("title", this.$element.attr("title")),
$selection.attr("tabindex", this._tabindex),
$selection.attr("aria-disabled", "false"),
(this.$selection = $selection)
);
}),
(BaseSelection.prototype.bind = function (
container,
$container
) {
var self = this,
resultsId = container.id + "-results";
(this.container = container),
this.$selection.on("focus", function (evt) {
self.trigger("focus", evt);
}),
this.$selection.on("blur", function (evt) {
self._handleBlur(evt);
}),
this.$selection.on("keydown", function (evt) {
self.trigger("keypress", evt),
evt.which === KEYS.SPACE && evt.preventDefault();
}),
container.on("results:focus", function (params) {
self.$selection.attr(
"aria-activedescendant",
params.data._resultId
);
}),
container.on("selection:update", function (params) {
self.update(params.data);
}),
container.on("open", function () {
self.$selection.attr("aria-expanded", "true"),
self.$selection.attr("aria-owns", resultsId),
self._attachCloseHandler(container);
}),
container.on("close", function () {
self.$selection.attr("aria-expanded", "false"),
self.$selection.removeAttr("aria-activedescendant"),
self.$selection.removeAttr("aria-owns"),
self.$selection.trigger("focus"),
self._detachCloseHandler(container);
}),
container.on("enable", function () {
self.$selection.attr("tabindex", self._tabindex),
self.$selection.attr("aria-disabled", "false");
}),
container.on("disable", function () {
self.$selection.attr("tabindex", "-1"),
self.$selection.attr("aria-disabled", "true");
});
}),
(BaseSelection.prototype._handleBlur = function (evt) {
var self = this;
window.setTimeout(function () {
document.activeElement == self.$selection[0] ||
$.contains(self.$selection[0], document.activeElement) ||
self.trigger("blur", evt);
}, 1);
}),
(BaseSelection.prototype._attachCloseHandler = function (
container
) {
$(document.body).on(
"mousedown.select2." + container.id,
function (e) {
var $select = $(e.target).closest(".select2");
$(".select2.select2-container--open").each(function () {
this != $select[0] &&
Utils.GetData(this, "element").select2("close");
});
}
);
}),
(BaseSelection.prototype._detachCloseHandler = function (
container
) {
$(document.body).off("mousedown.select2." + container.id);
}),
(BaseSelection.prototype.position = function (
$selection,
$container
) {
$container.find(".selection").append($selection);
}),
(BaseSelection.prototype.destroy = function () {
this._detachCloseHandler(this.container);
}),
(BaseSelection.prototype.update = function (data) {
throw new Error(
"The `update` method must be defined in child classes."
);
}),
(BaseSelection.prototype.isEnabled = function () {
return !this.isDisabled();
}),
(BaseSelection.prototype.isDisabled = function () {
return this.options.get("disabled");
}),
BaseSelection
);
}
),
S2.define(
"select2/selection/single",
["jquery", "./base", "../utils", "../keys"],
function ($, BaseSelection, Utils, KEYS) {
function SingleSelection() {
SingleSelection.__super__.constructor.apply(this, arguments);
}
return (
Utils.Extend(SingleSelection, BaseSelection),
(SingleSelection.prototype.render = function () {
var $selection = SingleSelection.__super__.render.call(this);
return (
$selection[0].classList.add("select2-selection--single"),
$selection.html(
''
),
$selection
);
}),
(SingleSelection.prototype.bind = function (
container,
$container
) {
var self = this;
SingleSelection.__super__.bind.apply(this, arguments);
var id = container.id + "-container";
this.$selection
.find(".select2-selection__rendered")
.attr("id", id)
.attr("role", "textbox")
.attr("aria-readonly", "true"),
this.$selection.attr("aria-labelledby", id),
this.$selection.attr("aria-controls", id),
this.$selection.on("mousedown", function (evt) {
1 === evt.which &&
self.trigger("toggle", { originalEvent: evt });
}),
this.$selection.on("focus", function (evt) {}),
this.$selection.on("blur", function (evt) {}),
container.on("focus", function (evt) {
container.isOpen() || self.$selection.trigger("focus");
});
}),
(SingleSelection.prototype.clear = function () {
var $rendered = this.$selection.find(
".select2-selection__rendered"
);
$rendered.empty(), $rendered.removeAttr("title");
}),
(SingleSelection.prototype.display = function (
data,
container
) {
var template = this.options.get("templateSelection");
return this.options.get("escapeMarkup")(
template(data, container)
);
}),
(SingleSelection.prototype.selectionContainer = function () {
return $("");
}),
(SingleSelection.prototype.update = function (data) {
if (0 !== data.length) {
var selection = data[0],
$rendered = this.$selection.find(
".select2-selection__rendered"
),
formatted = this.display(selection, $rendered);
$rendered.empty().append(formatted);
var title = selection.title || selection.text;
title
? $rendered.attr("title", title)
: $rendered.removeAttr("title");
} else this.clear();
}),
SingleSelection
);
}
),
S2.define(
"select2/selection/multiple",
["jquery", "./base", "../utils"],
function ($, BaseSelection, Utils) {
function MultipleSelection($element, options) {
MultipleSelection.__super__.constructor.apply(this, arguments);
}
return (
Utils.Extend(MultipleSelection, BaseSelection),
(MultipleSelection.prototype.render = function () {
var $selection =
MultipleSelection.__super__.render.call(this);
return (
$selection[0].classList.add("select2-selection--multiple"),
$selection.html(
''
),
$selection
);
}),
(MultipleSelection.prototype.bind = function (
container,
$container
) {
var self = this;
MultipleSelection.__super__.bind.apply(this, arguments);
var id = container.id + "-container";
this.$selection
.find(".select2-selection__rendered")
.attr("id", id),
this.$selection.on("click", function (evt) {
self.trigger("toggle", { originalEvent: evt });
}),
this.$selection.on(
"click",
".select2-selection__choice__remove",
function (evt) {
if (!self.isDisabled()) {
var $selection = $(this).parent(),
data = Utils.GetData($selection[0], "data");
self.trigger("unselect", {
originalEvent: evt,
data: data,
});
}
}
),
this.$selection.on(
"keydown",
".select2-selection__choice__remove",
function (evt) {
self.isDisabled() || evt.stopPropagation();
}
);
}),
(MultipleSelection.prototype.clear = function () {
var $rendered = this.$selection.find(
".select2-selection__rendered"
);
$rendered.empty(), $rendered.removeAttr("title");
}),
(MultipleSelection.prototype.display = function (
data,
container
) {
var template = this.options.get("templateSelection");
return this.options.get("escapeMarkup")(
template(data, container)
);
}),
(MultipleSelection.prototype.selectionContainer = function () {
return $(
''
);
}),
(MultipleSelection.prototype.update = function (data) {
if ((this.clear(), 0 !== data.length)) {
for (
var $selections = [],
selectionIdPrefix =
this.$selection
.find(".select2-selection__rendered")
.attr("id") + "-choice-",
d = 0;
d < data.length;
d++
) {
var selection = data[d],
$selection = this.selectionContainer(),
formatted = this.display(selection, $selection),
selectionId =
selectionIdPrefix + Utils.generateChars(4) + "-";
selection.id
? (selectionId += selection.id)
: (selectionId += Utils.generateChars(4)),
$selection
.find(".select2-selection__choice__display")
.append(formatted)
.attr("id", selectionId);
var title = selection.title || selection.text;
title && $selection.attr("title", title);
var removeItem = this.options
.get("translations")
.get("removeItem"),
$remove = $selection.find(
".select2-selection__choice__remove"
);
$remove.attr("title", removeItem()),
$remove.attr("aria-label", removeItem()),
$remove.attr("aria-describedby", selectionId),
Utils.StoreData($selection[0], "data", selection),
$selections.push($selection);
}
this.$selection
.find(".select2-selection__rendered")
.append($selections);
}
}),
MultipleSelection
);
}
),
S2.define("select2/selection/placeholder", [], function () {
function Placeholder(decorated, $element, options) {
(this.placeholder = this.normalizePlaceholder(
options.get("placeholder")
)),
decorated.call(this, $element, options);
}
return (
(Placeholder.prototype.normalizePlaceholder = function (
_,
placeholder
) {
return (
"string" == typeof placeholder &&
(placeholder = { id: "", text: placeholder }),
placeholder
);
}),
(Placeholder.prototype.createPlaceholder = function (
decorated,
placeholder
) {
var $placeholder = this.selectionContainer();
$placeholder.html(this.display(placeholder)),
$placeholder[0].classList.add(
"select2-selection__placeholder"
),
$placeholder[0].classList.remove("select2-selection__choice");
var placeholderTitle =
placeholder.title || placeholder.text || $placeholder.text();
return (
this.$selection
.find(".select2-selection__rendered")
.attr("title", placeholderTitle),
$placeholder
);
}),
(Placeholder.prototype.update = function (decorated, data) {
var singlePlaceholder =
1 == data.length && data[0].id != this.placeholder.id;
if (1 < data.length || singlePlaceholder)
return decorated.call(this, data);
this.clear();
var $placeholder = this.createPlaceholder(this.placeholder);
this.$selection
.find(".select2-selection__rendered")
.append($placeholder);
}),
Placeholder
);
}),
S2.define(
"select2/selection/allowClear",
["jquery", "../keys", "../utils"],
function ($, KEYS, Utils) {
function AllowClear() {}
return (
(AllowClear.prototype.bind = function (
decorated,
container,
$container
) {
var self = this;
decorated.call(this, container, $container),
null == this.placeholder &&
this.options.get("debug") &&
window.console &&
console.error &&
console.error(
"Select2: The `allowClear` option should be used in combination with the `placeholder` option."
),
this.$selection.on(
"mousedown",
".select2-selection__clear",
function (evt) {
self._handleClear(evt);
}
),
container.on("keypress", function (evt) {
self._handleKeyboardClear(evt, container);
});
}),
(AllowClear.prototype._handleClear = function (_, evt) {
if (!this.isDisabled()) {
var $clear = this.$selection.find(
".select2-selection__clear"
);
if (0 !== $clear.length) {
evt.stopPropagation();
var data = Utils.GetData($clear[0], "data"),
previousVal = this.$element.val();
this.$element.val(this.placeholder.id);
var unselectData = { data: data };
if (
(this.trigger("clear", unselectData),
unselectData.prevented)
)
this.$element.val(previousVal);
else {
for (var d = 0; d < data.length; d++)
if (
((unselectData = { data: data[d] }),
this.trigger("unselect", unselectData),
unselectData.prevented)
)
return void this.$element.val(previousVal);
this.$element.trigger("input").trigger("change"),
this.trigger("toggle", {});
}
}
}
}),
(AllowClear.prototype._handleKeyboardClear = function (
_,
evt,
container
) {
container.isOpen() ||
(evt.which != KEYS.DELETE && evt.which != KEYS.BACKSPACE) ||
this._handleClear(evt);
}),
(AllowClear.prototype.update = function (decorated, data) {
if (
(decorated.call(this, data),
this.$selection.find(".select2-selection__clear").remove(),
this.$selection[0].classList.remove(
"select2-selection--clearable"
),
!(
0 <
this.$selection.find(".select2-selection__placeholder")
.length || 0 === data.length
))
) {
var selectionId = this.$selection
.find(".select2-selection__rendered")
.attr("id"),
removeAll = this.options
.get("translations")
.get("removeAllItems"),
$remove = $(
''
);
$remove.attr("title", removeAll()),
$remove.attr("aria-label", removeAll()),
$remove.attr("aria-describedby", selectionId),
Utils.StoreData($remove[0], "data", data),
this.$selection.prepend($remove),
this.$selection[0].classList.add(
"select2-selection--clearable"
);
}
}),
AllowClear
);
}
),
S2.define(
"select2/selection/search",
["jquery", "../utils", "../keys"],
function ($, Utils, KEYS) {
function Search(decorated, $element, options) {
decorated.call(this, $element, options);
}
return (
(Search.prototype.render = function (decorated) {
var searchLabel = this.options
.get("translations")
.get("search"),
$search = $(
''
);
(this.$searchContainer = $search),
(this.$search = $search.find("textarea")),
this.$search.prop(
"autocomplete",
this.options.get("autocomplete")
),
this.$search.attr("aria-label", searchLabel());
var $rendered = decorated.call(this);
return (
this._transferTabIndex(),
$rendered.append(this.$searchContainer),
$rendered
);
}),
(Search.prototype.bind = function (
decorated,
container,
$container
) {
var self = this,
resultsId = container.id + "-results",
selectionId = container.id + "-container";
decorated.call(this, container, $container),
self.$search.attr("aria-describedby", selectionId),
container.on("open", function () {
self.$search.attr("aria-controls", resultsId),
self.$search.trigger("focus");
}),
container.on("close", function () {
self.$search.val(""),
self.resizeSearch(),
self.$search.removeAttr("aria-controls"),
self.$search.removeAttr("aria-activedescendant"),
self.$search.trigger("focus");
}),
container.on("enable", function () {
self.$search.prop("disabled", !1),
self._transferTabIndex();
}),
container.on("disable", function () {
self.$search.prop("disabled", !0);
}),
container.on("focus", function (evt) {
self.$search.trigger("focus");
}),
container.on("results:focus", function (params) {
params.data._resultId
? self.$search.attr(
"aria-activedescendant",
params.data._resultId
)
: self.$search.removeAttr("aria-activedescendant");
}),
this.$selection.on(
"focusin",
".select2-search--inline",
function (evt) {
self.trigger("focus", evt);
}
),
this.$selection.on(
"focusout",
".select2-search--inline",
function (evt) {
self._handleBlur(evt);
}
),
this.$selection.on(
"keydown",
".select2-search--inline",
function (evt) {
if (
(evt.stopPropagation(),
self.trigger("keypress", evt),
(self._keyUpPrevented = evt.isDefaultPrevented()),
evt.which === KEYS.BACKSPACE &&
"" === self.$search.val())
) {
var $previousChoice = self.$selection
.find(".select2-selection__choice")
.last();
if (0 < $previousChoice.length) {
var item = Utils.GetData(
$previousChoice[0],
"data"
);
self.searchRemoveChoice(item), evt.preventDefault();
}
}
}
),
this.$selection.on(
"click",
".select2-search--inline",
function (evt) {
self.$search.val() && evt.stopPropagation();
}
);
var msie = document.documentMode,
disableInputEvents = msie && msie <= 11;
this.$selection.on(
"input.searchcheck",
".select2-search--inline",
function (evt) {
disableInputEvents
? self.$selection.off("input.search input.searchcheck")
: self.$selection.off("keyup.search");
}
),
this.$selection.on(
"keyup.search input.search",
".select2-search--inline",
function (evt) {
if (disableInputEvents && "input" === evt.type)
self.$selection.off("input.search input.searchcheck");
else {
var key = evt.which;
key != KEYS.SHIFT &&
key != KEYS.CTRL &&
key != KEYS.ALT &&
key != KEYS.TAB &&
self.handleSearch(evt);
}
}
);
}),
(Search.prototype._transferTabIndex = function (decorated) {
this.$search.attr(
"tabindex",
this.$selection.attr("tabindex")
),
this.$selection.attr("tabindex", "-1");
}),
(Search.prototype.createPlaceholder = function (
decorated,
placeholder
) {
this.$search.attr("placeholder", placeholder.text);
}),
(Search.prototype.update = function (decorated, data) {
var searchHadFocus =
this.$search[0] == document.activeElement;
this.$search.attr("placeholder", ""),
decorated.call(this, data),
this.resizeSearch(),
searchHadFocus && this.$search.trigger("focus");
}),
(Search.prototype.handleSearch = function () {
if ((this.resizeSearch(), !this._keyUpPrevented)) {
var input = this.$search.val();
this.trigger("query", { term: input });
}
this._keyUpPrevented = !1;
}),
(Search.prototype.searchRemoveChoice = function (
decorated,
item
) {
this.trigger("unselect", { data: item }),
this.$search.val(item.text),
this.handleSearch();
}),
(Search.prototype.resizeSearch = function () {
this.$search.css("width", "25px");
var width = "100%";
"" === this.$search.attr("placeholder") &&
(width = 0.75 * (this.$search.val().length + 1) + "em");
this.$search.css("width", width);
}),
Search
);
}
),
S2.define(
"select2/selection/selectionCss",
["../utils"],
function (Utils) {
function SelectionCSS() {}
return (
(SelectionCSS.prototype.render = function (decorated) {
var $selection = decorated.call(this),
selectionCssClass =
this.options.get("selectionCssClass") || "";
return (
-1 !== selectionCssClass.indexOf(":all:") &&
((selectionCssClass = selectionCssClass.replace(
":all:",
""
)),
Utils.copyNonInternalCssClasses(
$selection[0],
this.$element[0]
)),
$selection.addClass(selectionCssClass),
$selection
);
}),
SelectionCSS
);
}
),
S2.define("select2/selection/eventRelay", ["jquery"], function ($) {
function EventRelay() {}
return (
(EventRelay.prototype.bind = function (
decorated,
container,
$container
) {
var self = this,
relayEvents = [
"open",
"opening",
"close",
"closing",
"select",
"selecting",
"unselect",
"unselecting",
"clear",
"clearing",
],
preventableEvents = [
"opening",
"closing",
"selecting",
"unselecting",
"clearing",
];
decorated.call(this, container, $container),
container.on("*", function (name, params) {
if (-1 !== relayEvents.indexOf(name)) {
params = params || {};
var evt = $.Event("select2:" + name, { params: params });
self.$element.trigger(evt),
-1 !== preventableEvents.indexOf(name) &&
(params.prevented = evt.isDefaultPrevented());
}
});
}),
EventRelay
);
}),
S2.define(
"select2/translation",
["jquery", "require"],
function ($, require) {
function Translation(dict) {
this.dict = dict || {};
}
return (
(Translation.prototype.all = function () {
return this.dict;
}),
(Translation.prototype.get = function (key) {
return this.dict[key];
}),
(Translation.prototype.extend = function (translation) {
this.dict = $.extend({}, translation.all(), this.dict);
}),
(Translation._cache = {}),
(Translation.loadPath = function (path) {
if (!(path in Translation._cache)) {
var translations = require(path);
Translation._cache[path] = translations;
}
return new Translation(Translation._cache[path]);
}),
Translation
);
}
),
S2.define("select2/diacritics", [], function () {
return {
"Ⓐ": "A",
A: "A",
À: "A",
Á: "A",
Â: "A",
Ầ: "A",
Ấ: "A",
Ẫ: "A",
Ẩ: "A",
Ã: "A",
Ā: "A",
Ă: "A",
Ằ: "A",
Ắ: "A",
Ẵ: "A",
Ẳ: "A",
Ȧ: "A",
Ǡ: "A",
Ä: "A",
Ǟ: "A",
Ả: "A",
Å: "A",
Ǻ: "A",
Ǎ: "A",
Ȁ: "A",
Ȃ: "A",
Ạ: "A",
Ậ: "A",
Ặ: "A",
Ḁ: "A",
Ą: "A",
Ⱥ: "A",
Ɐ: "A",
Ꜳ: "AA",
Æ: "AE",
Ǽ: "AE",
Ǣ: "AE",
Ꜵ: "AO",
Ꜷ: "AU",
Ꜹ: "AV",
Ꜻ: "AV",
Ꜽ: "AY",
"Ⓑ": "B",
B: "B",
Ḃ: "B",
Ḅ: "B",
Ḇ: "B",
Ƀ: "B",
Ƃ: "B",
Ɓ: "B",
"Ⓒ": "C",
C: "C",
Ć: "C",
Ĉ: "C",
Ċ: "C",
Č: "C",
Ç: "C",
Ḉ: "C",
Ƈ: "C",
Ȼ: "C",
Ꜿ: "C",
"Ⓓ": "D",
D: "D",
Ḋ: "D",
Ď: "D",
Ḍ: "D",
Ḑ: "D",
Ḓ: "D",
Ḏ: "D",
Đ: "D",
Ƌ: "D",
Ɗ: "D",
Ɖ: "D",
Ꝺ: "D",
DZ: "DZ",
DŽ: "DZ",
Dz: "Dz",
Dž: "Dz",
"Ⓔ": "E",
E: "E",
È: "E",
É: "E",
Ê: "E",
Ề: "E",
Ế: "E",
Ễ: "E",
Ể: "E",
Ẽ: "E",
Ē: "E",
Ḕ: "E",
Ḗ: "E",
Ĕ: "E",
Ė: "E",
Ë: "E",
Ẻ: "E",
Ě: "E",
Ȅ: "E",
Ȇ: "E",
Ẹ: "E",
Ệ: "E",
Ȩ: "E",
Ḝ: "E",
Ę: "E",
Ḙ: "E",
Ḛ: "E",
Ɛ: "E",
Ǝ: "E",
"Ⓕ": "F",
F: "F",
Ḟ: "F",
Ƒ: "F",
Ꝼ: "F",
"Ⓖ": "G",
G: "G",
Ǵ: "G",
Ĝ: "G",
Ḡ: "G",
Ğ: "G",
Ġ: "G",
Ǧ: "G",
Ģ: "G",
Ǥ: "G",
Ɠ: "G",
Ꞡ: "G",
Ᵹ: "G",
Ꝿ: "G",
"Ⓗ": "H",
H: "H",
Ĥ: "H",
Ḣ: "H",
Ḧ: "H",
Ȟ: "H",
Ḥ: "H",
Ḩ: "H",
Ḫ: "H",
Ħ: "H",
Ⱨ: "H",
Ⱶ: "H",
Ɥ: "H",
"Ⓘ": "I",
I: "I",
Ì: "I",
Í: "I",
Î: "I",
Ĩ: "I",
Ī: "I",
Ĭ: "I",
İ: "I",
Ï: "I",
Ḯ: "I",
Ỉ: "I",
Ǐ: "I",
Ȉ: "I",
Ȋ: "I",
Ị: "I",
Į: "I",
Ḭ: "I",
Ɨ: "I",
"Ⓙ": "J",
J: "J",
Ĵ: "J",
Ɉ: "J",
"Ⓚ": "K",
K: "K",
Ḱ: "K",
Ǩ: "K",
Ḳ: "K",
Ķ: "K",
Ḵ: "K",
Ƙ: "K",
Ⱪ: "K",
Ꝁ: "K",
Ꝃ: "K",
Ꝅ: "K",
Ꞣ: "K",
"Ⓛ": "L",
L: "L",
Ŀ: "L",
Ĺ: "L",
Ľ: "L",
Ḷ: "L",
Ḹ: "L",
Ļ: "L",
Ḽ: "L",
Ḻ: "L",
Ł: "L",
Ƚ: "L",
Ɫ: "L",
Ⱡ: "L",
Ꝉ: "L",
Ꝇ: "L",
Ꞁ: "L",
LJ: "LJ",
Lj: "Lj",
"Ⓜ": "M",
M: "M",
Ḿ: "M",
Ṁ: "M",
Ṃ: "M",
Ɱ: "M",
Ɯ: "M",
"Ⓝ": "N",
N: "N",
Ǹ: "N",
Ń: "N",
Ñ: "N",
Ṅ: "N",
Ň: "N",
Ṇ: "N",
Ņ: "N",
Ṋ: "N",
Ṉ: "N",
Ƞ: "N",
Ɲ: "N",
Ꞑ: "N",
Ꞥ: "N",
NJ: "NJ",
Nj: "Nj",
"Ⓞ": "O",
O: "O",
Ò: "O",
Ó: "O",
Ô: "O",
Ồ: "O",
Ố: "O",
Ỗ: "O",
Ổ: "O",
Õ: "O",
Ṍ: "O",
Ȭ: "O",
Ṏ: "O",
Ō: "O",
Ṑ: "O",
Ṓ: "O",
Ŏ: "O",
Ȯ: "O",
Ȱ: "O",
Ö: "O",
Ȫ: "O",
Ỏ: "O",
Ő: "O",
Ǒ: "O",
Ȍ: "O",
Ȏ: "O",
Ơ: "O",
Ờ: "O",
Ớ: "O",
Ỡ: "O",
Ở: "O",
Ợ: "O",
Ọ: "O",
Ộ: "O",
Ǫ: "O",
Ǭ: "O",
Ø: "O",
Ǿ: "O",
Ɔ: "O",
Ɵ: "O",
Ꝋ: "O",
Ꝍ: "O",
Œ: "OE",
Ƣ: "OI",
Ꝏ: "OO",
Ȣ: "OU",
"Ⓟ": "P",
P: "P",
Ṕ: "P",
Ṗ: "P",
Ƥ: "P",
Ᵽ: "P",
Ꝑ: "P",
Ꝓ: "P",
Ꝕ: "P",
"Ⓠ": "Q",
Q: "Q",
Ꝗ: "Q",
Ꝙ: "Q",
Ɋ: "Q",
"Ⓡ": "R",
R: "R",
Ŕ: "R",
Ṙ: "R",
Ř: "R",
Ȑ: "R",
Ȓ: "R",
Ṛ: "R",
Ṝ: "R",
Ŗ: "R",
Ṟ: "R",
Ɍ: "R",
Ɽ: "R",
Ꝛ: "R",
Ꞧ: "R",
Ꞃ: "R",
"Ⓢ": "S",
S: "S",
ẞ: "S",
Ś: "S",
Ṥ: "S",
Ŝ: "S",
Ṡ: "S",
Š: "S",
Ṧ: "S",
Ṣ: "S",
Ṩ: "S",
Ș: "S",
Ş: "S",
Ȿ: "S",
Ꞩ: "S",
Ꞅ: "S",
"Ⓣ": "T",
T: "T",
Ṫ: "T",
Ť: "T",
Ṭ: "T",
Ț: "T",
Ţ: "T",
Ṱ: "T",
Ṯ: "T",
Ŧ: "T",
Ƭ: "T",
Ʈ: "T",
Ⱦ: "T",
Ꞇ: "T",
Ꜩ: "TZ",
"Ⓤ": "U",
U: "U",
Ù: "U",
Ú: "U",
Û: "U",
Ũ: "U",
Ṹ: "U",
Ū: "U",
Ṻ: "U",
Ŭ: "U",
Ü: "U",
Ǜ: "U",
Ǘ: "U",
Ǖ: "U",
Ǚ: "U",
Ủ: "U",
Ů: "U",
Ű: "U",
Ǔ: "U",
Ȕ: "U",
Ȗ: "U",
Ư: "U",
Ừ: "U",
Ứ: "U",
Ữ: "U",
Ử: "U",
Ự: "U",
Ụ: "U",
Ṳ: "U",
Ų: "U",
Ṷ: "U",
Ṵ: "U",
Ʉ: "U",
"Ⓥ": "V",
V: "V",
Ṽ: "V",
Ṿ: "V",
Ʋ: "V",
Ꝟ: "V",
Ʌ: "V",
Ꝡ: "VY",
"Ⓦ": "W",
W: "W",
Ẁ: "W",
Ẃ: "W",
Ŵ: "W",
Ẇ: "W",
Ẅ: "W",
Ẉ: "W",
Ⱳ: "W",
"Ⓧ": "X",
X: "X",
Ẋ: "X",
Ẍ: "X",
"Ⓨ": "Y",
Y: "Y",
Ỳ: "Y",
Ý: "Y",
Ŷ: "Y",
Ỹ: "Y",
Ȳ: "Y",
Ẏ: "Y",
Ÿ: "Y",
Ỷ: "Y",
Ỵ: "Y",
Ƴ: "Y",
Ɏ: "Y",
Ỿ: "Y",
"Ⓩ": "Z",
Z: "Z",
Ź: "Z",
Ẑ: "Z",
Ż: "Z",
Ž: "Z",
Ẓ: "Z",
Ẕ: "Z",
Ƶ: "Z",
Ȥ: "Z",
Ɀ: "Z",
Ⱬ: "Z",
Ꝣ: "Z",
"ⓐ": "a",
a: "a",
ẚ: "a",
à: "a",
á: "a",
â: "a",
ầ: "a",
ấ: "a",
ẫ: "a",
ẩ: "a",
ã: "a",
ā: "a",
ă: "a",
ằ: "a",
ắ: "a",
ẵ: "a",
ẳ: "a",
ȧ: "a",
ǡ: "a",
ä: "a",
ǟ: "a",
ả: "a",
å: "a",
ǻ: "a",
ǎ: "a",
ȁ: "a",
ȃ: "a",
ạ: "a",
ậ: "a",
ặ: "a",
ḁ: "a",
ą: "a",
ⱥ: "a",
ɐ: "a",
ꜳ: "aa",
æ: "ae",
ǽ: "ae",
ǣ: "ae",
ꜵ: "ao",
ꜷ: "au",
ꜹ: "av",
ꜻ: "av",
ꜽ: "ay",
"ⓑ": "b",
b: "b",
ḃ: "b",
ḅ: "b",
ḇ: "b",
ƀ: "b",
ƃ: "b",
ɓ: "b",
"ⓒ": "c",
c: "c",
ć: "c",
ĉ: "c",
ċ: "c",
č: "c",
ç: "c",
ḉ: "c",
ƈ: "c",
ȼ: "c",
ꜿ: "c",
ↄ: "c",
"ⓓ": "d",
d: "d",
ḋ: "d",
ď: "d",
ḍ: "d",
ḑ: "d",
ḓ: "d",
ḏ: "d",
đ: "d",
ƌ: "d",
ɖ: "d",
ɗ: "d",
ꝺ: "d",
dz: "dz",
dž: "dz",
"ⓔ": "e",
e: "e",
è: "e",
é: "e",
ê: "e",
ề: "e",
ế: "e",
ễ: "e",
ể: "e",
ẽ: "e",
ē: "e",
ḕ: "e",
ḗ: "e",
ĕ: "e",
ė: "e",
ë: "e",
ẻ: "e",
ě: "e",
ȅ: "e",
ȇ: "e",
ẹ: "e",
ệ: "e",
ȩ: "e",
ḝ: "e",
ę: "e",
ḙ: "e",
ḛ: "e",
ɇ: "e",
ɛ: "e",
ǝ: "e",
"ⓕ": "f",
f: "f",
ḟ: "f",
ƒ: "f",
ꝼ: "f",
"ⓖ": "g",
g: "g",
ǵ: "g",
ĝ: "g",
ḡ: "g",
ğ: "g",
ġ: "g",
ǧ: "g",
ģ: "g",
ǥ: "g",
ɠ: "g",
ꞡ: "g",
ᵹ: "g",
ꝿ: "g",
"ⓗ": "h",
h: "h",
ĥ: "h",
ḣ: "h",
ḧ: "h",
ȟ: "h",
ḥ: "h",
ḩ: "h",
ḫ: "h",
ẖ: "h",
ħ: "h",
ⱨ: "h",
ⱶ: "h",
ɥ: "h",
ƕ: "hv",
"ⓘ": "i",
i: "i",
ì: "i",
í: "i",
î: "i",
ĩ: "i",
ī: "i",
ĭ: "i",
ï: "i",
ḯ: "i",
ỉ: "i",
ǐ: "i",
ȉ: "i",
ȋ: "i",
ị: "i",
į: "i",
ḭ: "i",
ɨ: "i",
ı: "i",
"ⓙ": "j",
j: "j",
ĵ: "j",
ǰ: "j",
ɉ: "j",
"ⓚ": "k",
k: "k",
ḱ: "k",
ǩ: "k",
ḳ: "k",
ķ: "k",
ḵ: "k",
ƙ: "k",
ⱪ: "k",
ꝁ: "k",
ꝃ: "k",
ꝅ: "k",
ꞣ: "k",
"ⓛ": "l",
l: "l",
ŀ: "l",
ĺ: "l",
ľ: "l",
ḷ: "l",
ḹ: "l",
ļ: "l",
ḽ: "l",
ḻ: "l",
ſ: "l",
ł: "l",
ƚ: "l",
ɫ: "l",
ⱡ: "l",
ꝉ: "l",
ꞁ: "l",
ꝇ: "l",
lj: "lj",
"ⓜ": "m",
m: "m",
ḿ: "m",
ṁ: "m",
ṃ: "m",
ɱ: "m",
ɯ: "m",
"ⓝ": "n",
n: "n",
ǹ: "n",
ń: "n",
ñ: "n",
ṅ: "n",
ň: "n",
ṇ: "n",
ņ: "n",
ṋ: "n",
ṉ: "n",
ƞ: "n",
ɲ: "n",
ʼn: "n",
ꞑ: "n",
ꞥ: "n",
nj: "nj",
"ⓞ": "o",
o: "o",
ò: "o",
ó: "o",
ô: "o",
ồ: "o",
ố: "o",
ỗ: "o",
ổ: "o",
õ: "o",
ṍ: "o",
ȭ: "o",
ṏ: "o",
ō: "o",
ṑ: "o",
ṓ: "o",
ŏ: "o",
ȯ: "o",
ȱ: "o",
ö: "o",
ȫ: "o",
ỏ: "o",
ő: "o",
ǒ: "o",
ȍ: "o",
ȏ: "o",
ơ: "o",
ờ: "o",
ớ: "o",
ỡ: "o",
ở: "o",
ợ: "o",
ọ: "o",
ộ: "o",
ǫ: "o",
ǭ: "o",
ø: "o",
ǿ: "o",
ɔ: "o",
ꝋ: "o",
ꝍ: "o",
ɵ: "o",
œ: "oe",
ƣ: "oi",
ȣ: "ou",
ꝏ: "oo",
"ⓟ": "p",
p: "p",
ṕ: "p",
ṗ: "p",
ƥ: "p",
ᵽ: "p",
ꝑ: "p",
ꝓ: "p",
ꝕ: "p",
"ⓠ": "q",
q: "q",
ɋ: "q",
ꝗ: "q",
ꝙ: "q",
"ⓡ": "r",
r: "r",
ŕ: "r",
ṙ: "r",
ř: "r",
ȑ: "r",
ȓ: "r",
ṛ: "r",
ṝ: "r",
ŗ: "r",
ṟ: "r",
ɍ: "r",
ɽ: "r",
ꝛ: "r",
ꞧ: "r",
ꞃ: "r",
"ⓢ": "s",
s: "s",
ß: "s",
ś: "s",
ṥ: "s",
ŝ: "s",
ṡ: "s",
š: "s",
ṧ: "s",
ṣ: "s",
ṩ: "s",
ș: "s",
ş: "s",
ȿ: "s",
ꞩ: "s",
ꞅ: "s",
ẛ: "s",
"ⓣ": "t",
t: "t",
ṫ: "t",
ẗ: "t",
ť: "t",
ṭ: "t",
ț: "t",
ţ: "t",
ṱ: "t",
ṯ: "t",
ŧ: "t",
ƭ: "t",
ʈ: "t",
ⱦ: "t",
ꞇ: "t",
ꜩ: "tz",
"ⓤ": "u",
u: "u",
ù: "u",
ú: "u",
û: "u",
ũ: "u",
ṹ: "u",
ū: "u",
ṻ: "u",
ŭ: "u",
ü: "u",
ǜ: "u",
ǘ: "u",
ǖ: "u",
ǚ: "u",
ủ: "u",
ů: "u",
ű: "u",
ǔ: "u",
ȕ: "u",
ȗ: "u",
ư: "u",
ừ: "u",
ứ: "u",
ữ: "u",
ử: "u",
ự: "u",
ụ: "u",
ṳ: "u",
ų: "u",
ṷ: "u",
ṵ: "u",
ʉ: "u",
"ⓥ": "v",
v: "v",
ṽ: "v",
ṿ: "v",
ʋ: "v",
ꝟ: "v",
ʌ: "v",
ꝡ: "vy",
"ⓦ": "w",
w: "w",
ẁ: "w",
ẃ: "w",
ŵ: "w",
ẇ: "w",
ẅ: "w",
ẘ: "w",
ẉ: "w",
ⱳ: "w",
"ⓧ": "x",
x: "x",
ẋ: "x",
ẍ: "x",
"ⓨ": "y",
y: "y",
ỳ: "y",
ý: "y",
ŷ: "y",
ỹ: "y",
ȳ: "y",
ẏ: "y",
ÿ: "y",
ỷ: "y",
ẙ: "y",
ỵ: "y",
ƴ: "y",
ɏ: "y",
ỿ: "y",
"ⓩ": "z",
z: "z",
ź: "z",
ẑ: "z",
ż: "z",
ž: "z",
ẓ: "z",
ẕ: "z",
ƶ: "z",
ȥ: "z",
ɀ: "z",
ⱬ: "z",
ꝣ: "z",
Ά: "Α",
Έ: "Ε",
Ή: "Η",
Ί: "Ι",
Ϊ: "Ι",
Ό: "Ο",
Ύ: "Υ",
Ϋ: "Υ",
Ώ: "Ω",
ά: "α",
έ: "ε",
ή: "η",
ί: "ι",
ϊ: "ι",
ΐ: "ι",
ό: "ο",
ύ: "υ",
ϋ: "υ",
ΰ: "υ",
ώ: "ω",
ς: "σ",
"’": "'",
};
}),
S2.define("select2/data/base", ["../utils"], function (Utils) {
function BaseAdapter($element, options) {
BaseAdapter.__super__.constructor.call(this);
}
return (
Utils.Extend(BaseAdapter, Utils.Observable),
(BaseAdapter.prototype.current = function (callback) {
throw new Error(
"The `current` method must be defined in child classes."
);
}),
(BaseAdapter.prototype.query = function (params, callback) {
throw new Error(
"The `query` method must be defined in child classes."
);
}),
(BaseAdapter.prototype.bind = function (
container,
$container
) {}),
(BaseAdapter.prototype.destroy = function () {}),
(BaseAdapter.prototype.generateResultId = function (
container,
data
) {
var id = container.id + "-result-";
return (
(id += Utils.generateChars(4)),
null != data.id
? (id += "-" + data.id.toString())
: (id += "-" + Utils.generateChars(4)),
id
);
}),
BaseAdapter
);
}),
S2.define(
"select2/data/select",
["./base", "../utils", "jquery"],
function (BaseAdapter, Utils, $) {
function SelectAdapter($element, options) {
(this.$element = $element),
(this.options = options),
SelectAdapter.__super__.constructor.call(this);
}
return (
Utils.Extend(SelectAdapter, BaseAdapter),
(SelectAdapter.prototype.current = function (callback) {
var self = this;
callback(
Array.prototype.map.call(
this.$element[0].querySelectorAll(":checked"),
function (selectedElement) {
return self.item($(selectedElement));
}
)
);
}),
(SelectAdapter.prototype.select = function (data) {
var self = this;
if (
((data.selected = !0),
null != data.element &&
"option" === data.element.tagName.toLowerCase())
)
return (
(data.element.selected = !0),
void this.$element.trigger("input").trigger("change")
);
if (this.$element.prop("multiple"))
this.current(function (currentData) {
var val = [];
(data = [data]).push.apply(data, currentData);
for (var d = 0; d < data.length; d++) {
var id = data[d].id;
-1 === val.indexOf(id) && val.push(id);
}
self.$element.val(val),
self.$element.trigger("input").trigger("change");
});
else {
var val = data.id;
this.$element.val(val),
this.$element.trigger("input").trigger("change");
}
}),
(SelectAdapter.prototype.unselect = function (data) {
var self = this;
if (this.$element.prop("multiple")) {
if (
((data.selected = !1),
null != data.element &&
"option" === data.element.tagName.toLowerCase())
)
return (
(data.element.selected = !1),
void this.$element.trigger("input").trigger("change")
);
this.current(function (currentData) {
for (var val = [], d = 0; d < currentData.length; d++) {
var id = currentData[d].id;
id !== data.id &&
-1 === val.indexOf(id) &&
val.push(id);
}
self.$element.val(val),
self.$element.trigger("input").trigger("change");
});
}
}),
(SelectAdapter.prototype.bind = function (
container,
$container
) {
var self = this;
(this.container = container).on("select", function (params) {
self.select(params.data);
}),
container.on("unselect", function (params) {
self.unselect(params.data);
});
}),
(SelectAdapter.prototype.destroy = function () {
this.$element.find("*").each(function () {
Utils.RemoveData(this);
});
}),
(SelectAdapter.prototype.query = function (params, callback) {
var data = [],
self = this;
this.$element.children().each(function () {
if (
"option" === this.tagName.toLowerCase() ||
"optgroup" === this.tagName.toLowerCase()
) {
var $option = $(this),
option = self.item($option),
matches = self.matches(params, option);
null !== matches && data.push(matches);
}
}),
callback({ results: data });
}),
(SelectAdapter.prototype.addOptions = function ($options) {
this.$element.append($options);
}),
(SelectAdapter.prototype.option = function (data) {
var option;
data.children
? ((option = document.createElement("optgroup")).label =
data.text)
: void 0 !==
(option = document.createElement("option")).textContent
? (option.textContent = data.text)
: (option.innerText = data.text),
void 0 !== data.id && (option.value = data.id),
data.disabled && (option.disabled = !0),
data.selected && (option.selected = !0),
data.title && (option.title = data.title);
var normalizedData = this._normalizeItem(data);
return (
(normalizedData.element = option),
Utils.StoreData(option, "data", normalizedData),
$(option)
);
}),
(SelectAdapter.prototype.item = function ($option) {
var data = {};
if (null != (data = Utils.GetData($option[0], "data")))
return data;
var option = $option[0];
if ("option" === option.tagName.toLowerCase())
data = {
id: $option.val(),
text: $option.text(),
disabled: $option.prop("disabled"),
selected: $option.prop("selected"),
title: $option.prop("title"),
};
else if ("optgroup" === option.tagName.toLowerCase()) {
data = {
text: $option.prop("label"),
children: [],
title: $option.prop("title"),
};
for (
var $children = $option.children("option"),
children = [],
c = 0;
c < $children.length;
c++
) {
var $child = $($children[c]),
child = this.item($child);
children.push(child);
}
data.children = children;
}
return (
((data = this._normalizeItem(data)).element = $option[0]),
Utils.StoreData($option[0], "data", data),
data
);
}),
(SelectAdapter.prototype._normalizeItem = function (item) {
item !== Object(item) && (item = { id: item, text: item });
return (
null != (item = $.extend({}, { text: "" }, item)).id &&
(item.id = item.id.toString()),
null != item.text && (item.text = item.text.toString()),
null == item._resultId &&
item.id &&
null != this.container &&
(item._resultId = this.generateResultId(
this.container,
item
)),
$.extend({}, { selected: !1, disabled: !1 }, item)
);
}),
(SelectAdapter.prototype.matches = function (params, data) {
return this.options.get("matcher")(params, data);
}),
SelectAdapter
);
}
),
S2.define(
"select2/data/array",
["./select", "../utils", "jquery"],
function (SelectAdapter, Utils, $) {
function ArrayAdapter($element, options) {
(this._dataToConvert = options.get("data") || []),
ArrayAdapter.__super__.constructor.call(
this,
$element,
options
);
}
return (
Utils.Extend(ArrayAdapter, SelectAdapter),
(ArrayAdapter.prototype.bind = function (
container,
$container
) {
ArrayAdapter.__super__.bind.call(this, container, $container),
this.addOptions(this.convertToOptions(this._dataToConvert));
}),
(ArrayAdapter.prototype.select = function (data) {
var $option = this.$element
.find("option")
.filter(function (i, elm) {
return elm.value == data.id.toString();
});
0 === $option.length &&
(($option = this.option(data)), this.addOptions($option)),
ArrayAdapter.__super__.select.call(this, data);
}),
(ArrayAdapter.prototype.convertToOptions = function (data) {
var self = this,
$existing = this.$element.find("option"),
existingIds = $existing
.map(function () {
return self.item($(this)).id;
})
.get(),
$options = [];
function onlyItem(item) {
return function () {
return $(this).val() == item.id;
};
}
for (var d = 0; d < data.length; d++) {
var item = this._normalizeItem(data[d]);
if (0 <= existingIds.indexOf(item.id)) {
var $existingOption = $existing.filter(onlyItem(item)),
existingData = this.item($existingOption),
newData = $.extend(!0, {}, item, existingData),
$newOption = this.option(newData);
$existingOption.replaceWith($newOption);
} else {
var $option = this.option(item);
if (item.children) {
var $children = this.convertToOptions(item.children);
$option.append($children);
}
$options.push($option);
}
}
return $options;
}),
ArrayAdapter
);
}
),
S2.define(
"select2/data/ajax",
["./array", "../utils", "jquery"],
function (ArrayAdapter, Utils, $) {
function AjaxAdapter($element, options) {
(this.ajaxOptions = this._applyDefaults(options.get("ajax"))),
null != this.ajaxOptions.processResults &&
(this.processResults = this.ajaxOptions.processResults),
AjaxAdapter.__super__.constructor.call(
this,
$element,
options
);
}
return (
Utils.Extend(AjaxAdapter, ArrayAdapter),
(AjaxAdapter.prototype._applyDefaults = function (options) {
var defaults = {
data: function (params) {
return $.extend({}, params, { q: params.term });
},
transport: function (params, success, failure) {
var $request = $.ajax(params);
return (
$request.then(success), $request.fail(failure), $request
);
},
};
return $.extend({}, defaults, options, !0);
}),
(AjaxAdapter.prototype.processResults = function (results) {
return results;
}),
(AjaxAdapter.prototype.query = function (params, callback) {
var self = this;
null != this._request &&
("function" == typeof this._request.abort &&
this._request.abort(),
(this._request = null));
var options = $.extend({ type: "GET" }, this.ajaxOptions);
function request() {
var $request = options.transport(
options,
function (data) {
var results = self.processResults(data, params);
self.options.get("debug") &&
window.console &&
console.error &&
((results &&
results.results &&
Array.isArray(results.results)) ||
console.error(
"Select2: The AJAX results did not return an array in the `results` key of the response."
)),
callback(results);
},
function () {
("status" in $request &&
(0 === $request.status || "0" === $request.status)) ||
self.trigger("results:message", {
message: "errorLoading",
});
}
);
self._request = $request;
}
"function" == typeof options.url &&
(options.url = options.url.call(this.$element, params)),
"function" == typeof options.data &&
(options.data = options.data.call(this.$element, params)),
this.ajaxOptions.delay && null != params.term
? (this._queryTimeout &&
window.clearTimeout(this._queryTimeout),
(this._queryTimeout = window.setTimeout(
request,
this.ajaxOptions.delay
)))
: request();
}),
AjaxAdapter
);
}
),
S2.define("select2/data/tags", ["jquery"], function ($) {
function Tags(decorated, $element, options) {
var tags = options.get("tags"),
createTag = options.get("createTag");
void 0 !== createTag && (this.createTag = createTag);
var insertTag = options.get("insertTag");
if (
(void 0 !== insertTag && (this.insertTag = insertTag),
decorated.call(this, $element, options),
Array.isArray(tags))
)
for (var t = 0; t < tags.length; t++) {
var tag = tags[t],
item = this._normalizeItem(tag),
$option = this.option(item);
this.$element.append($option);
}
}
return (
(Tags.prototype.query = function (decorated, params, callback) {
var self = this;
this._removeOldTags(),
null != params.term && null == params.page
? decorated.call(
this,
params,
function wrapper(obj, child) {
for (
var data = obj.results, i = 0;
i < data.length;
i++
) {
var option = data[i],
checkChildren =
null != option.children &&
!wrapper({ results: option.children }, !0);
if (
(option.text || "").toUpperCase() ===
(params.term || "").toUpperCase() ||
checkChildren
)
return (
!child &&
((obj.data = data), void callback(obj))
);
}
if (child) return !0;
var tag = self.createTag(params);
if (null != tag) {
var $option = self.option(tag);
$option.attr("data-select2-tag", "true"),
self.addOptions([$option]),
self.insertTag(data, tag);
}
(obj.results = data), callback(obj);
}
)
: decorated.call(this, params, callback);
}),
(Tags.prototype.createTag = function (decorated, params) {
if (null == params.term) return null;
var term = params.term.trim();
return "" === term ? null : { id: term, text: term };
}),
(Tags.prototype.insertTag = function (_, data, tag) {
data.unshift(tag);
}),
(Tags.prototype._removeOldTags = function (_) {
this.$element
.find("option[data-select2-tag]")
.each(function () {
this.selected || $(this).remove();
});
}),
Tags
);
}),
S2.define("select2/data/tokenizer", ["jquery"], function ($) {
function Tokenizer(decorated, $element, options) {
var tokenizer = options.get("tokenizer");
void 0 !== tokenizer && (this.tokenizer = tokenizer),
decorated.call(this, $element, options);
}
return (
(Tokenizer.prototype.bind = function (
decorated,
container,
$container
) {
decorated.call(this, container, $container),
(this.$search =
container.dropdown.$search ||
container.selection.$search ||
$container.find(".select2-search__field"));
}),
(Tokenizer.prototype.query = function (
decorated,
params,
callback
) {
var self = this;
params.term = params.term || "";
var tokenData = this.tokenizer(
params,
this.options,
function (data) {
var item = self._normalizeItem(data);
if (
!self.$element.find("option").filter(function () {
return $(this).val() === item.id;
}).length
) {
var $option = self.option(item);
$option.attr("data-select2-tag", !0),
self._removeOldTags(),
self.addOptions([$option]);
}
!(function (data) {
self.trigger("select", { data: data });
})(item);
}
);
tokenData.term !== params.term &&
(this.$search.length &&
(this.$search.val(tokenData.term),
this.$search.trigger("focus")),
(params.term = tokenData.term)),
decorated.call(this, params, callback);
}),
(Tokenizer.prototype.tokenizer = function (
_,
params,
options,
callback
) {
for (
var separators = options.get("tokenSeparators") || [],
term = params.term,
i = 0,
createTag =
this.createTag ||
function (params) {
return { id: params.term, text: params.term };
};
i < term.length;
) {
var termChar = term[i];
if (-1 !== separators.indexOf(termChar)) {
var part = term.substr(0, i),
data = createTag($.extend({}, params, { term: part }));
null != data
? (callback(data),
(term = term.substr(i + 1) || ""),
(i = 0))
: i++;
} else i++;
}
return { term: term };
}),
Tokenizer
);
}),
S2.define("select2/data/minimumInputLength", [], function () {
function MinimumInputLength(decorated, $e, options) {
(this.minimumInputLength = options.get("minimumInputLength")),
decorated.call(this, $e, options);
}
return (
(MinimumInputLength.prototype.query = function (
decorated,
params,
callback
) {
(params.term = params.term || ""),
params.term.length < this.minimumInputLength
? this.trigger("results:message", {
message: "inputTooShort",
args: {
minimum: this.minimumInputLength,
input: params.term,
params: params,
},
})
: decorated.call(this, params, callback);
}),
MinimumInputLength
);
}),
S2.define("select2/data/maximumInputLength", [], function () {
function MaximumInputLength(decorated, $e, options) {
(this.maximumInputLength = options.get("maximumInputLength")),
decorated.call(this, $e, options);
}
return (
(MaximumInputLength.prototype.query = function (
decorated,
params,
callback
) {
(params.term = params.term || ""),
0 < this.maximumInputLength &&
params.term.length > this.maximumInputLength
? this.trigger("results:message", {
message: "inputTooLong",
args: {
maximum: this.maximumInputLength,
input: params.term,
params: params,
},
})
: decorated.call(this, params, callback);
}),
MaximumInputLength
);
}),
S2.define("select2/data/maximumSelectionLength", [], function () {
function MaximumSelectionLength(decorated, $e, options) {
(this.maximumSelectionLength = options.get(
"maximumSelectionLength"
)),
decorated.call(this, $e, options);
}
return (
(MaximumSelectionLength.prototype.bind = function (
decorated,
container,
$container
) {
var self = this;
decorated.call(this, container, $container),
container.on("select", function () {
self._checkIfMaximumSelected();
});
}),
(MaximumSelectionLength.prototype.query = function (
decorated,
params,
callback
) {
var self = this;
this._checkIfMaximumSelected(function () {
decorated.call(self, params, callback);
});
}),
(MaximumSelectionLength.prototype._checkIfMaximumSelected =
function (_, successCallback) {
var self = this;
this.current(function (currentData) {
var count = null != currentData ? currentData.length : 0;
0 < self.maximumSelectionLength &&
count >= self.maximumSelectionLength
? self.trigger("results:message", {
message: "maximumSelected",
args: { maximum: self.maximumSelectionLength },
})
: successCallback && successCallback();
});
}),
MaximumSelectionLength
);
}),
S2.define(
"select2/dropdown",
["jquery", "./utils"],
function ($, Utils) {
function Dropdown($element, options) {
(this.$element = $element),
(this.options = options),
Dropdown.__super__.constructor.call(this);
}
return (
Utils.Extend(Dropdown, Utils.Observable),
(Dropdown.prototype.render = function () {
var $dropdown = $(
''
);
return (
$dropdown.attr("dir", this.options.get("dir")),
(this.$dropdown = $dropdown)
);
}),
(Dropdown.prototype.bind = function () {}),
(Dropdown.prototype.position = function (
$dropdown,
$container
) {}),
(Dropdown.prototype.destroy = function () {
this.$dropdown.remove();
}),
Dropdown
);
}
),
S2.define("select2/dropdown/search", ["jquery"], function ($) {
function Search() {}
return (
(Search.prototype.render = function (decorated) {
var $rendered = decorated.call(this),
searchLabel = this.options.get("translations").get("search"),
$search = $(
''
);
return (
(this.$searchContainer = $search),
(this.$search = $search.find("input")),
this.$search.prop(
"autocomplete",
this.options.get("autocomplete")
),
this.$search.attr("aria-label", searchLabel()),
$rendered.prepend($search),
$rendered
);
}),
(Search.prototype.bind = function (
decorated,
container,
$container
) {
var self = this,
resultsId = container.id + "-results";
decorated.call(this, container, $container),
this.$search.on("keydown", function (evt) {
self.trigger("keypress", evt),
(self._keyUpPrevented = evt.isDefaultPrevented());
}),
this.$search.on("input", function (evt) {
$(this).off("keyup");
}),
this.$search.on("keyup input", function (evt) {
self.handleSearch(evt);
}),
container.on("open", function () {
self.$search.attr("tabindex", 0),
self.$search.attr("aria-controls", resultsId),
self.$search.trigger("focus"),
window.setTimeout(function () {
self.$search.trigger("focus");
}, 0);
}),
container.on("close", function () {
self.$search.attr("tabindex", -1),
self.$search.removeAttr("aria-controls"),
self.$search.removeAttr("aria-activedescendant"),
self.$search.val(""),
self.$search.trigger("blur");
}),
container.on("focus", function () {
container.isOpen() || self.$search.trigger("focus");
}),
container.on("results:all", function (params) {
(null != params.query.term && "" !== params.query.term) ||
(self.showSearch(params)
? self.$searchContainer[0].classList.remove(
"select2-search--hide"
)
: self.$searchContainer[0].classList.add(
"select2-search--hide"
));
}),
container.on("results:focus", function (params) {
params.data._resultId
? self.$search.attr(
"aria-activedescendant",
params.data._resultId
)
: self.$search.removeAttr("aria-activedescendant");
});
}),
(Search.prototype.handleSearch = function (evt) {
if (!this._keyUpPrevented) {
var input = this.$search.val();
this.trigger("query", { term: input });
}
this._keyUpPrevented = !1;
}),
(Search.prototype.showSearch = function (_, params) {
return !0;
}),
Search
);
}),
S2.define("select2/dropdown/hidePlaceholder", [], function () {
function HidePlaceholder(
decorated,
$element,
options,
dataAdapter
) {
(this.placeholder = this.normalizePlaceholder(
options.get("placeholder")
)),
decorated.call(this, $element, options, dataAdapter);
}
return (
(HidePlaceholder.prototype.append = function (decorated, data) {
(data.results = this.removePlaceholder(data.results)),
decorated.call(this, data);
}),
(HidePlaceholder.prototype.normalizePlaceholder = function (
_,
placeholder
) {
return (
"string" == typeof placeholder &&
(placeholder = { id: "", text: placeholder }),
placeholder
);
}),
(HidePlaceholder.prototype.removePlaceholder = function (
_,
data
) {
for (
var modifiedData = data.slice(0), d = data.length - 1;
0 <= d;
d--
) {
var item = data[d];
this.placeholder.id === item.id && modifiedData.splice(d, 1);
}
return modifiedData;
}),
HidePlaceholder
);
}),
S2.define(
"select2/dropdown/infiniteScroll",
["jquery"],
function ($) {
function InfiniteScroll(
decorated,
$element,
options,
dataAdapter
) {
(this.lastParams = {}),
decorated.call(this, $element, options, dataAdapter),
(this.$loadingMore = this.createLoadingMore()),
(this.loading = !1);
}
return (
(InfiniteScroll.prototype.append = function (decorated, data) {
this.$loadingMore.remove(),
(this.loading = !1),
decorated.call(this, data),
this.showLoadingMore(data) &&
(this.$results.append(this.$loadingMore),
this.loadMoreIfNeeded());
}),
(InfiniteScroll.prototype.bind = function (
decorated,
container,
$container
) {
var self = this;
decorated.call(this, container, $container),
container.on("query", function (params) {
(self.lastParams = params), (self.loading = !0);
}),
container.on("query:append", function (params) {
(self.lastParams = params), (self.loading = !0);
}),
this.$results.on(
"scroll",
this.loadMoreIfNeeded.bind(this)
);
}),
(InfiniteScroll.prototype.loadMoreIfNeeded = function () {
var isLoadMoreVisible = $.contains(
document.documentElement,
this.$loadingMore[0]
);
if (!this.loading && isLoadMoreVisible) {
var currentOffset =
this.$results.offset().top +
this.$results.outerHeight(!1);
this.$loadingMore.offset().top +
this.$loadingMore.outerHeight(!1) <=
currentOffset + 50 && this.loadMore();
}
}),
(InfiniteScroll.prototype.loadMore = function () {
this.loading = !0;
var params = $.extend({}, { page: 1 }, this.lastParams);
params.page++, this.trigger("query:append", params);
}),
(InfiniteScroll.prototype.showLoadingMore = function (_, data) {
return data.pagination && data.pagination.more;
}),
(InfiniteScroll.prototype.createLoadingMore = function () {
var $option = $(
''
),
message = this.options
.get("translations")
.get("loadingMore");
return $option.html(message(this.lastParams)), $option;
}),
InfiniteScroll
);
}
),
S2.define(
"select2/dropdown/attachBody",
["jquery", "../utils"],
function ($, Utils) {
function AttachBody(decorated, $element, options) {
(this.$dropdownParent = $(
options.get("dropdownParent") || document.body
)),
decorated.call(this, $element, options);
}
return (
(AttachBody.prototype.bind = function (
decorated,
container,
$container
) {
var self = this;
decorated.call(this, container, $container),
container.on("open", function () {
self._showDropdown(),
self._attachPositioningHandler(container),
self._bindContainerResultHandlers(container);
}),
container.on("close", function () {
self._hideDropdown(),
self._detachPositioningHandler(container);
}),
this.$dropdownContainer.on("mousedown", function (evt) {
evt.stopPropagation();
});
}),
(AttachBody.prototype.destroy = function (decorated) {
decorated.call(this), this.$dropdownContainer.remove();
}),
(AttachBody.prototype.position = function (
decorated,
$dropdown,
$container
) {
$dropdown.attr("class", $container.attr("class")),
$dropdown[0].classList.remove("select2"),
$dropdown[0].classList.add("select2-container--open"),
$dropdown.css({ position: "absolute", top: -999999 }),
(this.$container = $container);
}),
(AttachBody.prototype.render = function (decorated) {
var $container = $(""),
$dropdown = decorated.call(this);
return (
$container.append($dropdown),
(this.$dropdownContainer = $container)
);
}),
(AttachBody.prototype._hideDropdown = function (decorated) {
this.$dropdownContainer.detach();
}),
(AttachBody.prototype._bindContainerResultHandlers = function (
decorated,
container
) {
if (!this._containerResultsHandlersBound) {
var self = this;
container.on("results:all", function () {
self._positionDropdown(), self._resizeDropdown();
}),
container.on("results:append", function () {
self._positionDropdown(), self._resizeDropdown();
}),
container.on("results:message", function () {
self._positionDropdown(), self._resizeDropdown();
}),
container.on("select", function () {
self._positionDropdown(), self._resizeDropdown();
}),
container.on("unselect", function () {
self._positionDropdown(), self._resizeDropdown();
}),
(this._containerResultsHandlersBound = !0);
}
}),
(AttachBody.prototype._attachPositioningHandler = function (
decorated,
container
) {
var self = this,
scrollEvent = "scroll.select2." + container.id,
resizeEvent = "resize.select2." + container.id,
orientationEvent =
"orientationchange.select2." + container.id,
$watchers = this.$container
.parents()
.filter(Utils.hasScroll);
$watchers.each(function () {
Utils.StoreData(this, "select2-scroll-position", {
x: $(this).scrollLeft(),
y: $(this).scrollTop(),
});
}),
$watchers.on(scrollEvent, function (ev) {
var position = Utils.GetData(
this,
"select2-scroll-position"
);
$(this).scrollTop(position.y);
}),
$(window).on(
scrollEvent + " " + resizeEvent + " " + orientationEvent,
function (e) {
self._positionDropdown(), self._resizeDropdown();
}
);
}),
(AttachBody.prototype._detachPositioningHandler = function (
decorated,
container
) {
var scrollEvent = "scroll.select2." + container.id,
resizeEvent = "resize.select2." + container.id,
orientationEvent =
"orientationchange.select2." + container.id;
this.$container
.parents()
.filter(Utils.hasScroll)
.off(scrollEvent),
$(window).off(
scrollEvent + " " + resizeEvent + " " + orientationEvent
);
}),
(AttachBody.prototype._positionDropdown = function () {
var $window = $(window),
isCurrentlyAbove = this.$dropdown[0].classList.contains(
"select2-dropdown--above"
),
isCurrentlyBelow = this.$dropdown[0].classList.contains(
"select2-dropdown--below"
),
newDirection = null,
offset = this.$container.offset();
offset.bottom = offset.top + this.$container.outerHeight(!1);
var container = { height: this.$container.outerHeight(!1) };
(container.top = offset.top),
(container.bottom = offset.top + container.height);
var dropdown_height = this.$dropdown.outerHeight(!1),
viewport_top = $window.scrollTop(),
viewport_bottom = $window.scrollTop() + $window.height(),
enoughRoomAbove =
viewport_top < offset.top - dropdown_height,
enoughRoomBelow =
viewport_bottom > offset.bottom + dropdown_height,
css = { left: offset.left, top: container.bottom },
$offsetParent = this.$dropdownParent;
"static" === $offsetParent.css("position") &&
($offsetParent = $offsetParent.offsetParent());
var parentOffset = { top: 0, left: 0 };
($.contains(document.body, $offsetParent[0]) ||
$offsetParent[0].isConnected) &&
(parentOffset = $offsetParent.offset()),
(css.top -= parentOffset.top),
(css.left -= parentOffset.left),
isCurrentlyAbove ||
isCurrentlyBelow ||
(newDirection = "below"),
enoughRoomBelow || !enoughRoomAbove || isCurrentlyAbove
? !enoughRoomAbove &&
enoughRoomBelow &&
isCurrentlyAbove &&
(newDirection = "below")
: (newDirection = "above"),
("above" == newDirection ||
(isCurrentlyAbove && "below" !== newDirection)) &&
(css.top =
container.top - parentOffset.top - dropdown_height),
null != newDirection &&
(this.$dropdown[0].classList.remove(
"select2-dropdown--below"
),
this.$dropdown[0].classList.remove(
"select2-dropdown--above"
),
this.$dropdown[0].classList.add(
"select2-dropdown--" + newDirection
),
this.$container[0].classList.remove(
"select2-container--below"
),
this.$container[0].classList.remove(
"select2-container--above"
),
this.$container[0].classList.add(
"select2-container--" + newDirection
)),
this.$dropdownContainer.css(css);
}),
(AttachBody.prototype._resizeDropdown = function () {
var css = { width: this.$container.outerWidth(!1) + "px" };
this.options.get("dropdownAutoWidth") &&
((css.minWidth = css.width),
(css.position = "relative"),
(css.width = "auto")),
this.$dropdown.css(css);
}),
(AttachBody.prototype._showDropdown = function (decorated) {
this.$dropdownContainer.appendTo(this.$dropdownParent),
this._positionDropdown(),
this._resizeDropdown();
}),
AttachBody
);
}
),
S2.define(
"select2/dropdown/minimumResultsForSearch",
[],
function () {
function MinimumResultsForSearch(
decorated,
$element,
options,
dataAdapter
) {
(this.minimumResultsForSearch = options.get(
"minimumResultsForSearch"
)),
this.minimumResultsForSearch < 0 &&
(this.minimumResultsForSearch = 1 / 0),
decorated.call(this, $element, options, dataAdapter);
}
return (
(MinimumResultsForSearch.prototype.showSearch = function (
decorated,
params
) {
return (
!(
(function countResults(data) {
for (var count = 0, d = 0; d < data.length; d++) {
var item = data[d];
item.children
? (count += countResults(item.children))
: count++;
}
return count;
})(params.data.results) < this.minimumResultsForSearch
) && decorated.call(this, params)
);
}),
MinimumResultsForSearch
);
}
),
S2.define(
"select2/dropdown/selectOnClose",
["../utils"],
function (Utils) {
function SelectOnClose() {}
return (
(SelectOnClose.prototype.bind = function (
decorated,
container,
$container
) {
var self = this;
decorated.call(this, container, $container),
container.on("close", function (params) {
self._handleSelectOnClose(params);
});
}),
(SelectOnClose.prototype._handleSelectOnClose = function (
_,
params
) {
if (params && null != params.originalSelect2Event) {
var event = params.originalSelect2Event;
if ("select" === event._type || "unselect" === event._type)
return;
}
var $highlightedResults = this.getHighlightedResults();
if (!($highlightedResults.length < 1)) {
var data = Utils.GetData($highlightedResults[0], "data");
(null != data.element && data.element.selected) ||
(null == data.element && data.selected) ||
this.trigger("select", { data: data });
}
}),
SelectOnClose
);
}
),
S2.define("select2/dropdown/closeOnSelect", [], function () {
function CloseOnSelect() {}
return (
(CloseOnSelect.prototype.bind = function (
decorated,
container,
$container
) {
var self = this;
decorated.call(this, container, $container),
container.on("select", function (evt) {
self._selectTriggered(evt);
}),
container.on("unselect", function (evt) {
self._selectTriggered(evt);
});
}),
(CloseOnSelect.prototype._selectTriggered = function (_, evt) {
var originalEvent = evt.originalEvent;
(originalEvent &&
(originalEvent.ctrlKey || originalEvent.metaKey)) ||
this.trigger("close", {
originalEvent: originalEvent,
originalSelect2Event: evt,
});
}),
CloseOnSelect
);
}),
S2.define(
"select2/dropdown/dropdownCss",
["../utils"],
function (Utils) {
function DropdownCSS() {}
return (
(DropdownCSS.prototype.render = function (decorated) {
var $dropdown = decorated.call(this),
dropdownCssClass =
this.options.get("dropdownCssClass") || "";
return (
-1 !== dropdownCssClass.indexOf(":all:") &&
((dropdownCssClass = dropdownCssClass.replace(
":all:",
""
)),
Utils.copyNonInternalCssClasses(
$dropdown[0],
this.$element[0]
)),
$dropdown.addClass(dropdownCssClass),
$dropdown
);
}),
DropdownCSS
);
}
),
S2.define(
"select2/dropdown/tagsSearchHighlight",
["../utils"],
function (Utils) {
function TagsSearchHighlight() {}
return (
(TagsSearchHighlight.prototype.highlightFirstItem = function (
decorated
) {
var $options = this.$results.find(
".select2-results__option--selectable:not(.select2-results__option--selected)"
);
if (0 < $options.length) {
var $firstOption = $options.first(),
firstElement = Utils.GetData(
$firstOption[0],
"data"
).element;
if (
firstElement &&
firstElement.getAttribute &&
"true" === firstElement.getAttribute("data-select2-tag")
)
return void $firstOption.trigger("mouseenter");
}
decorated.call(this);
}),
TagsSearchHighlight
);
}
),
S2.define("select2/i18n/en", [], function () {
return {
errorLoading: function () {
return "The results could not be loaded.";
},
inputTooLong: function (args) {
var overChars = args.input.length - args.maximum,
message = "Please delete " + overChars + " character";
return 1 != overChars && (message += "s"), message;
},
inputTooShort: function (args) {
return (
"Please enter " +
(args.minimum - args.input.length) +
" or more characters"
);
},
loadingMore: function () {
return "Loading more results…";
},
maximumSelected: function (args) {
var message = "You can only select " + args.maximum + " item";
return 1 != args.maximum && (message += "s"), message;
},
noResults: function () {
return "No results found";
},
searching: function () {
return "Searching…";
},
removeAllItems: function () {
return "Remove all items";
},
removeItem: function () {
return "Remove item";
},
search: function () {
return "Search";
},
};
}),
S2.define(
"select2/defaults",
[
"jquery",
"./results",
"./selection/single",
"./selection/multiple",
"./selection/placeholder",
"./selection/allowClear",
"./selection/search",
"./selection/selectionCss",
"./selection/eventRelay",
"./utils",
"./translation",
"./diacritics",
"./data/select",
"./data/array",
"./data/ajax",
"./data/tags",
"./data/tokenizer",
"./data/minimumInputLength",
"./data/maximumInputLength",
"./data/maximumSelectionLength",
"./dropdown",
"./dropdown/search",
"./dropdown/hidePlaceholder",
"./dropdown/infiniteScroll",
"./dropdown/attachBody",
"./dropdown/minimumResultsForSearch",
"./dropdown/selectOnClose",
"./dropdown/closeOnSelect",
"./dropdown/dropdownCss",
"./dropdown/tagsSearchHighlight",
"./i18n/en",
],
function (
$,
ResultsList,
SingleSelection,
MultipleSelection,
Placeholder,
AllowClear,
SelectionSearch,
SelectionCSS,
EventRelay,
Utils,
Translation,
DIACRITICS,
SelectData,
ArrayData,
AjaxData,
Tags,
Tokenizer,
MinimumInputLength,
MaximumInputLength,
MaximumSelectionLength,
Dropdown,
DropdownSearch,
HidePlaceholder,
InfiniteScroll,
AttachBody,
MinimumResultsForSearch,
SelectOnClose,
CloseOnSelect,
DropdownCSS,
TagsSearchHighlight,
EnglishTranslation
) {
function Defaults() {
this.reset();
}
return (
(Defaults.prototype.apply = function (options) {
if (
(null ==
(options = $.extend(!0, {}, this.defaults, options))
.dataAdapter &&
(null != options.ajax
? (options.dataAdapter = AjaxData)
: null != options.data
? (options.dataAdapter = ArrayData)
: (options.dataAdapter = SelectData),
0 < options.minimumInputLength &&
(options.dataAdapter = Utils.Decorate(
options.dataAdapter,
MinimumInputLength
)),
0 < options.maximumInputLength &&
(options.dataAdapter = Utils.Decorate(
options.dataAdapter,
MaximumInputLength
)),
0 < options.maximumSelectionLength &&
(options.dataAdapter = Utils.Decorate(
options.dataAdapter,
MaximumSelectionLength
)),
options.tags &&
(options.dataAdapter = Utils.Decorate(
options.dataAdapter,
Tags
)),
(null == options.tokenSeparators &&
null == options.tokenizer) ||
(options.dataAdapter = Utils.Decorate(
options.dataAdapter,
Tokenizer
))),
null == options.resultsAdapter &&
((options.resultsAdapter = ResultsList),
null != options.ajax &&
(options.resultsAdapter = Utils.Decorate(
options.resultsAdapter,
InfiniteScroll
)),
null != options.placeholder &&
(options.resultsAdapter = Utils.Decorate(
options.resultsAdapter,
HidePlaceholder
)),
options.selectOnClose &&
(options.resultsAdapter = Utils.Decorate(
options.resultsAdapter,
SelectOnClose
)),
options.tags &&
(options.resultsAdapter = Utils.Decorate(
options.resultsAdapter,
TagsSearchHighlight
))),
null == options.dropdownAdapter)
) {
if (options.multiple) options.dropdownAdapter = Dropdown;
else {
var SearchableDropdown = Utils.Decorate(
Dropdown,
DropdownSearch
);
options.dropdownAdapter = SearchableDropdown;
}
0 !== options.minimumResultsForSearch &&
(options.dropdownAdapter = Utils.Decorate(
options.dropdownAdapter,
MinimumResultsForSearch
)),
options.closeOnSelect &&
(options.dropdownAdapter = Utils.Decorate(
options.dropdownAdapter,
CloseOnSelect
)),
null != options.dropdownCssClass &&
(options.dropdownAdapter = Utils.Decorate(
options.dropdownAdapter,
DropdownCSS
)),
(options.dropdownAdapter = Utils.Decorate(
options.dropdownAdapter,
AttachBody
));
}
null == options.selectionAdapter &&
(options.multiple
? (options.selectionAdapter = MultipleSelection)
: (options.selectionAdapter = SingleSelection),
null != options.placeholder &&
(options.selectionAdapter = Utils.Decorate(
options.selectionAdapter,
Placeholder
)),
options.allowClear &&
(options.selectionAdapter = Utils.Decorate(
options.selectionAdapter,
AllowClear
)),
options.multiple &&
(options.selectionAdapter = Utils.Decorate(
options.selectionAdapter,
SelectionSearch
)),
null != options.selectionCssClass &&
(options.selectionAdapter = Utils.Decorate(
options.selectionAdapter,
SelectionCSS
)),
(options.selectionAdapter = Utils.Decorate(
options.selectionAdapter,
EventRelay
))),
(options.language = this._resolveLanguage(
options.language
)),
options.language.push("en");
for (
var uniqueLanguages = [], l = 0;
l < options.language.length;
l++
) {
var language = options.language[l];
-1 === uniqueLanguages.indexOf(language) &&
uniqueLanguages.push(language);
}
return (
(options.language = uniqueLanguages),
(options.translations = this._processTranslations(
options.language,
options.debug
)),
options
);
}),
(Defaults.prototype.reset = function () {
function stripDiacritics(text) {
return text.replace(/[^\u0000-\u007E]/g, function (a) {
return DIACRITICS[a] || a;
});
}
this.defaults = {
amdLanguageBase: "./i18n/",
autocomplete: "off",
closeOnSelect: !0,
debug: !1,
dropdownAutoWidth: !1,
escapeMarkup: Utils.escapeMarkup,
language: {},
matcher: function matcher(params, data) {
if (null == params.term || "" === params.term.trim())
return data;
if (data.children && 0 < data.children.length) {
for (
var match = $.extend(!0, {}, data),
c = data.children.length - 1;
0 <= c;
c--
)
null == matcher(params, data.children[c]) &&
match.children.splice(c, 1);
return 0 < match.children.length
? match
: matcher(params, match);
}
var original = stripDiacritics(data.text).toUpperCase(),
term = stripDiacritics(params.term).toUpperCase();
return -1 < original.indexOf(term) ? data : null;
},
minimumInputLength: 0,
maximumInputLength: 0,
maximumSelectionLength: 0,
minimumResultsForSearch: 0,
selectOnClose: !1,
scrollAfterSelect: !1,
sorter: function (data) {
return data;
},
templateResult: function (result) {
return result.text;
},
templateSelection: function (selection) {
return selection.text;
},
theme: "default",
width: "resolve",
};
}),
(Defaults.prototype.applyFromElement = function (
options,
$element
) {
var optionLanguage = options.language,
defaultLanguage = this.defaults.language,
elementLanguage = $element.prop("lang"),
parentLanguage = $element.closest("[lang]").prop("lang"),
languages = Array.prototype.concat.call(
this._resolveLanguage(elementLanguage),
this._resolveLanguage(optionLanguage),
this._resolveLanguage(defaultLanguage),
this._resolveLanguage(parentLanguage)
);
return (options.language = languages), options;
}),
(Defaults.prototype._resolveLanguage = function (language) {
if (!language) return [];
if ($.isEmptyObject(language)) return [];
if ($.isPlainObject(language)) return [language];
var languages;
languages = Array.isArray(language) ? language : [language];
for (
var resolvedLanguages = [], l = 0;
l < languages.length;
l++
)
if (
(resolvedLanguages.push(languages[l]),
"string" == typeof languages[l] &&
0 < languages[l].indexOf("-"))
) {
var baseLanguage = languages[l].split("-")[0];
resolvedLanguages.push(baseLanguage);
}
return resolvedLanguages;
}),
(Defaults.prototype._processTranslations = function (
languages,
debug
) {
for (
var translations = new Translation(), l = 0;
l < languages.length;
l++
) {
var languageData = new Translation(),
language = languages[l];
if ("string" == typeof language)
try {
languageData = Translation.loadPath(language);
} catch (e) {
try {
(language = this.defaults.amdLanguageBase + language),
(languageData = Translation.loadPath(language));
} catch (ex) {
debug &&
window.console &&
console.warn &&
console.warn(
'Select2: The language file for "' +
language +
'" could not be automatically loaded. A fallback will be used instead.'
);
}
}
else
languageData = $.isPlainObject(language)
? new Translation(language)
: language;
translations.extend(languageData);
}
return translations;
}),
(Defaults.prototype.set = function (key, value) {
var data = {};
data[$.camelCase(key)] = value;
var convertedData = Utils._convertData(data);
$.extend(!0, this.defaults, convertedData);
}),
new Defaults()
);
}
),
S2.define(
"select2/options",
["jquery", "./defaults", "./utils"],
function ($, Defaults, Utils) {
function Options(options, $element) {
(this.options = options),
null != $element && this.fromElement($element),
null != $element &&
(this.options = Defaults.applyFromElement(
this.options,
$element
)),
(this.options = Defaults.apply(this.options));
}
return (
(Options.prototype.fromElement = function ($e) {
var excludedData = ["select2"];
null == this.options.multiple &&
(this.options.multiple = $e.prop("multiple")),
null == this.options.disabled &&
(this.options.disabled = $e.prop("disabled")),
null == this.options.autocomplete &&
$e.prop("autocomplete") &&
(this.options.autocomplete = $e.prop("autocomplete")),
null == this.options.dir &&
($e.prop("dir")
? (this.options.dir = $e.prop("dir"))
: $e.closest("[dir]").prop("dir")
? (this.options.dir = $e.closest("[dir]").prop("dir"))
: (this.options.dir = "ltr")),
$e.prop("disabled", this.options.disabled),
$e.prop("multiple", this.options.multiple),
Utils.GetData($e[0], "select2Tags") &&
(this.options.debug &&
window.console &&
console.warn &&
console.warn(
'Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'
),
Utils.StoreData(
$e[0],
"data",
Utils.GetData($e[0], "select2Tags")
),
Utils.StoreData($e[0], "tags", !0)),
Utils.GetData($e[0], "ajaxUrl") &&
(this.options.debug &&
window.console &&
console.warn &&
console.warn(
"Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."
),
$e.attr("ajax--url", Utils.GetData($e[0], "ajaxUrl")),
Utils.StoreData(
$e[0],
"ajax-Url",
Utils.GetData($e[0], "ajaxUrl")
));
var dataset = {};
function upperCaseLetter(_, letter) {
return letter.toUpperCase();
}
for (var attr = 0; attr < $e[0].attributes.length; attr++) {
var attributeName = $e[0].attributes[attr].name;
if ("data-" == attributeName.substr(0, "data-".length)) {
var dataName = attributeName.substring("data-".length),
dataValue = Utils.GetData($e[0], dataName);
dataset[dataName.replace(/-([a-z])/g, upperCaseLetter)] =
dataValue;
}
}
$.fn.jquery &&
"1." == $.fn.jquery.substr(0, 2) &&
$e[0].dataset &&
(dataset = $.extend(!0, {}, $e[0].dataset, dataset));
var data = $.extend(!0, {}, Utils.GetData($e[0]), dataset);
for (var key in (data = Utils._convertData(data)))
-1 < excludedData.indexOf(key) ||
($.isPlainObject(this.options[key])
? $.extend(this.options[key], data[key])
: (this.options[key] = data[key]));
return this;
}),
(Options.prototype.get = function (key) {
return this.options[key];
}),
(Options.prototype.set = function (key, val) {
this.options[key] = val;
}),
Options
);
}
),
S2.define(
"select2/core",
["jquery", "./options", "./utils", "./keys"],
function ($, Options, Utils, KEYS) {
var Select2 = function ($element, options) {
null != Utils.GetData($element[0], "select2") &&
Utils.GetData($element[0], "select2").destroy(),
(this.$element = $element),
(this.id = this._generateId($element)),
(options = options || {}),
(this.options = new Options(options, $element)),
Select2.__super__.constructor.call(this);
var tabindex = $element.attr("tabindex") || 0;
Utils.StoreData($element[0], "old-tabindex", tabindex),
$element.attr("tabindex", "-1");
var DataAdapter = this.options.get("dataAdapter");
this.dataAdapter = new DataAdapter($element, this.options);
var $container = this.render();
this._placeContainer($container);
var SelectionAdapter = this.options.get("selectionAdapter");
(this.selection = new SelectionAdapter($element, this.options)),
(this.$selection = this.selection.render()),
this.selection.position(this.$selection, $container);
var DropdownAdapter = this.options.get("dropdownAdapter");
(this.dropdown = new DropdownAdapter($element, this.options)),
(this.$dropdown = this.dropdown.render()),
this.dropdown.position(this.$dropdown, $container);
var ResultsAdapter = this.options.get("resultsAdapter");
(this.results = new ResultsAdapter(
$element,
this.options,
this.dataAdapter
)),
(this.$results = this.results.render()),
this.results.position(this.$results, this.$dropdown);
var self = this;
this._bindAdapters(),
this._registerDomEvents(),
this._registerDataEvents(),
this._registerSelectionEvents(),
this._registerDropdownEvents(),
this._registerResultsEvents(),
this._registerEvents(),
this.dataAdapter.current(function (initialData) {
self.trigger("selection:update", { data: initialData });
}),
$element[0].classList.add("select2-hidden-accessible"),
$element.attr("aria-hidden", "true"),
this._syncAttributes(),
Utils.StoreData($element[0], "select2", this),
$element.data("select2", this);
};
return (
Utils.Extend(Select2, Utils.Observable),
(Select2.prototype._generateId = function ($element) {
return (
"select2-" +
(null != $element.attr("id")
? $element.attr("id")
: null != $element.attr("name")
? $element.attr("name") + "-" + Utils.generateChars(2)
: Utils.generateChars(4)
).replace(/(:|\.|\[|\]|,)/g, "")
);
}),
(Select2.prototype._placeContainer = function ($container) {
$container.insertAfter(this.$element);
var width = this._resolveWidth(
this.$element,
this.options.get("width")
);
null != width && $container.css("width", width);
}),
(Select2.prototype._resolveWidth = function ($element, method) {
var WIDTH =
/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;
if ("resolve" == method) {
var styleWidth = this._resolveWidth($element, "style");
return null != styleWidth
? styleWidth
: this._resolveWidth($element, "element");
}
if ("element" == method) {
var elementWidth = $element.outerWidth(!1);
return elementWidth <= 0 ? "auto" : elementWidth + "px";
}
if ("style" != method)
return "computedstyle" != method
? method
: window.getComputedStyle($element[0]).width;
var style = $element.attr("style");
if ("string" != typeof style) return null;
for (
var attrs = style.split(";"), i = 0, l = attrs.length;
i < l;
i += 1
) {
var matches = attrs[i].replace(/\s/g, "").match(WIDTH);
if (null !== matches && 1 <= matches.length)
return matches[1];
}
return null;
}),
(Select2.prototype._bindAdapters = function () {
this.dataAdapter.bind(this, this.$container),
this.selection.bind(this, this.$container),
this.dropdown.bind(this, this.$container),
this.results.bind(this, this.$container);
}),
(Select2.prototype._registerDomEvents = function () {
var self = this;
this.$element.on("change.select2", function () {
self.dataAdapter.current(function (data) {
self.trigger("selection:update", { data: data });
});
}),
this.$element.on("focus.select2", function (evt) {
self.trigger("focus", evt);
}),
(this._syncA = Utils.bind(this._syncAttributes, this)),
(this._syncS = Utils.bind(this._syncSubtree, this)),
(this._observer = new window.MutationObserver(function (
mutations
) {
self._syncA(), self._syncS(mutations);
})),
this._observer.observe(this.$element[0], {
attributes: !0,
childList: !0,
subtree: !1,
});
}),
(Select2.prototype._registerDataEvents = function () {
var self = this;
this.dataAdapter.on("*", function (name, params) {
self.trigger(name, params);
});
}),
(Select2.prototype._registerSelectionEvents = function () {
var self = this,
nonRelayEvents = ["toggle", "focus"];
this.selection.on("toggle", function () {
self.toggleDropdown();
}),
this.selection.on("focus", function (params) {
self.focus(params);
}),
this.selection.on("*", function (name, params) {
-1 === nonRelayEvents.indexOf(name) &&
self.trigger(name, params);
});
}),
(Select2.prototype._registerDropdownEvents = function () {
var self = this;
this.dropdown.on("*", function (name, params) {
self.trigger(name, params);
});
}),
(Select2.prototype._registerResultsEvents = function () {
var self = this;
this.results.on("*", function (name, params) {
self.trigger(name, params);
});
}),
(Select2.prototype._registerEvents = function () {
var self = this;
this.on("open", function () {
self.$container[0].classList.add("select2-container--open");
}),
this.on("close", function () {
self.$container[0].classList.remove(
"select2-container--open"
);
}),
this.on("enable", function () {
self.$container[0].classList.remove(
"select2-container--disabled"
);
}),
this.on("disable", function () {
self.$container[0].classList.add(
"select2-container--disabled"
);
}),
this.on("blur", function () {
self.$container[0].classList.remove(
"select2-container--focus"
);
}),
this.on("query", function (params) {
self.isOpen() || self.trigger("open", {}),
this.dataAdapter.query(params, function (data) {
self.trigger("results:all", {
data: data,
query: params,
});
});
}),
this.on("query:append", function (params) {
this.dataAdapter.query(params, function (data) {
self.trigger("results:append", {
data: data,
query: params,
});
});
}),
this.on("keypress", function (evt) {
var key = evt.which;
self.isOpen()
? key === KEYS.ESC || (key === KEYS.UP && evt.altKey)
? (self.close(evt), evt.preventDefault())
: key === KEYS.ENTER || key === KEYS.TAB
? (self.trigger("results:select", {}),
evt.preventDefault())
: key === KEYS.SPACE && evt.ctrlKey
? (self.trigger("results:toggle", {}),
evt.preventDefault())
: key === KEYS.UP
? (self.trigger("results:previous", {}),
evt.preventDefault())
: key === KEYS.DOWN &&
(self.trigger("results:next", {}),
evt.preventDefault())
: (key === KEYS.ENTER ||
key === KEYS.SPACE ||
(key === KEYS.DOWN && evt.altKey)) &&
(self.open(), evt.preventDefault());
});
}),
(Select2.prototype._syncAttributes = function () {
this.options.set("disabled", this.$element.prop("disabled")),
this.isDisabled()
? (this.isOpen() && this.close(),
this.trigger("disable", {}))
: this.trigger("enable", {});
}),
(Select2.prototype._isChangeMutation = function (mutations) {
var self = this;
if (mutations.addedNodes && 0 < mutations.addedNodes.length)
for (var n = 0; n < mutations.addedNodes.length; n++) {
if (mutations.addedNodes[n].selected) return !0;
}
else {
if (
mutations.removedNodes &&
0 < mutations.removedNodes.length
)
return !0;
if (Array.isArray(mutations))
return mutations.some(function (mutation) {
return self._isChangeMutation(mutation);
});
}
return !1;
}),
(Select2.prototype._syncSubtree = function (mutations) {
var changed = this._isChangeMutation(mutations),
self = this;
changed &&
this.dataAdapter.current(function (currentData) {
self.trigger("selection:update", { data: currentData });
});
}),
(Select2.prototype.trigger = function (name, args) {
var actualTrigger = Select2.__super__.trigger,
preTriggerMap = {
open: "opening",
close: "closing",
select: "selecting",
unselect: "unselecting",
clear: "clearing",
};
if ((void 0 === args && (args = {}), name in preTriggerMap)) {
var preTriggerName = preTriggerMap[name],
preTriggerArgs = {
prevented: !1,
name: name,
args: args,
};
if (
(actualTrigger.call(this, preTriggerName, preTriggerArgs),
preTriggerArgs.prevented)
)
return void (args.prevented = !0);
}
actualTrigger.call(this, name, args);
}),
(Select2.prototype.toggleDropdown = function () {
this.isDisabled() ||
(this.isOpen() ? this.close() : this.open());
}),
(Select2.prototype.open = function () {
this.isOpen() ||
this.isDisabled() ||
this.trigger("query", {});
}),
(Select2.prototype.close = function (evt) {
this.isOpen() &&
this.trigger("close", { originalEvent: evt });
}),
(Select2.prototype.isEnabled = function () {
return !this.isDisabled();
}),
(Select2.prototype.isDisabled = function () {
return this.options.get("disabled");
}),
(Select2.prototype.isOpen = function () {
return this.$container[0].classList.contains(
"select2-container--open"
);
}),
(Select2.prototype.hasFocus = function () {
return this.$container[0].classList.contains(
"select2-container--focus"
);
}),
(Select2.prototype.focus = function (data) {
this.hasFocus() ||
(this.$container[0].classList.add(
"select2-container--focus"
),
this.trigger("focus", {}));
}),
(Select2.prototype.enable = function (args) {
this.options.get("debug") &&
window.console &&
console.warn &&
console.warn(
'Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'
),
(null != args && 0 !== args.length) || (args = [!0]);
var disabled = !args[0];
this.$element.prop("disabled", disabled);
}),
(Select2.prototype.data = function () {
this.options.get("debug") &&
0 < arguments.length &&
window.console &&
console.warn &&
console.warn(
'Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.'
);
var data = [];
return (
this.dataAdapter.current(function (currentData) {
data = currentData;
}),
data
);
}),
(Select2.prototype.val = function (args) {
if (
(this.options.get("debug") &&
window.console &&
console.warn &&
console.warn(
'Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'
),
null == args || 0 === args.length)
)
return this.$element.val();
var newVal = args[0];
Array.isArray(newVal) &&
(newVal = newVal.map(function (obj) {
return obj.toString();
})),
this.$element
.val(newVal)
.trigger("input")
.trigger("change");
}),
(Select2.prototype.destroy = function () {
Utils.RemoveData(this.$container[0]),
this.$container.remove(),
this._observer.disconnect(),
(this._observer = null),
(this._syncA = null),
(this._syncS = null),
this.$element.off(".select2"),
this.$element.attr(
"tabindex",
Utils.GetData(this.$element[0], "old-tabindex")
),
this.$element[0].classList.remove(
"select2-hidden-accessible"
),
this.$element.attr("aria-hidden", "false"),
Utils.RemoveData(this.$element[0]),
this.$element.removeData("select2"),
this.dataAdapter.destroy(),
this.selection.destroy(),
this.dropdown.destroy(),
this.results.destroy(),
(this.dataAdapter = null),
(this.selection = null),
(this.dropdown = null),
(this.results = null);
}),
(Select2.prototype.render = function () {
var $container = $(
''
);
return (
$container.attr("dir", this.options.get("dir")),
(this.$container = $container),
this.$container[0].classList.add(
"select2-container--" + this.options.get("theme")
),
Utils.StoreData($container[0], "element", this.$element),
$container
);
}),
Select2
);
}
),
S2.define("select2/dropdown/attachContainer", [], function () {
function AttachContainer(decorated, $element, options) {
decorated.call(this, $element, options);
}
return (
(AttachContainer.prototype.position = function (
decorated,
$dropdown,
$container
) {
$container.find(".dropdown-wrapper").append($dropdown),
$dropdown[0].classList.add("select2-dropdown--below"),
$container[0].classList.add("select2-container--below");
}),
AttachContainer
);
}),
S2.define("select2/dropdown/stopPropagation", [], function () {
function StopPropagation() {}
return (
(StopPropagation.prototype.bind = function (
decorated,
container,
$container
) {
decorated.call(this, container, $container);
this.$dropdown.on(
[
"blur",
"change",
"click",
"dblclick",
"focus",
"focusin",
"focusout",
"input",
"keydown",
"keyup",
"keypress",
"mousedown",
"mouseenter",
"mouseleave",
"mousemove",
"mouseover",
"mouseup",
"search",
"touchend",
"touchstart",
].join(" "),
function (evt) {
evt.stopPropagation();
}
);
}),
StopPropagation
);
}),
S2.define("select2/selection/stopPropagation", [], function () {
function StopPropagation() {}
return (
(StopPropagation.prototype.bind = function (
decorated,
container,
$container
) {
decorated.call(this, container, $container);
this.$selection.on(
[
"blur",
"change",
"click",
"dblclick",
"focus",
"focusin",
"focusout",
"input",
"keydown",
"keyup",
"keypress",
"mousedown",
"mouseenter",
"mouseleave",
"mousemove",
"mouseover",
"mouseup",
"search",
"touchend",
"touchstart",
].join(" "),
function (evt) {
evt.stopPropagation();
}
);
}),
StopPropagation
);
}),
(factory = function ($) {
var nullLowestDeltaTimeout,
lowestDelta,
toFix = [
"wheel",
"mousewheel",
"DOMMouseScroll",
"MozMousePixelScroll",
],
toBind =
"onwheel" in document || 9 <= document.documentMode
? ["wheel"]
: ["mousewheel", "DomMouseScroll", "MozMousePixelScroll"],
slice = Array.prototype.slice;
if ($.event.fixHooks)
for (var i = toFix.length; i; )
$.event.fixHooks[toFix[--i]] = $.event.mouseHooks;
var special = ($.event.special.mousewheel = {
version: "3.1.12",
setup: function () {
if (this.addEventListener)
for (var i = toBind.length; i; )
this.addEventListener(toBind[--i], handler, !1);
else this.onmousewheel = handler;
$.data(
this,
"mousewheel-line-height",
special.getLineHeight(this)
),
$.data(
this,
"mousewheel-page-height",
special.getPageHeight(this)
);
},
teardown: function () {
if (this.removeEventListener)
for (var i = toBind.length; i; )
this.removeEventListener(toBind[--i], handler, !1);
else this.onmousewheel = null;
$.removeData(this, "mousewheel-line-height"),
$.removeData(this, "mousewheel-page-height");
},
getLineHeight: function (elem) {
var $elem = $(elem),
$parent =
$elem["offsetParent" in $.fn ? "offsetParent" : "parent"]();
return (
$parent.length || ($parent = $("body")),
parseInt($parent.css("fontSize"), 10) ||
parseInt($elem.css("fontSize"), 10) ||
16
);
},
getPageHeight: function (elem) {
return $(elem).height();
},
settings: { adjustOldDeltas: !0, normalizeOffset: !0 },
});
function handler(event) {
var absDelta,
orgEvent = event || window.event,
args = slice.call(arguments, 1),
delta = 0,
deltaX = 0,
deltaY = 0,
offsetX = 0,
offsetY = 0;
if (
(((event = $.event.fix(orgEvent)).type = "mousewheel"),
"detail" in orgEvent && (deltaY = -1 * orgEvent.detail),
"wheelDelta" in orgEvent && (deltaY = orgEvent.wheelDelta),
"wheelDeltaY" in orgEvent && (deltaY = orgEvent.wheelDeltaY),
"wheelDeltaX" in orgEvent &&
(deltaX = -1 * orgEvent.wheelDeltaX),
"axis" in orgEvent &&
orgEvent.axis === orgEvent.HORIZONTAL_AXIS &&
((deltaX = -1 * deltaY), (deltaY = 0)),
(delta = 0 === deltaY ? deltaX : deltaY),
"deltaY" in orgEvent && (delta = deltaY = -1 * orgEvent.deltaY),
"deltaX" in orgEvent &&
((deltaX = orgEvent.deltaX),
0 === deltaY && (delta = -1 * deltaX)),
0 !== deltaY || 0 !== deltaX)
) {
if (1 === orgEvent.deltaMode) {
var lineHeight = $.data(this, "mousewheel-line-height");
(delta *= lineHeight),
(deltaY *= lineHeight),
(deltaX *= lineHeight);
} else if (2 === orgEvent.deltaMode) {
var pageHeight = $.data(this, "mousewheel-page-height");
(delta *= pageHeight),
(deltaY *= pageHeight),
(deltaX *= pageHeight);
}
if (
((absDelta = Math.max(Math.abs(deltaY), Math.abs(deltaX))),
(!lowestDelta || absDelta < lowestDelta) &&
shouldAdjustOldDeltas(orgEvent, (lowestDelta = absDelta)) &&
(lowestDelta /= 40),
shouldAdjustOldDeltas(orgEvent, absDelta) &&
((delta /= 40), (deltaX /= 40), (deltaY /= 40)),
(delta = Math[1 <= delta ? "floor" : "ceil"](
delta / lowestDelta
)),
(deltaX = Math[1 <= deltaX ? "floor" : "ceil"](
deltaX / lowestDelta
)),
(deltaY = Math[1 <= deltaY ? "floor" : "ceil"](
deltaY / lowestDelta
)),
special.settings.normalizeOffset &&
this.getBoundingClientRect)
) {
var boundingRect = this.getBoundingClientRect();
(offsetX = event.clientX - boundingRect.left),
(offsetY = event.clientY - boundingRect.top);
}
return (
(event.deltaX = deltaX),
(event.deltaY = deltaY),
(event.deltaFactor = lowestDelta),
(event.offsetX = offsetX),
(event.offsetY = offsetY),
(event.deltaMode = 0),
args.unshift(event, delta, deltaX, deltaY),
nullLowestDeltaTimeout &&
clearTimeout(nullLowestDeltaTimeout),
(nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200)),
($.event.dispatch || $.event.handle).apply(this, args)
);
}
}
function nullLowestDelta() {
lowestDelta = null;
}
function shouldAdjustOldDeltas(orgEvent, absDelta) {
return (
special.settings.adjustOldDeltas &&
"mousewheel" === orgEvent.type &&
absDelta % 120 == 0
);
}
$.fn.extend({
mousewheel: function (fn) {
return fn
? this.bind("mousewheel", fn)
: this.trigger("mousewheel");
},
unmousewheel: function (fn) {
return this.unbind("mousewheel", fn);
},
});
}),
"function" == typeof S2.define && S2.define.amd
? S2.define("jquery-mousewheel", ["jquery"], factory)
: "object" == typeof exports
? (module.exports = factory)
: factory(jQuery),
S2.define(
"jquery.select2",
[
"jquery",
"jquery-mousewheel",
"./select2/core",
"./select2/defaults",
"./select2/utils",
],
function ($, _, Select2, Defaults, Utils) {
if (null == $.fn.select2) {
var thisMethods = ["open", "close", "destroy"];
$.fn.select2 = function (options) {
if ("object" == typeof (options = options || {}))
return (
this.each(function () {
var instanceOptions = $.extend(!0, {}, options);
new Select2($(this), instanceOptions);
}),
this
);
if ("string" != typeof options)
throw new Error(
"Invalid arguments for Select2: " + options
);
var ret,
args = Array.prototype.slice.call(arguments, 1);
return (
this.each(function () {
var instance = Utils.GetData(this, "select2");
null == instance &&
window.console &&
console.error &&
console.error(
"The select2('" +
options +
"') method was called on an element that is not using Select2."
),
(ret = instance[options].apply(instance, args));
}),
-1 < thisMethods.indexOf(options) ? this : ret
);
};
}
return (
null == $.fn.select2.defaults &&
($.fn.select2.defaults = Defaults),
Select2
);
}
),
{ define: S2.define, require: S2.require }
);
})(),
select2 = S2.require("jquery.select2");
return (jQuery.fn.select2.amd = S2), select2;
}),
(function ($, window, document) {
"use strict";
function MasterCarousel(target, options) {
(this.defaultOptions = {
viewClass: "mc-view",
containerClass: "mc-view-container",
itemClass: "mc-item",
loop: !0,
space: 2,
dir: "h",
columns: 4,
navigation: "scroll",
center: !1,
speed: 12,
minSnappingSpeed: 0.51,
swipe: !0,
mouseSwipe: !0,
startItem: null,
rtl: !1,
view: "basic",
item: "basic",
disablePlugins: [],
}),
(this.$element = "Array" == typeof target ? target : $(target)),
(this.options = options),
(this.view = null),
(this.items = []),
(this.controls = []),
(this.plugins = []),
averta.EventDispatcher.call(this);
}
(MasterCarousel._plugins = []),
(MasterCarousel._views = {}),
(MasterCarousel._items = {}),
(MasterCarousel._controls = {}),
(MasterCarousel.registerPlugin = function (plugin) {
-1 === MasterCarousel._plugins.indexOf(plugin) &&
MasterCarousel._plugins.push(plugin);
}),
(MasterCarousel.registerView = function (name, view) {
MasterCarousel._views[name] || (MasterCarousel._views[name] = view);
}),
(MasterCarousel.registerControl = function (name, control) {
MasterCarousel._controls[name] ||
(MasterCarousel._controls[name] = control);
}),
(MasterCarousel.registerItem = function (name, item) {
MasterCarousel._items[name] || (MasterCarousel._items[name] = item);
});
var p = MasterCarousel.prototype;
(p.setup = function () {
if (!this._setup) {
this._setup = !0;
var self = this;
return (
$.each(MasterCarousel._plugins, function (index, plugin) {
self.plugins.push(new plugin(self));
}),
(this.options = $.extend(this.defaultOptions, this.options)),
this._callPluginsMethod("aftereSetup"),
$(document).ready(function () {
self._init();
}),
this
);
}
}),
(p.control = function (name, options) {
var controlClass = MasterCarousel._controls[name];
if (!controlClass)
return (
console.log(
'Master Carousel Warning: The "' +
name +
'" UI control is not defined.'
),
this
);
var control = new controlClass(this, options);
return this.controls.push(control), this;
}),
(p.next = function (animate, speed) {
this.view && this.view.next(animate, speed);
}),
(p.previous = function (animate, speed) {
this.view && this.view.previous(animate, speed);
}),
(p.gotoIndex = function (index, animate, speed) {
this.view && this.view.gotoItem(index, animate, speed);
}),
(p.goto = function (target, animate, speed) {
this.view && this.view.goto(target, animate, speed);
}),
(p.current = function () {
if (this.view)
return "perpage" === this.options.navigation
? this.view.page
: this.view.index + 1;
}),
(p.index = function () {
if (this.view) return this.view.index;
}),
(p.count = function () {
if (this.view)
return "perpage" === this.options.navigation
? this.view.totalPages
: this.view.itemsCount;
}),
(p.items = function () {
if (this.view) return this.view.items;
}),
(p.currentItem = function () {
if (this.view) return this.view.currentItem;
}),
(p.setOption = function (name, value) {
this.setOptions(({}[name] = value));
}),
(p.setOptions = function (options) {
$.extend(this.options, options), this._readOptions();
}),
(p.destroy = function () {
$.each(this.plugins, function (index, plugin) {
plugin.destroy();
}),
$.each(this.controls, function (index, control) {
control.destroy();
}),
(this.plugins = null),
(this.controls = null),
this.view.destroy(),
(this.view = null),
this.$element.remove(),
this.dispatchEvent(new MCEvents(MCEvents.DESTROY));
}),
(p._init = function () {
this._callPluginsMethod("beforeInit");
var op = this.options,
viewClass = MasterCarousel._views[op.view];
viewClass ||
(console.log(
'Master Carousel Error: The "' +
op.view +
'" view is not defined in carousel.'
),
(viewClass = MasterCarousel._views.basic)),
(this.view = new viewClass(op)),
this.$element
.find(">." + op.itemClass)
.each(this._addItem.bind(this)),
$.each(this.controls, function (index, control) {
(control.view = self.view),
(control.carousel = self),
control.setup();
}),
this.$element.append(this.view.$element),
this.view.init(),
this._callPluginsMethod("afterInit"),
this._readOptions(),
this.dispatchEvent(new MCEvents(MCEvents.INIT));
}),
(p._addItem = function (index, element) {
var $element = $(element),
itemType = $element.data("item-type") || this.options.item,
itemClass = MasterCarousel._items[itemType];
itemClass ||
(console.log(
'Master Carousel Error: The "' +
itemType +
'" item is not defined in carousel.'
),
(itemClass = MasterCarousel._items.basic));
var item = new itemClass($element, this.view);
(item.carousel = this).items.push(item),
this.view.appendItem(item),
item.setup();
}),
(p._readOptions = function () {
this.view._readOptions(), this._callPluginsMethod("readOptions");
}),
(p._callPluginsMethod = function (methodName, params) {
$.each(this.plugins, function (index, plugin) {
!plugin.disabled &&
plugin[methodName] &&
plugin[methodName].apply(plugin, params);
});
}),
averta.EventDispatcher.extend(p),
(window.MasterCarousel = MasterCarousel);
})(jQuery, window, document),
(function ($, window) {
"use strict";
(window.MCEvents = function (type, data) {
(this.type = type), (this.data = data);
}),
(MCEvents.CHANGE_END = "mc_changeend"),
(MCEvents.WAITING = "mc_waiting"),
(MCEvents.AUTOPLAY_PAUSE = "mc_autoplaypause"),
(MCEvents.AUTOPLAY_RESUME = "mc_autoplayresume"),
(MCEvents.INIT = "mc_init"),
(MCEvents.HEIGHT_CHANGE = "mc_height_change"),
(MCEvents.DESTROY = "mc_destroy"),
(MCEvents.SWIPE_START = "mc_swipeStart"),
(MCEvents.SWIPE_END = "mc_swipeEnd"),
(MCEvents.SWIPE_MOVE = "mc_swipeMove"),
(MCEvents.SWIPE_CANCEL = "mc_swipeCancel"),
(MCEvents.SCROLL = "mc_scroll"),
(MCEvents.OPTIONS_CHANGED = "mc_onOptionsChanged");
})(jQuery, window, document),
(function ($, window) {
"use strict";
function CarouselView(options) {
(this.options = options),
(this.$element = $("").addClass(this.options.viewClass)),
(this.$container = $("")
.addClass(this.options.containerClass)
.appendTo(this.$element)),
(this.items = []),
(this.activeItems = []),
(this.index = 0),
(this.resizeDelayTime = 1),
(this.page = 1),
(this.totalPages = 0),
(this.currentItem = null),
(this._initilized = !1),
(this._reverse = 1),
(this._css3 = window._cssanim),
(this._translatePostfix = window._css3d ? " translateZ(0px)" : ""),
(this.scroller = new SlickController(0, 0, {})),
this.scroller.snappingCallback(this._onSnappingUpdate, this),
this.scroller.snapCompleteCallback(this._onSnappingCompelet, this),
this.scroller.renderCallback(this._scroll, this),
(this.scroller.getSnapNum = this._getSnapNum.bind(this)),
(this.scroller.gotoSnap = this._gotoSnap.bind(this)),
(this.scroller._calculateExtraMove =
this._calculateExtraMove.bind(this)),
(this._spaceBuffer = 0),
averta.EventDispatcher.call(this);
}
var p = CarouselView.prototype;
(p.appendItem = function (item) {
this._setupItem(item),
this.items.push(item),
this._initilized && this._updateView();
}),
(p.prependItem = function (item) {
this._setupItem(item),
this.items.shift(item),
this._initilized && this._updateView();
}),
(p.addItemAt = function (item, index) {
this._setupItem(item),
index >= this.items.length
? this.appendItem(item)
: (this.items.splice(index, 0, item),
this._initilized && this._updateView());
}),
(p.addAfter = function (item, after) {
var index = this.items.indexOf(after);
if (-1 === index) return !1;
this.addItemAt(item, index);
}),
(p.init = function () {
this._initilized ||
((this._initilized = !0),
$(window).on("resize", this._resize.bind(this)));
}),
(p.changeOption = function (options) {
this._initilized &&
($.extend(this.options, options), this._readOptions());
}),
(p.gotoItem = function (index, animate, speed) {
var item = this.items[index];
item &&
this.scroller &&
this.scroller.changeTo(item.position, animate, speed);
}),
(p.next = function (animate, speed, bounce) {
"perpage" !== this.options.navigation
? this.options.loop
? this.gotoItem(
(this.index + 1) % this.itemsCount,
!1 !== animate,
speed || this.options.speed
)
: this.index + 1 < this.itemsCount
? this.gotoItem(
this.index + 1,
!1 !== animate,
speed || this.scroller.options.friction
)
: !1 !== bounce && this.scroller.bounce(10)
: this.scroller.nextSnap(
!1 !== animate,
speed || this.scroller.options.friction
);
}),
(p.previous = function (animate, speed, bounce) {
if ("perpage" !== this.options.navigation)
if (this.options.loop) {
var targetIndex = (this.index - 1) % this.itemsCount;
targetIndex < 0 && (targetIndex += this.itemsCount),
this.gotoItem(
targetIndex,
!1 !== animate,
speed || this.scroller.options.friction
);
} else
0 <= this.index - 1
? this.gotoItem(
this.index - 1,
!1 !== animate,
speed || this.scroller.options.friction
)
: !1 !== bounce && this.scroller.bounce(-10);
else
this.scroller.prevSnap(
!1 !== animate,
speed || this.scroller.options.friction
);
}),
(p.goto = function (target, animate, speed) {
if ("perpage" === this.options.navigation) {
var value =
this.scroller.value +
(target - this.page) * this.scroller.options.snapsize;
this._gotoSnap(this._getSnapNum(value), !1 !== animate, speed);
} else this.gotoItem(target - 1, !1 !== animate, speed);
}),
(p.destroy = function () {
for (var i = 0; i !== this.itemsCount; i++) this.items[i].destroy();
this.$container.remove(),
this.$element.remove(),
this.scroller.destroy(),
(this.swipeController = null),
(this.items = null),
(this.currentItem = null),
(this.options = null),
$(window).off("resize", this._resize);
}),
(p._resize = function (update) {
var self = this;
(self.width = self.$element.width()),
(self.height = self.$element.height()),
(self.oneColumnSize = self[self._dimension] / self.options.columns),
clearTimeout(self._resizeDelay),
!1 !== update &&
(self._resizeDelay = setTimeout(function () {
self._updateView(), self.gotoItem(self.index);
}, this.resizeDelayTime)),
this.dispatchEvent(new MCEvents(MCEvents.RESIZE));
}),
(p._readOptions = function () {
var op = this.options;
"h" === op.dir
? ((this._dimension = "width"),
(this._offset = "left"),
(this._transAxis = "translateX"))
: ((this._dimension = "height"),
(this._offset = "top"),
(this._transAxis = "translateY")),
this._resize(!1);
var so = this.scroller.options;
"scroll" === op.navigation
? ((so.paging = !1), (so.snapping = !1))
: ((so.snapping = !0),
(so.paging = "snapping" !== op.navigation),
"perpage" === op.navigation &&
(so.snapsize = this[this._dimension] + this.options.space)),
(so.endless = op.loop),
(so.friction = (100 - 0.5 * op.speed) / 100),
(so.snappingMinSpeed = op.minSnappingSpeed),
op.swipe && (window._touch || op.mouseSwipe)
? (this.swipeController
? this.swipeController.enable()
: ((this.swipeController = new averta.TouchSwipe(
this.$element
)),
(this.swipeController.onSwipe = this._swipeMove.bind(this))),
"h" === op.dir
? ((this.swipeController.swipeType = "horizontal"),
(this._swipeMoveDir = "moveX"),
(this._swipeMoveDistance = "distanceX"),
(this._scrollTransitin = ""))
: ((this.swipeController.swipeType = "vertical"),
(this._swipeMoveDir = "moveY"),
(this._swipeMoveDistance = "distanceY")))
: this.swipeController && this.swipeController.disable(),
(this._balancingItems = Math.floor(op.columns / 2)),
op.rtl && ((this._offset = "right"), (this._reverse = -1)),
this._firstInit || this._resetItems(),
this._updateView(),
this._initilized && this._reset(),
(this.totalPages = Math.ceil(this.itemsCount / op.columns)),
this.gotoItem(op.startItem - 1),
this._findActiveItems(),
this.scroller.cancel(),
(this._firstInit = !1);
}),
(p._resetItems = function () {
for (var item, i = 0, l = this.items.length; i !== l; i++)
((item = this.items[i]).position = 0),
item.$element.attr("style", "");
}),
(p._setupItem = function (item) {
(item.view = this),
(item.$container = this.$container),
(item.size = 0),
(item.position = 0),
item.sleep();
}),
(p._updateView = function () {
var item,
l = this.items.length,
before = 0,
op = this.options,
space = op.space,
middle = 0;
(this.itemsCount = l),
this.currentItem || (this.currentItem = this.items[0]),
"perpage" === op.navigation &&
(this.scroller.options.snapsize = this[this._dimension] + op.space),
op.loop &&
(middle = Math.ceil(l / 2) + this.index + this._balancingItems);
for (var i = 0; i !== l; i++)
((item = this.items[(i + middle) % l]).position = before),
(item.size =
(this[this._dimension] - space * (op.columns - 1)) *
(item.merge / op.columns) +
space * (item.merge - 1)),
(before += item.size + space);
if (!this.currentItem) {
return
}
var middlePosition = this.currentItem.position;
for (
op.loop ||
((this.scroller._max_value =
before - space - this[this._dimension]),
(middlePosition = 0),
(this._spaceBuffer = 0),
op.center &&
(this.scroller._max_value =
before - this[this._dimension] / 2 + this.items[0].size)),
i = 0;
i !== l;
i++
)
((item = this.items[i]).position =
this._spaceBuffer + item.position - middlePosition),
(item.$element[0].style[this._offset] = item.position + "px"),
(item.$element[0].style[this._dimension] = item.size + "px");
}),
(p._getShortestPath = function (targetIndex) {
var right =
targetIndex < this.index
? this.itemsCount - this.index + targetIndex
: targetIndex - this.index,
left = Math.abs(this.itemsCount - right);
return right < left ? right : -left;
}),
(p._reset = function () {
this._spaceBuffer = 0;
if (!this.currentItem) return
var diff = this.scroller.value - this.currentItem.position;
this._updateView(),
this.scroller.changeTo(
this.currentItem.position + diff,
!1,
null,
null,
!1
);
}),
(p._findActiveItems = function () {
var item;
this.activeItems = [];
for (var i = 0; i !== this.itemsCount; i++)
(item = this.items[i]).position <
this.scroller.value + this[this._dimension] &&
item.position + item.size > this.scroller.value
? (item.active(), this.activeItems.push(item))
: item.inactive();
for (i = 0; i !== this.itemsCount; i++) this.items[i].inactive(i);
for (i = 0; i !== this.activeItems.length; i++)
this.activeItems[i].active(i);
}),
(p._onSnappingCompelet = function (snap, type) {
this.options.loop && this._reset(),
this.dispatchEvent(new MCEvents(MCEvents.CHANGE_END));
}),
(p._onSnappingUpdate = function (scroller, snap, change) {}),
(p._scroll = function (scroller, value) {
var op = this.options,
loop = op.loop,
currentItemIndex = this._findItemIndexAtValue(value, !0),
steps = this._getShortestPath(currentItemIndex);
if (
0 !== steps &&
((this.index = currentItemIndex),
(this.currentItem = this.items[this.index]),
(this.page = Math.floor(this.index / this.options.columns) + 1),
loop)
) {
for (
var i = 0,
l = Math.min(Math.abs(steps), Math.floor(this.itemsCount / 2));
i < l;
i++
)
if (0 < steps) {
var index = this.index - i - 1;
index < 0 && (index = this.itemsCount + index),
(this._spaceBuffer +=
this.items[index].size + this.options.space);
} else
this._spaceBuffer -=
this.items[(this.index + i) % this.itemsCount].size +
this.options.space;
this._updateView();
}
op.center &&
(value -= (this[this._dimension] - this.items[0].size) / 2),
this._css3
? (this.$container[0].style[window._jcsspfx + "Transform"] =
this._transAxis +
"(" +
-value * this._reverse +
"px)" +
this._translatePostfix)
: (this.$container[0].style[this._offset] = -value + "px"),
this._findActiveItems(),
this.dispatchEvent(new MCEvents(MCEvents.SCROLL));
}),
(p._findItemIndexAtValue = function (value, fromMiddle) {
for (var item, size, i = 0, l = this.itemsCount; i !== l; i++)
if (
((item = this.items[i]),
(size = fromMiddle ? this.oneColumnSize / 2 : 0),
item.position - size <= value &&
item.position + item.size + this.options.space - size > value)
)
return i;
return this.index;
}),
(p._getSnapNum = function (value) {
var op = this.options;
return "perpage" === op.navigation || "scroll" === op.navigation
? Math.floor(
(value + this.scroller.options.snapsize / 2) /
this.scroller.options.snapsize
)
: this._findItemIndexAtValue(value, !0);
}),
(p._gotoSnap = function (snapNum, animate, speed) {
var scroller = this.scroller,
op = this.options;
if ("perpage" === op.navigation || "scroll" === op.navigation)
scroller.changeTo(
snapNum * scroller.options.snapsize,
animate,
speed,
snapNum
);
else {
var loop = this.options.loop,
count = this.itemsCount;
snapNum < 0
? (snapNum = loop ? count + snapNum : 0)
: !loop && count <= snapNum && (snapNum = count - 1),
scroller.changeTo(
this.items[snapNum % this.itemsCount] && this.items[snapNum % this.itemsCount].position,
animate,
speed,
snapNum
);
}
}),
(p._calculateExtraMove = function (value) {
var snapsize,
m,
op = this.options;
this.scroller;
if ("perpage" === op.navigation || "scroll" === op.navigation)
m = value % (snapsize = scroller.options.snapsize);
else {
op.loop &&
(value = this.currentItem.position + value - this._spaceBuffer);
var item = this.items[this._findItemIndexAtValue(value, !0)];
(snapsize = item.size + op.space),
(m = this._spaceBuffer + value - item.position);
}
return m < snapsize / 2 ? -m : snapsize - m;
}),
(p._swipeMove = function (status) {
var phase = status.phase;
if ("start" === phase)
this.scroller.stop(),
this.dispatchEvent(new MCEvents(MCEvents.SWIPE_START, status));
else if ("move" === phase)
this.scroller.drag(status[this._swipeMoveDir] * this._reverse),
this.dispatchEvent(new MCEvents(MCEvents.SWIPE_MOVE, status));
else if ("end" === phase || "cancel" === phase) {
var speed =
((status[this._swipeMoveDistance] / status.duration) * 50) / 3;
0.1 < Math.abs(speed)
? (this.scroller.push(-speed * this._reverse),
speed > this.scroller.options.snappingMinSpeed &&
this.dispatchEvent(new MCEvents(MCEvents.SWIPE_END, status)))
: (this.scroller.cancel(),
this.dispatchEvent(new MCEvents(MCEvents.SWIPE_CANCEL, status)));
}
}),
averta.EventDispatcher.extend(p),
MasterCarousel.registerView("basic", CarouselView);
})(jQuery, window, document),
(function () {
"use strict";
function item($element, view) {
(this.$element = $element),
(this.view = view),
(this.merge = $element.data("merge") || 1);
}
var p = item.prototype;
(p.sleep = function () {
this.detached || (this.$element.detach(), (this.detached = !0));
}),
(p.wakeup = function () {
this.detached &&
(this.view.$container.append(this.$element), (this.detached = !1));
}),
(p.setup = function () {
this.view.$container.append(this.$element);
}),
(p.active = function (counter) {
this.$element.addClass("mc-item-active"),
counter && this.$element.addClass("mc-item-active" + counter);
}),
(p.inactive = function (counter) {
this.$element.removeClass("mc-item-active"),
counter && this.$element.removeClass("mc-item-active" + counter);
}),
(p.destroy = function () {
(this.view = null), this.$element.remove();
}),
MasterCarousel.registerItem("basic", item);
})(jQuery, window, document),
(function () {
"use strict";
function inViewController(carousel) {
(this.carousel = carousel),
(this.carousel.defaultOptions.inView = 10),
(this.carousel.defaultOptions.inViewMargin = 30);
}
var p = inViewController.prototype;
(p.readOptions = function () {
(this.disabled =
this.carousel.view.itemsCount <= this.carousel.options.inView),
this.disabled
? (this._reset(),
this.carousel.view.removeEventListener(
MCEvents.SCROLL,
this._onScroll,
this
))
: (this.carousel.view.addEventListener(
MCEvents.SCROLL,
this._onScroll,
this
),
this._onScroll());
}),
(p.destroy = function () {
this.carousel.view &&
this.carousel.view.removeEventListener(
MCEvents.SCROLL,
this._onScroll,
this
),
(this.carousel = null);
}),
(p._onScroll = function () {
for (
var item,
view = this.carousel.view,
items = view.items,
scrollerVal = view.scroller.value,
viewSize = view[view._dimension],
margin = (viewSize * this.carousel.options.inViewMargin) / 100,
i = 0;
i !== view.itemsCount;
i++
)
(item = items[i]).position + item.size >= scrollerVal - margin &&
item.position < viewSize + margin + scrollerVal
? item.wakeup()
: item.sleep();
}),
(p._reset = function () {
for (var view = this.carousel.view, i = 0; i !== view.itemsCount; i++)
view.items[i].wakeup();
}),
MasterCarousel.registerPlugin(inViewController);
})(jQuery, window, document),
(function ($) {
"use strict";
function Autoplay(carousel) {
(this.carousel = carousel),
$.extend(this.carousel.defaultOptions, {
autoplay: !1,
pauseOnHover: !0,
autoplayDelay: 2,
}),
(this.timer = new averta.Timer(100)),
(this.timer.onTimer = this._onTimer),
((this.timer.refrence = this)._delayProgress = 0),
(this._id = pluginId++),
(this.carousel.pause = function () {
this.options.autoplay &&
(this.setOptions({ autoplay: !1 }),
this.carousel.dispatchEvent(new MCEvents(MCEvents.AUTOPLAY_PAUSE)));
}),
(this.carousel.resume = function () {
this.options.autoplay ||
(this.setOptions({ autoplay: !0 }),
this.carousel.dispatchEvent(
new MCEvents(MCEvents.AUTOPLAY_RESUME)
));
}),
(this.carousel.getTimeProgress = function () {
return this._delayProgress;
});
}
var pluginId = 0,
p = Autoplay.prototype;
(p.afterInit = function () {
this.view = this.carousel.view;
}),
(p.readOptions = function () {
var op = this.carousel.options,
self = this;
op.autoplay
? (this.view.addEventListener(
MCEvents.SWIPE_START,
this._stopTimer,
this
),
this.view.addEventListener(
MCEvents.CHANGE_END,
this._onChangeEnd,
this
),
this._startTimer(),
op.pauseOnHover
? this.carousel.$element
.on("mouseenter.mc-timer-" + this._id, function () {
(self._mouseIsOver = !0), self._stopTimer();
})
.on("mouseleave.mc-timer-" + this._id, function () {
(self._mouseIsOver = !1), op.autoplay && self._startTimer();
})
: this.carousel.$element.off(
"mouseenter.mc-timer-" + this._id,
"mouseleave.mc-timer-" + this._id
))
: (this.view.removeEventListener(
MCEvents.SWIPE_START,
this._stopTimer,
this
),
this.view.removeEventListener(
MCEvents.CHANGE_END,
this._onChangeEnd,
this
),
this.carousel.$element.off(
"mouseenter.mc-timer-" + this._id,
"mouseleave.mc-timer-" + this._id
),
this._resetTimer(),
this._stopTimer()),
(this._delayProgress = 0);
}),
(p.destroy = function () {
this.view.removeEventListener(
MCEvents.SWIPE_START,
this._stopTimer,
this
),
this.view.removeEventListener(
MCEvents.CHANGE_END,
this._onChangeEnd,
this
),
this.carousel.$element.off(
"mouseenter.mc-timer-" + this._id,
"mouseleave.mc-timer-" + this._id
),
this._resetTimer(),
this._stopTimer(),
(this.view = null),
(this.carousel = null);
}),
(p._onChangeEnd = function () {
this.carousel.options.autoplay && this._startTimer();
}),
(p._startTimer = function () {
var op = this.carousel.options;
!this._mouseIsOver &&
(op.loop || this.view.index + op.columns < this.view.itemsCount) &&
this.timer.start();
}),
(p._stopTimer = function () {
this.timer.stop();
}),
(p._onTimer = function () {
var time = this.timer.getTime();
(this._delayProgress =
time / (10 * this.carousel.options.autoplayDelay)),
time >= 1e3 * this.carousel.options.autoplayDelay &&
(this.carousel.next(), this._resetTimer()),
this.carousel.dispatchEvent(new MCEvents(MCEvents.WAITING));
}),
(p._resetTimer = function () {
this.timer.reset(), (this._delayProgress = 0);
}),
MasterCarousel.registerPlugin(Autoplay);
})(jQuery, window, document),
(function ($, window) {
"use strict";
function BetterResponsive(carousel) {
(this.carousel = carousel),
(this.$window = $(window)),
(this._activePos = 0),
$.extend(this.carousel.defaultOptions, { autoWidth: !1 });
}
var p = BetterResponsive.prototype;
(p.afterInit = function () {
this.view = this.carousel.view;
}),
(p.readOptions = function () {
if (this._internalChange) this._internalChange = !1;
else {
var op = this.carousel.options;
(this._copyOptions = $.extend({}, op)),
op.autoWidth
? this.$window.off("resize", this._onResize)
: op.responsive &&
(this.$window.on("resize", this._onResize.bind(this)),
this._onResize());
}
}),
(p.destroy = function () {
this.$window.off("resize", this._onResize),
(this.view = null),
(this.carousel = null),
(this.$window = null);
}),
(p._onResize = function () {
var pos,
respOptions,
lastPos,
op = this.carousel.options,
size = this.$window[this.view._dimension]();
for (var key in op.responsive)
size <= (pos = Number(key)) &&
(!lastPos || pos < lastPos) &&
((respOptions = op.responsive[key]), (lastPos = pos));
respOptions && this._activePos !== lastPos
? ((this._internalChange = !0),
(this._activePos = lastPos),
this.carousel.setOptions(
$.extend({}, this._copyOptions, respOptions)
))
: !respOptions &&
this._activePos &&
((this._internalChange = !0),
this.carousel.setOptions(this._copyOptions),
(this._activePos = null));
}),
MasterCarousel.registerPlugin(BetterResponsive);
})(jQuery, window, document),
(function ($) {
"use strict";
function Preloader(carousel) {
(this.carousel = carousel),
$.extend(this.carousel.defaultOptions, {
preload: !1,
prealoadAttr: "data-src",
insertPreloadClass: !0,
});
}
var p = Preloader.prototype;
(p.readOptions = function () {
this.carousel.options.preload
? (this.carousel.options.insertPreloadClass &&
this.carousel.$element
.find("." + this.carousel.options.itemClass)
.addClass("mc-preloading"),
this.carousel.view.addEventListener(
MCEvents.SCROLL,
this._onScroll,
this
),
this._onScroll())
: this.carousel.view.removeEventListener(
MCEvents.SCROLL,
this._onScroll,
this
);
}),
(p.destroy = function () {
this.carousel.view &&
this.carousel.view.removeEventListener(
MCEvents.SCROLL,
this._onScroll,
this
),
(this.carousel = null);
}),
(p._onScroll = function () {
for (
var item,
actives = this.carousel.view.activeItems,
i = 0,
l = actives.length;
i !== l;
i++
)
(item = actives[i]).preloading || this._startPreloadItem(item);
}),
(p._startPreloadItem = function (item) {
item.preloading = !0;
var attr = this.carousel.options.prealoadAttr,
imgs = item.$element.find("img[" + attr + "]"),
preloadCount = imgs.length;
0 !== preloadCount
? imgs.each(function (index) {
var $this = $(this);
$this
.preloadImg($this.attr(attr), function (event) {
0 === --preloadCount &&
item.$element.removeClass("mc-preloading");
})
.removeAttr(attr);
})
: item.$element.removeClass("mc-preloading");
}),
MasterCarousel.registerPlugin(Preloader);
})(jQuery, window, document),
(function ($, window) {
"use strict";
function HeightController(carousel) {
(this.carousel = carousel),
(this.carousel.defaultOptions.autoHeight = !1),
(this.carousel.defaultOptions.emptyHeight = 450),
(this._maxHeight = 0);
}
var p = HeightController.prototype;
(p.afterInit = function () {
for (
var items = this.carousel.view.items, i = 0, l = items.length;
i !== l;
i++
)
items[i].$element.find("img").on("load", this._updateHeight.bind(this));
$(window).on("resize", this._updateHeight.bind(this)),
this._updateHeight({ type: "resize" });
}),
(p.readOptions = function () {
(this.autoHeight = this.carousel.options.autoHeight),
this.autoHeight
? (this.carousel.view.addEventListener(
MCEvents.SCROLL,
this._updateHeight,
this
),
(this._maxHeight = 0),
this._updateHeight())
: this.carousel.view.removeEventListener(
MCEvents.SCROLL,
this._updateHeight,
this
);
}),
(p.destroy = function () {
this.carousel.view &&
this.carousel.view.removeEventListener(
MCEvents.SCROLL,
this._updateHeight,
this
);
for (
var items = this.carousel.view.items, i = 0, l = items.length;
i !== l;
i++
)
items[i].$element.find("img").off("load");
$(window).off("resize", this._updateHeight), (this.carousel = null);
}),
(p._updateHeight = function (e) {
clearTimeout(this._resizeTo),
e &&
"resize" === e.type &&
(this._resizeTo = setTimeout(this._updateHeight.bind(this), 150));
for (
var items = this.carousel.options.autoHeight
? this.carousel.view.activeItems
: this.carousel.view.items,
oldHeight = this._maxHeight,
i = (this._maxHeight = 0),
l = items.length;
i !== l;
i++
)
this._maxHeight = Math.max(
items[i].$element.height(),
this._maxHeight
);
0 === this._maxHeight &&
(this._maxHeight = this.carousel.options.emptyHeight),
(this.carousel.$element[0].style.height = this._maxHeight + "px"),
oldHeight !== this._maxHeight &&
this.carousel.dispatchEvent(new MCEvents(MCEvents.HEIGHT_CHANGE));
}),
MasterCarousel.registerPlugin(HeightController);
})(jQuery, window, document),
(function () {
"use strict";
function disableLinksOnSwipe(carousel) {
(this.carousel = carousel),
(this.carousel.defaultOptions.disableLinksOnSwipe = !0),
(this.carousel.defaultOptions.disableBubbling = !0),
(this.carousel.defaultOptions.disableOnLiveEvents = !1);
}
var p = disableLinksOnSwipe.prototype;
(p.readOptions = function () {
var op = this.carousel.options;
op.disableLinksOnSwipe
? (this.carousel.view.addEventListener(
MCEvents.SWIPE_START,
this._swipeIntraction,
this
),
this.carousel.view.addEventListener(
MCEvents.SWIPE_MOVE,
this._swipeIntraction,
this
),
this.carousel.view.addEventListener(
MCEvents.SWIPE_CANCEL,
this._swipeIntraction,
this
),
this.carousel.view.addEventListener(
MCEvents.SWIPE_END,
this._swipeIntraction,
this
),
op.disableOnLiveEvents
? this.carousel.$element.on(
"click",
"a",
this._checkLink.bind(this)
)
: this.carousel.$element
.find("a")
.on("click", this._checkLink.bind(this)))
: (this.carousel.view.removeEventListener(
MCEvents.SWIPE_START,
this._swipeIntraction,
this
),
this.carousel.view.removeEventListener(
MCEvents.SWIPE_MOVE,
this._swipeIntraction,
this
),
this.carousel.view.removeEventListener(
MCEvents.SWIPE_CANCEL,
this._swipeIntraction,
this
),
this.carousel.view.removeEventListener(
MCEvents.SWIPE_END,
this._swipeIntraction,
this
),
op.disableOnLiveEvents
? this.carousel.$element.off(
"click",
"a",
this._checkLink.bind(this)
)
: this.carousel.$element
.find("a")
.off("click", this._checkLink.bind(this)));
}),
(p.destroy = function () {
this.carousel.view &&
(this.carousel.view.removeEventListener(
MCEvents.SWIPE_START,
this._swipeIntraction,
this
),
this.carousel.view.removeEventListener(
MCEvents.SWIPE_MOVE,
this._swipeIntraction,
this
),
this.carousel.view.removeEventListener(
MCEvents.SWIPE_CANCEL,
this._swipeIntraction,
this
),
this.carousel.view.removeEventListener(
MCEvents.SWIPE_END,
this._swipeIntraction,
this
)),
this.carousel.$element.off("click", "a", this._checkLink.bind(this)),
(this.carousel = null);
}),
(p._swipeIntraction = function (e) {
clearTimeout(this._to),
e.type === MCEvents.SWIPE_START
? ((this._linksAreDisabled = !0), (this._hadMove = !1))
: e.type === MCEvents.SWIPE_MOVE
? (this._hadMove = !0)
: this._hadMove
? ((this._hadMove = !1),
(this._to = setTimeout(
function () {
this._linksAreDisabled = !1;
}.bind(this),
5
)))
: (this._linksAreDisabled = !1);
}),
(p._checkLink = function (e) {
this._linksAreDisabled &&
(this.carousel.options.disableBubbling &&
e.stopImmediatePropagation(),
e.preventDefault());
}),
MasterCarousel.registerPlugin(disableLinksOnSwipe);
})(jQuery, window, document),
(function ($, window) {
"use strict";
function autoScrollController(carousel) {
(this.carousel = carousel),
(this.carousel.defaultOptions.autoScroll = !1),
(this.carousel.defaultOptions.autoScrollSpeed = 1);
}
var p = autoScrollController.prototype;
(p.readOptions = function () {
(this._scroll = this._scroll.bind(this)),
$.extend(this.carousel, {
startAutoScroll: function () {
this._stop &&
((this._stop = !1),
this.carousel.view.addEventListener(
MCEvents.SWIPE_START,
this._onSwipe,
this
),
this.carousel.view.addEventListener(
MCEvents.CHANGE_END,
this._onSwipe,
this
),
this.carousel.view.addEventListener(
MCEvents.SWIPE_END,
this._onSwipe,
this
),
this.carousel.view.addEventListener(
MCEvents.SWIPE_CANCEL,
this._onSwipe,
this
),
this._scroll());
}.bind(this),
stopAutoScroll: function () {
this._stop ||
((this._stop = !0),
this.carousel.view.removeEventListener(
MCEvents.SWIPE_START,
this._onSwipe,
this
),
this.carousel.view.removeEventListener(
MCEvents.CHANGE_END,
this._onSwipe,
this
),
this.carousel.view.removeEventListener(
MCEvents.SWIPE_END,
this._onSwipe,
this
),
this.carousel.view.removeEventListener(
MCEvents.SWIPE_CANCEL,
this._onSwipe,
this
));
}.bind(this),
}),
this.carousel.options.autoScroll
? this.carousel.startAutoScroll()
: this.carousel.stopAutoScroll();
}),
(p.destroy = function () {
this.carousel.view &&
(this.carousel.view.removeEventListener(
MCEvents.SWIPE_START,
this._onSwipe,
this
),
this.carousel.view.removeEventListener(
MCEvents.SWIPE_END,
this._onSwipe,
this
),
this.carousel.view.removeEventListener(
MCEvents.SWIPE_CANCEL,
this._onSwipe,
this
),
this.carousel.view.removeEventListener(
MCEvents.CHANGE_END,
this._onSwipe,
this
)),
(this.carousel = null);
}),
(p._onSwipe = function (event) {
var oldState = this._stop;
(this._stop = event.type === MCEvents.SWIPE_START),
this._stop || this._stop === oldState || this._scroll();
}),
(p._scroll = function () {
this._stop || window.requestAnimationFrame(this._scroll),
this.carousel.view.scroller.drag(
-this.carousel.options.autoScrollSpeed
);
}),
MasterCarousel.registerPlugin(autoScrollController);
})(jQuery, window, document),
(function ($, window) {
if (window.MasterMenuPlugin && window.CTween) {
var p = MasterMenuPlugin.prototype,
superInit = p.init;
(p.init = function () {
superInit.apply(this, arguments),
!1 !== this.settings.toggleAnimation &&
(this.$element.on("typeChanged", this._checkForToggle.bind(this)),
(this.settings.toggleAnimationDuration =
this.settings.toggleAnimationDuration || 600),
this._checkForToggle());
}),
(p._checkForToggle = function () {
"toggle" === this.type || "accordion" === this.type
? (this.$element.on("beforeOpen", this._openAnimate.bind(this)),
this.$element.on("beforeClose", this._closeAnimate.bind(this)))
: (this.$element.off("beforeOpen beforeClose"),
this.$element.find(".aux-submenu").css("height", ""));
}),
(p._openAnimate = function (e) {
var $submenu = e.item.find(">.aux-submenu").eq(0),
lastTween = $submenu.data("tween");
(subHeight = 0),
$submenu.find(">*").each(function (index, item) {
subHeight += $(item).outerHeight();
}),
lastTween && lastTween.stop(!0),
(lastTween = CTween.animate(
$submenu,
this.settings.toggleAnimationDuration,
{ height: subHeight + "px" },
{
ease: "easeInOutQuart",
complete: function () {
$submenu.css("height", "auto");
},
}
)),
$submenu.data("tween", lastTween);
}),
(p._closeAnimate = function (e) {
var $submenus = e.item.find(">.aux-submenu"),
lastTween = $submenus.data("tween"),
self = this;
lastTween && lastTween.stop(!0),
$submenus.each(function (index, submenu) {
var subHeight = 0;
$(submenu)
.find(">*")
.each(function (index, item) {
subHeight = $(item).outerHeight();
}),
0 !== $(submenu).height() &&
($(submenu).height(subHeight),
(lastTween = CTween.animate(
$(submenu),
self.settings.toggleAnimationDuration,
{ height: "0" },
{
ease: "easeInOutQuart",
complete: function () {
$(submenu).find(".aux-submenu").css("height", "");
},
}
)),
$(submenu).data("tween", lastTween));
});
});
}
})(jQuery, window, document),
(function () {
"use strict";
if ("undefined" != typeof window) {
var t = window.navigator.userAgent.match(/Edge\/(\d{2})\./),
e = !!t && 16 <= parseInt(t[1], 10);
if ("objectFit" in document.documentElement.style != 0 && !e)
return (window.objectFitPolyfill = function () {
return !1;
});
var o = function (t, e, i) {
var n, o, l, a, d;
if (((i = i.split(" ")).length < 2 && (i[1] = i[0]), "x" === t))
(n = i[0]),
(o = i[1]),
(l = "left"),
(a = "right"),
(d = e.clientWidth);
else {
if ("y" !== t) return;
(n = i[1]),
(o = i[0]),
(l = "top"),
(a = "bottom"),
(d = e.clientHeight);
}
return n === l || o === l
? void (e.style[l] = "0")
: n === a || o === a
? void (e.style[a] = "0")
: "center" === n || "50%" === n
? ((e.style[l] = "50%"),
void (e.style["margin-" + l] = d / -2 + "px"))
: 0 <= n.indexOf("%")
? void ((n = parseInt(n)) < 50
? ((e.style[l] = n + "%"),
(e.style["margin-" + l] = d * (n / -100) + "px"))
: ((n = 100 - n),
(e.style[a] = n + "%"),
(e.style["margin-" + a] = d * (n / -100) + "px")))
: void (e.style[l] = n);
},
l = function (t) {
var e = t.dataset
? t.dataset.objectFit
: t.getAttribute("data-object-fit"),
l = t.dataset
? t.dataset.objectPosition
: t.getAttribute("data-object-position");
(e = e || "cover"), (l = l || "50% 50%");
var a = t.parentNode;
(function (t) {
var e = window.getComputedStyle(t, null),
i = e.getPropertyValue("position"),
n = e.getPropertyValue("overflow"),
o = e.getPropertyValue("display");
(i && "static" !== i) || (t.style.position = "relative"),
"hidden" !== n && (t.style.overflow = "hidden"),
(o && "inline" !== o) || (t.style.display = "block"),
0 === t.clientHeight && (t.style.height = "100%"),
-1 === t.className.indexOf("object-fit-polyfill") &&
(t.className = t.className + " object-fit-polyfill");
})(a),
(function (t) {
var e = window.getComputedStyle(t, null),
i = {
"max-width": "none",
"max-height": "none",
"min-width": "0px",
"min-height": "0px",
top: "auto",
right: "auto",
bottom: "auto",
left: "auto",
"margin-top": "0px",
"margin-right": "0px",
"margin-bottom": "0px",
"margin-left": "0px",
};
for (var n in i)
e.getPropertyValue(n) !== i[n] && (t.style[n] = i[n]);
})(t),
(t.style.position = "absolute"),
(t.style.height = "100%"),
(t.style.width = "auto"),
"scale-down" === e &&
((t.style.height = "auto"),
t.clientWidth < a.clientWidth && t.clientHeight < a.clientHeight
? (o("x", t, l), o("y", t, l))
: ((e = "contain"), (t.style.height = "100%"))),
"none" === e
? ((t.style.width = "auto"),
(t.style.height = "auto"),
o("x", t, l),
o("y", t, l))
: ("cover" === e && t.clientWidth > a.clientWidth) ||
("contain" === e && t.clientWidth < a.clientWidth)
? ((t.style.top = "0"), (t.style.marginTop = "0"), o("x", t, l))
: "scale-down" !== e &&
((t.style.width = "100%"),
(t.style.height = "auto"),
(t.style.left = "0"),
(t.style.marginLeft = "0"),
o("y", t, l));
},
a = function (t) {
if (void 0 === t) t = document.querySelectorAll("[data-object-fit]");
else if (t && t.nodeName) t = [t];
else {
if ("object" != typeof t || !t.length || !t[0].nodeName) return !1;
t = t;
}
for (var i = 0; i < t.length; i++)
if (t[i].nodeName) {
var n = t[i].nodeName.toLowerCase();
"img" !== n || e
? "video" === n &&
(0 < t[i].readyState
? l(t[i])
: t[i].addEventListener("loadedmetadata", function () {
l(this);
}))
: t[i].complete
? l(t[i])
: t[i].addEventListener("load", function () {
l(this);
});
}
return !0;
};
document.addEventListener("DOMContentLoaded", function () {
a();
}),
window.addEventListener("resize", function () {
a();
}),
(window.objectFitPolyfill = a);
}
})(),
(function () {
var supportCustomEvent = window.CustomEvent;
function createsStackingContext(el) {
for (; el && el !== document.body; ) {
function invalid(k, ok) {
return !(void 0 === s[k] || s[k] === ok);
}
var s = window.getComputedStyle(el);
if (
s.opacity < 1 ||
invalid("zIndex", "auto") ||
invalid("transform", "none") ||
invalid("mixBlendMode", "normal") ||
invalid("filter", "none") ||
invalid("perspective", "none") ||
"isolate" === s.isolation ||
"fixed" === s.position ||
"touch" === s.webkitOverflowScrolling
)
return !0;
el = el.parentElement;
}
return !1;
}
function findNearestDialog(el) {
for (; el; ) {
if ("dialog" === el.localName) return el;
el = el.parentElement;
}
return null;
}
function safeBlur(el) {
el && el.blur && el !== document.body && el.blur();
}
function inNodeList(nodeList, node) {
for (var i = 0; i < nodeList.length; ++i)
if (nodeList[i] === node) return !0;
return !1;
}
function isFormMethodDialog(el) {
return (
!(!el || !el.hasAttribute("method")) &&
"dialog" === el.getAttribute("method").toLowerCase()
);
}
function dialogPolyfillInfo(dialog) {
if (
((this.dialog_ = dialog),
(this.replacedStyleTop_ = !1),
(this.openAsModal_ = !1),
dialog.hasAttribute("role") || dialog.setAttribute("role", "dialog"),
(dialog.show = this.show.bind(this)),
(dialog.showModal = this.showModal.bind(this)),
(dialog.close = this.close.bind(this)),
"returnValue" in dialog || (dialog.returnValue = ""),
"MutationObserver" in window)
) {
new MutationObserver(this.maybeHideModal.bind(this)).observe(dialog, {
attributes: !0,
attributeFilter: ["open"],
});
} else {
function delayModel(ev) {
if (ev.target === dialog) {
var cand = "DOMNodeRemoved";
(removed |= ev.type.substr(0, cand.length) === cand),
window.clearTimeout(timeout),
(timeout = window.setTimeout(cb, 0));
}
}
var timeout,
removed = !1,
cb = function () {
removed ? this.downgradeModal() : this.maybeHideModal(),
(removed = !1);
}.bind(this);
[
"DOMAttrModified",
"DOMNodeRemoved",
"DOMNodeRemovedFromDocument",
].forEach(function (name) {
dialog.addEventListener(name, delayModel);
});
}
Object.defineProperty(dialog, "open", {
set: this.setOpen.bind(this),
get: dialog.hasAttribute.bind(dialog, "open"),
}),
(this.backdrop_ = document.createElement("div")),
(this.backdrop_.className = "backdrop"),
this.backdrop_.addEventListener(
"click",
this.backdropClick_.bind(this)
);
}
(supportCustomEvent && "object" != typeof supportCustomEvent) ||
((supportCustomEvent = function (event, x) {
x = x || {};
var ev = document.createEvent("CustomEvent");
return (
ev.initCustomEvent(
event,
!!x.bubbles,
!!x.cancelable,
x.detail || null
),
ev
);
}).prototype = window.Event.prototype),
(dialogPolyfillInfo.prototype = {
get dialog() {
return this.dialog_;
},
maybeHideModal: function () {
(this.dialog_.hasAttribute("open") &&
document.body.contains(this.dialog_)) ||
this.downgradeModal();
},
downgradeModal: function () {
this.openAsModal_ &&
((this.openAsModal_ = !1),
(this.dialog_.style.zIndex = ""),
this.replacedStyleTop_ &&
((this.dialog_.style.top = ""), (this.replacedStyleTop_ = !1)),
this.backdrop_.parentNode &&
this.backdrop_.parentNode.removeChild(this.backdrop_),
dialogPolyfill.dm.removeDialog(this));
},
setOpen: function (value) {
value
? this.dialog_.hasAttribute("open") ||
this.dialog_.setAttribute("open", "")
: (this.dialog_.removeAttribute("open"), this.maybeHideModal());
},
backdropClick_: function (e) {
if (this.dialog_.hasAttribute("tabindex")) this.dialog_.focus();
else {
var fake = document.createElement("div");
this.dialog_.insertBefore(fake, this.dialog_.firstChild),
(fake.tabIndex = -1),
fake.focus(),
this.dialog_.removeChild(fake);
}
var redirectedEvent = document.createEvent("MouseEvents");
redirectedEvent.initMouseEvent(
e.type,
e.bubbles,
e.cancelable,
window,
e.detail,
e.screenX,
e.screenY,
e.clientX,
e.clientY,
e.ctrlKey,
e.altKey,
e.shiftKey,
e.metaKey,
e.button,
e.relatedTarget
),
this.dialog_.dispatchEvent(redirectedEvent),
e.stopPropagation();
},
focus_: function () {
var target = this.dialog_.querySelector(
"[autofocus]:not([disabled])"
);
if (
(!target && 0 <= this.dialog_.tabIndex && (target = this.dialog_),
!target)
) {
var query = ["button", "input", "keygen", "select", "textarea"].map(
function (el) {
return el + ":not([disabled])";
}
);
query.push('[tabindex]:not([disabled]):not([tabindex=""])'),
(target = this.dialog_.querySelector(query.join(", ")));
}
safeBlur(document.activeElement), target && target.focus();
},
updateZIndex: function (dialogZ, backdropZ) {
if (dialogZ < backdropZ)
throw new Error("dialogZ should never be < backdropZ");
(this.dialog_.style.zIndex = dialogZ),
(this.backdrop_.style.zIndex = backdropZ);
},
show: function () {
this.dialog_.open || (this.setOpen(!0), this.focus_());
},
showModal: function () {
if (this.dialog_.hasAttribute("open"))
throw new Error(
"Failed to execute 'showModal' on dialog: The element is already open, and therefore cannot be opened modally."
);
if (!document.body.contains(this.dialog_))
throw new Error(
"Failed to execute 'showModal' on dialog: The element is not in a Document."
);
if (!dialogPolyfill.dm.pushDialog(this))
throw new Error(
"Failed to execute 'showModal' on dialog: There are too many open modal dialogs."
);
createsStackingContext(this.dialog_.parentElement) &&
console.warn(
"A dialog is being shown inside a stacking context. This may cause it to be unusable. For more information, see this link: https://github.com/GoogleChrome/dialog-polyfill/#stacking-context"
),
this.setOpen(!0),
(this.openAsModal_ = !0),
dialogPolyfill.needsCentering(this.dialog_)
? (dialogPolyfill.reposition(this.dialog_),
(this.replacedStyleTop_ = !0))
: (this.replacedStyleTop_ = !1),
this.dialog_.parentNode.insertBefore(
this.backdrop_,
this.dialog_.nextSibling
),
this.focus_();
},
close: function (opt_returnValue) {
if (!this.dialog_.hasAttribute("open"))
throw new Error(
"Failed to execute 'close' on dialog: The element does not have an 'open' attribute, and therefore cannot be closed."
);
this.setOpen(!1),
void 0 !== opt_returnValue &&
(this.dialog_.returnValue = opt_returnValue);
var closeEvent = new supportCustomEvent("close", {
bubbles: !1,
cancelable: !1,
});
this.dialog_.dispatchEvent(closeEvent);
},
});
var dialogPolyfill = {
reposition: function (element) {
var scrollTop =
document.body.scrollTop || document.documentElement.scrollTop,
topValue =
scrollTop + (window.innerHeight - element.offsetHeight) / 2;
element.style.top = Math.max(scrollTop, topValue) + "px";
},
isInlinePositionSetByStylesheet: function (element) {
for (var i = 0; i < document.styleSheets.length; ++i) {
var styleSheet = document.styleSheets[i],
cssRules = null;
try {
cssRules = styleSheet.cssRules;
} catch (e) {}
if (cssRules)
for (var j = 0; j < cssRules.length; ++j) {
var rule = cssRules[j],
selectedNodes = null;
try {
selectedNodes = document.querySelectorAll(rule.selectorText);
} catch (e) {}
if (selectedNodes && inNodeList(selectedNodes, element)) {
var cssTop = rule.style.getPropertyValue("top"),
cssBottom = rule.style.getPropertyValue("bottom");
if (
(cssTop && "auto" !== cssTop) ||
(cssBottom && "auto" !== cssBottom)
)
return !0;
}
}
}
return !1;
},
needsCentering: function (dialog) {
return (
"absolute" === window.getComputedStyle(dialog).position &&
!(
("auto" !== dialog.style.top && "" !== dialog.style.top) ||
("auto" !== dialog.style.bottom && "" !== dialog.style.bottom)
) &&
!dialogPolyfill.isInlinePositionSetByStylesheet(dialog)
);
},
forceRegisterDialog: function (element) {
if (
((window.HTMLDialogElement || element.showModal) &&
console.warn(
"This browser already supports