PageSourceSearch

https://cathedral.org.sg/wp-content/themes/sac/js/plugins.js?ver=1790272344

js cathedral.org.sg collected 2026-09-24 17:52:59 UTC 710,148 bytes, 146 lines download raw bytes

1/*! jQuery Migrate v3.4.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */
2"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) || [], a = 1; a <= 3; a++) { if (+n[a] > +o[a]) return 1; if (+n[a] < +o[a]) return -1 } return 0 }(s.fn.jquery, e) } s.migrateVersion = "3.4.0"; var t = Object.create(null), o = (s.migrateDisablePatches = function () { for (var e = 0; e < arguments.length; e++)t[arguments[e]] = !0 }, s.migrateEnablePatches = function () { for (var e = 0; e < arguments.length; e++)delete t[arguments[e]] }, s.migrateIsPatchEnabled = function (e) { return !t[e] }, 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)), {}); function i(e, t) { var r = n.console; !s.migrateIsPatchEnabled(e) || s.migrateDeduplicateWarnings && o[t] || (o[t] = !0, s.migrateWarnings.push(t + " [" + e + "]"), r && r.warn && !s.migrateMute && (r.warn("JQMIGRATE: " + t), s.migrateTrace && r.trace && r.trace())) } function r(e, t, r, n, o) { Object.defineProperty(e, t, { configurable: !0, enumerable: !0, get: function () { return i(n, o), r }, set: function (e) { i(n, o), r = e } }) } function a(e, t, r, n, o) { var a = e[t]; e[t] = function () { return o && i(n, o), (s.migrateIsPatchEnabled(n) ? r : a || s.noop).apply(this, arguments) } } function u(e, t, r, n, o) { if (!o) throw new Error("No warning message provided"); a(e, t, r, n, o) } function d(e, t, r, n) { a(e, t, r, n) } s.migrateDeduplicateWarnings = !0, s.migrateWarnings = [], void 0 === s.migrateTrace && (s.migrateTrace = !0), s.migrateReset = function () { o = {}, s.migrateWarnings.length = 0 }, "BackCompat" === n.document.compatMode && i("quirks", "jQuery is not compatible with Quirks Mode"); var c, l, p, f = {}, m = s.fn.init, y = s.find, h = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/, g = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g, v = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; for (c in d(s.fn, "init", function (e) { var t = Array.prototype.slice.call(arguments); return s.migrateIsPatchEnabled("selector-empty-id") && "string" == typeof e && "#" === e && (i("selector-empty-id", "jQuery( '#' ) is not a valid selector"), t[0] = []), m.apply(this, t) }, "selector-empty-id"), s.fn.init.prototype = s.fn, d(s, "find", function (t) { var r = Array.prototype.slice.call(arguments); if ("string" == typeof t && h.test(t)) try { n.document.querySelector(t) } catch (e) { t = t.replace(g, function (e, t, r, n) { return "[" + t + r + '"' + n + '"]' }); try { n.document.querySelector(t), i("selector-hash", "Attribute selector with '#' must be quoted: " + r[0]), r[0] = t } catch (e) { i("selector-hash", "Attribute selector with '#' was not fixed: " + r[0]) } } return y.apply(this, r) }, "selector-hash"), y) Object.prototype.hasOwnProperty.call(y, c) && (s.find[c] = y[c]); u(s.fn, "size", function () { return this.length }, "size", "jQuery.fn.size() is deprecated and removed; use the .length property"), u(s, "parseJSON", function () { return JSON.parse.apply(null, arguments) }, "parseJSON", "jQuery.parseJSON is deprecated; use JSON.parse"), u(s, "holdReady", s.holdReady, "holdReady", "jQuery.holdReady is deprecated"), u(s, "unique", s.uniqueSort, "unique", "jQuery.unique is deprecated; use jQuery.uniqueSort"), r(s.expr, "filters", s.expr.pseudos, "expr-pre-pseudos", "jQuery.expr.filters is deprecated; use jQuery.expr.pseudos"), r(s.expr, ":", s.expr.pseudos, "expr-pre-pseudos", "jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos"), e("3.1.1") && u(s, "trim", function (e) { return null == e ? "" : (e + "").replace(v, "") }, "trim", "jQuery.trim is deprecated; use String.prototype.trim"), e("3.2.0") && (u(s, "nodeName", function (e, t) { return e.no
2deName && e.nodeName.toLowerCase() === t.toLowerCase() }, "nodeName", "jQuery.nodeName is deprecated"), u(s, "isArray", Array.isArray, "isArray", "jQuery.isArray is deprecated; use Array.isArray")), e("3.3.0") && (u(s, "isNumeric", function (e) { var t = typeof e; return ("number" == t || "string" == t) && !isNaN(e - parseFloat(e)) }, "isNumeric", "jQuery.isNumeric() is deprecated"), s.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (e, t) { f["[object " + t + "]"] = t.toLowerCase() }), u(s, "type", function (e) { return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? f[Object.prototype.toString.call(e)] || "object" : typeof e }, "type", "jQuery.type is deprecated"), u(s, "isFunction", function (e) { return "function" == typeof e }, "isFunction", "jQuery.isFunction() is deprecated"), u(s, "isWindow", function (e) { return null != e && e === e.window }, "isWindow", "jQuery.isWindow() is deprecated")), s.ajax && (l = s.ajax, p = /(=)\?(?=&|$)|\?\?/, d(s, "ajax", function () { var e = l.apply(this, arguments); return e.promise && (u(e, "success", e.done, "jqXHR-methods", "jQXHR.success is deprecated and removed"), u(e, "error", e.fail, "jqXHR-methods", "jQXHR.error is deprecated and removed"), u(e, "complete", e.always, "jqXHR-methods", "jQXHR.complete is deprecated and removed")), e }, "jqXHR-methods"), e("4.0.0") || s.ajaxPrefilter("+json", function (e) { !1 !== e.jsonp && (p.test(e.url) || "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && p.test(e.data)) && i("jsonp-promotion", "JSON-to-JSONP auto-promotion is deprecated") })); var j = s.fn.removeAttr, b = s.fn.toggleClass, w = /\S+/g; function Q(e) { return e.replace(/-([a-z])/g, function (e, t) { return t.toUpperCase() }) } d(s.fn, "removeAttr", function (e) { var r = this; return s.each(e.match(w), function (e, t) { s.expr.match.bool.test(t) && (i("removeAttr-bool", "jQuery.fn.removeAttr no longer sets boolean properties: " + t), r.prop(t, !1)) }), j.apply(this, arguments) }, "removeAttr-bool"), d(s.fn, "toggleClass", function (t) { return void 0 !== t && "boolean" != typeof t ? b.apply(this, arguments) : (i("toggleClass-bool", "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__") || "") })) }, "toggleClass-bool"); var x, A = !1, R = /^[a-z]/, T = /^(?: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 A = !0, e = r.apply(this, arguments), A = !1, e }) }), d(s, "swap", function (e, t, r, n) { var o, a = {}; for (o in A || i("swap", "jQuery.swap() is undocumented and deprecated"), t) a[o] = e.style[o], e.style[o] = t[o]; for (o in r = r.apply(e, n || []), t) e.style[o] = a[o]; return r }, "swap"), e("3.4.0") && "undefined" != typeof Proxy && (s.cssProps = new Proxy(s.cssProps || {}, { set: function () { return i("cssProps", "jQuery.cssProps is deprecated"), Reflect.set.apply(this, arguments) } })), e("4.0.0") && "undefined" != typeof Proxy && (s.cssNumber = new Proxy({ animationIterationCount: !0, columnCount: !0, fillOpacity: !0, flexGrow: !0, flexShrink: !0, fontWeight: !0, gridArea: !0, gridColumn: !0, gridColumnEnd: !0, gridColumnStart: !0, gridRow: !0, gridRowEnd: !0, gridRowStart: !0, lineHeight: !0, opacity: !0, order: !0, orphans: !0, widows: !0, zIndex: !0, zoom: !0 }, { get: function () { return i("css-number", "jQuery.cssNumber is deprecated"), Reflect.get.apply(this, arguments) }, set: function () { return i("css-number", "jQuery.cssNumber is deprecated"), Reflect.set.apply(this, arguments) } })), x = s.fn.css, d(s.fn, "css", function (e, t) { var r, n = this; return e && "object" == typeof e && !Array.isArray(e) ? (s.each(e, function (e, t) { s.fn.css.call(n, e, t) }), this) : ("number" == typeof t && (t = Q(e), r = t, R.test(r) && T.test(r[0].toUpperCase() + r.slice(1)) || s.cssNumber[t] || i("css-number", 'Number-typed values are deprecated for jQuery.fn.css( "' + e + '", value )')), x.apply(this, arguments)) }, "css-number"); function C(e) { var t = n.document.implementation.createHTMLDocument(""); return t.body.innerHTML = e, t.body && t.body.innerHTML } var S, N, P, k, H, E, M, q = s.data, D = (d(s, "data", function (e, t, r) { var n, o, a; if (t && "object" == typeof t && 2 === arguments.length) { for (a in n = s.hasData(e) && q.call(this, e), o = {}, t) a !== Q(a) ? (i("data-camelCase", "jQuery.data() always sets/gets camelCased names: " + a), n[a] = t[a]) : o[a] = t[a]; return q.call(this, e, o), t } return t && "string" == typeof t && t !== Q(t) && (n = s.hasData(e) && q.call(this, e)) && t in n ? (i("data-camelCase", "jQuery.data() always sets/gets camelCased names: " + t), 2 < arguments.length && (n[t] = r), n[t]) : q.apply(this, arguments) }, "data-camelCase"), s.fx && (P = s.Tween.prototype.run, k = function (e) { return e }, d(s.Tween.prototype, "run", function () { 1 < s.easing[this.easing].length && (i("easing-one-arg", "'jQuery.easing." + this.easing.toString() + "' should use only one argument"), s.easing[this.easing] = k), P.apply(this, arguments) }, "easing-one-arg"), S = s.fx.interval, N = "jQuery.fx.interval is deprecated", n.requestAnimationFrame && Ob
2ject.defineProperty(s.fx, "interval", { configurable: !0, enumerable: !0, get: function () { return n.document.hidden || i("fx-interval", N), s.migrateIsPatchEnabled("fx-interval") && void 0 === S ? 13 : S }, set: function (e) { i("fx-interval", N), S = e } })), s.fn.load), F = s.event.add, W = s.event.fix, O = (s.event.props = [], s.event.fixHooks = {}, r(s.event.props, "concat", s.event.props.concat, "event-old-patch", "jQuery.event.props.concat() is deprecated and removed"), d(s.event, "fix", function (e) { var t = e.type, r = this.fixHooks[t], n = s.event.props; if (n.length) { i("event-old-patch", "jQuery.event.props are deprecated and removed: " + n.join()); while (n.length) s.event.addProp(n.pop()) } if (r && !r._migrated_ && (r._migrated_ = !0, i("event-old-patch", "jQuery.event.fixHooks are deprecated and removed: " + t), (n = r.props) && n.length)) while (n.length) s.event.addProp(n.pop()); return t = W.call(this, e), r && r.filter ? r.filter(t, e) : t }, "event-old-patch"), d(s.event, "add", function (e, t) { return e === n && "load" === t && "complete" === n.document.readyState && i("load-after-event", "jQuery(window).on('load'...) called after load event occurred"), F.apply(this, arguments) }, "load-after-event"), s.each(["load", "unload", "error"], function (e, t) { d(s.fn, t, function () { var e = Array.prototype.slice.call(arguments, 0); return "load" === t && "string" == typeof e[0] ? D.apply(this, e) : (i("shorthand-removed-v3", "jQuery.fn." + t + "() is deprecated"), e.splice(0, 0, t), arguments.length ? this.on.apply(this, e) : (this.triggerHandler.apply(this, e), this)) }, "shorthand-removed-v3") }), 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) { u(s.fn, r, function (e, t) { return 0 < arguments.length ? this.on(r, null, e, t) : this.trigger(r) }, "shorthand-deprecated-v3", "jQuery.fn." + r + "() event shorthand is deprecated") }), s(function () { s(n.document).triggerHandler("ready") }), s.event.special.ready = { setup: function () { this === n.document && i("ready-event", "'ready' event is deprecated") } }, u(s.fn, "bind", function (e, t, r) { return this.on(e, null, t, r) }, "pre-on-methods", "jQuery.fn.bind() is deprecated"), u(s.fn, "unbind", function (e, t) { return this.off(e, null, t) }, "pre-on-methods", "jQuery.fn.unbind() is deprecated"), u(s.fn, "delegate", function (e, t, r, n) { return this.on(t, e, r, n) }, "pre-on-methods", "jQuery.fn.delegate() is deprecated"), u(s.fn, "undelegate", function (e, t, r) { return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", r) }, "pre-on-methods", "jQuery.fn.undelegate() is deprecated"), u(s.fn, "hover", function (e, t) { return this.on("mouseenter", e).on("mouseleave", t || e) }, "pre-on-methods", "jQuery.fn.hover() is deprecated"), /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi), _ = (s.UNSAFE_restoreLegacyHtmlPrefilter = function () { s.migrateEnablePatches("self-closed-tags") }, d(s, "htmlPrefilter", function (e) { var t, r; return (r = (t = e).replace(O, "<$1></$2>")) !== t && C(t) !== C(r) && i("self-closed-tags", "HTML tags must be properly nested and closed: " + t), e.replace(O, "<$1></$2>") }, "self-closed-tags"), s.migrateDisablePatches("self-closed-tags"), s.fn.offset); return d(s.fn, "offset", function () { var e = this[0]; return !e || e.nodeType && e.getBoundingClientRect ? _.apply(this, arguments) : (i("offset-valid-elem", "jQuery.fn.offset() requires a valid DOM element"), arguments.length ? this : void 0) }, "offset-valid-elem"), s.ajax && (H = s.param, d(s, "param", function (e, t) { var r = s.ajaxSettings && s.ajaxSettings.traditional; return void 0 === t && r && (i("param-ajax-traditional", "jQuery.param() no longer uses jQuery.ajaxSettings.traditional"), t = r), H.call(this, e, t) }, "param-ajax-traditional")), u(s.fn, "andSelf", s.fn.addBack, "andSelf", "jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()"), s.Deferred && (E = s.Deferred, M = [["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")]], d(s, "Deferred", function (e) { var a = E(), i = a.promise(); function t() { var o = arguments; return s.Deferred(function (n) { s.each(M, function (e, t) { var r = "function" == typeof o[e] && o[e]; a[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 === i ? n.promise() : this, r ? [e] : arguments) }) }), o = null }).promise() } return u(a, "pipe", t, "deferred-pipe", "deferred.pipe() is deprecated"), u(i, "pipe", t, "deferred-pipe", "deferred.pipe() is deprecated"), e && e.call(a, a), a }, "deferred-pipe"), s.Deferred.exceptionHook = E.exceptionHook), s });
3/*============================================================================================================================*/
4/* modernizr.min */
5window.Modernizr = function (e, t, n) { function r(e) { b.cssText = e } function o(e, t) { return r(S.join(e + ";") + (t || "")) } function a(e, t) { return typeof e === t }
5 function i(e, t) { return !!~("" + e).indexOf(t) } function c(e, t) { for (var r in e) { var o = e[r]; if (!i(o, "-") && b[o] !== n) return "pfx" == t ? o : !0 } return !1 } function s(e, t, r) { for (var o in e) { var i = t[e[o]]; if (i !== n) return r === !1 ? e[o] : a(i, "function") ? i.bind(r || t) : i } return !1 } function u(e, t, n) { var r = e.charAt(0).toUpperCase() + e.slice(1), o = (e + " " + k.join(r + " ") + r).split(" "); return a(t, "string") || a(t, "undefined") ? c(o, t) : (o = (e + " " + T.join(r + " ") + r).split(" "), s(o, t, n)) } function l() { p.input = function (n) { for (var r = 0, o = n.length; o > r; r++)j[n[r]] = !!(n[r] in E); return j.list && (j.list = !(!t.createElement("datalist") || !e.HTMLDataListElement)), j }("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")), p.inputtypes = function (e) { for (var r, o, a, i = 0, c = e.length; c > i; i++)E.setAttribute("type", o = e[i]), r = "text" !== E.type, r && (E.value = x, E.style.cssText = "position:absolute;visibility:hidden;", /^range$/.test(o) && E.style.WebkitAppearance !== n ? (g.appendChild(E), a = t.defaultView, r = a.getComputedStyle && "textfield" !== a.getComputedStyle(E, null).WebkitAppearance && 0 !== E.offsetHeight, g.removeChild(E)) : /^(search|tel)$/.test(o) || (r = /^(url|email)$/.test(o) ? E.checkValidity && E.checkValidity() === !1 : E.value != x)), P[e[i]] = !!r; return P }("search tel url email datetime date month week time datetime-local number range color".split(" ")) } var d, f, m = "2.8.3", p = {}, h = !0, g = t.documentElement, v = "modernizr", y = t.createElement(v), b = y.style, E = t.createElement("input"), x = ":)", w = {}.toString, S = " -webkit- -moz- -o- -ms- ".split(" "), C = "Webkit Moz O ms", k = C.split(" "), T = C.toLowerCase().split(" "), N = { svg: "http://www.w3.org/2000/svg" }, M = {}, P = {}, j = {}, $ = [], D = $.slice, F = function (e, n, r, o) { var a, i, c, s, u = t.createElement("div"), l = t.body, d = l || t.createElement("body"); if (parseInt(r, 10)) for (; r--;)c = t.createElement("div"), c.id = o ? o[r] : v + (r + 1), u.appendChild(c); return a = ["&#173;", '<style id="s', v, '">', e, "</style>"].join(""), u.id = v, (l ? u : d).innerHTML += a, d.appendChild(u), l || (d.style.background = "", d.style.overflow = "hidden", s = g.style.overflow, g.style.overflow = "hidden", g.appendChild(d)), i = n(u, e), l ? u.parentNode.removeChild(u) : (d.parentNode.removeChild(d), g.style.overflow = s), !!i }, z = function (t) { var n = e.matchMedia || e.msMatchMedia; if (n) return n(t) && n(t).matches || !1; var r; return F("@media " + t + " { #" + v + " { position: absolute; } }", function (t) { r = "absolute" == (e.getComputedStyle ? getComputedStyle(t, null) : t.currentStyle).position }), r }, A = function () { function e(e, o) { o = o || t.createElement(r[e] || "div"), e = "on" + e; var i = e in o; return i || (o.setAttribute || (o = t.createElement("div")), o.setAttribute && o.removeAttribute && (o.setAttribute(e, ""), i = a(o[e], "function"), a(o[e], "undefined") || (o[e] = n), o.removeAttribute(e))), o = null, i } var r = { select: "input", change: "input", submit: "form", reset: "form", error: "img", load: "img", abort: "img" }; return e }(), L = {}.hasOwnProperty; f = a(L, "undefined") || a(L.call, "undefined") ? function (e, t) { return t in e && a(e.constructor.prototype[t], "undefined") } : function (e, t) { return L.call(e, t) }, Function.prototype.bind || (Function.prototype.bind = function (e) { var t = this; if ("function" != typeof t) throw new TypeError; var n = D.call(arguments, 1), r = function () { if (this instanceof r) { var o = function () { }; o.prototype = t.prototype; var a = new o, i = t.apply(a, n.concat(D.call(arguments))); return Object(i) === i ? i : a } return t.apply(e, n.concat(D.call(arguments))) }; return r }), M.flexbox = function () { return u("flexWrap") }, M.flexboxlegacy = function () { return u("boxDirection") }, M.canvas = function () { var e = t.createElement("canvas"); return !(!e.getContext || !e.getContext("2d")) }, M.canvastext = function () { return !(!p.canvas || !a(t.createElement("canvas").getContext("2d").fillText, "function")) }, M.webgl = function () { return !!e.WebGLRenderingContext }, M.touch = function () { var n; return "ontouchstart" in e || e.DocumentTouch && t instanceof DocumentTouch ? n = !0 : F(["@media (", S.join("touch-enabled),("), v, ")", "{#modernizr{top:9px;position:absolute}}"].join(""), function (e) { n = 9 === e.offsetTop }), n }, M.geolocation = function () { return "geolocation" in navigator }, M.postmessage = function () { return !!e.postMessage }, M.websqldatabase = function () { return !!e.openDatabase }, M.indexedDB = function () { return !!u("indexedDB", e) }, M.hashchange = function () { return A("hashchange", e) && (t.documentMode === n || t.documentMode > 7) }, M.history = function () { return !(!e.history || !history.pushState) }, M.draganddrop = function () { var e = t.createElement("div"); return "draggable" in e || "ondragstart" in e && "ondrop" in e }, M.websockets = function () { return "WebSocket" in e || "MozWebSocket" in e }, M.rgba = function () { return r("background-color:rgba(150,255,150,.5)"), i(b.backgroundColor, "rgba") }
5, M.hsla = function () { return r("background-color:hsla(120,40%,100%,.5)"), i(b.backgroundColor, "rgba") || i(b.backgroundColor, "hsla") }, M.multiplebgs = function () { return r("background:url(https://),url(https://),red url(https://)"), /(url\s*\(.*?){3}/.test(b.background) }, M.backgroundsize = function () { return u("backgroundSize") }, M.borderimage = function () { return u("borderImage") }, M.borderradius = function () { return u("borderRadius") }, M.boxshadow = function () { return u("boxShadow") }, M.textshadow = function () { return "" === t.createElement("div").style.textShadow }, M.opacity = function () { return o("opacity:.55"), /^0.55$/.test(b.opacity) }, M.cssanimations = function () { return u("animationName") }, M.csscolumns = function () { return u("columnCount") }, M.cssgradients = function () { var e = "background-image:", t = "gradient(linear,left top,right bottom,from(#9f9),to(white));", n = "linear-gradient(left top,#9f9, white);"; return r((e + "-webkit- ".split(" ").join(t + e) + S.join(n + e)).slice(0, -e.length)), i(b.backgroundImage, "gradient") }, M.cssreflections = function () { return u("boxReflect") }, M.csstransforms = function () { return !!u("transform") }, M.csstransforms3d = function () { var e = !!u("perspective"); return e && "webkitPerspective" in g.style && F("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}", function (t) { e = 9 === t.offsetLeft && 3 === t.offsetHeight }), e }, M.csstransitions = function () { return u("transition") }, M.fontface = function () { var e; return F('@font-face {font-family:"font";src:url("https://")}', function (n, r) { var o = t.getElementById("smodernizr"), a = o.sheet || o.styleSheet, i = a ? a.cssRules && a.cssRules[0] ? a.cssRules[0].cssText : a.cssText || "" : ""; e = /src/i.test(i) && 0 === i.indexOf(r.split(" ")[0]) }), e }, M.generatedcontent = function () { var e; return F(["#", v, "{font:0/0 a}#", v, ':after{content:"', x, '";visibility:hidden;font:3px/1 a}'].join(""), function (t) { e = t.offsetHeight >= 3 }), e }, M.video = function () { var e = t.createElement("video"), n = !1; try { (n = !!e.canPlayType) && (n = new Boolean(n), n.ogg = e.canPlayType('video/ogg; codecs="theora"').replace(/^no$/, ""), n.h264 = e.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/, ""), n.webm = e.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/, "")) } catch (r) { } return n }, M.audio = function () { var e = t.createElement("audio"), n = !1; try { (n = !!e.canPlayType) && (n = new Boolean(n), n.ogg = e.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ""), n.mp3 = e.canPlayType("audio/mpeg;").replace(/^no$/, ""), n.wav = e.canPlayType('audio/wav; codecs="1"').replace(/^no$/, ""), n.m4a = (e.canPlayType("audio/x-m4a;") || e.canPlayType("audio/aac;")).replace(/^no$/, "")) } catch (r) { } return n }, M.localstorage = function () { try { return localStorage.setItem(v, v), localStorage.removeItem(v), !0 } catch (e) { return !1 } }, M.sessionstorage = function () { try { return sessionStorage.setItem(v, v), sessionStorage.removeItem(v), !0 } catch (e) { return !1 } }, M.webworkers = function () { return !!e.Worker }, M.applicationcache = function () { return !!e.applicationCache }, M.svg = function () { return !!t.createElementNS && !!t.createElementNS(N.svg, "svg").createSVGRect }, M.inlinesvg = function () { var e = t.createElement("div"); return e.innerHTML = "<svg/>", (e.firstChild && e.firstChild.namespaceURI) == N.svg }, M.smil = function () { return !!t.createElementNS && /SVGAnimate/.test(w.call(t.createElementNS(N.svg, "animate"))) }, M.svgclippaths = function () { return !!t.createElementNS && /SVGClipPath/.test(w.call(t.createElementNS(N.svg, "clipPath"))) }; for (var H in M) f(M, H) && (d = H.toLowerCase(), p[d] = M[H](), $.push((p[d] ? "" : "no-") + d)); return p.input || l(), p.addTest = function (e, t) { if ("object" == typeof e) for (var r in e) f(e, r) && p.addTest(r, e[r]); else { if (e = e.toLowerCase(), p[e] !== n) return p; t = "function" == typeof t ? t() : t, "undefined" != typeof h && h && (g.className += " " + (t ? "" : "no-") + e), p[e] = t } return p }, r(""), y = E = null, function (e, t) { function n(e, t) { var n = e.createElement("p"), r = e.getElementsByTagName("head")[0] || e.documentElement; return n.innerHTML = "x<style>" + t + "</style>", r.insertBefore(n.lastChild, r.firstChild) } function r() { var e = y.elements; return "string" == typeof e ? e.split(" ") : e } function o(e) { var t = v[e[h]]; return t || (t = {}, g++, e[h] = g, v[g] = t), t } function a(e, n, r) { if (n || (n = t), l) return n.createElement(e); r || (r = o(n)); var a; return a = r.cache[e] ? r.cache[e].cloneNode() : p.test(e) ? (r.cache[e] = r.createElem(e)).cloneNode() : r.createElem(e), !a.canHaveChildren || m.test(e) || a.tagUrn ? a : r.frag.appendChild(a) } function i(e, n) { if (e || (e = t), l) return e.createDocumentFragment(); n = n || o(e); for (var a = n.frag.cloneNode(), i = 0, c = r(), s = c.length; s > i; i++)a.createElement(c[i]); return a }
5 function c(e, t) { t.cache || (t.cache = {}, t.createElem = e.createElement, t.createFrag = e.createDocumentFragment, t.frag = t.createFrag()), e.createElement = function (n) { return y.shivMethods ? a(n, e, t) : t.createElem(n) }, e.createDocumentFragment = Function("h,f", "return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(" + r().join().replace(/[\w\-]+/g, function (e) { return t.createElem(e), t.frag.createElement(e), 'c("' + e + '")' }) + ");return n}")(y, t.frag) } function s(e) { e || (e = t); var r = o(e); return !y.shivCSS || u || r.hasCSS || (r.hasCSS = !!n(e, "article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")), l || c(e, r), e } var u, l, d = "3.7.0", f = e.html5 || {}, m = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i, p = /^(?: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, h = "_html5shiv", g = 0, v = {}; !function () { try { var e = t.createElement("a"); e.innerHTML = "<xyz></xyz>", u = "hidden" in e, l = 1 == e.childNodes.length || function () { t.createElement("a"); var e = t.createDocumentFragment(); return "undefined" == typeof e.cloneNode || "undefined" == typeof e.createDocumentFragment || "undefined" == typeof e.createElement }() } catch (n) { u = !0, l = !0 } }(); var y = { elements: f.elements || "abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video", version: d, shivCSS: f.shivCSS !== !1, supportsUnknownElements: l, shivMethods: f.shivMethods !== !1, type: "default", shivDocument: s, createElement: a, createDocumentFragment: i }; e.html5 = y, s(t) }(this, t), p._version = m, p._prefixes = S, p._domPrefixes = T, p._cssomPrefixes = k, p.mq = z, p.hasEvent = A, p.testProp = function (e) { return c([e]) }, p.testAllProps = u, p.testStyles = F, p.prefixed = function (e, t, n) { return t ? u(e, t, n) : u(e, "pfx") }, g.className = g.className.replace(/(^|\s)no-js(\s|$)/, "$1$2") + (h ? " js " + $.join(" ") : ""), p }(this, this.document);
6/*============================================================================================================================*/
7/*!
8  * Bootstrap v5.3.6 (https://getbootstrap.com/)
9  * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
10  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
11  */
12!function (t, e) { "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : (t = "undefined" != typeof globalThis ? globalThis : t || self).bootstrap = e() }(this, (function () { "use strict"; const t = new Map, e = { set(e, i, n) { t.has(e) || t.set(e, new Map); const s = t.get(e); s.has(i) || 0 === s.size ? s.set(i, n) : console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`) }, get: (e, i) => t.has(e) && t.get(e).get(i) || null, remove(e, i) { if (!t.has(e)) return; const n = t.get(e); n.delete(i), 0 === n.size && t.delete(e) } }, i = "transitionend", n = t => (t && window.CSS && window.CSS.escape && (t = t.replace(/#([^\s"#']+)/g, ((t, e) => `#${CSS.escape(e)}`))), t), s = t => { t.dispatchEvent(new Event(i)) }, o = t => !(!t || "object" != typeof t) && (void 0 !== t.jquery && (t = t[0]), void 0 !== t.nodeType), r = t => o(t) ? t.jquery ? t[0] : t : "string" == typeof t && t.length > 0 ? document.querySelector(n(t)) : null, a = t => { if (!o(t) || 0 === t.getClientRects().length) return !1; const e = "visible" === getComputedStyle(t).getPropertyValue("visibility"), i = t.closest("details:not([open])"); if (!i) return e; if (i !== t) { const e = t.closest("summary"); if (e && e.parentNode !== i) return !1; if (null === e) return !1 } return e }, l = t => !t || t.nodeType !== Node.ELEMENT_NODE || !!t.classList.contains("disabled") || (void 0 !== t.disabled ? t.disabled : t.hasAttribute("disabled") && "false" !== t.getAttribute("disabled")), c = t => { if (!document.documentElement.attachShadow) return null; if ("function" == typeof t.getRootNode) { const e = t.getRootNode(); return e instanceof ShadowRoot ? e : null } return t instanceof ShadowRoot ? t : t.parentNode ? c(t.parentNode) : null }, h = () => { }, d = t => { t.offsetHeight }, u = () => window.jQuery && !document.body.hasAttribute("data-bs-no-jquery") ? window.jQuery : null, f = [], p 
vendor: 10,635 bytes, line 12
12= () => "rtl" === document.documentElement.dir, m = t => { var e; e = () => { const e = u(); if (e) { const i = t.NAME, n = e.fn[i]; e.fn[i] = t.jQueryInterface, e.fn[i].Constructor = t, e.fn[i].noConflict = () => (e.fn[i] = n, t.jQueryInterface) } }, "loading" === document.readyState ? (f.length || document.addEventListener("DOMContentLoaded", (() => { for (const t of f) t() })), f.push(e)) : e() }, g = (t, e = [], i = t) => "function" == typeof t ? t.call(...e) : i, _ = (t, e, n = !0) => { if (!n) return void g(t); const o = (t => { if (!t) return 0; let { transitionDuration: e, transitionDelay: i } = window.getComputedStyle(t); const n = Number.parseFloat(e), s = Number.parseFloat(i); return n || s ? (e = e.split(",")[0], i = i.split(",")[0], 1e3 * (Number.parseFloat(e) + Number.parseFloat(i))) : 0 })(e) + 5; let r = !1; const a = ({ target: n }) => { n === e && (r = !0, e.removeEventListener(i, a), g(t)) }; e.addEventListener(i, a), setTimeout((() => { r || s(e) }), o) }, b = (t, e, i, n) => { const s = t.length; let o = t.indexOf(e); return -1 === o ? !i && n ? t[s - 1] : t[0] : (o += i ? 1 : -1, n && (o = (o + s) % s), t[Math.max(0, Math.min(o, s - 1))]) }, v = /[^.]*(?=\..*)\.|.*/, y = /\..*/, w = /::\d+$/, A = {}; let E = 1; const T = { mouseenter: "mouseover", mouseleave: "mouseout" }, C = new Set(["click", "dblclick", "mouseup", "mousedown", "contextmenu", "mousewheel", "DOMMouseScroll", "mouseover", "mouseout", "mousemove", "selectstart", "selectend", "keydown", "keypress", "keyup", "orientationchange", "touchstart", "touchmove", "touchend", "touchcancel", "pointerdown", "pointermove", "pointerup", "pointerleave", "pointercancel", "gesturestart", "gesturechange", "gestureend", "focus", "blur", "change", "reset", "select", "submit", "focusin", "focusout", "load", "unload", "beforeunload", "resize", "move", "DOMContentLoaded", "readystatechange", "error", "abort", "scroll"]); function O(t, e) { return e && `${e}::${E++}` || t.uidEvent || E++ } function x(t) { const e = O(t); return t.uidEvent = e, A[e] = A[e] || {}, A[e] } function k(t, e, i = null) { return Object.values(t).find((t => t.callable === e && t.delegationSelector === i)) } function L(t, e, i) { const n = "string" == typeof e, s = n ? i : e || i; let o = I(t); return C.has(o) || (o = t), [n, s, o] } function S(t, e, i, n, s) { if ("string" != typeof e || !t) return; let [o, r, a] = L(e, i, n); if (e in T) { const t = t => function (e) { if (!e.relatedTarget || e.relatedTarget !== e.delegateTarget && !e.delegateTarget.contains(e.relatedTarget)) return t.call(this, e) }; r = t(r) } const l = x(t), c = l[a] || (l[a] = {}), h = k(c, r, o ? i : null); if (h) return void (h.oneOff = h.oneOff && s); const d = O(r, e.replace(v, "")), u = o ? function (t, e, i) { return function n(s) { const o = t.querySelectorAll(e); for (let { target: r } = s; r && r !== this; r = r.parentNode)for (const a of o) if (a === r) return P(s, { delegateTarget: r }), n.oneOff && N.off(t, s.type, e, i), i.apply(r, [s]) } }(t, i, r) : function (t, e) { return function i(n) { return P(n, { delegateTarget: t }), i.oneOff && N.off(t, n.type, e), e.apply(t, [n]) } }(t, r); u.delegationSelector = o ? i : null, u.callable = r, u.oneOff = s, u.uidEvent = d, c[d] = u, t.addEventListener(a, u, o) } function D(t, e, i, n, s) { const o = k(e[i], n, s); o && (t.removeEventListener(i, o, Boolean(s)), delete e[i][o.uidEvent]) } function $(t, e, i, n) { const s = e[i] || {}; for (const [o, r] of Object.entries(s)) o.includes(n) && D(t, e, i, r.callable, r.delegationSelector) } function I(t) { return t = t.replace(y, ""), T[t] || t } const N = { on(t, e, i, n) { S(t, e, i, n, !1) }, one(t, e, i, n) { S(t, e, i, n, !0) }, off(t, e, i, n) { if ("string" != typeof e || !t) return; const [s, o, r] = L(e, i, n), a = r !== e, l = x(t), c = l[r] || {}, h = e.startsWith("."); if (void 0 === o) { if (h) for (const i of Object.keys(l)) $(t, l, i, e.slice(1)); for (const [i, n] of Object.entries(c)) { const s = i.replace(w, ""); a && !e.includes(s) || D(t, l, r, n.callable, n.delegationSelector) } } else { if (!Object.keys(c).length) return; D(t, l, r, o, s ? i : null) } }, trigger(t, e, i) { if ("string" != typeof e || !t) return null; const n = u(); let s = null, o = !0, r = !0, a = !1; e !== I(e) && n && (s = n.Event(e, i), n(t).trigger(s), o = !s.isPropagationStopped(), r = !s.isImmediatePropagationStopped(), a = s.isDefaultPrevented()); const l = P(new Event(e, { bubbles: o, cancelable: !0 }), i); return a && l.preventDefault(), r && t.dispatchEvent(l), l.defaultPrevented && s && s.preventDefault(), l } }; function P(t, e = {}) { for (const [i, n] of Object.entries(e)) try { t[i] = n } catch (e) { Object.defineProperty(t, i, { configurable: !0, get: () => n }) } return t } function j(t) { if ("true" === t) return !0; if ("false" === t) return !1; if (t === Number(t).toString()) return Number(t); if ("" === t || "null" === t) return null; if ("string" != typeof t) return t; try { return JSON.parse(decodeURIComponent(t)) } catch (e) { return t } } function M(t) { return t.replace(/[A-Z]/g, (t => `-${t.toLowerCase()}`)) } const F = { setDataAttribute(t, e, i) { t.setAttribute(`data-bs-${M(e)}`, i) }, removeDataAttribute(t, e) { t.removeAttribute(`data-bs-${M(e)}`) }, getDataAttributes(t) { if (!t) return {}; const e = {}, i = Object.keys(t.dataset).filter((t => t.startsWith("bs") && !t.startsWith("bsConfig"))); for (const n of i) { let i = n.replace(/^bs/, ""); i = i.charAt(0).toLowerCase() + i.slice(1), e[i] = j(t.dataset[n]) } return e }, getDataAttribute: (t, e) => j(t.getAttribute(`data-bs-${M(e)}`)) }; class H { static get Default() { return {} } static get DefaultType() { return {} } static get NAME() { throw new Error('You have to implement the static method "NAME", for each component!') } _getConfig(t) { return t = this._mergeConfigObj(t), t = this._configAfterMerge(t), this._typeCheckConfig(t), t } _configAfterMerge(t) { return t } _mergeConfigObj(t, e) { const i = o(e) ? F.getDataAttribute(e, "config") : {}; return { ...this.constructor.Default, ..."object" == typeof i ? i : {}, ...o(e) ? F.getDataAttributes(e) : {}, ..."object" == typeof t ? t : {} } } _typeCheckConfig(t, e = this.constructor.DefaultType) { for (const [n, s] of Object.entries(e)) { const e = t[n], r = o(e) ? "element" : null == (i = e) ? `${i}` : Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase(); if (!new RegExp(s).test(r)) throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${s}".`) } var i } } class W extends H { constructor(t, i) { super(), (t = r(t)) && (this._element = t, this._config = this._getConfig(i), e.set(this._element, this.constructor.DATA_KEY, this)) } dispose() { e.remove(this._element, this.constructor.DATA_KEY), N.off(this._element, this.constructor.EVENT_KEY); for (const t of Object.getOwnPropertyNames(this)) this[t] = null } _queueCallback(t, e, i = !0) { _(t, e, i) } _getConfig(t) { return t = this._mergeConfigObj(t, this._element), t = this._configAfterMerge(t), this._typeCheckConfig(t), t } static getInstance(t) { return e.get(r(t), this.DATA_KEY) } static getOrCreateInstance(t, e = {}) { return this.getInstance(t) || new this(t, "object" == typeof e ? e : null) } static get VERSION() { return "5.3.6" } static get DATA_KEY() { return `bs.${this.NAME}` } static get EVENT_KEY() { return `.${this.DATA_KEY}` } static eventName(t) { return `${t}${this.EVENT_KEY}` } } const B = t => { let e = t.getAttribute("data-bs-target"); if (!e || "#" === e) { let i = t.getAttribute("href"); if (!i || !i.includes("#") && !i.startsWith(".")) return null; i.includes("#") && !i.startsWith("#") && (i = `#${i.split("#")[1]}`), e = i && "#" !== i ? i.trim() : null } return e ? e.split(",").map((t => n(t))).join(",") : null }, z = { find: (t, e = document.documentElement) => [].concat(...Element.prototype.querySelectorAll.call(e, t)), findOne: (t, e = document.documentElement) => Element.prototype.querySelector.call(e, t), children: (t, e) => [].concat(...t.children).filter((t => t.matches(e))), parents(t, e) { const i = []; let n = t.parentNode.closest(e); for (; n;)i.push(n), n = n.parentNode.closest(e); return i }, prev(t, e) { let i = t.previousElementSibling; for (; i;) { if (i.matches(e)) return [i]; i = i.previousElementSibling } return [] }, next(t, e) { let i = t.nextElementSibling; for (; i;) { if (i.matches(e)) return [i]; i = i.nextElementSibling } return [] }, focusableChildren(t) { const e = ["a", "button", "input", "textarea", "select", "details", "[tabindex]", '[contenteditable="true"]'].map((t => `${t}:not([tabindex^="-"])`)).join(","); return this.find(e, t).filter((t => !l(t) && a(t))) }, getSelectorFromElement(t) { const e = B(t); return e && z.findOne(e) ? e : null }, getElementFromSelector(t) { const e = B(t); return e ? z.findOne(e) : null }, getMultipleElementsFromSelector(t) { const e = B(t); return e ? z.find(e) : [] } }, R = (t, e = "hide") => { const i = `click.dismiss${t.EVENT_KEY}`, n = t.NAME; N.on(document, i, `[data-bs-dismiss="${n}"]`, (function (i) { if (["A", "AREA"].includes(this.tagName) && i.preventDefault(), l(this)) return; const s = z.getElementFromSelector(this) || this.closest(`.${n}`); t.getOrCreateInstance(s)[e]() })) }, q = ".bs.alert", V = `close${q}`, K = `closed${q}`; class Q extends W { static get NAME() { return "alert" } close() { if (N.trigger(this._element, V).defaultPrevented) return; this._element.classList.remove("show"); const t = this._element.classList.contains("fade"); this._queueCallback((() => this._destroyElement()), this._element, t) } _destroyElement() { this._element.remove(), N.trigger(this._element, K), this.dispose() } static jQueryInterface(t) { return this.each((function () { const e = Q.getOrCreateInstance(this); if ("string" == typeof t) { if (void 0 === e[t] || t.startsWith("_") || "constructor" === t) throw new TypeError(`No method named "${t}"`); e[t](this) } })) } } R(Q, "close"), m(Q); const X = '[data-bs-toggle="button"]'; class Y extends W { static get NAME() { return "button" } toggle() { this._element.setAttribute("aria-pressed", this._element.classList.toggle("active")) } static jQueryInterface(t) { return this.each((function () { const e = Y.getOrCreateInstance(this); "toggle" === t && e[t]() })) } } N.on(document, "click.bs.button.data-api", X, (t => { t.preventDefault(); const e = t.target.closest(X); Y.getOrCreateInstance(e).toggle() })), m(Y); const U = ".bs.swipe", G = `touchstart${U}`, J = `touchmove${U}`, Z = `touchend${U}`, tt = `pointerdown${U}`, et = `pointerup${U}
12`, it = { endCallback: null, leftCallback: null, rightCallback: null }, nt = { endCallback: "(function|null)", leftCallback: "(function|null)", rightCallback: "(function|null)" }; class st extends H { constructor(t, e) { super(), this._element = t, t && st.isSupported() && (this._config = this._getConfig(e), this._deltaX = 0, this._supportPointerEvents = Boolean(window.PointerEvent), this._initEvents()) } static get Default() { return it } static get DefaultType() { return nt } static get NAME() { return "swipe" } dispose() { N.off(this._element, U) } _start(t) { this._supportPointerEvents ? this._eventIsPointerPenTouch(t) && (this._deltaX = t.clientX) : this._deltaX = t.touches[0].clientX } _end(t) { this._eventIsPointerPenTouch(t) && (this._deltaX = t.clientX - this._deltaX), this._handleSwipe(), g(this._config.endCallback) } _move(t) { this._deltaX = t.touches && t.touches.length > 1 ? 0 : t.touches[0].clientX - this._deltaX } _handleSwipe() { const t = Math.abs(this._deltaX); if (t <= 40) return; const e = t / this._deltaX; this._deltaX = 0, e && g(e > 0 ? this._config.rightCallback : this._config.leftCallback) } _initEvents() { this._supportPointerEvents ? (N.on(this._element, tt, (t => this._start(t))), N.on(this._element, et, (t => this._end(t))), this._element.classList.add("pointer-event")) : (N.on(this._element, G, (t => this._start(t))), N.on(this._element, J, (t => this._move(t))), N.on(this._element, Z, (t => this._end(t)))) } _eventIsPointerPenTouch(t) { return this._supportPointerEvents && ("pen" === t.pointerType || "touch" === t.pointerType) } static isSupported() { return "ontouchstart" in document.documentElement || navigator.maxTouchPoints > 0 } } const ot = ".bs.carousel", rt = ".data-api", at = "ArrowLeft", lt = "ArrowRight", ct = "next", ht = "prev", dt = "left", ut = "right", ft = `slide${ot}`, pt = `slid${ot}`, mt = `keydown${ot}`, gt = `mouseenter${ot}`, _t = `mouseleave${ot}`, bt = `dragstart${ot}`, vt = `load${ot}${rt}`, yt = `click${ot}${rt}`, wt = "carousel", At = "active", Et = ".active", Tt = ".carousel-item", Ct = Et + Tt, Ot = { [at]: ut, [lt]: dt }, xt = { interval: 5e3, keyboard: !0, pause: "hover", ride: !1, touch: !0, wrap: !0 }, kt = { interval: "(number|boolean)", keyboard: "boolean", pause: "(string|boolean)", ride: "(boolean|string)", touch: "boolean", wrap: "boolean" }; class Lt extends W { constructor(t, e) { super(t, e), this._interval = null, this._activeElement = null, this._isSliding = !1, this.touchTimeout = null, this._swipeHelper = null, this._indicatorsElement = z.findOne(".carousel-indicators", this._element), this._addEventListeners(), this._config.ride === wt && this.cycle() } static get Default() { return xt } static get DefaultType() { return kt } static get NAME() { return "carousel" } next() { this._slide(ct) } nextWhenVisible() { !document.hidden && a(this._element) && this.next() } prev() { this._slide(ht) } pause() { this._isSliding && s(this._element), this._clearInterval() } cycle() { this._clearInterval(), this._updateInterval(), this._interval = setInterval((() => this.nextWhenVisible()), this._config.interval) } _maybeEnableCycle() { this._config.ride && (this._isSliding ? N.one(this._element, pt, (() => this.cycle())) : this.cycle()) } to(t) { const e = this._getItems(); if (t > e.length - 1 || t < 0) return; if (this._isSliding) return void N.one(this._element, pt, (() => this.to(t))); const i = this._getItemIndex(this._getActive()); if (i === t) return; const n = t > i ? ct : ht; this._slide(n, e[t]) } dispose() { this._swipeHelper && this._swipeHelper.dispose(), super.dispose() } _configAfterMerge(t) { return t.defaultInterval = t.interval, t } _addEventListeners() { this._config.keyboard && N.on(this._element, mt, (t => this._keydown(t))), "hover" === this._config.pause && (N.on(this._element, gt, (() => this.pause())), N.on(this._element, _t, (() => this._maybeEnableCycle()))), this._config.touch && st.isSupported() && this._addTouchEventListeners() } _addTouchEventListeners() { for (const t of z.find(".carousel-item img", this._element)) N.on(t, bt, (t => t.preventDefault()));
vendor: 8,450 bytes, line 12
12 const t = { leftCallback: () => this._slide(this._directionToOrder(dt)), rightCallback: () => this._slide(this._directionToOrder(ut)), endCallback: () => { "hover" === this._config.pause && (this.pause(), this.touchTimeout && clearTimeout(this.touchTimeout), this.touchTimeout = setTimeout((() => this._maybeEnableCycle()), 500 + this._config.interval)) } }; this._swipeHelper = new st(this._element, t) } _keydown(t) { if (/input|textarea/i.test(t.target.tagName)) return; const e = Ot[t.key]; e && (t.preventDefault(), this._slide(this._directionToOrder(e))) } _getItemIndex(t) { return this._getItems().indexOf(t) } _setActiveIndicatorElement(t) { if (!this._indicatorsElement) return; const e = z.findOne(Et, this._indicatorsElement); e.classList.remove(At), e.removeAttribute("aria-current"); const i = z.findOne(`[data-bs-slide-to="${t}"]`, this._indicatorsElement); i && (i.classList.add(At), i.setAttribute("aria-current", "true")) } _updateInterval() { const t = this._activeElement || this._getActive(); if (!t) return; const e = Number.parseInt(t.getAttribute("data-bs-interval"), 10); this._config.interval = e || this._config.defaultInterval } _slide(t, e = null) { if (this._isSliding) return; const i = this._getActive(), n = t === ct, s = e || b(this._getItems(), i, n, this._config.wrap); if (s === i) return; const o = this._getItemIndex(s), r = e => N.trigger(this._element, e, { relatedTarget: s, direction: this._orderToDirection(t), from: this._getItemIndex(i), to: o }); if (r(ft).defaultPrevented) return; if (!i || !s) return; const a = Boolean(this._interval); this.pause(), this._isSliding = !0, this._setActiveIndicatorElement(o), this._activeElement = s; const l = n ? "carousel-item-start" : "carousel-item-end", c = n ? "carousel-item-next" : "carousel-item-prev"; s.classList.add(c), d(s), i.classList.add(l), s.classList.add(l), this._queueCallback((() => { s.classList.remove(l, c), s.classList.add(At), i.classList.remove(At, c, l), this._isSliding = !1, r(pt) }), i, this._isAnimated()), a && this.cycle() } _isAnimated() { return this._element.classList.contains("slide") } _getActive() { return z.findOne(Ct, this._element) } _getItems() { return z.find(Tt, this._element) } _clearInterval() { this._interval && (clearInterval(this._interval), this._interval = null) } _directionToOrder(t) { return p() ? t === dt ? ht : ct : t === dt ? ct : ht } _orderToDirection(t) { return p() ? t === ht ? dt : ut : t === ht ? ut : dt } static jQueryInterface(t) { return this.each((function () { const e = Lt.getOrCreateInstance(this, t); if ("number" != typeof t) { if ("string" == typeof t) { if (void 0 === e[t] || t.startsWith("_") || "constructor" === t) throw new TypeError(`No method named "${t}"`); e[t]() } } else e.to(t) })) } } N.on(document, yt, "[data-bs-slide], [data-bs-slide-to]", (function (t) { const e = z.getElementFromSelector(this); if (!e || !e.classList.contains(wt)) return; t.preventDefault(); const i = Lt.getOrCreateInstance(e), n = this.getAttribute("data-bs-slide-to"); return n ? (i.to(n), void i._maybeEnableCycle()) : "next" === F.getDataAttribute(this, "slide") ? (i.next(), void i._maybeEnableCycle()) : (i.prev(), void i._maybeEnableCycle()) })), N.on(window, vt, (() => { const t = z.find('[data-bs-ride="carousel"]'); for (const e of t) Lt.getOrCreateInstance(e) })), m(Lt); const St = ".bs.collapse", Dt = `show${St}`, $t = `shown${St}`, It = `hide${St}`, Nt = `hidden${St}`, Pt = `click${St}.data-api`, jt = "show", Mt = "collapse", Ft = "collapsing", Ht = `:scope .${Mt} .${Mt}`, Wt = '[data-bs-toggle="collapse"]', Bt = { parent: null, toggle: !0 }, zt = { parent: "(null|element)", toggle: "boolean" }; class Rt extends W { constructor(t, e) { super(t, e), this._isTransitioning = !1, this._triggerArray = []; const i = z.find(Wt); for (const t of i) { const e = z.getSelectorFromElement(t), i = z.find(e).filter((t => t === this._element)); null !== e && i.length && this._triggerArray.push(t) } this._initializeChildren(), this._config.parent || this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()), this._config.toggle && this.toggle() } static get Default() { return Bt } static get DefaultType() { return zt } static get NAME() { return "collapse" } toggle() { this._isShown() ? this.hide() : this.show() } show() { if (this._isTransitioning || this._isShown()) return; let t = []; if (this._config.parent && (t = this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t => t !== this._element)).map((t => Rt.getOrCreateInstance(t, { toggle: !1 })))), t.length && t[0]._isTransitioning) return; if (N.trigger(this._element, Dt).defaultPrevented) return; for (const e of t) e.hide(); const e = this._getDimension(); this._element.classList.remove(Mt), this._element.classList.add(Ft), this._element.style[e] = 0, this._addAriaAndCollapsedClass(this._triggerArray, !0), this._isTransitioning = !0; const i = `scroll${e[0].toUpperCase() + e.slice(1)}`; this._queueCallback((() => { this._isTransitioning = !1, this._element.classList.remove(Ft), this._element.classList.add(Mt, jt), this._element.style[e] = "", N.trigger(this._element, $t) }), this._element, !0), this._element.style[e] = `${this._element[i]}px` } hide() { if (this._isTransitioning || !this._isShown()) return; if (N.trigger(this._element, It).defaultPrevented) return; const t = this._getDimension(); this._element.style[t] = `${this._element.getBoundingClientRect()[t]}px`, d(this._element), this._element.classList.add(Ft), this._element.classList.remove(Mt, jt); for (const t of this._triggerArray) { const e = z.getElementFromSelector(t); e && !this._isShown(e) && this._addAriaAndCollapsedClass([t], !1) } this._isTransitioning = !0, this._element.style[t] = "", this._queueCallback((() => { this._isTransitioning = !1, this._element.classList.remove(Ft), this._element.classList.add(Mt), N.trigger(this._element, Nt) }), this._element, !0) } _isShown(t = this._element) { return t.classList.contains(jt) } _configAfterMerge(t) { return t.toggle = Boolean(t.toggle), t.parent = r(t.parent), t } _getDimension() { return this._element.classList.contains("collapse-horizontal") ? "width" : "height" } _initializeChildren() { if (!this._config.parent) return; const t = this._getFirstLevelChildren(Wt); for (const e of t) { const t = z.getElementFromSelector(e); t && this._addAriaAndCollapsedClass([e], this._isShown(t)) } } _getFirstLevelChildren(t) { const e = z.find(Ht, this._config.parent); return z.find(t, this._config.parent).filter((t => !e.includes(t))) } _addAriaAndCollapsedClass(t, e) { if (t.length) for (const i of t) i.classList.toggle("collapsed", !e), i.setAttribute("aria-expanded", e) } static jQueryInterface(t) { const e = {}; return "string" == typeof t && /show|hide/.test(t) && (e.toggle = !1), this.each((function () { const i = Rt.getOrCreateInstance(this, e); if ("string" == typeof t) { if (void 0 === i[t]) throw new TypeError(`No method named "${t}"`); i[t]() } })) } } N.on(document, Pt, Wt, (function (t) { ("A" === t.target.tagName || t.delegateTarget && "A" === t.delegateTarget.tagName) && t.preventDefault(); for (const t of z.getMultipleElementsFromSelector(this)) Rt.getOrCreateInstance(t, { toggle: !1 }).toggle() })), m(Rt); var qt = "top", Vt = "bottom", Kt = "right", Qt = "left", Xt = "auto", Yt = [qt, Vt, Kt, Qt], Ut = "start", Gt = "end", Jt = "clippingParents", Zt = "viewport", te = "popper", ee = "reference", ie = Yt.reduce((function (t, e) { return t.concat([e + "-" + Ut, e + "-" + Gt]) }), []), ne = [].concat(Yt, [Xt]).reduce((function (t, e) { return t.concat([e, e + "-" + Ut, e + "-" + Gt]) }), []), se = "beforeRead", oe = "read", re = "afterRead", ae = "beforeMain", le = "main", ce = "afterMain", he = "beforeWrite", de = "write", ue = "afterWrite", fe = [se, oe, re, ae, le, ce, he, de, ue]; function pe(t) { return t ? (t.nodeName || "").toLowerCase() : null } function me(t) { if (null == t) return window; if ("[object Window]" !== t.toString()) { var e = t.ownerDocument; return e && e.defaultView || window } return t } function ge(t) { return t instanceof me(t).Element || t instanceof Element } function _e(t) { return t instanceof me(t).HTMLElement || t instanceof HTMLElement } function be(t) { return "undefined" != typeof ShadowRoot && (t instanceof me(t).ShadowRoot || t instanceof ShadowRoot) } const ve = { name: "applyStyles", enabled: !0, phase: "write", fn: function (t) { var e = t.state;
vendor: 4,737 bytes, line 12
12 Object.keys(e.elements).forEach((function (t) { var i = e.styles[t] || {}, n = e.attributes[t] || {}, s = e.elements[t]; _e(s) && pe(s) && (Object.assign(s.style, i), Object.keys(n).forEach((function (t) { var e = n[t]; !1 === e ? s.removeAttribute(t) : s.setAttribute(t, !0 === e ? "" : e) }))) })) }, effect: function (t) { var e = t.state, i = { popper: { position: e.options.strategy, left: "0", top: "0", margin: "0" }, arrow: { position: "absolute" }, reference: {} }; return Object.assign(e.elements.popper.style, i.popper), e.styles = i, e.elements.arrow && Object.assign(e.elements.arrow.style, i.arrow), function () { Object.keys(e.elements).forEach((function (t) { var n = e.elements[t], s = e.attributes[t] || {}, o = Object.keys(e.styles.hasOwnProperty(t) ? e.styles[t] : i[t]).reduce((function (t, e) { return t[e] = "", t }), {}); _e(n) && pe(n) && (Object.assign(n.style, o), Object.keys(s).forEach((function (t) { n.removeAttribute(t) }))) })) } }, requires: ["computeStyles"] }; function ye(t) { return t.split("-")[0] } var we = Math.max, Ae = Math.min, Ee = Math.round; function Te() { var t = navigator.userAgentData; return null != t && t.brands && Array.isArray(t.brands) ? t.brands.map((function (t) { return t.brand + "/" + t.version })).join(" ") : navigator.userAgent } function Ce() { return !/^((?!chrome|android).)*safari/i.test(Te()) } function Oe(t, e, i) { void 0 === e && (e = !1), void 0 === i && (i = !1); var n = t.getBoundingClientRect(), s = 1, o = 1; e && _e(t) && (s = t.offsetWidth > 0 && Ee(n.width) / t.offsetWidth || 1, o = t.offsetHeight > 0 && Ee(n.height) / t.offsetHeight || 1); var r = (ge(t) ? me(t) : window).visualViewport, a = !Ce() && i, l = (n.left + (a && r ? r.offsetLeft : 0)) / s, c = (n.top + (a && r ? r.offsetTop : 0)) / o, h = n.width / s, d = n.height / o; return { width: h, height: d, top: c, right: l + h, bottom: c + d, left: l, x: l, y: c } } function xe(t) { var e = Oe(t), i = t.offsetWidth, n = t.offsetHeight; return Math.abs(e.width - i) <= 1 && (i = e.width), Math.abs(e.height - n) <= 1 && (n = e.height), { x: t.offsetLeft, y: t.offsetTop, width: i, height: n } } function ke(t, e) { var i = e.getRootNode && e.getRootNode(); if (t.contains(e)) return !0; if (i && be(i)) { var n = e; do { if (n && t.isSameNode(n)) return !0; n = n.parentNode || n.host } while (n) } return !1 } function Le(t) { return me(t).getComputedStyle(t) } function Se(t) { return ["table", "td", "th"].indexOf(pe(t)) >= 0 } function De(t) { return ((ge(t) ? t.ownerDocument : t.document) || window.document).documentElement } function $e(t) { return "html" === pe(t) ? t : t.assignedSlot || t.parentNode || (be(t) ? t.host : null) || De(t) } function Ie(t) { return _e(t) && "fixed" !== Le(t).position ? t.offsetParent : null } function Ne(t) { for (var e = me(t), i = Ie(t); i && Se(i) && "static" === Le(i).position;)i = Ie(i); return i && ("html" === pe(i) || "body" === pe(i) && "static" === Le(i).position) ? e : i || function (t) { var e = /firefox/i.test(Te()); if (/Trident/i.test(Te()) && _e(t) && "fixed" === Le(t).position) return null; var i = $e(t); for (be(i) && (i = i.host); _e(i) && ["html", "body"].indexOf(pe(i)) < 0;) { var n = Le(i); if ("none" !== n.transform || "none" !== n.perspective || "paint" === n.contain || -1 !== ["transform", "perspective"].indexOf(n.willChange) || e && "filter" === n.willChange || e && n.filter && "none" !== n.filter) return i; i = i.parentNode } return null }(t) || e } function Pe(t) { return ["top", "bottom"].indexOf(t) >= 0 ? "x" : "y" } function je(t, e, i) { return we(t, Ae(e, i)) } function Me(t) { return Object.assign({}, { top: 0, right: 0, bottom: 0, left: 0 }, t) } function Fe(t, e) { return e.reduce((function (e, i) { return e[i] = t, e }), {}) } const He = { name: "arrow", enabled: !0, phase: "main", fn: function (t) { var e, i = t.state, n = t.name, s = t.options, o = i.elements.arrow, r = i.modifiersData.popperOffsets, a = ye(i.placement), l = Pe(a), c = [Qt, Kt].indexOf(a) >= 0 ? "height" : "width"; if (o && r) { var h = function (t, e) { return Me("number" != typeof (t = "function" == typeof t ? t(Object.assign({}, e.rects, { placement: e.placement })) : t) ? t : Fe(t, Yt)) }(s.padding, i), d = xe(o), u = "y" === l ? qt : Qt, f = "y" === l ? Vt : Kt, p = i.rects.reference[c] + i.rects.reference[l] - r[l] - i.rects.popper[c], m = r[l] - i.rects.reference[l], g = Ne(o), _ = g ? "y" === l ? g.clientHeight || 0 : g.clientWidth || 0 : 0, b = p / 2 - m / 2, v = h[u], y = _ - d[c] - h[f], w = _ / 2 - d[c] / 2 + b, A = je(v, w, y), E = l; i.modifiersData[n] = ((e = {})[E] = A, e.centerOffset = A - w, e) } }, effect: function (t) { var e = t.state, i = t.options.element, n = void 0 === i ? "[data-
12popper-arrow]" : i; null != n && ("string" != typeof n || (n = e.elements.popper.querySelector(n))) && ke(e.elements.popper, n) && (e.elements.arrow = n) }, requires: ["popperOffsets"], requiresIfExists: ["preventOverflow"] }; function We(t) { return t.split("-")[1] } var Be = { top: "auto", right: "auto", bottom: "auto", left: "auto" }; function ze(t) { var e, i = t.popper, n = t.popperRect, s = t.placement, o = t.variation, r = t.offsets, a = t.position, l = t.gpuAcceleration, c = t.adaptive, h = t.roundOffsets, d = t.isFixed, u = r.x, f = void 0 === u ? 0 : u, p = r.y, m = void 0 === p ? 0 : p, g = "function" == typeof h ? h({ x: f, y: m }) : { x: f, y: m }; f = g.x, m = g.y; var _ = r.hasOwnProperty("x"), b = r.hasOwnProperty("y"), v = Qt, y = qt, w = window; if (c) { var A = Ne(i), E = "clientHeight", T = "clientWidth"; A === me(i) && "static" !== Le(A = De(i)).position && "absolute" === a && (E = "scrollHeight", T = "scrollWidth"), (s === qt || (s === Qt || s === Kt) && o === Gt) && (y = Vt, m -= (d && A === w && w.visualViewport ? w.visualViewport.height : A[E]) - n.height, m *= l ? 1 : -1), s !== Qt && (s !== qt && s !== Vt || o !== Gt) || (v = Kt, f -= (d && A === w && w.visualViewport ? w.visualViewport.width : A[T]) - n.width, f *= l ? 1 : -1) } var C, O = Object.assign({ position: a }, c && Be), x = !0 === h ? function (t, e) { var i = t.x, n = t.y, s = e.devicePixelRatio || 1; return { x: Ee(i * s) / s || 0, y: Ee(n * s) / s || 0 } }({ x: f, y: m }, me(i)) : { x: f, y: m }; return f = x.x, m = x.y, l ? Object.assign({}, O, ((C = {})[y] = b ? "0" : "", C[v] = _ ? "0" : "", C.transform = (w.devicePixelRatio || 1) <= 1 ? "translate(" + f + "px, " + m + "px)" : "translate3d(" + f + "px, " + m + "px, 0)", C)) : Object.assign({}, O, ((e = {})[y] = b ? m + "px" : "", e[v] = _ ? f + "px" : "", e.transform = "", e)) } const Re = { name: "computeStyles", enabled: !0, phase: "beforeWrite", fn: function (t) { var e = t.state, i = t.options, n = i.gpuAcceleration, s = void 0 === n || n, o = i.adaptive, r = void 0 === o || o, a = i.roundOffsets, l = void 0 === a || a, c = { placement: ye(e.placement), variation: We(e.placement), popper: e.elements.popper, popperRect: e.rects.popper, gpuAcceleration: s, isFixed: "fixed" === e.options.strategy }; null != e.modifiersData.popperOffsets && (e.styles.popper = Object.assign({}, e.styles.popper, ze(Object.assign({}, c, { offsets: e.modifiersData.popperOffsets, position: e.options.strategy, adaptive: r, roundOffsets: l })))), null != e.modifiersData.arrow && (e.styles.arrow = Object.assign({}, e.styles.arrow, ze(Object.assign({}, c, { offsets: e.modifiersData.arrow, position: "absolute", adaptive: !1, roun
vendor: 17,623 bytes, line 12
12dOffsets: l })))), e.attributes.popper = Object.assign({}, e.attributes.popper, { "data-popper-placement": e.placement }) }, data: {} }; var qe = { passive: !0 }; const Ve = { name: "eventListeners", enabled: !0, phase: "write", fn: function () { }, effect: function (t) { var e = t.state, i = t.instance, n = t.options, s = n.scroll, o = void 0 === s || s, r = n.resize, a = void 0 === r || r, l = me(e.elements.popper), c = [].concat(e.scrollParents.reference, e.scrollParents.popper); return o && c.forEach((function (t) { t.addEventListener("scroll", i.update, qe) })), a && l.addEventListener("resize", i.update, qe), function () { o && c.forEach((function (t) { t.removeEventListener("scroll", i.update, qe) })), a && l.removeEventListener("resize", i.update, qe) } }, data: {} }; var Ke = { left: "right", right: "left", bottom: "top", top: "bottom" }; function Qe(t) { return t.replace(/left|right|bottom|top/g, (function (t) { return Ke[t] })) } var Xe = { start: "end", end: "start" }; function Ye(t) { return t.replace(/start|end/g, (function (t) { return Xe[t] })) } function Ue(t) { var e = me(t); return { scrollLeft: e.pageXOffset, scrollTop: e.pageYOffset } } function Ge(t) { return Oe(De(t)).left + Ue(t).scrollLeft } function Je(t) { var e = Le(t), i = e.overflow, n = e.overflowX, s = e.overflowY; return /auto|scroll|overlay|hidden/.test(i + s + n) } function Ze(t) { return ["html", "body", "#document"].indexOf(pe(t)) >= 0 ? t.ownerDocument.body : _e(t) && Je(t) ? t : Ze($e(t)) } function ti(t, e) { var i; void 0 === e && (e = []); var n = Ze(t), s = n === (null == (i = t.ownerDocument) ? void 0 : i.body), o = me(n), r = s ? [o].concat(o.visualViewport || [], Je(n) ? n : []) : n, a = e.concat(r); return s ? a : a.concat(ti($e(r))) } function ei(t) { return Object.assign({}, t, { left: t.x, top: t.y, right: t.x + t.width, bottom: t.y + t.height }) } function ii(t, e, i) { return e === Zt ? ei(function (t, e) { var i = me(t), n = De(t), s = i.visualViewport, o = n.clientWidth, r = n.clientHeight, a = 0, l = 0; if (s) { o = s.width, r = s.height; var c = Ce(); (c || !c && "fixed" === e) && (a = s.offsetLeft, l = s.offsetTop) } return { width: o, height: r, x: a + Ge(t), y: l } }(t, i)) : ge(e) ? function (t, e) { var i = Oe(t, !1, "fixed" === e); return i.top = i.top + t.clientTop, i.left = i.left + t.clientLeft, i.bottom = i.top + t.clientHeight, i.right = i.left + t.clientWidth, i.width = t.clientWidth, i.height = t.clientHeight, i.x = i.left, i.y = i.top, i }(e, i) : ei(function (t) { var e, i = De(t), n = Ue(t), s = null == (e = t.ownerDocument) ? void 0 : e.body, o = we(i.scrollWidth, i.clientWidth, s ? s.scrollWidth : 0, s ? s.clientWidth : 0), r = we(i.scrollHeight, i.clientHeight, s ? s.scrollHeight : 0, s ? s.clientHeight : 0), a = -n.scrollLeft + Ge(t), l = -n.scrollTop; return "rtl" === Le(s || i).direction && (a += we(i.clientWidth, s ? s.clientWidth : 0) - o), { width: o, height: r, x: a, y: l } }(De(t))) } function ni(t) { var e, i = t.reference, n = t.element, s = t.placement, o = s ? ye(s) : null, r = s ? We(s) : null, a = i.x + i.width / 2 - n.width / 2, l = i.y + i.height / 2 - n.height / 2; switch (o) { case qt: e = { x: a, y: i.y - n.height }; break; case Vt: e = { x: a, y: i.y + i.height }; break; case Kt: e = { x: i.x + i.width, y: l }; break; case Qt: e = { x: i.x - n.width, y: l }; break; default: e = { x: i.x, y: i.y } }var c = o ? Pe(o) : null; if (null != c) { var h = "y" === c ? "height" : "width"; switch (r) { case Ut: e[c] = e[c] - (i[h] / 2 - n[h] / 2); break; case Gt: e[c] = e[c] + (i[h] / 2 - n[h] / 2) } } return e } function si(t, e) { void 0 === e && (e = {}); var i = e, n = i.placement, s = void 0 === n ? t.placement : n, o = i.strategy, r = void 0 === o ? t.strategy : o, a = i.boundary, l = void 0 === a ? Jt : a, c = i.rootBoundary, h = void 0 === c ? Zt : c, d = i.elementContext, u = void 0 === d ? te : d, f = i.altBoundary, p = void 0 !== f && f, m = i.padding, g = void 0 === m ? 0 : m, _ = Me("number" != typeof g ? g : Fe(g, Yt)), b = u === te ? ee : te, v = t.rects.popper, y = t.elements[p ? b : u], w = function (t, e, i, n) { var s = "clippingParents" === e ? function (t) { var e = ti($e(t)), i = ["absolute", "fixed"].indexOf(Le(t).position) >= 0 && _e(t) ? Ne(t) : t; return ge(i) ? e.filter((function (t) { return ge(t) && ke(t, i) && "body" !== pe(t) })) : [] }(t) : [].concat(e), o = [].concat(s, [i]), r = o[0], a = o.reduce((function (e, i) { var s = ii(t, i, n); return e.top = we(s.top, e.top), e.right = Ae(s.right, e.right), e.bottom = Ae(s.bottom, e.bottom), e.left = we(s.left, e.left), e }), ii(t, r, n)); return a.width = a.right - a.left, a.height = a.bottom - a.top, a.x = a.left, a.y = a.top, a }(ge(y) ? y : y.contextElement || De(t.elements.popper), l, h, r), A = Oe(t.elements.reference), E = ni({ reference: A, element: v, placement: s }), T = ei(Object.assign({}, v, E)), C = u === te ? T : A, O = { top: w.top - C.top + _.top, bottom: C.bottom - w.bottom + _.bottom, left: w.left - C.left + _.left, right: C.right - w.right + _.right }, x = t.modifiersData.offset; if (u === te && x) { var k = x[s]; Object.keys(O).forEach((function (t) { var e = [Kt, Vt].indexOf(t) >= 0 ? 1 : -1, i = [qt, Vt].indexOf(t) >= 0 ? "y" : "x"; O[t] += k[i] * e })) } return O } function oi(t, e) { void 0 === e && (e = {}); var i = e, n = i.placement, s = i.boundary, o = i.rootBoundary, r = i.padding, a = i.flipVariations, l = i.allowedAutoPlacements, c = void 0 === l ? ne : l, h = We(n), d = h ? a ? ie : ie.filter((function (t) { return We(t) === h })) : Yt, u = d.filter((function (t) { return c.indexOf(t) >= 0 })); 0 === u.length && (u = d); var f = u.reduce((function (e, i) { return e[i] = si(t, { placement: i, boundary: s, rootBoundary: o, padding: r })[ye(i)], e }), {}); return Object.keys(f).sort((function (t, e) { return f[t] - f[e] })) } const ri = { name: "flip", enabled: !0, phase: "main", fn: function (t) { var e = t.state, i = t.options, n = t.name; if (!e.modifiersData[n]._skip) { for (var s = i.mainAxis, o = void 0 === s || s, r = i.altAxis, a = void 0 === r || r, l = i.fallbackPlacements, c = i.padding, h = i.boundary, d = i.rootBoundary, u = i.altBoundary, f = i.flipVariations, p = void 0 === f || f, m = i.allowedAutoPlacements, g = e.options.placement, _ = ye(g), b = l || (_ !== g && p ? function (t) { if (ye(t) === Xt) return []; var e = Qe(t); return [Ye(t), e, Ye(e)] }(g) : [Qe(g)]), v = [g].concat(b).reduce((function (t, i) { return t.concat(ye(i) === Xt ? oi(e, { placement: i, boundary: h, rootBoundary: d, padding: c, flipVariations: p, allowedAutoPlacements: m }) : i) }), []), y = e.rects.reference, w = e.rects.popper, A = new Map, E = !0, T = v[0], C = 0; C < v.length; C++) { var O = v[C], x = ye(O), k = We(O) === Ut, L = [qt, Vt].indexOf(x) >= 0, S = L ? "width" : "height", D = si(e, { placement: O, boundary: h, rootBoundary: d, altBoundary: u, padding: c }), $ = L ? k ? Kt : Qt : k ? Vt : qt; y[S] > w[S] && ($ = Qe($)); var I = Qe($), N = []; if (o && N.push(D[x] <= 0), a && N.push(D[$] <= 0, D[I] <= 0), N.every((function (t) { return t }))) { T = O, E = !1; break } A.set(O, N) } if (E) for (var P = function (t) { var e = v.find((function (e) { var i = A.get(e); if (i) return i.slice(0, t).every((function (t) { return t })) })); if (e) return T = e, "break" }, j = p ? 3 : 1; j > 0 && "break" !== P(j); j--); e.placement !== T && (e.modifiersData[n]._skip = !0, e.placement = T, e.reset = !0) } }, requiresIfExists: ["offset"], data: { _skip: !1 } }; function ai(t, e, i) { return void 0 === i && (i = { x: 0, y: 0 }), { top: t.top - e.height - i.y, right: t.right - e.width + i.x, bottom: t.bottom - e.height + i.y, left: t.left - e.width - i.x } } function li(t) { return [qt, Kt, Vt, Qt].some((function (e) { return t[e] >= 0 })) } const ci = { name: "hide", enabled: !0, phase: "main", requiresIfExists: ["preventOverflow"], fn: function (t) { var e = t.state, i = t.name, n = e.rects.reference, s = e.rects.popper, o = e.modifiersData.preventOverflow, r = si(e, { elementContext: "reference" }), a = si(e, { altBoundary: !0 }), l = ai(r, n), c = ai(a, s, o), h = li(l), d = li(c); e.modifiersData[i] = { referenceClippingOffsets: l, popperEscapeOffsets: c, isReferenceHidden: h, hasPopperEscaped: d }, e.attributes.popper = Object.assign({}, e.attributes.popper, { "data-popper-reference-hidden": h, "data-popper-escaped": d }) } }, hi = { name: "offset", enabled: !0, phase: "main", requires: ["popperOffsets"], fn: function (t) { var e = t.state, i = t.options, n = t.name, s = i.offset, o = void 0 === s ? [0, 0] : s, r = ne.reduce((function (t, i) { return t[i] = function (t, e, i) { var n = ye(t), s = [Qt, qt].indexOf(n) >= 0 ? -1 : 1, o = "function" == typeof i ? i(Object.assign({}, e, { placement: t })) : i, r = o[0], a = o[1]; return r = r || 0, a = (a || 0) * s, [Qt, Kt].indexOf(n) >= 0 ? { x: a, y: r } : { x: r, y: a } }(i, e.rects, o), t }), {}), a = r[e.placement], l = a.x, c = a.y; null != e.modifiersData.popperOffsets && (e.modifiersData.popperOffsets.x += l, e.modifiersData.popperOffsets.y += c), e.modifiersData[n] = r } }, di = { name: "popperOffsets", enabled: !0, phase: "read", fn: function (t) { var e = t.state, i = t.name; e.modifiersData[i] = ni({ reference: e.rects.reference, element: e.rects.popper, placement: e.placement }) }, data: {} }, ui = { name: "preventOverflow", enabled: !0, phase: "main", fn: function (t) { var e = t.state, i = t.options, n = t.name, s = i.mainAxis, o = void 0 === s || s, r = i.altAxis, a = void 0 !== r && r, l = i.boundary, c = i.rootBoundary, h = i.altBoundary, d = i.padding, u = i.tether, f = void 0 === u || u, p = i.tetherOffset, m = void 0 === p ? 0 : p, g = si(e, { boundary: l, rootBoundary: c, padding: d, altBoundary: h }), _ = ye(e.placement), b = We(e.placement), v = !b, y = Pe(_), w = "x" === y ? "y" : "x", A = e.modifiersData.popperOffsets, E = e.rects.reference, T = e.rects.popper, C = "function" == typeof m ? m(Object.assign({}, e.rects, { placement: e.placement })) : m, O = "number" == typeof C ? { mainAxis: C, altAxis: C } : Object.assign({ mainAxis: 0, altAxis: 0 }, C), x = e.modifiersData.offset ? e.modifiersData.offset[e.placement] : null, k = { x: 0, y: 0 }; if (A) { if (o) { var L, S = "y" === y ? qt : Qt, D = "y" === y ? Vt : Kt, $ = "y" === y ? "height" : "width", I = A[y], N = I + g[S], P = I - g[D], j = f ? -T[$] / 2 : 0, M = b === Ut ? E[$] : T[$], F = b === Ut ? -T[$] : -E[$], H = e.elements.arrow, W = f && H ? xe(H) : { width: 0, height: 0 }, B = e.modifiersData["arrow#persistent"] ? e.modifiersData["arrow#persistent"].padding : { top: 0, right: 0, bottom: 0, left: 0 }, z = B[S], R = B[D], q = je(0, E[$], W[$]), V = v ? E[$] / 2 - j - q - z - O.mainAxis : M - q - z - O.mainAxis, K = v ? -E[$] / 2 + j + q + R + O.mainAxis : F + q + R + O.mainAxis, Q = e.elements.arrow && Ne(e.elements.arrow), X = Q ? "y" === y ? Q.clientTop || 0 : Q.clientLeft || 0 : 0, Y = null != (L = null == x ? void 0 : x[y]) ? L : 0, U = I + K - Y, G = je(f ? Ae(N, I + V - Y - X) : N, I, f ? we(P, U) : P); A[y] = G, k[y] = G - I } if (a) { var J, Z = "x" === y ? qt : Qt, tt = "x" === y ? Vt : Kt, et = A[w], it = "y" === w ? "height" : "width", nt = et + g[Z], st = et - g[tt], ot = -1 !== [qt, Qt].indexOf(_), rt = null != (J = null == x ? void 0 : x[w]) ? J : 0, at = ot ? nt : et - E[it] - T[it] - rt + O.altAxis, lt = ot ? et + E[it] + T[it] - rt - O.altAxis : st, ct = f && ot ? function (t, e, i) { var n = je(t, e, i); return n > i ? i : n }(at, et, lt) : je(f ? at : nt, et, f ? lt : st); A[w] = ct, k[w] = ct - et } e.modifiersData[n] = k } }, requiresIfExists: ["offset"] }; function fi(t, e, i) { void 0 === i && (i = !1); var n, s, o = _e(e), r = _e(e) && function (t) { var e = t.getBoundingClientRect(), i = Ee(e.width) / t.offsetWidth || 1, n = Ee(e.height) / t.offsetHeight || 1; return 1 !== i || 1 !== n }(e), a = De(e), l = Oe(t, r, i), c = { scrollLeft: 0, scrollTop: 0 }, h = { x: 0, y: 0 }; return (o || !o && !i) && (("body" !== pe(e) || Je(a)) && (c = (n = e) !== me(n) && _e(n) ? { scrollLeft: (s = n).scrollLeft, scrollTop: s.scrollTop } : Ue(n)), _e(e) ? ((h = Oe(e, !0)).x += e.clientLeft, h.y += e.clientTop) : a && (h.x = Ge(a))), { x: l.left + c.scrollLeft - h.x, y: l.top + c.scrollTop - h.y, width: l.width, height: l.height } } function pi(t) { var e = new Map, i = new Set, n = []; function s(t) { i.add(t.name), [].concat(t.requires || [], t.requiresIfExists || []).forEach((function (t) { if (!i.has(t)) { var n = e.get(t); n && s(n) } })), n.push(t) } return t.forEach((function (t) { e.set(t.name, t) })), t.forEach((function (t) { i.has(t.name) || s(t) })), n } var mi = { placement: "bottom", modifiers: [], strategy: "absolute" }; function gi() { for (var t = arguments.length, e = new Array(t), i = 0; i < t; i++)e[i] = arguments[i]; return !e.some((function (t) { return !(t && "function" == typeof t.getBoundingClientRect) })) } function _i(t) { void 0 === t && (t = {}); var e = t, i = e.defaultModifiers, n = void 0 === i ? [] : i, s = e.defaultOptions, o = void 0 === s ? mi : s; return function (t, e, i) { void 0 === i && (i = o); var s, r, a = { placement: "bottom", orderedModifiers: [], options: Object.assign({}, mi, o), modifiersData: {}, elements: { reference: t, popper: e }, attributes: {}, styles: {} }, l = [], c = !1, h = { state: a, setOptions: function (i) { var s = "function" == typeof i ? i(a.options) : i; d(), a.options = Object.assign({}, o, a.options, s), a.scrollParents = { reference: ge(t) ? ti(t) : t.contextElement ? ti(t.contextElement) : [], popper: ti(e) }; var r, c, u = function (t) { var e = pi(t); return fe.reduce((function (t, i) { return t.concat(e.filter((function (t) { return t.phase === i }))) }), []) }((r = [].concat(n, a.options.modifiers), c = r.reduce((function (t, e) { var i = t[e.name]; return t[e.name] = i ? Object.assign({}, i, e, { options: Object.assign({}, i.options, e.options), data: Object.assign({}, i.data, e.data) }) : e, t }), {}), Object.keys(c).map((function (t) { return c[t] })))); return a.orderedModifiers = u.filter((function (t) { return t.enabled })), a.orderedModifiers.forEach((function (t) { var e = t.name, i = t.options, n = void 0 === i ? {} : i, s = t.effect; if ("function" == typeof s) { var o = s({ state: a, name: e, instance: h, options: n }); l.push(o || function () { }) } })), h.update() }, forceUpdate: function () { if (!c) { var t = a.elements, e = t.reference, i = t.popper; if (gi(e, i)) { a.rects = { reference: fi(e, Ne(i), "fixed" === a.options.strategy), popper: xe(i) }, a.reset = !1, a.placement = a.options.placement, a.orderedModifiers.forEach((function (t) { return a.modifiersData[t.name] = Object.assign({}, t.data) })); for (var n = 0; n < a.orderedModifiers.length; n++)if (!0 !== a.reset) { var s = a.orderedModifiers[n], o = s.fn, r = s.options, l = void 0 === r ? {} : r, d = s.name; "function" == typeof o && (a = o({ state: a, options: l, name: d, instance: h }) || a) } else a.reset = !1, n = -1 } } }, update: (s = function () { return new Promise((function (t) { h.forceUpdate(), t(a) })) }, function () { return r || (r = new Promise((function (t) { Promise.resolve().then((function () { r = void 0, t(s()) })) }))), r }), destroy: function () { d(), c = !0 } }; if (!gi(t, e)) return h; function d() { l.forEach((function (t) { return t() })), l = [] } return h.setOptions(i).then((function (t) { !c && i.onFirstUpdate && i.onFirstUpdate(t) })), h } } var bi = _i(), vi = _i({ defaultModifiers: [Ve, di, Re, ve] }), yi = _i({ defaultModifiers: [Ve, di, Re, ve, hi, ri, ui, He, ci] }); const wi = Object.freeze(Object.defineProperty({ __proto__: null, afterMain: ce, afterRead: re, afterWrite: ue, applyStyles: ve, arrow: He, auto: Xt, basePlacements: Yt, beforeMain: ae, beforeRead: se, beforeWrite: he, bottom: Vt, clippingParents: Jt, computeStyles: Re, createPopper: yi, createPopperBase: bi, createPopperLite: vi, detectOverflow: si, end: Gt, eventListeners: Ve, flip: ri, hide: ci, left: Qt, main: le, modifierPhases: fe, offset: hi, placements: ne, popper: te, popperGenerator: _i, popperOffsets: di, preventOverflow: ui, read: oe, reference: ee, right: Kt, start: Ut, top: qt, variationPlacements: ie, viewport: Zt, write: de }, Symbol.toStringTag, { value: "Module" })), Ai = "dropdown", Ei = ".bs.dropdown", Ti = ".data-api", Ci = "ArrowUp", Oi = "ArrowDown", xi = `hide${Ei}`, ki = `hidden${Ei}`, Li = `show${Ei}`, Si = `shown${Ei}`, Di = `click${Ei}${Ti}`, $i = `keydown${Ei}${Ti}`, Ii = `keyup${Ei}${Ti}`, Ni = "show", Pi = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)', ji = `${Pi}.${Ni}`, Mi = ".dropdown-menu", Fi = p() ? "top-end" : "top-start", Hi = p() ? "top-start" : "top-end", Wi = p() ? "bottom-end" : "bottom-start", Bi = p() ? "bottom-start" : "bottom-end", zi = p() ? "left-start" : "right-start", Ri = p() ? "right-start" : "left-start", qi = { autoClose: !0, boundary: "clippingParents", display: "dynamic", offset: [0, 2], popperConfig: null, reference: "toggle" }, Vi = { autoClose: "(boolean|string)", boundary: "(string|element)", display: "string", offset: "(array|string|function)", popperConfig: "(null|object|function)", reference: "(string|element|object)" }; class Ki extends W { constructor(t, e) { super(t, e), this._popper = null, this._parent = this._element.parentNode, this._menu = z.next(this._element, Mi)[0] || z.prev(this._element, Mi)[0] || z.findOne(Mi, this._parent), this._inNavbar = this._detectNavbar() } static get Default() { return qi } static get DefaultType() { return Vi } static get NAME() { return Ai }
vendor: 2,536 bytes, line 12
12 toggle() { return this._isShown() ? this.hide() : this.show() } show() { if (l(this._element) || this._isShown()) return; const t = { relatedTarget: this._element }; if (!N.trigger(this._element, Li, t).defaultPrevented) { if (this._createPopper(), "ontouchstart" in document.documentElement && !this._parent.closest(".navbar-nav")) for (const t of [].concat(...document.body.children)) N.on(t, "mouseover", h); this._element.focus(), this._element.setAttribute("aria-expanded", !0), this._menu.classList.add(Ni), this._element.classList.add(Ni), N.trigger(this._element, Si, t) } } hide() { if (l(this._element) || !this._isShown()) return; const t = { relatedTarget: this._element }; this._completeHide(t) } dispose() { this._popper && this._popper.destroy(), super.dispose() } update() { this._inNavbar = this._detectNavbar(), this._popper && this._popper.update() } _completeHide(t) { if (!N.trigger(this._element, xi, t).defaultPrevented) { if ("ontouchstart" in document.documentElement) for (const t of [].concat(...document.body.children)) N.off(t, "mouseover", h); this._popper && this._popper.destroy(), this._menu.classList.remove(Ni), this._element.classList.remove(Ni), this._element.setAttribute("aria-expanded", "false"), F.removeDataAttribute(this._menu, "popper"), N.trigger(this._element, ki, t), this._element.focus() } } _getConfig(t) { if ("object" == typeof (t = super._getConfig(t)).reference && !o(t.reference) && "function" != typeof t.reference.getBoundingClientRect) throw new TypeError(`${Ai.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`); return t } _createPopper() { if (void 0 === wi) throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org/docs/v2/)"); let t = this._element; "parent" === this._config.reference ? t = this._parent : o(this._config.reference) ? t = r(this._config.reference) : "object" == typeof this._config.reference && (t = this._config.reference); const e = this._getPopperConfig(); this._popper = yi(t, this._menu, e) } _isShown() { return this._menu.classList.contains(Ni) } _getPlacement() { const t = this._parent; if (t.classList.contains("dropend")) return zi; if (t.classList.contains("dropstart")) return Ri; if (t.classList.contains("dropup-center")) return "top"; if (t.classList.contains("dropdown-center")) return "bottom"; const e = "end" === getComputedStyle(this._menu).getPropertyValue("--bs-position").trim(); return t.classList.contains("dropup") ? e ? Hi : Fi : e ? Bi : Wi }
vendor: 11,451 bytes, line 12
12 _detectNavbar() { return null !== this._element.closest(".navbar") } _getOffset() { const { offset: t } = this._config; return "string" == typeof t ? t.split(",").map((t => Number.parseInt(t, 10))) : "function" == typeof t ? e => t(e, this._element) : t } _getPopperConfig() { const t = { placement: this._getPlacement(), modifiers: [{ name: "preventOverflow", options: { boundary: this._config.boundary } }, { name: "offset", options: { offset: this._getOffset() } }] }; return (this._inNavbar || "static" === this._config.display) && (F.setDataAttribute(this._menu, "popper", "static"), t.modifiers = [{ name: "applyStyles", enabled: !1 }]), { ...t, ...g(this._config.popperConfig, [void 0, t]) } } _selectMenuItem({ key: t, target: e }) { const i = z.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)", this._menu).filter((t => a(t))); i.length && b(i, e, t === Oi, !i.includes(e)).focus() } static jQueryInterface(t) { return this.each((function () { const e = Ki.getOrCreateInstance(this, t); if ("string" == typeof t) { if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`); e[t]() } })) } static clearMenus(t) { if (2 === t.button || "keyup" === t.type && "Tab" !== t.key) return; const e = z.find(ji); for (const i of e) { const e = Ki.getInstance(i); if (!e || !1 === e._config.autoClose) continue; const n = t.composedPath(), s = n.includes(e._menu); if (n.includes(e._element) || "inside" === e._config.autoClose && !s || "outside" === e._config.autoClose && s) continue; if (e._menu.contains(t.target) && ("keyup" === t.type && "Tab" === t.key || /input|select|option|textarea|form/i.test(t.target.tagName))) continue; const o = { relatedTarget: e._element }; "click" === t.type && (o.clickEvent = t), e._completeHide(o) } } static dataApiKeydownHandler(t) { const e = /input|textarea/i.test(t.target.tagName), i = "Escape" === t.key, n = [Ci, Oi].includes(t.key); if (!n && !i) return; if (e && !i) return; t.preventDefault(); const s = this.matches(Pi) ? this : z.prev(this, Pi)[0] || z.next(this, Pi)[0] || z.findOne(Pi, t.delegateTarget.parentNode), o = Ki.getOrCreateInstance(s); if (n) return t.stopPropagation(), o.show(), void o._selectMenuItem(t); o._isShown() && (t.stopPropagation(), o.hide(), s.focus()) } } N.on(document, $i, Pi, Ki.dataApiKeydownHandler), N.on(document, $i, Mi, Ki.dataApiKeydownHandler), N.on(document, Di, Ki.clearMenus), N.on(document, Ii, Ki.clearMenus), N.on(document, Di, Pi, (function (t) { t.preventDefault(), Ki.getOrCreateInstance(this).toggle() })), m(Ki); const Qi = "backdrop", Xi = "show", Yi = `mousedown.bs.${Qi}`, Ui = { className: "modal-backdrop", clickCallback: null, isAnimated: !1, isVisible: !0, rootElement: "body" }, Gi = { className: "string", clickCallback: "(function|null)", isAnimated: "boolean", isVisible: "boolean", rootElement: "(element|string)" }; class Ji extends H { constructor(t) { super(), this._config = this._getConfig(t), this._isAppended = !1, this._element = null } static get Default() { return Ui } static get DefaultType() { return Gi } static get NAME() { return Qi } show(t) { if (!this._config.isVisible) return void g(t); this._append(); const e = this._getElement(); this._config.isAnimated && d(e), e.classList.add(Xi), this._emulateAnimation((() => { g(t) })) } hide(t) { this._config.isVisible ? (this._getElement().classList.remove(Xi), this._emulateAnimation((() => { this.dispose(), g(t) }))) : g(t) } dispose() { this._isAppended && (N.off(this._element, Yi), this._element.remove(), this._isAppended = !1) } _getElement() { if (!this._element) { const t = document.createElement("div"); t.className = this._config.className, this._config.isAnimated && t.classList.add("fade"), this._element = t } return this._element } _configAfterMerge(t) { return t.rootElement = r(t.rootElement), t } _append() { if (this._isAppended) return; const t = this._getElement(); this._config.rootElement.append(t), N.on(t, Yi, (() => { g(this._config.clickCallback) })), this._isAppended = !0 } _emulateAnimation(t) { _(t, this._getElement(), this._config.isAnimated) } } const Zi = ".bs.focustrap", tn = `focusin${Zi}`, en = `keydown.tab${Zi}`, nn = "backward", sn = { autofocus: !0, trapElement: null }, on = { autofocus: "boolean", trapElement: "element" }; class rn extends H { constructor(t) { super(), this._config = this._getConfig(t), this._isActive = !1, this._lastTabNavDirection = null } static get Default() { return sn } static get DefaultType() { return on } static get NAME() { return "focustrap" } activate() { this._isActive || (this._config.autofocus && this._config.trapElement.focus(), N.off(document, Zi), N.on(document, tn, (t => this._handleFocusin(t))), N.on(document, en, (t => this._handleKeydown(t))), this._isActive = !0) } deactivate() { this._isActive && (this._isActive = !1, N.off(document, Zi)) } _handleFocusin(t) { const { trapElement: e } = this._config; if (t.target === document || t.target === e || e.contains(t.target)) return; const i = z.focusableChildren(e); 0 === i.length ? e.focus() : this._lastTabNavDirection === nn ? i[i.length - 1].focus() : i[0].focus() } _handleKeydown(t) { "Tab" === t.key && (this._lastTabNavDirection = t.shiftKey ? nn : "forward") } } const an = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top", ln = ".sticky-top", cn = "padding-right", hn = "margin-right"; class dn { constructor() { this._element = document.body } getWidth() { const t = document.documentElement.clientWidth; return Math.abs(window.innerWidth - t) } hide() { const t = this.getWidth(); this._disableOverFlow(), this._setElementAttributes(this._element, cn, (e => e + t)), this._setElementAttributes(an, cn, (e => e + t)), this._setElementAttributes(ln, hn, (e => e - t)) } reset() { this._resetElementAttributes(this._element, "overflow"), this._resetElementAttributes(this._element, cn), this._resetElementAttributes(an, cn), this._resetElementAttributes(ln, hn) } isOverflowing() { return this.getWidth() > 0 } _disableOverFlow() { this._saveInitialAttribute(this._element, "overflow"), this._element.style.overflow = "hidden" } _setElementAttributes(t, e, i) { const n = this.getWidth(); this._applyManipulationCallback(t, (t => { if (t !== this._element && window.innerWidth > t.clientWidth + n) return; this._saveInitialAttribute(t, e); const s = window.getComputedStyle(t).getPropertyValue(e); t.style.setProperty(e, `${i(Number.parseFloat(s))}px`) })) } _saveInitialAttribute(t, e) { const i = t.style.getPropertyValue(e); i && F.setDataAttribute(t, e, i) } _resetElementAttributes(t, e) { this._applyManipulationCallback(t, (t => { const i = F.getDataAttribute(t, e); null !== i ? (F.removeDataAttribute(t, e), t.style.setProperty(e, i)) : t.style.removeProperty(e) })) } _applyManipulationCallback(t, e) { if (o(t)) e(t); else for (const i of z.find(t, this._element)) e(i) } } const un = ".bs.modal", fn = `hide${un}`, pn = `hidePrevented${un}`, mn = `hidden${un}`, gn = `show${un}`, _n = `shown${un}`, bn = `resize${un}`, vn = `click.dismiss${un}`, yn = `mousedown.dismiss${un}`, wn = `keydown.dismiss${un}`, An = `click${un}.data-api`, En = "modal-open", Tn = "show", Cn = "modal-static", On = { backdrop: !0, focus: !0, keyboard: !0 }, xn = { backdrop: "(boolean|string)", focus: "boolean", keyboard: "boolean" }; class kn extends W { constructor(t, e) { super(t, e), this._dialog = z.findOne(".modal-dialog", this._element), this._backdrop = this._initializeBackDrop(), this._focustrap = this._initializeFocusTrap(), this._isShown = !1, this._isTransitioning = !1, this._scrollBar = new dn, this._addEventListeners() } static get Default() { return On } static get DefaultType() { return xn } static get NAME() { return "modal" } toggle(t) { return this._isShown ? this.hide() : this.show(t) } show(t) { this._isShown || this._isTransitioning || N.trigger(this._element, gn, { relatedTarget: t }).defaultPrevented || (this._isShown = !0, this._isTransitioning = !0, this._scrollBar.hide(), document.body.classList.add(En), this._adjustDialog(), this._backdrop.show((() => this._showElement(t)))) } hide() { this._isShown && !this._isTransitioning && (N.trigger(this._element, fn).defaultPrevented || (this._isShown = !1, this._isTransitioning = !0, this._focustrap.deactivate(), this._element.classList.remove(Tn), this._queueCallback((() => this._hideModal()), this._element, this._isAnimated()))) } dispose() { N.off(window, un), N.off(this._dialog, un), this._backdrop.dispose(), this._focustrap.deactivate(), super.dispose() } handleUpdate() { this._adjustDialog() } _initializeBackDrop() { return new Ji({ isVisible: Boolean(this._config.backdrop), isAnimated: this._isAnimated() }) } _initializeFocusTrap() { return new rn({ trapElement: this._element }) } _showElement(t) { document.body.contains(this._element) || document.body.append(this._element), this._element.style.display = "block", this._element.removeAttribute("aria-hidden"), this._element.setAttribute("aria-modal", !0), this._element.setAttribute("role", "dialog"), this._element.scrollTop = 0; const e = z.findOne(".modal-body", this._dialog); e && (e.scrollTop = 0), d(this._element), this._element.classList.add(Tn), this._queueCallback((() => { this._config.focus && this._focustrap.activate(), this._isTransitioning = !1, N.trigger(this._element, _n, { relatedTarget: t }) }), this._dialog, this._isAnimated()) } _addEventListeners() { N.on(this._element, wn, (t => { "Escape" === t.key && (this._config.keyboard ? this.hide() : this._triggerBackdropTransition()) })), N.on(window, bn, (() => { this._isShown && !this._isTransitioning && this._adjustDialog() })), N.on(this._element, yn, (t => { N.one(this._element, vn, (e => { this._element === t.target && this._element === e.target && ("static" !== this._config.backdrop ? this._config.backdrop && this.hide() : this._triggerBackdropTransition()) })) })) } _hideModal() { this._element.style.display = "none", this._element.setAttribute("aria-hidden", !0), this._element.removeAttribute("aria-modal"), this._element.removeAttribute("role"), this._isTransitioning = !1, this._backdrop.hide((() => { document.body.classList.remove(En), this._resetAdjustments(), this._scrollBar.reset(), N.trigger(this._element, mn) })) } _isAnimated() { return this._element.classList.contains("fade") } _triggerBackdropTransition() { if (N.trigger(this._element, pn).defaultPrevented) return; const t = this._element.scrollHeight > document.documentElement.clientHeight, e = this._element.style.overflowY; "hidden" === e || this._element.classList.contains(Cn) || (t || (this._element.style.overflowY = "hidden"), this._element.classList.add(Cn), this._queueCallback((() => { this._element.classList.remove(Cn), this._queueCallback((() => { this._element.style.overflowY = e }), this._dialog) }), this._dialog), this._element.focus()) } _adjustDialog() { const t = this._element.scrollHeight > document.documentElement.clientHeight, e = this._scrollBar.getWidth(), i = e > 0; if (i && !t) { const t = p() ? "paddingLeft" : "paddingRight"; this._element.style[t] = `${e}px` } if (!i && t) { const t = p() ? "paddingRight" : "paddingLeft"; this._element.style[t] = `${e}px` } } _resetAdjustments() { this._element.style.paddingLeft = "", this._element.style.paddingRight = "" } static jQueryInterface(t, e) { return this.each((function () { const i = kn.getOrCreateInstance(this, t); if ("string" == typeof t) { if (void 0 === i[t]) throw new TypeError(`No method n
12amed "${t}"`); i[t](e) } })) } } N.on(document, An, '[data-bs-toggle="modal"]', (function (t) { const e = z.getElementFromSelector(this);["A", "AREA"].includes(this.tagName) && t.preventDefault(), N.one(e, gn, (t => { t.defaultPrevented || N.one(e, mn, (() => { a(this) && this.focus() })) })); const i = z.findOne(".modal.show"); i && kn.getInstance(i).hide(), kn.getOrCreateInstance(e).toggle(this) })), R(kn), m(kn); const Ln = ".bs.offcanvas", Sn = ".data-api", Dn = `load${Ln}${Sn}`, $n = "show", In = "showing", Nn = "hiding", Pn = ".offcanvas.show", jn = `show${Ln}`, Mn = `shown${Ln}`, Fn = `hide${Ln}`, Hn = `hidePrevented${Ln}`, Wn = `hidden${Ln}`, Bn = `resize${Ln}`, zn = `click${Ln}${Sn}`, Rn = `keydown.dismiss${Ln}`, qn = { backdrop: !0, keyboard: !0, scroll: !1 }, Vn = { backdrop: "(boolean|string)", keyboard: "boolean", scroll: "boolean" }; class Kn extends W { constructor(t, e) { super(t, e), this._isShown = !1, this._backdrop = this._initializeBackDrop(), this._focustrap = this._initializeFocusTrap(), this._addEventListeners() } static get Default() { return qn } static get DefaultType() { return Vn } static get NAME() { return "offcanvas" } toggle(t) { return this._isShown ? this.hide() : this.show(t) } show(t) { this._isShown || N.trigger(this._element, jn, { relatedTarget: t }).defaultPrevented || (this._isShown = !0, this._backdrop.show(), this._config.scroll || (new dn).hide(), this._element.setAttribute("aria-modal", !0), this._element.setAttribute("role", "dialog"), this._element.classList.add(In), this._queueCallback((() => { this._config.scroll && !this._config.backdrop || this._focustrap.activate(), this._element.classList.add($n), this._element.classList.remove(In), N.trigger(this._element, Mn, { relatedTarget: t }) }), this._element, !0)) } hide() { this._isShown && (N.trigger(this._element, Fn).defaultPrevented || (this._focustrap.deactivate(), this._element.blur(), this._isShown = !1, this._element.classList.add(Nn), this._backdrop.hide(), this._queueCallback((() => { this._element.classList.remove($n, Nn), this._element.removeAttribute("aria-modal"), this._element.removeAttribute("role"), this._config.scroll || (new dn).reset(), N.trigger(this._element, Wn) }), this._element, !0))) } dispose() { this._backdrop.dispose(), this._focustrap.deactivate(), super.dispose() } _initializeBackDrop() { const t = Boolean(this._config.backdrop); return new Ji({ className: "offcanvas-backdrop", isVisible: t, isAnimated: !0, rootElement: this._element.parentNode, clickCallback: t ? () => { "static" !== this._config.backdrop ? this.hide() : N.trigger(this._element, Hn) } : null }) } _initializeFocusTrap() { return new rn({ trapElement: this._element }) } _addEventListeners() { N.on(this._element, Rn, (t => { "Escape" === t.key && (this._config.keyboard ? this.hide() : N.trigger(this._element, Hn)) })) } static jQueryInterface(t) { return this.each((function () { const e = Kn.getOrCreateInstance(this, t); if ("string" == typeof t) { if (void 0 === e[t] || t.startsWith("_") || "constructor" === t) throw new TypeError(`No method named "${t}"`); e[t](this) } })) } } N.on(document, zn, '[data-bs-toggle="offcanvas"]', (function (t) { const e = z.getElementFromSelector(this); if (["A", "AREA"].includes(this.tagName) && t.preventDefault(), l(this)) return; N.one(e, Wn, (() => { a(this) && this.focus() })); const i = z.findOne(Pn); i && i !== e && Kn.getInstance(i).hide(), Kn.getOrCreateInstance(e).toggle(this) })), N.on(window, Dn, (() => { for (const t of z.find(Pn)) Kn.getOrCreateInstance(t).show() })), N.on(window, Bn, (() => { for (const t of z.find("[aria-modal][class*=show][class*=offcanvas-]")) "fixed" !== getComputedStyle(t).position && Kn.getOrCreateInstance(t).hide() })), R(Kn), m(Kn); const Qn = { "*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i], a: ["target", "href", "title", "rel"], area: [], b: [], br: [], col: [], code: [], dd: [], div: [], dl: [], dt: [], em: [], hr: [], h1: [], h2: [], h3: [], h4: [], h5: [], h6: [], i: [], img: ["src", "srcset", "alt", "title", "width", "height"], li: [], ol: [], p: [], pre: [], s: [], small: [], span: [], sub: [], sup: [], strong: [], u: [], ul: [] }, Xn = new Set(["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"]), Yn = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i, Un = (t, e) => { const i = t.nodeName.toLowerCase();
vendor: 12,781 bytes, line 12
12 return e.includes(i) ? !Xn.has(i) || Boolean(Yn.test(t.nodeValue)) : e.filter((t => t instanceof RegExp)).some((t => t.test(i))) }, Gn = { allowList: Qn, content: {}, extraClass: "", html: !1, sanitize: !0, sanitizeFn: null, template: "<div></div>" }, Jn = { allowList: "object", content: "object", extraClass: "(string|function)", html: "boolean", sanitize: "boolean", sanitizeFn: "(null|function)", template: "string" }, Zn = { entry: "(string|element|function|null)", selector: "(string|element)" }; class ts extends H { constructor(t) { super(), this._config = this._getConfig(t) } static get Default() { return Gn } static get DefaultType() { return Jn } static get NAME() { return "TemplateFactory" } getContent() { return Object.values(this._config.content).map((t => this._resolvePossibleFunction(t))).filter(Boolean) } hasContent() { return this.getContent().length > 0 } changeContent(t) { return this._checkContent(t), this._config.content = { ...this._config.content, ...t }, this } toHtml() { const t = document.createElement("div"); t.innerHTML = this._maybeSanitize(this._config.template); for (const [e, i] of Object.entries(this._config.content)) this._setContent(t, i, e); const e = t.children[0], i = this._resolvePossibleFunction(this._config.extraClass); return i && e.classList.add(...i.split(" ")), e } _typeCheckConfig(t) { super._typeCheckConfig(t), this._checkContent(t.content) } _checkContent(t) { for (const [e, i] of Object.entries(t)) super._typeCheckConfig({ selector: e, entry: i }, Zn) } _setContent(t, e, i) { const n = z.findOne(i, t); n && ((e = this._resolvePossibleFunction(e)) ? o(e) ? this._putElementInTemplate(r(e), n) : this._config.html ? n.innerHTML = this._maybeSanitize(e) : n.textContent = e : n.remove()) } _maybeSanitize(t) { return this._config.sanitize ? function (t, e, i) { if (!t.length) return t; if (i && "function" == typeof i) return i(t); const n = (new window.DOMParser).parseFromString(t, "text/html"), s = [].concat(...n.body.querySelectorAll("*")); for (const t of s) { const i = t.nodeName.toLowerCase(); if (!Object.keys(e).includes(i)) { t.remove(); continue } const n = [].concat(...t.attributes), s = [].concat(e["*"] || [], e[i] || []); for (const e of n) Un(e, s) || t.removeAttribute(e.nodeName) } return n.body.innerHTML }(t, this._config.allowList, this._config.sanitizeFn) : t } _resolvePossibleFunction(t) { return g(t, [void 0, this]) } _putElementInTemplate(t, e) { if (this._config.html) return e.innerHTML = "", void e.append(t); e.textContent = t.textContent } } const es = new Set(["sanitize", "allowList", "sanitizeFn"]), is = "fade", ns = "show", ss = ".tooltip-inner", os = ".modal", rs = "hide.bs.modal", as = "hover", ls = "focus", cs = { AUTO: "auto", TOP: "top", RIGHT: p() ? "left" : "right", BOTTOM: "bottom", LEFT: p() ? "right" : "left" }, hs = { allowList: Qn, animation: !0, boundary: "clippingParents", container: !1, customClass: "", delay: 0, fallbackPlacements: ["top", "right", "bottom", "left"], html: !1, offset: [0, 6], placement: "top", popperConfig: null, sanitize: !0, sanitizeFn: null, selector: !1, template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', title: "", trigger: "hover focus" }, ds = { allowList: "object", animation: "boolean", boundary: "(string|element)", container: "(string|element|boolean)", customClass: "(string|function)", delay: "(number|object)", fallbackPlacements: "array", html: "boolean", offset: "(array|string|function)", placement: "(string|function)", popperConfig: "(null|object|function)", sanitize: "boolean", sanitizeFn: "(null|function)", selector: "(string|boolean)", template: "string", title: "(string|element|function)", trigger: "string" }; class us extends W { constructor(t, e) { if (void 0 === wi) throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org/docs/v2/)"); super(t, e), this._isEnabled = !0, this._timeout = 0, this._isHovered = null, this._activeTrigger = {}, this._popper = null, this._templateFactory = null, this._newContent = null, this.tip = null, this._setListeners(), this._config.selector || this._fixTitle() } static get Default() { return hs } static get DefaultType() { return ds } static get NAME() { return "tooltip" } enable() { this._isEnabled = !0 } disable() { this._isEnabled = !1 } toggleEnabled() { this._isEnabled = !this._isEnabled } toggle() { this._isEnabled && (this._isShown() ? this._leave() : this._enter()) } dispose() { clearTimeout(this._timeout), N.off(this._element.closest(os), rs, this._hideModalHandler), this._element.getAttribute("data-bs-original-title") && this._element.setAttribute("title", this._element.getAttribute("data-bs-original-title")), this._disposePopper(), super.dispose() } show() { if ("none" === this._element.style.display) throw new Error("Please use show on visible elements"); if (!this._isWithContent() || !this._isEnabled) return; const t = N.trigger(this._element, this.constructor.eventName("show")), e = (c(this._element) || this._element.ownerDocument.documentElement).contains(this._element); if (t.defaultPrevented || !e) return; this._disposePopper(); const i = this._getTipElement(); this._element.setAttribute("aria-describedby", i.getAttribute("id")); const { container: n } = this._config; if (this._element.ownerDocument.documentElement.contains(this.tip) || (n.append(i), N.trigger(this._element, this.constructor.eventName("inserted"))), this._popper = this._createPopper(i), i.classList.add(ns), "ontouchstart" in document.documentElement) for (const t of [].concat(...document.body.children)) N.on(t, "mouseover", h); this._queueCallback((() => { N.trigger(this._element, this.constructor.eventName("shown")), !1 === this._isHovered && this._leave(), this._isHovered = !1 }), this.tip, this._isAnimated()) } hide() { if (this._isShown() && !N.trigger(this._element, this.constructor.eventName("hide")).defaultPrevented) { if (this._getTipElement().classList.remove(ns), "ontouchstart" in document.documentElement) for (const t of [].concat(...document.body.children)) N.off(t, "mouseover", h); this._activeTrigger.click = !1, this._activeTrigger[ls] = !1, this._activeTrigger[as] = !1, this._isHovered = null, this._queueCallback((() => { this._isWithActiveTrigger() || (this._isHovered || this._disposePopper(), this._element.removeAttribute("aria-describedby"), N.trigger(this._element, this.constructor.eventName("hidden"))) }), this.tip, this._isAnimated()) } } update() { this._popper && this._popper.update() } _isWithContent() { return Boolean(this._getTitle()) } _getTipElement() { return this.tip || (this.tip = this._createTipElement(this._newContent || this._getContentForTemplate())), this.tip } _createTipElement(t) { const e = this._getTemplateFactory(t).toHtml(); if (!e) return null; e.classList.remove(is, ns), e.classList.add(`bs-${this.constructor.NAME}-auto`); const i = (t => { do { t += Math.floor(1e6 * Math.random()) } while (document.getElementById(t)); return t })(this.constructor.NAME).toString(); return e.setAttribute("id", i), this._isAnimated() && e.classList.add(is), e } setContent(t) { this._newContent = t, this._isShown() && (this._disposePopper(), this.show()) } _getTemplateFactory(t) { return this._templateFactory ? this._templateFactory.changeContent(t) : this._templateFactory = new ts({ ...this._config, content: t, extraClass: this._resolvePossibleFunction(this._config.customClass) }), this._templateFactory } _getContentForTemplate() { return { [ss]: this._getTitle() } } _getTitle() { return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute("data-bs-original-title") } _initializeOnDelegatedTarget(t) { return this.constructor.getOrCreateInstance(t.delegateTarget, this._getDelegateConfig()) } _isAnimated() { return this._config.animation || this.tip && this.tip.classList.contains(is) } _isShown() { return this.tip && this.tip.classList.contains(ns) } _createPopper(t) { const e = g(this._config.placement, [this, t, this._element]), i = cs[e.toUpperCase()]; return yi(this._element, t, this._getPopperConfig(i)) } _getOffset() { const { offset: t } = this._config; return "string" == typeof t ? t.split(",").map((t => Number.parseInt(t, 10))) : "function" == typeof t ? e => t(e, this._element) : t } _resolvePossibleFunction(t) { return g(t, [this._element, this._element]) } _getPopperConfig(t) { const e = { placement: t, modifiers: [{ name: "flip", options: { fallbackPlacements: this._config.fallbackPlacements } }, { name: "offset", options: { offset: this._getOffset() } }, { name: "preventOverflow", options: { boundary: this._config.boundary } }, { name: "arrow", options: { element: `.${this.constructor.NAME}-arrow` } }, { name: "preSetPlacement", enabled: !0, phase: "beforeMain", fn: t => { this._getTipElement().setAttribute("data-popper-placement", t.state.placement) } }] }; return { ...e, ...g(this._config.popperConfig, [void 0, e]) } } _setListeners() { const t = this._config.trigger.split(" "); for (const e of t) if ("click" === e) N.on(this._element, this.constructor.eventName("click"), this._config.selector, (t => { this._initializeOnDelegatedTarget(t).toggle() })); else if ("manual" !== e) { const t = e === as ? this.constructor.eventName("mouseenter") : this.constructor.eventName("focusin"), i = e === as ? this.constructor.eventName("mouseleave") : this.constructor.eventName("focusout"); N.on(this._element, t, this._config.selector, (t => { const e = this._initializeOnDelegatedTarget(t); e._activeTrigger["focusin" === t.type ? ls : as] = !0, e._enter() })), N.on(this._element, i, this._config.selector, (t => { const e = this._initializeOnDelegatedTarget(t); e._activeTrigger["focusout" === t.type ? ls : as] = e._element.contains(t.relatedTarget), e._leave() })) } this._hideModalHandler = () => { this._element && this.hide() }, N.on(this._element.closest(os), rs, this._hideModalHandler) } _fixTitle() { const t = this._element.getAttribute("title"); t && (this._element.getAttribute("aria-label") || this._element.textContent.trim() || this._element.setAttribute("aria-label", t), this._element.setAttribute("data-bs-original-title", t), this._element.removeAttribute("title")) } _enter() { this._isShown() || this._isHovered ? this._isHovered = !0 : (this._isHovered = !0, this._setTimeout((() => { this._isHovered && this.show() }), this._config.delay.show)) } _leave() { this._isWithActiveTrigger() || (this._isHovered = !1, this._setTimeout((() => { this._isHovered || this.hide() }), this._config.delay.hide)) } _setTimeout(t, e) { clearTimeout(this._timeout), this._timeout = setTimeout(t, e) } _isWithActiveTrigger() { return Object.values(this._activeTrigger).includes(!0) } _getConfig(t) { const e = F.getDataAttributes(this._element); for (const t of Object.keys(e)) es.has(t) && delete e[t]; return t = { ...e, ..."object" == typeof t && t ? t : {} }, t = this._mergeConfigObj(t), t = this._configAfterMerge(t), this._typeCheckConfig(t), t } _configAfterMerge(t) { return t.container = !1 === t.container ? document.body : r(t.container), "number" == typeof t.delay && (t.delay = { show: t.delay, hide: t.delay }), "number" == typeof t.title && (t.title = t.title.toString()), "number" == typeof t.content && (t.content = t.content.toString()), t } _getDelegateConfig() { const t = {}; for (const [e, i] of Object.entries(this._config)) this.constructor.Default[e] !== i && (t[e] = i); return t.selector = !1, t.trigger = "manual", t } _disposePopper() { this._popper && (this._popper.destroy(), this._popper = null), this.tip && (this.tip.remove(), this.tip = null) } static jQueryInterface(t) { return this.each((function () { const e = us.getOrCreateInstance(this, t); if ("string" == typeof t) { if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`); e[t]() } })) } } m(us); const fs = ".popover-header", ps = ".popover-body", ms = { ...us.Default, content: "", offset: [0, 8], placement: "right", template: '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>', trigger: "click" }, gs = { ...us.DefaultType, content: "(null|string|element|function)" }; class _s extends us { static get Default() { return ms } static get DefaultType() { return gs } static get NAME() { return "popover" } _isWithContent() { return this._getTitle() || this._getContent() } _getContentForTemplate() { return { [fs]: this._getTitle(), [ps]: this._getContent() } } _getContent() { return this._resolvePossibleFunction(this._config.content) } static jQueryInterface(t) { return this.each((function () { const e = _s.getOrCreateInstance(this, t); if ("string" == typeof t) { if (void 0 === e[t]) throw new TypeError(`No method n
12amed "${t}"`); e[t]() } })) } } m(_s); const bs = ".bs.scrollspy", vs = `activate${bs}`, ys = `click${bs}`, ws = `load${bs}.data-api`, As = "active", Es = "[href]", Ts = ".nav-link", Cs = `${Ts}, .nav-item > ${Ts}, .list-group-item`, Os = { offset: null, rootMargin: "0px 0px -25%", smoothScroll: !1, target: null, threshold: [.1, .5, 1] }, xs = { offset: "(number|null)", rootMargin: "string", smoothScroll: "boolean", target: "element", threshold: "array" }; class ks extends W { constructor(t, e) { super(t, e), this._targetLinks = new Map, this._observableSections = new Map, this._rootElement = "visible" === getComputedStyle(this._element).overflowY ? null : this._element, this._activeTarget = null, this._observer = null, this._previousScrollData = { visibleEntryTop: 0, parentScrollTop: 0 }, this.refresh() } static get Default() { return Os } static get DefaultType() { return xs } static get NAME() { return "scrollspy" } refresh() { this._initializeTargetsAndObservables(), this._maybeEnableSmoothScroll(), this._observer ? this._observer.disconnect() : this._observer = this._getNewObserver(); for (const t of this._observableSections.values()) this._observer.observe(t) } dispose() { this._observer.disconnect(), super.dispose() } _configAfterMerge(t) { return t.target = r(t.target) || document.body, t.rootMargin = t.offset ? `${t.offset}px 0px -30%` : t.rootMargin, "string" == typeof t.threshold && (t.threshold = t.threshold.split(",").map((t => Number.parseFloat(t)))), t } _maybeEnableSmoothScroll() { this._config.smoothScroll && (N.off(this._config.target, ys), N.on(this._config.target, ys, Es, (t => { const e = this._observableSections.get(t.target.hash); if (e) { t.preventDefault(); const i = this._rootElement || window, n = e.offsetTop - this._element.offsetTop; if (i.scrollTo) return void i.scrollTo({ top: n, behavior: "smooth" }); i.scrollTop = n } }))) } _getNewObserver() { const t = { root: this._rootElement, threshold: this._config.threshold, rootMargin: this._config.rootMargin }; return new IntersectionObserver((t => this._observerCallback(t)), t) } _observerCallback(t) { const e = t => this._targetLinks.get(`#${t.target.id}`), i = t => { this._previousScrollData.visibleEntryTop = t.target.offsetTop, this._process(e(t)) }, n = (this._rootElement || document.documentElement).scrollTop, s = n >= this._previousScrollData.parentScrollTop; this._previousScrollData.parentScrollTop = n; for (const o of t) { if (!o.isIntersecting) { this._activeTarget = null, this._clearActiveClass(e(o)); continue } const t = o.target.offsetTop >= this._previousScrollData.visibleEntryTop; if (s && t) { if (i(o), !n) return } else s || t || i(o) } } _initializeTargetsAndObservables() { this._targetLinks = new Map, this._observableSections = new Map; const t = z.find(Es, this._config.target); for (const e of t) { if (!e.hash || l(e)) continue; const t = z.findOne(decodeURI(e.hash), this._element); a(t) && (this._targetLinks.set(decodeURI(e.hash), e), this._observableSections.set(e.hash, t)) } } _process(t) { this._activeTarget !== t && (this._clearActiveClass(this._config.target), this._activeTarget = t, t.classList.add(As), this._activateParents(t), N.trigger(this._element, vs, { relatedTarget: t })) } _activateParents(t) { if (t.classList.contains("dropdown-item")) z.findOne(".dropdown-toggle", t.closest(".dropdown")).classList.add(As); else for (const e of z.parents(t, ".nav, .list-group")) for (const t of z.prev(e, Cs)) t.classList.add(As) } _clearActiveClass(t) { t.classList.remove(As); const e = z.find(`${Es}.${As}`, t); for (const t of e) t.classList.remove(As) } static jQueryInterface(t) { return this.each((function () { const e = ks.getOrCreateInstance(this, t); if ("string" == typeof t) { if (void 0 === e[t] || t.startsWith("_") || "constructor" === t) throw new TypeError(`No method named "${t}"`); e[t]() } })) } } N.on(window, ws, (() => { for (const t of z.find('[data-bs-spy="scroll"]')) ks.getOrCreateInstance(t) })), m(ks); const Ls = ".bs.tab", Ss = `hide${Ls}`, Ds = `hidden${Ls}`, $s = `show${Ls}`, Is = `shown${Ls}`, Ns = `click${Ls}`, Ps = `keydown${Ls}`, js = `load${Ls}`, Ms = "ArrowLeft", Fs = "ArrowRight", Hs = "ArrowUp", Ws = "ArrowDown", Bs = "Home", zs = "End", Rs = "active", qs = "fade", Vs = "show", Ks = ".dropdown-toggle", Qs = `:not(${Ks})`, Xs = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]', Ys = `.nav-link${Qs}, .list-group-item${Qs}, [role="tab"]${Qs}, ${Xs}`, Us = `.${Rs}[data-bs-toggle="tab"], .${Rs}[data-bs-toggle="pill"], .${Rs}[data-bs-toggle="list"]`; class Gs extends W { constructor(t) { super(t), this._parent = this._element.closest('.list-group, .nav, [role="tablist"]'), this._parent && (this._setInitialAttributes(this._parent, this._getChildren()), N.on(this._element, Ps, (t =>
vendor: 5,867 bytes, line 12
12 this._keydown(t)))) } static get NAME() { return "tab" } show() { const t = this._element; if (this._elemIsActive(t)) return; const e = this._getActiveElem(), i = e ? N.trigger(e, Ss, { relatedTarget: t }) : null; N.trigger(t, $s, { relatedTarget: e }).defaultPrevented || i && i.defaultPrevented || (this._deactivate(e, t), this._activate(t, e)) } _activate(t, e) { t && (t.classList.add(Rs), this._activate(z.getElementFromSelector(t)), this._queueCallback((() => { "tab" === t.getAttribute("role") ? (t.removeAttribute("tabindex"), t.setAttribute("aria-selected", !0), this._toggleDropDown(t, !0), N.trigger(t, Is, { relatedTarget: e })) : t.classList.add(Vs) }), t, t.classList.contains(qs))) } _deactivate(t, e) { t && (t.classList.remove(Rs), t.blur(), this._deactivate(z.getElementFromSelector(t)), this._queueCallback((() => { "tab" === t.getAttribute("role") ? (t.setAttribute("aria-selected", !1), t.setAttribute("tabindex", "-1"), this._toggleDropDown(t, !1), N.trigger(t, Ds, { relatedTarget: e })) : t.classList.remove(Vs) }), t, t.classList.contains(qs))) } _keydown(t) { if (![Ms, Fs, Hs, Ws, Bs, zs].includes(t.key)) return; t.stopPropagation(), t.preventDefault(); const e = this._getChildren().filter((t => !l(t))); let i; if ([Bs, zs].includes(t.key)) i = e[t.key === Bs ? 0 : e.length - 1]; else { const n = [Fs, Ws].includes(t.key); i = b(e, t.target, n, !0) } i && (i.focus({ preventScroll: !0 }), Gs.getOrCreateInstance(i).show()) } _getChildren() { return z.find(Ys, this._parent) } _getActiveElem() { return this._getChildren().find((t => this._elemIsActive(t))) || null } _setInitialAttributes(t, e) { this._setAttributeIfNotExists(t, "role", "tablist"); for (const t of e) this._setInitialAttributesOnChild(t) } _setInitialAttributesOnChild(t) { t = this._getInnerElement(t); const e = this._elemIsActive(t), i = this._getOuterElement(t); t.setAttribute("aria-selected", e), i !== t && this._setAttributeIfNotExists(i, "role", "presentation"), e || t.setAttribute("tabindex", "-1"), this._setAttributeIfNotExists(t, "role", "tab"), this._setInitialAttributesOnTargetPanel(t) } _setInitialAttributesOnTargetPanel(t) { const e = z.getElementFromSelector(t); e && (this._setAttributeIfNotExists(e, "role", "tabpanel"), t.id && this._setAttributeIfNotExists(e, "aria-labelledby", `${t.id}`)) } _toggleDropDown(t, e) { const i = this._getOuterElement(t); if (!i.classList.contains("dropdown")) return; const n = (t, n) => { const s = z.findOne(t, i); s && s.classList.toggle(n, e) }; n(Ks, Rs), n(".dropdown-menu", Vs), i.setAttribute("aria-expanded", e) } _setAttributeIfNotExists(t, e, i) { t.hasAttribute(e) || t.setAttribute(e, i) } _elemIsActive(t) { return t.classList.contains(Rs) } _getInnerElement(t) { return t.matches(Ys) ? t : z.findOne(Ys, t) } _getOuterElement(t) { return t.closest(".nav-item, .list-group-item") || t } static jQueryInterface(t) { return this.each((function () { const e = Gs.getOrCreateInstance(this); if ("string" == typeof t) { if (void 0 === e[t] || t.startsWith("_") || "constructor" === t) throw new TypeError(`No method named "${t}"`); e[t]() } })) } } N.on(document, Ns, Xs, (function (t) { ["A", "AREA"].includes(this.tagName) && t.preventDefault(), l(this) || Gs.getOrCreateInstance(this).show() })), N.on(window, js, (() => { for (const t of z.find(Us)) Gs.getOrCreateInstance(t) })), m(Gs); const Js = ".bs.toast", Zs = `mouseover${Js}`, to = `mouseout${Js}`, eo = `focusin${Js}`, io = `focusout${Js}`, no = `hide${Js}`, so = `hidden${Js}`, oo = `show${Js}`, ro = `shown${Js}`, ao = "hide", lo = "show", co = "showing", ho = { animation: "boolean", autohide: "boolean", delay: "number" }, uo = { animation: !0, autohide: !0, delay: 5e3 }; class fo extends W { constructor(t, e) { super(t, e), this._timeout = null, this._hasMouseInteraction = !1, this._hasKeyboardInteraction = !1, this._setListeners() } static get Default() { return uo } static get DefaultType() { return ho } static get NAME() { return "toast" } show() { N.trigger(this._element, oo).defaultPrevented || (this._clearTimeout(), this._config.animation && this._element.classList.add("fade"), this._element.classList.remove(ao), d(this._element), this._element.classList.add(lo, co), this._queueCallback((() => { this._element.classList.remove(co), N.trigger(this._element, ro), this._maybeScheduleHide() }), this._element, this._config.animation)) } hide() { this.isShown() && (N.trigger(this._element, no).defaultPrevented || (this._element.classList.add(co), this._queueCallback((() => { this._element.classList.add(ao), this._element.classList.remove(co, lo), N.trigger(this._element, so) }), this._element, this._config.animation))) } dispose() { this._clearTimeout(), this.isShown() && this._element.classList.remove(lo), super.dispose() } isShown() { return this._element.classList.contains(lo) } _maybeScheduleHide() { this._config.autohide && (this._hasMouseInteraction || this._hasKeyboardInteraction || (this._timeout = setTimeout((() => { this.hide() }), this._config.delay))) } _onInteraction(t, e) { switch (t.type) { case "mouseover": case "mouseout": this._hasMouseInteraction = e; break; case "focusin": case "focusout": this._hasKeyboardInteraction = e }if (e) return void this._clearTimeout(); const i = t.relatedTarget; this._element === i || this._element.contains(i) || this._maybeScheduleHide() } _setListeners() { N.on(this._element, Zs, (t => this._onInteraction(t, !0))), N.on(this._element, to, (t => this._onInteraction(t, !1))), N.on(this._element, eo, (t => this._onInteraction(t, !0))), N.on(this._element, io, (t => this._onInteraction(t, !1))) } _clearTimeout() { clearTimeout(this._timeout), this._timeout = null } static jQueryInterface(t) { return this.each((function () { const e = fo.getOrCreateInstance(this, t); if ("string" == typeof t) { if (void 0 === e[t]) throw new TypeError(`No method n
12amed "${t}"`); e[t](this) } })) } } return R(fo), m(fo), { Alert: Q, Button: Y, Carousel: Lt, Collapse: Rt, Dropdown: Ki, Modal: kn, Offcanvas: Kn, Popover: _s, ScrollSpy: ks, Tab: Gs, Toast: fo, Tooltip: us } }));
13/*============================================================================================================================*/
14/* jQuery meanMenu v2.0.8 */
15!function (a) { "use strict"; a.fn.meanmenu = function (b) { var c = { meanMenuTarget: jQuery(this), meanMenuContainer: ".nav-container", meanMenuClose: "<span></span><span></span><span></span>", meanMenuCloseSize: "18px", meanMenuOpen: "<span></span><span></span><span></span>", meanRevealPosition: "right", meanRevealPositionDistance: "0", meanRevealColour: "", meanScreenWidth: "992", meanNavPush: "", meanShowChildren: !0, meanExpandableChildren: !0, meanExpand: "+", meanContract: "-", meanRemoveAttrs: !1, onePage: !1, meanDisplay: "block", removeElements: "" }; b = a.extend(c, b); var d = window.innerWidth || document.documentElement.clientWidth; return this.each(function () { var a = b.meanMenuTarget, c = b.meanMenuContainer, e = b.meanMenuClose, f = b.meanMenuCloseSize, g = b.meanMenuOpen, h = b.meanRevealPosition, i = b.meanRevealPositionDistance, j = b.meanRevealColour, k = b.meanScreenWidth, l = b.meanNavPush, m = ".meanmenu-reveal", n = b.meanShowChildren, o = b.meanExpandableChildren, p = b.meanExpand, q = b.meanContract, r = b.meanRemoveAttrs, s = b.onePage, t = b.meanDisplay, u = b.removeElements, v = !1; (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i) || navigator.userAgent.match(/iPad/i) || navigator.userAgent.match(/Android/i) || navigator.userAgent.match(/Blackberry/i) || navigator.userAgent.match(/Windows Phone/i)) && (v = !0), (navigator.userAgent.match(/MSIE 8/i) || navigator.userAgent.match(/MSIE 7/i)) && jQuery("html").css("overflow-y", "scroll"); var w = "", x = function () { if ("center" === h) { var a = window.innerWidth || document.documentElement.clientWidth, b = a / 2 - 22 + "px"; w = "left:" + b + ";right:auto;", v ? jQuery(".meanmenu-reveal").animate({ left: b }) : jQuery(".meanmenu-reveal").css("left", b) } }, y = !1, z = !1; "right" === h && (w = "right:" + i + ";left:auto;"), "left" === h && (w = "left:" + i + ";right:auto;"), x(); var A = "", B = function () { jQuery(A).is(".meanmenu-reveal.meanclose") ? A.html(e) : A.html(g) }, C = function () { jQuery(".mean-bar,.mean-push").remove(), jQuery(c).removeClass("mean-container"), jQuery(a).css("display", t), y = !1, z = !1, jQuery(u).removeClass("mean-remove") }, D = function () { var b = "background:" + j + ";color:" + j + ";" + w; if (d <= k) { jQuery(u).addClass("mean-remove"), z = !0, jQuery(c).addClass("mean-container"), jQuery(".mean-container").prepend('<div class="mean-bar"><a href="#nav" class="meanmenu-reveal" style="' + b + '">Show Navigation</a><nav class="mean-nav"></nav></div>'); var e = jQuery(a).html(); jQuery(".mean-nav").html(e), r && jQuery("nav.mean-nav ul, nav.mean-nav ul *").each(function () { jQuery(this).is(".mean-remove") ? jQuery(this).attr("class", "mean-remove") : jQuery(this).removeAttr("class"), jQuery(this).removeAttr("id") }), jQuery(a).before('<div class="mean-push" />'), jQuery(".mean-push").css("margin-top", l), jQuery(a).hide(), jQuery(".meanmenu-reveal").show(), jQuery(m).html(g), A = jQuery(m), jQuery(".mean-nav ul").hide(), n ? o ? (jQuery(".mean-nav ul ul").each(function () { jQuery(this).children().length && jQuery(this, "li:first").parent().append('<a class="mean-expand" href="#" style="font-size: ' + f + '">' + p + "</a>") }), jQuery(".mean-expand").on("click", function (a) { a.preventDefault(), jQuery(this).hasClass("mean-clicked") ? (jQuery(this).text(p), jQuery(this).prev("ul").slideUp(300, function () { })) : (jQuery(this).text(q), jQuery(this).prev("ul").slideDown(300, function () { })), jQuery(this).toggleClass("mean-clicked") })) : jQuery(".mean-nav ul ul").show() : jQuery(".mean-nav ul ul").hide(), jQuery(".mean-nav ul li").last().addClass("mean-last"), A.removeClass("meanclose"), jQuery(A).click(function (a) { a.preventDefault(), y === !1 ? (A.css("text-align", "center"), A.css("text-indent", "0"), A.css("font-size", f), jQuery(".mean-nav ul:first").slideDown(), y = !0) : (jQuery(".mean-nav ul:first").slideUp(), y = !1), A.toggleClass("meanclose"), B(), jQuery(u).addClass("mean-remove") }), s && jQuery(".mean-nav ul > li > a:first-child").on("click", function () { jQuery(".mean-nav ul:first").slideUp(), y = !1, jQuery(A).toggleClass("meanclose").html(g) }) } else C() }; v || jQuery(window).resize(function () { d = window.innerWidth || document.documentElement.clientWidth, d > k, C(), d <= k ? (D(), x()) : C() }), jQuery(window).resize(function () { d = window.innerWidth || document.documentElement.clientWidth, v ? (x(), d <= k ? z === !1 && D() : C()) : (C(), d <= k && (D(), x())) }), D() }) } }(jQuery);
16/*============================================================================================================================*/
17/*
18 Slick Slider Version: 1.8.1
19*/
20!function (i) { "use strict"; "function" == typeof define && define.amd ? define(["jquery"], i) : "undefined" != typeof exports ? module.exports = i(require("jquery")) : i(jQuery) }(function (a) { "use strict"; var o, r = window.Slick || {}; o = 0, (r = function (i, e) { var t = this; t.defaults = { accessibility: !0, adaptiveHeight: !1, appendArrows: a(i), appendDots: a(i), arrows: !0, asNavFor: null, prevArrow: '<button class="slick-prev" aria-label="Previous" type="button">Previous</button>', nextArrow: '<button class="slick-next" aria-label="Next" type="button">Next</button>', autoplay: !1, autoplaySpeed: 3e3, centerMode: !1, centerPadding: "50px", cssEase: "ease", customPaging: function (i, e) { return a('<button type="button" />').text(e + 1) }, dots: !1, dotsClass: "slick-dots", draggable: !0, easing: "linear", edgeFriction: .35, fade: !1, focusOnSelect: !1, focusOnChange: !1, infinite: !0, initialSlide: 0, lazyLoad: "ondemand", mobileFirst: !1, pauseOnHover: !0, pauseOnFocus: !0, pauseOnDotsHover: !1, respondTo: "window", responsive: null, rows: 1, rtl: !1, slide: "", slidesPerRow: 1, slidesToShow: 1, slidesToScroll: 1, speed: 500, swipe: !0, swipeToSlide: !1, touchMove: !0, touchThreshold: 5, useCSS: !0, useTransform: !0, variableWidth: !1, vertical: !1, verticalSwiping: !1, waitForAnimate: !0, zIndex: 1e3 }, t.initials = { animating: !1, dragging: !1, autoPlayTimer: null, currentDirection: 0, currentLeft: null, currentSlide: 0, direction: 1, $dots: null, listWidth: null, listHeight: null, loadIndex: 0, $nextArrow: null, $prevArrow: null, scrolling: !1, slideCount: null, slideWidth: null, $slideTrack: null, $slides: null, sliding: !1, slideOffset: 0, swipeLeft: null, swiping: !1, $list: null, touchObject: {}, transformsEnabled: !1, unslicked: !1 }, a.extend(t, t.initials), t.activeBreakpoint = null, t.animType = null, t.animProp = null, t.breakpoints = [], t.breakpointSettings = [], t.cssTransitions = !1, t.focussed = !1, t.interrupted = !1, t.hidden = "hidden", t.paused = !0, t.positionProp = null, t.respondTo = null, t.rowCount = 1, t.shouldClick = !0, t.$slider = a(i), t.$slidesCache = null, t.transformType = null, t.transitionType = null, t.visibilityChange = "visibilitychange", t.windowWidth = 0, t.windowTimer = null, i = a(i).data("slick") || {}, t.options = a.extend({}, t.defaults, e, i), t.currentSlide = t.options.initialSlide, t.originalSettings = t.options, void 0 !== document.mozHidden ? (t.hidden = "mozHidden", t.visibilityChange = "mozvisibilitychange") : void 0 !== document.webkitHidden && (t.hidden = "webkitHidden", t.visibilityChange = "webkitvisibilitychange"), t.autoPlay = a.proxy(t.autoPlay, t), t.autoPlayClear = a.proxy(t.autoPlayClear, t), t.autoPlayIterator = a.proxy(t.autoPlayIterator, t), t.changeSlide = a.proxy(t.changeSlide, t), t.clickHandler = a.proxy(t.clickHandler, t), t.selectHandler = a.proxy(t.selectHandler, t), t.setPosition = a.proxy(t.setPosition, t), t.swipeHandler = a.proxy(t.swipeHandler, t), t.dragHandler = a.proxy(t.dragHandler, t), t.keyHandler = a.proxy(t.keyHandler, t), t.instanceUid = o++, t.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/, t.registerBreakpoints(), t.init(!0) }).prototype.activateADA = function () { this.$slideTrack.find(".slick-active").attr({ "aria-hidden": "false" }).find("a, input, button, select").attr({ tabindex: "0" }) }, r.prototype.addSlide = r.prototype.slickAdd = function (i, e, t) { var o = this; if ("boolean" == typeof e) t = e, e = null; else if (e < 0 || e >= o.slideCount) return !1; o.unload(), "number" == typeof e ? 0 === e && 0 === o.$slides.length ? a(i).appendTo(o.$slideTrack) : t ? a(i).insertBefore(o.$slides.eq(e)) : a(i).insertAfter(o.$slides.eq(e)) : !0 === t ? a(i).prependTo(o.$slideTrack) : a(i).appendTo(o.$slideTrack), o.$slides = o.$slideTrack.children(this.options.slide), o.$slideTrack.children(this.options.slide).detach(), o.$slideTrack.append(o.$slides), o.$slides.each(function (i, e) { a(e).attr("data-slick-index", i) }), o.$slidesCache = o.$slides, o.reinit() }, r.prototype.animateHeight = function () { var i, e = this; 1 === e.options.slidesToShow && !0 === e.options.adaptiveHeight && !1 === e.options.vertical && (i = e.$slides.eq(e.currentSlide).outerHeight(!0), e.$list.animate({ height: i }, e.options.speed)) }, r.prototype.animateSlide = function (i, e) { var t = {}, o = this; o.animateHeight(), !0 === o.options.rtl && !1 === o.options.vertical && (i = -i), !1 === o.transformsEnabled ? !1 === o.options.vertical ? o.$slideTrack.animate({ left: i }, o.options.speed, o.options.easing, e) : o.$slideTrack.animate({ top: i }, o.options.speed, o.options.easing, e) : !1 === o.cssTransitions ? (!0 === o.options.rtl && (o.currentLeft = -o.currentLeft), a({ animStart: o.currentLeft }).animate({ animStart: i }, { duration: o.options.speed, easing: o.options.easing, step: function (i) { i = Math.ceil(i), !1 === o.options.vertical ? t[o.animType] = "translate(" + i + "px, 0px)" : t[o.animType] = "translate(0px," + i + "px)", o.$slideTrack.css(t) }, complete: function () { e && e.call() } })) : (o.applyTransition(), i = Math.ceil(i), !1 === o.options.vertical ? t[o.animType] = "translate3d(" + i + "px, 0px, 0px)" : t[o.animType] = "translate3d(0px," + i + "px, 0px)", o.$slideTrack.css(t), e && setTimeout(function () { o.disableTransition(), e.call() }, o.options.speed)) }, r.prototype.getNavTarget = function () { var i = this.options.asNavFor; return i && null !== i && (i = a(i).not(this.$slider)), i }, r.prototype.asNavFor = function (e) { var i = this.getNavTarget(); null !== i && "object" == typeof i && i.each(function () { var i = a(this).slick("getSlick"); i.unslicked || i.slideHandler(e, !0) }) }, r.prototype.applyTransition = function (i) { var e = this, t = {}; !1 === e.options.fade ? t[e.transitionType] = e.transformType + " " + e.options.speed + "ms " + e.options.cssEase : t[e.transitionType] = "opacity " + e.options.speed + "ms " + e.options.cssEase, (!1 === e.options.fade ? e.$slideTrack : e.$slides.eq(i)).css(t) }, r.prototype.autoPlay = function () { var i = this; i.autoPlayClear(), i.slideCount > i.options.slidesToShow && (i.autoPlayTimer = setInterval(i.autoPlayIterator, i.options.autoplaySpeed)) }, r.prototype.autoPlayClear = function () { this.autoPlayTimer && clearInterval(this.autoPlayTimer) }, r.prototype.autoPlayIterator = function () { var i = this, e = i.currentSlide + i.options.slidesToScroll; i.paused || i.interrupted || i.focussed || (!1 === i.options.infinite && (1 === i.direction && i.currentSlide + 1 === i.slideCount - 1 ? i.direction = 0 : 0 === i.direction && (e = i.currentSlide - i.options.slidesToScroll, i.currentSlide - 1 == 0 && (i.direction = 1))), i.slideHandler(e)) }, r.prototype.buildArrows = function () { var i = this; !0 === i.options.arrows && (i.$prevArrow = a(i.options.prevArrow).addClass("slick-arrow"), i.$nextArrow = a(i.options.nextArrow).addClass("slick-arrow"), i.slideCount > i.options.slidesToShow ? (i.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"), i.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"), i.htmlExpr.test(i.options.prevArrow) && i.$prevArrow.prependTo(i.options.appendArrows), i.htmlExpr.test(i.options.nextArrow) && i.$nextArrow.appendTo(i.options.appendArrows), !0 !== i.options.infinite && i.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true")) : i.$prevArrow.add(i.$nextArrow).addClass("slick-hidden").attr({ "aria-disabled": "true", tabindex: "-1" })) }, r.prototype.buildDots = function () { var i, e, t = this; if (!0 === t.options.dots && t.slideCount > t.options.slidesToShow) { for (t.$slider.addClass("slick-dotted"), e = a("<ul />
20").addClass(t.options.dotsClass), i = 0; i <= t.getDotCount(); i += 1)e.append(a("<li />").append(t.options.customPaging.call(this, t, i))); t.$dots = e.appendTo(t.options.appendDots), t.$dots.find("li").first().addClass("slick-active") } }, r.prototype.buildOut = function () { var i = this; i.$slides = i.$slider.children(i.options.slide + ":not(.slick-cloned)").addClass("slick-slide"), i.slideCount = i.$slides.length, i.$slides.each(function (i, e) { a(e).attr("data-slick-index", i).data("originalStyling", a(e).attr("style") || "") }), i.$slider.addClass("slick-slider"), i.$slideTrack = 0 === i.slideCount ? a('<div class="slick-track"/>').appendTo(i.$slider) : i.$slides.wrapAll('<div class="slick-track"/>').parent(), i.$list = i.$slideTrack.wrap('<div class="slick-list"/>').parent(), i.$slideTrack.css("opacity", 0), !0 !== i.options.centerMode && !0 !== i.options.swipeToSlide || (i.options.slidesToScroll = 1), a("img[data-lazy]", i.$slider).not("[src]").addClass("slick-loading"), i.setupInfinite(), i.buildArrows(), i.buildDots(), i.updateDots(), i.setSlideClasses("number" == typeof i.currentSlide ? i.currentSlide : 0), !0 === i.options.draggable && i.$list.addClass("draggable") }, r.prototype.buildRows = function () { var i, e, t, o = this, s = document.createDocumentFragment(), n = o.$slider.children(); if (0 < o.options.rows) { for (t = o.options.slidesPerRow * o.options.rows, e = Math.ceil(n.length / t), i = 0; i < e; i++) { for (var r = document.createElement("div"), l = 0; l < o.options.rows; l++) { for (var d = document.createElement("div"), a = 0; a < o.options.slidesPerRow; a++) { var c = i * t + (l * o.options.slidesPerRow + a); n.get(c) && d.appendChild(n.get(c)) } r.appendChild(d) } s.appendChild(r) } o.$slider.empty().append(s), o.$slider.children().children().children().css({ width: 100 / o.options.slidesPerRow + "%", display: "inline-block" }) } }, r.prototype.checkResponsive = function (i, e) { var t, o, s, n = this, r = !1, l = n.$slider.width(), d = window.innerWidth || a(window).width(); if ("window" === n.respondTo ? s = d : "slider" === n.respondTo ? s = l : "min" === n.respondTo && (s = Math.min(d, l)), n.options.responsive && n.options.responsive.length && null !== n.options.responsive) { for (t in o = null, n.breakpoints) n.breakpoints.hasOwnProperty(t) && (!1 === n.originalSettings.mobileFirst ? s < n.breakpoints[t] && (o = n.breakpoints[t]) : s > n.breakpoints[t] && (o = n.breakpoints[t])); null !== o ? null !== n.activeBreakpoint && o === n.activeBreakpoint && !e || (n.activeBreakpoint = o, "unslick" === n.breakpointSettings[o] ? n.unslick(o) : (n.options = a.extend({}, n.originalSettings, n.breakpointSettings[o]), !0 === i && (n.currentSlide = n.options.initialSlide), n.refresh(i)), r = o) : null !== n.activeBreakpoint && (n.activeBreakpoint = null, n.options = n.originalSettings, !0 === i && (n.currentSlide = n.options.initialSlide), n.refresh(i), r = o), i || !1 === r || n.$slider.trigger("breakpoint", [n, r]) } }, r.prototype.changeSlide = function (i, e) { var t, o = this, s = a(i.currentTarget); switch (s.is("a") && i.preventDefault(), s.is("li") || (s = s.closest("li")), t = o.slideCount % o.options.slidesToScroll != 0 ? 0 : (o.slideCount - o.currentSlide) % o.options.slidesToScroll, i.data.message) { case "previous": n = 0 == t ? o.options.slidesToScroll : o.options.slidesToShow - t, o.slideCount > o.options.slidesToShow && o.slideHandler(o.currentSlide - n, !1, e); break; case "next": n = 0 == t ? o.options.slidesToScroll : t, o.slideCount > o.options.slidesToShow && o.slideHandler(o.currentSlide + n, !1, e); break; case "index": var n = 0 === i.data.index ? 0 : i.data.index || s.index() * o.options.slidesToScroll; o.slideHandler(o.checkNavigable(n), !1, e), s.children().trigger("focus"); break; default: return } }, r.prototype.checkNavigable = function (i) { var e = this.getNavigableIndexes(), t = 0; if (i > e[e.length - 1]) i = e[e.length - 1]; else for (var o in e) { if (i < e[o]) { i = t; break } t = e[o] } return i }, r.prototype.cleanUpEvents = function () { var i = this; i.options.dots && null !== i.$dots && (a("li", i.$dots).off("click.slick", i.changeSlide).off("mouseenter.slick", a.proxy(i.interrupt, i, !0)).off("mouseleave.
20slick", a.proxy(i.interrupt, i, !1)), !0 === i.options.accessibility && i.$dots.off("keydown.slick", i.keyHandler)), i.$slider.off("focus.slick blur.slick"), !0 === i.options.arrows && i.slideCount > i.options.slidesToShow && (i.$prevArrow && i.$prevArrow.off("click.slick", i.changeSlide), i.$nextArrow && i.$nextArrow.off("click.slick", i.changeSlide), !0 === i.options.accessibility && (i.$prevArrow && i.$prevArrow.off("keydown.slick", i.keyHandler), i.$nextArrow && i.$nextArrow.off("keydown.slick", i.keyHandler))), i.$list.off("touchstart.slick mousedown.slick", i.swipeHandler), i.$list.off("touchmove.slick mousemove.slick", i.swipeHandler), i.$list.off("touchend.slick mouseup.slick", i.swipeHandler), i.$list.off("touchcancel.slick mouseleave.slick", i.swipeHandler), i.$list.off("click.slick", i.clickHandler), a(document).off(i.visibilityChange, i.visibility), i.cleanUpSlideEvents(), !0 === i.options.accessibility && i.$list.off("keydown.slick", i.keyHandler), !0 === i.options.focusOnSelect && a(i.$slideTrack).children().off("click.slick", i.selectHandler), a(window).off("orientationchange.slick.slick-" + i.instanceUid, i.orientationChange), a(window).off("resize.slick.slick-" + i.instanceUid, i.resize), a("[draggable!=true]", i.$slideTrack).off("dragstart", i.preventDefault), a(window).off("load.slick.slick-" + i.instanceUid, i.setPosition) }, r.prototype.cleanUpSlideEvents = function () { var i = this; i.$list.off("mouseenter.slick", a.proxy(i.interrupt, i, !0)), i.$list.off("mouseleave.slick", a.proxy(i.interrupt, i, !1)) }, r.prototype.cleanUpRows = function () { var i; 0 < this.options.rows && ((i = this.$slides.children().children()).removeAttr("style"), this.$slider.empty().append(i)) }, r.prototype.clickHandler = function (i) { !1 === this.shouldClick && (i.stopImmediatePropagation(), i.stopPropagation(), i.preventDefault()) }, r.prototype.destroy = function (i) { var e = this; e.autoPlayClear(), e.touchObject = {}, e.cleanUpEvents(), a(".slick-cloned", e.$slider).detach(), e.$dots && e.$dots.remove(), e.$prevArrow && e.$prevArrow.length && (e.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""), e.htmlExpr.test(e.options.prevArrow) && e.$prevArrow.remove()), e.$nextArrow && e.$nextArrow.length && (e.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""), e.htmlExpr.test(e.options.nextArrow) && e.$nextArrow.remove()), e.$slides && (e.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function () { a(this).attr("style", a(this).data("originalStyling")) }), e.$slideTrack.children(this.options.slide).detach(), e.$slideTrack.detach(), e.$list.detach(), e.$slider.append(e.$slides)), e.cleanUpRows(), e.$slider.removeClass("slick-slider"), e.$slider.removeClass("slick-initialized"), e.$slider.removeClass("slick-dotted"), e.unslicked = !0, i || e.$slider.trigger("destroy", [e]) }, r.prototype.disableTransition = function (i) { var e = {}; e[this.transitionType] = "", (!1 === this.options.fade ? this.$slideTrack : this.$slides.eq(i)).css(e) }, r.prototype.fadeSlide = function (i, e) { var t = this; !1 === t.cssTransitions ? (t.$slides.eq(i).css({ zIndex: t.options.zIndex }), t.$slides.eq(i).animate({ opacity: 1 }, t.options.speed, t.options.easing, e)) : (t.applyTransition(i), t.$slides.eq(i).css({ opacity: 1, zIndex: t.options.zIndex }), e && setTimeout(function () { t.disableTransition(i), e.call() }, t.options.speed)) }, r.prototype.fadeSlideOut = function (i) { var e = this; !1 === e.cssTransitions ? e.$slides.eq(i).animate({ opacity: 0, zIndex: e.options.zIndex - 2 }, e.options.speed, e.options.easing) : (e.applyTransition(i), e.$slides.eq(i).css({ opacity: 0, zIndex: e.options.zIndex - 2 })) }, r.prototype.filterSlides = r.prototype.slickFilter = function (i) { var e = this; null !== i && (e.$slidesCache = e.$slides, e.unload(), e.$slideTrack.children(this.options.slide).detach(), e.$slidesCache.filter(i).appendTo(e.$slideTrack), e.reinit()) }
vendor: 5,376 bytes, line 20
20, r.prototype.focusHandler = function () { var t = this; t.$slider.off("focus.slick blur.slick").on("focus.slick", "*", function (i) { var e = a(this); setTimeout(function () { t.options.pauseOnFocus && e.is(":focus") && (t.focussed = !0, t.autoPlay()) }, 0) }).on("blur.slick", "*", function (i) { a(this); t.options.pauseOnFocus && (t.focussed = !1, t.autoPlay()) }) }, r.prototype.getCurrent = r.prototype.slickCurrentSlide = function () { return this.currentSlide }, r.prototype.getDotCount = function () { var i = this, e = 0, t = 0, o = 0; if (!0 === i.options.infinite) if (i.slideCount <= i.options.slidesToShow) ++o; else for (; e < i.slideCount;)++o, e = t + i.options.slidesToScroll, t += i.options.slidesToScroll <= i.options.slidesToShow ? i.options.slidesToScroll : i.options.slidesToShow; else if (!0 === i.options.centerMode) o = i.slideCount; else if (i.options.asNavFor) for (; e < i.slideCount;)++o, e = t + i.options.slidesToScroll, t += i.options.slidesToScroll <= i.options.slidesToShow ? i.options.slidesToScroll : i.options.slidesToShow; else o = 1 + Math.ceil((i.slideCount - i.options.slidesToShow) / i.options.slidesToScroll); return o - 1 }, r.prototype.getLeft = function (i) { var e, t, o = this, s = 0; return o.slideOffset = 0, e = o.$slides.first().outerHeight(!0), !0 === o.options.infinite ? (o.slideCount > o.options.slidesToShow && (o.slideOffset = o.slideWidth * o.options.slidesToShow * -1, t = -1, !0 === o.options.vertical && !0 === o.options.centerMode && (2 === o.options.slidesToShow ? t = -1.5 : 1 === o.options.slidesToShow && (t = -2)), s = e * o.options.slidesToShow * t), o.slideCount % o.options.slidesToScroll != 0 && i + o.options.slidesToScroll > o.slideCount && o.slideCount > o.options.slidesToShow && (s = i > o.slideCount ? (o.slideOffset = (o.options.slidesToShow - (i - o.slideCount)) * o.slideWidth * -1, (o.options.slidesToShow - (i - o.slideCount)) * e * -1) : (o.slideOffset = o.slideCount % o.options.slidesToScroll * o.slideWidth * -1, o.slideCount % o.options.slidesToScroll * e * -1))) : i + o.options.slidesToShow > o.slideCount && (o.slideOffset = (i + o.options.slidesToShow - o.slideCount) * o.slideWidth, s = (i + o.options.slidesToShow - o.slideCount) * e), o.slideCount <= o.options.slidesToShow && (s = o.slideOffset = 0), !0 === o.options.centerMode && o.slideCount <= o.options.slidesToShow ? o.slideOffset = o.slideWidth * Math.floor(o.options.slidesToShow) / 2 - o.slideWidth * o.slideCount / 2 : !0 === o.options.centerMode && !0 === o.options.infinite ? o.slideOffset += o.slideWidth * Math.floor(o.options.slidesToShow / 2) - o.slideWidth : !0 === o.options.centerMode && (o.slideOffset = 0, o.slideOffset += o.slideWidth * Math.floor(o.options.slidesToShow / 2)), e = !1 === o.options.vertical ? i * o.slideWidth * -1 + o.slideOffset : i * e * -1 + s, !0 === o.options.variableWidth && (s = o.slideCount <= o.options.slidesToShow || !1 === o.options.infinite ? o.$slideTrack.children(".slick-slide").eq(i) : o.$slideTrack.children(".slick-slide").eq(i + o.options.slidesToShow), e = !0 === o.options.rtl ? s[0] ? -1 * (o.$slideTrack.width() - s[0].offsetLeft - s.width()) : 0 : s[0] ? -1 * s[0].offsetLeft : 0, !0 === o.options.centerMode && (s = o.slideCount <= o.options.slidesToShow || !1 === o.options.infinite ? o.$slideTrack.children(".slick-slide").eq(i) : o.$slideTrack.children(".slick-slide").eq(i + o.options.slidesToShow + 1), e = !0 === o.options.rtl ? s[0] ? -1 * (o.$slideTrack.width() - s[0].offsetLeft - s.width()) : 0 : s[0] ? -1 * s[0].offsetLeft : 0, e += (o.$list.width() - s.outerWidth()) / 2)), e }, r.prototype.getOption = r.prototype.slickGetOption = function (i) { return this.options[i] }, r.prototype.getNavigableIndexes = function () { for (var i = this, e = 0, t = 0, o = [], s = !1 === i.options.infinite ? i.slideCount : (e = -1 * i.options.slidesToScroll, t = -1 * i.options.slidesToScroll, 2 * i.slideCount); e < s;)o.push(e), e = t + i.options.slidesToScroll, t += i.options.slidesToScroll <= i.options.slidesToShow ? i.options.slidesToScroll : i.options.slidesToShow; return o }, r.prototype.getSlick = function () { return this }, r.prototype.getSlideCount = function () { var s, n = this, i = !0 === n.options.centerMode ? Math.floor(n.$list.width() / 2) : 0, r = -1 * n.swipeLeft + i; return !0 === n.options.swipeToSlide ? (n.$slideTrack.find(".slick-slide").each(function (i, e) { var t = a(e).outerWidth(), o = e.offsetLeft; if (!0 !== n.options.centerMode && (o += t / 2), r < o + t) return s = e, !1 }), Math.abs(a(s).attr("data-slick-index") - n.currentSlide) || 1) : n.options.slidesToScroll }, r.prototype.goTo = r.prototype.slickGoTo = function (i, e) { this.changeSlide({ data: { message: "index", index: parseInt(i) } }, e) }, r.prototype.init = function (i) { var e = this; a(e.$slider).hasClass("slick-initialized") || (a(e.$slider).addClass("slick-initialized"), e.buildRows(), e.buildOut(), e.setProps(), e.startLoad(), e.loadSlider(), e.initializeEvents(), e.updateArrows(), e.updateDots(), e.checkResponsive(!0), e.focusHandler()), i && e.$slider.trigger("init", [e]), !0 === e.options.accessibility && e.initADA(), e.options.autoplay && (e.paused = !1, e.autoPlay()) }, r.prototype.initADA = function () { var t = this, o = Math.ceil(t.slideCount / t.options.slidesToShow), s = t.getNavigableIndexes().filter(function (i) { return 0 <= 
20i && i < t.slideCount }); t.$slides.add(t.$slideTrack.find(".slick-cloned")).attr({ "aria-hidden": "true", tabindex: "-1" }).find("a, input, button, select").attr({ tabindex: "-1" }), null !== t.$dots && (t.$slides.not(t.$slideTrack.find(".slick-cloned")).each(function (i) { var e = s.indexOf(i); a(this).attr({ role: "tabpanel", id: "slick-slide" + t.instanceUid + i, tabindex: -1 }), -1 !== e && (e = "slick-slide-control" + t.instanceUid + e, a("#" + e).length && a(this).attr({ "aria-describedby": e })) }), t.$dots.attr("role", "tablist").find("li").each(function (i) { var e = s[i]; a(this).attr({ role: "presentation" }), a(this).find("button").first().attr({ role: "tab", id: "slick-slide-control" + t.instanceUid + i, "aria-controls": "slick-slide" + t.instanceUid + e, "aria-label": i + 1 + " of " + o, "aria-selected": null, tabindex: "-1" }) }).eq(t.currentSlide).find("button").attr({ "aria-selected": "true", tabindex: "0" }).end()); for (var i = t.currentSlide, e = i + t.options.slidesToShow; i < e; i++)t.options.focusOnChange ? t.$slides.eq(i).attr({ tabindex: "0" }) : t.$slides.eq(i).removeAttr("tabindex"); t.activateADA() }, r.prototype.initArrowEvents = function () { var i = this; !0 === i.options.arrows && i.slideCount > i.options.slidesToShow && (i.$prevArrow.off("click.slick").on("click.slick", { message: "previous" }, i.changeSlide), i.$nextArrow.off("click.slick").on("click.slick", { message: "next" }, i.changeSlide), !0 === i.options.accessibility && (i.$prevArrow.on("keydown.slick", i.keyHandler), i.$nextArrow.on("keydown.slick", i.keyHandler))) }, r.prototype.initDotEvents = function () { var i = this; !0 === i.options.dots && i.slideCount > i.options.slidesToShow && (a("li", i.$dots).on("click.slick", { message: "index" }, i.changeSlide), !0 === i.options.accessibility && i.$dots.on("keydown.slick", i.keyHandler)), !0 === i.options.dots && !0 === i.options.pauseOnDotsHover && i.slideCount > i.options.slidesToShow && a("li", i.$dots).on("mouseenter.slick", a.proxy(i.interrupt, i, !0)).on("mouseleave.slick", a.proxy(i.interrupt, i, !1)) }, r.prototype.initSlideEvents = function () { var i = this; i.options.pauseOnHover && (i.$list.on("mouseenter.slick", a.proxy(i.interrupt, i, !0)), i.$list.on("mouseleave.slick", a.proxy(i.interrupt, i, !1))) }, r.prototype.initializeEvents = function () { var i = this; i.initArrowEvents(), i.initDotEvents(), i.initSlideEvents(), i.$list.on("touchstart.slick mousedown.slick", { action: "start" }, i.swipeHandler), i.$list.on("touchmove.slick mousemove.slick", { action: "move" }, i.swipeHandler), i.$list.on("touchend.slick mouseup.slick", { action: "end" }
vendor: 12,134 bytes, line 20
20, i.swipeHandler), i.$list.on("touchcancel.slick mouseleave.slick", { action: "end" }, i.swipeHandler), i.$list.on("click.slick", i.clickHandler), a(document).on(i.visibilityChange, a.proxy(i.visibility, i)), !0 === i.options.accessibility && i.$list.on("keydown.slick", i.keyHandler), !0 === i.options.focusOnSelect && a(i.$slideTrack).children().on("click.slick", i.selectHandler), a(window).on("orientationchange.slick.slick-" + i.instanceUid, a.proxy(i.orientationChange, i)), a(window).on("resize.slick.slick-" + i.instanceUid, a.proxy(i.resize, i)), a("[draggable!=true]", i.$slideTrack).on("dragstart", i.preventDefault), a(window).on("load.slick.slick-" + i.instanceUid, i.setPosition), a(i.setPosition) }, r.prototype.initUI = function () { var i = this; !0 === i.options.arrows && i.slideCount > i.options.slidesToShow && (i.$prevArrow.show(), i.$nextArrow.show()), !0 === i.options.dots && i.slideCount > i.options.slidesToShow && i.$dots.show() }, r.prototype.keyHandler = function (i) { var e = this; i.target.tagName.match("TEXTAREA|INPUT|SELECT") || (37 === i.keyCode && !0 === e.options.accessibility ? e.changeSlide({ data: { message: !0 === e.options.rtl ? "next" : "previous" } }) : 39 === i.keyCode && !0 === e.options.accessibility && e.changeSlide({ data: { message: !0 === e.options.rtl ? "previous" : "next" } })) }, r.prototype.lazyLoad = function () { var i, e, t, n = this; function o(i) { a("img[data-lazy]", i).each(function () { var i = a(this), e = a(this).attr("data-lazy"), t = a(this).attr("data-srcset"), o = a(this).attr("data-sizes") || n.$slider.attr("data-sizes"), s = document.createElement("img"); s.onload = function () { i.animate({ opacity: 0 }, 100, function () { t && (i.attr("srcset", t), o && i.attr("sizes", o)), i.attr("src", e).animate({ opacity: 1 }, 200, function () { i.removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading") }), n.$slider.trigger("lazyLoaded", [n, i, e]) }) }, s.onerror = function () { i.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"), n.$slider.trigger("lazyLoadError", [n, i, e]) }, s.src = e }) } if (!0 === n.options.centerMode ? t = !0 === n.options.infinite ? (e = n.currentSlide + (n.options.slidesToShow / 2 + 1)) + n.options.slidesToShow + 2 : (e = Math.max(0, n.currentSlide - (n.options.slidesToShow / 2 + 1)), n.options.slidesToShow / 2 + 1 + 2 + n.currentSlide) : (e = n.options.infinite ? n.options.slidesToShow + n.currentSlide : n.currentSlide, t = Math.ceil(e + n.options.slidesToShow), !0 === n.options.fade && (0 < e && e--, t <= n.slideCount && t++)), i = n.$slider.find(".slick-slide").slice(e, t), "anticipated" === n.options.lazyLoad) for (var s = e - 1, r = t, l = n.$slider.find(".slick-slide"), d = 0; d < n.options.slidesToScroll; d++)s < 0 && (s = n.slideCount - 1), i = (i = i.add(l.eq(s))).add(l.eq(r)), s--, r++; o(i), n.slideCount <= n.options.slidesToShow ? o(n.$slider.find(".slick-slide")) : n.currentSlide >= n.slideCount - n.options.slidesToShow ? o(n.$slider.find(".slick-cloned").slice(0, n.options.slidesToShow)) : 0 === n.currentSlide && o(n.$slider.find(".slick-cloned").slice(-1 * n.options.slidesToShow)) }, r.prototype.loadSlider = function () { var i = this; i.setPosition(), i.$slideTrack.css({ opacity: 1 }), i.$slider.removeClass("slick-loading"), i.initUI(), "progressive" === i.options.lazyLoad && i.progressiveLazyLoad() }, r.prototype.next = r.prototype.slickNext = function () { this.changeSlide({ data: { message: "next" } }) }, r.prototype.orientationChange = function () { this.checkResponsive(), this.setPosition() }, r.prototype.pause = r.prototype.slickPause = function () { this.autoPlayClear(), this.paused = !0 }, r.prototype.play = r.prototype.slickPlay = function () { var i = this; i.autoPlay(), i.options.autoplay = !0, i.paused = !1, i.focussed = !1, i.interrupted = !1 }, r.prototype.postSlide = function (i) { var e = this; e.unslicked || (e.$slider.trigger("afterChange", [e, i]), e.animating = !1, e.slideCount > e.options.slidesToShow && e.setPosition(), e.swipeLeft = null, e.options.autoplay && e.autoPlay(), !0 === e.options.accessibility && (e.initADA(), e.options.focusOnChange && a(e.$slides.get(e.currentSlide)).attr("tabindex", 0).focus())) }, r.prototype.prev = r.prototype.slickPrev = function () { this.changeSlide({ data: { message: "previous" } }) }, r.prototype.preventDefault = function (i) { i.preventDefault() }, r.prototype.progressiveLazyLoad = function (i) { i = i || 1; var e, t, o, s, n = this, r = a("img[data-lazy]", n.$slider); r.length ? (e = r.first(), t = e.attr("data-lazy"), o = e.attr("data-srcset"), s = e.attr("data-sizes") || n.$slider.attr("data-sizes"), (r = document.createElement("img")).onload = function () { o && (e.attr("srcset", o), s && e.attr("sizes", s)), e.attr("src", t).removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"), !0 === n.options.adaptiveHeight && n.setPosition(), n.$slider.trigger("lazyLoaded", [n, e, t]), n.progressiveLazyLoad() }, r.onerror = function () { i < 3 ? setTimeout(function () { n.progressiveLazyLoad(i + 1) }, 500) : (e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"), n.$slider.trigger("lazyLoadError", [n, e, t]), n.progressiveLazyLoad()) }, r.src = t) : n.$slider.trigger("allImagesLoaded", [n]) }, r.prototype.refresh = function (i) { var e = this, t = e.slideCount - e.options.slidesToShow; !e.options.infinite && e.currentSlide > t && (e.currentSlide = t), e.slideCount <= e.options.slidesToShow && (e.currentSlide = 0), t = e.currentSlide, e.destroy(!0), a.extend(e, e.initials, { currentSlide: t }), e.init(), i || e.changeSlide({ data: { message: "index", index: t } }, !1) }, r.prototype.registerBreakpoints = function () { var i, e, t, o = this, s = o.options.responsive || null; if ("array" === a.type(s) && s.length) { for (i in o.respondTo = o.options.respondTo || "window", s) if (t = o.breakpoints.length - 1, s.hasOwnProperty(i)) { for (e = s[i].breakpoint; 0 <= t;)o.breakpoints[t] && o.breakpoints[t] === e && o.breakpoints.splice(t, 1), t--; o.breakpoints.push(e), o.breakpointSettings[e] = s[i].settings } o.breakpoints.sort(function (i, e) { return o.options.mobileFirst ? i - e : e - i }) } }, r.prototype.reinit = function () { var i = this; i.$slides = i.$slideTrack.children(i.options.slide).addClass("slick-slide"), i.slideCount = i.$slides.length, i.currentSlide >= i.slideCount && 0 !== i.currentSlide && (i.currentSlide = i.currentSlide - i.options.slidesToScroll), i.slideCount <= i.options.slidesToShow && (i.currentSlide = 0), i.registerBreakpoints(), i.setProps(), i.setupInfinite(), i.buildArrows(), i.updateArrows(), i.initArrowEvents(), i.buildDots(), i.updateDots(), i.initDotEvents(), i.cleanUpSlideEvents(), i.initSlideEvents(), i.checkResponsive(!1, !0), !0 === i.options.focusOnSelect && a(i.$slideTrack).children().on("click.slick", i.selectHandler), i.setSlideClasses("number" == typeof i.currentSlide ? i.currentSlide : 0), i.setPosition(), i.focusHandler(), i.paused = !i.options.autoplay, i.autoPlay(), i.$slider.trigger("reInit", [i]) }, r.prototype.resize = function () { var i = this; a(window).width() !== i.windowWidth && (clearTimeout(i.windowDelay), i.windowDelay = window.setTimeout(function () { i.windowWidth = a(window).width(), i.checkResponsive(), i.unslicked || i.setPosition() }, 50)) }, r.prototype.removeSlide = r.prototype.slickRemove = function (i, e, t) { var o = this; if (i = "boolean" == typeof i ? !0 === (e = i) ? 0 : o.slideCount - 1 : !0 === e ? --i : i, o.slideCount < 1 || i < 0 || i > o.slideCount - 1) return !1; o.unload(), (!0 === t ? o.$slideTrack.children() : o.$slideTrack.children(this.options.slide).eq(i)).remove(), o.$slides = o.$slideTrack.children(this.options.slide), o.$slideTrack.children(this.options.slide).detach(), o.$slideTrack.append(o.$slides), o.$slidesCache = o.$slides, o.reinit() }, r.prototype.setCSS = function (i) { var e, t, o = this, s = {}; !0 === o.options.rtl && (i = -i), e = "left" == o.positionProp ? Math.ceil(i) + "px" : "0px", t = "top" == o.positionProp ? Math.ceil(i) + "px" : "0px", s[o.positionProp] = i, !1 === o.transformsEnabled || (!(s = {}) === o.cssTransitions ? s[o.animType] = "translate(" + e + ", " + t + ")" : s[o.animType] = "translate3d(" + e + ", " + t + ", 0px)"), o.$slideTrack.css(s) }, r.prototype.setDimensions = function () { var i = this; !1 === i.options.vertical ? !0 === i.options.centerMode && i.$list.css({ padding: "0px " + i.options.centerPadding }) : (i.$list.height(i.$slides.first().outerHeight(!0) * i.options.slidesToShow), !0 === i.options.centerMode && i.$list.css({ padding: i.options.centerPadding + " 0px" })), i.listWidth = i.$list.width(), i.listHeight = i.$list.height(), !1 === i.options.vertical && !1 === i.options.variableWidth ? (i.slideWidth = Math.ceil(i.listWidth / i.options.slidesToShow), i.$slideTrack.width(Math.ceil(i.slideWidth * i.$slideTrack.children(".slick-slide").length))) : !0 === i.options.variableWidth ? i.$slideTrack.width(5e3 * i.slideCount) : (i.slideWidth = Math.ceil(i.listWidth), i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0) * i.$slideTrack.children(".slick-slide").length))); var e = i.$slides.first().outerWidth(!0) - i.$slides.first().width(); !1 === i.options.variableWidth && i.$slideTrack.children(".slick-slide").width(i.slideWidth - e) }, r.prototype.setFade = function () { var t, o = this; o.$slides.each(function (i, e) { t = o.slideWidth * i * -1, !0 === o.options.rtl ? a(e).css({ position: "relative", right: t, top: 0, zIndex: o.options.zIndex - 2, opacity: 0 }) : a(e).css({ position: "relative", left: t, top: 0, zIndex: o.options.zIndex - 2, opacity: 0 }) }), o.$slides.eq(o.currentSlide).css({ zIndex: o.options.zIndex - 1, opacity: 1 }) }, r.prototype.setHeight = function () { var i, e = this; 1 === e.options.slidesToShow && !0 === e.options.adaptiveHeight && !1 === e.options.vertical && (i = e.$slides.eq(e.currentSlide).outerHeight(!0), e.$list.css("height", i)) }, r.prototype.setOption = r.prototype.slickSetOption = function () { var i, e, t, o, s, n = this, r = !1; if ("object" === a.type(arguments[0]) ? (t = arguments[0], r = arguments[1], s = "multiple") : "string" === a.type(arguments[0]) && (t = arguments[0], o = arguments[1], r = arguments[2], "responsive" === arguments[0] && "array" === a.type(arguments[1]) ? s = "responsive" : void 0 !== arguments[1] && (s = "single")), "single" === s) n.options[t] = o; else if ("multiple" === s) a.each(t, function (i, e) { n.options[i] = e }); else if ("responsive" === s) for (e in o) if ("array" !== a.type(n.options.responsive)) n.options.responsive = [o[e]]; else { for (i = n.options.responsive.length - 1; 0 <= i;)n.options.responsive[i].breakpoint === o[e].breakpoint && n.options.responsive.splice(i, 1), i--; n.options.responsive.push(o[e]) } r && (n.unload(), n.reinit()) }, r.prototype.setPosition = function () { var i = this; i.setDimensions(), i.setHeight(), !1 === i.options.fade ? i.setCSS(i.getLeft(i.currentSlide)) : i.setFade(), i.$slider.trigger("setPosition", [i]) }, r.prototype.setProps = function () { var i = this, e = document.body.style; i.positionProp = !0 === i.options.vertical ? "top" : "left", "top" === i.positionProp ? i.$slider.addClass("slick-vertical") : i.$slider.removeClass("slick-vertical"), void 0 === e.WebkitTransition && void 0 === e.MozTransition && void 0 === e.msTransition || !0 === i.options.useCSS && (i.cssTransitions = !0), i.options.fade && ("number" == typeof i.options.zIndex ? i.options.zIndex < 3 && (i.options.zIndex = 3) : i.options.zIndex = i.defaults.zIndex), void 0 !== e.OTransform && (i.animType = "OTransform", i.transformType = "-o-transform", i.transitionType = "OTransition", void 0 === e.perspectiveProperty && void 0 === e.webkitPerspective && (i.animType = !1)), void 0 !== e.MozTransform && (i.animType = "MozTransform", i.transformType = "-moz-transform", i.transitionType = "MozTransition", void 0 === e.perspectiveProperty && void 0 === e.MozPerspective && (i.animType = !1)), void 0 !== e.webkitTransform && (i.animType = "
20webkitTransform", i.transformType = "-webkit-transform", i.transitionType = "webkitTransition", void 0 === e.perspectiveProperty && void 0 === e.webkitPerspective && (i.animType = !1)), void 0 !== e.msTransform && (i.animType = "msTransform", i.transformType = "-ms-transform", i.transitionType = "msTransition", void 0 === e.msTransform && (i.animType = !1)), void 0 !== e.transform && !1 !== i.animType && (i.animType = "transform", i.transformType = "transform", i.transitionType = "transition"), i.transformsEnabled = i.options.useTransform && null !== i.animType && !1 !== i.animType }, r.prototype.setSlideClasses = function (i) { var e, t, o, s = this, n = s.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden", "true"); s.$slides.eq(i).addClass("slick-current"), !0 === s.options.centerMode ? (t = s.options.slidesToShow % 2 == 0 ? 1 : 0, o = Math.floor(s.options.slidesToShow / 2), !0 === s.options.infinite && (o <= i && i <= s.slideCount - 1 - o ? s.$slides.slice(i - o + t, i + o + 1).addClass("slick-active").attr("aria-hidden", "false") : (e = s.options.slidesToShow + i, n.slice(e - o + 1 + t, e + o + 2).addClass("slick-active").attr("aria-hidden", "false")), 0 === i ? n.eq(s.options.slidesToShow + s.slideCount + 1).addClass("slick-center") : i === s.slideCount - 1 && n.eq(s.options.slidesToShow).addClass("slick-center")), s.$slides.eq(i).addClass("slick-center")) : 0 <= i && i <= s.slideCount - s.options.slidesToShow ? s.$slides.slice(i, i + s.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false") : n.length <= s.options.slidesToShow ? n.addClass("slick-active").attr("aria-hidden", "false") : (o = s.slideCount % s.options.slidesToShow, e = !0 === s.options.infinite ? s.options.slidesToShow + i : i, (s.options.slidesToShow == s.options.slidesToScroll && s.slideCount - i < s.options.slidesToShow ? n.slice(e - (s.options.slidesToShow - o), e + o) : n.slice(e, e + s.options.slidesToShow)).addClass("slick-active").attr("aria-hidden", "false")), "ondemand" !== s.options.lazyLoad && "anticipated" !== s.options.lazyLoad || s.lazyLoad() }, r.prototype.setupInfinite = function () { var i, e, t, o = this; if (!0 === o.options.fade && (o.options.centerMode = !1), !0 === o.options.infinite && !1 === o.options.fade && (e = null, o.slideCount > o.options.slidesToShow)) { for (t = !0 === o.options.centerMode ? o.options.slidesToShow + 1 : o.options.slidesToShow, i = o.slideCount; i > o.slideCount - t; --i)e = i - 1, a(o.$slides[e]).clone(!0).attr("id", "").attr("data-slick-index", e - o.slideCount).prependTo(o.$slideTrack).addClass("slick-cloned"); for (i = 0; i < t + o.slideCount; i += 1)e = i, a(o.$slides[e]).clone(!0).attr("id", "").attr("data-slick-index", e + o.slideCount).appendTo(o.$slideTrack).addClass("slick-cloned"); o.$slideTrack.find(".slick-cloned").find("[id]").each(function () { a(this).attr("id", "") }) } }, r.prototype.interrupt = function (i) { i || this.autoPlay(), this.interrupted = i }, r.prototype.selectHandler = function (i) { i = a(i.target).is(".slick-slide") ? a(i.target) : a(i.target).parents(".slick-slide"), i = (i = parseInt(i.attr("data-slick-index"))) || 0; this.slideCount <= this.options.slidesToShow ? this.slideHandler(i, !1, !0) : this.slideHandler(i) }, r.prototype.slideHandler = function (i, e, t) { var o, s, n, r, l = this; if (e = e || !1, !(!0 === l.animating && !0 === l.options.waitForAnimate || !0 === l.options.fade && l.currentSlide === i)) if (!1 === e && l.asNavFor(i), o = i, n = l.getLeft(o), e = l.getLeft(l.currentSlide), l.currentLeft = null === l.swipeLeft ? e : l.swipeLeft, !1 === l.options.infinite && !1 === l.options.centerMode && (i < 0 || i > l.getDotCount() * l.options.slidesToScroll)) !1 === l.options.fade && (o = l.currentSlide, !0 !== t && l.slideCount > l.options.slidesToShow ? l.animateSlide(e, function () { l.postSlide(o) }) : l.postSlide(o)); else if (!1 === l.options.infinite && !0 === l.options.centerMode && (i < 0 || i > l.slideCount - l.options.slidesToScroll)) !1 === l.options.fade && (o = l.currentSlide, !0 !== t && l.slideCount > l.options.slidesToShow ? l.animateSlide(e, function () { l.postSlide(o) }) : l.postSlide(o)); else { if (l.options.autoplay && clearInterval(l.autoPlayTimer), s = o < 0 ? l.slideCount % l.options.slidesToScroll != 0 ? l.slideCount - l.slideCount % l.options.slidesToScroll : l.slideCount + o : o >= l.slideCount ? l.slideCount % l.options.slidesToScroll != 0 ? 0 : o - l.slideCount : o, l.animating = !0, l.$slider.trigger("beforeChange", [l, l.currentSlide, s]), e = l.currentSlide, l.currentSlide = s, l.setSlideClasses(l.currentSlide), l.options.asNavFor && (r = (r = l.getNavTarget()).slick("getSlick")).slideCount <= r.options.slidesToShow && r.setSlideClasses(l.currentSlide), l.updateDots(), l.updateArrows(), !0 === l.options.fade) return !0 !== t ? (l.fadeSlideOut(e), l.fadeSlide(s, function () { l.postSlide(s) })) : l.postSlide(s), void l.animateHeight(); !0 !== t && l.slideCount > l.options.slidesToShow ? l.animateSlide(n, function () { l.postSlide(s) }) : l.postSlide(s) } }, r.prototype.startLoad = function () { var i = this; !0 === i.options.arrows && i.slideCount > i.options.slidesToShow && (i.$prevArrow.hide(), i.$nextArrow.hide()), !0 === i.options.dots && i.slideCount > i.options.slidesToShow && i.$dots.hide(), i.$slider.addClass("slick-loading") }, r.prototype.swipeDirection = function () { var i = this, e = i.touchObject.startX - i.touchObject.curX, t = i.touchObject.startY - i.touchObject.curY, e = Math.atan2(t, e), e = Math.round(180 * e / Math.PI); return e < 0 && (e = 360 - Math.abs(e)), e <= 45 && 0 <= e || e <= 360 && 315 <= e ? !1 === i.options.rtl ? "left" : "right" : 135 <= e && e <= 225 ? !1 === i.options.rtl ? "right" : "left" : !0 === i.options.verticalSwiping ? 35 <= e && e <= 135 ? "down" : "up" : "vertical" }, r.prototype.swipeEnd = function (i) { var e, t, o = this; if (o.dragging = !1, o.swiping = !1, o.scrolling) return o.scrolling = !1; if (o.interrupted = !1, o.shouldClick = !(10 < o.touchObject.swipeLength), void 0 === o.touchObject.curX) return !1; if (!0 === o.touchObject.edgeHit && o.$slider.trigger("edge", [o, o.swipeDirection()]), o.touchObject.swipeLength >= o.touchObject.minSwipe) { switch (t = o.swipeDirection()) { case "left"
vendor: 5,896 bytes, lines 20-36
20: case "down": e = o.options.swipeToSlide ? o.checkNavigable(o.currentSlide + o.getSlideCount()) : o.currentSlide + o.getSlideCount(), o.currentDirection = 0; break; case "right": case "up": e = o.options.swipeToSlide ? o.checkNavigable(o.currentSlide - o.getSlideCount()) : o.currentSlide - o.getSlideCount(), o.currentDirection = 1 }"vertical" != t && (o.slideHandler(e), o.touchObject = {}, o.$slider.trigger("swipe", [o, t])) } else o.touchObject.startX !== o.touchObject.curX && (o.slideHandler(o.currentSlide), o.touchObject = {}) }, r.prototype.swipeHandler = function (i) { var e = this; if (!(!1 === e.options.swipe || "ontouchend" in document && !1 === e.options.swipe || !1 === e.options.draggable && -1 !== i.type.indexOf("mouse"))) switch (e.touchObject.fingerCount = i.originalEvent && void 0 !== i.originalEvent.touches ? i.originalEvent.touches.length : 1, e.touchObject.minSwipe = e.listWidth / e.options.touchThreshold, !0 === e.options.verticalSwiping && (e.touchObject.minSwipe = e.listHeight / e.options.touchThreshold), i.data.action) { case "start": e.swipeStart(i); break; case "move": e.swipeMove(i); break; case "end": e.swipeEnd(i) } }, r.prototype.swipeMove = function (i) { var e, t, o = this, s = void 0 !== i.originalEvent ? i.originalEvent.touches : null; return !(!o.dragging || o.scrolling || s && 1 !== s.length) && (e = o.getLeft(o.currentSlide), o.touchObject.curX = void 0 !== s ? s[0].pageX : i.clientX, o.touchObject.curY = void 0 !== s ? s[0].pageY : i.clientY, o.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(o.touchObject.curX - o.touchObject.startX, 2))), t = Math.round(Math.sqrt(Math.pow(o.touchObject.curY - o.touchObject.startY, 2))), !o.options.verticalSwiping && !o.swiping && 4 < t ? !(o.scrolling = !0) : (!0 === o.options.verticalSwiping && (o.touchObject.swipeLength = t), s = o.swipeDirection(), void 0 !== i.originalEvent && 4 < o.touchObject.swipeLength && (o.swiping = !0, i.preventDefault()), t = (!1 === o.options.rtl ? 1 : -1) * (o.touchObject.curX > o.touchObject.startX ? 1 : -1), !0 === o.options.verticalSwiping && (t = o.touchObject.curY > o.touchObject.startY ? 1 : -1), i = o.touchObject.swipeLength, (o.touchObject.edgeHit = !1) === o.options.infinite && (0 === o.currentSlide && "right" === s || o.currentSlide >= o.getDotCount() && "left" === s) && (i = o.touchObject.swipeLength * o.options.edgeFriction, o.touchObject.edgeHit = !0), !1 === o.options.vertical ? o.swipeLeft = e + i * t : o.swipeLeft = e + i * (o.$list.height() / o.listWidth) * t, !0 === o.options.verticalSwiping && (o.swipeLeft = e + i * t), !0 !== o.options.fade && !1 !== o.options.touchMove && (!0 === o.animating ? (o.swipeLeft = null, !1) : void o.setCSS(o.swipeLeft)))) }, r.prototype.swipeStart = function (i) { var e, t = this; if (t.interrupted = !0, 1 !== t.touchObject.fingerCount || t.slideCount <= t.options.slidesToShow) return !(t.touchObject = {}); void 0 !== i.originalEvent && void 0 !== i.originalEvent.touches && (e = i.originalEvent.touches[0]), t.touchObject.startX = t.touchObject.curX = void 0 !== e ? e.pageX : i.clientX, t.touchObject.startY = t.touchObject.curY = void 0 !== e ? e.pageY : i.clientY, t.dragging = !0 }, r.prototype.unfilterSlides = r.prototype.slickUnfilter = function () { var i = this; null !== i.$slidesCache && (i.unload(), i.$slideTrack.children(this.options.slide).detach(), i.$slidesCache.appendTo(i.$slideTrack), i.reinit()) }, r.prototype.unload = function () { var i = this; a(".slick-cloned", i.$slider).remove(), i.$dots && i.$dots.remove(), i.$prevArrow && i.htmlExpr.test(i.options.prevArrow) && i.$prevArrow.remove(), i.$nextArrow && i.htmlExpr.test(i.options.nextArrow) && i.$nextArrow.remove(), i.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden", "true").css("width", "") }, r.prototype.unslick = function (i) { this.$slider.trigger("unslick", [this, i]), this.destroy() }, r.prototype.updateArrows = function () { var i = this; Math.floor(i.options.slidesToShow / 2); !0 === i.options.arrows && i.slideCount > i.options.slidesToShow && !i.options.infinite && (i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false"), i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false"), 0 === i.currentSlide ? (i.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true"), i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false")) : (i.currentSlide >= i.slideCount - i.options.slidesToShow && !1 === i.options.centerMode || i.currentSlide >= i.slideCount - 1 && !0 === i.options.centerMode) && (i.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"), i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false"))) }, r.prototype.updateDots = function () { var i = this; null !== i.$dots && (i.$dots.find("li").removeClass("slick-active").end(), i.$dots.find("li").eq(Math.floor(i.currentSlide / i.options.slidesToScroll)).addClass("slick-active")) }, r.prototype.visibility = function () { this.options.autoplay && (document[this.hidden] ? this.interrupted = !0 : this.interrupted = !1) }, a.fn.slick = function () { for (var i, e = this, t = arguments[0], o = Array.prototype.slice.call(arguments, 1), s = e.length, n = 0; n < s; n++)if ("object" == typeof t || void 0 === t ? e[n].slick = new r(e[n], t) : i = e[n].slick[t].apply(e[n].slick, o), void 0 !== i) return i; return e } });
21/**===========================================================================================================================*/
22/*
23
24 slick-animation.js
25
26 Version: 0.3.3 Beta
27
28 Author: Marvin Hübner
29
30 Docs: https://github.com/marvinhuebner/slick-animation
31
32 Repo: https://github.com/marvinhuebner/slick-animation
33
34 */
35
36!function (a) { a.fn.slickAnimation = function () { function n(a, n, t, i, e) { e = void 0 !== e && e, o(a, "delay"), o(a, "duration"), 1 == n.opacity ? (
36a.addClass(t), a.addClass(i)) : (a.removeClass(t), a.removeClass(i)), e && a.css(n) } function t(a, n) { return a ? 1e3 * a + 1e3 : n ? 1e3 * n : a || n ? 1e3 * a + 1e3 * n : 1e3 } function i(a, n, t) { var i = {};["animation-" + n, "-webkit-animation-" + n, "-moz-animation-" + n, "-o-animation-" + n, "-ms-animation-" + n].forEach(function (a) { i[a] = t + "s" }), a.css(i) } function o(a, n) { var t = {};["animation-" + n, "-webkit-animation-" + n, "-moz-animation-" + n, "-o-animation-" + n, "-ms-animation-" + n].forEach(function (a) { t[a] = "" }), a.css(t) } var e = a(this), d = e.find(".slick-list .slick-track > div"), s = e.find('[data-slick-index="0"]'), r = { opacity: "1" }, u = { opacity: "0" }; return d.each(function () { var d = a(this); d.find("[data-animation-in]").each(function () { var c = a(this); c.css(u); var m = c.attr("data-animation-in"), l = c.attr("data-animation-out"), f = c.attr("data-delay-in"), h = c.attr("data-duration-in"), y = c.attr("data-delay-out"), C = c.attr("data-duration-out"); l ? (s.length > 0 && d.hasClass("slick-current") && (n(c, r, m, "animated", !0), f && i(c, "delay", f), h && i(c, "duration", h), setTimeout(function () { n(c, u, m, "animated"), n(c, r, l, "animated"), y && i(c, "delay", y), C && i(c, "duration", C), setTimeout(function () { o(c, "delay"), o(c, "duration") }, t(y, C)) }, t(f, h))), e.on("afterChange", function (a, e, s) { d.hasClass("slick-current") && (n(c, r, m, "animated", !0), f && i(c, "delay", f), h && i(c, "duration", h), setTimeout(function () { n(c, u, m, "animated"), n(c, r, l, "animated"), y && i(c, "delay", y), C && i(c, "duration", C), setTimeout(function () { o(c, "delay"), o(c, "duration") }, t(y, C)) }, t(f, h))) }), e.on("beforeChange", function (a, t, i) { n(c, u, l, "animated", !0) })) : (s.length > 0 && d.hasClass("slick-current") && (n(c, r, m, "animated", !0), f && i(c, "delay", f), h && i(c, "duration", h)), e.on("afterChange", function (a, t, o) { d.hasClass("slick-current") && (n(c, r, m, "animated", !0), f && i(c, "delay", f), h && i(c, "duration", h)) }), e.on("beforeChange", function (a, t, i) { n(c, u, m, "animated", !0) })) }) }), this } }(jQuery);
37/**===========================================================================================================================*/
38/*aos*/
39!function (e, t) { "object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports ? exports.AOS = t() : e.AOS = t() }(this, function () { return function (e) { function t(o) { if (n[o]) return n[o].exports; var i = n[o] = { exports: {}, id: o, loaded: !1 }; return e[o].call(i.exports, i, i.exports, t), i.loaded = !0, i.exports } var n = {}; return t.m = e, t.c = n, t.p = "dist/", t(0) }([function (e, t, n) { "use strict"; function o(e) { return e && e.__esModule ? e : { default: e } } var i = Object.assign || function (e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var o in n) Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o]) } return e }, r = n(1), a = (o(r), n(6)), u = o(a), c = n(7), f = o(c), s = n(8), d = o(s), l = n(9), p = o(l), m = n(10), b = o(m), v = n(11), y = o(v), g = n(14), h = o(g), w = [], k = !1, x = document.all && !window.atob, j = { offset: 120, delay: 0, easing: "ease", duration: 400, disable: !1, once: !1, startEvent: "DOMContentLoaded", throttleDelay: 99, debounceDelay: 50, disableMutationObserver: !1 }, O = function () { var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0]; if (e && (k = !0), k) return w = (0, y.default)(w, j), (0, b.default)(w, j.once), w }, _ = function () { w = (0, h.default)(), O() }, S = function () { w.forEach(function (e, t) { e.node.removeAttribute("data-aos"), e.node.removeAttribute("data-aos-easing"), e.node.removeAttribute("data-aos-duration"), e.node.removeAttribute("data-aos-delay") }) }, z = function (e) { return e === !0 || "mobile" === e && p.default.mobile() || "phone" === e && p.default.phone() || "tablet" === e && p.default.tablet() || "function" == typeof e && e() === !0 }, A = function (e) { return j = i(j, e), w = (0, h.default)(), z(j.disable) || x ? S() : (document.querySelector("body").setAttribute("data-aos-easing", j.easing), document.querySelector("body").setAttribute("data-aos-duration", j.duration), document.querySelector("body").setAttribute("data-aos-delay", j.delay), "DOMContentLoaded" === j.startEvent && ["complete", "interactive"].indexOf(document.readyState) > -1 ? O(!0) : "load" === j.startEvent ? window.addEventListener(j.startEvent, function () { O(!0) }) : document.addEventListener(j.startEvent, function () { O(!0) }), window.addEventListener("resize", (0, f.default)(O, j.debounceDelay, !0)), window.addEventListener("orientationchange", (0, f.default)(O, j.debounceDelay, !0)), window.addEventListener("scroll", (0, u.default)(function () { (0, b.default)(w, j.once) }, j.throttleDelay)), j.disableMutationObserver || (0, d.default)("[data-aos]", _), w) }; e.exports = { init: A, refresh: O, refreshHard: _ } }, function (e, t) { }, , , , , function (e, t) { (function (t) { "use strict"; function n(e, t, n) { function o(t) { var n = b, o = v; return b = v = void 0, k = t, g = e.apply(o, n) } function r(e) { return k = e, h = setTimeout(s, t), _ ? o(e) : g } function a(e) { var n = e - w, o = e - k, i = t - n; return S ? j(i, y - o) : i } function c(e) { var n = e - w, o = e - k; return void 0 === w || n >= t || n < 0 || S && o >= y } function s() { var e = O(); return c(e) ? d(e) : void (h = setTimeout(s, a(e))) } function d(e) { return h = void 0, z && b ? o(e) : (b = v = void 0, g) } function l() { void 0 !== h && clearTimeout(h), k = 0, b = w = v = h = void 0 } function p() { return void 0 === h ? g : d(O()) } function m() { var e = O(), n = c(e); if (b = arguments, v = this, w = e, n) { if (void 0 === h) return r(w); if (S) return h = setTimeout(s, t), o(w) } return void 0 === h && (h = setTimeout(s, t)), g } var b, v, y, g, h, w, k = 0, _ = !1, S = !1, z = !0; if ("function" != typeof e) throw new TypeError(f); return t = u(t) || 0, i(n) && (_ = !!n.leading, S = "maxWait" in n, y = S ? x(u(n.maxWait) || 0, t) : y, z = "trailing" in n ? !!n.trailing : z), m.cancel = l, m.flush = p, m } function o(e, t, o) { var r = !0, a = !0; if ("function" != typeof e) throw new TypeError(f); return i(o) && (r = "leading" in o ? !!o.leading : r, a = "trailing" in o ? !!o.trailing : a), n(e, t, { leading: r, maxWait: t, trailing: a }) } function i(e) { var t = "undefined" == typeof e ? "undefined" : c(e); return !!e && ("object" == t || "function" == t) } function r(e) { return !!e && "object" == ("undefined" == typeof e ? "undefined" : c(e)) } function a(e) { return "symbol" == ("undefined" == typeof e ? "undefined" : c(e)) || r(e) && k.call(e) == d } function u(e) { if ("number" == typeof e) return e; if (a(e)) return s; if (i(e)) { var t = "function" == typeof e.valueOf ? e.valueOf() : e; e = i(t) ? t + "" : t } if ("string" != typeof e) return 0 === e ? e : +e; e = e.replace(l, ""); var n = m.test(e); return n || b.test(e) ? v(e.slice(2), n ? 2 : 8) : p.test(e) ? s : +e } var c = "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 = "Expected a function", s = NaN, d = "[object Symbol]", l = /^\s+|\s+$/g, p = /^[-+]0x[0-9a-f]+$/i, m = /^0b[01
39]+$/i, b = /^0o[0-7]+$/i, v = parseInt, y = "object" == ("undefined" == typeof t ? "undefined" : c(t)) && t && t.Object === Object && t, g = "object" == ("undefined" == typeof self ? "undefined" : c(self)) && self && self.Object === Object && self, h = y || g || Function("return this")(), w = Object.prototype, k = w.toString, x = Math.max, j = Math.min, O = function () { return h.Date.now() }; e.exports = o }).call(t, function () { return this }()) }, function (e, t) { (function (t) { "use strict"; function n(e, t, n) { function i(t) { var n = b, o = v; return b = v = void 0, O = t, g = e.apply(o, n) } function r(e) { return O = e, h = setTimeout(s, t), _ ? i(e) : g } function u(e) { var n = e - w, o = e - O, i = t - n; return S ? x(i, y - o) : i } function f(e) { var n = e - w, o = e - O; return void 0 === w || n >= t || n < 0 || S && o >= y } function s() { var e = j(); return f(e) ? d(e) : void (h = setTimeout(s, u(e))) } function d(e) { return h = void 0, z && b ? i(e) : (b = v = void 0, g) } function l() { void 0 !== h && clearTimeout(h), O = 0, b = w = v = h = void 0 } function p() { return void 0 === h ? g : d(j()) } function m() { var e = j(), n = f(e); if (b = arguments, v = this, w = e, n) { if (void 0 === h) return r(w); if (S) return h = setTimeout(s, t), i(w) } return void 0 === h && (h = setTimeout(s, t)), g } var b, v, y, g, h, w, O = 0, _ = !1, S = !1, z = !0; if ("function" != typeof e) throw new TypeError(c); return t = a(t) || 0, o(n) && (_ = !!n.leading, S = "maxWait" in n, y = S ? k(a(n.maxWait) || 0, t) : y, z = "trailing" in n ? !!n.trailing : z), m.cancel = l, m.flush = p, m } function o(e) { var t = "undefined" == typeof e ? "undefined" : u(e); return !!e && ("object" == t || "function" == t) } function i(e) { return !!e && "object" == ("undefined" == typeof e ? "undefined" : u(e)) } function r(e) { return "symbol" == ("undefined" == typeof e ? "undefined" : u(e)) || i(e) && w.call(e) == s } function a(e) { if ("number" == typeof e) return e; if (r(e)) return f; if (o(e)) { var t = "function" == typeof e.valueOf ? e.valueOf() : e; e = o(t) ? t + "" : t } if ("string" != typeof e) return 0 === e ? e : +e; e = e.replace(d, ""); var n = p.test(e); return n || m.test(e) ? b(e.slice(2), n ? 2 : 8) : l.test(e) ? f : +e } var u = "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 = "Expected a function", f = NaN, s = "[object Symbol]", d = /^\s+|\s+$/g, l = /^[-+]0x[0-9a-f]+$/i, p = /^0b[01]+$/i, m = /^0o[0-7]+$/i, b = parseInt, v = "object" == ("undefined" == typeof t ? "undefined" : u(t)) && t && t.Object === Object && t, y = "object" == ("undefined" == typeof self ? "undefined" : u(self)) && self && self.Object === Object && self, g = v || y || Function("return this")(), h = Object.prototype, w = h.toString, k = Math.max, x = Math.min, j = function () { return g.Date.now() }; e.exports = n }).call(t, function () { return this }()) }, function (e, t) { "use strict"; function n(e, t) { var n = new r(o); a = t, n.observe(i.documentElement, { childList: !0, subtree: !0, removedNodes: !0 }) } function o(e) { e && e.forEach(function (e) { var t = Array.prototype.slice.call(e.addedNodes), n = Array.prototype.slice.call(e.removedNodes), o = t.concat(n).filter(function (e) { return e.hasAttribute && e.hasAttribute("data-aos") }).length; o && a() }) } Object.defineProperty(t, "__esModule", { value: !0 }); var i = window.document, r = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver, a = function () { }; t.default = n }, function (e, t) { "use strict"; function n(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function o() { return navigator.userAgent || navigator.vendor || window.opera || "" } Object.defineProperty(t, "__esModule", { value: !0 }); var i = function () { function e(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 (t, n, o) { return n && e(t.prototype, n), o && e(t, o), t } }(), r = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i, a = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|
39sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i, u = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i, c = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i, f = function () { function e() { n(this, e) } return i(e, [{ key: "phone", value: function () { var e = o(); return !(!r.test(e) && !a.test(e.substr(0, 4))) } }, { key: "mobile", value: function () { var e = o(); return !(!u.test(e) && !c.test(e.substr(0, 4))) } }, { key: "tablet", value: function () { return this.mobile() && !this.phone() } }]), e }(); t.default = new f }, function (e, t) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var n = function (e, t, n) { var o = e.node.getAttribute("data-aos-once"); t > e.position ? e.node.classList.add("aos-animate") : "undefined" != typeof o && ("false" === o || !n && "true" !== o) && e.node.classList.remove("aos-animate") }, o = function (e, t) { var o = window.pageYOffset, i = window.innerHeight; e.forEach(function (e, r) { n(e, i + o, t) }) }; t.default = o }, function (e, t, n) { "use strict"; function o(e) { return e && e.__esModule ? e : { default: e } } Object.defineProperty(t, "__esModule", { value: !0 }); var i = n(12), r = o(i), a = function (e, t) { return e.forEach(function (e, n) { e.node.classList.add("aos-init"), e.position = (0, r.default)(e.node, t.offset) }), e }; t.default = a }, function (e, t, n) { "use strict"; function o(e) { return e && e.__esModule ? e : { default: e } } Object.defineProperty(t, "__esModule", { value: !0 }); var i = n(13), r = o(i), a = function (e, t) { var n = 0, o = 0, i = window.innerHeight, a = { offset: e.getAttribute("data-aos-offset"), anchor: e.getAttribute("data-aos-anchor"), anchorPlacement: e.getAttribute("data-aos-anchor-placement") }; switch (a.offset && !isNaN(a.offset) && (o = parseInt(a.offset)), a.anchor && document.querySelectorAll(a.anchor) && (e = document.querySelectorAll(a.anchor)[0]), n = (0, r.default)(e).top, a.anchorPlacement) { case "top-bottom": break; case "center-bottom": n += e.offsetHeight / 2; break; case "bottom-bottom": n += e.offsetHeight; break; case "top-center": n += i / 2; break; case "bottom-center": n += i / 2 + e.offsetHeight; break; case "center-center": n += i / 2 + e.offsetHeight / 2; break; case "top-top": n += i; break; case "bottom-top": n += e.offsetHeight + i; break; case "center-top": n += e.offsetHeight / 2 + i }return a.anchorPlacement || a.offset || isNaN(t) || (o = t), n + o }; t.default = a }, function (e, t) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var n = function (e) { for (var t = 0, n = 0; e && !isNaN(e.offsetLeft) && !isNaN(e.offsetTop);)t += e.offsetLeft - ("BODY" != e.tagName ? e.scrollLeft : 0), n += e.offsetTop - ("BODY" != e.tagName ? e.scrollTop : 0), e = e.offsetParent; return { top: n, left: t } }; t.default = n }, function (e, t) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var n = function (e) { return e = e || document.querySelectorAll("[data-aos]"), Array.prototype.map.call(e, function (e) { return { node: e } }) }; t.default = n }]) });
40/**===========================================================================================================================*/
41/*
42 * CSS3 Animate it
43 * Copyright (c) 2014 Jack McCourt
44 * https://github.com/kriegar/css3-animate-it
45
46 * Version: 0.1.0
47 * 
48 * I utilise the jQuery.appear plugin within this javascript file so here is a link to that too
49 * https://github.com/morr/jquery.appear
50 *
51 * I also utilise the jQuery.doTimeout plugin for the data-sequence functionality so here is a link back to them.
52 * http://benalman.com/projects/jquery-dotimeout-plugin/
53 */
54!function (a) { function t() { d = !1; for (var t = 0; t < i.length; t++) { var n = a(i[t]).filter(function () { return a(this).is(":appeared") }); if (n.trigger("appear", [n]), e) { var r = e.not(n); r.trigger("disappear", [r]) } e = n } } var e, i = [], n = !1, d = !1, r = { interval: 250, force_process: !1 }, o = a(window); a.expr[":"].appeared = function (t) { var e = a(t); if (!e.is(":visible")) return !1; var i = o.scrollLeft(), n = o.scrollTop(), d = e.offset(), r = d.left, s = d.top; return s + e.height() >= n && s - (e.data("appear-top-offset") || 0) <= n + o.height() && r + e.width() >
54= i && r - (e.data("appear-left-offset") || 0) <= i + o.width() ? !0 : !1 }, a.fn.extend({ appear: function (e) { var o = a.extend({}, r, e || {}), s = this.selector || this; if (!n) { var f = function () { d || (d = !0, setTimeout(t, o.interval)) }; a(window).scroll(f).resize(f), n = !0 } return o.force_process && setTimeout(t, o.interval), i.push(s), a(s) } }), a.extend({ force_appear: function () { return n ? (t(), !0) : !1 } }) }(jQuery), function (a) { "$:nomunge"; function t(t) { function i() { t ? r.removeData(t) : c && delete e[c] } function d() { s.id = setTimeout(function () { s.fn() }, p) } var r, o = this, s = {}, f = t ? a.fn : a, l = arguments, u = 4, c = l[1], p = l[2], $ = l[3]; if ("string" != typeof c && (u--, c = t = 0, p = l[1], $ = l[2]), t ? (r = o.eq(0), r.data(t, s = r.data(t) || {})) : c && (s = e[c] || (e[c] = {})), s.id && clearTimeout(s.id), delete s.id, $) s.fn = function (a) { "string" == typeof $ && ($ = f[$]), $.apply(o, n.call(l, u)) !== !0 || a ? i() : d() }, d(); else { if (s.fn) return void 0 === p ? i() : s.fn(p === !1), !0; i() } } var e = {}, i = "doTimeout", n = Array.prototype.slice; a[i] = function () { return t.apply(window, [0].concat(n.call(arguments))) }, a.fn[i] = function () { var a = n.call(arguments), e = t.apply(this, [i + a[0]].concat(a)); return "number" == typeof a[0] || "number" == typeof a[1] ? this : e } }(jQuery), $(".animatedParent").appear(), $(".animatedClick").click(function () { var a = $(this).attr("data-target"); if (void 0 != $(this).attr("data-sequence")) { var t = $("." + a + ":first").attr("data-id"), e = $("." + a + ":last").attr("data-id"), i = t; $("." + a + "[data-id=" + i + "]").hasClass("go") ? ($("." + a + "[data-id=" + i + "]").addClass("goAway"), $("." + a + "[data-id=" + i + "]").removeClass("go")) : ($("." + a + "[data-id=" + i + "]").addClass("go"), $("." + a + "[data-id=" + i + "]").removeClass("goAway")), i++, delay = Number($(this).attr("data-sequence")), $.doTimeout(delay, function () { return console.log(e), $("." + a + "[data-id=" + i + "]").hasClass("go") ? ($("." + a + "[data-id=" + i + "]").addClass("goAway"), $("." + a + "[data-id=" + i + "]").removeClass("go")) : ($("." + a + "[data-id=" + i + "]").addClass("go"), $("." + a + "[data-id=" + i + "]").removeClass("goAway")), ++i, e >= i ? !0 : void 0 }) } else $("." + a).hasClass("go") ? ($("." + a).addClass("goAway"), $("." + a).removeClass("go")) : ($("." + a).addClass("go"), $("." + a).removeClass("goAway")) }), $(document.body).on("appear", ".animatedParent", function (a, t) { var e = $(this).find(".animated"), i = $(this); if (void 0 != i.attr("data-sequence")) { var n = $(this).find(".animated:first").attr("data-id"), d = n, r = $(this).find(".animated:last").attr("data-id"); $(i).find(".animated[data-id=" + d + "]").addClass("go"), d++, delay = Number(i.attr("data-sequence")), $.doTimeout(delay, function () { return $(i).find(".animated[data-id=" + d + "]").addClass("go"), ++d, r >= d ? !0 : void 0 }) } else e.addClass("go") }), $(document.body).on("disappear", ".animatedParent", function (a, t) { $(this).hasClass("animateOnce") || $(this).find(".animated").removeClass("go") }), $(window).load(function () { $.force_appear() });
55
56/**===========================================================================================================================*/
57//match-height
58/*
59* jquery-match-height 0.7.2 by @liabru
60* http://brm.io/jquery-match-height/
61* License MIT
62*/
63!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):t(jQuery)}(function(t){var e=-1,o=-1,n=function(t){return parseFloat(t)||0},a=function(e){var o=1,a=t(e),i=null,r=[];return a.each(function(){var e=t(this),a=e.offset().top-n(e.css("margin-top")),s=r.length>0?r[r.length-1]:null;null===s?r.push(e):Math.floor(Math.abs(i-a))<=o?r[r.length-1]=s.add(e):r.push(e),i=a}),r},i=function(e){var o={
64  byRow:!0,property:"height",target:null,remove:!1};return"object"==typeof e?t.extend(o,e):("boolean"==typeof e?o.byRow=e:"remove"===e&&(o.remove=!0),o)},r=t.fn.matchHeight=function(e){var o=i(e);if(o.remove){var n=this;return this.css(o.property,""),t.each(r._groups,function(t,e){e.elements=e.elements.not(n)}),this}return this.length<=1&&!o.target?this:(r._groups.push({elements:this,options:o}),r._apply(this,o),this)};r.version="0.7.2",r._groups=[],r._throttle=80,r._maintainScroll=!1,r._beforeUpdate=null,
65  r._afterUpdate=null,r._rows=a,r._parse=n,r._parseOptions=i,r._apply=function(e,o){var s=i(o),h=t(e),l=[h],c=t(window).scrollTop(),p=t("html").outerHeight(!0),u=h.parents().filter(":hidden");return u.each(function(){var e=t(this);e.data("style-cache",e.attr("style"))}),u.css("display","block"),s.byRow&&!s.target&&(h.each(function(){var e=t(this),o=e.css("display");"inline-block"!==o&&"flex"!==o&&"inline-flex"!==o&&(o="block"),e.data("style-cache",e.attr("style")),e.css({display:o,"padding-top":"0",
66  "padding-bottom":"0","margin-top":"0","margin-bottom":"0","border-top-width":"0","border-bottom-width":"0",height:"100px",overflow:"hidden"})}),l=a(h),h.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||"")})),t.each(l,function(e,o){var a=t(o),i=0;if(s.target)i=s.target.outerHeight(!1);else{if(s.byRow&&a.length<=1)return void a.css(s.property,"");a.each(function(){var e=t(this),o=e.attr("style"),n=e.css("display");"inline-block"!==n&&"flex"!==n&&"inline-flex"!==n&&(n="block");var a={
67  display:n};a[s.property]="",e.css(a),e.outerHeight(!1)>i&&(i=e.outerHeight(!1)),o?e.attr("style",o):e.css("display","")})}a.each(function(){var e=t(this),o=0;s.target&&e.is(s.target)||("border-box"!==e.css("box-sizing")&&(o+=n(e.css("border-top-width"))+n(e.css("border-bottom-width")),o+=n(e.css("padding-top"))+n(e.css("padding-bottom"))),e.css(s.property,i-o+"px"))})}),u.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||null)}),r._maintainScroll&&t(window).scrollTop(c/p*t("html").outerHeight(!0)),
68  this},r._applyDataApi=function(){var e={};t("[data-match-height], [data-mh]").each(function(){var o=t(this),n=o.attr("data-mh")||o.attr("data-match-height");n in e?e[n]=e[n].add(o):e[n]=o}),t.each(e,function(){this.matchHeight(!0)})};var s=function(e){r._beforeUpdate&&r._beforeUpdate(e,r._groups),t.each(r._groups,function(){r._apply(this.elements,this.options)}),r._afterUpdate&&r._afterUpdate(e,r._groups)};r._update=function(n,a){if(a&&"resize"===a.type){var i=t(window).width();if(i===e)return;e=i;
69  }n?o===-1&&(o=setTimeout(function(){s(a),o=-1},r._throttle)):s(a)},t(r._applyDataApi);var h=t.fn.on?"on":"bind";t(window)[h]("load",function(t){r._update(!1,t)}),t(window)[h]("resize orientationchange",function(t){r._update(!0,t)})});
70  /*============================================================================================================================*/
71/*  jQuery Nice Select - v1.0
72    https://github.com/hernansartorio/jquery-nice-select
73    Made by Hernán Sartorio  */
74!function (e) { e.fn.niceSelect = function (t) { function s(t) { t.after(e("<div></div>").addClass("nice-select").addClass(t.attr("class") || "").addClass(t.attr("disabled") ? "disabled" : "").attr("tabindex", t.attr("disabled") ? null : "0").html('<span class="current"></span><ul class="list"></ul>')); var s = t.next(), n = t.find("option"), i = t.find("option:selected"); s.find(".current").html(i.data("display") || i.text()), n.each(function (t) { var n = e(this), i = n.data("display"); s.find("ul").append(e("<li></li>").attr("data-value", n.val()).attr("data-display", i || null).addClass("option" + (n.is(":selected") ? " selected" : "") + (n.is(":disabled") ? " disabled" : "")).html(n.text())) }) } if ("string" == typeof t) return "update" == t ? this.each(function () { var t = e(this), n = e(this).next(".nice-select"), i = n.hasClass("open"); n.length && (n.remove(), s(t), i && t.next().trigger("click")) }) : "destroy" == t ? (this.each(function () { var t = e(this), s = e(this).next(".nice-select"); s.length && (s.remove(), t.css("display", "")) }), 0 == e(".nice-select").length && e(document).off(".nice_select")) : console.log('Method "' + t + '" does not exist.'), this; this.hide(), this.each(function () { var t = e(this); t.next().hasClass("nice-select") || s(t) }), e(document).off(".nice_select"), e(document).on("click.nice_select", ".nice-select", function (t) { var s = e(this); e(".nice-select").not(s).removeClass("open"), s.toggleClass("open"), s.hasClass("open") ? (s.find(".option"), s.find(".focus").removeClass("focus"), s.find(".selected").addClass("focus")) : s.focus() }), e(document).on("click.nice_select", function (t) { 0 === e(t.target).closest(".
74nice-select").length && e(".nice-select").removeClass("open").find(".option") }), e(document).on("click.nice_select", ".nice-select .option:not(.disabled)", function (t) { var s = e(this), n = s.closest(".nice-select"); n.find(".selected").removeClass("selected"), s.addClass("selected"); var i = s.data("display") || s.text(); n.find(".current").text(i), n.prev("select").val(s.data("value")).trigger("change") }), e(document).on("keydown.nice_select", ".nice-select", function (t) { var s = e(this), n = e(s.find(".focus") || s.find(".list .option.selected")); if (32 == t.keyCode || 13 == t.keyCode) return s.hasClass("open") ? n.trigger("click") : s.trigger("click"), !1; if (40 == t.keyCode) { if (s.hasClass("open")) { var i = n.nextAll(".option:not(.disabled)").first(); i.length > 0 && (s.find(".focus").removeClass("focus"), i.addClass("focus")) } else s.trigger("click"); return !1 } if (38 == t.keyCode) { if (s.hasClass("open")) { var l = n.prevAll(".option:not(.disabled)").first(); l.length > 0 && (s.find(".focus").removeClass("focus"), l.addClass("focus")) } else s.trigger("click"); return !1 } if (27 == t.keyCode) s.hasClass("open") && s.trigger("click"); else if (9 == t.keyCode && s.hasClass("open")) return !1 }); var n = document.createElement("a").style; return n.cssText = "pointer-events:auto", "auto" !== n.pointerEvents && e("html").addClass("no-csspointerevents"), this } }(jQuery);
75/*============================================================================================================================*/
76// Fancybox 5.0
77!function (t, e) { "object" == typeof exports && "undefined" != typeof module ? e(exports) : "function" == typeof define && define.amd ? define(["exports"], e) : e((t = "undefined" != typeof globalThis ? globalThis : t || self).window = t.window || {}) }(this, (function (t) { "use strict"; const e = (t, e = 1e4) => (t = parseFloat(t + "") || 0, Math.round((t + Number.EPSILON) * e) / e), i = function (t) { if (!(t && t instanceof Element && t.offsetParent)) return !1; const e = t.scrollHeight > t.clientHeight, i = window.getComputedStyle(t).overflowY, n = -1 !== i.indexOf("hidden"), s = -1 !== i.indexOf("visible"); return e && !n && !s }, n = function (t, e = void 0) { return !(!t || t === document.body || e && t === e) && (i(t) ? t : n(t.parentElement, e)) }, s = function (t) { var e = (new DOMParser).parseFromString(t, "text/html").body; if (e.childElementCount > 1) { for (var i = document.createElement("div"); e.firstChild;)i.appendChild(e.firstChild); return i } return e.firstChild }, o = t => `${t || ""}`.split(" ").filter((t => !!t)), a = (t, e, i) => { t && o(e).forEach((e => { t.classList.toggle(e, i || !1) })) }; class r { constructor(t) { Object.defineProperty(this, "pageX", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), Object.defineProperty(this, "pageY", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), Object.defineProperty(this, "clientX", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), Object.defineProperty(this, "clientY", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), Object.defineProperty(this, "id", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), Object.defineProperty(this, "time", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), Object.defineProperty(this, "nativePointer", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), this.nativePointer = t, this.pageX = t.pageX, this.pageY = t.pageY, this.clientX = t.clientX, this.clientY = t.clientY, this.id = self.Touch && t instanceof Touch ? t.identifier : -1, this.time = Date.now() } } const l = { passive: !1 }; class c { constructor(t, { start: e = (() => !0), move: i = (() => { }), end: n = (() => { }) }) { Object.defineProperty(this, "element", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), Object.defineProperty(this, "startCallback", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), Object.defineProperty(this, "moveCallback", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), Object.defineProperty(this, "endCallback", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), Object.defineProperty(this, "currentPointers", { enumerable: !0, configurable: !0, writable: !0, value: [] }), Object.defineProperty(this, "startPointers", { enumerable: !0, configurable: !0, writable: !0, value: [] }), this.element = t, this.startCallback = e, this.moveCallback = i, this.endCallback = n; for (const t of ["onPointerStart", "onTouchStart", "onMove", "onTouchEnd", "onPointerEnd", "onWindowBlur"]) this[t] = this[t].bind(this); this.element.addEventListener("mousedown", this.onPointerStart, l), this.element.addEventListener("touchstart", this.onTouchStart, l), this.element.addEventListener("touchmove", this.onMove, l), this.element.addEventListener("touchend", this.onTouchEnd), this.element.addEventListener("touchcancel", this.onTouchEnd) } onPointerStart(t) { if (!t.buttons || 0 !== t.button) return; const e = new r(t); this.currentPointers.some((t => t.id === e.id)) || this.triggerPointerStart(e, t) && (window.addEventListener("mousemove", this.onMove), window.addEventListener("mouseup", this.onPointerEnd), window.addEventListener("blur", this.onWindowBlur)) } onTouchStart(t) { for (const e of Array.from(t.changedTouches || [])) this.triggerPointerStart(new r(e), t); window.addEventListener("blur", this.onWindowBlur) } onMove(t) { const e = this.currentPointers.slice(), i = "changedTouches" in t ? Array.from(t.changedTouches || []).map((t => new r(t))) : [new r(t)], n = []; for (const t of i) { const e = this.currentPointers.findIndex((e => e.id === t.id)); e < 0 || (n.push(t), this.currentPointers[e] = t) } n.length && this.moveCallback(t, this.currentPointers.slice(), e) } onPointerEnd(t) { t.buttons > 0 && 0 !== t.button || (this.triggerPointerEnd(t, new r(t)), window.removeEventListener("mousemove", this.onMove), window.removeEventListener("mouseup", this.onPointerEnd), window.removeEventListener("blur", this.onWindowBlur)) } onTouchEnd(t) { for (const e of Array.from(t.changedTouches || [])) this.triggerPointerEnd(t, new r(e)) } triggerPointerStart(t, e) { return !!this.startCallback(e, t, this.currentPointers.slice()) && (this.currentPointers.push(t), this.startPointers.push(t), !0) } triggerPointerEnd(t, e) { const i = this.currentPointers.findIndex((t => t.id === e.id)); i < 0 || (this.currentPointers.splice(i, 1), this.startPointers.splice(i, 1), this.endCallback(t, e, this.currentPointers.slice())) } onWindowBlur() { this.clear() } clear() { for (; this.currentPointers.length;) { const t = this.currentPointers[this.currentPointers.length - 1]; this.currentPointers.splice(this.currentPointers.length - 1, 1), this.startPointers.splice(this.currentPointers.length - 1, 1), this.endCallback(new Event("touchend", { bubbles: !0, cancelable: !0, clientX: t.clientX, clientY: t.clientY }), t, this.currentPointers.slice()) } } stop() { this.element.removeEventListener("mousedown", this.onPointerStart, l), this.element.removeEventListener("touchstart", this.onTouchStart, l), this.element.removeEventListener("touchmove", this.onMove, l), this.element.removeEventListener("touchend", this.onTouchEnd), this.element.removeEventListener("touchcancel", this.onTouchEnd), window.removeEventListener("mousemove", this.onMove), window.removeEventListener("mouseup", this.onPointerEnd), window.removeEventListener("blur", this.onWindowBlur) } } function h(t, e) { return e ? Math.sqrt(Math.pow(e.clientX - t.clientX, 2) + Math.pow(e.clientY - t.clientY, 2)) : 0 } function d(t, e) { return e ? { clientX: (t.clientX + e.clientX) / 2, clientY: (t.clientY + e.clientY) / 2 } : t } const u = t => "object" == typeof t && null !== t && t.constructor === Object && "[object Object]" === Object.prototype.toString.call(t), p = (t, ...e) => { const i = e.length; for (let n = 0; n < i; n++) { const i = e[n] || {};
77 Object.entries(i).forEach((([e, i]) => { const n = Array.isArray(i) ? [] : {}; t[e] || Object.assign(t, { [e]: n }), u(i) ? Object.assign(t[e], p(n, i)) : Array.isArray(i) ? Object.assign(t, { [e]: [...i] }) : Object.assign(t, { [e]: i }) })) } return t }, f = function (t, e) { return t.split(".").reduce(((t, e) => "object" == typeof t ? t[e] : void 0), e) }; class g { constructor(t = {}) { Object.defineProperty(this, "options", { enumerable: !0, configurable: !0, writable: !0, value: t }), Object.defineProperty(this, "events", { enumerable: !0, configurable: !0, writable: !0, value: new Map }), this.setOptions(t); for (const t of Object.getOwnPropertyNames(Object.getPrototypeOf(this))) t.startsWith("on") && "function" == typeof this[t] && (this[t] = this[t].bind(this)) } setOptions(t) { this.options = t ? p({}, this.constructor.defaults, t) : {}; for (const [t, e] of Object.entries(this.option("on") || {})) this.on(t, e) } option(t, ...e) { let i = f(t, this.options); return i && "function" == typeof i && (i = i.call(this, this, ...e)), i } optionFor(t, e, i, ...n) { let s = f(e, t); var o; "string" != typeof (o = s) || isNaN(o) || isNaN(parseFloat(o)) || (s = parseFloat(s)), "true" === s && (s = !0), "false" === s && (s = !1), s && "function" == typeof s && (s = s.call(this, this, t, ...n)); let a = f(e, this.options); return a && "function" == typeof a ? s = a.call(this, this, t, ...n, s) : void 0 === s && (s = a), void 0 === s ? i : s } cn(t) { const e = this.options.classes; return e && e[t] || "" } localize(t, e = []) { t = String(t).replace(/\{\{(\w+).?(\w+)?\}\}/g, ((t, e, i) => { let n = ""; return i ? n = this.option(`${e[0] + e.toLowerCase().substring(1)}.l10n.${i}`) : e && (n = this.option(`l10n.${e}`)), n || (n = t), n })); for (let i = 0; i < e.length; i++)t = t.split(e[i][0]).join(e[i][1]); return t = t.replace(/\{\{(.*?)\}\}/g, ((t, e) => e)) } on(t, e) { let i = []; "string" == typeof t ? i = t.split(" ") : Array.isArray(t) && (i = t), this.events || (this.events = new Map), i.forEach((t => { let i = this.events.get(t); i || (this.events.set(t, []), i = []), i.includes(e) || i.push(e), this.events.set(t, i) })) } off(t, e) { let i = []; "string" == typeof t ? i = t.split(" ") : Array.isArray(t) && (i = t), i.forEac
77h((t => { const i = this.events.get(t); if (Array.isArray(i)) { const t = i.indexOf(e); t > -1 && i.splice(t, 1) } })) } emit(t, ...e) { [...this.events.get(t) || []].forEach((t => t(this, ...e))), "*" !== t && this.emit("*", t, ...e) } } Object.defineProperty(g, "version", { enumerable: !0, configurable: !0, writable: !0, value: "5.0.36" }), Object.defineProperty(g, "defaults", { enumerable: !0, configurable: !0, writable: !0, value: {} }); class m extends g { constructor(t = {}) { super(t), Object.defineProperty(this, "plugins", { enumerable: !0, configurable: !0, writable: !0, value: {} }) } attachPlugins(t = {}) { const e = new Map; for (const [i, n] of Object.entries(t)) { const t = this.option(i), s = this.plugins[i]; s || !1 === t ? s && !1 === t && (s.detach(), delete this.plugins[i]) : e.set(i, new n(this, t || {})) } for (const [t, i] of e) this.plugins[t] = i, i.attach() } detachPlugins(t) { t = t || Object.keys(this.plugins); for (const e of t) { const t = this.plugins[e]; t && t.detach(), delete this.plugins[e] } return this.emit("detachPlugins"), this } } var v; !function (t) { t[t.Init = 0] = "Init", t[t.Error = 1] = "Error", t[t.Ready = 2] = "Ready", t[t.Panning = 3] = "Panning", t[t.Mousemove = 4] = "Mousemove", t[t.Destroy = 5] = "Destroy" }(v || (v = {})); const b = ["a", "b", "c", "d", "e", "f"], y = { PANUP: "Move up", PANDOWN: "Move down", PANLEFT: "Move left", PANRIGHT: "Move right", ZOOMIN: "Zoom in", ZOOMOUT: "Zoom out", TOGGLEZOOM: "Toggle zoom level", TOGGLE1TO1: "Toggle zoom level", ITERATEZOOM: "Toggle zoom level", ROTATECCW: "Rotate counterclockwise", ROTATECW: "Rotate clockwise", FLIPX: "Flip horizontally", FLIPY: "Flip vertically", FITX: "Fit horizontally", FITY: "Fit vertically", RESET: "Reset", TOGGLEFS: "Toggle fullscreen" }, w = { content: null, width: "auto", height: "auto", panMode: "drag", touch: !0, dragMinThreshold: 3, lockAxis: !1, mouseMoveFactor: 1, mouseMoveFriction: .12, zoom: !0, pinchToZoom: !0, panOnlyZoomed: "auto", minScale: 1, maxScale: 2, friction: .25, dragFriction: .35, decelFriction: .05, click: "toggleZoom", dblClick: !1, wheel: "zoom", wheelLimit: 7, spinner: !0, bounds: "auto", infinite: !1, rubberband: !0, bounce: !0, maxVelocity: 75, transformParent: !1, classes: { content: "f-panzoom__content", isLoading: "is-loading", canZoomIn: "can-zoom_in", canZoomOut: "can-zoom_out", isDraggable: "is-draggable", isDragging: "is-dragging", inFullscreen: "in-fullscreen", htmlHasFullscreen: "with-panzoom-in-fullscreen" }, l10n: y }, x = '<circle cx="25" cy="25" r="20"></circle>', E = '<div class="f-spinner"><svg viewBox="0 0 50 50">' + x + x + "</svg></div>", S = t => t && null !== t && t instanceof Element && "nodeType" in t, P = (t, e) => { t && o(e).forEach((e => { t.classList.remove(e) })) }, C = (t, e) => { t && o(e).forEach((e => { t.classList.add(e) })) }, T = { a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 }, M = 1e5, O = 1e4, A = "mousemove", L = "drag", z = "content", R = "auto"; let k = null, I = null; class D extends m { get fits() { return this.contentRect.width - this.contentRect.fitWidth < 1 && this.contentRect.height - this.contentRect.fitHeight < 1 } get isTouchDevice() { return null === I && (I = window.matchMedia("(hover: none)").matches), I } get isMobile() { return null === k && (k = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent)), k } get panMode() { return this.options.panMode !== A || this.isTouchDevice ? L : A } get panOnlyZoomed() { const t = this.options.panOnlyZoomed; return t === R ? this.isTouchDevice : t } get isInfinite() { return this.option("infinite") } get angle() { return 180 * Math.atan2(this.current.b, this.current.a) / Math.PI || 0 } get targetAngle() { return 180 * Math.atan2(this.target.b, this.target.a) / Math.PI || 0 } get scale() { const { a: t, b: e } = this.current; return Math.sqrt(t * t + e * e) || 1 } get targetScale() { const { a: t, b: e } = this.target; return Math.sqrt(t * t + e * e) || 1 } get minScale() { return this.option("minScale") || 1 } get fullScale() { const { contentRect: t } = this; return t.fullWidth / t.fitWidth || 1 } get maxScale() { return this.fullScale * (this.option("maxScale") || 1) || 1 } get coverScale() { const { containerRect: t, contentRect: e } = this, i = Math.max(t.height / e.fitHeight, t.width / e.fitWidth) || 1; return Math.min(this.fullScale, i) } get isScaling() { return Math.abs(this.targetScale - this.scale) > 1e-5 && !this.isResting } get isContentLoading() { const t = this.content; return !!(t && t instanceof HTMLImageElement) && !t.complete } get isResting() { if (this.isBouncingX || this.isBouncingY) return !1; for (const t of b) { const e = "e" == t || "f" === t ? 1e-4 : 1e-5; if (Math.abs(this.target[t] - this.current[t]) > e) return !1 } return !(!this.ignoreBounds && !this.checkBounds().inBounds) } constructor(t, e = {}, i = {}) { var n; if (super(e), Object.defineProperty(this, "pointerTracker", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "resizeObserver", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "updateTimer", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "clickTimer", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "rAF", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "isTicking", { enumerable: !0, configurable: !0, writable: !0, value: !1 }), Object.defineProperty(this, "ignoreBounds", { enumerable: !0, configurable: !0, writable: !0, value: !1 }), Object.defineProperty(this, "isBouncingX", { enumerable: !0, configurable: !0, writable: !0, value: !1 }), Object.defineProperty(this, "isBouncingY", { enumerable: !0, configurable: !0, writable: !0, value: !1 }), Object.defineProperty(this, "clicks", { enumerable: !0, configurable: !0, writable: !0, value: 0 }), Object.defineProperty(this, "trackingPoints", { enumerable: !0, configurable: !0, writable: !0, value: [] }), Object.defineProperty(this, "pwt", { enumerable: !0, configurable: !0, writable: !0, value: 0 }), Object.defineProperty(this, "cwd", { enumerable: !0, configurable: !0, writable: !0, value: 0 }), Object.defineProperty(this, "pmme", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), Object.defineProperty(this, "friction", { enumerable: !0, configurable: !0, writable: !0, value: 0 }), Object.defineProperty(this, "state", { enumerable: !0, configurable: !0, writable: !0, value: v.Init }), Object.defineProperty(this, "isDragging", { enumerable: !0, configurable: !0, writable: !0, value: !1 }), Object.defineProperty(this, "container", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), Object.defineProperty(this, "content", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), Object.defineProperty(this, "spinner", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "containerRect", { enumerable: !0, configurable: !0, writable: !0, value: { width: 0, height: 0, innerWidth: 0, innerHeight: 0 } }), Object.defineProperty(this, "contentRect", { enumerable: !0, configurable: !0, writable: !0, value: { top: 0, right: 0, bottom: 0, left: 0, fullWidth: 0, fullHeight: 0, fitWidth: 0, fitHeight: 0, width: 0, height: 0 } }), Object.defineProperty(this, "dragStart", { enumerable: !0, configurable: !0, writable: !0, value: { x: 0, y: 0, top: 0, left: 0, time: 0 } }), Object.defineProperty(this, "dragOffset", { enumerable: !0, configurable: !0, writable: !0, value: { x: 0, y: 0, time: 0 } }), Object.defineProperty(this, "current", { enumerable: !0, configurable: !0, writable: !0, value: Object.assign({}, T) }), Object.defineProperty(this, "target", { enumerable: !0, configurable: !0, writable: !0, value: Object.assign({}, T) }), Object.defineProperty(this, "velocity", { enumerable: !0, configurable: !0, writable: !0, value: { a: 0, b: 0, c: 0, d: 0, e: 0, f: 0 } }), Object.defineProperty(this, "lockedAxis", { enumerable: !0, configurable: !0, writable: !0, value: !1 }), !t) throw new Error("Container Element Not Found"); this.container = t, this.initContent(), this.attachPlugins(Object.assign(Object.assign({}
77, D.Plugins), i)), this.emit("attachPlugins"), this.emit("init"); const o = this.content; if (o.addEventListener("load", this.onLoad), o.addEventListener("error", this.onError), this.isContentLoading) { if (this.option("spinner")) { t.classList.add(this.cn("isLoading")); const e = s(E); !t.contains(o) || o.parentElement instanceof HTMLPictureElement ? this.spinner = t.appendChild(e) : this.spinner = (null === (n = o.parentElement) || void 0 === n ? void 0 : n.insertBefore(e, o)) || null } this.emit("beforeLoad") } else queueMicrotask((() => { this.enable() })) } initContent() { const { container: t } = this, e = this.cn(z); let i = this.option(z) || t.querySelector(`.${e}`); if (i || (i = t.querySelector("img,picture") || t.firstElementChild, i && C(i, e)), i instanceof HTMLPictureElement && (i = i.querySelector("img")), !i) throw new Error("No content found"); this.content = i } onLoad() { const { spinner: t, container: e, state: i } = this; t && (t.remove(), this.spinner = null), this.option("spinner") && e.classList.remove(this.cn("isLoading")), this.emit("afterLoad"), i === v.Init ? this.enable() : this.updateMetrics() } onError() { this.state !== v.Destroy && (this.spinner && (this.spinner.remove(), this.spinner = null), this.stop(), this.detachEvents(), this.state = v.Error, this.emit("error")) } getNextScale(t) { const { fullScale: e, targetScale: i, coverScale: n, maxScale: s, minScale: o } = this; let a = o; switch (t) { case "toggleMax": a = i - o < .5 * (s - o) ? s : o; break; case "toggleCover": a = i - o < .5 * (n - o) ? n : o; break; case "toggleZoom": a = i - o < .5 * (e - o) ? e : o; break; case "iterateZoom": let t = [1, e, s].sort(((t, e) => t - e)), r = t.findIndex((t => t > i + 1e-5)); a = t[r] || 1 }return a } attachObserver() { var t; const e = () => { const { container: t, containerRect: e } = this; return Math.abs(e.width - t.getBoundingClientRect().width) > .1 || Math.abs(e.height - t.getBoundingClientRect().height) > .1 }; this.resizeObserver || void 0 === window.ResizeObserver || (this.resizeObserver = new ResizeObserver((() => { this.updateTimer || (e() ? (this.onResize(), this.isMobile && (this.updateTimer = setTimeout((() => { e() && this.onResize(), this.updateTimer = null }), 500))) : this.updateTimer && (clearTimeout(this.updateTimer), this.updateTimer = null)) }))), null === (t = this.resizeObserver) || void 0 === t || t.observe(this.container) } detachObserver() { var t; null === (t = this.resizeObserver) || void 0 === t || t.disconnect() } attachEvents() { const { container: t } = this; t.addEventListener("click", this.onClick, { passive: !1, capture: !1 }), t.addEventListener("wheel", this.onWheel, { passive: !1 }), this.pointerTracker = new c(t, { start: this.onPointerDown, move: this.onPointerMove, end: this.onPointerUp }), document.addEventListener(A, this.onMouseMove) } detachEvents() { var t; const { container: e } = this; e.removeEventListener("click", this.onClick, { passive: !1, capture: !1 }), e.removeEventListener("wheel", this.onWheel, { passive: !1 }), null === (t = this.pointerTracker) || void 0 === t || t.stop(), this.pointerTracker = null, document.removeEventListener(A, this.onMouseMove), document.removeEventListener("keydown", this.onKeydown, !0), this.clickTimer && (clearTimeout(this.clickTimer), this.clickTimer = null), this.updateTimer && (clearTimeout(this.updateTimer), this.updateTimer = null) } animate() { this.setTargetForce(); const t = this.friction, e = this.option("maxVelocity"); for (const i of b) t ? (this.velocity[i] *= 1 - t, e && !this.isScaling && (this.velocity[i] = Math.max(Math.min(this.velocity[i], e), -1 * e)), this.current[i] += this.velocity[i]) : this.current[i] = this.target[i]; this.setTransform(), this.setEdgeForce(), !this.isResting || this.isDragging ? this.rAF = requestAnimationFrame((() => this.animate())) : this.stop("current") } setTargetForce() { for (const t of b) "e" === t && this.isBouncingX || "f" === t && this.isBouncingY || (this.velocity[t] = (1 / (1 - this.friction) - 1) * (this.target[t] - this.current[t])) } checkBounds(t = 0, e = 0) { const { current: i } = this, n = i.e + t, s = i.f + e, o = this.getBounds(), { x: a, y: r } = o, l = a.min, c = a.max, h = r.min, d = r.max; let u = 0, p = 0; return l !== 1 / 0 && n < l ? u = l - n : c !== 1 / 0 && n > c && (u = c - n), h !== 1 / 0 && s < h ? p = h - s : d !== 1 / 0 && s > d && (p = d - s), Math.abs(u) < 1e-4 && (u = 0), Math.abs(p) < 1e-4 && (p = 0), Object.assign(Object.assign({}, o), { xDiff: u, yDiff: p, inBounds: !u && !p }) } clampTargetBounds() { const { target: t } = this, { x: e, y: i } = this.getBounds(); e.min !== 1 / 0 && (t.e = Math.max(t.e, e.min)), e.max !== 1 / 0 && (t.e = Math.min(t.e, e.max)), i.min !== 1 / 0 && (t.f = Math.max(t.f, i.min)), i.max !== 1 / 0 && (t.f = Math.min(t.f, i.max)) } calculateContentDim(t = this.current) { const { content: e, contentRect: i } = this, { fitWidth: n, fitHeight: s, fullWidth: o, fullHeight: a } = i; let r = o, l = a; if (this.option("zoom") || 0 !== this.angle) { const i = !(e instanceof HTMLImageElement) && ("none" === window.getComputedStyle(e).maxWidth || "none" === window.getComputedStyle(e).maxHeight), c = i ? o : n, h = i ? a : s, d = this.getMatrix(t), u = new DOMPoint(0, 0).matrixTransform(d), p = new DOMPoint(0 + c, 0).matrixTransform(d), f = new DOMPoint(0 + c, 0 + h).matrixTransform(d), g = new DOMPoint(0, 0 + h).matrixTransform(d), m = Math.abs(f.x - u.x), v = Math.abs(f.y - u.y), b = Math.abs(g.x - p.x), y = Math.abs(g.y - p.y); r = Math.max(m, b), l = Math.max(v, y) } return { contentWidth: r, contentHeight: l } } setEdgeForce() { if (this.ignoreBounds || this.isDragging || this.panMode === A || this.targetScale < this.scale) return this.isBouncingX = !1, void (this.isBouncingY = !1); const { target: t } = this, { x: e, y: i, xDiff: n, yDiff: s } = this.checkBounds(); const o = this.option("maxVelocity"); let a = this.velocity.e, r = this.velocity.f; 0 !== n ? (this.isBouncingX = !0, n * a <= 0 ? a += .14 * n : (a = .14 * n, e.min !== 1 / 0 && (this.target.e = Math.max(t.e, e.min)), e.max !== 1 / 0 && (this.target.e = Math.min(t.e, e.max))), o && (a = Math.max(Math.min(a, o), -1 * o))) : this.isBouncingX = !1, 0 !== s ? (this.isBouncingY = !0, s * r <= 0 ? r += .14 * s : (r = .14 * s, i.min !== 1 / 0 && (this.target.f = Math.max(t.f, i.min)), i.max !== 1 / 0 && (this.target.f = Math.min(t.f, i.max))), o && (r = Math.max(Math.min(r, o), -1 * o))) : this.isBouncingY = !1, this.isBouncingX && (this.velocity.e = a), this.isBouncingY && (this.velocity.f = r) } enable() { const { content: t } = this, e = new DOMMatrixReadOnly(window.getComputedStyle(t).transform); for (const t of b) this.current[t] = this.target[t] = e[t]; this.updateMetrics(), this.attachObserver(), this.attachEvents(), this.state = v.Ready, this.emit
77("ready") } onClick(t) { var e; "click" === t.type && 0 === t.detail && (this.dragOffset.x = 0, this.dragOffset.y = 0), this.isDragging && (null === (e = this.pointerTracker) || void 0 === e || e.clear(), this.trackingPoints = [], this.startDecelAnim()); const i = t.target; if (!i || t.defaultPrevented) return; if (i.hasAttribute("disabled")) return t.preventDefault(), void t.stopPropagation(); if ((() => { const t = window.getSelection(); return t && "Range" === t.type })() && !i.closest("button")) return; const n = i.closest("[data-panzoom-action]"), s = i.closest("[data-panzoom-change]"), o = n || s, a = o && S(o) ? o.dataset : null; if (a) { const e = a.panzoomChange, i = a.panzoomAction; if ((e || i) && t.preventDefault(), e) { let t = {}; try { t = JSON.parse(e) } catch (t) { console && console.warn("The given data was not valid JSON") } return void this.applyChange(t) } if (i) return void (this[i] && this[i]()) } if (Math.abs(this.dragOffset.x) > 3 || Math.abs(this.dragOffset.y) > 3) return t.preventDefault(), void t.stopPropagation(); if (i.closest("[data-fancybox]")) return; const r = this.content.getBoundingClientRect(), l = this.dragStart; if (l.time && !this.canZoomOut() && (Math.abs(r.x - l.x) > 2 || Math.abs(r.y - l.y) > 2)) return; this.dragStart.time = 0; const c = e => { this.option("zoom", t) && e && "string" == typeof e && /(iterateZoom)|(toggle(Zoom|Full|Cover|Max)|(zoomTo(Fit|Cover|Max)))/.test(e) && "function" == typeof this[e] && (t.preventDefault(), this[e]({ event: t })) }, h = this.option("click", t), d = this.option("dblClick", t); d ? (this.clicks++, 1 == this.clicks && (this.clickTimer = setTimeout((() =>
77 { 1 === this.clicks ? (this.emit("click", t), !t.defaultPrevented && h && c(h)) : (this.emit("dblClick", t), t.defaultPrevented || c(d)), this.clicks = 0, this.clickTimer = null }), 350))) : (this.emit("click", t), !t.defaultPrevented && h && c(h)) } addTrackingPoint(t) { const e = this.trackingPoints.filter((t => t.time > Date.now() - 100)); e.push(t), this.trackingPoints = e } onPointerDown(t, e, i) { var n; if (!1 === this.option("touch", t)) return !1; this.pwt = 0, this.dragOffset = { x: 0, y: 0, time: 0 }, this.trackingPoints = []; const s = this.content.getBoundingClientRect(); if (this.dragStart = { x: s.x, y: s.y, top: s.top, left: s.left, time: Date.now() }, this.clickTimer) return !1; if (this.panMode === A && this.targetScale > 1) return t.preventDefault(), t.stopPropagation(), !1; const o = t.composedPath()[0]; if (!i.length) { if (["TEXTAREA", "OPTION", "INPUT", "SELECT", "VIDEO", "IFRAME"].includes(o.nodeName) || o.closest("[contenteditable],[data-selectable],[data-draggable],[data-clickable],[data-panzoom-change],[data-panzoom-action]")) return !1; null === (n = window.getSelection()) || void 0 === n || n.removeAllRanges() } if ("mousedown" === t.type) ["A", "BUTTON"].includes(o.nodeName) || t.preventDefault(); else if (Math.abs(this.velocity.a) > .3) return !1; return this.target.e = this.current.e, this.target.f = this.current.f, this.stop(), this.isDragging || (this.isDragging = !0, this.addTrackingPoint(e), this.emit("touchStart", t)), !0 } onPointerMove(t, i, s) { if (!1 === this.option("touch", t)) return; if (!this.isDragging) return; if (i.length < 2 && this.panOnlyZoomed && e(this.targetScale) <= e(this.minScale)) return;
77 if (this.emit("touchMove", t), t.defaultPrevented) return; this.addTrackingPoint(i[0]); const { content: o } = this, a = d(s[0], s[1]), r = d(i[0], i[1]); let l = 0, c = 0; if (i.length > 1) { const t = o.getBoundingClientRect(); l = a.clientX - t.left - .5 * t.width, c = a.clientY - t.top - .5 * t.height } const u = h(s[0], s[1]), p = h(i[0], i[1]); let f = u ? p / u : 1, g = r.clientX - a.clientX, m = r.clientY - a.clientY; this.dragOffset.x += g, this.dragOffset.y += m, this.dragOffset.time = Date.now() - this.dragStart.time; let v = e(this.targetScale) === e(this.minScale) && this.option("lockAxis"); if (v && !this.lockedAxis) if ("xy" === v || "y" === v || "touchmove" === t.type) { if (Math.abs(this.dragOffset.x) < 6 && Math.abs(this.dragOffset.y) < 6) return void t.preventDefault(); const e = Math.abs(180 * Math.atan2(this.dragOffset.y, this.dragOffset.x) / Math.PI); this.lockedAxis = e > 45 && e < 135 ? "y" : "x", this.dragOffset.x = 0, this.dragOffset.y = 0, g = 0, m = 0 } else this.lockedAxis = v; if (n(t.target, this.content) && (v = "x", this.dragOffset.y = 0), v && "xy" !== v && this.lockedAxis !== v && e(this.targetScale) === e(this.minScale)) return; t.cancelable && t.preventDefault(), this.container.classList.add(this.cn("isDragging")); const b = this.checkBounds(g, m); this.option("rubberband") ? ("x" !== this.isInfinite && (b.xDiff > 0 && g < 0 || b.xDiff < 0 && g > 0) && (g *= Math.max(0, .5 - Math.abs(.75 / this.contentRect.fitWidth * b.xDiff))), "y" !== this.isInfinite && (b.yDiff > 0 && m < 0 || b.yDiff < 0 && m > 0) && (m *= Math.max(0, .5 - Math.abs(.75 / this.contentRect.fitHeight * b.yDiff)))) : (b.xDiff && (g = 0), b.yDiff && (m = 0)); const y = this.targetScale, w = this.minScale, x = this.maxScale; y < .5 * w && (f = Math.max(f, w)), y > 1.5 * x && (f = Math.min(f, x)), "y" === this.lockedAxis && e(y) === e(w) && (g = 0), "x" === this.lockedAxis && e(y) === e(w) && (m = 0), this.applyChange({ originX: l, originY: c, panX: g, panY: m, scale: f, friction: this.option("dragFriction"), ignoreBounds: !0 }) } onPointerUp(t, e, i) { if (i.length) return this.dragOffset.x = 0, this.dragOffset.y = 0, void (this.trackingPoints = []); this.container.classList.remove(this.cn("isDragging")), this.isDragging && (this.addTrackingPoint(e), this.panOnlyZoomed && this.contentRect.width - this.contentRect.fitWidth < 1 && this.contentRect.height - this.contentRect.fitHeight < 1 && (this.trackingPoints = []), n(t.target, this.content) && "y" === this.lockedAxis && (this.trackingPoints = []), this.emit("touchEnd", t), this.isDragging = !1, this.lockedAxis = !1, this.state !== v.Destroy && (t.defaultPrevented || this.startDecelAnim())) } startDecelAnim() { var t; const i = this.isScaling; this.rAF && (cancelAnimationFrame(this.rAF), this.rAF = null), this.isBouncingX = !1, this.isBouncingY = !1; for (const t of b) this.velocity[t] = 0; this.target.e = this.current.e, this.target.f = this.current.f, P(this.container, "is-scaling"), P(this.container, "is-animating"), this.isTicking = !1; const { trackingPoints: n } = this, s = n[0], o = n[n.length - 1]; let a = 0, r = 0, l = 0; o && s && (a = o.clientX - s.clientX, r = o.clientY - s.clientY, l = o.time - s.time); const c = (null === (t = window.visualViewport) || void 0 === t ? void 0 : t.scale) || 1; 1 !== c && (a *= c, r *= c); let h = 0, d = 0, u = 0, p = 0, f = this.option("decelFriction"); const g = this.targetScale; if (l > 0) { u = Math.abs(a) > 3 ? a / (l / 30) : 0, p = Math.abs(r) > 3 ? r / (l / 30) : 0; const t = this.option("maxVelocity"); t && (u = Math.max(Math.min(u, t), -1 * t), p = Math.max(Math.min(p, t), -1 * t)) } u && (h = u / (1 / (1 - f) - 1)), p && (d = p / (1 / (1 - f) - 1)), ("y" === this.option("lockAxis") || "xy" === this.option("lockAxis") && "y" === this.lockedAxis && e(g) === this.minScale) && (h = u = 0), ("x" === this.option("lockAxis") || "xy" === this.option("lockAxis") && "x" === this.lockedAxis && e(g) === this.minScale) && (d = p = 0); const m = this.dragOffset.x, v = this.dragOffset.y, y = this.option("dragMinThreshold") || 0; Math.abs(m) < y && Math.abs(v) < y && (h = d = 0, u = p = 0), (this.option("zoom") && (g < this.minScale - 1e-5 || g > this.maxScale + 1e-5) || i && !h && !d) && (f = .35), this.applyChange({ panX: h, panY: d, friction: f }
77), this.emit("decel", u, p, m, v) } onWheel(t) { var e = [-t.deltaX || 0, -t.deltaY || 0, -t.detail || 0].reduce((function (t, e) { return Math.abs(e) > Math.abs(t) ? e : t })); const i = Math.max(-1, Math.min(1, e)); if (this.emit("wheel", t, i), this.panMode === A) return; if (t.defaultPrevented) return; const n = this.option("wheel"); "pan" === n ? (t.preventDefault(), this.panOnlyZoomed && !this.canZoomOut() || this.applyChange({ panX: 2 * -t.deltaX, panY: 2 * -t.deltaY, bounce: !1 })) : "zoom" === n && !1 !== this.option("zoom") && this.zoomWithWheel(t) } onMouseMove(t) { this.panWithMouse(t) } onKeydown(t) { "Escape" === t.key && this.toggleFS() } onResize() { this.updateMetrics(), this.checkBounds().inBounds || this.requestTick() } setTransform() { this.emit("beforeTransform"); const { current: t, target: i, content: n, contentRect: s } = this, o = Object.assign({}, T); for (const n of b) { const s = "e" == n || "f" === n ? O : M; o[n] = e(t[n], s), Math.abs(i[n] - t[n]) < ("e" == n || "f" === n ? .51 : .001) && (t[n] = i[n]) } let { a: a, b: r, c: l, d: c, e: h, f: d } = o, u = `matrix(${a}, ${r}, ${l}, ${c}, ${h}, ${d})`, p = n.parentElement instanceof HTMLPictureElement ? n.parentElement : n; if (this.option("transformParent") && (p = p.parentElement || p), p.style.transform === u) return; p.style.transform = u; const { contentWidth: f, contentHeight: g } = this.calculateContentDim(); s.width = f, s.height = g, this.emit("afterTransform") } updateMetrics(t = !1) { var i; if (!this || this.state === v.Destroy) return; if (this.isContentLoading) return; const n = Math.max(1, (null === (i = window.visualViewport) || void 0 === i ? void 0 : i.scale) || 1), { container: s, content: o } = this, a = o instanceof HTMLImageElement, r = s.getBoundingClientRect(), l = getComputedStyle(this.container); let c = r.width * n, h = r.height * n; const d = parseFloat(l.paddingTop) + parseFloat(l.paddingBottom), u = c - (parseFloat(l.paddingLeft) + parseFloat(l.paddingRight)), p = h - d; this.containerRect = { width: c, height: h, innerWidth: u, innerHeight: p }; const f = parseFloat(o.dataset.width || "") || (t => { let e = 0; return e = t instanceof HTMLImageElement ? t.naturalWidth : t instanceof SVGElement ? t.width.baseVal.value : Math.max(t.offsetWidth, t.scrollWidth), e || 0 })(o), g = parseFloat(o.dataset.height || "") || (t => { let e = 0; return e = t instanceof HTMLImageElement ? t.naturalHeight : t instanceof SVGElement ? t.height.baseVal.value : Math.max(t.offsetHeight, t.scrollHeight), e || 0 })(o); let m = this.option("width", f) || R, b = this.option("height", g) || R; const y = m === R, w = b === R; "number" != typeof m && (m = f), "number" != typeof b && (b = g), y && (m = f * (b / g)), w && (b = g / (f / m)); let x = o.parentElement instanceof HTMLPictureElement ? o.parentElement : o; this.option("transformParent") && (x = x.parentElement || x); const E = x.getAttribute("style") || ""; x.style.setProperty("transform", "none", "important"), a && (x.style.width = "", x.style.height = ""), x.offsetHeight; const S = o.getBoundingClientRect(); let P = S.width * n, C = S.height * n, T = P, M = C; P = Math.min(P, m), C = Math.min(C, b), a ? ({ width: P, height: C } = ((t, e, i, n) => { const s = i / t, o = n / e, a = Math.min(s, o); return { width: t *= a, height: e *= a } })(m, b, P, C)) : (P = Math.min(P, m), C = Math.min(C, b)); let O = .5 * (M - C), A = .5 * (T - P); this.contentRect = Object.assign(Object.assign({}, this.contentRect), { top: S.top - r.top + O, bottom: r.bottom - S.bottom + O, left: S.left - r.left + A, right: r.right - S.right + A, fitWidth: P, fitHeight: C, width: P, height: C, fullWidth: m, fullHeight: b }), x.style.cssText = E, a && (x.style.width = `${P}px`, x.style.height = `${C}px`), this.setTransform(), !0 !== t && this.emit("refresh"), this.ignoreBounds || (e(this.targetScale) < e(this.minScale) ? this.zoomTo(this.minScale, { friction: 0 }) : this.targetScale > this.maxScale ? this.zoomTo(this.maxScale, { friction: 0 }) : this.state === v.Init || this.checkBounds().inBounds || this.requestTick()), this.updateControls() } calculateBounds() { const { contentWidth: t, contentHeight: i } = this.calculateContentDim(this.target), { targetScale: n, lockedAxis: s } = this, { fitWidth: o, fitHeight: a } = this.contentRect; let r = 0, l = 0, c = 0, h = 0; const d = this.option("infinite"); if (!0 === d || s && d === s) r = -1 / 0, c = 1 / 0, l = -1 / 0, h = 1 / 0; else { let { containerRect: s, contentRect: d }
77 = this, u = e(o * n, O), p = e(a * n, O), { innerWidth: f, innerHeight: g } = s; if (s.width === u && (f = s.width), s.width === p && (g = s.height), t > f) { c = .5 * (t - f), r = -1 * c; let e = .5 * (d.right - d.left); r += e, c += e } if (o > f && t < f && (r -= .5 * (o - f), c -= .5 * (o - f)), i > g) { h = .5 * (i - g), l = -1 * h; let t = .5 * (d.bottom - d.top); l += t, h += t } a > g && i < g && (r -= .5 * (a - g), c -= .5 * (a - g)) } return { x: { min: r, max: c }, y: { min: l, max: h } } } getBounds() { const t = this.option("bounds"); return t !== R ? t : this.calculateBounds() } updateControls() { const t = this, i = t.container, { panMode: n, contentRect: s, targetScale: o, minScale: r } = t; let l = r, c = t.option("click") || !1; c && (l = t.getNextScale(c)); let h = t.canZoomIn(), d = t.canZoomOut(), u = n === L && !!this.option("touch"), p = d && u; if (u && (e(o) < e(r) && !this.panOnlyZoomed && (p = !0), (e(s.width, 1) > e(s.fitWidth, 1) || e(s.height, 1) > e(s.fitHeight, 1)) && (p = !0)), e(s.width * o, 1) < e(s.fitWidth, 1) && (p = !1), n === A && (p = !1), a(i, this.cn("isDraggable"), p), !this.option("zoom")) return; let f = h && e(l) > e(o), g = !f && !p && d && e(l) < e(o); a(i, this.cn("canZoomIn"), f), a(i, this.cn("canZoomOut"), g); for (const t of i.querySelectorAll("[data-panzoom-action]")) { let e = !1, i = !1; switch (t.dataset.panzoomAction) { case "zoomIn": h ? e = !0 : i = !0; break; case "zoomOut": d ? e = !0 : i = !0; break; case "toggleZoom": case "iterateZoom": h || d ? e = !0 : i = !0; const n = t.querySelector("g"); n && (n.style.display = h ? "" : "none") }e ? (t.removeAttribute("disabled"), t.removeAttribute("tabindex")) : i && (t.setAttribute("disabled", ""), t.setAttribute("tabindex", "-1")) } } panTo({ x: t = this.target.e, y: e = this.target.f, scale: i = this.targetScale, friction: n = this.option("friction"), angle: s = 0, originX: o = 0, originY: a = 0, flipX: r = !1, flipY: l = !1, ignoreBounds: c = !1 }) { this.state !== v.Destroy && this.applyChange({ panX: t - this.target.e, panY: e - this.target.f, scale: i / this.targetScale, angle: s, originX: o, originY: a, friction: n, flipX: r, flipY: l, ignoreBounds: c }) } applyChange({ panX: t = 0, panY: i = 0, scale: n = 1, angle: s = 0, originX: o = -this.current.e, originY: a = -this.current.f, friction: r = this.option("friction"), flipX: l = !1, flipY: c = !1, ignoreBounds: h = !1, bounce: d = this.option("bounce") }) { const u = this.state; if (u === v.Destroy) return; this.rAF && (cancelAnimationFrame(this.rAF), this.rAF = null), this.friction = r || 0, this.ignoreBounds = h; const { current: p } = this, f = p.e, g = p.f, m = this.getMatrix(this.target); let y = (new DOMMatrix).translate(f, g).translate(o, a).translate(t, i); if (this.option("zoom")) { if (!h) { const t = this.targetScale, e = this.minScale, i = this.maxScale; t * n < e && (n = e / t), t * n > i && (n = i / t) } y = y.scale(n) } y = y.translate(-o, -a).translate(-f, -g).multiply(m), s && (y = y.rotate(s)), l && (y = y.scale(-1, 1)), c && (y = y.scale(1, -1)); for (const t of b) "e" !== t && "f" !== t && (y[t] > this.minScale + 1e-5 || y[t] < this.minScale - 1e-5) ? this.target[t] = y[t] : this.target[t] = e(y[t], O); (this.targetScale < this.scale || Math.abs(n - 1) > .1 || this.panMode === A || !1 === d) && !h && this.clampTargetBounds(), u === v.Init ? this.animate() : this.isResting || (this.state = v.Panning, this.requestTick()) } stop(t = !1) { if (this.state === v.Init || this.state === v.Destroy) return; const e = this.isTicking; this.rAF && (cancelAnimationFrame(this.rAF), this.rAF = null), this.isBouncingX = !1, this.isBouncingY = !1; for (const e of b) this.velocity[e] = 0, "current" === t ? this.current[e] = this.target[e] : "target" === t && (this.target[e] = this.current[e]); this.setTransform(), P(this.container, "is-scaling"), P(this.container, "is-animating"), this.isTicking = !1, this.state = v.Ready, e && (this.emit
77("endAnimation"), this.updateControls()) } requestTick() { this.isTicking || (this.emit("startAnimation"), this.updateControls(), C(this.container, "is-animating"), this.isScaling && C(this.container, "is-scaling")), this.isTicking = !0, this.rAF || (this.rAF = requestAnimationFrame((() => this.animate()))) } panWithMouse(t, i = this.option("mouseMoveFriction")) { if (this.pmme = t, this.panMode !== A || !t) return; if (e(this.targetScale) <= e(this.minScale)) return; this.emit("mouseMove", t); const { container: n, containerRect: s, contentRect: o } = this, a = s.width, r = s.height, l = n.getBoundingClientRect(), c = (t.clientX || 0) - l.left, h = (t.clientY || 0) - l.top; let { contentWidth: d, contentHeight: u } = this.calculateContentDim(this.target); const p = this.option("mouseMoveFactor"); p > 1 && (d !== a && (d *= p), u !== r && (u *= p)); let f = .5 * (d - a) - c / a * 100 / 100 * (d - a); f += .5 * (o.right - o.left); let g = .5 * (u - r) - h / r * 100 / 100 * (u - r); g += .5 * (o.bottom - o.top), this.applyChange({ panX: f - this.target.e, panY: g - this.target.f, friction: i }) } zoomWithWheel(t) { if (this.state === v.Destroy || this.state === v.Init) return; const i = Date.now(); if (i - this.pwt < 45) return void t.preventDefault(); this.pwt = i; var n = [-t.deltaX || 0, -t.deltaY || 0, -t.detail || 0].reduce((function (t, e) { return Math.abs(e) > Math.abs(t) ? e : t })); const s = Math.max(-1, Math.min(1, n)), { targetScale: o, maxScale: a, minScale: r } = this; let l = o * (100 + 45 * s) / 100; e(l) < e(r) && e(o) <= e(r) ? (this.cwd += Math.abs(s), l = r) : e(l) > e(a) && e(o) >= e(a) ? (this.cwd += Math.abs(s), l = a) : (this.cwd = 0, l = Math.max(Math.min(l, a), r)), this.cwd > this.option("wheelLimit") || (t.preventDefault(), e(l) !== e(o) && this.zoomTo(l, { event: t })) } canZoomIn() { return this.option("zoom") && (e(this.contentRect.width, 1) < e(this.contentRect.fitWidth, 1) || e(this.targetScale) < e(this.maxScale)) } canZoomOut() { return this.option("zoom") && e(this.targetScale) > e(this.minScale) } zoomIn(t = 1.25, e) { this.zoomTo(this.targetScale * t, e) } zoomOut(t = .8, e) { this.zoomTo(this.targetScale * t, e) } zoomToFit(t) { this.zoomTo("fit", t) } zoomToCover(t) { this.zoomTo("cover", t) } zoomToFull(t) { this.zoomTo("full", t) } zoomToMax(t) { this.zoomTo("max", t) } toggleZoom(t) { this.zoomTo(this.getNextScale("toggleZoom"), t) } toggleMax(t) { this.zoomTo(this.getNextScale("toggleMax"), t) } toggleCover(t) { this.zoomTo(this.getNextScale("toggleCover"), t) } iterateZoom(t) { this.zoomTo("next", t) } zoomTo(t = 1, { friction: e = R, originX: i = R, originY: n = R, event: s } = {}) { if (this.isContentLoading || this.state === v.Destroy) return; const { targetScale: o, fullScale: a, maxScale: r, coverScale: l } = this; if (this.stop(), this.panMode === A && (s = this.pmme || s), s || i === R || n === R) { const t = this.content.getBoundingClientRect(), e = this.container.getBoundingClientRect(), o = s ? s.clientX : e.left + .5 * e.width, a = s ? s.clientY : e.top + .5 * e.height; i = o - t.left - .5 * t.width, n = a - t.top - .5 * t.height } let c = 1; "number" == typeof t ? c = t : "full" === t ? c = a : "cover" === t ? c = l : "max" === t ? c = r : "fit" === t ? c = 1 : "next" === t && (c = this.getNextScale("iterateZoom")), c = c / o || 1, e = e === R ? c > 1 ? .15 : .25 : e, this.applyChange({ scale: c, originX: i, originY: n, friction: e }), s && this.panMode === A && this.panWithMouse(s, e) } rotateCCW() { this.applyChange({ angle: -90 }) } rotateCW() { this.applyChange({ angle: 90 }) } flipX() { this.applyChange({ flipX: !0 }) } flipY() { this.applyChange({ flipY: !0 }) } fitX() { this.stop("target"); const { containerRect: t, contentRect: e, target: i } = this; this.applyChange({ panX: .5 * t.width - (e.left + .5 * e.fitWidth) - i.e, panY: .5 * t.height - (e.top + .5 * e.fitHeight) - i.f, scale: t.width / e.fitWidth / this.targetScale, originX: 0, originY: 0, ignoreBounds: !0 }) } fitY() { this.stop("target"); const { containerRect: t, contentRect: e, target: i } = this; this.applyChange({ panX: .5 * t.width - (e.left + .5 * e.fitWidth) - i.e, panY: .5 * t.innerHe
77ight - (e.top + .5 * e.fitHeight) - i.f, scale: t.height / e.fitHeight / this.targetScale, originX: 0, originY: 0, ignoreBounds: !0 }) } toggleFS() { const { container: t } = this, e = this.cn("inFullscreen"), i = this.cn("htmlHasFullscreen"); t.classList.toggle(e); const n = t.classList.contains(e); n ? (document.documentElement.classList.add(i), document.addEventListener("keydown", this.onKeydown, !0)) : (document.documentElement.classList.remove(i), document.removeEventListener("keydown", this.onKeydown, !0)), this.updateMetrics(), this.emit(n ? "enterFS" : "exitFS") } getMatrix(t = this.current) { const { a: e, b: i, c: n, d: s, e: o, f: a } = t; return new DOMMatrix([e, i, n, s, o, a]) } reset(t) { if (this.state !== v.Init && this.state !== v.Destroy) { this.stop("current"); for (const t of b) this.target[t] = T[t]; this.target.a = this.minScale, this.target.d = this.minScale, this.clampTargetBounds(), this.isResting || (this.friction = void 0 === t ? this.option("friction") : t, this.state = v.Panning, this.requestTick()) } } destroy() { this.stop(), this.state = v.Destroy, this.detachEvents(), this.detachObserver(); const { container: t, content: e } = this, i = this.option("classes") || {}; for (const e of Object.values(i)) t.classList.remove(e + ""); e && (e.removeEventListener("load", this.onLoad), e.removeEventListener("error", this.onError)), this.detachPlugins() } } Object.defineProperty(D, "defaults", { enumerable: !0, configurable: !0, writable: !0, value: w }), Object.defineProperty(D, "Plugins", { enumerable: !0, configurable: !0, writable: !0, value: {} }); const F = function (t, e) { let i = !0; return (...n) => { i && (i = !1, t(...n), setTimeout((() => { i = !0 }), e)) } }, j = (t, e) => { let i = []; return t.childNodes.forEach((t => { t.nodeType !== Node.ELEMENT_NODE || e && !t.matches(e) || i.push(t) })), i }, B = { viewport: null, track: null, enabled: !0, slides: [], axis: "x", transition: "fade", preload: 1, slidesPerPage: "auto", initialPage: 0, friction: .12, Panzoom: { decelFriction: .12 }, center: !0, infinite: !0, fill: !0, dragFree: !1, adaptiveHeight: !1, direction: "ltr", classes: { container: "f-carousel", viewport: "f-carousel__viewport", track: "f-carousel__track", slide: "f-carousel__slide", isLTR: "is-ltr", isRTL: "is-rtl", isHorizontal: "is-horizontal", isVertical: "is-vertical", inTransition: "in-transition", isSelected: "is-selected" }, l10n: { NEXT: "Next slide", PREV: "Previous slide", GOTO: "Go to slide #%d" } }; var H; !function (t) { t[t.Init = 0] = "Init", t[t.Ready = 1] = "Ready", t[t.Destroy = 2] = "Destroy" }(H || (H = {})); const N = t => { if ("string" == typeof t || t instanceof HTMLElement) t = { html: t }; else { const e = t.thumb; void 0 !== e && ("string" == typeof e && (t.thumbSrc = e), e instanceof HTMLImageElement && (t.thumbEl = e, t.thumbElSrc = e.src, t.thumbSrc = e.src), delete t.thumb) } return Object.assign({ html: "", el: null, isDom: !1, class: "", customClass: "", index: -1, dim: 0, gap: 0, pos: 0, transition: !1 }, t) }, _ = (t = {}) => Object.assign({ index: -1, slides: [], dim: 0, pos: -1 }, t); class $ extends g { constructor(t, e) { super(e), Object.defineProperty(this, "instance", { enumerable: !0, configurable: !0, writable: !0, value: t }) } attach() { } detach() { } } const W = { classes: { list: "f-carousel__dots", isDynamic: "is-dynamic", hasDots: "has-dots", dot: "f-carousel__dot", isBeforePrev: "is-before-prev", isPrev: "is-prev", isCurrent: "is-current", isNext: "is-next", isAfterNext: "is-after-next" }, dotTpl: '<button type="button" data-carousel-page="%i" aria-label="{{GOTO}}"><span class="f-carousel__dot" aria-hidden="true"></span></button>', dynamicFrom: 11, maxCount: 1 / 0, minCount: 2 }; class X extends $ { constructor() { super(...arguments), Object.defineProperty(this, "isDynamic", { enumerable: !0, configurable: !0, writable: !0, value: !1 }), Object.defineProperty(this, "list", { enumerable: !0, configurable: !0, writable: !0, value: null }) } onRefresh() { this.refresh() } build() { let t = this.list; if (!t) { t = document.createElement("ul"), C(t, this.cn("list")), t.setAttribute("role", "tablist"); const e = this.instance.container; e.appendChild(t), C(e, this.cn("hasDots")), this.list = t } return t } refresh() { var t; const e = this.instance.pages.length, i = Math.min(2, this.option("minCount")), n = Math.max(2e3, this.option("maxCount")), s = this.option("dynamicFrom"); if (e < i || e > n) return void this.cleanup(); const o = "number" == typeof s && e > 5 && e >= s, r = !this.list || this.isDynamic !== o || this.list.children.length !== e; r && this.cleanup(); const l = this.build(); if (a(l, this.cn("isDynamic"), !!o), r) for (let t = 0; t < e; t++)l.append(this.createItem(t)); let c, h = 0; for (const e of [...l.children]) { const i = h === this.instance.page; i && (c = e), a(e, this.cn("isCurrent"), i), null === (t = e.children[0]) || void 0 === t || t.setAttribute("aria-selected", i ? "true" : "false"); for (const t of ["isBeforePrev", "isPrev", "isNext", "isAfterNext"]) P(e, this.cn(t)); h++ } if (c = c || l.firstChild, o && c) { const t = c.previousElementSibling, e = t && t.previousElementSibling; C(t, this.cn("isPrev")), C(e, this.cn("isBeforePrev")); const i = c.nextElementSibling, n = i && i.nextElementSibling; C(i, this.cn("isNext")), C(n, this.cn("isAfterNext")) } this.isDynamic = o } createItem(t = 0) { var e; const i = document.createElement("li"); i.setAttribute("role", "presentation"); const n = s(this.instance.localize(this.option("dotTpl"), [["%d", t + 1]]).replace(/\%i/g, t + "")); return i.appendChild(n), null === (e = i.children[0]) || void 0 === e || e.setAttribute("role", "tab"), i } cleanup() { this.list && (this.list.remove(), this.list = null), this.isDynamic = !1, P(this.instance.container, this.cn("hasDots")) } attach() { this.instance.on(["refresh", "change"], this.onRefresh) } detach() { this.instance.off(["refresh", "change"], this.onRefresh), this.cleanup() } } Object.defineProperty(X, "defaults", { enumerable: !0, configurable: !0, writable: !0, value: W }); const q = "disabled", Y = "next", V = "prev"; class Z extends $ { constructor() { super(...arguments), Object.defineProperty(this, "container", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "prev", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "next", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "isDom", { enumerable: !0, configurable: !0, writable: !0, value: !1 }) } onRefresh() { const t = this.instance, e = t.pages.length, i = t.page; if (e < 2) return void this.cleanup(); this.build(); let n = this.prev, s = this.next; n && s && (n.removeAttribute(q), s.removeAttribute(q), t.isInfinite || (i <= 0 && n.setAttribute(q, ""), i >= e - 1 && s.setAttribute(q, ""))) } addBtn(t) { var e; const i = this.instance, n = document.createElement("button"); n.setAttribute("tabindex", "0"), n.setAttribute("title", i.localize(`{{${t.toUpperCase()}}}`)), C(n, this.cn("button") + " " + this.cn(t === Y ? "isNext" : "isPrev")); const s = i.isRTL ? t === Y ? V : Y : t; var o; return n.innerHTML = i.localize(this.option(`${s}Tpl`)), n.dataset[`carousel${o = t, o ? o.match("^[a-z]") ? o.charAt(0).toUpperCase() + o.substring(1) : o : ""}`] = "true", null === (e = this.container) || void 0 === e || e.appendChild(n), n } build() { const t = this.instance.container, e = this.cn("container"); let { container: i, prev: n, next: s } = this; i || (i = t.querySelector("." + e), this.isDom = !!i), i || (i = document.createElement("div"), C(i, e), t.appendChild(i)), this.container = i, s || (s = i.querySelector("[data-carousel-next]")), s || (s = this.addBtn(Y)), this.next = s, n || (n = i.querySelector("[data-carousel-prev]")), n || (n = this.addBtn(V)), this.prev = n } cleanup() { this.isDom || (this.prev && this.prev.remove(), this.next && this.next.remove(), this.container && this.container.remove()), this.prev = null, this.next = null, this.container = null, this.isDom = !1 } attach() { this.instance.on(["refresh", "change"], this.onRefresh) } detach() { this.instance.off(["refresh", "change"], this.onRefresh), this.cleanup() } } Object.defineProperty(Z, "defaults", { enumerable: !0, configurable: !0, writable: !0, value: { classes: { container: "f-carousel__nav", button: "f-button", isNext: "is-next", isPrev: "is-prev" }, nextTpl: '<i class="icon-arrow"></i>', prevTpl: '<i class="icon-arrow"></i>' } }); class U extends $ { constructor() { super(...arguments), Object.defineProperty(this, "selectedIndex", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "target", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "nav", { enumerable: !0, configurable: !0, writable: !0, value: null }) } addAsTargetFor(t) { this.target = this.instance, this.nav = t, this.attachEvents() } addAsNavFor(t) { this.nav = this.instance, this.target = t, this.attachEvents() } attachEvents() { const { nav: t, target: e } = this; t && e && (t.options.initialSlide = e.options.initialPage, t.state === H.Ready ? this.onNavReady(t) : t.on("ready", this.onNavReady), e.state === H.Ready ? this.onTargetReady(e) : e.on("ready", this.onTargetReady)) } onNavReady(t) { t.on("createSlide", this.onNavCreateSlide), t.on("Panzoom.click", this.onNavClick), t.on("Panzoom.touchEnd", this.onNavTouch), this.onTargetChange() } onTargetReady(t) { t.on("change", this.onTargetChange), t.on("Panzoom.refresh", this.onTargetChange), this.onTargetChange() } onNavClick(t, e, i) { this.onNavTouch(t, t.panzoom, i) } onNavTouch(t, e, i) { var n, s; if (Math.abs(e.dragOffset.x) > 3 || Math.abs(e.dragOffset.y) > 3) return; const o = i.target, { nav: a, target: r } = this; if (!a || !r || !o) return; const l = o.closest("[data-index]"); if (i.stopPropagation(), i.preventDefault(), !l) return; const c = parseInt(l.dataset.index || "", 10) || 0, h = r.getPageForSlide(c), d = a.getPageForSlide(c); a.slideTo(d), r.slideTo(h, { friction: (null === (s = null === (n = this.nav) || void 0 === n ? void 0 : n.plugins) || void 0 === s ? void 0 : s.Sync.option("friction")) || 0 }), this.markSelectedSlide(c) } onNavCreateSlide(t, e) { e.index === this.selectedIndex && this.markSelectedSlide(e.index) } onTargetChange() { var t, e; const { target: i, nav: n } = this; if (!i || !n) return; if (n.state !== H.Ready || i.state !== H.Ready) return; const s = null === (e = null === (t = i.pages[i.page]) || void 0 === t ? void 0 : t.slides[0]) || void 0 === e ? void 0 : e.index, o = n.getPageForSlide(s); this.markSelectedSlide(s), n.slideTo(o, null === n.prevPage && null === i.prevPage ? { friction: 0 } : void 0) } markSelectedSlide(t) { const e = this.nav; e && e.state === H.Ready && (this.selectedIndex = t, [...e.slides].map((e => { e.el && e.el.classList[e.index === t ? "add" : "remove"]("is-nav-selected") }))) } attach() { const t = this; let e = t.options.target, i = t.options.nav; e ? t.addAsNavFor(e) : i && t.addAsTargetFor(i) } detach() { const t = this, e = t.nav, i = t.target; e && (e.off("ready", t.onNavReady), e.off("createSlide", t.onNavCreateSlide), e.off("Panzoom.click", t.onNavClick), e.off("Panzoom.touchEnd", t.onNavTouch)
77), t.nav = null, i && (i.off("ready", t.onTargetReady), i.off("refresh", t.onTargetChange), i.off("change", t.onTargetChange)), t.target = null } } Object.defineProperty(U, "defaults", { enumerable: !0, configurable: !0, writable: !0, value: { friction: .35 } }); const G = { Navigation: Z, Dots: X, Sync: U }, K = "animationend", J = "isSelected", Q = "slide"; class tt extends m { get axis() { return this.isHorizontal ? "e" : "f" } get isEnabled() { return this.state === H.Ready } get isInfinite() { let t = !1; const { contentDim: e, viewportDim: i, pages: n, slides: s } = this, o = s[0]; return n.length >= 2 && o && e + o.dim >= i && (t = this.option("infinite")), t } get isRTL() { return "rtl" === this.option("direction") } get isHorizontal() { return "x" === this.option("axis") } constructor(t, e = {}, i = {}) { if (super(), Object.defineProperty(this, "bp", { enumerable: !0, configurable: !0, writable: !0, value: "" }), Object.defineProperty(this, "lp", { enumerable: !0, configurable: !0, writable: !0, value: 0 }), Object.defineProperty(this, "userOptions", { enumerable: !0, configurable: !0, writable: !0, value: {} }), Object.defineProperty(this, "userPlugins", { enumerable: !0, configurable: !0, writable: !0, value: {} }), Object.defineProperty(this, "state", { enumerable: !0, configurable: !0, writable: !0, value: H.Init }), Object.defineProperty(this, "page", { enumerable: !0, configurable: !0, writable: !0, value: 0 }), Object.defineProperty(this, "prevPage", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "container", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), Object.defineProperty(this, "viewport", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "track", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "slides", { enumerable: !0, configurable: !0, writable: !0, value: [] }), Object.defineProperty(this, "pages", { enumerable: !0, configurable: !0, writable: !0, value: [] }), Object.defineProperty(this, "panzoom", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "inTransition", { enumerable: !0, configurable: !0, writable: !0, value: new Set }), Object.defineProperty(this, "contentDim", { enumerable: !0, configurable: !0, writable: !0, value: 0 }), Object.defineProperty(this, "viewportDim", { enumerable: !0, configurable: !0, writable: !0, value: 0 }), "string" == typeof t && (t = document.querySelector(t)), !t || !S(t)) throw new Error("No Element found"); this.container = t, this.slideNext = F(this.slideNext.bind(this), 150), this.slidePrev = F(this.slidePrev.bind(this), 150), this.userOptions = e, this.userPlugins = i, queueMicrotask((() => { this.processOptions() })) } processOptions() { var t, e; const i = p({}, tt.defaults, this.userOptions); let n = ""; const s = i.breakpoints; if (s && u(s)) for (const [t, e] of Object.entries(s)) window.matchMedia(t).matches && u(e) && (n += t, p(i, e)); n === this.bp && this.state !== H.Init || (this.bp = n, this.state === H.Ready && (i.initialSlide = (null === (e = null === (t = this.pages[this.page]) || void 0 === t ? void 0 : t.slides[0]) || void 0 === e ? void 0 : e.index) || 0), this.state !== H.Init && this.destroy(), super.setOptions(i), !1 === this.option("enabled") ? this.attachEvents() : setTimeout((() => { this.init() }), 0)) } init() { this.state = H.Init, this.emit("init"), this.attachPlugins(Object.assign(Object.assign({}, tt.Plugins), this.userPlugins)), this.emit("attachPlugins"), this.initLayout(), this.initSlides(), this.updateMetrics(), this.setInitialPosition(), this.initPanzoom(), this.attachEvents(), this.state = H.Ready, this.emit("ready") } initLayout() { const { container: t } = this, e = this.option("classes"); C(t, this.cn("container")), a(t, e.isLTR, !this.isRTL), a(t, e.isRTL, this.isRTL), a(t, e.isVertical, !this.isHorizontal), a(t, e.isHorizontal, this.isHorizontal); let i = this.option("viewport") || t.querySelector(`.${e.viewport}`); i || (i = document.createElement("div"), C(i, e.viewport), i.append(...j(t, `.${e.slide}`)), t.prepend(i)), i.addEventListener("scroll", this.onScroll); let n = this.option("track") || t.querySelector(`.${e.track}`); n || (n = document.createElement("div"), C(n, e.track), n.append(...Array.from(i.childNodes))), n.setAttribute("aria-live", "polite"), i.contains(n) || i.prepend(n), this.viewport = i, this.track = n, this.emit
77("initLayout") } initSlides() { const { track: t } = this; if (!t) return; const e = [...this.slides], i = [];[...j(t, `.${this.cn(Q)}`)].forEach((t => { if (S(t)) { const e = N({ el: t, isDom: !0, index: this.slides.length }); i.push(e) } })); for (let t of [...this.option("slides", []) || [], ...e]) i.push(N(t)); this.slides = i; for (let t = 0; t < this.slides.length; t++)this.slides[t].index = t; for (const t of i) this.emit("beforeInitSlide", t, t.index), this.emit("initSlide", t, t.index); this.emit("initSlides") } setInitialPage() { const t = this.option("initialSlide"); this.page = "number" == typeof t ? this.getPageForSlide(t) : parseInt(this.option("initialPage", 0) + "", 10) || 0 } setInitialPosition() { const { track: t, pages: e, isHorizontal: i } = this; if (!t || !e.length) return; let n = this.page; e[n] || (this.page = n = 0); const s = (e[n].pos || 0) * (this.isRTL && i ? 1 : -1), o = i ? `${s}px` : "0", a = i ? "0" : `${s}px`; t.style.transform = `translate3d(${o}, ${a}, 0) scale(1)`, this.option("adaptiveHeight") && this.setViewportHeight() } initPanzoom() { this.panzoom && (this.panzoom.destroy(), this.panzoom = null); const t = this.option("Panzoom") || {}; this.panzoom = new D(this.viewport, p({}, { content: this.track, zoom: !1, panOnlyZoomed: !1, lockAxis: this.isHorizontal ? "x" : "y", infinite: this.isInfinite, click: !1, dblClick: !1, touch: t => !(this.pages.length < 2 && !t.options.infinite), bounds: () => this.getBounds(), maxVelocity: t => Math.abs(t.target[this.axis] - t.current[this.axis]) < 2 * this.viewportDim ? 100 : 0 }, t)), this.panzoom.on("*", ((t, e, ...i) => { this.emit(`Panzoom.${e}`, t, ...i) })), this.panzoom.on("decel", this.onDecel), this.panzoom.on("refresh", this.onRefresh), this.panzoom.on("beforeTransform", this.onBeforeTransform), this.panzoom.on("endAnimation", this.onEndAnimation) } attachEvents() { const t = this.container; t && (t.addEventListener("click", this.onClick, { passive: !1, capture: !1 }), t.addEventListener("slideTo", this.onSlideTo)), window.addEventListener("resize", this.onResize) } createPages() { let t = []; const { contentDim: e, viewportDim: i } = this; let n = this.option("slidesPerPage"); n = ("auto" === n || e <= i) && !1 !== this.option("fill") ? 1 / 0 : parseFloat(n + ""); let s = 0, o = 0, a = 0; for (const e of this.slides) (!t.length || o + e.dim - i > .05 || a >= n) && (t.push(_()), s = t.length - 1, o = 0, a = 0), t[s].slides.push(e), o += e.dim + e.gap, a++; return t } processPages() { const t = this.pages, { contentDim: i, viewportDim: n, isInfinite: s } = this, o = this.option("center"), a = this.option("fill"), r = a && o && i > n && !s; if (t.forEach(((t, e) => { var s; t.index = e, t.pos = (null === (s = t.slides[0]) || void 0 === s ? void 0 : s.pos) || 0, t.dim = 0; for (const [e, i] of t.slides.entries()) t.dim += i.dim, e < t.slides.length - 1 && (t.dim += i.gap); r && t.pos + .5 * t.dim < .5 * n ? t.pos = 0 : r && t.pos + .5 * t.dim >= i - .5 * n ? t.pos = i - n : o && (t.pos += -.5 * (n - t.dim)) })), t.forEach((t => { a && !s && i > n && (t.pos = Math.max(t.pos, 0), t.pos = Math.min(t.pos, i - n)), t.pos = e(t.pos, 1e3), t.dim = e(t.dim, 1e3), Math.abs(t.pos) <= .1 && (t.pos = 0) })), s) return t; const l = []; let c; return t.forEach((t => { const e = Object.assign({}, t); c && e.pos === c.pos ? (c.dim += e.dim, c.slides = [...c.slides, ...e.slides]) : (e.index = l.length, c = e, l.push(e)) })), l } getPageFromIndex(t = 0) { const e = this.pages.length; let i; return t = parseInt((t || 0).toString()) || 0, i = this.isInfinite ? (t % e + e) % e : Math.max(Math.min(t, e - 1), 0), i } getSlideMetrics(t) { var i, n; const s = this.isHorizontal ? "width" : "height"; let o = 0, a = 0, r = t.el; const l = !(!r || r.parentNode); if (r ? o = parseFloat(r.dataset[s] || "") || 0 : (r = document.createElement("div"), r.style.visibility = "hidden", (this.track || document.body).prepend(r)), C(r, this.cn(Q) + " " + t.class + " " + t.customClass), o) r.style[s] = `${o}px`, r.style["width" === s ? "height" : "width"] = ""; else { l && (this.track || document.body).prepend(r), o = r.getBoundingClientRect()[s] * Math.max(1, (null === (i = window.visualVie
77wport) || void 0 === i ? void 0 : i.scale) || 1); let t = r[this.isHorizontal ? "offsetWidth" : "offsetHeight"]; t - 1 > o && (o = t) } const c = getComputedStyle(r); return "content-box" === c.boxSizing && (this.isHorizontal ? (o += parseFloat(c.paddingLeft) || 0, o += parseFloat(c.paddingRight) || 0) : (o += parseFloat(c.paddingTop) || 0, o += parseFloat(c.paddingBottom) || 0)), a = parseFloat(c[this.isHorizontal ? "marginRight" : "marginBottom"]) || 0, l ? null === (n = r.parentElement) || void 0 === n || n.removeChild(r) : t.el || r.remove(), { dim: e(o, 1e3), gap: e(a, 1e3) } } getBounds() { const { isInfinite: t, isRTL: e, isHorizontal: i, pages: n } = this; let s = { min: 0, max: 0 }; if (t) s = { min: -1 / 0, max: 1 / 0 }; else if (n.length) { const t = n[0].pos, o = n[n.length - 1].pos; s = e && i ? { min: t, max: o } : { min: -1 * o, max: -1 * t } } return { x: i ? s : { min: 0, max: 0 }, y: i ? { min: 0, max: 0 } : s } } repositionSlides() { let t, { isHorizontal: i, isRTL: n, isInfinite: s, viewport: o, viewportDim: a, contentDim: r, page: l, pages: c, slides: h, panzoom: d } = this, u = 0, p = 0, f = 0, g = 0; d ? g = -1 * d.current[this.axis] : c[l] && (g = c[l].pos || 0), t = i ? n ? "right" : "left" : "top", n && i && (g *= -1); for (const i of h) { const n = i.el; n ? ("top" === t ? (n.style.right = "", n.style.left = "") : n.style.top = "", i.index !== u ? n.style[t] = 0 === p ? "" : `${e(p, 1e3)}px` : n.style[t] = "", f += i.dim + i.gap, u++) : p += i.dim + i.gap } if (s && f && o) { let n = getComputedStyle(o), s = "padding", l = i ? "Right" : "Bottom", c = parseFloat(n[s + (i ? "Left" : "Top")]); g -= c, a += c, a += parseFloat(n[s + l]); for (const i of h) i.el && (e(i.pos) < e(a) && e(i.pos + i.dim + i.gap) < e(g) && e(g) > e(r - a) && (i.el.style[t] = `${e(p + f, 1e3)}px`), e(i.pos + i.gap) >= e(r - a) && e(i.pos) > e(g + a) && e(g) < e(a) && (i.el.style[t] = `-${e(f, 1e3)}px`)) } let m, v, b = [...this.inTransition]; if (b.length > 1 && (m = c[b[0]], v = c[b[1]]), m && v) { let i = 0; for (const n of h) n.el ? this.inTransition.has(n.index) && m.slides.indexOf(n) < 0 && (n.el.style[t] = `${e(i + (m.pos - v.pos), 1e3)}px`) : i += n.dim + n.gap } } createSlideEl(t) { const { track: e, slides: i } = this; if (!e || !t) return; if (t.el && t.el.parentNode) return; const n = t.el || document.createElement("div"); C(n, this.cn(Q)), C(n, t.class), C(n, t.customClass); const s = t.html; s && (s instanceof HTMLElement ? n.appendChild(s) : n.innerHTML = t.html + ""); const o = []; i.forEach(((t, e) => { t.el && o.push(e) })); const a = t.index; let r = null; if (o.length) { r = i[o.reduce(((t, e) => Math.abs(e - a) < Math.abs(t - a) ? e : t))] } const l = r && r.el && r.el.parentNode ? r.index < t.index ? r.el.nextSibling : r.el : null; e.insertBefore(n, e.contains(l) ? l : null), t.el = n, this.emit("createSlide", t) } removeSlideEl(t, e = !1) { const i = null == t ? void 0 : t.el; if (!i || !i.parentNode) return; const n = this.cn(J); if (i.classList.contains(n) && (P(i, n), this.emit("unselectSlide", t)), t.isDom && !e) return i.removeAttribute("aria-hidden"), i.removeAttribute("data-index"), void (i.style.left = ""); this.emit("removeSlide", t); const s = new CustomEvent(K); i.dispatchEvent(s), t.el && (t.el.remove(), t.el = null) } transitionTo(t = 0, e = this.option("transition")) { var i, n, s, o; if (!e) return !1; const a = this.page, { pages: r, panzoom: l } = this; t = parseInt((t || 0).toString()) || 0; const c = this.getPageFromIndex(t); if (!l || !r[c] || r.length < 2 || Math.abs(((null === (n = null === (i = r[a]) || void 0 === i ? void 0 : i.slides[0]) || void 0 === n ? void 0 : n.dim) || 0) - this.viewportDim) > 1) return !1; let h = t > a ? 1 : -1; this.isInfinite && (0 === a && t === r.length - 1 && (h = -1), a === r.length - 1 && 0 === t && (h = 1)); const d = r[c].pos * (this.isRTL ? 1 : -1); if (a === c && Math.abs(d - l.target[this.axis]) < 1) return !1; this.clearTransitions(); const u = l.isResting; C(this.container, this.cn("inTransition")); const p = (null === (s = r[a]) || void 0 === s ? void 0 : s.slides[0]) || null, f = (null === (o = r[c]) || void 0 === o ? void 0 : o.slides[0]) || null; this.inTransition.add(f.index), this.createSlideEl(f); let g = p.el, m = f.el; u || e === Q || (e = "fadeFast", g = null); const v = this.isRTL ? "next" : "prev", b = this.isRTL ? "prev" : "next"; return g && (this.inTransition.add(p.index), p.transition = e, g.addEventListener(K, this.onAnimationEnd), g.classList.add(`f-${e}Out`, `to-${h > 0 ? b : v}`)), m && (f.transition = e, m.addEventListener(K, this.onAnimationEnd), m.classList.add(`f-${e}In`, `from-${h > 0 ? v : b}`)), l.current[this.axis] = d, l.target[this.axis] = d, l.requestTick(), this.onChange(c), !0 } manageSlideVisiblity() { const t = new Set, e = new Set, i = this.getVisibleSlides(parseFloat(this.option("preload", 0) + "") || 0); for (const n of this.slides) i.has(n) ? t.add(n) : e.add(n); for (const e of this.inTransition) t.add(this.slides[e]); for (const e of t) this.createSlideEl(e), this.lazyLoadSlide(e); for (const i of e) t.has(i) || this.removeSlideEl(i); this.markSelectedSlides(), this.repositionSlides() } markSelectedSlides() { if (!this.pages[this.page] || !this.pages[this.page].slides) return; const t = "aria-hidden"; let e = this.cn(J); if (e) for (const i of this.slides) { const n = i.el; n && (n.dataset.index = `${i.index}`, n.classList.contains("f-thumbs__slide") ? this.getVisibleSlides(0).has(i) ? n.removeAttribute(t) : n.setAttribute(t, "true") : this.pages[this.page].slides.includes(i) ? (n.classList.contains(e) || (C(n, e), this.emit
77("selectSlide", i)), n.removeAttribute(t)) : (n.classList.contains(e) && (P(n, e), this.emit("unselectSlide", i)), n.setAttribute(t, "true"))) } } flipInfiniteTrack() { const { axis: t, isHorizontal: e, isInfinite: i, isRTL: n, viewportDim: s, contentDim: o } = this, a = this.panzoom; if (!a || !i) return; let r = a.current[t], l = a.target[t] - r, c = 0, h = .5 * s; n && e ? (r < -h && (c = -1, r += o), r > o - h && (c = 1, r -= o)) : (r > h && (c = 1, r -= o), r < -o + h && (c = -1, r += o)), c && (a.current[t] = r, a.target[t] = r + l) } lazyLoadImg(t, e) { const i = this, n = "f-fadeIn", o = "is-preloading"; let a = !1, r = null; const l = () => { a || (a = !0, r && (r.remove(), r = null), P(e, o), e.complete && (C(e, n), setTimeout((() => { P(e, n) }), 350)), this.option("adaptiveHeight") && t.el && this.pages[this.page].slides.indexOf(t) > -1 && (i.updateMetrics(), i.setViewportHeight()), this.emit("load", t)) }; C(e, o), e.src = e.dataset.lazySrcset || e.dataset.lazySrc || "", delete e.dataset.lazySrc, delete e.dataset.lazySrcset, e.addEventListener("error", (() => { l() })), e.addEventListener("load", (() => { l() })), setTimeout((() => { const i = e.parentNode; i && t.el && (e.complete ? l() : a || (r = s(E), i.insertBefore(r, e))) }), 300) } lazyLoadSlide(t) { const e = t && t.el; if (!e) return; const i = new Set; let n = Array.from(e.querySelectorAll("[data-lazy-src],[data-lazy-srcset]")); e.dataset.lazySrc && n.push(e), n.map((t => { t instanceof HTMLImageElement ? i.add(t) : t instanceof HTMLElement && t.dataset.lazySrc && (t.style.backgroundImage = `url('${t.dataset.lazySrc}')`, delete t.dataset.lazySrc) })); for (const e of i) this.lazyLoadImg(t, e) } onAnimationEnd(t) { var e; const i = t.target, n = i ? parseInt(i.dataset.index || "", 10) || 0 : -1, s = this.slides[n], o = t.animationName; if (!i || !s || !o) return; const a = !!this.inTransition.has(n) && s.transition; a && o.substring(0, a.length + 2) === `f-${a}` && this.inTransition.delete(n), this.inTransition.size || this.clearTransitions(), n === this.page && (null === (e = this.panzoom) || void 0 === e ? void 0 : e.isResting) && this.emit("settle") } onDecel(t, e = 0, i = 0, n = 0, s = 0) { if (this.option("dragFree")) return void this.setPageFromPosition(); const { isRTL: o, isHorizontal: a, axis: r, pages: l } = this, c = l.length, h = Math.abs(Math.atan2(i, e) / (Math.PI / 180)); let d = 0; if (d = h > 45 && h < 135 ? a ? 0 : i : a ? e : 0, !c) return; let u = this.page, p = o && a ? 1 : -1; const f = t.current[r] * p; let { pageIndex: g } = this.getPageFromPosition(f); Math.abs(d) > 5 ? (l[u].dim < document.documentElement["client" + (this.isHorizontal ? "Width" : "Height")] - 1 && (u = g), u = o && a ? d < 0 ? u - 1 : u + 1 : d < 0 ? u + 1 : u - 1) : u = 0 === n && 0 === s ? u : g, this.slideTo(u, { transition: !1, friction: t.option("decelFriction") }) } onClick(t) { const e = t.target, i = e && S(e) ? e.dataset : null; let n, s; i && (void 0 !== i.carouselPage ? (s = "slideTo", n = i.carouselPage) : void 0 !== i.carouselNext ? s = "slideNext" : void 0 !== i.carouselPrev && (s = "slidePrev")), s ? (t.preventDefault(), t.stopPropagation(), e && !e.hasAttribute("disabled") && this[s](n)) : this.emit("click", t) } onSlideTo(t) { const e = t.detail || 0; this.slideTo(this.getPageForSlide(e), { friction: 0 }) } onChange(t, e = 0) { const i = this.page; this.prevPage = i, this.page = t, this.option("adaptiveHeight") && this.setViewportHeight(), t !== i && (this.markSelectedSlides(), this.emit("change", t, i, e)) } onRefresh() { let t = this.contentDim, e = this.viewportDim; this.updateMetrics(), this.contentDim === t && this.viewportDim === e || this.slideTo(this.page, { friction: 0, transition: !1 }) } onScroll() { var t; null === (t = this.viewport) || void 0 === t || t.scroll(0, 0) } onResize() { this.option("breakpoints") && this.processOptions() } onBeforeTransform(t) { this.lp !== t.current[this.axis] && (this.flipInfiniteTrack(), this.manageSlideVisiblity()), this.lp = t.current.e } onEndAnimation() { this.inTransition.size || this.emit("settle") } reInit(t = null, e = null) { this.destroy(), this.state = H.Init, this.prevPage = null, this.userOptions = t || this.userOptions, this.userPlugins = e || this.userPlugins, this.processOptions() } slideTo(t = 0, { friction: e = this.option("friction"), transition: i = this.option("transition") } = {}) { if (this.state === H.Destroy) return;
77 t = parseInt((t || 0).toString()) || 0; const n = this.getPageFromIndex(t), { axis: s, isHorizontal: o, isRTL: a, pages: r, panzoom: l } = this, c = r.length, h = a && o ? 1 : -1; if (!l || !c) return; if (this.page !== n) { const e = new Event("beforeChange", { bubbles: !0, cancelable: !0 }); if (this.emit("beforeChange", e, t), e.defaultPrevented) return } if (this.transitionTo(t, i)) return; let d = r[n].pos; if (this.isInfinite) { const e = this.contentDim, i = l.target[s] * h; if (2 === c) d += e * Math.floor(parseFloat(t + "") / 2); else { d = [d, d - e, d + e].reduce((function (t, e) { return Math.abs(e - i) < Math.abs(t - i) ? e : t })) } } d *= h, Math.abs(l.target[s] - d) < 1 || (l.panTo({ x: o ? d : 0, y: o ? 0 : d, friction: e }), this.onChange(n)) } slideToClosest(t) { if (this.panzoom) { const { pageIndex: e } = this.getPageFromPosition(); this.slideTo(e, t) } } slideNext() { this.slideTo(this.page + 1) } slidePrev() { this.slideTo(this.page - 1) } clearTransitions() { this.inTransition.clear(), P(this.container, this.cn("inTransition")); const t = ["to-prev", "to-next", "from-prev", "from-next"]; for (const e of this.slides) { const i = e.el; if (i) { i.removeEventListener(K, this.onAnimationEnd), i.classList.remove(...t); const n = e.transition; n && i.classList.remove(`f-${n}Out`, `f-${n}In`) } } this.manageSlideVisiblity() } addSlide(t, e) { var i, n, s, o; const a = this.panzoom, r = (null === (i = this.pages[this.page]) || void 0 === i ? void 0 : i.pos) || 0, l = (null === (n = this.pages[this.page]) || void 0 === n ? void 0 : n.dim) || 0, c = this.contentDim < this.viewportDim; let h = Array.isArray(e) ? e : [e]; const d = []; for (const t of h) d.push(N(t)); this.slides.splice(t, 0, ...d); for (let t = 0; t < this.slides.length; t++)this.slides[t].index = t; for (const t of d) this.emit("beforeInitSlide", t, t.index); if (this.page >= t && (this.page += d.length), this.updateMetrics(), a) { const e = (null === (s = this.pages[this.page]) || void 0 === s ? void 0 : s.pos) || 0, i = (null === (o = this.pages[this.page]) || void 0 === o ? void 0 : o.dim) || 0, n = this.pages.length || 1, h = this.isRTL ? l - i : i - l, d = this.isRTL ? r - e : e - r; c && 1 === n ? (t <= this.page && (a.current[this.axis] -= h, a.target[this.axis] -= h), a.panTo({ [this.isHorizontal ? "x" : "y"]: -1 * e })) : d && t <= this.page && (a.target[this.axis] -= d, a.current[this.axis] -= d, a.requestTick()) } for (const t of d) this.emit("initSlide", t, t.index) } prependSlide(t) { this.addSlide(0, t) } appendSlide(t) { this.addSlide(this.slides.length, t) } removeSlide(t) { const e = this.slides.length; t = (t % e + e) % e; const i = this.slides[t]; if (i) { this.removeSlideEl(i, !0), this.slides.splice(t, 1); for (let t = 0; t < this.slides.length; t++)this.slides[t].index = t; this.updateMetrics(), this.slideTo(this.page, { friction: 0, transition: !1 }), this.emit("destroySlide", i) } } updateMetrics() { const { panzoom: t, viewport: i, track: n, slides: s, isHorizontal: o, isInfinite: a } = this; if (!n) return; const r = o ? "width" : "height", l = o ? "offsetWidth" : "offsetHeight"; if (i) { let t = Math.max(i[l], e(i.getBoundingClientRect()[r], 1e3)), n = getComputedStyle(i), s = "padding", a = o ? "Right" : "Bottom"; t -= parseFloat(n[s + (o ? "Left" : "Top")]) + parseFloat(n[s + a]), this.viewportDim = t } let c, h = 0; for (const [t, i] of s.entries()) { let n = 0, o = 0; !i.el && c ? (n = c.dim, o = c.gap) : (({ dim: n, gap: o } = this.getSlideMetrics(i)), c = i), n = e(n, 1e3), o = e(o, 1e3), i.dim = n, i.gap = o, i.pos = h, h += n, (a || t < s.length - 1) && (h += o) } h = e(h, 1e3), this.contentDim = h, t && (t.contentRect[r] = h, t.contentRect[o ? "fullWidth" : "fullHeight"] = h), this.pages = this.createPages(), this.pages = this.processPages(), this.state === H.Init && this.setInitialPage(), this.page = Math.max(0, Math.min(this.page, this.pages.length - 1)), this.manageSlideVisiblity(), this.emit("refresh") } getProgress(t, i = !1, n = !1) { void 0 === t && (t = this.page); const s = this, o = s.panzoom, a = s.contentDim, r = s.pages[t] || 0; if (!r || !o) return t > this.page ? -1 : 1; let l = -1 * o.current.e, c = e((l - r.pos) / (1 * r.dim), 1e3), h = c, d = c; this.isInfinite && !0 !== n && (h = e((l - r.pos + a) / (1 * r.dim), 1e3), d = e((l - r.pos - a) / (1 * r.dim), 1e3)); let u = [c, h, d].reduce((function (t, e) { return Math.abs(e) < Math.abs(t) ? e : t })); return i ? u : u >
77 1 ? 1 : u < -1 ? -1 : u } setViewportHeight() { const { page: t, pages: e, viewport: i, isHorizontal: n } = this; if (!i || !e[t]) return; let s = 0; n && this.track && (this.track.style.height = "auto", e[t].slides.forEach((t => { t.el && (s = Math.max(s, t.el.offsetHeight)) }))), i.style.height = s ? `${s}px` : "" } getPageForSlide(t) { for (const e of this.pages) for (const i of e.slides) if (i.index === t) return e.index; return -1 } getVisibleSlides(t = 0) { var e; const i = new Set; let { panzoom: n, contentDim: s, viewportDim: o, pages: a, page: r } = this; if (o) { s = s + (null === (e = this.slides[this.slides.length - 1]) || void 0 === e ? void 0 : e.gap) || 0; let l = 0; l = n && n.state !== v.Init && n.state !== v.Destroy ? -1 * n.current[this.axis] : a[r] && a[r].pos || 0, this.isInfinite && (l -= Math.floor(l / s) * s), this.isRTL && this.isHorizontal && (l *= -1); const c = l - o * t, h = l + o * (t + 1), d = this.isInfinite ? [-1, 0, 1] : [0]; for (const t of this.slides) for (const e of d) { const n = t.pos + e * s, o = n + t.dim + t.gap; n < h && o > c && i.add(t) } } return i } getPageFromPosition(t) { const { viewportDim: e, contentDim: i, slides: n, pages: s, panzoom: o } = this, a = s.length, r = n.length, l = n[0], c = n[r - 1], h = this.option("center"); let d = 0, u = 0, p = 0, f = void 0 === t ? -1 * ((null == o ? void 0 : o.target[this.axis]) || 0) : t; h && (f += .5 * e), this.isInfinite ? (f < l.pos - .5 * c.gap && (f -= i, p = -1), f > c.pos + c.dim + .5 * c.gap && (f -= i, p = 1)) : f = Math.max(l.pos || 0, Math.min(f, c.pos)); let g = c, m = n.find((t => { const e = t.pos - .5 * g.gap, i = t.pos + t.dim + .5 * t.gap; return g = t, f >= e && f < i })); return m || (m = c), u = this.getPageForSlide(m.index), d = u + p * a, { page: d, pageIndex: u } } setPageFromPosition() { const { pageIndex: t } = this.getPageFromPosition(); this.onChange(t) } destroy() { if ([H.Destroy].includes(this.state)) return; this.state = H.Destroy; const { container: t, viewport: e, track: i, slides: n, panzoom: s } = this, o = this.option("classes"); t.removeEventListener("click", this.onClick, { passive: !1, capture: !1 }), t.removeEventListener("slideTo", this.onSlideTo), window.removeEventListener("resize", this.onResize), s && (s.destroy(), this.panzoom = null), n && n.forEach((t => { this.removeSlideEl(t) })), this.detachPlugins(), e && (e.removeEventListener("scroll", this.onScroll), e.offsetParent && i && i.offsetParent && e.replaceWith(...i.childNodes)); for (const [e, i] of Object.entries(o)) "container" !== e && i && t.classList.remove(i); this.track = null, this.viewport = null, this.page = 0, this.slides = []; const a = this.events.get("ready"); this.events = new Map, a && this.events.set("ready", a) } } Object.defineProperty(tt, "Panzoom", { enumerable: !0, configurable: !0, writable: !0, value: D }), Object.defineProperty(tt, "defaults", { enumerable: !0, configurable: !0, writable: !0, value: B }), Object.defineProperty(tt, "Plugins", { enumerable: !0, configurable: !0, writable: !0, value: G }); const et = function (t) { if (!S(t)) return 0; const e = window.scrollY, i = window.innerHeight, n = e + i, s = t.getBoundingClientRect(), o = s.y + e, a = s.height, r = o + a; if (e > r || n < o) return 0; if (e < o && n > r) return 100; if (o < e && r > n) return 100; let l = a; o < e && (l -= e - o), r > n && (l -= r - n); const c = l / i * 100; return Math.round(c) }, it = !("undefined" == typeof window || !window.document || !window.document.createElement); let nt; const st = ["a[href]", "area[href]", 'input:not([disabled]):not([type="hidden"]):not([aria-hidden])', "select:not([disabled]):not([aria-hidden])", "textarea:not([disabled]):not([aria-hidden])", "button:not([disabled]):not([aria-hidden]):not(.fancybox-focus-guard)", "iframe", "object", "embed", "video", "audio", "[contenteditable]", '[tabindex]:not([tabindex^="-"]):not([disabled]):not([aria-hidden])'].join(","), ot = t => { if (t && it) { void 0 === nt && document.createElement("div").focus({ get preventScroll() { return nt = !0, !1 } }); try { if (nt) t.focus({ preventScroll: !0 }); else { const e = window.scrollY || document.body.scrollTop, i = window.scrollX || document.body.scrollLeft; t.focus(), document.body.scrollTo({ top: e, left: i, behavior: "auto" }) } } catch (t) { } } }, at = () => { const t = document; let e, i = "", n = "", s = ""; return t.fullscreenEnabled ? (i = "requestFullscreen", n = "exitFullscreen", s = "fullscreenElement") : t.webkitFullscreenEnabled && (i = "webkitRequestFullscreen", n = "webkitExitFullscreen", s = "webkitFullscreenElement"), i && (e = { request: function (e = t.documentElement) { return "webkitRequestFullscreen" === i ? e[i](Element.ALLOW_KEYBOARD_INPUT) : e[i]() }, exit: function () { return t[s] && t[n]() }, isFullscreen: function () { return t[s] } }), e }, rt = { animated: !0, autoFocus: !0, backdropClick: "close", Carousel: { classes: { container: "fancybox__carousel", viewport: "fancybox__viewport", track: "fancybox__track", slide: "fancybox__slide" } }, closeButton: "auto", closeExisting: !1, commonCaption: !1, compact: () => window.matchMedia("(max-width: 578px), (max-height: 578px)").matches, contentClick: "toggleZoom", contentDblClick: !1, defaultType: "image", defaultDisplay: "flex", dragToClose: !0, Fullscreen: { autoStart: !1 }, groupAll: !1, groupAttr: "data-fancybox", hideClass: "f-fadeOut", hideScrollbar: !0, idle: 3500, keyboard: { Escape: "close", Delete: "close", Backspace: "close", PageUp: "next", PageDown: "prev", ArrowUp: "prev", ArrowDown: "next", ArrowRight: "next", ArrowLeft: "prev" }, l10n: Object.assign(Object.assign({}, y), { CLOSE: "Close", NEXT: "Next", PREV: "Previous", MODAL: "You can close this modal content with the ESC key", ERROR: "Something Went Wrong, Please Try Again Later", IMAGE_ERROR: "Image Not Found", ELEMENT_NOT_FOUND: "HTML Element Not Found", AJAX_NOT_FOUND: "Error Loading AJAX : Not Found", AJAX_FORBIDDEN: "Error Loading AJAX : Forbidden", IFRAME_ERROR: "Error Loading Page", TOGGLE_ZOOM: "Toggle zoom level", TOGGLE_THUMBS: "Toggle thumbnails", TOGGLE_SLIDESHOW: "Toggle slideshow", TOGGLE_FULLSCREEN: "Toggle full-screen mode", DOWNLOAD: "Download" }), parentEl: null, placeFocusBack: !0, showClass: "f-zoomInUp", startIndex: 0, tpl: { closeButton: '<button data-fancybox-close class="f-button is-close-btn" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1">
77<path d="M20 20L4 4m16 0L4 20"/></svg></button>', main: '<div class="fancybox__container" role="dialog" aria-modal="true" aria-label="{{MODAL}}" tabindex="-1">\n    <div class="fancybox__backdrop"></div>\n    <div class="fancybox__carousel"></div>\n    <div class="fancybox__footer"></div>\n  </div>' }, trapFocus: !0, wheel: "zoom" }; var lt, ct; !function (t) { t[t.Init = 0] = "Init", t[t.Ready = 1] = "Ready", t[t.Closing = 2] = "Closing", t[t.CustomClosing = 3] = "CustomClosing", t[t.Destroy = 4] = "Destroy" }(lt || (lt = {})), function (t) { t[t.Loading = 0] = "Loading", t[t.Opening = 1] = "Opening", t[t.Ready = 2] = "Ready", t[t.Closing = 3] = "Closing" }(ct || (ct = {})); let ht = "", dt = !1, ut = !1, pt = null; const ft = () => { let t = "", e = ""; const i = Ae.getInstance(); if (i) { const n = i.carousel, s = i.getSlide(); if (n && s) { let o = s.slug || void 0, a = s.triggerEl || void 0; e = o || (i.option("slug") || ""), !e && a && a.dataset && (e = a.dataset.fancybox || ""), e && "true" !== e && (t = "#" + e + (!o && n.slides.length > 1 ? "-" + (s.index + 1) : "")) } } return { hash: t, slug: e, index: 1 } }, gt = () => { const t = new URL(document.URL).hash, e = t.slice(1).split("-"), i = e[e.length - 1], n = i && /^\+?\d+$/.test(i) && parseInt(e.pop() || "1", 10) || 1; return { hash: t, slug: e.join("-"), index: n } }, mt = () => { const { slug: t, index: e } = gt(); if (!t) return; let i = document.querySelector(`[data-slug="${t}"]`); if (i && i.dispatchEvent(new CustomEvent("click", { bubbles: !0, cancelable: !0 })), Ae.getInstance()) return; const n = document.querySelectorAll(`[data-fancybox="${t}"]`); n.length && (i = n[e - 1], i && i.dispatchEvent(new CustomEvent("click", { bubbles: !0, cancelable: !0 }))) }, vt = () => { if (!1 === Ae.defaults.Hash) return; const t = Ae.getInstance(); if (!1 === (null == t ? void 0 : t.options.Hash)) return; const { slug: e, index: i } = gt(), { slug: n } = ft(); t && (e === n ? t.jumpTo(i - 1) : (dt = !0, t.close())), mt() }, bt = () => { pt && clearTimeout(pt), queueMicrotask((() => { vt() })) }, yt = () => { window.addEventListener("hashchange", bt, !1), setTimeout((() => { vt() }), 500) }; it && (/complete|interactive|loaded/.test(document.readyState) ? yt() : document.addEventListener("DOMContentLoaded", yt)); const wt = "is-zooming-in"; class xt extends $ { onCreateSlide(t, e, i) { const n = this.instance.optionFor(i, "src") || ""; i.el && "image" === i.type && "string" == typeof n && this.setImage(i, n) } onRemoveSlide(t, e, i) { i.panzoom && i.panzoom.destroy(), i.panzoom = void 0, i.imageEl = void 0 } onChange(t, e, i, n) { P(this.instance.container, wt); for (const t of e.slides) { const e = t.panzoom; e && t.index !== i && e.reset(.35) } } onClose() { var t; const e = this.instance, i = e.container, n = e.getSlide(); if (!i || !i.parentElement || !n) return; const { el: s, contentEl: o, panzoom: a, thumbElSrc: r } = n; if (!s || !r || !o || !a || a.isContentLoading || a.state === v.Init || a.state === v.Destroy) return; a.updateMetrics(); let l = this.getZoomInfo(n); if (!l) return; this.instance.state = lt.CustomClosing, i.classList.remove(wt), i.classList.add("is-zooming-out"), o.style.backgroundImage = `url('${r}')`; const c = i.getBoundingClientRect(); 1 === ((null === (t = window.visualViewport) || void 0 === t ? void 0 : t.scale) || 1) && Object.assign(i.style, { position: "absolute", top: `${i.offsetTop + window.scrollY}px`, left: `${i.offsetLeft + window.scrollX}px`, bottom: "auto", right: "auto", width: `${c.width}px`, height: `${c.height}px`, overflow: "hidden" }); const { x: h, y: d, scale: u, opacity: p } = l; if (p) { const t = ((t, e, i, n) => { const s = e - t, o = n - i; return e => i + ((e - t) / s * o || 0) })(a.scale, u, 1, 0); a.on("afterTransform", (() => { o.style.opacity = t(a.scale) + "" })) } a.on("endAnimation", (() => { e.destroy() })), a.target.a = u, a.target.b = 0, a.target.c = 0, a.target.d = u, a.panTo({ x: h, y: d, scale: u, friction: p ? .2 : .33, ignoreBounds: !0 }), a.isResting && e.destroy() } setImage(t, e) { const i = this.instance; t.src = e, this.process(t, e).then((e => { const { contentEl: n, imageEl: s, thumbElSrc: o, el: a } = t; if (i.isClosing() || !n || !s) return; n.offsetHeight; const r = !!i.isOpeningSlide(t) && this.getZoomInfo(t); if (this.option("protected") && a) { a.addEventListener("contextmenu", (t => { t.preventDefault() })); const t = document.createElement("div"); C(t, "fancybox-protected"), n.appendChild(t) } if (o && r) { const s = e.contentRect, a = Math.max(s.fullWidth, s.fullHeight); let c = null; !r.opacity && a > 1200 && (c = document.createElement("img"), C(c, "fancybox-ghost"), c.src = o, n.appendChild(c)); const h = () => { c && (C(c, "f-fadeFastOut"), setTimeout((() => { c && (c.remove(), c = null) }), 200)) }; (l = o, new Promise(((t, e) => { const i = new Image; i.onload = t, i.onerror = e, i.src = l }))).then((() => { i.hideLoading(t), t.state = ct.Opening, this.instance.emit("reveal", t), this.zoomIn(t).then((() => { h(), this.instance.done(t) }), (() => { })), c && setTimeout((() => { h() }), a > 2500 ? 800 : 200) }), (() => { i.hideLoading(t), i.revealContent(t) })) } else { const n = this.optionFor(t, "initialSize"), s = this.optionFor(t, "zoom"), o = { event: i.prevMouseMoveEvent || i.options.event, friction: s ? .12 : 0 }; let a = i.optionFor(t, "showClass") || void 0, r = !0; i.isOpeningSlide(t) && ("full" === n ? e.zoomToFull(o) : "cover" === n ? e.zoomToCover(o) : "max" === n ? e.zoomToMax(o) : r = !1, e.stop("current")), r && a && (a = e.isDragging ? "f-fadeIn" : ""), i.hideLoading(t), i.revealContent(t, a) } var l }), (() => { i.setError(t, "{{IMAGE_ERROR}}") })) } process(t, e) { return new Promise(((i, n) => { var o; const a = this.instance, r = t.el; a.clearContent(t), a.showLoading(t); let l = this.optionFor(t, "content"); if ("string" == typeof l && (l = s(l)), !l || !S(l)) { if (l = document.createElement("img"), l instanceof HTMLImageElement) { let i = "", n = t.caption; i = "string" == typeof n && n ? n.replace(/<[^>]+>/gi, "").substring(0, 1e3) : `Image ${t.index + 1} of ${(null === (o = a.carousel) || void 0 === o ? void 0 : o.pages.length) || 1}`, l.src = e || "", l.alt = i, l.draggable = !1, t.srcset && l.setAttribute("srcset", t.srcset), this.instance.isOpeningSlide(t) && (l.fetchPriority = "high") } t.sizes && l.setAttribute("sizes", t.sizes) } C(l, "fancybox-image"), t.imageEl = l, a.setContent(t, l, !1); t.panzoom = new D(r, p({ transformParent: !0 }, this.option("Panzoom") || {}, { content: l, width: (e, i) => a.optionFor(t, "width", "auto", i) || "auto", height: (e, i) => a.optionFor(t, "height", "auto", i) || "auto", wheel: () => { const t = a.option("wheel"); return ("zoom" === t || "pan" == t) && t }, click: (e, i) => { var n, s; if (a.isCompact || a.isClosing()) return !1; if (t.index !== (null === (n = a.getSlide()) || void 0 === n ? void 0 : n.index)) return !1; if (i) { const t = i.composedPath()[0]; if (["A", "BUTTON", "TEXTAREA", "OPTION", "INPUT", "SELECT", "VIDEO"].includes(t.nodeName)) return !1 } let o = !i || i.target && (null === (s = t.contentEl) || void 0 === s ? void 0 : s.contains(i.target)); return a.option(o ? "contentClick" : "backdropClick") || !1 }, dblClick: () => a.isCompact ? "toggleZoom" : a.option("contentDblClick") || !1, spinner: !1, panOnlyZoomed: !0, wheelLimit: 1 / 0, on: { ready: t => { i(t) }, error: () => { n() }, destroy: () => { n() } } })) })) } zoomIn(t) { return new Promise(((e, i) => { const n = this.instance, s = n.container, { panzoom: o, contentEl: a, el: r } = t; o && o.updateMetrics(); const l = this.getZoomInfo(t); if (!(l && r && a && o && s)) return void i(); const { x: c, y: h, scale: d, opacity: u } = l, p = () => { t.state !== ct.Closing && (u && (a.style.opacity = Math.max(Math.min(1, 1 - (1 - o.scale) / (1 - d)), 0) + ""), o.scale >= 1 && o.scale > o.targetScale - .1 && e(o)) }, f = t => { (t.scale < .99 || t.scale > 1.01) && !t.isDragging || (P(s, wt), a.style.opacity = "", t.off("endAnimation", f), t.off("touchStart", f), t.off("afterTransform", p), e(t)) }; o.on("endAnimation", f), o.on("touchStart", f), o.on("afterTransform", p), o.on(["error", "destroy"], (() => { i() })), o.panTo({ x: c, y: h, scale: d, friction: 0, ignoreBounds: !0 }), o.stop("current"); const g = { event: "mousemove" === o.panMode ? n.prevMouseMoveEvent || n.options.event : void 0 }, m = this.optionFor(t, "initialSize"); C(s, wt), n.hideLoading(t), "full" === m ? o.zoomToFull(g) : "cover" === m ? o.zoomToCover(g) : "max" === m ? o.zoomToMax(g) : o.reset(.172) })) } getZoomInfo(t) { const { el: e, imageEl: i, thumbEl: n, panzoom: s } = t, o = this.instance, a = o.container; if (!e || !i || !n || !s || et(n) < 3 || !this.optionFor(t, "zoom") || !a || o.state === lt.Destroy) return !1; if ("0" === getComputedStyle(a).getPropertyValue("--f-images-zoom")) return !1;
77 const r = window.visualViewport || null; if (1 !== (r ? r.scale : 1)) return !1; let { top: l, left: c, width: h, height: d } = n.getBoundingClientRect(), { top: u, left: p, fitWidth: f, fitHeight: g } = s.contentRect; if (!(h && d && f && g)) return !1; const m = s.container.getBoundingClientRect(); p += m.left, u += m.top; const v = -1 * (p + .5 * f - (c + .5 * h)), b = -1 * (u + .5 * g - (l + .5 * d)), y = h / f; let w = this.option("zoomOpacity") || !1; return "auto" === w && (w = Math.abs(h / d - f / g) > .1), { x: v, y: b, scale: y, opacity: w } } attach() { const t = this, e = t.instance; e.on("Carousel.change", t.onChange), e.on("Carousel.createSlide", t.onCreateSlide), e.on("Carousel.removeSlide", t.onRemoveSlide), e.on("close", t.onClose) } detach() { const t = this, e = t.instance; e.off("Carousel.change", t.onChange), e.off("Carousel.createSlide", t.onCreateSlide), e.off("Carousel.removeSlide", t.onRemoveSlide), e.off("close", t.onClose) } } Object.defineProperty(xt, "defaults", { enumerable: !0, configurable: !0, writable: !0, value: { initialSize: "fit", Panzoom: { maxScale: 1 }, protected: !1, zoom: !0, zoomOpacity: "auto" } }), "function" == typeof SuppressedError && SuppressedError; const Et = "html", St = "image", Pt = "map", Ct = "youtube", Tt = "vimeo", Mt = "html5video", Ot = (t, e = {}) => { const i = new URL(t), n = new URLSearchParams(i.search), s = new URLSearchParams; for (const [t, i] of [...n, ...Object.entries(e)]) { let e = i + ""; if ("t" === t) { let t = e.match(/((\d*)m)?(\d*)s?/); t && s.set("start", 60 * parseInt(t[2] || "0") + parseInt(t[3] || "0") + "") } else s.set(t, e) } let o = s + "", a = t.match(/#t=((.*)?\d+s)/); return a && (o += `#t=${a[1]}`), o }, At = { ajax: null, autoSize: !0, iframeAttr: { allow: "autoplay; fullscreen", scrolling: "auto" }, preload: !0, videoAutoplay: !0, videoRatio: 16 / 9, videoTpl: '<video class="fancybox__html5video" playsinline controls controlsList="nodownload" poster="{{poster}}">\n  <source src="{{src}}" type="{{format}}" />Sorry, your browser doesn\'t support embedded videos.</video>', videoFormat: "", vimeo: { byline: 1, color: "00adef", controls: 1, dnt: 1, muted: 0 }, youtube: { controls: 1, enablejsapi: 1, nocookie: 1, rel: 0, fs: 1 } }, Lt = ["image", "html", "ajax", "inline", "clone", "iframe", "map", "pdf", "html5video", "youtube", "vimeo"]; class zt extends $ { onBeforeInitSlide(t, e, i) { this.processType(i) } onCreateSlide(t, e, i) { this.setContent(i) } onClearContent(t, e) { e.xhr && (e.xhr.abort(), e.xhr = null); const i = e.iframeEl; i && (i.onload = i.onerror = null, i.src = "//about:blank", e.iframeEl = null); const n = e.contentEl, s = e.placeholderEl; if ("inline" === e.type && n && s) n.classList.remove("fancybox__content"), "none" !== getComputedStyle(n).getPropertyValue("display") && (n.style.display = "none"), setTimeout((() => { s && (n && s.parentNode && s.parentNode.insertBefore(n, s), s.remove()) }), 0), e.contentEl = void 0, e.placeholderEl = void 0; else for (; e.el && e.el.firstChild;)e.el.removeChild(e.el.firstChild) } onSelectSlide(t, e, i) { i.state === ct.Ready && this.playVideo() } onUnselectSlide(t, e, i) { var n, s; if (i.type === Mt) { try { null === (s = null === (n = i.el) || void 0 === n ? void 0 : n.querySelector("video")) || void 0 === s || s.pause() } catch (t) { } return } let o; i.type === Tt ? o = { method: "pause", value: "true" } : i.type === Ct && (o = { event: "command", func: "pauseVideo" }), o && i.iframeEl && i.iframeEl.contentWindow && i.iframeEl.contentWindow.postMessage(JSON.stringify(o), "*"), i.poller && clearTimeout(i.poller) } onDone(t, e) { t.isCurrentSlide(e) && !t.isClosing() && this.playVideo() } onRefresh(t, e) { e.slides.forEach((t => { t.el && (this.resizeIframe(t), this.setAspectRatio(t)) })) } onMessage(t) { try { let e = JSON.parse(t.data); if ("https://player.vimeo.com" === t.origin) { if ("ready" === e.event) for (let e of Array.from(document.getElementsByClassName("fancybox__iframe"))) e instanceof HTMLIFrameElement && e.contentWindow === t.source && (e.dataset.ready = "true") } else if (t.origin.match(/^https:\/\/(www.)?youtube(-nocookie)?.com$/) && "onReady" === e.event) { const t = document.getElementById(e.id); t && (t.dataset.ready = "true") } } catch (t) { } } loadAjaxContent(t) { const e = this.instance.optionFor(t, "src") || ""; this.instance.showLoading(t); const i = this.instance, n = new XMLHttpRequest; i.showLoading(t), n.onreadystatechange = function () { n.readyState === XMLHttpRequest.DONE && i.state === lt.Ready && (i.hideLoading(t), 200 === n.status ? i.setContent(t, n.responseText) : i.setError(t, 404 === n.status ? "{{AJAX_NOT_FOUND}}" : "{{AJAX_FORBIDDEN}}")) }; const s = t.ajax || null; n.open(s ? "POST" : "GET", e + ""), n.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"), n.setRequestHeader("X-Requested-With", "XMLHttpRequest"), n.send(s), t.xhr = n } setInlineContent(t) { let e = null; if (S(t.src)) e = t.src; else if ("string" == typeof t.src) { const i = t.src.split("#", 2).pop(); e = i ? document.getElementById(i) : null } if (e) { if ("clone" === t.type || e.closest(".fancybox__slide")) { e = e.cloneNode(!0); const i = e.dataset.animationName; i && (e.classList.remove(i), delete e.dataset.animationName); let n = e.getAttribute("id"); n = n ? `${n}--clone` : `clone-${this.instance.id}-${t.index}`, e.setAttribute("id", n) } else if (e.parentNode) { const i = document.createElement("div"); i.classList.add("fancybox-placeholder"), e.parentNode.insertBefore(i, e), t.placeholderEl = i } this.instance.setContent(t, e) } else this.instance.setError(t, "{{ELEMENT_NOT_FOUND}}") } setIframeContent(t) { const { src: e, el: i } = t; if (!e || "string" != typeof e || !i) return; i.classList.add("is-loading"); const n = this.instance, s = document.createElement("iframe"); s.className = "fancybox__iframe", s.setAttribute("id", `fancybox__iframe_${n.id}_${t.index}`); for (const [e, i] of Object.entries(this.optionFor(t, "iframeAttr") || {})) s.setAttribute(e, i); s.onerror = () => { n.setError(t, "{{IFRAME_ERROR}}") }, t.iframeEl = s; const o = this.optionFor(t, "preload"); if ("iframe" !== t.type || !1 === o) return s.setAttribute("src", t.src + ""), n.setContent(t, s, !1), this.resizeIframe(t), void n.revealContent(t); n.showLoading(t), s.onload = () => { if (!s.src.length) return; const e = "true" !== s.dataset.ready; s.dataset.ready = "true", this.resizeIframe(t), e ? n.revealContent(t) : n.hideLoading(t) }, s.setAttribute("src", e), n.setContent(t, s, !1) } resizeIframe(t) { const { type: e, iframeEl: i } = t; if (e === Ct || e === Tt) return; const n = null == i ? void 0 : i.parentElement; if (!i || !n) return; let s = t.autoSize; void 0 === s && (s = this.optionFor(t, "autoSize")); let o = t.width || 0, a = t.height || 0; o && a && (s = !1); const r = n && n.style; if (!1 !== t.preload && !1 !== s && r) try { const t = window.getComputedStyle(n), e = parseFloat(t.paddingLeft) + parseFloat(t.paddingRight), s = parseFloat(t.paddingTop) + parseFloat(t.paddingBottom), l = i.contentWindow; if (l) { const t = l.document, i = t.getElementsByTagName(Et)[0], n = t.body; r.width = "", n.style.overflow = "hidden", o = o || i.scrollWidth + e, r.width = `${o}px`, n.style.overflow = "", r.flex = "0 0 auto", r.height = `${n.scrollHeight}px`, a = i.scrollHeight + s } } catch (t) { } if (o || a) { const t = { flex: "0 1 auto", width: "", height: "" }; o && "auto" !== o && (t.width = `${o}px`), a && "auto" !== a && (t.height = `${a}px`), Object.assign(r, t) } } playVideo() { const t = this.instance.getSlide(); if (!t) return; const { el: e } = t; if (!e || !e.offsetParent) return; if (!this.optionFor(t, "videoAutoplay")) return; if (t.type === Mt) try { const t = e.querySelector("video"); if (t) { const e = t.play(); void 0 !== e && e.then((() => { })).catch((e => { t.muted = !0, t.play() })) } } catch (t) { } if (t.type !== Ct && t.type !== Tt) return; const i = () => { if (t.iframeEl && t.iframeEl.contentWindow) { let e; if ("true" === t.iframeEl.dataset.ready) return e = t.type === Ct ? { event: "command", func: "playVideo" } : { method: "play", value: "true" }, e && t.iframeEl.contentWindow.postMessage(JSON.stringify(e), "*"), void (t.poller = void 0); t.type === Ct && (e = { event: "listening", id: t.iframeEl.getAttribute("id") }, t.iframeEl.contentWindow.postMessage(JSON.stringify(e), "*")) } t.poller = setTimeout(i, 250) }; i() } processType(t) { if (t.html) return t.type = Et, t.src = t.html, void (t.html = ""); const e = this.instance.optionFor(t, "src", ""); if (!e || "string" != typeof e) return; let i = t.type, n = null; if (n = e.match(/(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(?:watch\?(?:.*&)?v=|v\/|u\/|shorts\/|embed\/?)?(videoseries\?list=(?:.*)|[\w-]{11}|\?listType=(?:.*)&list=(?:.*))(?:.*)/i)) { const s = this.optionFor(t, Ct), { nocookie: o } = s, a = function (t, e) { var i = {}; for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && e.indexOf(n) < 0 && (i[n] = t[n]); if (null != t && "function" == typeof Object.getOwnPropertySymbols) { var s = 0; for (n = Object.getOwnPropertySymbols(t); s < n.length; s++)e.indexOf(n[s]) < 0 && Object.prototype.propertyIsEnumerable.call(t, n[s]) && (i[n[s]] = t[n[s]]) } return i }(s, ["nocookie"]), r = `www.youtube${o ? "-nocookie" : ""}.com`, l = Ot(e, a), c = encodeURIComponent(n[2]); t.videoId = c, t.src = `https://${r}/embed/${c}?${l}`, t.thumbSrc = t.thumbSrc || `https://i.ytimg.com/vi/${c}/mqdefault.jpg`, i = Ct } else if (n = e.match(/^.+vimeo.com\/(?:\/)?([\d]+)((\/|\?h=)([a-z0-9]+))?(.*)?/)) { const s = Ot(e, this.optionFor(t, Tt)), o = encodeURIComponent(n[1]), a = n[4] || ""; t.videoId = o, t.src = `https://player.vimeo.com/video/${o}?${a ? `h=${a}${s ? "&" : ""}` : ""}${s}`, i = Tt } if (!i && t.triggerEl) { const e = t.triggerEl.dataset.type; Lt.includes(e) && (i = e) } i || "string" == typeof e && ("#" === e.charAt(0) ? i = "inline" : (n = e.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i)) ? (i = Mt, t.videoFormat = t.videoFormat || "video/" + ("ogv" === n[1] ? "ogg" : n[1])) : e.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i) ? i = St : e.match(/\.(pdf)((\?|#).*)?$/i) && (i = "pdf")), (n = e.match(/(?:maps\.)?google\.([a-z]{2,3}(?:\.[a-z]{2})?)\/(?:(?:(?:maps\/(?:place\/(?:.*)\/)?\@(.*),(\d+.?\d+?)z))|(?:\?ll=))(.*)?/i)) ? (t.src = `https://maps.google.${n[1]}/?ll=${(n[2] ? n[2] + "&z=" + Math.floor(parseFloat(n[3])) + (n[4] ? n[4].replace(/^\//, "&") : "") : n[4] + "").replace(/\?/, "&")}&output=${n[4] && n[4].indexOf("layer=c") > 0 ? "svembed" : "embed"}`, i = Pt) : (n = e.match(/(?:maps\.)?google\.([a-z]{2,3}(?:\.[a-z]{2})?)\/(?:maps\/search\/)(.*)/i)) && (t.src = `https://maps.google.${n[1]}/maps?q=${n[2].replace("query=", "q=").replace("api=1", "")}&output=embed`, i = Pt), i = i || this.instance.option("defaultType"), t.type = i, i === St && (t.thumbSrc = t.thumbSrc || t.src) } setContent(t) { const e = this.instance.optionFor(t, "src") || ""; if (t && t.type && e) { switch (t.type) { case Et: this.instance.setContent(t, e); break; case Mt: const i = this.option("videoTpl"); i && this.instance.setContent(t, i.replace(/\{\{src\}\}/gi, e + "").replace(/\{\{format\}\}/gi, this.optionFor(t, "videoFormat") || "").replace(/\{\{poster\}\}/gi, t.poster || t.thumbSrc || "")); break;
77 case "inline": case "clone": this.setInlineContent(t); break; case "ajax": this.loadAjaxContent(t); break; case "pdf": case Pt: case Ct: case Tt: t.preload = !1; case "iframe": this.setIframeContent(t) }this.setAspectRatio(t) } } setAspectRatio(t) { const e = t.contentEl; if (!(t.el && e && t.type && [Ct, Tt, Mt].includes(t.type))) return; let i, n = t.width || "auto", s = t.height || "auto"; if ("auto" === n || "auto" === s) { i = this.optionFor(t, "videoRatio"); const e = (i + "").match(/(\d+)\s*\/\s?(\d+)/); i = e && e.length > 2 ? parseFloat(e[1]) / parseFloat(e[2]) : parseFloat(i + "") } else n && s && (i = n / s); if (!i) return; e.style.aspectRatio = "", e.style.width = "", e.style.height = "", e.offsetHeight; const o = e.getBoundingClientRect(), a = o.width || 1, r = o.height || 1; e.style.aspectRatio = i + "", i < a / r ? (s = "auto" === s ? r : Math.min(r, s), e.style.width = "auto", e.style.height = `${s}px`) : (n = "auto" === n ? a : Math.min(a, n), e.style.width = `${n}px`, e.style.height = "auto") } attach() { const t = this, e = t.instance; e.on("Carousel.beforeInitSlide", t.onBeforeInitSlide), e.on("Carousel.createSlide", t.onCreateSlide), e.on("Carousel.selectSlide", t.onSelectSlide), e.on("Carousel.unselectSlide", t.onUnselectSlide), e.on("Carousel.Panzoom.refresh", t.onRefresh), e.on("done", t.onDone), e.on("clearContent", t.onClearContent), window.addEventListener("message", t.onMessage) } detach() { const t = this, e = t.instance; e.off("Carousel.beforeInitSlide", t.onBeforeInitSlide), e.off("Carousel.createSlide", t.onCreateSlide), e.off("Carousel.selectSlide", t.onSelectSlide), e.off("Carousel.unselectSlide", t.onUnselectSlide), e.off("Carousel.Panzoom.refresh", t.onRefresh), e.off("done", t.onDone), e.off("clearContent", t.onClearContent), window.removeEventListener("message", t.onMessage) } } Object.defineProperty(zt, "defaults", { enumerable: !0, configurable: !0, writable: !0, value: At }); const Rt = "play", kt = "pause", It = "ready"; class Dt extends $ { constructor() { super(...arguments), Object.defineProperty(this, "state", { enumerable: !0, configurable: !0, writable: !0, value: It }), Object.defineProperty(this, "inHover", { enumerable: !0, configurable: !0, writable: !0, value: !1 }), Object.defineProperty(this, "timer", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "progressBar", { enumerable: !0, configurable: !0, writable: !0, value: null }) } get isActive() { return this.state !== It } onReady(t) { this.option("autoStart") && (t.isInfinite || t.page < t.pages.length - 1) && this.start() } onChange() { this.removeProgressBar(), this.pause() } onSettle() { this.resume() } onVisibilityChange() { "visible" === document.visibilityState ? this.resume() : this.pause() } onMouseEnter() { this.inHover = !0, this.pause() } onMouseLeave() { var t; this.inHover = !1, (null === (t = this.instance.panzoom) || void 0 === t ? void 0 : t.isResting) && this.resume() } onTimerEnd() { const t = this.instance; "play" === this.state && (t.isInfinite || t.page !== t.pages.length - 1 ? t.slideNext() : t.slideTo(0)) } removeProgressBar() { this.progressBar && (this.progressBar.remove(), this.progressBar = null) } createProgressBar() { var t; if (!this.option("showProgress")) return null; this.removeProgressBar(); const e = this.instance, i = (null === (t = e.pages[e.page]) || void 0 === t ? void 0 : t.slides) || []; let n = this.option("progressParentEl"); if (n || (n = (1 === i.length ? i[0].el : null) || e.viewport), !n) return null; const s = document.createElement("div"); return C(s, "f-progress"), n.prepend(s), this.progressBar = s, s.offsetHeight, s } set() { const t = this, e = t.instance; if (e.pages.length < 2) return; if (t.timer) return; const i = t.option("timeout"); t.state = Rt, C(e.container, "has-autoplay"); let n = t.createProgressBar(); n && (n.style.transitionDuration = `${i}ms`, n.style.transform = "scaleX(1)"), t.timer = setTimeout((() => { t.timer = null, t.inHover || t.onTimerEnd() }), i), t.emit("set") } clear() { const t = this; t.timer && (clearTimeout(t.timer), t.timer = null), t.removeProgressBar() } start() { const t = this; if (t.set(), t.state !== It) { if (t.option("pauseOnHover")) { const e = t.instance.container; e.addEventListener("mouseenter", t.onMouseEnter, !1), e.addEventListener("mouseleave", t.onMouseLeave, !1) } document.addEventListener("visibilitychange", t.onVisibilityChange, !1), t.emit("start") } } stop() { const t = this, e = t.state, i = t.instance.container; t.clear(), t.state = It, i.removeEventListener("mouseenter", t.onMouseEnter, !1), i.removeEventListener("mouseleave", t.onMouseLeave, !1), document.removeEventListener("visibilitychange", t.onVisibilityChange, !1), P(i, "has-autoplay"), e !== It && t.emit("stop") } pause() { const t = this; t.state === Rt && (t.state = kt, t.clear(), t.emit(kt)) } resume() { const t = this, e = t.instance; if (e.isInfinite || e.page !== e.pages.length - 1) if (t.state !== Rt) { if (t.state === kt && !t.inHover) { const e = new Event("resume", { bubbles: !0, cancelable: !0 }); t.emit("resume", e), e.defaultPrevented || t.set() } } else t.set(); else t.stop() }
77 toggle() { this.state === Rt || this.state === kt ? this.stop() : this.start() } attach() { const t = this, e = t.instance; e.on("ready", t.onReady), e.on("Panzoom.startAnimation", t.onChange), e.on("Panzoom.endAnimation", t.onSettle), e.on("Panzoom.touchMove", t.onChange) } detach() { const t = this, e = t.instance; e.off("ready", t.onReady), e.off("Panzoom.startAnimation", t.onChange), e.off("Panzoom.endAnimation", t.onSettle), e.off("Panzoom.touchMove", t.onChange), t.stop() } } Object.defineProperty(Dt, "defaults", { enumerable: !0, configurable: !0, writable: !0, value: { autoStart: !0, pauseOnHover: !0, progressParentEl: null, showProgress: !0, timeout: 3e3 } }); class Ft extends $ { constructor() { super(...arguments), Object.defineProperty(this, "ref", { enumerable: !0, configurable: !0, writable: !0, value: null }) } onPrepare(t) { const e = t.carousel; if (!e) return; const i = t.container; i && (e.options.Autoplay = p({ autoStart: !1 }, this.option("Autoplay") || {}, { pauseOnHover: !1, timeout: this.option("timeout"), progressParentEl: () => this.option("progressParentEl") || null, on: { start: () => { t.emit("startSlideshow") }, set: e => { var n; i.classList.add("has-slideshow"), (null === (n = t.getSlide()) || void 0 === n ? void 0 : n.state) !== ct.Ready && e.pause() }, stop: () => { i.classList.remove("has-slideshow"), t.isCompact || t.endIdle(), t.emit("endSlideshow") }, resume: (e, i) => { var n, s, o; !i || !i.cancelable || (null === (n = t.getSlide()) || void 0 === n ? void 0 : n.state) === ct.Ready && (null === (o = null === (s = t.carousel) || void 0 === s ? void 0 : s.panzoom) || void 0 === o ? void 0 : o.isResting) || i.preventDefault() } } }), e.attachPlugins({ Autoplay: Dt }), this.ref = e.plugins.Autoplay) } onReady(t) { const e = t.carousel, i = this.ref; i && e && this.option("playOnStart") && (e.isInfinite || e.page < e.pages.length - 1) && i.start() } onDone(t, e) { const i = this.ref, n = t.carousel; if (!i || !n) return; const s = e.panzoom; s && s.on("startAnimation", (() => { t.isCurrentSlide(e) && i.stop() })), t.isCurrentSlide(e) && i.resume() } onKeydown(t, e) { var i; const n = this.ref; n && e === this.option("key") && "BUTTON" !== (null === (i = document.activeElement) || void 0 === i ? void 0 : i.nodeName) && n.toggle() } attach() { const t = this, e = t.instance; e.on("Carousel.init", t.onPrepare), e.on("Carousel.ready", t.onReady), e.on("done", t.onDone), e.on("keydown", t.onKeydown) } detach() { const t = this, e = t.instance; e.off("Carousel.init", t.onPrepare), e.off("Carousel.ready", t.onReady), e.off("done", t.onDone), e.off("keydown", t.onKeydown) } } Object.defineProperty(Ft, "defaults", { enumerable: !0, configurable: !0, writable: !0, value: { key: " ", playOnStart: !1, progressParentEl: t => { var e; return (null === (e = t.instance.container) || void 0 === e ? void 0 : e.querySelector(".fancybox__toolbar [data-fancybox-toggle-slideshow]")) || t.instance.container }, timeout: 3e3 } }); const jt = { classes: { container: "f-thumbs f-carousel__thumbs", viewport: "f-thumbs__viewport", track: "f-thumbs__track", slide: "f-thumbs__slide", isResting: "is-resting", isSelected: "is-selected", isLoading: "is-loading", hasThumbs: "has-thumbs" }, minCount: 2, parentEl: null, thumbTpl: '<button class="f-thumbs__slide__button" tabindex="0" type="button" aria-label="{{GOTO}}" data-carousel-index="%i"><img class="f-thumbs__slide__img" data-lazy-src="{{%s}}" alt="" /></button>', type: "modern" }; var Bt; !function (t) { t[t.Init = 0] = "Init", t[t.Ready = 1] = "Ready", t[t.Hidden = 2] = "Hidden" }(Bt || (Bt = {})); const Ht = "isResting", Nt = "thumbWidth", _t = "thumbHeight", $t = "thumbClipWidth"; let Wt = class extends $ { constructor() { super(...arguments), Object.defineProperty(this, "type", { enumerable: !0, configurable: !0, writable: !0, value: "modern" }), Object.defineProperty(this, "container", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "track", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "carousel", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "thumbWidth", { enumerable: !0, configurable: !0, writable: !0, value: 0 }), Object.defineProperty(this, "thumbClipWidth", { enumerable: !0, configurable: !0, writable: !0, value: 0 }), Object.defineProperty(this, "thumbHeight", { enumerable: !0, configurable: !0, writable: !0, value: 0 }), Object.defineProperty(this, "thumbGap", { enumerable: !0, configurable: !0, writable: !0, value: 0 }), Object.defineProperty(this, "thumbExtraGap", { enumerable: !0, configurable: !0, writable: !0, value: 0 }), Object.defineProperty(this, "state", { enumerable: !0, configurable: !0, writable: !0, value: Bt.Init }) } get isModern() { return "modern" === this.type } onInitSlide(t, e) { const i = e.el ? e.el.dataset : void 0; i && (e.thumbSrc = i.thumbSrc || e.thumbSrc || "", e[$t] = parseFloat(i[$t] || "") || e[$t] || 0, e[_t] = parseFloat(i.thumbHe
77ight || "") || e[_t] || 0), this.addSlide(e) } onInitSlides() { this.build() } onChange() { var t; if (!this.isModern) return; const e = this.container, i = this.instance, n = i.panzoom, s = this.carousel, o = s ? s.panzoom : null, r = i.page; if (n && s && o) { if (n.isDragging) { P(e, this.cn(Ht)); let n = (null === (t = s.pages[r]) || void 0 === t ? void 0 : t.pos) || 0; n += i.getProgress(r) * (this[$t] + this.thumbGap); let a = o.getBounds(); -1 * n > a.x.min && -1 * n < a.x.max && o.panTo({ x: -1 * n, friction: .12 }) } else a(e, this.cn(Ht), n.isResting); this.shiftModern() } } onRefresh() { this.updateProps(); for (const t of this.instance.slides || []) this.resizeModernSlide(t); this.shiftModern() } isDisabled() { const t = this.option("minCount") || 0; if (t) { const e = this.instance; let i = 0; for (const t of e.slides || []) t.thumbSrc && i++; if (i < t) return !0 } const e = this.option("type"); return ["modern", "classic"].indexOf(e) < 0 } getThumb(t) { const e = this.option("thumbTpl") || ""; return { html: this.instance.localize(e, [["%i", t.index], ["%d", t.index + 1], ["%s", t.thumbSrc || "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"]]) } } addSlide(t) { const e = this.carousel; e && e.addSlide(t.index, this.getThumb(t)) } getSlides() { const t = []; for (const e of this.instance.slides || []) t.push(this.getThumb(e)); return t } resizeModernSlide(t) { this.isModern && (t[Nt] = t[$t] && t[_t] ? Math.round(this[_t] * (t[$t] / t[_t])) : this[Nt]) } updateProps() { const t = this.container; if (!t) return; const e = e => parseFloat(getComputedStyle(t).getPropertyValue("--f-thumb-" + e)) || 0; this.thumbGap = e("gap"), this.thumbExtraGap = e("extra-gap"), this[Nt] = e("width") || 40, this[$t] = e("clip-width") || 40, this[_t] = e("height") || 40 } build() { const t = this; if (t.state !== Bt.Init) return; if (t.isDisabled()) return void t.emit("disabled"); const e = t.instance, i = e.container, n = t.getSlides(), s = t.option("type"); t.type = s; const o = t.option("parentEl"), a = t.cn("container"), r = t.cn("track"); let l = null == o ? void 0 : o.querySelector("." + a); l || (l = document.createElement("div"), C(l, a), o ? o.appendChild(l) : i.after(l)), C(l, `is-${s}`), C(i, t.cn("hasThumbs")), t.container = l, t.updateProps(); let c = l.querySelector("." + r); c || (c = document.createElement("div"), C(c, t.cn("track")), l.appendChild(c)), t.track = c; const h = p({}, { track: c, infinite: !1, center: !0, fill: "classic" === s, dragFree: !0, slidesPerPage: 1, transition: !1, preload: .25, friction: .12, Panzoom: { maxVelocity: 0 }, Dots: !1, Navigation: !1, classes: { container: "f-thumbs", viewport: "f-thumbs__viewport", track: "f-thumbs__track", slide: "f-thumbs__slide" } }, t.option("Carousel") || {}, { Sync: { target: e }, slides: n }), d = new e.constructor(l, h); d.on("createSlide", ((e, i) => { t.setProps(i.index), t.emit("createSlide", i, i.el) })), d.on("ready", (() => { t.shiftModern(), t.emit("ready") })), d.on("refresh", (() => { t.shiftModern() })), d.on("Panzoom.click", ((e, i, n) => { t.onClick(n) })), t.carousel = d, t.state = Bt.Ready } onClick(t) { t.preventDefault(), t.stopPropagation(); const e = this.instance, { pages: i, page: n } = e, s = t => { if (t) { const e = t.closest("[data-carousel-index]"); if (e) return [parseInt(e.dataset.carouselIndex || "", 10) || 0, e] } return [-1, void 0] }, o = (t, e) => { const i = document.elementFromPoint(t, e); return i ? s(i) : [-1, void 0] }; let [a, r] = s(t.target); if (a > -1) return; const l = this[$t], c = t.clientX, h = t.clientY; let [d, u] = o(c - l, h), [p, f] = o(c + l, h); u && f ? (a = Math.abs(c - u.getBoundingClientRect().right) < Math.abs(c - f.getBoundingClientRect().left) ? d : p, a === n && (a = a === d ? p : d)) : u ? a = d : f && (a = p), a > -1 && i[a] && e.slideTo(a) } getShift(t) { var e; const i = this, { instance: n } = i, s = i.carousel; if (!n || !s) return 0; const o = i[Nt], a = i[$t], r = i.thumbGap, l = i.thumbExtraGap; if (!(null === (e = s.slides[t]) || void 0 === e ? void 0 : e.el)) return 0; const c = .5 * (o - a), h = n.pages.length - 1; let d = n.getProgress(0), u = n.getProgress(h), p = n.getProgress(t, !1, !0), f = 0, g = c + l + r; const m = d < 0 && d > -1, v = u > 0 && u < 1; return 0 === t ? (f = g * Math.abs(d), v && 1 === d && (f -= g * Math.abs(u))) : t === h ? (f = g * Math.abs(u) * -1, m && -1 === u && (f += g * Math.abs(d))) : m || v ? (f = -1 * g, f += g * Math.abs(d), f += g * (1 - Math.abs(u))) : f = g * p, f } setProps(t) { var i; const n = this; if (!n.isModern) return; const { instance: s } = n, o = n.carousel; if (s && o) { const a = null === (i = o.slides[t]) || void 0 === i ? void 0 : i.el; if (a && a.childNodes.length) { let i = e(1 - Math.abs(s.getProgress(t))), o = e(n.getShift(t)); a.style.setProperty("--progress", i ? i + "" : ""), a.style.setProperty("--shift", o + "") } } } shiftModern() { const t = this; if (!t.isModern) return; const { instance: e, track: i } = t, n = e.panzoom, s = t.carousel; if (!(e && i && n && s)) return; if (n.state === v.Init || n.state === v.Destroy) return; for (const i of e.slides) t.setProps(i.index); let o = (t[$t] + t.thumbGap) * (s.slides.length || 0); i.style.setProperty("--width", o + "") } cleanup() { const t = this; t.carousel && t.carousel.destroy(), t.carousel = null, t.container && t.container.remove(), t.container = null, t.track && t.track.remove(), t.track = null, t.state = Bt.Init, P(t.instance.container, t.cn("hasThumbs")) } attach() { const t = this, e = t.instance; e.on("initSlide", t.onInitSlide), e.state === H.Init ? e.on("initSlides", t.onInitSlides) : t.onInitSlides(), e.on(["change", "Panzoom.afterTransform"], t.onChange), e.on("Panzoom.refresh", t.onRefresh) } detach() { const t = this, e = t.instance; e.off("initSlide", t.onInitSlide), e.off("initSlides", t.onInitSlides), e.off(["change", "Panzoom.afterTransform"], t.onChange), e.off("Panzoom.refresh", t.onRefresh), t.cleanup() } }; Object.defineProperty(Wt, "defaults", { enumerable: !0, configurable: !0, writable: !0, value: jt }); const Xt = Object.assign(Object.assign({}, jt), { key: "t", showOnStart: !0, parentEl: null }), qt = "is-masked", Yt = "aria-hidden"; class Vt extends $ { constructor() { super(...arguments), Object.defineProperty(this, "ref", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "hidden", { enumerable: !0, configurable: !0, writable: !0, value: !1 }) } get isEnabled() { const t = this.ref; return t && !t.isDisabled() } get isHidden() { return this.hidden } onClick(t, e) { e.stopPropagation() } onCreateSlide(t, e) { var i, n, s; const o = (null === (s = null === (n = null === (i = this.instance) || void 0 === i ? void 0 : i.carousel) || void 0 === n ? void 0 : n.slides[e.index]) || void 0 === s ? void 0 : s.type) || "", a = e.el; if (a && o) { let t = `for-${o}`;["video", "youtube", "vimeo", "html5video"].includes(o) && (t += " for-video"), C(a, t) } } onInit() { var t; const e = this, i = e.instance, n = i.carousel; if (e.ref || !n) return; const s = e.option("parentEl") || i.footer || i.container; if (!s) return; const o = p({}, e.options, { parentEl: s, classes: { container: "f-thumbs fancybox__thumbs" }, Carousel: { Sync: { friction: i.option("Carousel.friction") || 0 } }, on: { ready: t => { const i = t.container; i && this.hidden && (e.refresh(), i.style.transition = "none", e.hide(), i.offsetHeight, queueMicrotask((() => { i.style.transition = "", e.show() }))) } } });
77 o.Carousel = o.Carousel || {}, o.Carousel.on = p((null === (t = e.options.Carousel) || void 0 === t ? void 0 : t.on) || {}, { click: this.onClick, createSlide: this.onCreateSlide }), n.options.Thumbs = o, n.attachPlugins({ Thumbs: Wt }), e.ref = n.plugins.Thumbs, e.option("showOnStart") || (e.ref.state = Bt.Hidden, e.hidden = !0) } onResize() { var t; const e = null === (t = this.ref) || void 0 === t ? void 0 : t.container; e && (e.style.maxHeight = "") } onKeydown(t, e) { const i = this.option("key"); i && i === e && this.toggle() } toggle() { const t = this.ref; if (t && !t.isDisabled()) return t.state === Bt.Hidden ? (t.state = Bt.Init, void t.build()) : void (this.hidden ? this.show() : this.hide()) } show() { const t = this.ref; if (!t || t.isDisabled()) return; const e = t.container; e && (this.refresh(), e.offsetHeight, e.removeAttribute(Yt), e.classList.remove(qt), this.hidden = !1) } hide() { const t = this.ref, e = t && t.container; e && (this.refresh(), e.offsetHeight, e.classList.add(qt), e.setAttribute(Yt, "true")), this.hidden = !0 } refresh() { const t = this.ref; if (!t || !t.state) return; const e = t.container, i = (null == e ? void 0 : e.firstChild) || null; e && i && i.childNodes.length && (e.style.maxHeight = `${i.getBoundingClientRect().height}px`) } attach() { const t = this, e = t.instance; e.state === lt.Init ? e.on("Carousel.init", t.onInit) : t.onInit(), e.on("resize", t.onResize), e.on("keydown", t.onKeydown) } detach() { var t; const e = this, i = e.instance; i.off("Carousel.init", e.onInit), i.off("resize", e.onResize), i.off("keydown", e.onKeydown), null === (t = i.carousel) || void 0 === t || t.detachPlugins(["Thumbs"]), e.ref = null } } Object.defineProperty(Vt, "defaults", { enumerable: !0, configurable: !0, writable: !0, value: Xt }); const Zt = { panLeft: { icon: '<svg><path d="M5 12h14M5 12l6 6M5 12l6-6"/></svg>', change: { panX: -100 } }, panRight: { icon: '<svg><path d="M5 12h14M13 18l6-6M13 6l6 6"/></svg>', change: { panX: 100 } }, panUp: { icon: '<svg><path d="M12 5v14M18 11l-6-6M6 11l6-6"/></svg>', change: { panY: -100 } }, panDown: { icon: '<svg><path d="M12 5v14M18 13l-6 6M6 13l6 6"/></svg>', change: { panY: 100 } }, zoomIn: { icon: '<svg><circle cx="11" cy="11" r="7.5"/><path d="m21 21-4.35-4.35M11 8v6M8 11h6"/></svg>', action: "zoomIn" }, zoomOut: { icon: '<svg><circle cx="11" cy="11" r="7.5"/><path d="m21 21-4.35-4.35M8 11h6"/></svg>', action: "zoomOut" }, toggle1to1: { icon: '<svg><path d="M3.51 3.07c5.74.02 11.48-.02 17.22.02 1.37.1 2.34 1.64 2.18 3.13 0 4.08.02 8.16 0 12.23-.1 1.54-1.47 2.64-2.79 2.46-5.61-.01-11.24.02-16.86-.01-1.36-.12-2.33-1.65-2.17-3.14 0-4.07-.02-8.16 0-12.23.1-1.36 1.22-2.48 2.42-2.46Z"/><path d="M5.65 8.54h1.49v6.92m8.94-6.92h1.49v6.92M11.5 9.4v.02m0 5.18v0"/></svg>', action: "toggleZoom" }, toggleZoom: { icon: '<svg><g><line x1="11" y1="8" x2="11" y2="14"></line></g><circle cx="11" cy="11" r="7.5"/><path d="m21 21-4.35-4.35M8 11h6"/></svg>', action: "toggleZoom" }, iterateZoom: { icon: '<svg><g><line x1="11" y1="8" x2="11" y2="14"></line></g><circle cx="11" cy="11" r="7.5"/><path d="m21 21-4.35-4.35M8 11h6"/></svg>', action: "iterateZoom" }, rotateCCW: { icon: '<svg><path d="M15 4.55a8 8 0 0 0-6 14.9M9 15v5H4M18.37 7.16v.01M13 19.94v.01M16.84 18.37v.01M19.37 15.1v.01M19.94 11v.01"/></svg>', action: "rotateCCW" }, rotateCW: { icon: '<svg><path d="M9 4.55a8 8 0 0 1 6 14.9M15 15v5h5M5.63 7.16v.01M4.06 11v.01M4.63 15.1v.01M7.16 18.37v.01M11 19.94v.01"/></svg>', action: "rotateCW" }, flipX: { icon: '<svg style="stroke-width: 1.3"><path d="M12 3v18M16 7v10h5L16 7M8 7v10H3L8 7"/></svg>', action: "flipX" }, flipY: { icon: '<svg style="stroke-width: 1.3"><path d="M3 12h18M7 16h10L7 21v-5M7 8h10L7 3v5"/></svg>', action: "flipY" }, fitX: { icon: '<svg><path d="M4 12V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v6M10 18H3M21 18h-7M6 15l-3 3 3 3M18 15l3 3-3 3"/></svg>', action: "fitX" }, fitY: { icon: '<svg><path d="M12 20H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h6M18 14v7M18 3v7M15 18l3 3 3-3M15 6l3-3 3 3"/></svg>', action: "fitY" }, reset: { icon: '<svg><path d="M20 11A8.1 8.1 0 0 0 4.5 9M4 5v4h4M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4"/></svg>', action: "reset" }, toggleFS: { icon: '<svg><g><path d="M14.5 9.5 21 3m0 0h-6m6 0v6M3 21l6.5-6.5M3 21v-6m0 6h6"/></g><g><path d="m14 10 7-7m-7 7h6m-6 0V4M3 21l7-7m0 0v6m0-6H4"/></g></svg>', action: "toggleFS" } }; var Ut; !function (t) { t[t.Init = 0] = "Init", t[t.Ready = 1] = "Ready", t[t.Disabled = 2] = "Disabled" }(Ut || (Ut = {})); const Gt = { absolute: "auto", display: { left: ["infobar"], middle: [], right: ["iterateZoom", "slideshow", "fullscreen", "thumbs", "close"] }, enabled: "auto", items: { infobar: { tpl: '<div class="fancybox__infobar" tabindex="-1"><span data-fancybox-current-index></span>/<span data-fancybox-count></span></div>' }, download: { tpl: '<a class="f-button" title="{{DOWNLOAD}}" data-fancybox-download href="javasript:;"><svg><path d="M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2M7 11l5 5 5-5M12 4v12"/></svg></a>' }, prev: { tpl: '<button class="f-button" title="{{PREV}}" data-fancybox-prev><svg><path d="m15 6-6 6 6 6"/></svg></button>' }, next: { tpl: '<button class="f-button" title="{{NEXT}}" data-fancybox-next><svg><path d="m9 6 6 6-6 6"/></svg></button>' }, slideshow: { tpl: '<button class="f-button" title="{{TOGGLE_SLIDESHOW}}" data-fancybox-toggle-slideshow><svg><g><path d="M8 4v16l13 -8z"></path></g><g>
77<path d="M8 4v15M17 4v15"/></g></svg></button>' }, fullscreen: { tpl: '<button class="f-button" title="{{TOGGLE_FULLSCREEN}}" data-fancybox-toggle-fullscreen><svg><g><path d="M4 8V6a2 2 0 0 1 2-2h2M4 16v2a2 2 0 0 0 2 2h2M16 4h2a2 2 0 0 1 2 2v2M16 20h2a2 2 0 0 0 2-2v-2"/></g><g><path d="M15 19v-2a2 2 0 0 1 2-2h2M15 5v2a2 2 0 0 0 2 2h2M5 15h2a2 2 0 0 1 2 2v2M5 9h2a2 2 0 0 0 2-2V5"/></g></svg></button>' }, thumbs: { tpl: '<button class="f-button" title="{{TOGGLE_THUMBS}}" data-fancybox-toggle-thumbs><svg><circle cx="5.5" cy="5.5" r="1"/><circle cx="12" cy="5.5" r="1"/><circle cx="18.5" cy="5.5" r="1"/><circle cx="5.5" cy="12" r="1"/><circle cx="12" cy="12" r="1"/><circle cx="18.5" cy="12" r="1"/><circle cx="5.5" cy="18.5" r="1"/><circle cx="12" cy="18.5" r="1"/><circle cx="18.5" cy="18.5" r="1"/></svg></button>' }, close: { tpl: '<button class="f-button" title="{{CLOSE}}" data-fancybox-close><svg><path d="m19.5 4.5-15 15M4.5 4.5l15 15"/></svg></button>' } }, parentEl: null }, Kt = { tabindex: "-1", width: "24", height: "24", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, Jt = "has-toolbar", Qt = "fancybox__toolbar"; class te extends $ { constructor() { super(...arguments), Object.defineProperty(this, "state", { enumerable: !0, configurable: !0, writable: !0, value: Ut.Init }), Object.defineProperty(this, "container", { enumerable: !0, configurable: !0, writable: !0, value: null }) } onReady(t) { var e; if (!t.carousel) return; let i = this.option("display"), n = this.option("absolute"), s = this.option("enabled"); if ("auto" === s) { const t = this.instance.carousel; let e = 0; if (t) for (const i of t.slides) (i.panzoom || "image" === i.type) && e++; e || (s = !1) } s || (i = void 0); let o = 0; const a = { left: [], middle: [], right: [] }; if (i) for (const t of ["left", "middle", "right"]) for (const n of i[t]) { const i = this.createEl(n); i && (null === (e = a[t]) || void 0 === e || e.push(i), o++) } let r = null; if (o && (r = this.createContainer()), r) { for (const [t, e] of Object.entries(a)) { const i = document.createElement("div"); C(i, Qt + "__column is-" + t); for (const t of e) i.appendChild(t); "auto" !== n || "middle" !== t || e.length || (n = !0), r.appendChild(i) } !0 === n && C(r, "is-absolute"), this.state = Ut.Ready, this.onRefresh() } else this.state = Ut.Disabled } onClick(t) { var e, i; const n = this.instance, s = n.getSlide(), o = null == s ? void 0 : s.panzoom, a = t.target, r = a && S(a) ? a.dataset : null; if (!r) return; if (void 0 !== r.fancyboxToggleThumbs) return t.preventDefault(), t.stopPropagation(), void (null === (e = n.plugins.Thumbs) || void 0 === e || e.toggle()); if (void 0 !== r.fancyboxToggleFullscreen) return t.preventDefault(), t.stopPropagation(), void this.instance.toggleFullscreen(); if (void 0 !== r.fancyboxToggleSlideshow) { t.preventDefault(), t.stopPropagation(); const e = null === (i = n.carousel) || void 0 === i ? void 0 : i.plugins.Autoplay; let s = e.isActive; return o && "mousemove" === o.panMode && !s && o.reset(), void (s ? e.stop() : e.start()) } const l = r.panzoomAction, c = r.panzoomChange; if ((c || l) && (t.preventDefault(), t.stopPropagation()), c) { let t = {}; try { t = JSON.parse(c) } catch (t) { } o && o.applyChange(t) } else l && o && o[l] && o[l]() } onChange() { this.onRefresh() } onRefresh() { if (this.instance.isClosing()) return; const t = this.container; if (!t) return; const e = this.instance.getSlide(); if (!e || e.state !== ct.Ready) return; const i = e && !e.error && e.panzoom; for (const e of t.querySelectorAll("[data-panzoom-action]")) i ? (e.removeAttribute("disabled"), e.removeAttribute("tabindex")) : (e.setAttribute("disabled", ""), e.setAttribute("tabindex", "-1")); let n = i && i.canZoomIn(), s = i && i.canZoomOut(); for (const e of t.querySelectorAll('[data-panzoom-action="zoomIn"]')) n ? (e.removeAttribute("disabled"), e.removeAttribute("tabindex")) : (e.setAttribute("disabled", ""), e.setAttribute("tabindex", "-1")); for (const e of t.querySelectorAll('[data-panzoom-action="zoomOut"]')) s ? (e.removeAttribute("disabled"), e.removeAttribute("tabindex")) : (e.setAttribute("disabled", ""), e.setAttribute("tabindex", "-1")); for (const e of t.querySelectorAll('[data-panzoom-action="toggleZoom"],[data-panzoom-action="iterateZoom"]')) { s || n ? (e.removeAttribute("disabled"), e.removeAttribute("tabindex")) : (e.setAttribute("disabled", ""), e.setAttribute("tabindex", "-1")); const t = e.querySelector("g"); t && (t.style.display = n ? "" : "none") } } onDone(t, e) { var i; null === (i = e.panzoom) || void 0 === i || i.on("afterTransform", (() => { this.instance.isCurrentSlide(e) && this.onRefresh() })), this.instance.isCurrentSlide(e) && this.onRefresh() } createContainer() { const t = this.instance.container; if (!t) return null; const e = this.option("parentEl") || t; let i = e.querySelector("." + Qt); return i || (i = document.createElement("div"), C(i, Qt), e.prepend(i)), i.addEventListener("click", this.onClick, { passive: !1, capture: !0 }), t && C(t, Jt), this.container = i, i } createEl(t) { const e = this.instance, i = e.carousel; if (!i) return null; if ("toggleFS" === t) return null; if ("fullscreen" === t && !at()) return null; let n = null; const o = i.slides.length || 0; let a = 0, r = 0; for (const t of i.slides) (t.panzoom || "image" === t.type) && a++, ("image" === t.type || t.downloadSrc) && r++; if (o < 2 && ["infobar", "prev", "next"].includes(t)) return n; if (void 0 !== Zt[t] && !a) return null; if ("download" === t && !r) return null; if ("thumbs" === t) { const t = e.plugins.Thumbs; if (!t || !t.isEnabled) return null } if ("slideshow" === t) { if (!i.plugins.Autoplay || o < 2) return null } if (void 0 !== Zt[t]) { const e = Zt[t]; n = document.createElement("button"), n.setAttribute("title", this.instance.localize(`{{${t.toUpperCase()}}}`)), C(n, "f-button"), e.action && (n.dataset.panzoomAction = e.action), e.change && (n.dataset.panzoomChange = JSON.stringify(e.change)), n.appendChild(s(this.instance.localize(e.icon))) } else { const e = (this.option("items") || [])[t]; e && (n = s(this.instance.localize(e.tpl)), "function" == typeof e.click && n.addEventListener("click", (t => { t.preventDefault(), t.stopPropagation(), "function" == typeof e.click && e.click.call(this, this, t) }))) } const l = null == n ? void 0 : n.querySelector("svg"); if (l) for (const [t, e] of Object.entries(Kt)) l.getAttribute(t) || l.setAttribute(t, String(e)); return n } removeContainer() { const t = this.container; t && t.remove(), this.container = null, this.state = Ut.Disabled; const e = this.instance.container; e && P(e, Jt) } attach() { const t = this, e = t.instance; e.on("Carousel.initSlides", t.onReady), e.on("done", t.onDone), e.on(["reveal", "Carousel.change"], t.onChange), t.onReady(t.
77instance) } detach() { const t = this, e = t.instance; e.off("Carousel.initSlides", t.onReady), e.off("done", t.onDone), e.off(["reveal", "Carousel.change"], t.onChange), t.removeContainer() } } Object.defineProperty(te, "defaults", { enumerable: !0, configurable: !0, writable: !0, value: Gt }); const ee = { Hash: class extends $ { onReady() { dt = !1 } onChange(t) { pt && clearTimeout(pt); const { hash: e } = ft(), { hash: i } = gt(), n = t.isOpeningSlide(t.getSlide()); n && (ht = i === e ? "" : i), e && e !== i && (pt = setTimeout((() => { try { if (t.state === lt.Ready) { let t = "replaceState"; n && !ut && (t = "pushState", ut = !0), window.history[t]({}, document.title, window.location.pathname + window.location.search + e) } } catch (t) { } }), 300)) } onClose(t) { if (pt && clearTimeout(pt), !dt && ut) return ut = !1, dt = !1, void window.history.back(); if (!dt) try { window.history.replaceState({}, document.title, window.location.pathname + window.location.search + (ht || "")) } catch (t) { } } attach() { const t = this.instance; t.on("ready", this.onReady), t.on(["Carousel.ready", "Carousel.change"], this.onChange), t.on("close", this.onClose) } detach() { const t = this.instance; t.off("ready", this.onReady), t.off(["Carousel.ready", "Carousel.change"], this.onChange), t.off("close", this.onClose) } static parseURL() { return gt() } static startFromUrl() { mt() } static destroy() { window.removeEventListener("hashchange", bt, !1) } }, Html: zt, Images: xt, Slideshow: Ft, Thumbs: Vt, Toolbar: te }, ie = "with-fancybox", ne = "hide-scrollbar", se = "--fancybox-scrollbar-compensate", oe = "--fancybox-body-margin", ae = "aria-hidden", re = "is-using-tab", le = "is-animated", ce = "is-compact", he = "is-loading", de = "is-opening", ue = "has-caption", pe = "disabled", fe = "tabindex", ge = "download", me = "href", ve = "src", be = t => "string" == typeof t, ye = function () { var t = window.getSelection(); return !!t && "Range" === t.type }; let we, xe = null, Ee = null, Se = 0, Pe = 0, Ce = 0, Te = 0; const Me = new Map; let Oe = 0; class Ae extends m { get isIdle() { return this.idle } get isCompact() { return this.option("compact") } constructor(t = [], e = {}, i = {}) { super(e), Object.defineProperty(this, "userSlides", { enumerable: !0, configurable: !0, writable: !0, value: [] }), Object.defineProperty(this, "userPlugins", { enumerable: !0, configurable: !0, writable: !0, value: {} }), Object.defineProperty(this, "idle", { enumerable: !0, configurable: !0, writable: !0, value: !1 }), Object.defineProperty(this, "idleTimer", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "clickTimer", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "pwt", { enumerable: !0, configurable: !0, writable: !0, value: 0 }), Object.defineProperty(this, "ignoreFocusChange", { enumerable: !0, configurable: !0, writable: !0, value: !1 }), Object.defineProperty(this, "startedFs", { enumerable: !0, configurable: !0, writable: !0, value: !1 }), Object.defineProperty(this, "state", { enumerable: !0, configurable: !0, writable: !0, value: lt.Init }), Object.defineProperty(this, "id", { enumerable: !0, configurable: !0, writable: !0, value: 0 }), Object.defineProperty(this, "container", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "caption", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "footer", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "carousel", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "lastFocus", { enumerable: !0, configurable: !0, writable: !0, value: null }), Object.defineProperty(this, "prevMouseMoveEvent", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), we || (we = at()), this.id = e.id || ++Oe, Me.set(this.id, this), this.userSlides = t, this.userPlugins = i, queueMicrotask((() => { this.init() })) } init() { if (this.state === lt.Destroy) return; this.state = lt.Init, this.attachPlugins(Object.assign(Object.assign({}
77, Ae.Plugins), this.userPlugins)), this.emit("init"), this.emit("attachPlugins"), !0 === this.option("hideScrollbar") && (() => { if (!it) return; const t = document, e = t.body, i = t.documentElement; if (e.classList.contains(ne)) return; let n = window.innerWidth - i.getBoundingClientRect().width; const s = parseFloat(window.getComputedStyle(e).marginRight); n < 0 && (n = 0), i.style.setProperty(se, `${n}px`), s && e.style.setProperty(oe, `${s}px`), e.classList.add(ne) })(), this.initLayout(), this.scale(); const t = () => { this.initCarousel(this.userSlides), this.state = lt.Ready, this.attachEvents(), this.emit("ready"), setTimeout((() => { this.container && this.container.setAttribute(ae, "false") }), 16) }; this.option("Fullscreen.autoStart") && we && !we.isFullscreen() ? we.request().then((() => { this.startedFs = !0, t() })).catch((() => t())) : t() } initLayout() { var t, e; const i = this.option("parentEl") || document.body, n = s(this.localize(this.option("tpl.main") || "")); if (n) { if (n.setAttribute("id", `fancybox-${this.id}`), n.setAttribute("aria-label", this.localize("{{MODAL}}")), n.classList.toggle(ce, this.isCompact), C(n, this.option("mainClass") || ""), C(n, de), this.container = n, this.footer = n.querySelector(".fancybox__footer"), i.appendChild(n), C(document.documentElement, ie), xe && Ee || (xe = document.createElement("span"), C(xe, "fancybox-focus-guard"), xe.setAttribute(fe, "0"), xe.setAttribute(ae, "true"), xe.setAttribute("aria-label", "Focus guard"), Ee = xe.cloneNode(), null === (t = n.parentElement) || void 0 === t || t.insertBefore(xe, n), null === (e = n.parentElement) || void 0 === e || e.append(Ee)), n.addEventListener("mousedown", (t => { Se = t.pageX, Pe = t.pageY, P(n, re) })), this.option("closeExisting")) for (const t of Me.values()) t.id !== this.id && t.close(); else this.option("animated") && (C(n, le), setTimeout((() => { this.isClosing() || P(n, le) }), 350)); this.emit("initLayout") } } initCarousel(t) { const e = this.container; if (!e) return; const n = e.querySelector(".fancybox__carousel"); if (!n) return; const s = this.carousel = new tt(n, p({}, { slides: t, transition: "fade", Panzoom: { lockAxis: this.option("dragToClose") ? "xy" : "x", infinite: !!this.option("dragToClose") && "y" }, Dots: !1, Navigation: { classes: { container: "fancybox__nav", button: "f-button", isNext: "is-next", isPrev: "is-prev" } }, initialPage: this.option("startIndex"), l10n: this.option("l10n") }, this.option("Carousel") || {})); s.on("*", ((t, e, ...i) => { this.emit(`Carousel.${e}`, t, ...i) })), s.on(["ready", "change"], (() => { this.manageCaption() })), this.on("Carousel.removeSlide", ((t, e, i) => { this.clearContent(i), i.state = void 0 })), s.on("Panzoom.touchStart", (() => { var t, e; this.isCompact || this.endIdle(), (null === (t = document.activeElement) || void 0 === t ? void 0 : t.closest(".f-thumbs")) && (null === (e = this.container) || void 0 === e || e.focus()) })), s.on("settle", (() => { this.idleTimer || this.isCompact || !this.option("idle") || this.setIdle(), this.option("autoFocus") && !this.isClosing && this.checkFocus() })), this.option("dragToClose") && (s.on("Panzoom.afterTransform", ((t, e) => { const n = this.getSlide(); if (n && i(n.el)) return; const s = this.container; if (s) { const t = Math.abs(e.current.f), i = t < 1 ? "" : Math.max(.5, Math.min(1, 1 - t / e.contentRect.fitHeight * 1.5)); s.style.setProperty("--fancybox-ts", i ? "0s" : ""), s.style.setProperty("--fancybox-opacity", i + "") } })), s.on("Panzoom.touchEnd", ((t, e, n) => { var s; const o = this.getSlide(); if (o && i(o.el)) return; if (e.isMobile && document.activeElement && -1 !== ["TEXTAREA", "INPUT"].indexOf(null === (s = document.activeElement) || void 0 === s ? void 0 : s.nodeName)) return; const a = Math.abs(e.dragOffset.y); "y" === e.lockedAxis && (a >= 200 || a >= 50 && e.dragOffset.time < 300) && (n && n.cancelable && n.preventDefault(), this.close(n, "f-throwOut" + (e.current.f < 0 ? "Up" : "Down"))) }))), s.on("change", (t => { var e; let i = null === (e = this.getSlide()) || void 0 === e ? void 0 : e.triggerEl; if (i) { const e = new CustomEvent("slideTo", { bubbles: !0, cancelable: !0, detail: t.page }); i.dispatchEvent(e) } })), s.on(["refresh", "change"], (t => { const e = this.container; if (!e) return; for (const i of e.querySelectorAll("[data-fancybox-current-index]")) i.innerHTML = t.page + 1; for (const i of e.querySelectorAll("[data-fancybox-count]")) i.innerHTML = t.pages.length; if (!t.isInfinite) { for (const i of e.querySelectorAll("[data-fancybox-next]")) t.page < t.pages.length - 1 ? (i.removeAttribute(pe), i.removeAttribute(fe)) : (i.setAttribute(pe, ""), i.setAttribute(fe, "-1")); for (const i of e.querySelectorAll("[data-fancybox-prev]")) t.page > 0 ? (i.removeAttribute(pe), i.removeAttribute(fe)) : (i.setAttribute(pe, ""), i.setAttribute(fe, "-1")) }
77 const i = this.getSlide(); if (!i) return; let n = i.downloadSrc || ""; n || "image" !== i.type || i.error || !be(i[ve]) || (n = i[ve]); for (const t of e.querySelectorAll("[data-fancybox-download]")) { const e = i.downloadFilename; n ? (t.removeAttribute(pe), t.removeAttribute(fe), t.setAttribute(me, n), t.setAttribute(ge, e || n), t.setAttribute("target", "_blank")) : (t.setAttribute(pe, ""), t.setAttribute(fe, "-1"), t.removeAttribute(me), t.removeAttribute(ge)) } })), this.emit("initCarousel") } attachEvents() { const t = this, e = t.container; if (!e) return; e.addEventListener("click", t.onClick, { passive: !1, capture: !1 }), e.addEventListener("wheel", t.onWheel, { passive: !1, capture: !1 }), document.addEventListener("keydown", t.onKeydown, { passive: !1, capture: !0 }), document.addEventListener("visibilitychange", t.onVisibilityChange, !1), document.addEventListener("mousemove", t.onMousemove), t.option("trapFocus") && document.addEventListener("focus", t.onFocus, !0), window.addEventListener("resize", t.onResize); const i = window.visualViewport; i && (i.addEventListener("scroll", t.onResize), i.addEventListener("resize", t.onResize)) } detachEvents() { const t = this, e = t.container; if (!e) return; document.removeEventListener("keydown", t.onKeydown, { passive: !1, capture: !0 }), e.removeEventListener("wheel", t.onWheel, { passive: !1, capture: !1 }), e.removeEventListener("click", t.onClick, { passive: !1, capture: !1 }), document.removeEventListener("mousemove", t.onMousemove), window.removeEventListener("resize", t.onResize); const i = window.visualViewport; i && (i.removeEventListener("resize", t.onResize), i.removeEventListener("scroll", t.onResize)), document.removeEventListener("visibilitychange", t.onVisibilityChange, !1), document.removeEventListener("focus", t.onFocus, !0) } scale() { const t = this.container; if (!t) return; const e = window.visualViewport, i = Math.max(1, (null == e ? void 0 : e.scale) || 1); let n = "", s = "", o = ""; if (e && i > 1) { let t = `${e.offsetLeft}px`, a = `${e.offsetTop}px`; n = e.width * i + "px", s = e.height * i + "px", o = `translate3d(${t}, ${a}, 0) scale(${1 / i})` } t.style.transform = o, t.style.width = n, t.style.height = s } onClick(t) { var e; const { container: i, isCompact: n } = this; if (!i || this.isClosing()) return; !n && this.option("idle") && this.resetIdle(); const s = t.composedPath()[0]; if (s.closest(".fancybox-spinner") || s.closest("[data-fancybox-close]")) return t.preventDefault(), void this.close(t); if (s.closest("[data-fancybox-prev]")) return t.preventDefault(), void this.prev(); if (s.closest("[data-fancybox-next]")) return t.preventDefault(), void this.next(); if ("click" === t.type && 0 === t.detail) return; if (Math.abs(t.pageX - Se) > 30 || Math.abs(t.pageY - Pe) > 30) return; const o = document.activeElement; if (ye() && o && i.contains(o)) return; if (n && "image" === (null === (e = this.getSlide()) || void 0 === e ? void 0 : e.type)) return void (this.clickTimer ? (clearTimeout(this.clickTimer), this.clickTimer = null) : this.clickTimer = setTimeout((() => { this.toggleIdle(), this.clickTimer = null }), 350));
77 if (this.emit("click", t), t.defaultPrevented) return; let a = !1; if (s.closest(".fancybox__content")) { if (o) { if (o.closest("[contenteditable]")) return; s.matches(st) || o.blur() } if (ye()) return; a = this.option("contentClick") } else s.closest(".fancybox__carousel") && !s.matches(st) && (a = this.option("backdropClick")); "close" === a ? (t.preventDefault(), this.close(t)) : "next" === a ? (t.preventDefault(), this.next()) : "prev" === a && (t.preventDefault(), this.prev()) } onWheel(t) { const e = t.target; let i = this.option("wheel", t); e.closest(".fancybox__thumbs") && (i = "slide"); const s = "slide" === i, o = [-t.deltaX || 0, -t.deltaY || 0, -t.detail || 0].reduce((function (t, e) { return Math.abs(e) > Math.abs(t) ? e : t })), a = Math.max(-1, Math.min(1, o)), r = Date.now(); this.pwt && r - this.pwt < 300 ? s && t.preventDefault() : (this.pwt = r, this.emit("wheel", t, a), t.defaultPrevented || ("close" === i ? (t.preventDefault(), this.close(t)) : "slide" === i && (n(e) || (t.preventDefault(), this[a > 0 ? "prev" : "next"]())))) } onScroll() { window.scrollTo(Ce, Te) } onKeydown(t) { if (!this.isTopmost()) return; this.isCompact || !this.option("idle") || this.isClosing() || this.resetIdle(); const e = t.key, i = this.option("keyboard"); if (!i) return; const n = t.composedPath()[0], s = document.activeElement && document.activeElement.classList, o = s && s.contains("f-button") || n.dataset.carouselPage || n.dataset.carouselIndex; if ("Escape" !== e && !o && S(n)) { if (n.isContentEditable || -1 !== ["TEXTAREA", "OPTION", "INPUT", "SELECT", "VIDEO"].indexOf(n.nodeName)) return } if ("Tab" === t.key ? C(this.container, re) : P(this.container, re), t.ctrlKey || t.altKey || t.shiftKey) return; this.emit("keydown", e, t); const a = i[e]; a && "function" == typeof this[a] && (t.preventDefault(), this[a]()) } onResize() { const t = this.container; if (!t) return; const e = this.isCompact; t.classList.toggle(ce, e), this.manageCaption(this.getSlide()), this.isCompact ? this.clearIdle() : this.endIdle(), this.scale(), this.emit("resize") } onFocus(t) { this.isTopmost() && this.checkFocus(t) } onMousemove(t) { this.prevMouseMoveEvent = t, !this.isCompact && this.option("idle") && this.resetIdle() } onVisibilityChange() { "visible" === document.visibilityState ? this.checkFocus() : this.endIdle() } manageCloseBtn(t) { const e = this.optionFor(t, "closeButton") || !1; if ("auto" === e) { const t = this.plugins.Toolbar; if (t && t.state === Ut.Ready) return } if (!e) return; if (!t.contentEl || t.closeBtnEl) return; const i = this.option("tpl.closeButton"); if (i) { const e = s(this.localize(i)); t.closeBtnEl = t.contentEl.appendChild(e), t.el && C(t.el, "has-close-btn") } } manageCaption(t = void 0) { var e, i; const n = "fancybox__caption", s = this.container; if (!s) return; P(s, ue); const o = this.isCompact || this.option("commonCaption"), a = !o; if (this.caption && this.stop(this.caption), a && this.caption && (this.caption.remove(), this.caption = null), o && !this.caption) for (const t of (null === (e = this.carousel) || void 0 === e ? void 0 : e.slides) || []) t.captionEl && (t.captionEl.remove(), t.captionEl = void 0, P(t.el, ue), null === (i = t.el) || void 0 === i || i.removeAttribute("aria-labelledby")); if (t || (t = this.getSlide()), !t || o && !this.isCurrentSlide(t)) return; const r = t.el; let l = this.optionFor(t, "caption", ""); if (!l) return void (o && this.caption && this.animate(this.caption, "f-fadeOut", (() => { this.caption && (this.caption.innerHTML = "") }))); let c = null; if (a) { if (c = t.captionEl || null, r && !c) { const e = n + `_${this.id}_${t.index}`; c = document.createElement("div"), C(c, n), c.setAttribute("id", e), t.captionEl = r.appendChild(c), C(r, ue), r.setAttribute("aria-labelledby", e) } } else { if (c = this.caption, c || (c = s.querySelector("." + n)), !c) { c = document.createElement("div"), c.dataset.fancyboxCaption = "", C(c, n); (this.footer || s).prepend(c) } C(s, ue), this.caption = c } c && (c.innerHTML = "", be(l) || "number" == typeof l ? c.innerHTML = l + "" : l instanceof HTMLElement && c.appendChild(l)) } checkFocus(t) { this.focus(t) } focus(t) { var e; if (this.ignoreFocusChange) return; const i = document.activeElement || null, n = (null == t ? void 0 : t.target) || null, s = this.container, o = null === (e = this.carousel) || void 0 === e ? void 0 : e.viewport; if (!s || !o) return; if (!t && i && s.contains(i)) return;
77 const a = this.getSlide(), r = a && a.state === ct.Ready ? a.el : null; if (!r || r.contains(i) || s === i) return; t && t.cancelable && t.preventDefault(), this.ignoreFocusChange = !0; const l = Array.from(s.querySelectorAll(st)); let c = [], h = null; for (let t of l) { const e = !t.offsetParent || !!t.closest('[aria-hidden="true"]'), i = r && r.contains(t), n = !o.contains(t); if (t === s || (i || n) && !e) { c.push(t); const e = t.dataset.origTabindex; void 0 !== e && e && (t.tabIndex = parseFloat(e)), t.removeAttribute("data-orig-tabindex"), !t.hasAttribute("autoFocus") && h || (h = t) } else { const e = void 0 === t.dataset.origTabindex ? t.getAttribute("tabindex") || "" : t.dataset.origTabindex; e && (t.dataset.origTabindex = e), t.tabIndex = -1 } } let d = null; t ? (!n || c.indexOf(n) < 0) && (d = h || s, c.length && (i === Ee ? d = c[0] : this.lastFocus !== s && i !== xe || (d = c[c.length - 1]))) : d = a && "image" === a.type ? s : h || s, d && ot(d), this.lastFocus = document.activeElement, this.ignoreFocusChange = !1 } next() { const t = this.carousel; t && t.pages.length > 1 && t.slideNext() } prev() { const t = this.carousel; t && t.pages.length > 1 && t.slidePrev() } jumpTo(...t) { this.carousel && this.carousel.slideTo(...t) } isTopmost() { var t; return (null === (t = Ae.getInstance()) || void 0 === t ? void 0 : t.id) == this.id } animate(t = null, e = "", i) { if (!t || !e) return void (i && i()); this.stop(t); const n = s => { s.target === t && t.dataset.animationName && (t.removeEventListener("animationend", n), delete t.dataset.animationName, i && i(), P(t, e)) }; t.dataset.animationName = e, t.addEventListener("animationend", n), C(t, e) } stop(t) { t && t.dispatchEvent(new CustomEvent("animationend", { bubbles: !1, cancelable: !0, currentTarget: t })) } setContent(t, e = "", i = !0) { if (this.isClosing()) return; const n = t.el; if (!n) return; let o = null; if (S(e) ? o = e : (o = s(e + ""), S(o) || (o = document.createElement("div"), o.innerHTML = e + "")), ["img", "picture", "iframe", "video", "audio"].includes(o.nodeName.toLowerCase())) { const t = document.createElement("div"); t.appendChild(o), o = t } S(o) && t.filter && !t.error && (o = o.querySelector(t.filter)), o && S(o) ? (C(o, "fancybox__content"), t.id && o.setAttribute("id", t.id), n.classList.add(`has-${t.error ? "error" : t.type || "unknown"}`), n.prepend(o), "none" === o.style.display && (o.style.display = ""), "none" === getComputedStyle(o).getPropertyValue("display") && (o.style.display = t.display || this.option("defaultDisplay") || "flex"), t.contentEl = o, i && this.revealContent(t), this.manageCloseBtn(t), this.manageCaption(t)) : this.setError(t, "{{ELEMENT_NOT_FOUND}}") } revealContent(t, e) { const i = t.el, n = t.contentEl;
77 i && n && (this.emit("reveal", t), this.hideLoading(t), t.state = ct.Opening, (e = this.isOpeningSlide(t) ? void 0 === e ? this.optionFor(t, "showClass") : e : "f-fadeIn") ? this.animate(n, e, (() => { this.done(t) })) : this.done(t)) } done(t) { this.isClosing() || (t.state = ct.Ready, this.emit("done", t), C(t.el, "is-done"), this.isCurrentSlide(t) && this.option("autoFocus") && queueMicrotask((() => { var e; null === (e = t.panzoom) || void 0 === e || e.updateControls(), this.option("autoFocus") && this.focus() })), this.isOpeningSlide(t) && (P(this.container, de), !this.isCompact && this.option("idle") && this.setIdle())) } isCurrentSlide(t) { const e = this.getSlide(); return !(!t || !e) && e.index === t.index } isOpeningSlide(t) { var e, i; return null === (null === (e = this.carousel) || void 0 === e ? void 0 : e.prevPage) && t && t.index === (null === (i = this.getSlide()) || void 0 === i ? void 0 : i.index) } showLoading(t) { t.state = ct.Loading; const e = t.el; if (!e) return; C(e, he), this.emit("loading", t), t.spinnerEl || setTimeout((() => { if (!this.isClosing() && !t.spinnerEl && t.state === ct.Loading) { let i = s(E); C(i, "fancybox-spinner"), t.spinnerEl = i, e.prepend(i), this.animate(i, "f-fadeIn") } }), 250) } hideLoading(t) { const e = t.el; if (!e) return; const i = t.spinnerEl; this.isClosing() ? null == i || i.remove() : (P(e, he), i && this.animate(i, "f-fadeOut", (() => { i.remove() }
77)), t.state === ct.Loading && (this.emit("loaded", t), t.state = ct.Ready)) } setError(t, e) { if (this.isClosing()) return; const i = new Event("error", { bubbles: !0, cancelable: !0 }); if (this.emit("error", i, t), i.defaultPrevented) return; t.error = e, this.hideLoading(t), this.clearContent(t); const n = document.createElement("div"); n.classList.add("fancybox-error"), n.innerHTML = this.localize(e || "<p>{{ERROR}}</p>"), this.setContent(t, n) } clearContent(t) { if (void 0 === t.state) return; this.emit("clearContent", t), t.contentEl && (t.contentEl.remove(), t.contentEl = void 0); const e = t.el; e && (P(e, "has-error"), P(e, "has-unknown"), P(e, `has-${t.type || "unknown"}`)), t.closeBtnEl && t.closeBtnEl.remove(), t.closeBtnEl = void 0, t.captionEl && t.captionEl.remove(), t.captionEl = void 0, t.spinnerEl && t.spinnerEl.remove(), t.spinnerEl = void 0 } getSlide() { var t; const e = this.carousel; return (null === (t = null == e ? void 0 : e.pages[null == e ? void 0 : e.page]) || void 0 === t ? void 0 : t.slides[0]) || void 0 } close(t, e) { if (this.isClosing()) return; const i = new Event("shouldClose", { bubbles: !0, cancelable: !0 });
77 if (this.emit("shouldClose", i, t), i.defaultPrevented) return; t && t.cancelable && (t.preventDefault(), t.stopPropagation()); const n = () => { this.proceedClose(t, e) }; this.startedFs && we && we.isFullscreen() ? Promise.resolve(we.exit()).then((() => n())) : n() } clearIdle() { this.idleTimer && clearTimeout(this.idleTimer), this.idleTimer = null } setIdle(t = !1) { const e = () => { this.clearIdle(), this.idle = !0, C(this.container, "is-idle"), this.emit("setIdle") }; if (this.clearIdle(), !this.isClosing()) if (t) e(); else { const t = this.option("idle"); t && (this.idleTimer = setTimeout(e, t)) } } endIdle() { this.clearIdle(), this.idle && !this.isClosing() && (this.idle = !1, P(this.container, "is-idle"), this.emit("endIdle")) } resetIdle() { this.endIdle(), this.setIdle() } toggleIdle() { this.idle ? this.endIdle() : this.setIdle(!0) } toggleFullscreen() { we && (we.isFullscreen() ? we.exit() : we.request().then((() => { this.startedFs = !0 }))) } isClosing() { return [lt.Closing, lt.CustomClosing, lt.Destroy].includes(this.state) } proceedClose(t, e) { var i, n; this.state = lt.Closing, this.clearIdle(), this.detachEvents(); const s = this.container, o = this.carousel, a = this.getSlide(), r = a && this.option("placeFocusBack") ? a.triggerEl || this.option("triggerEl") : null; if (r && (et(r) ? ot(r) : r.focus()), s && (P(s, de), C(s, "is-closing"), s.setAttribute(ae, "true"), this.option("animated") && C(s, le), s.style.pointerEvents = "none"), o) { o.clearTransitions(), null === (i = o.panzoom) || void 0 === i || i.destroy(), null === (n = o.plugins.Navigation) || void 0 === n || n.detach(); for (const t of o.slides) { t.state = ct.Closing, this.hideLoading(t); const e = t.contentEl; e && this.stop(e); const i = null == t ? void 0 : t.panzoom; i && (i.stop(), i.detachEvents(), i.detachObserver()), this.isCurrentSlide(t) || o.emit("removeSlide", t) } } Ce = window.scrollX, Te = window.scrollY, window.addEventListener("scroll", this.onScroll), this.emit("close", t), this.state !== lt.CustomClosing ? (void 0 === e && a && (e = this.optionFor(a, "hideClass")), e && a ? (this.animate(a.contentEl, e, (() => { o && o.emit("removeSlide", a) })), setTimeout((() => { this.destroy() }), 500)) : this.destroy()) : setTimeout((() => { this.destroy() }), 500) } destroy() { var t; if (this.state === lt.Destroy) return; window.removeEventListener("scroll", this.onScroll), this.state = lt.Destroy, null === (t = this.carousel) || void 0 === t || t.destroy(); const e = this.container; e && e.remove(), Me.delete(this.id); const i = Ae.getInstance(); i ? i.focus() : (xe && (xe.remove(), xe = null), Ee && (Ee.remove(), Ee = null), P(document.documentElement, ie), (() => { if (!it) return; const t = document, e = t.body; e.classList.remove(ne), e.style.setProperty(oe, ""), t.documentElement.style.setProperty(se, "") })(), this.emit("destroy")) } static bind(t, e, i) { if (!it) return; let n, s = "", o = {}; if (void 0 === t ? n = document.body : be(t) ? (n = document.body, s = t, "object" == typeof e && (o = e || {})) : (n = t, be(e) && (s = e), "object" == typeof i && (o = i || {})), !n || !S(n)) return; s = s || "[data-fancybox]"; const a = Ae.openers.get(n) || new Map; a.set(s, o), Ae.openers.set(n, a), 1 === a.size && n.addEventListener("click", Ae.fromEvent) } static unbind(t, e) { let i, n = ""; if (be(t) ? (i = document.body, n = t) : (i = t, be(e) && (n = e)), !i) return; const s = Ae.openers.get(i); s && n && s.delete(n), n && s || (Ae.openers.delete(i), i.removeEventListener("click", Ae.fromEvent)) } static destroy() { let t; for (; t = Ae.getInstance();)t.destroy(); for (const t of Ae.openers.keys()) t.removeEventListener("click", Ae.fromEvent); Ae.openers = new Map } static fromEvent(t) { if (t.defaultPrevented) return; if (t.button && 0 !== t.button) return; if (t.ctrlKey || t.metaKey || t.shiftKey) return; let e = t.composedPath()[0]; const i = e.closest("[data-fancybox-trigger]"); if (i) { const t = i.dataset.fancyboxTrigger || "", n = document.querySelectorAll(`[data-fancybox="${t}"]`), s = parseInt(i.dataset.fancyboxIndex || "", 10) || 0; e = n[s] || e } if (!(e && e instanceof Element)) return; let n, s, o, a; if ([...Ae.openers].reverse().find((([t, i]) => !(!t.contains(e) || ![...i].reverse().find((([i, r]) => { let l = e.closest(i); return !!l && (n = t, s = i, o = l, a = r, !0) }))))), !n || !s || !o) return; a = a || {}, t.preventDefault(), e = o; let r = [], l = p({}, rt, a); l.event = t, l.triggerEl = e, l.delegate = i; const c = l.groupAll, h = l.groupAttr, d = h && e ? e.getAttribute(`${h}`) : ""; if ((!e || d || c) && (r = [].slice.call(n.querySelectorAll(s))), e && !c && (r = d ? r.filter((t => t.getAttribute(`${h}`) === d)) : [e]), !r.length) return; const u = Ae.getInstance(); return u && u.options.triggerEl && r.indexOf(u.options.triggerEl) > -1 ? void 0 : (e && (l.startIndex = r.indexOf(e)), Ae.fromNodes(r, l)) } static fromSelector(t, e, i) { let n = null, s = "", o = {}; if (be(t) ? (n = document.body, s = t, "object" == typeof e && (o = e || {})) : t instanceof HTMLElement && be(e) && (n = t, s = e, "object" == typeof i && (o = i || {})), !n || !s) return !1; const a = Ae.openers.get(n); return !!a && (o = p({}, a.get(s) || {}, o), !!o && Ae.fromNodes(Array.from(n.querySelectorAll(s)), o)) } static fromNodes(t, e) { e = p({}, rt, e || {}); const i = []; for (const n of t) { const t = n.dataset || {}, s = t[ve] || n.getAttribute(me) || n.getAttribute("currentSrc") || n.getAttribute(ve) || void 0; let o; const a = e.delegate; let r; a && i.length === e.startIndex && (o = a instanceof HTMLImageElement ? a : a.querySelector("img:not([aria-hidden])")), o || (o = n instanceof HTMLImageElement ? n : n.querySelector("img:not([aria-hidden])")), o && (r = o.currentSrc || o[ve] || void 0, !r && o.dataset && (r = o.dataset.lazySrc || o.dataset[ve] || void 0)); const l = { src: s, triggerEl: n, thumbEl: o, thumbElSrc: r, thumbSrc: r }; for (const e in t) { let i = t[e] + ""; i = "false" !== i && ("true" === i || i), l[e] = i } i.push(l) } return new Ae(i, e) } static getInstance(t) { if (t) return Me.get(t); return Array.from(Me.values()).reverse().find((t => !t.isClosing() && t)) || null } static getSlide() { var t; return (null === (t = Ae.getInstance()) || void 0 === t ? void 0 : t.getSlide()) || null } static show(t = [], e = {}) { return new Ae(t, e) } static next() { const t = Ae.getInstance(); t && t.next() } static prev() { const t = Ae.getInstance(); t && t.prev() } static close(t = !0, ...e) { if (t) for (const t of Me.values()) t.close(...e); else { const t = Ae.getInstance(); t && t.close(...e) } } } Object.defineProperty(Ae, "version", { enumerable: !0, configurable: !0, writable: !0, value: "5.0.36" }), Object.defineProperty(Ae, "defaults", { enumerable: !0, configurable: !0, writable: !0, value: rt }), Object.defineProperty(Ae, "Plugins", { enumerable: !0, configurable: !0, writable: !0, value: ee }), Object.defineProperty(Ae, "openers", { enumerable: !0, configurable: !0, writable: !0, value: new Map }), t.Carousel = tt, t.Fancybox = Ae, t.Panzoom = D }));
78/*============================================================================================================================*/
79/*!
80 * bootstrap-fileinput v5.2.8
81 * http://plugins.krajee.com/file-input
82 *
83 * Author: Kartik Visweswaran
84 * Copyright: 2014 - 2022, Kartik Visweswaran, Krajee.com
85 *
86 * Licensed under the BSD-3-Clause
87 * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md
88 */
89!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):e("object"==typeof module&&"object"==typeof module.exports?require("jquery"):window.jQuery)}(function(e){"use strict";e.fn.fileinputLocales={},e.fn.fileinputThemes={},e.fn.fileinputBsVersion||(e.fn.fileinputBsVersion=window.bootstrap&&window.bootstrap.Alert&&window.bootstrap.Alert.VERSION||window.Alert&&window.Alert.VERSION||"3.x.x"),String.prototype.setTokens=function(e){var t,i,a=this.toString();for(t in e)e.hasOwnProperty(t)&&(i=new RegExp("{"+t+"}","g"),a=a.replace(i,e[t]));return a},Array.prototype.flatMap||(Array.prototype.flatMap=function(e){return[].concat(this.map(e))});var t,i;t={FRAMES:".kv-preview-thumb",SORT_CSS:"file-sortable",INIT_FLAG:"init-",SCRIPT_SRC:document&&document.currentScript&&document.currentScript.src||null,OBJECT_PARAMS:'<param name="controller" value="true" />\n<param name="allowFullScreen" value="true" />\n<param name="allowScriptAccess" value="always" />\n<param name="autoPlay" value="false" />\n<param name="autoStart" value="false" />\n<param name="quality" value="high" />\n',DEFAULT_PREVIEW:'<div class="file-preview-other">\n<span class="{previewFileIconClass}">{previewFileIcon}</span>\n</div>',MODAL_ID:"kvFileinputModal",MODAL_EVENTS:["show","shown","hide","hidden","loaded"],logMessages:{ajaxError:"{status}: {error}. Error Details: {text}.",badDroppedFiles:"Error scanning dropped files!",badExifParser:"Error loading the piexif.js library. {details}",badInputType:'The input "type" must be set to "file" for initializing the "bootstrap-fileinput" plugin.',exifWarning:'To avoid this warning, either set "autoOrientImage" to "false" OR ensure you have loaded the "piexif.js" library correctly on your page before the "fileinput.js" script.',invalidChunkSize:'Invalid upload chunk size: "{chunkSize}". Resumable uploads are disabled.',invalidThumb:'Invalid thumb frame with id: "{id}".',noResumableSupport:"The browser does not support resumable or chunk uploads.",noUploadUrl:'The "uploadUrl" is not set. Ajax uploads and resumable uploads have been disabled.',retryStatus:"Retrying upload for chunk # {chunk} for {filename}... retry # {retry}.",chunkQueueError:"Could not push task to ajax pool for chunk index # {index}.",resumableMaxRetriesReached:"Maximum resumable ajax retries ({n}) reached.",resumableRetryError:"Could not retry the resumable request (try # {n})... aborting.",resumableAborting:"Aborting / cancelling the resumable request.",resumableRequestError:"Error processing resumable request. {msg}"},objUrl:window.URL||window.webkitURL,getZoomPlaceholder:function(){var e,i=t.SCRIPT_SRC,a="?kvTemp__2873389129__=";return i?(e=i.substring(0,i.lastIndexOf("/")),e.substring(0,e.lastIndexOf("/")+1)+"img/loading.gif"+a):a},isBs:function(t){var i=e.trim((e.fn.fileinputBsVersion||"")+"");return t=parseInt(t,10),i?t===parseInt(i.charAt(0),10):4===t},defaultButtonCss:function(e){return"btn-default btn-"+(e?"":"outline-")+"secondary"},now:function(){return(new Date).getTime()},round:function(e){return e=parseFloat(e),isNaN(e)?0:Math.floor(Math.round(e))},getArray:function(e){var t,i=[],a=e&&e.length||0;for(t=0;a>t;t++)i.push(e[t]);return i},getFileRelativePath:function(e){return String(e.newPath||e.relativePath||e.webkitRelativePath||t.getFileName(e)||null)},getFileId:function(e,i){var a=t.getFileRelativePath(e);return"function"==typeof i?i(e):e&&a?e.size+"_"+encodeURIComponent(a).replace(/%/g,"_"):null},getFrameSelector:function(e,t){return t=t||"",'[id="'+e+'"]'+t},getZoomSelector:function(e,i){return t.getFrameSelector("zoom-"+e,i)},getFrameElement:function(e,i,a){return e.find(t.getFrameSelector(i,a))},getZoomElement:function(e,i,a){return e.find(t.getZoomSelector(i,a))},getElapsed:function(i){var a=i,r="",n={},o={year:31536e3,month:2592e3,week:604800,day:86400,hour:3600,minute:60,second:1};
vendor: 9,172 bytes, line 89
89return t.getObjectKeys(o).forEach(function(e){n[e]=Math.floor(a/o[e]),a-=n[e]*o[e]}),e.each(n,function(e,t){t>0&&(r+=(r?" ":"")+t+e.substring(0,1))}),r},debounce:function(e,t){var i;return function(){var a=arguments,r=this;clearTimeout(i),i=setTimeout(function(){e.apply(r,a)},t)}},stopEvent:function(e){e.stopPropagation(),e.preventDefault()},getFileName:function(e){return e?e.fileName||e.name||"":""},createObjectURL:function(e){return t.objUrl&&t.objUrl.createObjectURL&&e?t.objUrl.createObjectURL(e):""},revokeObjectURL:function(e){t.objUrl&&t.objUrl.revokeObjectURL&&e&&t.objUrl.revokeObjectURL(e)},compare:function(e,t,i){return void 0!==e&&(i?e===t:e.match(t))},isIE:function(e){var t,i;return"Microsoft Internet Explorer"!==navigator.appName?!1:10===e?new RegExp("msie\\s"+e,"i").test(navigator.userAgent):(t=document.createElement("div"),t.innerHTML="<!--[if IE "+e+"]> <i></i> <![endif]-->",i=t.getElementsByTagName("i").length,document.body.appendChild(t),t.parentNode.removeChild(t),i)},canOrientImage:function(t){var i=e(document.createElement("img")).css({width:"1px",height:"1px"}).insertAfter(t),a=i.css("image-orientation");return i.remove(),!!a},canAssignFilesToInput:function(){var e=document.createElement("input");try{return e.type="file",e.files=null,!0}catch(t){return!1}},getDragDropFolders:function(e){var t,i,a=e?e.length:0,r=0;if(a>0&&e[0].webkitGetAsEntry())for(t=0;a>t;t++)i=e[t].webkitGetAsEntry(),i&&i.isDirectory&&r++;return r},initModal:function(t){var i=e("body");i.length&&t.appendTo(i)},isFunction:function(e){return"function"==typeof e},isEmpty:function(i,a){return void 0===i||null===i||""===i?!0:t.isString(i)&&a?""===e.trim(i):t.isArray(i)?0===i.length:!(!e.isPlainObject(i)||!e.isEmptyObject(i))},isArray:function(e){return Array.isArray(e)||"[object Array]"===Object.prototype.toString.call(e)},isString:function(e){return"[object String]"===Object.prototype.toString.call(e)},ifSet:function(e,t,i){return i=i||"",t&&"object"==typeof t&&e in t?t[e]:i},cleanArray:function(e){return e instanceof Array||(e=[]),e.filter(function(e){return void 0!==e&&null!==e})},spliceArray:function(t,i,a){var r,n,o=0,s=[];if(!(t instanceof Array))return[];for(n=e.extend(!0,[],t),a&&n.reverse(),r=0;r<n.length;r++)r!==i&&(s[o]=n[r],o++);return a&&s.reverse(),s},getNum:function(e,t){return t=t||0,"number"==typeof e?e:("string"==typeof e&&(e=parseFloat(e)),isNaN(e)?t:e)},hasFileAPISupport:function(){return!(!window.File||!window.FileReader)},hasDragDropSupport:function(){var e=document.createElement("div");return!t.isIE(9)&&(void 0!==e.draggable||void 0!==e.ondragstart&&void 0!==e.ondrop)},hasFileUploadSupport:function(){return t.hasFileAPISupport()&&window.FormData},hasBlobSupport:function(){try{return!!window.Blob&&Boolean(new Blob)}catch(e){return!1}},hasArrayBufferViewSupport:function(){try{return 100===new Blob([new Uint8Array(100)]).size}catch(e){return!1}},hasResumableUploadSupport:function(){return t.hasFileUploadSupport()&&t.hasBlobSupport()&&t.hasArrayBufferViewSupport()&&(!!Blob.prototype.webkitSlice||!!Blob.prototype.mozSlice||!!Blob.prototype.slice||!1)},dataURI2Blob:function(e){var i,a,r,n,o,s,l=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,d=t.hasBlobSupport(),c=(d||l)&&window.atob&&window.ArrayBuffer&&window.Uint8Array;if(!c)return null;for(i=e.split(",")[0].indexOf("base64")>=0?atob(e.split(",")[1]):decodeURIComponent(e.split(",")[1]),a=new ArrayBuffer(i.length),r=new Uint8Array(a),n=0;n<i.length;n+=1)r[n]=i.charCodeAt(n);return o=e.split(",")[0].split(":")[1].split(";")[0],d?new Blob([t.hasArrayBufferViewSupport()?r:a],{type:o}):(s=new l,s.append(a),s.getBlob(o))},arrayBuffer2String:function(e){if(window.TextDecoder)return new TextDecoder("utf-8").decode(e);var t,i,a,r,n=Array.prototype.slice.apply(new Uint8Array(e)),o="",s=0;for(t=n.length;t>s;)switch(i=n[s++],i>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:o+=String.fromCharCode(i);break;case 12:case 13:a=n[s++],o+=String.fromCharCode((31&i)<<6|63&a);break;case 14:a=n[s++],r=n[s++],o+=String.fromCharCode((15&i)<<12|(63&a)<<6|(63&r)<<0)}return o},isHtml:function(e){var t=document.createElement("div");t.innerHTML=e;for(var i=t.childNodes,a=i.length;a--;)if(1===i[a].nodeType)return!0;return!1},isSvg:function(e){return e.match(/^\s*<\?xml/i)&&(e.match(/<!DOCTYPE svg/i)||e.match(/<svg/i))},getMimeType:function(e,t,i){switch(e){case"ffd8ffe0":case"ffd8ffe1":case"ffd8ffe2":return"image/jpeg";case"89504e47":return"image/png";case"47494638":return"image/gif";case"49492a00":return"image/tiff";case"52494646":return"image/webp";case"66747970":return"video/3gp";case"4f676753":return"video/ogg";case"1a45dfa3":return"video/mkv";case"000001ba":case"000001b3":return"video/mpeg";case"3026b275":return"video/wmv";case"25504446":return"application/pdf";case"25215053":return"application/ps";case"504b0304":case"504b0506":case"504b0508":return"application/zip";case"377abcaf":return"application/7z";case"75737461":return"application/tar";case"7801730d":return"application/dmg";default:switch(e.substring(0,6)){case"435753":return"application/x-shockwave-flash";case"494433":return"audio/mp3";case"425a68":return"application/bzip";default:switch(e.substring(0,4)){case"424d":return"image/bmp";case"fffb":return"audio/mp3";case"4d5a":return"application/exe";case"1f9d":case"1fa0":return"application/zip";case"1f8b":return"application/gzip";default:return t&&!t.match(/[^\u0000-\u007f]/)?"application/text-plain":i}}}},addCss:function(e,t){e.removeClass(t).addClass(t)},getElement:function(i,a,r){return t.isEmpty(i)||t.isEmpty(i[a])?r:e(i[a])},createElement:function(t,i){return i=i||"div",e(e.parseHTML("<"+i+">"+t+"</"+i+">"))},uniqId:function(){return((new Date).getTime()+Math.floor(Math.random()*Math.pow(10,15))).toString(36)},cspBuffer:{CSP_ATTRIB:"data-csp-01928735",domElementsStyles:{},stash:function(i){var a=this,r=e.parseHTML("<div>"+i+"</div>"),n=e(r);n.find("[style]").each(function(i,r){var n=e(r),o=n[0].style,s=t.uniqId(),l={};o&&o.length&&(e(o).each(function(){l[this]=o[this]}),a.domElementsStyles[s]=l,n.removeAttr("style").attr(a.CSP_ATTRIB,s))}),n.filter("*").removeAttr("style");var o=Object.values?Object.values(r):Object.keys(r).map(function(e){return r[e]});return o.flatMap(function(e){return e.innerHTML}).join("")},apply:function(t){var i=this,a=e(t);a.find("["+i.CSP_ATTRIB+"]").each(function(t,a){var r=e(a),n=r.attr(i.CSP_ATTRIB),o=i.domElementsStyles[n];o&&r.css(o),r.removeAttr(i.CSP_ATTRIB)}),i.domElementsStyles={}}},setHtml:function(e,i){var a=t.cspBuffer;return e.html(a.stash(i)),a.apply(e),e},htmlEncode:function(e,t){return void 0===e?t||null:e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")},replaceTags:function(t,i){var a=t;return i?(e.each(i,function(e,t){"function"==typeof t&&(t=t()),a=a.split(e).join(t)}),a):a},cleanMemory:function(e){var i=e.is("img")?e.attr("src"):e.find("source").attr("src");t.revokeObjectURL(i)},findFileName:function(e){var t=e.lastIndexOf("/");return-1===t&&(t=e.lastIndexOf("\\")),e.split(e.substring(t,t+1)).pop()},checkFullScreen:function(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement},toggleFullScreen:function(e){var i=document,a=i.documentElement,r=t.checkFullScreen();a&&e&&!r?a.requestFullscreen?a.requestFullscreen():a.msRequestFullscreen?a.msRequestFullscreen():a.mozRequestFullScreen?a.mozRequestFullScreen():a.webkitRequestFullscreen&&a.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT):r&&(i.exitFullscreen?i.exitFullscreen():i.msExitFullscreen?i.msExitFullscreen():i.mozCancelFullScreen?i.mozCancelFullScreen():i.webkitExitFullscreen&&i.webkitExitFullscreen())},moveArray:function(t,i,a,r){var n=e.extend(!0,[],t);if(r&&n.reverse(),a>=n.length)for(var o=a-n.length;o--+1;)n.push(void 0);return n.splice(a,0,n.splice(i,1)[0]),r&&n.reverse(),n},closeButton:function(e){return e=(t.isBs(5)?"btn-close":"close")+(e?" "+e:""),'<button type="button" class="'+e+'" aria-label="Close">\n'+(t.isBs(5)?"":'  <span aria-hidden="true">&times;</span>\n')+"</button>"},getRotation:function(e){switch(e){case 2:return"rotateY(180deg)";case 3:return"rotate(180deg)";case 4:return"rotate(180deg) rotateY(180deg)";case 5:return"rotate(270deg) rotateY(180deg)";case 6:return"rotate(90deg)";case 7:return"rotate(90deg) rotateY(180deg)";case 8:return"rotate(270deg)";default:return""}},setTransform:function(e,t){e&&(e.style.transform=t,e.style.webkitTransform=t,e.style["-moz-transform"]=t,e.style["-ms-transform"]=t,e.style["-o-transform"]=t)},getObjectKeys:function(t){var i=[];return t&&e.each(t,function(e){i.push(e)}),i},getObjectSize:function(e){return t.getObjectKeys(e).length},whenAll:function(i){var a,r,n,o,s,l,d=[].slice,c=1===arguments.length&&t.isArray(i)?i:d.call(arguments),u=e.Deferred(),p=0,f=c.length,m=f;for(n=o=s=Array(f),l=function(e,t,i){return function(){i!==c&&p++,u.notifyWith(t[e]=this,i[e]=d.call(arguments)),--m||u[(p?"reject":"resolve")+"With"](t,i)}},a=0;f>a;a++)(r=c[a])&&e.isFunction(r.promise)?r.promise().done(l(a,s,c)).fail(l(a,n,o)):(u.n
89otifyWith(this,r),--m);return m||u.resolveWith(s,c),u.promise()}},i=function(i,a){var r=this;r.$element=e(i),r.$parent=r.$element.parent(),r._validate()&&(r.isPreviewable=t.hasFileAPISupport(),r.isIE9=t.isIE(9),r.isIE10=t.isIE(10),(r.isPreviewable||r.isIE9)&&(r._init(a),r._listen()),r.$element.removeClass("file-loading"))},i.prototype={constructor:i,_cleanup:function(){var e=this;e.reader=null,e.clearFileStack(),e.fileBatchCompleted=!0,e.isError=!1,e.isDuplicateError=!1,e.isPersistentError=!1,e.cancelling=!1,e.paused=!1,e.lastProgress=0,e._initAjax()},_isAborted:function(){var e=this;return e.cancelling||e.paused},_initAjax:function(){var i=this,a=i.taskManager={pool:{},addPool:function(e){return a.pool[e]=new a.TasksPool(e)},getPool:function(e){return a.pool[e]},addTask:function(e,t){return new a.Task(e,t)},TasksPool:function(i){var r=this;r.id=i,r.cancelled=!1,r.cancelledDeferrer=e.Deferred(),r.tasks={},r.addTask=function(e,t){return r.tasks[e]=new a.Task(e,t)},r.size=function(){return t.getObjectSize(r.tasks)},r.run=function(i){var a,n,o,s=0,l=!1,d=t.getObjectKeys(r.tasks).map(function(e){return r.tasks[e]}),c=[],u=e.Deferred();if(r.cancelled)return r.cancelledDeferrer.resolve(),u.reject();if(!i){var p=t.getObjectKeys(r.tasks).map(function(e){return r.tasks[e].deferred});return t.whenAll(p).done(function(){var e=t.getArray(arguments);r.cancelled?(u.reject.apply(null,e),r.cancelledDeferrer.resolve()):(u.resolve.apply(null,e),r.cancelledDeferrer.reject())}).fail(function(){var e=t.getArray(arguments);u.reject.apply(null,e),r.cancelled?r.cancelledDeferrer.resolve():r.cancelledDeferrer.reject()}),e.each(r.tasks,function(e){a=r.tasks[e],a.run()}),u}for(n=function(t){e.when(t.deferred).fail(function(){l=!0,o.apply(null,arguments)}).always(o)},o=function(){var e=t.getArray(arguments);return u.notify(e),c.push(e),r.cancelled?(u.reject.apply(null,c),void r.cancelledDeferrer.resolve()):(c.length===r.size()&&(l?u.reject.apply(null,c):u.resolve.apply(null,c)),void(d.length&&(a=d.shift(),n(a),a.run())))};d.length&&s++<i;)a=d.shift(),n(a),a.run();return u},r.cancel=function(){return r.cancelled=!0,r.cancelledDeferrer}},Task:function(i,a){var r=this;r.id=i,r.deferred=e.Deferred(),r.logic=a,r.context=null,r.run=function(){var e=t.getArray(arguments);return e.unshift(r.deferred),a.apply(r.context,e),r.deferred},r.runWithContext=function(e){return r.context=e,r.run()}}};i.ajaxQueue=[],i.ajaxRequests=[],i.ajaxPool=null,i.ajaxAborted=!1},_init:function(i,a){var r,n,o,s,l=this,d=l.$element;l.options=i,l.zoomPlaceholder=t.getZoomPlaceholder(),l.canOrientImage=t.canOrientImage(d),e.each(i,function(e,i){switch(e){case"minFileCount":case"maxFileCount":case"maxTotalFileCount":case"minFileSize":case"maxFileSize":case"maxFilePreviewSize":case"resizeQuality":case"resizeIfSizeMoreThan":case"progressUploadThreshold":case"initialPreviewCount":case"zoomModalHeight":case"minImageHeight":case"maxImageHeight":case"minImageWidth":case"maxImageWidth":case"bytesToKB":l[e]=t.getNum(i);break;default:l[e]=i}}),(!l.bytesToKB||l.bytesToKB<=0)&&(l.bytesToKB=1024),void 0===l.errorCloseButton&&(l.errorCloseButton=t.closeButton("kv-error-close"+(t.isBs(5)?"  float-end":""))),l.maxTotalFileCount>0&&l.maxTotalFileCount<l.maxFileCount&&(l.maxTotalFileCount=l.maxFileCount),l.rtl&&(s=l.previewZoomButtonIcons.prev,l.previewZoomButtonIcons.prev=l.previewZoomButtonIcons.next,l.previewZoomButtonIcons.next=s),!isNaN(l.maxAjaxThreads)&&l.maxAjaxThreads<l.resumableUploadOptions.maxThreads&&(l.resumableUploadOptions.maxThreads=l.maxAjaxThreads),l._initFileManager(),"function"==typeof l.autoOrientImage&&(l.autoOrientImage=l.autoOrientImage()),"function"==typeof l.autoOrientImageInitial&&(l.autoOrientImageInitial=l.autoOrientImageInitial()),a||l._cleanup(),l.duplicateErrors=[],l.$form=d.closest("form"),l._initTemplateDefaults(),l.uploadFileAttr=t.isEmpty(d.attr("name"))?"file_data":d.attr("name"),o=l._getLayoutTemplate("progress"),l.progressTemplate=o.replace("{class}",l.progressClass),l.progressInfoTemplate=o.replace("{class}",l.progressInfoClass),l.progressPauseTemplate=o.replace("{class}",l.progressPauseClass),l.progressCompleteTemplate=o.replace("{class}",l.progressCompleteClass),l.progressErrorTemplate=o.replace("{class}",l.progressErrorClass),l.isDisabled=d.attr("disabled")||d.attr("readonly"),l.isDisabled&&d.attr("disabled",!0),l.isClickable=l.browseOnZoneClick&&l.showPreview&&(l.dropZoneEnabled||!t.isEmpty(l.defaultPreviewContent)),l.isAjaxUpload=t.hasFileUploadSupport()&&!t.isEmpty(l.uploadUrl),l.dropZoneEnabled=t.hasDragDropSupport()&&l.dropZoneEnabled,l.isAjaxUpload||
vendor: 24,166 bytes, lines 89-90
89(l.dropZoneEnabled=l.dropZoneEnabled&&t.canAssignFilesToInput()),l.slug="function"==typeof i.slugCallback?i.slugCallback:l._slugDefault,l.mainTemplate=l.showCaption?l._getLayoutTemplate("main1"):l._getLayoutTemplate("main2"),l.captionTemplate=l._getLayoutTemplate("caption"),l.previewGenericTemplate=l._getPreviewTemplate("generic"),!l.imageCanvas&&l.resizeImage&&(l.maxImageWidth||l.maxImageHeight)&&(l.imageCanvas=document.createElement("canvas"),l.imageCanvasContext=l.imageCanvas.getContext("2d")),t.isEmpty(d.attr("id"))&&d.attr("id",t.uniqId()),l.namespace=".fileinput_"+d.attr("id").replace(/-/g,"_"),void 0===l.$container?l.$container=l._createContainer():l._refreshContainer(),n=l.$container,l.$dropZone=n.find(".file-drop-zone"),l.$progress=n.find(".kv-upload-progress"),l.$btnUpload=n.find(".fileinput-upload"),l.$captionContainer=t.getElement(i,"elCaptionContainer",n.find(".file-caption")),l.$caption=t.getElement(i,"elCaptionText",n.find(".file-caption-name")),t.isEmpty(l.msgPlaceholder)||(r=d.attr("multiple")?l.filePlural:l.fileSingle,l.$caption.attr("placeholder",l.msgPlaceholder.replace("{files}",r))),l.$captionIcon=l.$captionContainer.find(".file-caption-icon"),l.$previewContainer=t.getElement(i,"elPreviewContainer",n.find(".file-preview")),l.$preview=t.getElement(i,"elPreviewImage",n.find(".file-preview-thumbnails")),l.$previewStatus=t.getElement(i,"elPreviewStatus",n.find(".file-preview-status")),l.$errorContainer=t.getElement(i,"elErrorContainer",l.$previewContainer.find(".kv-fileinput-error")),l._validateDisabled(),t.isEmpty(l.msgErrorClass)||t.addCss(l.$errorContainer,l.msgErrorClass),a?l._errorsExist()||l.$errorContainer.hide():(l._resetErrors(),l.$errorContainer.hide(),l.previewInitId="thumb-"+d.attr("id"),l._initPreviewCache(),l._initPreview(!0),l._initPreviewActions(),l.$parent.hasClass("file-loading")&&(l.$container.insertBefore(l.$parent),l.$parent.remove())),l._setFileDropZoneTitle(),d.attr("disabled")&&l.disable(),l._initZoom(),l.hideThumbnailContent&&t.addCss(l.$preview,"hide-content")},_initFileManager:function(){var i=this;i.uploadStartTime=t.now(),i.fileManager={stack:{},filesProcessed:[],errors:[],loadedImages:{},totalImages:0,totalFiles:null,totalSize:null,uploadedSize:0,stats:{},bpsLog:[],bps:0,initStats:function(e){var a={started:t.now()};e?i.fileManager.stats[e]=a:i.fileManager.stats=a},getUploadStats:function(e,a,r){var n,o=i.fileManager,s=e?o.stats[e]&&o.stats[e].started||t.now():i.uploadStartTime,l=(t.now()-s)/1e3,d=Math.ceil(l?a/l:0),c=r-a,u=o.bpsLog.length?i.bitrateUpdateDelay:0;return setTimeout(function(){var e,t,i,a=0,r=0;for(o.bpsLog.push(d),o.bpsLog.sort(function(e,t){return e-t}),t=o.bpsLog.length,i=t>10?t-10:Math.ceil(t/2),e=t;e>i;e--)r=parseFloat(o.bpsLog[e]),a++;o.bps=64*(a>0?r/a:0)},u),n={fileId:e,started:s,elapsed:l,loaded:a,total:r,bps:o.bps,bitrate:i._getSize(o.bps,!1,i.bitRateUnits),pendingBytes:c},e?o.stats[e]=n:o.stats=n,n},exists:function(t){return-1!==e.inArray(t,i.fileManager.getIdList())},count:function(){return i.fileManager.getIdList().length},total:function(){var e=i.fileManager;return e.totalFiles||(e.totalFiles=e.count()),e.totalFiles},getTotalSize:function(){var t=i.fileManager;return t.totalSize?t.totalSize:(t.totalSize=0,e.each(i.getFileStack(),function(e,i){var a=parseFloat(i.size);t.totalSize+=isNaN(a)?0:a}),t.totalSize)},add:function(e,a){a||(a=i.fileManager.getId(e)),a&&(i.fileManager.stack[a]={file:e,name:t.getFileName(e),relativePath:t.getFileRelativePath(e),size:e.size,nameFmt:i._getFileName(e,""),sizeFmt:i._getSize(e.size)})},remove:function(e){var t=i._getThumbFileId(e);i.fileManager.removeFile(t)},removeFile:function(e){var t=i.fileManager;e&&(delete t.stack[e],delete t.loadedImages[e])},move:function(t,a){var r={},n=i.fileManager.stack;(t||a)&&t!==a&&(e.each(n,function(e,i){e!==t&&(r[e]=i),e===a&&(r[t]=n[t])}),i.fileManager.stack=r)},list:function(){var t=[];return e.each(i.getFileStack(),function(e,i){i&&i.file&&t.push(i.file)}),t},isPending:function(t){return-1===e.inArray(t,i.fileManager.filesProcessed)&&i.fileManager.exists(t)},isProcessed:function(){var t=!0,a=i.fileManager;return e.each(i.getFileStack(),function(e){a.isPending(e)&&(t=!1)}),t},clear:function(){var e=i.fileManager;i.isDuplicateError=!1,i.isPersistentError=!1,e.totalFiles=null,e.totalSize=null,e.uploadedSize=0,e.stack={},e.errors=[],e.filesProcessed=[],e.stats={},e.bpsLog=[],e.bps=0,e.clearImages()},clearImages:function(){i.fileManager.loadedImages={},i.fileManager.totalImages=0},addImage:function(e,t){i.fileManager.loadedImages[e]=t},removeImage:function(e){delete i.fileManager.loadedImages[e]},getImageIdList:function(){return t.getObjectKeys(i.fileManager.loadedImages)},getImageCount:function(){return i.fileManager.getImageIdList().length},getId:function(e){return i._getFileId(e)},getIndex:function(e){return i.fileManager.getIdList().indexOf(e)},getThumb:function(t){var a=null;return i._getThumbs().each(function(){var r=e(this);i._getThumbFileId(r)===t&&(a=r)}),a},getThumbIndex:function(e){var t=i._getThumbFileId(e);return i.fileManager.getIndex(t)},getIdList:function(){return t.getObjectKeys(i.fileManager.stack)},getFile:function(e){return i.fileManager.stack[e]||null},getFileName:function(e,t){var a=i.fileManager.getFile(e);return a?t?a.nameFmt||"":a.name||"":""},getFirstFile:function(){var e=i.fileManager.getIdList(),t=e&&e.length?e[0]:null;return i.fileManager.getFile(t)},setFile:function(e,t){i.fileManager.getFile(e)?i.fileManager.stack[e].file=t:i.fileManager.add(t,e)},setProcessed:function(e){i.fileManager.filesProcessed.push(e)},getProgress:function(){var e=i.fileManager.total(),t=i.fileManager.filesProcessed.length;return e?Math.ceil(t/e*100):0},setProgress:function(e,t){var a=i.fileManager.getFile(e);!isNaN(t)&&a&&(a.progress=t)}}},_setUploadData:function(i,a){var r=this;e.each(a,function(e,a){var n=r.uploadParamNames[e]||e;t.isArray(a)?i.append(n,a[0],a[1]):i.append(n,a)})},_initResumableUpload:function(){var i,a=this,r=a.resumableUploadOptions,n=t.logMessages,o=a.fileManager;if(a.enableResumableUpload){if(r.fallback!==!1&&"function"!=typeof r.fallback&&(r.fallback=function(e){e._log(n.noResumableSupport),e.enableResumableUpload=!1}),!t.hasResumableUploadSupport()&&r.fallback!==!1)return void r.fallback(a);if(!a.uploadUrl&&a.enableResumableUpload)return a._log(n.noUploadUrl),void(a.enableResumableUpload=!1);if(r.chunkSize=parseFloat(r.chunkSize),r.chunkSize<=0||isNaN(r.chunkSize))return a._log(n.invalidChunkSize,{chunkSize:r.chunkSize}),void(a.enableResumableUpload=!1);i=a.resumableManager={init:function(e,t,n){i.logs=[],i.stack=[],i.error="",i.id=e,i.file=t.file,i.fileName=t.name,i.fileIndex=n,i.completed=!1,i.lastProgress=0,a.showPreview&&(i.$thumb=o.getThumb(e)||null,i.$progress=i.$btnDelete=null,i.$thumb&&i.$thumb.length&&(i.$progress=i.$thumb.find(".file-thumb-progress"),i.$btnDelete=i.$thumb.find(".kv-file-remove"))),i.chunkSize=r.chunkSize*a.bytesToKB,i.chunkCount=i.getTotalChunks()},setAjaxError:function(e,t,o,s){e.responseJSON&&e.responseJSON.error&&(o=e.responseJSON.error.toString()),s||(i.error=o),r.showErrorLog&&a._log(n.ajaxError,{status:e.status,error:o,text:e.responseText||""})},reset:function(){i.stack=[],i.chunksProcessed={}},setProcessed:function(t){var n,s,l=i.id,d=i.$thumb,c=i.$progress,u=d&&d.length,p={id:u?d.attr("id"):"",index:o.getIndex(l),fileId:l},f=a.resumableUploadOptions.skipErrorsAndProceed;i.completed=!0,i.lastProgress=0,u&&d.removeClass("file-uploading"),"success"===t?(o.uploadedSize+=i.file.size,a.showPreview&&(a._setProgress(101,c),a._setThumbStatus(d,"Success"),a._initUploadSuccess(i.chunksProcessed[l].data,d)),o.removeFile(l),delete i.chunksProcessed[l],a._raise("fileuploaded",[p.id,p.index,p.fileId]),o.isProcessed()&&a._setProgress(101)):"cancel"!==t&&(a.showPreview&&(a._setThumbStatus(d,"Error"),a._setPreviewError(d,!0),a._setProgress(101,c,a.msgProgressError),a._setProgress(101,a.$progress,a.msgProgressError),a.cancelling=!f),a.$errorContainer.find('li[data-file-id="'+p.fileId+'"]').length||(s={file:i.fileName,max:r.maxRetries,error:i.error},n=a.msgResumableUploadRetriesExceeded.setTokens(s),e.extend(p,s),a._showFileError(n,p,"filemaxretries"),f&&(o.removeFile(l),delete i.chunksProcessed[l],o.isProcessed()&&a._setProgress(101)))),o.isProcessed()&&i.reset()},check:function(){var t=!0;e.each(i.logs,function(e,i){return i?void 0:(t=!1,!1)})},processedResumables:function(){var e,t=i.logs,a=0;if(!t||!t.length)return 0;for(e=0;e<t.length;e++)t[e]===!0&&a++;return a},getUploadedSize:function(){var e=i.processedResumables()*i.chunkSize;return e>i.file.size?i.file.size:e},getTotalChunks:function(){var e=parseFloat(i.chunkSize);return!isNaN(e)&&e>0?Math.ceil(i.file.size/e):0},getProgress:function(){var e=i.processedResumables(),t=i.chunkCount;return 0===t?0:Math.ceil(e/t*100)},checkAborted:function(e){a._isAborted()&&(clearInterval(e),a.unlock())},upload:function(){var e,r=o.getIdList(),n="new";e=setInterval(function(){var s;if(i.checkAborted(e),"new"===n&&(a.lock(),n="processing",s=r.shift(),o.initStats(s),o.stack[s]&&(i.init(s,o.stack[s],o.getIndex(s)),i.processUpload())),!o.isPending(s)&&i.completed&&(n="new"),o.isProcessed()){var l=a.$preview.find(".file-preview-initial");l.length&&(t.addCss(l,t.SORT_CSS),a._initSortable()),clearInterval(e),a._clearFileInput(),a.unlock(),setTimeout(function(){var e=a.previewCache.data;e&&(a.initialPreview=e.content,a.initialPreviewConfig=e.config,a.initialPreviewThumbTags=e.tags),a._raise("filebatchuploadcomplete",[a.initialPreview,a.initialPreviewConfig,a.initialPreviewThumbTags,a._getExtraData()])},a.processDelay)}},a.processDelay)},uploadResumable:function(){var e,t,n=a.taskManager,o=i.chunkCount;for(t=n.addPool(i.id),e=0;o>e;e++)i.logs[e]=!(!i.chunksProcessed[i.id]||!i.chunksProcessed[i.id][e]),i.logs[e]||i.pushAjax(e,0);t.run(r.maxThreads).done(function(){i.setProcessed("success")}).fail(function(){i.setProcessed(t.cancelled?"cancel":"error")})},processUpload:function(){var n,s,l,d,c,u,p,f=i.id;return r.testUrl?(n=new FormData,s=o.stack[f],a._setUploadData(n,{fileId:f,fileName:s.fileName,fileSize:s.size,fileRelativePath:s.relativePath,chunkSize:i.chunkSize,chunkCount:i.chunkCount}),l=function(e){p=a._getOutData(n,e),a._raise("filetestbeforesend",[f,o,i,p])},d=function(r,s,l){p=a._getOutData(n,l,r);var d=a.uploadParamNames,c=d.chunksUploaded||"chunksUploaded",u=[f,o,i,p];r[c]&&t.isArray(r[c])?(i.chunksProcessed[f]||(i.chunksProcessed[f]={}),e.each(r[c],function(e,t){i.logs[t]=!0,i.chunksProcessed[f][t]=!0}),i.chunksProcessed[f].data=r,a._raise("filetestsuccess",u)):a._raise("filetesterror",u),i.uploadResumable()},c=function(e,t,r){p=a._getOutData(n,e),a._raise("filetestajaxerror",[f,o,i,p]),i.setAjaxError(e,t,r,!0),i.uploadResumable()},u=function(){a._raise("filetestcomplete",[f,o,i,a._getOutData(n)])},void a._ajaxSubmit(l,d,u,c,n,f,i.fileIndex,r.testUrl)):void i.uploadResumable()},pushAjax:function(e,t){var r=a.taskManager,o=r.getPool(i.id);o.addTask(o.size()+1,function(e){var t,r=i.stack.shift();t=r[0],i.chunksProcessed[i.id]&&i.chunksProcessed[i.id][t]?a._log(n.chunkQueueError,{index:t}):i.sendAjax(t,r[1],e)}),i.stack.push([e,t])},sendAjax:function(e,s,l){var d,c=i.chunkSize,u=i.id,p=i.file,f=i.$thumb,m=t.logMessages,g=i.$btnDelete,h=function(e,t){t&&(e=e.setTokens(t)),e=m.resumableRequestError.setTokens({msg:e}),a._log(e),l.reject(e)};if(!i.chunksProcessed[u]||!i.chunksProcessed[u][e]){if(s>r.maxRetries)return h(m.resumableMaxRetriesReached,{n:r.maxRetries}),void i.setProcessed("error");var v,w,b,_,C,x,y=p.slice?"slice":p.mozSlice?"mozSlice":p.webkitSlice?"webkitSlice":"slice",T=p[y](c*e,c*(e+1));v=new FormData,d=o.stack[u],a._setUploadData(v,{chunkCount:i.chunkCount,chunkIndex:e,chunkSize:c,chunkSizeStart:c*e,fileBlob:[T,i.fileName],fileId:u,fileName:i.fileName,fileRelativePath:d.relativePath,fileSize:p.size,retryCount:s}),i.$progress&&i.$progress.length&&i.$progress.show(),b=function(r){w=a._getOutData(v,r),a.showPreview&&(f.hasClass("file-preview-success")||(a._setThumbStatus(f,"Loading"),t.addCss(f,"file-uploading")),g.attr("disabled",!0)),a._raise("filechunkbeforesend",[u,e,s,o,i,w])},_=function(t,d,c){if(a._isAborted())return void h(m.resumableAborting);w=a._getOutData(v,c,t);var p=a.uploadParamNames,f=p.chunkIndex||"chunkIndex",g=[u,e,s,o,i,w];t.error?(r.showErrorLog&&a._log(n.retryStatus,{retry:s+1,filename:i.fileName,chunk:e}),a._raise("filechunkerror",g),i.pushAjax(e,s+1),i.error=t.error,h(t.error)):(i.logs[t[f]]=!0,i.chunksProcessed[u]||(i.chunksProcessed[u]={}),i.chunksProcessed[u][t[f]]=!0,i.chunksProcessed[u].data=t,l.resolve.call(null,t),a._raise("filechunksuccess",g),i.check())},C=function(t,r,n){return a._isAborted()?void h(m.resumableAborting):(w=a._getOutData(v,t),i.setAjaxError(t,r,n),a._raise("filechunkajaxerror",[u,e,s,o,i,w]),i.pushAjax(e,s+1),void h(m.resumableRetryError,{n:s-1}))},x=function(){a._isAborted()||a._raise("filechunkcomplete",[u,e,s,o,i,a._getOutData(v)])},a._ajaxSubmit(b,_,x,C,v,u,i.fileIndex)}}},i.reset()}},_initTemplateDefaults:function(){var i,a,r,n,o,s,l,d,c,u,p,f,m,g,h,v,w,b,_,C,x,y,T,P,k,F,S,E,I,A,D,z,j,$,U,M,R,B,O,L,N,Z,H,W=this,q=function(e,i){return'<object class="kv-preview-data file-preview-'+e+'" title="{caption}" data="{data}" type="'+i+'"'+B+">\n"+t.DEFAULT_PREVIEW+"\n</object>\n"},V="btn btn-sm btn-kv "+t.defaultButtonCss();i='{preview}\n<div class="kv-upload-progress kv-hidden"></div><div class="clearfix"></div>\n<div class="file-caption {class}">\n  <div class="input-group {inputGroupClass}">\n      {caption}\n<span class="file-caption-icon"></span>\n'+(t.isBs(5)?"":'<div class="input-group-btn input-group-append">\n')+"      {remove}\n      {cancel}\n      {pause}\n      {upload}\n      {browse}\n"+(t.isBs(5)?"":"    </div>\n")+"  </div>",a='{preview}\n<div class="kv-upload-progress kv-hidden"></div>\n<div class="clearfix"></div>\n<span class="{class}">{remove}\n{cancel}\n{upload}\n{browse}\n</span>',r='<div class="file-preview {class}">\n  {close}  <div class="{dropClass} clearfix">\n    <div class="file-preview-thumbnails clearfix">\n    </div>\n    <div class="file-preview-status text-center text-success"></div>\n    <div class="kv-fileinput-error"></div>\n  </div>\n</div>',o=t.closeButton("fileinput-remove"),n='<i class="bi-file-earmark-arrow-up"></i>',s='<input readonly class="file-caption-name form-control {class}">\n',
90l='<button type="{type}" title="{title}" class="{css}" {status} {tabIndexConfig}>{icon} {label}</button>',d='<a href="{href}" title="{title}" class="{css}" {status} {tabIndexConfig}>{icon} {label}</a>',c='<div class="{css}" {status} {tabIndexConfig}>{icon} {label}</div>',Z=t.MODAL_ID+"Label",u='<div id="'+t.MODAL_ID+'" class="file-zoom-dialog modal fade" aria-labelledby="'+Z+'" {tabIndexConfig}></div>',p='<div class="modal-dialog modal-lg{rtl}" role="document">\n  <div class="modal-content">\n    <div class="modal-header kv-zoom-header">\n      <h6 class="modal-title kv-zoom-title" id="'+Z+'"><span class="kv-zoom-caption"></span> <span class="kv-zoom-size"></span></h6>\n      <div class="kv-zoom-actions">{toggleheader}{fullscreen}{borderless}{close}</div>\n    </div>\n    <div class="floating-buttons"></div>\n    <div class="kv-zoom-body file-zoom-content {zoomFrameClass}"></div>\n{prev} {next}\n    <div class="kv-zoom-description"></div>\n  </div>\n</div>\n',H='<button type="button" class="kv-desc-hide" aria-label="Close">{closeIcon}</button>',f='<div class="progress">\n    <div class="{class}" role="progressbar" aria-valuenow="{percent}" aria-valuemin="0" aria-valuemax="100" style="width:{percent}%;">\n        {status}\n     </div>\n</div>{stats}',N='<div class="text-primary file-upload-stats"><span class="pending-time">{pendingTime}</span> <span class="upload-speed">{uploadSpeed}</span></div>',m=" <samp>({sizeText})</samp>",g='<div class="file-thumbnail-footer">\n    <div class="file-footer-caption" title="{caption}">\n        <div class="file-caption-info">{caption}</div>\n        <div class="file-size-info">{size}</div>\n    </div>\n    {progress}\n{indicator}\n{actions}\n</div>',h='<div class="file-actions">\n    <div class="file-footer-buttons">\n        {download} {upload} {delete} {zoom} {other}    </div>\n</div>\n{drag}\n<div class="clearfix"></div>',v='<button type="button" class="kv-file-remove {removeClass}" title="{removeTitle}" {dataUrl}{dataKey}>{removeIcon}</button>\n',w='<button type="button" class="kv-file-upload {uploadClass}" title="{uploadTitle}">{uploadIcon}</button>',b='<a class="kv-file-download {downloadClass}" title="{downloadTitle}" href="{downloadUrl}" download="{caption}" target="_blank">{downloadIcon}</a>',_='<button type="button" class="kv-file-zoom {zoomClass}" title="{zoomTitle}">{zoomIcon}</button>',C='<span class="file-drag-handle {dragClass}" title="{dragTitle}">{dragIcon}</span>',x='<div class="file-upload-indicator" title="{indicatorTitle}">{indicator}</div>',y='<div class="file-preview-frame {frameClass}" id="{previewId}" data-fileindex="{fileindex}" data-fileid="{fileid}" data-template="{template}" data-zoom="{zoomData}"',T=y+'><div class="kv-file-content">\n',P=y+' title="{caption}"><div class="kv-file-content">\n',k="</div>{footer}\n{zoomCache}</div>\n",F="{content}\n",B=" {style}",S=q("html","text/html"),I=q("text","text/plain;charset=UTF-8"),M=q("pdf","application/pdf"),E='<img src="{data}" class="file-preview-image kv-preview-data" title="{title}" alt="{alt}"'+B+">\n",A='<iframe class="kv-preview-data file-preview-office" src="https://view.officeapps.live.com/op/embed.aspx?src={data}"'+B+"></iframe>",D='<iframe class="kv-preview-data file-preview-gdocs" src="https://docs.google.com/gview?url={data}&embedded=true"'+B+"></iframe>",z='<video class="kv-preview-data file-preview-video" controls'+B+'>\n<source src="{data}" type="{type}">\n'+t.DEFAULT_PREVIEW+"\n</video>\n",j='<!--suppress ALL --><audio class="kv-preview-data file-preview-audio" controls'+B+'>\n<source src="{data}" type="{type}">\n'+t.DEFAULT_PREVIEW+"\n</audio>\n",$='<embed class="kv-preview-data file-preview-flash" src="{data}" type="application/x-shockwave-flash"'+B+">\n",U='<object class="kv-preview-data file-preview-object file-object {typeCss}" data="{data}" type="{type}"'+B+'>\n<param name="movie" value="{caption}" />\n'+t.OBJECT_PARAMS+" "+t.DEFAULT_PREVIEW+"\n</object>\n",R='<div class="kv-preview-data file-preview-other-frame"'+B+">\n"+t.DEFAULT_PREVIEW+"\n</div>\n",O='<div class="kv-zoom-cache">{zoomContent}</div>',L={width:"100%",height:"100%","min-height":"480px"},W._isPdfRendered()&&(M=W.pdfRendererTemplate.replace("{renderer}",W._encodeURI(W.pdfRendererUrl))),W.defaults={layoutTemplates:{main1:i,main2:a,preview:r,close:o,fileIcon:n,caption:s,modalMain:u,modal:p,descriptionClose:H,progress:f,stats:N,size:m,footer:g,indicator:x,actions:h,actionDelete:v,actionUpload:w,actionDownload:b,actionZoom:_,actionDrag:C,btnDefault:l,btnLink:d,btnBrowse:c,zoomCache:O},previewMarkupTags:{tagBefore1:T,tagBefore2:P,tagAfter:k},previewContentTemplates:{generic:F,html:S,image:E,text:I,office:A,gdocs:D,video:z,audio:j,flash:$,object:U,pdf:M,other:R},allowedPreviewTypes:["image","html","text","video","audio","flash","pdf","object"],previewTemplates:{},previewSettings:{image:{width:"auto",height:"auto","max-width":"100%","max-height":"100%"},html:{width:"213px",height:"160px"},text:{width:"213px",height:"160px"},office:{width:"213px",height:"160px"},gdocs:{width:"213px",height:"160px"},video:{width:"213px",height:"160px"},audio:{width:"100%",height:"30px"},flash:{width:"213px",height:"160px"},object:{width:"213px",height:"160px"},pdf:{width:"100%",height:"160px",position:"relative"},other:{width:"213px",height:"160px"}},previewSettingsSmall:{image:{width:"auto",height:"auto","max-width":"100%","max-height":"100%"},html:{width:"100%",height:"160px"},text:{width:"100%",height:"160px"},office:{width:"100%",height:"160px"},gdocs:{width:"100%",height:"160px"},video:{width:"100%",height:"auto"},audio:{width:"100%",height:"30px"},flash:{width:"100%",height:"auto"},object:{width:"100%",height:"auto"},pdf:{width:"100%",height:"160px"},other:{width:"100%",height:"160px"}},previewZoomSettings:{image:{width:"auto",height:"auto","max-width":"100%","max-height":"100%"},html:L,text:L,office:{width:"100%",height:"100%","max-width":"100%","min-height":"480px"},gdocs:{width:"100%",height:"100%","max-width":"100%","min-height":"480px"},video:{width:"auto",height:"100%","max-width":"100%"},audio:{width:"100%",height:"30px"},flash:{width:"auto",height:"480px"},object:{width:"auto",height:"100%","max-width":"100%","min-height":"480px"},pdf:L,other:{width:"auto",height:"100%","min-height":"480px"}},mimeTypeAliases:{"video/quicktime":"video/mp4"},fileTypeSettings:{image:function(e,i){return t.compare(e,"image.*")&&!t.compare(e,/(tiff?|wmf)$/i)||t.compare(i,/\.(gif|png|jpe?g)$/i)},html:function(e,i){return t.compare(e,"text/html")||t.compare(i,/\.(htm|html)$/i)},office:function(e,i){return t.compare(e,/(word|excel|powerpoint|office)$/i)||t.compare(i,/\.(docx?|xlsx?|pptx?|pps|potx?)$/i)},gdocs:function(e,i){return t.compare(e,/(word|excel|powerpoint|office|iwork-pages|tiff?)$/i)||t.compare(i,/\.(docx?|xlsx?|pptx?|pps|potx?|rtf|ods|odt|pages|ai|dxf|ttf|tiff?|wmf|e?ps)$/i)},text:function(e,i){return t.compare(e,"text.*")||t.compare(i,/\.(xml|javascript)$/i)||t.compare(i,/\.(txt|md|nfo|ini|json|php|js|css)$/i)},video:function(e,i){return t.compare(e,"video.*")&&(t.compare(e,/(ogg|mp4|mp?g|mov|webm|3gp)$/i)||t.compare(i,/\.(og?|mp4|webm|mp?g|mov|3gp)$/i))},audio:function(e,i){return t.compare(e,"audio.*")&&(t.compare(i,/(ogg|mp3|mp?g|wav)$/i)||t.compare(i,/\.(og?|mp3|mp?g|wav)$/i))},flash:function(e,i){return t.compare(e,"application/x-shockwave-flash",!0)||t.compare(i,/\.(swf)$/i)},pdf:function(e,i){return t.compare(e,"application/pdf",!0)||t.compare(i,/\.(pdf)$/i)},object:function(){return!0},other:function(){return!0}},fileActionSettings:{showRemove:!0,showUpload:!0,showDownload:!0,showZoom:!0,showDrag:!0,removeIcon:'<i class="bi-trash"></i>',removeClass:V,removeErrorClass:"btn btn-sm btn-kv btn-danger",removeTitle:"Remove file",uploadIcon:'<i class="bi-upload"></i>',uploadClass:V,uploadTitle:"Upload file",uploadRetryIcon:'<i class="bi-arrow-clockwise"></i>',uploadRetryTitle:"Retry upload",downloadIcon:'<i class="bi-download"></i>',downloadClass:V,downloadTitle:"Download file",zoomIcon:'<i class="bi-zoom-in"></i>',zoomClass:V,zoomTitle:"View Details",dragIcon:'<i class="bi-arrows-move"></i>',dragClass:"text-primary",dragTitle:"Move / Rearrange",dragSettings:{},indicatorNew:'<i class="bi-plus-lg text-warning"></i>',indicatorSuccess:'<i class="bi-check-lg text-success"></i>',indicatorError:'<i class="bi-exclamation-lg text-danger"></i>',indicatorLoading:'<i class="bi-hourglass-bottom text-muted"></i>',indicatorPaused:'<i class="bi-pause-fill text-primary"></i>',indicatorNewTitle:"Not uploaded yet",indicatorSuccessTitle:"Uploaded",indicatorErrorTitle:"Upload Error",indicatorLoadingTitle:"Uploading &hellip;",indicatorPausedTitle:"Upload Paused"}},e.each(W.defaults,function(t,i){return"allowedPreviewTypes"===t?void(void 0===W.allowedPreviewTypes&&(W.allowedPreviewTypes=i)):void(W[t]=e.extend(!0,{},i,W[t]))}),W._initPreviewTemplates()},_initPreviewTemplates:function(){var i,a=this,r=a.previewMarkupTags,n=r.tagAfter;e.each(a.previewContentTemplates,function(e,o){t.isEmpty(a.previewTemplates[e])&&(i=r.tagBefore2,"generic"!==e&&"image"!==e||(i=r.tagBefore1),a._isPdfRendered()&&"pdf"===e&&(i=i.replace("kv-file-content","kv-file-content kv-pdf-rendered")),a.previewTemplates[e]=i+o+n)})},_initPreviewCache:function(){var i=this;i.previewCache={data:{},init:function(){var e=i.initialPreview;e.length>0&&!t.isArray(e)&&(e=e.split(i.initialPreviewDelimiter)),i.previewCache.data={content:e,config:i.initialPreviewConfig,tags:i.initialPreviewThumbTags}},count:function(e){if(!i.previewCache.data||!i.previewCache.data.content)return 0;if(e){var t=i.previewCache.data.content.filter(function(e){return null!==e});return t.length}return i.previewCache.data.content.length},get:function(e,a){var r,n,o,s,l,d,c,u=t.INIT_FLAG+e,p=i.previewCache.data,f=p.c
90onfig[e],m=p.content[e],g=t.ifSet("previewAsData",f,i.initialPreviewAsData),h=f?{title:f.title||null,alt:f.alt||null}:{title:null,alt:null},v=function(e,a,r,n,o,s,l,d){var c=" file-preview-initial "+t.SORT_CSS+(l?" "+l:""),u=i.previewInitId+"-"+s,p=f&&f.fileId||u;return i._generatePreviewTemplate(e,a,r,n,u,p,!1,null,c,o,s,d,h,f&&f.zoomData||a)};return m&&m.length?(a=void 0===a?!0:a,o=t.ifSet("type",f,i.initialPreviewFileType||"generic"),l=t.ifSet("filename",f,t.ifSet("caption",f)),d=t.ifSet("filetype",f,o),s=i.previewCache.footer(e,a,f&&f.size||null),c=t.ifSet("frameClass",f),r=g?v(o,m,l,d,s,u,c):v("generic",m,l,d,s,u,c,o).setTokens({content:p.content[e]}),p.tags.length&&p.tags[e]&&(r=t.replaceTags(r,p.tags[e])),t.isEmpty(f)||t.isEmpty(f.frameAttr)||(n=t.createElement(r),n.find(".file-preview-initial").attr(f.frameAttr),r=n.html(),n.remove()),r):""},clean:function(e){e.content=t.cleanArray(e.content),e.config=t.cleanArray(e.config),e.tags=t.cleanArray(e.tags),i.previewCache.data=e},add:function(e,a,r,n){var o,s=i.previewCache.data;return e&&e.length?(o=e.length-1,t.isArray(e)||(e=e.split(i.initialPreviewDelimiter)),n&&s.content?(o=s.content.push(e[0])-1,s.config[o]=a,s.tags[o]=r):(s.content=e,s.config=a,s.tags=r),i.previewCache.clean(s),o):0},set:function(e,a,r,n){var o,s,l=i.previewCache.data;if(e&&e.length&&(t.isArray(e)||(e=e.split(i.initialPreviewDelimiter)),s=e.filter(function(e){return null!==e}),s.length)){if(void 0===l.content&&(l.content=[]),void 0===l.config&&(l.config=[]),void 0===l.tags&&(l.tags=[]),n){for(o=0;o<e.length;o++)e[o]&&l.content.push(e[o]);for(o=0;o<a.length;o++)a[o]&&l.config.push(a[o]);for(o=0;o<r.length;o++)r[o]&&l.tags.push(r[o])}else l.content=e,l.config=a,l.tags=r;i.previewCache.clean(l)}},unset:function(a){var r=i.previewCache.count(),n=i.reversePreviewOrder;if(r){if(1===r)return i.previewCache.data.content=[],i.previewCache.data.config=[],i.previewCache.data.tags=[],i.initialPreview=[],i.initialPreviewConfig=[],void(i.initialPreviewThumbTags=[]);i.previewCache.data.content=t.spliceArray(i.previewCache.data.content,a,n),i.previewCache.data.config=t.spliceArray(i.previewCache.data.config,a,n),i.previewCache.data.tags=t.spliceArray(i.previewCache.data.tags,a,n);var o=e.extend(!0,{},i.previewCache.data);i.previewCache.clean(o)}},out:function(){var e,t,a,r="",n=i.previewCache.count();if(0===n)return{content:"",caption:""};for(t=0;n>t;t++)a=i.previewCache.get(t),r=i.reversePreviewOrder?a+r:r+a;return e=i._getMsgSelected(n),{content:r,caption:e}},footer:function(e,a,r){var n=i.previewCache.data||{};if(t.isEmpty(n.content))return"";(t.isEmpty(n.config)||t.isEmpty(n.config[e]))&&(n.config[e]={}),a=void 0===a?!0:a;var o,s=n.config[e],l=t.ifSet("caption",s),d=t.ifSet("width",s,"auto"),c=t.ifSet("url",s,!1),u=t.ifSet("key",s,null),p=t.ifSet("fileId",s,null),f=i.fileActionSettings,m=i.initialPreviewShowDelete||!1,g=i.initialPreviewDownloadUrl?i.initialPreviewDownloadUrl+"?key="+u+(p?"&fileId="+p:""):"",h=s.downloadUrl||g,v=s.filename||s.caption||"",w=!!h,b=t.ifSet("showRemove",s,m),_=t.ifSet("showDownload",s,t.ifSet("showDownload",f,w)),C=t.ifSet("showZoom",s,t.ifSet("showZoom",f,!0)),x=t.ifSet("showDrag",s,t.ifSet("showDrag",f,!0)),y=c===!1&&a;return _=_&&s.downloadUrl!==!1&&!!h,o=i._renderFileActions(s,!1,_,b,C,x,y,c,u,!0,h,v),i._getLayoutTemplate("footer").setTokens({progress:i._renderThumbProgress(),actions:o,caption:l,size:i._getSize(r),width:d,indicator:""})}},i.previewCache.init()},_isPdfRendered:function(){var e=this,t=e.usePdfRenderer,i="function"==typeof t?t():!!t;return i&&e.pdfRendererUrl},_handler:function(e,t,i){var a=this,r=a.namespace,n=t.split(" ").join(r+" ")+r;e&&e.length&&e.off(n).on(n,i)},_encodeURI:function(e){var t=this;return t.encodeUrl?encodeURI(e):e},_log:function(e,t){var i=this,a=i.$element.attr("id");i.showConsoleLogs&&(a&&(e='"'+a+'": '+e),e="bootstrap-fileinput: "+e,"object"==typeof t&&(e=e.setTokens(t)),window.console&&"undefined"!=typeof window.console.log?window.console.log(e):window.alert(e))},_validate:function(){var e=this,i="file"===e.$element.attr("type");return i||e._log(t.logMessages.badInputType),i},_errorsExist:function(){var i,a=this,r=a.$errorContainer.find("li");return r.length?!0:(i=t.createElement(a.$errorContainer.html()),i.find(".kv-error-close").remove(),i.find("ul").remove(),!!e.trim(i.text()).length)},_errorHandler:function(e,t){var i=this,a=e.target.error,r=function(e){i._showError(e.replace("{name}",t))};r(a.code===a.NOT_FOUND_ERR?i.msgFileNotFound:a.code===a.SECURITY_ERR?i.msgFileSecured:a.code===a.NOT_READABLE_ERR?i.msgFileNotReadable:a.code===a.ABORT_ERR?i.msgFilePreviewAborted:i.msgFilePreviewError)},_addError:function(e){var i=this,a=i.$errorContainer;e&&a.length&&(t.setHtml(a,i.errorCloseButton+e),i._handler(a.find(".kv-error-close"),"click",function(){setTimeout(function(){i.showPreview&&!i.getFrames().length&&i.clear(),a.fadeOut("slow")},i.processDelay)}))},_setValidationError:function(e){var i=this;e=(e?e+" ":"")+"has-error",i.$container.removeClass(e).addClass("has-error"),t.addCss(i.$caption,"is-invalid")},_resetErrors:function(e){var t=this,i=t.$errorContainer,a=t.resumableUploadOptions.retainErrorHistory;t.isPersistentError||t.enableResumableUpload&&a||(t.isError=!1,t.$container.removeClass("has-error"),t.$caption.removeClass("is-invalid is-valid file-processing"),i.html(""),e?i.fadeOut("slow"):i.hide())},_showFolderError:function(e){var t,i=this,a=i.$errorContainer;e&&(i.isAjaxUpload||i._clearFileInput(),t=i.msgFoldersNotAllowed.replace("{n}",e),i._addError(t),i._setValidationError(),a.fadeIn(i.fadeDelay),i._raise("filefoldererror",[e,t]))},_showFileError:function(e,t,i){var a=this,r=a.$errorContainer,n=i||"fileuploaderror",o=t&&t.fileId||"",s=t&&t.id?'<li data-thumb-id="'+t.id+'" data-file-id="'+o+'">'+e+"</li>":"<li>"+e+"</li>";return 0===r.find("ul").length?a._addError("<ul>"+s+"</ul>"):r.find("ul").append(s),r.fadeIn(a.fadeDelay),a._raise(n,[t,e]),a._setValidationError("file-input-new"),!0},_showError:function(e,t,i){var a=this,r=a.$errorContainer,n=i||"fileerror";return t=t||{},t.reader=a.reader,a._addError(e),r.fadeIn(a.fadeDelay),a._raise(n,[t,e]),a.isAjaxUpload||a._clearFileInput(),a._setValidationError("file-input-new"),a.$btnUpload.attr("disabled",!0),!0},_noFilesError:function(e){var t=this,i=t.minFileCount>1?t.filePlural:t.fileSingle,a=t.msgFilesTooLess.replace("{n}",t.minFileCount).replace("{files}",i),r=t.$errorContainer;a="<li>"+a+"</li>",0===r.find("ul").length?t._addError("<ul>"+a+"</ul>"):r.find("ul").append(a),t.isError=!0,t._updateFileDetails(0),r.fadeIn(t.fadeDelay),t._raise("fileerror",[e,a]),t._clearFileInput(),t._setValidationError()},_parseError:function(t,i,a,r){var n,o,s,l=this,d=e.trim(a+"");return o=i.responseJSON&&i.responseJSON.error?i.responseJSON.error.toString():"",s=o?o:i.responseText,l.cancelling&&l.msgUploadAborted&&(d=l.msgUploadAborted),l.showAjaxErrorDetails&&s&&(o?d=e.trim(o+""):(s=e.trim(s.replace(/\n\s*\n/g,"\n")),n=s.length?"<pre>"+s+"</pre>":"",d+=d?n:s)),d||(d=l.msgAjaxError.replace("{operation}",t)),l.cancelling=!1,r?"<b>"+r+": </b>"+d:d},_parseFileType:function(e,i){var a,r,n,o,s=this,l=s.allowedPreviewTypes||[];if("application/text-plain"===e)return"text";for(o=0;o<l.length;o++)if(n=l[o],a=s.fileTypeSettings[n],r=a(e,i)?n:"",!t.isEmpty(r))return r;return"other"},_getPreviewIcon:function(t){var i,a=this,r=null;return t&&t.indexOf(".")>-1&&(i=t.split(".").pop(),a.previewFileIconSettings&&(r=a.previewFileIconSettings[i]||a.previewFileIconSettings[i.toLowerCase()]||null),a.previewFileExtSettings&&e.each(a.previewFileExtSettings,function(e,t){return a.previewFileIconSettings[e]&&t(i)?void(r=a.previewFileIconSettings[e]):void 0})),r||a.previewFileIcon},_parseFilePreviewIcon:function(e,t){var i=this,a=i._getPreviewIcon(t),r=e;return r.indexOf("{previewFileIcon}")>-1&&(r=r.setTokens({previewFileIconClass:i.previewFileIconClass,previewFileIcon:a})),r},_raise:function(t,i){var a=this,r=e.Event(t);void 0!==i?a.$element.trigger(r,i):a.$element.trigger(r);var n=r.result,o=n===!1;if(r.isDefaultPrevented()||o)return!1;if("filebatchpreupload"===r.type&&(n||o))return a.ajaxAborted=n,!1;
90switch(t){case"filebatchuploadcomplete":case"filebatchuploadsuccess":case"fileuploaded":case"fileclear":case"filecleared":case"filereset":case"fileerror":case"filefoldererror":case"fileuploaderror":case"filebatchuploaderror":case"filedeleteerror":case"filecustomerror":case"filesuccessremove":break;default:a.ajaxAborted||(a.ajaxAborted=n)}return!0},_listenFullScreen:function(e){var t,i,a=this,r=a.$modal;r&&r.length&&(t=r&&r.find(".btn-kv-fullscreen"),i=r&&r.find(".btn-kv-borderless"),t.length&&i.length&&(t.removeClass("active").attr("aria-pressed","false"),i.removeClass("active").attr("aria-pressed","false"),e?t.addClass("active").attr("aria-pressed","true"):i.addClass("active").attr("aria-pressed","true"),r.hasClass("file-zoom-fullscreen")?a._maximizeZoomDialog():e?a._maximizeZoomDialog():i.removeClass("active").attr("aria-pressed","false")))},_listen:function(){var i,a=this,r=a.$element,n=a.$form,o=a.$container;a._handler(r,"click",function(e){a._initFileSelected(),r.hasClass("file-no-browse")&&(r.data("zoneClicked")?r.data("zoneClicked",!1):e.preventDefault())}),a._handler(r,"change",e.proxy(a._change,a)),a._handler(a.$caption,"paste",e.proxy(a.paste,a)),a.showBrowse&&(a._handler(a.$btnFile,"click",e.proxy(a._browse,a)),a._handler(a.$btnFile,"keypress",function(e){var t=e.keyCode||e.which;13===t&&(r.trigger("click"),a._browse(e))})),a._handler(o.find(".fileinput-remove:not([disabled])"),"click",e.proxy(a.clear,a)),a._handler(o.find(".fileinput-cancel"),"click",e.proxy(a.cancel,a)),a._handler(o.find(".fileinput-pause"),"click",e.proxy(a.pause,a)),a._initDragDrop(),a._handler(n,"reset",e.proxy(a.clear,a)),a.isAjaxUpload||a._handler(n,"submit",e.proxy(a._submitForm,a)),a._handler(a.$container.find(".fileinput-upload"),"click",e.proxy(a._uploadClick,a)),a._handler(e(window),"resize",function(){a._listenFullScreen(screen.width===window.innerWidth&&screen.height===window.innerHeight)}),i="webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange",a._handler(e(document),i,function(){a._listenFullScreen(t.checkFullScreen())}),a.$caption.on("focus",function(){a.$captionContainer.focus()}),a._autoFitContent(),a._initClickable(),a._refreshPreview()},_autoFitContent:function(){var t,i=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,a=this,r=400>i?a.previewSettingsSmall||a.defaults.previewSettingsSmall:a.previewSettings||a.defaults.previewSettings;e.each(r,function(e,i){t=".file-preview-frame .file-preview-"+e,a.$preview.find(t+".kv-preview-data,"+t+" .kv-preview-data").css(i)})},_scanDroppedItems:function(e,i,a){a=a||"";var r,n,o,s=this,l=function(e){s._log(t.logMessages.badDroppedFiles),s._log(e)};e.isFile?e.file(function(e){a&&(e.newPath=a+e.name),i.push(e)},l):e.isDirectory&&(n=e.createReader(),(o=function(){n.readEntries(function(t){if(t&&t.length>0){for(r=0;r<t.length;r++)s._scanDroppedItems(t[r],i,a+e.name+"/");o()}return null},l)})())},_initDragDrop:function(){var t=this,i=t.$dropZone;t.dropZoneEnabled&&t.showPreview&&(t._handler(i,"dragenter dragover",e.proxy(t._zoneDragEnter,t)),t._handler(i,"dragleave",e.proxy(t._zoneDragLeave,t)),t._handler(i,"drop",e.proxy(t._zoneDrop,t)),t._handler(e(document),"dragenter dragover drop",t._zoneDragDropInit))},_zoneDragDropInit:function(e){e.stopPropagation(),e.preventDefault()},_zoneDragEnter:function(i){var a=this,r=i.originalEvent.dataTransfer,n=e.inArray("Files",r.types)>-1;return a._zoneDragDropInit(i),a.isDisabled||!n?(r.effectAllowed="none",void(r.dropEffect="none")):(r.dropEffect="copy",void(a._raise("fileDragEnter",{sourceEvent:i,files:r.types.Files})&&t.addCss(a.$dropZone,"file-highlighted")))},_zoneDragLeave:function(e){var t=this;t._zoneDragDropInit(e),t.isDisabled||t._raise("fileDragLeave",{sourceEvent:e})&&t.$dropZone.removeClass("file-highlighted")},_dropFiles:function(e,t){var i=this,a=i.$element;i.isAjaxUpload?i._change(e,t):(i.changeTriggered=!0,a.get(0).files=t,setTimeout(function(){i.changeTriggered=!1,a.trigger("change"+i.namespace)},i.processDelay)),i.$dropZone.removeClass("file-highlighted")},_zoneDrop:function(e){var i,a=this,r=(a.$element,e.originalEvent.dataTransfer),n=r.files,o=r.items,s=t.getDragDropFolders(o);if(e.preventDefault(),!a.isDisabled&&!t.isEmpty(n)&&a._raise("fileDragDrop",{sourceEvent:e,files:n}
90))if(s>0){if(!a.isAjaxUpload)return void a._showFolderError(s);for(n=[],i=0;i<o.length;i++){var l=o[i].webkitGetAsEntry();l&&a._scanDroppedItems(l,n)}setTimeout(function(){a._dropFiles(e,n)},500)}else a._dropFiles(e,n)},_uploadClick:function(e){var i,a=this,r=a.$container.find(".fileinput-upload"),n=!r.hasClass("disabled")&&t.isEmpty(r.attr("disabled"));if(!e||!e.isDefaultPrevented()){if(!a.isAjaxUpload)return void(n&&"submit"!==r.attr("type")&&(e.preventDefault(),i=r.closest("form"),i.length&&i.trigger("submit")));e.preventDefault(),n&&a.upload()}},_submitForm:function(){var e=this;return e._isFileSelectionValid()&&!e._abort({})},_clearPreview:function(){var t=this,i=t.showUploadedThumbs?t.getFrames(":not(.file-preview-success)"):t.getFrames();i.each(function(){var t=e(this);t.remove()}),t.getFrames().length&&t.showPreview||t._resetUpload(),t._validateDefaultPreview()},_initSortable:function(){var i,a,r,n,o=this,s=o.$preview,l="."+t.SORT_CSS,d=e("body"),c=e("html"),u=o.reversePreviewOrder,p=window.Sortable;p&&0!==s.find(l).length&&(a=d.length?d:c.length?c:o.$container,r=function(){a.addClass("file-grabbing")},n=function(){a.removeClass("file-grabbing")},i={handle:".drag-handle-init",dataIdAttr:"data-fileid",animation:600,draggable:l,scroll:!1,forceFallback:!0,onChoose:r,onStart:r,onUnchoose:n,onEnd:n,onSort:function(i){var a,r=i.oldIndex,n=i.newIndex,s=0,l=o.initialPreviewConfig.length,d=l>0&&n>=l,c=e(i.item);d&&(n=l-1),o.initialPreview=t.moveArray(o.initialPreview,r,n,u),o.initialPreviewConfig=t.moveArray(o.initialPreviewConfig,r,n,u),o.previewCache.init(),o.getFrames(".file-preview-initial").each(function(){e(this).attr("data-fileindex",t.INIT_FLAG+s),s++}),d&&(a=o.getFrames(":not(.file-preview-initial):first"),a.length&&c.slideUp(function(){c.insertBefore(a).slideDown()})),o._raise("filesorted",{previewId:c.attr("id"),oldIndex:r,newIndex:n,stack:o.initialPreviewConfig})}},e.extend(!0,i,o.fileActionSettings.dragSettings),o.sortable&&o.sortable.destroy(),o.sortable=p.create(s[0],i))},_setPreviewContent:function(e){var i=this;t.setHtml(i.$preview,e),i._autoFitContent()},_initPreviewImageOrientations:function(){var t=this,i=0,a=t.canOrientImage;(t.autoOrientImageInitial||a)&&t.getFrames(".file-preview-initial").each(function(){var r,n,o,s=e(this),l=t.initialPreviewConfig[i];l&&l.exif&&l.exif.Orientation&&(o=s.attr("id"),r=s.find(">.kv-file-content img"),n=t._getZoom(o," >.kv-file-content img"),a?r.css("image-orientation",t.autoOrientImageInitial?"from-image":"none"):t.setImageOrientation(r,n,l.exif.Orientation,s)),i++})},_initPreview:function(e){var i,a=this,r=a.initialCaption||"";return a.previewCache.count(!0)?(i=a.previewCache.out(),r=e&&a.initialCaption?a.initialCaption:i.caption,a._setPreviewContent(i.content),a._setInitThumbAttr(),a._setCaption(r),a._initSortable(),t.isEmpty(i.content)||a.$container.removeClass("file-input-new"),void a._initPreviewImageOrientations()):(a._clearPreview(),void(e?a._setCaption(r):a._initCaption()))},_getZoomButton:function(e){var i=this,a=i.previewZoomButtonIcons[e],r=i.previewZoomButtonClasses[e],n=' title="'+(i.previewZoomButtonTitles[e]||"")+'" ',o=t.isBs(5)?"bs-":"",s=n+("close"===e?" data-"+o+'dismiss="modal" aria-hidden="true"':"");return"fullscreen"!==e&&"borderless"!==e&&"toggleheader"!==e||(s+=' data-toggle="button" aria-pressed="false" autocomplete="off"'),'<button type="button" class="'+r+" btn-kv-"+e+'"'+s+">"+a+"</button>"},_getModalContent:function(){var e=this;return e._getLayoutTemplate("modal").setTokens({rtl:e.rtl?" kv-rtl":"",zoomFrameClass:e.frameClass,prev:e._getZoomButton("prev"),next:e._getZoomButton("next"),toggleheader:e._getZoomButton("toggleheader"),fullscreen:e._getZoomButton("fullscreen"),borderless:e._getZoomButton("borderless"),close:e._getZoomButton("close")})},_listenModalEvent:function(e){var i=this,a=i.$modal,r=function(e){return{sourceEvent:e,previewId:a.data("previewId"),modal:a}};a.on(e+".bs.modal",function(n){if("bs.modal"===n.namespace){var o=a.find(".btn-fullscreen"),s=a.find(".btn-borderless");a.data("fileinputPluginId")===i.$element.attr("id")&&i._raise("filezoom"+e,r(n)),"shown"===e&&(s.removeClass("active").attr("aria-pressed","fal
90se"),o.removeClass("active").attr("aria-pressed","false"),a.hasClass("file-zoom-fullscreen")&&(i._maximizeZoomDialog(),t.checkFullScreen()?o.addClass("active").attr("aria-pressed","true"):s.addClass("active").attr("aria-pressed","true")))}})},_initZoom:function(){var i,a=this,r=a._getLayoutTemplate("modalMain"),n="#"+t.MODAL_ID;r=a._setTabIndex("modal",r),a.showPreview&&(a.$modal=e(n),a.$modal&&a.$modal.length||(i=t.createElement(t.cspBuffer.stash(r)).insertAfter(a.$container),a.$modal=e(n).insertBefore(i),t.cspBuffer.apply(a.$modal),i.remove()),t.initModal(a.$modal),a.$modal.html(t.cspBuffer.stash(a._getModalContent())),t.cspBuffer.apply(a.$modal),e.each(t.MODAL_EVENTS,function(e,t){a._listenModalEvent(t)}))},_initZoomButtons:function(){var t,i,a=this,r=a.$modal.data("previewId")||"",n=a.getFrames().toArray(),o=n.length,s=a.$modal.find(".btn-kv-prev"),l=a.$modal.find(".btn-kv-next");return n.length<2?(s.hide(),void l.hide()):(s.show(),l.show(),void(o&&(t=e(n[0]),i=e(n[o-1]),s.removeAttr("disabled"),l.removeAttr("disabled"),a.reversePreviewOrder&&([s,l]=[l,s]),t.length&&t.attr("id")===r&&s.attr("disabled",!0),i.length&&i.attr("id")===r&&l.attr("disabled",!0))))},_maximizeZoomDialog:function(){var t=this,i=t.$modal,a=i.find(".modal-header:visible"),r=i.find(".modal-footer:visible"),n=i.find(".kv-zoom-body"),o=e(window).height(),s=0;i.addClass("file-zoom-fullscreen"),a&&a.length&&(o-=a.outerHeight(!0)),r&&r.length&&(o-=r.outerHeight(!0)),n&&n.length&&(s=n.outerHeight(!0)-n.height(),o-=s),i.find(".kv-zoom-body").height(o)},_resizeZoomDialog:function(e){var i=this,a=i.$modal,r=a.find(".btn-kv-fullscreen"),n=a.find(".btn-kv-borderless");if(a.hasClass("file-zoom-fullscreen"))t.toggleFullScreen(!1),e?r.hasClass("active")||(a.removeClass("file-zoom-fullscreen"),i._resizeZoomDialog(!0),n.hasClass("active")&&n.removeClass("active").attr("aria-pressed","false")):r.hasClass("active")?r.removeClass("active").attr("aria-pressed","false"):(a.removeClass("file-zoom-fullscreen"),i.$modal.find(".kv-zoom-body").css("height",i.zoomModalHeight));else{if(!e)return void i._maximizeZoomDialog();t.toggleFullScreen(!0)}a.focus()},_setZoomContent:function(i,a){var r,n,o,s,l,d,c,u,p,f,m,g,h=this,v=i.attr("id"),w=h._getZoom(v),b=h.$modal,_=b.find(".btn-kv-fullscreen"),C=b.find(".btn-kv-borderless"),x=b.find(".btn-kv-toggleheader"),y=i.data("zoom");y&&(y=decodeURIComponent(y),g=w.html().replace(h.zoomPlaceholder,"").setTokens({zoomData:y}),w.html(g),i.data("zoom",""),w.attr("data-zoom",y)),n=w.attr("data-template")||"generic",r=w.find(".kv-file-content"),o=r.length?r.html():"",f=i.data("caption")||h.msgZoomModalHeading,m=i.data("size")||"",u=i.data("description")||"",b.find(".kv-zoom-caption").attr("title",f).html(f),b.find(".kv-zoom-size").html(m),p=b.find(".kv-zoom-description").hide(),u&&(h.showDescriptionClose&&(u=h._getLayoutTemplate("descriptionClose").setTokens({closeIcon:h.previewZoomButtonIcons.close})+"</button>"+u),p.show().html(u),h.showDescriptionClose&&h._handler(b.find(".kv-desc-hide"),"click",function(){e(this).parent().fadeOut("fast",function(){b.focus()})})),s=b.find(".kv-zoom-body"),b.removeClass("kv-single-content"),a?(c=s.addClass("file-thumb-loading").clone().insertAfter(s),t.setHtml(s,o).hide(),c.fadeOut("fast",function(){s.fadeIn("fast",function(){s.removeClass("file-thumb-loading")}),c.remove()})):t.setHtml(s,o),d=h.previewZoomSettings[n],d&&(l=s.find(".kv-preview-data"),t.addCss(l,"file-zoom-detail"),e.each(d,function(e,t){l.css(e,t),(l.attr("width")&&"width"===e||l.attr("height")&&"height"===e)&&l.removeAttr(e)})),b.data("previewId",v),h._handler(b.find(".btn-kv-prev"),"click",function(){h._zoomSlideShow("prev",v)}),h._handler(b.find(".btn-kv-next"),"click",function(){h._zoomSlideShow("next",v)}),h._handler(_,"click",function(){h._resizeZoomDialog(!0)}),h._handler(C,"click",function(){h._resizeZoomDialog(!1)}),h._handler(x,"click",function(){var e,t=b.find(".modal-header"),i=b.find(".floating-buttons"),a=t.find(".kv-zoom-actions"),r=function(e){var i=h.$modal.find(".kv-zoom-body"),a=h.zoomModalHeight;b.hasClass("file-zoom-fullscreen")&&(a=i.outerHeight(!0),e||(a-=t.outerHeight(!0))),i.css("height",e?a+e:a)};t.is(":visible")?(e=t.outerHeight(!0),t.slideUp("slow",function(){a.find(".btn").appendTo(i),r(e)})):(i.find(".btn").appendTo(a),t.slideDown("slow",function(){r()}
90)),b.focus()}),h._handler(b,"keydown",function(t){var i,a,r=t.which||t.keyCode,n=h.processDelay+1,o=e(this).find(".btn-kv-prev"),s=e(this).find(".btn-kv-next"),l=e(this).data("previewId");[i,a]=h.rtl?[39,37]:[37,39],e.each({prev:[o,i],next:[s,a]},function(e,t){var i=t[0],a=t[1];r===a&&i.length&&(b.focus(),i.attr("disabled")||(i.blur(),setTimeout(function(){i.focus(),h._zoomSlideShow(e,l),setTimeout(function(){i.attr("disabled")&&b.focus()},n)},n)))})})},_showModal:function(e){var i=this,a=i.$modal;e&&e.length&&(t.initModal(a),t.setHtml(a,i._getModalContent()),i._setZoomContent(e),a.data({backdrop:!1,fileinputPluginId:i.$element.attr("id")}),a.find(".kv-zoom-body").css("height",i.zoomModalHeight),a.modal("show"),i._initZoomButtons())},_zoomPreview:function(e){var i,a=this;if(!e.length)throw"Cannot zoom to detailed preview!";i=e.closest(t.FRAMES),a._showModal(i)},_zoomSlideShow:function(t,i){var a,r,n,o,s=this,l=s.$modal.find(".kv-zoom-actions .btn-kv-"+t),d=s.getFrames().toArray(),c=[],u=d.length;if(s.reversePreviewOrder&&(t="prev"===t?"next":"prev"),!l.attr("disabled")){for(r=0;u>r;r++)n=e(d[r]),n&&n.length&&n.find(".kv-file-zoom:visible").length&&c.push(d[r]);for(u=c.length,r=0;u>r;r++)if(e(c[r]).attr("id")===i){
91o="prev"===t?r-1:r+1;break}0>o||o>=u||!c[o]||(a=e(c[o]),a.length&&s._setZoomContent(a,t),s._initZoomButtons(),s._raise("filezoom"+t,{previewId:i,modal:s.$modal}))}},_initZoomButton:function(){var t=this;t.$preview.find(".kv-file-zoom").each(function(){var i=e(this);t._handler(i,"click",function(){t._zoomPreview(i)})})},_inputFileCount:function(){return this.$element[0].files.length},_refreshPreview:function(){var t,i=this;(i._inputFileCount()||i.isAjaxUpload)&&i.showPreview&&i.isPreviewable&&(i.isAjaxUpload&&i.fileManager.count()>0?(t=e.extend(!0,{},i.getFileList()),i.fileManager.clear(),i._clearFileInput()):t=i.$element[0].files,t&&t.length&&(i.readFiles(t),i._setFileDropZoneTitle()))},_clearObjects:function(t){t.find("video audio").each(function(){this.pause(),e(this).remove()}),t.find("img object div").each(function(){e(this).remove()})},_clearFileInput:function(){var t,i,a,r=this,n=r.$element;r._inputFileCount()&&(t=n.closest("form"),i=e(document.createElement("form")),a=e(document.createElement("div")),n.before(a),t.length?t.after(i):a.after(i),i.append(n).trigger("reset"),a.before(n).remove(),i.remove())},_resetUpload:function(){var e=this;e.uploadStartTime=t.now(),e.uploadCache=[],e.$btnUpload.removeAttr("disabled"),e._setProgress(0),e._hideProgress(),e._resetErrors(!1),e._initAjax(),e.fileManager.clearImages(),e._resetCanvas(),e.overwriteInitial&&(e.initialPreview=[],e.initialPreviewConfig=[],e.initialPreviewThumbTags=[],e.previewCache.data={content:[],config:[],tags:[]})},_resetCanvas:function(){var e=this;e.imageCanvas&&e.imageCanvasContext&&e.imageCanvasContext.clearRect(0,0,e.imageCanvas.width,e.imageCanvas.height)},_hasInitialPreview:function(){var e=this;return!e.overwriteInitial&&e.previewCache.count(!0)},_resetPreview:function(){var i,a,r,n=this,o=n.showUploadedThumbs,s=!n.removeFromPreviewOnError,l=(o||s)&&n.isDuplicateError;n.previewCache.count(!0)?(i=n.previewCache.out(),l&&(r=t.createElement("").insertAfter(n.$container),n.getFrames().each(function(){var t=e(this);(o&&t.hasClass("file-preview-success")||s&&t.hasClass("file-preview-error"))&&r.append(t)})),n._setPreviewContent(i.content),n._setInitThumbAttr(),a=n.initialCaption?n.initialCaption:i.caption,n._setCaption(a),l&&(r.contents().appendTo(n.$preview),r.remove())):(n._clearPreview(),n._initCaption()),n.showPreview&&(n._initZoom(),n._initSortable()),n.isDuplicateError=!1},_clearDefaultPreview:function(){var e=this;e.$preview.find(".file-default-preview").remove()},_validateDefaultPreview:function(){var e=this;e.showPreview&&!t.isEmpty(e.defaultPreviewContent)&&(e._setPreviewContent('<div class="file-default-preview">'+e.defaultPreviewContent+"</div>"),e.$container.removeClass("file-input-new"),e._initClickable())},_resetPreviewThumbs:function(e){var t,i=this;return e?(i._clearPreview(),void i.clearFileStack()):void(i._hasInitialPreview()?(t=i.previewCache.out(),i._setPreviewContent(t.content),i._setInitThumbAttr(),i._setCaption(t.caption),i._initPreviewActions()):i._clearPreview())},_getLayoutTemplate:function(e){var i=this,a=i.layoutTemplates[e];return t.isEmpty(i.customLayoutTags)?a:t.replaceTags(a,i.customLayoutTags)},_getPreviewTemplate:function(e){var i=this,a=i.previewTemplates,r=a[e]||a.other;return t.isEmpty(i.customPreviewTags)?r:t.replaceTags(r,i.customPreviewTags)},_getOutData:function(e,t,i,a){var r=this;return t=t||{},i=i||{},a=a||r.fileManager.list(),{formdata:e,files:a,filenames:r.filenames,filescount:r.getFilesCount(),extra:r._getExtraData(),response:i,reader:r.reader,jqXHR:t}},_getMsgSelected:function(e,t){var i=this,a=1===e?i.fileSingle:i.filePlural;return e>0?i.msgSelected.replace("{n}",e).replace("{files}",a):t?i.msgProcessing:i.msgNoFilesSelected},_getFrame:function(e,i){var a=this,r=t.getFrameElement(a.$preview,e);return!a.showPreview||i||r.length||a._log(t.logMessages.invalidThumb,{id:e}),r},_getZoom:function(e,i){var a=this,r=t.getZoomElement(a.$preview,e,i);return a.showPreview&&!r.length&&a._log(t.logMessages.invalidThumb,{id:e}),r},_getThumbs:function(e){return e=e||"",this.getFrames(":not(.file-preview-initial)"+e)},_getThumbId:function(e){var t=this;return t.previewInitId+"-"+e},_getExtraData:function(e,t){var i=this,a=i.uploadExtraData;return"function"==typeof i.uploadExtraData&&(a=i.uploadExtraData(e,t)),a},_initXhr:function(e,i){var a=this,r=a.fileManager,n=function(e){var n=0,o=e.total,s=e.loaded||e.position,l=r.getUploadStats(i,s,o);e.lengthComputable&&!a.enableResumableUpload&&(n=t.round(s/o*100)),i?a._setFileUploadStats(i,n,l):a._setProgress(n,null,null,a._getStats(l)),a._raise("fileajaxprogress",[l])};return e.upload&&(a.progressDelay&&(n=t.debounce(n,a.progressDelay)),e.upload.addEventListener("progress",n,!1)),e},_initAjaxSettings:function(){var t=this;t._ajaxSettings=e.extend(!0,{},t.ajaxSettings),t._ajaxDeleteSettings=e.extend(!0,{},t.ajaxDeleteSettings)},_mergeAjaxCallback:function(e,t,i){var a,r=this,n=r._ajaxSettings,o=r.mergeAjaxCallbacks;"delete"===i&&(n=r._ajaxDeleteSettings,o=r.mergeAjaxDeleteCallbacks),a=n[e],o&&"function"==typeof a?"before"===o?n[e]=function(){a.apply(this,arguments),t.apply(this,arguments)}:n[e]=function(){t.apply(this,arguments),a.apply(this,arguments)}:n[e]=t},_ajaxSubmit:function(t,i,a,r,n,o,s,l){var d,c,u,p=this,f=p.taskManager;p._raise("filepreajax",[n,o,s])&&(n.append("initialPreview",JSON.stringify(p.initialPreview)),n.append("initialPreviewConfig",JSON.stringify(p.initialPreviewConfig)),n.append("initialPreviewThumbTags",JSON.stringify(p.initialPreviewThumbTags)),p._initAjaxSettings(),p._mergeAjaxCallback("beforeSend",t),p._mergeAjaxCallback("success",i),p._mergeAjaxCallback("complete",a),p._mergeAjaxCallback("error",r),l=l||p.uploadUrlThumb||p.uploadUrl,"function"==typeof l&&(l=l()),u=p._getExtraData(o,s)||{},"object"==typeof u&&e.each(u,function(e,t){n.append(e,t)}),c={xhr:function(){var t=e.ajaxSettings.xhr();return p._initXhr(t,o)},url:p._encodeURI(l),type:"POST",dataType:"json",data:n,cache:!1,processData:!1,contentType:!1},d=e.extend(!0,{},c,p._ajaxSettings),p.ajaxQueue.push(d),f.addTask(o+"-"+s,function(){var t,i,a=this.self;t=a.ajaxQueue.shift(),i=e.ajax(t),a.ajaxRequests.push(i)}).runWithContext({self:p}))},_mergeArray:function(e,i){var a=this,r=t.cleanArray(a[e]),n=t.cleanArray(i);a[e]=r.concat(n)},_initUploadSuccess:function(i,a,r){var n,o,s,l,d,c,u,p,f,m=this;return!m.showPreview||"object"!=typeof i||e.isEmptyObject(i)?void m._resetCaption():(void 0!==i.initialPreview&&i.initialPreview.length>0&&(m.hasInitData=!0,d=i.initialPreview||[],c=i.initialPreviewConfig||[],u=i.initialPreviewThumbTags||[],n=void 0===i.append||i.append,d.length>0&&!t.isArray(d)&&(d=d.split(m.initialPreviewDelimiter)),d.length&&(m._mergeArray("initialPreview",d),m._mergeArray("initialPreviewConfig",c),m._mergeArray("initialPreviewThumbTags",u)),void 0!==a?r?(p=a.attr("id"),f=m._getUploadCacheIndex(p),null!==f&&(m.uploadCache[f]={id:p,content:d[0],config:c[0]||[],tags:u[0]||[],append:n})):(s=m.previewCache.add(d[0],c[0],u[0],n),o=m.previewCache.get(s,!1),l=t.createElement(o).hide().appendTo(a),a.fadeOut("slow",function(){var e=l.find("> .file-preview-frame");e&&e.length&&e.insertBefore(a).fadeIn("slow").css("display:inline-block"),m._initPreviewActions(),m._clearFileInput(),a.remove(),l.remove(),m._initSortable()})):(m.previewCache.set(d,c,u,n),m._initPreview(),m._initPreviewActions())),void m._resetCaption())},_getUploadCacheIndex:function(e){var t,i,a=this,r=a.uploadCache.length;for(t=0;r>t;t++)if(i=a.uploadCache[t],i.id===e)return t;return null},_initSuccessThumbs:function(){var i=this;i.showPreview&&setTimeout(function(){i._getThumbs(t.FRAMES+".file-preview-success").each(function(){var a=e(this),r=a.find(".kv-file-remove");r.removeAttr("disabled"),i._handler(r,"click",function(){var e=a.attr("id"),r=i._raise("filesuccessremove",[e,a.attr("data-fileindex")]
vendor: 6,634 bytes, line 91
91);t.cleanMemory(a),r!==!1&&(i.$caption.attr("title",""),a.fadeOut("slow",function(){i.fileManager;a.remove(),i.getFrames().length||i.reset()}))})})},i.processDelay)},_updateInitialPreview:function(){var t=this,i=t.uploadCache;t.showPreview&&(e.each(i,function(e,i){t.previewCache.add(i.content,i.config,i.tags,i.append)}),t.hasInitData&&(t._initPreview(),t._initPreviewActions()))},_getThumbFileId:function(e){var t=this;return t.showPreview&&void 0!==e?e.attr("data-fileid"):null},_getThumbFile:function(e){var t=this,i=t._getThumbFileId(e);return i?t.fileManager.getFile(i):null},_uploadSingle:function(i,a,r,n){var o,s,l,d,c,u,p,f,m,g,h,v,w,b=this,_=b.fileManager,C=_.count(),x=new FormData,y=b._getThumbId(a),T=C>0||!e.isEmptyObject(b.uploadExtraData),P=b.ajaxOperations.uploadThumb,k=_.getFile(a),F={id:y,index:i,fileId:a},S=b.fileManager.getFileName(a,!0),E=function(){n&&n.resolve&&n.resolve()},I=function(){n&&n.reject&&n.reject()};b.enableResumableUpload||(b.showPreview&&(s=_.getThumb(a),p=s.find(".file-thumb-progress"),d=s.find(".kv-file-upload"),c=s.find(".kv-file-remove"),p.show()),0===C||!T||b.showPreview&&d&&d.hasClass("disabled")||b._abort(F)||(w=function(){u?_.errors.push(a):_.removeFile(a),_.setProcessed(a),_.isProcessed()&&(b.fileBatchCompleted=!0,l())},l=function(){var e;b.fileBatchCompleted&&setTimeout(function(){var i=0===_.count(),a=_.errors.length;b._updateInitialPreview(),b.unlock(i),i&&b._clearFileInput(),e=b.$preview.find(".file-preview-initial"),b.uploadAsync&&e.length&&(t.addCss(e,t.SORT_CSS),b._initSortable()),b._raise("filebatchuploadcomplete",[_.stack,b._getExtraData()]),b.retryErrorUploads&&0!==a||_.clear(),b._setProgress(101),b.ajaxAborted=!1},b.processDelay)},f=function(n){o=b._getOutData(x,n),_.initStats(a),b.fileBatchCompleted=!1,r||(b.ajaxAborted=!1),b.showPreview&&(s.hasClass("file-preview-success")||(b._setThumbStatus(s,"Loading"),t.addCss(s,"file-uploading")),d.attr("disabled",!0),c.attr("disabled",!0)),r||b.lock(),-1!==_.errors.indexOf(a)&&delete _.errors[a],b._raise("filepreupload",[o,y,i,b._getThumbFileId(s)]),e.extend(!0,F,o),b._abort(F)&&(n.abort(),r||(b._setThumbStatus(s,"New"),s.removeClass("file-uploading"),d.removeAttr("disabled"),c.removeAttr("disabled")),b._setProgressCancelled())},g=function(n,l,c){var f=b.showPreview&&s.attr("id")?s.attr("id"):y;o=b._getOutData(x,c,n),e.extend(!0,F,o),setTimeout(function(){t.isEmpty(n)||t.isEmpty(n.error)?(b.showPreview&&(b._setThumbStatus(s,"Success"),d.hide(),b._initUploadSuccess(n,s,r),b._setProgress(101,p)),b._raise("fileuploaded",[o,f,i,b._getThumbFileId(s)]),r?(w(),E()):b.fileManager.remove(s)):(u=!0,m=b._parseError(P,c,b.msgUploadError,b.fileManager.getFileName(a)),b._showFileError(m,F),b._setPreviewError(s,!0),b.retryErrorUploads||d.hide(),r&&(w(),E()),b._setProgress(101,b._getFrame(f).find(".file-thumb-progress"),b.msgUploadError))},b.processDelay)},h=function(){b.showPreview&&(d.removeAttr("disabled"),c.removeAttr("disabled"),s.removeClass("file-uploading")),r?l():(b.unlock(!1),b._clearFileInput()),b._initSuccessThumbs()},v=function(t,i,n){m=b._parseError(P,t,n,b.fileManager.getFileName(a)),u=!0,setTimeout(function(){var i;r&&(w(),I()),b.fileManager.setProgress(a,100),b._setPreviewError(s,!0),b.retryErrorUploads||d.hide(),e.extend(!0,F,b._getOutData(x,t)),b._setProgress(101,b.$progress,b.msgAjaxProgressError.replace("{operation}",P)),i=b.showPreview&&s?s.find(".file-thumb-progress"):"",b._setProgress(101,i,b.msgUploadError),b._showFileError(m,F)},b.processDelay)},b._setFileData(x,k.file,S,a),b._setUploadData(x,{fileId:a}),b._ajaxSubmit(f,g,h,v,x,a,i)))},_setFileData:function(e,t,i,a){var r=this,n=r.preProcessUpload;n&&"function"==typeof n?e.append(r.uploadFileAttr,n(a,t)):e.append(r.uploadFileAttr,t,i)},_checkBatchPreupload:function(t,i){var a=this,r=a._raise("filebatchpreupload",[t]);return r?!0:(a._abort(t),i&&i.abort(),a._getThumbs().each(function(){var t=e(this),i=t.find(".kv-file-upload"),r=t.find(".kv-file-remove");t.hasClass("file-preview-loading")&&(a._setThumbStatus(t,"New"),t.removeClass("file-uploading")),i.removeAttr("disabled"),r.removeAttr("disabled")}),a._setProgressCancelled(),!1)},_uploadBatch:function(){var i,a,r,n,o,s,l=this,d=l.fileManager,c=d.total(),u={},p=c>0||!e.isEmptyObject(l.uploadExtraData),f=new FormData,m=l.ajaxOperations.uploadBatch;if(0!==c&&p&&!l._abort(u)){s=function(){l.fileManager.clear(),l._clearFileInput()},i=function(i){l.lock(),d.initStats();var a=l._getOutData(f,i);l.ajaxAborted=!1,l.showPreview&&l._getThumbs().each(function(){var i=e(this),a=i.find(".kv-file-upload"),r=i.find(".kv-file-remove");i.hasClass("file-preview-success")||(l._setThumbStatus(i,"Loading"),t.addCss(i,"file-uploading")),a.attr("disabled",!0),r.attr("disabled",!0)}),l._checkBatchPreupload(a,i)},a=function(i,a,r){var n=l._getOutData(f,r,i),d=0,c=l._getThumbs(":not(.file-preview-success)"),u=t.isEmpty(i)||t.isEmpty(i.errorkeys)?[]:i.errorkeys;t.isEmpty(i)||t.isEmpty(i.error)?(l._raise("filebatchuploadsuccess",[n]),s(),l.showPreview?(c.each(function(){var t=e(this);l._setThumbStatus(t,"Success"),t.removeClass("file-uploading"),t.find(".kv-file-upload").hide().removeAttr("disabled")}),l._initUploadSuccess(i)):l.reset(),l._setProgress(101)):(l.showPreview&&(c.each(function(){var t=e(this);t.removeClass("file-uploading"),t.find(".kv-file-upload").removeAttr("disabled"),t.find(".kv-file-remove").removeAttr("disabled"),0===u.length||-1!==e.inArray(d,u)?(l._setPreviewError(t,!0),l.retryErrorUploads||(t.find(".kv-file-upload").hide(),l.fileManager.remove(t))):(t.find(".kv-file-upload").hide(),l._setThumbStatus(t,"Success"),l.fileManager.remove(t)),t.hasClass("file-preview-error")&&!l.retryErrorUploads||d++}),l._initUploadSuccess(i)),o=l._parseError(m,r,l.msgUploadError),l._showFileError(o,n,"filebatchuploaderror"),l._setProgress(101,l.$progress,l.msgUploadError))},n=function(){l.unlock(),l._initSuccessThumbs(),l._clearFileInput(),l._raise("filebatchuploadcomplete",[l.fileManager.stack,l._getExtraData()])},r=function(t,i,a){var r=l._getOutData(f,t);o=l._parseError(m,t,a),l._showFileError(o,r,"filebatchuploaderror"),l.uploadFileCount=c-1,l.showPreview&&(l._getThumbs().each(function(){var t=e(this);t.removeClass("file-uploading"),l._getThumbFile(t)&&l._setPreviewError(t)}),l._getThumbs().removeClass("file-uploading"),l._getThumbs(" .kv-file-upload").removeAttr("disabled"),l._getThumbs(" .kv-file-delete").removeAttr("disabled"),l._setProgress(101,l.$progress,l.msgAjaxProgressError.replace("{operation}",m)))};var g=0;e.each(l.fileManager.stack,function(e,i){t.isEmpty(i.file)||l._setFileData(f,i.file,i.nameFmt||"untitled_"+g,e),g++}
91),l._ajaxSubmit(i,a,n,r,f)}},_uploadExtraOnly:function(){var e,i,a,r,n,o=this,s={},l=new FormData,d=o.ajaxOperations.uploadExtra;e=function(e){o.lock();var t=o._getOutData(l,e);o._setProgress(50),s.data=t,s.xhr=e,o._checkBatchPreupload(t,e)},i=function(e,i,a){var r=o._getOutData(l,a,e);t.isEmpty(e)||t.isEmpty(e.error)?(o._raise("filebatchuploadsuccess",[r]),o._clearFileInput(),o._initUploadSuccess(e),o._setProgress(101)):(n=o._parseError(d,a,o.msgUploadError),o._showFileError(n,r,"filebatchuploaderror"))},a=function(){o.unlock(),o._clearFileInput(),o._raise("filebatchuploadcomplete",[o.fileManager.stack,o._getExtraData()])},r=function(e,t,i){var a=o._getOutData(l,e);n=o._parseError(d,e,i),s.data=a,o._showFileError(n,a,"filebatchuploaderror"),o._setProgress(101,o.$progress,o.msgAjaxProgressError.replace("{operation}",d))},o._ajaxSubmit(e,i,a,r,l)},_deleteFileIndex:function(i){var a=this,r=i.attr("data-fileindex"),n=a.reversePreviewOrder;r.substring(0,5)===t.INIT_FLAG&&(r=parseInt(r.replace(t.INIT_FLAG,"")),a.initialPreview=t.spliceArray(a.initialPreview,r,n),a.initialPreviewConfig=t.spliceArray(a.initialPreviewConfig,r,n),a.initialPreviewThumbTags=t.spliceArray(a.initialPreviewThumbTags,r,n),a.getFrames().each(function(){var i=e(this),a=i.attr("data-fileindex");a.substring(0,5)===t.INIT_FLAG&&(a=parseInt(a.replace(t.INIT_FLAG,"")),a>r&&(a--,i.attr("data-fileindex",t.INIT_FLAG+a)))}))},_resetCaption:function(){var e=this;setTimeout(function(){var t,i,a,r="",n=e.previewCache.count(!0),o=e.fileManager.count(),s=":not(.file-preview-success):not(.file-preview-error)",l=e.showPreview&&e.getFrames(s).length;0!==o||0!==n||l?(t=n+o,t>1?r=e._getMsgSelected(t):0===o?(a=e.initialPreviewConfig[0],r="",a&&(r=a.caption||a.filename||""),r||(r=e._getMsgSelected(t))):(i=e.fileManager.getFirstFile(),r=i?i.nameFmt:"_"),e._setCaption(r)):e.reset()},e.processDelay)},_initFileActions:function(){var i=this;i.showPreview&&(i._initZoomButton(),i.getFrames(" .kv-file-remove").each(function(){var a,r,n=e(this),o=n.closest(t.FRAMES),s=o.attr("id"),l=o.attr("data-fileindex");i.fileManager;i._handler(n,"click",function(){return r=i._raise("filepreremove",[s,l]),r!==!1&&i._validateMinCount()?(a=o.hasClass("file-preview-error"),t.cleanMemory(o),void o.fadeOut("slow",function(){i.fileManager.remove(o),i._clearObjects(o),o.remove(),s&&a&&i.$errorContainer.find('li[data-thumb-id="'+s+'"]').fadeOut("fast",function(){e(this).remove(),i._errorsExist()||i._resetErrors()}),i._clearFileInput(),i._resetCaption(),i._raise("fileremoved",[s,l])})):!1})}),i.getFrames(" .kv-file-upload").each(function(){var a=e(this);i._handler(a,"click",function(){var e=a.closest(t.FRAMES),r=i._getThumbFileId(e);i._hideProgress(),e.hasClass("file-preview-error")&&!i.retryErrorUploads||i._uploadSingle(i.fileManager.getIndex(r),r,!1)})}))},_initPreviewActions:function(){var i=this,a=i.$preview,r=i.deleteExtraData||{},n=t.FRAMES+" .kv-file-remove",o=i.fileActionSettings,s=o.removeClass,l=o.removeErrorClass,d=function(){var e=i.isAjaxUpload?i.previewCache.count(!0):i._inputFileCount();i.getFrames().length||e?i._resetCaption():(i._setCaption(""),i.reset(),i.initialCaption="")};i._initZoomButton(),a.find(n).each(function(){var a,n,o,c,u=e(this),p=u.data("url")||i.deleteUrl,f=u.data("key"),m=i.ajaxOperations.deleteThumb;if(!t.isEmpty(p)&&void 0!==f){"function"==typeof p&&(p=p());var g,h,v,w,b,_=u.closest(t.FRAMES),C=i.previewCache.data,x=_.attr("data-fileindex");x=parseInt(x.replace(t.INIT_FLAG,"")),v=t.isEmpty(C.config)&&t.isEmpty(C.config[x])?null:C.config[x],b=t.isEmpty(v)||t.isEmpty(v.extra)?r:v.extra,w=v&&(v.filename||v.caption)||"","function"==typeof b&&(b=b()),h={id:u.attr("id"),key:f,extra:b},n=function(e){i.ajaxAborted=!1,i._raise("filepredelete",[f,e,b]),i._abort()?e.abort():(u.removeClass(l),t.addCss(_,"file-uploading"),t.addCss(u,"disabled "+s))},o=function(e,r,n){var o,c;return t.isEmpty(e)||t.isEmpty(e.error)?(_.removeClass("file-uploading").addClass("file-deleted"),void _.fadeOut("slow",function(){x=parseInt(_.attr("data-fileindex").replace(t.INIT_FLAG,"")),i.previewCache.unset(x),i._deleteFileIndex(_),o=i.previewCache.count(!0),c=o>0?i._getMsgSelected(o):"",i._setCaption(c),i._raise("filedeleted",[f,n,b]),i._clearObjects(_),_.remove(),d()})):(h.jqXHR=n,h.response=e,a=i._parseError(m,n,i.msgDeleteError,w),i._showFileError(a,h,"filedeleteerror"),_.removeClass("file-uploading"),u.removeClass("disabled "+s).addClass(l),void d())},c=function(e,t,a){var r=i._parseError(m,e,a,w);h.jqXHR=e,h.response={},i._showFileError(r,h,"filedeleteerror"),_.removeClass("file-uploading"),u.removeClass("disabled "+s).addClass(l),d()},i._initAjaxSettings(),i._mergeAjaxCallback("beforeSend",n,"delete"),i._mergeAjaxCallback("success",o,"delete"),i._mergeAjaxCallback("error",c,"delete"),g=e.extend(!0,{},{url:i._encodeURI(p),type:"POST",dataType:"json",data:e.extend(!0,{},{key:f},b)},i._ajaxDeleteSettings),i._handler(u,"click",function(){return i._validateMinCount()?(i.ajaxAborted=!1,i._raise("filebeforedelete",[f,b]),void(i.ajaxAborted instanceof Promise?i.ajaxAborted.then(function(t){t||e.ajax(g)}):i.ajaxAborted||e.ajax(g))):!1})}})},_hideFileIcon:function(){var e=this;e.overwriteInitial&&e.$captionContainer.removeClass("icon-visible")},_showFileIcon:function(){var e=this;t.addCss(e.$captionContainer,"icon-visible")},_getSize:function(t,i,a){var r,n=this,o=parseFloat(t),s=0,l=n.bytesToKB,d=n.fileSizeGetter,c=o;if(!e.isNumeric(t)||!e.isNumeric(o))return"";if("function"==typeof d)r=d(o);else{if(o>0){for(a||(a=n.sizeUnits);c>=l;)c/=l,++s;a[s]||(c=o,s=0)}r=c.toFixed(2)+" "+a[s]}return i?r:n._getLayoutTemplate("size").replace("{sizeText}",r)},_getFileType:function(e){var t=this;return t.mimeTypeAliases[e]||e},_generatePreviewTemplate:function(i,a,r,n,o,s,l,d,c,u,p,f,m,g){var h,v,w,b=this,_=b.slug(r),C="",x="",y=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,T=_,P=_,k="type-default",F=u||b._renderFileFooter(i,_,d,"auto",l),S=b.preferIconicPreview,E=b.preferIconicZ
91oomPreview,I=S?"other":i;return v=400>y?b.previewSettingsSmall[I]||b.defaults.previewSettingsSmall[I]:b.previewSettings[I]||b.defaults.previewSettings[I],v&&e.each(v,function(e,t){x+=e+":"+t+";"}),w=function(a,l,d,u,g){var h,v=d?"zoom-"+o:o,w=b._getPreviewTemplate(a),C=(c||"")+" "+u;return b.frameClass&&(C=b.frameClass+" "+C),d&&(C=C.replace(" "+t.SORT_CSS,"")),w=b._parseFilePreviewIcon(w,r),"object"!==i||n||e.each(b.defaults.fileTypeSettings,function(e,t){"object"!==e&&"other"!==e&&t(r,n)&&(k="type-"+e)}),t.isEmpty(m)||(void 0!==m.title&&null!==m.title&&(T=m.title),void 0!==m.alt&&null!==m.alt&&(T=m.alt)),h={previewId:v,caption:_,title:T,alt:P,frameClass:C,type:b._getFileType(n),fileindex:p,fileid:s||"",typeCss:k,footer:F,data:d&&g?b.zoomPlaceholder+"{zoomData}":l,template:f||i,style:x?'style="'+x+'"':"",zoomData:g?encodeURIComponent(g):""},d&&(h.zoomCache="",h.zoomData="{zoomData}"),w.setTokens(h)},p=p||o.slice(o.lastIndexOf("-")+1),b.fileActionSettings.showZoom&&(C=w(E?"other":i,a,!0,"kv-zoom-thumb",g)),C="\n"+b._getLayoutTemplate("zoomCache").replace("{zoomContent}",C),"function"==typeof b.sanitizeZoomCache&&(C=b.sanitizeZoomCache(C)),h=w(S?"other":i,a,!1,"kv-preview-thumb",g),h.setTokens({zoomCache:C})},_addToPreview:function(e,i){var a,r=this;return i=t.cspBuffer.stash(i),a=r.reversePreviewOrder?e.prepend(i):e.append(i),t.cspBuffer.apply(e),a},_previewDefault:function(e,i){var a=this,r=a.$preview;if(a.showPreview){var n,o=t.getFileName(e),s=e?e.type:"",l=e.size||0,d=a._getFileName(e,""),c=i===!0&&!a.isAjaxUpload,u=t.createObjectURL(e),p=a.fileManager.getId(e),f=a._getThumbId(p);a._clearDefaultPreview(),n=a._generatePreviewTemplate("other",u,o,s,f,p,c,l),a._addToPreview(r,n),a._setThumbAttr(f,d,l),i===!0&&a.isAjaxUpload&&a._setThumbStatus(a._getFrame(f),"Error")}},_previewFile:function(e,i,a,r,n){if(this.showPreview){var o,s=this,l=t.getFileName(i),d=n.type,c=n.name,u=s._parseFileType(d,l),p=s.$preview,f=i.size||0,m="image"===u?a.target.result:r,g=s.fileManager,h=g.getId(i),v=s._getThumbId(h);o=s._generatePreviewTemplate(u,m,l,d,v,h,!1,f),s._clearDefaultPreview(),s._addToPreview(p,o);var w=s._getFrame(v);s._validateImageOrientation(w.find("img"),i,v,h,c,d,f,m),s._setThumbAttr(v,c,f),s._initSortable()}},_setThumbAttr:function(e,t,i,a){var r=this,n=r._getFrame(e);n.length&&(i=i&&i>0?r._getSize(i):"",n.data({caption:t,size:i,description:a||""}))},_setInitThumbAttr:function(){var e,i,a,r,n,o=this,s=o.previewCache.data,l=o.previewCache.count(!0);if(0!==l)for(var d=0;l>d;d++)e=s.config[d],n=o.previewInitId+"-"+t.INIT_FLAG+d,i=t.ifSet("caption",e,t.ifSet("filename",e)),a=t.ifSet("size",e),r=t.ifSet("description",e),o._setThumbAttr(n,i,a,r)},_slugDefault:function(e){return t.isEmpty(e,!0)?"":String(e).replace(/[\[\]\/\{}:;#%=\(\)\*\+\?\\\^\$\|<>&"']/g,"_")},_updateFileDetails:function(e){var i,a,r,n,o,s=this,l=s.$element,d=t.isIE(9)&&t.findFileName(l.val())||l[0].files[0]&&l[0].files[0].name;!d&&s.fileManager.count()>0?(o=s.fileManager.getFirstFile(),i=o.nameFmt):i=d?s.slug(d):"_",a=s.isAjaxUpload?s.fileManager.count():e,n=s.previewCache.count(!0)+a,r=1===a?i:s._getMsgSelected(n,!s.isAjaxUpload&&!s.isError),s.isError?(s.$previewContainer.removeClass("file-thumb-loading"),s._initCapStatus(),s.$previewStatus.html(""),s.$captionContainer.removeClass("icon-visible")):s._showFileIcon(),s._setCaption(r,s.isError),s.$container.removeClass("file-input-new file-input-ajax-new"),s._raise("fileselect",[e,i]),s.previewCache.count(!0)&&s._initPreviewActions()},_setThumbStatus:function(e,i){var a=this;if(a.showPreview){var r="indicator"+i,n=r+"Title",o="file-preview-"+i.toLowerCase(),s=e.find(".file-upload-indicator"),l=a.fileActionSettings;e.removeClass("file-preview-success file-preview-error file-preview-paused file-preview-loading"),"Success"===i&&e.find(".file-drag-handle").remove(),t.setHtml(s,l[r]),s.attr("title",l[n]),e.addClass(o),"Error"!==i||a.retryErrorUploads||e.find(".kv-file-upload").attr("disabled",!0)}},_setProgressCancelled:function(){var e=this;e._setProgress(101,e.$progress,e.msgCancelled)},_setProgress:function(e,i,a,r){var n=this;if(i=i||n.$progress,i.length){var o,s=Math.min(e,100),l=n.progressUploadThreshold,d=100>=e?n.progressTemplate:n.progressCompleteTemplate,c=100>s?n.progressTemplate:a?n.paused?n.progressPauseTemplate:n.progressErrorTemplate:d;e>=100&&(r=""),t.isEmpty(c)||(o=l&&s>l&&100>=e?c.setTokens({percent:l,status:n.msgUploadThreshold}):c.setTokens({percent:s,status:e>100?n.msgUploadEnd:s+"%"}),r=r||"",o=o.setTokens({stats:r}),t.setHtml(i,o),a&&t.setHtml(i.find('[role="progressbar"]'),a))}},_hasFiles:function(){var e=this.$element[0];return!!(e&&e.files&&e.files.length)},_setFileDropZoneTitle:function(){var e,i=this,a=i.$container.find(".file-drop-zone"),r=i.dropZoneTitle;
91i.isClickable&&(e=t.isEmpty(i.$element.attr("multiple"))?i.fileSingle:i.filePlural,r+=i.dropZoneClickTitle.replace("{files}",e)),a.find("."+i.dropZoneTitleClass).remove(),!i.showPreview||0===a.length||i.fileManager.count()>0||!i.dropZoneEnabled||i.previewCache.count()>0||!i.isAjaxUpload&&i._hasFiles()||(0===a.find(t.FRAMES).length&&t.isEmpty(i.defaultPreviewContent)&&a.prepend('<div class="'+i.dropZoneTitleClass+'">'+r+"</div>"),i.$container.removeClass("file-input-new"),t.addCss(i.$container,"file-input-ajax-new"))},_getStats:function(e){var i,a,r=this;return r.showUploadStats&&e&&e.bitrate?(a=r._getLayoutTemplate("stats"),i=e.elapsed&&e.bps?r.msgPendingTime.setTokens({time:t.getElapsed(Math.ceil(e.pendingBytes/e.bps))}):r.msgCalculatingTime,a.setTokens({uploadSpeed:e.bitrate,pendingTime:i})):""},_setResumableProgress:function(e,t,i){var a=this,r=a.resumableManager,n=i?r:a,o=i?i.find(".file-thumb-progress"):null;0===n.lastProgress&&(n.lastProgress=e),e<n.lastProgress&&(e=n.lastProgress),a._setProgress(e,o,null,a._getStats(t)),n.lastProgress=e},_toggleResumableProgress:function(e,i){var a=this,r=a.$progress;r&&r.length&&t.setHtml(r,e.setTokens({percent:101,status:i,stats:""}))},_setFileUploadStats:function(i,a,r){var n=this,o=n.$progress;if(n.showPreview||o&&o.length){var s,l=n.fileManager,d=n.resumableManager,c=l.getThumb(i),u=0,p=l.getTotalSize(),f=e.extend(!0,{},r);if(n.enableResumableUpload){var m,g=r.loaded,h=d.getUploadedSize(),v=d.file.size;g+=h,m=l.uploadedSize+g,a=t.round(100*g/v),r.pendingBytes=v-h,n._setResumableProgress(a,r,c),s=Math.floor(100*m/p),f.pendingBytes=p-m,n._setResumableProgress(s,f)}else l.setProgress(i,a),o=c&&c.length?c.find(".file-thumb-progress"):null,n._setProgress(a,o,null,n._getStats(r)),e.each(l.stats,function(e,t){u+=t.loaded}),f.pendingBytes=p-u,s=t.round(u/p*100),n._setProgress(s,null,null,n._getStats(f))}},_validateMinCount:function(){var e=this,t=e.isAjaxUpload?e.fileManager.count():e._inputFileCount();return e.validateInitialCount&&e.minFileCount>0&&e._getFileCount(t-1)<e.minFileCount?(e._noFilesError({}),!1):!0},_getFileCount:function(e,t){var i=this,a=0;return void 0===t&&(t=i.validateInitialCount&&!i.overwriteInitial),t&&(a=i.previewCache.count(!0),e+=a),e},_getFileId:function(e){return t.getFileId(e,this.generateFileId)},_getFileName:function(e,i){var a=this,r=t.getFileName(e);return r?a.slug(r):i},_getFileNames:function(e){var t=this;return t.filenames.filter(function(t){return e?void 0!==t:void 0!==t&&null!==t})},_setPreviewError:function(e,t){var i=this,a=i.removeFromPreviewOnError&&!i.retryErrorUploads;if(t&&!a||i.fileManager.remove(e),i.showPreview){if(a)return void e.remove();i._setThumbStatus(e,"Error"),i._refreshUploadButton(e)}},_refreshUploadButton:function(e){var i=this,a=e.find(".kv-file-upload"),r=i.fileActionSettings,n=r.uploadIcon,o=r.uploadTitle;a.length&&(i.retryErrorUploads&&(n=r.uploadRetryIcon,o=r.uploadRetryTitle),a.attr("title",o),t.setHtml(a,n))},_checkDimensions:function(e,i,a,r,n,o,s){var l,d,c,u,p=this,f="Small"===i?"min":"max",m=p[f+"Image"+o];!t.isEmpty(m)&&a.length&&(c=a[0],d="Width"===o?c.naturalWidth||c.width:c.naturalHeight||c.height,u="Small"===i?d>=m:m>=d,u||(l=p["msgImage"+o+i].setTokens({name:n,size:m}),p._showFileError(l,s),p._setPreviewError(r)))},_getExifObj:function(e){var i,a=this,r=t.logMessages.exifWarning;if("data:image/jpeg;base64,"!==e.slice(0,23)&&"data:image/jpg;base64,"!==e.slice(0,22))return void(i=null);try{i=window.piexif?window.piexif.load(e):null}catch(n){i=null,r=n&&n.message||""}return!i&&a.showExifErrorLog&&a._log(t.logMessages.badExifParser,{details:r}),i},setImageOrientation:function(i,a,r,n){var o,s,l,d=this,c=!i||!i.length,u=!a||!a.length,p=!1,f=c&&n&&"image"===n.attr("data-template");c&&u||(l="load.fileinputimageorient",f?(i=a,a=null,i.css(d.previewSettings.image),s=e(document.createElement("div")).appendTo(n.find(".kv-file-content")),o=e(document.createElement("span")).insertBefore(i),i.css("visibility","hidden").removeClass("file-zoom-detail").appendTo(s)):p=!i.is(":visible"),i.off(l).on(l,function(){p&&(d.$preview.removeClass("hide-content"),n.find(".kv-file-content").css("visibility","hidden"));var e=i[0],l=a&&a.length?a[0]:null,c=e.offsetHeight,u=e.offsetWidth,m=t.getRotation(r);if(p&&(n.find(".kv-file-content").css("visibility","visible"),d.$preview.addClass("hide-content")),i.data("orientation",r),l&&a.data("orientation",r),5>r)return t.setTransform(e,m),void t.setTransform(l,m);var g=Math.atan(u/c),h=Math.sqrt(Math.pow(c,2)+Math.pow(u,2)),v=h?c/Math.cos(Math.PI/2+g)/h:1,w=" scale("+Math.abs(v)+")";t.setTransform(e,m+w),t.setTransform(l,m+w),f&&(i.css("visibility","visible").insertAfter(o).addClass("file-zoom-detail"),o.remove(),s.remove())}
91))},_validateImageOrientation:function(i,a,r,n,o,s,l,d){var c,u,p=this,f=null,m=p.autoOrientImage;return f=p._getExifObj(d),p.canOrientImage?(i.css("image-orientation",m?"from-image":"none"),void p._validateImage(r,n,o,s,l,d,f)):(u=t.getZoomSelector(r," img"),(c=f?f["0th"][piexif.ImageIFD.Orientation]:null)?(p.setImageOrientation(i,e(u),c,p._getFrame(r)),p._raise("fileimageoriented",{$img:i,file:a}),void p._validateImage(r,n,o,s,l,d,f)):void p._validateImage(r,n,o,s,l,d,f))},_validateImage:function(e,t,i,a,r,n,o){var s,l,d,c=this,u=c.$preview,p=c._getFrame(e),f=p.attr("data-fileindex"),m=p.find("img");i=i||"Untitled",m.one("load",function(){l=p.width(),d=u.width(),l>d&&m.css("width","100%"),s={ind:f,id:e,fileId:t},c._checkDimensions(f,"Small",m,p,i,"Width",s),c._checkDimensions(f,"Small",m,p,i,"Height",s),c.resizeImage||(c._checkDimensions(f,"Large",m,p,i,"Width",s),c._checkDimensions(f,"Large",m,p,i,"Height",s)),c._raise("fileimageloaded",[e]),c.fileManager.addImage(t,{ind:f,img:m,thumb:p,pid:e,typ:a,siz:r,validated:!1,imgData:n,exifObj:o}),p.data("exif",o),c._validateAllImages()}).one("error",function(){c._raise("fileimageloaderror",[e])})},_validateAllImages:function(){var t,i=this,a={val:0},r=i.fileManager.getImageCount(),n=i.resizeIfSizeMoreThan;r===i.fileManager.totalImages&&(i._raise("fileimagesloaded"),i.resizeImage&&e.each(i.fileManager.loadedImages,function(e,o){o.validated||(t=o.siz,t&&t>n*i.bytesToKB&&i._getResizedImage(e,o,a,r),o.validated=!0)}))},_getResizedImage:function(i,a,r,n){var o,s,l,d,c,u,p,f,m,g,h=this,v=e(a.img)[0],w=v.naturalWidth,b=v.naturalHeight,_=1,C=h.maxImageWidth||w,x=h.maxImageHeight||b,y=!(!w||!b),T=h.imageCanvas,P=h.imageCanvasContext,k=a.typ,F=a.pid,S=a.ind,E=a.thumb,I=a.exifObj;if(c=function(e,t,i){h.isAjaxUpload?h._showFileError(e,t,i):h._showError(e,t,i),h._setPreviewError(E)},f=h.fileManager.getFile(i),m={id:F,index:S,fileId:i},g=[i,F,S],(!f||!y||C>=w&&x>=b)&&(y&&f&&h._raise("fileimageresized",g),r.val++,r.val===n&&h._raise("fileimagesresized"),
92!y))return void c(h.msgImageResizeError,m,"fileimageresizeerror");k=k||h.resizeDefaultImageType,s=w>C,l=b>x,_="width"===h.resizePreference?s?C/w:l?x/b:1:l?x/b:s?C/w:1,h._resetCanvas(),w*=_,b*=_,T.width=w,T.height=b;try{P.drawImage(v,0,0,w,b),d=T.toDataURL(k,h.resizeQuality),I&&(p=window.piexif.dump(I),d=window.piexif.insert(p,d)),o=t.dataURI2Blob(d),h.fileManager.setFile(i,o),h._raise("fileimageresized",g),r.val++,r.val===n&&h._raise("fileimagesresized",[void 0,void 0]),o instanceof Blob||c(h.msgImageResizeError,m,"fileimageresizeerror")}catch(A){r.val++,r.val===n&&h._raise("fileimagesresized",[void 0,void 0]),u=h.msgImageResizeException.replace("{errors}",A.message),c(u,m,"fileimageresizeexception")}},_showProgress:function(){var e=this;e.$progress&&e.$progress.length&&e.$progress.show()},_hideProgress:function(){var e=this;e.$progress&&e.$progress.length&&e.$progress.hide()},_initBrowse:function(e){var i=this,a=i.$element;i.showBrowse?i.$btnFile=e.find(".btn-file").append(a):(a.appendTo(e).attr("tabindex",-1),t.addCss(a,"file-no-browse"))},_initClickable:function(){var i,a,r=this;r.isClickable&&(i=r.$dropZone,r.isAjaxUpload||(a=r.$preview.find(".file-default-preview"),a.length&&(i=a)),t.addCss(i,"clickable"),i.attr("tabindex",-1),r._handler(i,"click",function(t){var a=e(t.target);r.$errorContainer.is(":visible")||a.parents(".file-preview-thumbnails").length&&!a.parents(".file-default-preview").length||(r.$element.data("zoneClicked",!0).trigger("click"),i.blur())}))},_initCaption:function(){var e=this,i=e.initialCaption||"";return e.overwriteInitial||t.isEmpty(i)?(e.$caption.val(""),!1):(e._setCaption(i),!0)},_setCaption:function(i,a){var r,n,o,s,l,d,c=this;if(c.$caption.length){if(c.$captionContainer.removeClass("icon-visible"),a)r=e("<div>"+c.msgValidationError+"</div>").text(),s=c.fileManager.count(),s?(d=c.fileManager.getFirstFile(),l=1===s&&d?d.nameFmt:c._getMsgSelected(s)):l=c._getMsgSelected(c.msgNo),n=t.isEmpty(i)?l:i,o='<span class="'+c.msgValidationErrorClass+'">'+c.msgValidationErrorIcon+"</span>";else{if(t.isEmpty(i))return void c.$caption.attr("title","");r=e("<div>"+i+"</div>").text(),n=r,o=c._getLayoutTemplate("fileIcon")}c.$captionContainer.addClass("icon-visible"),c.$caption.attr("title",r).val(n),t.setHtml(c.$captionIcon,o)}},_createContainer:function(){var e=this,i={"class":"file-input file-input-new"+(e.rtl?" kv-rtl":"")},a=t.createElement(t.cspBuffer.stash(e._renderMain()));return t.cspBuffer.apply(a),a.insertBefore(e.$element).attr(i),e._initBrowse(a),e.theme&&a.addClass("theme-"+e.theme),a},_refreshContainer:function(){var e=this,i=e.$container,a=e.$element;a.insertAfter(i),t.setHtml(i,e._renderMain()),e._initBrowse(i),e._validateDisabled()},_validateDisabled:function(){var e=this;e.$caption.attr({readonly:e.isDisabled})},_setTabIndex:function(e,t){var i=this,a=i.tabIndexConfig[e];return t.setTokens({tabIndexConfig:void 0===a||null===a?"":'tabindex="'+a+'"'})},_renderMain:function(){var e=this,t=e.dropZoneEnabled?" file-drop-zone":"file-drop-disabled",i=e.showClose?e._getLayoutTemplate("close"):"",a=e.showPreview?e._getLayoutTemplate("preview").setTokens({"class":e.previewClass,dropClass:t}):"",r=e.isDisabled?e.captionClass+" file-caption-disabled":e.captionClass,n=e.captionTemplate.setTokens({"class":r+" kv-fileinput-caption"});return n=e._setTabIndex("caption",n),e.mainTemplate.setTokens({"class":e.mainClass+(!e.showBrowse&&e.showCaption?" no-browse":""),inputGroupClass:e.inputGroupClass,preview:a,close:i,caption:n,upload:e._renderButton("upload"),remove:e._renderButton("remove"),cancel:e._renderButton("cancel"),pause:e._renderButton("pause"),browse:e._renderButton("browse")})},_renderButton:function(e){var i=this,a=i._getLayoutTemplate("btnDefault"),r=i[e+"Class"],n=i[e+"Title"],o=i[e+"Icon"],s=i[e+"Label"],l=i.isDisabled?" disabled":"",d="button";switch(e){case"remove":if(!i.showRemove)return"";break;case"cancel":if(!i.showCancel)return"";r+=" kv-hidden";break;case"pause":if(!i.showPause)return"";r+=" kv-hidden";break;case"upload":if(!i.showUpload)return"";i.isAjaxUpload&&!i.isDisabled?a=i._getLayoutTemplate("btnLink").replace("{href}",i.uploadUrl):d="submit";break;case"browse":if(!i.showBrowse)return"";a=i._getLayoutTemplate("btnBrowse");break;default:return""}
92return a=i._setTabIndex(e,a),r+="browse"===e?" btn-file":" fileinput-"+e+" fileinput-"+e+"-button",t.isEmpty(s)||(s=' <span class="'+i.buttonLabelClass+'">'+s+"</span>"),a.setTokens({type:d,css:r,title:n,status:l,icon:o,label:s})},_renderThumbProgress:function(){var e=this;return'<div class="file-thumb-progress kv-hidden">'+e.progressInfoTemplate.setTokens({percent:101,status:e.msgUploadBegin,stats:""})+"</div>"},_renderFileFooter:function(e,i,a,r,n){var o,s,l=this,d=l.fileActionSettings,c=d.showRemove,u=d.showDrag,p=d.showUpload,f=d.showZoom,m=l._getLayoutTemplate("footer"),g=l._getLayoutTemplate("indicator"),h=n?d.indicatorError:d.indicatorNew,v=n?d.indicatorErrorTitle:d.indicatorNewTitle,w=g.setTokens({indicator:h,indicatorTitle:v});return a=l._getSize(a),s={type:e,caption:i,size:a,width:r,progress:"",indicator:w},l.isAjaxUpload?(s.progress=l._renderThumbProgress(),s.actions=l._renderFileActions(s,p,!1,c,f,u,!1,!1,!1)):s.actions=l._renderFileActions(s,!1,!1,!1,f,u,!1,!1,!1),o=m.setTokens(s),o=t.replaceTags(o,l.previewThumbTags)},_renderFileActions:function(e,t,i,a,r,n,o,s,l,d,c,u){var p=this;if(!e.type&&d&&(e.type="image"),p.enableResumableUpload?t=!1:"function"==typeof t&&(t=t(e)),"function"==typeof i&&(i=i(e)),"function"==typeof a&&(a=a(e)),"function"==typeof r&&(r=r(e)),"function"==typeof n&&(n=n(e)),!(t||i||a||r||n))return"";var f,m=s===!1?"":' data-url="'+s+'"',g="",h="",v=l===!1?"":' data-key="'+l+'"',w="",b="",_="",C=p._getLayoutTemplate("actions"),x=p.fileActionSettings,y=p.otherActionButtons.setTokens({dataKey:v,key:l}),T=o?x.removeClass+" disabled":x.removeClass;return a&&(w=p._getLayoutTemplate("actionDelete").setTokens({removeClass:T,removeIcon:x.removeIcon,removeTitle:x.removeTitle,dataUrl:m,dataKey:v,key:l})),t&&(b=p._getLayoutTemplate("actionUpload").setTokens({uploadClass:x.uploadClass,uploadIcon:x.uploadIcon,uploadTitle:x.uploadTitle})),i&&(_=p._getLayoutTemplate("actionDownload").setTokens({downloadClass:x.downloadClass,downloadIcon:x.downloadIcon,downloadTitle:x.downloadTitle,downloadUrl:c||p.initialPreviewDownloadUrl}),_=_.setTokens({filename:u,key:l})),r&&(g=p._getLayoutTemplate("actionZoom").setTokens({zoomClass:x.zoomClass,zoomIcon:x.zoomIcon,zoomTitle:x.zoomTitle})),n&&d&&(f="drag-handle-init "+x.dragClass,h=p._getLayoutTemplate("actionDrag").setTokens({dragClass:f,dragTitle:x.dragTitle,dragIcon:x.dragIcon})),C.setTokens({"delete":w,upload:b,download:_,zoom:g,drag:h,other:y})},_browse:function(e){var t=this;e&&e.isDefaultPrevented()||!t._raise("filebrowse")||(t.isError&&!t.isAjaxUpload&&t.clear(),t.focusCaptionOnBrowse&&t.$captionContainer.focus())},_change:function(i){var a=this;if(e(document.body).off("focusin.fileinput focusout.fileinput"),!a.changeTriggered){a._setLoading("show");var r,n,o,s,l=a.$element,d=arguments.length>1,c=a.isAjaxUpload,u=d?arguments[1]:l[0].files,p=a.fileManager.count(),f=t.isEmpty(l.attr("multiple")),m=!c&&f?1:a.maxFileC
92ount,g=a.maxTotalFileCount,h=g>0&&g>m,v=f&&p>0,w=function(t,i,r,n){var o=e.extend(!0,{},a._getOutData(null,{},{},u),{id:r,index:n}),s={id:r,index:n,file:i,files:u};return a.isPersistentError=!0,a._setLoading("hide"),c?a._showFileError(t,o):a._showError(t,s)},b=function(e,t,i){var r=i?a.msgTotalFilesTooMany:a.msgFilesTooMany;r=r.replace("{m}",t).replace("{n}",e),a.isError=w(r,null,null,null),a.$captionContainer.removeClass("icon-visible"),a._setCaption("",!0),a.$container.removeClass("file-input-new file-input-ajax-new")};if(a.reader=null,a._resetUpload(),a._hideFileIcon(),a.dropZoneEnabled&&a.$container.find(".file-drop-zone ."+a.dropZoneTitleClass).remove(),c||(u=i.target&&void 0===i.target.files?i.target.value?[{name:i.target.value.replace(/^.+\\/,"")}]:[]:i.target.files||{}),r=u,t.isEmpty(r)||0===r.length)return c||a.clear(),void a._raise("fileselectnone");if(a._resetErrors(),s=r.length,o=c?a.fileManager.count()+s:s,n=a._getFileCount(o,h?!1:void 0),m>0&&n>m){if(!a.autoReplace||s>m)return void b(a.autoReplace&&s>m?s:n,m);n>m&&a._resetPreviewThumbs(c)}else{if(h&&(n=a._getFileCount(o,!0),g>0&&n>g)){if(!a.autoReplace||s>m)return void b(a.autoReplace&&s>g?s:n,g,!0);n>m&&a._resetPreviewThumbs(c)}!c||v?(a._resetPreviewThumbs(!1),v&&a.clearFileStack()):!c||0!==p||a.previewCache.count(!0)&&!a.overwriteInitial||a._resetPreviewThumbs(!0)}a.readFiles(r),a._setLoading("hide")}},_abort:function(t){var i,a=this;return a.ajaxAborted&&"object"==typeof a.ajaxAborted&&void 0!==a.ajaxAborted.message?(i=e.extend(!0,{},a._getOutData(null),t),i.abortData=a.ajaxAborted.data||{},i.abortMessage=a.ajaxAborted.message,a._setProgress(101,a.$progress,a.msgCancelled),a._showFileError(a.ajaxAborted.message,i,"filecustomerror"),a.cancel(),a.unlock(),!0):!!a.ajaxAborted},_resetFileStack:function(){var t=this,i=0;t._getThumbs().each(function(){var a=e(this),r=a.attr("data-fileindex"),n=a.attr("id");"-1"!==r&&-1!==r&&(t._getThumbFile(a)?a.attr({"data-fileindex":"-1"}):(a.attr({"data-fileindex":i}),i++),t._getZoom(n).attr({"data-fileindex":a.attr("data-fileindex")}))})},_isFileSelectionValid:function(e){var t=this;return e=e||0,t.required&&!t.getFilesCount()?(t.$errorContainer.html(""),t._showFileError(t.msgFileRequired),!1):t.minFileCount>0&&t._getFileCount(e)<t.minFileCount?(t._noFilesError({}),!1):!0},_canPreview:function(e){var i=this;if(!(e&&i.showPreview&&i.$preview&&i.$preview.length))return!1;var a,r,n,o,s=e.name||"",l=e.type||"",d=(e.size||0)/i.bytesToKB,c=i._parseFileType(l,s),u=i.allowedPreviewTypes,p=i.allowedPreviewMimeTypes,f=i.allowedPreviewExtensions||[],m=i.disabledPreviewTypes,g=i.disabledPreviewMimeTypes,h=i.disabledPreviewExtensions||[],v=i.maxFilePreviewSize&&parseFloat(i.maxFilePreviewSize)||0,w=new RegExp("\\.("+f.join("|")+")$","i"),b=new RegExp("\\.("+h.join("|")+")$","i");return a=!u||-1!==u.indexOf(c),r=!p||-1!==p.indexOf(l),n=!f.length||t.compare(s,w),o=m&&-1!==m.indexOf(c)||g&&-1!==g.indexOf(l)||h.length&&t.compare(s,b)||v&&!isNaN(v)&&d>v,!o&&(a||r||n)},addToStack:function(e,t){this.fileManager.add(e,t)},clearFileStack:function(){var e=this;return e.fileManager.clear(),e._initResumableUpload(),e.enableResumableUpload?(null===e.showPause&&(e.showPause=!0),null===e.showCancel&&(e.showCancel=!1)):(e.showPause=!1,null===e.showCancel&&(e.showCancel=!0)),e.$element},getFileStack:function(){return this.fileManager.stack},getFileList:function(){return this.fileManager.list()},getFilesSize:function(){return this.fileManager.getTotalSize()},getFilesCount:function(e){var t=this,i=t.isAjaxUpload?t.fileManager.count():t._inputFileCount();return e&&(i+=t.previewCache.count(!0)),t._getFileCount(i)},_initCapStatus:function(e){var t=this,i=t.$caption;i.removeClass("is-valid file-processing"),e&&("processing"===e?i.addClass("file-processing"):i.addClass("is-valid"))},_setLoading:function(e){var t=this;t.$previewStatus.html("hide"===e?"":t.msgProcessing),t.$container.removeClass("file-thumb-loading"),t._initCapStatus("hide"===e?"":"processing"),"hide"!==e&&(t.dropZoneEnabled&&t.$container.find(".file-drop-zone ."+t.dropZoneTitleClass).remove(),t.$container.addClass("file-thumb-loading"))},_initFileSelected:function(){var t=this,i=t.$element,a=e(document.body),r="focusin.fileinput focusout.fileinput";a.length?a.off(r).on("focusout.fileinput",function(){t._setLoading("show")}).on("focusin.fileinput",function(){setTimeout(function(){t._setLoading("hide"),i.val()||t._setFileDropZoneTitle(),a.off(r)},2500)}):t._setLoading("hide")},readFiles:function(i){this.reader=new FileReader;var a,r=this,n=r.reader,o=r.$previewContainer,s=r.$previewStatus,l=r.msgLoading,d=r.msgProgress,c=r.previewInitId,u=i.length,p=r.fileTypeSettings,f=r.allowedFileTypes,m=f?f.length:0,g=r.allowedFileExtensions,h=t.isEmpty(g)?"":g.join(", "),v=function(t,n,o,s,l){var d,c=e.extend(!0,{},r._getOutData(null,{},{},i),{id:o,index:s,fileId:l}),p={id:o,index:s,fileId:l,file:n,files:i};r._previewDefault(n,!0),d=r._getFrame(o,!0),r._setLoading("hide"),r.isAjaxUpload?setTimeout(function(){a(s+1)},r.processDelay):(r.unlock(),u=0),r.removeFromPreviewOnError&&d.length?d.remove():(r._initFileActions(),d.find(".kv-file-upload").remove()),r.isPersistentError=!0,r.isError=r.isAjaxUpload?r._showFileError(t,c):r._showError(t,p),r._updateFileDetails(u)};r.fileManager.clearImages(),e.each(i,function(e,t){var i=r.fileTypeSettings.image;i&&i(t.type)&&r.fileManager.totalImages++}),a=function(w){var b,_=r.$errorContainer,C=r.fileManager;if(w>=u)return r.unlock(),r.duplicateErrors.length&&(b="<li>"+r.duplicateErrors.join("</li><li>")+"</li>",0===_.find("ul").length?t.setHtml(_,r.errorCloseButton+"<ul>"+b+"</ul>"):_.find("ul").append(b),_.fadeIn(r.fadeDelay),r._handler(_.find(".kv-error-close"),"click",function(){_.fadeOut(r.fadeDelay)}),r.duplicateErrors=[]),r.isAjaxUpload?(r._raise("filebatchselected",[C.stack]),0!==C.count()||r.isError||r.reset()):r._raise("filebatchselected",[i]),o.removeClass("file-thumb-loading"),r._initCapStatus("valid"),void s.html("");r.lock(!0);var x,y,T,P,k,F,S,E,I,A,D,z=i[w],j=r._getFileId(z),$=c+"-"+j,U=z&&z.size||0,M=r._getSize(U,!0),R=p.image,B=r._getFileName(z,""),O=U/r.bytesToKB,L="",N=t.createObjectURL(z),Z=0,H="",W=!1,q=0,
92V=function(){var e=!!C.loadedImages[j],t=d.setTokens({index:w+1,files:u,percent:50,name:B});setTimeout(function(){s.html(t),r._updateFileDetails(u),a(w+1)},r.processDelay),r._raise("fileloaded",[z,$,j,w,n])&&r.isAjaxUpload?e||C.add(z):e&&C.removeFile(j)};if(z){if(S=C.getId(z),m>0)for(x=0;m>x;x++)k=f[x],F=r.msgFileTypes[k]||k,H+=0===x?F:", "+F;if(B===!1)return void a(w+1);if(0===B.length)return y=r.msgInvalidFileName.replace("{name}",t.htmlEncode(t.getFileName(z),"[unknown]")),void v(y,z,$,w,S);if(t.isEmpty(g)||(L=new RegExp("\\.("+g.join("|")+")$","i")),r.isAjaxUpload&&C.exists(S)||r._getFrame($,!0).length){var K={id:$,index:w,fileId:S,file:z,files:i};return y=r.msgDuplicateFile.setTokens({name:B,size:M}),void(r.isAjaxUpload?(r.duplicateErrors.push(y),r.isDuplicateError=!0,r._raise("fileduplicateerror",[z,S,B,M,$,w]),a(w+1),r._updateFileDetails(u)):(r._showError(y,K),r.unlock(),u=0,r._clearFileInput(),r.reset(),r._updateFileDetails(u)))}if(r.maxFileSize>0&&O>r.maxFileSize)return y=r.msgSizeTooLarge.setTokens({name:B,size:M,maxSize:r._getSize(r.maxFileSize*r.bytesToKB,!0)}),void v(y,z,$,w,S);if(null!==r.minFileSize&&O<=t.getNum(r.minFileSize))return y=r.msgSizeTooSmall.setTokens({name:B,size:M,minSize:r._getSize(r.minFileSize*r.bytesToKB,!0)}),void v(y,z,$,w,S);if(!t.isEmpty(f)&&t.isArray(f)){for(x=0;x<f.length;x+=1)P=f[x],I=p[P],Z+=I&&"function"==typeof I&&I(z.type,t.getFileName(z))?1:0;if(0===Z)return y=r.msgInvalidFileType.setTokens({name:B,types:H}),void v(y,z,$,w,S)}if(0===Z&&!t.isEmpty(g)&&t.isArray(g)&&!t.isEmpty(L)&&(T=t.compare(B,L),Z+=t.isEmpty(T)?0:T.length,0===Z))return y=r.msgInvalidFileExtension.setTokens({name:B,extensions:h}),void v(y,z,$,w,S);if(!r._canPreview(z))return E=r._raise("filebeforeload",[z,w,n]),r.isAjaxUpload&&E&&C.add(z),r.showPreview&&E&&(o.addClass("file-thumb-loading"),r._initCapStatus("processing"),r._previewDefault(z),r._initFileActions()),void setTimeout(function(){E&&r._updateFileDetails(u),a(w+1),r._raise("fileloaded",[z,$,j,w])},10);A=R(z.type,B),s.html(l.replace("{index}",w+1).replace("{files}",u)),o.addClass("file-thumb-loading"),r._initCapStatus("processing"),n.onerror=function(e){r._errorHandler(e,B)},n.onload=function(i){var a,l,d,c,u,f,m=[],g=function(){var e=new FileReader;e.onerror=function(e){r._errorHandler(e,B)},e.onload=function(e){return r.isAjaxUpload&&!r._raise("filebeforeload",[z,w,n])?(W=!0,r._resetCaption(),n.abort(),s.html(""),o.removeClass("file-thumb-loading"),r._initCapStatus("valid"),void r.enable()):(r._previewFile(w,z,e,N,l),r._initFileActions(),void V())},e.readAsDataURL(z)};if(l={name:B,type:z.type},e.each(p,function(e,t){"object"!==e&&"other"!==e&&"function"==typeof t&&t(z.type,B)&&q++}),0===q){for(d=new Uint8Array(i.target.result),x=0;x<d.length;x++)c=d[x].toString(16),m.push(c);if(a=m.join("").toLowerCase().substring(0,8),f=t.getMimeType(a,"",""),t.isEmpty(f)&&(u=t.arrayBuffer2String(n.result),f=t.isSvg(u)?"image/svg+xml":t.getMimeType(a,u,z.type)),l={name:B,type:f},A=R(f,""))return void g(D)}return r.isAjaxUpload&&!r._raise("filebeforeload",[z,w,n])?(W=!0,r._resetCaption(),n.abort(),s.html(""),o.removeClass("file-thumb-loading"),r._initCapStatus("valid"),void r.enable()):(r._previewFile(w,z,i,N,l),r._initFileActions(),void V())},n.onprogress=function(e){if(e.lengthComputable){var t=e.loaded/e.total*100,i=Math.ceil(t);y=d.setTokens({index:w+1,files:u,percent:i,name:B}),setTimeout(function(){W||s.html(y)},r.processDelay)}},A?n.readAsDataURL(z):n.readAsArrayBuffer(z)}},a(0),r._updateFileDetails(u)},lock:function(e){var t=this,i=t.$container;return t._resetErrors(),t.disable(),!e&&t.showCancel&&i.find(".fileinput-cancel").show(),!e&&t.showPause&&i.find(".fileinput-pause").show(),t._initCapStatus("processing"),t._raise("filelock",[t.fileManager.stack,t._getExtraData()]),t.$element},unlock:function(e){var t=this,i=t.$container;return void 0===e&&(e=!0),t.enable(),i.removeClass("is-locked"),t.showCancel&&i.find(".fileinput-cancel").hide(),t.showPause&&i.find(".fileinput-pause").hide(),e&&t._resetFileStack(),t._initCapStatus(),t._raise("fileunlock",[t.fileManager.stack,t._getExtraData()]),t.$element},resume:function(){var e=this,t=e.fileManager,i=!1,a=e.resumableManager;return t.bpsLog=[],t.bps=0,e.enableResumableUpload?(e.paused?e._toggleResumableProgress(e.progressPauseTemplate,e.msgUploadResume):i=!0,e.paused=!1,i&&e._toggleResumableProgress(e.progressInfoTemplate,e.msgUploadBegin),setTimeout(function(){a.upload()},e.processDelay),e.$element):e.$element},paste:function(e){var t=this,i=e.originalEvent,a=i.clipboardData&&i.clipboardData.files||null;return a&&t._dropFiles(e,a),t.$element},pause:function(){var t,i=this,a=i.resumableManager,r=i.ajaxRequests,n=r.length,o=a.getProgress(),s=i.fileActionSettings,l=i.taskManager,d=l.getPool(a.id);if(!i.enableResumableUpload)return i.$element;if(d&&d.cancel(),i._raise("fileuploadpaused",[i.fileManager,a]),n>0)for(t=0;n>t;t+=1)i.paused=!0,r[t].abort();return i.showPreview&&i._getThumbs().each(function(){var t,a=e(this),r=i._getLayoutTemplate("stats"),n=a.find(".file-upload-indicator");a.removeClass("file-uploading"),n.attr("title")===s.indicatorLoadingTitle&&(i._setThumbStatus(a,"Paused"),t=r.setTokens({pendingTime:i.msgPaused,uploadSpeed:""}),i.paused=!0,i._setProgress(o,a.find(".file-thumb-progress"),o+"%",t)),i._getThumbFile(a)||a.find(".kv-file-remove").removeClass("disabled").removeAttr("disabled")}),i._setProgress(101,i.$progress,i.msgPaused),i.$element},cancel:function(){var t,i=this,a=i.ajaxRequests,r=i.resumableManager,n=i.taskManager,o=r?n.getPool(r.id):void 0,s=a.length;if(i.enableResumableUpload&&o?(o.cancel().done(function(){i._setProgressCancelled()}),r.reset(),i._raise("fileuploadcancelled",[i.fileManager,r])):(i.ajaxPool&&i.ajaxPool.cancel(),i._raise("fileuploadcancelled",[i.fileManager])),i._initAjax(),s>0)for(t=0;s>t;t+=1)i.cancelling=!0,a[t].abort();return i._getThumbs().each(function(){var t=e(this),a=t.find(".file-thumb-progress");t.removeClass("file-uploading"),i._setProgress(0,a),a.hide(),i._getThumbFile(t)||(t.find(".kv-file-upload").removeClass("disabled").removeAttr("disabled"),t.find(".kv-file-remove").removeClass("disabled").removeAttr("disabled")),i.unlock()}),setTimeout(function(){i._setProgressCancelled()},i.processDelay),i.$element},clear:function(){var i,a=this;if(a._raise("fileclear"))return a.$btnUpload.removeAttr("disabled"),a._getThumbs().find("video,audio,img").each(function(){t.cleanMemory(e(this))}),a._clearFileInput(),a._resetUpload(),a.clearFileStack(),a.isDuplicateError=!1,a.isPersistentError=!1,a._resetErrors(!0),a._hasInitialPreview()?(a._showFileIcon(),a._resetPreview(),a._initPreviewActions(),a.$container.removeClass("file-input-new")):(a._getThumbs().each(function(){a._clearObjects(e(this))}),a.isAjaxUpload&&(a.previewCache.data={}
92),a.$preview.html(""),i=!a.overwriteInitial&&a.initialCaption.length>0?a.initialCaption:"",a.$caption.attr("title","").val(i),t.addCss(a.$container,"file-input-new"),a._validateDefaultPreview()),0===a.$container.find(t.FRAMES).length&&(a._initCaption()||a.$captionContainer.removeClass("icon-visible")),a._hideFileIcon(),a.focusCaptionOnClear&&a.$captionContainer.focus(),a._setFileDropZoneTitle(),a._raise("filecleared"),a.$element},reset:function(){var e=this;if(e._raise("filereset"))return e.lastProgress=0,e._resetPreview(),e.$container.find(".fileinput-filename").text(""),t.addCss(e.$container,"file-input-new"),e.getFrames().length&&e.$container.removeClass("file-input-new"),e.clearFileStack(),e._setFileDropZoneTitle(),e.$element},disable:function(){var e=this,i=e.$container;return e.isDisabled=!0,e._raise("filedisabled"),e.$element.attr("disabled","disabled"),i.addClass("is-locked"),t.addCss(i.find(".btn-file"),"disabled"),i.find(".kv-fileinput-caption").addClass("file-caption-disabled"),i.find(".fileinput-remove, .fileinput-upload, .file-preview-frame button").attr("disabled",!0),e._initDragDrop(),e.$element},enable:function(){var e=this,t=e.$container;return e.isDisabled=!1,e._raise("fileenabled"),e.$element.removeAttr("disabled"),t.removeClass("is-locked"),t.find(".kv-fileinput-caption").removeClass("file-caption-disabled"),t.find(".fileinput-remove, .fileinput-upload, .file-preview-frame button").removeAttr("disabled"),t.find(".btn-file").removeClass("disabled"),e._initDragDrop(),e.$element},upload:function(){var i,a,r=this,n=r.fileManager,o=n.count(),s=r.taskManager,l=!e.isEmptyObject(r._getExtraData());if(n.bpsLog=[],n.bps=0,r.isAjaxUpload&&!r.isDisabled&&r._isFileSelectionValid(o)){if(r.lastProgress=0,r._resetUpload(),0===o&&!l)return void r._showFileError(r.msgUploadEmpty);if(r.cancelling=!1,r._showProgress(),r.lock(),0===o&&l)return r._setProgress(2),void r._uploadExtraOnly();if(r.enableResumableUpload)return r.resume();if(r.uploadAsync||r.enableResumableUpload){if(a=r._getOutData(null),!r._checkBatchPreupload(a))return;r.fileBatchCompleted=!1,r.uploadCache=[],e.each(r.getFileStack(),function(e){var t=r._getThumbId(e);r.uploadCache.push({id:t,content:null,config:null,tags:null,append:!0})}),r.$preview.find(".file-preview-initial").removeClass(t.SORT_CSS),r._initSortable()}if(r._setProgress(2),r.hasInitData=!1,r.uploadAsync){i=0;var d=r.ajaxPool=s.addPool(t.uniqId());return e.each(r.getFileStack(),function(e){d.addTask(e+i,function(t){r._uploadSingle(i,e,!0,t)}),i++}),void d.run(r.maxAjaxThreads).done(function(){r._log("Async upload batch completed successfully."),r._raise("filebatchuploadsuccess",[n.stack,r._getExtraData()])}).fail(function(){r._log("Async upload batch completed with errors."),r._raise("filebatchuploaderror",[n.stack,r._getExtraData()])})}return r._uploadBatch(),r.$element}},destroy:function(){var t=this,i=t.$form,a=t.$container,r=t.$element,n=t.namespace;return e(document).off(n),e(window).off(n),i&&i.length&&i.off(n),t.isAjaxUpload&&t._clearFileInput(),t._cleanup(),t._initPreviewCache(),r.insertBefore(a).off(n).removeData(),a.off().remove(),r},refresh:function(i){var a=this,r=a.$element;return i="object"!=typeof i||t.isEmpty(i)?a.options:e.extend(!0,{},a.options,i),a._init(i,!0),a._listen(),r},zoom:function(e){var t=this,i=t._getFrame(e);t._showModal(i)},getExif:function(e){var t=this,i=t._getFrame(e);return i&&i.data("exif")||null},getFrames:function(i){var a,r=this;return i=i||"",a=r.$preview.find(t.FRAMES+i),r.reversePreviewOrder&&(a=e(a.get().reverse())),a},getPreview:function(){var e=this;return{content:e.initialPreview,config:e.initialPreviewConfig,tags:e.initialPreviewThumbTags}}},e.fn.fileinput=function(a){if(t.hasFileAPISupport()||t.isIE(9)){var r=Array.apply(null,arguments),n=[];switch(r.shift(),this.each(function(){var o,s=e(this),l=s.data("fileinput"),d="object"==typeof a&&a,c=d.theme||s.data("theme"),u={},p={},f=d.language||s.data("language")||e.fn.fileinput.defaults.language||"en";l||(c&&(p=e.fn.fileinputThemes[c]||{}),"en"===f||t.isEmpty(e.fn.fileinputLocales[f])||(u=e.fn.fileinputLocales[f]||{}),o=e.extend(!0,{},e.fn.fileinput.defaults,p,e.fn.fileinputLocales.en,u,d,s.data()),l=new i(this,o),s.data("fileinput",l)),"string"==typeof a&&n.push(l[a].apply(l,r))}),n.length){case 0:return this;case 1:return n[0];default:return n}}};var a='class="kv-preview-data file-preview-pdf" src="{renderer}?file={data}" {style}',r="btn btn-sm btn-kv "+t.defaultButtonCss(),n="btn "+t.defaultButtonCss();e.fn.fileinput.defaults={language:"en",bytesToKB:1024,showCaption:!0,showBrowse:!0,showPreview:!0,showRemove:!0,showUpload:!0,showUploadStats:!0,showCancel:null,showPau
92se:null,showClose:!0,showUploadedThumbs:!0,showConsoleLogs:!1,browseOnZoneClick:!1,autoReplace:!1,showDescriptionClose:!0,autoOrientImage:function(){var e=window.navigator.userAgent,t=!!e.match(/WebKit/i),i=!!e.match(/iP(od|ad|hone)/i),a=i&&t&&!e.match(/CriOS/i);return!a},autoOrientImageInitial:!0,showExifErrorLog:!1,required:!1,rtl:!1,hideThumbnailContent:!1,encodeUrl:!0,focusCaptionOnBrowse:!0,focusCaptionOnClear:!0,generateFileId:null,previewClass:"",captionClass:"",frameClass:"krajee-default",mainClass:"",inputGroupClass:"",mainTemplate:null,fileSizeGetter:null,initialCaption:"",initialPreview:[],initialPreviewDelimiter:"*$$*",initialPreviewAsData:!1,initialPreviewFileType:"image",initialPreviewConfig:[],initialPreviewThumbTags:[],previewThumbTags:{},initialPreviewShowDelete:!0,initialPreviewDownloadUrl:"",removeFromPreviewOnError:!1,deleteUrl:"",deleteExtraData:{},overwriteInitial:!0,sanitizeZoomCache:function(e){var i=t.createElement(e);return i.find("input,textarea,select,datalist,form,.file-thumbnail-footer").remove(),i.html()},previewZoomButtonIcons:{prev:'<i class="bi-chevron-left"></i>',next:'<i class="bi-chevron-right"></i>',toggleheader:'<i class="bi-arrows-expand"></i>',fullscreen:'<i class="bi-arrows-fullscreen"></i>',borderless:'<i class="bi-arrows-angle-expand"></i>',close:'<i class="bi-x-lg"></i>'},previewZoomButtonClasses:{prev:"btn btn-default btn-outline-secondary btn-navigate",next:"btn btn-default btn-outline-secondary btn-navigate",toggleheader:r,fullscreen:r,borderless:r,close:r},previewTemplates:{},previewContentTemplates:{},preferIconicPreview:!1,preferIconicZoomPreview:!1,allowedFileTypes:null,allowedFileExtensions:null,allowedPreviewTypes:void 0,allowedPreviewMimeTypes:null,allowedPreviewExtensions:null,disabledPreviewTypes:void 0,disabledPreviewExtensions:["msi","exe","com","zip","rar","app","vb","scr"],disabledPreviewMimeTypes:null,defaultPreviewContent:null,customLayoutTags:{},customPreviewTags:{},previewFileIcon:'<i class="bi-file-earmark-fill"></i>',previewFileIconClass:"file-other-icon",previewFileIconSettings:{},previewFileExtSettings:{},buttonLabelClass:"hidden-xs",browseIcon:'<i class="bi-folder2-open"></i> ',browseClass:"btn btn-primary",removeIcon:'<i class="bi-trash"></i>',removeClass:n,cancelIcon:'<i class="bi-slash-circle"></i>',cancelClass:n,pauseIcon:'<i class="bi-pause-fill"></i>',pauseClass:n,uploadIcon:'<i class="bi-upload"></i>',uploadClass:n,uploadUrl:null,uploadUrlThumb:null,uploadAsync:!0,uploadParamNames:{chunkCount:"chunkCount",chunkIndex:"chunkIndex",chunkSize:"chunkSize",chunkSizeStart:"chunkSizeStart",chunksUploaded:"chunksUploaded",fileBlob:"fileBlob",fileId:"fileId",fileName:"fileName",fileRelativePath:"fileRelativePath",fileSize:"fileSize",retryCount:"retryCount"},maxAjaxThreads:5,fadeDelay:800,processDelay:100,bitrateUpdateDelay:500,queueDelay:10,progressDelay:0,enableResumableUpload:!1,resumableUploadOptions:{fallback:null,testUrl:null,chunkSize:2048,maxThreads:4,maxRetries:3,showErrorLog:!0,retainErrorHistory:!0,skipErrorsAndProceed:!1},uploadExtraData:{},zoomModalHeight:485,minImageWidth:null,minImageHeight:null,maxImageWidth:null,maxImageHeight:null,resizeImage:!1,resizePreference:"width",resizeQuality:.92,resizeDefaultImageType:"image/jpeg",resizeIfSizeMoreThan:0,minFileSize:-1,maxFileSize:0,maxFilePreviewSize:25600,minFileCount:0,maxFileCount:0,maxTotalFileCount:0,validateInitialCount:!1,msgValidationErrorClass:"text-danger",msgValidationErrorIcon:'<i class="bi-exclamation-circle-fill"></i> ',msgErrorClass:"file-error-message",progressThumbClass:"progress-bar progress-bar-striped active progress-bar-animated",progressClass:"progress-bar bg-success progress-bar-success progress-bar-striped active progress-bar-animated",progressInfoClass:"progress-bar bg-info progress-bar-info progress-bar-striped active progress-bar-animated",progressCompleteClass:"progress-bar bg-success progress-bar-success",progressPauseClass:"progress-bar bg-primary progress-bar-primary progress-bar-striped active progress-bar-animated",progressErrorClass:"progress-bar bg-danger progress-bar-danger",progressUploadThreshold:99,previewFileType:"image",elCaptionContainer:null,elCaptionText:null,elPreviewContainer:null,elPreviewImage:null,elPreviewStatus:null,elErrorContainer:null,errorCloseButton:void 0,slugCallback:null,dropZoneEnabled:!0,dropZoneTitleClass:"file-drop-zone-title",fileActionSettings:{},otherActionButtons:"",textEncoding:"UTF-8",preProcessUpload:null,ajaxSettings:{},ajaxDeleteSettings:{},showAjaxErrorDetails:!0,mergeAjaxCallbacks:!1,mergeAjaxDeleteCallbacks:!1,retryErrorUploads:!0,reversePreviewOrder:!1,usePdfRenderer:function(){var e=!!window.MSInputMethodContext&&!!document.documentMode;return!!navigator.userAgent.match(/(iPod|iPhone|iPad|Android)/i)||e},pdfRendererUrl:"",pdfRendererTemplate:"<iframe "+a+"></iframe>",tabIndexConfig:{browse:500,remove:500,upload:500,cancel:null,pause:null,modal:-1}},e.fn.fileinputLocales.en={sizeUnits:["B","KB","MB","GB","TB","PB","EB","ZB","YB"],bitRateUnits:["B/s","KB/s","MB/s","GB/s","TB/s","PB/s","EB/s","ZB/s","YB/s"],fileSingle:"file",filePlural:"files",browseLabel:"Browse &hellip;",removeLabel:"Remove",removeTitle:"Clear all unprocessed files",cancelLabel:"Cancel",cancelTitle:"Abort ongoing upload",pauseLabel:"Pause",pauseTitle:"Pause ongoing upload",uploadLabel:"Upload",uploadTitle:"Upload selected files",msgNo:"No",msgNoFilesSelected:"No files selected",msgCancelled:"Cancelled",msgPaused:"Paused",msgPlaceholder:"Select {files} ...",msgZoomModalHeading:"Detailed Preview",msgFileRequired:"You must select a file to upload.",msgSizeTooSmall:'File "{name}" (<b>{size}</b>) is too small and must be larger than <b>{minSize}</b>.',msgSizeTooLarge:'File "{name}" (<b>{size}</b>) exceeds maximum allowed upload size of <b>{maxSize}</b>.',msgFilesTooLess:"You must select at least <b>{n}</b> {files} to upload.",msgFilesTooMany:"Number of files selected for upload <b>({n})</b> exceeds maximum allowed limit of <b>{m}</b>.",msgTotalFilesTooMany:"You can upload a maximum of <b>{m}</b> files (<b>{n}</b> files detected).",msgFileNotFound:'File "{name}" not found!',msgFileSecured:'Security restrictions prevent reading the file "{name}".',msgFileNotReadable:'File "{name}" is not readable.',msgFilePreviewAborted:'File preview aborted for "{name}".',msgFilePreviewError:'An error occurred while reading the file "{name}".',msgInvalidFileName:'Invalid or unsupported characters in file name "{name}".',msgInvalidFileType:'Invalid type for file "{name}". Only "{types}" files are supported.',msgInvalidFileExtension:'Invalid extension for file "{name}". Only "{extensions}" files are supported.',msgFileTypes:{image:"image",html:"HTML",text:"text",video:"video",audio:"audio",flash:"flash",pdf:"PDF",object:"object"},msgUploadAborted:"The file upload was aborted",msgUploadThreshold:"Processing &hellip;",msgUploadBegin:"Initializing &hellip;",msgUploadEnd:"Done",msgUploadResume:"Resuming upload &hellip;",msgUploadEmpty:"No valid data available for upload.",msgUploadError:"Upload Error",msgDeleteError:"Delete Error",msgProgressError:"Error",
93msgValidationError:"Validation Error",msgLoading:"Loading file {index} of {files} &hellip;",msgProgress:"Loading file {index} of {files} - {name} - {percent}% completed.",msgSelected:"{n} {files} selected",msgProcessing:"Processing ...",msgFoldersNotAllowed:"Drag & drop files only! {n} folder(s) dropped were skipped.",msgImageWidthSmall:'Width of image file "{name}" must be at least {size} px.',msgImageHeightSmall:'Height of image file "{name}" must be at least {size} px.',msgImageWidthLarge:'Width of image file "{name}" cannot exceed {size} px.',msgImageHeightLarge:'Height of image file "{name}" cannot exceed {size} px.',msgImageResizeError:"Could not get the image dimensions to resize.",msgImageResizeException:"Error while resizing the image.<pre>{errors}</pre>",msgAjaxError:"Something went wrong with the {operation} operation. Please try again later!",msgAjaxProgressError:"{operation} failed",msgDuplicateFile:'File "{name}" of same size "{size}" has already been selected earlier. Skipping duplicate selection.',msgResumableUploadRetriesExceeded:"Upload aborted beyond <b>{max}</b> retries for file <b>{file}</b>! Error Details: <pre>{error}</pre>",msgPendingTime:"{time} remaining",msgCalculatingTime:"calculating time remaining",ajaxOperations:{deleteThumb:"file delete",uploadThumb:"file upload",uploadBatch:"batch file upload",uploadExtra:"form data upload"},dropZoneTitle:"Drag & drop files here &hellip;",dropZoneClickTitle:"<br>(or click to select {files})",previewZoomButtonTitles:{prev:"View previous file",next:"View next file",toggleheader:"Toggle header",fullscreen:"Toggle full screen",borderless:"Toggle borderless mode",close:"Close detailed preview"}},e.fn.fileinput.Constructor=i,e(document).ready(function(){var t=e("input.file[type=file]");t.length&&t.fileinput()})});
94/*============================================================================================================================*/
95/* Load More Plugin */
96!function (t, i, n, s) { "use strict"; var o = "loadMore"; function a(i, n) { this.self = this, this.elem = i, this.$elem = t(i), this.metadata = this.$elem.data("options"), this.options = t.extend({}, t.fn[o].default, this.metadata, n), this.lists = t(i).children(this.options.selector) } t.extend(a.prototype, { inIt: function () { this.lists.length <= this.options.limit ? this.Out() : this.More(), this.firstLoad = [], this.firstLoad.push(this.lists.splice(0, this.options.limit)), this.show(this.firstLoad[0]) }, More: function () { var i = this, n = 0; t(i.options.loadBtn).on("click", function () { n += 1, i.lists.length && (i.firstLoad.push(i.lists.splice(0, i.options.load)), i.show(i.firstLoad[n])), 0 == i.lists.length && i.Out() }) }, show: function (i) { t(i).fadeIn(), this.options.animate && this.animateCss(this.options.animateIn, i) }, Out: function () { t(this.options.loadBtn).hide() }, animateCss: function (i, n) { t(n).addClass("animated " + i).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend", function () { t(n).removeClass("animated " + i) }) } }), t.fn[o] = function (t) { return this.each(function () { new a(this, t).inIt() }) }, t.fn[o].default = { selector: "", limit: 3, load: 3, loadBtn: "", animate: !0, animateIn: "fadeInUp" } }(jQuery, window, document);
97/*============================================================================================================================*/
98//Date Time Picker
99!function (e, t) { "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : e.moment = t() }(this, function () { "use strict"; var e, t; function n() { return e.apply(null, arguments) } function s(e) { return e instanceof Array || "[object Array]" === Object.prototype.toString.call(e) } function i(e) { return null != e && "[object Object]" === Object.prototype.toString.call(e) } function r(e) { return void 0 === e } function a(e) { return "number" == typeof e || "[object Number]" === Object.prototype.toString.call(e) } function o(e) { return e instanceof Date || "[object Date]" === Object.prototype.toString.call(e) } function u(e, t) { var n, s = []; for (n = 0; n < e.length; ++n)s.push(t(e[n], n)); return s } function l(e, t) { return Object.prototype.hasOwnProperty.call(e, t) } function d(e, t) { for (var n in t) l(t, n) && (e[n] = t[n]); return l(t, "toString") && (e.toString = t.toString), l(t, "valueOf") && (e.valueOf = t.valueOf), e } function h(e, t, n, s) { return Ot(e, t, n, s, !0).utc() } function c(e) { return null == e._pf && (e._pf = { empty: !1, unusedTokens: [], unusedInput: [], overflow: -2, charsLeftOver: 0, nullInput: !1, invalidMonth: null, invalidFormat: !1, userInvalidated: !1, iso: !1, parsedDateParts: [], meridiem: null, rfc2822: !1, weekdayMismatch: !1 }), e._pf } function f(e) { if (null == e._isValid) { var n = c(e), s = t.call(n.parsedDateParts, function (e) { return null != e }), i = !isNaN(e._d.getTime()) && n.overflow < 0 && !n.empty && !n.invalidMonth && !n.invalidWeekday && !n.weekdayMismatch && !n.nullInput && !n.invalidFormat && !n.userInvalidated && (!n.meridiem || n.meridiem && s); if (e._strict && (i = i && 0 === n.charsLeftOver && 0 === n.unusedTokens.length && void 0 === n.bigHour), null != Object.isFrozen && Object.isFrozen(e)) return i; e._isValid = i } return e._isValid } function m(e) { var t = h(NaN); return null != e ? d(c(t), e) : c(t).userInvalidated = !0, t } t = Array.prototype.some ? Array.prototype.some : function (e) { for (var t = Object(this), n = t.length >>> 0, s = 0; s < n; s++)if (s in t && e.call(this, t[s], s, t)) return !0; return !1 }; var _ = n.momentProperties = []; function y(e, t) { var n, s, i; if (r(t._isAMomentObject) || (e._isAMomentObject = t._isAMomentObject), r(t._i) || (e._i = t._i), r(t._f) || (e._f = t._f), r(t._l) || (e._l = t._l), r(t._strict) || (e._strict = t._strict), r(t._tzm) || (e._tzm = t._tzm), r(t._isUTC) || (e._isUTC = t._isUTC), r(t._offset) || (e._offset = t._offset), r(t._pf) || (e._pf = c(t)), r(t._locale) || (e._locale = t._locale), _.length > 0) for (n = 0; n < _.length; n++)r(i = t[s = _[n]]) || (e[s] = i); return e } var g = !1; function p(e) { y(this, e), this._d = new Date(null != e._d ? e._d.getTime() : NaN), this.isValid() || (this._d = new Date(NaN)), !1 === g && (g = !0, n.updateOffset(this), g = !1) } function v(e) { return e instanceof p || null != e && null != e._isAMomentObject } function w(e) { return e < 0 ? Math.ceil(e) || 0 : Math.floor(e) } function M(e) { var t = +e, n = 0; return 0 !== t && isFinite(t) && (n = w(t)), n } function S(e, t, n) { var s, i = Math.min(e.length, t.length), r = Math.abs(e.length - t.length), a = 0; for (s = 0; s < i; s++)(n && e[s] !== t[s] || !n && M(e[s]) !== M(t[s])) && a++; return a + r } function D(e) { !1 === n.suppressDeprecationWarnings && "undefined" != typeof console && console.warn && console.warn("Deprecation warning: " + e) } function k(e, t) { var s = !0; return d(function () { if (null != n.deprecationHandler && n.deprecationHandler(null, e), s) { for (var i, r = [], a = 0; a < arguments.length; a++) { if (i = "", "object" == typeof arguments[a]) { for (var o in i += "\n[" + a + "] ", arguments[0]) i += o + ": " + arguments[0][o] + ", "; i = i.slice(0, -2) } else i = arguments[a]; r.push(i) } D(e + "\nArguments: " + Array.prototype.slice.call(r).join("") + "\n" + (new Error).stack), s = !1 } return t.apply(this, arguments) }, t) } var Y, O = {}; function T(e, t) { null != n.deprecationHandler && n.deprecationHandler(e, t), O[e] || (D(t), O[e] = !0) } function x(e) { return e instanceof Function || "[object Function]" === Object.prototype.toString.call(e) } function b(e, t) { var n, s = d({}, e); for (n in t) l(t, n) && (i(e[n]) && i(t[n]) ? (s[n] = {}, d(s[n], e[n]), d(s[n], t[n])) : null != t[n] ? s[n] = t[n] : delete s[n]); for (n in e) l(e, n) && !l(t, n) && i(e[n]) && (s[n] = d({}, s[n])); return s } function P(e) { null != e && this.set(e) } n.suppressDeprecationWarnings = !1, n.deprecationHandler = null, Y = Object.keys ? Object.keys : function (e) { var t, n = []; for (t in e) l(e, t) && n.push(t); return n }; var W = {}; function H(e, t) { var n = e.toLowerCase(); W[n] = W[n + "s"] = W[t] = e } function R(e) { return "string" == typeof e ? W[e] || W[e.toLowerCase()] : void 0 } function C(e) { var t, n, s = {}; for (n in e) l(e, n) && (t = R(n)) && (s[t] = e[n]); return s } var F = {};
vendor: 5,583 bytes, line 99
99 function L(e, t) { F[e] = t } function U(e, t, n) { var s = "" + Math.abs(e), i = t - s.length; return (e >= 0 ? n ? "+" : "" : "-") + Math.pow(10, Math.max(0, i)).toString().substr(1) + s } var N = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, G = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, V = {}, E = {}; function I(e, t, n, s) { var i = s; "string" == typeof s && (i = function () { return this[s]() }), e && (E[e] = i), t && (E[t[0]] = function () { return U(i.apply(this, arguments), t[1], t[2]) }), n && (E[n] = function () { return this.localeData().ordinal(i.apply(this, arguments), e) }) } function A(e, t) { return e.isValid() ? (t = j(t, e.localeData()), V[t] = V[t] || function (e) { var t, n, s, i = e.match(N); for (t = 0, n = i.length; t < n; t++)E[i[t]] ? i[t] = E[i[t]] : i[t] = (s = i[t]).match(/\[[\s\S]/) ? s.replace(/^\[|\]$/g, "") : s.replace(/\\/g, ""); return function (t) { var s, r = ""; for (s = 0; s < n; s++)r += x(i[s]) ? i[s].call(t, e) : i[s]; return r } }(t), V[t](e)) : e.localeData().invalidDate() } function j(e, t) { var n = 5; function s(e) { return t.longDateFormat(e) || e } for (G.lastIndex = 0; n >= 0 && G.test(e);)e = e.replace(G, s), G.lastIndex = 0, n -= 1; return e } var Z = /\d/, z = /\d\d/, $ = /\d{3}/, q = /\d{4}/, J = /[+-]?\d{6}/, B = /\d\d?/, Q = /\d\d\d\d?/, X = /\d\d\d\d\d\d?/, K = /\d{1,3}/, ee = /\d{1,4}/, te = /[+-]?\d{1,6}/, ne = /\d+/, se = /[+-]?\d+/, ie = /Z|[+-]\d\d:?\d\d/gi, re = /Z|[+-]\d\d(?::?\d\d)?/gi, ae = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, oe = {}; function ue(e, t, n) { oe[e] = x(t) ? t : function (e, s) { return e && n ? n : t } } function le(e, t) { return l(oe, e) ? oe[e](t._strict, t._locale) : new RegExp(de(e.replace("\\", "").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (e, t, n, s, i) { return t || n || s || i }))) } function de(e) { return e.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&") } var he = {}; function ce(e, t) { var n, s = t; for ("string" == typeof e && (e = [e]), a(t) && (s = function (e, n) { n[t] = M(e) }), n = 0; n < e.length; n++)he[e[n]] = s } function fe(e, t) { ce(e, function (e, n, s, i) { s._w = s._w || {}, t(e, s._w, s, i) }) } var me = 0, _e = 1, ye = 2, ge = 3, pe = 4, ve = 5, we = 6, Me = 7, Se = 8; function De(e) { return ke(e) ? 366 : 365 } function ke(e) { return e % 4 == 0 && e % 100 != 0 || e % 400 == 0 } I("Y", 0, 0, function () { var e = this.year(); return e <= 9999 ? "" + e : "+" + e }), I(0, ["YY", 2], 0, function () { return this.year() % 100 }), I(0, ["YYYY", 4], 0, "year"), I(0, ["YYYYY", 5], 0, "year"), I(0, ["YYYYYY", 6, !0], 0, "year"), H("year", "y"), L("year", 1), ue("Y", se), ue("YY", B, z), ue("YYYY", ee, q), ue("YYYYY", te, J), ue("YYYYYY", te, J), ce(["YYYYY", "YYYYYY"], me), ce("YYYY", function (e, t) { t[me] = 2 === e.length ? n.parseTwoDigitYear(e) : M(e) }), ce("YY", function (e, t) { t[me] = n.parseTwoDigitYear(e) }), ce("Y", function (e, t) { t[me] = parseInt(e, 10) }), n.parseTwoDigitYear = function (e) { return M(e) + (M(e) > 68 ? 1900 : 2e3) }; var Ye, Oe = Te("FullYear", !0); function Te(e, t) { return function (s) { return null != s ? (be(this, e, s), n.updateOffset(this, t), this) : xe(this, e) } } function xe(e, t) { return e.isValid() ? e._d["get" + (e._isUTC ? "UTC" : "") + t]() : NaN } function be(e, t, n) { e.isValid() && !isNaN(n) && ("FullYear" === t && ke(e.year()) && 1 === e.month() && 29 === e.date() ? e._d["set" + (e._isUTC ? "UTC" : "") + t](n, e.month(), Pe(n, e.month())) : e._d["set" + (e._isUTC ? "UTC" : "") + t](n)) } function Pe(e, t) { if (isNaN(e) || isNaN(t)) return NaN; var n, s = (t % (n = 12) + n) % n; return e += (t - s) / 12, 1 === s ? ke(e) ? 29 : 28 : 31 - s % 7 % 2 } Ye = Array.prototype.indexOf ? Array.prototype.indexOf : function (e) { var t; for (t = 0; t < this.length; ++t)if (this[t] === e) return t; return -1 }, I("M", ["MM", 2], "Mo", function () { return this.month() + 1 }), I("MMM", 0, 0, function (e) { return this.localeData().monthsShort(this, e) }), I("MMMM", 0, 0, function (e) { return this.localeData().months(this, e) }), H("month", "M"), L("month", 8), ue("M", B), ue("MM", B, z), ue("MMM", function (e, t) { return t.monthsShortRegex(e) }), ue("MMMM", function (e, t) { return t.monthsRegex(e) }), ce(["M", "MM"], function (e, t) { t[_e] = M(e) - 1 }), ce(["MMM", "MMMM"], function (e, t, n, s) { var i = n._locale.monthsParse(e, s, n._strict); null != i ? t[_e] = i : c(n).invalidMonth = e }); var We = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, He = "January_February_March_April_May_June_July_August_September_October_November_December".split("_"); var Re = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"); function Ce(e, t) { var n; if (!e.isValid()) return e; if ("string" == typeof t) if (/^\d+$/.test(t)) t = M(t); else if (!a(t = e.localeData().monthsParse(t))) return e; return n = Math.min(e.date(), Pe(e.year(), t)), e._d["set" + (e._isUTC ? "UTC" : "") + "Month"](t, n), e } function Fe(e) { return null != e ? (Ce(this, e), n.updateOffset(this, !0), this) : xe(this, "Month") } var Le = ae; var Ue = ae; function Ne() { function e(e, t) { return t.length - e.length } var t, n, s = [], i = [], r = []; for (t = 0; t < 12; t++)n = h([2e3, t]), s.push(this.monthsShort(n, "")), i.push(this.months(n, "")), r.push(this.months(n, "")), r.push(this.monthsShort(n, ""));
vendor: 13,702 bytes, line 99
99 for (s.sort(e), i.sort(e), r.sort(e), t = 0; t < 12; t++)s[t] = de(s[t]), i[t] = de(i[t]); for (t = 0; t < 24; t++)r[t] = de(r[t]); this._monthsRegex = new RegExp("^(" + r.join("|") + ")", "i"), this._monthsShortRegex = this._monthsRegex, this._monthsStrictRegex = new RegExp("^(" + i.join("|") + ")", "i"), this._monthsShortStrictRegex = new RegExp("^(" + s.join("|") + ")", "i") } function Ge(e) { var t = new Date(Date.UTC.apply(null, arguments)); return e < 100 && e >= 0 && isFinite(t.getUTCFullYear()) && t.setUTCFullYear(e), t } function Ve(e, t, n) { var s = 7 + t - n; return -((7 + Ge(e, 0, s).getUTCDay() - t) % 7) + s - 1 } function Ee(e, t, n, s, i) { var r, a, o = 1 + 7 * (t - 1) + (7 + n - s) % 7 + Ve(e, s, i); return o <= 0 ? a = De(r = e - 1) + o : o > De(e) ? (r = e + 1, a = o - De(e)) : (r = e, a = o), { year: r, dayOfYear: a } } function Ie(e, t, n) { var s, i, r = Ve(e.year(), t, n), a = Math.floor((e.dayOfYear() - r - 1) / 7) + 1; return a < 1 ? s = a + Ae(i = e.year() - 1, t, n) : a > Ae(e.year(), t, n) ? (s = a - Ae(e.year(), t, n), i = e.year() + 1) : (i = e.year(), s = a), { week: s, year: i } } function Ae(e, t, n) { var s = Ve(e, t, n), i = Ve(e + 1, t, n); return (De(e) - s + i) / 7 } I("w", ["ww", 2], "wo", "week"), I("W", ["WW", 2], "Wo", "isoWeek"), H("week", "w"), H("isoWeek", "W"), L("week", 5), L("isoWeek", 5), ue("w", B), ue("ww", B, z), ue("W", B), ue("WW", B, z), fe(["w", "ww", "W", "WW"], function (e, t, n, s) { t[s.substr(0, 1)] = M(e) }); I("d", 0, "do", "day"), I("dd", 0, 0, function (e) { return this.localeData().weekdaysMin(this, e) }), I("ddd", 0, 0, function (e) { return this.localeData().weekdaysShort(this, e) }), I("dddd", 0, 0, function (e) { return this.localeData().weekdays(this, e) }), I("e", 0, 0, "weekday"), I("E", 0, 0, "isoWeekday"), H("day", "d"), H("weekday", "e"), H("isoWeekday", "E"), L("day", 11), L("weekday", 11), L("isoWeekday", 11), ue("d", B), ue("e", B), ue("E", B), ue("dd", function (e, t) { return t.weekdaysMinRegex(e) }), ue("ddd", function (e, t) { return t.weekdaysShortRegex(e) }), ue("dddd", function (e, t) { return t.weekdaysRegex(e) }), fe(["dd", "ddd", "dddd"], function (e, t, n, s) { var i = n._locale.weekdaysParse(e, s, n._strict); null != i ? t.d = i : c(n).invalidWeekday = e }), fe(["d", "e", "E"], function (e, t, n, s) { t[s] = M(e) }); var je = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"); var Ze = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"); var ze = "Su_Mo_Tu_We_Th_Fr_Sa".split("_"); var $e = ae; var qe = ae; var Je = ae; function Be() { function e(e, t) { return t.length - e.length } var t, n, s, i, r, a = [], o = [], u = [], l = []; for (t = 0; t < 7; t++)n = h([2e3, 1]).day(t), s = this.weekdaysMin(n, ""), i = this.weekdaysShort(n, ""), r = this.weekdays(n, ""), a.push(s), o.push(i), u.push(r), l.push(s), l.push(i), l.push(r); for (a.sort(e), o.sort(e), u.sort(e), l.sort(e), t = 0; t < 7; t++)o[t] = de(o[t]), u[t] = de(u[t]), l[t] = de(l[t]); this._weekdaysRegex = new RegExp("^(" + l.join("|") + ")", "i"), this._weekdaysShortRegex = this._weekdaysRegex, this._weekdaysMinRegex = this._weekdaysRegex, this._weekdaysStrictRegex = new RegExp("^(" + u.join("|") + ")", "i"), this._weekdaysShortStrictRegex = new RegExp("^(" + o.join("|") + ")", "i"), this._weekdaysMinStrictRegex = new RegExp("^(" + a.join("|") + ")", "i") } function Qe() { return this.hours() % 12 || 12 } function Xe(e, t) { I(e, 0, 0, function () { return this.localeData().meridiem(this.hours(), this.minutes(), t) }) } function Ke(e, t) { return t._meridiemParse } I("H", ["HH", 2], 0, "hour"), I("h", ["hh", 2], 0, Qe), I("k", ["kk", 2], 0, function () { return this.hours() || 24 }), I("hmm", 0, 0, function () { return "" + Qe.apply(this) + U(this.minutes(), 2) }), I("hmmss", 0, 0, function () { return "" + Qe.apply(this) + U(this.minutes(), 2) + U(this.seconds(), 2) }), I("Hmm", 0, 0, function () { return "" + this.hours() + U(this.minutes(), 2) }), I("Hmmss", 0, 0, function () { return "" + this.hours() + U(this.minutes(), 2) + U(this.seconds(), 2) }), Xe("a", !0), Xe("A", !1), H("hour", "h"), L("hour", 13), ue("a", Ke), ue("A", Ke), ue("H", B), ue("h", B), ue("k", B), ue("HH", B, z), ue("hh", B, z), ue("kk", B, z), ue("hmm", Q), ue("hmmss", X), ue("Hmm", Q), ue("Hmmss", X), ce(["H", "HH"], ge), ce(["k", "kk"], function (e, t, n) { var s = M(e); t[ge] = 24 === s ? 0 : s }), ce(["a", "A"], function (e, t, n) { n._isPm = n._locale.isPM(e), n._meridiem = e }), ce(["h", "hh"], function (e, t, n) { t[ge] = M(e), c(n).bigHour = !0 }), ce("hmm", function (e, t, n) { var s = e.length - 2; t[ge] = M(e.substr(0, s)), t[pe] = M(e.substr(s)), c(n).bigHour = !0 }), ce("hmmss", function (e, t, n) { var s = e.length - 4, i = e.length - 2; t[ge] = M(e.substr(0, s)), t[pe] = M(e.substr(s, 2)), t[ve] = M(e.substr(i)), c(n).bigHour = !0 }), ce("Hmm", function (e, t, n) { var s = e.length - 2; t[ge] = M(e.substr(0, s)), t[pe] = M(e.substr(s)) }), ce("Hmmss", function (e, t, n) { var s = e.length - 4, i = e.length - 2; t[ge] = M(e.substr(0, s)), t[pe] = M(e.substr(s, 2)), t[ve] = M(e.substr(i)) }); var et, tt = Te("Hours", !0), nt = { calendar: { sameDay: "[Today at] LT", nextDay: "[Tomorrow at] LT", nextWeek: "dddd [at] LT", lastDay: "[Yesterday at] LT", lastWeek: "[Last] dddd [at] LT", sameElse: "L" }, longDateFormat: { LTS: "h:mm:ss A", LT: "h:mm A", L: "MM/DD/YYYY", LL: "MMMM D, YYYY", LLL: "MMMM D, YYYY h:mm A", LLLL: "dddd, MMMM D, YYYY h:mm A" }, invalidDate: "Invalid date", ordinal: "%d", dayOfMonthOrdinalParse: /\d{1,2}/, relativeTime: { future: "in %s", past: "%s ago", s: "a few seconds", ss: "%d seconds", m: "a minute", mm: "%d minutes", h: "an hour", hh: "%d hours", d: "a day", dd: "%d days", M: "a month", MM: "%d months", y: "a year", yy: "%d years" }, months: He, monthsShort: Re, week: { dow: 0, doy: 6 }, weekdays: je, weekdaysMin: ze, weekdaysShort: Ze, meridiemParse: /[ap]\.?m?\.?/i }, st = {}, it = {}; function rt(e) { return e ? e.toLowerCase().replace("_", "-") : e } function at(e) { var t = null; if (!st[e] && "undefined" != typeof module && module && module.exports) try { t = et._abbr, require("./locale/" + e), ot(t) } catch (e) { } return st[e] } function ot(e, t) { var n; return e && ((n = r(t) ? lt(e) : ut(e, t)) ? et = n : "undefined" != typeof console && console.warn && console.warn("Locale " + e + " not found. Did you forget to load it?")), et._abbr } function ut(e, t) { if (null !== t) { var n, s = nt; if (t.abbr = e, null != st[e]) T("defineLocaleOverride", "use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."), s = st[e]._config; else if (null != t.parentLocale) if (null != st[t.parentLocale]) s = st[t.parentLocale]._config; else { if (null == (n = at(t.parentLocale))) return it[t.parentLocale] || (it[t.parentLocale] = []), it[t.parentLocale].push({ name: e, config: t }), null; s = n._config } return st[e] = new P(b(s, t)), it[e] && it[e].forEach(function (e) { ut(e.name, e.config) }), ot(e), st[e] } return delete st[e], null } function lt(e) { var t; if (e && e._locale && e._locale._abbr && (e = e._locale._abbr), !e) return et; if (!s(e)) { if (t = at(e)) return t; e = [e] } return function (e) { for (var t, n, s, i, r = 0; r < e.length;) { for (t = (i = rt(e[r]).split("-")).length, n = (n = rt(e[r + 1])) ? n.split("-") : null; t > 0;) { if (s = at(i.slice(0, t).join("-"))) return s; if (n && n.length >= t && S(i, n, !0) >= t - 1) break; t-- } r++ } return et }(e) } function dt(e) { var t, n = e._a; return n && -2 === c(e).overflow && (t = n[_e] < 0 || n[_e] > 11 ? _e : n[ye] < 1 || n[ye] > Pe(n[me], n[_e]) ? ye : n[ge] < 0 || n[ge] > 24 || 24 === n[ge] && (0 !== n[pe] || 0 !== n[ve] || 0 !== n[we]) ? ge : n[pe] < 0 || n[pe] > 59 ? pe : n[ve] < 0 || n[ve] > 59 ? ve : n[we] < 0 || n[we] > 999 ? we : -1, c(e)._overflowDayOfYear && (t < me || t > ye) && (t = ye), c(e)._overflowWeeks && -1 === t && (t = Me), c(e)._overflowWeekday && -1 === t && (t = Se), c(e).overflow = t), e } function ht(e, t, n) { return null != e ? e : null != t ? t : n } function ct(e) { var t, s, i, r, a, o = []; if (!e._d) { var u, l; for (u = e, l = new Date(n.now()), i = u._useUTC ? [l.getUTCFullYear(), l.getUTCMonth(), l.getUTCDate()] : [l.getFullYear(), l.getMonth(), l.getDate()], e._w && null == e._a[ye] && null == e._a[_e] && function (e) { var t, n, s, i, r, a, o, u; if (null != (t = e._w).GG || null != t.W || null != t.E) r = 1, a = 4, n = ht(t.GG, e._a[me], Ie(Tt(), 1, 4).year), s = ht(t.W, 1), ((i = ht(t.E, 1)) < 1 || i > 7) && (u = !0); else { r = e._locale._week.dow, a = e._locale._week.doy; var l = Ie(Tt(), r, a); n = ht(t.gg, e._a[me], l.year), s = ht(t.w, l.week), null != t.d ? ((i = t.d) < 0 || i > 6) && (u = !0) : null != t.e ? (i = t.e + r, (t.e < 0 || t.e > 6) && (u = !0)) : i = r } s < 1 || s > Ae(n, r, a) ? c(e)._overflowWeeks = !0 : null != u ? c(e)._overflowWeekday = !0 : (o = Ee(n, s, i, r, a), e._a[me] = o.year, e._dayOfYear = o.dayOfYear) }(e), null != e._dayOfYear && (a = ht(e._a[me], i[me]), (e._dayOfYear > De(a) || 0 === e._dayOfYear) && (c(e)._overflowDayOfYear = !0), s = Ge(a, 0, e._dayOfYear), e._a[_e] = s.getUTCMonth(), e._a[ye] = s.getUTCDate()), t = 0; t < 3 && null == e._a[t]; ++t)e._a[t] = o[t] = i[t]; for (; t < 7; t++)e._a[t] = o[t] = null == e._a[t] ? 2 === t ? 1 : 0 : e._a[t]; 24 === e._a[ge] && 0 === e._a[pe] && 0 === e._a[ve] && 0 === e._a[we] && (e._nextDay = !0, e._a[ge] = 0), e._d = (e._useUTC ? Ge : function (e, t, n, s, i, r, a) { var o = new Date(e, t, n, s, i, r, a); return e < 100 && e >= 0 && isFinite(o.getFullYear()) && o.setFullYear(e), o }).apply(null, o), r = e._useUTC ? e._d.getUTCDay() : e._d.getDay(), null != e._tzm && e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm), e._nextDay && (e._a[ge] = 24), e._w && void 0 !== e._w.d && e._w.d !== r && (c(e).weekdayMismatch = !0) } } var ft = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/, mt = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/, _t = /Z|[+-]\d\d(?::?\d\d)?/, yt = [["YYYYYY-MM-DD", /[+-]\d{6}-\d\d-\d\d/], ["YYYY-MM-DD", /\d{4}-\d\d-\d\d/], ["GGGG-[W]WW-E", /\d{4}-W\d\d-\d/], ["GGGG-[W]WW", /\d{4}-W\d\d/, !1], ["YYYY-DDD", /\d{4}-\d{3}/], ["YYYY-MM", /\d{4}-\d\d/, !1], ["YYYYYYMMDD", /[+-]\d{10}/], ["YYYYMMDD", /\d{8}/], ["GGGG[W]WWE", /\d{4}W\d{3}/], ["GGGG[W]WW", /\d{4}W\d{2}/, !1], ["YYYYDDD", /\d{7}/]], gt = [["HH:mm:ss.SSSS", /\d\d:\d\d:\d\d\.\d+/], ["HH:mm:ss,SSSS", /\d\d:\d\d:\d\d,\d+/], ["HH:mm:ss", /\d\d:\d\d:\d\d/], ["HH:mm", /\d\d:\d\d/], ["HHmmss.SSSS", /\d\d\d\d\d\d\.\d+/], ["HHmmss,SSSS", /\d\d\d\d\d\d,\d+/], ["HHmmss", /\d\d\d\d\d\d/], ["HHmm", /\d\d\d\d/], ["HH", /\d\d/]], pt = /^\/?Date\((\-?\d+)/i; function vt(e) { var t, n, s, i, r, a, o = e._i, u = ft.exec(o) || mt.exec(o); if (u) { for (c(e).iso = !0, t = 0, n = yt.length; t < n; t++)if (yt[t][1].exec(u[1])) { i = yt[t][0], s = !1 !== yt[t][2]; break } if (null == i) return void (e._isValid = !1); if (u[3]) { for (t = 0, n = gt.length; t < n; t++)if (gt[t][1].exec(u[3])) { r = (u[2] || " ") + gt[t][0]; break } if (null == r) return void (e._isValid = !1) } if (!s && null != r) return void (e._isValid = !1); if (u[4]) { if (!_t.exec(u[4])) return void (e._isValid = !1); a = "Z" } e._f = i + (r || "") + (a || ""), kt(e) } else e._isValid = !1 } var wt = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/; function Mt(e, t, n, s, i, r) { var a = [function (e) { var t = parseInt(e, 10); { if (t <= 49) return 2e3 + t; if (t <= 999) return 1900 + t } return t }(e), Re.indexOf(t), parseInt(n, 10), parseInt(s, 10), parseInt(i, 10)]; return r && a.push(parseInt(r, 10)), a } var St = { UT: 0, GMT: 0, EDT: -240, EST: -300, CDT: -300, CST: -360, MDT: -360, MST: -420, PDT: -420, PST: -480 }; function Dt(e) { var t, n, s, i = wt.exec(e._i.replace(/\([^)]*\)|[\n\t]/g, " ").replace(/(\s\s+)/g, " ").trim()); if (i) { var r = Mt(i[4], i[3], i[2], i[5], i[6], i[7]); if (t = i[1], n = r, s = e, t && Ze.indexOf(t) !== new Date(n[0], n[1], n[2]).getDay() && (c(s).weekdayMismatch = !0, s._isValid = !1, 1)) return; e._a = r, e._tzm = function (e, t, n) { if (e) return St[e]; if (t) return 0; var s = parseInt(n, 10), i = s % 100; return (s - i) / 100 * 60 + i }(i[8], i[9], i[10]), e._d = Ge.apply(null, e._a), e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm), c(e).rfc2822 = !0 } else e._isValid = !1 } function kt(e) { if (e._f !== n.ISO_8601) if (e._f !== n.RFC_2822) { e._a = [], c(e).empty = !0; var t, s, i, r, a, o, u, d, h = "" + e._i, f = h.length, m = 0; for (i = j(e._f, e._locale).match(N) || [], t = 0; t < i.length; t++)r = i[t], (s = (h.match(le(r, e)) || [])[0]) && ((a = h.substr(0, h.indexOf(s))).length > 0 && c(e).unusedInput.push(a), h = h.slice(h.indexOf(s) + s.length), m += s.length), E[r] ? (s ? c(e).empty = !1 : c(e).unusedTokens.push(r), o = r, d = e, null != (u = s) && l(he, o) && he[o](u, d._a, d, o)) : e._strict && !s && c(e).unusedTokens.push(r); c(e).charsLeftOver = f - m, h.length > 0 && c(e).unusedInput.push(h), e._a[ge] <= 12 && !0 === c(e).bigHour && e._a[ge] > 0 && (c(e).bigHour = void 0), c(e).parsedDateParts = e._a.slice(0), c(e).meridiem = e._meridiem, e._a[ge] = function (e, t, n) { var s; if (null == n) return t;
vendor: 4,600 bytes, line 99
99 return null != e.meridiemHour ? e.meridiemHour(t, n) : null != e.isPM ? ((s = e.isPM(n)) && t < 12 && (t += 12), s || 12 !== t || (t = 0), t) : t }(e._locale, e._a[ge], e._meridiem), ct(e), dt(e) } else Dt(e); else vt(e) } function Yt(e) { var t, l, h, _, g = e._i, w = e._f; return e._locale = e._locale || lt(e._l), null === g || void 0 === w && "" === g ? m({ nullInput: !0 }) : ("string" == typeof g && (e._i = g = e._locale.preparse(g)), v(g) ? new p(dt(g)) : (o(g) ? e._d = g : s(w) ? function (e) { var t, n, s, i, r; if (0 === e._f.length) return c(e).invalidFormat = !0, void (e._d = new Date(NaN)); for (i = 0; i < e._f.length; i++)r = 0, t = y({}, e), null != e._useUTC && (t._useUTC = e._useUTC), t._f = e._f[i], kt(t), f(t) && (r += c(t).charsLeftOver, r += 10 * c(t).unusedTokens.length, c(t).score = r, (null == s || r < s) && (s = r, n = t)); d(e, n || t) }(e) : w ? kt(e) : r(l = (t = e)._i) ? t._d = new Date(n.now()) : o(l) ? t._d = new Date(l.valueOf()) : "string" == typeof l ? (h = t, null === (_ = pt.exec(h._i)) ? (vt(h), !1 === h._isValid && (delete h._isValid, Dt(h), !1 === h._isValid && (delete h._isValid, n.createFromInputFallback(h)))) : h._d = new Date(+_[1])) : s(l) ? (t._a = u(l.slice(0), function (e) { return parseInt(e, 10) }), ct(t)) : i(l) ? function (e) { if (!e._d) { var t = C(e._i); e._a = u([t.year, t.month, t.day || t.date, t.hour, t.minute, t.second, t.millisecond], function (e) { return e && parseInt(e, 10) }), ct(e) } }(t) : a(l) ? t._d = new Date(l) : n.createFromInputFallback(t), f(e) || (e._d = null), e)) } function Ot(e, t, n, r, a) { var o, u = {}; return !0 !== n && !1 !== n || (r = n, n = void 0), (i(e) && function (e) { if (Object.getOwnPropertyNames) return 0 === Object.getOwnPropertyNames(e).length; var t; for (t in e) if (e.hasOwnProperty(t)) return !1; return !0 }(e) || s(e) && 0 === e.length) && (e = void 0), u._isAMomentObject = !0, u._useUTC = u._isUTC = a, u._l = n, u._i = e, u._f = t, u._strict = r, (o = new p(dt(Yt(u))))._nextDay && (o.add(1, "d"), o._nextDay = void 0), o } function Tt(e, t, n, s) { return Ot(e, t, n, s, !1) } n.createFromInputFallback = k("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.", function (e) { e._d = new Date(e._i + (e._useUTC ? " UTC" : "")) }), n.ISO_8601 = function () { }, n.RFC_2822 = function () { }; var xt = k("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/", function () { var e = Tt.apply(null, arguments); return this.isValid() && e.isValid() ? e < this ? this : e : m() }), bt = k("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/", function () { var e = Tt.apply(null, arguments); return this.isValid() && e.isValid() ? e > this ? this : e : m() }); function Pt(e, t) { var n, i; if (1 === t.length && s(t[0]) && (t = t[0]), !t.length) return Tt(); for (n = t[0], i = 1; i < t.length; ++i)t[i].isValid() && !t[i][e](n) || (n = t[i]); return n } var Wt = ["year", "quarter", "month", "week", "day", "hour", "minute", "second", "millisecond"]; function Ht(e) { var t = C(e), n = t.year || 0, s = t.quarter || 0, i = t.month || 0, r = t.week || 0, a = t.day || 0, o = t.hour || 0, u = t.minute || 0, l = t.second || 0, d = t.millisecond || 0; this._isValid = function (e) { for (var t in e) if (-1 === Ye.call(Wt, t) || null != e[t] && isNaN(e[t])) return !1; for (var n = !1, s = 0; s < Wt.length; ++s)if (e[Wt[s]]) { if (n) return !1; parseFloat(e[Wt[s]]) !== M(e[Wt[s]]) && (n = !0) } return !0 }(t), this._milliseconds = +d + 1e3 * l + 6e4 * u + 1e3 * o * 60 * 60, this._days = +a + 7 * r, this._months = +i + 3 * s + 12 * n, this._data = {}, this._locale = lt(), this._bubble() } function Rt(e) { return e instanceof Ht } function Ct(e) { return e < 0 ? -1 * Math.round(-1 * e) : Math.round(e) } function Ft(e, t) { I(e, 0, 0, function () { var e = this.utcOffset(), n = "+"; return e < 0 && (e = -e, n = "-"), n + U(~~(e / 60), 2) + t + U(~~e % 60, 2) }) } Ft("Z", ":"), Ft("ZZ", ""), ue("Z", re), ue("ZZ", re), ce(["Z", "ZZ"], function (e, t, n) { n._useUTC = !0, n._tzm = Ut(re, e) }); var Lt = /([\+\-]|\d\d)/gi; function Ut(e, t) { var n = (t || "").match(e); if (null === n) return null; var s = ((n[n.length - 1] || []) + "").match(Lt) || ["-", 0, 0], i = 60 * s[1] + M(s[2]);
vendor: 31,852 bytes, line 99
99 return 0 === i ? 0 : "+" === s[0] ? i : -i } function Nt(e, t) { var s, i; return t._isUTC ? (s = t.clone(), i = (v(e) || o(e) ? e.valueOf() : Tt(e).valueOf()) - s.valueOf(), s._d.setTime(s._d.valueOf() + i), n.updateOffset(s, !1), s) : Tt(e).local() } function Gt(e) { return 15 * -Math.round(e._d.getTimezoneOffset() / 15) } function Vt() { return !!this.isValid() && (this._isUTC && 0 === this._offset) } n.updateOffset = function () { }; var Et = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/, It = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; function At(e, t) { var n, s, i, r = e, o = null; return Rt(e) ? r = { ms: e._milliseconds, d: e._days, M: e._months } : a(e) ? (r = {}, t ? r[t] = e : r.milliseconds = e) : (o = Et.exec(e)) ? (n = "-" === o[1] ? -1 : 1, r = { y: 0, d: M(o[ye]) * n, h: M(o[ge]) * n, m: M(o[pe]) * n, s: M(o[ve]) * n, ms: M(Ct(1e3 * o[we])) * n }) : (o = It.exec(e)) ? (n = "-" === o[1] ? -1 : (o[1], 1), r = { y: jt(o[2], n), M: jt(o[3], n), w: jt(o[4], n), d: jt(o[5], n), h: jt(o[6], n), m: jt(o[7], n), s: jt(o[8], n) }) : null == r ? r = {} : "object" == typeof r && ("from" in r || "to" in r) && (i = function (e, t) { var n; if (!e.isValid() || !t.isValid()) return { milliseconds: 0, months: 0 }; t = Nt(t, e), e.isBefore(t) ? n = Zt(e, t) : ((n = Zt(t, e)).milliseconds = -n.milliseconds, n.months = -n.months); return n }(Tt(r.from), Tt(r.to)), (r = {}).ms = i.milliseconds, r.M = i.months), s = new Ht(r), Rt(e) && l(e, "_locale") && (s._locale = e._locale), s } function jt(e, t) { var n = e && parseFloat(e.replace(",", ".")); return (isNaN(n) ? 0 : n) * t } function Zt(e, t) { var n = { milliseconds: 0, months: 0 }; return n.months = t.month() - e.month() + 12 * (t.year() - e.year()), e.clone().add(n.months, "M").isAfter(t) && --n.months, n.milliseconds = +t - +e.clone().add(n.months, "M"), n } function zt(e, t) { return function (n, s) { var i; return null === s || isNaN(+s) || (T(t, "moment()." + t + "(period, number) is deprecated. Please use moment()." + t + "(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."), i = n, n = s, s = i), $t(this, At(n = "string" == typeof n ? +n : n, s), e), this } } function $t(e, t, s, i) { var r = t._milliseconds, a = Ct(t._days), o = Ct(t._months); e.isValid() && (i = null == i || i, o && Ce(e, xe(e, "Month") + o * s), a && be(e, "Date", xe(e, "Date") + a * s), r && e._d.setTime(e._d.valueOf() + r * s), i && n.updateOffset(e, a || o)) } At.fn = Ht.prototype, At.invalid = function () { return At(NaN) }; var qt = zt(1, "add"), Jt = zt(-1, "subtract"); function Bt(e, t) { var n = 12 * (t.year() - e.year()) + (t.month() - e.month()), s = e.clone().add(n, "months"); return -(n + (t - s < 0 ? (t - s) / (s - e.clone().add(n - 1, "months")) : (t - s) / (e.clone().add(n + 1, "months") - s))) || 0 } function Qt(e) { var t; return void 0 === e ? this._locale._abbr : (null != (t = lt(e)) && (this._locale = t), this) } n.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ", n.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]"; var Xt = k("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", function (e) { return void 0 === e ? this.localeData() : this.locale(e) }); function Kt() { return this._locale } function en(e, t) { I(0, [e, e.length], 0, t) } function tn(e, t, n, s, i) { var r; return null == e ? Ie(this, s, i).year : (t > (r = Ae(e, s, i)) && (t = r), function (e, t, n, s, i) { var r = Ee(e, t, n, s, i), a = Ge(r.year, 0, r.dayOfYear); return this.year(a.getUTCFullYear()), this.month(a.getUTCMonth()), this.date(a.getUTCDate()), this }.call(this, e, t, n, s, i)) } I(0, ["gg", 2], 0, function () { return this.weekYear() % 100 }), I(0, ["GG", 2], 0, function () { return this.isoWeekYear() % 100 }), en("gggg", "weekYear"), en("ggggg", "weekYear"), en("GGGG", "isoWeekYear"), en("GGGGG", "isoWeekYear"), H("weekYear", "gg"), H("isoWeekYear", "GG"), L("weekYear", 1), L("isoWeekYear", 1), ue("G", se), ue("g", se), ue("GG", B, z), ue("gg", B, z), ue("GGGG", ee, q), ue("gggg", ee, q), ue("GGGGG", te, J), ue("ggggg", te, J), fe(["gggg", "ggggg", "GGGG", "GGGGG"], function (e, t, n, s) { t[s.substr(0, 2)] = M(e) }), fe(["gg", "GG"], function (e, t, s, i) { t[i] = n.parseTwoDigitYear(e) }), I("Q", 0, "Qo", "quarter"), H("quarter", "Q"), L("quarter", 7), ue("Q", Z), ce("Q", function (e, t) { t[_e] = 3 * (M(e) - 1) }), I("D", ["DD", 2], "Do", "date"), H("date", "D"), L("date", 9), ue("D", B), ue("DD", B, z), ue("Do", function (e, t) { return e ? t._dayOfMonthOrdinalParse || t._ordinalParse : t._dayOfMonthOrdinalParseLenient }), ce(["D", "DD"], ye), ce("Do", function (e, t) { t[ye] = M(e.match(B)[0]) }); var nn = Te("Date", !0); I("DDD", ["DDDD", 3], "DDDo", "dayOfYear"), H("dayOfYear", "DDD"), L("dayOfYear", 4), ue("DDD", K), ue("DDDD", $), ce(["DDD", "DDDD"], function (e, t, n) { n._dayOfYear = M(e) }), I("m", ["mm", 2], 0, "minute"), H("minute", "m"), L("minute", 14), ue("m", B), ue("mm", B, z), ce(["m", "mm"], pe); var sn = Te("Minutes", !1); I("s", ["ss", 2], 0, "second"), H("second", "s"), L("second", 15), ue("s", B), ue("ss", B, z), ce(["s", "ss"], ve); var rn, an = Te("Seconds", !1); for (I("S", 0, 0, function () { return ~~(this.millisecond() / 100) }), I(0, ["SS", 2], 0, function () { return ~~(this.millisecond() / 10) }), I(0, ["SSS", 3], 0, "millisecond"), I(0, ["SSSS", 4], 0, function () { return 10 * this.millisecond() }), I(0, ["SSSSS", 5], 0, function () { return 100 * this.millisecond() }), I(0, ["SSSSSS", 6], 0, function () { return 1e3 * this.millisecond() }), I(0, ["SSSSSSS", 7], 0, function () { return 1e4 * this.millisecond() }), I(0, ["SSSSSSSS", 8], 0, function () { return 1e5 * this.millisecond() }), I(0, ["SSSSSSSSS", 9], 0, function () { return 1e6 * this.millisecond() }), H("millisecond", "ms"), L("millisecond", 16), ue("S", K, Z), ue("SS", K, z), ue("SSS", K, $), rn = "SSSS"; rn.length <= 9; rn += "S")ue(rn, ne); function on(e, t) { t[we] = M(1e3 * ("0." + e)) } for (rn = "S"; rn.length <= 9; rn += "S")ce(rn, on); var un = Te("Milliseconds", !1); I("z", 0, 0, "zoneAbbr"), I("zz", 0, 0, "zoneName"); var ln = p.prototype; function dn(e) { return e } ln.add = qt, ln.calendar = function (e, t) { var s = e || Tt(), i = Nt(s, this).startOf("day"), r = n.calendarFormat(this, i) || "sameElse", a = t && (x(t[r]) ? t[r].call(this, s) : t[r]); return this.format(a || this.localeData().calendar(r, this, Tt(s))) }, ln.clone = function () { return new p(this) }, ln.diff = function (e, t, n) { var s, i, r; if (!this.isValid()) return NaN; if (!(s = Nt(e, this)).isValid()) return NaN; switch (i = 6e4 * (s.utcOffset() - this.utcOffset()), t = R(t)) { case "year": r = Bt(this, s) / 12; break; case "month": r = Bt(this, s); break; case "quarter": r = Bt(this, s) / 3; break; case "second": r = (this - s) / 1e3; break; case "minute": r = (this - s) / 6e4; break; case "hour": r = (this - s) / 36e5; break; case "day": r = (this - s - i) / 864e5; break; case "week": r = (this - s - i) / 6048e5; break; default: r = this - s }return n ? r : w(r) }, ln.endOf = function (e) { return void 0 === (e = R(e)) || "millisecond" === e ? this : ("date" === e && (e = "day"), this.startOf(e).add(1, "isoWeek" === e ? "week" : e).subtract(1, "ms")) }, ln.format = function (e) { e || (e = this.isUtc() ? n.defaultFormatUtc : n.defaultFormat); var t = A(this, e); return this.localeData().postformat(t) }, ln.from = function (e, t) { return this.isValid() && (v(e) && e.isValid() || Tt(e).isValid()) ? At({ to: this, from: e }).locale(this.locale()).humanize(!t) : this.localeData().invalidDate() }, ln.fromNow = function (e) { return this.from(Tt(), e) }, ln.to = function (e, t) { return this.isValid() && (v(e) && e.isValid() || Tt(e).isValid()) ? At({ from: this, to: e }).locale(this.locale()).humanize(!t) : this.localeData().invalidDate() }, ln.toNow = function (e) { return this.to(Tt(), e) }, ln.get = function (e) { return x(this[e = R(e)]) ? this[e]() : this }, ln.invalidAt = function () { return c(this).overflow }, ln.isAfter = function (e, t) { var n = v(e) ? e : Tt(e); return !(!this.isValid() || !n.isValid()) && ("millisecond" === (t = R(r(t) ? "millisecond" : t)) ? this.valueOf() > n.valueOf() : n.valueOf() < this.clone().startOf(t).valueOf()) }, ln.isBefore = function (e, t) { var n = v(e) ? e : Tt(e); return !(!this.isValid() || !n.isValid()) && ("millisecond" === (t = R(r(t) ? "millisecond" : t)) ? this.valueOf() < n.valueOf() : this.clone().endOf(t).valueOf() < n.valueOf()) }, ln.isBetween = function (e, t, n, s) { return ("(" === (s = s || "()")[0] ? this.isAfter(e, n) : !this.isBefore(e, n)) && (")" === s[1] ? this.isBefore(t, n) : !this.isAfter(t, n)) }, ln.isSame = function (e, t) { var n, s = v(e) ? e : Tt(e); return !(!this.isValid() || !s.isValid()) && ("millisecond" === (t = R(t || "millisecond")) ? this.valueOf() === s.valueOf() : (n = s.valueOf(), this.clone().startOf(t).valueOf() <= n && n <= this.clone().endOf(t).valueOf())) }, ln.isSameOrAfter = function (e, t) { return this.isSame(e, t) || this.isAfter(e, t) }, ln.isSameOrBefore = function (e, t) { return this.isSame(e, t) || this.isBefore(e, t) }, ln.isValid = function () { return f(this) }, ln.lang = Xt, ln.locale = Qt, ln.localeData = Kt, ln.max = bt, ln.min = xt, ln.parsingFlags = function () { return d({}, c(this)) }, ln.set = function (e, t) { if ("object" == typeof e) for (var n = function (e) { var t = []; for (var n in e) t.push({ unit: n, priority: F[n] }); return t.sort(function (e, t) { return e.priority - t.priority }), t }(e = C(e)), s = 0; s < n.length; s++)this[n[s].unit](e[n[s].unit]); else if (x(this[e = R(e)])) return this[e](t); return this }, ln.startOf = function (e) { switch (e = R(e)) { case "year": this.month(0); case "quarter": case "month": this.date(1); case "week": case "isoWeek": case "day": case "date": this.hours(0); case "hour": this.minutes(0); case "minute": this.seconds(0); case "second": this.milliseconds(0) }return "week" === e && this.weekday(0), "isoWeek" === e && this.isoWeekday(1), "quarter" === e && this.month(3 * Math.floor(this.month() / 3)), this }, ln.subtract = Jt, ln.toArray = function () { var e = this; return [e.year(), e.month(), e.date(), e.hour(), e.minute(), e.second(), e.millisecond()] }, ln.toObject = function () { var e = this; return { years: e.year(), months: e.month(), date: e.date(), hours: e.hours(), minutes: e.minutes(), seconds: e.seconds(), milliseconds: e.milliseconds() } }, ln.toDate = function () { return new Date(this.valueOf()) }, ln.toISOString = function (e) { if (!this.isValid()) return null; var t = !0 !== e, n = t ? this.clone().utc() : this; return n.year() < 0 || n.year() > 9999 ? A(n, t ? "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYYYY-MM-DD[T]HH:mm:ss.SSSZ") : x(Date.prototype.toISOString) ? t ? this.toDate().toISOString() : new Date(this.valueOf() + 60 * this.utcOffset() * 1e3).toISOString().replace("Z", A(n, "Z")) : A(n, t ? "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYY-MM-DD[T]HH:mm:ss.SSSZ") }, ln.inspect = function () { if (!this.isValid()) return "moment.invalid(/* " + this._i + " */)"; var e = "moment", t = ""; this.isLocal() || (e = 0 === this.utcOffset() ? "moment.utc" : "moment.parseZone", t = "Z"); var n = "[" + e + '("]', s = 0 <= this.year() && this.year() <= 9999 ? "YYYY" : "YYYYYY", i = t + '[")]'; return this.format(n + s + "-MM-DD[T]HH:mm:ss.SSS" + i) }, ln.toJSON = function () { return this.isValid() ? this.toISOString() : null }, ln.toString = function () { return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ") }, ln.unix = function () { return Math.floor(this.valueOf() / 1e3) }, ln.valueOf = function () { return this._d.valueOf() - 6e4 * (this._offset || 0) }, ln.creationData = function () { return { input: this._i, format: this._f, locale: this._locale, isUTC: this._isUTC, strict: this._strict } }, ln.year = Oe, ln.isLeapYear = function () { return ke(this.year()) }, ln.weekYear = function (e) { return tn.call(this, e, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy) }, ln.isoWeekYear = function (e) { return tn.call(this, e, this.isoWeek(), this.isoWeekday(), 1, 4) }, ln.quarter = ln.quarters = function (e) { return null == e ? Math.ceil((this.month() + 1) / 3) : this.month(3 * (e - 1) + this.month() % 3) }, ln.month = Fe, ln.daysInMonth = function () { return Pe(this.year(), this.month()) }, ln.week = ln.weeks = function (e) { var t = this.localeData().week(this); return null == e ? t : this.add(7 * (e - t), "d") }, ln.isoWeek = ln.isoWeeks = function (e) { var t = Ie(this, 1, 4).week; return null == e ? t : this.add(7 * (e - t), "d") }, ln.weeksInYear = function () { var e = this.localeData()._week; return Ae(this.year(), e.dow, e.doy) }, ln.isoWeeksInYear = function () { return Ae(this.year(), 1, 4) }, ln.date = nn, ln.day = ln.days = function (e) { if (!this.isValid()) return null != e ? this : NaN; var t, n, s = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); return null != e ? (t = e, n = this.localeData(), e = "string" != typeof t ? t : isNaN(t) ? "number" == typeof (t = n.weekdaysParse(t)) ? t : null : parseInt(t, 10), this.add(e - s, "d")) : s }, ln.weekday = function (e) { if (!this.isValid()) return null != e ? this : NaN; var t = (this.day() + 7 - this.localeData()._week.dow) % 7; return null == e ? t : this.add(e - t, "d") }, ln.isoWeekday = function (e) { if (!this.isValid()) return null != e ? this : NaN; if (null != e) { var t = (n = e, s = this.localeData(), "string" == typeof n ? s.weekdaysParse(n) % 7 || 7 : isNaN(n) ? null : n); return this.day(this.day() % 7 ? t : t - 7) } return this.day() || 7; var n, s }, ln.dayOfYear = function (e) { var t = Math.round((this.clone().startOf("day") - this.clone().startOf("year")) / 864e5) + 1; return null == e ? t : this.add(e - t, "d") }, ln.hour = ln.hours = tt, ln.minute = ln.minutes = sn, ln.second = ln.seconds = an, ln.millisecond = ln.milliseconds = un, ln.utcOffset = function (e, t, s) { var i, r = this._offset || 0; if (!this.isValid()) return null != e ? this : NaN; if (null != e) { if ("string" == typeof e) { if (null === (e = Ut(re, e))) return this } else Math.abs(e) < 16 && !s && (e *= 60); return !this._isUTC && t && (i = Gt(this)), this._offset = e, this._isUTC = !0, null != i && this.add(i, "m"), r !== e && (!t || this._changeInProgress ? $t(this, At(e - r, "m"), 1, !1) : this._changeInProgress || (this._changeInProgress = !0, n.updateOffset(this, !0), this._changeInProgress = null)), this } return this._isUTC ? r : Gt(this) }, ln.utc = function (e) { return this.utcOffset(0, e) }, ln.local = function (e) { return this._isUTC && (this.utcOffset(0, e), this._isUTC = !1, e && this.subtract(Gt(this), "m")), this }, ln.parseZone = function () { if (null != this._tzm) this.utcOffset(this._tzm, !1, !0); else if ("string" == typeof this._i) { var e = Ut(ie, this._i); null != e ? this.utcOffset(e) : this.utcOffset(0, !0) } return this }, ln.hasAlignedHourOffset = function (e) { return !!this.isValid() && (e = e ? Tt(e).utcOffset() : 0, (this.utcOffset() - e) % 60 == 0) }, ln.isDST = function () { return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset() }, ln.isLocal = function () { return !!this.isValid() && !this._isUTC }, ln.isUtcOffset = function () { return !!this.isValid() && this._isUTC }, ln.isUtc = Vt, ln.isUTC = Vt, ln.zoneAbbr = function () { return this._isUTC ? "UTC" : "" }, ln.zoneName = function () { return this._isUTC ? "Coordinated Universal Time" : "" }, ln.dates = k("dates accessor is deprecated. Use date instead.", nn), ln.months = k("months accessor is deprecated. Use month instead", Fe), ln.years = k("years accessor is deprecated. Use year instead", Oe), ln.zone = k("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", function (e, t) { return null != e ? ("string" != typeof e && (e = -e), this.utcOffset(e, t), this) : -this.utcOffset() }), ln.isDSTShifted = k("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", function () { if (!r(this._isDSTShifted)) return this._isDSTShifted; var e = {}; if (y(e, this), (e = Yt(e))._a) { var t = e._isUTC ? h(e._a) : Tt(e._a); this._isDSTShifted = this.isValid() && S(e._a, t.toArray()) > 0 } else this._isDSTShifted = !1; return this._isDSTShifted }); var hn = P.prototype; function cn(e, t, n, s) { var i = lt(), r = h().set(s, t); return i[n](r, e) } function fn(e, t, n) { if (a(e) && (t = e, e = void 0), e = e || "", null != t) return cn(e, t, n, "month"); var s, i = []; for (s = 0; s < 12; s++)i[s] = cn(e, s, n, "month"); return i } function mn(e, t, n, s) { "boolean" == typeof e ? (a(t) && (n = t, t = void 0), t = t || "") : (n = t = e, e = !1, a(t) && (n = t, t = void 0), t = t || ""); var i, r = lt(), o = e ? r._week.dow : 0; if (null != n) return cn(t, (n + o) % 7, s, "day"); var u = []; for (i = 0; i < 7; i++)u[i] = cn(t, (i + o) % 7, s, "day"); return u } hn.calendar = function (e, t, n) { var s = this._calendar[e] || this._calendar.sameElse; return x(s) ? s.call(t, n) : s }, hn.longDateFormat = function (e) { var t = this._longDateFormat[e], n = this._longDateFormat[e.toUpperCase()]; return t || !n ? t : (this._longDateFormat[e] = n.replace(/MMMM|MM|DD|dddd/g, function (e) { return e.slice(1) }), this._longDateFormat[e]) }, hn.invalidDate = function () { return this._invalidDate }, hn.ordinal = function (e) { return this._ordinal.replace("%d", e) }, hn.preparse = dn, hn.postformat = dn, hn.relativeTime = function (e, t, n, s) { var i = this._relativeTime[n]; return x(i) ? i(e, t, n, s) : i.replace(/%d/i, e) }, hn.pastFuture = function (e, t) { var n = this._relativeTime[e > 0 ? "future" : "past"]; return x(n) ? n(t) : n.replace(/%s/i, t) }, hn.set = function (e) { var t, n; for (n in e) x(t = e[n]) ? this[n] = t : this["_" + n] = t; this._config = e, this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + "|" + /\d{1,2}/.source) }, hn.months = function (e, t) { return e ? s(this._months) ? this._months[e.month()] : this._months[(this._months.isFormat || We).test(t) ? "format" : "standalone"][e.month()] : s(this._months) ? this._months : this._months.standalone }, hn.monthsShort = function (e, t) { return e ? s(this._monthsShort) ? this._monthsShort[e.month()] : this._monthsShort[We.test(t) ? "format" : "standalone"][e.month()] : s(this._monthsShort) ? this._monthsShort : this._monthsShort.standalone }, hn.monthsParse = function (e, t, n) { var s, i, r; if (this._monthsParseExact) return function (e, t, n) { var s, i, r, a = e.toLocaleLowerCase(); if (!this._monthsParse) for (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = [], s = 0; s < 12; ++s)r = h([2e3, s]), this._shortMonthsParse[s] = this.monthsShort(r, "").toLocaleLowerCase(), this._longMonthsParse[s] = this.months(r, "").toLocaleLowerCase(); return n ? "MMM" === t ? -1 !== (i = Ye.call(this._shortMonthsParse, a)) ? i : null : -1 !== (i = Ye.call(this._longMonthsParse, a)) ? i : null : "MMM" === t ? -1 !== (i = Ye.call(this._shortMonthsParse, a)) ? i : -1 !== (i = Ye.call(this._longMonthsParse, a)) ? i : null : -1 !== (i = Ye.call(this._longMonthsParse, a)) ? i : -1 !== (i = Ye.call(this._shortMonthsParse, a)) ? i : null }.call(this, e, t, n); for (this._monthsParse || (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = []), s = 0; s < 12; s++) { if (i = h([2e3, s]), n && !this._longMonthsParse[s] && (this._longMonthsParse[s] = new RegExp("^" + this.months(i, "").replace(".", "") + "$", "i"), this._shortMonthsParse[s] = new RegExp("^" + this.monthsShort(i, "").replace(".", "") + "$", "i")), n || this._monthsParse[s] || (r = "^" + this.months(i, "") + "|^" + this.monthsShort(i, ""), this._monthsParse[s] = new RegExp(r.replace(".", ""), "i")), n && "MMMM" === t && this._longMonthsParse[s].test(e)) return s; if (n && "MMM" === t && this._shortMonthsParse[s].test(e)) return s; if (!n && this._monthsParse[s].test(e)) return s } }, hn.monthsRegex = function (e) { return this._monthsParseExact ? (l(this, "_monthsRegex") || Ne.call(this), e ? this._monthsStrictRegex : this._monthsRegex) : (l(this, "_monthsRegex") || (this._monthsRegex = Ue), this._monthsStrictRegex && e ? this._monthsStrictRegex : this._monthsRegex) }, hn.monthsShortRegex = function (e) { return this._monthsParseExact ? (l(this, "_monthsRegex") || Ne.call(this), e ? this._monthsShortStrictRegex : this._monthsShortRegex) : (l(this, "_monthsShortRegex") || (this._monthsShortRegex = Le), this._monthsShortStrictRegex && e ? this._monthsShortStrictRegex : this._monthsShortRegex) }, hn.week = function (e) { return Ie(e, this._week.dow, this._week.doy).week }, hn.firstDayOfYear = function () { return this._week.doy }, hn.firstDayOfWeek = function () { return this._week.dow }, hn.weekdays = function (e, t) { return e ? s(this._weekdays) ? this._weekdays[e.day()] : this._weekdays[this._weekdays.isFormat.test(t) ? "format" : "standalone"][e.day()] : s(this._weekdays) ? this._weekdays : this._weekdays.standalone }, hn.weekdaysMin = function (e) { return e ? this._weekdaysMin[e.day()] : this._weekdaysMin }, hn.weekdaysShort = function (e) { return e ? this._weekdaysShort[e.day()] : this._weekdaysShort }, hn.weekdaysParse = function (e, t, n) { var s, i, r; if (this._weekdaysParseExact) return function (e, t, n) { var s, i, r, a = e.toLocaleLowerCase(); if (!this._weekdaysParse) for (this._weekdaysParse = [], this._shortWeekdaysParse = [], this._minWeekdaysParse = [], s = 0; s < 7; ++s)r = h([2e3, 1]).day(s), this._minWeekdaysParse[s] = this.weekdaysMin(r, "").toLocaleLowerCase(), this._shortWeekdaysParse[s] = this.weekdaysShort(r, "").toLocaleLowerCase(), this._weekdaysParse[s] = this.weekdays(r, "").toLocaleLowerCase(); return n ? "dddd" === t ? -1 !== (i = Ye.call(this._weekdaysParse, a)) ? i : null : "ddd" === t ? -1 !== (i = Ye.call(this._shortWeekdaysParse, a)) ? i : null : -1 !== (i = Ye.call(this._minWeekdaysParse, a)) ? i : null : "dddd" === t ? -1 !== (i = Ye.call(this._weekdaysParse, a)) ? i : -1 !== (i = Ye.call(this._shortWeekdaysParse, a)) ? i : -1 !== (i = Ye.call(this._minWeekdaysParse, a)) ? i : null : "ddd" === t ? -1 !== (i = Ye.call(this._shortWeekdaysParse, a)) ? i : -1 !== (i = Ye.call(this._weekdaysParse, a)) ? i : -1 !== (i = Ye.call(this._minWeekdaysParse, a)) ? i : null : -1 !== (i = Ye.call(this._minWeekdaysParse, a)) ? i : -1 !== (i = Ye.call(this._weekdaysParse, a)) ? i : -1 !== (i = Ye.call(this._shortWeekdaysParse, a)) ? i : null }.call(this, e, t, n); for (this._weekdaysParse || (this._weekdaysParse = [], this._minWeekdaysParse = [], this._shortWeekdaysParse = [], this._fullWeekdaysParse = []), s = 0; s < 7; s++) { if (i = h([2e3, 1]).day(s), n && !this._fullWeekdaysParse[s] && (this._fullWeekdaysParse[s] = new RegExp("^" + this.weekdays(i, "").replace(".", ".?") + "$", "i"), this._shortWeekdaysParse[s] = new RegExp("^" + this.weekdaysShort(i, "").replace(".", ".?") + "$", "i"), this._minWeekdaysParse[s] = new RegExp("^" + this.weekdaysMin(i, "").replace(".", ".?") + "$", "i")), this._weekdaysParse[s] || (r = "^" + this.weekdays(i, "") + "|^" + this.weekdaysShort(i, "") + "|^" + this.weekdaysMin(i, ""), this._weekdaysParse[s] = new RegExp(r.replace(".", ""), "i")), n && "dddd" === t && this._fullWeekdaysParse[s].test(e)) return s; if (n && "ddd" === t && this._shortWeekdaysParse[s].test(e)) return s; if (n && "dd" === t && this._minWeekdaysParse[s].test(e)) return s; if (!n && this._weekdaysParse[s].test(e)) return s } }, hn.weekdaysRegex = function (e) { return this._weekdaysParseExact ? (l(this, "_weekdaysRegex") || Be.call(this), e ? this._weekdaysStrictRegex : this._weekdaysRegex) : (l(this, "_weekdaysRegex") || (this._weekdaysRegex = $e), this._weekdaysStrictRegex && e ? this._weekdaysStrictRegex : this._weekdaysRegex) }, hn.weekdaysShortRegex = function (e) { return this._weekdaysParseExact ? (l(this, "_weekdaysRegex") || Be.call(this), e ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) : (l(this, "_weekdaysShortRegex") || (this._weekdaysShortRegex = qe), this._weekdaysShortStrictRegex && e ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) }, hn.weekdaysMinRegex = function (e) { return this._weekdaysParseExact ? (l(this, "_weekdaysRegex") || Be.call(this), e ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) : (l(this, "_weekdaysMinRegex") || (this._weekdaysMinRegex = Je), this._weekdaysMinStrictRegex && e ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) }, hn.isPM = function (e) { return "p" === (e + "").toLowerCase().charAt(0) }, hn.meridiem = function (e, t, n) { return e > 11 ? n ? "pm" : "PM" : n ? "am" : "AM" }, ot("en", { dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, ordinal: function (e) { var t = e % 10; return e + (1 === M(e % 100 / 10) ? "th" : 1 === t ? "st" : 2 === t ? "nd" : 3 === t ? "rd" : "th") } }), n.lang = k("moment.lang is deprecated. Use moment.locale instead.", ot), n.langData = k("moment.langData is deprecated. Use moment.localeData instead.", lt); var _n = Math.abs; function yn(e, t, n, s) { var i = At(t, n); return e._milliseconds += s * i._milliseconds, e._days += s * i._days, e._months += s * i._months, e._bubble() } function gn(e) { return e < 0 ? Math.floor(e) : Math.ceil(e) } function pn(e) { return 4800 * e / 146097 } function vn(e) { return 146097 * e / 4800 } function wn(e) { return function () { return this.as(e) } } var Mn = wn("ms"), Sn = wn("s"), Dn = wn("m"), kn = wn("h"), Yn = wn("d"), On = wn("w"), Tn = wn("M"), xn = wn("y"); function bn(e) { return function () { return this.isValid() ? this._data[e] : NaN } } var Pn = bn("milliseconds"), Wn = bn("seconds"), Hn = bn("minutes"), Rn = bn("hours"), Cn = bn("days"), Fn = bn("months"), Ln = bn("years"); var Un = Math.round, Nn = { ss: 44, s: 45, m: 45, h: 22, d: 26, M: 11 }; var Gn = Math.abs; function Vn(e) { return (e > 0) - (e < 0) || +e } function En() { if (!this.isValid()) return this.localeData().invalidDate(); var e, t, n = Gn(this._milliseconds) / 1e3, s = Gn(this._days), i = Gn(this._months); t = w((e = w(n / 60)) / 60), n %= 60, e %= 60; var r = w(i / 12), a = i %= 12, o = s, u = t, l = e, d = n ? n.toFixed(3).replace(/\.?0+$/, "") : "", h = this.asSeconds(); if (!h) return "P0D"; var c = h < 0 ? "-" : "", f = Vn(this._months) !== Vn(h) ? "-" : "", m = Vn(this._days) !== Vn(h) ? "-" : "", _ = Vn(this._milliseconds) !== Vn(h) ? "-" : ""; return c + "P" + (r ? f + r + "Y" : "") + (a ? f + a + "M" : "") + (o ? m + o + "D" : "") + (u || l || d ? "T" : "") + (u ? _ + u + "H" : "") + (l ? _ + l + "M" : "") + (d ? _ + d + "S" : "") } var In = Ht.prototype; return In.isValid = function () { return this._isValid }, In.abs = function () { var e = this._data; return this._milliseconds = _n(this._milliseconds), this._days = _n(this._days), this._months = _n(this._months), e.milliseconds = _n(e.milliseconds), e.seconds = _n(e.seconds), e.minutes = _n(e.minutes), e.hours = _n(e.hours), e.months = _n(e.months), e.years = _n(e.years), this }, In.add = function (e, t) { return yn(this, e, t, 1) }, In.subtract = function (e, t) { return yn(this, e, t, -1) }, In.as = function (e) { if (!this.isValid()) return NaN; var t, n, s = this._milliseconds; if ("month" === (e = R(e)) || "year" === e) return t = this._days + s / 864e5, n = this._months + pn(t), "month" === e ? n : n / 12; switch (t = this._days + Math.round(vn(this._months)), e) { case "week": return t / 7 + s / 6048e5; case "day": return t + s / 864e5; case "hour": return 24 * t + s / 36e5; case "minute": return 1440 * t + s / 6e4; case "second": return 86400 * t + s / 1e3; case "millisecond": return Math.floor(864e5 * t) + s; default: throw new Error("Unknown unit " + e) } }, In.asMilliseconds = Mn, In.asSeconds = Sn, In.asMinutes = Dn, In.asHours = kn, In.asDays = Yn, In.asWeeks = On, In.asMonths = Tn, In.asYears = xn, In.valueOf = function () { return this.isValid() ? this._milliseconds + 864e5 * this._days + this._months % 12 * 2592e6 + 31536e6 * M(this._months / 12) : NaN }, In._bubble = function () { var e, t, n, s, i, r = this._milliseconds, a = this._days, o = this._months, u = this._data; return r >= 0 && a >= 0 && o >= 0 || r <= 0 && a <= 0 && o <= 0 || (r += 864e5 * gn(vn(o) + a), a = 0, o = 0), u.milliseconds = r % 1e3, e = w(r / 1e3), u.seconds = e % 60, t = w(e / 60), u.minutes = t % 60, n = w(t / 60), u.hours = n % 24, o += i = w(pn(a += w(n / 24))), a -= gn(vn(i)), s = w(o / 12), o %= 12, u.days = a, u.months = o, u.years = s, this }, In.clone = function () { return At(this) }, In.get = function (e) { return e = R(e), this.isValid() ? this[e + "s"]() : NaN }, In.milliseconds = Pn, In.seconds = Wn, In.minutes = Hn, In.hours = Rn, In.days = Cn, In.weeks = function () { return w(this.days() / 7) }, In.months = Fn, In.years = Ln, In.humanize = function (e) { if (!this.isValid()) return this.localeData().invalidDate(); var t, n, s, i, r, a, o, u, l, d, h, c = this.localeData(), f = (n = !e, s = c, i = At(t = this).abs(), r = Un(i.as("s")), a = Un(i.as("m")), o = Un(i.as("h")), u = Un(i.as("d")), l = Un(i.as("M")), d = Un(i.as("y")), (h = r <= Nn.ss && ["s", r] || r < Nn.s && ["ss", r] || a <= 1 && ["m"] || a < Nn.m && ["mm", a] || o <= 1 && ["h"] || o < Nn.h && ["hh", o] || u <= 1 && ["d"] || u < Nn.d && ["dd", u] || l <= 1 && ["M"] || l < Nn.M && ["MM", l] || d <= 1 && ["y"] || ["yy", d])[2] = n, h[3] = +t > 0, h[4] = s, function (e, t, n, s, i) { return i.relativeTime(t || 1, !!n, e, s) }.apply(null, h)); return e && (f = c.pastFuture(+this, f)), c.postformat(f) }, In.toISOString = En, In.toString = En, In.toJSON = En, In.locale = Qt, In.localeData = Kt, In.toIsoString = k("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", En), In.lang = Xt, I("X", 0, 0, "unix"), I("x", 0, 0, "valueOf"), ue("x", se), ue("X", /[+-]?\d+(\.\d{1,3})?/), ce("X", function (e, t, n) { n._d = new Date(1e3 * parseFloat(e, 10)) }), ce("x", function (e, t, n) { n._d = new Date(M(e)) }), n.version = "2.21.0", e = Tt, n.fn = ln, n.min = function () { return Pt("isBefore", [].slice.call(arguments, 0)) }, n.max = function () { return Pt("isAfter", [].slice.call(arguments, 0)) }, n.now = function () { return Date.now ? Date.now() : +new Date }, n.utc = h, n.unix = function (e) { return Tt(1e3 * e) }, n.months = function (e, t) { return fn(e, t, "months") }, n.isDate = o, n.locale = ot, n.invalid = m, n.duration = At, n.isMoment = v, n.weekdays = function (e, t, n) { return mn(e, t, n, "weekdays") }, n.parseZone = function () { return Tt.apply(null, arguments).parseZone() }, n.localeData = lt, n.isDuration = Rt, n.monthsShort = function (e, t) { return fn(e, t, "monthsShort") }, n.weekdaysMin = function (e, t, n) { return mn(e, t, n, "weekdaysMin") }, n.defineLocale = ut, n.updateLocale = function (e, t) { if (null != t) { var n, s, i = nt; null != (s = at(e)) && (i = s._config), (n = new P(t = b(i, t))).parentLocale = st[e], st[e] = n, ot(e) } else null != st[e] && (null != st[e].parentLocale ? st[e] = st[e].parentLocale : null != st[e] && delete st[e]); return st[e] }, n.locales = function () { return Y(st) }, n.weekdaysShort = function (e, t, n) { return mn(e, t, n, "weekdaysShort") }, n.normalizeUnits = R, n.relativeTimeRounding = function (e) { return void 0 === e ? Un : "function" == typeof e && (Un = e, !0) }, n.relativeTimeThreshold = function (e, t) { return void 0 !== Nn[e] && (void 0 === t ? Nn[e] 
vendor: 9,737 bytes, lines 99-101
99: (Nn[e] = t, "s" === e && (Nn.ss = t - 1), !0)) }, n.calendarFormat = function (e, t) { var n = e.diff(t, "days", !0); return n < -6 ? "sameElse" : n < -1 ? "lastWeek" : n < 0 ? "lastDay" : n < 1 ? "sameDay" : n < 2 ? "nextDay" : n < 7 ? "nextWeek" : "sameElse" }, n.prototype = ln, n.HTML5_FMT = { DATETIME_LOCAL: "YYYY-MM-DDTHH:mm", DATETIME_LOCAL_SECONDS: "YYYY-MM-DDTHH:mm:ss", DATETIME_LOCAL_MS: "YYYY-MM-DDTHH:mm:ss.SSS", DATE: "YYYY-MM-DD", TIME: "HH:mm", TIME_SECONDS: "HH:mm:ss", TIME_MS: "HH:mm:ss.SSS", WEEK: "YYYY-[W]WW", MONTH: "YYYY-MM" }, n });
100
101!function (e) { "use strict"; if ("function" == typeof define && define.amd) define(["jquery", "moment"], e); else if ("object" == typeof exports) module.exports = e(require("jquery"), require("moment")); else { if ("undefined" == typeof jQuery) throw "bootstrap-datetimepicker requires jQuery to be loaded first"; if ("undefined" == typeof moment) throw "bootstrap-datetimepicker requires Moment.js to be loaded first"; e(jQuery, moment) } }(function (e, t) { "use strict"; if (!t) throw new Error("bootstrap-datetimepicker requires Moment.js to be loaded first"); var a = function (a, n) { var r, i, o, s, d, l, p, c = {}, u = !0, f = !1, m = !1, h = 0, y = [{ clsName: "days", navFnc: "M", navStep: 1 }, { clsName: "months", navFnc: "y", navStep: 1 }, { clsName: "years", navFnc: "y", navStep: 10 }, { clsName: "decades", navFnc: "y", navStep: 100 }], w = ["days", "months", "years", "decades"], b = ["top", "bottom", "auto"], g = ["left", "right", "auto"], v = ["default", "top", "bottom"], k = { up: 38, 38: "up", down: 40, 40: "down", left: 37, 37: "left", right: 39, 39: "right", tab: 9, 9: "tab", escape: 27, 27: "escape", enter: 13, 13: "enter", pageUp: 33, 33: "pageUp", pageDown: 34, 34: "pageDown", shift: 16, 16: "shift", control: 17, 17: "control", space: 32, 32: "space", t: 84, 84: "t", delete: 46, 46: "delete" }, D = {}, C = function () { return void 0 !== t.tz && void 0 !== n.timeZone && null !== n.timeZone && "" !== n.timeZone }, x = function (e) { var a; return a = void 0 === e || null === e ? t() : t.isDate(e) || t.isMoment(e) ? t(e) : C() ? t.tz(e, l, n.useStrict, n.timeZone) : t(e, l, n.useStrict), C() && a.tz(n.timeZone), a }, T = function (e) { if ("string" != typeof e || e.length > 1) throw new TypeError("isEnabled expects a single character string parameter"); switch (e) { case "y": return -1 !== d.indexOf("Y"); case "M": return -1 !== d.indexOf("M"); case "d": return -1 !== d.toLowerCase().indexOf("d"); case "h": case "H": return -1 !== d.toLowerCase().indexOf("h"); case "m": return -1 !== d.indexOf("m"); case "s": return -1 !== d.indexOf("s"); default: return !1 } }, M = function () { return T("h") || T("m") || T("s") }, S = function () { return T("y") || T("M") || T("d") }, O = function () { var t = e("<thead>").append(e("<tr>").append(e("<th>").addClass("prev").attr("data-action", "previous").append(e("<i>").addClass(n.icons.previous))).append(e("<th>").addClass("picker-switch").attr("data-action", "pickerSwitch").attr("colspan", n.calendarWeeks ? "6" : "5")).append(e("<th>").addClass("next").attr("data-action", "next").append(e("<i>").addClass(n.icons.next)))), a = e("<tbody>").append(e("<tr>").append(e("<td>").attr("colspan", n.calendarWeeks ? "8" : "7"))); return [e("<div>").addClass("datepicker-days").append(e("<table>").addClass("table-condensed").append(t).append(e("<tbody>"))), e("<div>").addClass("datepicker-months").append(e("<table>").addClass("table-condensed").append(t.clone()).append(a.clone())), e("<div>").addClass("datepicker-years").append(e("<table>").addClass("table-condensed").append(t.clone()).append(a.clone())), e("<div>").addClass("datepicker-decades").append(e("<table>").addClass("table-condensed").append(t.clone()).append(a.clone()))] }, P = function () { var t = e("<tr>"), a = e("<tr>"), r = e("<tr>"); return T("h") && (t.append(e("<td>").append(e("<a>").attr({ href: "#", tabindex: "-1", title: n.tooltips.incrementHour }).addClass("btn").attr("data-action", "incrementHours").append(e("<i>").addClass(n.icons.up)))), a.append(e("<td>").append(e("<span>").addClass("timepicker-hour").attr({ "data-time-component": "hours", title: n.tooltips.pickHour }).attr("data-action", "showHours"))), r.append(e("<td>").append(e("<a>").attr({ href: "#", tabindex: "-1", title: n.tooltips.decrementHour }).addClass("btn").attr("data-action", "decrementHours").append(e("<i>").addClass(n.icons.down))))), T("m") && (T("h") && (t.append(e("<td>").addClass("separator")), a.append(e("<td>").addClass("separator").html(":")), r.append(e("<td>").addClass("separator"))), t.append(e("<td>").append(e("<a>").attr({ href: "#", tabindex: "-1", title: n.tooltips.incrementMinute }).addClass("btn").attr("data-action", "incrementMinutes").append(e("<i>").addClass(n.icons.up)))), a.append(e("<td>").append(e("<span>").addClass("timepicker-minute").attr({ "data-time-component": "minutes", title: n.tooltips.pickMinute }).attr("data-action", "showMinutes"))), r.append(e("<td>").append(e("<a>").attr({ href: "#", tabindex: "-1", title: n.tooltips.decrementMinute }).addClass("btn").attr("data-action", "decrementMinutes").append(e("<i>").addClass(n.icons.down))))), T("s") && (T("m") && (t.append(e("<td>").addClass("separator")), a.append(e("<td>").addClass("separator").html(":")), r.append(e("<td>").addClass("separator"))), t.append(e("<td>").append(e("<a>").attr({ href: "#", tabindex: "-1", title: n.tooltips.incrementSecond }).addClass("btn").attr("data-action", "incrementSeconds").append(e("<i>").addClass(n.icons.up)))), a.append(e("<td>").append(e("<span>").addClass("timepicker-second").attr({ "data-time-component": "seconds", title: n.tooltips.pickSecond }).attr("data-action", "showSeconds"))), r.append(e("<td>").append(e("<a>").attr({ href: "#", tabindex: "-1", title: n.tooltips.decrementSecond }).addClass("btn").attr("data-action", "decrementSeconds").append(e("<i>").addClass(n.icons.down))))), s || (t.append(e("<td>").addClass("separator")), a.append(e("<td>").append(e("<button>").addClass("btn btn-primary").attr({ "data-action": "togglePeriod", tabindex: "-1", title: n.tooltips.togglePeriod }))), r.append(e("<td>").addClass("separator"))), e("<div>").addClass("timepicker-picker").append(e("<table>").addClass("table-condensed").append([t, a, r])) }, E = function () { var t = e("<div>").addClass("timepicker-hours").append(e("<table>").addClass("table-condensed")), a = e("<div>").addClass("timepicker-minutes").append(e("<table>").addClass("table-condensed")), n = e("<div>").addClass("timepicker-seconds").append(e("<table>").addClass("table-condensed")), r = [P()]; return T("h") && r.push(t), T("m") && r.push(a), T("s") && r.push(n), r }, H = function () { var t = []; return n.showTodayButton && t.push(e("<td>").append(e("<a>").attr({ "data-action": "today", title: n.tooltips.today }).append(e("<i>").addClass(n.icons.today)))), !n.sideBySide && S() && M() && t.push(e("<td>").append(e("<a>").attr({ "data-action": "togglePicker", title: n.tooltips.selectTime }).append(e("<i>").addClass(n.icons.time)))), n.showClear && t.push(e("<td>").append(e("<a>").attr({ "data-action": "clear", title: n.tooltips.clear }).append(e("<i>").addClass(n.icons.clear)))), n.showClose && t.push(e("<td>").append(e("<a>").attr({ "data-action": "close", title: n.tooltips.close }).append(e("<i>").addClass(n.icons.close)))), e("<table>").addClass("table-condensed").append(e("<tbody>").append(e("<tr>").append(t))) }, I = function () { var t = e("<div>").addClass("bootstrap-datetimepicker-widget dropdown-menu"), a = e("<div>").addClass("datepicker").append(O()), r = e("<div>").addClass("timepicker").append(E()), i = e("<ul>").addClass("list-unstyled"), o = e("<li>").addClass("picker-switch" + (n.collapse ? " accordion-toggle" : "")).append(H()); return n.inline && t.removeClass("dropdown-menu"), s && t.addClass("usetwentyfour"), T("s") && !s && t.addClass("wider"), n.sideBySide && S() && M() ? (t.addClass("timepicker-sbs"), "top" === n.toolbarPlacement && t.append(o), t.append(e("<div>").addClass("row").append(a.addClass("col-md-6")).append(r.addClass("col-md-6"))), "bottom" === n.toolbarPlacement && t.append(o), t) : ("top" === n.toolbarPlacement && i.append(o), S() && i.append(e("<li>").addClass(n.collapse && M() ? "collapse show" : "").append(a)), "default" === n.toolbarPlacement && i.append(o), M() && i.append(e("<li>").addClass(n.collapse && S() ? "collapse" : "").append(r)), "bottom" === n.toolbarPlacement && i.append(o), t.append(i)) }, Y = function () { var t, r = (f || a).position(), i = (f || a).offset(), o = n.widgetPositioning.vertical, s = n.widgetPositioning.horizontal; if (n.widgetParent) t = n.widgetParent.append(m); else if (a.is("input")) t = a.after(m).parent(); else { if (n.inline) return void (t = a.append(m)); t = a, a.children().first().after(m) } if ("auto" === o && (o = i.top + 1.5 * m.height() >= e(window).height() + e(window).scrollTop() && m.height() + a.outerHeight() < i.top ? "top" : "bottom"), "auto" === s && (s = t.width() < i.left + m.outerWidth() / 2 && i.left + m.outerWidth() > e(window).width() ? "right" : "left"), "top" === o ? m.addClass("top").removeClass("bottom") : m.addClass("bottom").removeClass("top"), "right" === s ? m.addClass("pull-right") : m.removeClass("pull-right"), "static" === t.css("position") && (t = t.parents().filter(function () { return "static" !== e(this).css("position") }).first()), 0 === t.length) throw new Error("datetimepicker component should be placed within a non-static positioned container"); m.css({ top: "top" === o ? "auto" : r.top + a.outerHeight(), bottom: "top" === o ? t.outerHeight() - (t === a ? 0 : r.top) : "auto", left: "left" === s ? t === a ? 0 : r.left : "auto", r
101ight: "left" === s ? "auto" : t.outerWidth() - a.outerWidth() - (t === a ? 0 : r.left) }) }, q = function (e) { "dp.change" === e.type && (e.date && e.date.isSame(e.oldDate) || !e.date && !e.oldDate) || a.trigger(e) }, B = function (e) { "y" === e && (e = "YYYY"), q({ type: "dp.update", change: e, viewDate: i.clone() }) }, j = function (e) { m && (e && (p = Math.max(h, Math.min(3, p + e))), m.find(".datepicker > div").hide().filter(".datepicker-" + y[p].clsName).show()) }, A = function () { var t = e("<tr>"), a = i.clone().startOf("w").startOf("d"); for (!0 === n.calendarWeeks && t.append(e("<th>").addClass("cw").text("#")); a.isBefore(i.clone().endOf("w"));)t.append(e("<th>").addClass("dow").text(a.format("dd"))), a.add(1, "d"); m.find(".datepicker-days thead").append(t) }, F = function (e) { return !0 === n.disabledDates[e.format("YYYY-MM-DD")] }, L = function (e) { return !0 === n.enabledDates[e.format("YYYY-MM-DD")] }, W = function (e) { return !0 === n.disabledHours[e.format("H")] }, z = function (e) { return !0 === n.enabledHours[e.format("H")] }, N = function (t, a) { if (!t.isValid()) return !1; if (n.disabledDates && "d" === a && F(t)) return !1; if (n.enabledDates && "d" === a && !L(t)) return !1; if (n.minDate && t.isBefore(n.minDate, a)) return !1; if (n.maxDate && t.isAfter(n.maxDate, a)) return !1; if (n.daysOfWeekDisabled && "d" === a && -1 !== n.daysOfWeekDisabled.indexOf(t.day())) return !1; if (n.disabledHours && ("h" === a || "m" === a || "s" === a) && W(t)) return !1; if (n.enabledHours && ("h" === a || "m" === a || "s" === a) && !z(t)) return !1; if (n.disabledTimeIntervals && ("h" === a || "m" === a || "s" === a)) { var r = !1; if (e.each(n.disabledTimeIntervals, function () { if (t.isBetween(this[0], this[1])) return r = !0, !1 }), r) return !1 } return !0 }, V = function () { for (var t = [], a = i.clone().startOf("y").startOf("d"); a.isSame(i, "y");)t.push(e("<span>").attr("data-action", "selectMonth").addClass("month").text(a.format("MMM"))), a.add(1, "M"); m.find(".datepicker-months td").empty().append(t) }, Z = function () { var t = m.find(".datepicker-months"), a = t.find("th"), o = t.find("tbody").find("span"); a.eq(0).find("span").attr("title", n.tooltips.prevYear), a.eq(1).attr("title", n.tooltips.selectYear), a.eq(2).find("span").attr("title", n.tooltips.nextYear), t.find(".disabled").removeClass("disabled"), N(i.clone().subtract(1, "y"), "y") || a.eq(0).addClass("disabled"), a.eq(1).text(i.year()), N(i.clone().add(1, "y"), "y") || a.eq(2).addClass("disabled"), o.removeClass("active"), r.isSame(i, "y") && !u && o.eq(r.month()).addClass("active"), o.each(function (t) { N(i.clone().month(t), "M") || e(this).addClass("disabled") }) }, R = function () { var e = m.find(".datepicker-years"), t = e.find("th"), a = i.clone().subtract(5, "y"), o = i.clone().add(6, "y"), s = ""; for (t.eq(0).find("span").attr("title", n.tooltips.prevDecade), t.eq(1).attr("title", n.tooltips.selectDecade), t.eq(2).find("span").attr("title", n.tooltips.nextDecade), e.find(".disabled").removeClass("disabled"), n.minDate && n.minDate.isAfter(a, "y") && t.eq(0).addClass("disabled"), t.eq(1).text(a.year() + "-" + o.year()), n.maxDate && n.maxDate.isBefore(o, "y") && t.eq(2).addClass("disabled"); !a.isAfter(o, "y");)s += '<span data-action="selectYear" class="year' + (a.isSame(r, "y") && !u ? " active" : "") + (N(a, "y") ? "" : " disabled") + '">' + a.year() + "</span>", a.add(1, "y"); e.find("td").html(s) }, Q = function () { var e, a = m.find(".datepicker-decades"), o = a.find("th"), s = t({ y: i.year() - i.year() % 100 - 1 }), d = s.clone().add(100, "y"), l = s.clone(), p = !1, c = !1, u = ""; for (o.eq(0).find("span").attr("title", n.tooltips.prevCentury), o.eq(2).find("span").attr("title", n.tooltips.nextCentury), a.find(".disabled").removeClass("disabled"), (s.isSame(t({ y: 1900 })) || n.minDate && n.minDate.isAfter(s, "y")) && o.eq(0).addClass("disabled"), o.eq(1).text(s.year() + "-" + d.year()), (s.isSame(t({ y: 2e3 })) || n.maxDate && n.maxDate.isBefore(d, "y")) && o.eq(2).addClass("disabled"); !s.isAfter(d, "y");
vendor: 4,235 bytes, line 101
101)e = s.year() + 12, p = n.minDate && n.minDate.isAfter(s, "y") && n.minDate.year() <= e, c = n.maxDate && n.maxDate.isAfter(s, "y") && n.maxDate.year() <= e, u += '<span data-action="selectDecade" class="decade' + (r.isAfter(s) && r.year() <= e ? " active" : "") + (N(s, "y") || p || c ? "" : " disabled") + '" data-selection="' + (s.year() + 6) + '">' + (s.year() + 1) + " - " + (s.year() + 12) + "</span>", s.add(12, "y"); u += "<span></span><span></span><span></span>", a.find("td").html(u), o.eq(1).text(l.year() + 1 + "-" + s.year()) }, U = function () { var t, a, o, s = m.find(".datepicker-days"), d = s.find("th"), l = [], p = []; if (S()) { for (d.eq(0).find("span").attr("title", n.tooltips.prevMonth), d.eq(1).attr("title", n.tooltips.selectMonth), d.eq(2).find("span").attr("title", n.tooltips.nextMonth), s.find(".disabled").removeClass("disabled"), d.eq(1).text(i.format(n.dayViewHeaderFormat)), N(i.clone().subtract(1, "M"), "M") || d.eq(0).addClass("disabled"), N(i.clone().add(1, "M"), "M") || d.eq(2).addClass("disabled"), t = i.clone().startOf("M").startOf("w").startOf("d"), o = 0; o < 42; o++)0 === t.weekday() && (a = e("<tr>"), n.calendarWeeks && a.append('<td class="cw">' + t.week() + "</td>"), l.push(a)), p = ["day"], t.isBefore(i, "M") && p.push("old"), t.isAfter(i, "M") && p.push("new"), t.isSame(r, "d") && !u && p.push("active"), N(t, "d") || p.push("disabled"), t.isSame(x(), "d") && p.push("today"), 0 !== t.day() && 6 !== t.day() || p.push("weekend"), q({ type: "dp.classify", date: t, classNames: p }), a.append('<td data-action="selectDay" data-day="' + t.format("L") + '" class="' + p.join(" ") + '">' + t.date() + "</td>"), t.add(1, "d"); s.find("tbody").empty().append(l), Z(), R(), Q() } }, G = function () { var t = m.find(".timepicker-hours table"), a = i.clone().startOf("d"), n = [], r = e("<tr>"); for (i.hour() > 11 && !s && a.hour(12); a.isSame(i, "d") && (s || i.hour() < 12 && a.hour() < 12 || i.hour() > 11);)a.hour() % 4 == 0 && (r = e("<tr>"), n.push(r)), r.append('<td data-action="selectHour" class="hour' + (N(a, "h") ? "" : " disabled") + '">' + a.format(s ? "HH" : "hh") + "</td>"), a.add(1, "h"); t.empty().append(n) }, J = function () { for (var t = m.find(".timepicker-minutes table"), a = i.clone().startOf("h"), r = [], o = e("<tr>"), s = 1 === n.stepping ? 5 : n.stepping; i.isSame(a, "h");)a.minute() % (4 * s) == 0 && (o = e("<tr>"), r.push(o)), o.append('<td data-action="selectMinute" class="minute' + (N(a, "m") ? "" : " disabled") + '">' + a.format("mm") + "</td>"), a.add(s, "m"); t.empty().append(r) }, K = function () { for (var t = m.find(".timepicker-seconds table"), a = i.clone().startOf("m"), n = [], r = e("<tr>"); i.isSame(a, "m");)a.second() % 20 == 0 && (r = e("<tr>"), n.push(r)), r.append('<td data-action="selectSecond" class="second' + (N(a, "s") ? "" : " disabled") + '">' + a.format("ss") + "</td>"), a.add(5, "s"); t.empty().append(n) }, X = function () { var e, t, a = m.find(".timepicker span[data-time-component]"); s || (e = m.find(".timepicker [data-action=togglePeriod]"), t = r.clone().add(r.hours() >= 12 ? -12 : 12, "h"), e.text(r.format("A")), N(t, "h") ? e.removeClass("disabled") : e.addClass("disabled")), a.filter("[data-time-component=hours]").text(r.format(s ? "HH" : "hh")), a.filter("[data-time-component=minutes]").text(r.format("mm")), a.filter("[data-time-component=seconds]").text(r.format("ss")), G(), J(), K() }, $ = function () { m && (U(), X()) }, _ = function (e) { var t = u ? null : r; if (!e) return u = !0, o.val(""), a.data("date", ""), q({ type: "dp.change", date: !1, oldDate: t }), void $(); if (e = e.clone().locale(n.locale), C() && e.tz(n.timeZone), 1 !== n.stepping) for (e.minutes(Math.round(e.minutes() / n.stepping) * n.stepping).seconds(0); n.minDate && e.isBefore(n.minDate);)e.add(n.stepping, "minutes"); N(e) ? (i = (r = e).clone(), o.val(r.format(d)), a.data("date", r.format(d)), u = !1, $(), q({ type: "dp.change", date: r.clone(), oldDate: t })) : (n.keepInvalid ? q({ type: "dp.change", date: e, oldDate: t }) : o.val(u ? "" : r.format(d)), q({ type: "dp.error", date: e, oldDate: t })) }, ee = function () { var t = !1; return m ? (m.find(".collapse").each(function () { var a = e(this).data("c
101ollapse"); return !a || !a.transitioning || (t = !0, !1) }), t ? c : (f && f.hasClass("btn") && f.toggleClass("active"), m.hide(), e(window).off("resize", Y), m.off("click", "[data-action]"), m.off("mousedown", !1), m.remove(), m = !1, q({ type: "dp.hide", date: r.clone() }), o.blur(), i = r.clone(), c)) : c }, te = function () { _(null) }, ae = function (e) { return void 0 === n.parseInputDate ? (!t.isMoment(e) || e instanceof Date) && (e = x(e)) : e = n.parseInputDate(e), e }, ne = { next: function () { var e = y[p].navFnc; i.add(y[p].navStep, e), U(), B(e) }, previous: function () { var e = y[p].navFnc; i.subtract(y[p].navStep, e), U(), B(e) }, pickerSwitch: function () { j(1) }, selectMonth: function (t) { var a = e(t.target).closest("tbody").find("span").index(e(t.target)); i.month(a), p === h ? (_(r.clone().year(i.year()).month(i.month())), n.inline || ee()) : (j(-1), U()), B("M") }, selectYear: function (t) { var a = parseInt(e(t.target).text(), 10) || 0; i.year(a), p === h ? (_(r.clone().year(i.year())), n.inline || ee()) : (j(-1), U()), B("YYYY") }, selectDecade: function (t) { var a = parseInt(e(t.target).data("selection"), 10) || 0; i.year(a), p === h ? (_(r.clone().year(i.year())), n.inline || ee()) : (j(-1), U()), B("YYYY") }, selectDay: function (t) { var a = i.clone(); e(t.target).is(".old") && a.subtract(1, "M"), e(t.target).is(".new") && a.add(1, "M"), _(a.date(parseInt(e(t.target).text(), 10))), M() || n.keepOpen || n.inline || ee() }, incrementHours: function () { var e = r.clone().add(1, "h"); N(e, "h") && _(e) }, incrementMinutes: function () { var e = r.clone().add(n.stepping, "m"); N(e, "m") && _(e) }, incrementSeconds: function () { var e = r.clone().add(1, "s"); N(e, "s") && _(e) }, decrementHours: function () { var e = r.clone().subtract(1, "h"); N(e, "h") && _(e) }, decrementMinutes: function () { var e = r.clone().subtract(n.stepping, "m"); N(e, "m") && _(e) }, decrementSeconds: function () { var e = r.clone().subtract(1, "s"); N(e, "s") && _(e) }, togglePeriod: function () { _(r.clone().add(r.hours() >= 12 ? -12 : 12, "h")) }, togglePicker: function (t) { var a, r = e(t.target), i = r.closest("ul"), o = i.find(".show"), s = i.find(".collapse:not(.show)"); if (o && o.length) { if ((a = o.data("collapse")) && a.transitioning) return; o.collapse ? (o.collapse("hide"), s.collapse("show")) : (o.removeClass("show"), s.addClass("show")), r.is("i") ? r.toggleClass(n.icons.time + " " + n.icons.date) : r.find("i").toggleClass(n.icons.time + " " + n.icons.date) } }, showPicker: function () { m.find(".timepicker > div:not(.timepicker-picker)").hide(), m.find(".timepicker .timepicker-picker").show() }, showHours: function () { m.find(".timepicker .timepicker-picker").hide(), m.find(".timepicker .timepicker-hours").show() }, showMinutes: function () { m.find(".timepicker .timepicker-picker").hide(), m.find(".timepicker .timepicker-minutes").show() }, showSeconds: function () { m.find(".timepicker .timepicker-picker").hide(), m.find(".timepicker .timepicker-seconds").show() }, selectHour: function (t) { var a = parseInt(e(t.target).text(), 10); s || (r.hours() >= 12 ? 12 !== a && (a += 12) : 12 === a && (a = 0)), _(r.clone().hours(a)), ne.showPicker.call(c) }, selectMinute: function (t) { _(r.clone().minutes(parseInt(e(t.target).text(), 10))), ne.showPicker.call(c) }, selectSecond: function (t) { _(r.clone().seconds(parseInt(e(t.target).text(), 10))), ne.showPicker.call(c) }, clear: te, today: function () { var e = x(); N(e, "d") && _(e) }, close: ee }, re = function (t) { return !e(t.currentTarget).is(".disabled") && (ne[e(t.currentTarget).data("action")].apply(c, arguments), !1) }, ie = function () { var t, a = { year: function (e) { return e.month(0).date(1).hours(0).seconds(0).minutes(0) }, month: function (e) { return e.date(1).hours(0).seconds(0).minutes(0) }, day: function (e) { return e.hours(0).seconds(0).minutes(0) }, hour: function (e) { return e.seconds(0).minutes(0) }, minute: function (e) { return e.seconds(0) } }; return o.prop("disabled") || !n.ignoreReadonly && o.prop("readonly") || m ? c : (void 0 !== o.val() && 0 !== o.val().trim().length ? _(ae(o.val().trim())) : u && n.useCurrent && (n.inline || o.is("input") && 0 === o.val().trim().length) && (t = x(), "string" == typeof n.useCurrent && (t = a[n.useCurrent](t)), _(t)), m = I(), A(), V(), m.find(".timepicker-hours").hide(), m.find(".timepicker-minutes").hide(), m.find(".timepicker-seconds").hide(), $(), j(), e(window).on("resize", Y), m.on("click", "[data-action]", re), m.on("mousedown", !1), f && f.hasClass("btn") && f.toggleClass("active"), Y(), m.show(), n.focusOnShow && !o.is(":focus") && o.focus(), q({ type: "dp.show" }), c) }, oe = function () { return m ? ee() : ie() }, se = function (e) { var t, a, r, i, o = null, s = [], d = {}, l = e.which; D[l] = "p"; for (t in D) D.hasOwnProperty(t) && "p" === D[t] && (s.push(t), parseInt(t, 10) !== l && (d[t] = !0)); for (t in n.keyBinds) if (n.keyBinds.hasOwnProperty(t) && "function" == typeof n.keyBinds[t] && (r = t.split(" ")).length === s.length && k[l] === r[r.length - 1]) { for (i = !0, a = r.length - 2; a >= 0; a--)if (!(k[r[a]] in d)) { i = !1; break } if (i) { o = n.keyBinds[t]; break } } o && (o.call(c, m), e.stopPropagation(), e.preventDefault()) }
vendor: 16,657 bytes, line 101
101, de = function (e) { D[e.which] = "r", e.stopPropagation(), e.preventDefault() }, le = function (t) { var a = e(t.target).val().trim(), n = a ? ae(a) : null; return _(n), t.stopImmediatePropagation(), !1 }, pe = function () { o.off({ change: le, blur: blur, keydown: se, keyup: de, focus: n.allowInputToggle ? ee : "" }), a.is("input") ? o.off({ focus: ie }) : f && (f.off("click", oe), f.off("mousedown", !1)) }, ce = function (t) { var a = {}; return e.each(t, function () { var e = ae(this); e.isValid() && (a[e.format("YYYY-MM-DD")] = !0) }), !!Object.keys(a).length && a }, ue = function (t) { var a = {}; return e.each(t, function () { a[this] = !0 }), !!Object.keys(a).length && a }, fe = function () { var e = n.format || "L LT"; d = e.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (e) { return (r.localeData().longDateFormat(e) || e).replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (e) { return r.localeData().longDateFormat(e) || e }) }), (l = n.extraFormats ? n.extraFormats.slice() : []).indexOf(e) < 0 && l.indexOf(d) < 0 && l.push(d), s = d.toLowerCase().indexOf("a") < 1 && d.replace(/\[.*?\]/g, "").indexOf("h") < 1, T("y") && (h = 2), T("M") && (h = 1), T("d") && (h = 0), p = Math.max(h, p), u || _(r) }; if (c.destroy = function () { ee(), pe(), a.removeData("DateTimePicker"), a.removeData("date") }, c.toggle = oe, c.show = ie, c.hide = ee, c.disable = function () { return ee(), f && f.hasClass("btn") && f.addClass("disabled"), o.prop("disabled", !0), c }, c.enable = function () { return f && f.hasClass("btn") && f.removeClass("disabled"), o.prop("disabled", !1), c }, c.ignoreReadonly = function (e) { if (0 === arguments.length) return n.ignoreReadonly; if ("boolean" != typeof e) throw new TypeError("ignoreReadonly () expects a boolean parameter"); return n.ignoreReadonly = e, c }, c.options = function (t) { if (0 === arguments.length) return e.extend(!0, {}, n); if (!(t instanceof Object)) throw new TypeError("options() options parameter should be an object"); return e.extend(!0, n, t), e.each(n, function (e, t) { if (void 0 === c[e]) throw new TypeError("option " + e + " is not recognized!"); c[e](t) }), c }, c.date = function (e) { if (0 === arguments.length) return u ? null : r.clone(); if (!(null === e || "string" == typeof e || t.isMoment(e) || e instanceof Date)) throw new TypeError("date() parameter must be one of [null, string, moment or Date]"); return _(null === e ? null : ae(e)), c }, c.format = function (e) { if (0 === arguments.length) return n.format; if ("string" != typeof e && ("boolean" != typeof e || !1 !== e)) throw new TypeError("format() expects a string or boolean:false parameter " + e); return n.format = e, d && fe(), c }, c.timeZone = function (e) { if (0 === arguments.length) return n.timeZone; if ("string" != typeof e) throw new TypeError("newZone() expects a string parameter"); return n.timeZone = e, c }, c.dayViewHeaderFormat = function (e) { if (0 === arguments.length) return n.dayViewHeaderFormat; if ("string" != typeof e) throw new TypeError("dayViewHeaderFormat() expects a string parameter"); return n.dayViewHeaderFormat = e, c }, c.extraFormats = function (e) { if (0 === arguments.length) return n.extraFormats; if (!1 !== e && !(e instanceof Array)) throw new TypeError("extraFormats() expects an array or false parameter"); return n.extraFormats = e, l && fe(), c }, c.disabledDates = function (t) { if (0 === arguments.length) return n.disabledDates ? e.extend({}, n.disabledDates) : n.disabledDates; if (!t) return n.disabledDates = !1, $(), c; if (!(t instanceof Array)) throw new TypeError("disabledDates() expects an array parameter"); return n.disabledDates = ce(t), n.enabledDates = !1, $(), c }, c.enabledDates = function (t) { if (0 === arguments.length) return n.enabledDates ? e.extend({}, n.enabledDates) : n.enabledDates; if (!t) return n.enabledDates = !1, $(), c; if (!(t instanceof Array)) throw new TypeError("enabledDates() expects an array parameter"); return n.enabledDates = ce(t), n.disabledDates = !1, $(), c }, c.daysOfWeekDisabled = function (e) { if (0 === arguments.length) return n.daysOfWeekDisabled.splice(0); if ("boolean" == typeof e && !e) return n.daysOfWeekDisabled = !1, $(), c; if (!(e instanceof Array)) throw new TypeError("daysOfWeekDisabled() expects an array parameter"); if (n.daysOfWeekDisabled = e.reduce(function (e, t) { return (t = parseInt(t, 10)) > 6 || t < 0 || isNaN(t) ? e : (-1 === e.indexOf(t) && e.push(t), e) }, []).sort(), n.useCurrent && !n.keepInvalid) { for (var t = 0; !N(r, "d");) { if (r.add(1, "d"), 31 === t) throw "Tried 31 times to find a valid date"; t++ } _(r) } return $(), c }, c.maxDate = function (e) { if (0 === arguments.length) return n.maxDate ? n.maxDate.clone() : n.maxDate; if ("boolean" == typeof e && !1 === e) return n.maxDate = !1, $(), c; "string" == typeof e && ("now" !== e && "moment" !== e || (e = x())); var t = ae(e); if (!t.isValid()) throw new TypeError("maxDate() Could not parse date parameter: " + e); if (n.minDate && t.isBefore(n.minDate)) throw new TypeError("maxDate() date parameter is before options.minDate: " + t.format(d)); return n.maxDate = t, n.useCurrent && !n.keepInvalid && r.isAfter(e) && _(n.maxDate), i.isAfter(t) && (i = t.clone().subtract(n.stepping, "m")), $(), c }, c.minDate = function (e) { if (0 === arguments.length) return n.minDate ? n.minDate.clone() : n.minDate; if ("boolean" == typeof e && !1 === e) return n.minDate = !1, $(), c; "string" == typeof e && ("now" !== e && "moment" !== e || (e = x())); var t = ae(e); if (!t.isValid()) throw new TypeError("minDate() Could not parse date parameter: " + e); if (n.maxDate && t.isAfter(n.maxDate)) throw new TypeError("minDate() date parameter is after options.maxDate: " + t.format(d)); return n.minDate = t, n.useCurrent && !n.keepInvalid && r.isBefore(e) && _(n.minDate), i.isBefore(t) && (i = t.clone().add(n.stepping, "m")), $(), c }, c.defaultDate = function (e) { if (0 === arguments.length) return n.defaultDate ? n.defaultDate.clone() : n.defaultDate; if (!e) return n.defaultDate = !1, c; "string" == typeof e && (e = "now" === e || "moment" === e ? x() : x(e)); var t = ae(e); if (!t.isValid()) throw new TypeError("defaultDate() Could not parse date parameter: " + e); if (!N(t)) throw new TypeError("defaultDate() date passed is invalid according to component setup validations"); return n.defaultDate = t, (n.defaultDate && n.inline || "" === o.val().trim()) && _(n.defaultDate), c }, c.locale = function (e) { if (0 === arguments.length) return n.locale; if (!t.localeData(e)) throw new TypeError("locale() locale " + e + " is not loaded from moment locales!"); return n.locale = e, r.locale(n.locale), i.locale(n.locale), d && fe(), m && (ee(), ie()), c }, c.stepping = function (e) { return 0 === arguments.length ? n.stepping : (e = parseInt(e, 10), (isNaN(e) || e < 1) && (e = 1), n.stepping = e, c) }, c.useCurrent = function (e) { var t = ["year", "month", "day", "hour", "minute"]; if (0 === arguments.length) return n.useCurrent; if ("boolean" != typeof e && "string" != typeof e) throw new TypeError("useCurrent() expects a boolean or string parameter"); if ("string" == typeof e && -1 === t.indexOf(e.toLowerCase())) throw new TypeError("useCurrent() expects a string parameter of " + t.join(", ")); return n.useCurrent = e, c }, c.collapse = function (e) { if (0 === arguments.length) return n.collapse; if ("boolean" != typeof e) throw new TypeError("collapse() expects a boolean parameter"); return n.collapse === e ? c : (n.collapse = e, m && (ee(), ie()), c) }, c.icons = function (t) { if (0 === arguments.length) return e.extend({}, n.icons); if (!(t instanceof Object)) throw new TypeError("icons() expects parameter to be an Object"); return e.extend(n.icons, t), m && (ee(), ie()), c }, c.tooltips = function (t) { if (0 === arguments.length) return e.extend({}, n.tooltips); if (!(t instanceof Object)) throw new TypeError("tooltips() expects parameter to be an Object"); return e.extend(n.tooltips, t), m && (ee(), ie()), c }, c.useStrict = function (e) { if (0 === arguments.length) return n.useStrict; if ("boolean" != typeof e) throw new TypeError("useStrict() expects a boolean parameter"); return n.useStrict = e, c }, c.sideBySide = function (e) { if (0 === arguments.length) return n.sideBySide; if ("boolean" != typeof e) throw new TypeError("sideBySide() expects a boolean parameter"); return n.sideBySide = e, m && (ee(), ie()), c }, c.viewMode = function (e) { if (0 === arguments.length) return n.viewMode; if ("string" != typeof e) throw new TypeError("viewMode() expects a string parameter"); if (-1 === w.indexOf(e)) throw new TypeError("viewMode() parameter must be one of (" + w.join(", ") + ") value"); return n.viewMode = e, p = Math.max(w.indexOf(e), h), j(), c }, c.toolbarPlacement = function (e) { if (0 === arguments.length) return n.toolbarPlacement; if ("string" != typeof e) throw new TypeError("toolbarPlacement() expects a string parameter"); if (-1 === v.indexOf(e)) throw new TypeError("toolbarPlacement() parameter must be one of (" + v.join(", ") + ") value"); return n.toolbarPlacement = e, m && (ee(), ie()), c }, c.widgetPositioning = function (t) { if (0 === arguments.length) return e.extend({}, n.widgetPositioning); if ("[object Object]" !== {}.toString.call(t)) throw new TypeError("widgetPositioning() expects an object variable"); if (t.horizontal) { if ("string" != typeof t.horizontal) throw new TypeError("widgetPositioning() horizontal variable must be a string"); if (t.horizontal = t.horizontal.toLowerCase(), -1 === g.indexOf(t.horizontal)) throw new TypeError("widgetPositioning() expects horizontal parameter to be one of (" + g.join(", ") + ")"); n.widgetPositioning.horizontal = t.horizontal } if (t.vertical) { if ("string" != typeof t.vertical) throw new TypeError("widgetPositioning() vertical variable must be a string"); if (t.vertical = t.vertical.toLowerCase(), -1 === b.indexOf(t.vertical)) throw new TypeError("widgetPositioning() expects vertical parameter to be one of (" + b.join(", ") + ")"); n.widgetPositioning.vertical = t.vertical } return $(), c }, c.calendarWeeks = function (e) { if (0 === arguments.length) return n.calendarWeeks; if ("boolean" != typeof e) throw new TypeError("calendarWeeks() expects parameter to be a boolean value"); return n.calendarWeeks = e, $(), c }, c.showTodayButton = function (e) { if (0 === arguments.length) return n.showTodayButton; if ("boolean" != typeof e) throw new TypeError("showTodayButton() expects a boolean parameter"); return n.showTodayButton = e, m && (ee(), ie()), c }, c.showClear = function (e) { if (0 === arguments.length) return n.showClear; if ("boolean" != typeof e) throw new TypeError("showClear() expects a boolean parameter"); return n.showClear = e, m && (ee(), ie()), c }, c.widgetParent = function (t) { if (0 === arguments.length) return n.widgetParent; if ("string" == typeof t && (t = e(t)), null !== t && "string" != typeof t && !(t instanceof e)) throw new TypeError("widgetParent() expects a string or a jQuery object parameter"); return n.widgetParent = t, m && (ee(), ie()), c }, c.keepOpen = function (e) { if (0 === arguments.length) return n.keepOpen; if ("boolean" != typeof e) throw new TypeError("keepOpen() expects a boolean parameter"); return n.keepOpen = e, c }, c.focusOnShow = function (e) { if (0 === arguments.length) return n.focusOnShow; if ("boolean" != typeof e) throw new TypeError("focusOnShow() expects a boolean parameter"); return n.focusOnShow = e, c }, c.inline = function (e) { if (0 === arguments.length) return n.inline; if ("boolean" != typeof e) throw new TypeError("inline() expects a boolean parameter"); return n.inline = e, c }, c.clear = function () { return te(), c }, c.keyBinds = function (e) { return 0 === arguments.length ? n.keyBinds : (n.keyBinds = e, c) }, c.getMoment = function (e) { return x(e) }, c.debug = function (e) { if ("boolean" != typeof e) throw new TypeError("debug() expects a boolean parameter"); return n.debug = e, c }, c.allowInputToggle = function (e) { if (0 === arguments.length) return n.allowInputToggle; if ("boolean" != typeof e) throw new TypeError("allowInputToggle() expects a boolean parameter"); return n.allowInputToggle = e, c }, c.showClose = function (e) { if (0 === arguments.length) return n.showClose; if ("boolean" != typeof e) throw new TypeError("showClose() expects a boolean parameter"); return n.showClose = e, c }, c.keepInvalid = function (e) { if (0 === arguments.length) return n.keepInvalid; if ("boolean" != typeof e) throw new TypeError("keepInvalid() expects a boolean parameter"); return n.keepInvalid = e, c }, c.datepickerInput = function (e) { if (0 === arguments.length) return n.datepickerInput; if ("string" != typeof e) throw new TypeError("datepickerInput() expects a string parameter"); return n.datepickerInput = e, c }, c.parseInputDate = function (e) { if (0 === arguments.length) return n.parseInputDate; if ("function" != typeof e) throw new TypeError("parseInputDate() sholud be as function"); return n.parseInputDate = e, c }, c.disabledTimeIntervals = function (t) { if (0 === arguments.length) return n.disabledTimeIntervals ? e.extend({}, n.disabledTimeIntervals) : n.disabledTimeIntervals; if (!t) return n.disabledTimeIntervals = !1, $(), c; if (!(t instanceof Array)) throw new TypeError("disabledTimeIntervals() expects an array parameter"); return n.disabledTimeIntervals = t, $(), c }, c.disabledHours = function (t) { if (0 === arguments.length) return n.disabledHours ? e.extend({}, n.disabledHours) : n.disabledHours; if (!t) return n.disabledHours = !1, $(), c; if (!(t instanceof Array)) throw new TypeError("disabledHours() expects an array parameter"); if (n.disabledHours = ue(t), n.enabledHours = !1, n.useCurrent && !n.keepInvalid) { for (var a = 0; !N(r, "h");) { if (r.add(1, "h"), 24 === a) throw "Tried 24 times to find a valid date"; a++ } _(r) } return $(), c }, c.enabledHours = function (t) { if (0 === arguments.length) return n.enabledHours ? e.extend({}, n.enabledHours) : n.enabledHours; if (!t) return n.enabledHours = !1, $(), c; if (!(t instanceof Array)) throw new TypeError("enabledHours() expects an array parameter"); if (n.enabledHours = ue(t), n.disabledHours = !1, n.useCurrent && !n.keepInvalid) { for (var a = 0; !N(r, "h");) { if (r.add(1, "h"), 24 === a) throw "Tried 24 times to find a valid date"; a++ } _(r) } return $(), c }, c.viewDate = function (e) { if (0 === arguments.length) return i.clone(); if (!e) return i = r.clone(), c; if (!("string" == typeof e || t.isMoment(e) || e instanceof Date)) throw new TypeError("viewDate() parameter must be one of [string, moment or Date]"); return i = ae(e), B(), c }, a.is("input")) o = a; else if (0 === (o = a.find(n.datepickerInput)).length) o = a.find("input"); else if (!o.is("input")) throw new Error('CSS class "' + n.datepickerInput + '" cannot be applied to non input element'); if (a.hasClass("input-group") && (f = 0 === a.find(".datepickerbutton").length ? a.find(".input-group-addon") : a.find(".datepickerbutton")), !n.inline && !o.is("input")) throw new Error("Could not initialize DateTimePicker without an input element"); return r = x(), i = r.clone(), e.extend(!0, n, function () { var t, r = {}; return (t = a.is("input") || n.inline ? a.data() : a.find("input").data()).dateOptions && t.dateOptions instanceof Object && (r = e.extend(!0, r, t.dateOptions)), e.each(n, function (e) { var a = "date" + e.charAt(0).toUpperCase() + e.slice(1); void 0 !== t[a] && (r[e] = t[a]) }), r }()), c.options(n), fe(), o.on({ change: le, blur: n.debug ? "" : ee, keydown: se, keyup: de, focus: n.allowInputToggle ? ie : "" }), a.is("input") ? o.on({ focus: ie }) : f && (f.on("click", oe), f.on("mousedown", !1)), o.prop("disabled") && c.disable(), o.is("input") && 0 !== o.val().trim().length ? _(ae(o.val().trim())) : n.defaultDate && void 0 === o.attr("placeholder") && _(n.defaultDate), n.inline && ie(), c }; return e.fn.datetimepicker = function (t) { t = t || {}; var n, r = Array.prototype.slice.call(arguments, 1), i = !0, o = ["destroy", "hide", "show", "toggle"]; if ("object" == typeof t) return this.each(function () { var n, r = e(this); r.data("DateTimePicker") || (n = e.extend(!0, {}, e.fn.datetimepicker.defaults, t), r.data("DateTimePicker", a(r, n))) }); if ("string" == typeof t) return this.each(function () { var a = e(this).data("DateTimePicker"); if (!a) throw new Error('bootstrap-datetimepicker("' + t + '") method was called on an element that is not using DateTimePicker'); n = a[t].apply(a, r), i = n === a }), i || e.inArray(t, o) >
101 -1 ? this : n; throw new TypeError("Invalid arguments for DateTimePicker: " + t) }, e.fn.datetimepicker.defaults = { timeZone: "", format: !1, dayViewHeaderFormat: "MMMM YYYY", extraFormats: !1, stepping: 1, minDate: !1, maxDate: !1, useCurrent: !0, collapse: !0, locale: t.locale(), defaultDate: !1, disabledDates: !1, enabledDates: !1, icons: { time: "fa fa-clock-o", date: "fa fa-calendar", up: "fa fa-chevron-up", down: "fa fa-chevron-down", previous: "fa fa-chevron-left", next: "fa fa-chevron-right", today: "fa fa-crosshairs", clear: "fa fa-trash-o", close: "fa fa-times" }, tooltips: { today: "Go to today", clear: "Clear selection", close: "Close the picker", selectMonth: "Select Month", prevMonth: "Previous Month", nextMonth: "Next Month", selectYear: "Select Year", prevYear: "Previous Year", nextYear: "Next Year", selectDecade: "Select Decade", prevDecade: "Previous Decade", nextDecade: "Next Decade", prevCentury: "Previous Century", nextCentury: "Next Century", pickHour: "Pick Hour", incrementHour: "Increment Hour", decrementHour: "Decrement Hour", pickMinute: "Pick Minute", incrementMinute: "Increment Minute", decrementMinute: "Decrement Minute", pickSecond: "Pick Second", incrementSecond: "Increment Second", decrementSecond: "Decrement Second", togglePeriod: "Toggle Period", selectTime: "Select Time" }, useStrict: !1, sideBySide: !1, daysOfWeekDisabled: !1, calendarWeeks: !1, viewMode: "days", toolbarPlacement: "default", showTodayButton: !1, showClear: !1, showClose: !1, widgetPositioning: { horizontal: "auto", vertical: "auto" }, widgetParent: null, ignoreReadonly: !1, keepOpen: !1, focusOnShow: !0, inline: !1, keepInvalid: !1, datepickerInput: ".datepickerinput", keyBinds: { up: function (e) { if (e) { var t = this.date() || this.getMoment(); e.find(".datepicker").is(":visible") ? this.date(t.clone().subtract(7, "d")) : this.date(t.clone().add(this.stepping(), "m")) } }, down: function (e) { if (e) { var t = this.date() || this.getMoment(); e.find(".datepicker").is(":visible") ? this.date(t.clone().add(7, "d")) : this.date(t.clone().subtract(this.stepping(), "m")) } else this.show() }, "control up": function (e) { if (e) { var t = this.date() || this.getMoment(); e.find(".datepicker").is(":visible") ? this.date(t.clone().subtract(1, "y")) : this.date(t.clone().add(1, "h")) } }, "control down": function (e) { if (e) { var t = this.date() || this.getMoment(); e.find(".datepicker").is(":visible") ? this.date(t.clone().add(1, "y")) : this.date(t.clone().subtract(1, "h")) } }, left: function (e) { if (e) { var t = this.date() || this.getMoment(); e.find(".datepicker").is(":visible") && this.date(t.clone().subtract(1, "d")) } }, right: function (e) { if (e) { var t = this.date() || this.getMoment(); e.find(".datepicker").is(":visible") && this.date(t.clone().add(1, "d")) } }, pageUp: function (e) { if (e) { var t = this.date() || this.getMoment(); e.find(".datepicker").is(":visible") && this.date(t.clone().subtract(1, "M")) } }, pageDown: function (e) { if (e) { var t = this.date() || this.getMoment(); e.find(".datepicker").is(":visible") && this.date(t.clone().add(1, "M")) } }, enter: function () { this.hide() }, escape: function () { this.hide() }, "control space": function (e) { e && e.find(".timepicker").is(":visible") && e.find('.btn[data-action="togglePeriod"]').click() }, t: function () { this.date(this.getMoment()) }, delete: function () { this.clear() } }, debug: !1, allowInputToggle: !1, disabledTimeIntervals: !1, disabledHours: !1, enabledHours: !1, viewDate: !1 }, e.fn.datetimepicker });
102/*============================================================================================================================*/
103//https://www.dropzone.dev/js/
104(function ($, k, l, m) { "use strict"; var o = 'dropzone', defaults = { width: 300, height: 300, progressBarWidth: 300, url: '', filesName: 'files', margin: 0, border: '2px dashed #ccc', background: '', zIndex: 100, textColor: '#ccc', textAlign: 'center', text: 'Drop files here to upload', uploadMode: 'single', progressContainer: '', src: '', dropzoneWraper: 'nniicc-dropzoneParent', files: [], maxFileSize: '10MB', allowedFileTypes: '*', clickToUpload: true, showTimer: false, removeComplete: true, preview: false, uploadOnPreview: false, uploadOnDrop: true, params: {}, load: null, progress: null, uploadDone: null, success: null, error: null, previewDone: null, }; function Plugin(a, b) { this.element = a; this.options = $.extend({}, defaults, b); this._defaults = defaults; this._name = o; this.init() }
104 var p = {}; var q = {}; var r = {}; var s = 0; Plugin.prototype.init = function () { $(this.element).css({ width: this.options.width, height: this.options.height, border: this.options.border, background: this.options.background, color: this.options.textColor, 'text-align': this.options.textAlign, 'box-align': 'center', 'box-pack': 'center', 'z-index': this.options.zIndex }); $(this.element).hover(function () { $(this).css("cursor", "pointer") }, function () { $(this).css("cursor", "default") }); $(this.element).html(this.options.text); $(this.element).wrap('<div class="' + this.options.dropzoneWraper + '"></div>'); $("." + this.options.dropzoneWraper).css('margin', this.options.margin); if (this.options.progressContainer === '') { this.options.progressContainer = "." + this.options.dropzoneWraper } if (this.options.src) $(this.element).attr('src', this.options.src); if (typeof $(this.element).attr('src') !== 'undefined') { var f = $(this.element).attr('src'); $(this.element).attr('src', ''); var g = $(this.element).clone(); $(this.element).css({ 'z-index': this.options.zIndex, position: 'absolute' }).html('').parent().css('position', 'relative'); g.appendTo($(this.element).parent()); g.replaceWith('<img class="previewImg" src="' + f + '" />'); $(this.element).parent().find(".previewImg").css({ width: this.options.width, height: this.options.height, border: this.options.border, background: this.options.background, color: this.options.textColor, 'text-align': this.options.textAlign, 'box-align': 'center', 'box-pack': 'center' }) } if (this.options.clickToUpload) { $(this.element).parent().append('<form></form>'); var h = this.options.preview; var i = ""; if (!h) i = "multiple"; $(this.element).parent().find('form').append('<input type="file" name="' + this.options.filesName + '" ' + i + '/>').hide().bind('change', function (a) { $(this).trigger('submit') }).on('submit', function (a) { a.preventDefault(); upload(this, a.target[0].files); var b = $(this.element).parent().find('input'); b.unwrap().hide() }.bind(this)) } $(this.element).bind({ dragover: function (e) { e.preventDefault(); e.stopPropagation(); $(this.element).css({ color: '#000', 'border-color': '#000' }) }.bind(this), dragleave: function (e) { e.preventDefault(); e.stopPropagation(); dragLeave(this) }.bind(this), drop: function (e) { e.preventDefault(); dragLeave(this); if (!this.options.preview) { upload(this, e.originalEvent.dataTransfer.files) } else { upload(this, e.originalEvent.dataTransfer.files) } }.bind(this), click: function (e) { if (this.options.clickToUpload) { var c; var d; c = $(this.element).parent().find('input'); if (c.parent().prop('tagName') !== 'FORM') { d = $("<form></form>"); d.bind('change', function () { $(this).trigger('submit') }).on('submit', function (a) { a.preventDefault(); upload(this, a.target[0].files); var b = $(this.element).parent().find('input'); b.unwrap().hide() }.bind(this)); c.wrap(d) } c.trigger('click') } }.bind(this) }); if (typeof this.options.load == "function") this.options.load(this) }; function dragLeave(a) { var b = a.options.textColor; var c = a.options.border.split(" "); if (c.length == 3) b = c[2]; $(a.element).css({ color: a.options.textColor, 'border-color': b }) } function upload(c, d) { if (c.options.preview) { if (!checkFileType(c, d[0])) { if (typeof c.options.error == "function") { c.options.error($(c.element), "fileNotAllowed", "File is not allowerd to upload! You can only upload the following files (" + c.options.allowedFileTypes + ")") } else alert("File is not allowerd to upload! You can only upload the following files (" + c.options.allowedFileTypes + ")"); return } if (!checkFileSize(c, d[0])) { if (typeof c.options.error == "function") { c.options.error($(c.element), "fileToBig", 'File to big (' + formatBytes(d[0].size) + ')! Max file size is (' + c.options.maxFileSize + ')') } else alert('File to big (' + formatBytes(d[0].size) + ')! Max file size is (' + c.options.maxFileSize + ')'); return } var f = new FileReader(); $(c.element).parent().find('img').remove(); $(c.element).css({ 'z-index': c.options.zIndex, position: 'absolute' }).html('').parent().css('position', 'relative'); var g = $(c.element).clone(); g.appendTo($(c.element).parent()); g.replaceWith('<img class="previewImg" />'); $(c.element).parent().find(".previewImg").css({ width: c.options.width, height: c.options.height, border: c.options.border, background: c.options.background, color: c.options.textColor, 'text-align': c.options.textAlign, 'box-align': 'center', 'box-pack': 'center' }); f.onload = function (e) { $(this.element).parent().find('img').attr('src', e.target.result).show(); if (typeof this.options.previewDone == "function") this.options.previewDone($(this.element)) }.bind(c);
104 f.readAsDataURL(d[0]) } var h; if (d) { c.options.files = d; if (c.options.removeComplete) { var j = $(".progress-bar:not(.active)").parents('.extra-progress-wrapper'); j.each(function (a, b) { b.remove() }) } var i, formData, xhr; if (c.options.uploadMode == 'all') { r[0] = $.now(); formData = new FormData(); xhr = new XMLHttpRequest(); for (i = 0; i < d.length; i++) { formData.append(c.options.filesName + '[]', d[i]) } if (Object.keys(c.options.params).length > 0) { for (h in c.options.params) { formData.append(h, c.options.params[h]) } } addProgressBar(c, 0); bindXHR(c, xhr, 0); xhr.open('post', c.options.url); xhr.setRequestHeader('Cache-Control', 'no-cache'); xhr.send(formData); $(".progress").show() } else if (c.options.uploadMode == 'single') { for (i = 0; i < d.length; i++) { r[s] = $.now(); formData = new FormData(); xhr = new XMLHttpRequest(); if (!checkFileType(c, d[i])) { addWrongFileField(c, i, s); s++; continue } if (!checkFileSize(c, d[i])) { addFileToBigField(c, i, s); s++; continue } formData.append(c.options.filesName + '[]', d[i]); if (Object.keys(c.options.params).length > 0) { for (h in c.options.params) { formData.append(h, c.options.params[h]) } } if ((!c.options.preview && c.options.uploadOnDrop) || (c.options.preview && c.options.uploadOnPreview)) { addProgressBar(c, i, s); bindXHR(c, xhr, i, s); xhr.open('post', c.options.url); xhr.setRequestHeader('Cache-Control', 'no-cache'); xhr.send(formData); $(".progress").show(); s++ } } } } } function startTimer(i) { q[i] = k.setInterval(function () { var a = $(".upload-timer-" + i); var b = $.now() - r[i]; var c = b / 1000; var d = 0; if (c >= 60) { d = Math.round(c / 60); c = c % 60 } a.text(d + ":" + pad(c.toFixed(2), 5)) }, 10) } function pad(a, b) { a = a.toString(); return a.length < b ? pad("0" + a, b) : a } function bindXHR(d, f, i, g) { $(f.upload).bind({ progress: function (e) { if (e.originalEvent.lengthComputable) { var a = e.originalEvent.loaded / e.originalEvent.total * 100; if (typeof d.options.progress == "function") d.options.progress(a, g); else { $(".progress-" + g).children().css("width", a + "%").html(a.toFixed(0) + "%") } } }, loadstart: function (e, a, b, c) { startTimer(g) } }); p[g] = false; $(f).bind({ readystatechange: function () { if (this.readyState == 4 && this.status == 200) { changeXhrDoneStatus(g); $(".progress.progress-" + g).children().removeClass('active'); if (typeof d.options.success == "function") d.options.success(this, g) } } }); var h = setInterval(function () { if (Object.keys(p).length > 0) { var a = {}; for (var b in p) { if (p[b] === true) a[b] = true } if (Object.keys(p).length == Object.keys(a).length) { clearInterval(h); p = {}; if (typeof d.options.uploadDone == "function") d.options.uploadDone($(d.element)) } } }, 500) } function changeXhrDoneStatus(i) { p[i] = true; clearInterval(q[i]) } function addProgressBar(a, i, b) { $(a.element).parent().append('<div class="progress progress-' + b + '"></div>').css({ 'margin': a.options.margin }); $(".progress-" + b).css({ width: a.options.progressBarWidth, margin: '20px 0 0 0', }).append('<div class="progress-bar progress-bar-info progress-bar-striped active"></div>').hide(); $(".progress-" + b).wrap('<div class="extra-progress-wrapper"></div>'); if (a.options.showTimer) { $(".progress-" + b).parent().append('<span style="float:right" class="upload-timer-' + b + '">0</span>') } } function addFileToBigField(a, i, b) { $(a.element).parent().append('<div class="progress error-progress-' + b + '"></div>').css('margin', a.options.margin); var c = a.options.files[i]; var d = c.name.trunc(25); $(".error-progress-" + b).css({ width: a.options.progressBarWidth, margin: '20px 0 0 0' }).append('<div class="progress-bar progress-bar-danger progress-bar-striped" style="width:100%">File to big (' + formatBytes(c.size) + ')</div>'); $(".error-progress-" + b).wrap('<div class="extra-progress-wrapper"></div>').css("width", a.options.progressBarWidth); $(".error-progress-" + b).parent().append('<span title="' + a.options.files[i].name + '">' + d + '</span>') } function addWrongFileField(a, i, b) { $(a.element).parent().append('<div class="progress error-progress-' + b + '"></div>').css('margin', a.options.margin); var c = a.options.files[i]; var d = c.name.trunc(25); var e = c.name.substr(c.name.lastIndexOf('.') + 1); $(".error-progress-" + b).css({ width: a.options.progressBarWidth, margin: '20px 0 0 0' }).append('<div class="progress-bar progress-bar-danger progress-bar-striped" style="width:100%">File type (' + e + ') is not allowed</div>'); $(".error-progress-" + b).wrap('<div class="extra-progress-wrapper"></div>').css("width", a.options.progressBarWidth); $(".error-progress-" + b).parent().append('<span title="' + a.options.files[i].name + '">' + d + '</span>') } function showTooltip() { $("span").tooltip({ open: function (a, b) { b.tooltip.css("max-width", '100%') } }) } function checkFileType(a, b) { if (!b.type && b.size % 4096 === 0) return false;
104 if (a.options.allowedFileTypes == '*') return true; var c = b.name.substr(b.name.lastIndexOf('.') + 1).toLowerCase(); var d = a.options.allowedFileTypes.replace(' ', '').split(","); var e = []; for (var i = d.length - 1; i >= 0; i--) { if (d[i].indexOf(".") != -1) { if (b.type.match(d[i]) !== null) return true } e.push(d[i].toLowerCase()) } if ($.inArray(c, e) != -1) return true; return false } function checkFileSize(a, b) { var c = ['Bytes', 'KB', 'MB', 'GB', 'TB']; var d = a.options.maxFileSize.match(/[a-zA-Z]+/g)[0]; var e = a.options.maxFileSize.match(/\d+/)[0]; var f = $.inArray(d, c); if (f != -1) { var g = formatBytes(b.size); var h = g.match(/[a-zA-Z]+/g)[0]; var i = g.match(/\d+/)[0]; var j; if (d == h) { j = $.inArray(h, c); if (parseInt(i) * (Math.pow(1024, j)) > b.size) { return true } } else { j = $.inArray(h, c); if (j > -1) { if ((parseInt(i) * (Math.pow(1024, j))) < (parseInt(e) * (Math.pow(1024, f)))) { return true } } } } else { alert("Incorect max file size definition!! (" + c.join(',') + ")") } return false } function formatBytes(a, b) { var c = ['Bytes', 'KB', 'MB', 'GB', 'TB']; if (a === 0) return '0 Byte'; var i = parseInt(Math.floor(Math.log(a) / Math.log(1024))); return Math.round(a / Math.pow(1024, i), 2) + c[i] } String.prototype.trunc = String.prototype.trunc || function (n) { return this.length > n ? this.substr(0, n - 1) + '&hellip;' : this }; $.fn[o] = function (a) { return this.each(function () { if (!$.data(this, 'plugin_' + o)) { $.data(this, 'plugin_' + o, new Plugin(this, a)) } }) } })(jQuery, window, document);
105/**===========================================================================================================================*/
106/*!
107 * Name    : Just Another Parallax [Jarallax]
108 * Version : 1.10.7
109 * Author  : nK <https://nkdev.info>
110 * GitHub  : https://github.com/nk-o/jarallax
111*/!function (o) { var n = {}; function i(e) { if (n[e]) return n[e].exports; var t = n[e] = { i: e, l: !1, exports: {} };
111 return o[e].call(t.exports, t, t.exports, i), t.l = !0, t.exports } i.m = o, i.c = n, i.d = function (e, t, o) { i.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: o }) }, i.r = function (e) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 }) }, i.t = function (t, e) { if (1 & e && (t = i(t)), 8 & e) return t; if (4 & e && "object" == typeof t && t && t.__esModule) return t; var o = Object.create(null); if (i.r(o), Object.defineProperty(o, "default", { enumerable: !0, value: t }), 2 & e && "string" != typeof t) for (var n in t) i.d(o, n, function (e) { return t[e] }.bind(null, n)); return o }, i.n = function (e) { var t = e && e.__esModule ? function () { return e.default } : function () { return e }; return i.d(t, "a", t), t }, i.o = function (e, t) { return Object.prototype.hasOwnProperty.call(e, t) }, i.p = "", i(i.s = 11) }([, , function (e, t, o) { "use strict"; e.exports = function (e) { "complete" === document.readyState || "interactive" === document.readyState ? e.call() : document.attachEvent ? document.attachEvent("onreadystatechange", function () { "interactive" === document.readyState && e.call() }) : document.addEventListener && document.addEventListener("DOMContentLoaded", e) } }, , function (o, e, t) { "use strict"; (function (e) { var t; t = "undefined" != typeof window ? window : void 0 !== e ? e : "undefined" != typeof self ? self : {}, o.exports = t }).call(this, t(5)) }, function (e, t, o) { "use strict"; var n, 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 }; n = function () { return this }(); try { n = n || Function("return this")() || (0, eval)("this") } catch (e) { "object" === ("undefined" == typeof window ? "undefined" : i(window)) && (n = window) } e.exports = n }, , , , , , function (e, t, o) { e.exports = o(12) }, function (e, t, o) { "use strict"; var n = "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 = l(o(2)), a = o(4), r = l(o(13)); function l(e) { return e && e.__esModule ? e : { default: e } } var s = a.window.jarallax; if (a.window.jarallax = r.default, a.window.jarallax.noConflict = function () { return a.window.jarallax = s, this }, void 0 !== a.jQuery) { var c = function () { var e = arguments || []; Array.prototype.unshift.call(e, this); var t = r.default.apply(a.window, e); return "object" !== (void 0 === t ? "undefined" : n(t)) ? t : this }; c.constructor = r.default.constructor; var u = a.jQuery.fn.jarallax; a.jQuery.fn.jarallax = c, a.jQuery.fn.jarallax.noConflict = function () { return a.jQuery.fn.jarallax = u, this } } (0, i.default)(function () { (0, r.default)(document.querySelectorAll("[data-jarallax]")) }) }, function (e, j, S) { "use strict"; (function (e) { Object.defineProperty(j, "__esModule", { value: !0 }); var d = function (e, t) { if (Array.isArray(e)) return e; if (Symbol.iterator in Object(e)) return function (e, t) { var o = [], n = !0, i = !1, a = void 0; try { for (var r, l = e[Symbol.iterator](); !(n = (r = l.next()).done) && (o.push(r.value), !t || o.length !== t); n = !0); } catch (e) { i = !0, a = e } finally { try { !n && l.return && l.return() } finally { if (i) throw a } } return o }(e, t); throw new TypeError("Invalid attempt to destructure non-iterable instance") }, t = function () { function n(e, t) { for (var o = 0; o < t.length; o++) { var n = t[o]; n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n) } } return function (e, t, o) { return t && n(e.prototype, t), o && n(e, o), e } }(), p = "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 = a(S(2)), n = a(S(14)), i = S(4);
111 function a(e) { return e && e.__esModule ? e : { default: e } } var s = -1 < navigator.userAgent.indexOf("MSIE ") || -1 < navigator.userAgent.indexOf("Trident/") || -1 < navigator.userAgent.indexOf("Edge/"), r = function () { for (var e = "transform WebkitTransform MozTransform".split(" "), t = document.createElement("div"), o = 0; o < e.length; o++)if (t && void 0 !== t.style[e[o]]) return e[o]; return !1 }(), b = void 0, v = void 0, l = void 0, c = !1, u = !1; function m(e) { b = i.window.innerWidth || document.documentElement.clientWidth, v = i.window.innerHeight || document.documentElement.clientHeight, "object" !== (void 0 === e ? "undefined" : p(e)) || "load" !== e.type && "dom-loaded" !== e.type || (c = !0) } m(), i.window.addEventListener("resize", m), i.window.addEventListener("orientationchange", m), i.window.addEventListener("load", m), (0, o.default)(function () { m({ type: "dom-loaded" }) }); var f = [], y = !1; function g() { if (f.length) { l = void 0 !== i.window.pageYOffset ? i.window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop; var t = c || !y || y.width !== b || y.height !== v, o = u || t || !y || y.y !== l; u = c = !1, (t || o) && (f.forEach(function (e) { t && e.onResize(), o && e.onScroll() }), y = { width: b, height: v, y: l }), (0, n.default)(g) } } var h = !!e.ResizeObserver && new e.ResizeObserver(function (e) { e && e.length && (0, n.default)(function () { e.forEach(function (e) { e.target && e.target.jarallax && (c || e.target.jarallax.onResize(), u = !0) }) }) }), x = 0, w = function () { function u(e, t) { !function (e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, u); var o = this; o.instanceID = x++, o.$item = e, o.defaults = { type: "scroll", speed: .5, imgSrc: null, imgElement: ".jarallax-img", imgSize: "cover", imgPosition: "50% 50%", imgRepeat: "no-repeat", keepImg: !1, elementInViewport: null, zIndex: -100, disableParallax: !1, disableVideo: !1, automaticResize: !0, videoSrc: null, videoStartTime: 0, videoEndTime: 0, videoVolume: 0, videoLoop: !0, videoPlayOnlyVisible: !0, onScroll: null, onInit: null, onDestroy: null, onCoverImage: null }; var n = o.$item.getAttribute("data-jarallax"), i = JSON.parse(n || "{}"); n && console.warn("Detected usage of deprecated data-jarallax JSON options, you should use pure data-attribute options. See info here - https://github.com/nk-o/jarallax/issues/53"); var a = o.$item.dataset || {}, r = {}; if (Object.keys(a).forEach(function (e) { var t = e.substr(0, 1).toLowerCase() + e.substr(1); t && void 0 !== o.defaults[t] && (r[t] = a[e]) }), o.options = o.extend({}, o.defaults, i, r, t), o.pureOptions = o.extend({}, o.options), Object.keys(o.options).forEach(function (e) { "true" === o.options[e] ? o.options[e] = !0 : "false" === o.options[e] && (o.options[e] = !1) }), o.options.speed = Math.min(2, Math.max(-1, parseFloat(o.options.speed))), (o.options.noAndroid || o.options.noIos) && (console.warn("Detected usage of deprecated noAndroid or noIos options, you should use disableParallax option. See info here - https://github.com/nk-o/jarallax/#disable-on-mobile-devices"), o.options.disableParallax || (o.options.noIos && o.options.noAndroid ? o.options.disableParallax = /iPad|iPhone|iPod|Android/ : o.options.noIos ? o.options.disableParallax = /iPad|iPhone|iPod/ : o.options.noAndroid && (o.options.disableParallax = /Android/))), "string" == typeof o.options.disableParallax && (o.options.disableParallax = new RegExp(o.options.disableParallax)), o.options.disableParallax instanceof RegExp) { var l = o.options.disableParallax; o.options.disableParallax = function () { return l.test(navigator.userAgent) } } if ("function" != typeof o.options.disableParallax && (o.options.disableParallax = function () { return !1 }), "string" == typeof o.options.disableVideo && (o.options.disableVideo = new RegExp(o.options.disableVideo)), o.options.disableVideo instanceof RegExp) { var s = o.options.disableVideo; o.options.disableVideo = function () { return s.test(navigator.userAgent) } } "function" != typeof o.options.disableVideo && (o.options.disableVideo = function () { return !1 }); var c = o.options.elementInViewport; c && "object" === (void 0 === c ? "undefined" : p(c)) && void 0 !== c.length && (c = d(c, 1)[0]); c instanceof Element || (c = null), o.options.elementInViewport = c, o.image = { src: o.options.imgSrc || null, $container: null, useImgTag: !1, position: /iPad|iPhone|iPod|Android/.test(navigator.userAgent) ? "absolute" : "fixed" }, o.initImg() && o.canInitParallax() && o.init() } return t(u, [{ key: "css", value: function (t, o) { return "string" == typeof o ? i.window.getComputedStyle(t).getPropertyValue(o) : (o.transform && r && (o[r] = o.transform), Object.keys(o).forEac
111h(function (e) { t.style[e] = o[e] }), t) } }, { key: "extend", value: function (o) { var n = arguments; return o = o || {}, Object.keys(arguments).forEach(function (t) { n[t] && Object.keys(n[t]).forEach(function (e) { o[e] = n[t][e] }) }), o } }, { key: "getWindowData", value: function () { return { width: b, height: v, y: l } } }, { key: "initImg", value: function () { var e = this, t = e.options.imgElement; return t && "string" == typeof t && (t = e.$item.querySelector(t)), t instanceof Element || (t = null), t && (e.options.keepImg ? e.image.$item = t.cloneNode(!0) : (e.image.$item = t, e.image.$itemParent = t.parentNode), e.image.useImgTag = !0), !!e.image.$item || (null === e.image.src && (e.image.src = e.css(e.$item, "background-image").replace(/^url\(['"]?/g, "").replace(/['"]?\)$/g, "")), !(!e.image.src || "none" === e.image.src)) } }, { key: "canInitParallax", value: function () { return r && !this.options.disableParallax() } }, { key: "init", value: function () { var e = this, t = { position: "absolute", top: 0, left: 0, width: "100%", height: "100%", overflow: "hidden", pointerEvents: "none" }, o = {}; if (!e.options.keepImg) { var n = e.$item.getAttribute("style"); if (n && e.$item.setAttribute("data-jarallax-original-styles", n), e.image.useImgTag) { var i = e.image.$item.getAttribute("style"); i && e.image.$item.setAttribute("data-jarallax-original-styles", i) } } if ("static" === e.css(e.$item, "position") && e.css(e.$item, { position: "relative" }), "auto" === e.css(e.$item, "z-index") && e.css(e.$item, { zIndex: 0 }), e.image.$container = document.createElement("div"), e.css(e.image.$container, t), e.css(e.image.$container, { "z-index": e.options.zIndex }), s && e.css(e.image.$container, { opacity: .9999 }), e.image.$container.setAttribute("id", "jarallax-container-" + e.instanceID), e.$item.appendChild(e.image.$container), e.image.useImgTag ? o = e.extend({ "object-fit": e.options.imgSize, "object-position": e.options.imgPosition, "font-family": "object-fit: " + e.options.imgSize + "; object-position: " + e.options.imgPosition + ";", "max-width": "none" }, t, o) : (e.image.$item = document.createElement("div"), e.image.src && (o = e.extend({ "background-position": e.options.imgPosition, "background-size": e.options.imgSize, "background-repeat": e.options.imgRepeat, "background-image": 'url("' + e.image.src + '")' }, t, o))), "opacity" !== e.options.type && "scale" !== e.options.type && "scale-opacity" !== e.options.type && 1 !== e.options.speed || (e.image.position = "absolute"), "fixed" === e.image.position) for (var a = 0, r = e.$item; null !== r && r !== document && 0 === a;) { var l = e.css(r, "-webkit-transform") || e.css(r, "-moz-transform") || e.css(r, "transform"); l && "none" !== l && (a = 1, e.image.position = "absolute"), r = r.parentNode } o.position = e.image.position, e.css(e.image.$item, o), e.image.$container.appendChild(e.image.$item), e.onResize(), e.onScroll(!0), e.options.automaticResize && h && h.observe(e.$item), e.options.onInit && e.options.onInit.call(e), "none" !== e.css(e.$item, "background-image") && e.css(e.$item, { "background-image": "none" }), e.addToParallaxList() } }, { key: "addToParallaxList", value: function () { f.push(this), 1 === f.length && g() } }, { key: "removeFromParallaxList", value: function () { var o = this; f.forEach(function (e, t) { e.instanceID === o.instanceID && f.splice(t, 1) }) } }
111, { key: "destroy", value: function () { var e = this; e.removeFromParallaxList(); var t = e.$item.getAttribute("data-jarallax-original-styles"); if (e.$item.removeAttribute("data-jarallax-original-styles"), t ? e.$item.setAttribute("style", t) : e.$item.removeAttribute("style"), e.image.useImgTag) { var o = e.image.$item.getAttribute("data-jarallax-original-styles"); e.image.$item.removeAttribute("data-jarallax-original-styles"), o ? e.image.$item.setAttribute("style", t) : e.image.$item.removeAttribute("style"), e.image.$itemParent && e.image.$itemParent.appendChild(e.image.$item) } e.$clipStyles && e.$clipStyles.parentNode.removeChild(e.$clipStyles), e.image.$container && e.image.$container.parentNode.removeChild(e.image.$container), e.options.onDestroy && e.options.onDestroy.call(e), delete e.$item.jarallax } }, { key: "clipContainer", value: function () { if ("fixed" === this.image.position) { var e = this, t = e.image.$container.getBoundingClientRect(), o = t.width, n = t.height; if (!e.$clipStyles) e.$clipStyles = document.createElement("style"), e.$clipStyles.setAttribute("type", "text/css"), e.$clipStyles.setAttribute("id", "jarallax-clip-" + e.instanceID), (document.head || document.getElementsByTagName("head")[0]).appendChild(e.$clipStyles); var i = "#jarallax-container-" + e.instanceID + " {\n           clip: rect(0 " + o + "px " + n + "px 0);\n           clip: rect(0, " + o + "px, " + n + "px, 0);\n        }"; e.$clipStyles.styleSheet ? e.$clipStyles.styleSheet.cssText = i : e.$clipStyles.innerHTML = i } } }, { key: "coverImage", value: function () { var e = this, t = e.image.$container.getBoundingClientRect(), o = t.height, n = e.options.speed, i = "scroll" === e.options.type || "scroll-opacity" === e.options.type, a = 0, r = o, l = 0; return i && (n < 0 ? (a = n * Math.max(o, v), v < o && (a -= n * (o - v))) : a = n * (o + v), 1 < n ? r = Math.abs(a - v) : n < 0 ? r = a / n + Math.abs(a) : r += (v - o) * (1 - n), a /= 2), e.parallaxScrollDistance = a, l = i ? (v - r) / 2 : (o - r) / 2, e.css(e.image.$item, { height: r + "px", marginTop: l + "px", left: "fixed" === e.image.position ? t.left + "px" : "0", width: t.width + "px" }), e.options.onCoverImage && e.options.onCoverImage.call(e), { image: { height: r, marginTop: l }, container: t } } }, { key: "isVisible", value: function () { return this.isElementInViewport || !1 } }, { key: "onScroll", value: function (e) { var t = this, o = t.$item.getBoundingClientRect(), n = o.top, i = o.height, a = {}, r = o; if (t.options.elementInViewport && (r = t.options.elementInViewport.getBoundingClientRect()), t.isElementInViewport = 0 <= r.bottom && 0 <= r.right && r.top <= v && r.left <= b, e || t.isElementInViewport) { var l = Math.max(0, n), s = Math.max(0, i + n), c = Math.max(0, -n), u = Math.max(0, n + i - v), d = Math.max(0, i - (n + i - v)), p = Math.max(0, -n + v - i), m = 1 - 2 * (v - n) / (v + i), f = 1; if (i < v ? f = 1 - (c || u) / i : s <= v ? f = s / v : d <= v && (f = d / v), "opacity" !== t.options.type && "scale-opacity" !== t.options.type && "scroll-opacity" !== t.options.type || (a.transform = "translate3d(0,0,0)", a.opacity = f), "scale" === t.options.type || "scale-opacity" === t.options.type) { var y = 1; t.options.speed < 0 ? y -= t.options.speed * f : y += t.options.speed * (1 - f), a.transform = "scale(" + y + ") translate3d(0,0,0)" } if ("scroll" === t.options.type || "scroll-opacity" === t.options.type) { var g = t.parallaxScrollDistance * m; "absolute" === t.image.position && (g -= n), a.transform = "translate3d(0," + g + "px,0)" } t.css(t.image.$item, a), t.options.onScroll && t.options.onScroll.call(t, { section: o, beforeTop: l, beforeTopEnd: s, afterTop: c, beforeBottom: u, beforeBottomEnd: d, afterBottom: p, visiblePercent: f, fromViewportCenter: m }) } } }, { key: "onResize", value: function () { this.coverImage(), this.clipContainer() } }]), u }(), $ = function (e) { ("object" === ("undefined" == typeof HTMLElement ? "undefined" : p(HTMLElement)) ? e instanceof HTMLElement : e && "object" === (void 0 === e ? "undefined" : p(e)) && null !== e && 1 === e.nodeType && "string" == typeof e.nodeName) && (e = [e]); for (var t = arguments[1], o = Array.prototype.slice.call(arguments, 2), n = e.length, i = 0, a = void 0; i < n; i++)if ("object" === (void 0 === t ? "undefined" : p(t)) || void 0 === t ? e[i].jarallax || (e[i].jarallax = new w(e[i], t)) : e[i].jarallax && (a = e[i].jarallax[t].apply(e[i].jarallax, o)), void 0 !== a) return a; return e }; $.constructor = w, j.default = $ }).call(this, S(5)) }, function (e, t, o) { "use strict"; var n = o(4), i = n.requestAnimationFrame || n.webkitRequestAnimationFrame || n.mozRequestAnimationFrame || function (e) { var t = +new Date, o = Math.max(0, 16 - (t - a)), n = setTimeout(e, o); return a = t, n }, a = +new Date; var r = n.cancelAnimationFrame || n.webkitCancelAnimationFrame || n.mozCancelAnimationFrame || clearTimeout; Function.prototype.bind && (i = i.bind(n), r = r.bind(n)), (e.exports = i).cancel = r }]);
112//# sourceMappingURL=jarallax.min.js.map
113/*!
114 * Video Extension for Jarallax v2.2.1 (https://github.com/nk-o/jarallax)
115 * Copyright 2024 nK <https://nkdev.info>
116 * Licensed under MIT (https://github.com/nk-o/jarallax/blob/master/LICENSE)
117 */
118!function (e, t) { "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).jarallaxVideo = t() }(this, (function () {
119  "use strict";
120/*!
121 * Video Worker v2.2.0 (https://github.com/nk-o/video-worker)
122 * Copyright 2024 nK <https://nkdev.info>
123 * Licensed under MIT (https://github.com/nk-o/video-worker/blob/master/LICENSE)
124 */var e = { autoplay: !1, loop: !1, mute: !1, volume: 100, showControls: !0, accessibilityHidden: !1, startTime: 0, endTime: 0 }; let t, o = 0; class i { type = "none"; constructor(t, o) { const i = this; i.url = t, i.options_default = { ...e }, i.options = function (e, ...t) { return e = e || {}, Object.keys(t).forEach((o =>
124 { t[o] && Object.keys(t[o]).forEach((i => { e[i] = t[o][i] })) })), e }({}, i.options_default, o), i.videoID = i.constructor.parseURL(t), i.videoID && i.init() } isValid() { return !!this.videoID } init() { const e = this; e.ID = o, o += 1, e.playerID = `VideoWorker-${e.ID}` } on(e, t) { this.userEventsList = this.userEventsList || [], (this.userEventsList[e] || (this.userEventsList[e] = [])).push(t) } off(e, t) { this.userEventsList && this.userEventsList[e] && (t ? this.userEventsList[e].forEach(((o, i) => { o === t && (this.userEventsList[e][i] = !1) })) : delete this.userEventsList[e]) } fire(e, ...t) { this.userEventsList && void 0 !== this.userEventsList[e] && this.userEventsList[e].forEach((e => { e && e.apply(this, t) })) } static parseURL(e) { return !1 } play(e) { } pause() { } mute() { } unmute() { } setVolume(e = !1) { } getVolume(e) { } getMuted(e) { } setCurrentTime(e = !1) { } getCurrentTime(e) { } getImageURL(e) { } getVideo(e) { } } t = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : {}; var a = t; function n() { this.doneCallbacks = [], this.failCallbacks = [] } n.prototype = { execute(e, t) { let o = e.length; for (t = Array.prototype.slice.call(t); o;)o -= 1, e[o].apply(null, t) }, resolve(...e) { this.execute(this.doneCallbacks, e) }, reject(...e) { this.execute(this.failCallbacks, e) }, done(e) { this.doneCallbacks.push(e) }, fail(e) { this.failCallbacks.push(e) } }; let s = 0, r = 0; const l = new n; let p = 0, d = 0; const u = new n; function m(e, t) { let o = !1; return Object.keys(m.providers).forEach((i => { !o && m.providers[i].parseURL(e) && (o = new m.providers[i](e, t)) })), o || new i(e, t) } let y; m.BaseClass = i, m.providers = { Youtube: class extends i { type = "youtube"; static parseURL(e) { const t = e.match(/.*(?:youtu.be\/|v\/|u\/\w\/|embed\/|shorts\/|watch\?v=)([^#\&\?]*).*/); return !(!t || 11 !== t[1].length) && t[1] } init() { super.init(), function () { if (s) return; s = !0; let e = document.createElement("script"), t = document.getElementsByTagName("head")[0]; e.src = "https://www.youtube.com/iframe_api", t.appendChild(e), t = null, e = null }() } play(e) { const t = this; t.player && t.player.playVideo && (void 0 !== e && t.player.seekTo(e || 0), a.YT.PlayerState.PLAYING !== t.player.getPlayerState() && (t.options.endTime && !t.options.loop ? t.getCurrentTime((e => { e < t.options.endTime && t.player.playVideo() })) : t.player.playVideo())) } pause() { const e = this; e.player && e.player.pauseVideo && a.YT.PlayerState.PLAYING === e.player.getPlayerState() && e.player.pauseVideo() } mute() { const e = this; e.player && e.player.mute && e.player.mute() } unmute() { const e = this; e.player && e.player.unMute && e.player.unMute() } setVolume(e = !1) { const t = this; t.player && "number" == typeof e && t.player.setVolume && t.player.setVolume(e) } getVolume(e) { const t = this; t.player ? t.player.getVolume && e(t.player.getVolume()) : e(!1) } getMuted(e) { const t = this; t.player ? t.player.isMuted && e(t.player.isMuted()) : e(null) } setCurrentTime(e = !1) { const t = this; t.player && "number" == typeof e && t.player.seekTo && t.player.seekTo(e) } getCurrentTime(e) { const t = this; t.player && t.player.getCurrentTime && e(t.player.getCurrentTime()) } getImageURL(e) { const t = this; if (t.videoImage) return void e(t.videoImage); const o = ["maxresdefault", "sddefault", "hqdefault", "0"]; let i = 0; const a = new Image; a.onload = function () { 120 !== (this.naturalWidth || this.width) || i === o.length - 1 ? (t.videoImage = `https://img.youtube.com/vi/${t.videoID}/${o[i]}.jpg`, e(t.videoImage)) : (i += 1, this.src = `https://img.youtube.com/vi/${t.videoID}/${o[i]}.jpg`) }, a.src = `https://img.youtube.com/vi/${t.videoID}/${o[i]}.jpg` } getVideo(e) { const t = this; t.$video ? e(t.$video) : function (e) { void 0 !== a.YT && 0 !== a.YT.loaded || r ? "object" == typeof a.YT && 1 === a.YT.loaded ? e() : l.done((() => { e() })) : (r = 1, a.onYouTubeIframeAPIReady = function () { a.onYouTubeIframeAPIReady = null, l.resolve("done"), e() }) }((() => { let o, i, n;
124 t.$video || (o = document.createElement("div"), o.style.display = "none"), t.playerOptions = { host: "https://www.youtube-nocookie.com", videoId: t.videoID, playerVars: { autohide: 1, rel: 0, autoplay: 0, playsinline: 1 } }, t.options.showControls || (t.playerOptions.playerVars.iv_load_policy = 3, t.playerOptions.playerVars.modestbranding = 1, t.playerOptions.playerVars.controls = 0, t.playerOptions.playerVars.showinfo = 0, t.playerOptions.playerVars.disablekb = 1), t.playerOptions.events = { onReady(e) { if (t.options.mute ? e.target.mute() : "number" == typeof t.options.volume && e.target.setVolume(t.options.volume), t.options.autoplay && t.play(t.options.startTime), t.fire("ready", e), t.options.loop && !t.options.endTime) { const e = .1; t.options.endTime = t.player.getDuration() - e } setInterval((() => { t.getVolume((o => { t.options.volume !== o && (t.options.volume = o, t.fire("volumechange", e)) })) }), 150) }, onStateChange(e) { t.options.loop && e.data === a.YT.PlayerState.ENDED && t.play(t.options.startTime), i || e.data !== a.YT.PlayerState.PLAYING || (i = 1, t.fire("started", e)), e.data === a.YT.PlayerState.PLAYING && t.fire("play", e), e.data === a.YT.PlayerState.PAUSED && t.fire("pause", e), e.data === a.YT.PlayerState.ENDED && t.fire("ended", e), e.data === a.YT.PlayerState.PLAYING ? n = setInterval((() => { t.fire("timeupdate", e), t.options.endTime && t.player.getCurrentTime() >= t.options.endTime && (t.options.loop ? t.play(t.options.startTime) : t.pause()) }), 150) : clearInterval(n) }, onError(e) { t.fire("error", e) } }; const s = !t.$video; if (s) { const e = document.createElement("div"); e.setAttribute("id", t.playerID), o.appendChild(e), document.body.appendChild(o) } t.player = t.player || new a.YT.Player(t.playerID, t.playerOptions), s && (t.$video = document.getElementById(t.playerID), t.options.accessibilityHidden && (t.$video.setAttribute("tabindex", "-1"), t.$video.setAttribute("aria-hidden", "true")), t.videoWidth = parseInt(t.$video.getAttribute("width"), 10) || 1280, t.videoHeight = parseInt(t.$video.getAttribute("height"), 10) || 720), e(t.$video) })) } }, Vimeo: class extends i { type = "vimeo"; static parseURL(e) { const t = e.match(/https?:\/\/(?:www\.|player\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/([^/]*)\/videos\/|album\/(\d+)\/video\/|video\/|)(\d+)(?:$|\/|\?)/); return !(!t || !t[3]) && t[3] } static parseURLHash(e) { const t = e.match(/^.*(vimeo.com\/|video\/)(\d+)(\?.*&*h=|\/)+([\d,a-f]+)/); return t && 5 === t.length ? t[4] : null } init() { super.init(), function () { if (p) return; if (p = !0, void 0 !== a.Vimeo) return; let e = document.createElement("script"), t = document.getElementsByTagName("head")[0]; e.src = "https://player.vimeo.com/api/player.js", t.appendChild(e), t = null, e = null }() } play(e) { const t = this; t.player && (void 0 !== e && t.player.setCurrentTime(e), t.player.getPaused().then((e => { e && (t.options.endTime && !t.options.loop ? t.getCurrentTime((e => { e < t.options.endTime && t.player.play() })) : t.player.play()) }))) } pause() { const e = this; e.player && e.player.getPaused().then((t => { t || e.player.pause() })) } mute() { const e = this; e.player && e.player.setVolume && e.setVolume(0) } unmute() { const e = this; e.player && e.player.setVolume && e.setVolume(e.options.volume || 100) } setVolume(e = !1) { const t = this; t.player && "number" == typeof e && t.player.setVolume && t.player.setVolume(e / 100) } getVolume(e) { const t = this; t.player ? t.player.getVolume && t.player.getVolume().then((t => { e(100 * t) })) : e(!1) } getMuted(e) { const t = this; t.player ? t.player.getVolume && t.player.getVolume().then((t => { e(!!t) })) : e(null) } setCurrentTime(e = !1) { const t = this; t.player && "number" == typeof e && t.player.setCurrentTime && t.player.setCurrentTime(e) } getCurrentTime(e) { const t = this; t.player && t.player.getCurrentTime && t.player.getCurrentTime().then((t => { e(t) })) } getImageURL(e) { const t = this; if (t.videoImage) return void e(t.videoImage); let o = a.innerWidth || 1920; a.devicePixelRatio && (o *= a.devicePixelRatio), o = Math.min(o, 1920); let i = new XMLHttpRequest; i.open("GET", `https://vimeo.com/api/oembed.json?url=${t.url}&width=${o}`, !0), i.onreadystatechange = function () { if (4 === this.readyState && this.status >= 200 && this.status < 400) { const o = JSON.parse(this.responseText); o.thumbnail_url && (t.videoImage = o.thumbnail_url, e(t.videoImage)) } }, i.send(), i = null } getVideo(e) { const t = this; t.$video ? e(t.$video) : function (e) { if (void 0 !== a.Vimeo || d) void 0 !== a.Vimeo ? e() : u.done((() => { e() })); else { d = 1; const t = setInterval((() => { void 0 !== a.Vimeo && (clearInterval(t), u.resolve("done"), e()) }), 20) } }((() => { let o;
124 t.$video || (o = document.createElement("div"), o.style.display = "none"), t.playerOptions = { dnt: 1, id: t.videoID, autopause: 0, transparent: 0, autoplay: t.options.autoplay ? 1 : 0, loop: t.options.loop ? 1 : 0, muted: t.options.mute || 0 === t.options.volume ? 1 : 0 }; const i = t.constructor.parseURLHash(t.url); if (i && (t.playerOptions.h = i), t.options.showControls || (t.playerOptions.controls = 0), !t.options.showControls && t.options.loop && t.options.autoplay && (t.playerOptions.background = 1), !t.$video) { let e = ""; Object.keys(t.playerOptions).forEach((o => { "" !== e && (e += "&"), e += `${o}=${encodeURIComponent(t.playerOptions[o])}` })), t.$video = document.createElement("iframe"), t.$video.setAttribute("id", t.playerID), t.$video.setAttribute("src", `https://player.vimeo.com/video/${t.videoID}?${e}`), t.$video.setAttribute("frameborder", "0"), t.$video.setAttribute("mozallowfullscreen", ""), t.$video.setAttribute("allowfullscreen", ""), t.$video.setAttribute("title", "Vimeo video player"), t.options.accessibilityHidden && (t.$video.setAttribute("tabindex", "-1"), t.$video.setAttribute("aria-hidden", "true")), o.appendChild(t.$video), document.body.appendChild(o) } let n; t.player = t.player || new a.Vimeo.Player(t.$video, t.playerOptions), t.options.mute || "number" != typeof t.options.volume || t.setVolume(t.options.volume), t.options.startTime && t.options.autoplay && t.player.setCurrentTime(t.options.startTime), t.player.getVideoWidth().then((e => { t.videoWidth = e || 1280 })), t.player.getVideoHeight().then((e => { t.videoHeight = e || 720 })), t.player.on("timeupdate", (e => { n || (t.fire("started", e), n = 1), t.fire("timeupdate", e), t.options.endTime && e.seconds >= t.options.endTime && (t.options.loop ? t.play(t.options.startTime) : t.pause()) })), t.player.on("play", (e => { t.fire("play", e), t.options.startTime && 0 === e.seconds && t.play(t.options.startTime) })), t.player.on("pause", (e => { t.fire("pause", e) })), t.player.on("ended", (e => { t.fire("ended", e) })), t.player.on("loaded", (e => { t.fire("ready", e) })), t.player.on("volumechange", (e => { t.getVolume((e => { t.options.volume = e })), t.fire("volumechange", e) })), t.player.on("error", (e => { t.fire("error", e) })), e(t.$video) })) } }, Local: class extends i { type = "local"; static parseURL(e) { const t = e.split(/,(?=mp4\:|webm\:|ogv\:|ogg\:)/), o = {}; let i = 0; return t.forEach((e => { const t = e.match(/^(mp4|webm|ogv|ogg)\:(.*)/); t && t[1] && t[2] && (o["ogv" === t[1] ? "ogg" : t[1]] = t[2], i = 1) })), !!i && o } play(e) { const t = this; t.player && (void 0 !== e && (t.player.currentTime = e), t.player.paused && (t.options.endTime && !t.options.loop ? t.getCurrentTime((e => { e < t.options.endTime && t.player.play() })) : t.player.play())) } pause() { const e = this; e.player && !e.player.paused && e.player.pause() } mute() { this.player && (this.$video.muted = !0) } unmute() { this.player && (this.$video.muted = !1) } setVolume(e = !1) { this.player && "number" == typeof e && (this.$video.volume = e / 100) } getVolume(e) { this.player ? e(100 * this.$video.volume) : e(!1) } getMuted(e) { this.player ? e(this.$video.muted) : e(null) } setCurrentTime(e = !1) { this.player && "number" == typeof e && (this.$video.currentTime = e) } getCurrentTime(e) { this.player && e(this.player.currentTime) } getImageURL(e) { const t = this; t.videoImage && e(t.videoImage) } getVideo(e) { const t = this; if (t.$video) return void e(t.$video); let o, i; t.$video || (o = document.createElement("div"), o.style.display = "none"), t.$video || (t.$video = document.createElement("video"), t.player = t.$video, t.options.showControls && (t.$video.controls = !0), "number" == typeof t.options.volume && t.setVolume(t.options.volume), t.options.mute && t.mute(), t.options.loop && (t.$video.loop = !0), t.$video.setAttribute("playsinline", ""), t.$video.setAttribute("webkit-playsinline", ""), t.options.accessibilityHidden && (t.$video.setAttribute("tabindex", "-1"), t.$video.setAttribute("aria-hidden", "true")), t.$video.setAttribute("id", t.playerID), o.appendChild(t.$video), document.body.appendChild(o), Object.keys(t.videoID).forEac
124h((e => { !function (e, t, o) { const i = document.createElement("source"); i.src = t, i.type = o, e.appendChild(i) }(t.$video, t.videoID[e], `video/${e}`) }))), t.player.addEventListener("playing", (e => { i || t.fire("started", e), i = 1 })), t.player.addEventListener("timeupdate", (function (e) { t.fire("timeupdate", e), t.options.endTime && this.currentTime >= t.options.endTime && (t.options.loop ? t.play(t.options.startTime) : t.pause()) })), t.player.addEventListener("play", (e => { t.fire("play", e) })), t.player.addEventListener("pause", (e => { t.fire("pause", e) })), t.player.addEventListener("ended", (e => { t.fire("ended", e) })), t.player.addEventListener("loadedmetadata", (function () { t.videoWidth = this.videoWidth || 1280, t.videoHeight = this.videoHeight || 720, t.fire("ready"), t.options.autoplay && t.play(t.options.startTime) })), t.player.addEventListener("volumechange", (e => { t.getVolume((e => { t.options.volume = e })), t.fire("volumechange", e) })), t.player.addEventListener("error", (e => { t.fire("error", e) })), e(t.$video) } } }, y = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : {}; var c, v = y; function h(e = v.jarallax) { if (void 0 === e) return; const t = e.constructor, o = t.prototype.onScroll; t.prototype.onScroll = function () { const e = this; o.apply(e); !e.isVideoInserted && e.video && (!e.options.videoLazyLoading || e.isElementInViewport) && !e.options.disableVideo() && (e.isVideoInserted = !0, e.video.getVideo((t => { const o = t.parentNode; e.css(t, { position: e.image.position, top: "0px", left: "0px", right: "0px", bottom: "0px", width: "100%", height: "100%", maxWidth: "none", maxHeight: "none", pointerEvents: "none", transformStyle: "preserve-3d", backfaceVisibility: "hidden", margin: 0, zIndex: -1 }), e.$video = t, "local" === e.video.type && (e.image.src ? e.$video.setAttribute("poster", e.image.src) : e.image.$item && "IMG" === e.image.$item.tagName && e.image.$item.src && e.$video.setAttribute("poster", e.image.$item.src)), e.options.videoClass && e.$video.setAttribute("class", `${e.options.videoClass} ${e.options.videoClass}-${e.video.type}`), e.image.$container.appendChild(t), o.parentNode.removeChild(o), e.options.onVideoInsert && e.options.onVideoInsert.call(e) }))) }; const i = t.prototype.coverImage; t.prototype.coverImage = function () { const e = this, t = i.apply(e), o = !!e.image.$item && e.image.$item.nodeName; if (t && e.video && o && ("IFRAME" === o || "VIDEO" === o)) { let i = t.image.height, a = i * e.image.width / e.image.height, n = (t.container.width - a) / 2, s = t.image.marginTop; t.container.width > a && (a = t.container.width, i = a * e.image.height / e.image.width, n = 0, s += (t.image.height - i) / 2), "IFRAME" === o && (i += 400, s -= 200), e.css(e.$video, { width: `${a}px`, marginLeft: `${n}px`, height: `${i}px`, marginTop: `${s}px` }) } return t }; const a = t.prototype.initImg; t.prototype.initImg = function () { const e = this, t = a.apply(e); return e.options.videoSrc || (e.options.videoSrc = e.$item.getAttribute("data-jarallax-video") || null), e.options.videoSrc ? (e.defaultInitImgResult = t, !0) : t }; const n = t.prototype.canInitParallax; t.prototype.canInitParallax = function () { const e = this; let t = n.apply(e); if (!e.options.videoSrc) return t; const o = new m(e.options.videoSrc, { autoplay: !0, loop: e.options.videoLoop, showControls: !1, accessibilityHidden: !0, startTime: e.options.videoStartTime || 0, endTime: e.options.videoEndTime || 0, mute: !e.options.videoVolume, volume: e.options.videoVolume || 0 }); function i() { e.image.$default_item && (e.image.$item = e.image.$default_item, e.image.$item.style.display = "block", e.coverImage(), e.onScroll()) } if (e.options.onVideoWorkerInit && e.options.onVideoWorkerInit.call(e, o), o.isValid()) if (this.options.disableParallax() && (t = !0, e.image.position = "absolute", e.options.type = "scroll", e.options.speed = 1), t) { if (o.on("ready", (() => { if (e.options.videoPlayOnlyVisible) { const t = e.onScroll; e.onScroll = function () { t.apply(e), e.videoError || !e.options.videoLoop && (e.options.videoLoop || e.videoEnded) || (e.isVisible() ? o.play() : o.pause()) } } else o.play() })), o.on("started", (() => { e.image.$default_item = e.image.$item, e.image.$item = e.$video, e.image.width = e.video.videoWidth || 1280, e.image.height = e.video.videoHeight || 720, e.coverImage(), e.onScroll(), e.image.$default_item && (e.image.$default_item.style.display = "none") })), o.on("ended", (() => { e.videoEnded = !0, e.options.videoLoop || i() })), o.on("error", (() => { e.videoError = !0, i() })), e.video = o, !e.defaultInitImgResult && (e.image.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", "local" !== o.type)) return o.getImageURL((t => { e.image.bgImage = `url("${t}
124")`, e.init() })), !1 } else e.defaultInitImgResult || o.getImageURL((t => { const o = e.$item.getAttribute("style"); o && e.$item.setAttribute("data-jarallax-original-styles", o), e.css(e.$item, { "background-image": `url("${t}")`, "background-position": "center", "background-size": "cover" }) })); return t }; const s = t.prototype.destroy; t.prototype.destroy = function () { const e = this; e.image.$default_item && (e.image.$item = e.image.$default_item, delete e.image.$default_item), s.apply(e) } } return h(), c = () => { void 0 !== v.jarallax && v.jarallax(document.querySelectorAll("[data-jarallax-video]")) }, "complete" === document.readyState || "interactive" === document.readyState ? c() : document.addEventListener("DOMContentLoaded", c, { capture: !0, once: !0, passive: !0 }), v.VideoWorker || (v.VideoWorker = m), h
125}));//# sourceMappingURL=jarallax-video.min.js.map
126/*============================================================================================================================*/
127/* Auto Zoom Fix for iPhone */
128"use strict"; var addMaximumScaleToMetaViewport = function () { var e, t, a = document.querySelector("meta[name=viewport]"); null !== a && (t = a.getAttribute("content"), t = (e = /maximum\-scale=[0-9\.]+/g).test(t) ? t.replace(e, "maximum-scale=1.0") : [t, "maximum-scale=1.0"].join(", "), a.setAttribute("content", t)) }, disableIosTextFieldZoom = addMaximumScaleToMetaViewport, checkIsIOS = function () { return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream }; checkIsIOS() && disableIosTextFieldZoom();
129/**===========================================================================================================================*/
130/* Mobile Chrome vh units fix */
131var VHChromeFix = function (e) { var t = this, i = navigator.userAgent.toLowerCase(), n = /chrome/.test(i) && /android/.test(i), i = /crios/.test(i); (n || i) && (this.getElements(e), this.fixAll(), this.windowWidth = window.innerWidth, this.windowHeight = window.innerHeight, window.addEventListener("resize", function () { t.windowWidth !== window.innerWidth && t.windowHeight !== window.innerHeight && (t.windowWidth = window.innerWidth, t.windowHeight = window.innerHeight, t.fixAll()) })) }; VHChromeFix.prototype.getElements = function (e) { this.elements = [], e = this.isArray(e) ? e : [e]; for (var t = 0; t < e.length; t++)for (var i = e[t].selector, n = document.querySelectorAll(i), o = 0; o < n.length; o++)this.elements.push({ domElement: n[o], vh: e[t].vh }) }, VHChromeFix.prototype.isArray = function (e) { return "[object Array]" === Object.prototype.toString.call(e) }, VHChromeFix.prototype.fixAll = function () { for (var e = 0; e < this.elements.length; e++) { var t = this.elements[e]; t.domElement.style.height = window.innerHeight * t.vh / 100 + "px" } };
132/**===========================================================================================================================*/
133/* == malihu jquery custom scrollbar plugin == Version: 3.1.5, License: MIT License (MIT) */
134!function (e) { "function" == typeof define && define.amd ? define(["jquery"], e) : "undefined" != typeof module && module.exports ? module.exports = e : e(jQuery, window, document) }(function (R) { var s, W, a, n, l, i, p, A, L, g, f, c, d, u, h, m, v, x, _, w, S, b, y, C, B, T, k, M, z, r, O, I, D, E, H, P, U, F, q, j, Y, X, N, V, Q, G, J, K, Z, $, t, ee, te, oe, ae, ne, ie, e, o, re; e = "function" == typeof define && define.amd, o = "undefined" != typeof module && module.exports, re = "https:" == document.location.protocol ? "https:" : "http:", e || (o ? require("jquery-mousewheel")(R) : R.event.special.mousewheel || R("head").append(decodeURI("%3Cscript src=" + re + "//cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js%3E%3C/script%3E"))), s = "mCustomScrollbar", W = "mCS", a = ".mCustomScrollbar", n = { setTop: 0, setLeft: 0, axis: "y", scrollbarPosition: "inside", scrollInertia: 950, autoDraggerLength: !0, alwaysShowScrollbar: 0, snapOffset: 0, mouseWheel: { enable: !0, scrollAmount: "auto", axis: "y", deltaFactor: "auto", disableOver
134: ["select", "option", "keygen", "datalist", "textarea"] }, scrollButtons: { scrollType: "stepless", scrollAmount: "auto" }, keyboard: { enable: !0, scrollType: "stepless", scrollAmount: "auto" }, contentTouchScroll: 25, documentTouchScroll: !0, advanced: { autoScrollOnFocus: "input,textarea,select,button,datalist,keygen,a[tabindex],area,object,[contenteditable='true']", updateOnContentResize: !0, updateOnImageLoad: "auto", autoUpdateTimeout: 60 }, theme: "light", callbacks: { onTotalScrollOffset: 0, onTotalScrollBackOffset: 0, alwaysTriggerOffsets: !0 } }, l = 0, i = {}, p = window.attachEvent && !window.addEventListener ? 1 : 0, A = !1, g = ["mCSB_dragger_onDrag", "mCSB_scrollTools_onDrag", "mCS_img_loaded", "mCS_disabled", "mCS_destroyed", "mCS_no_scrollbar", "mCS-autoHide", "mCS-dir-rtl", "mCS_no_scrollbar_y", "mCS_no_scrollbar_x", "mCS_y_hidden", "mCS_x_hidden", "mCSB_draggerContainer", "mCSB_buttonUp", "mCSB_buttonDown", "mCSB_buttonLeft", "mCSB_buttonRight"], f = { init: function (r) { var r = R.extend(!0, {}, n, r), e = c.call(this); if (r.live) { var t = r.liveSelector || this.selector || a, o = R(t); if ("off" === r.live) return void u(t); i[t] = setTimeout(function () { o.mCustomScrollbar(r), "once" === r.live && o.length && u(t) }, 500) } else u(t); return r.setWidth = r.set_width || r.setWidth, r.setHeight = r.set_height || r.setHeight, r.axis = r.horizontalScroll ? "x" : h(r.axis), r.scrollInertia = 0 < r.scrollInertia && r.scrollInertia < 17 ? 17 : r.scrollInertia, "object" != typeof r.mouseWheel && 1 == r.mouseWheel && (r.mouseWheel = { enable: !0, scrollAmount: "auto", axis: "y", preventDefault: !1, deltaFactor: "auto", normalizeDelta: !1, invert: !1 }), r.mouseWheel.scrollAmount = r.mouseWheelPixels || r.mouseWheel.scrollAmount, r.mouseWheel.normalizeDelta = r.advanced.normalizeMouseWheelDelta || r.mouseWheel.normalizeDelta, r.scrollButtons.scrollType = m(r.scrollButtons.scrollType), d(r), R(e).each(function () { var e, t, o, a, n, i = R(this); i.data(W) || (i.data(W, { idx: ++l, opt: r, scrollRatio: { y: null, x: null }, overflowed: null, contentReset: { y: null, x: null }, bindEvents: !1, tweenRunning: !1, sequential: {}, langDir: i.css("direction"), cbOffsets: null, trigger: null, poll: { size: { o: 0, n: 0 }, img: { o: 0, n: 0 }, change: { o: 0, n: 0 } } }), t = (e = i.data(W)).opt, o = i.data("mcs-axis"), a = i.data("mcs-scrollbar-position"), n = i.data("mcs-theme"), o && (t.axis = o), a && (t.scrollbarPosition = a), n && (t.theme = n, d(t)), v.call(this), e && t.callbacks.onCreate && "function" == typeof t.callbacks.onCreate && t.callbacks.onCreate.call(this), R("#mCSB_" + e.idx + "_container img:not(." + g[2] + ")").addClass(g[2]), f.update.call(null, i)) }) }, update: function (e, r) { e = e || c.call(this); return R(e).each(function () { var e, t, o, a, n, i = R(this); i.data(W) && (t = (e = i.data(W)).opt, n = R("#mCSB_" + e.idx + "_container"), o = R("#mCSB_" + e.idx), a = [R("#mCSB_" + e.idx + "_dragger_vertical"), R("#mCSB_" + e.idx + "_dragger_horizontal")], n.length && (e.tweenRunning && J(i), r && e && t.callbacks.onBeforeUpdate && "function" == typeof t.callbacks.onBeforeUpdate && t.callbacks.onBeforeUpdate.call(this), i.hasClass(g[3]) && i.removeClass(g[3]), i.hasClass(g[4]) && i.removeClass(g[4]), o.css("max-height", "none"), o.height() !== i.height() && o.css("max-height", i.height()), _.call(this), "y" === t.axis || t.advanced.autoExpandHorizontalScroll || n.css("width", x(n)), e.overflowed = C.call(this), M.call(this), t.autoDraggerLength && S.call(this), b.call(this), T.call(this), n = [Math.abs(n[0].offsetTop), Math.abs(n[0].offsetLeft)], "x" !== t.axis && (e.overflowed[0] ? a[0].height() > a[0].parent().height() ? B.call(this) : (K(i, n[0].toString(), { dir: "y", dur: 0, overwrite: "none" }), e.contentReset.y = null) : (B.call(this), "y" === t.axis ? k.call(this) : "yx" === t.axis && e.overflowed[1] && K(i, n[1].toString(), { dir: "x", dur: 0, overwrite: "none" }))), "y" !== t.axis && (e.overflowed[1] ? a[1].width() > a[1].parent().width() ? B.call(this) : (K(i, n[1].toString(), { dir: "x", dur: 0, overwrite: "none" }), e.contentReset.x = null) : (B.call(this), "x" === t.axis ? k.call(this) : "yx" === t.axis && e.overflowed[0] && K(i, n[0].toString(), { dir: "y", dur: 0, overwrite: "none" }))), r && e && (2 === r && t.callbacks.onImageLoad && "function" == typeof t.callbacks.onImageLoad ? t.callbacks.onImageLoad.call(this) : 3 === r && t.callbacks.onSelectorChange && "function" == typeof t.callbacks.onSelectorChange ? t.callbacks.onSelectorChange.call(this) : t.callbacks.onUpdate && "function" == typeof t.callbacks.onUpdate && t.callbacks.onUpdate.call(this)), G.call(this))) }) }, scrollTo: function (r, l) { if (void 0 !== r && null != r) { var e = c.call(this); return R(e).each(function () { var e, t, o, a, n, i = R(this); i.data(W) && (e = i.data(W), n = { trigger: "external", scrollInertia: (t = e.opt).scrollInertia, scrollEasing: "mcsEaseInOut", moveDragger: !1, timeout: 60, callbacks: !0, onStart: !0, onUp
134date: !0, onComplete: !0 }, o = R.extend(!0, {}, n, l), a = V.call(this, r), n = 0 < o.scrollInertia && o.scrollInertia < 17 ? 17 : o.scrollInertia, a[0] = Q.call(this, a[0], "y"), a[1] = Q.call(this, a[1], "x"), o.moveDragger && (a[0] *= e.scrollRatio.y, a[1] *= e.scrollRatio.x), o.dur = ie() ? 0 : n, setTimeout(function () { null !== a[0] && void 0 !== a[0] && "x" !== t.axis && e.overflowed[0] && (o.dir = "y", o.overwrite = "all", K(i, a[0].toString(), o)), null !== a[1] && void 0 !== a[1] && "y" !== t.axis && e.overflowed[1] && (o.dir = "x", o.overwrite = "none", K(i, a[1].toString(), o)) }, o.timeout)) }) } }, stop: function () { var e = c.call(this); return R(e).each(function () { var e = R(this); e.data(W) && J(e) }) }, disable: function (t) { var e = c.call(this); return R(e).each(function () { var e = R(this); e.data(W) && (e.data(W), G.call(this, "remove"), k.call(this), t && B.call(this), M.call(this, !0), e.addClass(g[3])) }) }, destroy: function () { var r = c.call(this); return R(r).each(function () { var e, t, o, a, n, i = R(this); i.data(W) && (t = (e = i.data(W)).opt, o = R("#mCSB_" + e.idx), a = R("#mCSB_" + e.idx + "_container"), n = R(".mCSB_" + e.idx + "_scrollbar"), t.live && u(t.liveSelector || R(r).selector), G.call(this, "remove"), k.call(this), B.call(this), i.removeData(W), ee(this, "mcs"), n.remove(), a.find("img." + g[2]).removeClass(g[2]), o.replaceWith(a.contents()), i.removeClass(s + " _" + W + "_" + e.idx + " " + g[6] + " " + g[7] + " " + g[5] + " " + g[3]).addClass(g[4])) }) } }, c = function () { return "object" != typeof R(this) || R(this).length < 1 ? a : this }, d = function (e) { e.autoDraggerLength = !(-1 < R.inArray(e.theme, ["rounded", "rounded-dark", "rounded-dots", "rounded-dots-dark"])) && e.autoDraggerLength, e.autoExpandScrollbar = !(-1 < R.inArray(e.theme, ["rounded-dots", "rounded-dots-dark", "3d", "3d-dark", "3d-thick", "3d-thick-dark", "inset", "inset-dark", "inset-2", "inset-2-dark", "inset-3", "inset-3-dark"])) && e.autoExpandScrollbar, e.scrollButtons.enable = !(-1 < R.inArray(e.theme, ["minimal", "minimal-dark"])) && e.scrollButtons.enable, e.autoHideScrollbar = -1 < R.inArray(e.theme, ["minimal", "minimal-dark"]) || e.autoHideScrollbar, e.scrollbarPosition = -1 < R.inArray(e.theme, ["minimal", "minimal-dark"]) ? "outside" : e.scrollbarPosition }, u = function (e) { i[e] && (clearTimeout(i[e]), ee(i, e)) }, h = function (e) { return "yx" === e || "xy" === e || "auto" === e ? "yx" : "x" === e || "horizontal" === e ? "x" : "y" }, m = function (e) { return "stepped" === e || "pixels" === e || "step" === e || "click" === e ? "stepped" : "stepless" }, v = function () { var e = R(this), t = e.data(W), o = t.opt, a = o.autoExpandScrollbar ? " " + g[1] + "_expand" : "", n = ["<div id='mCSB_" + t.idx + "_scrollbar_vertical' class='mCSB_scrollTools mCSB_" + t.idx + "_scrollbar mCS-" + o.theme + " mCSB_scrollTools_vertical" + a + "'><div class='" + g[12] + "'><div id='mCSB_" + t.idx + "_dragger_vertical' class='mCSB_dragger' style='position:absolute;'><div class='mCSB_dragger_bar'></div></div><div class='mCSB_draggerRail'></div></div></div>", "<div id='mCSB_" + t.idx + "_scrollbar_horizontal' class='mCSB_scrollTools mCSB_" + t.idx + "_scrollbar mCS-" + o.theme + " mCSB_scrollTools_horizontal" + a + "'><div class='" + g[12] + "'><div id='mCSB_" + t.idx + "_dragger_horizontal' class='mCSB_dragger' style='position:absolute;'><div class='mCSB_dragger_bar'></div></div><div class='mCSB_draggerRail'></div></div></div>"], i = "yx" === o.axis ? "mCSB_vertical_horizontal" : "x" === o.axis ? "mCSB_horizontal" : "mCSB_vertical", r = "yx" === o.axis ? n[0] + n[1] : "x" === o.axis ? n[1] : n[0], l = "yx" === o.axis ? "<div id='mCSB_" + t.idx + "_container_wrapper' class='mCSB_container_wrapper'></div>" : "", a = o.autoHideScrollbar ? " " + g[6] : "", n = "x" !== o.axis && "rtl" === t.langDir ? " " + g[7] : ""; o.setWidth && e.css("width", o.setWidth), o.setHeight && e.css("height", o.setHeight), o.setLeft = "y" !== o.axis && "rtl" === t.langDir ? "989999px" : o.setLeft, e.addClass(s + " _" + W + "_" + t.idx + a + n).wrapInner("<div id='m
134CSB_" + t.idx + "' class='mCustomScrollBox mCS-" + o.theme + " " + i + "'><div id='mCSB_" + t.idx + "_container' class='mCSB_container' style='position:relative; top:" + o.setTop + "; left:" + o.setLeft + ";' dir='" + t.langDir + "'></div></div>"); n = R("#mCSB_" + t.idx), i = R("#mCSB_" + t.idx + "_container"); "y" === o.axis || o.advanced.autoExpandHorizontalScroll || i.css("width", x(i)), "outside" === o.scrollbarPosition ? ("static" === e.css("position") && e.css("position", "relative"), e.css("overflow", "visible"), n.addClass("mCSB_outside").after(r)) : (n.addClass("mCSB_inside").append(r), i.wrap(l)), w.call(this); t = [R("#mCSB_" + t.idx + "_dragger_vertical"), R("#mCSB_" + t.idx + "_dragger_horizontal")]; t[0].css("min-height", t[0].height()), t[1].css("min-width", t[1].width()) }, x = function (e) { var t = [e[0].scrollWidth, Math.max.apply(Math, e.children().map(function () { return R(this).outerWidth(!0) }).get())], e = e.parent().width(); return e < t[0] ? t[0] : e < t[1] ? t[1] : "100%" }, _ = function () { var e = R(this).data(W), t = e.opt, o = R("#mCSB_" + e.idx + "_container"); t.advanced.autoExpandHorizontalScroll && "y" !== t.axis && (o.css({ width: "auto", "min-width": 0, "overflow-x": "scroll" }), e = Math.ceil(o[0].scrollWidth), 3 === t.advanced.autoExpandHorizontalScroll || 2 !== t.advanced.autoExpandHorizontalScroll && e > o.parent().width() ? o.css({ width: e, "min-width": "100%", "overflow-x": "inherit" }) : o.css({ "overflow-x": "inherit", position: "absolute" }).wrap("<div class='mCSB_h_wrapper' style='position:relative; left:0; width:999999px;'></div>").css({ width: Math.ceil(o[0].getBoundingClientRect().right + .4) - Math.floor(o[0].getBoundingClientRect().left), "min-width": "100%", position: "relative" }).unwrap()) }, w = function () { var e = R(this).data(W), t = e.opt, o = R(".mCSB_" + e.idx + "_scrollbar:first"), e = ae(t.scrollButtons.tabindex) ? "tabindex='" + t.scrollButtons.tabindex + "'" : "", e = ["<a href='#' class='" + g[13] + "' " + e + "></a>", "<a href='#' class='" + g[14] + "' " + e + "></a>", "<a href='#' class='" + g[15] + "' " + e + "></a>", "<a href='#' class='" + g[16] + "' " + e + "></a>"], e = ["x" === t.axis ? e[2] : e[0], "x" === t.axis ? e[3] : e[1], e[2], e[3]]; t.scrollButtons.enable && o.prepend(e[0]).append(e[1]).next(".mCSB_scrollTools").prepend(e[2]).append(e[3]) }, S = function () { var e = R(this).data(W), t = R("#mCSB_" + e.idx), o = R("#mCSB_" + e.idx + "_container"), a = [R("#mCSB_" + e.idx + "_dragger_vertical"), R("#mCSB_" + e.idx + "_dragger_horizontal")], e = [t.height() / o.outerHeight(!1), t.width() / o.outerWidth(!1)], t = [parseInt(a[0].css("min-height")), Math.round(e[0] * a[0].parent().height()), parseInt(a[1].css("min-width")), Math.round(e[1] * a[1].parent().width())], o = p && t[1] < t[0] ? t[0] : t[1], e = p && t[3] < t[2] ? t[2] : t[3]; a[0].css({ height: o, "max-height": a[0].parent().height() - 10 }).find(".mCSB_dragger_bar").css({ "line-height": t[0] + "px" }), a[1].css({ width: e, "max-width": a[1].parent().width() - 10 }) }, b = function () { var e = R(this).data(W), t = R("#mCSB_" + e.idx), o = R("#mCSB_" + e.idx + "_container"), a = [R("#mCSB_" + e.idx + "_dragger_vertical"), R("#mCSB_" + e.idx + "_dragger_horizontal")], t = [o.outerHeight(!1) - t.height(), o.outerWidth(!1) - t.width()], a = [t[0] / (a[0].parent().height() - a[0].height()), t[1] / (a[1].parent().width() - a[1].width())]; e.scrollRatio = { y: a[0], x: a[1] } }, y = function (e, t, o) { var a = o ? g[0] + "_expanded" : "", o = e.closest(".mCSB_scrollTools"); "active" === t ? (e.toggleClass(g[0] + " " + a), o.toggleClass(g[1]), e[0]._draggable = e[0]._draggable ? 0 : 1) : e[0]._draggable || ("hide" === t ? (e.removeClass(g[0]), o.removeClass(g[1])) : (e.addClass(g[0]), o.addClass(g[1]))) }, C = function () { var e = R(this).data(W), t = R("#mCSB_" + e.idx), o = R("#mCSB_" + e.idx + "_container"), a = null == e.overflowed ? o.height() : o.outerHeight(!1), n = null == e.overflowed ? o.width() : o.outerWidth(!1), e = o[0].scrollHeight, o = o[0].scrollWidth; return a < e && (a = e), n < o && (n = o), [a >
vendor: 4,789 bytes, line 134
134 t.height(), n > t.width()] }, B = function () { var e = R(this), t = e.data(W), o = t.opt, a = R("#mCSB_" + t.idx), n = R("#mCSB_" + t.idx + "_container"), i = [R("#mCSB_" + t.idx + "_dragger_vertical"), R("#mCSB_" + t.idx + "_dragger_horizontal")]; J(e), ("x" !== o.axis && !t.overflowed[0] || "y" === o.axis && t.overflowed[0]) && (i[0].add(n).css("top", 0), K(e, "_resetY")), ("y" !== o.axis && !t.overflowed[1] || "x" === o.axis && t.overflowed[1]) && (o = dx = 0, "rtl" === t.langDir && (o = a.width() - n.outerWidth(!1), dx = Math.abs(o / t.scrollRatio.x)), n.css("left", o), i[1].css("left", dx), K(e, "_resetX")) }, T = function () { var t, o = R(this), e = o.data(W), a = e.opt; e.bindEvents || (r.call(this), a.contentTouchScroll && O.call(this), I.call(this), a.mouseWheel.enable && function e() { t = setTimeout(function () { R.event.special.mousewheel ? (clearTimeout(t), D.call(o[0])) : e() }, 100) }(), F.call(this), j.call(this), a.advanced.autoScrollOnFocus && q.call(this), a.scrollButtons.enable && Y.call(this), a.keyboard.enable && X.call(this), e.bindEvents = !0) }, k = function () { var e = R(this), t = e.data(W), o = t.opt, a = W + "_" + t.idx, n = ".mCSB_" + t.idx + "_scrollbar", i = R("#mCSB_" + t.idx + ",#mCSB_" + t.idx + "_container,#mCSB_" + t.idx + "_container_wrapper," + n + " ." + g[12] + ",#mCSB_" + t.idx + "_dragger_vertical,#mCSB_" + t.idx + "_dragger_horizontal," + n + ">a"), n = R("#mCSB_" + t.idx + "_container"); o.advanced.releaseDraggableSelectors && i.add(R(o.advanced.releaseDraggableSelectors)), o.advanced.extraDraggableSelectors && i.add(R(o.advanced.extraDraggableSelectors)), t.bindEvents && (R(document).add(R(!H() || top.document)).unbind("." + a), i.each(function () { R(this).unbind("." + a) }), clearTimeout(e[0]._focusTimeout), ee(e[0], "_focusTimeout"), clearTimeout(t.sequential.step), ee(t.sequential, "step"), clearTimeout(n[0].onCompleteTimeout), ee(n[0], "onCompleteTimeout"), t.bindEvents = !1) }, M = function (e) { var t = R(this), o = t.data(W), a = o.opt, n = R("#mCSB_" + o.idx + "_container_wrapper"), i = n.length ? n : R("#mCSB_" + o.idx + "_container"), r = [R("#mCSB_" + o.idx + "_scrollbar_vertical"), R("#mCSB_" + o.idx + "_scrollbar_horizontal")], n = [r[0].find(".mCSB_dragger"), r[1].find(".mCSB_dragger")]; "x" !== a.axis && (o.overflowed[0] && !e ? (r[0].add(n[0]).add(r[0].children("a")).css("display", "block"), i.removeClass(g[8] + " " + g[10])) : (a.alwaysShowScrollbar ? (2 !== a.alwaysShowScrollbar && n[0].css("display", "none"), i.removeClass(g[10])) : (r[0].css("display", "none"), i.addClass(g[10])), i.addClass(g[8]))), "y" !== a.axis && (o.overflowed[1] && !e ? (r[1].add(n[1]).add(r[1].children("a")).css("display", "block"), i.removeClass(g[9] + " " + g[11])) : (a.alwaysShowScrollbar ? (2 !== a.alwaysShowScrollbar && n[1].css("display", "none"), i.removeClass(g[11])) : (r[1].css("display", "none"), i.addClass(g[11])), i.addClass(g[9]))), o.overflowed[0] || o.overflowed[1] ? t.removeClass(g[5]) : t.addClass(g[5]) }, z = function (e) { var t = e.type, o = e.target.ownerDocument !== document && null !== frameElement ? [R(frameElement).offset().top, R(frameElement).offset().left] : null, a = H() && e.target.ownerDocument !== top.document && null !== frameElement ? [R(e.view.frameElement).offset().top, R(e.view.frameElement).offset().left] : [0, 0]; switch (t) { case "pointerdown": case "MSPointerDown": case "pointermove": case "MSPointerMove": case "pointerup": case "MSPointerUp": return o ? [e.originalEvent.pageY - o[0] + a[0], e.originalEvent.pageX - o[1] + a[1], !1] : [e.originalEvent.pageY, e.originalEvent.pageX, !1]; case "touchstart": case "touchmove": case "touchend": var n = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0], i = e.originalEvent.touches.length || e.originalEvent.changedTouches.length; return e.target.ownerDocument !== document ? [n.screenY, n.screenX, 1 < i] : [n.pageY, n.pageX, 1 < i]; default: return o ? [e.pageY - o[0] + a[0], e.pageX - o[1] + a[1], !1] : [e.pageY, e.pageX, !1] } }, r = function () { var i, n, r, l = R(this), s = l.data(W), c = s.opt, e = W + "_" + s.idx, d = ["mCSB_" + s.idx + "_dragger_vertical", "mCSB_" + s.idx + "_dragger_horizontal"], u = R("#mCSB_" + s.idx + "_container"), t = R("#" + d[0] + ",#" + d[1]), o = c.advanced.releaseDraggableSelectors ? t.add(R(c.advanced.releaseDraggableSelectors)) : t, a = c.advanced.extraDraggableSelectors ? R(!H() || top.document).add(R(c.advanced.extraDraggableSelectors)) : R(!H() || top.document); function f(e, t, o, a) { var n; u[0].idleTimer = c.scrollInertia < 233 ? 250 : 0, o = i.attr("id") === d[1] ? (n = "x", (i[0].offsetLeft - t + a) * s.scrollRatio.x) : (n = "y", (i[0].offsetTop - e + o) * s.scrollRatio.y), K(l, o.toString(), { dir: n, drag: !0 }) }
134 t.bind("contextmenu." + e, function (e) { e.preventDefault() }).bind("mousedown." + e + " touchstart." + e + " pointerdown." + e + " MSPointerDown." + e, function (e) { var t, o, a; e.stopImmediatePropagation(), e.preventDefault(), te(e) && (A = !0, p && (document.onselectstart = function () { return !1 }), P.call(u, !1), J(l), a = (i = R(this)).offset(), t = z(e)[0] - a.top, o = z(e)[1] - a.left, e = i.height() + a.top, a = i.width() + a.left, t < e && 0 < t && o < a && 0 < o && (n = t, r = o), y(i, "active", c.autoExpandScrollbar)) }).bind("touchmove." + e, function (e) { e.stopImmediatePropagation(), e.preventDefault(); var t = i.offset(), o = z(e)[0] - t.top, t = z(e)[1] - t.left; f(n, r, o, t) }), R(document).add(a).bind("mousemove." + e + " pointermove." + e + " MSPointerMove." + e, function (e) { var t, o; i && (o = i.offset(), t = z(e)[0] - o.top, o = z(e)[1] - o.left, n === t && r === o || f(n, r, t, o)) }).add(o).bind("mouseup." + e + " touchend." + e + " pointerup." + e + " MSPointerUp." + e, function (e) { i && (y(i, "active", c.autoExpandScrollbar), i = null), A = !1, p && (document.onselectstart = null), P.call(u, !0) }) }, O = function () { var r, l, s, i, c, d, u, f, h, m, p, g, v = R(this), x = v.data(W), _ = x.opt, e = W + "_" + x.idx, w = R("#mCSB_" + x.idx), S = R("#mCSB_" + x.idx + "_container"), b = [R("#mCSB_" + x.idx + "_dragger_vertical"), R("#mCSB_" + x.idx + "_dragger_horizontal")], C = [], y = [], B = 0, T = "yx" === _.axis ? "none" : "all", k = [], t = S.find("iframe"), o = ["touchstart." + e + " pointerdown." + e + " MSPointerDown." + e, "touchmove." + e + " pointermove." + e + " MSPointerMove." + e, "touchend." + e + " pointerup." + e + " MSPointerUp." + e], M = void 0 !== document.body.style.touchAction && "" !== document.body.style.touchAction; function a(e) { var t; !oe(e) || A || z(e)[2] ? L = 0 : (g = p = 0, r = L = 1, v.removeClass("mCS_touch_action"), t = S.offset(), l = z(e)[0] - t.top, s = z(e)[1] - t.left, k = [z(e)[0], z(e)[1]]) } function n(e) { var t, o, a, n, i; !oe(e) || A || z(e)[2] || (_.documentTouchScroll || e.preventDefault(), e.stopImmediatePropagation(), g && !p || r && (u = $(), a = w.offset(), t = z(e)[0] - a.top, o = z(e)[1] - a.left, a = "mcsLinearOut", C.push(t), y.push(o), k[2] = Math.abs(z(e)[0] - k[0]), k[3] = Math.abs(z(e)[1] - k[1]), x.overflowed[0] && (n = b[0].parent().height() - b[0].height(), n = 0 < l - t && t - l > -(n * x.scrollRatio.y) && (2 * k[3] < k[2] || "yx" === _.axis)), x.overflowed[1] && (i = b[1].parent().width() - b[1].width(), i = 0 < s - o && o - s > -(i * x.scrollRatio.x) && (2 * k[2] < k[3] || "yx" === _.axis)), n || i ? (M || e.preventDefault(), p = 1) : (g = 1, v.addClass("mCS_touch_action")), M && e.preventDefault(), h = "yx" === _.axis ? [l - t, s - o] : "x" === _.axis ? [null, s - o] : [l - t, null], S[0].idleTimer = 250, x.overflowed[0] && E(h[0], B, a, "y", "all", !0), x.overflowed[1] && E(h[1], B, a, "x", T, !0))) } function O(e) { var t; !oe(e) || A || z(e)[2] ? L = 0 : (L = 1, e.stopImmediatePropagation(), J(v), d = $(), t = w.offset(), i = z(e)[0] - t.top, c = z(e)[1] - t.left, C = [], y = []) } function I(e) { var t, o, a, n; !oe(e) || A || z(e)[2] || (r = 0, e.stopImmediatePropagation(), g = p = 0, f = $(), a = w.offset(), t = z(e)[0] - a.top, n = z(e)[1] - a.left, 30 < f - u || (o = "mcsEaseOut", a = (e = (m = 1e3 / (f - d)) < 2.5) ? [C[C.length - 2], y[y.length - 2]] : [0, 0], f = e ? [t - a[0], n - a[1]] : [t - i, n - c], n = [Math.abs(f[0]), Math.abs(f[1])], m = e ? [Math.abs(f[0] / 4), Math.abs(f[1] / 4)] : [m, m], e = [Math.abs(S[0].offsetTop) - f[0] * D(n[0] / m[0], m[0]), Math.abs(S[0].offsetLeft) - f[1] * D(n[1] / m[1], m[1])], h = "yx" === _.axis ? [e[0], e[1]] : "x" === _.axis ? [null, e[1]] : [e[0], null], m = [4 * n[0] + _.scrollInertia, 4 * n[1] + _.scrollInertia], e = parseInt(_.contentTouchScroll) || 0, h[0] = e < n[0] ? h[0] : 0, h[1] = e < n[1] ? h[1] : 0, x.overflowed[0] && E(h[0], m[0], o, "y", T, !1), x.overflowed[1] && E(h[1], m[1], o, "x", T, !1))) } function D(e, t) { var o = [1.5 * t, 2 * t, t / 1.5, t / 2];
134 return 90 < e ? 4 < t ? o[0] : o[3] : 60 < e ? 3 < t ? o[3] : o[2] : 30 < e ? 8 < t ? o[1] : 6 < t ? o[0] : 4 < t ? t : o[2] : 8 < t ? t : o[3] } function E(e, t, o, a, n, i) { e && K(v, e.toString(), { dur: t, scrollEasing: o, dir: a, overwrite: n, drag: i }) } S.bind(o[0], function (e) { a(e) }).bind(o[1], function (e) { n(e) }), w.bind(o[0], function (e) { O(e) }).bind(o[2], function (e) { I(e) }), t.length && t.each(function () { R(this).bind("load", function () { H(this) && R(this.contentDocument || this.contentWindow.document).bind(o[0], function (e) { a(e), O(e) }).bind(o[1], function (e) { n(e) }).bind(o[2], function (e) { I(e) }) }) }) }, I = function () { var a, n = R(this), i = n.data(W), r = i.opt, l = i.sequential, e = W + "_" + i.idx, s = R("#mCSB_" + i.idx + "_container"), c = s.parent(); function d(e, t, o) { l.type = o && a ? "stepped" : "stepless", l.scrollAmount = 10, N(n, e, t, "mcsLinearOut", o ? 60 : null) } s.bind("mousedown." + e, function (e) { L || a || (a = 1, A = !0) }).add(document).bind("mousemove." + e, function (e) { var t, o; !L && a && (window.getSelection ? window.getSelection().toString() : document.selection && "Control" != document.selection.type && document.selection.createRange().text) && (o = s.offset(), t = z(e)[0] - o.top + s[0].offsetTop, o = z(e)[1] - o.left + s[0].offsetLeft, 0 < t && t < c.height() && 0 < o && o < c.width() ? l.step && d("off", null, "stepped") : ("x" !== r.axis && i.overflowed[0] && (t < 0 ? d("on", 38) : t > c.height() && d("on", 40)), "y" !== r.axis && i.overflowed[1] && (o < 0 ? d("on", 37) : o > c.width() && d("on", 39)))) }).bind("mouseup." + e + " dragend." + e, function (e) { L || (a && (a = 0, d("off", null)), A = !1) }) }, D = function () { var d, u, f, e, h, m, t; function o(e, t) { var o, a, n, i, r, l, s, c; J(d), U(d, e.target) || (o = "auto" !== f.mouseWheel.deltaFactor ? parseInt(f.mouseWheel.deltaFactor) : !(p && e.deltaFactor < 100) && e.deltaFactor || 100, a = f.scrollInertia, t = "x" === f.axis || "x" === f.mouseWheel.axis ? (n = "x", i = [Math.round(o * u.scrollRatio.x), parseInt(f.mouseWheel.scrollAmount)], r = "auto" !== f.mouseWheel.scrollAmount ? i[1] : i[0] >= h.width() ? .9 * h.width() : i[0], l = Math.abs(R("#mCSB_" + u.idx + "_container")[0].offsetLeft), s = m[1][0].offsetLeft, c = m[1].parent().width() - m[1].width(), "y" === f.mouseWheel.axis ? e.deltaY || t : e.deltaX) : (n = "y", i = [Math.round(o * u.scrollRatio.y), parseInt(f.mouseWheel.scrollAmount)], r = "auto" !== f.mouseWheel.scrollAmount ? i[1] : i[0] >= h.height() ? .9 * h.height() : i[0], l = Math.abs(R("#mCSB_" + u.idx + "_container")[0].offsetTop), s = m[0][0].offsetTop, c = m[0].parent().height() - m[0].height(), e.deltaY || t), "y" === n && !u.overflowed[0] || "x" === n && !u.overflowed[1] || ((f.mouseWheel.invert || e.webkitDirectionInvertedFromDevice) && (t = -t), f.mouseWheel.normalizeDelta && (t = t < 0 ? -1 : 1), (0 < t && 0 !== s || t < 0 && s !== c || f.mouseWheel.preventDefault) && (e.stopImmediatePropagation(), e.preventDefault()), e.deltaFactor < 5 && !f.mouseWheel.normalizeDelta && (r = e.deltaFactor, a = 17), K(d, (l - t * r).toString(), { dir: n, dur: a }))) } R(this).data(W) && (d = R(this), u = d.data(W), f = u.opt, e = W + "_" + u.idx, h = R("#mCSB_" + u.idx), m = [R("#mCSB_" + u.idx + "_dragger_vertical"), R("#mCSB_" + u.idx + "_dragger_horizontal")], (t = R("#mCSB_" + u.idx + "_container").find("iframe")).length && t.each(function () { R(this).bind("load", function () { H(this) && R(this.contentDocument || this.contentWindow.document).bind("mousewheel." + e, function (e, t) { o(e, t) }) }) }), h.bind("mousewheel." + e, function (e, t) { o(e, t) })) }, E = new Object, H = function (e) { var t = !1, o = !1, a = null; if (void 0 === e ? o = "#empty" : void 0 !== R(e).attr("id") && (
134o = R(e).attr("id")), !1 !== o && void 0 !== E[o]) return E[o]; if (e) { try { a = (e.contentDocument || e.contentWindow.document).body.innerHTML } catch (e) { } t = null !== a } else { try { a = top.document.body.innerHTML } catch (e) { } t = null !== a } return !1 !== o && (E[o] = t), t }, P = function (e) { var t = this.find("iframe"); t.length && (e = e ? "auto" : "none", t.css("pointer-events", e)) }, U = function (e, t) { var o = t.nodeName.toLowerCase(), e = e.data(W).opt.mouseWheel.disableOver; return -1 < R.inArray(o, e) && !(-1 < R.inArray(o, ["select", "textarea"]) && !R(t).is(":focus")) }, F = function () { var r, l = R(this), s = l.data(W), e = W + "_" + s.idx, c = R("#mCSB_" + s.idx + "_container"), d = c.parent(); R(".mCSB_" + s.idx + "_scrollbar ." + g[12]).bind("mousedown." + e + " touchstart." + e + " pointerdown." + e + " MSPointerDown." + e, function (e) { A = !0, R(e.target).hasClass("mCSB_dragger") || (r = 1) }).bind("touchend." + e + " pointerup." + e + " MSPointerUp." + e, function (e) { A = !1 }).bind("click." + e, function (e) { if (r && (r = 0, R(e.target).hasClass(g[12]) || R(e.target).hasClass("mCSB_draggerRail"))) { J(l); var t = R(this), o = t.find(".mCSB_dragger"); if (0 < t.parent(".mCSB_scrollTools_horizontal").length) { if (!s.overflowed[1]) return; var a = "x", n = e.pageX > o.offset().left ? -1 : 1, i = Math.abs(c[0].offsetLeft) - n * (.9 * d.width()) } else { if (!s.overflowed[0]) return; a = "y", n = e.pageY > o.offset().top ? -1 : 1, i = Math.abs(c[0].offsetTop) - n * (.9 * d.height()) } K(l, i.toString(), { dir: a, scrollEasing: "mcsEaseInOut" }) } }) }, q = function () { var n = R(this), e = n.data(W), i = e.opt, t = W + "_" + e.idx, r = R("#mCSB_" + e.idx + "_container"), l = r.parent(); r.bind("focusin." + t, function (e) { var a = R(document.activeElement), t = r.find(".mCustomScrollBox").length; a.is(i.advanced.autoScrollOnFocus) && (J(n), clearTimeout(n[0]._focusTimeout), n[0]._focusTimer = t ? 17 * t : 0, n[0]._focusTimeout = setTimeout(function () { var e = [ne(a)[0], ne(a)[1]], t = [r[0].offsetTop, r[0].offsetLeft], o = [0 <= t[0] + e[0] && t[0] + e[0] < l.height() - a.outerHeight(!1), 0 <= t[1] + e[1] && t[0] + e[1] < l.width() - a.outerWidth(!1)], t = "yx" !== i.axis || o[0] || o[1] ? "all" : "none"; "x" === i.axis || o[0] || K(n, e[0].toString(), { dir: "y", scrollEasing: "mcsEaseInOut", overwrite: t, dur: 0 }), "y" === i.axis || o[1] || K(n, e[1].toString(), { dir: "x", scrollEasing: "mcsEaseInOut", overwrite: t, dur: 0 }) }, n[0]._focusTimer)) }) }, j = function () { var t = R(this).data(W), e = W + "_" + t.idx, o = R("#mCSB_" + t.idx + "_container").parent(); o.bind("scroll." + e, function (e) { 0 === o.scrollTop() && 0 === o.scrollLeft() || R(".mCSB_" + t.idx + "_scrollbar").css("visibility", "hidden") }) }, Y = function () { var a = R(this), n = a.data(W), i = n.opt, r = n.sequential, e = W + "_" + n.idx, t = ".mCSB_" + n.idx + "_scrollbar"; R(t + ">a").bind("contextmenu." + e, function (e) { e.preventDefault() }).bind("mousedown." + e + " touchstart." + e + " pointerdown." + e + " MSPointerDown." + e + " mouseup." + e + " touchend." + e + " pointerup." + e + " MSPointerUp." + e + " mouseout." + e + " pointerout." + e + " MSPointerOut." + e + " click." + e, function (e) { if (e.preventDefault(), te(e)) { var t = R(this).attr("class"); switch (r.type = i.scrollButtons.scrollType, e.type) { case "mousedown": case "touchstart": case "pointerdown": case "MSPointerDown": if ("stepped" === r.type) return; A = !0, n.tweenRunning = !1, o("on", t); break; case "mouseup": case "touchend": case "pointerup": case "MSPointerUp": case "mouseout": case "pointerout": case "MSPointerOut": if ("stepped" === r.type) return; A = !1, r.dir && o("off", t); break; case "click": if ("stepped" !== r.type || n.tweenRunning) return; o("on", t) } } function o(e, t) { r.scrollAmount = i.scrollButtons.scrollAmount, N(a, e, t) } }) }, X = function () { var r = R(this), l = r.data(W), s = l.opt, c = l.sequential, e = W + "_" + l.idx, t = R("#mCSB_" + l.idx), d = R("#mCSB_" + l.idx + "_container"), u = d.parent(), f = "input,textarea,select,datalist,keygen,[contenteditable='true']", o = d.find("iframe"), a = ["blur." + e + " keydown." + e + " keyup." + e]; function n(e) { switch (e.type) { case "blur": l.tweenRunning && c.dir && i("off", null); break; case "keydown": case "keyup": var t, o, a = e.keyCode || e.which, n = "on"; if ("x" !== s.axis && (38 === a || 40 === a) || "y" !== s.axis && (37 === a || 39 === a)) { if ((38 === a || 40 === a) && !l.overflowed[0] || (37 === a || 39 === a) && !l.overflowed[1]) return; "keyup" === e.type && (n = "off"), R(document.activeElement).is(f) || (e.preventDefault(), e.stopImmediatePropagation(), i(n, a)) } else 33 === a || 34 === a ? ((l.overflowed[0] || l.overflowed[1]) && (e.preventDefault(), e.stopImmediatePropagation()), "keyup" === e.type && (J(r), o = 34 === a ? -1 : 1, o = "x" === s.axis || "yx" === s.axis && l.overflowed[1] && !l.overflowed[0] ? (t = "x", Math.abs(d[0].offsetLeft) - o * (.9 * u.width())) : (t = "y", Math.abs(d[0].offsetTop) - o * (.9 * u.height())), K(r, o.toString(), { dir: t, scrollEasing: "mcsEaseInOut" }))) : 35 !== a && 36 !== a || R(document.activeElement).is(f) || ((l.overflowed[0] || l.overflowed[1]) && (e.preventDefault(), e.stopImmediatePropagation()), "keyup" === e.type && (o = "x" === s.axis || "yx" === s.axis && l.overflowed[1] && !l.overflowed[0] ? (t = "x", 35 === a ? Math.abs(u.width() - d.outerWidth(!1)) : 0) : (t = "y", 35 === a ? Math.abs(u.he
134ight() - d.outerHeight(!1)) : 0), K(r, o.toString(), { dir: t, scrollEasing: "mcsEaseInOut" }))) }function i(e, t) { c.type = s.keyboard.scrollType, c.scrollAmount = s.keyboard.scrollAmount, "stepped" === c.type && l.tweenRunning || N(r, e, t) } } o.length && o.each(function () { R(this).bind("load", function () { H(this) && R(this.contentDocument || this.contentWindow.document).bind(a[0], function (e) { n(e) }) }) }), t.attr("tabindex", "0").bind(a[0], function (e) { n(e) }) }, N = function (r, e, t, l, s) { var c = r.data(W), d = c.opt, u = c.sequential, f = R("#mCSB_" + c.idx + "_container"), o = "stepped" === u.type, h = d.scrollInertia < 26 ? 26 : d.scrollInertia, m = d.scrollInertia < 1 ? 17 : d.scrollInertia; switch (e) { case "on": if (u.dir = [t === g[16] || t === g[15] || 39 === t || 37 === t ? "x" : "y", t === g[13] || t === g[15] || 38 === t || 37 === t ? -1 : 1], J(r), ae(t) && "stepped" === u.type) return; p(o); break; case "off": clearTimeout(u.step), ee(u, "step"), J(r), (o || c.tweenRunning && u.dir) && p(!0) }function p(e) { d.snapAmount && (u.scrollAmount = d.snapAmount instanceof Array ? "x" === u.dir[0] ? d.snapAmount[1] : d.snapAmount[0] : d.snapAmount); var t = "stepped" !== u.type, o = s || (e ? t ? h / 1.5 : m : 1e3 / 60), a = e ? t ? 7.5 : 40 : 2.5, n = [Math.abs(f[0].offsetTop), Math.abs(f[0].offsetLeft)], i = [10 < c.scrollRatio.y ? 10 : c.scrollRatio.y, 10 < c.scrollRatio.x ? 10 : c.scrollRatio.x], i = "x" === u.dir[0] ? n[1] + u.dir[1] * (i[1] * a) : n[0] + u.dir[1] * (i[0] * a), a = "x" === u.dir[0] ? n[1] + u.dir[1] * parseInt(u.scrollAmount) : n[0] + u.dir[1] * parseInt(u.scrollAmount), a = "auto" !== u.scrollAmount ? a : i, i = l || (e ? t ? "mcsLinearOut" : "mcsEaseInOut" : "mcsLinear"), t = !!e; e && o < 17 && (a = "x" === u.dir[0] ? n[1] : n[0]), K(r, a.toString(), { dir: u.dir[0], scrollEasing: i, dur: o, onComplete: t }), e ? u.dir = !1 : (clearTimeout(u.step), u.step = setTimeout(function () { p() }, o)) } }, V = function (e) { var t = R(this).data(W).opt, o = []; return "function" == typeof e && (e = e()), e instanceof Array ? o = 1 < e.length ? [e[0], e[1]] : "x" === t.axis ? [null, e[0]] : [e[0], null] : (o[0] = e.y || (e.x || "x" === t.axis ? null : e), o[1] = e.x || (e.y || "y" === t.axis ? null : e)), "function" == typeof o[0] && (o[0] = o[0]()), "function" == typeof o[1] && (o[1] = o[1]()), o }, Q = function (e, t) { if (null != e && void 0 !== e) { var o = R(this), a = o.data(W), n = a.opt, i = R("#mCSB_" + a.idx + "_container"), r = i.parent(), a = typeof e, l = "x" === (t = t || ("x" === n.axis ? "x" : "y")) ? i.outerWidth(!1) - r.width() : i.outerHeight(!1) - r.height(), s = "x" === t ? i[0].offsetLeft : i[0].offsetTop, c = "x" === t ? "left" : "top"; switch (a) { case "function": return e(); case "object": return (u = e.jquery ? e : R(e)).length ? "x" === t ? ne(u)[1] : ne(u)[0] : void 0; case "string": case "number": if (ae(e)) return Math.abs(e); if (-1 !== e.indexOf("%")) return Math.abs(l * parseInt(e) / 100); if (-1 !== e.indexOf("-=")) return Math.abs(s - parseInt(e.split("-=")[1])); if (-1 !== e.indexOf("+=")) { var d = s + parseInt(e.split("+=")[1]); return 0 <= d ? 0 : Math.abs(d) } if (-1 !== e.indexOf("px") && ae(e.split("px")[0])) return Math.abs(e.split("px")[0]); if ("top" === e || "left" === e) return 0; if ("bottom" === e) return Math.abs(r.height() - i.outerHeight(!1)); if ("right" === e) return Math.abs(r.width() - i.outerWidth(!1)); if ("first" !== e && "last" !== e) return R(e).length ? "x" === t ? ne(R(e))[1] : ne(R(e))[0] : (i.css(c, e), void f.update.call(null, o[0])); var u = i.find(":" + e); return "x" === t ? ne(u)[1] : ne(u)[0] } } }, G = function (e) { var t = R(this), o = t.data(W), a = o.opt, n = R("#mCSB_" + o.idx + "_container"); if (e) return clearTimeout(n[0].autoUpdate), void ee(n[0], "autoUpdate"); function i(e) { var t, o, a; R(e).hasClass(g[2]) ? l() : ((t = new Image).onload = (o = t, a = function () { this.onload = null, R(e).addClass(g[2]), l(2) }, function () { return a.apply(o, arguments) }), t.src = e.src) } function r() { !0 === a.advanced.updateOnSelectorChange && (a.advanced.updateOnSelectorChange = "*"); var e = 0, t = n.find(a.advanced.updateOnSelectorChange); return a.advanced.updateOnSelectorChange && 0 < t.length && t.each(function () { e += this.offsetHeight + this.offsetWidth }), e } function l(e) { clearTimeout(n[0].autoUpdate), f.update.call(null, t[0], e) } !function e() { clearTimeout(n[0].autoUpdate); if (0 === t.parents("html").length) return void (t = null); n[0].autoUpdate = setTimeout(function () { return a.advanced.updateOnSelectorChange && (o.poll.change.n = r(), o.poll.change.n !== o.poll.change.o) ? (o.poll.change.o = o.poll.change.n, void l(3)) : a.advanced.updateOnContentResize && (o.poll.size.n = t[0].scrollHeight + t[0].scrollWidth + n[0].offsetHeight + t[0].offsetHeight + t[0].offsetWidth, o.poll.size.n !== o.poll.size.o) ? (o.poll.size.o = o.poll.size.n, void l(1)) : !a.advanced.updateOnImageLoad || "auto" === a.advanced.updateOnImageLoad && "y" === a.axis || (
134o.poll.img.n = n.find("img").length, o.poll.img.n === o.poll.img.o) ? void ((a.advanced.updateOnSelectorChange || a.advanced.updateOnContentResize || a.advanced.updateOnImageLoad) && e()) : (o.poll.img.o = o.poll.img.n, void n.find("img").each(function () { i(this) })) }, a.advanced.autoUpdateTimeout) }() }, J = function (e) { e = e.data(W); R("#mCSB_" + e.idx + "_container,#mCSB_" + e.idx + "_container_wrapper,#mCSB_" + e.idx + "_dragger_vertical,#mCSB_" + e.idx + "_dragger_horizontal").each(function () { t.call(this) }) }, K = function (n, e, i) { var t, o = n.data(W), a = o.opt, r = { trigger: "internal", dir: "y", scrollEasing: "mcsEaseOut", drag: !1, dur: a.scrollInertia, overwrite: "all", callbacks: !0, onStart: !0, onUpdate: !0, onComplete: !0 }, l = [(i = R.extend(r, i)).dur, i.drag ? 0 : i.dur], s = R("#mCSB_" + o.idx), c = R("#mCSB_" + o.idx + "_container"), d = c.parent(), u = a.callbacks.onTotalScrollOffset ? V.call(n, a.callbacks.onTotalScrollOffset) : [0, 0], f = a.callbacks.onTotalScrollBackOffset ? V.call(n, a.callbacks.onTotalScrollBackOffset) : [0, 0]; if (o.trigger = i.trigger, 0 === d.scrollTop() && 0 === d.scrollLeft() || (R(".mCSB_" + o.idx + "_scrollbar").css("visibility", "visible"), d.scrollTop(0).scrollLeft(0)), "_resetY" !== e || o.contentReset.y || (b("onOverflowYNone") && a.callbacks.onOverflowYNone.call(n[0]), o.contentReset.y = 1), "_resetX" !== e || o.contentReset.x || (b("onOverflowXNone") && a.callbacks.onOverflowXNone.call(n[0]), o.contentReset.x = 1), "_resetY" !== e && "_resetX" !== e) { switch (!o.contentReset.y && n[0].mcs || !o.overflowed[0] || (b("onOverflowY") && a.callbacks.onOverflowY.call(n[0]), o.contentReset.x = null), !o.contentReset.x && n[0].mcs || !o.overflowed[1] || (b("onOverflowX") && a.callbacks.onOverflowX.call(n[0]), o.contentReset.x = null), a.snapAmount && (t = a.snapAmount instanceof Array ? "x" === i.dir ? a.snapAmount[1] : a.snapAmount[0] : a.snapAmount, r = e, d = t, t = a.snapOffset, e = Math.round(r / d) * d - t), i.dir) { case "x": var h = R("#mCSB_" + o.idx + "_dragger_horizontal"), m = "left", p = c[0].offsetLeft, g = [s.width() - c.outerWidth(!1), h.parent().width() - h.width()], v = [e, 0 === e ? 0 : e / o.scrollRatio.x], x = u[1], _ = f[1], w = 0 < x ? x / o.scrollRatio.x : 0, S = 0 < _ ? _ / o.scrollRatio.x : 0; break; case "y": h = R("#mCSB_" + o.idx + "_dragger_vertical"), m = "top", p = c[0].offsetTop, g = [s.height() - c.outerHeight(!1), h.parent().height() - h.height()], v = [e, 0 === e ? 0 : e / o.scrollRatio.y], x = u[0], _ = f[0], w = 0 < x ? x / o.scrollRatio.y : 0, S = 0 < _ ? _ / o.scrollRatio.y : 0 }v[1] < 0 || 0 === v[0] && 0 === v[1] ? v = [0, 0] : v[1] >= g[1] ? v = [g[0], g[1]] : v[0] = -v[0], n[0].mcs || (C(), b("onInit") && a.callbacks.onInit.call(n[0])), clearTimeout(c[0].onCompleteTimeout), Z(h[0], m, Math.round(v[1]), l[1], i.scrollEasing), !o.tweenRunning && (0 === p && 0 <= v[0] || p === g[0] && v[0] <= g[0]) || Z(c[0], m, Math.round(v[0]), l[0], i.scrollEasing, i.overwrite, { onStart: function () { i.callbacks && i.onStart && !o.tweenRunning && (b("onScrollStart") && (C(), a.callbacks.onScrollStart.call(n[0])), o.tweenRunning = !0, y(h), o.cbOffsets = [a.callbacks.alwaysTriggerOffsets || p >= g[0] + x, a.callbacks.alwaysTriggerOffsets || p <= -_]) }, onUpdate: function () { i.callbacks && i.onUpdate && b("whileScrolling") && (C(), a.callbacks.whileScrolling.call(n[0])) }, onComplete: function () { var e; i.callbacks && i.onComplete && ("yx" === a.axis && clearTimeout(c[0].onCompleteTimeout), e = c[0].idleTimer || 0, c[0].onCompleteTimeout = setTimeout(function () { b("onScroll") && (C(), a.callbacks.onScroll.call(n[0])), b("onTotalScroll") && v[1] >= g[1] - w && o.cbOffsets[0] && (C(), a.callbacks.onTotalScroll.call(n[0])), b("onTotalScrollBack") && v[1] <= S && o.cbOffsets[1] && (C(), a.callbacks.onTotalScrollBack.call(n[0])), o.tweenRunning = !1, c[0].idleTimer = 0, y(h, "hide") }, e)) } }) } function b(e) { return o && a.callbacks[e] && "function" == typeof a.callbacks[e] } function C() { var e = [c[0].offsetTop, c[0].offsetLeft], t = [h[0].offsetTop, h[0].offsetLeft], o = [c.outerHeight(!1), c.outerWidth(!1)], a = [s.height(), s.width()]; n[0].mcs = { content: c, top: e[0], left: e[1], draggerTop: t[0], draggerLeft: t[1], topPct: Math.round(100 * Math.abs(e[0]) / (Math.abs(o[0]) - a[0])), leftPct: Math.round(100 * Math.abs(e[1]) / (Math.abs(o[1]) - a[1])), direction: i.dir } } }, Z = function (e, t, o, a, n, i, r) { e._mTween || (e._mTween = { top: {}, left: {} }); var l, s, c = (r = r || {}).onStart || function () { }, d = r.onUpdate || function () { }, u = r.onComplete || function () { }, f = $(), h = 0, m = e.offsetTop, p = e.style, g = e._mTween[t]; "left" === t && (m = e.offsetLeft); var v = o - m; function x() { g.stop || (h || c.call(), h = $() - f, _(), h >= g.time && (g.time = h > g.time ? h + l - (h - g.time) : h + l - 1, g.time < h + 1 && (g.time = h + 1)), g.time < a ? g.id = s(x) : u.call()) } function _() { 0 < a ? (g.currVal = function (e, t, o, a, n) { switch (n) { case "linear": case "mcsLinear": return o * e / a + t; case "mcsLinearOut": return e /= a, e--, o * Math.sqrt(1 - e * e) + t; case "easeInOutSmooth": return (e /= a / 2) < 1 ? o / 2 * e * e + t : -o / 2 * (--e * (e - 2) - 1) + t; case "easeInOutStrong": return (e /= a / 2) < 1 ? o / 2 * Math.pow(2, 10 * (e - 1)) + t : (e--, o / 2 * (2 - Math.pow(2, -10 * e)) + t); case "easeInOut": case "mcsEaseInOut": return (e /= a / 2) < 1 ? o / 2 * e * e * e + t : o / 2 * ((e -= 2) * e * e + 2) + t; case "easeOutSmooth": return e /= a, -o * (--e * e * e * e - 1) + t; case "easeOutStrong": return o * (1 - Math.pow(2, -10 * e / a)) + t; case "easeOut": case "mcsEaseOut": default: var i = (e /= a) * e, r = i * e; return t + o * (.499999999999997 * r * i + -2.5 * i * i + 5.5 * r + -6.5 * i + 4 * e) } }(g.time, m, v, a, n), p[t] = Math.round(g.currVal) + "px") : p[t] = o + "px", d.call() } g.stop = 0, "none" === i || null != g.id && (window.requestAnimationFrame ? window.cancelAnimationFrame(g.i
134d) : clearTimeout(g.id), g.id = null), l = 1e3 / 60, g.time = h + l, s = window.requestAnimationFrame || function (e) { return _(), setTimeout(e, .01) }, g.id = s(x) }, $ = function () { return window.performance && window.performance.now ? window.performance.now() : window.performance && window.performance.webkitNow ? window.performance.webkitNow() : Date.now ? Date.now() : (new Date).getTime() }, t = function () { var e = this; e._mTween || (e._mTween = { top: {}, left: {} }); for (var t = ["top", "left"], o = 0; o < t.length; o++) { var a = t[o]; e._mTween[a].id && (window.requestAnimationFrame ? window.cancelAnimationFrame(e._mTween[a].id) : clearTimeout(e._mTween[a].id), e._mTween[a].id = null, e._mTween[a].stop = 1) } }, ee = function (t, o) { try { delete t[o] } catch (e) { t[o] = null } }, te = function (e) { return !(e.which && 1 !== e.which) }, oe = function (e) { e = e.originalEvent.pointerType; return !(e && "touch" !== e && 2 !== e) }, ae = function (e) { return !isNaN(parseFloat(e)) && isFinite(e) }, ne = function (e) { var t = e.parents(".mCSB_container"); return [e.offset().top - t.offset().top, e.offset().left - t.offset().left] }, ie = function () { var e = function () { var e = ["webkit", "moz", "ms", "o"]; if ("hidden" in document) return "hidden"; for (var t = 0; t < e.length; t++)if (e[t] + "Hidden" in document) return e[t] + "Hidden"; return null }(); return !!e && document[e] }, R.fn[s] = function (e) { return f[e] ? f[e].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof e && e ? void R.error("Method " + e + " does not exist") : f.init.apply(this, arguments) }, R[s] = function (e) { return f[e] ? f[e].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof e && e ? void R.error("Method " + e + " does not exist") : f.init.apply(this, arguments) }, R[s].defaults = n, window[s] = !0, R(window).bind("load", function () { R(a)[s](), R.extend(R.expr[":"], { mcsInView: R.expr[":"].mcsInView || function (e) { var t = R(e), o = t.parents(".mCSB_container"); if (o.length) return e = o.parent(), 0 <= (o = [o[0].offsetTop, o[0].offsetLeft])[0] + ne(t)[0] && o[0] + ne(t)[0] < e.height() - t.outerHeight(!1) && 0 <= o[1] + ne(t)[1] && o[1] + ne(t)[1] < e.width() - t.outerWidth(!1) }, mcsInSight: R.expr[":"].mcsInSight || function (e, t, o) { var a = R(e), n = a.parents(".mCSB_container"), e = "exact" === o[3] ? [[1, 0], [1, 0]] : [[.9, .1], [.6, .4]]; if (n.length) return o = [a.outerHeight(!1), a.outerWidth(!1)], a = [n[0].offsetTop + ne(a)[0], n[0].offsetLeft + ne(a)[1]], n = [n.parent()[0].offsetHeight, n.parent()[0].offsetWidth], a[0] - n[0] * (e = [o[0] < n[0] ? e[0] : e[1], o[1] < n[1] ? e[0] : e[1]])[0][0] < 0 && 0 <= a[0] + o[0] - n[0] * e[0][1] && a[1] - n[1] * e[1][0] < 0 && 0 <= a[1] + o[1] - n[1] * e[1][1] }, mcsOverflow: R.expr[":"].mcsOverflow || function (e) { e = R(e).data(W); if (e) return e.overflowed[0] || e.overflowed[1] } }) }) });
135/**===========================================================================================================================*/
136/*!
137 * headroom.js v0.12.0 - Give your page some headroom. Hide your header until you need it
138 * Copyright (c) 2020 Nick Williams - http://wicky.nillia.ms/headroom.js
139 * License: MIT
140 */
141
142!function (t, n) { "object" == typeof exports && "undefined" != typeof module ? module.exports = n() : "function" == typeof define && define.amd ? define(n) : (t = t || self).Headroom = n() }(this, function () { "use strict"; function t() { return "undefined" != typeof window } function d(t) { return function (t) { return t && t.document && function (t) { return 9 === t.nodeType }(t.document) }(t) ? function (t) { var n = t.document, o = n.body, s = n.documentElement; return { scrollHeight: function () { return Math.max(o.scrollHeight, s.scrollHeight, o.offsetHeight, s.offsetHeight, o.clientHeight, s.clientHeight) }, height: function () { return t.innerHeight || s.clientHeight || o.clientHeight }, scrollY: function () { return void 0 !== t.pageYOffset ? t.pageYOffset : (s || o.parentNode || o).scrollTop } } }(t) : function (t) { return { scrollHeight: function () { return Math.max(t.scrollHeight, t.offsetHeight, t.clientHeight) }, height: function () { return Math.max(t.offsetHeight, t.clientHeight) }, scrollY: function () { return t.scrollTop } } }(t) } function n(t, s, e) { var n, o = function () { var n = !1;
vendor: 3,761 bytes, line 142
142 try { var t = { get passive() { n = !0 } }; window.addEventListener("test", t, t), window.removeEventListener("test", t, t) } catch (t) { n = !1 } return n }(), i = !1, r = d(t), l = r.scrollY(), a = {}; function c() { var t = Math.round(r.scrollY()), n = r.height(), o = r.scrollHeight(); a.scrollY = t, a.lastScrollY = l, a.direction = l < t ? "down" : "up", a.distance = Math.abs(t - l), a.isOutOfBounds = t < 0 || o < t + n, a.top = t <= s.offset[a.direction], a.bottom = o <= t + n, a.toleranceExceeded = a.distance > s.tolerance[a.direction], e(a), l = t, i = !1 } function h() { i || (i = !0, n = requestAnimationFrame(c)) } var u = !!o && { passive: !0, capture: !1 }; return t.addEventListener("scroll", h, u), c(), { destroy: function () { cancelAnimationFrame(n), t.removeEventListener("scroll", h, u) } } } function o(t) { return t === Object(t) ? t : { down: t, up: t } } function s(t, n) { n = n || {}, Object.assign(this, s.options, n), this.classes = Object.assign({}, s.options.classes, n.classes), this.elem = t, this.tolerance = o(this.tolerance), this.offset = o(this.offset), this.initialised = !1, this.frozen = !1 } return s.prototype = { constructor: s, init: function () { return s.cutsTheMustard && !this.initialised && (this.addClass("initial"), this.initialised = !0, setTimeout(function (t) { t.scrollTracker = n(t.scroller, { offset: t.offset, tolerance: t.tolerance }, t.update.bind(t)) }, 100, this)), this }, destroy: function () { this.initialised = !1, Object.keys(this.classes).forEach(this.removeClass, this), this.scrollTracker.destroy() }, unpin: function () { !this.hasClass("pinned") && this.hasClass("unpinned") || (this.addClass("unpinned"), this.removeClass("pinned"), this.onUnpin && this.onUnpin.call(this)) }, pin: function () { this.hasClass("unpinned") && (this.addClass("pinned"), this.removeClass("unpinned"), this.onPin && this.onPin.call(this)) }, freeze: function () { this.frozen = !0, this.addClass("frozen") }, unfreeze: function () { this.frozen = !1, this.removeClass("frozen") }, top: function () { this.hasClass("top") || (this.addClass("top"), this.removeClass("notTop"), this.onTop && this.onTop.call(this)) }, notTop: function () { this.hasClass("notTop") || (this.addClass("notTop"), this.removeClass("top"), this.onNotTop && this.onNotTop.call(this)) }, bottom: function () { this.hasClass("bottom") || (this.addClass("bottom"), this.removeClass("notBottom"), this.onBottom && this.onBottom.call(this)) }, notBottom: function () { this.hasClass("notBottom") || (this.addClass("notBottom"), this.removeClass("bottom"), this.onNotBottom && this.onNotBottom.call(this)) }, shouldUnpin: function (t) { return "down" === t.direction && !t.top && t.toleranceExceeded }, shouldPin: function (t) { return "up" === t.direction && t.toleranceExceeded || t.top }, addClass: function (t) { this.elem.classList.add.apply(this.elem.classList, this.classes[t].split(" ")) }, removeClass: function (t) { this.elem.classList.remove.apply(this.elem.classList, this.classes[t].split(" ")) }, hasClass: function (t) { return this.classes[t].split(" ").every(function (t) { return this.classList.contains(t) }, this.elem) }, update: function (t) { t.isOutOfBounds || !0 !== this.frozen && (t.top ? this.top() : this.notTop(), t.bottom ? this.bottom() : this.notBottom(), this.shouldUnpin(t) ? this.unpin() : this.shouldPin(t) && this.pin()) } }, s.options = { tolerance: { up: 0, down: 0 }, offset: 0, scroller: t() ? window : null, classes: { frozen: "headroom--frozen", pinned: "headroom--pinned", unpinned: "headroom--unpinned", top: "headroom--top", notTop: "headroom--not-top", bottom: "headroom--bottom", notBottom: "headroom--not-bottom", initial: "headroom" } }, s.cutsTheMustard = !!(t() && function () { }
142.bind && "classList" in document.documentElement && Object.assign && Object.keys && requestAnimationFrame), s });
143/**===========================================================================================================================*/
144
145
146

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.