/*!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>"); 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>"); }; }), (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: '
    The image could not be loaded.
    ', 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 += ""; } 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: /`]+/ }, ], }, ], }, ], }; 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: "|$)", e: ">", k: { name: "style" }, c: [t], starts: { e: "", rE: !0, sL: ["css", "xml"] }, }, { cN: "tag", b: "|$)", e: ">", k: { name: "script" }, c: [t], starts: { e: "", rE: !0, sL: ["actionscript", "javascript", "handlebars", "xml"], }, }, { cN: "meta", v: [ { b: /<\?xml/, e: /\?>/, r: 10 }, { b: /<\?\w+/, e: /\?>/ }, ], }, { cN: "tag", b: "", 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.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: //, 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( '
    ' + st.backLabel + "
    " ) .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 , the polyfill may not work correctly", element ), "dialog" !== element.localName) ) throw new Error( "Failed to register dialog: The element is not a dialog." ); new dialogPolyfillInfo(element); }, registerDialog: function (element) { element.showModal || dialogPolyfill.forceRegisterDialog(element); }, DialogManager: function () { this.pendingDialogStack = []; var checkDOM = this.checkDOM_.bind(this); (this.overlay = document.createElement("div")), (this.overlay.className = "_dialog_overlay"), this.overlay.addEventListener( "click", function (e) { (this.forwardTab_ = void 0), e.stopPropagation(), checkDOM([]); }.bind(this) ), (this.handleKey_ = this.handleKey_.bind(this)), (this.handleFocus_ = this.handleFocus_.bind(this)), (this.zIndexLow_ = 1e5), (this.zIndexHigh_ = 100150), (this.forwardTab_ = void 0), "MutationObserver" in window && (this.mo_ = new MutationObserver(function (records) { var removed = []; records.forEach(function (rec) { for (var c, i = 0; (c = rec.removedNodes[i]); ++i) c instanceof Element && ("dialog" === c.localName && removed.push(c), (removed = removed.concat(c.querySelectorAll("dialog")))); }), removed.length && checkDOM(removed); })); }, }; if ( ((dialogPolyfill.DialogManager.prototype.blockDocument = function () { document.documentElement.addEventListener( "focus", this.handleFocus_, !0 ), document.addEventListener("keydown", this.handleKey_), this.mo_ && this.mo_.observe(document, { childList: !0, subtree: !0 }); }), (dialogPolyfill.DialogManager.prototype.unblockDocument = function () { document.documentElement.removeEventListener( "focus", this.handleFocus_, !0 ), document.removeEventListener("keydown", this.handleKey_), this.mo_ && this.mo_.disconnect(); }), (dialogPolyfill.DialogManager.prototype.updateStacking = function () { for ( var dpi, zIndex = this.zIndexHigh_, i = 0; (dpi = this.pendingDialogStack[i]); ++i ) dpi.updateZIndex(--zIndex, --zIndex), 0 === i && (this.overlay.style.zIndex = --zIndex); var last = this.pendingDialogStack[0]; last ? (last.dialog.parentNode || document.body).appendChild(this.overlay) : this.overlay.parentNode && this.overlay.parentNode.removeChild(this.overlay); }), (dialogPolyfill.DialogManager.prototype.containedByTopDialog_ = function ( candidate ) { for (; (candidate = findNearestDialog(candidate)); ) { for (var dpi, i = 0; (dpi = this.pendingDialogStack[i]); ++i) if (dpi.dialog === candidate) return 0 === i; candidate = candidate.parentElement; } return !1; }), (dialogPolyfill.DialogManager.prototype.handleFocus_ = function (event) { if ( !this.containedByTopDialog_(event.target) && (event.preventDefault(), event.stopPropagation(), safeBlur(event.target), void 0 !== this.forwardTab_) ) { var dpi = this.pendingDialogStack[0]; return ( dpi.dialog.compareDocumentPosition(event.target) & Node.DOCUMENT_POSITION_PRECEDING && (this.forwardTab_ ? dpi.focus_() : document.documentElement.focus()), !1 ); } }), (dialogPolyfill.DialogManager.prototype.handleKey_ = function (event) { if (((this.forwardTab_ = void 0), 27 === event.keyCode)) { event.preventDefault(), event.stopPropagation(); var cancelEvent = new supportCustomEvent("cancel", { bubbles: !1, cancelable: !0, }), dpi = this.pendingDialogStack[0]; dpi && dpi.dialog.dispatchEvent(cancelEvent) && dpi.dialog.close(); } else 9 === event.keyCode && (this.forwardTab_ = !event.shiftKey); }), (dialogPolyfill.DialogManager.prototype.checkDOM_ = function (removed) { this.pendingDialogStack.slice().forEach(function (dpi) { -1 !== removed.indexOf(dpi.dialog) ? dpi.downgradeModal() : dpi.maybeHideModal(); }); }), (dialogPolyfill.DialogManager.prototype.pushDialog = function (dpi) { var allowed = (this.zIndexHigh_ - this.zIndexLow_) / 2 - 1; return ( !(this.pendingDialogStack.length >= allowed) && (1 === this.pendingDialogStack.unshift(dpi) && this.blockDocument(), this.updateStacking(), !0) ); }), (dialogPolyfill.DialogManager.prototype.removeDialog = function (dpi) { var index = this.pendingDialogStack.indexOf(dpi); -1 !== index && (this.pendingDialogStack.splice(index, 1), 0 === this.pendingDialogStack.length && this.unblockDocument(), this.updateStacking()); }), (dialogPolyfill.dm = new dialogPolyfill.DialogManager()), (dialogPolyfill.formSubmitter = null), (dialogPolyfill.useValue = null), void 0 === window.HTMLDialogElement) ) { var testForm = document.createElement("form"); if ( (testForm.setAttribute("method", "dialog"), "dialog" !== testForm.method) ) { var methodDescriptor = Object.getOwnPropertyDescriptor( HTMLFormElement.prototype, "method" ); if (methodDescriptor) { var realGet = methodDescriptor.get; methodDescriptor.get = function () { return isFormMethodDialog(this) ? "dialog" : realGet.call(this); }; var realSet = methodDescriptor.set; (methodDescriptor.set = function (v) { return "string" == typeof v && "dialog" === v.toLowerCase() ? this.setAttribute("method", v) : realSet.call(this, v); }), Object.defineProperty( HTMLFormElement.prototype, "method", methodDescriptor ); } } document.addEventListener( "click", function (ev) { if ( ((dialogPolyfill.formSubmitter = null), (dialogPolyfill.useValue = null), !ev.defaultPrevented) ) { var target = ev.target; if (target && isFormMethodDialog(target.form)) { if ( !( "submit" === target.type && -1 < ["button", "input"].indexOf(target.localName) ) ) { if ("input" !== target.localName || "image" !== target.type) return; dialogPolyfill.useValue = ev.offsetX + "," + ev.offsetY; } findNearestDialog(target) && (dialogPolyfill.formSubmitter = target); } } }, !1 ); var nativeFormSubmit = HTMLFormElement.prototype.submit; (HTMLFormElement.prototype.submit = function () { if (!isFormMethodDialog(this)) return nativeFormSubmit.call(this); var dialog = findNearestDialog(this); dialog && dialog.close(); }), document.addEventListener( "submit", function (ev) { var form = ev.target; if (isFormMethodDialog(form)) { ev.preventDefault(); var dialog = findNearestDialog(form); if (dialog) { var s = dialogPolyfill.formSubmitter; s && s.form === form ? dialog.close(dialogPolyfill.useValue || s.value) : dialog.close(), (dialogPolyfill.formSubmitter = null); } } }, !0 ); } (dialogPolyfill.forceRegisterDialog = dialogPolyfill.forceRegisterDialog), (dialogPolyfill.registerDialog = dialogPolyfill.registerDialog), "function" == typeof define && "amd" in define ? define(function () { return dialogPolyfill; }) : "object" == typeof module && "object" == typeof module.exports ? (module.exports = dialogPolyfill) : (window.dialogPolyfill = dialogPolyfill); })(); (function ($, window, document, undefined) { "use strict"; $(window).on("elementor/frontend/init", function () { if (elementorFrontend.isEditMode()) { elementorFrontend.hooks.addAction( "frontend/element_ready/aux-before-after.default", $.fn.AuxinBeforeAfterInit ); elementorFrontend.hooks.addAction( "frontend/element_ready/aux-gallery.default", $.fn.AuxinTriggerResize ); elementorFrontend.hooks.addAction( "frontend/element_ready/aux-gallery.default", $.fn.AuxinIsotopeImageLayoutsInit ); elementorFrontend.hooks.addAction( "frontend/element_ready/aux_accordion.default", $.fn.AuxinAccordionInit ); elementorFrontend.hooks.addAction( "frontend/element_ready/aux_tabs.default", $.fn.AuxinLiveTabsInit ); elementorFrontend.hooks.addAction( "frontend/element_ready/aux_video.default", function ($scope) { window.wp.mediaelement.initialize(); } ); elementorFrontend.hooks.addAction( "frontend/element_ready/aux_audio.default", function ($scope) { window.wp.mediaelement.initialize(); } ); elementorFrontend.hooks.addAction( "frontend/element_ready/aux_recent_portfolios_grid.default", function ($scope) { $.fn.AuxinIsotopeLayoutInit($("body")); } ); elementorFrontend.hooks.addAction( "frontend/element_ready/aux_recent_portfolios_masonry.default", function ($scope) { $.fn.AuxinIsotopeLayoutInit($("body")); } ); elementorFrontend.hooks.addAction( "frontend/element_ready/aux_recent_portfolios_tile.default", function ($scope) { $.fn.AuxinIsotopeTilesInit($("body")); } ); elementorFrontend.hooks.addAction( "frontend/element_ready/aux_recent_portfolios_grid_carousel.default", function ($scope) { $.fn.AuxinCarouselInit($("body")); } ); elementorFrontend.hooks.addAction( "frontend/element_ready/aux_recent_news_grid.default", function ($scope) { $.fn.AuxinCarouselInit($("body")); } ); elementorFrontend.hooks.addAction( "frontend/element_ready/aux_shopping_cart.default", function ($scope) { $.fn.AuxinDropdownEffectInit($("body")); $.fn.AuxinCartCanvasInit($("body")); } ); elementorFrontend.hooks.addAction( "frontend/element_ready/aux_menu_box.default", function ($scope) { $scope.find(".aux-master-menu").mastermenu(); $.fn.AuxinMobileMenuInit($scope); } ); elementorFrontend.hooks.addAction( "frontend/element_ready/aux_image.default", function ($scope) { $.fn.AuxinDynamicDropshadowInit($scope); $.fn.AuxinTiltElementInit($scope); } ); elementorFrontend.hooks.addAction( "frontend/element_ready/global", function ($scope) { $.fn.AuxinPageCoverAnimationInit($scope); $.fn.AuxinAppearAnimationsInit($scope); } ); elementorFrontend.hooks.addAction( "frontend/element_ready/aux_search_box.default", function ($scope) { $.fn.AuxinElementorSearchElement($scope); $(window).on("resize", function () { $.fn.AuxinElementorSearchElement($scope); }); } ); } }); })(jQuery, window, document); /*! * MediaElement.js * http://www.mediaelementjs.com/ * * Wrapper that mimics native HTML5 MediaElement (audio and video) * using a variety of technologies (pure JavaScript, Flash, iframe) * * Copyright 2010-2017, John Dyer (http://j.hn/) * License: MIT * */ !(function r(a, s, l) { function d(n, e) { if (!s[n]) { if (!a[n]) { var t = "function" == typeof require && require; if (!e && t) return t(n, !0); if (u) return u(n, !0); var o = new Error("Cannot find module '" + n + "'"); throw ((o.code = "MODULE_NOT_FOUND"), o); } var i = (s[n] = { exports: {} }); a[n][0].call( i.exports, function (e) { var t = a[n][1][e]; return d(t || e); }, i, i.exports, r, a, s, l ); } return s[n].exports; } for ( var u = "function" == typeof require && require, e = 0; e < l.length; e++ ) d(l[e]); return d; })( { 1: [function (e, t, n) {}, {}], 2: [ function (i, r, e) { (function (e) { var t, n = void 0 !== e ? e : "undefined" != typeof window ? window : {}, o = i(1); "undefined" != typeof document ? (t = document) : (t = n["__GLOBAL_DOCUMENT_CACHE@4"]) || (t = n["__GLOBAL_DOCUMENT_CACHE@4"] = o), (r.exports = t); }.call( this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {} )); }, { 1: 1 }, ], 3: [ function (e, n, t) { (function (e) { var t; (t = "undefined" != typeof window ? window : void 0 !== e ? e : "undefined" != typeof self ? self : {}), (n.exports = t); }.call( this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {} )); }, {}, ], 4: [ function (e, n, t) { !(function (e) { var t = setTimeout; function o() {} function r(e) { if ("object" != typeof this) throw new TypeError("Promises must be constructed via new"); if ("function" != typeof e) throw new TypeError("not a function"); (this._state = 0), (this._handled = !1), (this._value = void 0), (this._deferreds = []), d(e, this); } function i(n, o) { for (; 3 === n._state; ) n = n._value; 0 !== n._state ? ((n._handled = !0), r._immediateFn(function () { var e = 1 === n._state ? o.onFulfilled : o.onRejected; if (null !== e) { var t; try { t = e(n._value); } catch (e) { return void s(o.promise, e); } a(o.promise, t); } else (1 === n._state ? a : s)(o.promise, n._value); })) : n._deferreds.push(o); } function a(t, e) { try { if (e === t) throw new TypeError( "A promise cannot be resolved with itself." ); if (e && ("object" == typeof e || "function" == typeof e)) { var n = e.then; if (e instanceof r) return (t._state = 3), (t._value = e), void l(t); if ("function" == typeof n) return void d( ((o = n), (i = e), function () { o.apply(i, arguments); }), t ); } (t._state = 1), (t._value = e), l(t); } catch (e) { s(t, e); } var o, i; } function s(e, t) { (e._state = 2), (e._value = t), l(e); } function l(e) { 2 === e._state && 0 === e._deferreds.length && r._immediateFn(function () { e._handled || r._unhandledRejectionFn(e._value); }); for (var t = 0, n = e._deferreds.length; t < n; t++) i(e, e._deferreds[t]); e._deferreds = null; } function d(e, t) { var n = !1; try { e( function (e) { n || ((n = !0), a(t, e)); }, function (e) { n || ((n = !0), s(t, e)); } ); } catch (e) { if (n) return; (n = !0), s(t, e); } } (r.prototype.catch = function (e) { return this.then(null, e); }), (r.prototype.then = function (e, t) { var n = new this.constructor(o); return ( i( this, new (function (e, t, n) { (this.onFulfilled = "function" == typeof e ? e : null), (this.onRejected = "function" == typeof t ? t : null), (this.promise = n); })(e, t, n) ), n ); }), (r.all = function (e) { var s = Array.prototype.slice.call(e); return new r(function (o, i) { if (0 === s.length) return o([]); var r = s.length; function a(t, e) { try { if (e && ("object" == typeof e || "function" == typeof e)) { var n = e.then; if ("function" == typeof n) return void n.call( e, function (e) { a(t, e); }, i ); } (s[t] = e), 0 == --r && o(s); } catch (e) { i(e); } } for (var e = 0; e < s.length; e++) a(e, s[e]); }); }), (r.resolve = function (t) { return t && "object" == typeof t && t.constructor === r ? t : new r(function (e) { e(t); }); }), (r.reject = function (n) { return new r(function (e, t) { t(n); }); }), (r.race = function (i) { return new r(function (e, t) { for (var n = 0, o = i.length; n < o; n++) i[n].then(e, t); }); }), (r._immediateFn = ("function" == typeof setImmediate && function (e) { setImmediate(e); }) || function (e) { t(e, 0); }), (r._unhandledRejectionFn = function (e) { "undefined" != typeof console && console && console.warn("Possible Unhandled Promise Rejection:", e); }), (r._setImmediateFn = function (e) { r._immediateFn = e; }), (r._setUnhandledRejectionFn = function (e) { r._unhandledRejectionFn = e; }), void 0 !== n && n.exports ? (n.exports = r) : e.Promise || (e.Promise = r); })(this); }, {}, ], 5: [ function (e, t, n) { "use strict"; Object.defineProperty(n, "__esModule", { value: !0 }); var o, a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { return typeof e; } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; }, i = e(7), r = (o = i) && o.__esModule ? o : { default: o }, s = e(15), l = e(27); var d = { lang: "en", en: s.EN, language: function () { for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n]; if (null != t && t.length) { if ("string" != typeof t[0]) throw new TypeError("Language code must be a string value"); if (!/^[a-z]{2,3}((\-|_)[a-z]{2})?$/i.test(t[0])) throw new TypeError( "Language code must have format 2-3 letters and. optionally, hyphen, underscore followed by 2 more letters" ); (d.lang = t[0]), void 0 === d[t[0]] ? ((t[1] = null !== t[1] && void 0 !== t[1] && "object" === a(t[1]) ? t[1] : {}), (d[t[0]] = (0, l.isObjectEmpty)(t[1]) ? s.EN : t[1])) : null !== t[1] && void 0 !== t[1] && "object" === a(t[1]) && (d[t[0]] = t[1]); } return d.lang; }, t: function (e) { var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : null; if ("string" == typeof e && e.length) { var n = void 0, o = void 0, i = d.language(), r = function (e, t, n) { return "object" !== (void 0 === e ? "undefined" : a(e)) || "number" != typeof t || "number" != typeof n ? e : [ function () { return arguments.length <= 1 ? void 0 : arguments[1]; }, function () { return 1 === (arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 1 ? void 0 : arguments[1] : arguments.length <= 2 ? void 0 : arguments[2]; }, function () { return 0 === (arguments.length <= 0 ? void 0 : arguments[0]) || 1 === (arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 1 ? void 0 : arguments[1] : arguments.length <= 2 ? void 0 : arguments[2]; }, function () { return (arguments.length <= 0 ? void 0 : arguments[0]) % 10 == 1 && (arguments.length <= 0 ? void 0 : arguments[0]) % 100 != 11 ? arguments.length <= 1 ? void 0 : arguments[1] : 0 !== (arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 2 ? void 0 : arguments[2] : arguments.length <= 3 ? void 0 : arguments[3]; }, function () { return 1 === (arguments.length <= 0 ? void 0 : arguments[0]) || 11 === (arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 1 ? void 0 : arguments[1] : 2 === (arguments.length <= 0 ? void 0 : arguments[0]) || 12 === (arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 2 ? void 0 : arguments[2] : 2 < (arguments.length <= 0 ? void 0 : arguments[0]) && (arguments.length <= 0 ? void 0 : arguments[0]) < 20 ? arguments.length <= 3 ? void 0 : arguments[3] : arguments.length <= 4 ? void 0 : arguments[4]; }, function () { return 1 === (arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 1 ? void 0 : arguments[1] : 0 === (arguments.length <= 0 ? void 0 : arguments[0]) || (0 < (arguments.length <= 0 ? void 0 : arguments[0]) % 100 && (arguments.length <= 0 ? void 0 : arguments[0]) % 100 < 20) ? arguments.length <= 2 ? void 0 : arguments[2] : arguments.length <= 3 ? void 0 : arguments[3]; }, function () { return (arguments.length <= 0 ? void 0 : arguments[0]) % 10 == 1 && (arguments.length <= 0 ? void 0 : arguments[0]) % 100 != 11 ? arguments.length <= 1 ? void 0 : arguments[1] : 2 <= (arguments.length <= 0 ? void 0 : arguments[0]) % 10 && ((arguments.length <= 0 ? void 0 : arguments[0]) % 100 < 10 || 20 <= (arguments.length <= 0 ? void 0 : arguments[0]) % 100) ? arguments.length <= 2 ? void 0 : arguments[2] : [3]; }, function () { return (arguments.length <= 0 ? void 0 : arguments[0]) % 10 == 1 && (arguments.length <= 0 ? void 0 : arguments[0]) % 100 != 11 ? arguments.length <= 1 ? void 0 : arguments[1] : 2 <= (arguments.length <= 0 ? void 0 : arguments[0]) % 10 && (arguments.length <= 0 ? void 0 : arguments[0]) % 10 <= 4 && ((arguments.length <= 0 ? void 0 : arguments[0]) % 100 < 10 || 20 <= (arguments.length <= 0 ? void 0 : arguments[0]) % 100) ? arguments.length <= 2 ? void 0 : arguments[2] : arguments.length <= 3 ? void 0 : arguments[3]; }, function () { return 1 === (arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 1 ? void 0 : arguments[1] : 2 <= (arguments.length <= 0 ? void 0 : arguments[0]) && (arguments.length <= 0 ? void 0 : arguments[0]) <= 4 ? arguments.length <= 2 ? void 0 : arguments[2] : arguments.length <= 3 ? void 0 : arguments[3]; }, function () { return 1 === (arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 1 ? void 0 : arguments[1] : 2 <= (arguments.length <= 0 ? void 0 : arguments[0]) % 10 && (arguments.length <= 0 ? void 0 : arguments[0]) % 10 <= 4 && ((arguments.length <= 0 ? void 0 : arguments[0]) % 100 < 10 || 20 <= (arguments.length <= 0 ? void 0 : arguments[0]) % 100) ? arguments.length <= 2 ? void 0 : arguments[2] : arguments.length <= 3 ? void 0 : arguments[3]; }, function () { return (arguments.length <= 0 ? void 0 : arguments[0]) % 100 == 1 ? arguments.length <= 2 ? void 0 : arguments[2] : (arguments.length <= 0 ? void 0 : arguments[0]) % 100 == 2 ? arguments.length <= 3 ? void 0 : arguments[3] : (arguments.length <= 0 ? void 0 : arguments[0]) % 100 == 3 || (arguments.length <= 0 ? void 0 : arguments[0]) % 100 == 4 ? arguments.length <= 4 ? void 0 : arguments[4] : arguments.length <= 1 ? void 0 : arguments[1]; }, function () { return 1 === (arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 1 ? void 0 : arguments[1] : 2 === (arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 2 ? void 0 : arguments[2] : 2 < (arguments.length <= 0 ? void 0 : arguments[0]) && (arguments.length <= 0 ? void 0 : arguments[0]) < 7 ? arguments.length <= 3 ? void 0 : arguments[3] : 6 < (arguments.length <= 0 ? void 0 : arguments[0]) && (arguments.length <= 0 ? void 0 : arguments[0]) < 11 ? arguments.length <= 4 ? void 0 : arguments[4] : arguments.length <= 5 ? void 0 : arguments[5]; }, function () { return 0 === (arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 1 ? void 0 : arguments[1] : 1 === (arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 2 ? void 0 : arguments[2] : 2 === (arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 3 ? void 0 : arguments[3] : 3 <= (arguments.length <= 0 ? void 0 : arguments[0]) % 100 && (arguments.length <= 0 ? void 0 : arguments[0]) % 100 <= 10 ? arguments.length <= 4 ? void 0 : arguments[4] : 11 <= (arguments.length <= 0 ? void 0 : arguments[0]) % 100 ? arguments.length <= 5 ? void 0 : arguments[5] : arguments.length <= 6 ? void 0 : arguments[6]; }, function () { return 1 === (arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 1 ? void 0 : arguments[1] : 0 === (arguments.length <= 0 ? void 0 : arguments[0]) || (1 < (arguments.length <= 0 ? void 0 : arguments[0]) % 100 && (arguments.length <= 0 ? void 0 : arguments[0]) % 100 < 11) ? arguments.length <= 2 ? void 0 : arguments[2] : 10 < (arguments.length <= 0 ? void 0 : arguments[0]) % 100 && (arguments.length <= 0 ? void 0 : arguments[0]) % 100 < 20 ? arguments.length <= 3 ? void 0 : arguments[3] : arguments.length <= 4 ? void 0 : arguments[4]; }, function () { return (arguments.length <= 0 ? void 0 : arguments[0]) % 10 == 1 ? arguments.length <= 1 ? void 0 : arguments[1] : (arguments.length <= 0 ? void 0 : arguments[0]) % 10 == 2 ? arguments.length <= 2 ? void 0 : arguments[2] : arguments.length <= 3 ? void 0 : arguments[3]; }, function () { return 11 !== (arguments.length <= 0 ? void 0 : arguments[0]) && (arguments.length <= 0 ? void 0 : arguments[0]) % 10 == 1 ? arguments.length <= 1 ? void 0 : arguments[1] : arguments.length <= 2 ? void 0 : arguments[2]; }, function () { return 1 === (arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 1 ? void 0 : arguments[1] : 2 <= (arguments.length <= 0 ? void 0 : arguments[0]) % 10 && (arguments.length <= 0 ? void 0 : arguments[0]) % 10 <= 4 && ((arguments.length <= 0 ? void 0 : arguments[0]) % 100 < 10 || 20 <= (arguments.length <= 0 ? void 0 : arguments[0]) % 100) ? arguments.length <= 2 ? void 0 : arguments[2] : arguments.length <= 3 ? void 0 : arguments[3]; }, function () { return 1 === (arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 1 ? void 0 : arguments[1] : 2 === (arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 2 ? void 0 : arguments[2] : 8 !== (arguments.length <= 0 ? void 0 : arguments[0]) && 11 !== (arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 3 ? void 0 : arguments[3] : arguments.length <= 4 ? void 0 : arguments[4]; }, function () { return 0 === (arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 1 ? void 0 : arguments[1] : arguments.length <= 2 ? void 0 : arguments[2]; }, function () { return 1 === (arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 1 ? void 0 : arguments[1] : 2 === (arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 2 ? void 0 : arguments[2] : 3 === (arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 3 ? void 0 : arguments[3] : arguments.length <= 4 ? void 0 : arguments[4]; }, function () { return 0 === (arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 1 ? void 0 : arguments[1] : 1 === (arguments.length <= 0 ? void 0 : arguments[0]) ? arguments.length <= 2 ? void 0 : arguments[2] : arguments.length <= 3 ? void 0 : arguments[3]; }, ][n].apply(null, [t].concat(e)); }; return ( void 0 !== d[i] && ((n = d[i][e]), null !== t && "number" == typeof t && ((o = d[i]["mejs.plural-form"]), (n = r.apply(null, [n, t, o])))), !n && d.en && ((n = d.en[e]), null !== t && "number" == typeof t && ((o = d.en["mejs.plural-form"]), (n = r.apply(null, [n, t, o])))), (n = n || e), null !== t && "number" == typeof t && (n = n.replace("%1", t)), (0, l.escapeHTML)(n) ); } return e; }, }; (r.default.i18n = d), "undefined" != typeof mejsL10n && r.default.i18n.language(mejsL10n.language, mejsL10n.strings), (n.default = d); }, { 15: 15, 27: 27, 7: 7 }, ], 6: [ function (e, t, n) { "use strict"; Object.defineProperty(n, "__esModule", { value: !0 }); var L = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { return typeof e; } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; }, F = o(e(3)), j = o(e(2)), I = o(e(7)), M = e(27), O = e(28), D = e(8), R = e(25); function o(e) { return e && e.__esModule ? e : { default: e }; } var i = function e(t, n, o) { var c = this; !(function (e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function"); })(this, e); var f = this; (o = Array.isArray(o) ? o : null), (f.defaults = { renderers: [], fakeNodeName: "mediaelementwrapper", pluginPath: "build/", shimScriptAccess: "sameDomain", }), (n = Object.assign(f.defaults, n)), (f.mediaElement = j.default.createElement(n.fakeNodeName)); var i = t, r = !1; if ( ("string" == typeof t ? (f.mediaElement.originalNode = j.default.getElementById(t)) : (i = (f.mediaElement.originalNode = t).id), void 0 === f.mediaElement.originalNode || null === f.mediaElement.originalNode) ) return null; (f.mediaElement.options = n), (i = i || "mejs_" + Math.random().toString().slice(2)), f.mediaElement.originalNode.setAttribute("id", i + "_from_mejs"); var a = f.mediaElement.originalNode.tagName.toLowerCase(); -1 < ["video", "audio"].indexOf(a) && !f.mediaElement.originalNode.getAttribute("preload") && f.mediaElement.originalNode.setAttribute("preload", "none"), f.mediaElement.originalNode.parentNode.insertBefore( f.mediaElement, f.mediaElement.originalNode ), f.mediaElement.appendChild(f.mediaElement.originalNode); var s = function (t, e) { if ( "https:" === F.default.location.protocol && 0 === t.indexOf("http:") && R.IS_IOS && -1 < I.default.html5media.mediaTypes.indexOf(e) ) { var n = new XMLHttpRequest(); (n.onreadystatechange = function () { if (4 === this.readyState && 200 === this.status) { var e = ( F.default.URL || F.default.webkitURL ).createObjectURL(this.response); return ( f.mediaElement.originalNode.setAttribute("src", e), e ); } return t; }), n.open("GET", t), (n.responseType = "blob"), n.send(); } return t; }, l = void 0; if (null !== o) l = o; else if (null !== f.mediaElement.originalNode) switch ( ((l = []), f.mediaElement.originalNode.nodeName.toLowerCase()) ) { case "iframe": l.push({ type: "", src: f.mediaElement.originalNode.getAttribute("src"), }); break; case "audio": case "video": var d = f.mediaElement.originalNode.children.length, u = f.mediaElement.originalNode.getAttribute("src"); if (u) { var p = f.mediaElement.originalNode, m = (0, O.formatType)(u, p.getAttribute("type")); l.push({ type: m, src: s(u, m) }); } for (var h = 0; h < d; h++) { var v = f.mediaElement.originalNode.children[h]; if ("source" === v.tagName.toLowerCase()) { var g = v.getAttribute("src"), y = (0, O.formatType)(g, v.getAttribute("type")); l.push({ type: y, src: s(g, y) }); } } } (f.mediaElement.id = i), (f.mediaElement.renderers = {}), (f.mediaElement.events = {}), (f.mediaElement.promises = []), (f.mediaElement.renderer = null), (f.mediaElement.rendererName = null), (f.mediaElement.changeRenderer = function (e, t) { var n = c, o = 2 < Object.keys(t[0]).length ? t[0] : t[0].src; if ( void 0 !== n.mediaElement.renderer && null !== n.mediaElement.renderer && n.mediaElement.renderer.name === e ) return ( n.mediaElement.renderer.pause(), n.mediaElement.renderer.stop && n.mediaElement.renderer.stop(), n.mediaElement.renderer.show(), n.mediaElement.renderer.setSrc(o), !0 ); void 0 !== n.mediaElement.renderer && null !== n.mediaElement.renderer && (n.mediaElement.renderer.pause(), n.mediaElement.renderer.stop && n.mediaElement.renderer.stop(), n.mediaElement.renderer.hide()); var i = n.mediaElement.renderers[e], r = null; if (null != i) return ( i.show(), i.setSrc(o), (n.mediaElement.renderer = i), (n.mediaElement.rendererName = e), !0 ); for ( var a = n.mediaElement.options.renderers.length ? n.mediaElement.options.renderers : D.renderer.order, s = 0, l = a.length; s < l; s++ ) { var d = a[s]; if (d === e) { r = D.renderer.renderers[d]; var u = Object.assign(r.options, n.mediaElement.options); return ( ((i = r.create(n.mediaElement, u, t)).name = e), (n.mediaElement.renderers[r.name] = i), (n.mediaElement.renderer = i), (n.mediaElement.rendererName = e), i.show(), !0 ); } } return !1; }), (f.mediaElement.setSize = function (e, t) { void 0 !== f.mediaElement.renderer && null !== f.mediaElement.renderer && f.mediaElement.renderer.setSize(e, t); }), (f.mediaElement.generateError = function (e, t) { (e = e || ""), (t = Array.isArray(t) ? t : []); var n = (0, M.createEvent)("error", f.mediaElement); (n.message = e), (n.urls = t), f.mediaElement.dispatchEvent(n), (r = !0); }); var E = I.default.html5media.properties, b = I.default.html5media.methods, S = function (t, e, n, o) { var i = t[e]; Object.defineProperty(t, e, { get: function () { return n.apply(t, [i]); }, set: function (e) { return (i = o.apply(t, [e])); }, }); }, x = function (e) { if ("src" !== e) { var t = "" + e.substring(0, 1).toUpperCase() + e.substring(1), n = function () { return void 0 !== f.mediaElement.renderer && null !== f.mediaElement.renderer && "function" == typeof f.mediaElement.renderer["get" + t] ? f.mediaElement.renderer["get" + t]() : null; }, o = function (e) { void 0 !== f.mediaElement.renderer && null !== f.mediaElement.renderer && "function" == typeof f.mediaElement.renderer["set" + t] && f.mediaElement.renderer["set" + t](e); }; S(f.mediaElement, e, n, o), (f.mediaElement["get" + t] = n), (f.mediaElement["set" + t] = o); } }, w = function () { return void 0 !== f.mediaElement.renderer && null !== f.mediaElement.renderer ? f.mediaElement.renderer.getSrc() : null; }, P = function (e) { var t = []; if ("string" == typeof e) t.push({ src: e, type: e ? (0, O.getTypeFromFile)(e) : "" }); else if ( "object" === (void 0 === e ? "undefined" : L(e)) && void 0 !== e.src ) { var n = (0, O.absolutizeUrl)(e.src), o = e.type, i = Object.assign(e, { src: n, type: ("" !== o && null != o) || !n ? o : (0, O.getTypeFromFile)(n), }); t.push(i); } else if (Array.isArray(e)) for (var r = 0, a = e.length; r < a; r++) { var s = (0, O.absolutizeUrl)(e[r].src), l = e[r].type, d = Object.assign(e[r], { src: s, type: ("" !== l && null != l) || !s ? l : (0, O.getTypeFromFile)(s), }); t.push(d); } var u = D.renderer.select( t, f.mediaElement.options.renderers.length ? f.mediaElement.options.renderers : [] ), c = void 0; if ( (f.mediaElement.paused || null == f.mediaElement.src || "" === f.mediaElement.src || (f.mediaElement.pause(), (c = (0, M.createEvent)("pause", f.mediaElement)), f.mediaElement.dispatchEvent(c)), (f.mediaElement.originalNode.src = t[0].src || ""), null !== u || !t[0].src) ) return !(null == t[0].src || "" === t[0].src) ? f.mediaElement.changeRenderer(u.rendererName, t) : null; f.mediaElement.generateError("No renderer found", t); }, T = function (e, t) { try { if ( "play" !== e || ("native_dash" !== f.mediaElement.rendererName && "native_hls" !== f.mediaElement.rendererName && "vimeo_iframe" !== f.mediaElement.rendererName) ) f.mediaElement.renderer[e](t); else { var n = f.mediaElement.renderer[e](t); n && "function" == typeof n.then && n.catch(function () { f.mediaElement.paused && setTimeout(function () { var e = f.mediaElement.renderer.play(); void 0 !== e && e.catch(function () { f.mediaElement.renderer.paused || f.mediaElement.renderer.pause(); }); }, 150); }); } } catch (e) { f.mediaElement.generateError(e, l); } }, C = function (o) { f.mediaElement[o] = function () { for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n]; return ( void 0 !== f.mediaElement.renderer && null !== f.mediaElement.renderer && "function" == typeof f.mediaElement.renderer[o] && (f.mediaElement.promises.length ? Promise.all(f.mediaElement.promises) .then(function () { T(o, t); }) .catch(function (e) { f.mediaElement.generateError(e, l); }) : T(o, t)), null ); }; }; S(f.mediaElement, "src", w, P), (f.mediaElement.getSrc = w), (f.mediaElement.setSrc = P); for (var k = 0, _ = E.length; k < _; k++) x(E[k]); for (var N = 0, A = b.length; N < A; N++) C(b[N]); return ( (f.mediaElement.addEventListener = function (e, t) { (f.mediaElement.events[e] = f.mediaElement.events[e] || []), f.mediaElement.events[e].push(t); }), (f.mediaElement.removeEventListener = function (e, t) { if (!e) return (f.mediaElement.events = {}), !0; var n = f.mediaElement.events[e]; if (!n) return !0; if (!t) return (f.mediaElement.events[e] = []), !0; for (var o = 0; o < n.length; o++) if (n[o] === t) return f.mediaElement.events[e].splice(o, 1), !0; return !1; }), (f.mediaElement.dispatchEvent = function (e) { var t = f.mediaElement.events[e.type]; if (t) for (var n = 0; n < t.length; n++) t[n].apply(null, [e]); }), (f.mediaElement.destroy = function () { var e = f.mediaElement.originalNode.cloneNode(!0), t = f.mediaElement.parentElement; e.removeAttribute("id"), e.remove(), f.mediaElement.remove(), t.appendChild(e); }), l.length && (f.mediaElement.src = l), f.mediaElement.promises.length ? Promise.all(f.mediaElement.promises) .then(function () { f.mediaElement.options.success && f.mediaElement.options.success( f.mediaElement, f.mediaElement.originalNode ); }) .catch(function () { r && f.mediaElement.options.error && f.mediaElement.options.error( f.mediaElement, f.mediaElement.originalNode ); }) : (f.mediaElement.options.success && f.mediaElement.options.success( f.mediaElement, f.mediaElement.originalNode ), r && f.mediaElement.options.error && f.mediaElement.options.error( f.mediaElement, f.mediaElement.originalNode )), f.mediaElement ); }; (F.default.MediaElement = i), (I.default.MediaElement = i), (n.default = i); }, { 2: 2, 25: 25, 27: 27, 28: 28, 3: 3, 7: 7, 8: 8 }, ], 7: [ function (e, t, n) { "use strict"; Object.defineProperty(n, "__esModule", { value: !0 }); var o, i = e(3); var r = { version: "4.2.16", html5media: { properties: [ "volume", "src", "currentTime", "muted", "duration", "paused", "ended", "buffered", "error", "networkState", "readyState", "seeking", "seekable", "currentSrc", "preload", "bufferedBytes", "bufferedTime", "initialTime", "startOffsetTime", "defaultPlaybackRate", "playbackRate", "played", "autoplay", "loop", "controls", ], readOnlyProperties: [ "duration", "paused", "ended", "buffered", "error", "networkState", "readyState", "seeking", "seekable", ], methods: ["load", "play", "pause", "canPlayType"], events: [ "loadstart", "durationchange", "loadedmetadata", "loadeddata", "progress", "canplay", "canplaythrough", "suspend", "abort", "error", "emptied", "stalled", "play", "playing", "pause", "waiting", "seeking", "seeked", "timeupdate", "ended", "ratechange", "volumechange", ], mediaTypes: [ "audio/mp3", "audio/ogg", "audio/oga", "audio/wav", "audio/x-wav", "audio/wave", "audio/x-pn-wav", "audio/mpeg", "audio/mp4", "video/mp4", "video/webm", "video/ogg", "video/ogv", ], }, }; (((o = i) && o.__esModule ? o : { default: o }).default.mejs = r), (n.default = r); }, { 3: 3 }, ], 8: [ function (e, t, n) { "use strict"; Object.defineProperty(n, "__esModule", { value: !0 }), (n.renderer = void 0); var o, i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { return typeof e; } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; }, r = (function () { function o(e, t) { for (var n = 0; n < t.length; n++) { var o = t[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o); } } return function (e, t, n) { return t && o(e.prototype, t), n && o(e, n), e; }; })(), a = e(7), s = (o = a) && o.__esModule ? o : { default: o }; var l = (function () { function e() { !(function (e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function"); })(this, e), (this.renderers = {}), (this.order = []); } return ( r(e, [ { key: "add", value: function (e) { if (void 0 === e.name) throw new TypeError( "renderer must contain at least `name` property" ); (this.renderers[e.name] = e), this.order.push(e.name); }, }, { key: "select", value: function (e) { var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : [], n = t.length; if (((t = t.length ? t : this.order), !n)) { var o = [/^(html5|native)/i, /^flash/i, /iframe$/i], i = function (e) { for (var t = 0, n = o.length; t < n; t++) if (o[t].test(e)) return t; return o.length; }; t.sort(function (e, t) { return i(e) - i(t); }); } for (var r = 0, a = t.length; r < a; r++) { var s = t[r], l = this.renderers[s]; if (null != l) for (var d = 0, u = e.length; d < u; d++) if ( "function" == typeof l.canPlayType && "string" == typeof e[d].type && l.canPlayType(e[d].type) ) return { rendererName: l.name, src: e[d].src }; } return null; }, }, { key: "order", set: function (e) { if (!Array.isArray(e)) throw new TypeError("order must be an array of strings."); this._order = e; }, get: function () { return this._order; }, }, { key: "renderers", set: function (e) { if ( null !== e && "object" !== (void 0 === e ? "undefined" : i(e)) ) throw new TypeError( "renderers must be an array of objects." ); this._renderers = e; }, get: function () { return this._renderers; }, }, ]), e ); })(), d = (n.renderer = new l()); s.default.Renderers = d; }, { 7: 7 }, ], 9: [ function (e, t, n) { "use strict"; var f = a(e(3)), p = a(e(2)), i = a(e(5)), o = e(16), r = a(o), m = (function (e) { { if (e && e.__esModule) return e; var t = {}; if (null != e) for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]); return (t.default = e), t; } })(e(25)), h = e(27), v = e(26), g = e(28); function a(e) { return e && e.__esModule ? e : { default: e }; } Object.assign(o.config, { usePluginFullScreen: !0, fullscreenText: null, useFakeFullscreen: !1, }), Object.assign(r.default.prototype, { isFullScreen: !1, isNativeFullScreen: !1, isInIframe: !1, isPluginClickThroughCreated: !1, fullscreenMode: "", containerSizeTimeout: null, buildfullscreen: function (n) { if (n.isVideo) { (n.isInIframe = f.default.location !== f.default.parent.location), n.detectFullscreenMode(); var o = this, e = (0, h.isString)(o.options.fullscreenText) ? o.options.fullscreenText : i.default.t("mejs.fullscreen"), t = p.default.createElement("div"); if ( ((t.className = o.options.classPrefix + "button " + o.options.classPrefix + "fullscreen-button"), (t.innerHTML = ''), o.addControlElement(t, "fullscreen"), t.addEventListener("click", function () { (m.HAS_TRUE_NATIVE_FULLSCREEN && m.IS_FULLSCREEN) || n.isFullScreen ? n.exitFullScreen() : n.enterFullScreen(); }), (n.fullscreenBtn = t), o.options.keyActions.push({ keys: [70], action: function (e, t, n, o) { o.ctrlKey || (void 0 !== e.enterFullScreen && (e.isFullScreen ? e.exitFullScreen() : e.enterFullScreen())); }, }), (o.exitFullscreenCallback = function (e) { var t = e.which || e.keyCode || 0; o.options.enableKeyboard && 27 === t && ((m.HAS_TRUE_NATIVE_FULLSCREEN && m.IS_FULLSCREEN) || o.isFullScreen) && n.exitFullScreen(); }), o.globalBind("keydown", o.exitFullscreenCallback), (o.normalHeight = 0), (o.normalWidth = 0), m.HAS_TRUE_NATIVE_FULLSCREEN) ) { n.globalBind(m.FULLSCREEN_EVENT_NAME, function () { n.isFullScreen && (m.isFullScreen() ? ((n.isNativeFullScreen = !0), n.setControlsSize()) : ((n.isNativeFullScreen = !1), n.exitFullScreen())); }); } } }, cleanfullscreen: function (e) { e.exitFullScreen(), e.globalUnbind("keydown", e.exitFullscreenCallback); }, detectFullscreenMode: function () { var e = null !== this.media.rendererName && /(native|html5)/i.test(this.media.rendererName), t = ""; return ( m.HAS_TRUE_NATIVE_FULLSCREEN && e ? (t = "native-native") : m.HAS_TRUE_NATIVE_FULLSCREEN && !e ? (t = "plugin-native") : this.usePluginFullScreen && m.SUPPORT_POINTER_EVENTS && (t = "plugin-click"), (this.fullscreenMode = t) ); }, enterFullScreen: function () { var o = this, e = null !== o.media.rendererName && /(html5|native)/i.test(o.media.rendererName), t = getComputedStyle(o.getElement(o.container)); if (o.isVideo) if ( !1 === o.options.useFakeFullscreen && m.IS_IOS && m.HAS_IOS_FULLSCREEN && "function" == typeof o.media.originalNode.webkitEnterFullscreen && o.media.originalNode.canPlayType( (0, g.getTypeFromFile)(o.media.getSrc()) ) ) o.media.originalNode.webkitEnterFullscreen(); else { if ( ((0, v.addClass)( p.default.documentElement, o.options.classPrefix + "fullscreen" ), (0, v.addClass)( o.getElement(o.container), o.options.classPrefix + "container-fullscreen" ), (o.normalHeight = parseFloat(t.height)), (o.normalWidth = parseFloat(t.width)), ("native-native" !== o.fullscreenMode && "plugin-native" !== o.fullscreenMode) || (m.requestFullScreen(o.getElement(o.container)), o.isInIframe && setTimeout(function e() { if (o.isNativeFullScreen) { var t = f.default.innerWidth || p.default.documentElement.clientWidth || p.default.body.clientWidth, n = screen.width; 0.002 * n < Math.abs(n - t) ? o.exitFullScreen() : setTimeout(e, 500); } }, 1e3)), (o.getElement(o.container).style.width = "100%"), (o.getElement(o.container).style.height = "100%"), (o.containerSizeTimeout = setTimeout(function () { (o.getElement(o.container).style.width = "100%"), (o.getElement(o.container).style.height = "100%"), o.setControlsSize(); }, 500)), e) ) (o.node.style.width = "100%"), (o.node.style.height = "100%"); else for ( var n = o .getElement(o.container) .querySelectorAll("embed, object, video"), i = n.length, r = 0; r < i; r++ ) (n[r].style.width = "100%"), (n[r].style.height = "100%"); o.options.setDimensions && "function" == typeof o.media.setSize && o.media.setSize(screen.width, screen.height); for ( var a = o.getElement(o.layers).children, s = a.length, l = 0; l < s; l++ ) (a[l].style.width = "100%"), (a[l].style.height = "100%"); o.fullscreenBtn && ((0, v.removeClass)( o.fullscreenBtn, o.options.classPrefix + "fullscreen" ), (0, v.addClass)( o.fullscreenBtn, o.options.classPrefix + "unfullscreen" )), o.setControlsSize(), (o.isFullScreen = !0); var d = Math.min( screen.width / o.width, screen.height / o.height ), u = o .getElement(o.container) .querySelector( "." + o.options.classPrefix + "captions-text" ); u && ((u.style.fontSize = 100 * d + "%"), (u.style.lineHeight = "normal"), (o .getElement(o.container) .querySelector( "." + o.options.classPrefix + "captions-position" ).style.bottom = (screen.height - o.normalHeight) / 2 - o.getElement(o.controls).offsetHeight / 2 + d + 15 + "px")); var c = (0, h.createEvent)( "enteredfullscreen", o.getElement(o.container) ); o.getElement(o.container).dispatchEvent(c); } }, exitFullScreen: function () { var e = this, t = null !== e.media.rendererName && /(native|html5)/i.test(e.media.rendererName); if (e.isVideo) { if ( (clearTimeout(e.containerSizeTimeout), m.HAS_TRUE_NATIVE_FULLSCREEN && (m.IS_FULLSCREEN || e.isFullScreen) && m.cancelFullScreen(), (0, v.removeClass)( p.default.documentElement, e.options.classPrefix + "fullscreen" ), (0, v.removeClass)( e.getElement(e.container), e.options.classPrefix + "container-fullscreen" ), e.options.setDimensions) ) { if ( ((e.getElement(e.container).style.width = e.normalWidth + "px"), (e.getElement(e.container).style.height = e.normalHeight + "px"), t) ) (e.node.style.width = e.normalWidth + "px"), (e.node.style.height = e.normalHeight + "px"); else for ( var n = e .getElement(e.container) .querySelectorAll("embed, object, video"), o = n.length, i = 0; i < o; i++ ) (n[i].style.width = e.normalWidth + "px"), (n[i].style.height = e.normalHeight + "px"); "function" == typeof e.media.setSize && e.media.setSize(e.normalWidth, e.normalHeight); for ( var r = e.getElement(e.layers).children, a = r.length, s = 0; s < a; s++ ) (r[s].style.width = e.normalWidth + "px"), (r[s].style.height = e.normalHeight + "px"); } e.fullscreenBtn && ((0, v.removeClass)( e.fullscreenBtn, e.options.classPrefix + "unfullscreen" ), (0, v.addClass)( e.fullscreenBtn, e.options.classPrefix + "fullscreen" )), e.setControlsSize(), (e.isFullScreen = !1); var l = e .getElement(e.container) .querySelector("." + e.options.classPrefix + "captions-text"); l && ((l.style.fontSize = ""), (l.style.lineHeight = ""), (e .getElement(e.container) .querySelector( "." + e.options.classPrefix + "captions-position" ).style.bottom = "")); var d = (0, h.createEvent)( "exitedfullscreen", e.getElement(e.container) ); e.getElement(e.container).dispatchEvent(d); } }, }); }, { 16: 16, 2: 2, 25: 25, 26: 26, 27: 27, 28: 28, 3: 3, 5: 5 }, ], 10: [ function (e, t, n) { "use strict"; var c = r(e(2)), o = e(16), i = r(o), f = r(e(5)), p = e(27), m = e(26); function r(e) { return e && e.__esModule ? e : { default: e }; } Object.assign(o.config, { playText: null, pauseText: null }), Object.assign(i.default.prototype, { buildplaypause: function (e, t, n, o) { var i = this, r = i.options, a = (0, p.isString)(r.playText) ? r.playText : f.default.t("mejs.play"), s = (0, p.isString)(r.pauseText) ? r.pauseText : f.default.t("mejs.pause"), l = c.default.createElement("div"); (l.className = i.options.classPrefix + "button " + i.options.classPrefix + "playpause-button " + i.options.classPrefix + "play"), (l.innerHTML = ''), l.addEventListener("click", function () { i.paused ? i.play() : i.pause(); }); var d = l.querySelector("button"); function u(e) { "play" === e ? ((0, m.removeClass)(l, i.options.classPrefix + "play"), (0, m.removeClass)(l, i.options.classPrefix + "replay"), (0, m.addClass)(l, i.options.classPrefix + "pause"), d.setAttribute("title", s), d.setAttribute("aria-label", s)) : ((0, m.removeClass)(l, i.options.classPrefix + "pause"), (0, m.removeClass)(l, i.options.classPrefix + "replay"), (0, m.addClass)(l, i.options.classPrefix + "play"), d.setAttribute("title", a), d.setAttribute("aria-label", a)); } i.addControlElement(l, "playpause"), u("pse"), o.addEventListener("loadedmetadata", function () { -1 === o.rendererName.indexOf("flash") && u("pse"); }), o.addEventListener("play", function () { u("play"); }), o.addEventListener("playing", function () { u("play"); }), o.addEventListener("pause", function () { u("pse"); }), o.addEventListener("ended", function () { e.options.loop || ((0, m.removeClass)(l, i.options.classPrefix + "pause"), (0, m.removeClass)(l, i.options.classPrefix + "play"), (0, m.addClass)(l, i.options.classPrefix + "replay"), d.setAttribute("title", a), d.setAttribute("aria-label", a)); }); }, }); }, { 16: 16, 2: 2, 26: 26, 27: 27, 5: 5 }, ], 11: [ function (e, t, n) { "use strict"; var p = r(e(2)), o = e(16), i = r(o), m = r(e(5)), y = e(25), E = e(30), b = e(26); function r(e) { return e && e.__esModule ? e : { default: e }; } Object.assign(o.config, { enableProgressTooltip: !0, useSmoothHover: !0, forceLive: !1, }), Object.assign(i.default.prototype, { buildprogress: function (h, s, e, d) { var u = 0, v = !1, c = !1, g = this, t = h.options.autoRewind, n = h.options.enableProgressTooltip ? '00:00' : "", o = p.default.createElement("div"); (o.className = g.options.classPrefix + "time-rail"), (o.innerHTML = '' + n + ""), g.addControlElement(o, "progress"), g.options.keyActions.push( { keys: [37, 227], action: function (e) { if (!isNaN(e.duration) && 0 < e.duration) { e.isVideo && (e.showControls(), e.startControlsTimer()); var t = e .getElement(e.container) .querySelector( "." + g.options.classPrefix + "time-total" ); t && t.focus(); var n = Math.max( e.currentTime - e.options.defaultSeekBackwardInterval(e), 0 ); e.paused || e.pause(), setTimeout(function () { e.setCurrentTime(n); }, 0), setTimeout(function () { e.play(); }, 0); } }, }, { keys: [39, 228], action: function (e) { if (!isNaN(e.duration) && 0 < e.duration) { e.isVideo && (e.showControls(), e.startControlsTimer()); var t = e .getElement(e.container) .querySelector( "." + g.options.classPrefix + "time-total" ); t && t.focus(); var n = Math.min( e.currentTime + e.options.defaultSeekForwardInterval(e), e.duration ); e.paused || e.pause(), setTimeout(function () { e.setCurrentTime(n); }, 0), setTimeout(function () { e.play(); }, 0); } }, } ), (g.rail = s.querySelector( "." + g.options.classPrefix + "time-rail" )), (g.total = s.querySelector( "." + g.options.classPrefix + "time-total" )), (g.loaded = s.querySelector( "." + g.options.classPrefix + "time-loaded" )), (g.current = s.querySelector( "." + g.options.classPrefix + "time-current" )), (g.handle = s.querySelector( "." + g.options.classPrefix + "time-handle" )), (g.timefloat = s.querySelector( "." + g.options.classPrefix + "time-float" )), (g.timefloatcurrent = s.querySelector( "." + g.options.classPrefix + "time-float-current" )), (g.slider = s.querySelector( "." + g.options.classPrefix + "time-slider" )), (g.hovered = s.querySelector( "." + g.options.classPrefix + "time-hovered" )), (g.buffer = s.querySelector( "." + g.options.classPrefix + "time-buffering" )), (g.newTime = 0), (g.forcedHandlePause = !1), (g.setTransformStyle = function (e, t) { (e.style.transform = t), (e.style.webkitTransform = t), (e.style.MozTransform = t), (e.style.msTransform = t), (e.style.OTransform = t); }), (g.buffer.style.display = "none"); var i = function (e) { var t = getComputedStyle(g.total), n = (0, b.offset)(g.total), o = g.total.offsetWidth, i = void 0 !== t.webkitTransform ? "webkitTransform" : void 0 !== t.mozTransform ? "mozTransform " : void 0 !== t.oTransform ? "oTransform" : void 0 !== t.msTransform ? "msTransform" : "transform", r = "WebKitCSSMatrix" in window ? "WebKitCSSMatrix" : "MSCSSMatrix" in window ? "MSCSSMatrix" : "CSSMatrix" in window ? "CSSMatrix" : void 0, a = 0, s = 0, l = 0, d = void 0; if ( ((d = e.originalEvent && e.originalEvent.changedTouches ? e.originalEvent.changedTouches[0].pageX : e.changedTouches ? e.changedTouches[0].pageX : e.pageX), g.getDuration()) ) { if ( (d < n.left ? (d = n.left) : d > o + n.left && (d = o + n.left), (a = (l = d - n.left) / o), (g.newTime = a * g.getDuration()), v && null !== g.getCurrentTime() && g.newTime.toFixed(4) !== g.getCurrentTime().toFixed(4) && (g.setCurrentRailHandle(g.newTime), g.updateCurrent(g.newTime)), !y.IS_IOS && !y.IS_ANDROID) ) { if ( (l < 0 && (l = 0), g.options.useSmoothHover && null !== r && void 0 !== window[r]) ) { var u = new window[r](getComputedStyle(g.handle)[i]) .m41, c = l / parseFloat(getComputedStyle(g.total).width) - u / parseFloat(getComputedStyle(g.total).width); (g.hovered.style.left = u + "px"), g.setTransformStyle(g.hovered, "scaleX(" + c + ")"), g.hovered.setAttribute("pos", l), 0 <= c ? (0, b.removeClass)(g.hovered, "negative") : (0, b.addClass)(g.hovered, "negative"); } if (g.timefloat) { var f = g.timefloat.offsetWidth / 2, p = mejs.Utils.offset(g.getElement(g.container)), m = getComputedStyle(g.timefloat); (s = d - p.left < g.timefloat.offsetWidth ? f : d - p.left >= g.getElement(g.container).offsetWidth - f ? g.total.offsetWidth - f : l), (0, b.hasClass)( g.getElement(g.container), g.options.classPrefix + "long-video" ) && (s += parseFloat(m.marginLeft) / 2 + g.timefloat.offsetWidth / 2), (g.timefloat.style.left = s + "px"), (g.timefloatcurrent.innerHTML = (0, E.secondsToTimeCode)( g.newTime, h.options.alwaysShowHours, h.options.showTimecodeFrameCount, h.options.framesPerSecond, h.options.secondsDecimalLength, h.options.timeFormat )), (g.timefloat.style.display = "block"); } } } else y.IS_IOS || y.IS_ANDROID || !g.timefloat || ((s = g.timefloat.offsetWidth + o >= g.getElement(g.container).offsetWidth ? g.timefloat.offsetWidth / 2 : 0), (g.timefloat.style.left = s + "px"), (g.timefloat.style.left = s + "px"), (g.timefloat.style.display = "block")); }, f = function () { 1e3 <= new Date() - u && g.play(); }; g.slider.addEventListener("focus", function () { h.options.autoRewind = !1; }), g.slider.addEventListener("blur", function () { h.options.autoRewind = t; }), g.slider.addEventListener("keydown", function (e) { if ( (1e3 <= new Date() - u && (c = g.paused), g.options.enableKeyboard && g.options.keyActions.length) ) { var t = e.which || e.keyCode || 0, n = g.getDuration(), o = h.options.defaultSeekForwardInterval(d), i = h.options.defaultSeekBackwardInterval(d), r = g.getCurrentTime(), a = g .getElement(g.container) .querySelector( "." + g.options.classPrefix + "volume-slider" ); if (38 === t || 40 === t) { a && (a.style.display = "block"), g.isVideo && (g.showControls(), g.startControlsTimer()); var s = 38 === t ? Math.min(g.volume + 0.1, 1) : Math.max(g.volume - 0.1, 0), l = s <= 0; return g.setVolume(s), void g.setMuted(l); } switch ((a && (a.style.display = "none"), t)) { case 37: g.getDuration() !== 1 / 0 && (r -= i); break; case 39: g.getDuration() !== 1 / 0 && (r += o); break; case 36: r = 0; break; case 35: r = n; break; case 13: case 32: return void ( y.IS_FIREFOX && (g.paused ? g.play() : g.pause()) ); default: return; } (r = r < 0 || isNaN(r) ? 0 : n <= r ? n : Math.floor(r)), (u = new Date()), c || h.pause(), setTimeout(function () { g.setCurrentTime(r); }, 0), r < g.getDuration() && !c && setTimeout(f, 1100), h.showControls(), e.preventDefault(), e.stopPropagation(); } }); var r = ["mousedown", "touchstart"]; g.slider.addEventListener("dragstart", function () { return !1; }); for (var a = 0, l = r.length; a < l; a++) g.slider.addEventListener( r[a], function (e) { if ( ((g.forcedHandlePause = !1), g.getDuration() !== 1 / 0 && (1 === e.which || 0 === e.which)) ) { g.paused || (g.pause(), (g.forcedHandlePause = !0)), (v = !0), i(e); for ( var t = ["mouseup", "touchend"], n = 0, o = t.length; n < o; n++ ) g.getElement(g.container).addEventListener( t[n], function (e) { var t = e.target; (t === g.slider || t.closest( "." + g.options.classPrefix + "time-slider" )) && i(e); } ); g.globalBind("mouseup.dur touchend.dur", function () { v && null !== g.getCurrentTime() && g.newTime.toFixed(4) !== g.getCurrentTime().toFixed(4) && (g.setCurrentTime(g.newTime), g.setCurrentRailHandle(g.newTime), g.updateCurrent(g.newTime)), g.forcedHandlePause && (g.slider.focus(), g.play()), (g.forcedHandlePause = !1), (v = !1), g.timefloat && (g.timefloat.style.display = "none"); }); } }, !(!y.SUPPORT_PASSIVE_EVENT || "touchstart" !== r[a]) && { passive: !0, } ); g.slider.addEventListener("mouseenter", function (e) { e.target === g.slider && g.getDuration() !== 1 / 0 && (g .getElement(g.container) .addEventListener("mousemove", function (e) { var t = e.target; (t === g.slider || t.closest( "." + g.options.classPrefix + "time-slider" )) && i(e); }), !g.timefloat || y.IS_IOS || y.IS_ANDROID || (g.timefloat.style.display = "block"), g.hovered && !y.IS_IOS && !y.IS_ANDROID && g.options.useSmoothHover && (0, b.removeClass)(g.hovered, "no-hover")); }), g.slider.addEventListener("mouseleave", function () { g.getDuration() !== 1 / 0 && (v || (g.timefloat && (g.timefloat.style.display = "none"), g.hovered && g.options.useSmoothHover && (0, b.addClass)(g.hovered, "no-hover"))); }), (g.broadcastCallback = function (e) { var t, n, o, i, r = s.querySelector( "." + g.options.classPrefix + "broadcast" ); if (g.options.forceLive || g.getDuration() === 1 / 0) { if (!r && g.options.forceLive) { var a = p.default.createElement("span"); (a.className = g.options.classPrefix + "broadcast"), (a.innerText = m.default.t("mejs.live-broadcast")), (g.slider.style.display = "none"), g.rail.appendChild(a); } } else r && ((g.slider.style.display = ""), r.remove()), h.setProgressRail(e), g.forcedHandlePause || h.setCurrentRail(e), (t = g.getCurrentTime()), (n = m.default.t("mejs.time-slider")), (o = (0, E.secondsToTimeCode)( t, h.options.alwaysShowHours, h.options.showTimecodeFrameCount, h.options.framesPerSecond, h.options.secondsDecimalLength, h.options.timeFormat )), (i = g.getDuration()), g.slider.setAttribute("role", "slider"), (g.slider.tabIndex = 0), d.paused ? (g.slider.setAttribute("aria-label", n), g.slider.setAttribute("aria-valuemin", 0), g.slider.setAttribute( "aria-valuemax", isNaN(i) ? 0 : i ), g.slider.setAttribute("aria-valuenow", t), g.slider.setAttribute("aria-valuetext", o)) : (g.slider.removeAttribute("aria-label"), g.slider.removeAttribute("aria-valuemin"), g.slider.removeAttribute("aria-valuemax"), g.slider.removeAttribute("aria-valuenow"), g.slider.removeAttribute("aria-valuetext")); }), d.addEventListener("progress", g.broadcastCallback), d.addEventListener("timeupdate", g.broadcastCallback), d.addEventListener("play", function () { g.buffer.style.display = "none"; }), d.addEventListener("playing", function () { g.buffer.style.display = "none"; }), d.addEventListener("seeking", function () { g.buffer.style.display = ""; }), d.addEventListener("seeked", function () { g.buffer.style.display = "none"; }), d.addEventListener("pause", function () { g.buffer.style.display = "none"; }), d.addEventListener("waiting", function () { g.buffer.style.display = ""; }), d.addEventListener("loadeddata", function () { g.buffer.style.display = ""; }), d.addEventListener("canplay", function () { g.buffer.style.display = "none"; }), d.addEventListener("error", function () { g.buffer.style.display = "none"; }), g .getElement(g.container) .addEventListener("controlsresize", function (e) { g.getDuration() !== 1 / 0 && (h.setProgressRail(e), g.forcedHandlePause || h.setCurrentRail(e)); }); }, cleanprogress: function (e, t, n, o) { o.removeEventListener("progress", e.broadcastCallback), o.removeEventListener("timeupdate", e.broadcastCallback), e.rail && e.rail.remove(); }, setProgressRail: function (e) { var t = this, n = void 0 !== e ? e.detail.target || e.target : t.media, o = null; n && n.buffered && 0 < n.buffered.length && n.buffered.end && t.getDuration() ? (o = n.buffered.end(n.buffered.length - 1) / t.getDuration()) : n && void 0 !== n.bytesTotal && 0 < n.bytesTotal && void 0 !== n.bufferedBytes ? (o = n.bufferedBytes / n.bytesTotal) : e && e.lengthComputable && 0 !== e.total && (o = e.loaded / e.total), null !== o && ((o = Math.min(1, Math.max(0, o))), t.loaded && t.setTransformStyle(t.loaded, "scaleX(" + o + ")")); }, setCurrentRailHandle: function (e) { this.setCurrentRailMain(this, e); }, setCurrentRail: function () { this.setCurrentRailMain(this); }, setCurrentRailMain: function (e, t) { if (void 0 !== e.getCurrentTime() && e.getDuration()) { var n = void 0 === t ? e.getCurrentTime() : t; if (e.total && e.handle) { var o = parseFloat(getComputedStyle(e.total).width), i = Math.round((o * n) / e.getDuration()), r = i - Math.round(e.handle.offsetWidth / 2); if ( ((r = r < 0 ? 0 : r), e.setTransformStyle(e.current, "scaleX(" + i / o + ")"), e.setTransformStyle(e.handle, "translateX(" + r + "px)"), e.options.useSmoothHover && !(0, b.hasClass)(e.hovered, "no-hover")) ) { var a = parseInt(e.hovered.getAttribute("pos"), 10), s = (a = isNaN(a) ? 0 : a) / o - r / o; (e.hovered.style.left = r + "px"), e.setTransformStyle(e.hovered, "scaleX(" + s + ")"), 0 <= s ? (0, b.removeClass)(e.hovered, "negative") : (0, b.addClass)(e.hovered, "negative"); } } } }, }); }, { 16: 16, 2: 2, 25: 25, 26: 26, 30: 30, 5: 5 }, ], 12: [ function (e, t, n) { "use strict"; var a = r(e(2)), o = e(16), i = r(o), s = e(30), l = e(26); function r(e) { return e && e.__esModule ? e : { default: e }; } Object.assign(o.config, { duration: 0, timeAndDurationSeparator: " | ", }), Object.assign(i.default.prototype, { buildcurrent: function (e, t, n, o) { var i = this, r = a.default.createElement("div"); (r.className = i.options.classPrefix + "time"), r.setAttribute("role", "timer"), r.setAttribute("aria-live", "off"), (r.innerHTML = '' + (0, s.secondsToTimeCode)( 0, e.options.alwaysShowHours, e.options.showTimecodeFrameCount, e.options.framesPerSecond, e.options.secondsDecimalLength, e.options.timeFormat ) + ""), i.addControlElement(r, "current"), e.updateCurrent(), (i.updateTimeCallback = function () { i.controlsAreVisible && e.updateCurrent(); }), o.addEventListener("timeupdate", i.updateTimeCallback); }, cleancurrent: function (e, t, n, o) { o.removeEventListener("timeupdate", e.updateTimeCallback); }, buildduration: function (e, t, n, o) { var i = this; if ( t.lastChild.querySelector( "." + i.options.classPrefix + "currenttime" ) ) t.querySelector( "." + i.options.classPrefix + "time" ).innerHTML += i.options.timeAndDurationSeparator + '' + (0, s.secondsToTimeCode)( i.options.duration, i.options.alwaysShowHours, i.options.showTimecodeFrameCount, i.options.framesPerSecond, i.options.secondsDecimalLength, i.options.timeFormat ) + ""; else { t.querySelector("." + i.options.classPrefix + "currenttime") && (0, l.addClass)( t.querySelector("." + i.options.classPrefix + "currenttime") .parentNode, i.options.classPrefix + "currenttime-container" ); var r = a.default.createElement("div"); (r.className = i.options.classPrefix + "time " + i.options.classPrefix + "duration-container"), (r.innerHTML = '' + (0, s.secondsToTimeCode)( i.options.duration, i.options.alwaysShowHours, i.options.showTimecodeFrameCount, i.options.framesPerSecond, i.options.secondsDecimalLength, i.options.timeFormat ) + ""), i.addControlElement(r, "duration"); } (i.updateDurationCallback = function () { i.controlsAreVisible && e.updateDuration(); }), o.addEventListener("timeupdate", i.updateDurationCallback); }, cleanduration: function (e, t, n, o) { o.removeEventListener("timeupdate", e.updateDurationCallback); }, updateCurrent: function () { var e = this, t = e.getCurrentTime(); isNaN(t) && (t = 0); var n = (0, s.secondsToTimeCode)( t, e.options.alwaysShowHours, e.options.showTimecodeFrameCount, e.options.framesPerSecond, e.options.secondsDecimalLength, e.options.timeFormat ); 5 < n.length ? (0, l.addClass)( e.getElement(e.container), e.options.classPrefix + "long-video" ) : (0, l.removeClass)( e.getElement(e.container), e.options.classPrefix + "long-video" ), e .getElement(e.controls) .querySelector("." + e.options.classPrefix + "currenttime") && (e .getElement(e.controls) .querySelector( "." + e.options.classPrefix + "currenttime" ).innerText = n); }, updateDuration: function () { var e = this, t = e.getDuration(); void 0 !== e.media && (isNaN(t) || t === 1 / 0 || t < 0) && (e.media.duration = e.options.duration = t = 0), 0 < e.options.duration && (t = e.options.duration); var n = (0, s.secondsToTimeCode)( t, e.options.alwaysShowHours, e.options.showTimecodeFrameCount, e.options.framesPerSecond, e.options.secondsDecimalLength, e.options.timeFormat ); 5 < n.length ? (0, l.addClass)( e.getElement(e.container), e.options.classPrefix + "long-video" ) : (0, l.removeClass)( e.getElement(e.container), e.options.classPrefix + "long-video" ), e .getElement(e.controls) .querySelector("." + e.options.classPrefix + "duration") && 0 < t && (e .getElement(e.controls) .querySelector( "." + e.options.classPrefix + "duration" ).innerHTML = n); }, }); }, { 16: 16, 2: 2, 26: 26, 30: 30 }, ], 13: [ function (e, t, n) { "use strict"; var L = r(e(2)), d = r(e(7)), F = r(e(5)), o = e(16), i = r(o), m = e(30), j = e(27), I = e(26); function r(e) { return e && e.__esModule ? e : { default: e }; } Object.assign(o.config, { startLanguage: "", tracksText: null, chaptersText: null, tracksAriaLive: !1, hideCaptionsButtonWhenEmpty: !0, toggleCaptionsButtonWhenOnlyOne: !1, slidesSelector: "", }), Object.assign(i.default.prototype, { hasChapters: !1, buildtracks: function (o, e, t, n) { if ( (this.findTracks(), o.tracks.length || (o.trackFiles && 0 !== !o.trackFiles.length)) ) { var i = this, r = i.options.tracksAriaLive ? ' role="log" aria-live="assertive" aria-atomic="false"' : "", a = (0, j.isString)(i.options.tracksText) ? i.options.tracksText : F.default.t("mejs.captions-subtitles"), s = (0, j.isString)(i.options.chaptersText) ? i.options.chaptersText : F.default.t("mejs.captions-chapters"), l = null === o.trackFiles ? o.tracks.length : o.trackFiles.length; if (i.domNode.textTracks) for (var d = i.domNode.textTracks.length - 1; 0 <= d; d--) i.domNode.textTracks[d].mode = "hidden"; i.cleartracks(o), (o.captions = L.default.createElement("div")), (o.captions.className = i.options.classPrefix + "captions-layer " + i.options.classPrefix + "layer"), (o.captions.innerHTML = '
          '), (o.captions.style.display = "none"), t.insertBefore(o.captions, t.firstChild), (o.captionsText = o.captions.querySelector( "." + i.options.classPrefix + "captions-text" )), (o.captionsButton = L.default.createElement("div")), (o.captionsButton.className = i.options.classPrefix + "button " + i.options.classPrefix + "captions-button"), (o.captionsButton.innerHTML = '
          "), i.addControlElement(o.captionsButton, "tracks"), (o.captionsButton.querySelector( "." + i.options.classPrefix + "captions-selector-input" ).disabled = !1), (o.chaptersButton = L.default.createElement("div")), (o.chaptersButton.className = i.options.classPrefix + "button " + i.options.classPrefix + "chapters-button"), (o.chaptersButton.innerHTML = '
            '); for (var u = 0, c = 0; c < l; c++) { var f = o.tracks[c].kind; o.tracks[c].src.trim() && ("subtitles" === f || "captions" === f ? u++ : "chapters" !== f || e.querySelector( "." + i.options.classPrefix + "chapter-selector" ) || o.captionsButton.parentNode.insertBefore( o.chaptersButton, o.captionsButton )); } (o.trackToLoad = -1), (o.selectedTrack = null), (o.isLoadingTrack = !1); for (var p = 0; p < l; p++) { var m = o.tracks[p].kind; !o.tracks[p].src.trim() || ("subtitles" !== m && "captions" !== m) || o.addTrackButton( o.tracks[p].trackId, o.tracks[p].srclang, o.tracks[p].label ); } o.loadNextTrack(); var h = ["mouseenter", "focusin"], v = ["mouseleave", "focusout"]; if (i.options.toggleCaptionsButtonWhenOnlyOne && 1 === u) o.captionsButton.addEventListener("click", function (e) { var t = "none"; null === o.selectedTrack && (t = o.tracks[0].trackId); var n = e.keyCode || e.which; o.setTrack(t, void 0 !== n); }); else { for ( var g = o.captionsButton.querySelectorAll( "." + i.options.classPrefix + "captions-selector-label" ), y = o.captionsButton.querySelectorAll("input[type=radio]"), E = 0, b = h.length; E < b; E++ ) o.captionsButton.addEventListener(h[E], function () { (0, I.removeClass)(this.querySelector("." + i.options.classPrefix + "captions-selector"), i.options.classPrefix + "offscreen"); }); for (var S = 0, x = v.length; S < x; S++) o.captionsButton.addEventListener(v[S], function () { (0, I.addClass)(this.querySelector("." + i.options.classPrefix + "captions-selector"), i.options.classPrefix + "offscreen"); }); for (var w = 0, P = y.length; w < P; w++) y[w].addEventListener("click", function (e) { var t = e.keyCode || e.which; o.setTrack(this.value, void 0 !== t); }); for (var T = 0, C = g.length; T < C; T++) g[T].addEventListener("click", function (e) { var t = (0, I.siblings)(this, function (e) { return "INPUT" === e.tagName; })[0], n = (0, j.createEvent)("click", t); t.dispatchEvent(n), e.preventDefault(); }); o.captionsButton.addEventListener("keydown", function (e) { e.stopPropagation(); }); } for (var k = 0, _ = h.length; k < _; k++) o.chaptersButton.addEventListener(h[k], function () { this.querySelector( "." + i.options.classPrefix + "chapters-selector-list" ).children.length && (0, I.removeClass)( this.querySelector( "." + i.options.classPrefix + "chapters-selector" ), i.options.classPrefix + "offscreen" ); }); for (var N = 0, A = v.length; N < A; N++) o.chaptersButton.addEventListener(v[N], function () { (0, I.addClass)(this.querySelector("." + i.options.classPrefix + "chapters-selector"), i.options.classPrefix + "offscreen"); }); o.chaptersButton.addEventListener("keydown", function (e) { e.stopPropagation(); }), o.options.alwaysShowControls ? (0, I.addClass)( o .getElement(o.container) .querySelector( "." + i.options.classPrefix + "captions-position" ), i.options.classPrefix + "captions-position-hover" ) : (o .getElement(o.container) .addEventListener("controlsshown", function () { (0, I.addClass)(o.getElement(o.container).querySelector("." + i.options.classPrefix + "captions-position"), i.options.classPrefix + "captions-position-hover"); }), o .getElement(o.container) .addEventListener("controlshidden", function () { n.paused || (0, I.removeClass)( o .getElement(o.container) .querySelector( "." + i.options.classPrefix + "captions-position" ), i.options.classPrefix + "captions-position-hover" ); })), n.addEventListener("timeupdate", function () { o.displayCaptions(); }), "" !== o.options.slidesSelector && ((o.slidesContainer = L.default.querySelectorAll( o.options.slidesSelector )), n.addEventListener("timeupdate", function () { o.displaySlides(); })); } }, cleartracks: function (e) { e && (e.captions && e.captions.remove(), e.chapters && e.chapters.remove(), e.captionsText && e.captionsText.remove(), e.captionsButton && e.captionsButton.remove(), e.chaptersButton && e.chaptersButton.remove()); }, rebuildtracks: function () { var e = this; e.findTracks(), e.buildtracks( e, e.getElement(e.controls), e.getElement(e.layers), e.media ); }, findTracks: function () { var e = this, t = null === e.trackFiles ? e.node.querySelectorAll("track") : e.trackFiles, n = t.length; e.tracks = []; for (var o = 0; o < n; o++) { var i = t[o], r = i.getAttribute("srclang").toLowerCase() || "", a = e.id + "_track_" + o + "_" + i.getAttribute("kind") + "_" + r; e.tracks.push({ trackId: a, srclang: r, src: i.getAttribute("src"), kind: i.getAttribute("kind"), label: i.getAttribute("label") || "", entries: [], isLoaded: !1, }); } }, setTrack: function (e, t) { for ( var n = this, o = n.captionsButton.querySelectorAll('input[type="radio"]'), i = n.captionsButton.querySelectorAll( "." + n.options.classPrefix + "captions-selected" ), r = n.captionsButton.querySelector( 'input[value="' + e + '"]' ), a = 0, s = o.length; a < s; a++ ) o[a].checked = !1; for (var l = 0, d = i.length; l < d; l++) (0, I.removeClass)( i[l], n.options.classPrefix + "captions-selected" ); r.checked = !0; for ( var u = (0, I.siblings)(r, function (e) { return (0, I.hasClass)(e, n.options.classPrefix + "captions-selector-label"); }), c = 0, f = u.length; c < f; c++ ) (0, I.addClass)( u[c], n.options.classPrefix + "captions-selected" ); if ("none" === e) (n.selectedTrack = null), (0, I.removeClass)( n.captionsButton, n.options.classPrefix + "captions-enabled" ); else for (var p = 0, m = n.tracks.length; p < m; p++) { var h = n.tracks[p]; if (h.trackId === e) { null === n.selectedTrack && (0, I.addClass)( n.captionsButton, n.options.classPrefix + "captions-enabled" ), (n.selectedTrack = h), n.captions.setAttribute("lang", n.selectedTrack.srclang), n.displayCaptions(); break; } } var v = (0, j.createEvent)("captionschange", n.media); (v.detail.caption = n.selectedTrack), n.media.dispatchEvent(v), t || setTimeout(function () { n.getElement(n.container).focus(); }, 500); }, loadNextTrack: function () { var e = this; e.trackToLoad++, e.trackToLoad < e.tracks.length ? ((e.isLoadingTrack = !0), e.loadTrack(e.trackToLoad)) : ((e.isLoadingTrack = !1), e.checkForTracks()); }, loadTrack: function (e) { var t = this, n = t.tracks[e]; void 0 === n || (void 0 === n.src && "" === n.src) || (0, I.ajax)( n.src, "text", function (e) { (n.entries = "string" == typeof e && /"); }, checkForTracks: function () { var e = this, t = !1; if (e.options.hideCaptionsButtonWhenEmpty) { for (var n = 0, o = e.tracks.length; n < o; n++) { var i = e.tracks[n].kind; if ( ("subtitles" === i || "captions" === i) && e.tracks[n].isLoaded ) { t = !0; break; } } (e.captionsButton.style.display = t ? "" : "none"), e.setControlsSize(); } }, displayCaptions: function () { if (void 0 !== this.tracks) { var e = this, t = e.selectedTrack; if (null !== t && t.isLoaded) { var n = e.searchTrackPosition(t.entries, e.media.currentTime); if (-1 < n) { var o = t.entries[n].text; return ( "function" == typeof e.options.captionTextPreprocessor && (o = e.options.captionTextPreprocessor(o)), (e.captionsText.innerHTML = (function (e) { var t = L.default.createElement("div"); t.innerHTML = e; for ( var n = t.getElementsByTagName("script"), o = n.length; o--; ) n[o].remove(); for ( var i = t.getElementsByTagName("*"), r = 0, a = i.length; r < a; r++ ) for ( var s = i[r].attributes, l = Array.prototype.slice.call(s), d = 0, u = l.length; d < u; d++ ) l[d].name.startsWith("on") || l[d].value.startsWith("javascript") ? i[r].remove() : "style" === l[d].name && i[r].removeAttribute(l[d].name); return t.innerHTML; })(o)), (e.captionsText.className = e.options.classPrefix + "captions-text " + (t.entries[n].identifier || "")), (e.captions.style.display = ""), void (e.captions.style.height = "0px") ); } e.captions.style.display = "none"; } else e.captions.style.display = "none"; } }, setupSlides: function (e) { (this.slides = e), (this.slides.entries.imgs = [this.slides.entries.length]), this.showSlide(0); }, showSlide: function (e) { var i = this, r = this; if (void 0 !== r.tracks && void 0 !== r.slidesContainer) { var t = r.slides.entries[e].text, n = r.slides.entries[e].imgs; if (void 0 === n || void 0 === n.fadeIn) { var a = L.default.createElement("img"); (a.src = t), a.addEventListener("load", function () { var e = i, t = (0, I.siblings)(e, function (e) { return t(e); }); (e.style.display = "none"), (r.slidesContainer.innerHTML += e.innerHTML), (0, I.fadeIn)(r.slidesContainer.querySelector(a)); for (var n = 0, o = t.length; n < o; n++) (0, I.fadeOut)(t[n], 400); }), (r.slides.entries[e].imgs = n = a); } else if (!(0, I.visible)(n)) { var o = (0, I.siblings)(self, function (e) { return o(e); }); (0, I.fadeIn)(r.slidesContainer.querySelector(n)); for (var s = 0, l = o.length; s < l; s++) (0, I.fadeOut)(o[s]); } } }, displaySlides: function () { if (void 0 !== this.slides) { var e = this.slides, t = this.searchTrackPosition( e.entries, this.media.currentTime ); -1 < t && this.showSlide(t); } }, drawChapters: function (e) { var r = this, t = e.entries.length; if (t) { r.chaptersButton.querySelector("ul").innerHTML = ""; for (var n = 0; n < t; n++) r.chaptersButton.querySelector("ul").innerHTML += '
          • "; for ( var o = r.chaptersButton.querySelectorAll( 'input[type="radio"]' ), i = r.chaptersButton.querySelectorAll( "." + r.options.classPrefix + "chapters-selector-label" ), a = 0, s = o.length; a < s; a++ ) (o[a].disabled = !1), (o[a].checked = !1), o[a].addEventListener("click", function (e) { var t = r.chaptersButton.querySelectorAll("li"), n = (0, I.siblings)(this, function (e) { return (0, I.hasClass)(e, r.options.classPrefix + "chapters-selector-label"); })[0]; (this.checked = !0), this.parentNode.setAttribute("aria-checked", !0), (0, I.addClass)( n, r.options.classPrefix + "chapters-selected" ), (0, I.removeClass)( r.chaptersButton.querySelector( "." + r.options.classPrefix + "chapters-selected" ), r.options.classPrefix + "chapters-selected" ); for (var o = 0, i = t.length; o < i; o++) t[o].setAttribute("aria-checked", !1); void 0 === (e.keyCode || e.which) && setTimeout(function () { r.getElement(r.container).focus(); }, 500), r.media.setCurrentTime(parseFloat(this.value)), r.media.paused && r.media.play(); }); for (var l = 0, d = i.length; l < d; l++) i[l].addEventListener("click", function (e) { var t = (0, I.siblings)(this, function (e) { return "INPUT" === e.tagName; })[0], n = (0, j.createEvent)("click", t); t.dispatchEvent(n), e.preventDefault(); }); } }, searchTrackPosition: function (e, t) { for ( var n = 0, o = e.length - 1, i = void 0, r = void 0, a = void 0; n <= o; ) { if ( ((r = e[(i = (n + o) >> 1)].start), (a = e[i].stop), r <= t && t < a) ) return i; r < t ? (n = i + 1) : t < r && (o = i - 1); } return -1; }, }), (d.default.language = { codes: { af: "mejs.afrikaans", sq: "mejs.albanian", ar: "mejs.arabic", be: "mejs.belarusian", bg: "mejs.bulgarian", ca: "mejs.catalan", zh: "mejs.chinese", "zh-cn": "mejs.chinese-simplified", "zh-tw": "mejs.chines-traditional", hr: "mejs.croatian", cs: "mejs.czech", da: "mejs.danish", nl: "mejs.dutch", en: "mejs.english", et: "mejs.estonian", fl: "mejs.filipino", fi: "mejs.finnish", fr: "mejs.french", gl: "mejs.galician", de: "mejs.german", el: "mejs.greek", ht: "mejs.haitian-creole", iw: "mejs.hebrew", hi: "mejs.hindi", hu: "mejs.hungarian", is: "mejs.icelandic", id: "mejs.indonesian", ga: "mejs.irish", it: "mejs.italian", ja: "mejs.japanese", ko: "mejs.korean", lv: "mejs.latvian", lt: "mejs.lithuanian", mk: "mejs.macedonian", ms: "mejs.malay", mt: "mejs.maltese", no: "mejs.norwegian", fa: "mejs.persian", pl: "mejs.polish", pt: "mejs.portuguese", ro: "mejs.romanian", ru: "mejs.russian", sr: "mejs.serbian", sk: "mejs.slovak", sl: "mejs.slovenian", es: "mejs.spanish", sw: "mejs.swahili", sv: "mejs.swedish", tl: "mejs.tagalog", th: "mejs.thai", tr: "mejs.turkish", uk: "mejs.ukrainian", vi: "mejs.vietnamese", cy: "mejs.welsh", yi: "mejs.yiddish", }, }), (d.default.TrackFormatParser = { webvtt: { pattern: /^((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{1,3})?) --\> ((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{3})?)(.*)$/, parse: function (e) { for ( var t = e.split(/\r?\n/), n = [], o = void 0, i = void 0, r = void 0, a = 0, s = t.length; a < s; a++ ) { if ((o = this.pattern.exec(t[a])) && a < t.length) { for ( 0 <= a - 1 && "" !== t[a - 1] && (r = t[a - 1]), i = t[++a], a++; "" !== t[a] && a < t.length; ) (i = i + "\n" + t[a]), a++; (i = null === i ? "" : i .trim() .replace( /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gi, "$1" )), n.push({ identifier: r, start: 0 === (0, m.convertSMPTEtoSeconds)(o[1]) ? 0.2 : (0, m.convertSMPTEtoSeconds)(o[1]), stop: (0, m.convertSMPTEtoSeconds)(o[3]), text: i, settings: o[5], }); } r = ""; } return n; }, }, dfxp: { parse: function (e) { var t = (e = $(e).filter("tt")).firstChild, n = t.querySelectorAll("p"), o = e.getElementById("" + t.attr("style")), i = [], r = void 0; if (o.length) { o.removeAttribute("id"); var a = o.attributes; if (a.length) { r = {}; for (var s = 0, l = a.length; s < l; s++) r[a[s].name.split(":")[1]] = a[s].value; } } for (var d = 0, u = n.length; d < u; d++) { var c = void 0, f = { start: null, stop: null, style: null, text: null }; if ( (n.eq(d).attr("begin") && (f.start = (0, m.convertSMPTEtoSeconds)( n.eq(d).attr("begin") )), !f.start && n.eq(d - 1).attr("end") && (f.start = (0, m.convertSMPTEtoSeconds)( n.eq(d - 1).attr("end") )), n.eq(d).attr("end") && (f.stop = (0, m.convertSMPTEtoSeconds)( n.eq(d).attr("end") )), !f.stop && n.eq(d + 1).attr("begin") && (f.stop = (0, m.convertSMPTEtoSeconds)( n.eq(d + 1).attr("begin") )), r) ) for (var p in ((c = ""), r)) c += p + ":" + r[p] + ";"; c && (f.style = c), 0 === f.start && (f.start = 0.2), (f.text = n .eq(d) .innerHTML.trim() .replace( /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gi, "$1" )), i.push(f); } return i; }, }, }); }, { 16: 16, 2: 2, 26: 26, 27: 27, 30: 30, 5: 5, 7: 7 }, ], 14: [ function (e, t, n) { "use strict"; var x = r(e(2)), o = e(16), i = r(o), w = r(e(5)), P = e(25), T = e(27), C = e(26); function r(e) { return e && e.__esModule ? e : { default: e }; } Object.assign(o.config, { muteText: null, unmuteText: null, allyVolumeControlText: null, hideVolumeOnTouchDevices: !0, audioVolume: "horizontal", videoVolume: "vertical", startVolume: 0.8, }), Object.assign(i.default.prototype, { buildvolume: function (e, t, n, o) { if ( (!P.IS_ANDROID && !P.IS_IOS) || !this.options.hideVolumeOnTouchDevices ) { var a = this, s = a.isVideo ? a.options.videoVolume : a.options.audioVolume, r = (0, T.isString)(a.options.muteText) ? a.options.muteText : w.default.t("mejs.mute"), l = (0, T.isString)(a.options.unmuteText) ? a.options.unmuteText : w.default.t("mejs.unmute"), i = (0, T.isString)(a.options.allyVolumeControlText) ? a.options.allyVolumeControlText : w.default.t("mejs.volume-help-text"), d = x.default.createElement("div"); if ( ((d.className = a.options.classPrefix + "button " + a.options.classPrefix + "volume-button " + a.options.classPrefix + "mute"), (d.innerHTML = "horizontal" === s ? '' : '' + i + '
            '), a.addControlElement(d, "volume"), a.options.keyActions.push( { keys: [38], action: function (e) { var t = e .getElement(e.container) .querySelector( "." + a.options.classPrefix + "volume-slider" ); t && t.matches(":focus") && (t.style.display = "block"), e.isVideo && (e.showControls(), e.startControlsTimer()); var n = Math.min(e.volume + 0.1, 1); e.setVolume(n), 0 < n && e.setMuted(!1); }, }, { keys: [40], action: function (e) { var t = e .getElement(e.container) .querySelector( "." + a.options.classPrefix + "volume-slider" ); t && (t.style.display = "block"), e.isVideo && (e.showControls(), e.startControlsTimer()); var n = Math.max(e.volume - 0.1, 0); e.setVolume(n), n <= 0.1 && e.setMuted(!0); }, }, { keys: [77], action: function (e) { var t = e .getElement(e.container) .querySelector( "." + a.options.classPrefix + "volume-slider" ); t && (t.style.display = "block"), e.isVideo && (e.showControls(), e.startControlsTimer()), e.media.muted ? e.setMuted(!1) : e.setMuted(!0); }, } ), "horizontal" === s) ) { var u = x.default.createElement("a"); (u.className = a.options.classPrefix + "horizontal-volume-slider"), (u.href = "javascript:void(0);"), u.setAttribute( "aria-label", w.default.t("mejs.volume-slider") ), u.setAttribute("aria-valuemin", 0), u.setAttribute("aria-valuemax", 100), u.setAttribute("aria-valuenow", 100), u.setAttribute("role", "slider"), (u.innerHTML += '' + i + '
            '), d.parentNode.insertBefore(u, d.nextSibling); } var c = !1, f = !1, p = !1, m = "vertical" === s ? a .getElement(a.container) .querySelector( "." + a.options.classPrefix + "volume-slider" ) : a .getElement(a.container) .querySelector( "." + a.options.classPrefix + "horizontal-volume-slider" ), h = "vertical" === s ? a .getElement(a.container) .querySelector( "." + a.options.classPrefix + "volume-total" ) : a .getElement(a.container) .querySelector( "." + a.options.classPrefix + "horizontal-volume-total" ), v = "vertical" === s ? a .getElement(a.container) .querySelector( "." + a.options.classPrefix + "volume-current" ) : a .getElement(a.container) .querySelector( "." + a.options.classPrefix + "horizontal-volume-current" ), g = "vertical" === s ? a .getElement(a.container) .querySelector( "." + a.options.classPrefix + "volume-handle" ) : a .getElement(a.container) .querySelector( "." + a.options.classPrefix + "horizontal-volume-handle" ), y = function (e) { if (null !== e && !isNaN(e) && void 0 !== e) { if (((e = Math.max(0, e)), 0 === (e = Math.min(e, 1)))) { (0, C.removeClass)(d, a.options.classPrefix + "mute"), (0, C.addClass)(d, a.options.classPrefix + "unmute"); var t = d.firstElementChild; t.setAttribute("title", l), t.setAttribute("aria-label", l); } else { (0, C.removeClass)(d, a.options.classPrefix + "unmute"), (0, C.addClass)(d, a.options.classPrefix + "mute"); var n = d.firstElementChild; n.setAttribute("title", r), n.setAttribute("aria-label", r); } var o = 100 * e + "%", i = getComputedStyle(g); "vertical" === s ? ((v.style.bottom = 0), (v.style.height = o), (g.style.bottom = o), (g.style.marginBottom = -parseFloat(i.height) / 2 + "px")) : ((v.style.left = 0), (v.style.width = o), (g.style.left = o), (g.style.marginLeft = -parseFloat(i.width) / 2 + "px")); } }, E = function (e) { var t = (0, C.offset)(h), n = getComputedStyle(h); p = !0; var o = null; if ("vertical" === s) { var i = parseFloat(n.height); if ( ((o = (i - (e.pageY - t.top)) / i), 0 === t.top || 0 === t.left) ) return; } else { var r = parseFloat(n.width); o = (e.pageX - t.left) / r; } (o = Math.max(0, o)), (o = Math.min(o, 1)), y(o), a.setMuted(0 === o), a.setVolume(o), e.preventDefault(), e.stopPropagation(); }, b = function () { a.muted ? (y(0), (0, C.removeClass)(d, a.options.classPrefix + "mute"), (0, C.addClass)(d, a.options.classPrefix + "unmute")) : (y(o.volume), (0, C.removeClass)(d, a.options.classPrefix + "unmute"), (0, C.addClass)(d, a.options.classPrefix + "mute")); }; e .getElement(e.container) .addEventListener("keydown", function (e) { !!e.target.closest( "." + a.options.classPrefix + "container" ) || "vertical" !== s || (m.style.display = "none"); }), d.addEventListener("mouseenter", function (e) { e.target === d && ((m.style.display = "block"), (f = !0), e.preventDefault(), e.stopPropagation()); }), d.addEventListener("focusin", function () { (m.style.display = "block"), (f = !0); }), d.addEventListener("focusout", function (e) { (e.relatedTarget && (!e.relatedTarget || e.relatedTarget.matches( "." + a.options.classPrefix + "volume-slider" ))) || "vertical" !== s || (m.style.display = "none"); }), d.addEventListener("mouseleave", function () { (f = !1), c || "vertical" !== s || (m.style.display = "none"); }), d.addEventListener("focusout", function () { f = !1; }), d.addEventListener("keydown", function (e) { if ( a.options.enableKeyboard && a.options.keyActions.length ) { var t = e.which || e.keyCode || 0, n = o.volume; switch (t) { case 38: n = Math.min(n + 0.1, 1); break; case 40: n = Math.max(0, n - 0.1); break; default: return !0; } (c = !1), y(n), o.setVolume(n), e.preventDefault(), e.stopPropagation(); } }), d .querySelector("button") .addEventListener("click", function () { o.setMuted(!o.muted); var e = (0, T.createEvent)("volumechange", o); o.dispatchEvent(e); }), m.addEventListener("dragstart", function () { return !1; }), m.addEventListener("mouseover", function () { f = !0; }), m.addEventListener("focusin", function () { (m.style.display = "block"), (f = !0); }), m.addEventListener("focusout", function () { (f = !1), c || "vertical" !== s || (m.style.display = "none"); }), m.addEventListener("mousedown", function (e) { E(e), a.globalBind("mousemove.vol", function (e) { var t = e.target; c && (t === m || t.closest( "vertical" === s ? "." + a.options.classPrefix + "volume-slider" : "." + a.options.classPrefix + "horizontal-volume-slider" )) && E(e); }), a.globalBind("mouseup.vol", function () { (c = !1), f || "vertical" !== s || (m.style.display = "none"); }), (c = !0), e.preventDefault(), e.stopPropagation(); }), o.addEventListener("volumechange", function (e) { var t; c || b(), (t = Math.floor(100 * o.volume)), m.setAttribute("aria-valuenow", t), m.setAttribute("aria-valuetext", t + "%"); }); var S = !1; o.addEventListener("rendererready", function () { p || setTimeout(function () { (S = !0), (0 === e.options.startVolume || o.originalNode.muted) && (o.setMuted(!0), (e.options.startVolume = 0)), o.setVolume(e.options.startVolume), a.setControlsSize(); }, 250); }), o.addEventListener("loadedmetadata", function () { setTimeout(function () { p || S || ((0 === e.options.startVolume || o.originalNode.muted) && o.setMuted(!0), o.setVolume(e.options.startVolume), a.setControlsSize()), (S = !1); }, 250); }), (0 === e.options.startVolume || o.originalNode.muted) && (o.setMuted(!0), (e.options.startVolume = 0), b()), a .getElement(a.container) .addEventListener("controlsresize", function () { b(); }); } }, }); }, { 16: 16, 2: 2, 25: 25, 26: 26, 27: 27, 5: 5 }, ], 15: [ function (e, t, n) { "use strict"; Object.defineProperty(n, "__esModule", { value: !0 }); n.EN = { "mejs.plural-form": 1, "mejs.download-file": "Download File", "mejs.install-flash": "You are using a browser that does not have Flash player enabled or installed. Please turn on your Flash player plugin or download the latest version from https://get.adobe.com/flashplayer/", "mejs.fullscreen": "Fullscreen", "mejs.play": "Play", "mejs.pause": "Pause", "mejs.time-slider": "Time Slider", "mejs.time-help-text": "Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds.", "mejs.live-broadcast": "Live Broadcast", "mejs.volume-help-text": "Use Up/Down Arrow keys to increase or decrease volume.", "mejs.unmute": "Unmute", "mejs.mute": "Mute", "mejs.volume-slider": "Volume Slider", "mejs.video-player": "Video Player", "mejs.audio-player": "Audio Player", "mejs.captions-subtitles": "Captions/Subtitles", "mejs.captions-chapters": "Chapters", "mejs.none": "None", "mejs.afrikaans": "Afrikaans", "mejs.albanian": "Albanian", "mejs.arabic": "Arabic", "mejs.belarusian": "Belarusian", "mejs.bulgarian": "Bulgarian", "mejs.catalan": "Catalan", "mejs.chinese": "Chinese", "mejs.chinese-simplified": "Chinese (Simplified)", "mejs.chinese-traditional": "Chinese (Traditional)", "mejs.croatian": "Croatian", "mejs.czech": "Czech", "mejs.danish": "Danish", "mejs.dutch": "Dutch", "mejs.english": "English", "mejs.estonian": "Estonian", "mejs.filipino": "Filipino", "mejs.finnish": "Finnish", "mejs.french": "French", "mejs.galician": "Galician", "mejs.german": "German", "mejs.greek": "Greek", "mejs.haitian-creole": "Haitian Creole", "mejs.hebrew": "Hebrew", "mejs.hindi": "Hindi", "mejs.hungarian": "Hungarian", "mejs.icelandic": "Icelandic", "mejs.indonesian": "Indonesian", "mejs.irish": "Irish", "mejs.italian": "Italian", "mejs.japanese": "Japanese", "mejs.korean": "Korean", "mejs.latvian": "Latvian", "mejs.lithuanian": "Lithuanian", "mejs.macedonian": "Macedonian", "mejs.malay": "Malay", "mejs.maltese": "Maltese", "mejs.norwegian": "Norwegian", "mejs.persian": "Persian", "mejs.polish": "Polish", "mejs.portuguese": "Portuguese", "mejs.romanian": "Romanian", "mejs.russian": "Russian", "mejs.serbian": "Serbian", "mejs.slovak": "Slovak", "mejs.slovenian": "Slovenian", "mejs.spanish": "Spanish", "mejs.swahili": "Swahili", "mejs.swedish": "Swedish", "mejs.tagalog": "Tagalog", "mejs.thai": "Thai", "mejs.turkish": "Turkish", "mejs.ukrainian": "Ukrainian", "mejs.vietnamese": "Vietnamese", "mejs.welsh": "Welsh", "mejs.yiddish": "Yiddish", }; }, {}, ], 16: [ function (e, t, n) { "use strict"; Object.defineProperty(n, "__esModule", { value: !0 }), (n.config = void 0); var i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { return typeof e; } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; }, o = (function () { function o(e, t) { for (var n = 0; n < t.length; n++) { var o = t[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o); } } return function (e, t, n) { return t && o(e.prototype, t), n && o(e, n), e; }; })(), S = r(e(3)), x = r(e(2)), f = r(e(7)), d = r(e(6)), a = r(e(17)), u = r(e(5)), w = e(25), m = e(27), c = e(30), p = e(28), P = (function (e) { { if (e && e.__esModule) return e; var t = {}; if (null != e) for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]); return (t.default = e), t; } })(e(26)); function r(e) { return e && e.__esModule ? e : { default: e }; } (f.default.mepIndex = 0), (f.default.players = {}); var s = (n.config = { poster: "", showPosterWhenEnded: !1, showPosterWhenPaused: !1, defaultVideoWidth: 480, defaultVideoHeight: 270, videoWidth: -1, videoHeight: -1, defaultAudioWidth: 400, defaultAudioHeight: 40, defaultSeekBackwardInterval: function (e) { return 0.05 * e.getDuration(); }, defaultSeekForwardInterval: function (e) { return 0.05 * e.getDuration(); }, setDimensions: !0, audioWidth: -1, audioHeight: -1, loop: !1, autoRewind: !0, enableAutosize: !0, timeFormat: "", alwaysShowHours: !1, showTimecodeFrameCount: !1, framesPerSecond: 25, alwaysShowControls: !1, hideVideoControlsOnLoad: !1, hideVideoControlsOnPause: !1, clickToPlayPause: !0, controlsTimeoutDefault: 1500, controlsTimeoutMouseEnter: 2500, controlsTimeoutMouseLeave: 1e3, iPadUseNativeControls: !1, iPhoneUseNativeControls: !1, AndroidUseNativeControls: !1, features: [ "playpause", "current", "progress", "duration", "tracks", "volume", "fullscreen", ], useDefaultControls: !1, isVideo: !0, stretching: "auto", classPrefix: "mejs__", enableKeyboard: !0, pauseOtherPlayers: !0, secondsDecimalLength: 0, customError: null, keyActions: [ { keys: [32, 179], action: function (e) { w.IS_FIREFOX || (e.paused || e.ended ? e.play() : e.pause()); }, }, ], }); f.default.MepDefaults = s; var l = (function () { function r(e, t) { !(function (e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function"); })(this, r); var n = this, o = "string" == typeof e ? x.default.getElementById(e) : e; if (!(n instanceof r)) return new r(o, t); if (((n.node = n.media = o), n.node)) { if (n.media.player) return n.media.player; if ( ((n.hasFocus = !1), (n.controlsAreVisible = !0), (n.controlsEnabled = !0), (n.controlsTimer = null), (n.currentMediaTime = 0), (n.proxy = null), void 0 === t) ) { var i = n.node.getAttribute("data-mejsoptions"); t = i ? JSON.parse(i) : {}; } return ( (n.options = Object.assign({}, s, t)), n.options.loop && !n.media.getAttribute("loop") ? ((n.media.loop = !0), (n.node.loop = !0)) : n.media.loop && (n.options.loop = !0), n.options.timeFormat || ((n.options.timeFormat = "mm:ss"), n.options.alwaysShowHours && (n.options.timeFormat = "hh:mm:ss"), n.options.showTimecodeFrameCount && (n.options.timeFormat += ":ff")), (0, c.calculateTimeFormat)( 0, n.options, n.options.framesPerSecond || 25 ), (n.id = "mep_" + f.default.mepIndex++), (f.default.players[n.id] = n).init(), n ); } } return ( o(r, [ { key: "getElement", value: function (e) { return e; }, }, { key: "init", value: function () { var n = this, e = Object.assign({}, n.options, { success: function (e, t) { n._meReady(e, t); }, error: function (e) { n._handleError(e); }, }), t = n.node.tagName.toLowerCase(); if ( ((n.isDynamic = "audio" !== t && "video" !== t && "iframe" !== t), (n.isVideo = n.isDynamic ? n.options.isVideo : "audio" !== t && n.options.isVideo), (n.mediaFiles = null), (n.trackFiles = null), (w.IS_IPAD && n.options.iPadUseNativeControls) || (w.IS_IPHONE && n.options.iPhoneUseNativeControls)) ) n.node.setAttribute("controls", !0), w.IS_IPAD && n.node.getAttribute("autoplay") && n.play(); else if ( (!n.isVideo && (n.isVideo || (!n.options.features.length && !n.options.useDefaultControls))) || (w.IS_ANDROID && n.options.AndroidUseNativeControls) ) n.isVideo || n.options.features.length || n.options.useDefaultControls || (n.node.style.display = "none"); else { n.node.removeAttribute("controls"); var o = n.isVideo ? u.default.t("mejs.video-player") : u.default.t("mejs.audio-player"), i = x.default.createElement("span"); if ( ((i.className = n.options.classPrefix + "offscreen"), (i.innerText = o), n.media.parentNode.insertBefore(i, n.media), (n.container = x.default.createElement("div")), (n.getElement(n.container).id = n.id), (n.getElement(n.container).className = n.options.classPrefix + "container " + n.options.classPrefix + "container-keyboard-inactive " + n.media.className), (n.getElement(n.container).tabIndex = 0), n .getElement(n.container) .setAttribute("role", "application"), n.getElement(n.container).setAttribute("aria-label", o), (n.getElement(n.container).innerHTML = '
            '), n .getElement(n.container) .addEventListener("focus", function (e) { if ( !n.controlsAreVisible && !n.hasFocus && n.controlsEnabled ) { n.showControls(!0); var t = (0, m.isNodeAfter)( e.relatedTarget, n.getElement(n.container) ) ? "." + n.options.classPrefix + "controls ." + n.options.classPrefix + "button:last-child > button" : "." + n.options.classPrefix + "playpause-button > button"; n.getElement(n.container).querySelector(t).focus(); } }), n.node.parentNode.insertBefore( n.getElement(n.container), n.node ), n.options.features.length || n.options.useDefaultControls || ((n.getElement(n.container).style.background = "transparent"), (n .getElement(n.container) .querySelector( "." + n.options.classPrefix + "controls" ).style.display = "none")), n.isVideo && "fill" === n.options.stretching && !P.hasClass( n.getElement(n.container).parentNode, n.options.classPrefix + "fill-container" )) ) { n.outerContainer = n.media.parentNode; var r = x.default.createElement("div"); (r.className = n.options.classPrefix + "fill-container"), n .getElement(n.container) .parentNode.insertBefore( r, n.getElement(n.container) ), r.appendChild(n.getElement(n.container)); } w.IS_ANDROID && P.addClass( n.getElement(n.container), n.options.classPrefix + "android" ), w.IS_IOS && P.addClass( n.getElement(n.container), n.options.classPrefix + "ios" ), w.IS_IPAD && P.addClass( n.getElement(n.container), n.options.classPrefix + "ipad" ), w.IS_IPHONE && P.addClass( n.getElement(n.container), n.options.classPrefix + "iphone" ), P.addClass( n.getElement(n.container), n.isVideo ? n.options.classPrefix + "video" : n.options.classPrefix + "audio" ), n .getElement(n.container) .querySelector( "." + n.options.classPrefix + "mediaelement" ) .appendChild(n.node), ((n.media.player = n).controls = n .getElement(n.container) .querySelector( "." + n.options.classPrefix + "controls" )), (n.layers = n .getElement(n.container) .querySelector("." + n.options.classPrefix + "layers")); var a = n.isVideo ? "video" : "audio", s = a.substring(0, 1).toUpperCase() + a.substring(1); 0 < n.options[a + "Width"] || -1 < n.options[a + "Width"].toString().indexOf("%") ? (n.width = n.options[a + "Width"]) : "" !== n.node.style.width && null !== n.node.style.width ? (n.width = n.node.style.width) : n.node.getAttribute("width") ? (n.width = n.node.getAttribute("width")) : (n.width = n.options["default" + s + "Width"]), 0 < n.options[a + "Height"] || -1 < n.options[a + "Height"].toString().indexOf("%") ? (n.height = n.options[a + "Height"]) : "" !== n.node.style.height && null !== n.node.style.height ? (n.height = n.node.style.height) : n.node.getAttribute("height") ? (n.height = n.node.getAttribute("height")) : (n.height = n.options["default" + s + "Height"]), (n.initialAspectRatio = n.height >= n.width ? n.width / n.height : n.height / n.width), n.setPlayerSize(n.width, n.height), (e.pluginWidth = n.width), (e.pluginHeight = n.height); } if ( ((f.default.MepDefaults = e), new d.default(n.media, e, n.mediaFiles), void 0 !== n.getElement(n.container) && n.options.features.length && n.controlsAreVisible && !n.options.hideVideoControlsOnLoad) ) { var l = (0, m.createEvent)( "controlsshown", n.getElement(n.container) ); n.getElement(n.container).dispatchEvent(l); } }, }, { key: "showControls", value: function (e) { var i = this; if ( ((e = void 0 === e || e), !i.controlsAreVisible && i.isVideo) ) { if (e) !(function () { P.fadeIn(i.getElement(i.controls), 200, function () { P.removeClass( i.getElement(i.controls), i.options.classPrefix + "offscreen" ); var e = (0, m.createEvent)( "controlsshown", i.getElement(i.container) ); i.getElement(i.container).dispatchEvent(e); }); for ( var n = i .getElement(i.container) .querySelectorAll( "." + i.options.classPrefix + "control" ), e = function (e, t) { P.fadeIn(n[e], 200, function () { P.removeClass( n[e], i.options.classPrefix + "offscreen" ); }); }, t = 0, o = n.length; t < o; t++ ) e(t); })(); else { P.removeClass( i.getElement(i.controls), i.options.classPrefix + "offscreen" ), (i.getElement(i.controls).style.display = ""), (i.getElement(i.controls).style.opacity = 1); for ( var t = i .getElement(i.container) .querySelectorAll( "." + i.options.classPrefix + "control" ), n = 0, o = t.length; n < o; n++ ) P.removeClass( t[n], i.options.classPrefix + "offscreen" ), (t[n].style.display = ""); var r = (0, m.createEvent)( "controlsshown", i.getElement(i.container) ); i.getElement(i.container).dispatchEvent(r); } (i.controlsAreVisible = !0), i.setControlsSize(); } }, }, { key: "hideControls", value: function (e, t) { var i = this; if ( ((e = void 0 === e || e), !0 === t || !( !i.controlsAreVisible || i.options.alwaysShowControls || (i.paused && 4 === i.readyState && ((!i.options.hideVideoControlsOnLoad && i.currentTime <= 0) || (!i.options.hideVideoControlsOnPause && 0 < i.currentTime))) || (i.isVideo && !i.options.hideVideoControlsOnLoad && !i.readyState) || i.ended )) ) { if (e) !(function () { P.fadeOut(i.getElement(i.controls), 200, function () { P.addClass( i.getElement(i.controls), i.options.classPrefix + "offscreen" ), (i.getElement(i.controls).style.display = ""); var e = (0, m.createEvent)( "controlshidden", i.getElement(i.container) ); i.getElement(i.container).dispatchEvent(e); }); for ( var n = i .getElement(i.container) .querySelectorAll( "." + i.options.classPrefix + "control" ), e = function (e, t) { P.fadeOut(n[e], 200, function () { P.addClass( n[e], i.options.classPrefix + "offscreen" ), (n[e].style.display = ""); }); }, t = 0, o = n.length; t < o; t++ ) e(t); })(); else { P.addClass( i.getElement(i.controls), i.options.classPrefix + "offscreen" ), (i.getElement(i.controls).style.display = ""), (i.getElement(i.controls).style.opacity = 0); for ( var n = i .getElement(i.container) .querySelectorAll( "." + i.options.classPrefix + "control" ), o = 0, r = n.length; o < r; o++ ) P.addClass(n[o], i.options.classPrefix + "offscreen"), (n[o].style.display = ""); var a = (0, m.createEvent)( "controlshidden", i.getElement(i.container) ); i.getElement(i.container).dispatchEvent(a); } i.controlsAreVisible = !1; } }, }, { key: "startControlsTimer", value: function (e) { var t = this; (e = void 0 !== e ? e : t.options.controlsTimeoutDefault), t.killControlsTimer("start"), (t.controlsTimer = setTimeout(function () { t.hideControls(), t.killControlsTimer("hide"); }, e)); }, }, { key: "killControlsTimer", value: function () { null !== this.controlsTimer && (clearTimeout(this.controlsTimer), delete this.controlsTimer, (this.controlsTimer = null)); }, }, { key: "disableControls", value: function () { this.killControlsTimer(), (this.controlsEnabled = !1), this.hideControls(!1, !0); }, }, { key: "enableControls", value: function () { (this.controlsEnabled = !0), this.showControls(!1); }, }, { key: "_setDefaultPlayer", value: function () { var e = this; e.proxy && e.proxy.pause(), (e.proxy = new a.default(e)), e.media.addEventListener("loadedmetadata", function () { 0 < e.getCurrentTime() && 0 < e.currentMediaTime && (e.setCurrentTime(e.currentMediaTime), w.IS_IOS || w.IS_ANDROID || e.play()); }); }, }, { key: "_meReady", value: function (e, t) { var n = this, o = t.getAttribute("autoplay"), i = !(null == o || "false" === o), r = null !== e.rendererName && /(native|html5)/i.test(n.media.rendererName); if ( (n.getElement(n.controls) && n.enableControls(), n.getElement(n.container) && n .getElement(n.container) .querySelector( "." + n.options.classPrefix + "overlay-play" ) && (n .getElement(n.container) .querySelector( "." + n.options.classPrefix + "overlay-play" ).style.display = ""), !n.created) ) { if ( ((n.created = !0), (n.media = e), (n.domNode = t), !( (w.IS_ANDROID && n.options.AndroidUseNativeControls) || (w.IS_IPAD && n.options.iPadUseNativeControls) || (w.IS_IPHONE && n.options.iPhoneUseNativeControls) )) ) { if ( !n.isVideo && !n.options.features.length && !n.options.useDefaultControls ) return ( i && r && n.play(), void ( n.options.success && ("string" == typeof n.options.success ? S.default[n.options.success]( n.media, n.domNode, n ) : n.options.success(n.media, n.domNode, n)) ) ); if ( ((n.featurePosition = {}), n._setDefaultPlayer(), n.buildposter( n, n.getElement(n.controls), n.getElement(n.layers), n.media ), n.buildkeyboard( n, n.getElement(n.controls), n.getElement(n.layers), n.media ), n.buildoverlays( n, n.getElement(n.controls), n.getElement(n.layers), n.media ), n.options.useDefaultControls) ) { var a = [ "playpause", "current", "progress", "duration", "tracks", "volume", "fullscreen", ]; n.options.features = a.concat( n.options.features.filter(function (e) { return -1 === a.indexOf(e); }) ); } n.buildfeatures( n, n.getElement(n.controls), n.getElement(n.layers), n.media ); var s = (0, m.createEvent)( "controlsready", n.getElement(n.container) ); n.getElement(n.container).dispatchEvent(s), n.setPlayerSize(n.width, n.height), n.setControlsSize(), n.isVideo && ((n.clickToPlayPauseCallback = function () { if (n.options.clickToPlayPause) { var e = n .getElement(n.container) .querySelector( "." + n.options.classPrefix + "overlay-button" ), t = e.getAttribute("aria-pressed"); n.paused && t ? n.pause() : n.paused ? n.play() : n.pause(), e.setAttribute("aria-pressed", !t), n.getElement(n.container).focus(); } }), n.createIframeLayer(), n.media.addEventListener( "click", n.clickToPlayPauseCallback ), (!w.IS_ANDROID && !w.IS_IOS) || n.options.alwaysShowControls ? (n .getElement(n.container) .addEventListener("mouseenter", function () { n.controlsEnabled && (n.options.alwaysShowControls || (n.killControlsTimer("enter"), n.showControls(), n.startControlsTimer( n.options.controlsTimeoutMouseEnter ))); }), n .getElement(n.container) .addEventListener("mousemove", function () { n.controlsEnabled && (n.controlsAreVisible || n.showControls(), n.options.alwaysShowControls || n.startControlsTimer( n.options.controlsTimeoutMouseEnter )); }), n .getElement(n.container) .addEventListener("mouseleave", function () { n.controlsEnabled && (n.paused || n.options.alwaysShowControls || n.startControlsTimer( n.options.controlsTimeoutMouseLeave )); })) : n.node.addEventListener( "touchstart", function () { n.controlsAreVisible ? n.hideControls(!1) : n.controlsEnabled && n.showControls(!1); }, !!w.SUPPORT_PASSIVE_EVENT && { passive: !0 } ), n.options.hideVideoControlsOnLoad && n.hideControls(!1), n.options.enableAutosize && n.media.addEventListener( "loadedmetadata", function (e) { var t = void 0 !== e ? e.detail.target || e.target : n.media; n.options.videoHeight <= 0 && !n.domNode.getAttribute("height") && !n.domNode.style.height && null !== t && !isNaN(t.videoHeight) && (n.setPlayerSize(t.videoWidth, t.videoHeight), n.setControlsSize(), n.media.setSize(t.videoWidth, t.videoHeight)); } )), n.media.addEventListener("play", function () { for (var e in ((n.hasFocus = !0), f.default.players)) if (f.default.players.hasOwnProperty(e)) { var t = f.default.players[e]; t.id === n.id || !n.options.pauseOtherPlayers || t.paused || t.ended || !0 === t.options.ignorePauseOtherPlayersOption || (t.pause(), (t.hasFocus = !1)); } w.IS_ANDROID || w.IS_IOS || n.options.alwaysShowControls || !n.isVideo || n.hideControls(); }), n.media.addEventListener("ended", function () { if (n.options.autoRewind) try { n.setCurrentTime(0), setTimeout(function () { var e = n .getElement(n.container) .querySelector( "." + n.options.classPrefix + "overlay-loading" ); e && e.parentNode && (e.parentNode.style.display = "none"); }, 20); } catch (e) {} "function" == typeof n.media.renderer.stop ? n.media.renderer.stop() : n.pause(), n.setProgressRail && n.setProgressRail(), n.setCurrentRail && n.setCurrentRail(), n.options.loop ? n.play() : !n.options.alwaysShowControls && n.controlsEnabled && n.showControls(); }), n.media.addEventListener("loadedmetadata", function () { (0, c.calculateTimeFormat)( n.getDuration(), n.options, n.options.framesPerSecond || 25 ), n.updateDuration && n.updateDuration(), n.updateCurrent && n.updateCurrent(), n.isFullScreen || (n.setPlayerSize(n.width, n.height), n.setControlsSize()); }); var l = null; n.media.addEventListener("timeupdate", function () { isNaN(n.getDuration()) || l === n.getDuration() || ((l = n.getDuration()), (0, c.calculateTimeFormat)( l, n.options, n.options.framesPerSecond || 25 ), n.updateDuration && n.updateDuration(), n.updateCurrent && n.updateCurrent(), n.setControlsSize()); }), n .getElement(n.container) .addEventListener("click", function (e) { P.addClass( e.currentTarget, n.options.classPrefix + "container-keyboard-inactive" ); }), n .getElement(n.container) .addEventListener("focusin", function (e) { P.removeClass( e.currentTarget, n.options.classPrefix + "container-keyboard-inactive" ), !n.isVideo || w.IS_ANDROID || w.IS_IOS || !n.controlsEnabled || n.options.alwaysShowControls || (n.killControlsTimer("enter"), n.showControls(), n.startControlsTimer( n.options.controlsTimeoutMouseEnter )); }), n .getElement(n.container) .addEventListener("focusout", function (e) { setTimeout(function () { e.relatedTarget && n.keyboardAction && !e.relatedTarget.closest( "." + n.options.classPrefix + "container" ) && ((n.keyboardAction = !1), !n.isVideo || n.options.alwaysShowControls || n.paused || n.startControlsTimer( n.options.controlsTimeoutMouseLeave )); }, 0); }), setTimeout(function () { n.setPlayerSize(n.width, n.height), n.setControlsSize(); }, 0), (n.globalResizeCallback = function () { n.isFullScreen || (w.HAS_TRUE_NATIVE_FULLSCREEN && x.default.webkitIsFullScreen) || n.setPlayerSize(n.width, n.height), n.setControlsSize(); }), n.globalBind("resize", n.globalResizeCallback); } i && r && n.play(), n.options.success && ("string" == typeof n.options.success ? S.default[n.options.success](n.media, n.domNode, n) : n.options.success(n.media, n.domNode, n)); } }, }, { key: "_handleError", value: function (e, t, n) { var o = this, i = o .getElement(o.layers) .querySelector( "." + o.options.classPrefix + "overlay-play" ); i && (i.style.display = "none"), o.options.error && o.options.error(e, t, n), o .getElement(o.container) .querySelector( "." + o.options.classPrefix + "cannotplay" ) && o .getElement(o.container) .querySelector( "." + o.options.classPrefix + "cannotplay" ) .remove(); var r = x.default.createElement("div"); (r.className = o.options.classPrefix + "cannotplay"), (r.style.width = "100%"), (r.style.height = "100%"); var a = "function" == typeof o.options.customError ? o.options.customError(o.media, o.media.originalNode) : o.options.customError, s = ""; if (!a) { var l = o.media.originalNode.getAttribute("poster"); if ( (l && (s = '' +
                          f.default.i18n.t('), e.message && (a = "

            " + e.message + "

            "), e.urls) ) for (var d = 0, u = e.urls.length; d < u; d++) { var c = e.urls[d]; a += '' + f.default.i18n.t("mejs.download-file") + ": " + c.src + ""; } } a && o .getElement(o.layers) .querySelector( "." + o.options.classPrefix + "overlay-error" ) && ((r.innerHTML = a), (o .getElement(o.layers) .querySelector( "." + o.options.classPrefix + "overlay-error" ).innerHTML = "" + s + r.outerHTML), (o .getElement(o.layers) .querySelector( "." + o.options.classPrefix + "overlay-error" ).parentNode.style.display = "block")), o.controlsEnabled && o.disableControls(); }, }, { key: "setPlayerSize", value: function (e, t) { var n = this; if (!n.options.setDimensions) return !1; switch ( (void 0 !== e && (n.width = e), void 0 !== t && (n.height = t), n.options.stretching) ) { case "fill": n.isVideo ? n.setFillMode() : n.setDimensions(n.width, n.height); break; case "responsive": n.setResponsiveMode(); break; case "none": n.setDimensions(n.width, n.height); break; default: !0 === n.hasFluidMode() ? n.setResponsiveMode() : n.setDimensions(n.width, n.height); } }, }, { key: "hasFluidMode", value: function () { var e = this; return ( -1 !== e.height.toString().indexOf("%") || (e.node && e.node.style.maxWidth && "none" !== e.node.style.maxWidth && e.node.style.maxWidth !== e.width) || (e.node && e.node.currentStyle && "100%" === e.node.currentStyle.maxWidth) ); }, }, { key: "setResponsiveMode", value: function () { var e, o = this, t = (function () { for (var t = void 0, n = o.getElement(o.container); n; ) { try { if ( w.IS_FIREFOX && "html" === n.tagName.toLowerCase() && S.default.self !== S.default.top && null !== S.default.frameElement ) return S.default.frameElement; t = n.parentElement; } catch (e) { t = n.parentElement; } if (t && P.visible(t)) return t; n = t; } return null; })(), n = t ? getComputedStyle(t, null) : getComputedStyle(x.default.body, null), i = o.isVideo ? o.node.videoWidth && 0 < o.node.videoWidth ? o.node.videoWidth : o.node.getAttribute("width") ? o.node.getAttribute("width") : o.options.defaultVideoWidth : o.options.defaultAudioWidth, r = o.isVideo ? o.node.videoHeight && 0 < o.node.videoHeight ? o.node.videoHeight : o.node.getAttribute("height") ? o.node.getAttribute("height") : o.options.defaultVideoHeight : o.options.defaultAudioHeight, a = ((e = 1), o.isVideo && ((e = o.node.videoWidth && 0 < o.node.videoWidth && o.node.videoHeight && 0 < o.node.videoHeight ? o.height >= o.width ? o.node.videoWidth / o.node.videoHeight : o.node.videoHeight / o.node.videoWidth : o.initialAspectRatio), (isNaN(e) || e < 0.01 || 100 < e) && (e = 1)), e), s = parseFloat(n.height), l = void 0, d = parseFloat(n.width); if ( ((l = o.isVideo ? "100%" === o.height ? parseFloat((d * r) / i, 10) : o.height >= o.width ? parseFloat(d / a, 10) : parseFloat(d * a, 10) : r), isNaN(l) && (l = s), 0 < o.getElement(o.container).parentNode.length && "body" === o .getElement(o.container) .parentNode.tagName.toLowerCase() && ((d = S.default.innerWidth || x.default.documentElement.clientWidth || x.default.body.clientWidth), (l = S.default.innerHeight || x.default.documentElement.clientHeight || x.default.body.clientHeight)), l && d) ) { (o.getElement(o.container).style.width = d + "px"), (o.getElement(o.container).style.height = l + "px"), (o.node.style.width = "100%"), (o.node.style.height = "100%"), o.isVideo && o.media.setSize && o.media.setSize(d, l); for ( var u = o.getElement(o.layers).children, c = 0, f = u.length; c < f; c++ ) (u[c].style.width = "100%"), (u[c].style.height = "100%"); } }, }, { key: "setFillMode", value: function () { var e = this, t = S.default.self !== S.default.top && null !== S.default.frameElement, n = (function () { for (var t = void 0, n = e.getElement(e.container); n; ) { try { if ( w.IS_FIREFOX && "html" === n.tagName.toLowerCase() && S.default.self !== S.default.top && null !== S.default.frameElement ) return S.default.frameElement; t = n.parentElement; } catch (e) { t = n.parentElement; } if (t && P.visible(t)) return t; n = t; } return null; })(), o = n ? getComputedStyle(n, null) : getComputedStyle(x.default.body, null); "none" !== e.node.style.height && e.node.style.height !== e.height && (e.node.style.height = "auto"), "none" !== e.node.style.maxWidth && e.node.style.maxWidth !== e.width && (e.node.style.maxWidth = "none"), "none" !== e.node.style.maxHeight && e.node.style.maxHeight !== e.height && (e.node.style.maxHeight = "none"), e.node.currentStyle && ("100%" === e.node.currentStyle.height && (e.node.currentStyle.height = "auto"), "100%" === e.node.currentStyle.maxWidth && (e.node.currentStyle.maxWidth = "none"), "100%" === e.node.currentStyle.maxHeight && (e.node.currentStyle.maxHeight = "none")), t || parseFloat(o.width) || (n.style.width = e.media.offsetWidth + "px"), t || parseFloat(o.height) || (n.style.height = e.media.offsetHeight + "px"), (o = getComputedStyle(n)); var i = parseFloat(o.width), r = parseFloat(o.height); e.setDimensions("100%", "100%"); var a = e .getElement(e.container) .querySelector("." + e.options.classPrefix + "poster>img"); a && (a.style.display = ""); for ( var s = e .getElement(e.container) .querySelectorAll("object, embed, iframe, video"), l = e.height, d = e.width, u = i, c = (l * i) / d, f = (d * r) / l, p = r, m = i < f == !1, h = m ? Math.floor(u) : Math.floor(f), v = m ? Math.floor(c) : Math.floor(p), g = m ? i + "px" : h + "px", y = m ? v + "px" : r + "px", E = 0, b = s.length; E < b; E++ ) (s[E].style.height = y), (s[E].style.width = g), e.media.setSize && e.media.setSize(g, y), (s[E].style.marginLeft = Math.floor((i - h) / 2) + "px"), (s[E].style.marginTop = 0); }, }, { key: "setDimensions", value: function (e, t) { var n = this; (e = (0, m.isString)(e) && -1 < e.indexOf("%") ? e : parseFloat(e) + "px"), (t = (0, m.isString)(t) && -1 < t.indexOf("%") ? t : parseFloat(t) + "px"), (n.getElement(n.container).style.width = e), (n.getElement(n.container).style.height = t); for ( var o = n.getElement(n.layers).children, i = 0, r = o.length; i < r; i++ ) (o[i].style.width = e), (o[i].style.height = t); }, }, { key: "setControlsSize", value: function () { var t = this; if (P.visible(t.getElement(t.container))) if (t.rail && P.visible(t.rail)) { for ( var e = t.total ? getComputedStyle(t.total, null) : null, n = e ? parseFloat(e.marginLeft) + parseFloat(e.marginRight) : 0, o = getComputedStyle(t.rail), i = parseFloat(o.marginLeft) + parseFloat(o.marginRight), r = 0, a = P.siblings(t.rail, function (e) { return e !== t.rail; }), s = a.length, l = 0; l < s; l++ ) r += a[l].offsetWidth; (r += n + (0 === n ? 2 * i : i) + 1), (t.getElement(t.container).style.minWidth = r + "px"); var d = (0, m.createEvent)( "controlsresize", t.getElement(t.container) ); t.getElement(t.container).dispatchEvent(d); } else { for ( var u = t.getElement(t.controls).children, c = 0, f = 0, p = u.length; f < p; f++ ) c += u[f].offsetWidth; t.getElement(t.container).style.minWidth = c + "px"; } }, }, { key: "addControlElement", value: function (e, t) { var n = this; if (void 0 !== n.featurePosition[t]) { var o = n.getElement(n.controls).children[ n.featurePosition[t] - 1 ]; o.parentNode.insertBefore(e, o.nextSibling); } else { n.getElement(n.controls).appendChild(e); for ( var i = n.getElement(n.controls).children, r = 0, a = i.length; r < a; r++ ) if (e === i[r]) { n.featurePosition[t] = r; break; } } }, }, { key: "createIframeLayer", value: function () { var t = this; if ( t.isVideo && null !== t.media.rendererName && -1 < t.media.rendererName.indexOf("iframe") && !x.default.getElementById(t.media.id + "-iframe-overlay") ) { var e = x.default.createElement("div"), n = x.default.getElementById( t.media.id + "_" + t.media.rendererName ); (e.id = t.media.id + "-iframe-overlay"), (e.className = t.options.classPrefix + "iframe-overlay"), e.addEventListener("click", function (e) { t.options.clickToPlayPause && (t.paused ? t.play() : t.pause(), e.preventDefault(), e.stopPropagation()); }), n.parentNode.insertBefore(e, n); } }, }, { key: "resetSize", value: function () { var e = this; setTimeout(function () { e.setPlayerSize(e.width, e.height), e.setControlsSize(); }, 50); }, }, { key: "setPoster", value: function (e) { var t = this; if (t.getElement(t.container)) { var n = t .getElement(t.container) .querySelector("." + t.options.classPrefix + "poster"); n || (((n = x.default.createElement("div")).className = t.options.classPrefix + "poster " + t.options.classPrefix + "layer"), t.getElement(t.layers).appendChild(n)); var o = n.querySelector("img"); !o && e && (((o = x.default.createElement("img")).className = t.options.classPrefix + "poster-img"), (o.width = "100%"), (o.height = "100%"), (n.style.display = ""), n.appendChild(o)), e ? (o.setAttribute("src", e), (n.style.backgroundImage = 'url("' + e + '")'), (n.style.display = "")) : o ? ((n.style.backgroundImage = "none"), (n.style.display = "none"), o.remove()) : (n.style.display = "none"); } else ((w.IS_IPAD && t.options.iPadUseNativeControls) || (w.IS_IPHONE && t.options.iPhoneUseNativeControls) || (w.IS_ANDROID && t.options.AndroidUseNativeControls)) && (t.media.originalNode.poster = e); }, }, { key: "changeSkin", value: function (e) { var t = this; (t.getElement(t.container).className = t.options.classPrefix + "container " + e), t.setPlayerSize(t.width, t.height), t.setControlsSize(); }, }, { key: "globalBind", value: function (e, n) { var o = this.node ? this.node.ownerDocument : x.default; if ((e = (0, m.splitEvents)(e, this.id)).d) for ( var t = e.d.split(" "), i = 0, r = t.length; i < r; i++ ) t[i].split(".").reduce(function (e, t) { return o.addEventListener(t, n, !1), t; }, ""); if (e.w) for ( var a = e.w.split(" "), s = 0, l = a.length; s < l; s++ ) a[s].split(".").reduce(function (e, t) { return S.default.addEventListener(t, n, !1), t; }, ""); }, }, { key: "globalUnbind", value: function (e, n) { var o = this.node ? this.node.ownerDocument : x.default; if ((e = (0, m.splitEvents)(e, this.id)).d) for ( var t = e.d.split(" "), i = 0, r = t.length; i < r; i++ ) t[i].split(".").reduce(function (e, t) { return o.removeEventListener(t, n, !1), t; }, ""); if (e.w) for ( var a = e.w.split(" "), s = 0, l = a.length; s < l; s++ ) a[s].split(".").reduce(function (e, t) { return S.default.removeEventListener(t, n, !1), t; }, ""); }, }, { key: "buildfeatures", value: function (e, t, n, o) { for ( var i = 0, r = this.options.features.length; i < r; i++ ) { var a = this.options.features[i]; if (this["build" + a]) try { this["build" + a](e, t, n, o); } catch (e) { console.error("error building " + a, e); } } }, }, { key: "buildposter", value: function (e, t, n, o) { var i = this, r = x.default.createElement("div"); (r.className = i.options.classPrefix + "poster " + i.options.classPrefix + "layer"), n.appendChild(r); var a = o.originalNode.getAttribute("poster"); "" !== e.options.poster && (a && w.IS_IOS && o.originalNode.removeAttribute("poster"), (a = e.options.poster)), a ? i.setPoster(a) : null !== i.media.renderer && "function" == typeof i.media.renderer.getPosterUrl ? i.setPoster(i.media.renderer.getPosterUrl()) : (r.style.display = "none"), o.addEventListener("play", function () { r.style.display = "none"; }), o.addEventListener("playing", function () { r.style.display = "none"; }), e.options.showPosterWhenEnded && e.options.autoRewind && o.addEventListener("ended", function () { r.style.display = ""; }), o.addEventListener("error", function () { r.style.display = "none"; }), e.options.showPosterWhenPaused && o.addEventListener("pause", function () { e.ended || (r.style.display = ""); }); }, }, { key: "buildoverlays", value: function (t, e, n, o) { if (t.isVideo) { var i = this, r = x.default.createElement("div"), a = x.default.createElement("div"), s = x.default.createElement("div"); (r.style.display = "none"), (r.className = i.options.classPrefix + "overlay " + i.options.classPrefix + "layer"), (r.innerHTML = '
            '), n.appendChild(r), (a.style.display = "none"), (a.className = i.options.classPrefix + "overlay " + i.options.classPrefix + "layer"), (a.innerHTML = '
            '), n.appendChild(a), (s.className = i.options.classPrefix + "overlay " + i.options.classPrefix + "layer " + i.options.classPrefix + "overlay-play"), (s.innerHTML = '
            '), s.addEventListener("click", function () { if (i.options.clickToPlayPause) { var e = i .getElement(i.container) .querySelector( "." + i.options.classPrefix + "overlay-button" ), t = e.getAttribute("aria-pressed"); i.paused ? i.play() : i.pause(), e.setAttribute("aria-pressed", !!t), i.getElement(i.container).focus(); } }), s.addEventListener("keydown", function (e) { var t = e.keyCode || e.which || 0; if (13 === t || (w.IS_FIREFOX && 32 === t)) { var n = (0, m.createEvent)("click", s); return s.dispatchEvent(n), !1; } }), n.appendChild(s), null !== i.media.rendererName && ((/(youtube|facebook)/i.test(i.media.rendererName) && !( i.media.originalNode.getAttribute("poster") || t.options.poster || ("function" == typeof i.media.renderer.getPosterUrl && i.media.renderer.getPosterUrl()) )) || w.IS_STOCK_ANDROID || i.media.originalNode.getAttribute("autoplay")) && (s.style.display = "none"); var l = !1; o.addEventListener("play", function () { (s.style.display = "none"), (r.style.display = "none"), (a.style.display = "none"), (l = !1); }), o.addEventListener("playing", function () { (s.style.display = "none"), (r.style.display = "none"), (a.style.display = "none"), (l = !1); }), o.addEventListener("seeking", function () { (s.style.display = "none"), (r.style.display = ""), (l = !1); }), o.addEventListener("seeked", function () { (s.style.display = i.paused && !w.IS_STOCK_ANDROID ? "" : "none"), (r.style.display = "none"), (l = !1); }), o.addEventListener("pause", function () { (r.style.display = "none"), w.IS_STOCK_ANDROID || l || (s.style.display = ""), (l = !1); }), o.addEventListener("waiting", function () { (r.style.display = ""), (l = !1); }), o.addEventListener("loadeddata", function () { (r.style.display = ""), w.IS_ANDROID && (o.canplayTimeout = setTimeout(function () { if (x.default.createEvent) { var e = x.default.createEvent("HTMLEvents"); return ( e.initEvent("canplay", !0, !0), o.dispatchEvent(e) ); } }, 300)), (l = !1); }), o.addEventListener("canplay", function () { (r.style.display = "none"), clearTimeout(o.canplayTimeout), (l = !1); }), o.addEventListener("error", function (e) { i._handleError(e, i.media, i.node), (r.style.display = "none"), (s.style.display = "none"), (l = !0); }), o.addEventListener("loadedmetadata", function () { i.controlsEnabled || i.enableControls(); }), o.addEventListener("keydown", function (e) { i.onkeydown(t, o, e), (l = !1); }); } }, }, { key: "buildkeyboard", value: function (o, e, t, i) { var r = this; r .getElement(r.container) .addEventListener("keydown", function () { r.keyboardAction = !0; }), (r.globalKeydownCallback = function (e) { var t = x.default.activeElement.closest( "." + r.options.classPrefix + "container" ), n = r.media.closest( "." + r.options.classPrefix + "container" ); return ( (r.hasFocus = !(!t || !n || t.id !== n.id)), r.onkeydown(o, i, e) ); }), (r.globalClickCallback = function (e) { r.hasFocus = !!e.target.closest( "." + r.options.classPrefix + "container" ); }), r.globalBind("keydown", r.globalKeydownCallback), r.globalBind("click", r.globalClickCallback); }, }, { key: "onkeydown", value: function (e, t, n) { if (e.hasFocus && e.options.enableKeyboard) for (var o = 0, i = e.options.keyActions.length; o < i; o++) for ( var r = e.options.keyActions[o], a = 0, s = r.keys.length; a < s; a++ ) if (n.keyCode === r.keys[a]) return ( r.action(e, t, n.keyCode, n), n.preventDefault(), void n.stopPropagation() ); return !0; }, }, { key: "play", value: function () { this.proxy.play(); }, }, { key: "pause", value: function () { this.proxy.pause(); }, }, { key: "load", value: function () { this.proxy.load(); }, }, { key: "setCurrentTime", value: function (e) { this.proxy.setCurrentTime(e); }, }, { key: "getCurrentTime", value: function () { return this.proxy.currentTime; }, }, { key: "getDuration", value: function () { return this.proxy.duration; }, }, { key: "setVolume", value: function (e) { this.proxy.volume = e; }, }, { key: "getVolume", value: function () { return this.proxy.getVolume(); }, }, { key: "setMuted", value: function (e) { this.proxy.setMuted(e); }, }, { key: "setSrc", value: function (e) { this.controlsEnabled || this.enableControls(), this.proxy.setSrc(e); }, }, { key: "getSrc", value: function () { return this.proxy.getSrc(); }, }, { key: "canPlayType", value: function (e) { return this.proxy.canPlayType(e); }, }, { key: "remove", value: function () { var l = this, d = l.media.rendererName, u = l.media.originalNode.src; for (var e in l.options.features) { var t = l.options.features[e]; if (l["clean" + t]) try { l["clean" + t]( l, l.getElement(l.layers), l.getElement(l.controls), l.media ); } catch (e) { console.error("error cleaning " + t, e); } } var n = l.node.getAttribute("width"), o = l.node.getAttribute("height"); (n ? -1 === n.indexOf("%") && (n += "px") : (n = "auto"), o ? -1 === o.indexOf("%") && (o += "px") : (o = "auto"), (l.node.style.width = n), (l.node.style.height = o), l.setPlayerSize(0, 0), l.isDynamic ? l .getElement(l.container) .parentNode.insertBefore( l.node, l.getElement(l.container) ) : (function () { l.node.setAttribute("controls", !0), l.node.setAttribute( "id", l.node .getAttribute("id") .replace("_" + d, "") .replace("_from_mejs", "") ); var e = l .getElement(l.container) .querySelector( "." + l.options.classPrefix + "poster>img" ); (e && l.node.setAttribute("poster", e.src), delete l.node.autoplay, l.node.setAttribute("src", ""), "" !== l.media.canPlayType((0, p.getTypeFromFile)(u)) && l.node.setAttribute("src", u), d && -1 < d.indexOf("iframe")) && x.default .getElementById(l.media.id + "-iframe-overlay") .remove(); var i = l.node.cloneNode(); if ( ((i.style.display = ""), l .getElement(l.container) .parentNode.insertBefore( i, l.getElement(l.container) ), l.node.remove(), l.mediaFiles) ) for (var t = 0, n = l.mediaFiles.length; t < n; t++) { var o = x.default.createElement("source"); o.setAttribute("src", l.mediaFiles[t].src), o.setAttribute("type", l.mediaFiles[t].type), i.appendChild(o); } if (l.trackFiles) for ( var r = function (e, t) { var n = l.trackFiles[e], o = x.default.createElement("track"); (o.kind = n.kind), (o.label = n.label), (o.srclang = n.srclang), (o.src = n.src), i.appendChild(o), o.addEventListener("load", function () { (this.mode = "showing"), (i.textTracks[e].mode = "showing"); }); }, a = 0, s = l.trackFiles.length; a < s; a++ ) r(a); delete l.node, delete l.mediaFiles, delete l.trackFiles; })(), l.media.renderer && "function" == typeof l.media.renderer.destroy && l.media.renderer.destroy(), delete f.default.players[l.id], "object" === i(l.getElement(l.container))) && (l .getElement(l.container) .parentNode.querySelector( "." + l.options.classPrefix + "offscreen" ) .remove(), l.getElement(l.container).remove()); l.globalUnbind("resize", l.globalResizeCallback), l.globalUnbind("keydown", l.globalKeydownCallback), l.globalUnbind("click", l.globalClickCallback), delete l.media.player; }, }, { key: "paused", get: function () { return this.proxy.paused; }, }, { key: "muted", get: function () { return this.proxy.muted; }, set: function (e) { this.setMuted(e); }, }, { key: "ended", get: function () { return this.proxy.ended; }, }, { key: "readyState", get: function () { return this.proxy.readyState; }, }, { key: "currentTime", set: function (e) { this.setCurrentTime(e); }, get: function () { return this.getCurrentTime(); }, }, { key: "duration", get: function () { return this.getDuration(); }, }, { key: "volume", set: function (e) { this.setVolume(e); }, get: function () { return this.getVolume(); }, }, { key: "src", set: function (e) { this.setSrc(e); }, get: function () { return this.getSrc(); }, }, ]), r ); })(); (S.default.MediaElementPlayer = l), (f.default.MediaElementPlayer = l), (n.default = l); }, { 17: 17, 2: 2, 25: 25, 26: 26, 27: 27, 28: 28, 3: 3, 30: 30, 5: 5, 6: 6, 7: 7, }, ], 17: [ function (e, t, n) { "use strict"; Object.defineProperty(n, "__esModule", { value: !0 }); var o, i = (function () { function o(e, t) { for (var n = 0; n < t.length; n++) { var o = t[n]; (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o); } } return function (e, t, n) { return t && o(e.prototype, t), n && o(e, n), e; }; })(), r = e(3), a = (o = r) && o.__esModule ? o : { default: o }; var s = (function () { function e(t) { return ( (function (e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function"); })(this, e), (this.media = t.media), (this.isVideo = t.isVideo), (this.classPrefix = t.options.classPrefix), (this.createIframeLayer = function () { return t.createIframeLayer(); }), (this.setPoster = function (e) { return t.setPoster(e); }), this ); } return ( i(e, [ { key: "play", value: function () { this.media.play(); }, }, { key: "pause", value: function () { this.media.pause(); }, }, { key: "load", value: function () { this.isLoaded || this.media.load(), (this.isLoaded = !0); }, }, { key: "setCurrentTime", value: function (e) { this.media.setCurrentTime(e); }, }, { key: "getCurrentTime", value: function () { return this.media.currentTime; }, }, { key: "getDuration", value: function () { var e = this.media.getDuration(); return ( e === 1 / 0 && this.media.seekable && this.media.seekable.length && (e = this.media.seekable.end(0)), e ); }, }, { key: "setVolume", value: function (e) { this.media.setVolume(e); }, }, { key: "getVolume", value: function () { return this.media.getVolume(); }, }, { key: "setMuted", value: function (e) { this.media.setMuted(e); }, }, { key: "setSrc", value: function (e) { var t = this, n = document.getElementById(t.media.id + "-iframe-overlay"); n && n.remove(), t.media.setSrc(e), t.createIframeLayer(), null !== t.media.renderer && "function" == typeof t.media.renderer.getPosterUrl && t.setPoster(t.media.renderer.getPosterUrl()); }, }, { key: "getSrc", value: function () { return this.media.getSrc(); }, }, { key: "canPlayType", value: function (e) { return this.media.canPlayType(e); }, }, { key: "paused", get: function () { return this.media.paused; }, }, { key: "muted", set: function (e) { this.setMuted(e); }, get: function () { return this.media.muted; }, }, { key: "ended", get: function () { return this.media.ended; }, }, { key: "readyState", get: function () { return this.media.readyState; }, }, { key: "currentTime", set: function (e) { this.setCurrentTime(e); }, get: function () { return this.getCurrentTime(); }, }, { key: "duration", get: function () { return this.getDuration(); }, }, { key: "remainingTime", get: function () { return this.getDuration() - this.currentTime(); }, }, { key: "volume", set: function (e) { this.setVolume(e); }, get: function () { return this.getVolume(); }, }, { key: "src", set: function (e) { this.setSrc(e); }, get: function () { return this.getSrc(); }, }, ]), e ); })(); (n.default = s), (a.default.DefaultPlayer = s); }, { 3: 3 }, ], 18: [ function (e, t, n) { "use strict"; a(e(3)); var o, i = a(e(7)), r = a(e(16)); function a(e) { return e && e.__esModule ? e : { default: e }; } "undefined" != typeof jQuery ? (i.default.$ = jQuery) : "undefined" != typeof Zepto ? (i.default.$ = Zepto) : "undefined" != typeof ender && (i.default.$ = ender), void 0 !== (o = i.default.$) && ((o.fn.mediaelementplayer = function (e) { return ( !1 === e ? this.each(function () { var e = o(this).data("mediaelementplayer"); e && e.remove(), o(this).removeData("mediaelementplayer"); }) : this.each(function () { o(this).data( "mediaelementplayer", new r.default(this, e) ); }), this ); }), o(document).ready(function () { o( "." + i.default.MepDefaults.classPrefix + "player" ).mediaelementplayer(); })); }, { 16: 16, 3: 3, 7: 7 }, ], 19: [ function (e, t, n) { "use strict"; var b = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { return typeof e; } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; }, S = a(e(3)), x = a(e(7)), w = e(8), P = e(27), o = e(28), i = e(25), r = e(26); function a(e) { return e && e.__esModule ? e : { default: e }; } var T = { promise: null, load: function (e) { return ( "undefined" != typeof dashjs ? (T.promise = new Promise(function (e) { e(); }).then(function () { T._createPlayer(e); })) : ((e.options.path = "string" == typeof e.options.path ? e.options.path : "https://cdn.dashjs.org/latest/dash.all.min.js"), (T.promise = T.promise || (0, r.loadScript)(e.options.path)), T.promise.then(function () { T._createPlayer(e); })), T.promise ); }, _createPlayer: function (e) { var t = dashjs.MediaPlayer().create(); return S.default["__ready__" + e.id](t), t; }, }, s = { name: "native_dash", options: { prefix: "native_dash", dash: { path: "https://cdn.dashjs.org/latest/dash.all.min.js", debug: !1, drm: {}, robustnessLevel: "", }, }, canPlayType: function (e) { return ( i.HAS_MSE && -1 < ["application/dash+xml"].indexOf(e.toLowerCase()) ); }, create: function (s, l, e) { var t = s.originalNode, r = s.id + "_" + l.prefix, a = t.autoplay, n = t.children, d = null, u = null; t.removeAttribute("type"); for (var o = 0, i = n.length; o < i; o++) n[o].removeAttribute("type"); (d = t.cloneNode(!0)), (l = Object.assign(l, s.options)); for ( var c = x.default.html5media.properties, f = x.default.html5media.events .concat(["click", "mouseover", "mouseout"]) .filter(function (e) { return "error" !== e; }), p = function (e) { var t = (0, P.createEvent)(e.type, s); s.dispatchEvent(t); }, m = function (i) { var e = "" + i.substring(0, 1).toUpperCase() + i.substring(1); (d["get" + e] = function () { return null !== u ? d[i] : null; }), (d["set" + e] = function (e) { if ( -1 === x.default.html5media.readOnlyProperties.indexOf(i) ) if ("src" === i) { var t = "object" === (void 0 === e ? "undefined" : b(e)) && e.src ? e.src : e; if (((d[i] = t), null !== u)) { u.reset(); for (var n = 0, o = f.length; n < o; n++) d.removeEventListener(f[n], p); (u = T._createPlayer({ options: l.dash, id: r })), e && "object" === (void 0 === e ? "undefined" : b(e)) && "object" === b(e.drm) && (u.setProtectionData(e.drm), (0, P.isString)(l.dash.robustnessLevel) && l.dash.robustnessLevel && u .getProtectionController() .setRobustnessLevel( l.dash.robustnessLevel )), u.attachSource(t), a && u.play(); } } else d[i] = e; }); }, h = 0, v = c.length; h < v; h++ ) m(c[h]); if ( ((S.default["__ready__" + r] = function (e) { s.dashPlayer = u = e; for ( var t, n = dashjs.MediaPlayer.events, o = 0, i = f.length; o < i; o++ ) "loadedmetadata" === (t = f[o]) && (u.initialize(), u.attachView(d), u.setAutoPlay(!1), "object" !== b(l.dash.drm) || x.default.Utils.isObjectEmpty(l.dash.drm) || (u.setProtectionData(l.dash.drm), (0, P.isString)(l.dash.robustnessLevel) && l.dash.robustnessLevel && u .getProtectionController() .setRobustnessLevel(l.dash.robustnessLevel)), u.attachSource(d.getSrc())), d.addEventListener(t, p); var r = function (e) { if ("error" === e.type.toLowerCase()) s.generateError(e.message, d.src), console.error(e); else { var t = (0, P.createEvent)(e.type, s); (t.data = e), s.dispatchEvent(t); } }; for (var a in n) n.hasOwnProperty(a) && u.on(n[a], function (e) { return r(e); }); }), e && 0 < e.length) ) for (var g = 0, y = e.length; g < y; g++) if (w.renderer.renderers[l.prefix].canPlayType(e[g].type)) { d.setAttribute("src", e[g].src), void 0 !== e[g].drm && (l.dash.drm = e[g].drm); break; } d.setAttribute("id", r), t.parentNode.insertBefore(d, t), (t.autoplay = !1), (t.style.display = "none"), (d.setSize = function (e, t) { return ( (d.style.width = e + "px"), (d.style.height = t + "px"), d ); }), (d.hide = function () { return d.pause(), (d.style.display = "none"), d; }), (d.show = function () { return (d.style.display = ""), d; }), (d.destroy = function () { null !== u && u.reset(); }); var E = (0, P.createEvent)("rendererready", d); return ( s.dispatchEvent(E), s.promises.push(T.load({ options: l.dash, id: r })), d ); }, }; o.typeChecks.push(function (e) { return ~e.toLowerCase().indexOf(".mpd") ? "application/dash+xml" : null; }), w.renderer.add(s); }, { 25: 25, 26: 26, 27: 27, 28: 28, 3: 3, 7: 7, 8: 8 }, ], 20: [ function (e, t, n) { "use strict"; Object.defineProperty(n, "__esModule", { value: !0 }), (n.PluginDetector = void 0); var d = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { return typeof e; } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; }, C = o(e(3)), k = o(e(2)), _ = o(e(7)), N = o(e(5)), A = e(8), L = e(27), F = e(25), j = e(28); function o(e) { return e && e.__esModule ? e : { default: e }; } var r = (n.PluginDetector = { plugins: [], hasPluginVersion: function (e, t) { var n = r.plugins[e]; return ( (t[1] = t[1] || 0), (t[2] = t[2] || 0), n[0] > t[0] || (n[0] === t[0] && n[1] > t[1]) || (n[0] === t[0] && n[1] === t[1] && n[2] >= t[2]) ); }, addPlugin: function (e, t, n, o, i) { r.plugins[e] = r.detectPlugin(t, n, o, i); }, detectPlugin: function (e, t, n, o) { var i = [0, 0, 0], r = void 0, a = void 0; if ( null !== F.NAV.plugins && void 0 !== F.NAV.plugins && "object" === d(F.NAV.plugins[e]) ) { if ( (r = F.NAV.plugins[e].description) && (void 0 === F.NAV.mimeTypes || !F.NAV.mimeTypes[t] || F.NAV.mimeTypes[t].enabledPlugin) ) for ( var s = 0, l = (i = r .replace(e, "") .replace(/^\s+/, "") .replace(/\sr/gi, ".") .split(".")).length; s < l; s++ ) i[s] = parseInt(i[s].match(/\d+/), 10); } else if (void 0 !== C.default.ActiveXObject) try { (a = new ActiveXObject(n)) && (i = o(a)); } catch (e) {} return i; }, }); r.addPlugin( "flash", "Shockwave Flash", "application/x-shockwave-flash", "ShockwaveFlash.ShockwaveFlash", function (e) { var t = [], n = e.GetVariable("$version"); return ( n && ((n = n.split(" ")[1].split(",")), (t = [ parseInt(n[0], 10), parseInt(n[1], 10), parseInt(n[2], 10), ])), t ); } ); var i = { create: function (e, t, n) { var r = {}, o = !1; (r.options = t), (r.id = e.id + "_" + r.options.prefix), (r.mediaElement = e), (r.flashState = {}), (r.flashApi = null), (r.flashApiStack = []); for ( var i = _.default.html5media.properties, a = function (t) { r.flashState[t] = null; var e = "" + t.substring(0, 1).toUpperCase() + t.substring(1); (r["get" + e] = function () { if (null !== r.flashApi) { if ("function" == typeof r.flashApi["get_" + t]) { var e = r.flashApi["get_" + t](); return "buffered" === t ? { start: function () { return 0; }, end: function () { return e; }, length: 1, } : e; } return null; } return null; }), (r["set" + e] = function (e) { if ( ("src" === t && (e = (0, j.absolutizeUrl)(e)), null !== r.flashApi && void 0 !== r.flashApi["set_" + t]) ) try { r.flashApi["set_" + t](e); } catch (e) {} else r.flashApiStack.push({ type: "set", propName: t, value: e, }); }); }, s = 0, l = i.length; s < l; s++ ) a(i[s]); var d = _.default.html5media.methods, u = function (e) { r[e] = function () { if (o) if (null !== r.flashApi) { if (r.flashApi["fire_" + e]) try { r.flashApi["fire_" + e](); } catch (e) {} } else r.flashApiStack.push({ type: "call", methodName: e }); }; }; d.push("stop"); for (var c = 0, f = d.length; c < f; c++) u(d[c]); for (var p = ["rendererready"], m = 0, h = p.length; m < h; m++) { var v = (0, L.createEvent)(p[m], r); e.dispatchEvent(v); } (C.default["__ready__" + r.id] = function () { if ( ((r.flashReady = !0), (r.flashApi = k.default.getElementById("__" + r.id)), r.flashApiStack.length) ) for (var e = 0, t = r.flashApiStack.length; e < t; e++) { var n = r.flashApiStack[e]; if ("set" === n.type) { var o = n.propName, i = "" + o.substring(0, 1).toUpperCase() + o.substring(1); r["set" + i](n.value); } else "call" === n.type && r[n.methodName](); } }), (C.default["__event__" + r.id] = function (e, t) { var n = (0, L.createEvent)(e, r); if (t) try { (n.data = JSON.parse(t)), (n.details.data = JSON.parse(t)); } catch (e) { n.message = t; } r.mediaElement.dispatchEvent(n); }), (r.flashWrapper = k.default.createElement("div")), -1 === ["always", "sameDomain"].indexOf(r.options.shimScriptAccess) && (r.options.shimScriptAccess = "sameDomain"); var g = e.originalNode.autoplay, y = [ "uid=" + r.id, "autoplay=" + g, "allowScriptAccess=" + r.options.shimScriptAccess, "preload=" + (e.originalNode.getAttribute("preload") || ""), ], E = null !== e.originalNode && "video" === e.originalNode.tagName.toLowerCase(), b = E ? e.originalNode.height : 1, S = E ? e.originalNode.width : 1; e.originalNode.getAttribute("src") && y.push("src=" + e.originalNode.getAttribute("src")), !0 === r.options.enablePseudoStreaming && (y.push( "pseudostreamstart=" + r.options.pseudoStreamingStartQueryParam ), y.push("pseudostreamtype=" + r.options.pseudoStreamingType)), r.options.streamDelimiter && y.push( "streamdelimiter=" + encodeURIComponent(r.options.streamDelimiter) ), r.options.proxyType && y.push("proxytype=" + r.options.proxyType), e.appendChild(r.flashWrapper), (e.originalNode.style.display = "none"); var x = []; if (F.IS_IE || F.IS_EDGE) { var w = k.default.createElement("div"); r.flashWrapper.appendChild(w), (x = F.IS_EDGE ? [ 'type="application/x-shockwave-flash"', 'data="' + r.options.pluginPath + r.options.filename + '"', 'id="__' + r.id + '"', 'width="' + S + '"', 'height="' + b + "'\"", ] : [ 'classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"', 'codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"', 'id="__' + r.id + '"', 'width="' + S + '"', 'height="' + b + '"', ]), E || x.push('style="clip: rect(0 0 0 0); position: absolute;"'), (w.outerHTML = "
            ' + N.default.t("mejs.install-flash") + "
            "); } else (x = [ 'id="__' + r.id + '"', 'name="__' + r.id + '"', 'play="true"', 'loop="false"', 'quality="high"', 'bgcolor="#000000"', 'wmode="transparent"', 'allowScriptAccess="' + r.options.shimScriptAccess + '"', 'allowFullScreen="true"', 'type="application/x-shockwave-flash"', 'pluginspage="//www.macromedia.com/go/getflashplayer"', 'src="' + r.options.pluginPath + r.options.filename + '"', 'flashvars="' + y.join("&") + '"', ]), E ? (x.push('width="' + S + '"'), x.push('height="' + b + '"')) : x.push( 'style="position: fixed; left: -9999em; top: -9999em;"' ), (r.flashWrapper.innerHTML = ""); if ( ((r.flashNode = r.flashWrapper.lastChild), (r.hide = function () { (o = !1), E && (r.flashNode.style.display = "none"); }), (r.show = function () { (o = !0), E && (r.flashNode.style.display = ""); }), (r.setSize = function (e, t) { (r.flashNode.style.width = e + "px"), (r.flashNode.style.height = t + "px"), null !== r.flashApi && "function" == typeof r.flashApi.fire_setSize && r.flashApi.fire_setSize(e, t); }), (r.destroy = function () { r.flashNode.remove(); }), n && 0 < n.length) ) for (var P = 0, T = n.length; P < T; P++) if (A.renderer.renderers[t.prefix].canPlayType(n[P].type)) { r.setSrc(n[P].src); break; } return r; }, }; if (r.hasPluginVersion("flash", [10, 0, 0])) { j.typeChecks.push(function (e) { return (e = e.toLowerCase()).startsWith("rtmp") ? ~e.indexOf(".mp3") ? "audio/rtmp" : "video/rtmp" : /\.og(a|g)/i.test(e) ? "audio/ogg" : ~e.indexOf(".m3u8") ? "application/x-mpegURL" : ~e.indexOf(".mpd") ? "application/dash+xml" : ~e.indexOf(".flv") ? "video/flv" : null; }); var a = { name: "flash_video", options: { prefix: "flash_video", filename: "mediaelement-flash-video.swf", enablePseudoStreaming: !1, pseudoStreamingStartQueryParam: "start", pseudoStreamingType: "byte", proxyType: "", streamDelimiter: "", }, canPlayType: function (e) { return ~[ "video/mp4", "video/rtmp", "audio/rtmp", "rtmp/mp4", "audio/mp4", "video/flv", "video/x-flv", ].indexOf(e.toLowerCase()); }, create: i.create, }; A.renderer.add(a); var s = { name: "flash_hls", options: { prefix: "flash_hls", filename: "mediaelement-flash-video-hls.swf", }, canPlayType: function (e) { return ~[ "application/x-mpegurl", "application/vnd.apple.mpegurl", "audio/mpegurl", "audio/hls", "video/hls", ].indexOf(e.toLowerCase()); }, create: i.create, }; A.renderer.add(s); var l = { name: "flash_dash", options: { prefix: "flash_dash", filename: "mediaelement-flash-video-mdash.swf", }, canPlayType: function (e) { return ~["application/dash+xml"].indexOf(e.toLowerCase()); }, create: i.create, }; A.renderer.add(l); var u = { name: "flash_audio", options: { prefix: "flash_audio", filename: "mediaelement-flash-audio.swf", }, canPlayType: function (e) { return ~["audio/mp3"].indexOf(e.toLowerCase()); }, create: i.create, }; A.renderer.add(u); var c = { name: "flash_audio_ogg", options: { prefix: "flash_audio_ogg", filename: "mediaelement-flash-audio-ogg.swf", }, canPlayType: function (e) { return ~["audio/ogg", "audio/oga", "audio/ogv"].indexOf( e.toLowerCase() ); }, create: i.create, }; A.renderer.add(c); } }, { 2: 2, 25: 25, 27: 27, 28: 28, 3: 3, 5: 5, 7: 7, 8: 8 }, ], 21: [ function (e, t, n) { "use strict"; var y = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { return typeof e; } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; }, E = a(e(3)), b = a(e(7)), S = e(8), x = e(27), o = e(25), i = e(28), r = e(26); function a(e) { return e && e.__esModule ? e : { default: e }; } var w = { promise: null, load: function (e) { return ( "undefined" != typeof flvjs ? (w.promise = new Promise(function (e) { e(); }).then(function () { w._createPlayer(e); })) : ((e.options.path = "string" == typeof e.options.path ? e.options.path : "https://cdn.jsdelivr.net/npm/flv.js@latest"), (w.promise = w.promise || (0, r.loadScript)(e.options.path)), w.promise.then(function () { w._createPlayer(e); })), w.promise ); }, _createPlayer: function (e) { (flvjs.LoggingControl.enableDebug = e.options.debug), (flvjs.LoggingControl.enableVerbose = e.options.debug); var t = flvjs.createPlayer(e.options, e.configs); return E.default["__ready__" + e.id](t), t; }, }, s = { name: "native_flv", options: { prefix: "native_flv", flv: { path: "https://cdn.jsdelivr.net/npm/flv.js@latest", cors: !0, debug: !1, }, }, canPlayType: function (e) { return ( o.HAS_MSE && -1 < ["video/x-flv", "video/flv"].indexOf(e.toLowerCase()) ); }, create: function (s, a, e) { var t = s.originalNode, l = s.id + "_" + a.prefix, d = null, u = null; (d = t.cloneNode(!0)), (a = Object.assign(a, s.options)); for ( var n = b.default.html5media.properties, c = b.default.html5media.events .concat(["click", "mouseover", "mouseout"]) .filter(function (e) { return "error" !== e; }), f = function (e) { var t = (0, x.createEvent)(e.type, s); s.dispatchEvent(t); }, o = function (r) { var e = "" + r.substring(0, 1).toUpperCase() + r.substring(1); (d["get" + e] = function () { return null !== u ? d[r] : null; }), (d["set" + e] = function (e) { if ( -1 === b.default.html5media.readOnlyProperties.indexOf(r) ) if ("src" === r) { if ( ((d[r] = "object" === (void 0 === e ? "undefined" : y(e)) && e.src ? e.src : e), null !== u) ) { var t = { type: "flv" }; (t.url = e), (t.cors = a.flv.cors), (t.debug = a.flv.debug), (t.path = a.flv.path); var n = a.flv.configs; u.destroy(); for (var o = 0, i = c.length; o < i; o++) d.removeEventListener(c[o], f); (u = w._createPlayer({ options: t, configs: n, id: l, })).attachMediaElement(d), u.load(); } } else d[r] = e; }); }, i = 0, r = n.length; i < r; i++ ) o(n[i]); if ( ((E.default["__ready__" + l] = function (e) { s.flvPlayer = u = e; for (var t, i = flvjs.Events, n = 0, o = c.length; n < o; n++) "loadedmetadata" === (t = c[n]) && (u.unload(), u.detachMediaElement(), u.attachMediaElement(d), u.load()), d.addEventListener(t, f); var r = function (o) { i.hasOwnProperty(o) && u.on(i[o], function () { for ( var e = arguments.length, t = Array(e), n = 0; n < e; n++ ) t[n] = arguments[n]; return (function (e, t) { if ("error" === e) { var n = t[0] + ": " + t[1] + " " + t[2].msg; s.generateError(n, d.src); } else { var o = (0, x.createEvent)(e, s); (o.data = t), s.dispatchEvent(o); } })(i[o], t); }); }; for (var a in i) r(a); }), e && 0 < e.length) ) for (var p = 0, m = e.length; p < m; p++) if (S.renderer.renderers[a.prefix].canPlayType(e[p].type)) { d.setAttribute("src", e[p].src); break; } d.setAttribute("id", l), t.parentNode.insertBefore(d, t), (t.autoplay = !1), (t.style.display = "none"); var h = { type: "flv" }; (h.url = d.src), (h.cors = a.flv.cors), (h.debug = a.flv.debug), (h.path = a.flv.path); var v = a.flv.configs; (d.setSize = function (e, t) { return ( (d.style.width = e + "px"), (d.style.height = t + "px"), d ); }), (d.hide = function () { return null !== u && u.pause(), (d.style.display = "none"), d; }), (d.show = function () { return (d.style.display = ""), d; }), (d.destroy = function () { null !== u && u.destroy(); }); var g = (0, x.createEvent)("rendererready", d); return ( s.dispatchEvent(g), s.promises.push(w.load({ options: h, configs: v, id: l })), d ); }, }; i.typeChecks.push(function (e) { return ~e.toLowerCase().indexOf(".flv") ? "video/flv" : null; }), S.renderer.add(s); }, { 25: 25, 26: 26, 27: 27, 28: 28, 3: 3, 7: 7, 8: 8 }, ], 22: [ function (e, t, n) { "use strict"; var y = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { return typeof e; } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; }, E = a(e(3)), b = a(e(7)), S = e(8), x = e(27), o = e(25), i = e(28), r = e(26); function a(e) { return e && e.__esModule ? e : { default: e }; } var w = { promise: null, load: function (e) { return ( "undefined" != typeof Hls ? (w.promise = new Promise(function (e) { e(); }).then(function () { w._createPlayer(e); })) : ((e.options.path = "string" == typeof e.options.path ? e.options.path : "https://cdn.jsdelivr.net/npm/hls.js@latest"), (w.promise = w.promise || (0, r.loadScript)(e.options.path)), w.promise.then(function () { w._createPlayer(e); })), w.promise ); }, _createPlayer: function (e) { var t = new Hls(e.options); return E.default["__ready__" + e.id](t), t; }, }, s = { name: "native_hls", options: { prefix: "native_hls", hls: { path: "https://cdn.jsdelivr.net/npm/hls.js@latest", autoStartLoad: !1, debug: !1, }, }, canPlayType: function (e) { return ( o.HAS_MSE && -1 < [ "application/x-mpegurl", "application/vnd.apple.mpegurl", "audio/mpegurl", "audio/hls", "video/hls", ].indexOf(e.toLowerCase()) ); }, create: function (d, i, u) { var e = d.originalNode, r = d.id + "_" + i.prefix, t = e.getAttribute("preload"), n = e.autoplay, c = null, f = null, p = 0, m = u.length; (f = e.cloneNode(!0)), ((i = Object.assign(i, d.options)).hls.autoStartLoad = (t && "none" !== t) || n); for ( var o = b.default.html5media.properties, h = b.default.html5media.events .concat(["click", "mouseover", "mouseout"]) .filter(function (e) { return "error" !== e; }), v = function (e) { var t = (0, x.createEvent)(e.type, d); d.dispatchEvent(t); }, a = function (o) { var e = "" + o.substring(0, 1).toUpperCase() + o.substring(1); (f["get" + e] = function () { return null !== c ? f[o] : null; }), (f["set" + e] = function (e) { if ( -1 === b.default.html5media.readOnlyProperties.indexOf(o) ) if ("src" === o) { if ( ((f[o] = "object" === (void 0 === e ? "undefined" : y(e)) && e.src ? e.src : e), null !== c) ) { c.destroy(); for (var t = 0, n = h.length; t < n; t++) f.removeEventListener(h[t], v); (c = w._createPlayer({ options: i.hls, id: r, })).loadSource(e), c.attachMedia(f); } } else f[o] = e; }); }, s = 0, l = o.length; s < l; s++ ) a(o[s]); if ( ((E.default["__ready__" + r] = function (e) { d.hlsPlayer = c = e; for ( var i = Hls.Events, t = function (e) { if ("loadedmetadata" === e) { var t = d.originalNode.src; c.detachMedia(), c.loadSource(t), c.attachMedia(f); } f.addEventListener(e, v); }, n = 0, o = h.length; n < o; n++ ) t(h[n]); var s = void 0, l = void 0, r = function (o) { i.hasOwnProperty(o) && c.on(i[o], function () { for ( var e = arguments.length, t = Array(e), n = 0; n < e; n++ ) t[n] = arguments[n]; return (function (e, t) { if ( "hlsError" === e && (console.warn(t), (t = t[1]).fatal) ) switch (t.type) { case "mediaError": var n = new Date().getTime(); if (!s || 3e3 < n - s) (s = new Date().getTime()), c.recoverMediaError(); else if (!l || 3e3 < n - l) (l = new Date().getTime()), console.warn( "Attempting to swap Audio Codec and recover from media error" ), c.swapAudioCodec(), c.recoverMediaError(); else { var o = "Cannot recover, last media error recovery failed"; d.generateError(o, f.src), console.error(o); } break; case "networkError": if ("manifestLoadError" === t.details) if (p < m && void 0 !== u[p + 1]) f.setSrc(u[p++].src), f.load(), f.play(); else { var i = "Network error"; d.generateError(i, u), console.error(i); } else { var r = "Network error"; d.generateError(r, u), console.error(r); } break; default: c.destroy(); } else { var a = (0, x.createEvent)(e, d); (a.data = t), d.dispatchEvent(a); } })(i[o], t); }); }; for (var a in i) r(a); }), 0 < m) ) for (; p < m; p++) if (S.renderer.renderers[i.prefix].canPlayType(u[p].type)) { f.setAttribute("src", u[p].src); break; } "auto" === t || n || (f.addEventListener("play", function () { null !== c && c.startLoad(); }), f.addEventListener("pause", function () { null !== c && c.stopLoad(); })), f.setAttribute("id", r), e.parentNode.insertBefore(f, e), (e.autoplay = !1), (e.style.display = "none"), (f.setSize = function (e, t) { return ( (f.style.width = e + "px"), (f.style.height = t + "px"), f ); }), (f.hide = function () { return f.pause(), (f.style.display = "none"), f; }), (f.show = function () { return (f.style.display = ""), f; }), (f.destroy = function () { null !== c && (c.stopLoad(), c.destroy()); }); var g = (0, x.createEvent)("rendererready", f); return ( d.dispatchEvent(g), d.promises.push(w.load({ options: i.hls, id: r })), f ); }, }; i.typeChecks.push(function (e) { return ~e.toLowerCase().indexOf(".m3u8") ? "application/x-mpegURL" : null; }), S.renderer.add(s); }, { 25: 25, 26: 26, 27: 27, 28: 28, 3: 3, 7: 7, 8: 8 }, ], 23: [ function (e, t, n) { "use strict"; var o = r(e(3)), g = r(e(2)), y = r(e(7)), E = e(8), b = e(27), i = e(25); function r(e) { return e && e.__esModule ? e : { default: e }; } var a = { name: "html5", options: { prefix: "html5" }, canPlayType: function (e) { var t = g.default.createElement("video"); return (i.IS_ANDROID && /\/mp(3|4)$/i.test(e)) || (~[ "application/x-mpegurl", "vnd.apple.mpegurl", "audio/mpegurl", "audio/hls", "video/hls", ].indexOf(e.toLowerCase()) && i.SUPPORTS_NATIVE_HLS) ? "yes" : t.canPlayType ? t.canPlayType(e.toLowerCase()).replace(/no/, "") : ""; }, create: function (n, e, t) { var o = n.id + "_" + e.prefix, i = !1, r = null; void 0 === n.originalNode || null === n.originalNode ? ((r = g.default.createElement("audio")), n.appendChild(r)) : (r = n.originalNode), r.setAttribute("id", o); for ( var a = y.default.html5media.properties, s = function (t) { var e = "" + t.substring(0, 1).toUpperCase() + t.substring(1); (r["get" + e] = function () { return r[t]; }), (r["set" + e] = function (e) { -1 === y.default.html5media.readOnlyProperties.indexOf(t) && (r[t] = e); }); }, l = 0, d = a.length; l < d; l++ ) s(a[l]); for ( var u, c = y.default.html5media.events .concat(["click", "mouseover", "mouseout"]) .filter(function (e) { return "error" !== e; }), f = 0, p = c.length; f < p; f++ ) (u = c[f]), r.addEventListener(u, function (e) { if (i) { var t = (0, b.createEvent)(e.type, e.target); n.dispatchEvent(t); } }); (r.setSize = function (e, t) { return (r.style.width = e + "px"), (r.style.height = t + "px"), r; }), (r.hide = function () { return (i = !1), (r.style.display = "none"), r; }), (r.show = function () { return (i = !0), (r.style.display = ""), r; }); var m = 0, h = t.length; if (0 < h) for (; m < h; m++) if (E.renderer.renderers[e.prefix].canPlayType(t[m].type)) { r.setAttribute("src", t[m].src); break; } r.addEventListener("error", function (e) { e && e.target && e.target.error && 4 === e.target.error.code && i && (m < h && void 0 !== t[m + 1] ? ((r.src = t[m++].src), r.load(), r.play()) : n.generateError( "Media error: Format(s) not supported or source(s) not found", t )); }); var v = (0, b.createEvent)("rendererready", r); return n.dispatchEvent(v), r; }, }; (o.default.HtmlMediaElement = y.default.HtmlMediaElement = a), E.renderer.add(a); }, { 2: 2, 25: 25, 27: 27, 3: 3, 7: 7, 8: 8 }, ], 24: [ function (e, t, n) { "use strict"; var w = a(e(3)), P = a(e(2)), T = a(e(7)), o = e(8), C = e(27), i = e(28), r = e(26); function a(e) { return e && e.__esModule ? e : { default: e }; } var k = { isIframeStarted: !1, isIframeLoaded: !1, iframeQueue: [], enqueueIframe: function (e) { (k.isLoaded = "undefined" != typeof YT && YT.loaded), k.isLoaded ? k.createIframe(e) : (k.loadIframeApi(), k.iframeQueue.push(e)); }, loadIframeApi: function () { k.isIframeStarted || ((0, r.loadScript)("https://www.youtube.com/player_api"), (k.isIframeStarted = !0)); }, iFrameReady: function () { for ( k.isLoaded = !0, k.isIframeLoaded = !0; 0 < k.iframeQueue.length; ) { var e = k.iframeQueue.pop(); k.createIframe(e); } }, createIframe: function (e) { return new YT.Player(e.containerId, e); }, getYouTubeId: function (e) { var t = ""; return ( 0 < e.indexOf("?") ? "" === (t = k.getYouTubeIdFromParam(e)) && (t = k.getYouTubeIdFromUrl(e)) : (t = k.getYouTubeIdFromUrl(e)), (t = t.substring(t.lastIndexOf("/") + 1).split("?"))[0] ); }, getYouTubeIdFromParam: function (e) { if (null == e || !e.trim().length) return null; for ( var t = e.split("?")[1].split("&"), n = "", o = 0, i = t.length; o < i; o++ ) { var r = t[o].split("="); if ("v" === r[0]) { n = r[1]; break; } } return n; }, getYouTubeIdFromUrl: function (e) { return null != e && e.trim().length ? (e = e.split("?")[0]).substring(e.lastIndexOf("/") + 1) : null; }, getYouTubeNoCookieUrl: function (e) { if ( null == e || !e.trim().length || -1 === e.indexOf("//www.youtube") ) return e; var t = e.split("/"); return ( (t[2] = t[2].replace(".com", "-nocookie.com")), t.join("/") ); }, }, s = { name: "youtube_iframe", options: { prefix: "youtube_iframe", youtube: { autoplay: 0, controls: 0, disablekb: 1, end: 0, loop: 0, modestbranding: 0, playsinline: 0, rel: 0, showinfo: 0, start: 0, iv_load_policy: 3, nocookie: !1, imageQuality: null, }, }, canPlayType: function (e) { return ~["video/youtube", "video/x-youtube"].indexOf( e.toLowerCase() ); }, create: function (m, n, o) { var h = {}, v = [], g = null, r = !0, a = !1, y = null; (h.options = n), (h.id = m.id + "_" + n.prefix), (h.mediaElement = m); for ( var e = T.default.html5media.properties, t = function (i) { var e = "" + i.substring(0, 1).toUpperCase() + i.substring(1); (h["get" + e] = function () { if (null !== g) { switch (i) { case "currentTime": return g.getCurrentTime(); case "duration": return g.getDuration(); case "volume": return g.getVolume() / 100; case "playbackRate": return g.getPlaybackRate(); case "paused": return r; case "ended": return a; case "muted": return g.isMuted(); case "buffered": var e = g.getVideoLoadedFraction(), t = g.getDuration(); return { start: function () { return 0; }, end: function () { return e * t; }, length: 1, }; case "src": return g.getVideoUrl(); case "readyState": return 4; } return null; } return null; }), (h["set" + e] = function (e) { if (null !== g) switch (i) { case "src": var t = "string" == typeof e ? e : e[0].src, n = k.getYouTubeId(t); m.originalNode.autoplay ? g.loadVideoById(n) : g.cueVideoById(n); break; case "currentTime": g.seekTo(e); break; case "muted": e ? g.mute() : g.unMute(), setTimeout(function () { var e = (0, C.createEvent)("volumechange", h); m.dispatchEvent(e); }, 50); break; case "volume": e, g.setVolume(100 * e), setTimeout(function () { var e = (0, C.createEvent)("volumechange", h); m.dispatchEvent(e); }, 50); break; case "playbackRate": g.setPlaybackRate(e), setTimeout(function () { var e = (0, C.createEvent)("ratechange", h); m.dispatchEvent(e); }, 50); break; case "readyState": var o = (0, C.createEvent)("canplay", h); m.dispatchEvent(o); } else v.push({ type: "set", propName: i, value: e }); }); }, i = 0, s = e.length; i < s; i++ ) t(e[i]); for ( var l = T.default.html5media.methods, d = function (e) { h[e] = function () { if (null !== g) switch (e) { case "play": return (r = !1), g.playVideo(); case "pause": return (r = !0), g.pauseVideo(); case "load": return null; } else v.push({ type: "call", methodName: e }); }; }, u = 0, c = l.length; u < c; u++ ) d(l[u]); var f = P.default.createElement("div"); (f.id = h.id), h.options.youtube.nocookie && (m.originalNode.src = k.getYouTubeNoCookieUrl(o[0].src)), m.originalNode.parentNode.insertBefore(f, m.originalNode), (m.originalNode.style.display = "none"); var p = "audio" === m.originalNode.tagName.toLowerCase(), E = p ? "1" : m.originalNode.height, b = p ? "1" : m.originalNode.width, S = k.getYouTubeId(o[0].src), x = { id: h.id, containerId: f.id, videoId: S, height: E, width: b, playerVars: Object.assign( { controls: 0, rel: 0, disablekb: 1, showinfo: 0, modestbranding: 0, html5: 1, iv_load_policy: 3, }, h.options.youtube ), origin: w.default.location.host, events: { onReady: function (e) { if ( ((m.youTubeApi = g = e.target), (m.youTubeState = { paused: !0, ended: !1 }), v.length) ) for (var t = 0, n = v.length; t < n; t++) { var o = v[t]; if ("set" === o.type) { var i = o.propName, r = "" + i.substring(0, 1).toUpperCase() + i.substring(1); h["set" + r](o.value); } else "call" === o.type && h[o.methodName](); } (y = g.getIframe()), m.originalNode.muted && g.mute(); for ( var a = ["mouseover", "mouseout"], s = function (e) { var t = (0, C.createEvent)(e.type, h); m.dispatchEvent(t); }, l = 0, d = a.length; l < d; l++ ) y.addEventListener(a[l], s, !1); for ( var u = [ "rendererready", "loadedmetadata", "loadeddata", "canplay", ], c = 0, f = u.length; c < f; c++ ) { var p = (0, C.createEvent)(u[c], h); m.dispatchEvent(p); } }, onStateChange: function (e) { var t = []; switch (e.data) { case -1: (t = ["loadedmetadata"]), (r = !0), (a = !1); break; case 0: (t = ["ended"]), (r = !1), (a = !h.options.youtube.loop), h.options.youtube.loop || h.stopInterval(); break; case 1: (t = ["play", "playing"]), (a = r = !1), h.startInterval(); break; case 2: (t = ["pause"]), (r = !0), (a = !1), h.stopInterval(); break; case 3: (t = ["progress"]), (a = !1); break; case 5: (t = ["loadeddata", "loadedmetadata", "canplay"]), (r = !0), (a = !1); } for (var n = 0, o = t.length; n < o; n++) { var i = (0, C.createEvent)(t[n], h); m.dispatchEvent(i); } }, onError: function (e) { return (function (e) { var t = ""; switch (e.data) { case 2: t = "The request contains an invalid parameter value. Verify that video ID has 11 characters and that contains no invalid characters, such as exclamation points or asterisks."; break; case 5: t = "The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred."; break; case 100: t = "The video requested was not found. Either video has been removed or has been marked as private."; break; case 101: case 105: t = "The owner of the requested video does not allow it to be played in embedded players."; break; default: t = "Unknown error."; } m.generateError("Code " + e.data + ": " + t, o); })(e); }, }, }; return ( (p || m.originalNode.hasAttribute("playsinline")) && (x.playerVars.playsinline = 1), m.originalNode.controls && (x.playerVars.controls = 1), m.originalNode.autoplay && (x.playerVars.autoplay = 1), m.originalNode.loop && (x.playerVars.loop = 1), ((x.playerVars.loop && 1 === parseInt(x.playerVars.loop, 10)) || -1 < m.originalNode.src.indexOf("loop=")) && !x.playerVars.playlist && -1 === m.originalNode.src.indexOf("playlist=") && (x.playerVars.playlist = k.getYouTubeId(m.originalNode.src)), k.enqueueIframe(x), (h.onEvent = function (e, t, n) { null != n && (m.youTubeState = n); }), (h.setSize = function (e, t) { null !== g && g.setSize(e, t); }), (h.hide = function () { h.stopInterval(), h.pause(), y && (y.style.display = "none"); }), (h.show = function () { y && (y.style.display = ""); }), (h.destroy = function () { g.destroy(); }), (h.interval = null), (h.startInterval = function () { h.interval = setInterval(function () { var e = (0, C.createEvent)("timeupdate", h); m.dispatchEvent(e); }, 250); }), (h.stopInterval = function () { h.interval && clearInterval(h.interval); }), (h.getPosterUrl = function () { var e = n.youtube.imageQuality, t = k.getYouTubeId(m.originalNode.src); return e && -1 < [ "default", "hqdefault", "mqdefault", "sddefault", "maxresdefault", ].indexOf(e) && t ? "https://img.youtube.com/vi/" + t + "/" + e + ".jpg" : ""; }), h ); }, }; (w.default.onYouTubePlayerAPIReady = function () { k.iFrameReady(); }), i.typeChecks.push(function (e) { return /\/\/(www\.youtube|youtu\.?be)/i.test(e) ? "video/x-youtube" : null; }), o.renderer.add(s); }, { 2: 2, 26: 26, 27: 27, 28: 28, 3: 3, 7: 7, 8: 8 }, ], 25: [ function (e, t, n) { "use strict"; Object.defineProperty(n, "__esModule", { value: !0 }), (n.cancelFullScreen = n.requestFullScreen = n.isFullScreen = n.FULLSCREEN_EVENT_NAME = n.HAS_NATIVE_FULLSCREEN_ENABLED = n.HAS_TRUE_NATIVE_FULLSCREEN = n.HAS_IOS_FULLSCREEN = n.HAS_MS_NATIVE_FULLSCREEN = n.HAS_MOZ_NATIVE_FULLSCREEN = n.HAS_WEBKIT_NATIVE_FULLSCREEN = n.HAS_NATIVE_FULLSCREEN = n.SUPPORTS_NATIVE_HLS = n.SUPPORT_PASSIVE_EVENT = n.SUPPORT_POINTER_EVENTS = n.HAS_MSE = n.IS_STOCK_ANDROID = n.IS_SAFARI = n.IS_FIREFOX = n.IS_CHROME = n.IS_EDGE = n.IS_IE = n.IS_ANDROID = n.IS_IOS = n.IS_IPOD = n.IS_IPHONE = n.IS_IPAD = n.UA = n.NAV = void 0); var i = a(e(3)), r = a(e(2)), o = a(e(7)); function a(e) { return e && e.__esModule ? e : { default: e }; } for ( var s = (n.NAV = i.default.navigator), l = (n.UA = s.userAgent.toLowerCase()), d = (n.IS_IPAD = /ipad/i.test(l) && !i.default.MSStream), u = (n.IS_IPHONE = /iphone/i.test(l) && !i.default.MSStream), c = (n.IS_IPOD = /ipod/i.test(l) && !i.default.MSStream), f = ((n.IS_IOS = /ipad|iphone|ipod/i.test(l) && !i.default.MSStream), (n.IS_ANDROID = /android/i.test(l))), p = (n.IS_IE = /(trident|microsoft)/i.test(s.appName)), m = (n.IS_EDGE = ("msLaunchUri" in s) && !("documentMode" in r.default)), h = (n.IS_CHROME = /chrome/i.test(l)), v = (n.IS_FIREFOX = /firefox/i.test(l)), g = (n.IS_SAFARI = /safari/i.test(l) && !h), y = (n.IS_STOCK_ANDROID = /^mozilla\/\d+\.\d+\s\(linux;\su;/i.test( l )), E = (n.HAS_MSE = ("MediaSource" in i.default)), b = (n.SUPPORT_POINTER_EVENTS = (function () { var e = r.default.createElement("x"), t = r.default.documentElement, n = i.default.getComputedStyle; if (!("pointerEvents" in e.style)) return !1; (e.style.pointerEvents = "auto"), (e.style.pointerEvents = "x"), t.appendChild(e); var o = n && "auto" === (n(e, "") || {}).pointerEvents; return e.remove(), !!o; })()), S = (n.SUPPORT_PASSIVE_EVENT = (function () { var e = !1; try { var t = Object.defineProperty({}, "passive", { get: function () { e = !0; }, }); i.default.addEventListener("test", null, t); } catch (e) {} return e; })()), x = ["source", "track", "audio", "video"], w = void 0, P = 0, T = x.length; P < T; P++ ) w = r.default.createElement(x[P]); var C = (n.SUPPORTS_NATIVE_HLS = g || (p && /edge/i.test(l))), k = void 0 !== w.webkitEnterFullscreen, _ = void 0 !== w.requestFullscreen; k && /mac os x 10_5/i.test(l) && (k = _ = !1); var N = void 0 !== w.webkitRequestFullScreen, A = void 0 !== w.mozRequestFullScreen, L = void 0 !== w.msRequestFullscreen, F = N || A || L, j = F, I = "", M = void 0, O = void 0, D = void 0; A ? (j = r.default.mozFullScreenEnabled) : L && (j = r.default.msFullscreenEnabled), h && (k = !1), F && (N ? (I = "webkitfullscreenchange") : A ? (I = "fullscreenchange") : L && (I = "MSFullscreenChange"), (n.isFullScreen = M = function () { return A ? r.default.mozFullScreen : N ? r.default.webkitIsFullScreen : L ? null !== r.default.msFullscreenElement : void 0; }), (n.requestFullScreen = O = function (e) { N ? e.webkitRequestFullScreen() : A ? e.mozRequestFullScreen() : L && e.msRequestFullscreen(); }), (n.cancelFullScreen = D = function () { N ? r.default.webkitCancelFullScreen() : A ? r.default.mozCancelFullScreen() : L && r.default.msExitFullscreen(); })); var R = (n.HAS_NATIVE_FULLSCREEN = _), V = (n.HAS_WEBKIT_NATIVE_FULLSCREEN = N), H = (n.HAS_MOZ_NATIVE_FULLSCREEN = A), U = (n.HAS_MS_NATIVE_FULLSCREEN = L), q = (n.HAS_IOS_FULLSCREEN = k), B = (n.HAS_TRUE_NATIVE_FULLSCREEN = F), z = (n.HAS_NATIVE_FULLSCREEN_ENABLED = j), W = (n.FULLSCREEN_EVENT_NAME = I); (n.isFullScreen = M), (n.requestFullScreen = O), (n.cancelFullScreen = D), (o.default.Features = o.default.Features || {}), (o.default.Features.isiPad = d), (o.default.Features.isiPod = c), (o.default.Features.isiPhone = u), (o.default.Features.isiOS = o.default.Features.isiPhone || o.default.Features.isiPad), (o.default.Features.isAndroid = f), (o.default.Features.isIE = p), (o.default.Features.isEdge = m), (o.default.Features.isChrome = h), (o.default.Features.isFirefox = v), (o.default.Features.isSafari = g), (o.default.Features.isStockAndroid = y), (o.default.Features.hasMSE = E), (o.default.Features.supportsNativeHLS = C), (o.default.Features.supportsPointerEvents = b), (o.default.Features.supportsPassiveEvent = S), (o.default.Features.hasiOSFullScreen = q), (o.default.Features.hasNativeFullscreen = R), (o.default.Features.hasWebkitNativeFullScreen = V), (o.default.Features.hasMozNativeFullScreen = H), (o.default.Features.hasMsNativeFullScreen = U), (o.default.Features.hasTrueNativeFullScreen = B), (o.default.Features.nativeFullScreenEnabled = z), (o.default.Features.fullScreenEventName = W), (o.default.Features.isFullScreen = M), (o.default.Features.requestFullScreen = O), (o.default.Features.cancelFullScreen = D); }, { 2: 2, 3: 3, 7: 7 }, ], 26: [ function (e, t, n) { "use strict"; Object.defineProperty(n, "__esModule", { value: !0 }), (n.removeClass = n.addClass = n.hasClass = void 0), (n.loadScript = a), (n.offset = s), (n.toggleClass = h), (n.fadeOut = v), (n.fadeIn = g), (n.siblings = y), (n.visible = E), (n.ajax = b); var l = r(e(3)), i = r(e(2)), o = r(e(7)); function r(e) { return e && e.__esModule ? e : { default: e }; } function a(o) { return new Promise(function (e, t) { var n = i.default.createElement("script"); (n.src = o), (n.async = !0), (n.onload = function () { n.remove(), e(); }), (n.onerror = function () { n.remove(), t(); }), i.default.head.appendChild(n); }); } function s(e) { var t = e.getBoundingClientRect(), n = l.default.pageXOffset || i.default.documentElement.scrollLeft, o = l.default.pageYOffset || i.default.documentElement.scrollTop; return { top: t.top + o, left: t.left + n }; } var d = void 0, u = void 0, c = void 0; "classList" in i.default.documentElement ? ((d = function (e, t) { return void 0 !== e.classList && e.classList.contains(t); }), (u = function (e, t) { return e.classList.add(t); }), (c = function (e, t) { return e.classList.remove(t); })) : ((d = function (e, t) { return new RegExp("\\b" + t + "\\b").test(e.className); }), (u = function (e, t) { f(e, t) || (e.className += " " + t); }), (c = function (e, t) { e.className = e.className.replace( new RegExp("\\b" + t + "\\b", "g"), "" ); })); var f = (n.hasClass = d), p = (n.addClass = u), m = (n.removeClass = c); function h(e, t) { f(e, t) ? m(e, t) : p(e, t); } function v(i) { var r = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 400, a = arguments[2]; i.style.opacity || (i.style.opacity = 1); var s = null; l.default.requestAnimationFrame(function e(t) { var n = t - (s = s || t), o = parseFloat(1 - n / r, 2); (i.style.opacity = o < 0 ? 0 : o), r < n ? a && "function" == typeof a && a() : l.default.requestAnimationFrame(e); }); } function g(i) { var r = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 400, a = arguments[2]; i.style.opacity || (i.style.opacity = 0); var s = null; l.default.requestAnimationFrame(function e(t) { var n = t - (s = s || t), o = parseFloat(n / r, 2); (i.style.opacity = 1 < o ? 1 : o), r < n ? a && "function" == typeof a && a() : l.default.requestAnimationFrame(e); }); } function y(e, t) { var n = []; for ( e = e.parentNode.firstChild; (t && !t(e)) || n.push(e), (e = e.nextSibling); ); return n; } function E(e) { return void 0 !== e.getClientRects && "function" === e.getClientRects ? !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length) : !(!e.offsetWidth && !e.offsetHeight); } function b(e, t, n, o) { var i = l.default.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"), r = "application/x-www-form-urlencoded; charset=UTF-8", a = !1, s = "*/".concat("*"); switch (t) { case "text": r = "text/plain"; break; case "json": r = "application/json, text/javascript"; break; case "html": r = "text/html"; break; case "xml": r = "application/xml, text/xml"; } "application/x-www-form-urlencoded" !== r && (s = r + ", */*; q=0.01"), i && (i.open("GET", e, !0), i.setRequestHeader("Accept", s), (i.onreadystatechange = function () { if (!a && 4 === i.readyState) if (200 === i.status) { a = !0; var e = void 0; switch (t) { case "json": e = JSON.parse(i.responseText); break; case "xml": e = i.responseXML; break; default: e = i.responseText; } n(e); } else "function" == typeof o && o(i.status); }), i.send()); } (o.default.Utils = o.default.Utils || {}), (o.default.Utils.offset = s), (o.default.Utils.hasClass = f), (o.default.Utils.addClass = p), (o.default.Utils.removeClass = m), (o.default.Utils.toggleClass = h), (o.default.Utils.fadeIn = g), (o.default.Utils.fadeOut = v), (o.default.Utils.siblings = y), (o.default.Utils.visible = E), (o.default.Utils.ajax = b), (o.default.Utils.loadScript = a); }, { 2: 2, 3: 3, 7: 7 }, ], 27: [ function (e, t, n) { "use strict"; Object.defineProperty(n, "__esModule", { value: !0 }), (n.escapeHTML = a), (n.debounce = s), (n.isObjectEmpty = l), (n.splitEvents = d), (n.createEvent = u), (n.isNodeAfter = c), (n.isString = f); var o, i = e(7), r = (o = i) && o.__esModule ? o : { default: o }; function a(e) { if ("string" != typeof e) throw new Error("Argument passed must be a string"); var t = { "&": "&", "<": "<", ">": ">", '"': """ }; return e.replace(/[&<>"]/g, function (e) { return t[e]; }); } function s(o, i) { var r = this, a = arguments, s = 2 < arguments.length && void 0 !== arguments[2] && arguments[2]; if ("function" != typeof o) throw new Error("First argument must be a function"); if ("number" != typeof i) throw new Error("Second argument must be a numeric value"); var l = void 0; return function () { var e = r, t = a, n = s && !l; clearTimeout(l), (l = setTimeout(function () { (l = null), s || o.apply(e, t); }, i)), n && o.apply(e, t); }; } function l(e) { return Object.getOwnPropertyNames(e).length <= 0; } function d(e, n) { var o = /^((after|before)print|(before)?unload|hashchange|message|o(ff|n)line|page(hide|show)|popstate|resize|storage)\b/, i = { d: [], w: [] }; return ( (e || "").split(" ").forEach(function (e) { var t = e + (n ? "." + n : ""); t.startsWith(".") ? (i.d.push(t), i.w.push(t)) : i[o.test(e) ? "w" : "d"].push(t); }), (i.d = i.d.join(" ")), (i.w = i.w.join(" ")), i ); } function u(e, t) { if ("string" != typeof e) throw new Error("Event name must be a string"); var n = e.match(/([a-z]+\.([a-z]+))/i), o = { target: t }; return ( null !== n && ((e = n[1]), (o.namespace = n[2])), new window.CustomEvent(e, { detail: o }) ); } function c(e, t) { return !!(e && t && 2 & e.compareDocumentPosition(t)); } function f(e) { return "string" == typeof e; } (r.default.Utils = r.default.Utils || {}), (r.default.Utils.escapeHTML = a), (r.default.Utils.debounce = s), (r.default.Utils.isObjectEmpty = l), (r.default.Utils.splitEvents = d), (r.default.Utils.createEvent = u), (r.default.Utils.isNodeAfter = c), (r.default.Utils.isString = f); }, { 7: 7 }, ], 28: [ function (e, t, n) { "use strict"; Object.defineProperty(n, "__esModule", { value: !0 }), (n.typeChecks = void 0), (n.absolutizeUrl = l), (n.formatType = d), (n.getMimeFromType = u), (n.getTypeFromFile = c), (n.getExtension = f), (n.normalizeExtension = p); var o, i = e(7), r = (o = i) && o.__esModule ? o : { default: o }, a = e(27); var s = (n.typeChecks = []); function l(e) { if ("string" != typeof e) throw new Error("`url` argument must be a string"); var t = document.createElement("div"); return ( (t.innerHTML = 'x'), t.firstChild.href ); } function d(e) { var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : ""; return e && !t ? c(e) : t; } function u(e) { if ("string" != typeof e) throw new Error("`type` argument must be a string"); return e && -1 < e.indexOf(";") ? e.substr(0, e.indexOf(";")) : e; } function c(e) { if ("string" != typeof e) throw new Error("`url` argument must be a string"); for (var t = 0, n = s.length; t < n; t++) { var o = s[t](e); if (o) return o; } var i = p(f(e)), r = "video/mp4"; return ( i && (~[ "mp4", "m4v", "ogg", "ogv", "webm", "flv", "mpeg", "mov", ].indexOf(i) ? (r = "video/" + i) : ~["mp3", "oga", "wav", "mid", "midi"].indexOf(i) && (r = "audio/" + i)), r ); } function f(e) { if ("string" != typeof e) throw new Error("`url` argument must be a string"); var t = e.split("?")[0].split("\\").pop().split("/").pop(); return ~t.indexOf(".") ? t.substring(t.lastIndexOf(".") + 1) : ""; } function p(e) { if ("string" != typeof e) throw new Error("`extension` argument must be a string"); switch (e) { case "mp4": case "m4v": return "mp4"; case "webm": case "webma": case "webmv": return "webm"; case "ogg": case "oga": case "ogv": return "ogg"; default: return e; } } (r.default.Utils = r.default.Utils || {}), (r.default.Utils.typeChecks = s), (r.default.Utils.absolutizeUrl = l), (r.default.Utils.formatType = d), (r.default.Utils.getMimeFromType = u), (r.default.Utils.getTypeFromFile = c), (r.default.Utils.getExtension = f), (r.default.Utils.normalizeExtension = p); }, { 27: 27, 7: 7 }, ], 29: [ function (e, t, n) { "use strict"; var o, i = a(e(2)), r = a(e(4)); function a(e) { return e && e.__esModule ? e : { default: e }; } if ( ([ Element.prototype, CharacterData.prototype, DocumentType.prototype, ].forEach(function (e) { e.hasOwnProperty("remove") || Object.defineProperty(e, "remove", { configurable: !0, enumerable: !0, writable: !0, value: function () { this.parentNode.removeChild(this); }, }); }), (function () { if ("function" == typeof window.CustomEvent) return; function e(e, t) { t = t || { bubbles: !1, cancelable: !1, detail: void 0 }; var n = i.default.createEvent("CustomEvent"); return n.initCustomEvent(e, t.bubbles, t.cancelable, t.detail), n; } (e.prototype = window.Event.prototype), (window.CustomEvent = e); })(), "function" != typeof Object.assign && (Object.assign = function (e) { if (null == e) throw new TypeError( "Cannot convert undefined or null to object" ); for (var t = Object(e), n = 1, o = arguments.length; n < o; n++) { var i = arguments[n]; if (null !== i) for (var r in i) Object.prototype.hasOwnProperty.call(i, r) && (t[r] = i[r]); } return t; }), String.prototype.startsWith || (String.prototype.startsWith = function (e, t) { return (t = t || 0), this.substr(t, e.length) === e; }), Element.prototype.matches || (Element.prototype.matches = Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector || function (e) { for ( var t = ( this.document || this.ownerDocument ).querySelectorAll(e), n = t.length - 1; 0 <= --n && t.item(n) !== this; ); return -1 < n; }), window.Element && !Element.prototype.closest && (Element.prototype.closest = function (e) { var t = (this.document || this.ownerDocument).querySelectorAll(e), n = void 0, o = this; do { for (n = t.length; 0 <= --n && t.item(n) !== o; ); } while (n < 0 && (o = o.parentElement)); return o; }), (function () { for ( var i = 0, e = ["ms", "moz", "webkit", "o"], t = 0; t < e.length && !window.requestAnimationFrame; ++t ) (window.requestAnimationFrame = window[e[t] + "RequestAnimationFrame"]), (window.cancelAnimationFrame = window[e[t] + "CancelAnimationFrame"] || window[e[t] + "CancelRequestAnimationFrame"]); window.requestAnimationFrame || (window.requestAnimationFrame = function (e) { var t = new Date().getTime(), n = Math.max(0, 16 - (t - i)), o = window.setTimeout(function () { e(t + n); }, n); return (i = t + n), o; }), window.cancelAnimationFrame || (window.cancelAnimationFrame = function (e) { clearTimeout(e); }); })(), /firefox/i.test(navigator.userAgent)) ) { var s = window.getComputedStyle; window.getComputedStyle = function (e, t) { var n = s(e, t); return null === n ? { getPropertyValue: function () {} } : n; }; } window.Promise || (window.Promise = r.default), (o = window.Node || window.Element) && o.prototype && null === o.prototype.children && Object.defineProperty(o.prototype, "children", { get: function () { for ( var e = 0, t = void 0, n = this.childNodes, o = []; (t = n[e++]); ) 1 === t.nodeType && o.push(t); return o; }, }); }, { 2: 2, 4: 4 }, ], 30: [ function (e, t, n) { "use strict"; Object.defineProperty(n, "__esModule", { value: !0 }), (n.isDropFrame = C), (n.secondsToTimeCode = a), (n.timeCodeToSeconds = s), (n.calculateTimeFormat = l), (n.convertSMPTEtoSeconds = d); var o, i = e(7), r = (o = i) && o.__esModule ? o : { default: o }; function C() { return !( (0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 25) % 1 == 0 ); } function a(e) { var t = 1 < arguments.length && void 0 !== arguments[1] && arguments[1], n = 2 < arguments.length && void 0 !== arguments[2] && arguments[2], o = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : 25, i = 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : 0, r = 5 < arguments.length && void 0 !== arguments[5] ? arguments[5] : "hh:mm:ss"; e = !e || "number" != typeof e || e < 0 ? 0 : e; var a = Math.round(0.066666 * o), s = Math.round(o), l = 24 * Math.round(3600 * o), d = Math.round(600 * o), u = C(o) ? ";" : ":", c = void 0, f = void 0, p = void 0, m = void 0, h = Math.round(e * o); if (C(o)) { h < 0 && (h = l + h); var v = (h %= l) % d; (h += 9 * a * Math.floor(h / d)), a < v && (h += a * Math.floor((v - a) / Math.round(60 * s - a))); var g = Math.floor(h / s); (c = Math.floor(Math.floor(g / 60) / 60)), (f = Math.floor(g / 60) % 60), (p = n ? g % 60 : Math.floor((h / s) % 60).toFixed(i)); } else (c = Math.floor(e / 3600) % 24), (f = Math.floor(e / 60) % 60), (p = n ? Math.floor(e % 60) : Math.floor(e % 60).toFixed(i)); (c = c <= 0 ? 0 : c), (p = 60 === (p = p <= 0 ? 0 : p) ? 0 : p), (f = 60 === (f = f <= 0 ? 0 : f) ? 0 : f); for (var y = r.split(":"), E = {}, b = 0, S = y.length; b < S; ++b) { for (var x = "", w = 0, P = y[b].length; w < P; w++) x.indexOf(y[b][w]) < 0 && (x += y[b][w]); ~["f", "s", "m", "h"].indexOf(x) && (E[x] = y[b].length); } var T = t || 0 < c ? (c < 10 && 1 < E.h ? "0" + c : c) + ":" : ""; return ( (T += (f < 10 && 1 < E.m ? "0" + f : f) + ":"), (T += "" + (p < 10 && 1 < E.s ? "0" + p : p)), n && (T += (m = (m = (h % s).toFixed(0)) <= 0 ? 0 : m) < 10 && E.f ? u + "0" + m : "" + u + m), T ); } function s(e) { var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 25; if ("string" != typeof e) throw new TypeError("Time must be a string"); if ( (0 < e.indexOf(";") && (e = e.replace(";", ":")), !/\d{2}(\:\d{2}){0,3}/i.test(e)) ) throw new TypeError("Time code must have the format `00:00:00`"); var n = e.split(":"), o = void 0, i = 0, r = 0, a = 0, s = 0, l = 0, d = Math.round(0.066666 * t), u = Math.round(t), c = 3600 * u, f = 60 * u; switch (n.length) { default: case 1: a = parseInt(n[0], 10); break; case 2: (r = parseInt(n[0], 10)), (a = parseInt(n[1], 10)); break; case 3: (i = parseInt(n[0], 10)), (r = parseInt(n[1], 10)), (a = parseInt(n[2], 10)); break; case 4: (i = parseInt(n[0], 10)), (r = parseInt(n[1], 10)), (a = parseInt(n[2], 10)), (s = parseInt(n[3], 10)); } return ( (o = C(t) ? c * i + f * r + u * a + s - d * ((l = 60 * i + r) - Math.floor(l / 10)) : (c * i + f * r + t * a + s) / t), parseFloat(o.toFixed(3)) ); } function l(e, t) { var n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : 25; e = !e || "number" != typeof e || e < 0 ? 0 : e; for ( var o = Math.floor(e / 3600) % 24, i = Math.floor(e / 60) % 60, r = Math.floor(e % 60), a = [ [Math.floor(((e % 1) * n).toFixed(3)), "f"], [r, "s"], [i, "m"], [o, "h"], ], s = t.timeFormat, l = s[1] === s[0], d = l ? 2 : 1, u = s.length < d ? s[d] : ":", c = s[0], f = !1, p = 0, m = a.length; p < m; p++ ) if (~s.indexOf(a[p][1])) f = !0; else if (f) { for (var h = !1, v = p; v < m; v++) if (0 < a[v][0]) { h = !0; break; } if (!h) break; l || (s = c + s), (s = a[p][1] + u + s), l && (s = a[p][1] + s), (c = a[p][1]); } t.timeFormat = s; } function d(e) { if ("string" != typeof e) throw new TypeError("Argument must be a string value"); for ( var t = ~(e = e.replace(",", ".")).indexOf(".") ? e.split(".")[1].length : 0, n = 0, o = 1, i = 0, r = (e = e.split(":").reverse()).length; i < r; i++ ) (o = 1), 0 < i && (o = Math.pow(60, i)), (n += Number(e[i]) * o); return Number(n.toFixed(t)); } (r.default.Utils = r.default.Utils || {}), (r.default.Utils.secondsToTimeCode = a), (r.default.Utils.timeCodeToSeconds = s), (r.default.Utils.calculateTimeFormat = l), (r.default.Utils.convertSMPTEtoSeconds = d); }, { 7: 7 }, ], }, {}, [29, 6, 5, 15, 23, 20, 19, 21, 22, 24, 16, 18, 17, 9, 10, 11, 12, 13, 14] ); !(function (a) { void 0 === mejs.plugins && ((mejs.plugins = {}), (mejs.plugins.silverlight = []), mejs.plugins.silverlight.push({ types: [] })), (mejs.HtmlMediaElementShim = mejs.HtmlMediaElementShim || { getTypeFromFile: mejs.Utils.getTypeFromFile, }), void 0 === mejs.MediaFeatures && (mejs.MediaFeatures = mejs.Features), void 0 === mejs.Utility && (mejs.Utility = mejs.Utils); var e = MediaElementPlayer.prototype.init; MediaElementPlayer.prototype.init = function () { (this.options.classPrefix = "mejs-"), (this.$media = this.$node = a(this.node)), e.call(this); }; var t = MediaElementPlayer.prototype._meReady; (MediaElementPlayer.prototype._meReady = function () { (this.container = a(this.container)), (this.controls = a(this.controls)), (this.layers = a(this.layers)), t.apply(this, arguments); }), (MediaElementPlayer.prototype.getElement = function (e) { return void 0 !== a && e instanceof a ? e[0] : e; }), (MediaElementPlayer.prototype.buildfeatures = function (e, t, i, s) { for ( var r = [ "playpause", "current", "progress", "duration", "tracks", "volume", "fullscreen", ], l = 0, n = this.options.features.length; l < n; l++ ) { var o = this.options.features[l]; if (this["build" + o]) try { -1 === r.indexOf(o) ? this["build" + o](e, a(t), a(i), s) : this["build" + o](e, t, i, s); } catch (e) { console.error("error building " + o, e); } } }); })((window, jQuery)); !(function (e, n) { (e.wp = e.wp || {}), (e.wp.mediaelement = new (function () { var e = {}; return { initialize: function () { ((e = "undefined" != typeof _wpmejsSettings ? n.extend(!0, {}, _wpmejsSettings) : e).classPrefix = "mejs-"), (e.success = e.success || function (e) { var n, t; e.rendererName && -1 !== e.rendererName.indexOf("flash") && ((n = e.attributes.autoplay && "false" !== e.attributes.autoplay), (t = e.attributes.loop && "false" !== e.attributes.loop), n && e.addEventListener( "canplay", function () { e.play(); }, !1 ), t && e.addEventListener( "ended", function () { e.play(); }, !1 )); }), (e.customError = function (e, n) { if ( -1 !== e.rendererName.indexOf("flash") || -1 !== e.rendererName.indexOf("flv") ) return ( '' + mejsL10n.strings["mejs.download-file"] + "" ); }), n(".wp-audio-shortcode, .wp-video-shortcode") .not(".mejs-container") .filter(function () { return !n(this).parent().hasClass("mejs-mediaelement"); }) .mediaelementplayer(e); }, }; })()), n(e.wp.mediaelement.initialize); })(window, jQuery); ("use strict"); !(function (e, t) { "object" == typeof exports ? (module.exports = t()) : "function" == typeof define && define.amd ? define(["jquery", "googlemaps!"], t) : (e.GMaps = t()); })(this, function () { var T, z, t, o, S = function (e, t) { var o; if (e === t) return e; for (o in t) void 0 !== t[o] && (e[o] = t[o]); return e; }, i = function (e, o) { var t, n = Array.prototype.slice.call(arguments, 2), r = [], i = e.length; if (Array.prototype.map && e.map === Array.prototype.map) r = Array.prototype.map.call(e, function (e) { var t = n.slice(0); return t.splice(0, 0, e), o.apply(this, t); }); else for (t = 0; t < i; t++) (callback_params = n), callback_params.splice(0, 0, e[t]), r.push(o.apply(this, callback_params)); return r; }, s = function (e) { var t, o = []; for (t = 0; t < e.length; t++) o = o.concat(e[t]); return o; }, a = function (e, t) { var o, n, r, i, s; for (o = 0; o < e.length; o++) e[o] instanceof google.maps.LatLng || (0 < e[o].length && "object" == typeof e[o][0] ? (e[o] = a(e[o], t)) : (e[o] = ((n = e[o]), (r = t), (s = i = void 0), (i = n[0]), (s = n[1]), r && ((i = n[1]), (s = n[0])), new google.maps.LatLng(i, s)))); return e; }, W = function (e, t) { e = e.replace("#", ""); return "jQuery" in window && t ? $("#" + e, t)[0] : document.getElementById(e); }, p = ((T = document), (z = function (o) { 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 z(o); (o.zoom = o.zoom || 15), (o.mapType = o.mapType || "roadmap"); var e, t = function (e, t) { return void 0 === e ? t : e; }, u = this, n = [ "bounds_changed", "center_changed", "click", "dblclick", "drag", "dragend", "dragstart", "idle", "maptypeid_changed", "projection_changed", "resize", "tilesloaded", "zoom_changed", ], r = ["mousemove", "mouseout", "mouseover"], i = [ "el", "lat", "lng", "mapType", "width", "height", "markerClusterer", "enableNewStyle", ], s = o.el || o.div, a = o.markerClusterer, l = google.maps.MapTypeId[o.mapType.toUpperCase()], p = new google.maps.LatLng(o.lat, o.lng), c = t(o.zoomControl, !0), g = o.zoomControlOpt || { style: "DEFAULT", position: "TOP_LEFT" }, h = g.style || "DEFAULT", d = g.position || "TOP_LEFT", m = t(o.panControl, !0), f = t(o.mapTypeControl, !0), y = t(o.scaleControl, !0), v = t(o.streetViewControl, !0), w = t(w, !0), k = {}, L = { zoom: this.zoom, center: p, mapTypeId: l }, b = { panControl: m, zoomControl: c, zoomControlOptions: { style: google.maps.ZoomControlStyle[h], position: google.maps.ControlPosition[d], }, mapTypeControl: f, scaleControl: y, streetViewControl: v, overviewMapControl: w, }; if ( ("string" == typeof o.el || "string" == typeof o.div ? -1 < s.indexOf("#") ? (this.el = W(s, o.context)) : (this.el = function (e, t) { var o = e.replace(".", ""); return "jQuery" in this && t ? $("." + o, t)[0] : document.getElementsByClassName(o)[0]; }.apply(this, [s, o.context])) : (this.el = s), void 0 === this.el || null === this.el) ) throw "No element defined."; for ( window.context_menu = window.context_menu || {}, window.context_menu[u.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 = o.zoom, this.registered_events = {}, this.el.style.width = o.width || this.el.scrollWidth || this.el.offsetWidth, this.el.style.height = o.height || this.el.scrollHeight || this.el.offsetHeight, google.maps.visualRefresh = o.enableNewStyle, e = 0; e < i.length; e++ ) delete o[i[e]]; for ( 1 != o.disableDefaultUI && (L = S(L, b)), k = S(L, o), e = 0; e < n.length; e++ ) delete k[n[e]]; for (e = 0; e < r.length; e++) delete k[r[e]]; (this.map = new google.maps.Map(this.el, k)), a && (this.markerClusterer = a.apply(this, [this.map])); var _ = function (t, o) { var e = "", n = window.context_menu[u.el.id][t]; for (var r in n) if (n.hasOwnProperty(r)) { var i = n[r]; e += '
          • ' + i.title + "
          • "; } if (W("gmaps_context_menu")) { var s = W("gmaps_context_menu"); s.innerHTML = e; var a = s.getElementsByTagName("a"), l = a.length; for (r = 0; r < l; r++) { var p = a[r]; google.maps.event.clearListeners(p, "click"), google.maps.event.addDomListenerOnce( p, "click", function (e) { e.preventDefault(), n[this.id.replace(t + "_", "")].action.apply(u, [o]), u.hideContextMenu(); }, !1 ); } var c = function (e) { var t = 0, o = 0; if (e.getBoundingClientRect) { var n = e.getBoundingClientRect(), r = -(window.scrollX ? window.scrollX : window.pageXOffset), i = -(window.scrollY ? window.scrollY : window.pageYOffset); return [n.left - r, n.top - i]; } if (e.offsetParent) for ( ; (t += e.offsetLeft), (o += e.offsetTop), (e = e.offsetParent); ); return [t, o]; }.apply(this, [u.el]), g = c[0] + o.pixel.x - 15, h = c[1] + o.pixel.y - 15; (s.style.left = g + "px"), (s.style.top = h + "px"); } }; (this.buildContextMenu = function (o, n) { if ("marker" === o) { n.pixel = {}; var r = new google.maps.OverlayView(); r.setMap(u.map), (r.draw = function () { var e = r.getProjection(), t = n.marker.getPosition(); (n.pixel = e.fromLatLngToContainerPixel(t)), _(o, n); }); } else _(o, n); var e = W("gmaps_context_menu"); setTimeout(function () { e.style.display = "block"; }, 0); }), (this.setContextMenu = function (e) { window.context_menu[u.el.id][e.control] = {}; var t, o = T.createElement("ul"); for (t in e.options) if (e.options.hasOwnProperty(t)) { var n = e.options[t]; window.context_menu[u.el.id][e.control][n.name] = { title: n.title, action: n.action, }; } (o.id = "gmaps_context_menu"), (o.style.display = "none"), (o.style.position = "absolute"), (o.style.minWidth = "100px"), (o.style.background = "white"), (o.style.listStyle = "none"), (o.style.padding = "8px"), (o.style.boxShadow = "2px 2px 6px #ccc"), W("gmaps_context_menu") || T.body.appendChild(o); var r = W("gmaps_context_menu"); google.maps.event.addDomListener( r, "mouseout", function (e) { (e.relatedTarget && this.contains(e.relatedTarget)) || window.setTimeout(function () { r.style.display = "none"; }, 400); }, !1 ); }), (this.hideContextMenu = function () { var e = W("gmaps_context_menu"); e && (e.style.display = "none"); }); var M = function (e, t) { google.maps.event.addListener(e, t, function (e) { null == e && (e = this), o[t].apply(this, [e]), u.hideContextMenu(); }); }; google.maps.event.addListener( this.map, "zoom_changed", this.hideContextMenu ); for (var x = 0; x < n.length; x++) { (C = n[x]) in o && M(this.map, C); } for (x = 0; x < r.length; x++) { var C; (C = r[x]) in o && M(this.map, C); } google.maps.event.addListener(this.map, "rightclick", function (e) { o.rightclick && o.rightclick.apply(this, [e]), null != window.context_menu[u.el.id].map && u.buildContextMenu("map", e); }), (this.refresh = function () { google.maps.event.trigger(this.map, "resize"); }), (this.fitZoom = function () { var e, t = [], o = this.markers.length; for (e = 0; e < o; e++) "boolean" == typeof this.markers[e].visible && this.markers[e].visible && t.push(this.markers[e].getPosition()); this.fitLatLngBounds(t); }), (this.fitLatLngBounds = function (e) { var t, o = e.length, n = new google.maps.LatLngBounds(); for (t = 0; t < o; t++) n.extend(e[t]); this.map.fitBounds(n); }), (this.setCenter = function (e, t, o) { this.map.panTo(new google.maps.LatLng(e, t)), o && o(); }), (this.getElement = function () { return this.el; }), (this.zoomIn = function (e) { (e = e || 1), (this.zoom = this.map.getZoom() + e), this.map.setZoom(this.zoom); }), (this.zoomOut = function (e) { (e = e || 1), (this.zoom = this.map.getZoom() - e), this.map.setZoom(this.zoom); }); var O, P = []; for (O in this.map) "function" != typeof this.map[O] || this[O] || P.push(O); for (e = 0; e < P.length; e++) !(function (e, t, o) { e[o] = function () { return t[o].apply(t, arguments); }; })(this, this.map, P[e]); })); return ( (p.prototype.createControl = function (o) { var e = document.createElement("div"); for (var t in ((e.style.cursor = "pointer"), !0 !== o.disableDefaultStyles && ((e.style.fontFamily = "Roboto, Arial, sans-serif"), (e.style.fontSize = "11px"), (e.style.boxShadow = "rgba(0, 0, 0, 0.298039) 0px 1px 4px -1px")), o.style)) e.style[t] = o.style[t]; for (var n in (o.id && (e.id = o.id), o.title && (e.title = o.title), o.classes && (e.className = o.classes), o.content && ("string" == typeof o.content ? (e.innerHTML = o.content) : o.content instanceof HTMLElement && e.appendChild(o.content)), o.position && (e.position = google.maps.ControlPosition[o.position.toUpperCase()]), o.events)) !(function (e, t) { google.maps.event.addDomListener(e, t, function () { o.events[t].apply(this, [this]); }); })(e, n); return (e.index = 1), e; }), (p.prototype.addControl = function (e) { var t = this.createControl(e); return this.controls.push(t), this.map.controls[t.position].push(t), t; }), (p.prototype.removeControl = function (e) { var t, o = null; for (t = 0; t < this.controls.length; t++) this.controls[t] == e && ((o = this.controls[t].position), this.controls.splice(t, 1)); if (o) for (t = 0; t < this.map.controls.length; t++) { var n = this.map.controls[e.position]; if (n.getAt(t) == e) { n.removeAt(t); break; } } return e; }), (p.prototype.createMarker = function (n) { if (null == n.lat && null == n.lng && null == n.position) throw "No latitude or longitude defined."; var t = this, e = n.details, o = n.fences, r = n.outside, i = { position: new google.maps.LatLng(n.lat, n.lng), map: null }, s = S(i, n); delete s.lat, delete s.lng, delete s.fences, delete s.outside; var a = new google.maps.Marker(s); if (((a.fences = o), n.infoWindow)) { a.infoWindow = new google.maps.InfoWindow(n.infoWindow); for ( var l = [ "closeclick", "content_changed", "domready", "position_changed", "zindex_changed", ], p = 0; p < l.length; p++ ) !(function (e, t) { n.infoWindow[t] && google.maps.event.addListener(e, t, function (e) { n.infoWindow[t].apply(this, [e]); }); })(a.infoWindow, l[p]); } var c = [ "animation_changed", "clickable_changed", "cursor_changed", "draggable_changed", "flat_changed", "icon_changed", "position_changed", "shadow_changed", "shape_changed", "title_changed", "visible_changed", "zindex_changed", ], g = [ "dblclick", "drag", "dragend", "dragstart", "mousedown", "mouseout", "mouseover", "mouseup", ]; for (p = 0; p < c.length; p++) !(function (e, t) { n[t] && google.maps.event.addListener(e, t, function () { n[t].apply(this, [this]); }); })(a, c[p]); for (p = 0; p < g.length; p++) !(function (t, e, o) { n[o] && google.maps.event.addListener(e, o, function (e) { e.pixel || (e.pixel = t.getProjection().fromLatLngToPoint(e.latLng)), n[o].apply(this, [e]); }); })(this.map, a, g[p]); return ( google.maps.event.addListener(a, "click", function () { (this.details = e), n.click && n.click.apply(this, [this]), a.infoWindow && (t.hideInfoWindows(), a.infoWindow.open(t.map, a)); }), google.maps.event.addListener(a, "rightclick", function (e) { (e.marker = this), n.rightclick && n.rightclick.apply(this, [e]), null != window.context_menu[t.el.id].marker && t.buildContextMenu("marker", e); }), a.fences && google.maps.event.addListener(a, "dragend", function () { t.checkMarkerGeofence(a, function (e, t) { r(e, t); }); }), a ); }), (p.prototype.addMarker = function (e) { var t; if (e.hasOwnProperty("gm_accessors_")) t = e; else { if ( !((e.hasOwnProperty("lat") && e.hasOwnProperty("lng")) || e.position) ) throw "No latitude or longitude defined."; t = this.createMarker(e); } return ( t.setMap(this.map), this.markerClusterer && this.markerClusterer.addMarker(t), this.markers.push(t), p.fire("marker_added", t, this), t ); }), (p.prototype.addMarkers = function (e) { for (var t, o = 0; (t = e[o]); o++) this.addMarker(t); return this.markers; }), (p.prototype.hideInfoWindows = function () { for (var e, t = 0; (e = this.markers[t]); t++) e.infoWindow && e.infoWindow.close(); }), (p.prototype.removeMarker = function (e) { for (var t = 0; t < this.markers.length; t++) if (this.markers[t] === e) { this.markers[t].setMap(null), this.markers.splice(t, 1), this.markerClusterer && this.markerClusterer.removeMarker(e), p.fire("marker_removed", e, this); break; } return e; }), (p.prototype.removeMarkers = function (e) { var t = []; if (void 0 === e) { for (var o = 0; o < this.markers.length; o++) { (r = this.markers[o]).setMap(null), p.fire("marker_removed", r, this); } this.markerClusterer && this.markerClusterer.clearMarkers && this.markerClusterer.clearMarkers(), (this.markers = t); } else { for (o = 0; o < e.length; o++) { var n = this.markers.indexOf(e[o]); if (-1 < n) (r = this.markers[n]).setMap(null), this.markerClusterer && this.markerClusterer.removeMarker(r), p.fire("marker_removed", r, this); } for (o = 0; o < this.markers.length; o++) { var r; null != (r = this.markers[o]).getMap() && t.push(r); } this.markers = t; } }), (p.prototype.drawOverlay = function (s) { var a = new google.maps.OverlayView(), i = !0; return ( a.setMap(this.map), null != s.auto_show && (i = s.auto_show), (a.onAdd = function () { var e = document.createElement("div"); (e.style.borderStyle = "none"), (e.style.borderWidth = "0px"), (e.style.position = "absolute"), (e.style.zIndex = 100), (e.innerHTML = s.content), (a.el = e), s.layer || (s.layer = "overlayLayer"); var t, o, n = this.getPanes(), r = ["contextmenu", "DOMMouseScroll", "dblclick", "mousedown"]; n[s.layer].appendChild(e); for (var i = 0; i < r.length; i++) (t = e), (o = r[i]), google.maps.event.addDomListener(t, o, function (e) { -1 != navigator.userAgent.toLowerCase().indexOf("msie") && document.all ? ((e.cancelBubble = !0), (e.returnValue = !1)) : e.stopPropagation(); }); s.click && (n.overlayMouseTarget.appendChild(a.el), google.maps.event.addDomListener(a.el, "click", function () { s.click.apply(a, [a]); })), google.maps.event.trigger(this, "ready"); }), (a.draw = function () { var e = this.getProjection().fromLatLngToDivPixel( new google.maps.LatLng(s.lat, s.lng) ); (s.horizontalOffset = s.horizontalOffset || 0), (s.verticalOffset = s.verticalOffset || 0); var t = a.el, o = t.children[0], n = o.clientHeight, r = o.clientWidth; switch (s.verticalAlign) { case "top": t.style.top = e.y - n + s.verticalOffset + "px"; break; default: case "middle": t.style.top = e.y - n / 2 + s.verticalOffset + "px"; break; case "bottom": t.style.top = e.y + s.verticalOffset + "px"; } switch (s.horizontalAlign) { case "left": t.style.left = e.x - r + s.horizontalOffset + "px"; break; default: case "center": t.style.left = e.x - r / 2 + s.horizontalOffset + "px"; break; case "right": t.style.left = e.x + s.horizontalOffset + "px"; } (t.style.display = i ? "block" : "none"), i || s.show.apply(this, [t]); }), (a.onRemove = function () { var e = a.el; s.remove ? s.remove.apply(this, [e]) : (a.el.parentNode.removeChild(a.el), (a.el = null)); }), this.overlays.push(a), a ); }), (p.prototype.removeOverlay = function (e) { for (var t = 0; t < this.overlays.length; t++) if (this.overlays[t] === e) { this.overlays[t].setMap(null), this.overlays.splice(t, 1); break; } }), (p.prototype.removeOverlays = function () { for (var e, t = 0; (e = this.overlays[t]); t++) e.setMap(null); this.overlays = []; }), (p.prototype.drawPolyline = function (o) { var e = [], t = o.path; if (t.length) if (void 0 === t[0][0]) e = t; else for (var n, r = 0; (n = t[r]); r++) e.push(new google.maps.LatLng(n[0], n[1])); var i = { map: this.map, path: e, strokeColor: o.strokeColor, strokeOpacity: o.strokeOpacity, strokeWeight: o.strokeWeight, geodesic: o.geodesic, clickable: !0, editable: !1, visible: !0, }; o.hasOwnProperty("clickable") && (i.clickable = o.clickable), o.hasOwnProperty("editable") && (i.editable = o.editable), o.hasOwnProperty("icons") && (i.icons = o.icons), o.hasOwnProperty("zIndex") && (i.zIndex = o.zIndex); for ( var s = new google.maps.Polyline(i), a = [ "click", "dblclick", "mousedown", "mousemove", "mouseout", "mouseover", "mouseup", "rightclick", ], l = 0; l < a.length; l++ ) !(function (e, t) { o[t] && google.maps.event.addListener(e, t, function (e) { o[t].apply(this, [e]); }); })(s, a[l]); return this.polylines.push(s), p.fire("polyline_added", s, this), s; }), (p.prototype.removePolyline = function (e) { for (var t = 0; t < this.polylines.length; t++) if (this.polylines[t] === e) { this.polylines[t].setMap(null), this.polylines.splice(t, 1), p.fire("polyline_removed", e, this); break; } }), (p.prototype.removePolylines = function () { for (var e, t = 0; (e = this.polylines[t]); t++) e.setMap(null); this.polylines = []; }), (p.prototype.drawCircle = function (o) { delete (o = S( { map: this.map, center: new google.maps.LatLng(o.lat, o.lng) }, o )).lat, delete o.lng; for ( var e = new google.maps.Circle(o), t = [ "click", "dblclick", "mousedown", "mousemove", "mouseout", "mouseover", "mouseup", "rightclick", ], n = 0; n < t.length; n++ ) !(function (e, t) { o[t] && google.maps.event.addListener(e, t, function (e) { o[t].apply(this, [e]); }); })(e, t[n]); return this.polygons.push(e), e; }), (p.prototype.drawRectangle = function (o) { o = S({ map: this.map }, o); var e = new google.maps.LatLngBounds( new google.maps.LatLng(o.bounds[0][0], o.bounds[0][1]), new google.maps.LatLng(o.bounds[1][0], o.bounds[1][1]) ); o.bounds = e; for ( var t = new google.maps.Rectangle(o), n = [ "click", "dblclick", "mousedown", "mousemove", "mouseout", "mouseover", "mouseup", "rightclick", ], r = 0; r < n.length; r++ ) !(function (e, t) { o[t] && google.maps.event.addListener(e, t, function (e) { o[t].apply(this, [e]); }); })(t, n[r]); return this.polygons.push(t), t; }), (p.prototype.drawPolygon = function (o) { var e = !1; o.hasOwnProperty("useGeoJSON") && (e = o.useGeoJSON), delete o.useGeoJSON, (o = S({ map: this.map }, o)), 0 == e && (o.paths = [o.paths.slice(0)]), 0 < o.paths.length && 0 < o.paths[0].length && (o.paths = s(i(o.paths, a, e))); for ( var t = new google.maps.Polygon(o), n = [ "click", "dblclick", "mousedown", "mousemove", "mouseout", "mouseover", "mouseup", "rightclick", ], r = 0; r < n.length; r++ ) !(function (e, t) { o[t] && google.maps.event.addListener(e, t, function (e) { o[t].apply(this, [e]); }); })(t, n[r]); return this.polygons.push(t), p.fire("polygon_added", t, this), t; }), (p.prototype.removePolygon = function (e) { for (var t = 0; t < this.polygons.length; t++) if (this.polygons[t] === e) { this.polygons[t].setMap(null), this.polygons.splice(t, 1), p.fire("polygon_removed", e, this); break; } }), (p.prototype.removePolygons = function () { for (var e, t = 0; (e = this.polygons[t]); t++) e.setMap(null); this.polygons = []; }), (p.prototype.getFromFusionTables = function (e) { var o = e.events; delete e.events; var t = e, n = new google.maps.FusionTablesLayer(t); for (var r in o) !(function (e, t) { google.maps.event.addListener(e, t, function (e) { o[t].apply(this, [e]); }); })(n, r); return this.layers.push(n), n; }), (p.prototype.loadFromFusionTables = function (e) { var t = this.getFromFusionTables(e); return t.setMap(this.map), t; }), (p.prototype.getFromKML = function (e) { var t = e.url, o = e.events; delete e.url, delete e.events; var n = e, r = new google.maps.KmlLayer(t, n); for (var i in o) !(function (e, t) { google.maps.event.addListener(e, t, function (e) { o[t].apply(this, [e]); }); })(r, i); return this.layers.push(r), r; }), (p.prototype.loadFromKML = function (e) { var t = this.getFromKML(e); return t.setMap(this.map), t; }), (p.prototype.addLayer = function (e, t) { var o; switch (((t = t || {}), e)) { case "weather": this.singleLayers.weather = o = new google.maps.weather.WeatherLayer(); break; case "clouds": this.singleLayers.clouds = o = new google.maps.weather.CloudLayer(); break; case "traffic": this.singleLayers.traffic = o = new google.maps.TrafficLayer(); break; case "transit": this.singleLayers.transit = o = new google.maps.TransitLayer(); break; case "bicycling": this.singleLayers.bicycling = o = new google.maps.BicyclingLayer(); break; case "panoramio": (this.singleLayers.panoramio = o = new google.maps.panoramio.PanoramioLayer()), o.setTag(t.filter), delete t.filter, t.click && google.maps.event.addListener(o, "click", function (e) { t.click(e), delete t.click; }); break; case "places": if ( ((this.singleLayers.places = o = new google.maps.places.PlacesService(this.map)), t.search || t.nearbySearch || t.radarSearch) ) { var n = { bounds: t.bounds || null, keyword: t.keyword || null, location: t.location || null, name: t.name || null, radius: t.radius || null, rankBy: t.rankBy || null, types: t.types || null, }; t.radarSearch && o.radarSearch(n, t.radarSearch), t.search && o.search(n, t.search), t.nearbySearch && o.nearbySearch(n, t.nearbySearch); } if (t.textSearch) { var r = { bounds: t.bounds || null, location: t.location || null, query: t.query || null, radius: t.radius || null, }; o.textSearch(r, t.textSearch); } } if (void 0 !== o) return ( "function" == typeof o.setOptions && o.setOptions(t), "function" == typeof o.setMap && o.setMap(this.map), o ); }), (p.prototype.removeLayer = function (e) { if ("string" == typeof e && void 0 !== this.singleLayers[e]) this.singleLayers[e].setMap(null), delete this.singleLayers[e]; else for (var t = 0; t < this.layers.length; t++) if (this.layers[t] === e) { this.layers[t].setMap(null), this.layers.splice(t, 1); break; } }), (p.prototype.getRoutes = function (n) { switch (n.travelMode) { case "bicycling": t = google.maps.TravelMode.BICYCLING; break; case "transit": t = google.maps.TravelMode.TRANSIT; break; case "driving": t = google.maps.TravelMode.DRIVING; break; default: t = google.maps.TravelMode.WALKING; } o = "imperial" === n.unitSystem ? google.maps.UnitSystem.IMPERIAL : google.maps.UnitSystem.METRIC; var e = S( { avoidHighways: !1, avoidTolls: !1, optimizeWaypoints: !1, waypoints: [], }, n ); (e.origin = /string/.test(typeof n.origin) ? n.origin : new google.maps.LatLng(n.origin[0], n.origin[1])), (e.destination = /string/.test(typeof n.destination) ? n.destination : new google.maps.LatLng(n.destination[0], n.destination[1])), (e.travelMode = t), (e.unitSystem = o), delete e.callback, delete e.error; var r = []; new google.maps.DirectionsService().route(e, function (e, t) { if (t === google.maps.DirectionsStatus.OK) { for (var o in e.routes) e.routes.hasOwnProperty(o) && r.push(e.routes[o]); n.callback && n.callback(r, e, t); } else n.error && n.error(e, t); }); }), (p.prototype.removeRoutes = function () { this.routes.length = 0; }), (p.prototype.getElevations = function (e) { 0 < (e = S({ locations: [], path: !1, samples: 256 }, e)).locations .length && 0 < e.locations[0].length && (e.locations = s(i([e.locations], a, !1))); var o = e.callback; delete e.callback; var t = new google.maps.ElevationService(); if (e.path) { var n = { path: e.locations, samples: e.samples }; t.getElevationAlongPath(n, function (e, t) { o && "function" == typeof o && o(e, t); }); } else delete e.path, delete e.samples, t.getElevationForLocations(e, function (e, t) { o && "function" == typeof o && o(e, t); }); }), (p.prototype.cleanRoute = p.prototype.removePolylines), (p.prototype.renderRoute = function (e, t) { var n, o = "string" == typeof t.panel ? document.getElementById(t.panel.replace("#", "")) : t.panel; (t.panel = o), (t = S({ map: this.map }, t)), (n = new google.maps.DirectionsRenderer(t)), this.getRoutes({ origin: e.origin, destination: e.destination, travelMode: e.travelMode, waypoints: e.waypoints, unitSystem: e.unitSystem, error: e.error, avoidHighways: e.avoidHighways, avoidTolls: e.avoidTolls, optimizeWaypoints: e.optimizeWaypoints, callback: function (e, t, o) { o === google.maps.DirectionsStatus.OK && n.setDirections(t); }, }); }), (p.prototype.drawRoute = function (o) { var n = this; this.getRoutes({ origin: o.origin, destination: o.destination, travelMode: o.travelMode, waypoints: o.waypoints, unitSystem: o.unitSystem, error: o.error, avoidHighways: o.avoidHighways, avoidTolls: o.avoidTolls, optimizeWaypoints: o.optimizeWaypoints, callback: function (e) { if (0 < e.length) { var t = { path: e[e.length - 1].overview_path, strokeColor: o.strokeColor, strokeOpacity: o.strokeOpacity, strokeWeight: o.strokeWeight, }; o.hasOwnProperty("icons") && (t.icons = o.icons), n.drawPolyline(t), o.callback && o.callback(e[e.length - 1]); } }, }); }), (p.prototype.travelRoute = function (i) { if (i.origin && i.destination) this.getRoutes({ origin: i.origin, destination: i.destination, travelMode: i.travelMode, waypoints: i.waypoints, unitSystem: i.unitSystem, error: i.error, callback: function (e) { if ( (0 < e.length && i.start && i.start(e[e.length - 1]), 0 < e.length && i.step) ) { var t = e[e.length - 1]; if (0 < t.legs.length) for (var o, n = t.legs[0].steps, r = 0; (o = n[r]); r++) (o.step_number = r), i.step(o, t.legs[0].steps.length - 1); } 0 < e.length && i.end && i.end(e[e.length - 1]); }, }); else if (i.route && 0 < i.route.legs.length) for (var e, t = i.route.legs[0].steps, o = 0; (e = t[o]); o++) (e.step_number = o), i.step(e); }), (p.prototype.drawSteppedRoute = function (s) { var a = this; if (s.origin && s.destination) this.getRoutes({ origin: s.origin, destination: s.destination, travelMode: s.travelMode, waypoints: s.waypoints, error: s.error, callback: function (e) { if ( (0 < e.length && s.start && s.start(e[e.length - 1]), 0 < e.length && s.step) ) { var t = e[e.length - 1]; if (0 < t.legs.length) for (var o, n = t.legs[0].steps, r = 0; (o = n[r]); r++) { o.step_number = r; var i = { path: o.path, strokeColor: s.strokeColor, strokeOpacity: s.strokeOpacity, strokeWeight: s.strokeWeight, }; s.hasOwnProperty("icons") && (i.icons = s.icons), a.drawPolyline(i), s.step(o, t.legs[0].steps.length - 1); } } 0 < e.length && s.end && s.end(e[e.length - 1]); }, }); else if (s.route && 0 < s.route.legs.length) for (var e, t = s.route.legs[0].steps, o = 0; (e = t[o]); o++) { e.step_number = o; var n = { path: e.path, strokeColor: s.strokeColor, strokeOpacity: s.strokeOpacity, strokeWeight: s.strokeWeight, }; s.hasOwnProperty("icons") && (n.icons = s.icons), a.drawPolyline(n), s.step(e); } }), (p.Route = function (e) { (this.origin = e.origin), (this.destination = e.destination), (this.waypoints = e.waypoints), (this.map = e.map), (this.route = e.route), (this.step_count = 0), (this.steps = this.route.legs[0].steps), (this.steps_length = this.steps.length); var t = { path: new google.maps.MVCArray(), strokeColor: e.strokeColor, strokeOpacity: e.strokeOpacity, strokeWeight: e.strokeWeight, }; e.hasOwnProperty("icons") && (t.icons = e.icons), (this.polyline = this.map.drawPolyline(t).getPath()); }), (p.Route.prototype.getRoute = function (t) { var o = this; this.map.getRoutes({ origin: this.origin, destination: this.destination, travelMode: t.travelMode, waypoints: this.waypoints || [], error: t.error, callback: function () { (o.route = e[0]), t.callback && t.callback.call(o); }, }); }), (p.Route.prototype.back = function () { if (0 < this.step_count) { this.step_count--; var e = this.route.legs[0].steps[this.step_count].path; for (var t in e) e.hasOwnProperty(t) && this.polyline.pop(); } }), (p.Route.prototype.forward = function () { if (this.step_count < this.steps_length) { var e = this.route.legs[0].steps[this.step_count].path; for (var t in e) e.hasOwnProperty(t) && this.polyline.push(e[t]); this.step_count++; } }), (p.prototype.checkGeofence = function (e, t, o) { return o.containsLatLng(new google.maps.LatLng(e, t)); }), (p.prototype.checkMarkerGeofence = function (e, t) { if (e.fences) for (var o, n = 0; (o = e.fences[n]); n++) { var r = e.getPosition(); this.checkGeofence(r.lat(), r.lng(), o) || t(e, o); } }), (p.prototype.toImage = function (e) { e = e || {}; var t = {}; if ( ((t.size = e.size || [this.el.clientWidth, this.el.clientHeight]), (t.lat = this.getCenter().lat()), (t.lng = this.getCenter().lng()), 0 < this.markers.length) ) { t.markers = []; for (var o = 0; o < this.markers.length; o++) t.markers.push({ lat: this.markers[o].getPosition().lat(), lng: this.markers[o].getPosition().lng(), }); } if (0 < this.polylines.length) { var n = this.polylines[0]; (t.polyline = {}), (t.polyline.path = google.maps.geometry.encoding.encodePath( n.getPath() )), (t.polyline.strokeColor = n.strokeColor), (t.polyline.strokeOpacity = n.strokeOpacity), (t.polyline.strokeWeight = n.strokeWeight); } return p.staticMapURL(t); }), (p.staticMapURL = function (e) { function t(e, t) { if ("#" === e[0] && ((e = e.replace("#", "0x")), t)) { if (((t = parseFloat(t)), 0 === (t = Math.min(1, Math.max(t, 0))))) return "0x00000000"; 1 === (t = (255 * t).toString(16)).length && (t += t), (e = e.slice(0, 8) + t); } return e; } var o, n = [], r = ("file:" === location.protocol ? "http:" : location.protocol) + "//maps.googleapis.com/maps/api/staticmap"; e.url && ((r = e.url), delete e.url), (r += "?"); var i = e.markers; delete e.markers, !i && e.marker && ((i = [e.marker]), delete e.marker); var s = e.styles; delete e.styles; var a = e.polyline; if ((delete e.polyline, e.center)) n.push("center=" + e.center), delete e.center; else if (e.address) n.push("center=" + e.address), delete e.address; else if (e.lat) n.push(["center=", e.lat, ",", e.lng].join("")), delete e.lat, delete e.lng; else if (e.visible) { var l = encodeURI(e.visible.join("|")); n.push("visible=" + l); } var p = e.size; p ? (p.join && (p = p.join("x")), delete e.size) : (p = "630x300"), n.push("size=" + p), e.zoom || !1 === e.zoom || (e.zoom = 15); var c = !e.hasOwnProperty("sensor") || !!e.sensor; for (var g in (delete e.sensor, n.push("sensor=" + c), e)) e.hasOwnProperty(g) && n.push(g + "=" + e[g]); if (i) for (var h, u, d = 0; (o = i[d]); d++) { for (var g in ((h = []), o.size && "normal" !== o.size ? (h.push("size:" + o.size), delete o.size) : o.icon && (h.push("icon:" + encodeURI(o.icon)), delete o.icon), o.color && (h.push("color:" + o.color.replace("#", "0x")), delete o.color), o.label && (h.push("label:" + o.label[0].toUpperCase()), delete o.label), (u = o.address ? o.address : o.lat + "," + o.lng), delete o.address, delete o.lat, delete o.lng, o)) o.hasOwnProperty(g) && h.push(g + ":" + o[g]); h.length || 0 === d ? (h.push(u), (h = h.join("|")), n.push("markers=" + encodeURI(h))) : ((h = n.pop() + encodeURI("|" + u)), n.push(h)); } if (s) for (d = 0; d < s.length; d++) { var m = []; s[d].featureType && m.push("feature:" + s[d].featureType.toLowerCase()), s[d].elementType && m.push("element:" + s[d].elementType.toLowerCase()); for (var f = 0; f < s[d].stylers.length; f++) for (var y in s[d].stylers[f]) { var v = s[d].stylers[f][y]; ("hue" != y && "color" != y) || (v = "0x" + v.substring(1)), m.push(y + ":" + v); } var w = m.join("|"); "" != w && n.push("style=" + w); } if (a) { if ( ((o = a), (a = []), o.strokeWeight && a.push("weight:" + parseInt(o.strokeWeight, 10)), o.strokeColor) ) { var k = t(o.strokeColor, o.strokeOpacity); a.push("color:" + k); } if (o.fillColor) { var L = t(o.fillColor, o.fillOpacity); a.push("fillcolor:" + L); } var b = o.path; if (b.join) { var _; for (f = 0; (_ = b[f]); f++) a.push(_.join(",")); } else a.push("enc:" + b); (a = a.join("|")), n.push("path=" + encodeURI(a)); } var M = window.devicePixelRatio || 1; return n.push("scale=" + M), r + (n = n.join("&")); }), (p.prototype.addMapType = function (e, t) { if (!t.hasOwnProperty("getTileUrl") || "function" != typeof t.getTileUrl) throw "'getTileUrl' function required."; t.tileSize = t.tileSize || new google.maps.Size(256, 256); var o = new google.maps.ImageMapType(t); this.map.mapTypes.set(e, o); }), (p.prototype.addOverlayMapType = function (e) { if (!e.hasOwnProperty("getTile") || "function" != typeof e.getTile) throw "'getTile' function required."; var t = e.index; delete e.index, this.map.overlayMapTypes.insertAt(t, e); }), (p.prototype.removeOverlayMapType = function (e) { this.map.overlayMapTypes.removeAt(e); }), (p.prototype.addStyle = function (e) { var t = new google.maps.StyledMapType(e.styles, { name: e.styledMapName, }); this.map.mapTypes.set(e.mapTypeId, t); }), (p.prototype.setStyle = function (e) { this.map.setMapTypeId(e); }), (p.prototype.createPanorama = function (e) { return ( (e.hasOwnProperty("lat") && e.hasOwnProperty("lng")) || ((e.lat = this.getCenter().lat()), (e.lng = this.getCenter().lng())), (this.panorama = p.createPanorama(e)), this.map.setStreetView(this.panorama), this.panorama ); }), (p.createPanorama = function (o) { var e = W(o.el, o.context); (o.position = new google.maps.LatLng(o.lat, o.lng)), delete o.el, delete o.context, delete o.lat, delete o.lng; for ( var t = [ "closeclick", "links_changed", "pano_changed", "position_changed", "pov_changed", "resize", "visible_changed", ], n = S({ visible: !0 }, o), r = 0; r < t.length; r++ ) delete n[t[r]]; var i = new google.maps.StreetViewPanorama(e, n); for (r = 0; r < t.length; r++) !(function (e, t) { o[t] && google.maps.event.addListener(e, t, function () { o[t].apply(this); }); })(i, t[r]); return i; }), (p.prototype.on = function (e, t) { return p.on(e, this, t); }), (p.prototype.off = function (e) { p.off(e, this); }), (p.prototype.once = function (e, t) { return p.once(e, this, t); }), (p.custom_events = [ "marker_added", "marker_removed", "polyline_added", "polyline_removed", "polygon_added", "polygon_removed", "geolocated", "geolocation_failed", ]), (p.on = function (e, t, o) { if (-1 == p.custom_events.indexOf(e)) return ( t instanceof p && (t = t.map), google.maps.event.addListener(t, e, o) ); var n = { handler: o, eventName: e }; return ( (t.registered_events[e] = t.registered_events[e] || []), t.registered_events[e].push(n), n ); }), (p.off = function (e, t) { -1 == p.custom_events.indexOf(e) ? (t instanceof p && (t = t.map), google.maps.event.clearListeners(t, e)) : (t.registered_events[e] = []); }), (p.once = function (e, t, o) { if (-1 == p.custom_events.indexOf(e)) return ( t instanceof p && (t = t.map), google.maps.event.addListenerOnce(t, e, o) ); }), (p.fire = function (e, t, o) { if (-1 == p.custom_events.indexOf(e)) google.maps.event.trigger( t, e, Array.prototype.slice.apply(arguments).slice(2) ); else if (e in o.registered_events) for (var n = o.registered_events[e], r = 0; r < n.length; r++) (i = n[r].handler), (s = o), (a = t), i.apply(s, [a]); var i, s, a; }), (p.geolocate = function (t) { var o = t.always || t.complete; navigator.geolocation ? navigator.geolocation.getCurrentPosition( function (e) { t.success(e), o && o(); }, function (e) { t.error(e), o && o(); }, t.options ) : (t.not_supported(), o && o()); }), (p.geocode = function (e) { this.geocoder = new google.maps.Geocoder(); var o = e.callback; e.hasOwnProperty("lat") && e.hasOwnProperty("lng") && (e.latLng = new google.maps.LatLng(e.lat, e.lng)), delete e.lat, delete e.lng, delete e.callback, this.geocoder.geocode(e, function (e, t) { o(e, t); }); }), "object" == typeof window.google && window.google.maps && (google.maps.Polygon.prototype.getBounds || (google.maps.Polygon.prototype.getBounds = function (e) { for ( var t, o = new google.maps.LatLngBounds(), n = this.getPaths(), r = 0; r < n.getLength(); r++ ) { t = n.getAt(r); for (var i = 0; i < t.getLength(); i++) o.extend(t.getAt(i)); } return o; }), google.maps.Polygon.prototype.containsLatLng || (google.maps.Polygon.prototype.containsLatLng = function (e) { var t = this.getBounds(); if (null !== t && !t.contains(e)) return !1; for (var o = !1, n = this.getPaths().getLength(), r = 0; r < n; r++) for ( var i = this.getPaths().getAt(r), s = i.getLength(), a = s - 1, l = 0; l < s; l++ ) { var p = i.getAt(l), c = i.getAt(a); ((p.lng() < e.lng() && c.lng() >= e.lng()) || (c.lng() < e.lng() && p.lng() >= e.lng())) && p.lat() + ((e.lng() - p.lng()) / (c.lng() - p.lng())) * (c.lat() - p.lat()) < e.lat() && (o = !o), (a = l); } return o; }), google.maps.Circle.prototype.containsLatLng || (google.maps.Circle.prototype.containsLatLng = function (e) { return ( !google.maps.geometry || google.maps.geometry.spherical.computeDistanceBetween( this.getCenter(), e ) <= this.getRadius() ); }), (google.maps.Rectangle.prototype.containsLatLng = function (e) { return this.getBounds().contains(e); }), (google.maps.LatLngBounds.prototype.containsLatLng = function (e) { return this.contains(e); }), (google.maps.Marker.prototype.setFences = function (e) { this.fences = e; }), (google.maps.Marker.prototype.addFence = function (e) { this.fences.push(e); }), (google.maps.Marker.prototype.getId = function () { return this.__gm_id; })), Array.prototype.indexOf || (Array.prototype.indexOf = function (e) { if (null == this) throw new TypeError(); var t = Object(this), o = t.length >>> 0; if (0 === o) return -1; var n = 0; if ( (1 < arguments.length && ((n = Number(arguments[1])) != n ? (n = 0) : 0 != n && n != 1 / 0 && n != -1 / 0 && (n = (0 < n || -1) * Math.floor(Math.abs(n)))), o <= n) ) return -1; for (var r = 0 <= n ? n : Math.max(o - Math.abs(n), 0); r < o; r++) if (r in t && t[r] === e) return r; return -1; }), p ); }); (function ($, window, document, undefined) { var AuxinRemoveCartContent = function () { $(document).on("click", ".aux-remove-cart-content", function (e) { e.preventDefault(); var $thisbutton = $(this); var product_id = $(this).data("product_id"); var cart_item_key = $(this).data("cart_item_key"); var verify_nonce = $(this).data("verify_nonce"); var $cartBoxEl = $(this) .closest(".aux-cart-wrapper") .addClass("aux-cart-remove-in-progress"); if (typeof auxin_cart_options === "undefined") { auxin_cart_options = ""; } $.ajax({ type: "POST", dataType: "json", url: auxin.ajax_url, data: { action: "auxels_remove_from_cart", product_id: product_id, cart_item_key: cart_item_key, verify_nonce: verify_nonce, args: auxin_cart_options, }, success: function (response) { $(".woocommerce-message, .woocommerce-error").remove(); if (response.success) { $(".aux-hidden-blocks").append(response.data.notif); if (parseInt(response.data.total) === 0) { $(".aux-card-dropdown").html(response.data.empty); $(".aux-cart-contents").find("span").remove(); } else { $(".aux-card-item") .filter(function () { return $(this).data("cart_item_key") == cart_item_key; }) .remove(); $(".aux-cart-contents").find("span").text(response.data.count); } $(".aux-cart-subtotal").each(function () { $(this) .find(".woocommerce-Price-amount") .html(response.data.total); }); $cartBoxEl.removeClass("aux-cart-remove-in-progress"); $(document.body).trigger("removed_from_cart", [ response.data.fragments, response.data.cart_hash, $thisbutton, response.data.items, ]); } else { $(".aux-hidden-blocks").append(response.data); } $("#offcart .aux-cart-wrapper .aux-card-dropdown").removeClass( "aux-phone-off" ); }, }); }); }; var AuxinAjaxAddToCart = function () { $(document).on("click", ".aux-ajax-add-to-cart", function (e) { var $thisbutton = $(this); var productType = $(this).data("product-type"); if (productType !== "simple") { return; } $thisbutton.removeClass("added"); $thisbutton.addClass("loading"); if (typeof auxin_cart_options === "undefined") { auxin_cart_options = ""; } e.preventDefault(); var product_id = $(this).data("product_id"); var quantity = $(this).data("quantity"); var verify_nonce = $(this).data("verify_nonce"); var $cartBoxEl = $(".aux-cart-wrapper"); var hasAnimation = $cartBoxEl.hasClass("aux-basket-animation") ? true : false; $cartBoxEl.trigger("AuxCartInProgress"); if ($(this).parents(".aux-shop-quicklook-modal")) { quantity = $(this) .parents(".aux-shop-quicklook-modal") .find(".quantity input") .val(); } var data = {}; $.each($thisbutton.data(), function (key, value) { data[key] = value; }); $.each($thisbutton[0].dataset, function (key, value) { data[key] = value; }); $(document.body).trigger("adding_to_cart", [$thisbutton, data]); $.ajax({ type: "POST", dataType: "json", url: auxin.ajax_url, data: { action: "auxels_add_to_cart", args: auxin_cart_options, product_id: product_id, quantity: quantity, verify_nonce: verify_nonce, }, success: function (response) { $(".woocommerce-message, .woocommerce-error").remove(); if (response.success) { $(".aux-hidden-blocks").append(response.data.notif); setTimeout(function () { if (hasAnimation) { $cartBoxEl.find(".aux-card-dropdown").html(response.data.items); $cartBoxEl .find(".aux-shopping-basket") .html(response.data.total); $cartBoxEl.trigger("AuxCartUpdated"); $(document.body).trigger("added_to_cart", [ response.data.fragments, response.data.cart_hash, $thisbutton, ]); } else { $cartBoxEl.find(".aux-card-dropdown").html(response.data.items); $cartBoxEl .find(".aux-shopping-basket") .html(response.data.total); $cartBoxEl.trigger("AuxCartUpdated"); $(document.body).trigger("added_to_cart", [ response.data.fragments, response.data.cart_hash, $thisbutton, response.data.items, ]); } $("#offcart .aux-cart-wrapper .aux-card-dropdown").removeClass( "aux-phone-off" ); }, 150); } else { $(".aux-hidden-blocks").append(response.data); } }, }); }); $(document.body).on("wc_fragments_refreshed", function () { var $cartBoxEl = $(".aux-cart-wrapper"); var hasAnimation = $cartBoxEl.hasClass("aux-basket-animation") ? true : false; if (typeof auxin_cart_options === "undefined") { auxin_cart_options = ""; } $.ajax({ type: "POST", dataType: "json", url: auxin.ajax_url, data: { action: "auxels_get_refreshed_fragments", args: auxin_cart_options, }, success: function (response) { $(".woocommerce-message, .woocommerce-error").remove(); if (response.success) { setTimeout(function () { if (hasAnimation) { $cartBoxEl.find(".aux-card-dropdown").html(response.data.items); $cartBoxEl .find(".aux-shopping-basket") .html(response.data.total); $cartBoxEl.trigger("AuxCartUpdated"); } else { $cartBoxEl.find(".aux-card-dropdown").html(response.data.items); $cartBoxEl .find(".aux-shopping-basket") .html(response.data.total); $cartBoxEl.trigger("AuxCartUpdated"); } }, 150); } else { $(".aux-hidden-blocks").append(response.data); } }, }); }); }; var AjaxRecentProductsPagination = function () { $("a.page-numbers").on("click", function (e) { if (!$(this).parents(".aux-widget-recent-products").length) { return; } e.preventDefault(); var $widgetWrapper = $(this).parents(".elementor-widget-container"), widgetData = $widgetWrapper .find(".aux-recent-products-wrapper") .data("widget-data"), paged = $(this).data("paged"); $widgetWrapper.find(".aux-widget-recent-products").addClass("loading"); $widgetWrapper .find(".aux-isotope-animated .aux-items-loading") .removeClass("aux-loading-hide"); $.ajax({ url: auxin.ajax_url, type: "GET", data: { action: "aux_the_recent_products", data: widgetData, paged: paged, }, }).done(function (response) { if (response) { $widgetWrapper.empty(); $widgetWrapper.append(response); $(document).trigger("auxin_the_recent_products_widget_updated"); } }); }); }; var AuxinSelectEelement = function () { $(".aux-select-element").each(function () { var $element = $(this); var action = $element.data("action"); if (action == "click") { $element.find(".current").on("click", function () { $(this).siblings(".list").toggleClass("show"); }); } else { $element.hover( function () { $element.find(".list").addClass("show"); }, function () { $element.find(".list").removeClass("show"); } ); } $element.find(".option").on("click", function () { var markup = $(this).html(); $element.find(".current .selected").html(markup); $element.find(".list").toggleClass("show"); }); $(document).on("click", function (e) { if (!$(e.target).parents(".aux-select-element").length) { $element.find(".list").removeClass("show"); } }); }); }; $(document).ready(function () { AuxinRemoveCartContent(); AuxinAjaxAddToCart(); AjaxRecentProductsPagination(); $(document).on("auxin_the_recent_products_widget_updated", function () { AjaxRecentProductsPagination(); }); AuxinSelectEelement(); }); $.fn.AuxinCartAnimationHandler = function () { $headerCartWrapper = $(this).find(".aux-cart-wrapper"); $headerCartWrapper.trigger("AuxCartProgressAnimationDone"); if (!$headerCartWrapper.hasClass("aux-basket-animation")) { return; } $headerCartWrapper.on("AuxCartInProgress", function (e) { $headerCartWrapper.addClass("aux-cart-in-progress"); }); $headerCartWrapper.on( "animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd", function (e) { if (e.originalEvent.animationName === "FillBasket") { $headerCartWrapper.removeClass("aux-cart-in-progress"); $headerCartWrapper.trigger("AuxCartProgressAnimationDone"); } } ); $headerCartWrapper.on("AuxCartUpdated", function (e) { $headerCartWrapper.addClass("aux-cart-updated-animation"); }); }; $("body").AuxinCartAnimationHandler(); $(document.body).on("wc_cart_emptied", function () { $(".aux-shopping-basket .aux-cart-contents span").html("0"); }); })(jQuery, window, document); function auxin_is_rtl() { return ( "undefined" != typeof auxin && ("1" == auxin.is_rtl || "fa" == auxin.wpml_lang) ); } function auxin_get_contrast(color) { var r, b, g, a = color; return ( a.match(/^rgb/) ? ((r = (a = a.match( /^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+(?:\.\d+)?))?\)$/ ))[1]), (g = a[2]), (b = a[3])) : ((r = (a = +("0x" + a.slice(1).replace(a.length < 5 && /./g, "$&$&"))) >> 16), (b = (a >> 8) & 255), (g = 255 & a)), 200 < Math.sqrt(r * r * 0.299 + g * g * 0.587 + b * b * 0.114) ? "black" : "white" ); } !(function ($, window, document) { "use strict"; var distToFooter, footerHeight, $window = $(window), $siteHeader = $("#site-header"), headerStickyHeight = $("#site-header").data("sticky-height") || 0, gotoTopBtn = $(".aux-goto-top-btn"); $(function () { function scrollToTopOnScrollCheck() { 200 < $window.scrollTop() ? ((gotoTopBtn[0].style[window._jcsspfx + "Transform"] = "translateY(0)"), (distToFooter = document.body.scrollHeight - $window.scrollTop() - window.innerHeight - footerHeight) < 0 && (gotoTopBtn[0].style[window._jcsspfx + "Transform"] = "translateY(" + distToFooter + "px)")) : (gotoTopBtn[0].style[window._jcsspfx + "Transform"] = "translateY(150px)"); } if ( (gotoTopBtn.length && jQuery.fn.scrollTo && ((footerHeight = $("#sitefooter").outerHeight()), gotoTopBtn.on("click touchstart", function () { $window.scrollTo(0, { duration: gotoTopBtn.data("animate-scroll") ? 1500 : 0, easing: "easeInOutQuart", }); }), gotoTopBtn.css("display", "block"), scrollToTopOnScrollCheck(), $window.on("scroll", scrollToTopOnScrollCheck)), $("body").addClass("aux-dom-ready").removeClass("aux-dom-unready"), $.fn.scrollTo) ) { var allLinks = document.querySelectorAll('a:not([href^="#elementor-"])'); Array.prototype.slice.call(allLinks).forEach(function (link) { !link.href || -1 == link.href.indexOf("#") || (link.pathname != location.pathname && "/" + link.pathname != location.pathname) || link.search != location.search || link.addEventListener("click", function (e) { var isWCTabs = this.closest(".woocommerce-tabs"); if (this.hash && !isWCTabs) { if ( (e.preventDefault(), e.stopPropagation(), this.classList.contains("woocommerce-review-link")) ) { var reviewTab = document.querySelector("#tab-title-reviews"); reviewTab.classList.contains("active") || $(reviewTab).find("a").trigger("click"); } var isFullScreen = this.closest(".aux-fs-popup .aux-fs-menu"), target = document.querySelector(this.hash); target && $window.scrollTo( $(target).offset().top - headerStickyHeight, this.classList.contains("aux-jump") ? 0 : 1500, { easing: "easeInOutQuart" } ), isFullScreen && $(isFullScreen).siblings(".aux-panel-close").trigger("click"); } }); }); } var siteHeaderTopPosition, $adminBar = $("#wpadminbar"), marginFrameThickness = $(".aux-side-frames").data("thickness") || 0; if ( ($("#site-header") .on("sticky", function () { $adminBar.hasClass("mobile") || window.innerWidth <= 600 || ((siteHeaderTopPosition = 0), $adminBar.length && (siteHeaderTopPosition += $adminBar.height()), marginFrameThickness && 700 <= window.innerWidth && (siteHeaderTopPosition += marginFrameThickness), $(this).css("top", siteHeaderTopPosition + "px")); }) .on("unsticky", function () { $(this).css("top", ""); }), $(".aux-search-field, #searchform #s").each(function () { var $this = $(this); $this.parent("form").on("submit", function (e) { "" === $this.val() && e.preventDefault(); }); }), ($siteHeader.hasClass("aux-overlay-with-tb") || $siteHeader.hasClass("aux-overlay-header")) && $siteHeader.hasClass("aux-overlay-with-tb")) ) { var $topBarHeight = $("#top-header").outerHeight(); $(".aux-overlay-with-tb").css("top", $topBarHeight + "px"); } }), (window.auxinSetupLogoSwitcher = function () { if ($("body").hasClass("aux-top-sticky")) { var $btn, $btns = $("#site-header .aux-btns-box .aux-button"), $default_logo = $( ".aux-logo-header .aux-logo-anchor:not(.aux-logo-sticky), .aux-widget-logo .aux-logo-anchor:not(.aux-logo-sticky)" ), $sticky_logo = $( ".aux-logo-header .aux-logo-anchor.aux-logo-sticky, .aux-widget-logo .aux-logo-anchor.aux-logo-sticky" ), has_sticky_logo = $sticky_logo.length; $("#site-header, #site-elementor-header") .on("sticky", function () { for (var i = 0, l = $btns.length; i < l; i++) ($btn = $btns.eq(i)) .removeClass("aux-" + $btn.data("colorname-default")) .addClass("aux-" + $btn.data("colorname-sticky")); has_sticky_logo && ($default_logo.addClass("aux-logo-hidden"), $sticky_logo.removeClass("aux-logo-hidden")); }) .on("unsticky", function () { for (var i = 0, l = $btns.length; i < l; i++) ($btn = $btns.eq(i)) .removeClass("aux-" + $btn.data("colorname-sticky")) .addClass("aux-" + $btn.data("colorname-default")); has_sticky_logo && ($default_logo.removeClass("aux-logo-hidden"), $sticky_logo.addClass("aux-logo-hidden")); }); } }), window.auxinSetupLogoSwitcher(); })(jQuery, window, document); var UlikeHeart = document.querySelectorAll(".wp_ulike_btn"); function auxinUlikeHeartBeat(e) { e.target.classList.add("aux-icon-heart"); } function removeAuxinUlikeHeartBeat(e) { e.target.classList.remove("aux-icon-heart"); } for (var i = 0; UlikeHeart.length > i; i++) UlikeHeart[i].addEventListener("click", auxinUlikeHeartBeat), UlikeHeart[i].addEventListener("animationend", removeAuxinUlikeHeartBeat); document .querySelectorAll(".aux-search-popup, .aux-fs-popup") .forEach(function (element) { var closestAnimElement = element.closest( ".aux-appear-watch-animation > .elementor-widget-container,.aux-appear-watch-animation > .elementor-column-wrap" ); closestAnimElement && [closestAnimElement, closestAnimElement.parentElement].forEach(function ( animElement ) { return animElement.addEventListener( "animationstart", animElement.addEventListener("animationend", function () { (animElement.style.animationName = "none"), (animElement.style.opacity = 1); }) ); }); }), (function (factory) { "use strict"; if ("function" == typeof define && define.amd) define(["jquery"], factory); else if ("object" == typeof exports) factory(require("jquery")); else { if ("undefined" == typeof jQuery) throw "jquery-numerator requires jQuery to be loaded first"; factory(jQuery); } })(function ($) { var defaults = { easing: "swing", duration: 500, delimiter: void 0, rounding: 0, toValue: void 0, fromValue: void 0, queue: !1, onStart: function () {}, onStep: function () {}, onProgress: function () {}, onComplete: function () {}, }; function Plugin(element, options) { (this.element = element), (this.settings = $.extend({}, defaults, options)), (this._defaults = defaults), (this._name = "numerator"), this.init(); } (Plugin.prototype = { init: function () { this.parseElement(), this.setValue(); }, parseElement: function () { var elText = $(this.element).text().trim(); this.settings.fromValue = this.settings.fromValue || this.format(elText); }, setValue: function () { var self = this; $({ value: self.settings.fromValue }).animate( { value: self.settings.toValue }, { duration: parseInt(self.settings.duration, 10), easing: self.settings.easing, start: self.settings.onStart, step: function (now, fx) { $(self.element).text(self.format(now)), self.settings.onStep(now, fx); }, progress: self.settings.onProgress, complete: self.settings.onComplete, } ); }, format: function (value) { return ( (value = parseInt(this.settings.rounding) < 1 ? parseInt(value, 10) : parseFloat(value).toFixed(parseInt(this.settings.rounding))), this.settings.delimiter ? this.delimit(value) : value ); }, delimit: function (value) { if ( ((value = value.toString()), this.settings.rounding && 0 < parseInt(this.settings.rounding, 10)) ) { var decimals = value.substring( value.length - (this.settings.rounding + 1), value.length ), wholeValue = value.substring( 0, value.length - (this.settings.rounding + 1) ); return this.addDelimiter(wholeValue) + decimals; } return this.addDelimiter(value); }, addDelimiter: function (value) { return value .toString() .replace(/\B(?=(\d{3})+(?!\d))/g, this.settings.delimiter); }, }), ($.fn.numerator = function (options) { return this.each(function () { $.data(this, "plugin_numerator") && $.data(this, "plugin_numerator", null), $.data(this, "plugin_numerator", new Plugin(this, options)); }); }); }), (function ($, window) { "use strict"; function TwbsPagination(element, options) { if ( ((this.$element = $(element)), (this.options = $.extend({}, $.fn.twbsPagination.defaults, options)), this.options.startPage < 1 || this.options.startPage > this.options.totalPages) ) throw new Error("Start page option is incorrect"); if ( ((this.options.totalPages = parseInt(this.options.totalPages)), isNaN(this.options.totalPages)) ) throw new Error("Total pages option is not correct!"); if ( ((this.options.visiblePages = parseInt(this.options.visiblePages)), isNaN(this.options.visiblePages)) ) throw new Error("Visible pages option is not correct!"); if ( (this.options.totalPages < this.options.visiblePages && (this.options.visiblePages = this.options.totalPages), this.options.onPageClick instanceof Function && this.$element.first().on("page", this.options.onPageClick), this.options.href) ) { var match, regexp = this.options.href.replace(/[-\/\\^$*+?.|[\]]/g, "\\$&"); (regexp = regexp.replace(this.options.hrefVariable, "(\\d+)")), null != (match = new RegExp(regexp, "i").exec(window.location.href)) && (this.options.startPage = parseInt(match[1], 10)); } var tagName = "function" == typeof this.$element.prop ? this.$element.prop("tagName") : this.$element.attr("tagName"); return ( (this.$listContainer = "UL" === tagName ? this.$element : $("
              ")), this.$listContainer.addClass(this.options.paginationClass), "UL" !== tagName && this.$element.append(this.$listContainer), this.render(this.getPages(this.options.startPage)), this.setupEvents(), this.options.initiateStartPageClick && this.$element.trigger("page", this.options.startPage), this ); } var old = $.fn.twbsPagination; (TwbsPagination.prototype = { constructor: TwbsPagination, destroy: function () { return ( this.$element.empty(), this.$element.removeData("twbs-pagination"), this.$element.off("page"), this ); }, show: function (page) { if (page < 1 || page > this.options.totalPages) throw new Error("Page is incorrect."); return ( this.render(this.getPages(page)), this.setupEvents(), this.$element.trigger("page", page), this ); }, buildListItems: function (pages) { var listItems = []; if ( (this.options.first && listItems.push(this.buildItem("first", 1)), this.options.prev) ) { var prev = 1 < pages.currentPage ? pages.currentPage - 1 : this.options.loop ? this.options.totalPages : 1; listItems.push(this.buildItem("prev", prev)); } for (var i = 0; i < pages.numeric.length; i++) listItems.push(this.buildItem("page", pages.numeric[i])); if (this.options.next) { var next = pages.currentPage < this.options.totalPages ? pages.currentPage + 1 : this.options.loop ? 1 : this.options.totalPages; listItems.push(this.buildItem("next", next)); } return ( this.options.last && listItems.push(this.buildItem("last", this.options.totalPages)), listItems ); }, buildItem: function (type, page) { var $itemContainer = $("
            • "), $itemContent = $(""), itemText = null; switch (type) { case "page": (itemText = page), $itemContainer.addClass(this.options.pageClass); break; case "first": (itemText = this.options.first), $itemContainer.addClass(this.options.firstClass); break; case "prev": (itemText = this.options.prev), $itemContainer.addClass(this.options.prevClass); break; case "next": (itemText = this.options.next), $itemContainer.addClass(this.options.nextClass); break; case "last": (itemText = this.options.last), $itemContainer.addClass(this.options.lastClass); } return ( $itemContainer.data("page", page), $itemContainer.data("page-type", type), $itemContainer.append( $itemContent.attr("href", this.makeHref(page)).html(itemText) ), $itemContainer ); }, getPages: function (currentPage) { var pages = [], half = Math.floor(this.options.visiblePages / 2), start = currentPage - half + 1 - (this.options.visiblePages % 2), end = currentPage + half; start <= 0 && ((start = 1), (end = this.options.visiblePages)), end > this.options.totalPages && ((start = this.options.totalPages - this.options.visiblePages + 1), (end = this.options.totalPages)); for (var itPage = start; itPage <= end; ) pages.push(itPage), itPage++; return { currentPage: currentPage, numeric: pages }; }, render: function (pages) { var _this = this; this.$listContainer.children().remove(), this.$listContainer.append(this.buildListItems(pages)), this.$listContainer.children().each(function () { var $this = $(this); switch ($this.data("page-type")) { case "page": $this.data("page") === pages.currentPage && $this.addClass(_this.options.activeClass); break; case "first": $this.toggleClass( _this.options.disabledClass, 1 === pages.currentPage ); break; case "last": $this.toggleClass( _this.options.disabledClass, pages.currentPage === _this.options.totalPages ); break; case "prev": $this.toggleClass( _this.options.disabledClass, !_this.options.loop && 1 === pages.currentPage ); break; case "next": $this.toggleClass( _this.options.disabledClass, !_this.options.loop && pages.currentPage === _this.options.totalPages ); } }); }, setupEvents: function () { var _this = this; this.$listContainer.find("li").each(function () { var $this = $(this); $this.off(), $this.hasClass(_this.options.disabledClass) || $this.hasClass(_this.options.activeClass) ? $this.on("click", !1) : $this.on("click", function (evt) { _this.options.href || evt.preventDefault(), _this.show(parseInt($this.data("page"))); }); }); }, makeHref: function (c) { return this.options.href ? this.options.href.replace(this.options.hrefVariable, c) : "#"; }, }), ($.fn.twbsPagination = function (option) { var methodReturn, args = Array.prototype.slice.call(arguments, 1), $this = $(this), data = $this.data("twbs-pagination"), options = "object" == typeof option && option; return ( data || $this.data( "twbs-pagination", (data = new TwbsPagination(this, options)) ), "string" == typeof option && (methodReturn = data[option].apply(data, args)), void 0 === methodReturn ? $this : methodReturn ); }), ($.fn.twbsPagination.defaults = { totalPages: 0, startPage: 1, visiblePages: 5, initiateStartPageClick: !0, href: !1, hrefVariable: "{{number}}", first: "First", prev: "Previous", next: "Next", last: "Last", loop: !1, onPageClick: null, paginationClass: "pagination", nextClass: "next", prevClass: "prev", lastClass: "last", firstClass: "first", pageClass: "page", activeClass: "active", disabledClass: "disabled", }), ($.fn.twbsPagination.Constructor = TwbsPagination), ($.fn.twbsPagination.noConflict = function () { return ($.fn.twbsPagination = old), this; }); })(window.jQuery, window, document), (function ($) { "use strict"; $.fn.AuxinCarouselInit = function ($scope) { ($scope = $scope || $(this)) .find(".aux-lightbox-frame") .photoSwipe({ target: ".aux-lightbox-btn", bgOpacity: 0.8, shareEl: !0, }), $scope .find(".aux-lightbox-gallery") .photoSwipe({ target: ".aux-lightbox-btn", bgOpacity: 0.97, shareEl: !0, }), $scope .find(".aux-lightbox-video") .photoSwipe({ target: ".aux-open-video", bgOpacity: 0.97, shareEl: !0, }), $scope .find(".master-carousel-slider") .AuxinCarousel({ autoplay: !1, columns: 1, speed: 15, inView: 15, autohight: !1, rtl: $("body").hasClass("rtl"), }) .on("auxinCarouselInit", function () { $scope .find(".aux-lightbox-in-slider") .photoSwipe({ target: ".aux-lightbox-btn", bgOpacity: 0.8, shareEl: !0, }); }), $scope .find(".master-carousel") .AuxinCarousel({ speed: 30, rtl: $("body").hasClass("rtl") }); }; })(jQuery, window, document), (function ($, window, document) { ($.fn.AuxinTiltElementInit = function ($scope) { ($scope = $scope || $(this)) .find(".aux-tilt-box") .tilt({ maxTilt: $(this).data("max-tilt"), easing: "cubic-bezier(0.23, 1, 0.32, 1)", speed: $(this).data("time"), perspective: 2e3, }); }), ($.fn.AuxinFitVideosInit = function ($scope) { ($scope = $scope || $(this)).find("main").fitVids(), $scope .find("main") .fitVids({ customSelector: 'iframe[src^="http://w.soundcloud.com"], iframe[src^="https://w.soundcloud.com"]', }); }), ($.fn.AuxinImageBoxInit = function ($scope) { ($scope = $scope || $(this)).find(".aux-image-box").AuxinImagebox(); }), ($.fn.AuxinBeforeAfterInit = function ($scope) { ($scope = $scope || $(this)) .find(".aux-before-after") .imagesLoaded(function () { $scope.find(".aux-before-after").each(function () { var $slider = $(this); $slider.twentytwenty({ default_offset_pct: $slider.data("offset") || 0.5, orientation: "horizontal", }); }); }); }), ($.fn.AuxinParallaxBoxInit = function ($scope) { ($scope = $scope || $(this)) .find(".aux-parallax-box") .AvertaParallaxBox(); }), ($.fn.AuxinParallaxSectionInit = function ($scope) { var $target = ($scope = $scope || $(this)).hasClass( "aux-parallax-section" ) ? $scope : $scope.find(".aux-parallax-section"); $target.length && $target.each(function (key, item) { var $parallax_box = $(this); $parallax_box.find(".aux-parallax-section").length || $parallax_box.AvertaParallaxBox({ targets: "aux-parallax-piece", }); }); }), ($.fn.AuxinScrollableAnimsInit = function ($scope) { var $target = ($scope = $scope || $(this)).hasClass("aux-scroll-anim") ? $scope : $scope.find(".aux-scroll-anim"); $target.length && $target.each(function (key, item) { $(this).AvertaScrollAnims(); }); }), ($.fn.AuxinAjaxSearch = function ($scope) { var $target = ($scope = $scope || $(this)).hasClass("is-ajax") ? $scope : $scope.find(".is-ajax"); if ($target.length) { var xhr = null; $target.each(function (key, item) { !(function ($scope) { var input = $scope.find("input.aux-search-field"), catDropDown = $scope.find("select#cat"); input.on("keyup", function () { search($scope, $(this), catDropDown); }), catDropDown.length && (catDropDown.select2({ minimumResultsForSearch: -1, dropdownCssClass: "aux-search-dropdown", }), catDropDown.on("change", function () { search($scope, input, catDropDown); })), $scope.find('input[type="submit"]').on("click", function () { $(this).parents("form").submit(); }); })($(this)); }); } function search($scope, input, catDropDown) { xhr && xhr.abort(); var value = input.val(); if (value.length < 3 || "" == value) return ( $scope.find(".aux-spinner").removeClass("show"), void ( $(".aux-search-overlay > .aux-search-field").hasClass( "has-result" ) && ($(".aux-search-overlay .aux-search-result").html(""), $(".aux-search-overlay > .aux-search-field").removeClass( "has-result" )) ) ); $scope.find(".aux-spinner").addClass("show"), $scope.find(".aux-search-result").addClass("hide"); var data = { action: "auxin_ajax_search", s: value, cat: catDropDown.length ? catDropDown.val() : 0, }; xhr = $.ajax({ type: "get", dataType: "html", url: auxin.ajax_url, data: data, }).done(function (response) { $scope.find(".aux-spinner").removeClass("show"), $scope.find(".aux-search-result").removeClass("hide"), $(".aux-search-overlay > .aux-search-field").hasClass( "has-result" ) ? $scope.find(".aux-search-result").html(response) : ($(".aux-search-overlay > .aux-search-field").addClass( "has-result" ), setTimeout(function () { $scope.find(".aux-search-result").html(response); }, 1e3)); }); } }), ($.fn.AuxinModernSearchAjax = function ($scope) { function ajaxSearchRequest( searchKey, cat, postTypes, outputWrapper, spinner ) { spinner.removeClass("aux-spinner-hide"), outputWrapper.empty(); var data = { action: "aux_modern_search_handler", s: searchKey, cat: cat.id, taxonomy: cat.taxonomy, post_type: cat.postType, post_types: postTypes, }; $.ajax({ type: "get", dataType: "html", url: auxin.ajax_url, data: data, }).done(function (res) { var output = (function (postTypes) { var output = ""; return ( postTypes.forEach(function (postType) { var item = postType.results, itemOutput = "", title = ""; item.length ? ((title = '' + postType.fromTitle + ""), item.forEach(function (post) { itemOutput += post; })) : (title = '' + postType.noResultMessage + ""), (output += '
              ' + title + itemOutput + "
              "); }), output ); })(JSON.parse(res).data); setTimeout(function () { outputWrapper.html(output), spinner.addClass("aux-spinner-hide"); }, 1500); }); } ($scope = $scope || $(this)).find(".aux-search-ajax").each(function () { !(function (element) { var $el = $(element), $popupContainer = $el.parent(".aux-search-popup-content"), $field = $el.find(".aux-search-field"), $spinner = $popupContainer.find(".aux-loading-spinner"), $ajaxOutput = $popupContainer.find(".aux-search-ajax-output"), $cats = $popupContainer.find(".aux-modern-search-cats"), catID = 0, taxonomy = $cats.length ? $cats.find("option:selected").data("taxonomy") : ["category"], postType = $cats.length ? $cats.find("option:selected").data("post-type") : ["post"], postTypes = $field.data("post-types"), delay = 0, fieldValue = $field.val(); $field.on("keyup", function (event) { var searchKey = event.target.value; searchKey.length <= 3 || 35 <= searchKey.length || fieldValue === event.target.value || (delay && clearTimeout(delay), (delay = setTimeout(function () { (fieldValue = event.target.value), ajaxSearchRequest( searchKey, { id: catID, taxonomy: taxonomy, postType: postType }, postTypes, $ajaxOutput, $spinner ); }, 700))); }), $cats.length && $cats.on("change", function (event) { var selectedOption = $(event.target).find("option:selected"), selectedTax = selectedOption.data("taxonomy"), selectedPostType = selectedOption.data("post-type"); (catID = event.target.value), (taxonomy = selectedTax), (postType = selectedPostType), ajaxSearchRequest( $field.val(), { id: catID, taxonomy: taxonomy, postType: postType }, postTypes, $ajaxOutput, $spinner ); }); })(this); }); }), ($.fn.AuxinElementorSearchElement = function ($scope) { var $target = ($scope = $scope || $(this)).hasClass( "aux-search-elementor-element" ) ? $scope : $scope.find(".aux-search-elementor-element"); $target.length && $target.each(function (key, item) { $(this).parents(".elementor-element").length && $(this).parents(".elementor-element").width() <= 634 ? $(this).addClass("responsive") : $(this).hasClass("responsive") && $(this).removeClass("responsive"); }); }), ($.fn.AuxinMediaElementInit = function () { if ("function" == typeof MediaElementPlayer) { var settings = window._wpmejsSettings || {}; (settings.features = settings.features || mejs.MepDefaults.features), settings.features.push("AuxinPlayList"), (MediaElementPlayer.prototype.buildAuxinPlayList = function ( player, controls, layers, media ) { if (player.container.closest(".wp-video-playlist").length) { player.container.closest(".aux-mejs-container").length || (player.container.wrap( "
              " ), player.container .closest(".wp-playlist") .addClass("aux-row") .find(".wp-playlist-tracks") .addClass("aux-2-6 aux-tb-1 aux-mb-1"), new PerfectScrollbar(".wp-playlist-tracks")), player.container.addClass("aux-player-light"), (player.options.stretching = "none"), (player.width = "100%"); var $playlistContainer = player.container .closest(".wp-playlist") .find(".wp-playlist-tracks"); $playlistContainer.find(".aux-playlist-background").length || $playlistContainer.prepend( "
              " ); var $postFormatHeight = $(".aux-primary .content").width(); (player.height = 1600 <= $postFormatHeight ? 720 : 768 <= $postFormatHeight && $postFormatHeight < 1600 ? 480 : 480 <= $postFormatHeight && $postFormatHeight < 768 ? 360 : 240), $playlistContainer.css("height", player.height); } }); } }), ($.fn.AuxinDynamicDropshadow = function () { var imgFrame, clonedImg, img; if (this instanceof jQuery) { if (!this || !this[0]) return; img = this[0]; } else img = this; img.classList.contains("aux-img-has-shadow") || ((imgFrame = document.createElement("div")), (clonedImg = img.cloneNode()).classList.add( "aux-img-dynamic-dropshadow-cloned" ), clonedImg.classList.remove("aux-img-dynamic-dropshadow"), img.classList.add("aux-img-has-shadow"), imgFrame.classList.add("aux-img-dynamic-dropshadow-frame"), img.parentNode.appendChild(imgFrame), imgFrame.appendChild(img), imgFrame.appendChild(clonedImg)); }), ($.fn.AuxinDynamicDropshadowInit = function ($scope) { ($scope = $scope || $(this)) .find(".aux-img-dynamic-dropshadow") .each(function () { $(this).AuxinDynamicDropshadow(); }); }), ($.fn.AuxinScrollBlurImage = function ( blurValue, startFrom, opacitySpeed ) { var scrollValue, opacityValue, $target, backgroundImage, $this = $(this), prefix = window._jcsspfx || "", bluredImage = (function (imgUrl) { var bgImgElement = document.createElement("div"); $(bgImgElement).appendTo($this), $(bgImgElement).addClass("aux-blured-img"), (bgImgElement.style[prefix + "backgroundImage"] = imgUrl), "auto" != $this.css("background-size") && (bgImgElement.style[prefix + "backgroundSize"] = $this.css("background-size")); "0% 0%" != $this.css("background-position") && (bgImgElement.style[prefix + "backgroundPosition"] = $this.css( "background-position" )); "repeat" != $this.css("background-repeat") && (bgImgElement.style[prefix + "backgroundRepeat"] = $this.css("background-repeat")); return ( (bgImgElement.style[prefix + "filter"] = "blur(" + blurValue + "px)"), $(bgImgElement) ); })( ((backgroundImage = ($target = $this).css("background-image")), $target.addClass("aux-orginal-blured-img"), backgroundImage) ), yVisible = startFrom * $this.outerHeight(), remainHeight = $this.outerHeight() - yVisible; $(window).on("scroll", function () { var winBot = $(window).scrollTop(); 0 < (scrollValue = winBot - $this.offset().top - yVisible) ? ((opacityValue = scrollValue / remainHeight), (opacityValue = Math.min(1, opacityValue * opacitySpeed)), (bluredImage[0].style[prefix + "opacity"] = opacityValue < 1 ? opacityValue : 1)) : scrollValue < 0 && (bluredImage[0].style[prefix + "opacity"] = 0); }); }), ($.fn.AuxinScrollBlurImageInit = function ($scope) { ($scope = $scope || $(this)).find(".aux-blur-fade").each(function () { $(this).AuxinScrollBlurImage(15, 0.3, 4); }); }), ($.fn.AuxinOtherElementsInit = function ($scope) { $scope = $scope || $(this); }), ($.fn.AuxinLiveTabsInit = function ($scope) { ($scope = $scope || $(this)) .find(".widget-tabs .widget-inner") .avertaLiveTabs({ tabs: "ul.tabs > li", tabsActiveClass: "active", contents: "ul.tabs-content > li", contentsActiveClass: "active", transition: "fade", duration: "500", }); }), ($.fn.AuxinAccordionInit = function ($scope) { $scope = $scope || $(this); var _collapseOnInit = !$(this).find(".aux-toggle-widget.aux-open") .length; $scope.find(".aux-sidebar .aux-widget-area").each(function (index, el) { $(this).avertaAccordion({ items: ".aux-toggle-widget", itemHeader: ".widget-title", itemContent: ".widget-title + *", itemActiveClass: "aux-open", contentWrapClass: "aux-toggle-widget-wrapper", oneVisible: !1, collapseOnInit: _collapseOnInit, onExpand: function ($item) { var height = 0; $item .find(".aux-toggle-widget-wrapper > * ") .each(function (index, el) { height += $(el).outerHeight(!0); }), $item.find(".aux-toggle-widget-wrapper").css("height", height); }, onCollapse: function ($item) { var wrapper = $item.find(".aux-toggle-widget-wrapper"), height = wrapper.outerHeight(); wrapper.css("height", height); }, }); }), $scope .find(".widget-toggle .widget-inner") .each(function (index, el) { $(this).avertaAccordion({ itemHeader: ".toggle-header", itemContent: ".toggle-content", oneVisible: $(this).data("toggle"), }); }), $scope.find(".aux-widget-faq").each(function (index, el) { $(this).avertaAccordion({ items: ".aux-faq-item", itemHeader: ".toggle-header", itemContent: ".toggle-content", oneVisible: $(this).data("toggle"), expandHashItem: !1, }); }); }), ($.fn.AuxinTimelineInit = function ($scope) { ($scope = $scope || $(this)).find(".aux-timeline").each(function () { $(this).hasClass("aux-right") ? $(this).AuxinTimeline({ responsive: { 760: "right" } }) : $(this).AuxinTimeline(); }); }), ($.fn.AuxinCodeHighlightInit = function ($scope) { ($scope = $scope || $(this)), "undefined" != typeof hljs && $scope.find("pre code").each(function (i, block) { hljs.highlightBlock(block); }); }), ($.fn.AuxinLoadMoreInit = function ($scope) { ($scope = $scope || $(this)) .find('.widget-container[class*="aux-ajax-type"]') .AuxLoadMore(); }), ($.fn.AuxinVideoBoxInit = function ($scope) { ($scope = $scope || $(this)).find(".aux-video-box").AuxinVideobox(); }), ($.fn.AuxinImageInteractionInit = function ($scope) { ($scope = $scope || $(this)).find(".aux-frame-cube").AuxinCubeHover(), $scope.find(".aux-hover-twoway").AuxTwoWayHover(); }), ($.fn.AuxinMasonryAnimateInit = function ($scope) { ($scope = $scope || $(this)) .find(".aux-product-parallax-wrapper") .AuxinMasonryAnimate(); }), ($.fn.AuxinSelect2Init = function ($scope) { ($scope = $scope || $(this)), $(".aux-custom-dropdown select").select2({ minimumResultsForSearch: 1 / 0, }), $(".aux-modern-search-cats").select2({ minimumResultsForSearch: 1 / 0, dropdownCssClass: "aux-search-cats-dropdown", dropdownAutoWidth: "true", }); }), ($.fn.AuxinCarouselNavigation = function ($scope) { ($scope = $scope || $(this)) .find(".aux-carousel-navigation") .each(function () { var $this = $(this), $target = $($this.data("target")).find(".master-carousel"); $target && "undefined" != typeof AuxinCarousel && $($this.data("target")).each(function (index) { if (($target = $(this).find(".master-carousel")[0])) { var instance = AuxinCarousel[$target.getAttribute("data-element-id")]; $this .find(".aux-prev") .on( "click", { action: "prev" }, instance._controlCarousel.bind(instance) ), $this .find(".aux-next") .on( "click", { action: "next" }, instance._controlCarousel.bind(instance) ); } }); }); }); })(jQuery, window, document), (function ($) { "use strict"; ($.fn.AuxinIsotopeInit = function ($scope) { ($scope = $scope || $(this)), $.fn.AuxinIsotopeLayoutInit($scope), $.fn.AuxinIsotopeImageLayoutsInit($scope), $.fn.AuxinIsotopeBigGridInit($scope), $.fn.AuxinIsotopeFAQInit($scope); }), ($.fn.AuxinIsotopeImageLayoutsInit = function ($scope) { ($scope = $scope || $(this)), $.fn.AuxinIsotopeGalleryInit($scope), $.fn.AuxinIsotopeMasonryInit($scope), $.fn.AuxinIsotopeTilesInit($scope); }), ($.fn.AuxinIsotopeLayoutInit = function ($scope) { ($scope = $scope || $(this)) .find(".aux-isotope-layout") .AuxIsotope({ itemSelector: ".aux-iso-item", revealTransitionDuration: 600, revealBetweenDelay: 50, revealTransitionDelay: 0, hideTransitionDuration: 300, hideBetweenDelay: 0, hideTransitionDelay: 0, updateUponResize: !0, transitionHelper: !0, }); }), ($.fn.AuxinIsotopeGalleryInit = function ($scope) { ($scope = $scope || $(this)) .find(".aux-gallery .aux-gallery-container") .AuxIsotope({ itemSelector: ".gallery-item", justifyRows: { maxHeight: 340, gutter: 0 }, masonry: { gutter: 0 }, revealTransitionDuration: 600, hideTransitionDuration: 600, revealBetweenDelay: 70, hideBetweenDelay: 40, revealTransitionDelay: 0, hideTransitionDelay: 0, updateUponResize: !0, transitionHelper: !0, deeplink: !1, }); }), ($.fn.AuxinIsotopeTilesInit = function ($scope) { ($scope = $scope || $(this)) .find(".aux-tiles-layout") .AuxIsotope({ itemSelector: ".aux-post-tile, .aux-iso-item", layoutMode: "packery", revealTransitionDuration: 600, hideTransitionDuration: 600, revealBetweenDelay: 70, hideBetweenDelay: 40, revealTransitionDelay: 0, hideTransitionDelay: 0, updateUponResize: !0, transitionHelper: !0, packery: { gutter: 0 }, containerStyle: { position: "" }, }) .on("auxinIsotopeReveal", function (e, items) { items.forEach(function (item, index) { item.$element.hasClass("aux-image-box") && item.$element.AuxinImagebox("update"); }); }); }), ($.fn.AuxinIsotopeBigGridInit = function ($scope) { ($scope = $scope || $(this)) .find(".aux-big-grid-layout") .AuxIsotope({ itemSelector: ".aux-news-big-grid, .aux-iso-item", layoutMode: "packery", revealTransitionDuration: 600, hideTransitionDuration: 600, revealBetweenDelay: 70, hideBetweenDelay: 40, revealTransitionDelay: 0, hideTransitionDelay: 0, updateUponResize: !0, transitionHelper: !0, packery: { gutter: 0 }, }) .on("auxinIsotopeReveal", function (e, items) { items.forEach(function (item, index) { item.$element.hasClass("aux-image-box") && item.$element.AuxinImagebox("update"); }); }); }), ($.fn.AuxinIsotopeMasonryInit = function ($scope) { ($scope = $scope || $(this)) .find(".aux-masonry-layout") .AuxIsotope({ itemSelector: ".aux-post-masonry", layoutMode: "masonry", updateUponResize: !0, transitionHelper: !1, transitionDuration: 0, }); }), ($.fn.AuxinIsotopeFAQInit = function ($scope) { ($scope = $scope || $(this)) .find(".aux-isotope-faq") .AuxIsotope({ itemSelector: ".aux-iso-item", revealTransitionDuration: 600, hideTransitionDuration: 600, revealBetweenDelay: 70, hideBetweenDelay: 40, revealTransitionDelay: 0, hideTransitionDelay: 0, updateUponResize: !1, transitionHelper: !0, }) .on("auxinIsotopeReveal", function () { $scope.find(".aux-iso-item").css({ position: "" }); }); }); })(jQuery, window, document), (function ($, window, document) { "use strict"; ($.fn.AuxinPagePreloadAnimationInit = function ($scope) { ($scope = $scope || $(this)).find("#inner-body"); var transitionTarget, animationConfig, $body = $scope.find("body"); if ($body.length) { var pageAnimationConfig = { fade: { eventTarget: ".aux-page-animation-overlay", propertyWatch: "opacity", hideDelay: 800, loadingHideDuration: 810, }, circle: { eventTarget: "#inner-body", propertyWatch: "transform", hideDelay: 1e3, loadingHideDuration: 810, }, cover: { eventTarget: ".aux-page-animation-overlay", propertyWatch: "transform", hideDelay: 500, loadingHideDuration: 810, }, slideup: { eventTarget: ".aux-page-animation-overlay", propertyWatch: "transform", hideDelay: 500, loadingHideDuration: 810, }, }; if ($body.hasClass("aux-page-preload")) { var $pageProgressbar = $scope.find("#pagePreloadProgressbar"), pageLoading = document.getElementById("pagePreloadLoading"); $(window).on("load.preload", function (instance) { if ( ($body.data("page-animation") && Modernizr && Modernizr.csstransitions ? setupPageAnimate() : pageLoading && setTimeout(function () { pageLoading.style.display = "none"; }, 810), $body.addClass("aux-page-preload-done"), $pageProgressbar.length) ) { var pageProgressbar = $pageProgressbar[0]; (pageProgressbar.style.width = pageProgressbar.offsetWidth + "px"), $pageProgressbar.removeClass("aux-no-js"), (pageProgressbar.style[window._jcsspfx + "AnimationPlayState"] = "paused"), setTimeout(function () { (pageProgressbar.style.width = "100%"), $pageProgressbar.addClass("aux-hide"), $body.addClass("aux-progressbar-done"); }, 10), setTimeout(function () { pageProgressbar.style.display = "none"; }, 700); } }), (window.onerror = function (e) { $pageProgressbar.addClass("aux-hide"), $body.addClass("aux-page-preload-done"), $(window).off("load.preload"); }); } else $(window).on("unload", function () { $(window).off("unload"); }), $(window).on("pageshow", function (event) { event.originalEvent.persisted && window.location.reload(); }), "hidden" === document.visibilityState ? document.addEventListener( "visibilitychange", function () { document.hidden || setupPageAnimate(); }, !1 ) : setupPageAnimate(); } function setupPageAnimate() { if ( (!Modernizr || Modernizr.csstransitions) && $body.hasClass("aux-page-animation") ) { var animType = $body.data("page-animation-type"); (animationConfig = pageAnimationConfig[animType]), (transitionTarget = $( pageAnimationConfig[animType].eventTarget )[0]).addEventListener("transitionend", pageShowAnimationDone), $( 'a:not([href^="#"]):not([href=""]), .elementor-template-canvas' ).AuxinAnimateAndRedirect({ scrollFixTarget: "#inner-body", delay: animationConfig.hideDelay, animateIn: "aux-page-show-" + animType, animateOut: "aux-page-hide-" + animType, beforeAnimateOut: "aux-page-before-hide-" + animType, }); } } function pageShowAnimationDone(e) { if ( e.target === transitionTarget && -1 !== e.propertyName.indexOf(animationConfig.propertyWatch) ) { $body.addClass("aux-page-animation-done"), "circle" === $body.data("page-animation-type") && $body.trigger("resize"), transitionTarget.removeEventListener( "transitionend", pageShowAnimationDone ); var pageAnimationDoneEvent = new CustomEvent("AuxPageAnimationDone"); document.body.dispatchEvent(pageAnimationDoneEvent), $.fn.AuxinAppearAnimationsInit($body); } } }), ($.fn.AuxinPageCoverAnimation = function () { var posTop, $this = $(this), $window = $(window), fired = !1, scrollLock = !0; $this.closest("body").addClass("aux-page-cover"), $window.on("scroll", function () { scrollLock && !fired ? ($window.scrollTo(0), $("body").addClass("aux-page-cover-off")) : window.elementorFrontendConfig && 0 === $window.scrollTop() && window.elementorFrontendConfig.isEditMode && $("body").removeClass("aux-page-cover-off"); }), $this.on( "transitionend webkitTransitionEnd oTransitionEnd", function (e) { "transform" === e.originalEvent.propertyName && ((posTop = $this.offset().top), (scrollLock = 0 !== posTop ? !(fired = !0) : !(fired = !1))); } ), $this.find(".aux-page-cover-footer-text a").on("click", function () { $("body").addClass("aux-page-cover-off"); }); }), ($.fn.AuxinPageCoverAnimationInit = function ($scope) { ($scope = $scope || $(this)).hasClass("aux-page-cover-wrapper") ? $scope.AuxinPageCoverAnimation() : $scope.find(".aux-page-cover-wrapper").each(function () { $(this).AuxinPageCoverAnimation(); }); }), ($.fn.AuxinSetOnApearInit = function () { if ($.fn.appearl) { var appearBuffer = 0; $.fn.setOnAppear = function (once, delay) { return $(this).each(function (index, element) { var $element = $(element); $element.appearl(), $element[once ? "one" : "on"]("appear", function () { delay && !$element.hasClass("aux-appeared-once") && ((element.style.transitionDelay = appearBuffer++ * delay + "ms"), setTimeout(function () { appearBuffer = 0; }, 10)), $element.addClass("aux-appeared-once"), $element .addClass("aux-appeared") .removeClass("aux-disappeared"); }), once || $element.on("disappear", function () { $element .removeClass("aux-appeared") .addClass("aux-disappeared"); }); }); }; } }), ($.fn.AuxinAppearTransitionsInit = function ($scope) { ($scope = $scope || $(this)) .find(".aux-check-appear, .aux-appear-watch:not(.aux-appear-repeat)") .appearl({ offset: "150px", insetOffset: "0px" }) .one("appear", function (event, data) { this.classList.add("aux-appeared"), this.classList.add("aux-appeared-once"); }), $scope .find(".aux-check-appear, .aux-appear-watch.aux-appear-repeat") .appearl({ offset: "150px", insetOffset: "0px" }) .on("appear disappear", function (event, data) { "disappear" === event.type ? (this.classList.remove("aux-appeared"), this.classList.add("aux-disappeared")) : (this.classList.remove("aux-disappeared"), this.classList.add("aux-appeared")); }); }), ($.fn.AuxinAppearAnimationsInit = function ($scope) { var $target = ($scope = $scope || $(this)).hasClass( "aux-appear-watch-animation" ) ? $scope : $scope.find(".aux-appear-watch-animation"); function appear() { $target .appearl({ offset: "200px", insetOffset: "0px" }) .one("appear", function (event, data) { this.classList.add("aux-animated"), this.classList.add("aux-animated-once"); }); } $target.length && ("hidden" === document.visibilityState ? document.addEventListener( "visibilitychange", function () { document.hidden || appear(); }, !1 ) : appear()); }); })(jQuery, window, document), (function ($, window, document) { ($.fn.AuxinPageLayoutInit = function ($scope) { ($scope = $scope || $(this)), $(function () { $scope .find(".aux-sticky-side > .entry-side, .aux-sticky-piece") .AuxinStickyPosition(); }); var isResp = $scope.find("body").hasClass("aux-resp"); $scope.find(".aux-float-layout").AuxinFloatLayout({ autoLocate: isResp }); }), ($.fn.AuxinMatchHeightInit = function ($scope) { ($scope = $scope || $(this)) .find(".aux-match-height > .aux-col") .matchHeight(); }), ($.fn.AuxinPageHeaderLayoutInit = function ($scope) { $scope = $scope || $(this); var $window = $(window), $siteHeader = $scope.find("#site-header, #site-elementor-header"), headerStickyHeight = $siteHeader.data("sticky-height") || 0; if ( ($siteHeader.find(".secondary-bar").length && (headerStickyHeight += 35), $scope.find("body").hasClass("aux-top-sticky") && $siteHeader.AuxinStickyPosition(), $scope.find(".page-header.aux-full-height").AuxinFullscreenHero(), jQuery.fn.scrollTo) ) { var $scrollToTarget = $scope.find("#site-title"); $scope .find(".aux-title-scroll-down .aux-arrow-nav") .on("click", function () { var target = $scrollToTarget.offset().top + $scrollToTarget.height() - headerStickyHeight; $window.scrollTo(target, { duration: 1500, easing: "easeInOutQuart", }); }); } }), ($.fn.AuxinModernForm = function ($scope) { $scope = $scope || $(this); var groupClass = ".aux-input-group", $allFields = $scope.find( groupClass + " input ," + groupClass + " textarea" ); $allFields.val() && $allFields.each(function () { $scope.val() && $scope.parents(groupClass).addClass("aux-focused"); }), $allFields .on("focus", function () { $(this).parents(groupClass).addClass("aux-focused"); }) .on("blur", function () { "" === $(this).val() && $(this).parents(groupClass).removeClass("aux-focused"); }); }), ($.fn.AuxinModernFormInit = function ($scope) { ($scope = $scope || $(this)).find(".aux-modern-form").each(function () { $(this).AuxinModernForm(); }); }), ($.fn.AuxinDropdownEffect = function ($scope) { $basketWrapper = $scope || $(this); var isHover = $basketWrapper.find(".aux-action-on-hover").length, dropdownClass = "aux-cart-display-dropdown", $dropdownWrapper = $basketWrapper.find(".aux-card-dropdown"); $(window).on("load resize", function () { $dropdownWrapper.length && ($dropdownWrapper.offset().left + $dropdownWrapper.outerWidth() > $(window).width() && !$dropdownWrapper.hasClass("aux-card-dropdown-resp") ? $dropdownWrapper.addClass("aux-card-dropdown-resp") : $dropdownWrapper.removeClass("aux-card-dropdown-resp")); }), isHover ? $basketWrapper.each(function () { var $basket = $(this); $basket.on("mouseover", function () { $basket.addClass(dropdownClass); }), $(document).on("mouseover", function (e) { $(e.target).closest($basket).length || $basket.removeClass(dropdownClass); }); }) : $basketWrapper.each(function () { var $basket = $(this); $basket.on("click", function () { $basket.addClass(dropdownClass); }), $(document).on("click", function (e) { $(e.target).closest($basket).length || $basket.removeClass(dropdownClass); }); }); }), ($.fn.AuxinDropdownEffectInit = function ($scope) { ($scope = $scope || $(this)) .find( ".aux-top-header .aux-cart-wrapper, .site-header-section .aux-cart-wrapper, .aux-cart-element" ) .each(function () { $(this).AuxinDropdownEffect(); }); }), ($.fn.AuxinCartCanvasInit = function ($scope) { var $headerElement = ($scope = $scope || $(this)).find( ".site-header-section" ); function toggleOffcanvasBasket() { $("body").hasClass("woocommerce-cart") || $("body").hasClass("woocommerce-checkout") || ($basketContainer.toggleClass("aux-open"), $scope.toggleClass("aux-offcanvas-overlay"), (isClosed = !isClosed)); } $headerElement.length || ($headerElement = $scope.find(".aux-cart-element-container")), $headerElement.length && (($cartWrapper = $headerElement.find(".aux-cart-wrapper")), ($cartDropdown = $headerElement.find(".aux-card-dropdown")), ($burgerBasket = $headerElement.find(".aux-shopping-basket")), ($basketContainer = $scope.find("#offcart")), (isClosed = !0), $cartDropdown .clone() .appendTo($basketContainer.find(".aux-offcart-content")), $cartWrapper.hasClass("aux-cart-type-offcanvas") ? $basketContainer .find(".aux-offcart-content .aux-card-dropdown") .removeClass("aux-desktop-off aux-tablet-off") : $cartDropdown.hasClass("aux-tablet-off") && $basketContainer .find(".aux-offcart-content .aux-card-dropdown") .removeClass("aux-tablet-off"), $cartDropdown.hasClass("aux-card-dropdown-dark") && $basketContainer.addClass("aux-offcanvas-dark"), $basketContainer .find(".aux-card-dropdown") .removeClass("aux-phone-off"), $burgerBasket.on("click", toggleOffcanvasBasket), $basketContainer .find(".aux-close") .on("click", toggleOffcanvasBasket), $(window).on("load resize", function () { var $dropDownCheck = !1; 767 < window.innerWidth && $cartWrapper.hasClass("aux-cart-type-dropdown") && ((window.innerWidth < 1025 && $cartDropdown.hasClass("aux-tablet-off")) || ($dropDownCheck = !0)), $dropDownCheck ? ($basketContainer.hide(), isClosed || $scope.removeClass("aux-offcanvas-overlay")) : ($basketContainer.show(), isClosed || $scope.addClass("aux-offcanvas-overlay")); }), $(document).on("click", function (e) { $(e.target).parents(".aux-cart-wrapper").length || $(e.target).is(".aux-cart-wrapper") || $(e.target).parents("#offcart").length || $(e.target).is("#offcart") || isClosed || toggleOffcanvasBasket(); })); }), ($.fn.AuxinDropDownSelect = function ($scope) { ($scope = $scope || $(this)), ($this = $scope.hasClass("aux-dropdown-filter") ? $scope : $scope.find(".aux-dropdown-filter")); var $DropDown = $this.find("ul"), $FilterBy = $this.find(".aux-filter-by"), $AllOptions = Array.from($DropDown.children("li")); function ClassCheck() { $DropDown.hasClass("aux-active") ? $DropDown.removeClass("aux-active") : $DropDown.addClass("aux-active"); } function InsertText() { var $ItemLabel = $(this).text(); $FilterBy.find(".aux-filter-name").html($ItemLabel), ClassCheck(); } if ( ($FilterBy.on("click", function () { ClassCheck(); }), !$this.attr("data-insert-text")) ) for (var i = 0; $AllOptions.length > i; i++) $AllOptions[i].addEventListener("click", InsertText); window.addEventListener("click", function (e) { e.target.className != $FilterBy.attr("class") && e.target.className != $FilterBy.find(".aux-filter-name").attr("class") && e.target.className != $FilterBy.find(".aux-filter-name-current").attr("class") && $DropDown.hasClass("aux-active") && $DropDown.removeClass("aux-active"); }); }), ($.fn.AuxinDropDownSelectInit = function ($scope) { ($scope = $scope || $(this)) .find(".aux-filters.aux-dropdown-filter") .each(function () { $(this).AuxinDropDownSelect(); }); }), ($.fn.AuxinTriggerResize = function ($scope) { ($scope = $scope || $(window)).trigger("resize"); }), ($.fn.AuxinFeaturedColor = function ($scope) { ($scope = $scope || $(this)) .find(".aux-featured-color") .each(function () { var featuredColor = $(this).data("featured-color"); "" != featuredColor && $(this).css({ "background-color": featuredColor, color: auxin_get_contrast(featuredColor), }); }); }), ($.fn.AuxinScrollScale = function (start, target, startScale, endScale) { $(this); var scrollValue, elBot, scaleValue, $el = $(start), $target = $(target), $window = $(window), targetHeight = ((endScale = endScale || 1), $target.outerHeight()); $window.on("scroll", function () { (scrollValue = $window.height() + $window.scrollTop()), (elBot = $el.offset().top + $el.outerHeight()) < scrollValue && (scaleValue = startScale - (scrollValue = (scrollValue - elBot) / targetHeight) * (startScale - endScale)) < endScale && ($target[0].style[window._jcsspfx + "Transform"] = "scale(" + scaleValue + ")"); }); }), ($.fn.AuxinScrollScaleInit = function ($scope) { ($scope = $scope || $(this)) .find(".aux-bs-get-started") .each(function () { $(this).AuxinScrollScale( ".aux-bs-footer-scale", ".aux-subfooter .aux-wrapper", 0.94, 1 ); }); }), (window.auxinToggleOverlayContainer = function ( $overlay, close, animDuration ) { var anim = $overlay.data("anim"), overlay = $overlay[0]; animDuration = animDuration || 800; anim && anim.stop(!0), (anim = close ? ($overlay.css({ opacity: 0, display: "block" }), (overlay.style[window._jcsspfx + "Transform"] = "perspective(200px) translateZ(30px)"), CTween.animate( $overlay, animDuration, { transform: "none", opacity: 1 }, { ease: "easeOutQuart" } )) : CTween.animate( $overlay, animDuration / 2, { transform: "perspective(200px) translateZ(30px)", opacity: 0, }, { ease: "easeInQuad", complete: function () { $overlay.css("display", "none"); }, } )), $overlay.data("anim", anim); }), ($.fn.AuxinMobileMenuInit = function ($scope) { var $burgerBtns = ($scope = $scope || $(this)).find(".aux-burger-box"); ($window = $(window)), $burgerBtns.each(function (button) { var args = { menu: $($(this).data("target-content")), icon: $(this).find(">.aux-burger"), isClosed: !0, animDuration: 600, type: $(this).data("target-panel"), anim: null, }; if (!$(this).data("init")) switch ( ($(this).data("init", !0), (args.scrollToLinks = args.menu.find( '.aux-menu-item > a[href^="#"]' )), (args.targetWrapper = $(args.menu.data("switch-parent"))), (args.activeWidth = args.menu.data("switch-width")), (args.toggleExpnadableMenu = function () { args.icon.toggleClass("aux-close"), args.anim && args.anim.stop(!0), args.isClosed ? (args.anim = CTween.animate( args.targetWrapper, args.animDuration, { height: args.menu.outerHeight() + "px" }, { ease: "easeInOutQuart", complete: function () { args.targetWrapper.css("height", "auto"); }, } )) : (args.targetWrapper.css( "height", args.menu.outerHeight() + "px" ), (args.anim = CTween.animate( args.targetWrapper, args.animDuration, { height: 0 }, { ease: "easeInOutQuart" } ))), (args.isClosed = !args.isClosed); }), (args.toggleOffcanvasMenu = function () { args.icon.toggleClass("aux-close"), args.targetWrapper.toggleClass("aux-open"), (args.isClosed = !args.isClosed); }), (args.toggleOverlayMenu = function () { args.icon.toggleClass("aux-close"), args.isClosed && args.targetWrapper.show(), auxinToggleOverlayContainer( args.targetWrapper, args.isClosed ), (args.isClosed = !args.isClosed); }), (args.closeOnEsc = function (toggleFunction) { $(document).on("keydown", function (e) { 27 != e.keyCode || args.isClosed || toggleFunction(); }); }), args.type) ) { case "toggle-bar": $(this).on("click", args.toggleExpnadableMenu); break; case "offcanvas": (args.targetWrapper = args.targetWrapper.closest( ".aux-offcanvas-menu " )), $(this).on("click", args.toggleOffcanvasMenu), args.targetWrapper .find(".aux-close") .on("click", args.toggleOffcanvasMenu), (args.dir = args.targetWrapper.hasClass("aux-pin-right") ? "right" : "left"), void 0 !== args.activeWidth && $window.on("resize", function () { window.innerWidth > args.activeWidth ? args.targetWrapper.hide() : (args.isClosed, args.targetWrapper.show()); }), args.closeOnEsc(args.toggleOffcanvasMenu); break; case "overlay": var oldSkinClassName, isBurger = !!args.menu; (args.targetWrapper = args.targetWrapper.closest(".aux-fs-popup")), isBurger || (oldSkinClassName = args.menu .attr("class") .match(/aux-skin-\w+/)[0]), $(this).on("click", args.toggleOverlayMenu), args.targetWrapper .find(".aux-panel-close") .on("click", args.toggleOverlayMenu); function checkForHide() { window.innerWidth > args.activeWidth ? (args.targetWrapper.hide(), isBurger || args.menu.addClass(oldSkinClassName)) : (args.isClosed || args.targetWrapper.show(), isBurger || args.menu.removeClass(oldSkinClassName)); } void 0 !== args.activeWidth && (checkForHide(), $window.on("resize", checkForHide)), args.closeOnEsc(args.toggleOverlayMenu); } }); }), ($.fn.AuxinOverlaySearchInit = function ($scope) { $scope = $scope || $(this); var overlaySearchIsClosed = !0, overlaySearchContainer = $scope.find("#fs-search"), searchField = overlaySearchContainer.find('input[type="text"]'); function toggleOverlaySearch() { auxinToggleOverlayContainer( overlaySearchContainer, overlaySearchIsClosed ), (overlaySearchIsClosed = !overlaySearchIsClosed) || searchField.focus(); } $scope.find(".aux-overlay-search").on("click", toggleOverlaySearch), overlaySearchContainer .find(".aux-panel-close") .on("click", toggleOverlaySearch), $(document).on("keydown", function (e) { 27 != e.keyCode || overlaySearchIsClosed || toggleOverlaySearch(); }); }), ($.fn.AuxinOverlayModernSearchInit = function ($scope) { ($scope = $scope || $(this)) .find(".aux-search-fullscreen") .each(function () { var $this = $(this), target = $this.data("target"); if (target) { var $target = $scope.find(target); if (target) { var $closeBtn = $target.find(".aux-panel-close"), $searchField = $target.find(".aux-search-field"), overlayIsClosed = !0; document.getElementById("wpadminbar") && $target.css({ top: "32px" }), $this.on("click", function () { auxinToggleOverlayContainer($target, overlayIsClosed), (overlayIsClosed = !overlayIsClosed) || $searchField.focus(); }), $closeBtn.on("click", function () { auxinToggleOverlayContainer($target, overlayIsClosed), (overlayIsClosed = !overlayIsClosed); }), $(document).on("keydown", function (e) { 27 != e.keyCode || overlayIsClosed || (auxinToggleOverlayContainer($target, overlayIsClosed), (overlayIsClosed = !overlayIsClosed)); }); } } }); }), ($.fn.AuxinMenuAutoSwitchInit = function ($scope) { ($scope = $scope || $(this)), !$("body").hasClass("aux-resp") && $scope.find(".aux-master-menu").data("switch-width") < 7e3 && $scope.find(".aux-master-menu").data("switch-width", 0), $scope.find(".aux-fs-popup").hasClass("aux-no-indicator") ? $scope .find(".aux-master-menu") .mastermenu({ useSubIndicator: !1, addSubIndicator: !1 }) : $("body").hasClass("aux-vertical-menu") ? $scope .find(".aux-master-menu") .mastermenu({ keepSubmenuInView: !1 }) : $scope.find(".aux-master-menu").mastermenu(); }), ($.fn.AuxinCurrentAnchorDetect = function ($scope) { $scope = $scope || $(this); var $anchors = $('a[href*="#"]'); $anchors.each(function (index, element) { if (!element.hash.match(/[^A-Za-z0-9-#]/g)) { var $target = $(element.hash); $target.length && (toggleClass(), $(window).on("scroll", toggleClass)); } function toggleClass() { var boundaries = $target[0].getBoundingClientRect(); (delta = Math.floor( Math.min( Math.max( (boundaries.y + boundaries.height) / window.innerHeight, -1 ), 1 ) )), (currentTarget = element.closest(".aux-menu-item")), currentTarget && (0 === delta ? currentTarget.classList.contains("current-menu-item") || currentTarget.classList.add("current-menu-item") : currentTarget.classList.contains("current-menu-item") && currentTarget.classList.remove("current-menu-item")); } }); }); })(jQuery, window, document), (function ($) { var $_window = $(window), $body = $("body"), screenWidth = $_window.width(), $main_content = $("#main"), original_page_layout = "", layout_class_names = { "right-left-sidebar": "right-sidebar", "left-right-sidebar": "left-sidebar", "left2-sidebar": "left-sidebar", "right2-sidebar": "right-sidebar", }; function updateSidebarsHeight() { screenWidth = window.innerWidth; var $content = $(".aux-primary"), $sidebars = $(".aux-sidebar"), max_height = $(".aux-sidebar .sidebar-inner") .map(function () { return $(this).outerHeight(); }) .get(); if ( ((max_height = Math.max.apply(null, max_height)), (max_height = Math.max($content.outerHeight(), max_height)), $sidebars.height(768 <= screenWidth ? max_height : "auto"), screenWidth <= 1140) ) { for (original in layout_class_names) if ($main_content.hasClass(original)) return ( (original_page_layout = original), void $main_content .removeClass(original) .addClass(layout_class_names[original]) ); } else "" !== original_page_layout && ($main_content .removeClass("left-sidebar") .removeClass("right-sidebar") .addClass(original_page_layout), (original_page_layout = "")); } if (window.instagramfeed) { var _run = instagramfeed.prototype.run; instagramfeed.prototype.run = function () { var $target = $(this.options.target); if (0 < $target.parents(".aux-sidebar").length) { var _after = this.options.after; this.options.after = function () { _after.apply(this, arguments), $target.find("img").one("load", updateSidebarsHeight); }; } _run.apply(this, arguments); }; } $body.data("framed") && $_window.on("debouncedresize", function () { $body.toggleClass("aux-framed", 700 < $_window.width()); }), $body.hasClass("aux-sticky-footer") && $_window.on("debouncedresize", function () { var marginFrameThickness = $body.hasClass("aux-framed") ? $(".aux-side-frames").data("thickness") : 0, $footer = $(".aux-site-footer, .aux-elementor-footer"), $subfooter = $(".aux-subfooter"), $subfooterBar = $(".aux-subfooter-bar"), footerHeight = $footer.is(":visible") ? $footer.outerHeight() : 0; (subfooterHeight = $subfooter.is(":visible") ? $subfooter.outerHeight() : 0), (subfooterBarHeight = $subfooterBar.is(":visible") ? $subfooterBar.outerHeight() : 0), screenWidth <= 768 ? ($("body").removeClass("aux-sticky-footer"), $("#main").css("margin-bottom", ""), $footer.css("bottom"), $subfooter.css("bottom", ""), $subfooterBar.css("bottom", "")) : ($body.hasClass("aux-sticky-footer") || $("body").addClass("aux-sticky-footer"), $("#main").css( "margin-bottom", footerHeight + subfooterHeight + subfooterBarHeight ), $footer.css("bottom", marginFrameThickness), $subfooter.css("bottom", footerHeight + marginFrameThickness), $subfooterBar.css( "bottom", footerHeight + subfooterHeight + marginFrameThickness )); }), $_window .on("debouncedresize", updateSidebarsHeight) .trigger("debouncedresize"), $(document).on("lazyloaded", function () { $_window.trigger("resize"); }); })(jQuery), (function ($, window) { "use strict"; $.fn.AuxinJsSocialsInit = function ($scope) { var $shareButtons = ($scope = $scope || $(this)).find( ".aux-tooltip-socials" ), mainWrapperClass = "aux-tooltip-socials-container"; if ($shareButtons.length) { for (var i = 0, l = $shareButtons.length; i < l; i++) $shareButtons.eq(i).on("click", function (e) { var $this = $(this); if ( (e.preventDefault(), e.stopPropagation(), !$this.parent("." + mainWrapperClass).length) ) { $this.wrap("
              "); var $container = $this.parent("." + mainWrapperClass); $container.append( "
              " ), $container.children(".aux-tooltip-socials-wrapper").jsSocials({ shares: [ { share: "facebook", label: "Facebook", logo: "auxicon-facebook", }, { share: "twitter", label: "Tweet", logo: "auxicon-twitter", }, { share: "googleplus", label: "Google Plus", logo: "auxicon-googleplus", }, { share: "pinterest", label: "Pinterest", logo: "auxicon-pinterest", }, { share: "linkedin", label: "LinkedIn", logo: "auxicon-linkedin", }, { share: "stumbleupon", label: "Stumbleupon", logo: "auxicon-stumbleupon", }, { share: "whatsapp", label: "WhatsApp", logo: "auxicon-whatsapp", }, { share: "pocket", label: "Pocket", logo: "auxicon-pocket", }, { share: "email", label: "Email", logo: "auxicon-email" }, { share: "telegram", label: "Telegram", logo: "auxicon-paperplane", }, ], shareIn: "blank", showLabel: !1, }); } $this .parent("." + mainWrapperClass) .addClass("aux-tip-open") .removeClass("aux-tip-close"); }); $(window).on("click", function () { $scope .find("." + mainWrapperClass) .removeClass("aux-tip-open") .addClass("aux-tip-close"); }); } }; })(jQuery, window, document), (function ($, window, document) { (window.AuxinInitPageModules = function ($scope) { ($scope = $scope || $(document)), $.fn.AuxinSetOnApearInit($scope), $.fn.AuxinJsSocialsInit($scope), $.fn.AuxinPageHeaderLayoutInit($scope), $.fn.AuxinPagePreloadAnimationInit($scope), $.fn.AuxinPageCoverAnimationInit($scope), $.fn.AuxinDropdownEffectInit($scope), $.fn.AuxinCartCanvasInit($scope), $.fn.AuxinDropDownSelectInit($scope), $.fn.AuxinFeaturedColor($scope), $.fn.AuxinScrollScaleInit($scope), $.fn.AuxinMatchHeightInit($scope), $.fn.AuxinPageLayoutInit($scope), $.fn.AuxinMobileMenuInit($scope), $.fn.AuxinMenuAutoSwitchInit($scope), $.fn.AuxinOverlaySearchInit($scope), $.fn.AuxinOverlayModernSearchInit($scope), $.fn.AuxinCurrentAnchorDetect($scope), $.fn.AuxinAppearAnimationsInit($scope); }), (window.AuxinInitElements = function ($scope) { ($scope = $scope || $(document)), $.fn.AuxinTiltElementInit($scope), $.fn.AuxinFitVideosInit($scope), $.fn.AuxinImageBoxInit($scope), $.fn.AuxinBeforeAfterInit($scope), $.fn.AuxinCarouselInit($scope), $.fn.AuxinModernFormInit($scope), $.fn.AuxinOtherElementsInit($scope), $.fn.AuxinAppearTransitionsInit($scope), $.fn.AuxinDynamicDropshadowInit($scope), $.fn.AuxinScrollBlurImageInit($scope); }), (window.AuxinInitElementsOnReady = function ($scope) { ($scope = $scope || $(document)), $.fn.AuxinIsotopeInit($scope), $.fn.AuxinLiveTabsInit($scope), $.fn.AuxinAccordionInit($scope), $.fn.AuxinTimelineInit($scope), $.fn.AuxinCodeHighlightInit($scope), $.fn.AuxinLoadMoreInit($scope), $.fn.AuxinVideoBoxInit($scope), $.fn.AuxinImageInteractionInit($scope), $.fn.AuxinMasonryAnimateInit($scope), $.fn.AuxinMediaElementInit($scope), $.fn.AuxinParallaxBoxInit($scope), $.fn.AuxinParallaxSectionInit($scope), $.fn.AuxinSelect2Init($scope), $.fn.AuxinScrollableAnimsInit($scope), $.fn.AuxinAjaxSearch($scope), $.fn.AuxinModernSearchAjax($scope), $.fn.AuxinCarouselNavigation($scope); }), (window.AuxinInitAllModules = function ($scope) { ($scope = $scope || $(document)), AuxinInitPageModules($scope), AuxinInitElements($scope), AuxinInitElementsOnReady($scope); }), AuxinInitPageModules(), AuxinInitElements(), $(function () { AuxinInitElementsOnReady(); }); })(jQuery, window, document), (function ($, window) { var $vcWindow, $__window = $(window); "undefined" != typeof wp && void 0 !== wp.customize && void 0 !== wp.customize.selectiveRefresh && wp.customize.selectiveRefresh.bind( "partial-content-rendered", function () { AuxinInitAllModules($("body")); } ), $__window.on("vc_reload", function () { if ( (($vcWindow = $("#vc_inline-frame", window.parent.document) .contents() .find(".vc_element")), AuxinInitAllModules($vcWindow), "undefined" != typeof MediaElement && $vcWindow.find("video,audio").mediaelementplayer(), "undefined" != typeof sbi_js_exists && sbi_init(), "undefined" != typeof fjgwpp_galleriesInit_functions) ) for (var i in fjgwpp_galleriesInit_functions) fjgwpp_galleriesInit_functions[i](); $__window.trigger("resize"); }); })(jQuery, window, document); !(function (t) { "use strict"; if ("function" == typeof define && define.amd) define(["jquery"], t); else if ("object" == typeof exports) t(require("jquery")); else { if ("undefined" == typeof jQuery) throw "jquery-numerator requires jQuery to be loaded first"; t(jQuery); } })(function (t) { function e(e, s) { (this.element = e), (this.settings = t.extend({}, i, s)), (this._defaults = i), (this._name = n), this.init(); } var n = "numerator", i = { easing: "swing", duration: 500, delimiter: void 0, rounding: 0, toValue: void 0, fromValue: void 0, queue: !1, onStart: function () {}, onStep: function () {}, onProgress: function () {}, onComplete: function () {}, }; (e.prototype = { init: function () { this.parseElement(), this.setValue(); }, parseElement: function () { var e = t.trim(t(this.element).text()); this.settings.fromValue = this.settings.fromValue || this.format(e); }, setValue: function () { var e = this; t({ value: e.settings.fromValue }).animate( { value: e.settings.toValue }, { duration: parseInt(e.settings.duration, 10), easing: e.settings.easing, start: e.settings.onStart, step: function (n, i) { t(e.element).text(e.format(n)), e.settings.onStep(n, i); }, progress: e.settings.onProgress, complete: e.settings.onComplete, } ); }, format: function (t) { var e = this; return ( (t = parseInt(this.settings.rounding) < 1 ? parseInt(t, 10) : parseFloat(t).toFixed(parseInt(this.settings.rounding))), e.settings.delimiter ? this.delimit(t) : t ); }, delimit: function (t) { var e = this; if ( ((t = t.toString()), e.settings.rounding && parseInt(e.settings.rounding, 10) > 0) ) { var n = t.substring(t.length - (e.settings.rounding + 1), t.length), i = t.substring(0, t.length - (e.settings.rounding + 1)); return e.addDelimiter(i) + n; } return e.addDelimiter(t); }, addDelimiter: function (t) { return t .toString() .replace(/\B(?=(\d{3})+(?!\d))/g, this.settings.delimiter); }, }), (t.fn[n] = function (i) { return this.each(function () { t.data(this, "plugin_" + n) && t.data(this, "plugin_" + n, null), t.data(this, "plugin_" + n, new e(this, i)); }); }); }); /*! Auxin Pro Tools - v1.7.5 (2022-04) * All required plugins * https://phlox.pro */ /*! * * ================== public/assets/js/src/module.protools.js =================== **/ (function ($) { $(function () { $.fn.AuxinCountDown = function () { var $wrapper = $(this).find(".aux-countdown-wrapper "), data = { year: $wrapper.data("countdown-year"), month: $wrapper.data("countdown-month"), day: $wrapper.data("countdown-day"), hour: $wrapper.data("countdown-hour"), min: $wrapper.data("countdown-min"), sec: $wrapper.data("countdown-sec"), }, targetDate = new Date( data.year, data.month, data.day, data.hour, data.min, data.sec ); ($year = $wrapper.find(".aux-countdown-year")), ($month = $wrapper.find(".aux-countdown-month")), ($day = $wrapper.find(".aux-countdown-day")), ($hour = $wrapper.find(".aux-countdown-hour")), ($min = $wrapper.find(".aux-countdown-min")), ($sec = $wrapper.find(".aux-countdown-sec")); setInterval(function () { var diffTime = (Date.parse(targetDate) - Date.parse(new Date())) / 1000; if (diffTime < 0) return; $year.text(Math.floor(diffTime / 31536000)); $month.text(Math.floor((diffTime / 2592000) % 12)); $day.text(Math.floor((diffTime / 86400) % 365)); $hour.text(Math.floor((diffTime / 3600) % 24)); $min.text(Math.floor((diffTime / 60) % 60)); $sec.text(Math.floor(diffTime % 60)); }, 1000); }; $(".aux-widget-countdown").each(function () { $(this).AuxinCountDown(); }); $.fn.AuxinCounter = function ($scope) { $scope = $scope || $(this); $scope.find(".aux-counter-number").each(function () { var $this = $(this), hasAnimation = $("body").hasClass("aux-page-animation"); var data = { delay: $this.data("delay"), easing: $this.data("easing"), duration: $this.data("duration"), toValue: $this.data("to-value"), delimiter: $this.data("delimiter"), }; var decimalDigits = data.toValue.toString().match(/\.(.*)/); if (decimalDigits) { data.rounding = decimalDigits[1].length; } var run_counter = function ($this, data) { if ($.fn.appearl) { $this.appearl().one("appear", function () { if (data.delay) { setTimeout(function () { $this.numerator(data); }, data.delay); } else { $this.numerator(data); } }); } else { if (data.delay) { setTimeout(function () { $this.numerator(data); }, data.delay); } else { $this.numerator(data); } } }; if (hasAnimation) { document.body.addEventListener( "AuxPageAnimationDone", function (event) { run_counter($this, data); } ); } else { run_counter($this, data); } }); }; $.fn.AuxinCounter($("body")); }); })(jQuery); !(function () { "use strict"; const e = (e) => Math.abs(parseInt(e, 10)), t = (e, t) => { const r = new Map([ ["init", "init"], ["validation_failed", "invalid"], ["acceptance_missing", "unaccepted"], ["spam", "spam"], ["aborted", "aborted"], ["mail_sent", "sent"], ["mail_failed", "failed"], ["submitting", "submitting"], ["resetting", "resetting"], ["payment_required", "payment-required"], ]); r.has(t) && (t = r.get(t)), Array.from(r.values()).includes(t) || (t = `custom-${(t = (t = t .replace(/[^0-9a-z]+/i, " ") .trim()).replace(/\s+/, "-"))}`); const n = e.getAttribute("data-status"); return ( (e.wpcf7.status = t), e.setAttribute("data-status", t), e.classList.add(t), n && n !== t && e.classList.remove(n), t ); }, r = (e, t, r) => { const n = new CustomEvent(`wpcf7${t}`, { bubbles: !0, detail: r }); "string" == typeof e && (e = document.querySelector(e)), e.dispatchEvent(n); }, n = (e) => { const { root: t, namespace: r = "contact-form-7/v1" } = wpcf7.api; return a.reduceRight( (e, t) => (r) => t(r, e), (e) => { let n, a, { url: c, path: s, endpoint: o, headers: i, body: l, data: p, ...d } = e; "string" == typeof o && ((n = r.replace(/^\/|\/$/g, "")), (a = o.replace(/^\//, "")), (s = a ? n + "/" + a : n)), "string" == typeof s && (-1 !== t.indexOf("?") && (s = s.replace("?", "&")), (s = s.replace(/^\//, "")), (c = t + s)), (i = { Accept: "application/json, */*;q=0.1", ...i }), delete i["X-WP-Nonce"], p && ((l = JSON.stringify(p)), (i["Content-Type"] = "application/json")); const u = { code: "fetch_error", message: "You are probably offline.", }, f = { code: "invalid_json", message: "The response is not a valid JSON response.", }; return window .fetch(c || s || window.location.href, { ...d, headers: i, body: l, }) .then( (e) => Promise.resolve(e) .then((e) => { if (e.status >= 200 && e.status < 300) return e; throw e; }) .then((e) => { if (204 === e.status) return null; if (e && e.json) return e.json().catch(() => { throw f; }); throw f; }), () => { throw u; } ); } )(e); }, a = []; function c(e) { let a = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; if (wpcf7.blocked) return s(e), void t(e, "submitting"); const c = new FormData(e); a.submitter && a.submitter.name && c.append(a.submitter.name, a.submitter.value); const o = { contactFormId: e.wpcf7.id, pluginVersion: e.wpcf7.pluginVersion, contactFormLocale: e.wpcf7.locale, unitTag: e.wpcf7.unitTag, containerPostId: e.wpcf7.containerPost, status: e.wpcf7.status, inputs: Array.from(c, (e) => { const t = e[0], r = e[1]; return !t.match(/^_/) && { name: t, value: r }; }).filter((e) => !1 !== e), formData: c, }, i = (t) => { const r = document.createElement("li"); r.setAttribute("id", t.error_id), t.idref ? r.insertAdjacentHTML( "beforeend", `${t.message}` ) : r.insertAdjacentText("beforeend", t.message), e.wpcf7.parent .querySelector(".screen-reader-response ul") .appendChild(r); }, l = (t) => { const r = e.querySelector(t.into), n = r.querySelector(".wpcf7-form-control"); n.classList.add("wpcf7-not-valid"), n.setAttribute("aria-describedby", t.error_id); const a = document.createElement("span"); a.setAttribute("class", "wpcf7-not-valid-tip"), a.setAttribute("aria-hidden", "true"), a.insertAdjacentText("beforeend", t.message), r.appendChild(a), r.querySelectorAll("[aria-invalid]").forEach((e) => { e.setAttribute("aria-invalid", "true"); }), n.closest(".use-floating-validation-tip") && (n.addEventListener("focus", (e) => { a.setAttribute("style", "display: none"); }), a.addEventListener("mouseover", (e) => { a.setAttribute("style", "display: none"); })); }; n({ endpoint: `contact-forms/${e.wpcf7.id}/feedback`, method: "POST", body: c, wpcf7: { endpoint: "feedback", form: e, detail: o }, }) .then((n) => { const a = t(e, n.status); return ( (o.status = n.status), (o.apiResponse = n), ["invalid", "unaccepted", "spam", "aborted"].includes(a) ? r(e, a, o) : ["sent", "failed"].includes(a) && r(e, `mail${a}`, o), r(e, "submit", o), n ); }) .then((t) => { t.posted_data_hash && (e.querySelector('input[name="_wpcf7_posted_data_hash"]').value = t.posted_data_hash), "mail_sent" === t.status && (e.reset(), (e.wpcf7.resetOnMailSent = !0)), t.invalid_fields && (t.invalid_fields.forEach(i), t.invalid_fields.forEach(l)), e.wpcf7.parent .querySelector('.screen-reader-response [role="status"]') .insertAdjacentText("beforeend", t.message), e.querySelectorAll(".wpcf7-response-output").forEach((e) => { e.innerText = t.message; }); }) .catch((e) => console.error(e)); } (n.use = (e) => { a.unshift(e); }), n.use((e, n) => { if (e.wpcf7 && "feedback" === e.wpcf7.endpoint) { const { form: n, detail: a } = e.wpcf7; s(n), r(n, "beforesubmit", a), t(n, "submitting"); } return n(e); }); const s = (e) => { (e.wpcf7.parent.querySelector( '.screen-reader-response [role="status"]' ).innerText = ""), (e.wpcf7.parent.querySelector(".screen-reader-response ul").innerText = ""), e.querySelectorAll(".wpcf7-not-valid-tip").forEach((e) => { e.remove(); }), e.querySelectorAll("[aria-invalid]").forEach((e) => { e.setAttribute("aria-invalid", "false"); }), e.querySelectorAll(".wpcf7-form-control").forEach((e) => { e.removeAttribute("aria-describedby"), e.classList.remove("wpcf7-not-valid"); }), e.querySelectorAll(".wpcf7-response-output").forEach((e) => { e.innerText = ""; }); }; function o(e) { const a = new FormData(e), c = { contactFormId: e.wpcf7.id, pluginVersion: e.wpcf7.pluginVersion, contactFormLocale: e.wpcf7.locale, unitTag: e.wpcf7.unitTag, containerPostId: e.wpcf7.containerPost, status: e.wpcf7.status, inputs: Array.from(a, (e) => { const t = e[0], r = e[1]; return !t.match(/^_/) && { name: t, value: r }; }).filter((e) => !1 !== e), formData: a, }; n({ endpoint: `contact-forms/${e.wpcf7.id}/refill`, method: "GET", wpcf7: { endpoint: "refill", form: e, detail: c }, }) .then((n) => { e.wpcf7.resetOnMailSent ? (delete e.wpcf7.resetOnMailSent, t(e, "mail_sent")) : t(e, "init"), (c.apiResponse = n), r(e, "reset", c); }) .catch((e) => console.error(e)); } n.use((e, r) => { if (e.wpcf7 && "refill" === e.wpcf7.endpoint) { const { form: r, detail: n } = e.wpcf7; s(r), t(r, "resetting"); } return r(e); }); const i = (e, t) => { for (const r in t) { const n = t[r]; e.querySelectorAll(`input[name="${r}"]`).forEach((e) => { e.value = ""; }), e.querySelectorAll(`img.wpcf7-captcha-${r}`).forEach((e) => { e.setAttribute("src", n); }); const a = /([0-9]+)\.(png|gif|jpeg)$/.exec(n); a && e .querySelectorAll(`input[name="_wpcf7_captcha_challenge_${r}"]`) .forEach((e) => { e.value = a[1]; }); } }, l = (e, t) => { for (const r in t) { const n = t[r][0], a = t[r][1]; e.querySelectorAll(`.wpcf7-form-control-wrap.${r}`).forEach((e) => { (e.querySelector(`input[name="${r}"]`).value = ""), (e.querySelector(".wpcf7-quiz-label").textContent = n), (e.querySelector(`input[name="_wpcf7_quiz_answer_${r}"]`).value = a); }); } }; function p(t) { const r = new FormData(t); (t.wpcf7 = { id: e(r.get("_wpcf7")), status: t.getAttribute("data-status"), pluginVersion: r.get("_wpcf7_version"), locale: r.get("_wpcf7_locale"), unitTag: r.get("_wpcf7_unit_tag"), containerPost: e(r.get("_wpcf7_container_post")), parent: t.closest(".wpcf7"), }), t.querySelectorAll(".has-spinner").forEach((e) => { e.insertAdjacentHTML("afterend", ''); }), ((e) => { e.querySelectorAll(".wpcf7-exclusive-checkbox").forEach((t) => { t.addEventListener("change", (t) => { const r = t.target.getAttribute("name"); e.querySelectorAll(`input[type="checkbox"][name="${r}"]`).forEach( (e) => { e !== t.target && (e.checked = !1); } ); }); }); })(t), ((e) => { e.querySelectorAll(".has-free-text").forEach((t) => { const r = t.querySelector("input.wpcf7-free-text"), n = t.querySelector('input[type="checkbox"], input[type="radio"]'); (r.disabled = !n.checked), e.addEventListener("change", (e) => { (r.disabled = !n.checked), e.target === n && n.checked && r.focus(); }); }); })(t), ((e) => { e.querySelectorAll(".wpcf7-validates-as-url").forEach((e) => { e.addEventListener("change", (t) => { let r = e.value.trim(); r && !r.match(/^[a-z][a-z0-9.+-]*:/i) && -1 !== r.indexOf(".") && ((r = r.replace(/^\/+/, "")), (r = "http://" + r)), (e.value = r); }); }); })(t), ((e) => { if ( !e.querySelector(".wpcf7-acceptance") || e.classList.contains("wpcf7-acceptance-as-validation") ) return; const t = () => { let t = !0; e.querySelectorAll(".wpcf7-acceptance").forEach((e) => { if (!t || e.classList.contains("optional")) return; const r = e.querySelector('input[type="checkbox"]'); ((e.classList.contains("invert") && r.checked) || (!e.classList.contains("invert") && !r.checked)) && (t = !1); }), e.querySelectorAll(".wpcf7-submit").forEach((e) => { e.disabled = !t; }); }; t(), e.addEventListener("change", (e) => { t(); }), e.addEventListener("wpcf7reset", (e) => { t(); }); })(t), ((t) => { const r = (t, r) => { const n = e(t.getAttribute("data-starting-value")), a = e(t.getAttribute("data-maximum-value")), c = e(t.getAttribute("data-minimum-value")), s = t.classList.contains("down") ? n - r.value.length : r.value.length; t.setAttribute("data-current-value", s), (t.innerText = s), a && a < r.value.length ? t.classList.add("too-long") : t.classList.remove("too-long"), c && r.value.length < c ? t.classList.add("too-short") : t.classList.remove("too-short"); }, n = (e) => { (e = { init: !1, ...e }), t.querySelectorAll(".wpcf7-character-count").forEach((n) => { const a = n.getAttribute("data-target-name"), c = t.querySelector(`[name="${a}"]`); c && ((c.value = c.defaultValue), r(n, c), e.init && c.addEventListener("keyup", (e) => { r(n, c); })); }); }; n({ init: !0 }), t.addEventListener("wpcf7reset", (e) => { n(); }); })(t), window.addEventListener("load", (e) => { wpcf7.cached && t.reset(); }), t.addEventListener("reset", (e) => { wpcf7.reset(t); }), t.addEventListener("submit", (e) => { const r = e.submitter; wpcf7.submit(t, { submitter: r }), e.preventDefault(); }), t.addEventListener("wpcf7submit", (e) => { e.detail.apiResponse.captcha && i(t, e.detail.apiResponse.captcha), e.detail.apiResponse.quiz && l(t, e.detail.apiResponse.quiz); }), t.addEventListener("wpcf7reset", (e) => { e.detail.apiResponse.captcha && i(t, e.detail.apiResponse.captcha), e.detail.apiResponse.quiz && l(t, e.detail.apiResponse.quiz); }); } document.addEventListener("DOMContentLoaded", (e) => { var t; if ("undefined" == typeof wpcf7) return void console.error("wpcf7 is not defined."); if (void 0 === wpcf7.api) return void console.error("wpcf7.api is not defined."); if ("function" != typeof window.fetch) return void console.error("Your browser doesn't support window.fetch()."); if ("function" != typeof window.FormData) return void console.error( "Your browser doesn't support window.FormData()." ); const r = document.querySelectorAll(".wpcf7 > form"); "function" == typeof r.forEach ? ((wpcf7 = { init: p, submit: c, reset: o, ...(null !== (t = wpcf7) && void 0 !== t ? t : {}), }), r.forEach((e) => wpcf7.init(e))) : console.error("Your browser doesn't support NodeList.forEach()."); }); })(); class AuxinDemoToolsModal { constructor(element, options) { this.options = Object.assign( { modalWrapper: ".aux-demo-tools-modal", modalContent: ".aux-modal-content", closeButton: ".aux-modal-close", activeClass: "is-active", removeContentOnClose: false, content: null, }, options ); this.element = element; this.modal = document.querySelector(this.options.modalWrapper); this.content = this.modal.querySelector(this.options.modalContent); this.closeButton = this.content.querySelector(this.options.closeButton); this.isOpen = false; this.isContentAdded = false; this.init(); } init() { this.registerEvents(); } registerEvents() { this.element.addEventListener( "click", function (event) { event.preventDefault(); event.stopPropagation(); this.showModal(); }.bind(this) ); document.addEventListener( "keydown", function (event) { if (event.key === "Escape") { this.closeModal(); } }.bind(this) ); document.addEventListener( "mousedown", function (event) { if (this.content.contains(event.target)) { return; } this.closeModal(); }.bind(this) ); this.closeButton.addEventListener( "click", function (event) { event.preventDefault(); this.closeModal(); }.bind(this) ); if (this.options.removeContentOnClose) { this.modal.addEventListener( "transitionend", function (event) { if (event.propertyName !== "opacity") { return; } if (event.target.classList.contains(this.options.activeClass)) { return; } this.removeContent(); }.bind(this) ); } } showModal() { if (this.isOpen) { return; } if (!this.isContentAdded) { this.addContent(); } this.modal.classList.add(this.options.activeClass); this.isOpen = true; } closeModal() { if (!this.isOpen) { return; } this.modal.classList.remove(this.options.activeClass); this.isOpen = false; } addContent() { this.content.appendChild(this.options.content); this.isContentAdded = true; } removeContent() { this.content.removeChild(this.options.content); this.isContentAdded = false; } } (function ($) { if (window.Beacon !== undefined) { Beacon("on", "open", function () { document.querySelector("body").classList.add("beacon-is-open"); }); Beacon("on", "close", function () { document.querySelector("body").classList.remove("beacon-is-open"); }); } })(jQuery); (function ($) { $.fn.AuxinExportSectionModalInit = function () { var $handler = $(".aux-export-help-button"); if (!$handler.length) { return; } var siteSlug = document .querySelector("body") .getAttribute("data-site-slug"), pageSlug = document.querySelector("body").getAttribute("data-page-slug"); function createExportHandler(section, order) { var exportID = section.getAttribute("data-export-id"); var wrapper = document.createElement("div"); wrapper.classList.add("export-button"); var type = ""; if ($(section).parents("header").length) { type = "§ionType=header"; } else if ($(section).parents("footer").length) { type = "§ionType=footer"; } var link = document.createElement("a"); link.href = "https://demo.phlox.pro/wp-json/demos/v3/elementor/section/?type=attachment&export-id=" + exportID + type; link.target = "_blank"; link.innerHTML = "Export Section"; wrapper.appendChild(link); section.appendChild(wrapper); section.classList.add("aux-show-export-button"); link.addEventListener("click", function (event) { ga( "send", "event", "export-section", "download", siteSlug + "-" + pageSlug + "-" + order ); ga( "author_analytics.send", "event", "export-section", "download", siteSlug + "-" + pageSlug + "-" + order ); }); } function removeExportHandler(section) { var exportButton = section.querySelector(".export-button"); section.removeChild(exportButton); section.classList.remove("aux-show-export-button"); } $.ajax({ type: "post", dataType: "json", url: auxDemoTools.ajax_url, data: { action: "auxin_export_modal_ajax_handler" }, success: function (response) { var template = document.createElement("div"); template.innerHTML = response.data.trim(); template = template.firstChild; var modal = new AuxinDemoToolsModal($handler[0], { content: template }); var cancelButton = template.querySelector(".aux-export-cancel-button"), checkBox = template.querySelector(".aux-export-checkbox input"), exportButton = template.querySelector(".aux-export-active-button"), activeExportButton = document.querySelector(".aux-export-button"), activeExportButtonText = activeExportButton.querySelector("span"), sections = document.querySelectorAll( ".elementor-section-wrap > section.elementor-element" ), isActive = false; checkBox.checked = localStorage.getItem("exportModal"); cancelButton.addEventListener("click", function (event) { event.preventDefault(); modal.closeModal(); }); checkBox.addEventListener("change", function (event) { localStorage.setItem("exportModal", event.target.checked); }); exportButton.addEventListener("click", function (event) { $(document).trigger("AuxExportIsActive"); modal.closeModal(); }); activeExportButton.addEventListener("click", function (event) { event.preventDefault(); if (isActive) { $(document).trigger("AuxExportIsDeactive"); } else { var displayModal = localStorage.getItem("exportModal"); if (!displayModal) { modal.showModal(); } else { $(document).trigger("AuxExportIsActive"); } } }); $(document).on("AuxExportIsActive", function () { if (isActive) { return; } activeExportButtonText.innerHTML = "Disable Export"; activeExportButton.classList.add("aux-enabled"); ga("send", "event", "export-section", "enable", siteSlug); ga( "author_analytics.send", "event", "export-section", "enable", siteSlug ); sections.forEach(function (section, index) { createExportHandler(section, ++index); }); isActive = true; }); $(document).on("AuxExportIsDeactive", function () { if (!isActive) { return; } activeExportButtonText.innerHTML = "Export Section"; activeExportButton.classList.remove("aux-enabled"); ga("send", "event", "export-section", "disable", siteSlug); ga( "author_analytics.send", "event", "export-section", "disable", siteSlug ); sections.forEach(function (section) { removeExportHandler(section); }); isActive = false; }); }, }); }; $(document).ready(function () { $.fn.AuxinExportSectionModalInit(); }); })(jQuery); /*! WP ULike - v4.6.1 * https://wpulike.com * TechnoWich 2022; */ !(function (t) { (t.fn.WordpressUlikeTooltip = function (e) { if (this.length > 1) return ( this.each(function () { t(this).WordpressUlikeTooltip(e); }), this ); if (void 0 === this || 1 !== this.length) return !1; const i = t(this); e = t.extend({}, t.WordpressUlikeTooltip.defaults, e, i.data()); let s = i.attr("title"); void 0 !== s && s.length && (e.title = s), (e.class += " ulf-" + e.theme + "-theme"), (e.class += " ulf-" + e.size), (e.trigger = e.trigger.toLowerCase().trim()); let o = { dom: this, dom_wrapped: i, position_debug: e.position_debug, trigger: e.trigger, id: e.id, title: e.title, content: e.title, child_class: e.child, theme: e.theme, class: e.class, position: e.position, close_on_outside_click: e.close_on_outside_click, singleton: e.singleton, dataAttr: "ulike-tooltip", createTooltipHTML: function () { return ``; }, destroy: function () { const e = o.dom_wrapped.data(o.dataAttr); null != e && (e.dom_wrapped.off("touchstart mouseenter", e.show), e.dom_wrapped.off("click", e.preventDefaultHandler), t(window).off("resize", e.onResize), e.isVisible() && e.hide(), e.dom_wrapped.data(e.dataAttr, null)); }, initialize: function () { return ( o.dom_wrapped.on("touchstart mouseenter", o.show), o.dom_wrapped.on("click", o.preventDefaultHandler), t.WordpressUlikeTooltip.body_click_initialized || (t(document).on("touchstart mousedown", o.onClickOutside), (t.WordpressUlikeTooltip.bodyClickInitialized = !0)), o.dom_wrapped.data(o.dataAttr, o), t(document).on( "WordpressUlikeLikersMarkupUpdated", function (t, e, i, s) { if ("popover" == i) if (s.length) o.show(); else { let t = e.data(o.dataAttr); null != t && t.destroy(); } } ), o.dom ); }, preventDefaultHandler: function (t) { return t.preventDefault(), !1; }, show: function (e) { if (o.isVisible()) return !1; o.singleton && o.hideAllVisible(); const i = t("body"); (void 0 === e || e) && "function" == typeof o.title && (o.content = o.title(o.dom_wrapped, o)), i.append(o.createTooltipHTML()), (o.tooltip = t(".ulf-tooltip:last")), o.positionTooltip(), t(window).on("resize", o.onResize); const s = "ulp-dom-" + o.id; o.tooltip.attr("id", s), o.dom.attr("aria-describedby", s), t.WordpressUlikeTooltip.visible.push(o), (void 0 === e || e) && o.dom.trigger("ulf-show", [o.tooltip, o.hide]), t("body").on("DOMSubtreeModified", o.positionTooltip); }, isVisible: function () { return t.inArray(o, t.WordpressUlikeTooltip.visible) > -1; }, hideAllVisible: function () { return ( t.each(t.WordpressUlikeTooltip.visible, function (t, e) { e.dom_wrapped.hasClass("ulf-focused") || e.hide(); }), this ); }, hide: function (e) { t("body").off("DOMSubtreeModified", o.positionTooltip), t(window).off("resize", o.onResize), o.dom.attr("aria-describedby", null), o.tooltip && o.tooltip.length && o.tooltip.remove(), (void 0 === e || e) && o.dom.trigger("ulf-hide"), "click" !== o.trigger && o.dom_wrapped.off("touchstart mousedown", o.hide); var i = t.inArray(o, t.WordpressUlikeTooltip.visible); return t.WordpressUlikeTooltip.visible.splice(i, 1), o.dom; }, onResize: function () { o.hide(!1), o.show(!1); }, onClickOutside: function (e) { const i = t(e.target); i.hasClass("ulf-tooltip") || i.parents(".ulf-tooltip:first").length || t.each(t.WordpressUlikeTooltip.visible, function (t, e) { void 0 !== e && e.close_on_outside_click && (i !== e.dom_wrapped || ("focus" !== e.trigger && "hoverfocus" !== e.trigger)) && e.hide(); }); }, positionTooltip: function () { o.positionDebug("-- Start positioning --"), (o.dom_wrapped.length && o.dom_wrapped.is(":visible")) || (o.positionDebug("Elem no longer exists. Removing tooltip"), o.hide(!0)); let t = o.tooltip.find(".ulf-arrow"), [e, i, s, n, l, a] = o.calculateSafePosition(o.position); return ( void 0 === l && "auto" !== o.position && (o.positionDebug("Couldn't fit preferred position"), ([e, i, s, n, l, a] = o.calculateSafePosition("auto"))), void 0 === l ? (o.positionDebug("Doesn't appear to fit. Displaying centered"), o.tooltip .addClass("ulf-centered") .css({ top: "50%", left: "50%", "margin-left": -s / 2, "margin-top": -n / 2, }), t && t.length && t.remove(), void o.positionDebug("-- Done positioning --")) : (o.positionDebug({ "Setting Position": { Left: l, Top: a } }), o.tooltip.css("left", l), o.tooltip.css("top", a), i < 60 && (o.positionDebug( "Element is less than " + i + "px. Setting arrow to hug the side tighter" ), (e += " ulf-arrow-super-hug")), t.addClass("ulf-arrow-" + e), o.positionDebug("-- Done positioning --"), o) ); }, calculateSafePosition: function (t) { let e, i, s, n = o.tooltip.find(".ulf-arrow"), l = o.dom_wrapped.offset(), a = o.dom_wrapped.outerHeight(), r = o.dom_wrapped.outerWidth(), d = o.tooltip.outerWidth(), p = o.tooltip.outerHeight(), u = document.querySelector("body").offsetWidth, h = document.querySelector("body").offsetHeight, g = n.is(":visible") ? n.outerHeight() : 0, c = n.is(":visible") ? n.outerWidth() : 0, m = {}; if ( ((m.below = h - (p + a + l.top) > 5), (m.above = l.top - p > 5), (m.vertical_half = l.top + r / 2 - p / 2 > 5), (m.right = u - (d + r + l.left) > 5), (m.right_half = u - l.left - r / 2 - d / 2 > 5), (m.right_full = u - l.left - d > 5), (m.left = l.left - d > 5), (m.left_half = l.left + r / 2 - d / 2 > 5), (m.left_full = l.left - d > 5), o.positionDebug({ "Clicked Element": { Left: l.left, Top: l.top } }), o.positionDebug({ "Element Dimensions": { Height: a, Width: r }, "Tooltip Dimensions": { Height: p, Width: d }, "Window Dimensions": { Height: h, Width: u }, "Arrow Dimensions": { Height: g, Width: c }, }), o.positionDebug(m), ("auto" === t || "bottom" === t) && m.below && m.left_half && m.right_half) ) o.positionDebug("Displaying below, centered"), (e = "top"), (i = l.left - d / 2 + r / 2), (s = l.top + a + g / 2); else if ( ("auto" === t || "top" === t) && m.above && m.left_half && m.right_half ) { if ( (o.positionDebug("Displaying above, centered"), (e = "bottom"), o.child_class) ) { let t = o.dom_wrapped.find(o.child_class).first(); i = t.offset().left - d / 2 + t.width() / 2; } else i = l.left - d / 2 + r / 2; s = l.top - p - g / 2; } else ("auto" === t || "left" === t) && m.left && m.vertical_half ? (o.positionDebug("Displaying left, centered"), (e = "right"), (i = l.left - d - c / 2), (s = l.top + a / 2 - p / 2)) : ("auto" === t || "right" === t) && m.right && m.vertical_half ? (o.positionDebug("Displaying right, centered"), (e = "left"), (i = l.left + r + c / 2), (s = l.top + a / 2 - p / 2)) : ("auto" === t || "bottom" === t) && m.below && m.right_full ? (o.positionDebug("Displaying below, to the right"), (e = "top ulf-arrow-hug-left"), (i = l.left), (s = l.top + a + g / 2)) : ("auto" === t || "bottom" === t) && m.below && m.left_full ? (o.positionDebug("Displaying below, to the left"), (e = "top ulf-arrow-hug-right"), (i = l.left + r - d), (s = l.top + a + g / 2)) : ("auto" === t || "top" === t) && m.above && m.right_full ? (o.positionDebug("Displaying above, to the right"), (e = "bottom ulf-arrow-hug-left"), (i = l.left), (s = l.top - p - g / 2)) : ("auto" === t || "top" === t) && m.above && m.left_full && (o.positionDebug("Displaying above, to the left"), (e = "bottom ulf-arrow-hug-right"), (i = l.left + r - d), (s = l.top - p - g / 2)); return [e, r, d, p, i, s]; }, positionDebug: function (t) { return ( !!o.position_debug && ("object" == typeof t ? console.table(t) : console.log(`Position: ${t}`)) ); }, }; return o.destroy(), o.initialize(); }), (t.WordpressUlikeTooltip = {}), (t.WordpressUlikeTooltip.visible = []), (t.WordpressUlikeTooltip.body_click_initialized = !1), (t.WordpressUlikeTooltip.defaults = { id: Date.now(), title: "", trigger: "hoverfocus", position: "auto", class: "", theme: "black", size: "small", singleton: !0, close_on_outside_click: !0, }); })(jQuery), (function (t, e, i, s) { "use strict"; var o = "WordpressUlikeNotifications", n = { messageType: "success", messageText: "Hello World!", timeout: 8e3, messageElement: "wpulike-message", notifContainer: "wpulike-notification", }; function l(e, i) { (this.element = e), (this.$element = t(e)), (this.settings = t.extend({}, n, i)), (this._defaults = n), (this._name = o), this.init(); } t.extend(l.prototype, { init: function () { this._message(), this._container(), this._append(), this._remove(); }, _message: function () { this.$messageElement = t("
              ") .addClass( this.settings.messageElement + " wpulike-" + this.settings.messageType ) .text(this.settings.messageText); }, _container: function () { t("." + this.settings.notifContainer).length || this.$element.append( t("
              ").addClass(this.settings.notifContainer) ), (this.$notifContainer = this.$element.find( "." + this.settings.notifContainer )); }, _append: function () { this.$notifContainer .append(this.$messageElement) .trigger("WordpressUlikeNotificationAppend"); }, _remove: function () { var e = this; this.$messageElement.on("click", function () { t(this) .fadeOut(300, function () { t(this).remove(), t("." + e.settings.messageElement).length || e.$notifContainer.remove(); }) .trigger("WordpressUlikeRemoveNotification"); }), e.settings.timeout && setTimeout(function () { e.$messageElement .fadeOut(300, function () { t(this).remove(), t("." + e.settings.messageElement).length || e.$notifContainer.remove(); }) .trigger("WordpressUlikeRemoveNotification"); }, e.settings.timeout); }, }), (t.fn[o] = function (t) { return this.each(function () { new l(this, t); }); }); })(jQuery, window, document), (function (t, e, i, s) { "use strict"; var o = "WordpressUlike", n = (t(e), t(i)), l = { ID: 0, nonce: 0, type: "", append: "", appendTimeout: 2e3, displayLikers: !1, likersTemplate: "default", disablePophover: !0, isTotal: !1, factor: "", template: "", counterSelector: ".count-box", generalSelector: ".wp_ulike_general_class", buttonSelector: ".wp_ulike_btn", likersSelector: ".wp_ulike_likers_wrapper", }, a = { "ulike-id": "ID", "ulike-nonce": "nonce", "ulike-type": "type", "ulike-append": "append", "ulike-is-total": "isTotal", "ulike-display-likers": "displayLikers", "ulike-likers-style": "likersTemplate", "ulike-disable-pophover": "disablePophover", "ulike-append-timeout": "appendTimeout", "ulike-factor": "factor", "ulike-template": "template", }; function r(e, i) { for (var s in ((this.element = e), (this.$element = t(e)), (this.settings = t.extend({}, l, i)), (this._defaults = l), (this._name = o), (this.buttonElement = this.$element.find(this.settings.buttonSelector)), a)) { var n = this.buttonElement.data(s); undefined !== n && (this.settings[a[s]] = n); } (this.generalElement = this.$element.find(this.settings.generalSelector)), (this.counterElement = this.generalElement.find( this.settings.counterSelector )), this.counterElement.length && this.counterElement.each( function (e, i) { void 0 !== t(i).data("ulike-counter-value") && t(i).html(t(i).data("ulike-counter-value")); }.bind(this) ), (this.likersElement = this.$element.find(this.settings.likersSelector)), this.init(); } t.extend(r.prototype, { init: function () { this.buttonElement.on("click", this._initLike.bind(this)), this.generalElement.one("mouseenter", this._updateLikers.bind(this)); }, _ajax: function (e, i) { t.ajax({ url: wp_ulike_params.ajax_url, type: "POST", dataType: "json", data: e, }).done(i); }, _initLike: function (t) { t.stopPropagation(), this._maybeUpdateElements(t), this._updateSameButtons(), this._updateSameLikers(), this.buttonElement.prop("disabled", !0), n.trigger("WordpressUlikeLoading", this.element), this.generalElement.addClass("wp_ulike_is_loading"), this._ajax( { action: "wp_ulike_process", id: this.settings.ID, nonce: this.settings.nonce, factor: this.settings.factor, type: this.settings.type, template: this.settings.template, displayLikers: this.settings.displayLikers, likersTemplate: this.settings.likersTemplate, }, function (t) { this.generalElement.removeClass("wp_ulike_is_loading"), t.success ? (this._updateMarkup(t), this._appendChild()) : t.data.hasToast && this._sendNotification("error", t.data.message), this.buttonElement.prop("disabled", !1), n.trigger("WordpressUlikeUpdated", this.element); }.bind(this) ); }, _maybeUpdateElements: function (e) { (this.buttonElement = t(e.currentTarget)), (this.generalElement = this.buttonElement.closest( this.settings.generalSelector )), (this.counterElement = this.generalElement.find( this.settings.counterSelector )), (this.settings.factor = this.buttonElement.data("ulike-factor")); }, _appendChild: function () { if ("" !== this.settings.append) { var e = t(this.settings.append); this.buttonElement.append(e), this.settings.appendTimeout && setTimeout(function () { e.detach(); }, this.settings.appendTimeout); } }, _updateMarkup: function (t) { this._setSbilingElement(), this._setSbilingButtons(), this._updateGeneralClassNames(t.data.status), null !== t.data.data && (5 != t.data.status && (this.__updateCounter(t.data.data), this.settings.displayLikers && void 0 !== t.data.likers && this._updateLikersMarkup(t.data.likers)), this._updateButton(t.data.btnText, t.data.status)), t.data.hasToast && this._sendNotification(t.data.messageType, t.data.message); }, _updateGeneralClassNames: function (t) { var e = "wp_ulike_is_not_liked", i = "wp_ulike_is_liked", s = "wp_ulike_is_unliked", o = "wp_ulike_click_is_disabled"; switch ( (this.siblingElement.length && this.siblingElement.removeClass(this._arrayToString([i, s])), t) ) { case 1: this.generalElement.addClass(i).removeClass(e), this.generalElement.children().first().addClass(o); break; case 2: this.generalElement.addClass(s).removeClass(i); break; case 3: this.generalElement.addClass(i).removeClass(s); break; case 0: case 5: this.generalElement.addClass(o), this.siblingElement.length && this.siblingElement.addClass(o); } }, _arrayToString: function (t) { return t.join(" "); }, _setSbilingElement: function () { this.siblingElement = this.generalElement.siblings(); }, _setSbilingButtons: function () { this.siblingButton = this.buttonElement.siblings( this.settings.buttonSelector ); }, __updateCounter: function (t) { this.counterElement.attr("data-ulike-counter-value", t).html(t), n.trigger("WordpressUlikeCounterUpdated", [this.buttonElement]); }, _updateLikers: function (t) { if (this.settings.displayLikers) { if ( "popover" == this.settings.likersTemplate && this.$element.data("ulike-tooltip") ) return; if ( "default" == this.settings.likersTemplate && this.likersElement.length ) return; return ( this.generalElement.addClass("wp_ulike_is_getting_likers_list"), this._ajax( { action: "wp_ulike_get_likers", id: this.settings.ID, nonce: this.settings.nonce, type: this.settings.type, displayLikers: this.settings.displayLikers, likersTemplate: this.settings.likersTemplate, }, function (t) { this.generalElement.removeClass( "wp_ulike_is_getting_likers_list" ), t.success && this._updateLikersMarkup(t.data); }.bind(this) ), t.stopImmediatePropagation(), !1 ); } }, _updateLikersMarkup: function (e) { "popover" == this.settings.likersTemplate ? ((this.likersElement = this.$element), e.template && this.likersElement.WordpressUlikeTooltip({ id: this.settings.type.toLowerCase() + "-" + this.settings.ID, title: e.template, position: "top", child: this.settings.generalSelector, theme: "white", size: "tiny", trigger: "hover", })) : (this.likersElement.length || (this.likersElement = t(e.template).appendTo(this.$element)), e.template ? this.likersElement.show().html(e.template) : this.likersElement.hide().empty()), n.trigger("WordpressUlikeLikersMarkupUpdated", [ this.likersElement, this.settings.likersTemplate, e.template, ]); }, _updateSameButtons: function () { var t = void 0 !== this.settings.factor ? "_" + this.settings.factor : ""; (this.sameButtons = n.find( ".wp_" + this.settings.type.toLowerCase() + t + "_btn_" + this.settings.ID )), this.sameButtons.length > 1 && ((this.buttonElement = this.sameButtons), (this.generalElement = this.buttonElement.closest( this.settings.generalSelector )), (this.counterElement = this.generalElement.find( this.settings.counterSelector ))); }, _updateSameLikers: function () { (this.sameLikers = n.find( ".wp_" + this.settings.type.toLowerCase() + "_likers_" + this.settings.ID )), this.sameLikers.length > 1 && (this.likersElement = this.sameLikers); }, _getLikersElement: function () { return this.likersElement; }, _updateButton: function (t, e) { this.buttonElement.hasClass("wp_ulike_put_image") ? (4 == e ? this.buttonElement.addClass( "image-unlike wp_ulike_btn_is_active" ) : this.buttonElement.toggleClass( "image-unlike wp_ulike_btn_is_active" ), this.siblingElement.length && this.siblingElement .find(this.settings.buttonSelector) .removeClass("image-unlike wp_ulike_btn_is_active"), this.siblingButton.length && this.siblingButton.removeClass( "image-unlike wp_ulike_btn_is_active" )) : this.buttonElement.hasClass("wp_ulike_put_text") && null !== t && this.buttonElement.find("span").html(t); }, _sendNotification: function (e, s) { t(i.body).WordpressUlikeNotifications({ messageType: e, messageText: s, }); }, }), (t.fn[o] = function (e) { return this.each(function () { t.data(this, "plugin_" + o) || t.data(this, "plugin_" + o, new r(this, e)); }); }); })(jQuery, window, document), (function (t) { var e, i, s; t(".wpulike").WordpressUlike(), (e = ".wpulike"), (i = function (e) { t(e).WordpressUlike(); }), (s = t("body")[0]), new (window.MutationObserver || window.WebKitMutationObserver)(function ( s ) { s.forEach(function (s) { if (s.addedNodes.length) for ( var o = t(s.addedNodes).find(e), n = 0, l = o.length; n < l; n++ ) i(o[n]); }); }).observe(s, { childList: !0, subtree: !0 }); })(jQuery); /*! 2.2.7 * All required plugins * http://averta.net/phlox/ */ /*! * * ================== public/assets/js/src/init.general.js =================== **/ (function ($) { var filterList = $( ".aux-widget-recent-portfolios .aux-ajax-filters li[data-filter]" ); filterList.on("click", function (e) { e.preventDefault(); var $this = $(this), $container = $this .parents(".aux-widget-recent-portfolios") .find(".aux-ajax-view"), data = { action: "aux_recent_portfolio_filter_content", term: $this.data("category-id"), taxonomy: $container.data("taxonomy"), num: $container.data("num"), order: $container.data("order"), orderby: $container.data("orderby"), n: $container.data("n"), args: eval($container.data("element-id") + "AjaxConfig"), }; $container.AuxIsotope("removeAll"); $container.AuxIsotope("showLoading"); $.post(auxpfo.ajax_url, data, function (res) { if (res) { var $data = $(res.data); setTimeout(function () { $data.each(function (index, element) { $item = $(element); if ($item.hasClass("aux-iso-item")) { $container.AuxIsotope("insert", $item); $item.AuxTwoWayHover(); $item.photoSwipe({ target: ".aux-lightbox-btn", bgOpacity: 0.97, shareEl: true, }); } }); }, 1000); } }); }); })(jQuery); (() => { var e = { 1677: () => { function e(e) { for ( var t = !!e.getAttribute("data-show-if"), r = t ? e.getAttribute("data-show-if").split(":") : e.getAttribute("data-hide-if").split(":"), n = r[0], a = (r.length > 1 ? r[1] : "*").split("|"), i = (function (e, t) { for ( var r = [], n = e.querySelectorAll( 'input[name="' + t + '"],select[name="' + t + '"],textarea[name="' + t + '"]' ), a = 0; a < n.length; a++ ) { var i = n[a]; (("radio" !== i.type && "checkbox" !== i.type) || i.checked) && r.push(i.value); } return r; })( (function (e) { for (var t = e; t.parentElement; ) if ("FORM" === (t = t.parentElement).tagName) return t; return null; })(e), n ), o = !1, s = 0; s < i.length; s++ ) { var c = i[s]; if ( (o = a.indexOf(c) > -1 || (a.indexOf("*") > -1 && c.length > 0)) ) break; } e.style.display = t ? (o ? "" : "none") : o ? "none" : ""; var u = e.querySelectorAll("input,select,textarea"); [].forEach.call(u, function (e) { (o || t) && e.getAttribute("data-was-required") && ((e.required = !0), e.removeAttribute("data-was-required")), (o && t) || !e.required || (e.setAttribute("data-was-required", "true"), (e.required = !1)); }); } function t() { var t = document.querySelectorAll( ".mc4wp-form [data-show-if],.mc4wp-form [data-hide-if]" ); [].forEach.call(t, e); } function r(t) { if ( t.target && t.target.form && !(t.target.form.className.indexOf("mc4wp-form") < 0) ) { var r = t.target.form.querySelectorAll( "[data-show-if],[data-hide-if]" ); [].forEach.call(r, e); } } document.addEventListener("keyup", r, !0), document.addEventListener("change", r, !0), document.addEventListener("mc4wp-refresh", t, !0), window.addEventListener("load", t), t(); }, 2573: (e, t, r) => { var n = r(7422), a = r(3409), i = function (e, t) { (this.id = e), (this.element = t || document.createElement("form")), (this.name = this.element.getAttribute("data-name") || "Form #" + this.id), (this.errors = []), (this.started = !1); }; (i.prototype.setData = function (e) { try { a(this.element, e); } catch (e) { console.error(e); } }), (i.prototype.getData = function () { return n(this.element, { hash: !0, empty: !0 }); }), (i.prototype.getSerializedData = function () { return n(this.element, { hash: !1, empty: !0 }); }), (i.prototype.setResponse = function (e) { this.element.querySelector(".mc4wp-response").innerHTML = e; }), (i.prototype.reset = function () { this.setResponse(""), (this.element.querySelector(".mc4wp-form-fields").style.display = ""), this.element.reset(); }), (e.exports = i); }, 8592: (e, t, r) => { var n = r(2573), a = [], i = {}; function o(e, t) { (i[e] = i[e] || []), i[e].forEach(function (e) { return e.apply(null, t); }); } function s(e, t) { t = t || parseInt(e.getAttribute("data-id")) || 0; var r = new n(t, e); return a.push(r), r; } e.exports = { get: function (e) { e = parseInt(e); for (var t = 0; t < a.length; t++) if (a[t].id === e) return a[t]; return s(document.querySelector(".mc4wp-form-" + e), e); }, getByElement: function (e) { for (var t = e.form || e, r = 0; r < a.length; r++) if (a[r].element === t) return a[r]; return s(t); }, on: function (e, t) { (i[e] = i[e] || []), i[e].push(t); }, off: function (e, t) { (i[e] = i[e] || []), (i[e] = i[e].filter(function (e) { return e !== t; })); }, trigger: function (e, t) { "submit" === e || e.indexOf(".submit") > 0 ? o(e, t) : window.setTimeout(function () { o(e, t); }, 1); }, }; }, 7422: (e) => { var t = /^(?:submit|button|image|reset|file)$/i, r = /^(?:input|select|textarea|keygen)/i, n = /(\[[^\[\]]*\])/g; function a(e, t, r) { if (0 === t.length) return r; var n = t.shift(), i = n.match(/^\[(.+?)\]$/); if ("[]" === n) return ( (e = e || []), Array.isArray(e) ? e.push(a(null, t, r)) : ((e._values = e._values || []), e._values.push(a(null, t, r))), e ); if (i) { var o = i[1], s = +o; isNaN(s) ? ((e = e || {})[o] = a(e[o], t, r)) : ((e = e || [])[s] = a(e[s], t, r)); } else e[n] = a(e[n], t, r); return e; } function i(e, t, r) { if (t.match(n)) a( e, (function (e) { var t = [], r = new RegExp(n), a = /^([^\[\]]*)/.exec(e); for (a[1] && t.push(a[1]); null !== (a = r.exec(e)); ) t.push(a[1]); return t; })(t), r ); else { var i = e[t]; i ? (Array.isArray(i) || (e[t] = [i]), e[t].push(r)) : (e[t] = r); } return e; } function o(e, t, r) { return ( (r = r.replace(/(\r)?\n/g, "\r\n")), (r = (r = encodeURIComponent(r)).replace(/%20/g, "+")), e + (e ? "&" : "") + encodeURIComponent(t) + "=" + r ); } e.exports = function (e, n) { "object" != typeof n ? (n = { hash: !!n }) : void 0 === n.hash && (n.hash = !0); for ( var a = n.hash ? {} : "", s = n.serializer || (n.hash ? i : o), c = e && e.elements ? e.elements : [], u = Object.create(null), l = 0; l < c.length; ++l ) { var f = c[l]; if ( (n.disabled || !f.disabled) && f.name && r.test(f.nodeName) && !t.test(f.type) ) { var d = f.name, m = f.value; if ( (("checkbox" !== f.type && "radio" !== f.type) || f.checked || (m = void 0), n.empty) ) { if ( ("checkbox" !== f.type || f.checked || (m = ""), "radio" === f.type && (u[f.name] || f.checked ? f.checked && (u[f.name] = !0) : (u[f.name] = !1)), null == m && "radio" == f.type) ) continue; } else if (!m) continue; if ("select-multiple" !== f.type) a = s(a, d, m); else { m = []; for (var p = f.options, h = !1, v = 0; v < p.length; ++v) { var g = p[v], y = n.empty && !g.value, w = g.value || y; g.selected && w && ((h = !0), (a = n.hash && "[]" !== d.slice(d.length - 2) ? s(a, d + "[]", g.value) : s(a, d, g.value))); } !h && n.empty && (a = s(a, d, "")); } } } if (n.empty) for (var d in u) u[d] || (a = s(a, d, "")); return a; }; }, 3409: (e) => { e.exports && (e.exports = function e(t, r, n) { for (var a in r) if (r.hasOwnProperty(a)) { var i = a, o = r[a]; if ( (void 0 === o && (o = ""), null === o && (o = ""), void 0 !== n && (i = n + "[" + a + "]"), o.constructor === Array) ) i += "[]"; else if ("object" == typeof o) { e(t, o, i); continue; } var s = t.elements.namedItem(i); if (s) switch (s.type || s[0].type) { default: s.value = o; break; case "radio": case "checkbox": for ( var c = o.constructor === Array ? o : [o], u = 0; u < s.length; u++ ) s[u].checked = c.indexOf(s[u].value) > -1; break; case "select-multiple": c = o.constructor === Array ? o : [o]; for (var l = 0; l < s.options.length; l++) s.options[l].selected = c.indexOf(s.options[l].value) > -1; break; case "select": case "select-one": s.value = o.toString() || o; break; case "date": s.value = new Date(o).toISOString().split("T")[0]; } } }); }, }, t = {}; function r(n) { var a = t[n]; if (void 0 !== a) return a.exports; var i = (t[n] = { exports: {} }); return e[n](i, i.exports, r), i.exports; } (() => { var e = window.mc4wp || {}, t = r(8592); function n(e, r) { t.trigger(r[0].id + "." + e, r), t.trigger(e, r); } function a(e, t) { document.addEventListener( e, function (e) { if (e.target) { var r = e.target, n = !1; "string" == typeof r.className && (n = r.className.indexOf("mc4wp-form") > -1), n || "function" != typeof r.matches || (n = r.matches(".mc4wp-form *")), n && t.call(e, e); } }, !0 ); } if ( (r(1677), a("submit", function (e) { var r = t.getByElement(e.target); e.defaultPrevented || t.trigger(r.id + ".submit", [r, e]), e.defaultPrevented || t.trigger("submit", [r, e]); }), a("focus", function (e) { var r = t.getByElement(e.target); r.started || (n("started", [r, e]), (r.started = !0)); }), a("change", function (e) { n("change", [t.getByElement(e.target), e]); }), e.listeners) ) { for (var i = e.listeners, o = 0; o < i.length; o++) t.on(i[o].event, i[o].callback); delete e.listeners; } (e.forms = t), (window.mc4wp = e); })(); })(); /*!elementor - v3.6.4 - 13-04-2022*/ (() => { "use strict"; var e, r, _, t, i, a = {}, n = {}; function __webpack_require__(e) { var r = n[e]; if (void 0 !== r) return r.exports; var _ = (n[e] = { exports: {} }); return a[e](_, _.exports, __webpack_require__), _.exports; } (__webpack_require__.m = a), (e = []), (__webpack_require__.O = (r, _, t, i) => { if (!_) { var a = 1 / 0; for (u = 0; u < e.length; u++) { for (var [_, t, i] = e[u], n = !0, c = 0; c < _.length; c++) (!1 & i || a >= i) && Object.keys(__webpack_require__.O).every((e) => __webpack_require__.O[e](_[c]) ) ? _.splice(c--, 1) : ((n = !1), i < a && (a = i)); if (n) { e.splice(u--, 1); var o = t(); void 0 !== o && (r = o); } } return r; } i = i || 0; for (var u = e.length; u > 0 && e[u - 1][2] > i; u--) e[u] = e[u - 1]; e[u] = [_, t, i]; }), (_ = Object.getPrototypeOf ? (e) => Object.getPrototypeOf(e) : (e) => e.__proto__), (__webpack_require__.t = function (e, t) { if ((1 & t && (e = this(e)), 8 & t)) return e; if ("object" == typeof e && e) { if (4 & t && e.__esModule) return e; if (16 & t && "function" == typeof e.then) return e; } var i = Object.create(null); __webpack_require__.r(i); var a = {}; r = r || [null, _({}), _([]), _(_)]; for (var n = 2 & t && e; "object" == typeof n && !~r.indexOf(n); n = _(n)) Object.getOwnPropertyNames(n).forEach((r) => (a[r] = () => e[r])); return (a.default = () => e), __webpack_require__.d(i, a), i; }), (__webpack_require__.d = (e, r) => { for (var _ in r) __webpack_require__.o(r, _) && !__webpack_require__.o(e, _) && Object.defineProperty(e, _, { enumerable: !0, get: r[_] }); }), (__webpack_require__.f = {}), (__webpack_require__.e = (e) => Promise.all( Object.keys(__webpack_require__.f).reduce( (r, _) => (__webpack_require__.f[_](e, r), r), [] ) )), (__webpack_require__.u = (e) => 723 === e ? "lightbox.2b2c155d6ec60974d8c4.bundle.min.js" : 48 === e ? "text-path.9f18ebdea5ac00d653e5.bundle.min.js" : 209 === e ? "accordion.1840403ce81de408c749.bundle.min.js" : 745 === e ? "alert.cbc2a0fee74ee3ed0419.bundle.min.js" : 120 === e ? "counter.02cef29c589e742d4c8c.bundle.min.js" : 192 === e ? "progress.ca55d33bb06cee4e6f02.bundle.min.js" : 520 === e ? "tabs.37d5b4877cdb51ea91e9.bundle.min.js" : 181 === e ? "toggle.56f8ace4b1e830c02fc5.bundle.min.js" : 791 === e ? "video.d86bfd0676264945e968.bundle.min.js" : 268 === e ? "image-carousel.db284b09c0f8a8f1c44d.bundle.min.js" : 357 === e ? "text-editor.289ae80d76f0c5abea44.bundle.min.js" : 52 === e ? "wp-audio.75f0ced143febb8cd31a.bundle.min.js" : 413 === e ? "container.e026b16a99db8a3987c9.bundle.min.js" : void 0), (__webpack_require__.g = (function () { if ("object" == typeof globalThis) return globalThis; try { return this || new Function("return this")(); } catch (e) { if ("object" == typeof window) return window; } })()), (__webpack_require__.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r)), (t = {}), (i = "elementor:"), (__webpack_require__.l = (e, r, _, a) => { if (t[e]) t[e].push(r); else { var n, c; if (void 0 !== _) for ( var o = document.getElementsByTagName("script"), u = 0; u < o.length; u++ ) { var b = o[u]; if ( b.getAttribute("src") == e || b.getAttribute("data-webpack") == i + _ ) { n = b; break; } } n || ((c = !0), ((n = document.createElement("script")).charset = "utf-8"), (n.timeout = 120), __webpack_require__.nc && n.setAttribute("nonce", __webpack_require__.nc), n.setAttribute("data-webpack", i + _), (n.src = e)), (t[e] = [r]); var onScriptComplete = (r, _) => { (n.onerror = n.onload = null), clearTimeout(p); var i = t[e]; if ( (delete t[e], n.parentNode && n.parentNode.removeChild(n), i && i.forEach((e) => e(_)), r) ) return r(_); }, p = setTimeout( onScriptComplete.bind(null, void 0, { type: "timeout", target: n }), 12e4 ); (n.onerror = onScriptComplete.bind(null, n.onerror)), (n.onload = onScriptComplete.bind(null, n.onload)), c && document.head.appendChild(n); } }), (__webpack_require__.r = (e) => { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 }); }), (() => { var e; __webpack_require__.g.importScripts && (e = __webpack_require__.g.location + ""); var r = __webpack_require__.g.document; if (!e && r && (r.currentScript && (e = r.currentScript.src), !e)) { var _ = r.getElementsByTagName("script"); _.length && (e = _[_.length - 1].src); } if (!e) throw new Error( "Automatic publicPath is not supported in this browser" ); (e = e .replace(/#.*$/, "") .replace(/\?.*$/, "") .replace(/\/[^\/]+$/, "/")), (__webpack_require__.p = e); })(), (() => { var e = { 162: 0 }; (__webpack_require__.f.j = (r, _) => { var t = __webpack_require__.o(e, r) ? e[r] : void 0; if (0 !== t) if (t) _.push(t[2]); else if (162 != r) { var i = new Promise((_, i) => (t = e[r] = [_, i])); _.push((t[2] = i)); var a = __webpack_require__.p + __webpack_require__.u(r), n = new Error(); __webpack_require__.l( a, (_) => { if ( __webpack_require__.o(e, r) && (0 !== (t = e[r]) && (e[r] = void 0), t) ) { var i = _ && ("load" === _.type ? "missing" : _.type), a = _ && _.target && _.target.src; (n.message = "Loading chunk " + r + " failed.\n(" + i + ": " + a + ")"), (n.name = "ChunkLoadError"), (n.type = i), (n.request = a), t[1](n); } }, "chunk-" + r, r ); } else e[r] = 0; }), (__webpack_require__.O.j = (r) => 0 === e[r]); var webpackJsonpCallback = (r, _) => { var t, i, [a, n, c] = _, o = 0; if (a.some((r) => 0 !== e[r])) { for (t in n) __webpack_require__.o(n, t) && (__webpack_require__.m[t] = n[t]); if (c) var u = c(__webpack_require__); } for (r && r(_); o < a.length; o++) (i = a[o]), __webpack_require__.o(e, i) && e[i] && e[i][0](), (e[a[o]] = 0); return __webpack_require__.O(u); }, r = (self.webpackChunkelementor = self.webpackChunkelementor || []); r.forEach(webpackJsonpCallback.bind(null, 0)), (r.push = webpackJsonpCallback.bind(null, r.push.bind(r))); })(); })(); /*!elementor - v3.6.4 - 13-04-2022*/ (self.webpackChunkelementor = self.webpackChunkelementor || []).push([ [354], { 7914: (e) => { (e.exports = function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }), (e.exports.default = e.exports), (e.exports.__esModule = !0); }, 381: (e, t) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); t.default = (e, t) => { t = Array.isArray(t) ? t : [t]; for (const n of t) if (e.constructor.name === n.prototype[Symbol.toStringTag]) return !0; return !1; }; }, 8135: (e, t) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); class _default extends elementorModules.ViewModule { getDefaultSettings() { return { selectors: { elements: ".elementor-element", nestedDocumentElements: ".elementor .elementor-element", }, classes: { editMode: "elementor-edit-mode" }, }; } getDefaultElements() { const e = this.getSettings("selectors"); return { $elements: this.$element .find(e.elements) .not(this.$element.find(e.nestedDocumentElements)), }; } getDocumentSettings(e) { let t; if (this.isEdit) { t = {}; const e = elementor.settings.page.model; jQuery.each(e.getActiveControls(), (n) => { t[n] = e.attributes[n]; }); } else t = this.$element.data("elementor-settings") || {}; return this.getItems(t, e); } runElementsHandlers() { this.elements.$elements.each((e, t) => elementorFrontend.elementsHandler.runReadyTrigger(t) ); } onInit() { (this.$element = this.getSettings("$element")), super.onInit(), (this.isEdit = this.$element.hasClass( this.getSettings("classes.editMode") )), this.isEdit ? elementor.on("document:loaded", () => { elementor.settings.page.model.on( "change", this.onSettingsChange.bind(this) ); }) : this.runElementsHandlers(); } onSettingsChange() {} } t.default = _default; }, 2821: (e, t, n) => { "use strict"; var s = n(7914); Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); var i = s(n(3090)); class SwiperHandlerBase extends i.default { getInitialSlide() { const e = this.getEditSettings(); return e.activeItemIndex ? e.activeItemIndex - 1 : 0; } getSlidesCount() { return this.elements.$slides.length; } togglePauseOnHover(e) { e ? this.elements.$swiperContainer.on({ mouseenter: () => { this.swiper.autoplay.stop(); }, mouseleave: () => { this.swiper.autoplay.start(); }, }) : this.elements.$swiperContainer.off("mouseenter mouseleave"); } handleKenBurns() { const e = this.getSettings(); this.$activeImageBg && this.$activeImageBg.removeClass(e.classes.kenBurnsActive), (this.activeItemIndex = this.swiper ? this.swiper.activeIndex : this.getInitialSlide()), this.swiper ? (this.$activeImageBg = jQuery( this.swiper.slides[this.activeItemIndex] ).children("." + e.classes.slideBackground)) : (this.$activeImageBg = jQuery( this.elements.$slides[0] ).children("." + e.classes.slideBackground)), this.$activeImageBg.addClass(e.classes.kenBurnsActive); } } t.default = SwiperHandlerBase; }, 3090: (e) => { "use strict"; e.exports = elementorModules.ViewModule.extend({ $element: null, editorListeners: null, onElementChange: null, onEditSettingsChange: null, onPageSettingsChange: null, isEdit: null, __construct: function (e) { this.isActive(e) && ((this.$element = e.$element), (this.isEdit = this.$element.hasClass( "elementor-element-edit-mode" )), this.isEdit && this.addEditorListeners()); }, isActive: function () { return !0; }, findElement: function (e) { var t = this.$element; return t.find(e).filter(function () { return jQuery(this).closest(".elementor-element").is(t); }); }, getUniqueHandlerID: function (e, t) { return ( e || (e = this.getModelCID()), t || (t = this.$element), e + t.attr("data-element_type") + this.getConstructorID() ); }, initEditorListeners: function () { var e = this; if ( ((e.editorListeners = [ { event: "element:destroy", to: elementor.channels.data, callback: function (t) { t.cid === e.getModelCID() && e.onDestroy(); }, }, ]), e.onElementChange) ) { const t = e.getWidgetType() || e.getElementType(); let n = "change"; "global" !== t && (n += ":" + t), e.editorListeners.push({ event: n, to: elementor.channels.editor, callback: function (t, n) { e.getUniqueHandlerID(n.model.cid, n.$el) === e.getUniqueHandlerID() && e.onElementChange(t.model.get("name"), t, n); }, }); } e.onEditSettingsChange && e.editorListeners.push({ event: "change:editSettings", to: elementor.channels.editor, callback: function (t, n) { n.model.cid === e.getModelCID() && e.onEditSettingsChange(Object.keys(t.changed)[0]); }, }), ["page"].forEach(function (t) { var n = "on" + t[0].toUpperCase() + t.slice(1) + "SettingsChange"; e[n] && e.editorListeners.push({ event: "change", to: elementor.settings[t].model, callback: function (t) { e[n](t.changed); }, }); }); }, getEditorListeners: function () { return ( this.editorListeners || this.initEditorListeners(), this.editorListeners ); }, addEditorListeners: function () { var e = this.getUniqueHandlerID(); this.getEditorListeners().forEach(function (t) { elementorFrontend.addListenerOnce(e, t.event, t.callback, t.to); }); }, removeEditorListeners: function () { var e = this.getUniqueHandlerID(); this.getEditorListeners().forEach(function (t) { elementorFrontend.removeListeners(e, t.event, null, t.to); }); }, getElementType: function () { return this.$element.data("element_type"); }, getWidgetType: function () { const e = this.$element.data("widget_type"); if (e) return e.split(".")[0]; }, getID: function () { return this.$element.data("id"); }, getModelCID: function () { return this.$element.data("model-cid"); }, getElementSettings: function (e) { let t = {}; const n = this.getModelCID(); if (this.isEdit && n) { const e = elementorFrontend.config.elements.data[n], s = e.attributes; let i = s.widgetType || s.elType; s.isInner && (i = "inner-" + i); let r = elementorFrontend.config.elements.keys[i]; r || ((r = elementorFrontend.config.elements.keys[i] = []), jQuery.each(e.controls, (e, t) => { t.frontend_available && r.push(e); })), jQuery.each(e.getActiveControls(), function (e) { if (-1 !== r.indexOf(e)) { let n = s[e]; n.toJSON && (n = n.toJSON()), (t[e] = n); } }); } else t = this.$element.data("settings") || {}; return this.getItems(t, e); }, getEditSettings: function (e) { var t = {}; return ( this.isEdit && (t = elementorFrontend.config.elements.editSettings[ this.getModelCID() ].attributes), this.getItems(t, e) ); }, getCurrentDeviceSetting: function (e) { return elementorFrontend.getCurrentDeviceSetting( this.getElementSettings(), e ); }, onInit: function () { this.isActive(this.getSettings()) && elementorModules.ViewModule.prototype.onInit.apply(this, arguments); }, onDestroy: function () { this.isEdit && this.removeEditorListeners(), this.unbindEvents && this.unbindEvents(); }, }); }, 6412: (e, t, n) => { "use strict"; var s = n(7914), i = s(n(5955)), r = s(n(8135)), o = s(n(5658)), l = s(n(3090)), c = s(n(2821)); i.default.frontend = { Document: r.default, tools: { StretchElement: o.default }, handlers: { Base: l.default, SwiperBase: c.default }, }; }, 5658: (e) => { "use strict"; e.exports = elementorModules.ViewModule.extend({ getDefaultSettings: function () { return { element: null, direction: elementorFrontend.config.is_rtl ? "right" : "left", selectors: { container: window }, }; }, getDefaultElements: function () { return { $element: jQuery(this.getSettings("element")) }; }, stretch: function () { var e, t = this.getSettings("selectors.container"); try { e = jQuery(t); } catch (e) {} (e && e.length) || (e = jQuery(this.getDefaultSettings().selectors.container)), this.reset(); var n = this.elements.$element, s = e.innerWidth(), i = n.offset().left, r = "fixed" === n.css("position"), o = r ? 0 : i; if (window !== e[0]) { var l = e.offset().left; r && (o = l), i > l && (o = i - l); } r || (elementorFrontend.config.is_rtl && (o = s - (n.outerWidth() + o)), (o = -o)); var c = {}; (c.width = s + "px"), (c[this.getSettings("direction")] = o + "px"), n.css(c); }, reset: function () { var e = { width: "" }; (e[this.getSettings("direction")] = ""), this.elements.$element.css(e); }, }); }, 2618: (e, t, n) => { "use strict"; var s = n(7914); Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); var i = s(n(7597)), r = s(n(381)); class ArgsObject extends i.default { static getInstanceType() { return "ArgsObject"; } constructor(e) { super(), (this.args = e); } requireArgument(e, t = this.args) { if (!t.hasOwnProperty(e)) throw Error(`${e} is required.`); } requireArgumentType(e, t, n = this.args) { if ((this.requireArgument(e, n), typeof n[e] !== t)) throw Error(`${e} invalid type: ${t}.`); } requireArgumentInstance(e, t, n = this.args) { if ( (this.requireArgument(e, n), !(n[e] instanceof t || (0, r.default)(n[e], t))) ) throw Error(`${e} invalid instance.`); } requireArgumentConstructor(e, t, n = this.args) { if ( (this.requireArgument(e, n), n[e].constructor.toString() !== t.prototype.constructor.toString()) ) throw Error(`${e} invalid constructor type.`); } } t.default = ArgsObject; }, 869: (e, t) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = t.ForceMethodImplementation = void 0); class ForceMethodImplementation extends Error { constructor(e = {}) { super( `${e.isStatic ? "static " : ""}${ e.fullName }() should be implemented, please provide '${ e.functionName || e.fullName }' functionality.` ), Error.captureStackTrace(this, ForceMethodImplementation); } } t.ForceMethodImplementation = ForceMethodImplementation; t.default = () => { const e = Error().stack.split("\n")[2].trim(), t = e.startsWith("at new") ? "constructor" : e.split(" ")[1], n = {}; if ( ((n.functionName = t), (n.fullName = t), n.functionName.includes(".")) ) { const e = n.functionName.split("."); (n.className = e[0]), (n.functionName = e[1]); } else n.isStatic = !0; throw new ForceMethodImplementation(n); }; }, 7597: (e, t) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); class InstanceType { static [Symbol.hasInstance](e) { let t = super[Symbol.hasInstance](e); if (e && !e.constructor.getInstanceType) return t; if ( e && (e.instanceTypes || (e.instanceTypes = []), t || (this.getInstanceType() === e.constructor.getInstanceType() && (t = !0)), t) ) { const t = this.getInstanceType === InstanceType.getInstanceType ? "BaseInstanceType" : this.getInstanceType(); -1 === e.instanceTypes.indexOf(t) && e.instanceTypes.push(t); } return ( !t && e && (t = e.instanceTypes && Array.isArray(e.instanceTypes) && -1 !== e.instanceTypes.indexOf(this.getInstanceType())), t ); } constructor() { let e = new.target; const t = []; for (; e.__proto__ && e.__proto__.name; ) t.push(e.__proto__), (e = e.__proto__); t.reverse().forEach((e) => this instanceof e); } static getInstanceType() { elementorModules.ForceMethodImplementation(); } } t.default = InstanceType; }, 1192: (e) => { "use strict"; const Module = function () { const e = jQuery, t = arguments, n = this, s = {}; let i; const ensureClosureMethods = function () { e.each(n, function (e) { const t = n[e]; "function" == typeof t && (n[e] = function () { return t.apply(n, arguments); }); }); }, initSettings = function () { i = n.getDefaultSettings(); const s = t[0]; s && e.extend(!0, i, s); }, init = function () { n.__construct.apply(n, t), ensureClosureMethods(), initSettings(), n.trigger("init"); }; (this.getItems = function (e, t) { if (t) { const n = t.split("."), s = n.splice(0, 1); if (!n.length) return e[s]; if (!e[s]) return; return this.getItems(e[s], n.join(".")); } return e; }), (this.getSettings = function (e) { return this.getItems(i, e); }), (this.setSettings = function (t, s, r) { if ((r || (r = i), "object" == typeof t)) return e.extend(r, t), n; const o = t.split("."), l = o.splice(0, 1); return o.length ? (r[l] || (r[l] = {}), n.setSettings(o.join("."), s, r[l])) : ((r[l] = s), n); }), (this.getErrorMessage = function (e, t) { let n; if ("forceMethodImplementation" === e) n = `The method '${t}' must to be implemented in the inheritor child.`; else n = "An error occurs"; return n; }), (this.forceMethodImplementation = function (e) { throw new Error( this.getErrorMessage("forceMethodImplementation", e) ); }), (this.on = function (t, i) { if ("object" == typeof t) return ( e.each(t, function (e) { n.on(e, this); }), n ); return ( t.split(" ").forEach(function (e) { s[e] || (s[e] = []), s[e].push(i); }), n ); }), (this.off = function (e, t) { if (!s[e]) return n; if (!t) return delete s[e], n; const i = s[e].indexOf(t); return ( -1 !== i && (delete s[e][i], (s[e] = s[e].filter((e) => e))), n ); }), (this.trigger = function (t) { const i = "on" + t[0].toUpperCase() + t.slice(1), r = Array.prototype.slice.call(arguments, 1); n[i] && n[i].apply(n, r); const o = s[t]; return o ? (e.each(o, function (e, t) { t.apply(n, r); }), n) : n; }), init(); }; (Module.prototype.__construct = function () {}), (Module.prototype.getDefaultSettings = function () { return {}; }), (Module.prototype.getConstructorID = function () { return this.constructor.name; }), (Module.extend = function (e) { const t = jQuery, n = this, child = function () { return n.apply(this, arguments); }; return ( t.extend(child, n), ((child.prototype = Object.create( t.extend({}, n.prototype, e) )).constructor = child), (child.__super__ = n.prototype), child ); }), (e.exports = Module); }, 6516: (e, t, n) => { "use strict"; var s = n(7914)(n(2640)); e.exports = s.default.extend({ getDefaultSettings: function () { return { container: null, items: null, columnsCount: 3, verticalSpaceBetween: 30, }; }, getDefaultElements: function () { return { $container: jQuery(this.getSettings("container")), $items: jQuery(this.getSettings("items")), }; }, run: function () { var e = [], t = this.elements.$container.position().top, n = this.getSettings(), s = n.columnsCount; (t += parseInt(this.elements.$container.css("margin-top"), 10)), this.elements.$items.each(function (i) { var r = Math.floor(i / s), o = jQuery(this), l = o[0].getBoundingClientRect().height + n.verticalSpaceBetween; if (r) { var c = o.position(), a = i % s, u = c.top - t - e[a]; (u -= parseInt(o.css("margin-top"), 10)), (u *= -1), o.css("margin-top", u + "px"), (e[a] += l); } else e.push(l); }); }, }); }, 400: (e, t) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); t.default = class Scroll { static scrollObserver(e) { let t = 0; const n = { root: e.root || null, rootMargin: e.offset || "0px", threshold: ((e = 0) => { const t = []; if (e > 0 && e <= 100) { const n = 100 / e; for (let e = 0; e <= 100; e += n) t.push(e / 100); } else t.push(0); return t; })(e.sensitivity), }; return new IntersectionObserver(function handleIntersect(n) { const s = n[0].boundingClientRect.y, i = n[0].isIntersecting, r = s < t ? "down" : "up", o = Math.abs( parseFloat((100 * n[0].intersectionRatio).toFixed(2)) ); e.callback({ sensitivity: e.sensitivity, isInViewport: i, scrollPercentage: o, intersectionScrollDirection: r, }), (t = s); }, n); } static getElementViewportPercentage(e, t = {}) { const n = e[0].getBoundingClientRect(), s = t.start || 0, i = t.end || 0, r = (window.innerHeight * s) / 100, o = (window.innerHeight * i) / 100, l = n.top - window.innerHeight, c = 0 - l + r, a = n.top + r + e.height() - l + o, u = Math.max(0, Math.min(c / a, 1)); return parseFloat((100 * u).toFixed(2)); } static getPageScrollPercentage(e = {}, t) { const n = e.start || 0, s = e.end || 0, i = t || document.documentElement.scrollHeight - document.documentElement.clientHeight, r = (i * n) / 100, o = i + r + (i * s) / 100; return ( ((document.documentElement.scrollTop + document.body.scrollTop + r) / o) * 100 ); } }; }, 2640: (e, t, n) => { "use strict"; var s = n(7914)(n(1192)); e.exports = s.default.extend({ elements: null, getDefaultElements: function () { return {}; }, bindEvents: function () {}, onInit: function () { this.initElements(), this.bindEvents(); }, initElements: function () { this.elements = this.getDefaultElements(); }, }); }, 5955: (e, t, n) => { "use strict"; var s = n(7914); Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); var i = s(n(1192)), r = s(n(2640)), o = s(n(2618)), l = s(n(6516)), c = s(n(400)), a = s(n(869)), u = (window.elementorModules = { Module: i.default, ViewModule: r.default, ArgsObject: o.default, ForceMethodImplementation: a.default, utils: { Masonry: l.default, Scroll: c.default }, }); t.default = u; }, }, (e) => { var t; (t = 6412), e((e.s = t)); }, ]); !(function () { "use strict"; function Waypoint(options) { if (!options) throw new Error("No options passed to Waypoint constructor"); if (!options.element) throw new Error("No element option passed to Waypoint constructor"); if (!options.handler) throw new Error("No handler option passed to Waypoint constructor"); (this.key = "waypoint-" + keyCounter), (this.options = Waypoint.Adapter.extend({}, Waypoint.defaults, options)), (this.element = this.options.element), (this.adapter = new Waypoint.Adapter(this.element)), (this.callback = options.handler), (this.axis = this.options.horizontal ? "horizontal" : "vertical"), (this.enabled = this.options.enabled), (this.triggerPoint = null), (this.group = Waypoint.Group.findOrCreate({ name: this.options.group, axis: this.axis, })), (this.context = Waypoint.Context.findOrCreateByElement( this.options.context )), Waypoint.offsetAliases[this.options.offset] && (this.options.offset = Waypoint.offsetAliases[this.options.offset]), this.group.add(this), this.context.add(this), (allWaypoints[this.key] = this), (keyCounter += 1); } var keyCounter = 0, allWaypoints = {}; (Waypoint.prototype.queueTrigger = function (direction) { this.group.queueTrigger(this, direction); }), (Waypoint.prototype.trigger = function (args) { this.enabled && this.callback && this.callback.apply(this, args); }), (Waypoint.prototype.destroy = function () { this.context.remove(this), this.group.remove(this), delete allWaypoints[this.key]; }), (Waypoint.prototype.disable = function () { return (this.enabled = !1), this; }), (Waypoint.prototype.enable = function () { return this.context.refresh(), (this.enabled = !0), this; }), (Waypoint.prototype.next = function () { return this.group.next(this); }), (Waypoint.prototype.previous = function () { return this.group.previous(this); }), (Waypoint.invokeAll = function (method) { var allWaypointsArray = []; for (var waypointKey in allWaypoints) allWaypointsArray.push(allWaypoints[waypointKey]); for (var i = 0, end = allWaypointsArray.length; i < end; i++) allWaypointsArray[i][method](); }), (Waypoint.destroyAll = function () { Waypoint.invokeAll("destroy"); }), (Waypoint.disableAll = function () { Waypoint.invokeAll("disable"); }), (Waypoint.enableAll = function () { Waypoint.Context.refreshAll(); for (var waypointKey in allWaypoints) allWaypoints[waypointKey].enabled = !0; return this; }), (Waypoint.refreshAll = function () { Waypoint.Context.refreshAll(); }), (Waypoint.viewportHeight = function () { return window.innerHeight || document.documentElement.clientHeight; }), (Waypoint.viewportWidth = function () { return document.documentElement.clientWidth; }), (Waypoint.adapters = []), (Waypoint.defaults = { context: window, continuous: !0, enabled: !0, group: "default", horizontal: !1, offset: 0, }), (Waypoint.offsetAliases = { "bottom-in-view": function () { return this.context.innerHeight() - this.adapter.outerHeight(); }, "right-in-view": function () { return this.context.innerWidth() - this.adapter.outerWidth(); }, }), (window.Waypoint = Waypoint); })(), (function () { "use strict"; function requestAnimationFrameShim(callback) { window.setTimeout(callback, 1e3 / 60); } function Context(element) { (this.element = element), (this.Adapter = Waypoint.Adapter), (this.adapter = new this.Adapter(element)), (this.key = "waypoint-context-" + keyCounter), (this.didScroll = !1), (this.didResize = !1), (this.oldScroll = { x: this.adapter.scrollLeft(), y: this.adapter.scrollTop(), }), (this.waypoints = { vertical: {}, horizontal: {} }), (element.waypointContextKey = this.key), (contexts[element.waypointContextKey] = this), (keyCounter += 1), Waypoint.windowContext || ((Waypoint.windowContext = !0), (Waypoint.windowContext = new Context(window))), this.createThrottledScrollHandler(), this.createThrottledResizeHandler(); } var keyCounter = 0, contexts = {}, Waypoint = window.Waypoint, oldWindowLoad = window.onload; (Context.prototype.add = function (waypoint) { var axis = waypoint.options.horizontal ? "horizontal" : "vertical"; (this.waypoints[axis][waypoint.key] = waypoint), this.refresh(); }), (Context.prototype.checkEmpty = function () { var horizontalEmpty = this.Adapter.isEmptyObject( this.waypoints.horizontal ), verticalEmpty = this.Adapter.isEmptyObject(this.waypoints.vertical), isWindow = this.element == this.element.window; horizontalEmpty && verticalEmpty && !isWindow && (this.adapter.off(".waypoints"), delete contexts[this.key]); }), (Context.prototype.createThrottledResizeHandler = function () { function resizeHandler() { self.handleResize(), (self.didResize = !1); } var self = this; this.adapter.on("resize.waypoints", function () { self.didResize || ((self.didResize = !0), Waypoint.requestAnimationFrame(resizeHandler)); }); }), (Context.prototype.createThrottledScrollHandler = function () { function scrollHandler() { self.handleScroll(), (self.didScroll = !1); } var self = this; this.adapter.on("scroll.waypoints", function () { (self.didScroll && !Waypoint.isTouch) || ((self.didScroll = !0), Waypoint.requestAnimationFrame(scrollHandler)); }); }), (Context.prototype.handleResize = function () { Waypoint.Context.refreshAll(); }), (Context.prototype.handleScroll = function () { var triggeredGroups = {}, axes = { horizontal: { newScroll: this.adapter.scrollLeft(), oldScroll: this.oldScroll.x, forward: "right", backward: "left", }, vertical: { newScroll: this.adapter.scrollTop(), oldScroll: this.oldScroll.y, forward: "down", backward: "up", }, }; for (var axisKey in axes) { var axis = axes[axisKey], isForward = axis.newScroll > axis.oldScroll, direction = isForward ? axis.forward : axis.backward; for (var waypointKey in this.waypoints[axisKey]) { var waypoint = this.waypoints[axisKey][waypointKey]; if (null !== waypoint.triggerPoint) { var wasBeforeTriggerPoint = axis.oldScroll < waypoint.triggerPoint, nowAfterTriggerPoint = axis.newScroll >= waypoint.triggerPoint, crossedForward = wasBeforeTriggerPoint && nowAfterTriggerPoint, crossedBackward = !wasBeforeTriggerPoint && !nowAfterTriggerPoint; (crossedForward || crossedBackward) && (waypoint.queueTrigger(direction), (triggeredGroups[waypoint.group.id] = waypoint.group)); } } } for (var groupKey in triggeredGroups) triggeredGroups[groupKey].flushTriggers(); this.oldScroll = { x: axes.horizontal.newScroll, y: axes.vertical.newScroll, }; }), (Context.prototype.innerHeight = function () { return this.element == this.element.window ? Waypoint.viewportHeight() : this.adapter.innerHeight(); }), (Context.prototype.remove = function (waypoint) { delete this.waypoints[waypoint.axis][waypoint.key], this.checkEmpty(); }), (Context.prototype.innerWidth = function () { return this.element == this.element.window ? Waypoint.viewportWidth() : this.adapter.innerWidth(); }), (Context.prototype.destroy = function () { var allWaypoints = []; for (var axis in this.waypoints) for (var waypointKey in this.waypoints[axis]) allWaypoints.push(this.waypoints[axis][waypointKey]); for (var i = 0, end = allWaypoints.length; i < end; i++) allWaypoints[i].destroy(); }), (Context.prototype.refresh = function () { var axes, isWindow = this.element == this.element.window, contextOffset = isWindow ? void 0 : this.adapter.offset(), triggeredGroups = {}; this.handleScroll(), (axes = { horizontal: { contextOffset: isWindow ? 0 : contextOffset.left, contextScroll: isWindow ? 0 : this.oldScroll.x, contextDimension: this.innerWidth(), oldScroll: this.oldScroll.x, forward: "right", backward: "left", offsetProp: "left", }, vertical: { contextOffset: isWindow ? 0 : contextOffset.top, contextScroll: isWindow ? 0 : this.oldScroll.y, contextDimension: this.innerHeight(), oldScroll: this.oldScroll.y, forward: "down", backward: "up", offsetProp: "top", }, }); for (var axisKey in axes) { var axis = axes[axisKey]; for (var waypointKey in this.waypoints[axisKey]) { var contextModifier, wasBeforeScroll, nowAfterScroll, triggeredBackward, triggeredForward, waypoint = this.waypoints[axisKey][waypointKey], adjustment = waypoint.options.offset, oldTriggerPoint = waypoint.triggerPoint, elementOffset = 0, freshWaypoint = null == oldTriggerPoint; waypoint.element !== waypoint.element.window && (elementOffset = waypoint.adapter.offset()[axis.offsetProp]), "function" == typeof adjustment ? (adjustment = adjustment.apply(waypoint)) : "string" == typeof adjustment && ((adjustment = parseFloat(adjustment)), waypoint.options.offset.indexOf("%") > -1 && (adjustment = Math.ceil( (axis.contextDimension * adjustment) / 100 ))), (contextModifier = axis.contextScroll - axis.contextOffset), (waypoint.triggerPoint = Math.floor( elementOffset + contextModifier - adjustment )), (wasBeforeScroll = oldTriggerPoint < axis.oldScroll), (nowAfterScroll = waypoint.triggerPoint >= axis.oldScroll), (triggeredBackward = wasBeforeScroll && nowAfterScroll), (triggeredForward = !wasBeforeScroll && !nowAfterScroll), !freshWaypoint && triggeredBackward ? (waypoint.queueTrigger(axis.backward), (triggeredGroups[waypoint.group.id] = waypoint.group)) : !freshWaypoint && triggeredForward ? (waypoint.queueTrigger(axis.forward), (triggeredGroups[waypoint.group.id] = waypoint.group)) : freshWaypoint && axis.oldScroll >= waypoint.triggerPoint && (waypoint.queueTrigger(axis.forward), (triggeredGroups[waypoint.group.id] = waypoint.group)); } } return ( Waypoint.requestAnimationFrame(function () { for (var groupKey in triggeredGroups) triggeredGroups[groupKey].flushTriggers(); }), this ); }), (Context.findOrCreateByElement = function (element) { return Context.findByElement(element) || new Context(element); }), (Context.refreshAll = function () { for (var contextId in contexts) contexts[contextId].refresh(); }), (Context.findByElement = function (element) { return contexts[element.waypointContextKey]; }), (window.onload = function () { oldWindowLoad && oldWindowLoad(), Context.refreshAll(); }), (Waypoint.requestAnimationFrame = function (callback) { var requestFn = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || requestAnimationFrameShim; requestFn.call(window, callback); }), (Waypoint.Context = Context); })(), (function () { "use strict"; function byTriggerPoint(a, b) { return a.triggerPoint - b.triggerPoint; } function byReverseTriggerPoint(a, b) { return b.triggerPoint - a.triggerPoint; } function Group(options) { (this.name = options.name), (this.axis = options.axis), (this.id = this.name + "-" + this.axis), (this.waypoints = []), this.clearTriggerQueues(), (groups[this.axis][this.name] = this); } var groups = { vertical: {}, horizontal: {} }, Waypoint = window.Waypoint; (Group.prototype.add = function (waypoint) { this.waypoints.push(waypoint); }), (Group.prototype.clearTriggerQueues = function () { this.triggerQueues = { up: [], down: [], left: [], right: [] }; }), (Group.prototype.flushTriggers = function () { for (var direction in this.triggerQueues) { var waypoints = this.triggerQueues[direction], reverse = "up" === direction || "left" === direction; waypoints.sort(reverse ? byReverseTriggerPoint : byTriggerPoint); for (var i = 0, end = waypoints.length; i < end; i += 1) { var waypoint = waypoints[i]; (waypoint.options.continuous || i === waypoints.length - 1) && waypoint.trigger([direction]); } } this.clearTriggerQueues(); }), (Group.prototype.next = function (waypoint) { this.waypoints.sort(byTriggerPoint); var index = Waypoint.Adapter.inArray(waypoint, this.waypoints), isLast = index === this.waypoints.length - 1; return isLast ? null : this.waypoints[index + 1]; }), (Group.prototype.previous = function (waypoint) { this.waypoints.sort(byTriggerPoint); var index = Waypoint.Adapter.inArray(waypoint, this.waypoints); return index ? this.waypoints[index - 1] : null; }), (Group.prototype.queueTrigger = function (waypoint, direction) { this.triggerQueues[direction].push(waypoint); }), (Group.prototype.remove = function (waypoint) { var index = Waypoint.Adapter.inArray(waypoint, this.waypoints); index > -1 && this.waypoints.splice(index, 1); }), (Group.prototype.first = function () { return this.waypoints[0]; }), (Group.prototype.last = function () { return this.waypoints[this.waypoints.length - 1]; }), (Group.findOrCreate = function (options) { return groups[options.axis][options.name] || new Group(options); }), (Waypoint.Group = Group); })(), (function () { "use strict"; function JQueryAdapter(element) { this.$element = $(element); } var $ = window.jQuery, Waypoint = window.Waypoint; $.each( [ "innerHeight", "innerWidth", "off", "offset", "on", "outerHeight", "outerWidth", "scrollLeft", "scrollTop", ], function (i, method) { JQueryAdapter.prototype[method] = function () { var args = Array.prototype.slice.call(arguments); return this.$element[method].apply(this.$element, args); }; } ), $.each(["extend", "inArray", "isEmptyObject"], function (i, method) { JQueryAdapter[method] = $[method]; }), Waypoint.adapters.push({ name: "jquery", Adapter: JQueryAdapter }), (Waypoint.Adapter = JQueryAdapter); })(), (function () { "use strict"; function createExtension(framework) { return function () { var waypoints = [], overrides = arguments[0]; return ( framework.isFunction(arguments[0]) && ((overrides = framework.extend({}, arguments[1])), (overrides.handler = arguments[0])), this.each(function () { var options = framework.extend({}, overrides, { element: this }); "string" == typeof options.context && (options.context = framework(this).closest(options.context)[0]), waypoints.push(new Waypoint(options)); }), waypoints ); }; } var Waypoint = window.Waypoint; window.jQuery && (window.jQuery.fn.elementorWaypoint = createExtension(window.jQuery)), window.Zepto && (window.Zepto.fn.elementorWaypoint = createExtension(window.Zepto)); })(); /*! jQuery UI - v1.13.1 - 2022-01-20 * http://jqueryui.com * Includes: data.js, disable-selection.js, escape-selector.js, focusable.js, form-reset-mixin.js, form.js, ie.js, jquery-1-7.js, keycode.js, labels.js, plugin.js, position.js, safe-active-element.js, safe-blur.js, scroll-parent.js, tabbable.js, unique-id.js, version.js, widget.js * Copyright jQuery Foundation and other contributors; Licensed */ !(function ( t ) { "use strict"; "function" == typeof define && define.amd ? define(["jquery"], t) : t(jQuery); })(function (x) { "use strict"; var t, e, i, n, W, C, o, s, r, l, a, h, u; function E(t, e, i) { return [ parseFloat(t[0]) * (a.test(t[0]) ? e / 100 : 1), parseFloat(t[1]) * (a.test(t[1]) ? i / 100 : 1), ]; } function L(t, e) { return parseInt(x.css(t, e), 10) || 0; } function N(t) { return null != t && t === t.window; } (x.ui = x.ui || {}), (x.ui.version = "1.13.1"), /*! * jQuery UI :data 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license */ x.extend(x.expr.pseudos, { data: x.expr.createPseudo ? x.expr.createPseudo(function (e) { return function (t) { return !!x.data(t, e); }; }) : function (t, e, i) { return !!x.data(t, i[3]); }, }), /*! * jQuery UI Disable Selection 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license */ x.fn.extend({ disableSelection: ((t = "onselectstart" in document.createElement("div") ? "selectstart" : "mousedown"), function () { return this.on(t + ".ui-disableSelection", function (t) { t.preventDefault(); }); }), enableSelection: function () { return this.off(".ui-disableSelection"); }, }), /*! * jQuery UI Focusable 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license */ (x.ui.focusable = function (t, e) { var i, n, o, s, r = t.nodeName.toLowerCase(); return "area" === r ? ((n = (i = t.parentNode).name), !(!t.href || !n || "map" !== i.nodeName.toLowerCase()) && 0 < (n = x("img[usemap='#" + n + "']")).length && n.is(":visible")) : (/^(input|select|textarea|button|object)$/.test(r) ? (o = !t.disabled) && (s = x(t).closest("fieldset")[0]) && (o = !s.disabled) : (o = ("a" === r && t.href) || e), o && x(t).is(":visible") && (function (t) { var e = t.css("visibility"); for (; "inherit" === e; ) (t = t.parent()), (e = t.css("visibility")); return "visible" === e; })(x(t))); }), x.extend(x.expr.pseudos, { focusable: function (t) { return x.ui.focusable(t, null != x.attr(t, "tabindex")); }, }), (x.fn._form = function () { return "string" == typeof this[0].form ? this.closest("form") : x(this[0].form); }), /*! * jQuery UI Form Reset Mixin 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license */ (x.ui.formResetMixin = { _formResetHandler: function () { var e = x(this); setTimeout(function () { var t = e.data("ui-form-reset-instances"); x.each(t, function () { this.refresh(); }); }); }, _bindFormResetHandler: function () { var t; (this.form = this.element._form()), this.form.length && ((t = this.form.data("ui-form-reset-instances") || []).length || this.form.on("reset.ui-form-reset", this._formResetHandler), t.push(this), this.form.data("ui-form-reset-instances", t)); }, _unbindFormResetHandler: function () { var t; this.form.length && ((t = this.form.data("ui-form-reset-instances")).splice( x.inArray(this, t), 1 ), t.length ? this.form.data("ui-form-reset-instances", t) : this.form .removeData("ui-form-reset-instances") .off("reset.ui-form-reset")); }, }), (x.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase())), /*! * jQuery UI Support for jQuery core 1.8.x and newer 1.13.0 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * */ x.expr.pseudos || (x.expr.pseudos = x.expr[":"]), x.uniqueSort || (x.uniqueSort = x.unique), x.escapeSelector || ((e = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g), (i = function (t, e) { return e ? "\0" === t ? "�" : t.slice(0, -1) + "\\" + t.charCodeAt(t.length - 1).toString(16) + " " : "\\" + t; }), (x.escapeSelector = function (t) { return (t + "").replace(e, i); })), (x.fn.even && x.fn.odd) || x.fn.extend({ even: function () { return this.filter(function (t) { return t % 2 == 0; }); }, odd: function () { return this.filter(function (t) { return t % 2 == 1; }); }, }), /*! * jQuery UI Keycode 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license */ (x.ui.keyCode = { BACKSPACE: 8, COMMA: 188, DELETE: 46, DOWN: 40, END: 35, ENTER: 13, ESCAPE: 27, HOME: 36, LEFT: 37, PAGE_DOWN: 34, PAGE_UP: 33, PERIOD: 190, RIGHT: 39, SPACE: 32, TAB: 9, UP: 38, }), /*! * jQuery UI Labels 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license */ (x.fn.labels = function () { var t, e, i; return this.length ? this[0].labels && this[0].labels.length ? this.pushStack(this[0].labels) : ((e = this.eq(0).parents("label")), (t = this.attr("id")) && ((i = (i = this.eq(0).parents().last()).add( (i.length ? i : this).siblings() )), (t = "label[for='" + x.escapeSelector(t) + "']"), (e = e.add(i.find(t).addBack(t)))), this.pushStack(e)) : this.pushStack([]); }), (x.ui.plugin = { add: function (t, e, i) { var n, o = x.ui[t].prototype; for (n in i) (o.plugins[n] = o.plugins[n] || []), o.plugins[n].push([e, i[n]]); }, call: function (t, e, i, n) { var o, s = t.plugins[e]; if ( s && (n || (t.element[0].parentNode && 11 !== t.element[0].parentNode.nodeType)) ) for (o = 0; o < s.length; o++) t.options[s[o][0]] && s[o][1].apply(t.element, i); }, }), /*! * jQuery UI Position 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/position/ */ (W = Math.max), (C = Math.abs), (o = /left|center|right/), (s = /top|center|bottom/), (r = /[\+\-]\d+(\.[\d]+)?%?/), (l = /^\w+/), (a = /%$/), (h = x.fn.position), (x.position = { scrollbarWidth: function () { if (void 0 !== n) return n; var t, e = x( "
              " ), i = e.children()[0]; return ( x("body").append(e), (t = i.offsetWidth), e.css("overflow", "scroll"), t === (i = i.offsetWidth) && (i = e[0].clientWidth), e.remove(), (n = t - i) ); }, getScrollInfo: function (t) { var e = t.isWindow || t.isDocument ? "" : t.element.css("overflow-x"), i = t.isWindow || t.isDocument ? "" : t.element.css("overflow-y"), e = "scroll" === e || ("auto" === e && t.width < t.element[0].scrollWidth); return { width: "scroll" === i || ("auto" === i && t.height < t.element[0].scrollHeight) ? x.position.scrollbarWidth() : 0, height: e ? x.position.scrollbarWidth() : 0, }; }, getWithinInfo: function (t) { var e = x(t || window), i = N(e[0]), n = !!e[0] && 9 === e[0].nodeType; return { element: e, isWindow: i, isDocument: n, offset: !i && !n ? x(t).offset() : { left: 0, top: 0 }, scrollLeft: e.scrollLeft(), scrollTop: e.scrollTop(), width: e.outerWidth(), height: e.outerHeight(), }; }, }), (x.fn.position = function (f) { if (!f || !f.of) return h.apply(this, arguments); var c, d, p, g, m, t, v = "string" == typeof (f = x.extend({}, f)).of ? x(document).find(f.of) : x(f.of), y = x.position.getWithinInfo(f.within), w = x.position.getScrollInfo(y), b = (f.collision || "flip").split(" "), _ = {}, e = 9 === (t = (e = v)[0]).nodeType ? { width: e.width(), height: e.height(), offset: { top: 0, left: 0 }, } : N(t) ? { width: e.width(), height: e.height(), offset: { top: e.scrollTop(), left: e.scrollLeft() }, } : t.preventDefault ? { width: 0, height: 0, offset: { top: t.pageY, left: t.pageX } } : { width: e.outerWidth(), height: e.outerHeight(), offset: e.offset(), }; return ( v[0].preventDefault && (f.at = "left top"), (d = e.width), (p = e.height), (m = x.extend({}, (g = e.offset))), x.each(["my", "at"], function () { var t, e, i = (f[this] || "").split(" "); ((i = 1 === i.length ? o.test(i[0]) ? i.concat(["center"]) : s.test(i[0]) ? ["center"].concat(i) : ["center", "center"] : i)[0] = o.test(i[0]) ? i[0] : "center"), (i[1] = s.test(i[1]) ? i[1] : "center"), (t = r.exec(i[0])), (e = r.exec(i[1])), (_[this] = [t ? t[0] : 0, e ? e[0] : 0]), (f[this] = [l.exec(i[0])[0], l.exec(i[1])[0]]); }), 1 === b.length && (b[1] = b[0]), "right" === f.at[0] ? (m.left += d) : "center" === f.at[0] && (m.left += d / 2), "bottom" === f.at[1] ? (m.top += p) : "center" === f.at[1] && (m.top += p / 2), (c = E(_.at, d, p)), (m.left += c[0]), (m.top += c[1]), this.each(function () { var i, t, r = x(this), l = r.outerWidth(), a = r.outerHeight(), e = L(this, "marginLeft"), n = L(this, "marginTop"), o = l + e + L(this, "marginRight") + w.width, s = a + n + L(this, "marginBottom") + w.height, h = x.extend({}, m), u = E(_.my, r.outerWidth(), r.outerHeight()); "right" === f.my[0] ? (h.left -= l) : "center" === f.my[0] && (h.left -= l / 2), "bottom" === f.my[1] ? (h.top -= a) : "center" === f.my[1] && (h.top -= a / 2), (h.left += u[0]), (h.top += u[1]), (i = { marginLeft: e, marginTop: n }), x.each(["left", "top"], function (t, e) { x.ui.position[b[t]] && x.ui.position[b[t]][e](h, { targetWidth: d, targetHeight: p, elemWidth: l, elemHeight: a, collisionPosition: i, collisionWidth: o, collisionHeight: s, offset: [c[0] + u[0], c[1] + u[1]], my: f.my, at: f.at, within: y, elem: r, }); }), f.using && (t = function (t) { var e = g.left - h.left, i = e + d - l, n = g.top - h.top, o = n + p - a, s = { target: { element: v, left: g.left, top: g.top, width: d, height: p, }, element: { element: r, left: h.left, top: h.top, width: l, height: a, }, horizontal: i < 0 ? "left" : 0 < e ? "right" : "center", vertical: o < 0 ? "top" : 0 < n ? "bottom" : "middle", }; d < l && C(e + i) < d && (s.horizontal = "center"), p < a && C(n + o) < p && (s.vertical = "middle"), W(C(e), C(i)) > W(C(n), C(o)) ? (s.important = "horizontal") : (s.important = "vertical"), f.using.call(this, t, s); }), r.offset(x.extend(h, { using: t })); }) ); }), (x.ui.position = { fit: { left: function (t, e) { var i = e.within, n = i.isWindow ? i.scrollLeft : i.offset.left, o = i.width, s = t.left - e.collisionPosition.marginLeft, r = n - s, l = s + e.collisionWidth - o - n; e.collisionWidth > o ? 0 < r && l <= 0 ? ((i = t.left + r + e.collisionWidth - o - n), (t.left += r - i)) : (t.left = !(0 < l && r <= 0) && l < r ? n + o - e.collisionWidth : n) : 0 < r ? (t.left += r) : 0 < l ? (t.left -= l) : (t.left = W(t.left - s, t.left)); }, top: function (t, e) { var i = e.within, n = i.isWindow ? i.scrollTop : i.offset.top, o = e.within.height, s = t.top - e.collisionPosition.marginTop, r = n - s, l = s + e.collisionHeight - o - n; e.collisionHeight > o ? 0 < r && l <= 0 ? ((i = t.top + r + e.collisionHeight - o - n), (t.top += r - i)) : (t.top = !(0 < l && r <= 0) && l < r ? n + o - e.collisionHeight : n) : 0 < r ? (t.top += r) : 0 < l ? (t.top -= l) : (t.top = W(t.top - s, t.top)); }, }, flip: { left: function (t, e) { var i = e.within, n = i.offset.left + i.scrollLeft, o = i.width, s = i.isWindow ? i.scrollLeft : i.offset.left, r = t.left - e.collisionPosition.marginLeft, l = r - s, a = r + e.collisionWidth - o - s, h = "left" === e.my[0] ? -e.elemWidth : "right" === e.my[0] ? e.elemWidth : 0, i = "left" === e.at[0] ? e.targetWidth : "right" === e.at[0] ? -e.targetWidth : 0, r = -2 * e.offset[0]; l < 0 ? ((n = t.left + h + i + r + e.collisionWidth - o - n) < 0 || n < C(l)) && (t.left += h + i + r) : 0 < a && (0 < (s = t.left - e.collisionPosition.marginLeft + h + i + r - s) || C(s) < a) && (t.left += h + i + r); }, top: function (t, e) { var i = e.within, n = i.offset.top + i.scrollTop, o = i.height, s = i.isWindow ? i.scrollTop : i.offset.top, r = t.top - e.collisionPosition.marginTop, l = r - s, a = r + e.collisionHeight - o - s, h = "top" === e.my[1] ? -e.elemHeight : "bottom" === e.my[1] ? e.elemHeight : 0, i = "top" === e.at[1] ? e.targetHeight : "bottom" === e.at[1] ? -e.targetHeight : 0, r = -2 * e.offset[1]; l < 0 ? ((n = t.top + h + i + r + e.collisionHeight - o - n) < 0 || n < C(l)) && (t.top += h + i + r) : 0 < a && (0 < (s = t.top - e.collisionPosition.marginTop + h + i + r - s) || C(s) < a) && (t.top += h + i + r); }, }, flipfit: { left: function () { x.ui.position.flip.left.apply(this, arguments), x.ui.position.fit.left.apply(this, arguments); }, top: function () { x.ui.position.flip.top.apply(this, arguments), x.ui.position.fit.top.apply(this, arguments); }, }, }), (x.ui.safeActiveElement = function (e) { var i; try { i = e.activeElement; } catch (t) { i = e.body; } return (i = !(i = i || e.body).nodeName ? e.body : i); }), (x.ui.safeBlur = function (t) { t && "body" !== t.nodeName.toLowerCase() && x(t).trigger("blur"); }), /*! * jQuery UI Scroll Parent 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license */ (x.fn.scrollParent = function (t) { var e = this.css("position"), i = "absolute" === e, n = t ? /(auto|scroll|hidden)/ : /(auto|scroll)/, t = this.parents() .filter(function () { var t = x(this); return ( (!i || "static" !== t.css("position")) && n.test( t.css("overflow") + t.css("overflow-y") + t.css("overflow-x") ) ); }) .eq(0); return "fixed" !== e && t.length ? t : x(this[0].ownerDocument || document); }), /*! * jQuery UI Tabbable 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license */ x.extend(x.expr.pseudos, { tabbable: function (t) { var e = x.attr(t, "tabindex"), i = null != e; return (!i || 0 <= e) && x.ui.focusable(t, i); }, }), /*! * jQuery UI Unique ID 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license */ x.fn.extend({ uniqueId: ((u = 0), function () { return this.each(function () { this.id || (this.id = "ui-id-" + ++u); }); }), removeUniqueId: function () { return this.each(function () { /^ui-id-\d+$/.test(this.id) && x(this).removeAttr("id"); }); }, }); /*! * jQuery UI Widget 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license */ var f, c = 0, d = Array.prototype.hasOwnProperty, p = Array.prototype.slice; (x.cleanData = ((f = x.cleanData), function (t) { for (var e, i, n = 0; null != (i = t[n]); n++) (e = x._data(i, "events")) && e.remove && x(i).triggerHandler("remove"); f(t); })), (x.widget = function (t, i, e) { var n, o, s, r = {}, l = t.split(".")[0], a = l + "-" + (t = t.split(".")[1]); return ( e || ((e = i), (i = x.Widget)), Array.isArray(e) && (e = x.extend.apply(null, [{}].concat(e))), (x.expr.pseudos[a.toLowerCase()] = function (t) { return !!x.data(t, a); }), (x[l] = x[l] || {}), (n = x[l][t]), (o = x[l][t] = function (t, e) { if (!this || !this._createWidget) return new o(t, e); arguments.length && this._createWidget(t, e); }), x.extend(o, n, { version: e.version, _proto: x.extend({}, e), _childConstructors: [], }), ((s = new i()).options = x.widget.extend({}, s.options)), x.each(e, function (e, n) { function o() { return i.prototype[e].apply(this, arguments); } function s(t) { return i.prototype[e].apply(this, t); } r[e] = "function" == typeof n ? function () { var t, e = this._super, i = this._superApply; return ( (this._super = o), (this._superApply = s), (t = n.apply(this, arguments)), (this._super = e), (this._superApply = i), t ); } : n; }), (o.prototype = x.widget.extend( s, { widgetEventPrefix: (n && s.widgetEventPrefix) || t }, r, { constructor: o, namespace: l, widgetName: t, widgetFullName: a } )), n ? (x.each(n._childConstructors, function (t, e) { var i = e.prototype; x.widget(i.namespace + "." + i.widgetName, o, e._proto); }), delete n._childConstructors) : i._childConstructors.push(o), x.widget.bridge(t, o), o ); }), (x.widget.extend = function (t) { for (var e, i, n = p.call(arguments, 1), o = 0, s = n.length; o < s; o++) for (e in n[o]) (i = n[o][e]), d.call(n[o], e) && void 0 !== i && (x.isPlainObject(i) ? (t[e] = x.isPlainObject(t[e]) ? x.widget.extend({}, t[e], i) : x.widget.extend({}, i)) : (t[e] = i)); return t; }), (x.widget.bridge = function (s, e) { var r = e.prototype.widgetFullName || s; x.fn[s] = function (i) { var t = "string" == typeof i, n = p.call(arguments, 1), o = this; return ( t ? this.length || "instance" !== i ? this.each(function () { var t, e = x.data(this, r); return "instance" === i ? ((o = e), !1) : e ? "function" != typeof e[i] || "_" === i.charAt(0) ? x.error( "no such method '" + i + "' for " + s + " widget instance" ) : (t = e[i].apply(e, n)) !== e && void 0 !== t ? ((o = t && t.jquery ? o.pushStack(t.get()) : t), !1) : void 0 : x.error( "cannot call methods on " + s + " prior to initialization; attempted to call method '" + i + "'" ); }) : (o = void 0) : (n.length && (i = x.widget.extend.apply(null, [i].concat(n))), this.each(function () { var t = x.data(this, r); t ? (t.option(i || {}), t._init && t._init()) : x.data(this, r, new e(i, this)); })), o ); }; }), (x.Widget = function () {}), (x.Widget._childConstructors = []), (x.Widget.prototype = { widgetName: "widget", widgetEventPrefix: "", defaultElement: "
              ", options: { classes: {}, disabled: !1, create: null }, _createWidget: function (t, e) { (e = x(e || this.defaultElement || this)[0]), (this.element = x(e)), (this.uuid = c++), (this.eventNamespace = "." + this.widgetName + this.uuid), (this.bindings = x()), (this.hoverable = x()), (this.focusable = x()), (this.classesElementLookup = {}), e !== this && (x.data(e, this.widgetFullName, this), this._on(!0, this.element, { remove: function (t) { t.target === e && this.destroy(); }, }), (this.document = x(e.style ? e.ownerDocument : e.document || e)), (this.window = x( this.document[0].defaultView || this.document[0].parentWindow ))), (this.options = x.widget.extend( {}, this.options, this._getCreateOptions(), t )), this._create(), this.options.disabled && this._setOptionDisabled(this.options.disabled), this._trigger("create", null, this._getCreateEventData()), this._init(); }, _getCreateOptions: function () { return {}; }, _getCreateEventData: x.noop, _create: x.noop, _init: x.noop, destroy: function () { var i = this; this._destroy(), x.each(this.classesElementLookup, function (t, e) { i._removeClass(e, t); }), this.element.off(this.eventNamespace).removeData(this.widgetFullName), this.widget().off(this.eventNamespace).removeAttr("aria-disabled"), this.bindings.off(this.eventNamespace); }, _destroy: x.noop, widget: function () { return this.element; }, option: function (t, e) { var i, n, o, s = t; if (0 === arguments.length) return x.widget.extend({}, this.options); if ("string" == typeof t) if (((s = {}), (t = (i = t.split(".")).shift()), i.length)) { for ( n = s[t] = x.widget.extend({}, this.options[t]), o = 0; o < i.length - 1; o++ ) (n[i[o]] = n[i[o]] || {}), (n = n[i[o]]); if (((t = i.pop()), 1 === arguments.length)) return void 0 === n[t] ? null : n[t]; n[t] = e; } else { if (1 === arguments.length) return void 0 === this.options[t] ? null : this.options[t]; s[t] = e; } return this._setOptions(s), this; }, _setOptions: function (t) { for (var e in t) this._setOption(e, t[e]); return this; }, _setOption: function (t, e) { return ( "classes" === t && this._setOptionClasses(e), (this.options[t] = e), "disabled" === t && this._setOptionDisabled(e), this ); }, _setOptionClasses: function (t) { var e, i, n; for (e in t) (n = this.classesElementLookup[e]), t[e] !== this.options.classes[e] && n && n.length && ((i = x(n.get())), this._removeClass(n, e), i.addClass( this._classes({ element: i, keys: e, classes: t, add: !0 }) )); }, _setOptionDisabled: function (t) { this._toggleClass( this.widget(), this.widgetFullName + "-disabled", null, !!t ), t && (this._removeClass(this.hoverable, null, "ui-state-hover"), this._removeClass(this.focusable, null, "ui-state-focus")); }, enable: function () { return this._setOptions({ disabled: !1 }); }, disable: function () { return this._setOptions({ disabled: !0 }); }, _classes: function (o) { var s = [], r = this; function t(t, e) { for (var i, n = 0; n < t.length; n++) (i = r.classesElementLookup[t[n]] || x()), (i = o.add ? ((function () { var i = []; o.element.each(function (t, e) { x .map(r.classesElementLookup, function (t) { return t; }) .some(function (t) { return t.is(e); }) || i.push(e); }), r._on(x(i), { remove: "_untrackClassesElement" }); })(), x(x.uniqueSort(i.get().concat(o.element.get())))) : x(i.not(o.element).get())), (r.classesElementLookup[t[n]] = i), s.push(t[n]), e && o.classes[t[n]] && s.push(o.classes[t[n]]); } return ( (o = x.extend( { element: this.element, classes: this.options.classes || {} }, o )).keys && t(o.keys.match(/\S+/g) || [], !0), o.extra && t(o.extra.match(/\S+/g) || []), s.join(" ") ); }, _untrackClassesElement: function (i) { var n = this; x.each(n.classesElementLookup, function (t, e) { -1 !== x.inArray(i.target, e) && (n.classesElementLookup[t] = x(e.not(i.target).get())); }), this._off(x(i.target)); }, _removeClass: function (t, e, i) { return this._toggleClass(t, e, i, !1); }, _addClass: function (t, e, i) { return this._toggleClass(t, e, i, !0); }, _toggleClass: function (t, e, i, n) { var o = "string" == typeof t || null === t, i = { extra: o ? e : i, keys: o ? t : e, element: o ? this.element : t, add: (n = "boolean" == typeof n ? n : i), }; return i.element.toggleClass(this._classes(i), n), this; }, _on: function (o, s, t) { var r, l = this; "boolean" != typeof o && ((t = s), (s = o), (o = !1)), t ? ((s = r = x(s)), (this.bindings = this.bindings.add(s))) : ((t = s), (s = this.element), (r = this.widget())), x.each(t, function (t, e) { function i() { if ( o || (!0 !== l.options.disabled && !x(this).hasClass("ui-state-disabled")) ) return ("string" == typeof e ? l[e] : e).apply(l, arguments); } "string" != typeof e && (i.guid = e.guid = e.guid || i.guid || x.guid++); var n = t.match(/^([\w:-]*)\s*(.*)$/), t = n[1] + l.eventNamespace, n = n[2]; n ? r.on(t, n, i) : s.on(t, i); }); }, _off: function (t, e) { (e = (e || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace), t.off(e), (this.bindings = x(this.bindings.not(t).get())), (this.focusable = x(this.focusable.not(t).get())), (this.hoverable = x(this.hoverable.not(t).get())); }, _delay: function (t, e) { var i = this; return setTimeout(function () { return ("string" == typeof t ? i[t] : t).apply(i, arguments); }, e || 0); }, _hoverable: function (t) { (this.hoverable = this.hoverable.add(t)), this._on(t, { mouseenter: function (t) { this._addClass(x(t.currentTarget), null, "ui-state-hover"); }, mouseleave: function (t) { this._removeClass(x(t.currentTarget), null, "ui-state-hover"); }, }); }, _focusable: function (t) { (this.focusable = this.focusable.add(t)), this._on(t, { focusin: function (t) { this._addClass(x(t.currentTarget), null, "ui-state-focus"); }, focusout: function (t) { this._removeClass(x(t.currentTarget), null, "ui-state-focus"); }, }); }, _trigger: function (t, e, i) { var n, o, s = this.options[t]; if ( ((i = i || {}), ((e = x.Event(e)).type = ( t === this.widgetEventPrefix ? t : this.widgetEventPrefix + t ).toLowerCase()), (e.target = this.element[0]), (o = e.originalEvent)) ) for (n in o) n in e || (e[n] = o[n]); return ( this.element.trigger(e, i), !( ("function" == typeof s && !1 === s.apply(this.element[0], [e].concat(i))) || e.isDefaultPrevented() ) ); }, }), x.each({ show: "fadeIn", hide: "fadeOut" }, function (s, r) { x.Widget.prototype["_" + s] = function (e, t, i) { var n, o = (t = "string" == typeof t ? { effect: t } : t) ? (!0 !== t && "number" != typeof t && t.effect) || r : s; "number" == typeof (t = t || {}) ? (t = { duration: t }) : !0 === t && (t = {}), (n = !x.isEmptyObject(t)), (t.complete = i), t.delay && e.delay(t.delay), n && x.effects && x.effects.effect[o] ? e[s](t) : o !== s && e[o] ? e[o](t.duration, t.easing, i) : e.queue(function (t) { x(this)[s](), i && i.call(e[0]), t(); }); }; }); }); !(function (e, t) { "object" == typeof exports && "undefined" != typeof module ? (module.exports = t()) : "function" == typeof define && define.amd ? define(t) : ((e = e || self).Swiper = t()); })(this, function () { "use strict"; var e = "undefined" == typeof document ? { body: {}, addEventListener: function () {}, removeEventListener: function () {}, activeElement: { blur: function () {}, nodeName: "" }, querySelector: function () { return null; }, querySelectorAll: function () { return []; }, getElementById: function () { return null; }, createEvent: function () { return { initEvent: function () {} }; }, createElement: function () { return { children: [], childNodes: [], style: {}, setAttribute: function () {}, getElementsByTagName: function () { return []; }, }; }, location: { hash: "" }, } : document, t = "undefined" == typeof window ? { document: e, navigator: { userAgent: "" }, location: {}, history: {}, CustomEvent: function () { return this; }, addEventListener: function () {}, removeEventListener: function () {}, getComputedStyle: function () { return { getPropertyValue: function () { return ""; }, }; }, Image: function () {}, Date: function () {}, screen: {}, setTimeout: function () {}, clearTimeout: function () {}, } : window, i = function (e) { for (var t = 0; t < e.length; t += 1) this[t] = e[t]; return (this.length = e.length), this; }; function s(s, a) { var r = [], n = 0; if (s && !a && s instanceof i) return s; if (s) if ("string" == typeof s) { var o, l, d = s.trim(); if (d.indexOf("<") >= 0 && d.indexOf(">") >= 0) { var h = "div"; for ( 0 === d.indexOf(":~]/) ? (a || e).querySelectorAll(s.trim()) : [e.getElementById(s.trim().split("#")[1])], n = 0; n < o.length; n += 1 ) o[n] && r.push(o[n]); } else if (s.nodeType || s === t || s === e) r.push(s); else if (s.length > 0 && s[0].nodeType) for (n = 0; n < s.length; n += 1) r.push(s[n]); return new i(r); } function a(e) { for (var t = [], i = 0; i < e.length; i += 1) -1 === t.indexOf(e[i]) && t.push(e[i]); return t; } (s.fn = i.prototype), (s.Class = i), (s.Dom7 = i); var r = { addClass: function (e) { if (void 0 === e) return this; for (var t = e.split(" "), i = 0; i < t.length; i += 1) for (var s = 0; s < this.length; s += 1) void 0 !== this[s] && void 0 !== this[s].classList && this[s].classList.add(t[i]); return this; }, removeClass: function (e) { for (var t = e.split(" "), i = 0; i < t.length; i += 1) for (var s = 0; s < this.length; s += 1) void 0 !== this[s] && void 0 !== this[s].classList && this[s].classList.remove(t[i]); return this; }, hasClass: function (e) { return !!this[0] && this[0].classList.contains(e); }, toggleClass: function (e) { for (var t = e.split(" "), i = 0; i < t.length; i += 1) for (var s = 0; s < this.length; s += 1) void 0 !== this[s] && void 0 !== this[s].classList && this[s].classList.toggle(t[i]); return this; }, attr: function (e, t) { var i = arguments; if (1 === arguments.length && "string" == typeof e) return this[0] ? this[0].getAttribute(e) : void 0; for (var s = 0; s < this.length; s += 1) if (2 === i.length) this[s].setAttribute(e, t); else for (var a in e) (this[s][a] = e[a]), this[s].setAttribute(a, e[a]); return this; }, removeAttr: function (e) { for (var t = 0; t < this.length; t += 1) this[t].removeAttribute(e); return this; }, data: function (e, t) { var i; if (void 0 !== t) { for (var s = 0; s < this.length; s += 1) (i = this[s]).dom7ElementDataStorage || (i.dom7ElementDataStorage = {}), (i.dom7ElementDataStorage[e] = t); return this; } if ((i = this[0])) { if (i.dom7ElementDataStorage && e in i.dom7ElementDataStorage) return i.dom7ElementDataStorage[e]; var a = i.getAttribute("data-" + e); return a || void 0; } }, transform: function (e) { for (var t = 0; t < this.length; t += 1) { var i = this[t].style; (i.webkitTransform = e), (i.transform = e); } return this; }, transition: function (e) { "string" != typeof e && (e += "ms"); for (var t = 0; t < this.length; t += 1) { var i = this[t].style; (i.webkitTransitionDuration = e), (i.transitionDuration = e); } return this; }, on: function () { for (var e, t = [], i = arguments.length; i--; ) t[i] = arguments[i]; var a = t[0], r = t[1], n = t[2], o = t[3]; function l(e) { var t = e.target; if (t) { var i = e.target.dom7EventData || []; if ((i.indexOf(e) < 0 && i.unshift(e), s(t).is(r))) n.apply(t, i); else for (var a = s(t).parents(), o = 0; o < a.length; o += 1) s(a[o]).is(r) && n.apply(a[o], i); } } function d(e) { var t = (e && e.target && e.target.dom7EventData) || []; t.indexOf(e) < 0 && t.unshift(e), n.apply(this, t); } "function" == typeof t[1] && ((a = (e = t)[0]), (n = e[1]), (o = e[2]), (r = void 0)), o || (o = !1); for (var h, p = a.split(" "), c = 0; c < this.length; c += 1) { var u = this[c]; if (r) for (h = 0; h < p.length; h += 1) { var v = p[h]; u.dom7LiveListeners || (u.dom7LiveListeners = {}), u.dom7LiveListeners[v] || (u.dom7LiveListeners[v] = []), u.dom7LiveListeners[v].push({ listener: n, proxyListener: l }), u.addEventListener(v, l, o); } else for (h = 0; h < p.length; h += 1) { var f = p[h]; u.dom7Listeners || (u.dom7Listeners = {}), u.dom7Listeners[f] || (u.dom7Listeners[f] = []), u.dom7Listeners[f].push({ listener: n, proxyListener: d }), u.addEventListener(f, d, o); } } return this; }, off: function () { for (var e, t = [], i = arguments.length; i--; ) t[i] = arguments[i]; var s = t[0], a = t[1], r = t[2], n = t[3]; "function" == typeof t[1] && ((s = (e = t)[0]), (r = e[1]), (n = e[2]), (a = void 0)), n || (n = !1); for (var o = s.split(" "), l = 0; l < o.length; l += 1) for (var d = o[l], h = 0; h < this.length; h += 1) { var p = this[h], c = void 0; if ( (!a && p.dom7Listeners ? (c = p.dom7Listeners[d]) : a && p.dom7LiveListeners && (c = p.dom7LiveListeners[d]), c && c.length) ) for (var u = c.length - 1; u >= 0; u -= 1) { var v = c[u]; r && v.listener === r ? (p.removeEventListener(d, v.proxyListener, n), c.splice(u, 1)) : r && v.listener && v.listener.dom7proxy && v.listener.dom7proxy === r ? (p.removeEventListener(d, v.proxyListener, n), c.splice(u, 1)) : r || (p.removeEventListener(d, v.proxyListener, n), c.splice(u, 1)); } } return this; }, trigger: function () { for (var i = [], s = arguments.length; s--; ) i[s] = arguments[s]; for (var a = i[0].split(" "), r = i[1], n = 0; n < a.length; n += 1) for (var o = a[n], l = 0; l < this.length; l += 1) { var d = this[l], h = void 0; try { h = new t.CustomEvent(o, { detail: r, bubbles: !0, cancelable: !0, }); } catch (t) { (h = e.createEvent("Event")).initEvent(o, !0, !0), (h.detail = r); } (d.dom7EventData = i.filter(function (e, t) { return t > 0; })), d.dispatchEvent(h), (d.dom7EventData = []), delete d.dom7EventData; } return this; }, transitionEnd: function (e) { var t, i = ["webkitTransitionEnd", "transitionend"], s = this; function a(r) { if (r.target === this) for (e.call(this, r), t = 0; t < i.length; t += 1) s.off(i[t], a); } if (e) for (t = 0; t < i.length; t += 1) s.on(i[t], a); return this; }, outerWidth: function (e) { if (this.length > 0) { if (e) { var t = this.styles(); return ( this[0].offsetWidth + parseFloat(t.getPropertyValue("margin-right")) + parseFloat(t.getPropertyValue("margin-left")) ); } return this[0].offsetWidth; } return null; }, outerHeight: function (e) { if (this.length > 0) { if (e) { var t = this.styles(); return ( this[0].offsetHeight + parseFloat(t.getPropertyValue("margin-top")) + parseFloat(t.getPropertyValue("margin-bottom")) ); } return this[0].offsetHeight; } return null; }, offset: function () { if (this.length > 0) { var i = this[0], s = i.getBoundingClientRect(), a = e.body, r = i.clientTop || a.clientTop || 0, n = i.clientLeft || a.clientLeft || 0, o = i === t ? t.scrollY : i.scrollTop, l = i === t ? t.scrollX : i.scrollLeft; return { top: s.top + o - r, left: s.left + l - n }; } return null; }, css: function (e, i) { var s; if (1 === arguments.length) { if ("string" != typeof e) { for (s = 0; s < this.length; s += 1) for (var a in e) this[s].style[a] = e[a]; return this; } if (this[0]) return t.getComputedStyle(this[0], null).getPropertyValue(e); } if (2 === arguments.length && "string" == typeof e) { for (s = 0; s < this.length; s += 1) this[s].style[e] = i; return this; } return this; }, each: function (e) { if (!e) return this; for (var t = 0; t < this.length; t += 1) if (!1 === e.call(this[t], t, this[t])) return this; return this; }, html: function (e) { if (void 0 === e) return this[0] ? this[0].innerHTML : void 0; for (var t = 0; t < this.length; t += 1) this[t].innerHTML = e; return this; }, text: function (e) { if (void 0 === e) return this[0] ? this[0].textContent.trim() : null; for (var t = 0; t < this.length; t += 1) this[t].textContent = e; return this; }, is: function (a) { var r, n, o = this[0]; if (!o || void 0 === a) return !1; if ("string" == typeof a) { if (o.matches) return o.matches(a); if (o.webkitMatchesSelector) return o.webkitMatchesSelector(a); if (o.msMatchesSelector) return o.msMatchesSelector(a); for (r = s(a), n = 0; n < r.length; n += 1) if (r[n] === o) return !0; return !1; } if (a === e) return o === e; if (a === t) return o === t; if (a.nodeType || a instanceof i) { for (r = a.nodeType ? [a] : a, n = 0; n < r.length; n += 1) if (r[n] === o) return !0; return !1; } return !1; }, index: function () { var e, t = this[0]; if (t) { for (e = 0; null !== (t = t.previousSibling); ) 1 === t.nodeType && (e += 1); return e; } }, eq: function (e) { if (void 0 === e) return this; var t, s = this.length; return new i( e > s - 1 ? [] : e < 0 ? ((t = s + e) < 0 ? [] : [this[t]]) : [this[e]] ); }, append: function () { for (var t, s = [], a = arguments.length; a--; ) s[a] = arguments[a]; for (var r = 0; r < s.length; r += 1) { t = s[r]; for (var n = 0; n < this.length; n += 1) if ("string" == typeof t) { var o = e.createElement("div"); for (o.innerHTML = t; o.firstChild; ) this[n].appendChild(o.firstChild); } else if (t instanceof i) for (var l = 0; l < t.length; l += 1) this[n].appendChild(t[l]); else this[n].appendChild(t); } return this; }, prepend: function (t) { var s, a; for (s = 0; s < this.length; s += 1) if ("string" == typeof t) { var r = e.createElement("div"); for (r.innerHTML = t, a = r.childNodes.length - 1; a >= 0; a -= 1) this[s].insertBefore(r.childNodes[a], this[s].childNodes[0]); } else if (t instanceof i) for (a = 0; a < t.length; a += 1) this[s].insertBefore(t[a], this[s].childNodes[0]); else this[s].insertBefore(t, this[s].childNodes[0]); return this; }, next: function (e) { return this.length > 0 ? e ? this[0].nextElementSibling && s(this[0].nextElementSibling).is(e) ? new i([this[0].nextElementSibling]) : new i([]) : this[0].nextElementSibling ? new i([this[0].nextElementSibling]) : new i([]) : new i([]); }, nextAll: function (e) { var t = [], a = this[0]; if (!a) return new i([]); for (; a.nextElementSibling; ) { var r = a.nextElementSibling; e ? s(r).is(e) && t.push(r) : t.push(r), (a = r); } return new i(t); }, prev: function (e) { if (this.length > 0) { var t = this[0]; return e ? t.previousElementSibling && s(t.previousElementSibling).is(e) ? new i([t.previousElementSibling]) : new i([]) : t.previousElementSibling ? new i([t.previousElementSibling]) : new i([]); } return new i([]); }, prevAll: function (e) { var t = [], a = this[0]; if (!a) return new i([]); for (; a.previousElementSibling; ) { var r = a.previousElementSibling; e ? s(r).is(e) && t.push(r) : t.push(r), (a = r); } return new i(t); }, parent: function (e) { for (var t = [], i = 0; i < this.length; i += 1) null !== this[i].parentNode && (e ? s(this[i].parentNode).is(e) && t.push(this[i].parentNode) : t.push(this[i].parentNode)); return s(a(t)); }, parents: function (e) { for (var t = [], i = 0; i < this.length; i += 1) for (var r = this[i].parentNode; r; ) e ? s(r).is(e) && t.push(r) : t.push(r), (r = r.parentNode); return s(a(t)); }, closest: function (e) { var t = this; return void 0 === e ? new i([]) : (t.is(e) || (t = t.parents(e).eq(0)), t); }, find: function (e) { for (var t = [], s = 0; s < this.length; s += 1) for (var a = this[s].querySelectorAll(e), r = 0; r < a.length; r += 1) t.push(a[r]); return new i(t); }, children: function (e) { for (var t = [], r = 0; r < this.length; r += 1) for (var n = this[r].childNodes, o = 0; o < n.length; o += 1) e ? 1 === n[o].nodeType && s(n[o]).is(e) && t.push(n[o]) : 1 === n[o].nodeType && t.push(n[o]); return new i(a(t)); }, filter: function (e) { for (var t = [], s = 0; s < this.length; s += 1) e.call(this[s], s, this[s]) && t.push(this[s]); return new i(t); }, remove: function () { for (var e = 0; e < this.length; e += 1) this[e].parentNode && this[e].parentNode.removeChild(this[e]); return this; }, add: function () { for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t]; var i, a; for (i = 0; i < e.length; i += 1) { var r = s(e[i]); for (a = 0; a < r.length; a += 1) (this[this.length] = r[a]), (this.length += 1); } return this; }, styles: function () { return this[0] ? t.getComputedStyle(this[0], null) : {}; }, }; Object.keys(r).forEach(function (e) { s.fn[e] = s.fn[e] || r[e]; }); var n = { deleteProps: function (e) { var t = e; Object.keys(t).forEach(function (e) { try { t[e] = null; } catch (e) {} try { delete t[e]; } catch (e) {} }); }, nextTick: function (e, t) { return void 0 === t && (t = 0), setTimeout(e, t); }, now: function () { return Date.now(); }, getTranslate: function (e, i) { var s, a, r; void 0 === i && (i = "x"); var n = t.getComputedStyle(e, null); return ( t.WebKitCSSMatrix ? ((a = n.transform || n.webkitTransform).split(",").length > 6 && (a = a .split(", ") .map(function (e) { return e.replace(",", "."); }) .join(", ")), (r = new t.WebKitCSSMatrix("none" === a ? "" : a))) : (s = (r = n.MozTransform || n.OTransform || n.MsTransform || n.msTransform || n.transform || n .getPropertyValue("transform") .replace("translate(", "matrix(1, 0, 0, 1,")) .toString() .split(",")), "x" === i && (a = t.WebKitCSSMatrix ? r.m41 : 16 === s.length ? parseFloat(s[12]) : parseFloat(s[4])), "y" === i && (a = t.WebKitCSSMatrix ? r.m42 : 16 === s.length ? parseFloat(s[13]) : parseFloat(s[5])), a || 0 ); }, parseUrlQuery: function (e) { var i, s, a, r, n = {}, o = e || t.location.href; if ("string" == typeof o && o.length) for ( r = (s = (o = o.indexOf("?") > -1 ? o.replace(/\S*\?/, "") : "") .split("&") .filter(function (e) { return "" !== e; })).length, i = 0; i < r; i += 1 ) (a = s[i].replace(/#\S+/g, "").split("=")), (n[decodeURIComponent(a[0])] = void 0 === a[1] ? void 0 : decodeURIComponent(a[1]) || ""); return n; }, isObject: function (e) { return ( "object" == typeof e && null !== e && e.constructor && e.constructor === Object ); }, extend: function () { for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t]; for (var i = Object(e[0]), s = 1; s < e.length; s += 1) { var a = e[s]; if (null != a) for ( var r = Object.keys(Object(a)), o = 0, l = r.length; o < l; o += 1 ) { var d = r[o], h = Object.getOwnPropertyDescriptor(a, d); void 0 !== h && h.enumerable && (n.isObject(i[d]) && n.isObject(a[d]) ? n.extend(i[d], a[d]) : !n.isObject(i[d]) && n.isObject(a[d]) ? ((i[d] = {}), n.extend(i[d], a[d])) : (i[d] = a[d])); } } return i; }, }, o = { touch: (t.Modernizr && !0 === t.Modernizr.touch) || !!( t.navigator.maxTouchPoints > 0 || "ontouchstart" in t || (t.DocumentTouch && e instanceof t.DocumentTouch) ), pointerEvents: !!t.PointerEvent && "maxTouchPoints" in t.navigator && t.navigator.maxTouchPoints > 0, observer: "MutationObserver" in t || "WebkitMutationObserver" in t, passiveListener: (function () { var e = !1; try { var i = Object.defineProperty({}, "passive", { get: function () { e = !0; }, }); t.addEventListener("testPassiveListener", null, i); } catch (e) {} return e; })(), gestures: "ongesturestart" in t, }, l = function (e) { void 0 === e && (e = {}); var t = this; (t.params = e), (t.eventsListeners = {}), t.params && t.params.on && Object.keys(t.params.on).forEach(function (e) { t.on(e, t.params.on[e]); }); }, d = { components: { configurable: !0 } }; (l.prototype.on = function (e, t, i) { var s = this; if ("function" != typeof t) return s; var a = i ? "unshift" : "push"; return ( e.split(" ").forEach(function (e) { s.eventsListeners[e] || (s.eventsListeners[e] = []), s.eventsListeners[e][a](t); }), s ); }), (l.prototype.once = function (e, t, i) { var s = this; if ("function" != typeof t) return s; function a() { for (var i = [], r = arguments.length; r--; ) i[r] = arguments[r]; s.off(e, a), a.f7proxy && delete a.f7proxy, t.apply(s, i); } return (a.f7proxy = t), s.on(e, a, i); }), (l.prototype.off = function (e, t) { var i = this; return i.eventsListeners ? (e.split(" ").forEach(function (e) { void 0 === t ? (i.eventsListeners[e] = []) : i.eventsListeners[e] && i.eventsListeners[e].length && i.eventsListeners[e].forEach(function (s, a) { (s === t || (s.f7proxy && s.f7proxy === t)) && i.eventsListeners[e].splice(a, 1); }); }), i) : i; }), (l.prototype.emit = function () { for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t]; var i, s, a, r = this; if (!r.eventsListeners) return r; "string" == typeof e[0] || Array.isArray(e[0]) ? ((i = e[0]), (s = e.slice(1, e.length)), (a = r)) : ((i = e[0].events), (s = e[0].data), (a = e[0].context || r)); var n = Array.isArray(i) ? i : i.split(" "); return ( n.forEach(function (e) { if (r.eventsListeners && r.eventsListeners[e]) { var t = []; r.eventsListeners[e].forEach(function (e) { t.push(e); }), t.forEach(function (e) { e.apply(a, s); }); } }), r ); }), (l.prototype.useModulesParams = function (e) { var t = this; t.modules && Object.keys(t.modules).forEach(function (i) { var s = t.modules[i]; s.params && n.extend(e, s.params); }); }), (l.prototype.useModules = function (e) { void 0 === e && (e = {}); var t = this; t.modules && Object.keys(t.modules).forEach(function (i) { var s = t.modules[i], a = e[i] || {}; s.instance && Object.keys(s.instance).forEach(function (e) { var i = s.instance[e]; t[e] = "function" == typeof i ? i.bind(t) : i; }), s.on && t.on && Object.keys(s.on).forEach(function (e) { t.on(e, s.on[e]); }), s.create && s.create.bind(t)(a); }); }), (d.components.set = function (e) { this.use && this.use(e); }), (l.installModule = function (e) { for (var t = [], i = arguments.length - 1; i-- > 0; ) t[i] = arguments[i + 1]; var s = this; s.prototype.modules || (s.prototype.modules = {}); var a = e.name || Object.keys(s.prototype.modules).length + "_" + n.now(); return ( (s.prototype.modules[a] = e), e.proto && Object.keys(e.proto).forEach(function (t) { s.prototype[t] = e.proto[t]; }), e.static && Object.keys(e.static).forEach(function (t) { s[t] = e.static[t]; }), e.install && e.install.apply(s, t), s ); }), (l.use = function (e) { for (var t = [], i = arguments.length - 1; i-- > 0; ) t[i] = arguments[i + 1]; var s = this; return Array.isArray(e) ? (e.forEach(function (e) { return s.installModule(e); }), s) : s.installModule.apply(s, [e].concat(t)); }), Object.defineProperties(l, d); var h = { updateSize: function () { var e, t, i = this.$el; (e = void 0 !== this.params.width ? this.params.width : i[0].clientWidth), (t = void 0 !== this.params.height ? this.params.height : i[0].clientHeight), (0 === e && this.isHorizontal()) || (0 === t && this.isVertical()) || ((e = e - parseInt(i.css("padding-left"), 10) - parseInt(i.css("padding-right"), 10)), (t = t - parseInt(i.css("padding-top"), 10) - parseInt(i.css("padding-bottom"), 10)), n.extend(this, { width: e, height: t, size: this.isHorizontal() ? e : t, })); }, updateSlides: function () { var e = this.params, i = this.$wrapperEl, s = this.size, a = this.rtlTranslate, r = this.wrongRTL, o = this.virtual && e.virtual.enabled, l = o ? this.virtual.slides.length : this.slides.length, d = i.children("." + this.params.slideClass), h = o ? this.virtual.slides.length : d.length, p = [], c = [], u = []; function v(t) { return !e.cssMode || t !== d.length - 1; } var f = e.slidesOffsetBefore; "function" == typeof f && (f = e.slidesOffsetBefore.call(this)); var m = e.slidesOffsetAfter; "function" == typeof m && (m = e.slidesOffsetAfter.call(this)); var g = this.snapGrid.length, b = this.snapGrid.length, w = e.spaceBetween, y = -f, x = 0, T = 0; if (void 0 !== s) { var E, S; "string" == typeof w && w.indexOf("%") >= 0 && (w = (parseFloat(w.replace("%", "")) / 100) * s), (this.virtualSize = -w), a ? d.css({ marginLeft: "", marginTop: "" }) : d.css({ marginRight: "", marginBottom: "" }), e.slidesPerColumn > 1 && ((E = Math.floor(h / e.slidesPerColumn) === h / this.params.slidesPerColumn ? h : Math.ceil(h / e.slidesPerColumn) * e.slidesPerColumn), "auto" !== e.slidesPerView && "row" === e.slidesPerColumnFill && (E = Math.max(E, e.slidesPerView * e.slidesPerColumn))); for ( var C, M = e.slidesPerColumn, P = E / M, z = Math.floor(h / e.slidesPerColumn), k = 0; k < h; k += 1 ) { S = 0; var $ = d.eq(k); if (e.slidesPerColumn > 1) { var L = void 0, I = void 0, D = void 0; if ("row" === e.slidesPerColumnFill && e.slidesPerGroup > 1) { var O = Math.floor(k / (e.slidesPerGroup * e.slidesPerColumn)), A = k - e.slidesPerColumn * e.slidesPerGroup * O, G = 0 === O ? e.slidesPerGroup : Math.min( Math.ceil((h - O * M * e.slidesPerGroup) / M), e.slidesPerGroup ); (L = (I = A - (D = Math.floor(A / G)) * G + O * e.slidesPerGroup) + (D * E) / M), $.css({ "-webkit-box-ordinal-group": L, "-moz-box-ordinal-group": L, "-ms-flex-order": L, "-webkit-order": L, order: L, }); } else "column" === e.slidesPerColumnFill ? ((D = k - (I = Math.floor(k / M)) * M), (I > z || (I === z && D === M - 1)) && (D += 1) >= M && ((D = 0), (I += 1))) : (I = k - (D = Math.floor(k / P)) * P); $.css( "margin-" + (this.isHorizontal() ? "top" : "left"), 0 !== D && e.spaceBetween && e.spaceBetween + "px" ); } if ("none" !== $.css("display")) { if ("auto" === e.slidesPerView) { var H = t.getComputedStyle($[0], null), B = $[0].style.transform, N = $[0].style.webkitTransform; if ( (B && ($[0].style.transform = "none"), N && ($[0].style.webkitTransform = "none"), e.roundLengths) ) S = this.isHorizontal() ? $.outerWidth(!0) : $.outerHeight(!0); else if (this.isHorizontal()) { var X = parseFloat(H.getPropertyValue("width")), V = parseFloat(H.getPropertyValue("padding-left")), Y = parseFloat(H.getPropertyValue("padding-right")), F = parseFloat(H.getPropertyValue("margin-left")), W = parseFloat(H.getPropertyValue("margin-right")), R = H.getPropertyValue("box-sizing"); S = R && "border-box" === R ? X + F + W : X + V + Y + F + W; } else { var q = parseFloat(H.getPropertyValue("height")), j = parseFloat(H.getPropertyValue("padding-top")), K = parseFloat(H.getPropertyValue("padding-bottom")), U = parseFloat(H.getPropertyValue("margin-top")), _ = parseFloat(H.getPropertyValue("margin-bottom")), Z = H.getPropertyValue("box-sizing"); S = Z && "border-box" === Z ? q + U + _ : q + j + K + U + _; } B && ($[0].style.transform = B), N && ($[0].style.webkitTransform = N), e.roundLengths && (S = Math.floor(S)); } else (S = (s - (e.slidesPerView - 1) * w) / e.slidesPerView), e.roundLengths && (S = Math.floor(S)), d[k] && (this.isHorizontal() ? (d[k].style.width = S + "px") : (d[k].style.height = S + "px")); d[k] && (d[k].swiperSlideSize = S), u.push(S), e.centeredSlides ? ((y = y + S / 2 + x / 2 + w), 0 === x && 0 !== k && (y = y - s / 2 - w), 0 === k && (y = y - s / 2 - w), Math.abs(y) < 0.001 && (y = 0), e.roundLengths && (y = Math.floor(y)), T % e.slidesPerGroup == 0 && p.push(y), c.push(y)) : (e.roundLengths && (y = Math.floor(y)), (T - Math.min(this.params.slidesPerGroupSkip, T)) % this.params.slidesPerGroup == 0 && p.push(y), c.push(y), (y = y + S + w)), (this.virtualSize += S + w), (x = S), (T += 1); } } if ( ((this.virtualSize = Math.max(this.virtualSize, s) + m), a && r && ("slide" === e.effect || "coverflow" === e.effect) && i.css({ width: this.virtualSize + e.spaceBetween + "px" }), e.setWrapperSize && (this.isHorizontal() ? i.css({ width: this.virtualSize + e.spaceBetween + "px" }) : i.css({ height: this.virtualSize + e.spaceBetween + "px" })), e.slidesPerColumn > 1 && ((this.virtualSize = (S + e.spaceBetween) * E), (this.virtualSize = Math.ceil(this.virtualSize / e.slidesPerColumn) - e.spaceBetween), this.isHorizontal() ? i.css({ width: this.virtualSize + e.spaceBetween + "px" }) : i.css({ height: this.virtualSize + e.spaceBetween + "px" }), e.centeredSlides)) ) { C = []; for (var Q = 0; Q < p.length; Q += 1) { var J = p[Q]; e.roundLengths && (J = Math.floor(J)), p[Q] < this.virtualSize + p[0] && C.push(J); } p = C; } if (!e.centeredSlides) { C = []; for (var ee = 0; ee < p.length; ee += 1) { var te = p[ee]; e.roundLengths && (te = Math.floor(te)), p[ee] <= this.virtualSize - s && C.push(te); } (p = C), Math.floor(this.virtualSize - s) - Math.floor(p[p.length - 1]) > 1 && p.push(this.virtualSize - s); } if ( (0 === p.length && (p = [0]), 0 !== e.spaceBetween && (this.isHorizontal() ? a ? d.filter(v).css({ marginLeft: w + "px" }) : d.filter(v).css({ marginRight: w + "px" }) : d.filter(v).css({ marginBottom: w + "px" })), e.centeredSlides && e.centeredSlidesBounds) ) { var ie = 0; u.forEach(function (t) { ie += t + (e.spaceBetween ? e.spaceBetween : 0); }); var se = (ie -= e.spaceBetween) - s; p = p.map(function (e) { return e < 0 ? -f : e > se ? se + m : e; }); } if (e.centerInsufficientSlides) { var ae = 0; if ( (u.forEach(function (t) { ae += t + (e.spaceBetween ? e.spaceBetween : 0); }), (ae -= e.spaceBetween) < s) ) { var re = (s - ae) / 2; p.forEach(function (e, t) { p[t] = e - re; }), c.forEach(function (e, t) { c[t] = e + re; }); } } n.extend(this, { slides: d, snapGrid: p, slidesGrid: c, slidesSizesGrid: u, }), h !== l && this.emit("slidesLengthChange"), p.length !== g && (this.params.watchOverflow && this.checkOverflow(), this.emit("snapGridLengthChange")), c.length !== b && this.emit("slidesGridLengthChange"), (e.watchSlidesProgress || e.watchSlidesVisibility) && this.updateSlidesOffset(); } }, updateAutoHeight: function (e) { var t, i = [], s = 0; if ( ("number" == typeof e ? this.setTransition(e) : !0 === e && this.setTransition(this.params.speed), "auto" !== this.params.slidesPerView && this.params.slidesPerView > 1) ) if (this.params.centeredSlides) i.push.apply(i, this.visibleSlides); else for (t = 0; t < Math.ceil(this.params.slidesPerView); t += 1) { var a = this.activeIndex + t; if (a > this.slides.length) break; i.push(this.slides.eq(a)[0]); } else i.push(this.slides.eq(this.activeIndex)[0]); for (t = 0; t < i.length; t += 1) if (void 0 !== i[t]) { var r = i[t].offsetHeight; s = r > s ? r : s; } s && this.$wrapperEl.css("height", s + "px"); }, updateSlidesOffset: function () { for (var e = this.slides, t = 0; t < e.length; t += 1) e[t].swiperSlideOffset = this.isHorizontal() ? e[t].offsetLeft : e[t].offsetTop; }, updateSlidesProgress: function (e) { void 0 === e && (e = (this && this.translate) || 0); var t = this.params, i = this.slides, a = this.rtlTranslate; if (0 !== i.length) { void 0 === i[0].swiperSlideOffset && this.updateSlidesOffset(); var r = -e; a && (r = e), i.removeClass(t.slideVisibleClass), (this.visibleSlidesIndexes = []), (this.visibleSlides = []); for (var n = 0; n < i.length; n += 1) { var o = i[n], l = (r + (t.centeredSlides ? this.minTranslate() : 0) - o.swiperSlideOffset) / (o.swiperSlideSize + t.spaceBetween); if (t.watchSlidesVisibility || (t.centeredSlides && t.autoHeight)) { var d = -(r - o.swiperSlideOffset), h = d + this.slidesSizesGrid[n]; ((d >= 0 && d < this.size - 1) || (h > 1 && h <= this.size) || (d <= 0 && h >= this.size)) && (this.visibleSlides.push(o), this.visibleSlidesIndexes.push(n), i.eq(n).addClass(t.slideVisibleClass)); } o.progress = a ? -l : l; } this.visibleSlides = s(this.visibleSlides); } }, updateProgress: function (e) { if (void 0 === e) { var t = this.rtlTranslate ? -1 : 1; e = (this && this.translate && this.translate * t) || 0; } var i = this.params, s = this.maxTranslate() - this.minTranslate(), a = this.progress, r = this.isBeginning, o = this.isEnd, l = r, d = o; 0 === s ? ((a = 0), (r = !0), (o = !0)) : ((r = (a = (e - this.minTranslate()) / s) <= 0), (o = a >= 1)), n.extend(this, { progress: a, isBeginning: r, isEnd: o }), (i.watchSlidesProgress || i.watchSlidesVisibility || (i.centeredSlides && i.autoHeight)) && this.updateSlidesProgress(e), r && !l && this.emit("reachBeginning toEdge"), o && !d && this.emit("reachEnd toEdge"), ((l && !r) || (d && !o)) && this.emit("fromEdge"), this.emit("progress", a); }, updateSlidesClasses: function () { var e, t = this.slides, i = this.params, s = this.$wrapperEl, a = this.activeIndex, r = this.realIndex, n = this.virtual && i.virtual.enabled; t.removeClass( i.slideActiveClass + " " + i.slideNextClass + " " + i.slidePrevClass + " " + i.slideDuplicateActiveClass + " " + i.slideDuplicateNextClass + " " + i.slideDuplicatePrevClass ), (e = n ? this.$wrapperEl.find( "." + i.slideClass + '[data-swiper-slide-index="' + a + '"]' ) : t.eq(a)).addClass(i.slideActiveClass), i.loop && (e.hasClass(i.slideDuplicateClass) ? s .children( "." + i.slideClass + ":not(." + i.slideDuplicateClass + ')[data-swiper-slide-index="' + r + '"]' ) .addClass(i.slideDuplicateActiveClass) : s .children( "." + i.slideClass + "." + i.slideDuplicateClass + '[data-swiper-slide-index="' + r + '"]' ) .addClass(i.slideDuplicateActiveClass)); var o = e .nextAll("." + i.slideClass) .eq(0) .addClass(i.slideNextClass); i.loop && 0 === o.length && (o = t.eq(0)).addClass(i.slideNextClass); var l = e .prevAll("." + i.slideClass) .eq(0) .addClass(i.slidePrevClass); i.loop && 0 === l.length && (l = t.eq(-1)).addClass(i.slidePrevClass), i.loop && (o.hasClass(i.slideDuplicateClass) ? s .children( "." + i.slideClass + ":not(." + i.slideDuplicateClass + ')[data-swiper-slide-index="' + o.attr("data-swiper-slide-index") + '"]' ) .addClass(i.slideDuplicateNextClass) : s .children( "." + i.slideClass + "." + i.slideDuplicateClass + '[data-swiper-slide-index="' + o.attr("data-swiper-slide-index") + '"]' ) .addClass(i.slideDuplicateNextClass), l.hasClass(i.slideDuplicateClass) ? s .children( "." + i.slideClass + ":not(." + i.slideDuplicateClass + ')[data-swiper-slide-index="' + l.attr("data-swiper-slide-index") + '"]' ) .addClass(i.slideDuplicatePrevClass) : s .children( "." + i.slideClass + "." + i.slideDuplicateClass + '[data-swiper-slide-index="' + l.attr("data-swiper-slide-index") + '"]' ) .addClass(i.slideDuplicatePrevClass)); }, updateActiveIndex: function (e) { var t, i = this.rtlTranslate ? this.translate : -this.translate, s = this.slidesGrid, a = this.snapGrid, r = this.params, o = this.activeIndex, l = this.realIndex, d = this.snapIndex, h = e; if (void 0 === h) { for (var p = 0; p < s.length; p += 1) void 0 !== s[p + 1] ? i >= s[p] && i < s[p + 1] - (s[p + 1] - s[p]) / 2 ? (h = p) : i >= s[p] && i < s[p + 1] && (h = p + 1) : i >= s[p] && (h = p); r.normalizeSlideIndex && (h < 0 || void 0 === h) && (h = 0); } if (a.indexOf(i) >= 0) t = a.indexOf(i); else { var c = Math.min(r.slidesPerGroupSkip, h); t = c + Math.floor((h - c) / r.slidesPerGroup); } if ((t >= a.length && (t = a.length - 1), h !== o)) { var u = parseInt( this.slides.eq(h).attr("data-swiper-slide-index") || h, 10 ); n.extend(this, { snapIndex: t, realIndex: u, previousIndex: o, activeIndex: h, }), this.emit("activeIndexChange"), this.emit("snapIndexChange"), l !== u && this.emit("realIndexChange"), (this.initialized || this.runCallbacksOnInit) && this.emit("slideChange"); } else t !== d && ((this.snapIndex = t), this.emit("snapIndexChange")); }, updateClickedSlide: function (e) { var t = this.params, i = s(e.target).closest("." + t.slideClass)[0], a = !1; if (i) for (var r = 0; r < this.slides.length; r += 1) this.slides[r] === i && (a = !0); if (!i || !a) return (this.clickedSlide = void 0), void (this.clickedIndex = void 0); (this.clickedSlide = i), this.virtual && this.params.virtual.enabled ? (this.clickedIndex = parseInt( s(i).attr("data-swiper-slide-index"), 10 )) : (this.clickedIndex = s(i).index()), t.slideToClickedSlide && void 0 !== this.clickedIndex && this.clickedIndex !== this.activeIndex && this.slideToClickedSlide(); }, }; var p = { getTranslate: function (e) { void 0 === e && (e = this.isHorizontal() ? "x" : "y"); var t = this.params, i = this.rtlTranslate, s = this.translate, a = this.$wrapperEl; if (t.virtualTranslate) return i ? -s : s; if (t.cssMode) return s; var r = n.getTranslate(a[0], e); return i && (r = -r), r || 0; }, setTranslate: function (e, t) { var i = this.rtlTranslate, s = this.params, a = this.$wrapperEl, r = this.wrapperEl, n = this.progress, o = 0, l = 0; this.isHorizontal() ? (o = i ? -e : e) : (l = e), s.roundLengths && ((o = Math.floor(o)), (l = Math.floor(l))), s.cssMode ? (r[this.isHorizontal() ? "scrollLeft" : "scrollTop"] = this.isHorizontal() ? -o : -l) : s.virtualTranslate || a.transform("translate3d(" + o + "px, " + l + "px, 0px)"), (this.previousTranslate = this.translate), (this.translate = this.isHorizontal() ? o : l); var d = this.maxTranslate() - this.minTranslate(); (0 === d ? 0 : (e - this.minTranslate()) / d) !== n && this.updateProgress(e), this.emit("setTranslate", this.translate, t); }, minTranslate: function () { return -this.snapGrid[0]; }, maxTranslate: function () { return -this.snapGrid[this.snapGrid.length - 1]; }, translateTo: function (e, t, i, s, a) { var r; void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), void 0 === i && (i = !0), void 0 === s && (s = !0); var n = this, o = n.params, l = n.wrapperEl; if (n.animating && o.preventInteractionOnTransition) return !1; var d, h = n.minTranslate(), p = n.maxTranslate(); if ( ((d = s && e > h ? h : s && e < p ? p : e), n.updateProgress(d), o.cssMode) ) { var c = n.isHorizontal(); return ( 0 === t ? (l[c ? "scrollLeft" : "scrollTop"] = -d) : l.scrollTo ? l.scrollTo( (((r = {})[c ? "left" : "top"] = -d), (r.behavior = "smooth"), r) ) : (l[c ? "scrollLeft" : "scrollTop"] = -d), !0 ); } return ( 0 === t ? (n.setTransition(0), n.setTranslate(d), i && (n.emit("beforeTransitionStart", t, a), n.emit("transitionEnd"))) : (n.setTransition(t), n.setTranslate(d), i && (n.emit("beforeTransitionStart", t, a), n.emit("transitionStart")), n.animating || ((n.animating = !0), n.onTranslateToWrapperTransitionEnd || (n.onTranslateToWrapperTransitionEnd = function (e) { n && !n.destroyed && e.target === this && (n.$wrapperEl[0].removeEventListener( "transitionend", n.onTranslateToWrapperTransitionEnd ), n.$wrapperEl[0].removeEventListener( "webkitTransitionEnd", n.onTranslateToWrapperTransitionEnd ), (n.onTranslateToWrapperTransitionEnd = null), delete n.onTranslateToWrapperTransitionEnd, i && n.emit("transitionEnd")); }), n.$wrapperEl[0].addEventListener( "transitionend", n.onTranslateToWrapperTransitionEnd ), n.$wrapperEl[0].addEventListener( "webkitTransitionEnd", n.onTranslateToWrapperTransitionEnd ))), !0 ); }, }; var c = { setTransition: function (e, t) { this.params.cssMode || this.$wrapperEl.transition(e), this.emit("setTransition", e, t); }, transitionStart: function (e, t) { void 0 === e && (e = !0); var i = this.activeIndex, s = this.params, a = this.previousIndex; if (!s.cssMode) { s.autoHeight && this.updateAutoHeight(); var r = t; if ( (r || (r = i > a ? "next" : i < a ? "prev" : "reset"), this.emit("transitionStart"), e && i !== a) ) { if ("reset" === r) return void this.emit("slideResetTransitionStart"); this.emit("slideChangeTransitionStart"), "next" === r ? this.emit("slideNextTransitionStart") : this.emit("slidePrevTransitionStart"); } } }, transitionEnd: function (e, t) { void 0 === e && (e = !0); var i = this.activeIndex, s = this.previousIndex, a = this.params; if (((this.animating = !1), !a.cssMode)) { this.setTransition(0); var r = t; if ( (r || (r = i > s ? "next" : i < s ? "prev" : "reset"), this.emit("transitionEnd"), e && i !== s) ) { if ("reset" === r) return void this.emit("slideResetTransitionEnd"); this.emit("slideChangeTransitionEnd"), "next" === r ? this.emit("slideNextTransitionEnd") : this.emit("slidePrevTransitionEnd"); } } }, }; var u = { slideTo: function (e, t, i, s) { var a; void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), void 0 === i && (i = !0); var r = this, n = e; n < 0 && (n = 0); var o = r.params, l = r.snapGrid, d = r.slidesGrid, h = r.previousIndex, p = r.activeIndex, c = r.rtlTranslate, u = r.wrapperEl; if (r.animating && o.preventInteractionOnTransition) return !1; var v = Math.min(r.params.slidesPerGroupSkip, n), f = v + Math.floor((n - v) / r.params.slidesPerGroup); f >= l.length && (f = l.length - 1), (p || o.initialSlide || 0) === (h || 0) && i && r.emit("beforeSlideChangeStart"); var m, g = -l[f]; if ((r.updateProgress(g), o.normalizeSlideIndex)) for (var b = 0; b < d.length; b += 1) -Math.floor(100 * g) >= Math.floor(100 * d[b]) && (n = b); if (r.initialized && n !== p) { if (!r.allowSlideNext && g < r.translate && g < r.minTranslate()) return !1; if ( !r.allowSlidePrev && g > r.translate && g > r.maxTranslate() && (p || 0) !== n ) return !1; } if ( ((m = n > p ? "next" : n < p ? "prev" : "reset"), (c && -g === r.translate) || (!c && g === r.translate)) ) return ( r.updateActiveIndex(n), o.autoHeight && r.updateAutoHeight(), r.updateSlidesClasses(), "slide" !== o.effect && r.setTranslate(g), "reset" !== m && (r.transitionStart(i, m), r.transitionEnd(i, m)), !1 ); if (o.cssMode) { var w = r.isHorizontal(); return ( 0 === t ? (u[w ? "scrollLeft" : "scrollTop"] = -g) : u.scrollTo ? u.scrollTo( (((a = {})[w ? "left" : "top"] = -g), (a.behavior = "smooth"), a) ) : (u[w ? "scrollLeft" : "scrollTop"] = -g), !0 ); } return ( 0 === t ? (r.setTransition(0), r.setTranslate(g), r.updateActiveIndex(n), r.updateSlidesClasses(), r.emit("beforeTransitionStart", t, s), r.transitionStart(i, m), r.transitionEnd(i, m)) : (r.setTransition(t), r.setTranslate(g), r.updateActiveIndex(n), r.updateSlidesClasses(), r.emit("beforeTransitionStart", t, s), r.transitionStart(i, m), r.animating || ((r.animating = !0), r.onSlideToWrapperTransitionEnd || (r.onSlideToWrapperTransitionEnd = function (e) { r && !r.destroyed && e.target === this && (r.$wrapperEl[0].removeEventListener( "transitionend", r.onSlideToWrapperTransitionEnd ), r.$wrapperEl[0].removeEventListener( "webkitTransitionEnd", r.onSlideToWrapperTransitionEnd ), (r.onSlideToWrapperTransitionEnd = null), delete r.onSlideToWrapperTransitionEnd, r.transitionEnd(i, m)); }), r.$wrapperEl[0].addEventListener( "transitionend", r.onSlideToWrapperTransitionEnd ), r.$wrapperEl[0].addEventListener( "webkitTransitionEnd", r.onSlideToWrapperTransitionEnd ))), !0 ); }, slideToLoop: function (e, t, i, s) { void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), void 0 === i && (i = !0); var a = e; return ( this.params.loop && (a += this.loopedSlides), this.slideTo(a, t, i, s) ); }, slideNext: function (e, t, i) { void 0 === e && (e = this.params.speed), void 0 === t && (t = !0); var s = this.params, a = this.animating, r = this.activeIndex < s.slidesPerGroupSkip ? 1 : s.slidesPerGroup; if (s.loop) { if (a) return !1; this.loopFix(), (this._clientLeft = this.$wrapperEl[0].clientLeft); } return this.slideTo(this.activeIndex + r, e, t, i); }, slidePrev: function (e, t, i) { void 0 === e && (e = this.params.speed), void 0 === t && (t = !0); var s = this.params, a = this.animating, r = this.snapGrid, n = this.slidesGrid, o = this.rtlTranslate; if (s.loop) { if (a) return !1; this.loopFix(), (this._clientLeft = this.$wrapperEl[0].clientLeft); } function l(e) { return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e); } var d, h = l(o ? this.translate : -this.translate), p = r.map(function (e) { return l(e); }), c = (n.map(function (e) { return l(e); }), r[p.indexOf(h)], r[p.indexOf(h) - 1]); return ( void 0 === c && s.cssMode && r.forEach(function (e) { !c && h >= e && (c = e); }), void 0 !== c && (d = n.indexOf(c)) < 0 && (d = this.activeIndex - 1), this.slideTo(d, e, t, i) ); }, slideReset: function (e, t, i) { return ( void 0 === e && (e = this.params.speed), void 0 === t && (t = !0), this.slideTo(this.activeIndex, e, t, i) ); }, slideToClosest: function (e, t, i, s) { void 0 === e && (e = this.params.speed), void 0 === t && (t = !0), void 0 === s && (s = 0.5); var a = this.activeIndex, r = Math.min(this.params.slidesPerGroupSkip, a), n = r + Math.floor((a - r) / this.params.slidesPerGroup), o = this.rtlTranslate ? this.translate : -this.translate; if (o >= this.snapGrid[n]) { var l = this.snapGrid[n]; o - l > (this.snapGrid[n + 1] - l) * s && (a += this.params.slidesPerGroup); } else { var d = this.snapGrid[n - 1]; o - d <= (this.snapGrid[n] - d) * s && (a -= this.params.slidesPerGroup); } return ( (a = Math.max(a, 0)), (a = Math.min(a, this.slidesGrid.length - 1)), this.slideTo(a, e, t, i) ); }, slideToClickedSlide: function () { var e, t = this, i = t.params, a = t.$wrapperEl, r = "auto" === i.slidesPerView ? t.slidesPerViewDynamic() : i.slidesPerView, o = t.clickedIndex; if (i.loop) { if (t.animating) return; (e = parseInt(s(t.clickedSlide).attr("data-swiper-slide-index"), 10)), i.centeredSlides ? o < t.loopedSlides - r / 2 || o > t.slides.length - t.loopedSlides + r / 2 ? (t.loopFix(), (o = a .children( "." + i.slideClass + '[data-swiper-slide-index="' + e + '"]:not(.' + i.slideDuplicateClass + ")" ) .eq(0) .index()), n.nextTick(function () { t.slideTo(o); })) : t.slideTo(o) : o > t.slides.length - r ? (t.loopFix(), (o = a .children( "." + i.slideClass + '[data-swiper-slide-index="' + e + '"]:not(.' + i.slideDuplicateClass + ")" ) .eq(0) .index()), n.nextTick(function () { t.slideTo(o); })) : t.slideTo(o); } else t.slideTo(o); }, }; var v = { loopCreate: function () { var t = this, i = t.params, a = t.$wrapperEl; a.children("." + i.slideClass + "." + i.slideDuplicateClass).remove(); var r = a.children("." + i.slideClass); if (i.loopFillGroupWithBlank) { var n = i.slidesPerGroup - (r.length % i.slidesPerGroup); if (n !== i.slidesPerGroup) { for (var o = 0; o < n; o += 1) { var l = s(e.createElement("div")).addClass( i.slideClass + " " + i.slideBlankClass ); a.append(l); } r = a.children("." + i.slideClass); } } "auto" !== i.slidesPerView || i.loopedSlides || (i.loopedSlides = r.length), (t.loopedSlides = Math.ceil( parseFloat(i.loopedSlides || i.slidesPerView, 10) )), (t.loopedSlides += i.loopAdditionalSlides), t.loopedSlides > r.length && (t.loopedSlides = r.length); var d = [], h = []; r.each(function (e, i) { var a = s(i); e < t.loopedSlides && h.push(i), e < r.length && e >= r.length - t.loopedSlides && d.push(i), a.attr("data-swiper-slide-index", e); }); for (var p = 0; p < h.length; p += 1) a.append(s(h[p].cloneNode(!0)).addClass(i.slideDuplicateClass)); for (var c = d.length - 1; c >= 0; c -= 1) a.prepend(s(d[c].cloneNode(!0)).addClass(i.slideDuplicateClass)); }, loopFix: function () { this.emit("beforeLoopFix"); var e, t = this.activeIndex, i = this.slides, s = this.loopedSlides, a = this.allowSlidePrev, r = this.allowSlideNext, n = this.snapGrid, o = this.rtlTranslate; (this.allowSlidePrev = !0), (this.allowSlideNext = !0); var l = -n[t] - this.getTranslate(); if (t < s) (e = i.length - 3 * s + t), (e += s), this.slideTo(e, 0, !1, !0) && 0 !== l && this.setTranslate((o ? -this.translate : this.translate) - l); else if (t >= i.length - s) { (e = -i.length + t + s), (e += s), this.slideTo(e, 0, !1, !0) && 0 !== l && this.setTranslate((o ? -this.translate : this.translate) - l); } (this.allowSlidePrev = a), (this.allowSlideNext = r), this.emit("loopFix"); }, loopDestroy: function () { var e = this.$wrapperEl, t = this.params, i = this.slides; e .children( "." + t.slideClass + "." + t.slideDuplicateClass + ",." + t.slideClass + "." + t.slideBlankClass ) .remove(), i.removeAttr("data-swiper-slide-index"); }, }; var f = { setGrabCursor: function (e) { if ( !( o.touch || !this.params.simulateTouch || (this.params.watchOverflow && this.isLocked) || this.params.cssMode ) ) { var t = this.el; (t.style.cursor = "move"), (t.style.cursor = e ? "-webkit-grabbing" : "-webkit-grab"), (t.style.cursor = e ? "-moz-grabbin" : "-moz-grab"), (t.style.cursor = e ? "grabbing" : "grab"); } }, unsetGrabCursor: function () { o.touch || (this.params.watchOverflow && this.isLocked) || this.params.cssMode || (this.el.style.cursor = ""); }, }; var m, g, b, w, y, x, T, E, S, C, M, P, z, k, $, L = { appendSlide: function (e) { var t = this.$wrapperEl, i = this.params; if ( (i.loop && this.loopDestroy(), "object" == typeof e && "length" in e) ) for (var s = 0; s < e.length; s += 1) e[s] && t.append(e[s]); else t.append(e); i.loop && this.loopCreate(), (i.observer && o.observer) || this.update(); }, prependSlide: function (e) { var t = this.params, i = this.$wrapperEl, s = this.activeIndex; t.loop && this.loopDestroy(); var a = s + 1; if ("object" == typeof e && "length" in e) { for (var r = 0; r < e.length; r += 1) e[r] && i.prepend(e[r]); a = s + e.length; } else i.prepend(e); t.loop && this.loopCreate(), (t.observer && o.observer) || this.update(), this.slideTo(a, 0, !1); }, addSlide: function (e, t) { var i = this.$wrapperEl, s = this.params, a = this.activeIndex; s.loop && ((a -= this.loopedSlides), this.loopDestroy(), (this.slides = i.children("." + s.slideClass))); var r = this.slides.length; if (e <= 0) this.prependSlide(t); else if (e >= r) this.appendSlide(t); else { for (var n = a > e ? a + 1 : a, l = [], d = r - 1; d >= e; d -= 1) { var h = this.slides.eq(d); h.remove(), l.unshift(h); } if ("object" == typeof t && "length" in t) { for (var p = 0; p < t.length; p += 1) t[p] && i.append(t[p]); n = a > e ? a + t.length : a; } else i.append(t); for (var c = 0; c < l.length; c += 1) i.append(l[c]); s.loop && this.loopCreate(), (s.observer && o.observer) || this.update(), s.loop ? this.slideTo(n + this.loopedSlides, 0, !1) : this.slideTo(n, 0, !1); } }, removeSlide: function (e) { var t = this.params, i = this.$wrapperEl, s = this.activeIndex; t.loop && ((s -= this.loopedSlides), this.loopDestroy(), (this.slides = i.children("." + t.slideClass))); var a, r = s; if ("object" == typeof e && "length" in e) { for (var n = 0; n < e.length; n += 1) (a = e[n]), this.slides[a] && this.slides.eq(a).remove(), a < r && (r -= 1); r = Math.max(r, 0); } else (a = e), this.slides[a] && this.slides.eq(a).remove(), a < r && (r -= 1), (r = Math.max(r, 0)); t.loop && this.loopCreate(), (t.observer && o.observer) || this.update(), t.loop ? this.slideTo(r + this.loopedSlides, 0, !1) : this.slideTo(r, 0, !1); }, removeAllSlides: function () { for (var e = [], t = 0; t < this.slides.length; t += 1) e.push(t); this.removeSlide(e); }, }, I = ((m = t.navigator.platform), (g = t.navigator.userAgent), (b = { ios: !1, android: !1, androidChrome: !1, desktop: !1, iphone: !1, ipod: !1, ipad: !1, edge: !1, ie: !1, firefox: !1, macos: !1, windows: !1, cordova: !(!t.cordova && !t.phonegap), phonegap: !(!t.cordova && !t.phonegap), electron: !1, }), (w = t.screen.width), (y = t.screen.height), (x = g.match(/(Android);?[\s\/]+([\d.]+)?/)), (T = g.match(/(iPad).*OS\s([\d_]+)/)), (E = g.match(/(iPod)(.*OS\s([\d_]+))?/)), (S = !T && g.match(/(iPhone\sOS|iOS)\s([\d_]+)/)), (C = g.indexOf("MSIE ") >= 0 || g.indexOf("Trident/") >= 0), (M = g.indexOf("Edge/") >= 0), (P = g.indexOf("Gecko/") >= 0 && g.indexOf("Firefox/") >= 0), (z = "Win32" === m), (k = g.toLowerCase().indexOf("electron") >= 0), ($ = "MacIntel" === m), !T && $ && o.touch && ((1024 === w && 1366 === y) || (834 === w && 1194 === y) || (834 === w && 1112 === y) || (768 === w && 1024 === y)) && ((T = g.match(/(Version)\/([\d.]+)/)), ($ = !1)), (b.ie = C), (b.edge = M), (b.firefox = P), x && !z && ((b.os = "android"), (b.osVersion = x[2]), (b.android = !0), (b.androidChrome = g.toLowerCase().indexOf("chrome") >= 0)), (T || S || E) && ((b.os = "ios"), (b.ios = !0)), S && !E && ((b.osVersion = S[2].replace(/_/g, ".")), (b.iphone = !0)), T && ((b.osVersion = T[2].replace(/_/g, ".")), (b.ipad = !0)), E && ((b.osVersion = E[3] ? E[3].replace(/_/g, ".") : null), (b.ipod = !0)), b.ios && b.osVersion && g.indexOf("Version/") >= 0 && "10" === b.osVersion.split(".")[0] && (b.osVersion = g.toLowerCase().split("version/")[1].split(" ")[0]), (b.webView = !( !(S || T || E) || (!g.match(/.*AppleWebKit(?!.*Safari)/i) && !t.navigator.standalone) ) || (t.matchMedia && t.matchMedia("(display-mode: standalone)").matches)), (b.webview = b.webView), (b.standalone = b.webView), (b.desktop = !(b.ios || b.android) || k), b.desktop && ((b.electron = k), (b.macos = $), (b.windows = z), b.macos && (b.os = "macos"), b.windows && (b.os = "windows")), (b.pixelRatio = t.devicePixelRatio || 1), b); function D(i) { var a = this.touchEventsData, r = this.params, o = this.touches; if (!this.animating || !r.preventInteractionOnTransition) { var l = i; l.originalEvent && (l = l.originalEvent); var d = s(l.target); if ( ("wrapper" !== r.touchEventsTarget || d.closest(this.wrapperEl).length) && ((a.isTouchEvent = "touchstart" === l.type), (a.isTouchEvent || !("which" in l) || 3 !== l.which) && !( (!a.isTouchEvent && "button" in l && l.button > 0) || (a.isTouched && a.isMoved) )) ) if ( r.noSwiping && d.closest( r.noSwipingSelector ? r.noSwipingSelector : "." + r.noSwipingClass )[0] ) this.allowClick = !0; else if (!r.swipeHandler || d.closest(r.swipeHandler)[0]) { (o.currentX = "touchstart" === l.type ? l.targetTouches[0].pageX : l.pageX), (o.currentY = "touchstart" === l.type ? l.targetTouches[0].pageY : l.pageY); var h = o.currentX, p = o.currentY, c = r.edgeSwipeDetection || r.iOSEdgeSwipeDetection, u = r.edgeSwipeThreshold || r.iOSEdgeSwipeThreshold; if (!c || !(h <= u || h >= t.screen.width - u)) { if ( (n.extend(a, { isTouched: !0, isMoved: !1, allowTouchCallbacks: !0, isScrolling: void 0, startMoving: void 0, }), (o.startX = h), (o.startY = p), (a.touchStartTime = n.now()), (this.allowClick = !0), this.updateSize(), (this.swipeDirection = void 0), r.threshold > 0 && (a.allowThresholdMove = !1), "touchstart" !== l.type) ) { var v = !0; d.is(a.formElements) && (v = !1), e.activeElement && s(e.activeElement).is(a.formElements) && e.activeElement !== d[0] && e.activeElement.blur(); var f = v && this.allowTouchMove && r.touchStartPreventDefault; (r.touchStartForcePreventDefault || f) && l.preventDefault(); } this.emit("touchStart", l); } } } } function O(t) { var i = this.touchEventsData, a = this.params, r = this.touches, o = this.rtlTranslate, l = t; if ((l.originalEvent && (l = l.originalEvent), i.isTouched)) { if (!i.isTouchEvent || "mousemove" !== l.type) { var d = "touchmove" === l.type && l.targetTouches && (l.targetTouches[0] || l.changedTouches[0]), h = "touchmove" === l.type ? d.pageX : l.pageX, p = "touchmove" === l.type ? d.pageY : l.pageY; if (l.preventedByNestedSwiper) return (r.startX = h), void (r.startY = p); if (!this.allowTouchMove) return ( (this.allowClick = !1), void ( i.isTouched && (n.extend(r, { startX: h, startY: p, currentX: h, currentY: p }), (i.touchStartTime = n.now())) ) ); if (i.isTouchEvent && a.touchReleaseOnEdges && !a.loop) if (this.isVertical()) { if ( (p < r.startY && this.translate <= this.maxTranslate()) || (p > r.startY && this.translate >= this.minTranslate()) ) return (i.isTouched = !1), void (i.isMoved = !1); } else if ( (h < r.startX && this.translate <= this.maxTranslate()) || (h > r.startX && this.translate >= this.minTranslate()) ) return; if ( i.isTouchEvent && e.activeElement && l.target === e.activeElement && s(l.target).is(i.formElements) ) return (i.isMoved = !0), void (this.allowClick = !1); if ( (i.allowTouchCallbacks && this.emit("touchMove", l), !(l.targetTouches && l.targetTouches.length > 1)) ) { (r.currentX = h), (r.currentY = p); var c = r.currentX - r.startX, u = r.currentY - r.startY; if ( !( this.params.threshold && Math.sqrt(Math.pow(c, 2) + Math.pow(u, 2)) < this.params.threshold ) ) { var v; if (void 0 === i.isScrolling) (this.isHorizontal() && r.currentY === r.startY) || (this.isVertical() && r.currentX === r.startX) ? (i.isScrolling = !1) : c * c + u * u >= 25 && ((v = (180 * Math.atan2(Math.abs(u), Math.abs(c))) / Math.PI), (i.isScrolling = this.isHorizontal() ? v > a.touchAngle : 90 - v > a.touchAngle)); if ( (i.isScrolling && this.emit("touchMoveOpposite", l), void 0 === i.startMoving && ((r.currentX === r.startX && r.currentY === r.startY) || (i.startMoving = !0)), i.isScrolling) ) i.isTouched = !1; else if (i.startMoving) { (this.allowClick = !1), a.cssMode || l.preventDefault(), a.touchMoveStopPropagation && !a.nested && l.stopPropagation(), i.isMoved || (a.loop && this.loopFix(), (i.startTranslate = this.getTranslate()), this.setTransition(0), this.animating && this.$wrapperEl.trigger( "webkitTransitionEnd transitionend" ), (i.allowMomentumBounce = !1), !a.grabCursor || (!0 !== this.allowSlideNext && !0 !== this.allowSlidePrev) || this.setGrabCursor(!0), this.emit("sliderFirstMove", l)), this.emit("sliderMove", l), (i.isMoved = !0); var f = this.isHorizontal() ? c : u; (r.diff = f), (f *= a.touchRatio), o && (f = -f), (this.swipeDirection = f > 0 ? "prev" : "next"), (i.currentTranslate = f + i.startTranslate); var m = !0, g = a.resistanceRatio; if ( (a.touchReleaseOnEdges && (g = 0), f > 0 && i.currentTranslate > this.minTranslate() ? ((m = !1), a.resistance && (i.currentTranslate = this.minTranslate() - 1 + Math.pow( -this.minTranslate() + i.startTranslate + f, g ))) : f < 0 && i.currentTranslate < this.maxTranslate() && ((m = !1), a.resistance && (i.currentTranslate = this.maxTranslate() + 1 - Math.pow( this.maxTranslate() - i.startTranslate - f, g ))), m && (l.preventedByNestedSwiper = !0), !this.allowSlideNext && "next" === this.swipeDirection && i.currentTranslate < i.startTranslate && (i.currentTranslate = i.startTranslate), !this.allowSlidePrev && "prev" === this.swipeDirection && i.currentTranslate > i.startTranslate && (i.currentTranslate = i.startTranslate), a.threshold > 0) ) { if (!(Math.abs(f) > a.threshold || i.allowThresholdMove)) return void (i.currentTranslate = i.startTranslate); if (!i.allowThresholdMove) return ( (i.allowThresholdMove = !0), (r.startX = r.currentX), (r.startY = r.currentY), (i.currentTranslate = i.startTranslate), void (r.diff = this.isHorizontal() ? r.currentX - r.startX : r.currentY - r.startY) ); } a.followFinger && !a.cssMode && ((a.freeMode || a.watchSlidesProgress || a.watchSlidesVisibility) && (this.updateActiveIndex(), this.updateSlidesClasses()), a.freeMode && (0 === i.velocities.length && i.velocities.push({ position: r[this.isHorizontal() ? "startX" : "startY"], time: i.touchStartTime, }), i.velocities.push({ position: r[this.isHorizontal() ? "currentX" : "currentY"], time: n.now(), })), this.updateProgress(i.currentTranslate), this.setTranslate(i.currentTranslate)); } } } } } else i.startMoving && i.isScrolling && this.emit("touchMoveOpposite", l); } function A(e) { var t = this, i = t.touchEventsData, s = t.params, a = t.touches, r = t.rtlTranslate, o = t.$wrapperEl, l = t.slidesGrid, d = t.snapGrid, h = e; if ( (h.originalEvent && (h = h.originalEvent), i.allowTouchCallbacks && t.emit("touchEnd", h), (i.allowTouchCallbacks = !1), !i.isTouched) ) return ( i.isMoved && s.grabCursor && t.setGrabCursor(!1), (i.isMoved = !1), void (i.startMoving = !1) ); s.grabCursor && i.isMoved && i.isTouched && (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) && t.setGrabCursor(!1); var p, c = n.now(), u = c - i.touchStartTime; if ( (t.allowClick && (t.updateClickedSlide(h), t.emit("tap click", h), u < 300 && c - i.lastClickTime < 300 && t.emit("doubleTap doubleClick", h)), (i.lastClickTime = n.now()), n.nextTick(function () { t.destroyed || (t.allowClick = !0); }), !i.isTouched || !i.isMoved || !t.swipeDirection || 0 === a.diff || i.currentTranslate === i.startTranslate) ) return (i.isTouched = !1), (i.isMoved = !1), void (i.startMoving = !1); if ( ((i.isTouched = !1), (i.isMoved = !1), (i.startMoving = !1), (p = s.followFinger ? r ? t.translate : -t.translate : -i.currentTranslate), !s.cssMode) ) if (s.freeMode) { if (p < -t.minTranslate()) return void t.slideTo(t.activeIndex); if (p > -t.maxTranslate()) return void (t.slides.length < d.length ? t.slideTo(d.length - 1) : t.slideTo(t.slides.length - 1)); if (s.freeModeMomentum) { if (i.velocities.length > 1) { var v = i.velocities.pop(), f = i.velocities.pop(), m = v.position - f.position, g = v.time - f.time; (t.velocity = m / g), (t.velocity /= 2), Math.abs(t.velocity) < s.freeModeMinimumVelocity && (t.velocity = 0), (g > 150 || n.now() - v.time > 300) && (t.velocity = 0); } else t.velocity = 0; (t.velocity *= s.freeModeMomentumVelocityRatio), (i.velocities.length = 0); var b = 1e3 * s.freeModeMomentumRatio, w = t.velocity * b, y = t.translate + w; r && (y = -y); var x, T, E = !1, S = 20 * Math.abs(t.velocity) * s.freeModeMomentumBounceRatio; if (y < t.maxTranslate()) s.freeModeMomentumBounce ? (y + t.maxTranslate() < -S && (y = t.maxTranslate() - S), (x = t.maxTranslate()), (E = !0), (i.allowMomentumBounce = !0)) : (y = t.maxTranslate()), s.loop && s.centeredSlides && (T = !0); else if (y > t.minTranslate()) s.freeModeMomentumBounce ? (y - t.minTranslate() > S && (y = t.minTranslate() + S), (x = t.minTranslate()), (E = !0), (i.allowMomentumBounce = !0)) : (y = t.minTranslate()), s.loop && s.centeredSlides && (T = !0); else if (s.freeModeSticky) { for (var C, M = 0; M < d.length; M += 1) if (d[M] > -y) { C = M; break; } y = -(y = Math.abs(d[C] - y) < Math.abs(d[C - 1] - y) || "next" === t.swipeDirection ? d[C] : d[C - 1]); } if ( (T && t.once("transitionEnd", function () { t.loopFix(); }), 0 !== t.velocity) ) { if ( ((b = r ? Math.abs((-y - t.translate) / t.velocity) : Math.abs((y - t.translate) / t.velocity)), s.freeModeSticky) ) { var P = Math.abs((r ? -y : y) - t.translate), z = t.slidesSizesGrid[t.activeIndex]; b = P < z ? s.speed : P < 2 * z ? 1.5 * s.speed : 2.5 * s.speed; } } else if (s.freeModeSticky) return void t.slideToClosest(); s.freeModeMomentumBounce && E ? (t.updateProgress(x), t.setTransition(b), t.setTranslate(y), t.transitionStart(!0, t.swipeDirection), (t.animating = !0), o.transitionEnd(function () { t && !t.destroyed && i.allowMomentumBounce && (t.emit("momentumBounce"), t.setTransition(s.speed), t.setTranslate(x), o.transitionEnd(function () { t && !t.destroyed && t.transitionEnd(); })); })) : t.velocity ? (t.updateProgress(y), t.setTransition(b), t.setTranslate(y), t.transitionStart(!0, t.swipeDirection), t.animating || ((t.animating = !0), o.transitionEnd(function () { t && !t.destroyed && t.transitionEnd(); }))) : t.updateProgress(y), t.updateActiveIndex(), t.updateSlidesClasses(); } else if (s.freeModeSticky) return void t.slideToClosest(); (!s.freeModeMomentum || u >= s.longSwipesMs) && (t.updateProgress(), t.updateActiveIndex(), t.updateSlidesClasses()); } else { for ( var k = 0, $ = t.slidesSizesGrid[0], L = 0; L < l.length; L += L < s.slidesPerGroupSkip ? 1 : s.slidesPerGroup ) { var I = L < s.slidesPerGroupSkip - 1 ? 1 : s.slidesPerGroup; void 0 !== l[L + I] ? p >= l[L] && p < l[L + I] && ((k = L), ($ = l[L + I] - l[L])) : p >= l[L] && ((k = L), ($ = l[l.length - 1] - l[l.length - 2])); } var D = (p - l[k]) / $, O = k < s.slidesPerGroupSkip - 1 ? 1 : s.slidesPerGroup; if (u > s.longSwipesMs) { if (!s.longSwipes) return void t.slideTo(t.activeIndex); "next" === t.swipeDirection && (D >= s.longSwipesRatio ? t.slideTo(k + O) : t.slideTo(k)), "prev" === t.swipeDirection && (D > 1 - s.longSwipesRatio ? t.slideTo(k + O) : t.slideTo(k)); } else { if (!s.shortSwipes) return void t.slideTo(t.activeIndex); t.navigation && (h.target === t.navigation.nextEl || h.target === t.navigation.prevEl) ? h.target === t.navigation.nextEl ? t.slideTo(k + O) : t.slideTo(k) : ("next" === t.swipeDirection && t.slideTo(k + O), "prev" === t.swipeDirection && t.slideTo(k)); } } } function G() { var e = this.params, t = this.el; if (!t || 0 !== t.offsetWidth) { e.breakpoints && this.setBreakpoint(); var i = this.allowSlideNext, s = this.allowSlidePrev, a = this.snapGrid; (this.allowSlideNext = !0), (this.allowSlidePrev = !0), this.updateSize(), this.updateSlides(), this.updateSlidesClasses(), ("auto" === e.slidesPerView || e.slidesPerView > 1) && this.isEnd && !this.params.centeredSlides ? this.slideTo(this.slides.length - 1, 0, !1, !0) : this.slideTo(this.activeIndex, 0, !1, !0), this.autoplay && this.autoplay.running && this.autoplay.paused && this.autoplay.run(), (this.allowSlidePrev = s), (this.allowSlideNext = i), this.params.watchOverflow && a !== this.snapGrid && this.checkOverflow(); } } function H(e) { this.allowClick || (this.params.preventClicks && e.preventDefault(), this.params.preventClicksPropagation && this.animating && (e.stopPropagation(), e.stopImmediatePropagation())); } function B() { var e = this.wrapperEl; (this.previousTranslate = this.translate), (this.translate = this.isHorizontal() ? -e.scrollLeft : -e.scrollTop), -0 === this.translate && (this.translate = 0), this.updateActiveIndex(), this.updateSlidesClasses(); var t = this.maxTranslate() - this.minTranslate(); (0 === t ? 0 : (this.translate - this.minTranslate()) / t) !== this.progress && this.updateProgress(this.translate), this.emit("setTranslate", this.translate, !1); } var N = !1; function X() {} var V = { init: !0, direction: "horizontal", touchEventsTarget: "container", initialSlide: 0, speed: 300, cssMode: !1, updateOnWindowResize: !0, preventInteractionOnTransition: !1, edgeSwipeDetection: !1, edgeSwipeThreshold: 20, freeMode: !1, freeModeMomentum: !0, freeModeMomentumRatio: 1, freeModeMomentumBounce: !0, freeModeMomentumBounceRatio: 1, freeModeMomentumVelocityRatio: 1, freeModeSticky: !1, freeModeMinimumVelocity: 0.02, autoHeight: !1, setWrapperSize: !1, virtualTranslate: !1, effect: "slide", breakpoints: void 0, spaceBetween: 0, slidesPerView: 1, slidesPerColumn: 1, slidesPerColumnFill: "column", slidesPerGroup: 1, slidesPerGroupSkip: 0, centeredSlides: !1, centeredSlidesBounds: !1, slidesOffsetBefore: 0, slidesOffsetAfter: 0, normalizeSlideIndex: !0, centerInsufficientSlides: !1, watchOverflow: !1, roundLengths: !1, touchRatio: 1, touchAngle: 45, simulateTouch: !0, shortSwipes: !0, longSwipes: !0, longSwipesRatio: 0.5, longSwipesMs: 300, followFinger: !0, allowTouchMove: !0, threshold: 0, touchMoveStopPropagation: !1, touchStartPreventDefault: !0, touchStartForcePreventDefault: !1, touchReleaseOnEdges: !1, uniqueNavElements: !0, resistance: !0, resistanceRatio: 0.85, watchSlidesProgress: !1, watchSlidesVisibility: !1, grabCursor: !1, preventClicks: !0, preventClicksPropagation: !0, slideToClickedSlide: !1, preloadImages: !0, updateOnImagesReady: !0, loop: !1, loopAdditionalSlides: 0, loopedSlides: null, loopFillGroupWithBlank: !1, allowSlidePrev: !0, allowSlideNext: !0, swipeHandler: null, noSwiping: !0, noSwipingClass: "swiper-no-swiping", noSwipingSelector: null, passiveListeners: !0, containerModifierClass: "swiper-container-", slideClass: "swiper-slide", slideBlankClass: "swiper-slide-invisible-blank", slideActiveClass: "swiper-slide-active", slideDuplicateActiveClass: "swiper-slide-duplicate-active", slideVisibleClass: "swiper-slide-visible", slideDuplicateClass: "swiper-slide-duplicate", slideNextClass: "swiper-slide-next", slideDuplicateNextClass: "swiper-slide-duplicate-next", slidePrevClass: "swiper-slide-prev", slideDuplicatePrevClass: "swiper-slide-duplicate-prev", wrapperClass: "swiper-wrapper", runCallbacksOnInit: !0, }, Y = { update: h, translate: p, transition: c, slide: u, loop: v, grabCursor: f, manipulation: L, events: { attachEvents: function () { var t = this.params, i = this.touchEvents, s = this.el, a = this.wrapperEl; (this.onTouchStart = D.bind(this)), (this.onTouchMove = O.bind(this)), (this.onTouchEnd = A.bind(this)), t.cssMode && (this.onScroll = B.bind(this)), (this.onClick = H.bind(this)); var r = !!t.nested; if (!o.touch && o.pointerEvents) s.addEventListener(i.start, this.onTouchStart, !1), e.addEventListener(i.move, this.onTouchMove, r), e.addEventListener(i.end, this.onTouchEnd, !1); else { if (o.touch) { var n = !( "touchstart" !== i.start || !o.passiveListener || !t.passiveListeners ) && { passive: !0, capture: !1 }; s.addEventListener(i.start, this.onTouchStart, n), s.addEventListener( i.move, this.onTouchMove, o.passiveListener ? { passive: !1, capture: r } : r ), s.addEventListener(i.end, this.onTouchEnd, n), i.cancel && s.addEventListener(i.cancel, this.onTouchEnd, n), N || (e.addEventListener("touchstart", X), (N = !0)); } ((t.simulateTouch && !I.ios && !I.android) || (t.simulateTouch && !o.touch && I.ios)) && (s.addEventListener("mousedown", this.onTouchStart, !1), e.addEventListener("mousemove", this.onTouchMove, r), e.addEventListener("mouseup", this.onTouchEnd, !1)); } (t.preventClicks || t.preventClicksPropagation) && s.addEventListener("click", this.onClick, !0), t.cssMode && a.addEventListener("scroll", this.onScroll), t.updateOnWindowResize ? this.on( I.ios || I.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", G, !0 ) : this.on("observerUpdate", G, !0); }, detachEvents: function () { var t = this.params, i = this.touchEvents, s = this.el, a = this.wrapperEl, r = !!t.nested; if (!o.touch && o.pointerEvents) s.removeEventListener(i.start, this.onTouchStart, !1), e.removeEventListener(i.move, this.onTouchMove, r), e.removeEventListener(i.end, this.onTouchEnd, !1); else { if (o.touch) { var n = !( "onTouchStart" !== i.start || !o.passiveListener || !t.passiveListeners ) && { passive: !0, capture: !1 }; s.removeEventListener(i.start, this.onTouchStart, n), s.removeEventListener(i.move, this.onTouchMove, r), s.removeEventListener(i.end, this.onTouchEnd, n), i.cancel && s.removeEventListener(i.cancel, this.onTouchEnd, n); } ((t.simulateTouch && !I.ios && !I.android) || (t.simulateTouch && !o.touch && I.ios)) && (s.removeEventListener("mousedown", this.onTouchStart, !1), e.removeEventListener("mousemove", this.onTouchMove, r), e.removeEventListener("mouseup", this.onTouchEnd, !1)); } (t.preventClicks || t.preventClicksPropagation) && s.removeEventListener("click", this.onClick, !0), t.cssMode && a.removeEventListener("scroll", this.onScroll), this.off( I.ios || I.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", G ); }, }, breakpoints: { setBreakpoint: function () { var e = this.activeIndex, t = this.initialized, i = this.loopedSlides; void 0 === i && (i = 0); var s = this.params, a = this.$el, r = s.breakpoints; if (r && (!r || 0 !== Object.keys(r).length)) { var o = this.getBreakpoint(r); if (o && this.currentBreakpoint !== o) { var l = o in r ? r[o] : void 0; l && [ "slidesPerView", "spaceBetween", "slidesPerGroup", "slidesPerGroupSkip", "slidesPerColumn", ].forEach(function (e) { var t = l[e]; void 0 !== t && (l[e] = "slidesPerView" !== e || ("AUTO" !== t && "auto" !== t) ? "slidesPerView" === e ? parseFloat(t) : parseInt(t, 10) : "auto"); }); var d = l || this.originalParams, h = s.slidesPerColumn > 1, p = d.slidesPerColumn > 1; h && !p ? a.removeClass( s.containerModifierClass + "multirow " + s.containerModifierClass + "multirow-column" ) : !h && p && (a.addClass(s.containerModifierClass + "multirow"), "column" === d.slidesPerColumnFill && a.addClass(s.containerModifierClass + "multirow-column")); var c = d.direction && d.direction !== s.direction, u = s.loop && (d.slidesPerView !== s.slidesPerView || c); c && t && this.changeDirection(), n.extend(this.params, d), n.extend(this, { allowTouchMove: this.params.allowTouchMove, allowSlideNext: this.params.allowSlideNext, allowSlidePrev: this.params.allowSlidePrev, }), (this.currentBreakpoint = o), u && t && (this.loopDestroy(), this.loopCreate(), this.updateSlides(), this.slideTo(e - i + this.loopedSlides, 0, !1)), this.emit("breakpoint", d); } } }, getBreakpoint: function (e) { if (e) { var i = !1, s = Object.keys(e).map(function (e) { if ("string" == typeof e && 0 === e.indexOf("@")) { var i = parseFloat(e.substr(1)); return { value: t.innerHeight * i, point: e }; } return { value: e, point: e }; }); s.sort(function (e, t) { return parseInt(e.value, 10) - parseInt(t.value, 10); }); for (var a = 0; a < s.length; a += 1) { var r = s[a], n = r.point; r.value <= t.innerWidth && (i = n); } return i || "max"; } }, }, checkOverflow: { checkOverflow: function () { var e = this.params, t = this.isLocked, i = this.slides.length > 0 && e.slidesOffsetBefore + e.spaceBetween * (this.slides.length - 1) + this.slides[0].offsetWidth * this.slides.length; e.slidesOffsetBefore && e.slidesOffsetAfter && i ? (this.isLocked = i <= this.size) : (this.isLocked = 1 === this.snapGrid.length), (this.allowSlideNext = !this.isLocked), (this.allowSlidePrev = !this.isLocked), t !== this.isLocked && this.emit(this.isLocked ? "lock" : "unlock"), t && t !== this.isLocked && ((this.isEnd = !1), this.navigation.update()); }, }, classes: { addClasses: function () { var e = this.classNames, t = this.params, i = this.rtl, s = this.$el, a = []; a.push("initialized"), a.push(t.direction), t.freeMode && a.push("free-mode"), t.autoHeight && a.push("autoheight"), i && a.push("rtl"), t.slidesPerColumn > 1 && (a.push("multirow"), "column" === t.slidesPerColumnFill && a.push("multirow-column")), I.android && a.push("android"), I.ios && a.push("ios"), t.cssMode && a.push("css-mode"), a.forEach(function (i) { e.push(t.containerModifierClass + i); }), s.addClass(e.join(" ")); }, removeClasses: function () { var e = this.$el, t = this.classNames; e.removeClass(t.join(" ")); }, }, images: { loadImage: function (e, i, s, a, r, n) { var o; function l() { n && n(); } e.complete && r ? l() : i ? (((o = new t.Image()).onload = l), (o.onerror = l), a && (o.sizes = a), s && (o.srcset = s), i && (o.src = i)) : l(); }, preloadImages: function () { var e = this; function t() { null != e && e && !e.destroyed && (void 0 !== e.imagesLoaded && (e.imagesLoaded += 1), e.imagesLoaded === e.imagesToLoad.length && (e.params.updateOnImagesReady && e.update(), e.emit("imagesReady"))); } e.imagesToLoad = e.$el.find("img"); for (var i = 0; i < e.imagesToLoad.length; i += 1) { var s = e.imagesToLoad[i]; e.loadImage( s, s.currentSrc || s.getAttribute("src"), s.srcset || s.getAttribute("srcset"), s.sizes || s.getAttribute("sizes"), !0, t ); } }, }, }, F = {}, W = (function (e) { function t() { for (var i, a, r, l = [], d = arguments.length; d--; ) l[d] = arguments[d]; 1 === l.length && l[0].constructor && l[0].constructor === Object ? (r = l[0]) : ((a = (i = l)[0]), (r = i[1])), r || (r = {}), (r = n.extend({}, r)), a && !r.el && (r.el = a), e.call(this, r), Object.keys(Y).forEach(function (e) { Object.keys(Y[e]).forEach(function (i) { t.prototype[i] || (t.prototype[i] = Y[e][i]); }); }); var h = this; void 0 === h.modules && (h.modules = {}), Object.keys(h.modules).forEach(function (e) { var t = h.modules[e]; if (t.params) { var i = Object.keys(t.params)[0], s = t.params[i]; if ("object" != typeof s || null === s) return; if (!(i in r && "enabled" in s)) return; !0 === r[i] && (r[i] = { enabled: !0 }), "object" != typeof r[i] || "enabled" in r[i] || (r[i].enabled = !0), r[i] || (r[i] = { enabled: !1 }); } }); var p = n.extend({}, V); h.useModulesParams(p), (h.params = n.extend({}, p, F, r)), (h.originalParams = n.extend({}, h.params)), (h.passedParams = n.extend({}, r)), (h.$ = s); var c = s(h.params.el); if ((a = c[0])) { if (c.length > 1) { var u = []; return ( c.each(function (e, i) { var s = n.extend({}, r, { el: i }); u.push(new t(s)); }), u ); } var v, f, m; return ( (a.swiper = h), c.data("swiper", h), a && a.shadowRoot && a.shadowRoot.querySelector ? ((v = s( a.shadowRoot.querySelector("." + h.params.wrapperClass) )).children = function (e) { return c.children(e); }) : (v = c.children("." + h.params.wrapperClass)), n.extend(h, { $el: c, el: a, $wrapperEl: v, wrapperEl: v[0], classNames: [], slides: s(), slidesGrid: [], snapGrid: [], slidesSizesGrid: [], isHorizontal: function () { return "horizontal" === h.params.direction; }, isVertical: function () { return "vertical" === h.params.direction; }, rtl: "rtl" === a.dir.toLowerCase() || "rtl" === c.css("direction"), rtlTranslate: "horizontal" === h.params.direction && ("rtl" === a.dir.toLowerCase() || "rtl" === c.css("direction")), wrongRTL: "-webkit-box" === v.css("display"), activeIndex: 0, realIndex: 0, isBeginning: !0, isEnd: !1, translate: 0, previousTranslate: 0, progress: 0, velocity: 0, animating: !1, allowSlideNext: h.params.allowSlideNext, allowSlidePrev: h.params.allowSlidePrev, touchEvents: ((f = ["touchstart", "touchmove", "touchend", "touchcancel"]), (m = ["mousedown", "mousemove", "mouseup"]), o.pointerEvents && (m = ["pointerdown", "pointermove", "pointerup"]), (h.touchEventsTouch = { start: f[0], move: f[1], end: f[2], cancel: f[3], }), (h.touchEventsDesktop = { start: m[0], move: m[1], end: m[2] }), o.touch || !h.params.simulateTouch ? h.touchEventsTouch : h.touchEventsDesktop), touchEventsData: { isTouched: void 0, isMoved: void 0, allowTouchCallbacks: void 0, touchStartTime: void 0, isScrolling: void 0, currentTranslate: void 0, startTranslate: void 0, allowThresholdMove: void 0, formElements: "input, select, option, textarea, button, video, label", lastClickTime: n.now(), clickTimeout: void 0, velocities: [], allowMomentumBounce: void 0, isTouchEvent: void 0, startMoving: void 0, }, allowClick: !0, allowTouchMove: h.params.allowTouchMove, touches: { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0, }, imagesToLoad: [], imagesLoaded: 0, }), h.useModules(), h.params.init && h.init(), h ); } } e && (t.__proto__ = e), (t.prototype = Object.create(e && e.prototype)), (t.prototype.constructor = t); var i = { extendedDefaults: { configurable: !0 }, defaults: { configurable: !0 }, Class: { configurable: !0 }, $: { configurable: !0 }, }; return ( (t.prototype.slidesPerViewDynamic = function () { var e = this.params, t = this.slides, i = this.slidesGrid, s = this.size, a = this.activeIndex, r = 1; if (e.centeredSlides) { for ( var n, o = t[a].swiperSlideSize, l = a + 1; l < t.length; l += 1 ) t[l] && !n && ((r += 1), (o += t[l].swiperSlideSize) > s && (n = !0)); for (var d = a - 1; d >= 0; d -= 1) t[d] && !n && ((r += 1), (o += t[d].swiperSlideSize) > s && (n = !0)); } else for (var h = a + 1; h < t.length; h += 1) i[h] - i[a] < s && (r += 1); return r; }), (t.prototype.update = function () { var e = this; if (e && !e.destroyed) { var t = e.snapGrid, i = e.params; i.breakpoints && e.setBreakpoint(), e.updateSize(), e.updateSlides(), e.updateProgress(), e.updateSlidesClasses(), e.params.freeMode ? (s(), e.params.autoHeight && e.updateAutoHeight()) : (("auto" === e.params.slidesPerView || e.params.slidesPerView > 1) && e.isEnd && !e.params.centeredSlides ? e.slideTo(e.slides.length - 1, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0)) || s(), i.watchOverflow && t !== e.snapGrid && e.checkOverflow(), e.emit("update"); } function s() { var t = e.rtlTranslate ? -1 * e.translate : e.translate, i = Math.min(Math.max(t, e.maxTranslate()), e.minTranslate()); e.setTranslate(i), e.updateActiveIndex(), e.updateSlidesClasses(); } }), (t.prototype.changeDirection = function (e, t) { void 0 === t && (t = !0); var i = this.params.direction; return ( e || (e = "horizontal" === i ? "vertical" : "horizontal"), e === i || ("horizontal" !== e && "vertical" !== e) ? this : (this.$el .removeClass("" + this.params.containerModifierClass + i) .addClass("" + this.params.containerModifierClass + e), (this.params.direction = e), this.slides.each(function (t, i) { "vertical" === e ? (i.style.width = "") : (i.style.height = ""); }), this.emit("changeDirection"), t && this.update(), this) ); }), (t.prototype.init = function () { this.initialized || (this.emit("beforeInit"), this.params.breakpoints && this.setBreakpoint(), this.addClasses(), this.params.loop && this.loopCreate(), this.updateSize(), this.updateSlides(), this.params.watchOverflow && this.checkOverflow(), this.params.grabCursor && this.setGrabCursor(), this.params.preloadImages && this.preloadImages(), this.params.loop ? this.slideTo( this.params.initialSlide + this.loopedSlides, 0, this.params.runCallbacksOnInit ) : this.slideTo( this.params.initialSlide, 0, this.params.runCallbacksOnInit ), this.attachEvents(), (this.initialized = !0), this.emit("init")); }), (t.prototype.destroy = function (e, t) { void 0 === e && (e = !0), void 0 === t && (t = !0); var i = this, s = i.params, a = i.$el, r = i.$wrapperEl, o = i.slides; return void 0 === i.params || i.destroyed ? null : (i.emit("beforeDestroy"), (i.initialized = !1), i.detachEvents(), s.loop && i.loopDestroy(), t && (i.removeClasses(), a.removeAttr("style"), r.removeAttr("style"), o && o.length && o .removeClass( [ s.slideVisibleClass, s.slideActiveClass, s.slideNextClass, s.slidePrevClass, ].join(" ") ) .removeAttr("style") .removeAttr("data-swiper-slide-index")), i.emit("destroy"), Object.keys(i.eventsListeners).forEach(function (e) { i.off(e); }), !1 !== e && ((i.$el[0].swiper = null), i.$el.data("swiper", null), n.deleteProps(i)), (i.destroyed = !0), null); }), (t.extendDefaults = function (e) { n.extend(F, e); }), (i.extendedDefaults.get = function () { return F; }), (i.defaults.get = function () { return V; }), (i.Class.get = function () { return e; }), (i.$.get = function () { return s; }), Object.defineProperties(t, i), t ); })(l), R = { name: "device", proto: { device: I }, static: { device: I } }, q = { name: "support", proto: { support: o }, static: { support: o } }, j = { isEdge: !!t.navigator.userAgent.match(/Edge/g), isSafari: (function () { var e = t.navigator.userAgent.toLowerCase(); return ( e.indexOf("safari") >= 0 && e.indexOf("chrome") < 0 && e.indexOf("android") < 0 ); })(), isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test( t.navigator.userAgent ), }, K = { name: "browser", proto: { browser: j }, static: { browser: j } }, U = { name: "resize", create: function () { var e = this; n.extend(e, { resize: { resizeHandler: function () { e && !e.destroyed && e.initialized && (e.emit("beforeResize"), e.emit("resize")); }, orientationChangeHandler: function () { e && !e.destroyed && e.initialized && e.emit("orientationchange"); }, }, }); }, on: { init: function () { t.addEventListener("resize", this.resize.resizeHandler), t.addEventListener( "orientationchange", this.resize.orientationChangeHandler ); }, destroy: function () { t.removeEventListener("resize", this.resize.resizeHandler), t.removeEventListener( "orientationchange", this.resize.orientationChangeHandler ); }, }, }, _ = { func: t.MutationObserver || t.WebkitMutationObserver, attach: function (e, i) { void 0 === i && (i = {}); var s = this, a = new (0, _.func)(function (e) { if (1 !== e.length) { var i = function () { s.emit("observerUpdate", e[0]); }; t.requestAnimationFrame ? t.requestAnimationFrame(i) : t.setTimeout(i, 0); } else s.emit("observerUpdate", e[0]); }); a.observe(e, { attributes: void 0 === i.attributes || i.attributes, childList: void 0 === i.childList || i.childList, characterData: void 0 === i.characterData || i.characterData, }), s.observer.observers.push(a); }, init: function () { if (o.observer && this.params.observer) { if (this.params.observeParents) for (var e = this.$el.parents(), t = 0; t < e.length; t += 1) this.observer.attach(e[t]); this.observer.attach(this.$el[0], { childList: this.params.observeSlideChildren, }), this.observer.attach(this.$wrapperEl[0], { attributes: !1 }); } }, destroy: function () { this.observer.observers.forEach(function (e) { e.disconnect(); }), (this.observer.observers = []); }, }, Z = { name: "observer", params: { observer: !1, observeParents: !1, observeSlideChildren: !1 }, create: function () { n.extend(this, { observer: { init: _.init.bind(this), attach: _.attach.bind(this), destroy: _.destroy.bind(this), observers: [], }, }); }, on: { init: function () { this.observer.init(); }, destroy: function () { this.observer.destroy(); }, }, }, Q = { update: function (e) { var t = this, i = t.params, s = i.slidesPerView, a = i.slidesPerGroup, r = i.centeredSlides, o = t.params.virtual, l = o.addSlidesBefore, d = o.addSlidesAfter, h = t.virtual, p = h.from, c = h.to, u = h.slides, v = h.slidesGrid, f = h.renderSlide, m = h.offset; t.updateActiveIndex(); var g, b, w, y = t.activeIndex || 0; (g = t.rtlTranslate ? "right" : t.isHorizontal() ? "left" : "top"), r ? ((b = Math.floor(s / 2) + a + l), (w = Math.floor(s / 2) + a + d)) : ((b = s + (a - 1) + l), (w = a + d)); var x = Math.max((y || 0) - w, 0), T = Math.min((y || 0) + b, u.length - 1), E = (t.slidesGrid[x] || 0) - (t.slidesGrid[0] || 0); function S() { t.updateSlides(), t.updateProgress(), t.updateSlidesClasses(), t.lazy && t.params.lazy.enabled && t.lazy.load(); } if ( (n.extend(t.virtual, { from: x, to: T, offset: E, slidesGrid: t.slidesGrid, }), p === x && c === T && !e) ) return ( t.slidesGrid !== v && E !== m && t.slides.css(g, E + "px"), void t.updateProgress() ); if (t.params.virtual.renderExternal) return ( t.params.virtual.renderExternal.call(t, { offset: E, from: x, to: T, slides: (function () { for (var e = [], t = x; t <= T; t += 1) e.push(u[t]); return e; })(), }), void S() ); var C = [], M = []; if (e) t.$wrapperEl.find("." + t.params.slideClass).remove(); else for (var P = p; P <= c; P += 1) (P < x || P > T) && t.$wrapperEl .find( "." + t.params.slideClass + '[data-swiper-slide-index="' + P + '"]' ) .remove(); for (var z = 0; z < u.length; z += 1) z >= x && z <= T && (void 0 === c || e ? M.push(z) : (z > c && M.push(z), z < p && C.push(z))); M.forEach(function (e) { t.$wrapperEl.append(f(u[e], e)); }), C.sort(function (e, t) { return t - e; }).forEach(function (e) { t.$wrapperEl.prepend(f(u[e], e)); }), t.$wrapperEl.children(".swiper-slide").css(g, E + "px"), S(); }, renderSlide: function (e, t) { var i = this.params.virtual; if (i.cache && this.virtual.cache[t]) return this.virtual.cache[t]; var a = i.renderSlide ? s(i.renderSlide.call(this, e, t)) : s( '
              ' + e + "
              " ); return ( a.attr("data-swiper-slide-index") || a.attr("data-swiper-slide-index", t), i.cache && (this.virtual.cache[t] = a), a ); }, appendSlide: function (e) { if ("object" == typeof e && "length" in e) for (var t = 0; t < e.length; t += 1) e[t] && this.virtual.slides.push(e[t]); else this.virtual.slides.push(e); this.virtual.update(!0); }, prependSlide: function (e) { var t = this.activeIndex, i = t + 1, s = 1; if (Array.isArray(e)) { for (var a = 0; a < e.length; a += 1) e[a] && this.virtual.slides.unshift(e[a]); (i = t + e.length), (s = e.length); } else this.virtual.slides.unshift(e); if (this.params.virtual.cache) { var r = this.virtual.cache, n = {}; Object.keys(r).forEach(function (e) { var t = r[e], i = t.attr("data-swiper-slide-index"); i && t.attr("data-swiper-slide-index", parseInt(i, 10) + 1), (n[parseInt(e, 10) + s] = t); }), (this.virtual.cache = n); } this.virtual.update(!0), this.slideTo(i, 0); }, removeSlide: function (e) { if (null != e) { var t = this.activeIndex; if (Array.isArray(e)) for (var i = e.length - 1; i >= 0; i -= 1) this.virtual.slides.splice(e[i], 1), this.params.virtual.cache && delete this.virtual.cache[e[i]], e[i] < t && (t -= 1), (t = Math.max(t, 0)); else this.virtual.slides.splice(e, 1), this.params.virtual.cache && delete this.virtual.cache[e], e < t && (t -= 1), (t = Math.max(t, 0)); this.virtual.update(!0), this.slideTo(t, 0); } }, removeAllSlides: function () { (this.virtual.slides = []), this.params.virtual.cache && (this.virtual.cache = {}), this.virtual.update(!0), this.slideTo(0, 0); }, }, J = { name: "virtual", params: { virtual: { enabled: !1, slides: [], cache: !0, renderSlide: null, renderExternal: null, addSlidesBefore: 0, addSlidesAfter: 0, }, }, create: function () { n.extend(this, { virtual: { update: Q.update.bind(this), appendSlide: Q.appendSlide.bind(this), prependSlide: Q.prependSlide.bind(this), removeSlide: Q.removeSlide.bind(this), removeAllSlides: Q.removeAllSlides.bind(this), renderSlide: Q.renderSlide.bind(this), slides: this.params.virtual.slides, cache: {}, }, }); }, on: { beforeInit: function () { if (this.params.virtual.enabled) { this.classNames.push( this.params.containerModifierClass + "virtual" ); var e = { watchSlidesProgress: !0 }; n.extend(this.params, e), n.extend(this.originalParams, e), this.params.initialSlide || this.virtual.update(); } }, setTranslate: function () { this.params.virtual.enabled && this.virtual.update(); }, }, }, ee = { handle: function (i) { var s = this.rtlTranslate, a = i; a.originalEvent && (a = a.originalEvent); var r = a.keyCode || a.charCode; if ( !this.allowSlideNext && ((this.isHorizontal() && 39 === r) || (this.isVertical() && 40 === r) || 34 === r) ) return !1; if ( !this.allowSlidePrev && ((this.isHorizontal() && 37 === r) || (this.isVertical() && 38 === r) || 33 === r) ) return !1; if ( !( a.shiftKey || a.altKey || a.ctrlKey || a.metaKey || (e.activeElement && e.activeElement.nodeName && ("input" === e.activeElement.nodeName.toLowerCase() || "textarea" === e.activeElement.nodeName.toLowerCase())) ) ) { if ( this.params.keyboard.onlyInViewport && (33 === r || 34 === r || 37 === r || 39 === r || 38 === r || 40 === r) ) { var n = !1; if ( this.$el.parents("." + this.params.slideClass).length > 0 && 0 === this.$el.parents("." + this.params.slideActiveClass).length ) return; var o = t.innerWidth, l = t.innerHeight, d = this.$el.offset(); s && (d.left -= this.$el[0].scrollLeft); for ( var h = [ [d.left, d.top], [d.left + this.width, d.top], [d.left, d.top + this.height], [d.left + this.width, d.top + this.height], ], p = 0; p < h.length; p += 1 ) { var c = h[p]; c[0] >= 0 && c[0] <= o && c[1] >= 0 && c[1] <= l && (n = !0); } if (!n) return; } this.isHorizontal() ? ((33 !== r && 34 !== r && 37 !== r && 39 !== r) || (a.preventDefault ? a.preventDefault() : (a.returnValue = !1)), (((34 !== r && 39 !== r) || s) && ((33 !== r && 37 !== r) || !s)) || this.slideNext(), (((33 !== r && 37 !== r) || s) && ((34 !== r && 39 !== r) || !s)) || this.slidePrev()) : ((33 !== r && 34 !== r && 38 !== r && 40 !== r) || (a.preventDefault ? a.preventDefault() : (a.returnValue = !1)), (34 !== r && 40 !== r) || this.slideNext(), (33 !== r && 38 !== r) || this.slidePrev()), this.emit("keyPress", r); } }, enable: function () { this.keyboard.enabled || (s(e).on("keydown", this.keyboard.handle), (this.keyboard.enabled = !0)); }, disable: function () { this.keyboard.enabled && (s(e).off("keydown", this.keyboard.handle), (this.keyboard.enabled = !1)); }, }, te = { name: "keyboard", params: { keyboard: { enabled: !1, onlyInViewport: !0 } }, create: function () { n.extend(this, { keyboard: { enabled: !1, enable: ee.enable.bind(this), disable: ee.disable.bind(this), handle: ee.handle.bind(this), }, }); }, on: { init: function () { this.params.keyboard.enabled && this.keyboard.enable(); }, destroy: function () { this.keyboard.enabled && this.keyboard.disable(); }, }, }; var ie = { lastScrollTime: n.now(), lastEventBeforeSnap: void 0, recentWheelEvents: [], event: function () { return t.navigator.userAgent.indexOf("firefox") > -1 ? "DOMMouseScroll" : (function () { var t = "onwheel" in e; if (!t) { var i = e.createElement("div"); i.setAttribute("onwheel", "return;"), (t = "function" == typeof i.onwheel); } return ( !t && e.implementation && e.implementation.hasFeature && !0 !== e.implementation.hasFeature("", "") && (t = e.implementation.hasFeature("Events.wheel", "3.0")), t ); })() ? "wheel" : "mousewheel"; }, normalize: function (e) { var t = 0, i = 0, s = 0, a = 0; return ( "detail" in e && (i = e.detail), "wheelDelta" in e && (i = -e.wheelDelta / 120), "wheelDeltaY" in e && (i = -e.wheelDeltaY / 120), "wheelDeltaX" in e && (t = -e.wheelDeltaX / 120), "axis" in e && e.axis === e.HORIZONTAL_AXIS && ((t = i), (i = 0)), (s = 10 * t), (a = 10 * i), "deltaY" in e && (a = e.deltaY), "deltaX" in e && (s = e.deltaX), e.shiftKey && !s && ((s = a), (a = 0)), (s || a) && e.deltaMode && (1 === e.deltaMode ? ((s *= 40), (a *= 40)) : ((s *= 800), (a *= 800))), s && !t && (t = s < 1 ? -1 : 1), a && !i && (i = a < 1 ? -1 : 1), { spinX: t, spinY: i, pixelX: s, pixelY: a } ); }, handleMouseEnter: function () { this.mouseEntered = !0; }, handleMouseLeave: function () { this.mouseEntered = !1; }, handle: function (e) { var t = e, i = this, a = i.params.mousewheel; i.params.cssMode && t.preventDefault(); var r = i.$el; if ( ("container" !== i.params.mousewheel.eventsTarged && (r = s(i.params.mousewheel.eventsTarged)), !i.mouseEntered && !r[0].contains(t.target) && !a.releaseOnEdges) ) return !0; t.originalEvent && (t = t.originalEvent); var o = 0, l = i.rtlTranslate ? -1 : 1, d = ie.normalize(t); if (a.forceToAxis) if (i.isHorizontal()) { if (!(Math.abs(d.pixelX) > Math.abs(d.pixelY))) return !0; o = d.pixelX * l; } else { if (!(Math.abs(d.pixelY) > Math.abs(d.pixelX))) return !0; o = d.pixelY; } else o = Math.abs(d.pixelX) > Math.abs(d.pixelY) ? -d.pixelX * l : -d.pixelY; if (0 === o) return !0; if ((a.invert && (o = -o), i.params.freeMode)) { var h = { time: n.now(), delta: Math.abs(o), direction: Math.sign(o), }, p = i.mousewheel.lastEventBeforeSnap, c = p && h.time < p.time + 500 && h.delta <= p.delta && h.direction === p.direction; if (!c) { (i.mousewheel.lastEventBeforeSnap = void 0), i.params.loop && i.loopFix(); var u = i.getTranslate() + o * a.sensitivity, v = i.isBeginning, f = i.isEnd; if ( (u >= i.minTranslate() && (u = i.minTranslate()), u <= i.maxTranslate() && (u = i.maxTranslate()), i.setTransition(0), i.setTranslate(u), i.updateProgress(), i.updateActiveIndex(), i.updateSlidesClasses(), ((!v && i.isBeginning) || (!f && i.isEnd)) && i.updateSlidesClasses(), i.params.freeModeSticky) ) { clearTimeout(i.mousewheel.timeout), (i.mousewheel.timeout = void 0); var m = i.mousewheel.recentWheelEvents; m.length >= 15 && m.shift(); var g = m.length ? m[m.length - 1] : void 0, b = m[0]; if ( (m.push(h), g && (h.delta > g.delta || h.direction !== g.direction)) ) m.splice(0); else if ( m.length >= 15 && h.time - b.time < 500 && b.delta - h.delta >= 1 && h.delta <= 6 ) { var w = o > 0 ? 0.8 : 0.2; (i.mousewheel.lastEventBeforeSnap = h), m.splice(0), (i.mousewheel.timeout = n.nextTick(function () { i.slideToClosest(i.params.speed, !0, void 0, w); }, 0)); } i.mousewheel.timeout || (i.mousewheel.timeout = n.nextTick(function () { (i.mousewheel.lastEventBeforeSnap = h), m.splice(0), i.slideToClosest(i.params.speed, !0, void 0, 0.5); }, 500)); } if ( (c || i.emit("scroll", t), i.params.autoplay && i.params.autoplayDisableOnInteraction && i.autoplay.stop(), u === i.minTranslate() || u === i.maxTranslate()) ) return !0; } } else { var y = { time: n.now(), delta: Math.abs(o), direction: Math.sign(o), raw: e, }, x = i.mousewheel.recentWheelEvents; x.length >= 2 && x.shift(); var T = x.length ? x[x.length - 1] : void 0; if ( (x.push(y), T ? (y.direction !== T.direction || y.delta > T.delta) && i.mousewheel.animateSlider(y) : i.mousewheel.animateSlider(y), i.mousewheel.releaseScroll(y)) ) return !0; } return t.preventDefault ? t.preventDefault() : (t.returnValue = !1), !1; }, animateSlider: function (e) { return ( (e.delta >= 6 && n.now() - this.mousewheel.lastScrollTime < 60) || (e.direction < 0 ? (this.isEnd && !this.params.loop) || this.animating || (this.slideNext(), this.emit("scroll", e.raw)) : (this.isBeginning && !this.params.loop) || this.animating || (this.slidePrev(), this.emit("scroll", e.raw)), (this.mousewheel.lastScrollTime = new t.Date().getTime()), !1) ); }, releaseScroll: function (e) { var t = this.params.mousewheel; if (e.direction < 0) { if (this.isEnd && !this.params.loop && t.releaseOnEdges) return !0; } else if (this.isBeginning && !this.params.loop && t.releaseOnEdges) return !0; return !1; }, enable: function () { var e = ie.event(); if (this.params.cssMode) return ( this.wrapperEl.removeEventListener(e, this.mousewheel.handle), !0 ); if (!e) return !1; if (this.mousewheel.enabled) return !1; var t = this.$el; return ( "container" !== this.params.mousewheel.eventsTarged && (t = s(this.params.mousewheel.eventsTarged)), t.on("mouseenter", this.mousewheel.handleMouseEnter), t.on("mouseleave", this.mousewheel.handleMouseLeave), t.on(e, this.mousewheel.handle), (this.mousewheel.enabled = !0), !0 ); }, disable: function () { var e = ie.event(); if (this.params.cssMode) return this.wrapperEl.addEventListener(e, this.mousewheel.handle), !0; if (!e) return !1; if (!this.mousewheel.enabled) return !1; var t = this.$el; return ( "container" !== this.params.mousewheel.eventsTarged && (t = s(this.params.mousewheel.eventsTarged)), t.off(e, this.mousewheel.handle), (this.mousewheel.enabled = !1), !0 ); }, }, se = { update: function () { var e = this.params.navigation; if (!this.params.loop) { var t = this.navigation, i = t.$nextEl, s = t.$prevEl; s && s.length > 0 && (this.isBeginning ? s.addClass(e.disabledClass) : s.removeClass(e.disabledClass), s[ this.params.watchOverflow && this.isLocked ? "addClass" : "removeClass" ](e.lockClass)), i && i.length > 0 && (this.isEnd ? i.addClass(e.disabledClass) : i.removeClass(e.disabledClass), i[ this.params.watchOverflow && this.isLocked ? "addClass" : "removeClass" ](e.lockClass)); } }, onPrevClick: function (e) { e.preventDefault(), (this.isBeginning && !this.params.loop) || this.slidePrev(); }, onNextClick: function (e) { e.preventDefault(), (this.isEnd && !this.params.loop) || this.slideNext(); }, init: function () { var e, t, i = this.params.navigation; (i.nextEl || i.prevEl) && (i.nextEl && ((e = s(i.nextEl)), this.params.uniqueNavElements && "string" == typeof i.nextEl && e.length > 1 && 1 === this.$el.find(i.nextEl).length && (e = this.$el.find(i.nextEl))), i.prevEl && ((t = s(i.prevEl)), this.params.uniqueNavElements && "string" == typeof i.prevEl && t.length > 1 && 1 === this.$el.find(i.prevEl).length && (t = this.$el.find(i.prevEl))), e && e.length > 0 && e.on("click", this.navigation.onNextClick), t && t.length > 0 && t.on("click", this.navigation.onPrevClick), n.extend(this.navigation, { $nextEl: e, nextEl: e && e[0], $prevEl: t, prevEl: t && t[0], })); }, destroy: function () { var e = this.navigation, t = e.$nextEl, i = e.$prevEl; t && t.length && (t.off("click", this.navigation.onNextClick), t.removeClass(this.params.navigation.disabledClass)), i && i.length && (i.off("click", this.navigation.onPrevClick), i.removeClass(this.params.navigation.disabledClass)); }, }, ae = { update: function () { var e = this.rtl, t = this.params.pagination; if ( t.el && this.pagination.el && this.pagination.$el && 0 !== this.pagination.$el.length ) { var i, a = this.virtual && this.params.virtual.enabled ? this.virtual.slides.length : this.slides.length, r = this.pagination.$el, n = this.params.loop ? Math.ceil( (a - 2 * this.loopedSlides) / this.params.slidesPerGroup ) : this.snapGrid.length; if ( (this.params.loop ? ((i = Math.ceil( (this.activeIndex - this.loopedSlides) / this.params.slidesPerGroup )) > a - 1 - 2 * this.loopedSlides && (i -= a - 2 * this.loopedSlides), i > n - 1 && (i -= n), i < 0 && "bullets" !== this.params.paginationType && (i = n + i)) : (i = void 0 !== this.snapIndex ? this.snapIndex : this.activeIndex || 0), "bullets" === t.type && this.pagination.bullets && this.pagination.bullets.length > 0) ) { var o, l, d, h = this.pagination.bullets; if ( (t.dynamicBullets && ((this.pagination.bulletSize = h .eq(0) [this.isHorizontal() ? "outerWidth" : "outerHeight"](!0)), r.css( this.isHorizontal() ? "width" : "height", this.pagination.bulletSize * (t.dynamicMainBullets + 4) + "px" ), t.dynamicMainBullets > 1 && void 0 !== this.previousIndex && ((this.pagination.dynamicBulletIndex += i - this.previousIndex), this.pagination.dynamicBulletIndex > t.dynamicMainBullets - 1 ? (this.pagination.dynamicBulletIndex = t.dynamicMainBullets - 1) : this.pagination.dynamicBulletIndex < 0 && (this.pagination.dynamicBulletIndex = 0)), (o = i - this.pagination.dynamicBulletIndex), (d = ((l = o + (Math.min(h.length, t.dynamicMainBullets) - 1)) + o) / 2)), h.removeClass( t.bulletActiveClass + " " + t.bulletActiveClass + "-next " + t.bulletActiveClass + "-next-next " + t.bulletActiveClass + "-prev " + t.bulletActiveClass + "-prev-prev " + t.bulletActiveClass + "-main" ), r.length > 1) ) h.each(function (e, a) { var r = s(a), n = r.index(); n === i && r.addClass(t.bulletActiveClass), t.dynamicBullets && (n >= o && n <= l && r.addClass(t.bulletActiveClass + "-main"), n === o && r .prev() .addClass(t.bulletActiveClass + "-prev") .prev() .addClass(t.bulletActiveClass + "-prev-prev"), n === l && r .next() .addClass(t.bulletActiveClass + "-next") .next() .addClass(t.bulletActiveClass + "-next-next")); }); else { var p = h.eq(i), c = p.index(); if ((p.addClass(t.bulletActiveClass), t.dynamicBullets)) { for (var u = h.eq(o), v = h.eq(l), f = o; f <= l; f += 1) h.eq(f).addClass(t.bulletActiveClass + "-main"); if (this.params.loop) if (c >= h.length - t.dynamicMainBullets) { for (var m = t.dynamicMainBullets; m >= 0; m -= 1) h.eq(h.length - m).addClass( t.bulletActiveClass + "-main" ); h.eq(h.length - t.dynamicMainBullets - 1).addClass( t.bulletActiveClass + "-prev" ); } else u .prev() .addClass(t.bulletActiveClass + "-prev") .prev() .addClass(t.bulletActiveClass + "-prev-prev"), v .next() .addClass(t.bulletActiveClass + "-next") .next() .addClass(t.bulletActiveClass + "-next-next"); else u .prev() .addClass(t.bulletActiveClass + "-prev") .prev() .addClass(t.bulletActiveClass + "-prev-prev"), v .next() .addClass(t.bulletActiveClass + "-next") .next() .addClass(t.bulletActiveClass + "-next-next"); } } if (t.dynamicBullets) { var g = Math.min(h.length, t.dynamicMainBullets + 4), b = (this.pagination.bulletSize * g - this.pagination.bulletSize) / 2 - d * this.pagination.bulletSize, w = e ? "right" : "left"; h.css(this.isHorizontal() ? w : "top", b + "px"); } } if ( ("fraction" === t.type && (r .find("." + t.currentClass) .text(t.formatFractionCurrent(i + 1)), r.find("." + t.totalClass).text(t.formatFractionTotal(n))), "progressbar" === t.type) ) { var y; y = t.progressbarOpposite ? this.isHorizontal() ? "vertical" : "horizontal" : this.isHorizontal() ? "horizontal" : "vertical"; var x = (i + 1) / n, T = 1, E = 1; "horizontal" === y ? (T = x) : (E = x), r .find("." + t.progressbarFillClass) .transform( "translate3d(0,0,0) scaleX(" + T + ") scaleY(" + E + ")" ) .transition(this.params.speed); } "custom" === t.type && t.renderCustom ? (r.html(t.renderCustom(this, i + 1, n)), this.emit("paginationRender", this, r[0])) : this.emit("paginationUpdate", this, r[0]), r[ this.params.watchOverflow && this.isLocked ? "addClass" : "removeClass" ](t.lockClass); } }, render: function () { var e = this.params.pagination; if ( e.el && this.pagination.el && this.pagination.$el && 0 !== this.pagination.$el.length ) { var t = this.virtual && this.params.virtual.enabled ? this.virtual.slides.length : this.slides.length, i = this.pagination.$el, s = ""; if ("bullets" === e.type) { for ( var a = this.params.loop ? Math.ceil( (t - 2 * this.loopedSlides) / this.params.slidesPerGroup ) : this.snapGrid.length, r = 0; r < a; r += 1 ) e.renderBullet ? (s += e.renderBullet.call(this, r, e.bulletClass)) : (s += "<" + e.bulletElement + ' class="' + e.bulletClass + '">"); i.html(s), (this.pagination.bullets = i.find("." + e.bulletClass)); } "fraction" === e.type && ((s = e.renderFraction ? e.renderFraction.call(this, e.currentClass, e.totalClass) : ' / '), i.html(s)), "progressbar" === e.type && ((s = e.renderProgressbar ? e.renderProgressbar.call(this, e.progressbarFillClass) : ''), i.html(s)), "custom" !== e.type && this.emit("paginationRender", this.pagination.$el[0]); } }, init: function () { var e = this, t = e.params.pagination; if (t.el) { var i = s(t.el); 0 !== i.length && (e.params.uniqueNavElements && "string" == typeof t.el && i.length > 1 && 1 === e.$el.find(t.el).length && (i = e.$el.find(t.el)), "bullets" === t.type && t.clickable && i.addClass(t.clickableClass), i.addClass(t.modifierClass + t.type), "bullets" === t.type && t.dynamicBullets && (i.addClass("" + t.modifierClass + t.type + "-dynamic"), (e.pagination.dynamicBulletIndex = 0), t.dynamicMainBullets < 1 && (t.dynamicMainBullets = 1)), "progressbar" === t.type && t.progressbarOpposite && i.addClass(t.progressbarOppositeClass), t.clickable && i.on("click", "." + t.bulletClass, function (t) { t.preventDefault(); var i = s(this).index() * e.params.slidesPerGroup; e.params.loop && (i += e.loopedSlides), e.slideTo(i); }), n.extend(e.pagination, { $el: i, el: i[0] })); } }, destroy: function () { var e = this.params.pagination; if ( e.el && this.pagination.el && this.pagination.$el && 0 !== this.pagination.$el.length ) { var t = this.pagination.$el; t.removeClass(e.hiddenClass), t.removeClass(e.modifierClass + e.type), this.pagination.bullets && this.pagination.bullets.removeClass(e.bulletActiveClass), e.clickable && t.off("click", "." + e.bulletClass); } }, }, re = { setTranslate: function () { if (this.params.scrollbar.el && this.scrollbar.el) { var e = this.scrollbar, t = this.rtlTranslate, i = this.progress, s = e.dragSize, a = e.trackSize, r = e.$dragEl, n = e.$el, o = this.params.scrollbar, l = s, d = (a - s) * i; t ? (d = -d) > 0 ? ((l = s - d), (d = 0)) : -d + s > a && (l = a + d) : d < 0 ? ((l = s + d), (d = 0)) : d + s > a && (l = a - d), this.isHorizontal() ? (r.transform("translate3d(" + d + "px, 0, 0)"), (r[0].style.width = l + "px")) : (r.transform("translate3d(0px, " + d + "px, 0)"), (r[0].style.height = l + "px")), o.hide && (clearTimeout(this.scrollbar.timeout), (n[0].style.opacity = 1), (this.scrollbar.timeout = setTimeout(function () { (n[0].style.opacity = 0), n.transition(400); }, 1e3))); } }, setTransition: function (e) { this.params.scrollbar.el && this.scrollbar.el && this.scrollbar.$dragEl.transition(e); }, updateSize: function () { if (this.params.scrollbar.el && this.scrollbar.el) { var e = this.scrollbar, t = e.$dragEl, i = e.$el; (t[0].style.width = ""), (t[0].style.height = ""); var s, a = this.isHorizontal() ? i[0].offsetWidth : i[0].offsetHeight, r = this.size / this.virtualSize, o = r * (a / this.size); (s = "auto" === this.params.scrollbar.dragSize ? a * r : parseInt(this.params.scrollbar.dragSize, 10)), this.isHorizontal() ? (t[0].style.width = s + "px") : (t[0].style.height = s + "px"), (i[0].style.display = r >= 1 ? "none" : ""), this.params.scrollbar.hide && (i[0].style.opacity = 0), n.extend(e, { trackSize: a, divider: r, moveDivider: o, dragSize: s, }), e.$el[ this.params.watchOverflow && this.isLocked ? "addClass" : "removeClass" ](this.params.scrollbar.lockClass); } }, getPointerPosition: function (e) { return this.isHorizontal() ? "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].clientX : e.clientX : "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].clientY : e.clientY; }, setDragPosition: function (e) { var t, i = this.scrollbar, s = this.rtlTranslate, a = i.$el, r = i.dragSize, n = i.trackSize, o = i.dragStartPos; (t = (i.getPointerPosition(e) - a.offset()[this.isHorizontal() ? "left" : "top"] - (null !== o ? o : r / 2)) / (n - r)), (t = Math.max(Math.min(t, 1), 0)), s && (t = 1 - t); var l = this.minTranslate() + (this.maxTranslate() - this.minTranslate()) * t; this.updateProgress(l), this.setTranslate(l), this.updateActiveIndex(), this.updateSlidesClasses(); }, onDragStart: function (e) { var t = this.params.scrollbar, i = this.scrollbar, s = this.$wrapperEl, a = i.$el, r = i.$dragEl; (this.scrollbar.isTouched = !0), (this.scrollbar.dragStartPos = e.target === r[0] || e.target === r ? i.getPointerPosition(e) - e.target.getBoundingClientRect()[ this.isHorizontal() ? "left" : "top" ] : null), e.preventDefault(), e.stopPropagation(), s.transition(100), r.transition(100), i.setDragPosition(e), clearTimeout(this.scrollbar.dragTimeout), a.transition(0), t.hide && a.css("opacity", 1), this.params.cssMode && this.$wrapperEl.css("scroll-snap-type", "none"), this.emit("scrollbarDragStart", e); }, onDragMove: function (e) { var t = this.scrollbar, i = this.$wrapperEl, s = t.$el, a = t.$dragEl; this.scrollbar.isTouched && (e.preventDefault ? e.preventDefault() : (e.returnValue = !1), t.setDragPosition(e), i.transition(0), s.transition(0), a.transition(0), this.emit("scrollbarDragMove", e)); }, onDragEnd: function (e) { var t = this.params.scrollbar, i = this.scrollbar, s = this.$wrapperEl, a = i.$el; this.scrollbar.isTouched && ((this.scrollbar.isTouched = !1), this.params.cssMode && (this.$wrapperEl.css("scroll-snap-type", ""), s.transition("")), t.hide && (clearTimeout(this.scrollbar.dragTimeout), (this.scrollbar.dragTimeout = n.nextTick(function () { a.css("opacity", 0), a.transition(400); }, 1e3))), this.emit("scrollbarDragEnd", e), t.snapOnRelease && this.slideToClosest()); }, enableDraggable: function () { if (this.params.scrollbar.el) { var t = this.scrollbar, i = this.touchEventsTouch, s = this.touchEventsDesktop, a = this.params, r = t.$el[0], n = !(!o.passiveListener || !a.passiveListeners) && { passive: !1, capture: !1, }, l = !(!o.passiveListener || !a.passiveListeners) && { passive: !0, capture: !1, }; o.touch ? (r.addEventListener(i.start, this.scrollbar.onDragStart, n), r.addEventListener(i.move, this.scrollbar.onDragMove, n), r.addEventListener(i.end, this.scrollbar.onDragEnd, l)) : (r.addEventListener(s.start, this.scrollbar.onDragStart, n), e.addEventListener(s.move, this.scrollbar.onDragMove, n), e.addEventListener(s.end, this.scrollbar.onDragEnd, l)); } }, disableDraggable: function () { if (this.params.scrollbar.el) { var t = this.scrollbar, i = this.touchEventsTouch, s = this.touchEventsDesktop, a = this.params, r = t.$el[0], n = !(!o.passiveListener || !a.passiveListeners) && { passive: !1, capture: !1, }, l = !(!o.passiveListener || !a.passiveListeners) && { passive: !0, capture: !1, }; o.touch ? (r.removeEventListener(i.start, this.scrollbar.onDragStart, n), r.removeEventListener(i.move, this.scrollbar.onDragMove, n), r.removeEventListener(i.end, this.scrollbar.onDragEnd, l)) : (r.removeEventListener(s.start, this.scrollbar.onDragStart, n), e.removeEventListener(s.move, this.scrollbar.onDragMove, n), e.removeEventListener(s.end, this.scrollbar.onDragEnd, l)); } }, init: function () { if (this.params.scrollbar.el) { var e = this.scrollbar, t = this.$el, i = this.params.scrollbar, a = s(i.el); this.params.uniqueNavElements && "string" == typeof i.el && a.length > 1 && 1 === t.find(i.el).length && (a = t.find(i.el)); var r = a.find("." + this.params.scrollbar.dragClass); 0 === r.length && ((r = s( '
              ' )), a.append(r)), n.extend(e, { $el: a, el: a[0], $dragEl: r, dragEl: r[0] }), i.draggable && e.enableDraggable(); } }, destroy: function () { this.scrollbar.disableDraggable(); }, }, ne = { setTransform: function (e, t) { var i = this.rtl, a = s(e), r = i ? -1 : 1, n = a.attr("data-swiper-parallax") || "0", o = a.attr("data-swiper-parallax-x"), l = a.attr("data-swiper-parallax-y"), d = a.attr("data-swiper-parallax-scale"), h = a.attr("data-swiper-parallax-opacity"); if ( (o || l ? ((o = o || "0"), (l = l || "0")) : this.isHorizontal() ? ((o = n), (l = "0")) : ((l = n), (o = "0")), (o = o.indexOf("%") >= 0 ? parseInt(o, 10) * t * r + "%" : o * t * r + "px"), (l = l.indexOf("%") >= 0 ? parseInt(l, 10) * t + "%" : l * t + "px"), null != h) ) { var p = h - (h - 1) * (1 - Math.abs(t)); a[0].style.opacity = p; } if (null == d) a.transform("translate3d(" + o + ", " + l + ", 0px)"); else { var c = d - (d - 1) * (1 - Math.abs(t)); a.transform( "translate3d(" + o + ", " + l + ", 0px) scale(" + c + ")" ); } }, setTranslate: function () { var e = this, t = e.$el, i = e.slides, a = e.progress, r = e.snapGrid; t .children( "[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]" ) .each(function (t, i) { e.parallax.setTransform(i, a); }), i.each(function (t, i) { var n = i.progress; e.params.slidesPerGroup > 1 && "auto" !== e.params.slidesPerView && (n += Math.ceil(t / 2) - a * (r.length - 1)), (n = Math.min(Math.max(n, -1), 1)), s(i) .find( "[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]" ) .each(function (t, i) { e.parallax.setTransform(i, n); }); }); }, setTransition: function (e) { void 0 === e && (e = this.params.speed); this.$el .find( "[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]" ) .each(function (t, i) { var a = s(i), r = parseInt(a.attr("data-swiper-parallax-duration"), 10) || e; 0 === e && (r = 0), a.transition(r); }); }, }, oe = { getDistanceBetweenTouches: function (e) { if (e.targetTouches.length < 2) return 1; var t = e.targetTouches[0].pageX, i = e.targetTouches[0].pageY, s = e.targetTouches[1].pageX, a = e.targetTouches[1].pageY; return Math.sqrt(Math.pow(s - t, 2) + Math.pow(a - i, 2)); }, onGestureStart: function (e) { var t = this.params.zoom, i = this.zoom, a = i.gesture; if ( ((i.fakeGestureTouched = !1), (i.fakeGestureMoved = !1), !o.gestures) ) { if ( "touchstart" !== e.type || ("touchstart" === e.type && e.targetTouches.length < 2) ) return; (i.fakeGestureTouched = !0), (a.scaleStart = oe.getDistanceBetweenTouches(e)); } (a.$slideEl && a.$slideEl.length) || ((a.$slideEl = s(e.target).closest("." + this.params.slideClass)), 0 === a.$slideEl.length && (a.$slideEl = this.slides.eq(this.activeIndex)), (a.$imageEl = a.$slideEl.find( "img, svg, canvas, picture, .swiper-zoom-target" )), (a.$imageWrapEl = a.$imageEl.parent("." + t.containerClass)), (a.maxRatio = a.$imageWrapEl.attr("data-swiper-zoom") || t.maxRatio), 0 !== a.$imageWrapEl.length) ? (a.$imageEl.transition(0), (this.zoom.isScaling = !0)) : (a.$imageEl = void 0); }, onGestureChange: function (e) { var t = this.params.zoom, i = this.zoom, s = i.gesture; if (!o.gestures) { if ( "touchmove" !== e.type || ("touchmove" === e.type && e.targetTouches.length < 2) ) return; (i.fakeGestureMoved = !0), (s.scaleMove = oe.getDistanceBetweenTouches(e)); } s.$imageEl && 0 !== s.$imageEl.length && (o.gestures ? (i.scale = e.scale * i.currentScale) : (i.scale = (s.scaleMove / s.scaleStart) * i.currentScale), i.scale > s.maxRatio && (i.scale = s.maxRatio - 1 + Math.pow(i.scale - s.maxRatio + 1, 0.5)), i.scale < t.minRatio && (i.scale = t.minRatio + 1 - Math.pow(t.minRatio - i.scale + 1, 0.5)), s.$imageEl.transform("translate3d(0,0,0) scale(" + i.scale + ")")); }, onGestureEnd: function (e) { var t = this.params.zoom, i = this.zoom, s = i.gesture; if (!o.gestures) { if (!i.fakeGestureTouched || !i.fakeGestureMoved) return; if ( "touchend" !== e.type || ("touchend" === e.type && e.changedTouches.length < 2 && !I.android) ) return; (i.fakeGestureTouched = !1), (i.fakeGestureMoved = !1); } s.$imageEl && 0 !== s.$imageEl.length && ((i.scale = Math.max(Math.min(i.scale, s.maxRatio), t.minRatio)), s.$imageEl .transition(this.params.speed) .transform("translate3d(0,0,0) scale(" + i.scale + ")"), (i.currentScale = i.scale), (i.isScaling = !1), 1 === i.scale && (s.$slideEl = void 0)); }, onTouchStart: function (e) { var t = this.zoom, i = t.gesture, s = t.image; i.$imageEl && 0 !== i.$imageEl.length && (s.isTouched || (I.android && e.preventDefault(), (s.isTouched = !0), (s.touchesStart.x = "touchstart" === e.type ? e.targetTouches[0].pageX : e.pageX), (s.touchesStart.y = "touchstart" === e.type ? e.targetTouches[0].pageY : e.pageY))); }, onTouchMove: function (e) { var t = this.zoom, i = t.gesture, s = t.image, a = t.velocity; if ( i.$imageEl && 0 !== i.$imageEl.length && ((this.allowClick = !1), s.isTouched && i.$slideEl) ) { s.isMoved || ((s.width = i.$imageEl[0].offsetWidth), (s.height = i.$imageEl[0].offsetHeight), (s.startX = n.getTranslate(i.$imageWrapEl[0], "x") || 0), (s.startY = n.getTranslate(i.$imageWrapEl[0], "y") || 0), (i.slideWidth = i.$slideEl[0].offsetWidth), (i.slideHeight = i.$slideEl[0].offsetHeight), i.$imageWrapEl.transition(0), this.rtl && ((s.startX = -s.startX), (s.startY = -s.startY))); var r = s.width * t.scale, o = s.height * t.scale; if (!(r < i.slideWidth && o < i.slideHeight)) { if ( ((s.minX = Math.min(i.slideWidth / 2 - r / 2, 0)), (s.maxX = -s.minX), (s.minY = Math.min(i.slideHeight / 2 - o / 2, 0)), (s.maxY = -s.minY), (s.touchesCurrent.x = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX), (s.touchesCurrent.y = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY), !s.isMoved && !t.isScaling) ) { if ( this.isHorizontal() && ((Math.floor(s.minX) === Math.floor(s.startX) && s.touchesCurrent.x < s.touchesStart.x) || (Math.floor(s.maxX) === Math.floor(s.startX) && s.touchesCurrent.x > s.touchesStart.x)) ) return void (s.isTouched = !1); if ( !this.isHorizontal() && ((Math.floor(s.minY) === Math.floor(s.startY) && s.touchesCurrent.y < s.touchesStart.y) || (Math.floor(s.maxY) === Math.floor(s.startY) && s.touchesCurrent.y > s.touchesStart.y)) ) return void (s.isTouched = !1); } e.preventDefault(), e.stopPropagation(), (s.isMoved = !0), (s.currentX = s.touchesCurrent.x - s.touchesStart.x + s.startX), (s.currentY = s.touchesCurrent.y - s.touchesStart.y + s.startY), s.currentX < s.minX && (s.currentX = s.minX + 1 - Math.pow(s.minX - s.currentX + 1, 0.8)), s.currentX > s.maxX && (s.currentX = s.maxX - 1 + Math.pow(s.currentX - s.maxX + 1, 0.8)), s.currentY < s.minY && (s.currentY = s.minY + 1 - Math.pow(s.minY - s.currentY + 1, 0.8)), s.currentY > s.maxY && (s.currentY = s.maxY - 1 + Math.pow(s.currentY - s.maxY + 1, 0.8)), a.prevPositionX || (a.prevPositionX = s.touchesCurrent.x), a.prevPositionY || (a.prevPositionY = s.touchesCurrent.y), a.prevTime || (a.prevTime = Date.now()), (a.x = (s.touchesCurrent.x - a.prevPositionX) / (Date.now() - a.prevTime) / 2), (a.y = (s.touchesCurrent.y - a.prevPositionY) / (Date.now() - a.prevTime) / 2), Math.abs(s.touchesCurrent.x - a.prevPositionX) < 2 && (a.x = 0), Math.abs(s.touchesCurrent.y - a.prevPositionY) < 2 && (a.y = 0), (a.prevPositionX = s.touchesCurrent.x), (a.prevPositionY = s.touchesCurrent.y), (a.prevTime = Date.now()), i.$imageWrapEl.transform( "translate3d(" + s.currentX + "px, " + s.currentY + "px,0)" ); } } }, onTouchEnd: function () { var e = this.zoom, t = e.gesture, i = e.image, s = e.velocity; if (t.$imageEl && 0 !== t.$imageEl.length) { if (!i.isTouched || !i.isMoved) return (i.isTouched = !1), void (i.isMoved = !1); (i.isTouched = !1), (i.isMoved = !1); var a = 300, r = 300, n = s.x * a, o = i.currentX + n, l = s.y * r, d = i.currentY + l; 0 !== s.x && (a = Math.abs((o - i.currentX) / s.x)), 0 !== s.y && (r = Math.abs((d - i.currentY) / s.y)); var h = Math.max(a, r); (i.currentX = o), (i.currentY = d); var p = i.width * e.scale, c = i.height * e.scale; (i.minX = Math.min(t.slideWidth / 2 - p / 2, 0)), (i.maxX = -i.minX), (i.minY = Math.min(t.slideHeight / 2 - c / 2, 0)), (i.maxY = -i.minY), (i.currentX = Math.max(Math.min(i.currentX, i.maxX), i.minX)), (i.currentY = Math.max(Math.min(i.currentY, i.maxY), i.minY)), t.$imageWrapEl .transition(h) .transform( "translate3d(" + i.currentX + "px, " + i.currentY + "px,0)" ); } }, onTransitionEnd: function () { var e = this.zoom, t = e.gesture; t.$slideEl && this.previousIndex !== this.activeIndex && (t.$imageEl.transform("translate3d(0,0,0) scale(1)"), t.$imageWrapEl.transform("translate3d(0,0,0)"), (e.scale = 1), (e.currentScale = 1), (t.$slideEl = void 0), (t.$imageEl = void 0), (t.$imageWrapEl = void 0)); }, toggle: function (e) { var t = this.zoom; t.scale && 1 !== t.scale ? t.out() : t.in(e); }, in: function (e) { var t, i, s, a, r, n, o, l, d, h, p, c, u, v, f, m, g = this.zoom, b = this.params.zoom, w = g.gesture, y = g.image; (w.$slideEl || ((w.$slideEl = this.slides.eq(this.activeIndex)), (w.$imageEl = w.$slideEl.find( "img, svg, canvas, picture, .swiper-zoom-target" )), (w.$imageWrapEl = w.$imageEl.parent("." + b.containerClass))), w.$imageEl && 0 !== w.$imageEl.length) && (w.$slideEl.addClass("" + b.zoomedSlideClass), void 0 === y.touchesStart.x && e ? ((t = "touchend" === e.type ? e.changedTouches[0].pageX : e.pageX), (i = "touchend" === e.type ? e.changedTouches[0].pageY : e.pageY)) : ((t = y.touchesStart.x), (i = y.touchesStart.y)), (g.scale = w.$imageWrapEl.attr("data-swiper-zoom") || b.maxRatio), (g.currentScale = w.$imageWrapEl.attr("data-swiper-zoom") || b.maxRatio), e ? ((f = w.$slideEl[0].offsetWidth), (m = w.$slideEl[0].offsetHeight), (s = w.$slideEl.offset().left + f / 2 - t), (a = w.$slideEl.offset().top + m / 2 - i), (o = w.$imageEl[0].offsetWidth), (l = w.$imageEl[0].offsetHeight), (d = o * g.scale), (h = l * g.scale), (u = -(p = Math.min(f / 2 - d / 2, 0))), (v = -(c = Math.min(m / 2 - h / 2, 0))), (r = s * g.scale) < p && (r = p), r > u && (r = u), (n = a * g.scale) < c && (n = c), n > v && (n = v)) : ((r = 0), (n = 0)), w.$imageWrapEl .transition(300) .transform("translate3d(" + r + "px, " + n + "px,0)"), w.$imageEl .transition(300) .transform("translate3d(0,0,0) scale(" + g.scale + ")")); }, out: function () { var e = this.zoom, t = this.params.zoom, i = e.gesture; i.$slideEl || ((i.$slideEl = this.slides.eq(this.activeIndex)), (i.$imageEl = i.$slideEl.find( "img, svg, canvas, picture, .swiper-zoom-target" )), (i.$imageWrapEl = i.$imageEl.parent("." + t.containerClass))), i.$imageEl && 0 !== i.$imageEl.length && ((e.scale = 1), (e.currentScale = 1), i.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"), i.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"), i.$slideEl.removeClass("" + t.zoomedSlideClass), (i.$slideEl = void 0)); }, enable: function () { var e = this.zoom; if (!e.enabled) { e.enabled = !0; var t = !( "touchstart" !== this.touchEvents.start || !o.passiveListener || !this.params.passiveListeners ) && { passive: !0, capture: !1 }, i = !o.passiveListener || { passive: !1, capture: !0 }, s = "." + this.params.slideClass; o.gestures ? (this.$wrapperEl.on("gesturestart", s, e.onGestureStart, t), this.$wrapperEl.on("gesturechange", s, e.onGestureChange, t), this.$wrapperEl.on("gestureend", s, e.onGestureEnd, t)) : "touchstart" === this.touchEvents.start && (this.$wrapperEl.on( this.touchEvents.start, s, e.onGestureStart, t ), this.$wrapperEl.on( this.touchEvents.move, s, e.onGestureChange, i ), this.$wrapperEl.on(this.touchEvents.end, s, e.onGestureEnd, t), this.touchEvents.cancel && this.$wrapperEl.on( this.touchEvents.cancel, s, e.onGestureEnd, t )), this.$wrapperEl.on( this.touchEvents.move, "." + this.params.zoom.containerClass, e.onTouchMove, i ); } }, disable: function () { var e = this.zoom; if (e.enabled) { this.zoom.enabled = !1; var t = !( "touchstart" !== this.touchEvents.start || !o.passiveListener || !this.params.passiveListeners ) && { passive: !0, capture: !1 }, i = !o.passiveListener || { passive: !1, capture: !0 }, s = "." + this.params.slideClass; o.gestures ? (this.$wrapperEl.off("gesturestart", s, e.onGestureStart, t), this.$wrapperEl.off("gesturechange", s, e.onGestureChange, t), this.$wrapperEl.off("gestureend", s, e.onGestureEnd, t)) : "touchstart" === this.touchEvents.start && (this.$wrapperEl.off( this.touchEvents.start, s, e.onGestureStart, t ), this.$wrapperEl.off( this.touchEvents.move, s, e.onGestureChange, i ), this.$wrapperEl.off(this.touchEvents.end, s, e.onGestureEnd, t), this.touchEvents.cancel && this.$wrapperEl.off( this.touchEvents.cancel, s, e.onGestureEnd, t )), this.$wrapperEl.off( this.touchEvents.move, "." + this.params.zoom.containerClass, e.onTouchMove, i ); } }, }, le = { loadInSlide: function (e, t) { void 0 === t && (t = !0); var i = this, a = i.params.lazy; if (void 0 !== e && 0 !== i.slides.length) { var r = i.virtual && i.params.virtual.enabled ? i.$wrapperEl.children( "." + i.params.slideClass + '[data-swiper-slide-index="' + e + '"]' ) : i.slides.eq(e), n = r.find( "." + a.elementClass + ":not(." + a.loadedClass + "):not(." + a.loadingClass + ")" ); !r.hasClass(a.elementClass) || r.hasClass(a.loadedClass) || r.hasClass(a.loadingClass) || (n = n.add(r[0])), 0 !== n.length && n.each(function (e, n) { var o = s(n); o.addClass(a.loadingClass); var l = o.attr("data-background"), d = o.attr("data-src"), h = o.attr("data-srcset"), p = o.attr("data-sizes"); i.loadImage(o[0], d || l, h, p, !1, function () { if (null != i && i && (!i || i.params) && !i.destroyed) { if ( (l ? (o.css("background-image", 'url("' + l + '")'), o.removeAttr("data-background")) : (h && (o.attr("srcset", h), o.removeAttr("data-srcset")), p && (o.attr("sizes", p), o.removeAttr("data-sizes")), d && (o.attr("src", d), o.removeAttr("data-src"))), o.addClass(a.loadedClass).removeClass(a.loadingClass), r.find("." + a.preloaderClass).remove(), i.params.loop && t) ) { var e = r.attr("data-swiper-slide-index"); if (r.hasClass(i.params.slideDuplicateClass)) { var s = i.$wrapperEl.children( '[data-swiper-slide-index="' + e + '"]:not(.' + i.params.slideDuplicateClass + ")" ); i.lazy.loadInSlide(s.index(), !1); } else { var n = i.$wrapperEl.children( "." + i.params.slideDuplicateClass + '[data-swiper-slide-index="' + e + '"]' ); i.lazy.loadInSlide(n.index(), !1); } } i.emit("lazyImageReady", r[0], o[0]), i.params.autoHeight && i.updateAutoHeight(); } }), i.emit("lazyImageLoad", r[0], o[0]); }); } }, load: function () { var e = this, t = e.$wrapperEl, i = e.params, a = e.slides, r = e.activeIndex, n = e.virtual && i.virtual.enabled, o = i.lazy, l = i.slidesPerView; function d(e) { if (n) { if ( t.children( "." + i.slideClass + '[data-swiper-slide-index="' + e + '"]' ).length ) return !0; } else if (a[e]) return !0; return !1; } function h(e) { return n ? s(e).attr("data-swiper-slide-index") : s(e).index(); } if ( ("auto" === l && (l = 0), e.lazy.initialImageLoaded || (e.lazy.initialImageLoaded = !0), e.params.watchSlidesVisibility) ) t.children("." + i.slideVisibleClass).each(function (t, i) { var a = n ? s(i).attr("data-swiper-slide-index") : s(i).index(); e.lazy.loadInSlide(a); }); else if (l > 1) for (var p = r; p < r + l; p += 1) d(p) && e.lazy.loadInSlide(p); else e.lazy.loadInSlide(r); if (o.loadPrevNext) if (l > 1 || (o.loadPrevNextAmount && o.loadPrevNextAmount > 1)) { for ( var c = o.loadPrevNextAmount, u = l, v = Math.min(r + u + Math.max(c, u), a.length), f = Math.max(r - Math.max(u, c), 0), m = r + l; m < v; m += 1 ) d(m) && e.lazy.loadInSlide(m); for (var g = f; g < r; g += 1) d(g) && e.lazy.loadInSlide(g); } else { var b = t.children("." + i.slideNextClass); b.length > 0 && e.lazy.loadInSlide(h(b)); var w = t.children("." + i.slidePrevClass); w.length > 0 && e.lazy.loadInSlide(h(w)); } }, }, de = { LinearSpline: function (e, t) { var i, s, a, r, n, o = function (e, t) { for (s = -1, i = e.length; i - s > 1; ) e[(a = (i + s) >> 1)] <= t ? (s = a) : (i = a); return i; }; return ( (this.x = e), (this.y = t), (this.lastIndex = e.length - 1), (this.interpolate = function (e) { return e ? ((n = o(this.x, e)), (r = n - 1), ((e - this.x[r]) * (this.y[n] - this.y[r])) / (this.x[n] - this.x[r]) + this.y[r]) : 0; }), this ); }, getInterpolateFunction: function (e) { this.controller.spline || (this.controller.spline = this.params.loop ? new de.LinearSpline(this.slidesGrid, e.slidesGrid) : new de.LinearSpline(this.snapGrid, e.snapGrid)); }, setTranslate: function (e, t) { var i, s, a = this, r = a.controller.control; function n(e) { var t = a.rtlTranslate ? -a.translate : a.translate; "slide" === a.params.controller.by && (a.controller.getInterpolateFunction(e), (s = -a.controller.spline.interpolate(-t))), (s && "container" !== a.params.controller.by) || ((i = (e.maxTranslate() - e.minTranslate()) / (a.maxTranslate() - a.minTranslate())), (s = (t - a.minTranslate()) * i + e.minTranslate())), a.params.controller.inverse && (s = e.maxTranslate() - s), e.updateProgress(s), e.setTranslate(s, a), e.updateActiveIndex(), e.updateSlidesClasses(); } if (Array.isArray(r)) for (var o = 0; o < r.length; o += 1) r[o] !== t && r[o] instanceof W && n(r[o]); else r instanceof W && t !== r && n(r); }, setTransition: function (e, t) { var i, s = this, a = s.controller.control; function r(t) { t.setTransition(e, s), 0 !== e && (t.transitionStart(), t.params.autoHeight && n.nextTick(function () { t.updateAutoHeight(); }), t.$wrapperEl.transitionEnd(function () { a && (t.params.loop && "slide" === s.params.controller.by && t.loopFix(), t.transitionEnd()); })); } if (Array.isArray(a)) for (i = 0; i < a.length; i += 1) a[i] !== t && a[i] instanceof W && r(a[i]); else a instanceof W && t !== a && r(a); }, }, he = { makeElFocusable: function (e) { return e.attr("tabIndex", "0"), e; }, addElRole: function (e, t) { return e.attr("role", t), e; }, addElLabel: function (e, t) { return e.attr("aria-label", t), e; }, disableEl: function (e) { return e.attr("aria-disabled", !0), e; }, enableEl: function (e) { return e.attr("aria-disabled", !1), e; }, onEnterKey: function (e) { var t = this.params.a11y; if (13 === e.keyCode) { var i = s(e.target); this.navigation && this.navigation.$nextEl && i.is(this.navigation.$nextEl) && ((this.isEnd && !this.params.loop) || this.slideNext(), this.isEnd ? this.a11y.notify(t.lastSlideMessage) : this.a11y.notify(t.nextSlideMessage)), this.navigation && this.navigation.$prevEl && i.is(this.navigation.$prevEl) && ((this.isBeginning && !this.params.loop) || this.slidePrev(), this.isBeginning ? this.a11y.notify(t.firstSlideMessage) : this.a11y.notify(t.prevSlideMessage)), this.pagination && i.is("." + this.params.pagination.bulletClass) && i[0].click(); } }, notify: function (e) { var t = this.a11y.liveRegion; 0 !== t.length && (t.html(""), t.html(e)); }, updateNavigation: function () { if (!this.params.loop && this.navigation) { var e = this.navigation, t = e.$nextEl, i = e.$prevEl; i && i.length > 0 && (this.isBeginning ? this.a11y.disableEl(i) : this.a11y.enableEl(i)), t && t.length > 0 && (this.isEnd ? this.a11y.disableEl(t) : this.a11y.enableEl(t)); } }, updatePagination: function () { var e = this, t = e.params.a11y; e.pagination && e.params.pagination.clickable && e.pagination.bullets && e.pagination.bullets.length && e.pagination.bullets.each(function (i, a) { var r = s(a); e.a11y.makeElFocusable(r), e.a11y.addElRole(r, "button"), e.a11y.addElLabel( r, t.paginationBulletMessage.replace(/{{index}}/, r.index() + 1) ); }); }, init: function () { this.$el.append(this.a11y.liveRegion); var e, t, i = this.params.a11y; this.navigation && this.navigation.$nextEl && (e = this.navigation.$nextEl), this.navigation && this.navigation.$prevEl && (t = this.navigation.$prevEl), e && (this.a11y.makeElFocusable(e), this.a11y.addElRole(e, "button"), this.a11y.addElLabel(e, i.nextSlideMessage), e.on("keydown", this.a11y.onEnterKey)), t && (this.a11y.makeElFocusable(t), this.a11y.addElRole(t, "button"), this.a11y.addElLabel(t, i.prevSlideMessage), t.on("keydown", this.a11y.onEnterKey)), this.pagination && this.params.pagination.clickable && this.pagination.bullets && this.pagination.bullets.length && this.pagination.$el.on( "keydown", "." + this.params.pagination.bulletClass, this.a11y.onEnterKey ); }, destroy: function () { var e, t; this.a11y.liveRegion && this.a11y.liveRegion.length > 0 && this.a11y.liveRegion.remove(), this.navigation && this.navigation.$nextEl && (e = this.navigation.$nextEl), this.navigation && this.navigation.$prevEl && (t = this.navigation.$prevEl), e && e.off("keydown", this.a11y.onEnterKey), t && t.off("keydown", this.a11y.onEnterKey), this.pagination && this.params.pagination.clickable && this.pagination.bullets && this.pagination.bullets.length && this.pagination.$el.off( "keydown", "." + this.params.pagination.bulletClass, this.a11y.onEnterKey ); }, }, pe = { init: function () { if (this.params.history) { if (!t.history || !t.history.pushState) return ( (this.params.history.enabled = !1), void (this.params.hashNavigation.enabled = !0) ); var e = this.history; (e.initialized = !0), (e.paths = pe.getPathValues()), (e.paths.key || e.paths.value) && (e.scrollToSlide( 0, e.paths.value, this.params.runCallbacksOnInit ), this.params.history.replaceState || t.addEventListener( "popstate", this.history.setHistoryPopState )); } }, destroy: function () { this.params.history.replaceState || t.removeEventListener("popstate", this.history.setHistoryPopState); }, setHistoryPopState: function () { (this.history.paths = pe.getPathValues()), this.history.scrollToSlide( this.params.speed, this.history.paths.value, !1 ); }, getPathValues: function () { var e = t.location.pathname .slice(1) .split("/") .filter(function (e) { return "" !== e; }), i = e.length; return { key: e[i - 2], value: e[i - 1] }; }, setHistory: function (e, i) { if (this.history.initialized && this.params.history.enabled) { var s = this.slides.eq(i), a = pe.slugify(s.attr("data-history")); t.location.pathname.includes(e) || (a = e + "/" + a); var r = t.history.state; (r && r.value === a) || (this.params.history.replaceState ? t.history.replaceState({ value: a }, null, a) : t.history.pushState({ value: a }, null, a)); } }, slugify: function (e) { return e .toString() .replace(/\s+/g, "-") .replace(/[^\w-]+/g, "") .replace(/--+/g, "-") .replace(/^-+/, "") .replace(/-+$/, ""); }, scrollToSlide: function (e, t, i) { if (t) for (var s = 0, a = this.slides.length; s < a; s += 1) { var r = this.slides.eq(s); if ( pe.slugify(r.attr("data-history")) === t && !r.hasClass(this.params.slideDuplicateClass) ) { var n = r.index(); this.slideTo(n, e, i); } } else this.slideTo(0, e, i); }, }, ce = { onHashCange: function () { var t = e.location.hash.replace("#", ""); if (t !== this.slides.eq(this.activeIndex).attr("data-hash")) { var i = this.$wrapperEl .children("." + this.params.slideClass + '[data-hash="' + t + '"]') .index(); if (void 0 === i) return; this.slideTo(i); } }, setHash: function () { if ( this.hashNavigation.initialized && this.params.hashNavigation.enabled ) if ( this.params.hashNavigation.replaceState && t.history && t.history.replaceState ) t.history.replaceState( null, null, "#" + this.slides.eq(this.activeIndex).attr("data-hash") || "" ); else { var i = this.slides.eq(this.activeIndex), s = i.attr("data-hash") || i.attr("data-history"); e.location.hash = s || ""; } }, init: function () { if ( !( !this.params.hashNavigation.enabled || (this.params.history && this.params.history.enabled) ) ) { this.hashNavigation.initialized = !0; var i = e.location.hash.replace("#", ""); if (i) for (var a = 0, r = this.slides.length; a < r; a += 1) { var n = this.slides.eq(a); if ( (n.attr("data-hash") || n.attr("data-history")) === i && !n.hasClass(this.params.slideDuplicateClass) ) { var o = n.index(); this.slideTo(o, 0, this.params.runCallbacksOnInit, !0); } } this.params.hashNavigation.watchState && s(t).on("hashchange", this.hashNavigation.onHashCange); } }, destroy: function () { this.params.hashNavigation.watchState && s(t).off("hashchange", this.hashNavigation.onHashCange); }, }, ue = { run: function () { var e = this, t = e.slides.eq(e.activeIndex), i = e.params.autoplay.delay; t.attr("data-swiper-autoplay") && (i = t.attr("data-swiper-autoplay") || e.params.autoplay.delay), clearTimeout(e.autoplay.timeout), (e.autoplay.timeout = n.nextTick(function () { e.params.autoplay.reverseDirection ? e.params.loop ? (e.loopFix(), e.slidePrev(e.params.speed, !0, !0), e.emit("autoplay")) : e.isBeginning ? e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (e.slideTo(e.slides.length - 1, e.params.speed, !0, !0), e.emit("autoplay")) : (e.slidePrev(e.params.speed, !0, !0), e.emit("autoplay")) : e.params.loop ? (e.loopFix(), e.slideNext(e.params.speed, !0, !0), e.emit("autoplay")) : e.isEnd ? e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (e.slideTo(0, e.params.speed, !0, !0), e.emit("autoplay")) : (e.slideNext(e.params.speed, !0, !0), e.emit("autoplay")), e.params.cssMode && e.autoplay.running && e.autoplay.run(); }, i)); }, start: function () { return ( void 0 === this.autoplay.timeout && !this.autoplay.running && ((this.autoplay.running = !0), this.emit("autoplayStart"), this.autoplay.run(), !0) ); }, stop: function () { return ( !!this.autoplay.running && void 0 !== this.autoplay.timeout && (this.autoplay.timeout && (clearTimeout(this.autoplay.timeout), (this.autoplay.timeout = void 0)), (this.autoplay.running = !1), this.emit("autoplayStop"), !0) ); }, pause: function (e) { this.autoplay.running && (this.autoplay.paused || (this.autoplay.timeout && clearTimeout(this.autoplay.timeout), (this.autoplay.paused = !0), 0 !== e && this.params.autoplay.waitForTransition ? (this.$wrapperEl[0].addEventListener( "transitionend", this.autoplay.onTransitionEnd ), this.$wrapperEl[0].addEventListener( "webkitTransitionEnd", this.autoplay.onTransitionEnd )) : ((this.autoplay.paused = !1), this.autoplay.run()))); }, }, ve = { setTranslate: function () { for (var e = this.slides, t = 0; t < e.length; t += 1) { var i = this.slides.eq(t), s = -i[0].swiperSlideOffset; this.params.virtualTranslate || (s -= this.translate); var a = 0; this.isHorizontal() || ((a = s), (s = 0)); var r = this.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(i[0].progress), 0) : 1 + Math.min(Math.max(i[0].progress, -1), 0); i.css({ opacity: r }).transform( "translate3d(" + s + "px, " + a + "px, 0px)" ); } }, setTransition: function (e) { var t = this, i = t.slides, s = t.$wrapperEl; if ((i.transition(e), t.params.virtualTranslate && 0 !== e)) { var a = !1; i.transitionEnd(function () { if (!a && t && !t.destroyed) { (a = !0), (t.animating = !1); for ( var e = ["webkitTransitionEnd", "transitionend"], i = 0; i < e.length; i += 1 ) s.trigger(e[i]); } }); } }, }, fe = { setTranslate: function () { var e, t = this.$el, i = this.$wrapperEl, a = this.slides, r = this.width, n = this.height, o = this.rtlTranslate, l = this.size, d = this.params.cubeEffect, h = this.isHorizontal(), p = this.virtual && this.params.virtual.enabled, c = 0; d.shadow && (h ? (0 === (e = i.find(".swiper-cube-shadow")).length && ((e = s('
              ')), i.append(e)), e.css({ height: r + "px" })) : 0 === (e = t.find(".swiper-cube-shadow")).length && ((e = s('
              ')), t.append(e))); for (var u = 0; u < a.length; u += 1) { var v = a.eq(u), f = u; p && (f = parseInt(v.attr("data-swiper-slide-index"), 10)); var m = 90 * f, g = Math.floor(m / 360); o && ((m = -m), (g = Math.floor(-m / 360))); var b = Math.max(Math.min(v[0].progress, 1), -1), w = 0, y = 0, x = 0; f % 4 == 0 ? ((w = 4 * -g * l), (x = 0)) : (f - 1) % 4 == 0 ? ((w = 0), (x = 4 * -g * l)) : (f - 2) % 4 == 0 ? ((w = l + 4 * g * l), (x = l)) : (f - 3) % 4 == 0 && ((w = -l), (x = 3 * l + 4 * l * g)), o && (w = -w), h || ((y = w), (w = 0)); var T = "rotateX(" + (h ? 0 : -m) + "deg) rotateY(" + (h ? m : 0) + "deg) translate3d(" + w + "px, " + y + "px, " + x + "px)"; if ( (b <= 1 && b > -1 && ((c = 90 * f + 90 * b), o && (c = 90 * -f - 90 * b)), v.transform(T), d.slideShadows) ) { var E = h ? v.find(".swiper-slide-shadow-left") : v.find(".swiper-slide-shadow-top"), S = h ? v.find(".swiper-slide-shadow-right") : v.find(".swiper-slide-shadow-bottom"); 0 === E.length && ((E = s( '
              ' )), v.append(E)), 0 === S.length && ((S = s( '
              ' )), v.append(S)), E.length && (E[0].style.opacity = Math.max(-b, 0)), S.length && (S[0].style.opacity = Math.max(b, 0)); } } if ( (i.css({ "-webkit-transform-origin": "50% 50% -" + l / 2 + "px", "-moz-transform-origin": "50% 50% -" + l / 2 + "px", "-ms-transform-origin": "50% 50% -" + l / 2 + "px", "transform-origin": "50% 50% -" + l / 2 + "px", }), d.shadow) ) if (h) e.transform( "translate3d(0px, " + (r / 2 + d.shadowOffset) + "px, " + -r / 2 + "px) rotateX(90deg) rotateZ(0deg) scale(" + d.shadowScale + ")" ); else { var C = Math.abs(c) - 90 * Math.floor(Math.abs(c) / 90), M = 1.5 - (Math.sin((2 * C * Math.PI) / 360) / 2 + Math.cos((2 * C * Math.PI) / 360) / 2), P = d.shadowScale, z = d.shadowScale / M, k = d.shadowOffset; e.transform( "scale3d(" + P + ", 1, " + z + ") translate3d(0px, " + (n / 2 + k) + "px, " + -n / 2 / z + "px) rotateX(-90deg)" ); } var $ = j.isSafari || j.isUiWebView ? -l / 2 : 0; i.transform( "translate3d(0px,0," + $ + "px) rotateX(" + (this.isHorizontal() ? 0 : c) + "deg) rotateY(" + (this.isHorizontal() ? -c : 0) + "deg)" ); }, setTransition: function (e) { var t = this.$el; this.slides .transition(e) .find( ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left" ) .transition(e), this.params.cubeEffect.shadow && !this.isHorizontal() && t.find(".swiper-cube-shadow").transition(e); }, }, me = { setTranslate: function () { for ( var e = this.slides, t = this.rtlTranslate, i = 0; i < e.length; i += 1 ) { var a = e.eq(i), r = a[0].progress; this.params.flipEffect.limitRotation && (r = Math.max(Math.min(a[0].progress, 1), -1)); var n = -180 * r, o = 0, l = -a[0].swiperSlideOffset, d = 0; if ( (this.isHorizontal() ? t && (n = -n) : ((d = l), (l = 0), (o = -n), (n = 0)), (a[0].style.zIndex = -Math.abs(Math.round(r)) + e.length), this.params.flipEffect.slideShadows) ) { var h = this.isHorizontal() ? a.find(".swiper-slide-shadow-left") : a.find(".swiper-slide-shadow-top"), p = this.isHorizontal() ? a.find(".swiper-slide-shadow-right") : a.find(".swiper-slide-shadow-bottom"); 0 === h.length && ((h = s( '
              ' )), a.append(h)), 0 === p.length && ((p = s( '
              ' )), a.append(p)), h.length && (h[0].style.opacity = Math.max(-r, 0)), p.length && (p[0].style.opacity = Math.max(r, 0)); } a.transform( "translate3d(" + l + "px, " + d + "px, 0px) rotateX(" + o + "deg) rotateY(" + n + "deg)" ); } }, setTransition: function (e) { var t = this, i = t.slides, s = t.activeIndex, a = t.$wrapperEl; if ( (i .transition(e) .find( ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left" ) .transition(e), t.params.virtualTranslate && 0 !== e) ) { var r = !1; i.eq(s).transitionEnd(function () { if (!r && t && !t.destroyed) { (r = !0), (t.animating = !1); for ( var e = ["webkitTransitionEnd", "transitionend"], i = 0; i < e.length; i += 1 ) a.trigger(e[i]); } }); } }, }, ge = { setTranslate: function () { for ( var e = this.width, t = this.height, i = this.slides, a = this.$wrapperEl, r = this.slidesSizesGrid, n = this.params.coverflowEffect, l = this.isHorizontal(), d = this.translate, h = l ? e / 2 - d : t / 2 - d, p = l ? n.rotate : -n.rotate, c = n.depth, u = 0, v = i.length; u < v; u += 1 ) { var f = i.eq(u), m = r[u], g = ((h - f[0].swiperSlideOffset - m / 2) / m) * n.modifier, b = l ? p * g : 0, w = l ? 0 : p * g, y = -c * Math.abs(g), x = n.stretch; "string" == typeof x && -1 !== x.indexOf("%") && (x = (parseFloat(n.stretch) / 100) * m); var T = l ? 0 : x * g, E = l ? x * g : 0; Math.abs(E) < 0.001 && (E = 0), Math.abs(T) < 0.001 && (T = 0), Math.abs(y) < 0.001 && (y = 0), Math.abs(b) < 0.001 && (b = 0), Math.abs(w) < 0.001 && (w = 0); var S = "translate3d(" + E + "px," + T + "px," + y + "px) rotateX(" + w + "deg) rotateY(" + b + "deg)"; if ( (f.transform(S), (f[0].style.zIndex = 1 - Math.abs(Math.round(g))), n.slideShadows) ) { var C = l ? f.find(".swiper-slide-shadow-left") : f.find(".swiper-slide-shadow-top"), M = l ? f.find(".swiper-slide-shadow-right") : f.find(".swiper-slide-shadow-bottom"); 0 === C.length && ((C = s( '
              ' )), f.append(C)), 0 === M.length && ((M = s( '
              ' )), f.append(M)), C.length && (C[0].style.opacity = g > 0 ? g : 0), M.length && (M[0].style.opacity = -g > 0 ? -g : 0); } } (o.pointerEvents || o.prefixedPointerEvents) && (a[0].style.perspectiveOrigin = h + "px 50%"); }, setTransition: function (e) { this.slides .transition(e) .find( ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left" ) .transition(e); }, }, be = { init: function () { var e = this.params.thumbs, t = this.constructor; e.swiper instanceof t ? ((this.thumbs.swiper = e.swiper), n.extend(this.thumbs.swiper.originalParams, { watchSlidesProgress: !0, slideToClickedSlide: !1, }), n.extend(this.thumbs.swiper.params, { watchSlidesProgress: !0, slideToClickedSlide: !1, })) : n.isObject(e.swiper) && ((this.thumbs.swiper = new t( n.extend({}, e.swiper, { watchSlidesVisibility: !0, watchSlidesProgress: !0, slideToClickedSlide: !1, }) )), (this.thumbs.swiperCreated = !0)), this.thumbs.swiper.$el.addClass( this.params.thumbs.thumbsContainerClass ), this.thumbs.swiper.on("tap", this.thumbs.onThumbClick); }, onThumbClick: function () { var e = this.thumbs.swiper; if (e) { var t = e.clickedIndex, i = e.clickedSlide; if ( !( (i && s(i).hasClass(this.params.thumbs.slideThumbActiveClass)) || null == t ) ) { var a; if ( ((a = e.params.loop ? parseInt( s(e.clickedSlide).attr("data-swiper-slide-index"), 10 ) : t), this.params.loop) ) { var r = this.activeIndex; this.slides.eq(r).hasClass(this.params.slideDuplicateClass) && (this.loopFix(), (this._clientLeft = this.$wrapperEl[0].clientLeft), (r = this.activeIndex)); var n = this.slides .eq(r) .prevAll('[data-swiper-slide-index="' + a + '"]') .eq(0) .index(), o = this.slides .eq(r) .nextAll('[data-swiper-slide-index="' + a + '"]') .eq(0) .index(); a = void 0 === n ? o : void 0 === o ? n : o - r < r - n ? o : n; } this.slideTo(a); } } }, update: function (e) { var t = this.thumbs.swiper; if (t) { var i = "auto" === t.params.slidesPerView ? t.slidesPerViewDynamic() : t.params.slidesPerView; if (this.realIndex !== t.realIndex) { var s, a = t.activeIndex; if (t.params.loop) { t.slides.eq(a).hasClass(t.params.slideDuplicateClass) && (t.loopFix(), (t._clientLeft = t.$wrapperEl[0].clientLeft), (a = t.activeIndex)); var r = t.slides .eq(a) .prevAll('[data-swiper-slide-index="' + this.realIndex + '"]') .eq(0) .index(), n = t.slides .eq(a) .nextAll('[data-swiper-slide-index="' + this.realIndex + '"]') .eq(0) .index(); s = void 0 === r ? n : void 0 === n ? r : n - a == a - r ? a : n - a < a - r ? n : r; } else s = this.realIndex; t.visibleSlidesIndexes && t.visibleSlidesIndexes.indexOf(s) < 0 && (t.params.centeredSlides ? (s = s > a ? s - Math.floor(i / 2) + 1 : s + Math.floor(i / 2) - 1) : s > a && (s = s - i + 1), t.slideTo(s, e ? 0 : void 0)); } var o = 1, l = this.params.thumbs.slideThumbActiveClass; if ( (this.params.slidesPerView > 1 && !this.params.centeredSlides && (o = this.params.slidesPerView), this.params.thumbs.multipleActiveThumbs || (o = 1), (o = Math.floor(o)), t.slides.removeClass(l), t.params.loop || (t.params.virtual && t.params.virtual.enabled)) ) for (var d = 0; d < o; d += 1) t.$wrapperEl .children( '[data-swiper-slide-index="' + (this.realIndex + d) + '"]' ) .addClass(l); else for (var h = 0; h < o; h += 1) t.slides.eq(this.realIndex + h).addClass(l); } }, }, we = [ R, q, K, U, Z, J, te, { name: "mousewheel", params: { mousewheel: { enabled: !1, releaseOnEdges: !1, invert: !1, forceToAxis: !1, sensitivity: 1, eventsTarged: "container", }, }, create: function () { n.extend(this, { mousewheel: { enabled: !1, enable: ie.enable.bind(this), disable: ie.disable.bind(this), handle: ie.handle.bind(this), handleMouseEnter: ie.handleMouseEnter.bind(this), handleMouseLeave: ie.handleMouseLeave.bind(this), animateSlider: ie.animateSlider.bind(this), releaseScroll: ie.releaseScroll.bind(this), lastScrollTime: n.now(), lastEventBeforeSnap: void 0, recentWheelEvents: [], }, }); }, on: { init: function () { !this.params.mousewheel.enabled && this.params.cssMode && this.mousewheel.disable(), this.params.mousewheel.enabled && this.mousewheel.enable(); }, destroy: function () { this.params.cssMode && this.mousewheel.enable(), this.mousewheel.enabled && this.mousewheel.disable(); }, }, }, { name: "navigation", params: { navigation: { nextEl: null, prevEl: null, hideOnClick: !1, disabledClass: "swiper-button-disabled", hiddenClass: "swiper-button-hidden", lockClass: "swiper-button-lock", }, }, create: function () { n.extend(this, { navigation: { init: se.init.bind(this), update: se.update.bind(this), destroy: se.destroy.bind(this), onNextClick: se.onNextClick.bind(this), onPrevClick: se.onPrevClick.bind(this), }, }); }, on: { init: function () { this.navigation.init(), this.navigation.update(); }, toEdge: function () { this.navigation.update(); }, fromEdge: function () { this.navigation.update(); }, destroy: function () { this.navigation.destroy(); }, click: function (e) { var t, i = this.navigation, a = i.$nextEl, r = i.$prevEl; !this.params.navigation.hideOnClick || s(e.target).is(r) || s(e.target).is(a) || (a ? (t = a.hasClass(this.params.navigation.hiddenClass)) : r && (t = r.hasClass(this.params.navigation.hiddenClass)), !0 === t ? this.emit("navigationShow", this) : this.emit("navigationHide", this), a && a.toggleClass(this.params.navigation.hiddenClass), r && r.toggleClass(this.params.navigation.hiddenClass)); }, }, }, { name: "pagination", params: { pagination: { el: null, bulletElement: "span", clickable: !1, hideOnClick: !1, renderBullet: null, renderProgressbar: null, renderFraction: null, renderCustom: null, progressbarOpposite: !1, type: "bullets", dynamicBullets: !1, dynamicMainBullets: 1, formatFractionCurrent: function (e) { return e; }, formatFractionTotal: function (e) { return e; }, bulletClass: "swiper-pagination-bullet", bulletActiveClass: "swiper-pagination-bullet-active", modifierClass: "swiper-pagination-", currentClass: "swiper-pagination-current", totalClass: "swiper-pagination-total", hiddenClass: "swiper-pagination-hidden", progressbarFillClass: "swiper-pagination-progressbar-fill", progressbarOppositeClass: "swiper-pagination-progressbar-opposite", clickableClass: "swiper-pagination-clickable", lockClass: "swiper-pagination-lock", }, }, create: function () { n.extend(this, { pagination: { init: ae.init.bind(this), render: ae.render.bind(this), update: ae.update.bind(this), destroy: ae.destroy.bind(this), dynamicBulletIndex: 0, }, }); }, on: { init: function () { this.pagination.init(), this.pagination.render(), this.pagination.update(); }, activeIndexChange: function () { this.params.loop ? this.pagination.update() : void 0 === this.snapIndex && this.pagination.update(); }, snapIndexChange: function () { this.params.loop || this.pagination.update(); }, slidesLengthChange: function () { this.params.loop && (this.pagination.render(), this.pagination.update()); }, snapGridLengthChange: function () { this.params.loop || (this.pagination.render(), this.pagination.update()); }, destroy: function () { this.pagination.destroy(); }, click: function (e) { this.params.pagination.el && this.params.pagination.hideOnClick && this.pagination.$el.length > 0 && !s(e.target).hasClass(this.params.pagination.bulletClass) && (!0 === this.pagination.$el.hasClass(this.params.pagination.hiddenClass) ? this.emit("paginationShow", this) : this.emit("paginationHide", this), this.pagination.$el.toggleClass( this.params.pagination.hiddenClass )); }, }, }, { name: "scrollbar", params: { scrollbar: { el: null, dragSize: "auto", hide: !1, draggable: !1, snapOnRelease: !0, lockClass: "swiper-scrollbar-lock", dragClass: "swiper-scrollbar-drag", }, }, create: function () { n.extend(this, { scrollbar: { init: re.init.bind(this), destroy: re.destroy.bind(this), updateSize: re.updateSize.bind(this), setTranslate: re.setTranslate.bind(this), setTransition: re.setTransition.bind(this), enableDraggable: re.enableDraggable.bind(this), disableDraggable: re.disableDraggable.bind(this), setDragPosition: re.setDragPosition.bind(this), getPointerPosition: re.getPointerPosition.bind(this), onDragStart: re.onDragStart.bind(this), onDragMove: re.onDragMove.bind(this), onDragEnd: re.onDragEnd.bind(this), isTouched: !1, timeout: null, dragTimeout: null, }, }); }, on: { init: function () { this.scrollbar.init(), this.scrollbar.updateSize(), this.scrollbar.setTranslate(); }, update: function () { this.scrollbar.updateSize(); }, resize: function () { this.scrollbar.updateSize(); }, observerUpdate: function () { this.scrollbar.updateSize(); }, setTranslate: function () { this.scrollbar.setTranslate(); }, setTransition: function (e) { this.scrollbar.setTransition(e); }, destroy: function () { this.scrollbar.destroy(); }, }, }, { name: "parallax", params: { parallax: { enabled: !1 } }, create: function () { n.extend(this, { parallax: { setTransform: ne.setTransform.bind(this), setTranslate: ne.setTranslate.bind(this), setTransition: ne.setTransition.bind(this), }, }); }, on: { beforeInit: function () { this.params.parallax.enabled && ((this.params.watchSlidesProgress = !0), (this.originalParams.watchSlidesProgress = !0)); }, init: function () { this.params.parallax.enabled && this.parallax.setTranslate(); }, setTranslate: function () { this.params.parallax.enabled && this.parallax.setTranslate(); }, setTransition: function (e) { this.params.parallax.enabled && this.parallax.setTransition(e); }, }, }, { name: "zoom", params: { zoom: { enabled: !1, maxRatio: 3, minRatio: 1, toggle: !0, containerClass: "swiper-zoom-container", zoomedSlideClass: "swiper-slide-zoomed", }, }, create: function () { var e = this, t = { enabled: !1, scale: 1, currentScale: 1, isScaling: !1, gesture: { $slideEl: void 0, slideWidth: void 0, slideHeight: void 0, $imageEl: void 0, $imageWrapEl: void 0, maxRatio: 3, }, image: { isTouched: void 0, isMoved: void 0, currentX: void 0, currentY: void 0, minX: void 0, minY: void 0, maxX: void 0, maxY: void 0, width: void 0, height: void 0, startX: void 0, startY: void 0, touchesStart: {}, touchesCurrent: {}, }, velocity: { x: void 0, y: void 0, prevPositionX: void 0, prevPositionY: void 0, prevTime: void 0, }, }; "onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out" .split(" ") .forEach(function (i) { t[i] = oe[i].bind(e); }), n.extend(e, { zoom: t }); var i = 1; Object.defineProperty(e.zoom, "scale", { get: function () { return i; }, set: function (t) { if (i !== t) { var s = e.zoom.gesture.$imageEl ? e.zoom.gesture.$imageEl[0] : void 0, a = e.zoom.gesture.$slideEl ? e.zoom.gesture.$slideEl[0] : void 0; e.emit("zoomChange", t, s, a); } i = t; }, }); }, on: { init: function () { this.params.zoom.enabled && this.zoom.enable(); }, destroy: function () { this.zoom.disable(); }, touchStart: function (e) { this.zoom.enabled && this.zoom.onTouchStart(e); }, touchEnd: function (e) { this.zoom.enabled && this.zoom.onTouchEnd(e); }, doubleTap: function (e) { this.params.zoom.enabled && this.zoom.enabled && this.params.zoom.toggle && this.zoom.toggle(e); }, transitionEnd: function () { this.zoom.enabled && this.params.zoom.enabled && this.zoom.onTransitionEnd(); }, slideChange: function () { this.zoom.enabled && this.params.zoom.enabled && this.params.cssMode && this.zoom.onTransitionEnd(); }, }, }, { name: "lazy", params: { lazy: { enabled: !1, loadPrevNext: !1, loadPrevNextAmount: 1, loadOnTransitionStart: !1, elementClass: "swiper-lazy", loadingClass: "swiper-lazy-loading", loadedClass: "swiper-lazy-loaded", preloaderClass: "swiper-lazy-preloader", }, }, create: function () { n.extend(this, { lazy: { initialImageLoaded: !1, load: le.load.bind(this), loadInSlide: le.loadInSlide.bind(this), }, }); }, on: { beforeInit: function () { this.params.lazy.enabled && this.params.preloadImages && (this.params.preloadImages = !1); }, init: function () { this.params.lazy.enabled && !this.params.loop && 0 === this.params.initialSlide && this.lazy.load(); }, scroll: function () { this.params.freeMode && !this.params.freeModeSticky && this.lazy.load(); }, resize: function () { this.params.lazy.enabled && this.lazy.load(); }, scrollbarDragMove: function () { this.params.lazy.enabled && this.lazy.load(); }, transitionStart: function () { this.params.lazy.enabled && (this.params.lazy.loadOnTransitionStart || (!this.params.lazy.loadOnTransitionStart && !this.lazy.initialImageLoaded)) && this.lazy.load(); }, transitionEnd: function () { this.params.lazy.enabled && !this.params.lazy.loadOnTransitionStart && this.lazy.load(); }, slideChange: function () { this.params.lazy.enabled && this.params.cssMode && this.lazy.load(); }, }, }, { name: "controller", params: { controller: { control: void 0, inverse: !1, by: "slide" } }, create: function () { n.extend(this, { controller: { control: this.params.controller.control, getInterpolateFunction: de.getInterpolateFunction.bind(this), setTranslate: de.setTranslate.bind(this), setTransition: de.setTransition.bind(this), }, }); }, on: { update: function () { this.controller.control && this.controller.spline && ((this.controller.spline = void 0), delete this.controller.spline); }, resize: function () { this.controller.control && this.controller.spline && ((this.controller.spline = void 0), delete this.controller.spline); }, observerUpdate: function () { this.controller.control && this.controller.spline && ((this.controller.spline = void 0), delete this.controller.spline); }, setTranslate: function (e, t) { this.controller.control && this.controller.setTranslate(e, t); }, setTransition: function (e, t) { this.controller.control && this.controller.setTransition(e, t); }, }, }, { name: "a11y", params: { a11y: { enabled: !0, notificationClass: "swiper-notification", prevSlideMessage: "Previous slide", nextSlideMessage: "Next slide", firstSlideMessage: "This is the first slide", lastSlideMessage: "This is the last slide", paginationBulletMessage: "Go to slide {{index}}", }, }, create: function () { var e = this; n.extend(e, { a11y: { liveRegion: s( '' ), }, }), Object.keys(he).forEach(function (t) { e.a11y[t] = he[t].bind(e); }); }, on: { init: function () { this.params.a11y.enabled && (this.a11y.init(), this.a11y.updateNavigation()); }, toEdge: function () { this.params.a11y.enabled && this.a11y.updateNavigation(); }, fromEdge: function () { this.params.a11y.enabled && this.a11y.updateNavigation(); }, paginationUpdate: function () { this.params.a11y.enabled && this.a11y.updatePagination(); }, destroy: function () { this.params.a11y.enabled && this.a11y.destroy(); }, }, }, { name: "history", params: { history: { enabled: !1, replaceState: !1, key: "slides" } }, create: function () { n.extend(this, { history: { init: pe.init.bind(this), setHistory: pe.setHistory.bind(this), setHistoryPopState: pe.setHistoryPopState.bind(this), scrollToSlide: pe.scrollToSlide.bind(this), destroy: pe.destroy.bind(this), }, }); }, on: { init: function () { this.params.history.enabled && this.history.init(); }, destroy: function () { this.params.history.enabled && this.history.destroy(); }, transitionEnd: function () { this.history.initialized && this.history.setHistory( this.params.history.key, this.activeIndex ); }, slideChange: function () { this.history.initialized && this.params.cssMode && this.history.setHistory( this.params.history.key, this.activeIndex ); }, }, }, { name: "hash-navigation", params: { hashNavigation: { enabled: !1, replaceState: !1, watchState: !1 }, }, create: function () { n.extend(this, { hashNavigation: { initialized: !1, init: ce.init.bind(this), destroy: ce.destroy.bind(this), setHash: ce.setHash.bind(this), onHashCange: ce.onHashCange.bind(this), }, }); }, on: { init: function () { this.params.hashNavigation.enabled && this.hashNavigation.init(); }, destroy: function () { this.params.hashNavigation.enabled && this.hashNavigation.destroy(); }, transitionEnd: function () { this.hashNavigation.initialized && this.hashNavigation.setHash(); }, slideChange: function () { this.hashNavigation.initialized && this.params.cssMode && this.hashNavigation.setHash(); }, }, }, { name: "autoplay", params: { autoplay: { enabled: !1, delay: 3e3, waitForTransition: !0, disableOnInteraction: !0, stopOnLastSlide: !1, reverseDirection: !1, }, }, create: function () { var e = this; n.extend(e, { autoplay: { running: !1, paused: !1, run: ue.run.bind(e), start: ue.start.bind(e), stop: ue.stop.bind(e), pause: ue.pause.bind(e), onVisibilityChange: function () { "hidden" === document.visibilityState && e.autoplay.running && e.autoplay.pause(), "visible" === document.visibilityState && e.autoplay.paused && (e.autoplay.run(), (e.autoplay.paused = !1)); }, onTransitionEnd: function (t) { e && !e.destroyed && e.$wrapperEl && t.target === this && (e.$wrapperEl[0].removeEventListener( "transitionend", e.autoplay.onTransitionEnd ), e.$wrapperEl[0].removeEventListener( "webkitTransitionEnd", e.autoplay.onTransitionEnd ), (e.autoplay.paused = !1), e.autoplay.running ? e.autoplay.run() : e.autoplay.stop()); }, }, }); }, on: { init: function () { this.params.autoplay.enabled && (this.autoplay.start(), document.addEventListener( "visibilitychange", this.autoplay.onVisibilityChange )); }, beforeTransitionStart: function (e, t) { this.autoplay.running && (t || !this.params.autoplay.disableOnInteraction ? this.autoplay.pause(e) : this.autoplay.stop()); }, sliderFirstMove: function () { this.autoplay.running && (this.params.autoplay.disableOnInteraction ? this.autoplay.stop() : this.autoplay.pause()); }, touchEnd: function () { this.params.cssMode && this.autoplay.paused && !this.params.autoplay.disableOnInteraction && this.autoplay.run(); }, destroy: function () { this.autoplay.running && this.autoplay.stop(), document.removeEventListener( "visibilitychange", this.autoplay.onVisibilityChange ); }, }, }, { name: "effect-fade", params: { fadeEffect: { crossFade: !1 } }, create: function () { n.extend(this, { fadeEffect: { setTranslate: ve.setTranslate.bind(this), setTransition: ve.setTransition.bind(this), }, }); }, on: { beforeInit: function () { if ("fade" === this.params.effect) { this.classNames.push(this.params.containerModifierClass + "fade"); var e = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !0, }; n.extend(this.params, e), n.extend(this.originalParams, e); } }, setTranslate: function () { "fade" === this.params.effect && this.fadeEffect.setTranslate(); }, setTransition: function (e) { "fade" === this.params.effect && this.fadeEffect.setTransition(e); }, }, }, { name: "effect-cube", params: { cubeEffect: { slideShadows: !0, shadow: !0, shadowOffset: 20, shadowScale: 0.94, }, }, create: function () { n.extend(this, { cubeEffect: { setTranslate: fe.setTranslate.bind(this), setTransition: fe.setTransition.bind(this), }, }); }, on: { beforeInit: function () { if ("cube" === this.params.effect) { this.classNames.push(this.params.containerModifierClass + "cube"), this.classNames.push(this.params.containerModifierClass + "3d"); var e = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, resistanceRatio: 0, spaceBetween: 0, centeredSlides: !1, virtualTranslate: !0, }; n.extend(this.params, e), n.extend(this.originalParams, e); } }, setTranslate: function () { "cube" === this.params.effect && this.cubeEffect.setTranslate(); }, setTransition: function (e) { "cube" === this.params.effect && this.cubeEffect.setTransition(e); }, }, }, { name: "effect-flip", params: { flipEffect: { slideShadows: !0, limitRotation: !0 } }, create: function () { n.extend(this, { flipEffect: { setTranslate: me.setTranslate.bind(this), setTransition: me.setTransition.bind(this), }, }); }, on: { beforeInit: function () { if ("flip" === this.params.effect) { this.classNames.push(this.params.containerModifierClass + "flip"), this.classNames.push(this.params.containerModifierClass + "3d"); var e = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !0, }; n.extend(this.params, e), n.extend(this.originalParams, e); } }, setTranslate: function () { "flip" === this.params.effect && this.flipEffect.setTranslate(); }, setTransition: function (e) { "flip" === this.params.effect && this.flipEffect.setTransition(e); }, }, }, { name: "effect-coverflow", params: { coverflowEffect: { rotate: 50, stretch: 0, depth: 100, modifier: 1, slideShadows: !0, }, }, create: function () { n.extend(this, { coverflowEffect: { setTranslate: ge.setTranslate.bind(this), setTransition: ge.setTransition.bind(this), }, }); }, on: { beforeInit: function () { "coverflow" === this.params.effect && (this.classNames.push( this.params.containerModifierClass + "coverflow" ), this.classNames.push(this.params.containerModifierClass + "3d"), (this.params.watchSlidesProgress = !0), (this.originalParams.watchSlidesProgress = !0)); }, setTranslate: function () { "coverflow" === this.params.effect && this.coverflowEffect.setTranslate(); }, setTransition: function (e) { "coverflow" === this.params.effect && this.coverflowEffect.setTransition(e); }, }, }, { name: "thumbs", params: { thumbs: { multipleActiveThumbs: !0, swiper: null, slideThumbActiveClass: "swiper-slide-thumb-active", thumbsContainerClass: "swiper-container-thumbs", }, }, create: function () { n.extend(this, { thumbs: { swiper: null, init: be.init.bind(this), update: be.update.bind(this), onThumbClick: be.onThumbClick.bind(this), }, }); }, on: { beforeInit: function () { var e = this.params.thumbs; e && e.swiper && (this.thumbs.init(), this.thumbs.update(!0)); }, slideChange: function () { this.thumbs.swiper && this.thumbs.update(); }, update: function () { this.thumbs.swiper && this.thumbs.update(); }, resize: function () { this.thumbs.swiper && this.thumbs.update(); }, observerUpdate: function () { this.thumbs.swiper && this.thumbs.update(); }, setTransition: function (e) { var t = this.thumbs.swiper; t && t.setTransition(e); }, beforeDestroy: function () { var e = this.thumbs.swiper; e && this.thumbs.swiperCreated && e && e.destroy(); }, }, }, ]; return ( void 0 === W.use && ((W.use = W.Class.use), (W.installModule = W.Class.installModule)), W.use(we), W ); }); (function (a) { (window.ShareLink = function (b, c) { var d, e = {}, f = function (a) { var b = a.substr(0, e.classPrefixLength); return b === e.classPrefix ? a.substr(e.classPrefixLength) : null; }, g = function (a) { d.on("click", function () { h(a); }); }, h = function (a) { var b = ""; if (e.width && e.height) { var c = screen.width / 2 - e.width / 2, d = screen.height / 2 - e.height / 2; b = "toolbar=0,status=0,width=" + e.width + ",height=" + e.height + ",top=" + d + ",left=" + c; } var f = ShareLink.getNetworkLink(a, e), g = /^https?:\/\//.test(f), h = g ? "" : "_self"; open(f, h, b); }, i = function () { a.each(b.classList, function () { var a = f(this); if (a) return g(a), !1; }); }, j = function () { a.extend(e, ShareLink.defaultSettings, c), ["title", "text"].forEach(function (a) { e[a] = e[a].replace("#", ""); }), (e.classPrefixLength = e.classPrefix.length); }, k = function () { d = a(b); }; (function () { j(), k(), i(); })(); }), (ShareLink.networkTemplates = { twitter: "https://twitter.com/intent/tweet?text={text}\x20{url}", pinterest: "https://www.pinterest.com/pin/create/button/?url={url}&media={image}", facebook: "https://www.facebook.com/sharer.php?u={url}", vk: "https://vkontakte.ru/share.php?url={url}&title={title}&description={text}&image={image}", linkedin: "https://www.linkedin.com/shareArticle?mini=true&url={url}&title={title}&summary={text}&source={url}", odnoklassniki: "https://connect.ok.ru/offer?url={url}&title={title}&imageUrl={image}", tumblr: "https://tumblr.com/share/link?url={url}", google: "https://plus.google.com/share?url={url}", digg: "https://digg.com/submit?url={url}", reddit: "https://reddit.com/submit?url={url}&title={title}", stumbleupon: "https://www.stumbleupon.com/submit?url={url}", pocket: "https://getpocket.com/edit?url={url}", whatsapp: "https://api.whatsapp.com/send?text=*{title}*\n{text}\n{url}", xing: "https://www.xing.com/app/user?op=share&url={url}", print: "javascript:print()", email: "mailto:?subject={title}&body={text}\n{url}", telegram: "https://telegram.me/share/url?url={url}&text={text}", skype: "https://web.skype.com/share?url={url}", }), (ShareLink.defaultSettings = { title: "", text: "", image: "", url: location.href, classPrefix: "s_", width: 640, height: 480, }), (ShareLink.getNetworkLink = function (a, b) { var c = ShareLink.networkTemplates[a].replace( /{([^}]+)}/g, function (a, c) { return b[c] || ""; } ); if ("email" === a) { if (-1 < b.title.indexOf("&") || -1 < b.text.indexOf("&")) { var d = { text: b.text.replace(/&/g, "%26"), title: b.title.replace(/&/g, "%26"), url: b.url, }; c = ShareLink.networkTemplates[a].replace( /{([^}]+)}/g, function (a, b) { return d[b]; } ); } return ( c.indexOf("?subject=&body") && (c = c.replace("subject=&", "")), c ); } return c; }), (a.fn.shareLink = function (b) { return this.each(function () { a(this).data("shareLink", new ShareLink(this, b)); }); }); })(jQuery); /*! dialogs-manager v4.9.0 | (c) Kobi Zaltzberg | https://github.com/kobizz/dialogs-manager/blob/master/LICENSE.txt 2021-08-15 18:13 */ !(function (p, t) { "use strict"; var y = { widgetsTypes: {}, createWidgetType: function (t, e, n) { n = n || this.Widget; function i() { n.apply(this, arguments); } var o = (i.prototype = new n(t)); return ( (o.types = o.types.concat([t])), p.extend(o, e), ((o.constructor = i).extend = function (t, e) { return y.createWidgetType(t, e, i); }), i ); }, addWidgetType: function (t, e, n) { return e && e.prototype instanceof this.Widget ? (this.widgetsTypes[t] = e) : (this.widgetsTypes[t] = this.createWidgetType(t, e, n)); }, getWidgetType: function (t) { return this.widgetsTypes[t]; }, }; (y.Instance = function () { var n = this, e = {}, i = {}; (this.createWidget = function (t, e) { t = new (y.getWidgetType(t))(t); return t.init(n, (e = e || {})), t; }), (this.getSettings = function (t) { return t ? i[t] : Object.create(i); }), (this.init = function (t) { return ( p.extend( i, { classPrefix: "dialog", effects: { show: "fadeIn", hide: "fadeOut" }, }, t ), (e.body = p("body")), n ); }), n.init(); }), (y.Widget = function (n) { function e(t, e) { var n = u.effects[t], t = d.widget; if (p.isFunction(n)) n.apply(t, e); else { if (!t[n]) throw "Reference Error: The effect " + n + " not found"; t[n].apply(t, e); } } function i(t) { if (!f(t)) { if (u.hide.onClick) { if (p(t.target).closest(u.selectors.preventClose).length) return; } else if (t.target !== this) return; c.hide(); } } function o(t) { f(t) || p(t.target).closest(d.widget).length || g(t) || c.hide(); } function s(t, e) { (t = p.extend(!0, {}, t.getSettings())), (u = { headerMessage: "", message: "", effects: t.effects, classes: { globalPrefix: t.classPrefix, prefix: t.classPrefix + "-" + n, preventScroll: t.classPrefix + "-prevent-scroll", }, selectors: { preventClose: "." + t.classPrefix + "-prevent-close" }, container: "body", preventScroll: !1, iframe: null, closeButton: !1, closeButtonOptions: { iconClass: t.classPrefix + "-close-button-icon", attributes: {}, iconElement: "", }, position: { element: "widget", my: "center", at: "center", enable: !0, autoRefresh: !1, }, hide: { auto: !1, autoDelay: 5e3, onClick: !1, onOutsideClick: !0, onOutsideContextMenu: !1, onBackgroundClick: !0, onEscKeyPress: !0, ignore: "", }, }), p.extend(!0, u, c.getDefaultSettings(), e), p.each(u, function (t) { t = t.match(/^on([A-Z].*)/); t && ((t = t[1].charAt(0).toLowerCase() + t[1].slice(1)), c.on(t, this)); }); } function r(t) { 27 === t.which && c.hide(); } function t() { var t = [d.window]; d.iframe && t.push(jQuery(d.iframe[0].contentWindow)), t.forEach(function (t) { u.hide.onEscKeyPress && t.off("keyup", r), u.hide.onOutsideClick && t[0].removeEventListener("click", o, !0), u.hide.onOutsideContextMenu && t[0].removeEventListener("contextmenu", o, !0), u.position.autoRefresh && t.off("resize", c.refreshPosition); }), (u.hide.onClick || u.hide.onBackgroundClick) && d.widget.off("click", i); } var c = this, u = {}, a = {}, d = {}, l = 0, h = ["refreshPosition"], g = function (t) { return !!u.hide.ignore && !!p(t.target).closest(u.hide.ignore).length; }, f = function (t) { return "click" === t.type && 2 === t.button; }; (this.addElement = function (t, e, n) { (e = d[t] = p(e || "
              ")), (t = t.replace(/([a-z])([A-Z])/g, function () { return arguments[1] + "-" + arguments[2].toLowerCase(); })); return ( (n = n ? n + " " : ""), (n += u.classes.globalPrefix + "-" + t), (n += " " + u.classes.prefix + "-" + t), e.addClass(n), e ); }), (this.destroy = function () { return t(), d.widget.remove(), c.trigger("destroy"), c; }), (this.getElements = function (t) { return t ? d[t] : d; }), (this.getSettings = function (t) { var e = Object.create(u); return t ? e[t] : e; }), (this.hide = function () { if (c.isVisible()) return ( clearTimeout(l), e("hide", arguments), t(), u.preventScroll && c.getElements("body").removeClass(u.classes.preventScroll), c.trigger("hide"), c ); }), (this.init = function (t, e) { if (!(t instanceof y.Instance)) throw ( "The " + c.widgetName + " must to be initialized from an instance of DialogsManager.Instance" ); var n; return ( (n = h.concat(c.getClosureMethods())), p.each(n, function () { var t = c[this]; c[this] = function () { t.apply(c, arguments); }; }), c.trigger("init", e), s(t, e), (function () { if ( (c.addElement("widget"), c.addElement("header"), c.addElement("message"), c.addElement("window", window), c.addElement("body", document.body), c.addElement("container", u.container), u.iframe && c.addElement("iframe", u.iframe), u.closeButton) ) { u.closeButtonClass && (u.closeButtonOptions.iconClass = u.closeButtonClass); const n = p("
              ", u.closeButtonOptions.attributes), i = p(u.closeButtonOptions.iconElement).addClass( u.closeButtonOptions.iconClass ); n.append(i), c.addElement("closeButton", n); } var t = c.getSettings("id"); t && c.setID(t); var e = []; p.each(c.types, function () { e.push(u.classes.globalPrefix + "-type-" + this); }), e.push(c.getSettings("className")), d.widget.addClass(e.join(" ")); })(), c.buildWidget(), c.attachEvents(), c.trigger("ready"), c ); }), (this.isVisible = function () { return d.widget.is(":visible"); }), (this.on = function (t, e) { return ( "object" == typeof t ? p.each(t, function (t) { c.on(t, this); }) : t.split(" ").forEach(function (t) { a[t] || (a[t] = []), a[t].push(e); }), c ); }), (this.off = function (t, e) { if (!a[t]) return c; if (!e) return delete a[t], c; e = a[t].indexOf(e); return -1 !== e && a[t].splice(e, 1), c; }), (this.refreshPosition = function () { var t, e, n, i, o, s, r; u.position.enable && ((t = p.extend({}, u.position)), d[t.of] && (t.of = d[t.of]), t.of || (t.of = window), u.iframe && (e = t).my && ((n = /([+-]\d+)?$/), (i = d.iframe.offset()), (o = d.iframe[0].contentWindow), (s = e.my.split(" ")), (r = []), 1 === s.length && (/left|right/.test(s[0]) ? s.push("center") : s.unshift("center")), s.forEach(function (t, e) { t = t.replace(n, function (t) { return ( (t = +t || 0), (t = 0 <= (t += e ? i.top - o.scrollY : i.left - o.scrollX) ? "+" + t : t) ); }); r.push(t); }), (e.my = r.join(" "))), d[t.element].position(t)); }), (this.setID = function (t) { return d.widget.attr("id", t), c; }), (this.setHeaderMessage = function (t) { return c.getElements("header").html(t), c; }), (this.setMessage = function (t) { return d.message.html(t), c; }), (this.setSettings = function (t, e) { return ( jQuery.isPlainObject(e) ? p.extend(!0, u[t], e) : (u[t] = e), c ); }), (this.show = function () { var t; return ( clearTimeout(l), d.widget.appendTo(d.container).hide(), e("show", arguments), c.refreshPosition(), u.hide.auto && (l = setTimeout(c.hide, u.hide.autoDelay)), (t = [d.window]), d.iframe && t.push(jQuery(d.iframe[0].contentWindow)), t.forEach(function (t) { u.hide.onEscKeyPress && t.on("keyup", r), u.hide.onOutsideClick && t[0].addEventListener("click", o, !0), u.hide.onOutsideContextMenu && t[0].addEventListener("contextmenu", o, !0), u.position.autoRefresh && t.on("resize", c.refreshPosition); }), (u.hide.onClick || u.hide.onBackgroundClick) && d.widget.on("click", i), u.preventScroll && c.getElements("body").addClass(u.classes.preventScroll), c.trigger("show"), c ); }), (this.trigger = function (t, n) { var e = "on" + t[0].toUpperCase() + t.slice(1); c[e] && c[e](n); t = a[t]; if (t) return ( p.each(t, function (t, e) { e.call(c, n); }), c ); }); }), (y.Widget.prototype.types = []), (y.Widget.prototype.buildWidget = function () { var t = this.getElements(), e = this.getSettings(); t.widget.append(t.header, t.message), this.setHeaderMessage(e.headerMessage), this.setMessage(e.message), this.getSettings("closeButton") && t.widget.prepend(t.closeButton); }), (y.Widget.prototype.attachEvents = function () { var t = this; t.getSettings("closeButton") && t.getElements("closeButton").on("click", function () { t.hide(); }); }), (y.Widget.prototype.getDefaultSettings = function () { return {}; }), (y.Widget.prototype.getClosureMethods = function () { return []; }), (y.Widget.prototype.onHide = function () {}), (y.Widget.prototype.onShow = function () {}), (y.Widget.prototype.onInit = function () {}), (y.Widget.prototype.onReady = function () {}), (y.widgetsTypes.simple = y.Widget), y.addWidgetType("buttons", { activeKeyUp: function (t) { 9 === t.which && t.preventDefault(), this.hotKeys[t.which] && this.hotKeys[t.which](this); }, activeKeyDown: function (t) { var e, n; !this.focusedButton || (9 === t.which && (t.preventDefault(), (e = this.focusedButton.index()), t.shiftKey ? (n = e - 1) < 0 && (n = this.buttons.length - 1) : (n = e + 1) >= this.buttons.length && (n = 0), (this.focusedButton = this.buttons[n].focus()))); }, addButton: function (t) { var e = this, n = e.getSettings(), i = jQuery.extend(n.button, t), o = t.classes ? t.classes + " " : ""; o += n.classes.globalPrefix + "-button"; i = e.addElement(t.name, p("<" + i.tag + ">").html(t.text), o); e.buttons.push(i); o = function () { n.hide.onButtonClick && e.hide(), p.isFunction(t.callback) && t.callback.call(this, e); }; return ( i.on("click", o), t.hotKey && (this.hotKeys[t.hotKey] = o), this.getElements("buttonsWrapper").append(i), t.focus && (this.focusedButton = i), e ); }, bindHotKeys: function () { this.getElements("window").on({ keyup: this.activeKeyUp, keydown: this.activeKeyDown, }); }, buildWidget: function () { y.Widget.prototype.buildWidget.apply(this, arguments); var t = this.addElement("buttonsWrapper"); this.getElements("widget").append(t); }, getClosureMethods: function () { return ["activeKeyUp", "activeKeyDown"]; }, getDefaultSettings: function () { return { hide: { onButtonClick: !0 }, button: { tag: "button" } }; }, onHide: function () { this.unbindHotKeys(); }, onInit: function () { (this.buttons = []), (this.hotKeys = {}), (this.focusedButton = null); }, onShow: function () { this.bindHotKeys(), this.focusedButton || (this.focusedButton = this.buttons[0]), this.focusedButton && this.focusedButton.focus(); }, unbindHotKeys: function () { this.getElements("window").off({ keyup: this.activeKeyUp, keydown: this.activeKeyDown, }); }, }), y.addWidgetType( "lightbox", y.getWidgetType("buttons").extend("lightbox", { getDefaultSettings: function () { var t = y .getWidgetType("buttons") .prototype.getDefaultSettings.apply(this, arguments); return p.extend(!0, t, { contentWidth: "auto", contentHeight: "auto", position: { element: "widgetContent", of: "widget", autoRefresh: !0, }, }); }, buildWidget: function () { y.getWidgetType("buttons").prototype.buildWidget.apply( this, arguments ); var t = this.addElement("widgetContent"), e = this.getElements(); t.append(e.header, e.message, e.buttonsWrapper), e.widget.html(t), e.closeButton && t.prepend(e.closeButton); }, onReady: function () { var t = this.getElements(), e = this.getSettings(); "auto" !== e.contentWidth && t.message.width(e.contentWidth), "auto" !== e.contentHeight && t.message.height(e.contentHeight); }, }) ), y.addWidgetType( "confirm", y.getWidgetType("lightbox").extend("confirm", { onReady: function () { y.getWidgetType("lightbox").prototype.onReady.apply(this, arguments); var t = this.getSettings("strings"), e = "cancel" === this.getSettings("defaultOption"); this.addButton({ name: "cancel", text: t.cancel, callback: function (t) { t.trigger("cancel"); }, focus: e, }), this.addButton({ name: "ok", text: t.confirm, callback: function (t) { t.trigger("confirm"); }, focus: !e, }); }, getDefaultSettings: function () { var t = y .getWidgetType("lightbox") .prototype.getDefaultSettings.apply(this, arguments); return ( (t.strings = { confirm: "OK", cancel: "Cancel" }), (t.defaultOption = "cancel"), t ); }, }) ), y.addWidgetType( "alert", y.getWidgetType("lightbox").extend("alert", { onReady: function () { y.getWidgetType("lightbox").prototype.onReady.apply(this, arguments); var t = this.getSettings("strings"); this.addButton({ name: "ok", text: t.confirm, callback: function (t) { t.trigger("confirm"); }, }); }, getDefaultSettings: function () { var t = y .getWidgetType("lightbox") .prototype.getDefaultSettings.apply(this, arguments); return (t.strings = { confirm: "OK" }), t; }, }) ), (t.DialogsManager = y); })( "undefined" != typeof jQuery ? jQuery : "function" == typeof require && require("jquery"), "undefined" != typeof module && void 0 !== module.exports ? module.exports : window ); /*!elementor - v3.6.4 - 13-04-2022*/ ("use strict"); (self.webpackChunkelementor = self.webpackChunkelementor || []).push([ [819], { 9220: (e, t, n) => { var i = n(7914); Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); var s = i(n(8135)); class _default extends elementorModules.ViewModule { constructor(...e) { super(...e), (this.documents = {}), this.initDocumentClasses(), this.attachDocumentsClasses(); } getDefaultSettings() { return { selectors: { document: ".elementor" } }; } getDefaultElements() { const e = this.getSettings("selectors"); return { $documents: jQuery(e.document) }; } initDocumentClasses() { (this.documentClasses = { base: s.default }), elementorFrontend.hooks.doAction( "elementor/frontend/documents-manager/init-classes", this ); } addDocumentClass(e, t) { this.documentClasses[e] = t; } attachDocumentsClasses() { this.elements.$documents.each((e, t) => this.attachDocumentClass(jQuery(t)) ); } attachDocumentClass(e) { const t = e.data(), n = t.elementorId, i = t.elementorType, s = this.documentClasses[i] || this.documentClasses.base; this.documents[n] = new s({ $element: e, id: n }); } } t.default = _default; }, 9804: (e, t, n) => { var i = n(7914), s = i(n(6397)), o = i(n(8704)), r = i(n(4985)), a = i(n(7537)), l = i(n(355)), d = i(n(2804)), c = i(n(3384)); e.exports = function (e) { const t = {}; this.elementsHandlers = { "accordion.default": () => n.e(209).then(n.bind(n, 8470)), "alert.default": () => n.e(745).then(n.bind(n, 9269)), "counter.default": () => n.e(120).then(n.bind(n, 7884)), "progress.default": () => n.e(192).then(n.bind(n, 1351)), "tabs.default": () => n.e(520).then(n.bind(n, 9459)), "toggle.default": () => n.e(181).then(n.bind(n, 2)), "video.default": () => n.e(791).then(n.bind(n, 5363)), "image-carousel.default": () => n.e(268).then(n.bind(n, 5914)), "text-editor.default": () => n.e(357).then(n.bind(n, 1327)), "wp-widget-media_audio.default": () => n.e(52).then(n.bind(n, 7602)), }; const addElementsHandlers = () => { (this.elementsHandlers.section = [ d.default, ...o.default, l.default, c.default, ]), (this.elementsHandlers.container = [...o.default]), elementorFrontend.isEditMode() && this.elementsHandlers.container.push(...r.default), (this.elementsHandlers.column = a.default), e.each(this.elementsHandlers, (e, t) => { const n = e.split("."); e = n[0]; const i = n[1] || null; this.attachHandler(e, t, i); }); }, isClassHandler = (e) => { var t; return null === (t = e.prototype) || void 0 === t ? void 0 : t.getUniqueHandlerID; }, addHandlerWithHook = (e, t, n = "default") => { (n = n ? "." + n : ""), elementorFrontend.hooks.addAction( `frontend/element_ready/${e}${n}`, (e) => { if (isClassHandler(t)) this.addHandler(t, { $element: e }, !0); else { const n = t(); if (!n) return; n instanceof Promise ? n.then(({ default: t }) => { this.addHandler(t, { $element: e }, !0); }) : this.addHandler(n, { $element: e }, !0); } } ); }; (this.addHandler = function (e, n) { const i = n.$element.data("model-cid"); let s; if (i) { (s = e.prototype.getConstructorID()), t[i] || (t[i] = {}); const n = t[i][s]; n && n.onDestroy(); } const o = new e(n); i && (t[i][s] = o); }), (this.attachHandler = (e, t, n) => { Array.isArray(t) || (t = [t]), t.forEach((t) => addHandlerWithHook(e, t, n)); }), (this.getHandler = function (e) { const t = this.elementsHandlers[e]; return isClassHandler(t) ? t : new Promise((e) => { t().then(({ default: t }) => { e(t); }); }); }), (this.getHandlers = function (e) { return ( elementorCommon.helpers.softDeprecated( "getHandlers", "3.1.0", "elementorFrontend.elementsHandler.getHandler" ), e ? this.getHandler(e) : this.elementsHandlers ); }), (this.runReadyTrigger = function (t) { if (elementorFrontend.config.is_static) return; const n = jQuery(t), i = n.attr("data-element_type"); if ( i && (elementorFrontend.hooks.doAction( "frontend/element_ready/global", n, e ), elementorFrontend.hooks.doAction( `frontend/element_ready/${i}`, n, e ), "widget" === i) ) { const t = n.attr("data-widget_type"); elementorFrontend.hooks.doAction( `frontend/element_ready/${t}`, n, e ); } }), (this.init = () => { elementorFrontend.hooks.addAction( "frontend/element_ready/global", s.default ), addElementsHandlers(); }); }; }, 5654: (e, t, n) => { var i = n(7914); n(59); var s = i(n(9220)), o = i(n(5107)), r = i(n(3308)), a = i(n(1604)), l = i(n(1911)), d = i(n(4773)), c = i(n(2064)), u = i(n(8628)), h = i(n(8646)), m = i(n(6866)), g = i(n(4375)), p = i(n(6404)), f = i(n(6046)), v = n(6028); const b = n(9469), y = n(9804), _ = n(3346); class Frontend extends elementorModules.ViewModule { constructor(...e) { super(...e), (this.config = elementorFrontendConfig), (this.config.legacyMode = { get elementWrappers() { return ( elementorFrontend.isEditMode() && elementorCommon.helpers.hardDeprecated( "elementorFrontend.config.legacyMode.elementWrappers", "3.1.0", "elementorFrontend.config.experimentalFeatures.e_dom_optimization" ), !elementorFrontend.config.experimentalFeatures .e_dom_optimization ); }, }), this.populateActiveBreakpointsConfig(); } get Module() { return ( this.isEditMode() && parent.elementorCommon.helpers.hardDeprecated( "elementorFrontend.Module", "2.5.0", "elementorModules.frontend.handlers.Base" ), elementorModules.frontend.handlers.Base ); } getDefaultSettings() { return { selectors: { elementor: ".elementor", adminBar: "#wpadminbar" }, }; } getDefaultElements() { const e = { window, $window: jQuery(window), $document: jQuery(document), $head: jQuery(document.head), $body: jQuery(document.body), $deviceMode: jQuery("", { id: "elementor-device-mode", class: "elementor-screen-only", }), }; return e.$body.append(e.$deviceMode), e; } bindEvents() { this.elements.$window.on("resize", () => this.setDeviceModeData()); } getElements(e) { return this.getItems(this.elements, e); } getPageSettings(e) { const t = this.isEditMode() ? elementor.settings.page.model.attributes : this.config.settings.page; return this.getItems(t, e); } getGeneralSettings(e) { return ( this.isEditMode() && parent.elementorCommon.helpers.softDeprecated( "getGeneralSettings", "3.0.0", "getKitSettings and remove the `elementor_` prefix" ), this.getKitSettings(`elementor_${e}`) ); } getKitSettings(e) { return this.getItems(this.config.kit, e); } getCurrentDeviceMode() { return getComputedStyle( this.elements.$deviceMode[0], ":after" ).content.replace(/"/g, ""); } getDeviceSetting(e, t, n) { if ("widescreen" === e) return this.getWidescreenSetting(t, n); const i = elementorFrontend.breakpoints.getActiveBreakpointsList({ largeToSmall: !0, withDesktop: !0, }); let s = i.indexOf(e); for (; s > 0; ) { const e = t[n + "_" + i[s]]; if (e || 0 === e) return e; s--; } return t[n]; } getWidescreenSetting(e, t) { const n = t + "_widescreen"; let i; return (i = e[n] ? e[n] : e[t]), i; } getCurrentDeviceSetting(e, t) { return this.getDeviceSetting( elementorFrontend.getCurrentDeviceMode(), e, t ); } isEditMode() { return this.config.environmentMode.edit; } isWPPreviewMode() { return this.config.environmentMode.wpPreview; } initDialogsManager() { let e; this.getDialogsManager = () => ( e || (e = new DialogsManager.Instance()), e ); } initOnReadyComponents() { (this.utils = { youtube: new a.default(), vimeo: new l.default(), baseVideoLoader: new d.default(), anchors: new _(), get lightbox() { return h.default.getLightbox(); }, urlActions: new c.default(), swiper: u.default, environment: r.default, assetsLoader: new m.default(), escapeHTML: v.escapeHTML, }), (this.modules = { StretchElement: elementorModules.frontend.tools.StretchElement, Masonry: elementorModules.utils.Masonry, }), this.elementsHandler.init(), this.isEditMode() ? elementor.once("document:loaded", () => this.onDocumentLoaded()) : this.onDocumentLoaded(); } initOnReadyElements() { this.elements.$wpAdminBar = this.elements.$document.find( this.getSettings("selectors.adminBar") ); } addUserAgentClasses() { for (const [e, t] of Object.entries(r.default)) t && this.elements.$body.addClass("e--ua-" + e); } setDeviceModeData() { this.elements.$body.attr( "data-elementor-device-mode", this.getCurrentDeviceMode() ); } addListenerOnce(e, t, n, i) { if ((i || (i = this.elements.$window), this.isEditMode())) if ((this.removeListeners(e, t, i), i instanceof jQuery)) { const s = t + "." + e; i.on(s, n); } else i.on(t, n, e); else i.on(t, n); } removeListeners(e, t, n, i) { if ((i || (i = this.elements.$window), i instanceof jQuery)) { const s = t + "." + e; i.off(s, n); } else i.off(t, n, e); } debounce(e, t) { let n; return function () { const i = this, s = arguments, later = () => { (n = null), e.apply(i, s); }, o = !n; clearTimeout(n), (n = setTimeout(later, t)), o && e.apply(i, s); }; } waypoint(e, t, n) { n = jQuery.extend({ offset: "100%", triggerOnce: !0 }, n); return e.elementorWaypoint(function () { const e = this.element || this, i = t.apply(e, arguments); return n.triggerOnce && this.destroy && this.destroy(), i; }, n); } muteMigrationTraces() { (jQuery.migrateMute = !0), (jQuery.migrateTrace = !1); } initModules() { const e = { shapes: f.default }; elementorFrontend.trigger("elementor/modules/init:before"), elementorFrontend.trigger("elementor/modules/init/before"), Object.entries(e).forEach(([e, t]) => { this.modulesHandlers[e] = new t(); }); } populateActiveBreakpointsConfig() { (this.config.responsive.activeBreakpoints = {}), Object.entries(this.config.responsive.breakpoints).forEach( ([e, t]) => { t.is_enabled && (this.config.responsive.activeBreakpoints[e] = t); } ); } init() { (this.hooks = new b()), (this.breakpoints = new g.default(this.config.responsive)), (this.storage = new o.default()), (this.elementsHandler = new y(jQuery)), (this.modulesHandlers = {}), this.addUserAgentClasses(), this.setDeviceModeData(), this.initDialogsManager(), this.isEditMode() && this.muteMigrationTraces(), p.default.dispatch( this.elements.$window, "elementor/frontend/init" ), this.initModules(), this.initOnReadyElements(), this.initOnReadyComponents(); } onDocumentLoaded() { (this.documentsManager = new s.default()), this.trigger("components:init"), new h.default(); } } (window.elementorFrontend = new Frontend()), elementorFrontend.isEditMode() || jQuery(() => elementorFrontend.init()); }, 4058: (e, t) => { Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); class BackgroundSlideshow extends elementorModules.frontend.handlers .SwiperBase { getDefaultSettings() { return { classes: { swiperContainer: "elementor-background-slideshow swiper-container", swiperWrapper: "swiper-wrapper", swiperSlide: "elementor-background-slideshow__slide swiper-slide", swiperPreloader: "swiper-lazy-preloader", slideBackground: "elementor-background-slideshow__slide__image", kenBurns: "elementor-ken-burns", kenBurnsActive: "elementor-ken-burns--active", kenBurnsIn: "elementor-ken-burns--in", kenBurnsOut: "elementor-ken-burns--out", }, }; } getSwiperOptions() { const e = this.getElementSettings(), t = { grabCursor: !1, slidesPerView: 1, slidesPerGroup: 1, loop: "yes" === e.background_slideshow_loop, speed: e.background_slideshow_transition_duration, autoplay: { delay: e.background_slideshow_slide_duration, stopOnLastSlide: !e.background_slideshow_loop, }, handleElementorBreakpoints: !0, on: { slideChange: () => { e.background_slideshow_ken_burns && this.handleKenBurns(); }, }, }; switch ( ("yes" === e.background_slideshow_loop && (t.loopedSlides = this.getSlidesCount()), e.background_slideshow_slide_transition) ) { case "fade": (t.effect = "fade"), (t.fadeEffect = { crossFade: !0 }); break; case "slide_down": t.autoplay.reverseDirection = !0; case "slide_up": t.direction = "vertical"; } return ( "yes" === e.background_slideshow_lazyload && (t.lazy = { loadPrevNext: !0, loadPrevNextAmount: 1 }), t ); } buildSwiperElements() { const e = this.getSettings("classes"), t = this.getElementSettings(), n = "slide_left" === t.background_slideshow_slide_transition ? "ltr" : "rtl", i = jQuery("
              ", { class: e.swiperContainer, dir: n }), s = jQuery("
              ", { class: e.swiperWrapper }), o = t.background_slideshow_ken_burns, r = "yes" === t.background_slideshow_lazyload; let a = e.slideBackground; if (o) { a += " " + e.kenBurns; const n = "in" === t.background_slideshow_ken_burns_zoom_direction ? "kenBurnsIn" : "kenBurnsOut"; a += " " + e[n]; } r && (a += " swiper-lazy"), (this.elements.$slides = jQuery()), t.background_slideshow_gallery.forEach((t) => { const n = jQuery("
              ", { class: e.swiperSlide }); let i; if (r) { const n = jQuery("
              ", { class: e.swiperPreloader }); (i = jQuery("
              ", { class: a, "data-background": t.url })), i.append(n); } else i = jQuery("
              ", { class: a, style: 'background-image: url("' + t.url + '");', }); n.append(i), s.append(n), (this.elements.$slides = this.elements.$slides.add(n)); }), i.append(s), this.$element.prepend(i), (this.elements.$backgroundSlideShowContainer = i); } async initSlider() { if (1 >= this.getSlidesCount()) return; const e = this.getElementSettings(), t = elementorFrontend.utils.swiper; (this.swiper = await new t( this.elements.$backgroundSlideShowContainer, this.getSwiperOptions() )), this.elements.$backgroundSlideShowContainer.data( "swiper", this.swiper ), e.background_slideshow_ken_burns && this.handleKenBurns(); } activate() { this.buildSwiperElements(), this.initSlider(); } deactivate() { this.swiper && (this.swiper.destroy(), this.elements.$backgroundSlideShowContainer.remove()); } run() { "slideshow" === this.getElementSettings("background_background") ? this.activate() : this.deactivate(); } onInit() { super.onInit(), this.getElementSettings("background_slideshow_gallery") && this.run(); } onDestroy() { super.onDestroy(), this.deactivate(); } onElementChange(e) { "background_background" === e && this.run(); } } t.default = BackgroundSlideshow; }, 9501: (e, t) => { Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); class BackgroundVideo extends elementorModules.frontend.handlers.Base { getDefaultSettings() { return { selectors: { backgroundVideoContainer: ".elementor-background-video-container", backgroundVideoEmbed: ".elementor-background-video-embed", backgroundVideoHosted: ".elementor-background-video-hosted", }, }; } getDefaultElements() { const e = this.getSettings("selectors"), t = { $backgroundVideoContainer: this.$element.find( e.backgroundVideoContainer ), }; return ( (t.$backgroundVideoEmbed = t.$backgroundVideoContainer.children( e.backgroundVideoEmbed )), (t.$backgroundVideoHosted = t.$backgroundVideoContainer.children( e.backgroundVideoHosted )), t ); } calcVideosSize(e) { let t = "16:9"; "vimeo" === this.videoType && (t = e[0].width + ":" + e[0].height); const n = this.elements.$backgroundVideoContainer.outerWidth(), i = this.elements.$backgroundVideoContainer.outerHeight(), s = t.split(":"), o = s[0] / s[1], r = n / i > o; return { width: r ? n : i * o, height: r ? n / o : i }; } changeVideoSize() { if ("hosted" !== this.videoType && !this.player) return; let e; if ( ("youtube" === this.videoType ? (e = jQuery(this.player.getIframe())) : "vimeo" === this.videoType ? (e = jQuery(this.player.element)) : "hosted" === this.videoType && (e = this.elements.$backgroundVideoHosted), !e) ) return; const t = this.calcVideosSize(e); e.width(t.width).height(t.height); } startVideoLoop(e) { if (!this.player.getIframe().contentWindow) return; const t = this.getElementSettings(), n = t.background_video_start || 0, i = t.background_video_end; if (!t.background_play_once || e) { if ((this.player.seekTo(n), i)) { setTimeout(() => { this.startVideoLoop(!1); }, 1e3 * (i - n + 1)); } } else this.player.stopVideo(); } prepareVimeoVideo(e, t) { const n = this.getElementSettings(), i = { url: t, width: this.elements.$backgroundVideoContainer.outerWidth().width, autoplay: !0, loop: !n.background_play_once, transparent: !1, background: !0, muted: !0, }; (this.player = new e.Player( this.elements.$backgroundVideoContainer, i )), this.handleVimeoStartEndTimes(n), this.player.ready().then(() => { jQuery(this.player.element).addClass( "elementor-background-video-embed" ), this.changeVideoSize(); }); } handleVimeoStartEndTimes(e) { e.background_video_start && this.player.on("play", (t) => { 0 === t.seconds && this.player.setCurrentTime(e.background_video_start); }), this.player.on("timeupdate", (t) => { e.background_video_end && e.background_video_end < t.seconds && (e.background_play_once ? this.player.pause() : this.player.setCurrentTime(e.background_video_start)), this.player.getDuration().then((n) => { e.background_video_start && !e.background_video_end && t.seconds > n - 0.5 && this.player.setCurrentTime(e.background_video_start); }); }); } prepareYTVideo(e, t) { const n = this.elements.$backgroundVideoContainer, i = this.getElementSettings(); let s = e.PlayerState.PLAYING; window.chrome && (s = e.PlayerState.UNSTARTED); const o = { videoId: t, events: { onReady: () => { this.player.mute(), this.changeVideoSize(), this.startVideoLoop(!0), this.player.playVideo(); }, onStateChange: (t) => { switch (t.data) { case s: n.removeClass("elementor-invisible elementor-loading"); break; case e.PlayerState.ENDED: this.player.seekTo(i.background_video_start || 0), i.background_play_once && this.player.destroy(); } }, }, playerVars: { controls: 0, rel: 0, playsinline: 1 }, }; i.background_privacy_mode && ((o.host = "https://www.youtube-nocookie.com"), (o.origin = window.location.hostname)), n.addClass("elementor-loading elementor-invisible"), (this.player = new e.Player( this.elements.$backgroundVideoEmbed[0], o )); } activate() { let e, t = this.getElementSettings("background_video_link"); const n = this.getElementSettings("background_play_once"); if ( (-1 !== t.indexOf("vimeo.com") ? ((this.videoType = "vimeo"), (this.apiProvider = elementorFrontend.utils.vimeo)) : t.match( /^(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com)/ ) && ((this.videoType = "youtube"), (this.apiProvider = elementorFrontend.utils.youtube)), this.apiProvider) ) (e = this.apiProvider.getVideoIDFromURL(t)), this.apiProvider.onApiReady((n) => { "youtube" === this.videoType && this.prepareYTVideo(n, e), "vimeo" === this.videoType && this.prepareVimeoVideo(n, t); }); else { this.videoType = "hosted"; const e = this.getElementSettings("background_video_start"), i = this.getElementSettings("background_video_end"); (e || i) && (t += "#t=" + (e || 0) + (i ? "," + i : "")), this.elements.$backgroundVideoHosted .attr("src", t) .one("canplay", this.changeVideoSize.bind(this)), n && this.elements.$backgroundVideoHosted.on("ended", () => { this.elements.$backgroundVideoHosted.hide(); }); } elementorFrontend.elements.$window.on("resize", this.changeVideoSize); } deactivate() { ("youtube" === this.videoType && this.player.getIframe()) || "vimeo" === this.videoType ? this.player.destroy() : this.elements.$backgroundVideoHosted .removeAttr("src") .off("ended"), elementorFrontend.elements.$window.off( "resize", this.changeVideoSize ); } run() { const e = this.getElementSettings(); (e.background_play_on_mobile || "mobile" !== elementorFrontend.getCurrentDeviceMode()) && ("video" === e.background_background && e.background_video_link ? this.activate() : this.deactivate()); } onInit(...e) { super.onInit(...e), (this.changeVideoSize = this.changeVideoSize.bind(this)), this.run(); } onElementChange(e) { "background_background" === e && this.run(); } } t.default = BackgroundVideo; }, 8704: (e, t, n) => { var i = n(7914); Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); var s = i(n(4058)), o = i(n(9501)), r = [s.default, o.default]; t.default = r; }, 7537: (e, t, n) => { var i = n(7914); Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); var s = [i(n(4058)).default]; t.default = s; }, 4985: (e, t, n) => { Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); var i = [ () => n.e(413).then(n.bind(n, 2929)), () => n.e(413).then(n.bind(n, 343)), ]; t.default = i; }, 6397: (e, t) => { Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); class GlobalHandler extends elementorModules.frontend.handlers.Base { getWidgetType() { return "global"; } animate() { const e = this.$element, t = this.getAnimation(); if ("none" === t) return void e.removeClass("elementor-invisible"); const n = this.getElementSettings(), i = n._animation_delay || n.animation_delay || 0; e.removeClass(t), this.currentAnimation && e.removeClass(this.currentAnimation), (this.currentAnimation = t), setTimeout(() => { e.removeClass("elementor-invisible").addClass("animated " + t); }, i); } getAnimation() { return ( this.getCurrentDeviceSetting("animation") || this.getCurrentDeviceSetting("_animation") ); } onInit(...e) { if ((super.onInit(...e), this.getAnimation())) { const e = elementorModules.utils.Scroll.scrollObserver({ callback: (t) => { t.isInViewport && (this.animate(), e.unobserve(this.$element[0])); }, }); e.observe(this.$element[0]); } } onElementChange(e) { /^_?animation/.test(e) && this.animate(); } } t.default = (e) => { elementorFrontend.elementsHandler.addHandler(GlobalHandler, { $element: e, }); }; }, 355: (e, t) => { Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); class HandlesPosition extends elementorModules.frontend.handlers.Base { isActive() { return elementorFrontend.isEditMode(); } isFirstSection() { return ( this.$element[0] === document.querySelector( ".elementor-edit-mode .elementor-top-section" ) ); } isOverflowHidden() { return "hidden" === this.$element.css("overflow"); } getOffset() { if ("body" === elementor.config.document.container) return this.$element.offset().top; const e = jQuery(elementor.config.document.container); return this.$element.offset().top - e.offset().top; } setHandlesPosition() { const e = elementor.documents.getCurrent(); if (!e || !e.container.isEditable()) return; const t = "elementor-section--handles-inside", n = this.$element.find( "> .elementor-element-overlay > .elementor-editor-section-settings" ); if (elementor.settings.page.model.attributes.scroll_snap) return void this.$element.addClass(t); const i = this.isOverflowHidden(); if (!i && !this.isFirstSection()) return; const s = i ? 0 : this.getOffset(); s < 25 ? (this.$element.addClass(t), s < -5 ? n.css("top", -s) : n.css("top", "")) : this.$element.removeClass(t); } onInit() { this.isActive() && (this.setHandlesPosition(), this.$element.on("mouseenter", this.setHandlesPosition.bind(this))); } } t.default = HandlesPosition; }, 3384: (e, t) => { Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); class Shapes extends elementorModules.frontend.handlers.Base { getDefaultSettings() { return { selectors: { container: "> .elementor-shape-%s" }, svgURL: elementorFrontend.config.urls.assets + "shapes/", }; } getDefaultElements() { const e = {}, t = this.getSettings("selectors"); return ( (e.$topContainer = this.$element.find( t.container.replace("%s", "top") )), (e.$bottomContainer = this.$element.find( t.container.replace("%s", "bottom") )), e ); } isActive() { return elementorFrontend.isEditMode(); } getSvgURL(e, t) { let n = this.getSettings("svgURL") + t + ".svg"; return ( elementor.config.additional_shapes && e in elementor.config.additional_shapes && ((n = elementor.config.additional_shapes[e]), -1 < t.indexOf("-negative") && (n = n.replace(".svg", "-negative.svg"))), n ); } buildSVG(e) { const t = "shape_divider_" + e, n = this.getElementSettings(t), i = this.elements["$" + e + "Container"]; if ((i.attr("data-shape", n), !n)) return void i.empty(); let s = n; this.getElementSettings(t + "_negative") && (s += "-negative"); const o = this.getSvgURL(n, s); jQuery.get(o, (e) => { i.empty().append(e.childNodes[0]); }), this.setNegative(e); } setNegative(e) { this.elements["$" + e + "Container"].attr( "data-negative", !!this.getElementSettings("shape_divider_" + e + "_negative") ); } onInit(...e) { this.isActive(this.getSettings()) && (super.onInit(...e), ["top", "bottom"].forEach((e) => { this.getElementSettings("shape_divider_" + e) && this.buildSVG(e); })); } onElementChange(e) { const t = e.match(/^shape_divider_(top|bottom)$/); if (t) return void this.buildSVG(t[1]); const n = e.match(/^shape_divider_(top|bottom)_negative$/); n && (this.buildSVG(n[1]), this.setNegative(n[1])); } } t.default = Shapes; }, 2804: (e, t) => { Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); class StretchedSection extends elementorModules.frontend.handlers.Base { bindEvents() { const e = this.getUniqueHandlerID(); elementorFrontend.addListenerOnce(e, "resize", this.stretch), elementorFrontend.addListenerOnce( e, "sticky:stick", this.stretch, this.$element ), elementorFrontend.addListenerOnce( e, "sticky:unstick", this.stretch, this.$element ), elementorFrontend.isEditMode() && ((this.onKitChangeStretchContainerChange = this.onKitChangeStretchContainerChange.bind(this)), elementor.channels.editor.on( "kit:change:stretchContainer", this.onKitChangeStretchContainerChange )); } unbindEvents() { elementorFrontend.removeListeners( this.getUniqueHandlerID(), "resize", this.stretch ), elementorFrontend.isEditMode() && elementor.channels.editor.off( "kit:change:stretchContainer", this.onKitChangeStretchContainerChange ); } isActive(e) { return ( elementorFrontend.isEditMode() || e.$element.hasClass("elementor-section-stretched") ); } initStretch() { (this.stretch = this.stretch.bind(this)), (this.stretchElement = new elementorModules.frontend.tools.StretchElement({ element: this.$element, selectors: { container: this.getStretchContainer() }, })); } getStretchContainer() { return ( elementorFrontend.getKitSettings("stretched_section_container") || window ); } stretch() { this.getElementSettings("stretch_section") && this.stretchElement.stretch(); } onInit(...e) { this.isActive(this.getSettings()) && (this.initStretch(), super.onInit(...e), this.stretch()); } onElementChange(e) { "stretch_section" === e && (this.getElementSettings("stretch_section") ? this.stretch() : this.stretchElement.reset()); } onKitChangeStretchContainerChange() { this.stretchElement.setSettings( "selectors.container", this.getStretchContainer() ), this.stretch(); } } t.default = StretchedSection; }, 3346: (e, t, n) => { var i = n(6028); e.exports = elementorModules.ViewModule.extend({ getDefaultSettings: function () { return { scrollDuration: 500, selectors: { links: 'a[href*="#"]', targets: ".elementor-element, .elementor-menu-anchor", scrollable: (0, i.isScrollSnapActive)() ? "body" : "html, body", }, }; }, getDefaultElements: function () { return { $scrollable: jQuery(this.getSettings("selectors").scrollable), }; }, bindEvents: function () { elementorFrontend.elements.$document.on( "click", this.getSettings("selectors.links"), this.handleAnchorLinks ); }, handleAnchorLinks: function (e) { var t, n = e.currentTarget, s = location.pathname === n.pathname; if (location.hostname === n.hostname && s && !(n.hash.length < 2)) { try { t = jQuery(n.hash).filter(this.getSettings("selectors.targets")); } catch (e) { return; } if (t.length) { var o = t.offset().top, r = elementorFrontend.elements.$wpAdminBar, a = jQuery( ".elementor-section.elementor-sticky--active:visible" ); r.length > 0 && (o -= r.height()), a.length > 0 && (o -= Math.max.apply( null, a .map(function () { return jQuery(this).outerHeight(); }) .get() )), e.preventDefault(), (o = elementorFrontend.hooks.applyFilters( "frontend/handlers/menu_anchor/scroll_top_distance", o )), (0, i.isScrollSnapActive)() && elementorFrontend.elements.$body.css( "scroll-snap-type", "none" ), this.elements.$scrollable.animate( { scrollTop: o }, this.getSettings("scrollDuration"), "linear", () => { (0, i.isScrollSnapActive)() && elementorFrontend.elements.$body.css( "scroll-snap-type", "" ); } ); } } }, onInit: function () { elementorModules.ViewModule.prototype.onInit.apply(this, arguments); }, }); }, 6866: (e, t) => { Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); class AssetsLoader { getScriptElement(e) { const t = document.createElement("script"); return (t.src = e), t; } getStyleElement(e) { const t = document.createElement("link"); return (t.rel = "stylesheet"), (t.href = e), t; } load(e, t) { const n = AssetsLoader.assets[e][t]; return ( n.loader || (n.loader = new Promise((t) => { const i = "style" === e ? this.getStyleElement(n.src) : this.getScriptElement(n.src); i.onload = () => t(!0); const s = "head" === n.parent ? n.parent : "body"; document[s].appendChild(i); })), n.loader ); } } t.default = AssetsLoader; const n = elementorFrontendConfig.environmentMode.isScriptDebug ? "" : ".min"; AssetsLoader.assets = { script: { dialog: { src: `${elementorFrontendConfig.urls.assets}lib/dialog/dialog${n}.js?ver=4.9.0`, }, "share-link": { src: `${elementorFrontendConfig.urls.assets}lib/share-link/share-link${n}.js?ver=${elementorFrontendConfig.version}`, }, swiper: { src: `${elementorFrontendConfig.urls.assets}lib/swiper/swiper${n}.js?ver=5.3.6`, }, }, style: {}, }; }, 8646: (e, t, n) => { Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); class LightboxManager extends elementorModules.ViewModule { static getLightbox() { const e = new Promise((e) => { n.e(723) .then(n.t.bind(n, 3896, 23)) .then(({ default: t }) => e(new t())); }), t = elementorFrontend.utils.assetsLoader.load("script", "dialog"), i = elementorFrontend.utils.assetsLoader.load( "script", "share-link" ); return Promise.all([e, t, i]).then(() => e); } getDefaultSettings() { return { selectors: { links: "a, [data-elementor-lightbox]" } }; } getDefaultElements() { return { $links: jQuery(this.getSettings("selectors.links")) }; } isLightboxLink(e) { if ( "a" === e.tagName.toLowerCase() && (e.hasAttribute("download") || !/^[^?]+\.(png|jpe?g|gif|svg|webp)(\?.*)?$/i.test(e.href)) && !e.dataset.elementorLightboxVideo ) return !1; const t = elementorFrontend.getKitSettings("global_image_lightbox"), n = e.dataset.elementorOpenLightbox; return "yes" === n || (t && "no" !== n); } async onLinkClick(e) { const t = e.currentTarget, n = jQuery(e.target), i = elementorFrontend.isEditMode(), s = i && elementor.$previewContents .find("body") .hasClass("elementor-editor__ui-state__color-picker"), o = !!n.closest(".elementor-edit-area").length; if (!this.isLightboxLink(t)) return void (i && o && e.preventDefault()); if ( (e.preventDefault(), i && !elementor.getPreferences("lightbox_in_editor")) ) return; if (s) return; (this.isOptimizedAssetsLoading() ? await LightboxManager.getLightbox() : elementorFrontend.utils.lightbox ).createLightbox(t); } isOptimizedAssetsLoading() { return elementorFrontend.config.experimentalFeatures .e_optimized_assets_loading; } bindEvents() { elementorFrontend.elements.$document.on( "click", this.getSettings("selectors.links"), (e) => this.onLinkClick(e) ); } onInit(...e) { super.onInit(...e), this.isOptimizedAssetsLoading() && !elementorFrontend.isEditMode() && this.elements.$links.each((e, t) => { if (this.isLightboxLink(t)) return LightboxManager.getLightbox(), !1; }); } } t.default = LightboxManager; }, 8628: (e, t) => { Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); t.default = class Swiper { constructor(e, t) { return ( (this.config = t), this.config.breakpoints && (this.config = this.adjustConfig(t)), jQuery(e) .closest(".elementor-widget-wrap") .addClass("e-swiper-container"), jQuery(e).closest(".elementor-widget").addClass("e-widget-swiper"), new Promise((t) => { if ( !elementorFrontend.config.experimentalFeatures .e_optimized_assets_loading ) return t(this.createSwiperInstance(e, this.config)); elementorFrontend.utils.assetsLoader .load("script", "swiper") .then(() => t(this.createSwiperInstance(e, this.config))); }) ); } createSwiperInstance(e, t) { const n = window.Swiper; return (n.prototype.adjustConfig = this.adjustConfig), new n(e, t); } adjustConfig(e) { if (!e.handleElementorBreakpoints) return e; const t = elementorFrontend.config.responsive.activeBreakpoints, n = elementorFrontend.breakpoints.getBreakpointValues(); return ( Object.keys(e.breakpoints).forEach((i) => { const s = parseInt(i); let o; if (s === t.mobile.value || s + 1 === t.mobile.value) o = 0; else if ( !t.widescreen || (s !== t.widescreen.value && s + 1 !== t.widescreen.value) ) { const e = n.findIndex((e) => s === e || s + 1 === e); o = n[e - 1]; } else o = s; (e.breakpoints[o] = e.breakpoints[i]), (e.breakpoints[i] = { slidesPerView: e.slidesPerView, slidesPerGroup: e.slidesPerGroup ? e.slidesPerGroup : 1, }); }), e ); } }; }, 2064: (e, t) => { Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); class _default extends elementorModules.ViewModule { getDefaultSettings() { return { selectors: { links: 'a[href^="%23elementor-action"], a[href^="#elementor-action"]', }, }; } bindEvents() { elementorFrontend.elements.$document.on( "click", this.getSettings("selectors.links"), this.runLinkAction.bind(this) ); } initActions() { this.actions = { lightbox: async (e) => { const t = await elementorFrontend.utils.lightbox; e.slideshow ? t.openSlideshow(e.slideshow, e.url) : (e.id && (e.type = "image"), t.showModal(e)); }, }; } addAction(e, t) { this.actions[e] = t; } runAction(e, ...t) { const n = (e = decodeURIComponent(e)).match(/action=(.+?)&/), i = e.match(/settings=(.+)/); if (!n) return; const s = this.actions[n[1]]; if (!s) return; let o = {}; i && (o = JSON.parse(atob(i[1]))), s(o, ...t); } runLinkAction(e) { e.preventDefault(), this.runAction(jQuery(e.currentTarget).attr("href"), e); } runHashAction() { if (!location.hash) return; const e = document.querySelector( `[e-action-hash="${location.hash}"], a[href*="${location.hash}"]` ); e && this.runAction(e.getAttribute("e-action-hash")); } createActionHash(e, t) { return encodeURIComponent( `#elementor-action:action=${e}&settings=${btoa(JSON.stringify(t))}` ); } onInit() { super.onInit(), this.initActions(), elementorFrontend.on( "components:init", this.runHashAction.bind(this) ); } } t.default = _default; }, 6028: (e, t) => { Object.defineProperty(t, "__esModule", { value: !0 }), (t.isScrollSnapActive = t.escapeHTML = void 0); t.escapeHTML = (e) => { const t = { "&": "&", "<": "<", ">": ">", "'": "'", '"': """, }; return e.replace(/[&<>'"]/g, (e) => t[e] || e); }; t.isScrollSnapActive = () => { var e, t; return ( "yes" === (elementorFrontend.isEditMode() ? null === (e = elementor.settings.page.model.attributes) || void 0 === e ? void 0 : e.scroll_snap : null === (t = elementorFrontend.config.settings.page) || void 0 === t ? void 0 : t.scroll_snap) ); }; }, 4773: (e, t) => { Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); class BaseLoader extends elementorModules.ViewModule { getDefaultSettings() { return { isInserted: !1, selectors: { firstScript: "script:first" } }; } getDefaultElements() { return { $firstScript: jQuery(this.getSettings("selectors.firstScript")), }; } insertAPI() { this.elements.$firstScript.before( jQuery("