metremark/src/js/basic_admin.js

6154 lines
292 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

function getQueryString(name, url) {
var name = $.isArray(name) ? name : [name],
url = url || location.href,
result = [];
return $.each(name, function (index, val) {
var r = url.match(new RegExp("(^|&)" + val + "=([^&]*)(&|$)", "i"));
"" == (r = null != r ? r[2] : "") && (r = url.match(eval("/" + val + "=(\\w+)/")), r = null != r ? r[1] : "");
var value = "" != r ? unescape(decodeURIComponent(r)) : "";
1 == name.length ? result = value : result[val] = value
}), result
}
function replaceParamVal(paramName, replaceWith) {
var url = location.href,
paramName = $.isArray(paramName) ? paramName : [paramName],
replaceWith = $.isArray(replaceWith) ? replaceWith : [replaceWith];
$.each(paramName, function (index, val) {
var paramNames1 = "&" + val + "=",
paramNames2 = "?" + val + "=";
if (re = url.match(eval("/" + val + "=(\\w+)/")), !re && (url.indexOf(paramNames1) > 0 || url.indexOf(paramNames2) > 0) && (re = [val + "="]), replaceWith[index] = String(replaceWith[index]), replaceWith[index])
if (re) url.indexOf(paramNames1) > 0 ? url = url.replace("&" + re[0], paramNames1 + replaceWith[index]) : url.indexOf(paramNames2) > 0 && (url = url.replace("?" + re[0], paramNames2 + replaceWith[index]));
else if (url.indexOf("?") > 0) {
var laststr = url.substr(-1),
urls = url.split("?");
urls[urls.length - 1].indexOf("#") > 0 && "/" != laststr && (url += "/?", laststr = url.substr(-1)), url = url + ("?" == laststr || "&" == laststr ? val + "=" : paramNames1) + replaceWith[index]
} else {
url + "/" == M.weburl && (url += "/");
var laststr = url.substr(url.lastIndexOf("/") + 1);
url = (laststr.length ? laststr.indexOf(".") > 0 : 1) ? url + paramNames2 + replaceWith[index] : url + "/" + paramNames2 + replaceWith[index]
} else re && (url = url.replace("&" + re[0], "").replace(re[0], ""))
}), history.pushState("", "", url)
}
function metAlert(e, t, n, i) {
if (t = void 0 !== t ? t : 2e3, n = n ? "bgshow" : "", $(".metalert-wrapper,.metalert-text").remove(), " " != e) {
e = e || METLANG.jsok || "操作成功", e = "<div>" + e + "</div>", i && (e += '<button type="button" class="close text-white" data-dismiss="alert"><span aria-hidden="true">×</span></button>');
var r = '<div class="metalert-text h6 mb-0 ' + (i ? "pl-4 pr-5" : "px-4") + ' py-3 bg-primary text-white">' + e + "</div>";
n && (r = '<div class="metalert-wrapper w-100 alert ' + n + '">' + r + "</div>"), $("body").append(r);
var o = $(".metalert-text"),
a = n ? $(".metalert-wrapper") : o,
s = "metalert-" + (new Date).getTime();
o.html(e), a.show().addClass(s), o.outerHeight() % 2 && o.outerHeight(o.outerHeight() + 1)
}
t && setTimeout(function () {
(void 0 !== s ? $("." + s) : $(".metalert-wrapper,.metalert-text")).fadeOut()
}, t)
}
// 信息提示
function metAjaxFun(e) {
e = $.extend({
result: "",
false_fun: "",
true_fun: "",
status_key: "status",
msg_key: "msg",
true_val: function () {
return 1 == parseInt(e.result[e.status_key])
},
true_reload: !1
}, e), e.true_val() ? (void 0 !== e.result[e.msg_key] && "" != e.result[e.msg_key] && metui.use("alertify", function () {
alertify.success(e.result[e.msg_key])
}), "function" == typeof e.true_fun && e.true_fun(e.result), $.isArray(e.true_fun) && $.each(e.true_fun, function (t, n) {
"function" == typeof n && n(e.result)
}), e.true_reload && setTimeout(function () {
location.reload()
}, 1e3)) : (void 0 !== e.result[e.msg_key] && "" != e.result[e.msg_key] && metui.use("alertify", function () {
alertify.error(e.result[e.msg_key])
}), "function" == typeof e.false_fun && e.false_fun(e.result))
}
// 设置cookie
function setCookie(e, t, n, i) {
var r = new Date,
o = i || 30,
a = n || "/";
r.setTime(r.getTime() + 24 * o * 60 * 60 * 1e3), document.cookie = e + "=" + t + ";path=" + a + ";expires=" + r.toGMTString()
}
// 获取cookie
function getCookie(e) {
for (var t = document.cookie.split(";"), n = 0; n < t.length; n++) {
t[n] = $.trim(t[n]);
var i = t[n].indexOf("=");
if (t[n].substring(0, i) == e) {
var r = t[n].substring(i + 1);
return decodeURIComponent(r)
}
}
}
function metGoTop(e) {
if (e) {
$(".met-scroll-top").addClass("mr-2");
var t = e
} else var e = "html,body",
t = window;
$(".met-scroll-top").click(function () {
$(e).animate({
scrollTop: 0
}, 300)
});
var n = $(t).height();
$(t).scroll(function () {
$(this).scrollTop() > n ? $(".met-scroll-top").removeAttr("hidden").addClass("animation-slide-bottom50") : $(".met-scroll-top").attr({
hidden: ""
}).removeClass("animation-slide-bottom50")
})
}
function dropdownMenuPosition(e) {
var t = $(e).next(".dropdown-menu"),
n = $(e).parent();
if (!$(e).hasClass("menu-position-destroy")) {
var i = t.outerHeight(),
r = $(e).parents(".met-scrollbar:not(.dropdown-menu):eq(0)").height(),
o = $(e).parents(".dropdown-menu").length ? 0 : 1,
a = $(e).parents(".dropup").length ? 1 : 0,
s = n.offset().top,
l = o ? "" : a ? s + n.outerHeight() : r - s,
c = i - l - 8;
(o ? i + 10 > r : i > l) && ((o || i > r) && (t.addClass("oya met-scrollbar scrollbar-grey").css({
"max-height": r - 9
}), o || (c = r - l - 10)), o || t.css({
transform: "translateY(" + (a ? "" : "-") + c + "px)"
}), t.find(".dropdown").removeClass("dropright dropleft").find(".dropdown-toggle").addClass("menu-position-destroy"), o && (n.removeClass("dropup").addClass("dropdown"), setTimeout(function () {
t.removeAttr("x-placement")
}, 0)))
}
setTimeout(function () {
var e = t.outerWidth();
e > 200 && t.width(200).addClass("text-wrap").find(">*").addClass("text-wrap"), t.offset().left + e > $(window).width() && t.css({
right: "auto",
left: -e
})
}, 0)
}
// 判断登陆状态
function checkLogin() {
var e = !0;
if ($(".met-check-login").length) e = !1;
else if (!getCookie("met_auth")) {
if ($("html.met-admin,html.met-pageset").length) metui.use("alertify", function () {
alertify.confirm('<span class="text-danger met-check-login">' + (METLANG.jsx32 || "登录超时,请重新登录!") + "</span>", function (e) {
location.href = M.url.admin
})
});
else {
var t = location.hash.substr(2);
t = t.indexOf("/") > 0 ? t.split("/") : [t], t[0] && "login" != t[0] && (location.href = M.url.admin)
}
e = !1
}
return e
}
// 返回URL上?/后面的内容
function hashHandle(e) {
if (e.indexOf("/") > 0) {
var t = e.split("/");
"app" == t[0] && (delete t[0], t = $.grep(t, function (e) {
return $.trim(e).length > 0
}), e = t.join("/")), "index" != t[1] && "" != t[1] || (e = t[0])
}
return e
}
// 猜测是加载模块内的JS 或者CSS
function adminModuleInfo(e, t, n, i, r, o, a) {
var s = "#" + t + ROUTERS[i[0]].module + "/admin/templates/",
l = i[1] ? ROUTERS[i[0]].sub[i[1]].css : ROUTERS[i[0]].css,
c = i[1] ? ROUTERS[i[0]].sub[i[1]].js : ROUTERS[i[0]].js;
console.log(t);
console.log(s);
console.log(l);
console.log(c);
console.log(ROUTERS);
if ("app/" == t) {
var u = e.find('>input[name="app_file_status"]').val().split("|");
l = parseInt(u[0]) ? i[0] : "", c = parseInt(u[1]) ? i[0] : ""
}
c && (c = "#" == c.substr(0, 1) ? c : s + "js/" + c),
l && (l = "#" == l.substr(0, 1) ? l : s + "css/" + l),
console.log(s);
console.log(l);
console.log(c);
window.admin_module = {},
admin_module.obj = e,
admin_module.hash = n,
admin_module.own = M.url.system + ROUTERS[i[0]].module + "/admin/",
admin_module.own_tem = admin_module.own + "templates/",
admin_module.own_name = M.url.admin + "?n=" + ROUTERS[i[0]].module + "&",
admin_module.file_path = r,
admin_module.data = o,
admin_module.module = ROUTERS[i[0]].module,
admin_module.reload = function () {
if (this.obj.hasClass("tab-pane")){
this.obj.parents(".tab-content").eq(0).parent().find(".met-headtab[data-ajaxchange]:eq(0) a.active").click();
}else if (this.obj.find(".met-headtab:not([data-ajaxchange])").length && "manage" != this.hash) {
var e = this.obj.find(".met-headtab:not([data-ajaxchange]):eq(0) a.active");
M.is_admin ? location.href = location.href : e.click()
} else {
M.is_admin ? !this.obj.parents(".modal").length && (location.href = location.href)
: this.obj.parents(".pageset-nav-modal").length && (this.obj.hasClass("content-show-item") ?
$('.pageset-head-nav [data-url="manage"]').attr({
"data-module": this.data.module,
"data-class1": this.data.class1,
"data-class2": this.data.class2,
"data-class3": this.data.class3}).trigger("clicks")
: $(".btn-pageset-common-page").attr({"data-url": this.hash}).trigger("clicks"));
}
this.obj.parents(".met-scrollbar").eq(0).scrollTop(0)
},
"undefined" == typeof admin_module_arr && (window.admin_module_arr = {}),
admin_module_arr[n] = $.extend(!0, {}, admin_module),
"function" == typeof a && a(),
void 0 === o.nocommon && e.metCommon(),
c && metui.use(c),
l && metui.link(l)
console.log(e);
console.log(metui);
}
// 加载内容
function metLoadTemp(e, t, n, i, r) {
checkLogin() && $.metLoadTemp(e, t, function (e, t, o, a, s) {
"function" == typeof i && i(e.html), n = $(n.selector), adminModuleInfo(n, t, n.attr("data-path") || o.join("/"), o, a, s, function () {
"function" == typeof r && r(n, s)
})
})
}
function loadedTempReload(e, t, n) {
admin_module = admin_module_arr[e], t && (admin_module.obj = t), "function" == typeof n && n(), "function" == typeof TEMPLOADFUNS[e] && TEMPLOADFUNS[e]()
}
// 某种库 猜测为JQ 库
!function (e, t) {
"object" == typeof module && "object" == typeof module.exports ? module.exports = e.document ? t(e, !0) : function (e) {
if (!e.document) throw new Error("jQuery requires a window with a document");
return t(e)
} : t(e)
}("undefined" != typeof window ? window : this, function (e, t) {
function n(e) {
var t = !!e && "length" in e && e.length,
n = re.type(e);
return "function" !== n && !re.isWindow(e) && ("array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e)
}
function i(e, t, n) {
if (re.isFunction(t)) return re.grep(e, function (e, i) {
return !!t.call(e, i, e) !== n
});
if (t.nodeType) return re.grep(e, function (e) {
return e === t !== n
});
if ("string" == typeof t) {
if (pe.test(t)) return re.filter(t, e, n);
t = re.filter(t, e)
}
return re.grep(e, function (e) {
return Z.call(t, e) > -1 !== n
})
}
function r(e, t) {
for (;
(e = e[t]) && 1 !== e.nodeType;);
return e
}
function o(e) {
var t = {};
return re.each(e.match(_e) || [], function (e, n) {
t[n] = !0
}), t
}
function a() {
X.removeEventListener("DOMContentLoaded", a), e.removeEventListener("load", a), re.ready()
}
function s() {
this.expando = re.expando + s.uid++
}
function l(e, t, n) {
var i;
if (void 0 === n && 1 === e.nodeType)
if (i = "data-" + t.replace(Se, "-$&").toLowerCase(), "string" == typeof (n = e.getAttribute(i))) {
try {
n = "true" === n || "false" !== n && ("null" === n ? null : +n + "" === n ? +n : Ce.test(n) ? re.parseJSON(n) : n)
} catch (e) {}
Ee.set(e, t, n)
} else n = void 0;
return n
}
function c(e, t, n, i) {
var r, o = 1,
a = 20,
s = i ? function () {
return i.cur()
} : function () {
return re.css(e, t, "")
},
l = s(),
c = n && n[3] || (re.cssNumber[t] ? "" : "px"),
u = (re.cssNumber[t] || "px" !== c && +l) && Ae.exec(re.css(e, t));
if (u && u[3] !== c) {
c = c || u[3], n = n || [], u = +l || 1;
do {
o = o || ".5", u /= o, re.style(e, t, u + c)
} while (o !== (o = s() / l) && 1 !== o && --a)
}
return n && (u = +u || +l || 0, r = n[1] ? u + (n[1] + 1) * n[2] : +n[2], i && (i.unit = c, i.start = u, i.end = r)), r
}
function u(e, t) {
var n = void 0 !== e.getElementsByTagName ? e.getElementsByTagName(t || "*") : void 0 !== e.querySelectorAll ? e.querySelectorAll(t || "*") : [];
return void 0 === t || t && re.nodeName(e, t) ? re.merge([e], n) : n
}
function d(e, t) {
for (var n = 0, i = e.length; i > n; n++) Te.set(e[n], "globalEval", !t || Te.get(t[n], "globalEval"))
}
function f(e, t, n, i, r) {
for (var o, a, s, l, c, f, h = t.createDocumentFragment(), p = [], m = 0, g = e.length; g > m; m++)
if ((o = e[m]) || 0 === o)
if ("object" === re.type(o)) re.merge(p, o.nodeType ? [o] : o);
else if (Le.test(o)) {
for (a = a || h.appendChild(t.createElement("div")), s = ($e.exec(o) || ["", ""])[1].toLowerCase(), l = je[s] || je._default, a.innerHTML = l[1] + re.htmlPrefilter(o) + l[2], f = l[0]; f--;) a = a.lastChild;
re.merge(p, a.childNodes), a = h.firstChild, a.textContent = ""
} else p.push(t.createTextNode(o));
for (h.textContent = "", m = 0; o = p[m++];)
if (i && re.inArray(o, i) > -1) r && r.push(o);
else if (c = re.contains(o.ownerDocument, o), a = u(h.appendChild(o), "script"), c && d(a), n)
for (f = 0; o = a[f++];) Oe.test(o.type || "") && n.push(o);
return h
}
function h() {
return !0
}
function p() {
return !1
}
function m() {
try {
return X.activeElement
} catch (e) {}
}
function g(e, t, n, i, r, o) {
var a, s;
if ("object" == typeof t) {
"string" != typeof n && (i = i || n, n = void 0);
for (s in t) g(e, s, n, i, t[s], o);
return e
}
if (null == i && null == r ? (r = n, i = n = void 0) : null == r && ("string" == typeof n ? (r = i, i = void 0) : (r = i, i = n, n = void 0)), !1 === r) r = p;
else if (!r) return e;
return 1 === o && (a = r, r = function (e) {
return re().off(e), a.apply(this, arguments)
}, r.guid = a.guid || (a.guid = re.guid++)), e.each(function () {
re.event.add(this, t, r, i, n)
})
}
function v(e, t) {
return re.nodeName(e, "table") && re.nodeName(11 !== t.nodeType ? t : t.firstChild, "tr") ? e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e
}
function y(e) {
return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e
}
function _(e) {
var t = We.exec(e.type);
return t ? e.type = t[1] : e.removeAttribute("type"), e
}
function b(e, t) {
var n, i, r, o, a, s, l, c;
if (1 === t.nodeType) {
if (Te.hasData(e) && (o = Te.access(e), a = Te.set(t, o), c = o.events)) {
delete a.handle, a.events = {};
for (r in c)
for (n = 0, i = c[r].length; i > n; n++) re.event.add(t, r, c[r][n])
}
Ee.hasData(e) && (s = Ee.access(e), l = re.extend({}, s), Ee.set(t, l))
}
}
function w(e, t) {
var n = t.nodeName.toLowerCase();
"input" === n && Ie.test(e.type) ? t.checked = e.checked : "input" !== n && "textarea" !== n || (t.defaultValue = e.defaultValue)
}
function x(e, t, n, i) {
t = G.apply([], t);
var r, o, a, s, l, c, d = 0,
h = e.length,
p = h - 1,
m = t[0],
g = re.isFunction(m);
if (g || h > 1 && "string" == typeof m && !ie.checkClone && Fe.test(m)) return e.each(function (r) {
var o = e.eq(r);
g && (t[0] = m.call(this, r, o.html())), x(o, t, n, i)
});
if (h && (r = f(t, e[0].ownerDocument, !1, e, i), o = r.firstChild, 1 === r.childNodes.length && (r = o), o || i)) {
for (a = re.map(u(r, "script"), y), s = a.length; h > d; d++) l = r, d !== p && (l = re.clone(l, !0, !0), s && re.merge(a, u(l, "script"))), n.call(e[d], l, d);
if (s)
for (c = a[a.length - 1].ownerDocument, re.map(a, _), d = 0; s > d; d++) l = a[d], Oe.test(l.type || "") && !Te.access(l, "globalEval") && re.contains(c, l) && (l.src ? re._evalUrl && re._evalUrl(l.src) : re.globalEval(l.textContent.replace(Ue, "")))
}
return e
}
function T(e, t, n) {
for (var i, r = t ? re.filter(t, e) : e, o = 0; null != (i = r[o]); o++) n || 1 !== i.nodeType || re.cleanData(u(i)), i.parentNode && (n && re.contains(i.ownerDocument, i) && d(u(i, "script")), i.parentNode.removeChild(i));
return e
}
function E(e, t) {
var n = re(t.createElement(e)).appendTo(t.body),
i = re.css(n[0], "display");
return n.detach(), i
}
function C(e) {
var t = X,
n = ze[e];
return n || (n = E(e, t), "none" !== n && n || (Be = (Be || re("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement), t = Be[0].contentDocument, t.write(), t.close(), n = E(e, t), Be.detach()), ze[e] = n), n
}
function S(e, t, n) {
var i, r, o, a, s = e.style;
return n = n || Ve(e), a = n ? n.getPropertyValue(t) || n[t] : void 0, "" !== a && void 0 !== a || re.contains(e.ownerDocument, e) || (a = re.style(e, t)), n && !ie.pixelMarginRight() && Ke.test(a) && Qe.test(t) && (i = s.width, r = s.minWidth, o = s.maxWidth, s.minWidth = s.maxWidth = s.width = a, a = n.width, s.width = i, s.minWidth = r, s.maxWidth = o), void 0 !== a ? a + "" : a
}
function k(e, t) {
return {
get: function () {
return e() ? void delete this.get : (this.get = t).apply(this, arguments)
}
}
}
function A(e) {
if (e in tt) return e;
for (var t = e[0].toUpperCase() + e.slice(1), n = et.length; n--;)
if ((e = et[n] + t) in tt) return e
}
function D(e, t, n) {
var i = Ae.exec(t);
return i ? Math.max(0, i[2] - (n || 0)) + (i[3] || "px") : t
}
function N(e, t, n, i, r) {
for (var o = n === (i ? "border" : "content") ? 4 : "width" === t ? 1 : 0, a = 0; 4 > o; o += 2) "margin" === n && (a += re.css(e, n + De[o], !0, r)), i ? ("content" === n && (a -= re.css(e, "padding" + De[o], !0, r)), "margin" !== n && (a -= re.css(e, "border" + De[o] + "Width", !0, r))) : (a += re.css(e, "padding" + De[o], !0, r), "padding" !== n && (a += re.css(e, "border" + De[o] + "Width", !0, r)));
return a
}
function I(e, t, n) {
var i = !0,
r = "width" === t ? e.offsetWidth : e.offsetHeight,
o = Ve(e),
a = "border-box" === re.css(e, "boxSizing", !1, o);
if (0 >= r || null == r) {
if (r = S(e, t, o), (0 > r || null == r) && (r = e.style[t]), Ke.test(r)) return r;
i = a && (ie.boxSizingReliable() || r === e.style[t]), r = parseFloat(r) || 0
}
return r + N(e, t, n || (a ? "border" : "content"), i, o) + "px"
}
function $(e, t) {
for (var n, i, r, o = [], a = 0, s = e.length; s > a; a++) i = e[a], i.style && (o[a] = Te.get(i, "olddisplay"), n = i.style.display, t ? (o[a] || "none" !== n || (i.style.display = ""), "" === i.style.display && Ne(i) && (o[a] = Te.access(i, "olddisplay", C(i.nodeName)))) : (r = Ne(i), "none" === n && r || Te.set(i, "olddisplay", r ? n : re.css(i, "display"))));
for (a = 0; s > a; a++) i = e[a], i.style && (t && "none" !== i.style.display && "" !== i.style.display || (i.style.display = t ? o[a] || "" : "none"));
return e
}
function O(e, t, n, i, r) {
return new O.prototype.init(e, t, n, i, r)
}
function j() {
return e.setTimeout(function () {
nt = void 0
}), nt = re.now()
}
function L(e, t) {
var n, i = 0,
r = {
height: e
};
for (t = t ? 1 : 0; 4 > i; i += 2 - t) n = De[i], r["margin" + n] = r["padding" + n] = e;
return t && (r.opacity = r.width = e), r
}
function M(e, t, n) {
for (var i, r = (P.tweeners[t] || []).concat(P.tweeners["*"]), o = 0, a = r.length; a > o; o++)
if (i = r[o].call(n, t, e)) return i
}
function R(e, t, n) {
var i, r, o, a, s, l, c, u = this,
d = {},
f = e.style,
h = e.nodeType && Ne(e),
p = Te.get(e, "fxshow");
n.queue || (s = re._queueHooks(e, "fx"), null == s.unqueued && (s.unqueued = 0, l = s.empty.fire, s.empty.fire = function () {
s.unqueued || l()
}), s.unqueued++, u.always(function () {
u.always(function () {
s.unqueued--, re.queue(e, "fx").length || s.empty.fire()
})
})), 1 === e.nodeType && ("height" in t || "width" in t) && (n.overflow = [f.overflow, f.overflowX, f.overflowY], c = re.css(e, "display"), "inline" === ("none" === c ? Te.get(e, "olddisplay") || C(e.nodeName) : c) && "none" === re.css(e, "float") && (f.display = "inline-block")), n.overflow && (f.overflow = "hidden", u.always(function () {
f.overflow = n.overflow[0], f.overflowX = n.overflow[1], f.overflowY = n.overflow[2]
}));
for (i in t)
if (r = t[i], rt.exec(r)) {
if (delete t[i], o = o || "toggle" === r, r === (h ? "hide" : "show")) {
if ("show" !== r || !p || void 0 === p[i]) continue;
h = !0
}
d[i] = p && p[i] || re.style(e, i)
} else c = void 0;
if (re.isEmptyObject(d)) "inline" === ("none" === c ? C(e.nodeName) : c) && (f.display = c);
else {
p ? "hidden" in p && (h = p.hidden) : p = Te.access(e, "fxshow", {}), o && (p.hidden = !h), h ? re(e).show() : u.done(function () {
re(e).hide()
}), u.done(function () {
var t;
Te.remove(e, "fxshow");
for (t in d) re.style(e, t, d[t])
});
for (i in d) a = M(h ? p[i] : 0, i, u), i in p || (p[i] = a.start, h && (a.end = a.start, a.start = "width" === i || "height" === i ? 1 : 0))
}
}
function q(e, t) {
var n, i, r, o, a;
for (n in e)
if (i = re.camelCase(n), r = t[i], o = e[n], re.isArray(o) && (r = o[1], o = e[n] = o[0]), n !== i && (e[i] = o, delete e[n]), (a = re.cssHooks[i]) && "expand" in a) {
o = a.expand(o), delete e[i];
for (n in o) n in e || (e[n] = o[n], t[n] = r)
} else t[i] = r
}
function P(e, t, n) {
var i, r, o = 0,
a = P.prefilters.length,
s = re.Deferred().always(function () {
delete l.elem
}),
l = function () {
if (r) return !1;
for (var t = nt || j(), n = Math.max(0, c.startTime + c.duration - t), i = n / c.duration || 0, o = 1 - i, a = 0, l = c.tweens.length; l > a; a++) c.tweens[a].run(o);
return s.notifyWith(e, [c, o, n]), 1 > o && l ? n : (s.resolveWith(e, [c]), !1)
},
c = s.promise({
elem: e,
props: re.extend({}, t),
opts: re.extend(!0, {
specialEasing: {},
easing: re.easing._default
}, n),
originalProperties: t,
originalOptions: n,
startTime: nt || j(),
duration: n.duration,
tweens: [],
createTween: function (t, n) {
var i = re.Tween(e, c.opts, t, n, c.opts.specialEasing[t] || c.opts.easing);
return c.tweens.push(i), i
},
stop: function (t) {
var n = 0,
i = t ? c.tweens.length : 0;
if (r) return this;
for (r = !0; i > n; n++) c.tweens[n].run(1);
return t ? (s.notifyWith(e, [c, 1, 0]), s.resolveWith(e, [c, t])) : s.rejectWith(e, [c, t]), this
}
}),
u = c.props;
for (q(u, c.opts.specialEasing); a > o; o++)
if (i = P.prefilters[o].call(c, e, u, c.opts)) return re.isFunction(i.stop) && (re._queueHooks(c.elem, c.opts.queue).stop = re.proxy(i.stop, i)), i;
return re.map(u, M, c), re.isFunction(c.opts.start) && c.opts.start.call(e, c), re.fx.timer(re.extend(l, {
elem: e,
anim: c,
queue: c.opts.queue
})), c.progress(c.opts.progress).done(c.opts.done, c.opts.complete).fail(c.opts.fail).always(c.opts.always)
}
function H(e) {
return e.getAttribute && e.getAttribute("class") || ""
}
function F(e) {
return function (t, n) {
"string" != typeof t && (n = t, t = "*");
var i, r = 0,
o = t.toLowerCase().match(_e) || [];
if (re.isFunction(n))
for (; i = o[r++];) "+" === i[0] ? (i = i.slice(1) || "*", (e[i] = e[i] || []).unshift(n)) : (e[i] = e[i] || []).push(n)
}
}
function W(e, t, n, i) {
function r(s) {
var l;
return o[s] = !0, re.each(e[s] || [], function (e, s) {
var c = s(t, n, i);
return "string" != typeof c || a || o[c] ? a ? !(l = c) : void 0 : (t.dataTypes.unshift(c), r(c), !1)
}), l
}
var o = {},
a = e === Et;
return r(t.dataTypes[0]) || !o["*"] && r("*")
}
function U(e, t) {
var n, i, r = re.ajaxSettings.flatOptions || {};
for (n in t) void 0 !== t[n] && ((r[n] ? e : i || (i = {}))[n] = t[n]);
return i && re.extend(!0, e, i), e
}
function B(e, t, n) {
for (var i, r, o, a, s = e.contents, l = e.dataTypes;
"*" === l[0];) l.shift(), void 0 === i && (i = e.mimeType || t.getResponseHeader("Content-Type"));
if (i)
for (r in s)
if (s[r] && s[r].test(i)) {
l.unshift(r);
break
} if (l[0] in n) o = l[0];
else {
for (r in n) {
if (!l[0] || e.converters[r + " " + l[0]]) {
o = r;
break
}
a || (a = r)
}
o = o || a
}
return o ? (o !== l[0] && l.unshift(o), n[o]) : void 0
}
function z(e, t, n, i) {
var r, o, a, s, l, c = {},
u = e.dataTypes.slice();
if (u[1])
for (a in e.converters) c[a.toLowerCase()] = e.converters[a];
for (o = u.shift(); o;)
if (e.responseFields[o] && (n[e.responseFields[o]] = t), !l && i && e.dataFilter && (t = e.dataFilter(t, e.dataType)), l = o, o = u.shift())
if ("*" === o) o = l;
else if ("*" !== l && l !== o) {
if (!(a = c[l + " " + o] || c["* " + o]))
for (r in c)
if (s = r.split(" "), s[1] === o && (a = c[l + " " + s[0]] || c["* " + s[0]])) {
!0 === a ? a = c[r] : !0 !== c[r] && (o = s[0], u.unshift(s[1]));
break
} if (!0 !== a)
if (a && e.throws) t = a(t);
else try {
t = a(t)
} catch (e) {
return {
state: "parsererror",
error: a ? e : "No conversion from " + l + " to " + o
}
}
}
return {
state: "success",
data: t
}
}
function Q(e, t, n, i) {
var r;
if (re.isArray(t)) re.each(t, function (t, r) {
n || At.test(e) ? i(e, r) : Q(e + "[" + ("object" == typeof r && null != r ? t : "") + "]", r, n, i)
});
else if (n || "object" !== re.type(t)) i(e, t);
else
for (r in t) Q(e + "[" + r + "]", t[r], n, i)
}
function K(e) {
return re.isWindow(e) ? e : 9 === e.nodeType && e.defaultView
}
var V = [],
X = e.document,
Y = V.slice,
G = V.concat,
J = V.push,
Z = V.indexOf,
ee = {},
te = ee.toString,
ne = ee.hasOwnProperty,
ie = {},
re = function (e, t) {
return new re.fn.init(e, t)
},
oe = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
ae = /^-ms-/,
se = /-([\da-z])/gi,
le = function (e, t) {
return t.toUpperCase()
};
re.fn = re.prototype = {
jquery: "2.2.4",
constructor: re,
selector: "",
length: 0,
toArray: function () {
return Y.call(this)
},
get: function (e) {
return null != e ? 0 > e ? this[e + this.length] : this[e] : Y.call(this)
},
pushStack: function (e) {
var t = re.merge(this.constructor(), e);
return t.prevObject = this, t.context = this.context, t
},
each: function (e) {
return re.each(this, e)
},
map: function (e) {
return this.pushStack(re.map(this, function (t, n) {
return e.call(t, n, t)
}))
},
slice: function () {
return this.pushStack(Y.apply(this, arguments))
},
first: function () {
return this.eq(0)
},
last: function () {
return this.eq(-1)
},
eq: function (e) {
var t = this.length,
n = +e + (0 > e ? t : 0);
return this.pushStack(n >= 0 && t > n ? [this[n]] : [])
},
end: function () {
return this.prevObject || this.constructor()
},
push: J,
sort: V.sort,
splice: V.splice
},
re.extend = re.fn.extend = function () {
var e, t, n, i, r, o, a = arguments[0] || {},
s = 1,
l = arguments.length,
c = !1;
for ("boolean" == typeof a && (c = a, a = arguments[s] || {}, s++), "object" == typeof a || re.isFunction(a) || (a = {}), s === l && (a = this, s--); l > s; s++)
if (null != (e = arguments[s]))
for (t in e) n = a[t], i = e[t], a !== i && (c && i && (re.isPlainObject(i) || (r = re.isArray(i))) ? (r ? (r = !1, o = n && re.isArray(n) ? n : []) : o = n && re.isPlainObject(n) ? n : {}, a[t] = re.extend(c, o, i)) : void 0 !== i && (a[t] = i));
return a
},
re.extend({
expando: "jQuery" + ("2.2.4" + Math.random()).replace(/\D/g, ""),
isReady: !0,
error: function (e) {
throw new Error(e)
},
noop: function () {},
isFunction: function (e) {
return "function" === re.type(e)
},
isArray: Array.isArray,
isWindow: function (e) {
return null != e && e === e.window
},
isNumeric: function (e) {
var t = e && e.toString();
return !re.isArray(e) && t - parseFloat(t) + 1 >= 0
},
isPlainObject: function (e) {
var t;
if ("object" !== re.type(e) || e.nodeType || re.isWindow(e)) return !1;
if (e.constructor && !ne.call(e, "constructor") && !ne.call(e.constructor.prototype || {}, "isPrototypeOf")) return !1;
for (t in e);
return void 0 === t || ne.call(e, t)
},
isEmptyObject: function (e) {
var t;
for (t in e) return !1;
return !0
},
type: function (e) {
return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? ee[te.call(e)] || "object" : typeof e
},
globalEval: function (e) {
var t, n = eval;
(e = re.trim(e)) && (1 === e.indexOf("use strict") ? (t = X.createElement("script"), t.text = e, X.head.appendChild(t).parentNode.removeChild(t)) : n(e))
},
camelCase: function (e) {
return e.replace(ae, "ms-").replace(se, le)
},
nodeName: function (e, t) {
return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
},
each: function (e, t) {
var i, r = 0;
if (n(e))
for (i = e.length; i > r && !1 !== t.call(e[r], r, e[r]); r++);
else
for (r in e)
if (!1 === t.call(e[r], r, e[r])) break;
return e
},
trim: function (e) {
return null == e ? "" : (e + "").replace(oe, "")
},
makeArray: function (e, t) {
var i = t || [];
return null != e && (n(Object(e)) ? re.merge(i, "string" == typeof e ? [e] : e) : J.call(i, e)), i
},
inArray: function (e, t, n) {
return null == t ? -1 : Z.call(t, e, n)
},
merge: function (e, t) {
for (var n = +t.length, i = 0, r = e.length; n > i; i++) e[r++] = t[i];
return e.length = r, e
},
grep: function (e, t, n) {
for (var i = [], r = 0, o = e.length, a = !n; o > r; r++) !t(e[r], r) !== a && i.push(e[r]);
return i
},
map: function (e, t, i) {
var r, o, a = 0,
s = [];
if (n(e))
for (r = e.length; r > a; a++) null != (o = t(e[a], a, i)) && s.push(o);
else
for (a in e) null != (o = t(e[a], a, i)) && s.push(o);
return G.apply([], s)
},
guid: 1,
proxy: function (e, t) {
var n, i, r;
return "string" == typeof t && (n = e[t], t = e, e = n), re.isFunction(e) ? (i = Y.call(arguments, 2), r = function () {
return e.apply(t || this, i.concat(Y.call(arguments)))
}, r.guid = e.guid = e.guid || re.guid++, r) : void 0
},
now: Date.now,
support: ie
}),
"function" == typeof Symbol && (re.fn[Symbol.iterator] = V[Symbol.iterator]),
re.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (e, t) {
ee["[object " + t + "]"] = t.toLowerCase()
});
var ce = function (e) {
function t(e, t, n, i) {
var r, o, a, s, c, d, f, h, p = t && t.ownerDocument,
m = t ? t.nodeType : 9;
if (n = n || [], "string" != typeof e || !e || 1 !== m && 9 !== m && 11 !== m) return n;
if (!i && ((t ? t.ownerDocument || t : q) !== N && D(t), t = t || N, $)) {
if (11 !== m && (d = me.exec(e)))
if (r = d[1]) {
if (9 === m) {
if (!(a = t.getElementById(r))) return n;
if (a.id === r) return n.push(a), n
} else if (p && (a = p.getElementById(r)) && M(t, a) && a.id === r) return n.push(a), n
} else {
if (d[2]) return Y.apply(n, t.getElementsByTagName(e)), n;
if ((r = d[3]) && _.getElementsByClassName && t.getElementsByClassName) return Y.apply(n, t.getElementsByClassName(r)), n
} if (_.qsa && !U[e + " "] && (!O || !O.test(e))) {
if (1 !== m) p = t, h = e;
else if ("object" !== t.nodeName.toLowerCase()) {
for ((s = t.getAttribute("id")) ? s = s.replace(ve, "\\$&") : t.setAttribute("id", s = R), f = T(e), o = f.length, c = ue.test(s) ? "#" + s : "[id='" + s + "']"; o--;) f[o] = c + " " + u(f[o]);
h = f.join(","), p = ge.test(e) && l(t.parentNode) || t
}
if (h) try {
return Y.apply(n, p.querySelectorAll(h)), n
} catch (e) {} finally {
s === R && t.removeAttribute("id")
}
}
}
return C(e.replace(oe, "$1"), t, n, i)
}
function n() {
function e(n, i) {
return t.push(n + " ") > b.cacheLength && delete e[t.shift()], e[n + " "] = i
}
var t = [];
return e
}
function i(e) {
return e[R] = !0, e
}
function r(e) {
var t = N.createElement("div");
try {
return !!e(t)
} catch (e) {
return !1
} finally {
t.parentNode && t.parentNode.removeChild(t), t = null
}
}
function o(e, t) {
for (var n = e.split("|"), i = n.length; i--;) b.attrHandle[n[i]] = t
}
function a(e, t) {
var n = t && e,
i = n && 1 === e.nodeType && 1 === t.nodeType && (~t.sourceIndex || z) - (~e.sourceIndex || z);
if (i) return i;
if (n)
for (; n = n.nextSibling;)
if (n === t) return -1;
return e ? 1 : -1
}
function s(e) {
return i(function (t) {
return t = +t, i(function (n, i) {
for (var r, o = e([], n.length, t), a = o.length; a--;) n[r = o[a]] && (n[r] = !(i[r] = n[r]))
})
})
}
function l(e) {
return e && void 0 !== e.getElementsByTagName && e
}
function c() {}
function u(e) {
for (var t = 0, n = e.length, i = ""; n > t; t++) i += e[t].value;
return i
}
function d(e, t, n) {
var i = t.dir,
r = n && "parentNode" === i,
o = H++;
return t.first ? function (t, n, o) {
for (; t = t[i];)
if (1 === t.nodeType || r) return e(t, n, o)
} : function (t, n, a) {
var s, l, c, u = [P, o];
if (a) {
for (; t = t[i];)
if ((1 === t.nodeType || r) && e(t, n, a)) return !0
} else
for (; t = t[i];)
if (1 === t.nodeType || r) {
if (c = t[R] || (t[R] = {}), l = c[t.uniqueID] || (c[t.uniqueID] = {}), (s = l[i]) && s[0] === P && s[1] === o) return u[2] = s[2];
if (l[i] = u, u[2] = e(t, n, a)) return !0
}
}
}
function f(e) {
return e.length > 1 ? function (t, n, i) {
for (var r = e.length; r--;)
if (!e[r](t, n, i)) return !1;
return !0
} : e[0]
}
function h(e, n, i) {
for (var r = 0, o = n.length; o > r; r++) t(e, n[r], i);
return i
}
function p(e, t, n, i, r) {
for (var o, a = [], s = 0, l = e.length, c = null != t; l > s; s++)(o = e[s]) && (n && !n(o, i, r) || (a.push(o), c && t.push(s)));
return a
}
function m(e, t, n, r, o, a) {
return r && !r[R] && (r = m(r)), o && !o[R] && (o = m(o, a)), i(function (i, a, s, l) {
var c, u, d, f = [],
m = [],
g = a.length,
v = i || h(t || "*", s.nodeType ? [s] : s, []),
y = !e || !i && t ? v : p(v, f, e, s, l),
_ = n ? o || (i ? e : g || r) ? [] : a : y;
if (n && n(y, _, s, l), r)
for (c = p(_, m), r(c, [], s, l), u = c.length; u--;)(d = c[u]) && (_[m[u]] = !(y[m[u]] = d));
if (i) {
if (o || e) {
if (o) {
for (c = [], u = _.length; u--;)(d = _[u]) && c.push(y[u] = d);
o(null, _ = [], c, l)
}
for (u = _.length; u--;)(d = _[u]) && (c = o ? J(i, d) : f[u]) > -1 && (i[c] = !(a[c] = d))
}
} else _ = p(_ === a ? _.splice(g, _.length) : _), o ? o(null, a, _, l) : Y.apply(a, _)
})
}
function g(e) {
for (var t, n, i, r = e.length, o = b.relative[e[0].type], a = o || b.relative[" "], s = o ? 1 : 0, l = d(function (e) {
return e === t
}, a, !0), c = d(function (e) {
return J(t, e) > -1
}, a, !0), h = [function (e, n, i) {
var r = !o && (i || n !== S) || ((t = n).nodeType ? l(e, n, i) : c(e, n, i));
return t = null, r
}]; r > s; s++)
if (n = b.relative[e[s].type]) h = [d(f(h), n)];
else {
if (n = b.filter[e[s].type].apply(null, e[s].matches), n[R]) {
for (i = ++s; r > i && !b.relative[e[i].type]; i++);
return m(s > 1 && f(h), s > 1 && u(e.slice(0, s - 1).concat({
value: " " === e[s - 2].type ? "*" : ""
})).replace(oe, "$1"), n, i > s && g(e.slice(s, i)), r > i && g(e = e.slice(i)), r > i && u(e))
}
h.push(n)
} return f(h)
}
function v(e, n) {
var r = n.length > 0,
o = e.length > 0,
a = function (i, a, s, l, c) {
var u, d, f, h = 0,
m = "0",
g = i && [],
v = [],
y = S,
_ = i || o && b.find.TAG("*", c),
w = P += null == y ? 1 : Math.random() || .1,
x = _.length;
for (c && (S = a === N || a || c); m !== x && null != (u = _[m]); m++) {
if (o && u) {
for (d = 0, a || u.ownerDocument === N || (D(u), s = !$); f = e[d++];)
if (f(u, a || N, s)) {
l.push(u);
break
} c && (P = w)
}
r && ((u = !f && u) && h--, i && g.push(u))
}
if (h += m, r && m !== h) {
for (d = 0; f = n[d++];) f(g, v, a, s);
if (i) {
if (h > 0)
for (; m--;) g[m] || v[m] || (v[m] = V.call(l));
v = p(v)
}
Y.apply(l, v), c && !i && v.length > 0 && h + n.length > 1 && t.uniqueSort(l)
}
return c && (P = w, S = y), g
};
return r ? i(a) : a
}
var y, _, b, w, x, T, E, C, S, k, A, D, N, I, $, O, j, L, M, R = "sizzle" + 1 * new Date,
q = e.document,
P = 0,
H = 0,
F = n(),
W = n(),
U = n(),
B = function (e, t) {
return e === t && (A = !0), 0
},
z = 1 << 31,
Q = {}.hasOwnProperty,
K = [],
V = K.pop,
X = K.push,
Y = K.push,
G = K.slice,
J = function (e, t) {
for (var n = 0, i = e.length; i > n; n++)
if (e[n] === t) return n;
return -1
},
Z = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
ee = "[\\x20\\t\\r\\n\\f]",
te = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
ne = "\\[" + ee + "*(" + te + ")(?:" + ee + "*([*^$|!~]?=)" + ee + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + te + "))|)" + ee + "*\\]",
ie = ":(" + te + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + ne + ")*)|.*)\\)|)",
re = new RegExp(ee + "+", "g"),
oe = new RegExp("^" + ee + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ee + "+$", "g"),
ae = new RegExp("^" + ee + "*," + ee + "*"),
se = new RegExp("^" + ee + "*([>+~]|" + ee + ")" + ee + "*"),
le = new RegExp("=" + ee + "*([^\\]'\"]*?)" + ee + "*\\]", "g"),
ce = new RegExp(ie),
ue = new RegExp("^" + te + "$"),
de = {
ID: new RegExp("^#(" + te + ")"),
CLASS: new RegExp("^\\.(" + te + ")"),
TAG: new RegExp("^(" + te + "|[*])"),
ATTR: new RegExp("^" + ne),
PSEUDO: new RegExp("^" + ie),
CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + ee + "*(even|odd|(([+-]|)(\\d*)n|)" + ee + "*(?:([+-]|)" + ee + "*(\\d+)|))" + ee + "*\\)|)", "i"),
bool: new RegExp("^(?:" + Z + ")$", "i"),
needsContext: new RegExp("^" + ee + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + ee + "*((?:-\\d)?\\d*)" + ee + "*\\)|)(?=[^-]|$)", "i")
},
fe = /^(?:input|select|textarea|button)$/i,
he = /^h\d$/i,
pe = /^[^{]+\{\s*\[native \w/,
me = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
ge = /[+~]/,
ve = /'|\\/g,
ye = new RegExp("\\\\([\\da-f]{1,6}" + ee + "?|(" + ee + ")|.)", "ig"),
_e = function (e, t, n) {
var i = "0x" + t - 65536;
return i !== i || n ? t : 0 > i ? String.fromCharCode(i + 65536) : String.fromCharCode(i >> 10 | 55296, 1023 & i | 56320)
},
be = function () {
D()
};
try {
Y.apply(K = G.call(q.childNodes), q.childNodes), K[q.childNodes.length].nodeType
} catch (e) {
Y = {
apply: K.length ? function (e, t) {
X.apply(e, G.call(t))
} : function (e, t) {
for (var n = e.length, i = 0; e[n++] = t[i++];);
e.length = n - 1
}
}
}
_ = t.support = {}, x = t.isXML = function (e) {
var t = e && (e.ownerDocument || e).documentElement;
return !!t && "HTML" !== t.nodeName
}, D = t.setDocument = function (e) {
var t, n, i = e ? e.ownerDocument || e : q;
return i !== N && 9 === i.nodeType && i.documentElement ? (N = i, I = N.documentElement, $ = !x(N), (n = N.defaultView) && n.top !== n && (n.addEventListener ? n.addEventListener("unload", be, !1) : n.attachEvent && n.attachEvent("onunload", be)), _.attributes = r(function (e) {
return e.className = "i", !e.getAttribute("className")
}), _.getElementsByTagName = r(function (e) {
return e.appendChild(N.createComment("")), !e.getElementsByTagName("*").length
}), _.getElementsByClassName = pe.test(N.getElementsByClassName), _.getById = r(function (e) {
return I.appendChild(e).id = R, !N.getElementsByName || !N.getElementsByName(R).length
}), _.getById ? (b.find.ID = function (e, t) {
if (void 0 !== t.getElementById && $) {
var n = t.getElementById(e);
return n ? [n] : []
}
}, b.filter.ID = function (e) {
var t = e.replace(ye, _e);
return function (e) {
return e.getAttribute("id") === t
}
}) : (delete b.find.ID, b.filter.ID = function (e) {
var t = e.replace(ye, _e);
return function (e) {
var n = void 0 !== e.getAttributeNode && e.getAttributeNode("id");
return n && n.value === t
}
}), b.find.TAG = _.getElementsByTagName ? function (e, t) {
return void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e) : _.qsa ? t.querySelectorAll(e) : void 0
} : function (e, t) {
var n, i = [],
r = 0,
o = t.getElementsByTagName(e);
if ("*" === e) {
for (; n = o[r++];) 1 === n.nodeType && i.push(n);
return i
}
return o
}, b.find.CLASS = _.getElementsByClassName && function (e, t) {
return void 0 !== t.getElementsByClassName && $ ? t.getElementsByClassName(e) : void 0
}, j = [], O = [], (_.qsa = pe.test(N.querySelectorAll)) && (r(function (e) {
I.appendChild(e).innerHTML = "<a id='" + R + "'></a><select id='" + R + "-\r\\' msallowcapture=''><option selected=''></option></select>", e.querySelectorAll("[msallowcapture^='']").length && O.push("[*^$]=" + ee + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || O.push("\\[" + ee + "*(?:value|" + Z + ")"), e.querySelectorAll("[id~=" + R + "-]").length || O.push("~="), e.querySelectorAll(":checked").length || O.push(":checked"), e.querySelectorAll("a#" + R + "+*").length || O.push(".#.+[+~]")
}), r(function (e) {
var t = N.createElement("input");
t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"),
e.querySelectorAll("[name=d]").length && O.push("name" + ee + "*[*^$|!~]?="), e.querySelectorAll(":enabled").length || O.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), O.push(",.*:")
})), (_.matchesSelector = pe.test(L = I.matches || I.webkitMatchesSelector || I.mozMatchesSelector || I.oMatchesSelector || I.msMatchesSelector)) && r(function (e) {
_.disconnectedMatch = L.call(e, "div"), L.call(e, "[s!='']:x"), j.push("!=", ie)
}), O = O.length && new RegExp(O.join("|")), j = j.length && new RegExp(j.join("|")), t = pe.test(I.compareDocumentPosition), M = t || pe.test(I.contains) ? function (e, t) {
var n = 9 === e.nodeType ? e.documentElement : e,
i = t && t.parentNode;
return e === i || !(!i || 1 !== i.nodeType || !(n.contains ? n.contains(i) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(i)))
} : function (e, t) {
if (t)
for (; t = t.parentNode;)
if (t === e) return !0;
return !1
}, B = t ? function (e, t) {
if (e === t) return A = !0, 0;
var n = !e.compareDocumentPosition - !t.compareDocumentPosition;
return n || (n = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1, 1 & n || !_.sortDetached && t.compareDocumentPosition(e) === n ? e === N || e.ownerDocument === q && M(q, e) ? -1 : t === N || t.ownerDocument === q && M(q, t) ? 1 : k ? J(k, e) - J(k, t) : 0 : 4 & n ? -1 : 1)
} : function (e, t) {
if (e === t) return A = !0, 0;
var n, i = 0,
r = e.parentNode,
o = t.parentNode,
s = [e],
l = [t];
if (!r || !o) return e === N ? -1 : t === N ? 1 : r ? -1 : o ? 1 : k ? J(k, e) - J(k, t) : 0;
if (r === o) return a(e, t);
for (n = e; n = n.parentNode;) s.unshift(n);
for (n = t; n = n.parentNode;) l.unshift(n);
for (; s[i] === l[i];) i++;
return i ? a(s[i], l[i]) : s[i] === q ? -1 : l[i] === q ? 1 : 0
}, N) : N
}, t.matches = function (e, n) {
return t(e, null, null, n)
}, t.matchesSelector = function (e, n) {
if ((e.ownerDocument || e) !== N && D(e), n = n.replace(le, "='$1']"), _.matchesSelector && $ && !U[n + " "] && (!j || !j.test(n)) && (!O || !O.test(n))) try {
var i = L.call(e, n);
if (i || _.disconnectedMatch || e.document && 11 !== e.document.nodeType) return i
} catch (e) {}
return t(n, N, null, [e]).length > 0
}, t.contains = function (e, t) {
return (e.ownerDocument || e) !== N && D(e), M(e, t)
}, t.attr = function (e, t) {
(e.ownerDocument || e) !== N && D(e);
var n = b.attrHandle[t.toLowerCase()],
i = n && Q.call(b.attrHandle, t.toLowerCase()) ? n(e, t, !$) : void 0;
return void 0 !== i ? i : _.attributes || !$ ? e.getAttribute(t) : (i = e.getAttributeNode(t)) && i.specified ? i.value : null
}, t.error = function (e) {
throw new Error("Syntax error, unrecognized expression: " + e)
}, t.uniqueSort = function (e) {
var t, n = [],
i = 0,
r = 0;
if (A = !_.detectDuplicates, k = !_.sortStable && e.slice(0), e.sort(B), A) {
for (; t = e[r++];) t === e[r] && (i = n.push(r));
for (; i--;) e.splice(n[i], 1)
}
return k = null, e
}, w = t.getText = function (e) {
var t, n = "",
i = 0,
r = e.nodeType;
if (r) {
if (1 === r || 9 === r || 11 === r) {
if ("string" == typeof e.textContent) return e.textContent;
for (e = e.firstChild; e; e = e.nextSibling) n += w(e)
} else if (3 === r || 4 === r) return e.nodeValue
} else
for (; t = e[i++];) n += w(t);
return n
}, b = t.selectors = {
cacheLength: 50,
createPseudo: i,
match: de,
attrHandle: {},
find: {},
relative: {
">": {
dir: "parentNode",
first: !0
},
" ": {
dir: "parentNode"
},
"+": {
dir: "previousSibling",
first: !0
},
"~": {
dir: "previousSibling"
}
},
preFilter: {
ATTR: function (e) {
return e[1] = e[1].replace(ye, _e), e[3] = (e[3] || e[4] || e[5] || "").replace(ye, _e), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4)
},
CHILD: function (e) {
return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || t.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && t.error(e[0]), e
},
PSEUDO: function (e) {
var t, n = !e[6] && e[2];
return de.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && ce.test(n) && (t = T(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3))
}
},
filter: {
TAG: function (e) {
var t = e.replace(ye, _e).toLowerCase();
return "*" === e ? function () {
return !0
} : function (e) {
return e.nodeName && e.nodeName.toLowerCase() === t
}
},
CLASS: function (e) {
var t = F[e + " "];
return t || (t = new RegExp("(^|" + ee + ")" + e + "(" + ee + "|$)")) && F(e, function (e) {
return t.test("string" == typeof e.className && e.className || void 0 !== e.getAttribute && e.getAttribute("class") || "")
})
},
ATTR: function (e, n, i) {
return function (r) {
var o = t.attr(r, e);
return null == o ? "!=" === n : !n || (o += "", "=" === n ? o === i : "!=" === n ? o !== i : "^=" === n ? i && 0 === o.indexOf(i) : "*=" === n ? i && o.indexOf(i) > -1 : "$=" === n ? i && o.slice(-i.length) === i : "~=" === n ? (" " + o.replace(re, " ") + " ").indexOf(i) > -1 : "|=" === n && (o === i || o.slice(0, i.length + 1) === i + "-"))
}
},
CHILD: function (e, t, n, i, r) {
var o = "nth" !== e.slice(0, 3),
a = "last" !== e.slice(-4),
s = "of-type" === t;
return 1 === i && 0 === r ? function (e) {
return !!e.parentNode
} : function (t, n, l) {
var c, u, d, f, h, p, m = o !== a ? "nextSibling" : "previousSibling",
g = t.parentNode,
v = s && t.nodeName.toLowerCase(),
y = !l && !s,
_ = !1;
if (g) {
if (o) {
for (; m;) {
for (f = t; f = f[m];)
if (s ? f.nodeName.toLowerCase() === v : 1 === f.nodeType) return !1;
p = m = "only" === e && !p && "nextSibling"
}
return !0
}
if (p = [a ? g.firstChild : g.lastChild], a && y) {
for (f = g, d = f[R] || (f[R] = {}), u = d[f.uniqueID] || (d[f.uniqueID] = {}), c = u[e] || [], h = c[0] === P && c[1], _ = h && c[2], f = h && g.childNodes[h]; f = ++h && f && f[m] || (_ = h = 0) || p.pop();)
if (1 === f.nodeType && ++_ && f === t) {
u[e] = [P, h, _];
break
}
} else if (y && (f = t, d = f[R] || (f[R] = {}), u = d[f.uniqueID] || (d[f.uniqueID] = {}), c = u[e] || [], h = c[0] === P && c[1], _ = h), !1 === _)
for (;
(f = ++h && f && f[m] || (_ = h = 0) || p.pop()) && ((s ? f.nodeName.toLowerCase() !== v : 1 !== f.nodeType) || !++_ || (y && (d = f[R] || (f[R] = {}), u = d[f.uniqueID] || (d[f.uniqueID] = {}), u[e] = [P, _]), f !== t)););
return (_ -= r) === i || _ % i == 0 && _ / i >= 0
}
}
},
PSEUDO: function (e, n) {
var r, o = b.pseudos[e] || b.setFilters[e.toLowerCase()] || t.error("unsupported pseudo: " + e);
return o[R] ? o(n) : o.length > 1 ? (r = [e, e, "", n], b.setFilters.hasOwnProperty(e.toLowerCase()) ? i(function (e, t) {
for (var i, r = o(e, n), a = r.length; a--;) i = J(e, r[a]), e[i] = !(t[i] = r[a])
}) : function (e) {
return o(e, 0, r)
}) : o
}
},
pseudos: {
not: i(function (e) {
var t = [],
n = [],
r = E(e.replace(oe, "$1"));
return r[R] ? i(function (e, t, n, i) {
for (var o, a = r(e, null, i, []), s = e.length; s--;)(o = a[s]) && (e[s] = !(t[s] = o))
}) : function (e, i, o) {
return t[0] = e, r(t, null, o, n), t[0] = null, !n.pop()
}
}),
has: i(function (e) {
return function (n) {
return t(e, n).length > 0
}
}),
contains: i(function (e) {
return e = e.replace(ye, _e),
function (t) {
return (t.textContent || t.innerText || w(t)).indexOf(e) > -1
}
}),
lang: i(function (e) {
return ue.test(e || "") || t.error("unsupported lang: " + e), e = e.replace(ye, _e).toLowerCase(),
function (t) {
var n;
do {
if (n = $ ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang")) return (n = n.toLowerCase()) === e || 0 === n.indexOf(e + "-")
} while ((t = t.parentNode) && 1 === t.nodeType);
return !1
}
}),
target: function (t) {
var n = e.location && e.location.hash;
return n && n.slice(1) === t.id
},
root: function (e) {
return e === I
},
focus: function (e) {
return e === N.activeElement && (!N.hasFocus || N.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)
},
enabled: function (e) {
return !1 === e.disabled
},
disabled: function (e) {
return !0 === e.disabled
},
checked: function (e) {
var t = e.nodeName.toLowerCase();
return "input" === t && !!e.checked || "option" === t && !!e.selected
},
selected: function (e) {
return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected
},
empty: function (e) {
for (e = e.firstChild; e; e = e.nextSibling)
if (e.nodeType < 6) return !1;
return !0
},
parent: function (e) {
return !b.pseudos.empty(e)
},
header: function (e) {
return he.test(e.nodeName)
},
input: function (e) {
return fe.test(e.nodeName)
},
button: function (e) {
var t = e.nodeName.toLowerCase();
return "input" === t && "button" === e.type || "button" === t
},
text: function (e) {
var t;
return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase())
},
first: s(function () {
return [0]
}),
last: s(function (e, t) {
return [t - 1]
}),
eq: s(function (e, t, n) {
return [0 > n ? n + t : n]
}),
even: s(function (e, t) {
for (var n = 0; t > n; n += 2) e.push(n);
return e
}),
odd: s(function (e, t) {
for (var n = 1; t > n; n += 2) e.push(n);
return e
}),
lt: s(function (e, t, n) {
for (var i = 0 > n ? n + t : n; --i >= 0;) e.push(i);
return e
}),
gt: s(function (e, t, n) {
for (var i = 0 > n ? n + t : n; ++i < t;) e.push(i);
return e
})
}
}, b.pseudos.nth = b.pseudos.eq;
for (y in {
radio: !0,
checkbox: !0,
file: !0,
password: !0,
image: !0
}) b.pseudos[y] = function (e) {
return function (t) {
return "input" === t.nodeName.toLowerCase() && t.type === e
}
}(y);
for (y in {
submit: !0,
reset: !0
}) b.pseudos[y] = function (e) {
return function (t) {
var n = t.nodeName.toLowerCase();
return ("input" === n || "button" === n) && t.type === e
}
}(y);
return c.prototype = b.filters = b.pseudos, b.setFilters = new c, T = t.tokenize = function (e, n) {
var i, r, o, a, s, l, c, u = W[e + " "];
if (u) return n ? 0 : u.slice(0);
for (s = e, l = [], c = b.preFilter; s;) {
i && !(r = ae.exec(s)) || (r && (s = s.slice(r[0].length) || s), l.push(o = [])), i = !1, (r = se.exec(s)) && (i = r.shift(), o.push({
value: i,
type: r[0].replace(oe, " ")
}), s = s.slice(i.length));
for (a in b.filter) !(r = de[a].exec(s)) || c[a] && !(r = c[a](r)) || (i = r.shift(), o.push({
value: i,
type: a,
matches: r
}), s = s.slice(i.length));
if (!i) break
}
return n ? s.length : s ? t.error(e) : W(e, l).slice(0)
}, E = t.compile = function (e, t) {
var n, i = [],
r = [],
o = U[e + " "];
if (!o) {
for (t || (t = T(e)), n = t.length; n--;) o = g(t[n]), o[R] ? i.push(o) : r.push(o);
o = U(e, v(r, i)), o.selector = e
}
return o
}, C = t.select = function (e, t, n, i) {
var r, o, a, s, c, d = "function" == typeof e && e,
f = !i && T(e = d.selector || e);
if (n = n || [], 1 === f.length) {
if (o = f[0] = f[0].slice(0), o.length > 2 && "ID" === (a = o[0]).type && _.getById && 9 === t.nodeType && $ && b.relative[o[1].type]) {
if (!(t = (b.find.ID(a.matches[0].replace(ye, _e), t) || [])[0])) return n;
d && (t = t.parentNode), e = e.slice(o.shift().value.length)
}
for (r = de.needsContext.test(e) ? 0 : o.length; r-- && (a = o[r], !b.relative[s = a.type]);)
if ((c = b.find[s]) && (i = c(a.matches[0].replace(ye, _e), ge.test(o[0].type) && l(t.parentNode) || t))) {
if (o.splice(r, 1), !(e = i.length && u(o))) return Y.apply(n, i), n;
break
}
}
return (d || E(e, f))(i, t, !$, n, !t || ge.test(e) && l(t.parentNode) || t), n
}, _.sortStable = R.split("").sort(B).join("") === R, _.detectDuplicates = !!A, D(), _.sortDetached = r(function (e) {
return 1 & e.compareDocumentPosition(N.createElement("div"))
}), r(function (e) {
return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href")
}) || o("type|href|height|width", function (e, t, n) {
return n ? void 0 : e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2)
}), _.attributes && r(function (e) {
return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value")
}) || o("value", function (e, t, n) {
return n || "input" !== e.nodeName.toLowerCase() ? void 0 : e.defaultValue
}), r(function (e) {
return null == e.getAttribute("disabled")
}) || o(Z, function (e, t, n) {
var i;
return n ? void 0 : !0 === e[t] ? t.toLowerCase() : (i = e.getAttributeNode(t)) && i.specified ? i.value : null
}), t
}(e);
re.find = ce,
re.expr = ce.selectors,
re.expr[":"] = re.expr.pseudos,
re.uniqueSort = re.unique = ce.uniqueSort,
re.text = ce.getText,
re.isXMLDoc = ce.isXML,
re.contains = ce.contains;
var ue = function (e, t, n) {
for (var i = [], r = void 0 !== n;
(e = e[t]) && 9 !== e.nodeType;)
if (1 === e.nodeType) {
if (r && re(e).is(n)) break;
i.push(e)
} return i
},
de = function (e, t) {
for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e);
return n
},
fe = re.expr.match.needsContext,
he = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,
pe = /^.[^:#\[\.,]*$/;
re.filter = function (e, t, n) {
var i = t[0];
return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === i.nodeType ? re.find.matchesSelector(i, e) ? [i] : [] : re.find.matches(e, re.grep(t, function (e) {
return 1 === e.nodeType
}))
},
re.fn.extend({
find: function (e) {
var t, n = this.length,
i = [],
r = this;
if ("string" != typeof e) return this.pushStack(re(e).filter(function () {
for (t = 0; n > t; t++)
if (re.contains(r[t], this)) return !0
}));
for (t = 0; n > t; t++) re.find(e, r[t], i);
return i = this.pushStack(n > 1 ? re.unique(i) : i), i.selector = this.selector ? this.selector + " " + e : e, i
},
filter: function (e) {
return this.pushStack(i(this, e || [], !1))
},
not: function (e) {
return this.pushStack(i(this, e || [], !0))
},
is: function (e) {
return !!i(this, "string" == typeof e && fe.test(e) ? re(e) : e || [], !1).length
}
});
var me, ge = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/;
(re.fn.init = function (e, t, n) {
var i, r;
if (!e) return this;
if (n = n || me, "string" == typeof e) {
if (!(i = "<" === e[0] && ">" === e[e.length - 1] && e.length >= 3 ? [null, e, null] : ge.exec(e)) || !i[1] && t) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e);
if (i[1]) {
if (t = t instanceof re ? t[0] : t, re.merge(this, re.parseHTML(i[1], t && t.nodeType ? t.ownerDocument || t : X, !0)), he.test(i[1]) && re.isPlainObject(t))
for (i in t) re.isFunction(this[i]) ? this[i](t[i]) : this.attr(i, t[i]);
return this
}
return r = X.getElementById(i[2]), r && r.parentNode && (this.length = 1, this[0] = r), this.context = X, this.selector = e, this
}
return e.nodeType ? (this.context = this[0] = e, this.length = 1, this) : re.isFunction(e) ? void 0 !== n.ready ? n.ready(e) : e(re) : (void 0 !== e.selector && (this.selector = e.selector, this.context = e.context), re.makeArray(e, this))
}).prototype = re.fn,
me = re(X);
var ve = /^(?:parents|prev(?:Until|All))/,
ye = {
children: !0,
contents: !0,
next: !0,
prev: !0
};
re.fn.extend({
has: function (e) {
var t = re(e, this),
n = t.length;
return this.filter(function () {
for (var e = 0; n > e; e++)
if (re.contains(this, t[e])) return !0
})
},
closest: function (e, t) {
for (var n, i = 0, r = this.length, o = [], a = fe.test(e) || "string" != typeof e ? re(e, t || this.context) : 0; r > i; i++)
for (n = this[i]; n && n !== t; n = n.parentNode)
if (n.nodeType < 11 && (a ? a.index(n) > -1 : 1 === n.nodeType && re.find.matchesSelector(n, e))) {
o.push(n);
break
} return this.pushStack(o.length > 1 ? re.uniqueSort(o) : o)
},
index: function (e) {
return e ? "string" == typeof e ? Z.call(re(e), this[0]) : Z.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
},
add: function (e, t) {
return this.pushStack(re.uniqueSort(re.merge(this.get(), re(e, t))))
},
addBack: function (e) {
return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
}
}),
re.each({
parent: function (e) {
var t = e.parentNode;
return t && 11 !== t.nodeType ? t : null
},
parents: function (e) {
return ue(e, "parentNode")
},
parentsUntil: function (e, t, n) {
return ue(e, "parentNode", n)
},
next: function (e) {
return r(e, "nextSibling")
},
prev: function (e) {
return r(e, "previousSibling")
},
nextAll: function (e) {
return ue(e, "nextSibling")
},
prevAll: function (e) {
return ue(e, "previousSibling")
},
nextUntil: function (e, t, n) {
return ue(e, "nextSibling", n)
},
prevUntil: function (e, t, n) {
return ue(e, "previousSibling", n)
},
siblings: function (e) {
return de((e.parentNode || {}).firstChild, e)
},
children: function (e) {
return de(e.firstChild)
},
contents: function (e) {
return e.contentDocument || re.merge([], e.childNodes)
}
}, function (e, t) {
re.fn[e] = function (n, i) {
var r = re.map(this, t, n);
return "Until" !== e.slice(-5) && (i = n), i && "string" == typeof i && (r = re.filter(i, r)), this.length > 1 && (ye[e] || re.uniqueSort(r), ve.test(e) && r.reverse()), this.pushStack(r)
}
});
var _e = /\S+/g;
re.Callbacks = function (e) {
e = "string" == typeof e ? o(e) : re.extend({}, e);
var t, n, i, r, a = [],
s = [],
l = -1,
c = function () {
for (r = e.once, i = t = !0; s.length; l = -1)
for (n = s.shift(); ++l < a.length;) !1 === a[l].apply(n[0], n[1]) && e.stopOnFalse && (l = a.length, n = !1);
e.memory || (n = !1), t = !1, r && (a = n ? [] : "")
},
u = {
add: function () {
return a && (n && !t && (l = a.length - 1, s.push(n)), function t(n) {
re.each(n, function (n, i) {
re.isFunction(i) ? e.unique && u.has(i) || a.push(i) : i && i.length && "string" !== re.type(i) && t(i)
})
}(arguments), n && !t && c()), this
},
remove: function () {
return re.each(arguments, function (e, t) {
for (var n;
(n = re.inArray(t, a, n)) > -1;) a.splice(n, 1), l >= n && l--
}), this
},
has: function (e) {
return e ? re.inArray(e, a) > -1 : a.length > 0
},
empty: function () {
return a && (a = []), this
},
disable: function () {
return r = s = [], a = n = "", this
},
disabled: function () {
return !a
},
lock: function () {
return r = s = [], n || (a = n = ""), this
},
locked: function () {
return !!r
},
fireWith: function (e, n) {
return r || (n = n || [], n = [e, n.slice ? n.slice() : n], s.push(n), t || c()), this
},
fire: function () {
return u.fireWith(this, arguments), this
},
fired: function () {
return !!i
}
};
return u
},
re.extend({
Deferred: function (e) {
var t = [
["resolve", "done", re.Callbacks("once memory"), "resolved"],
["reject", "fail", re.Callbacks("once memory"), "rejected"],
["notify", "progress", re.Callbacks("memory")]
],
n = "pending",
i = {
state: function () {
return n
},
always: function () {
return r.done(arguments).fail(arguments), this
},
then: function () {
var e = arguments;
return re.Deferred(function (n) {
re.each(t, function (t, o) {
var a = re.isFunction(e[t]) && e[t];
r[o[1]](function () {
var e = a && a.apply(this, arguments);
e && re.isFunction(e.promise) ? e.promise().progress(n.notify).done(n.resolve).fail(n.reject) : n[o[0] + "With"](this === i ? n.promise() : this, a ? [e] : arguments)
})
}), e = null
}).promise()
},
promise: function (e) {
return null != e ? re.extend(e, i) : i
}
},
r = {};
return i.pipe = i.then, re.each(t, function (e, o) {
var a = o[2],
s = o[3];
i[o[1]] = a.add, s && a.add(function () {
n = s
}, t[1 ^ e][2].disable, t[2][2].lock), r[o[0]] = function () {
return r[o[0] + "With"](this === r ? i : this, arguments), this
}, r[o[0] + "With"] = a.fireWith
}), i.promise(r), e && e.call(r, r), r
},
when: function (e) {
var t, n, i, r = 0,
o = Y.call(arguments),
a = o.length,
s = 1 !== a || e && re.isFunction(e.promise) ? a : 0,
l = 1 === s ? e : re.Deferred(),
c = function (e, n, i) {
return function (r) {
n[e] = this, i[e] = arguments.length > 1 ? Y.call(arguments) : r, i === t ? l.notifyWith(n, i) : --s || l.resolveWith(n, i)
}
};
if (a > 1)
for (t = new Array(a), n = new Array(a), i = new Array(a); a > r; r++) o[r] && re.isFunction(o[r].promise) ? o[r].promise().progress(c(r, n, t)).done(c(r, i, o)).fail(l.reject) : --s;
return s || l.resolveWith(i, o), l.promise()
}
});
var be;
re.fn.ready = function (e) {
return re.ready.promise().done(e), this
},
re.extend({
isReady: !1,
readyWait: 1,
holdReady: function (e) {
e ? re.readyWait++ : re.ready(!0)
},
ready: function (e) {
(!0 === e ? --re.readyWait : re.isReady) || (re.isReady = !0, !0 !== e && --re.readyWait > 0 || (be.resolveWith(X, [re]), re.fn.triggerHandler && (re(X).triggerHandler("ready"), re(X).off("ready"))))
}
}),
re.ready.promise = function (t) {
return be || (be = re.Deferred(), "complete" === X.readyState || "loading" !== X.readyState && !X.documentElement.doScroll ? e.setTimeout(re.ready) : (X.addEventListener("DOMContentLoaded", a), e.addEventListener("load", a))), be.promise(t)
},
re.ready.promise();
var we = function (e, t, n, i, r, o, a) {
var s = 0,
l = e.length,
c = null == n;
if ("object" === re.type(n)) {
r = !0;
for (s in n) we(e, t, s, n[s], !0, o, a)
} else if (void 0 !== i && (r = !0, re.isFunction(i) || (a = !0), c && (a ? (t.call(e, i), t = null) : (c = t, t = function (e, t, n) {
return c.call(re(e), n)
})), t))
for (; l > s; s++) t(e[s], n, a ? i : i.call(e[s], s, t(e[s], n)));
return r ? e : c ? t.call(e) : l ? t(e[0], n) : o
},
xe = function (e) {
return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType
};
s.uid = 1,
s.prototype = {
register: function (e, t) {
var n = t || {};
return e.nodeType ? e[this.expando] = n : Object.defineProperty(e, this.expando, {
value: n,
writable: !0,
configurable: !0
}), e[this.expando]
},
cache: function (e) {
if (!xe(e)) return {};
var t = e[this.expando];
return t || (t = {}, xe(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, {
value: t,
configurable: !0
}))), t
},
set: function (e, t, n) {
var i, r = this.cache(e);
if ("string" == typeof t) r[t] = n;
else
for (i in t) r[i] = t[i];
return r
},
get: function (e, t) {
return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][t]
},
access: function (e, t, n) {
var i;
return void 0 === t || t && "string" == typeof t && void 0 === n ? (i = this.get(e, t), void 0 !== i ? i : this.get(e, re.camelCase(t))) : (this.set(e, t, n), void 0 !== n ? n : t)
},
remove: function (e, t) {
var n, i, r, o = e[this.expando];
if (void 0 !== o) {
if (void 0 === t) this.register(e);
else {
re.isArray(t) ? i = t.concat(t.map(re.camelCase)) : (r = re.camelCase(t), t in o ? i = [t, r] : (i = r, i = i in o ? [i] : i.match(_e) || [])), n = i.length;
for (; n--;) delete o[i[n]]
}(void 0 === t || re.isEmptyObject(o)) && (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando])
}
},
hasData: function (e) {
var t = e[this.expando];
return void 0 !== t && !re.isEmptyObject(t)
}
};
var Te = new s,
Ee = new s,
Ce = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
Se = /[A-Z]/g;
re.extend({
hasData: function (e) {
return Ee.hasData(e) || Te.hasData(e)
},
data: function (e, t, n) {
return Ee.access(e, t, n)
},
removeData: function (e, t) {
Ee.remove(e, t)
},
_data: function (e, t, n) {
return Te.access(e, t, n)
},
_removeData: function (e, t) {
Te.remove(e, t)
}
}),
re.fn.extend({
data: function (e, t) {
var n, i, r, o = this[0],
a = o && o.attributes;
if (void 0 === e) {
if (this.length && (r = Ee.get(o), 1 === o.nodeType && !Te.get(o, "hasDataAttrs"))) {
for (n = a.length; n--;) a[n] && (i = a[n].name, 0 === i.indexOf("data-") && (i = re.camelCase(i.slice(5)), l(o, i, r[i])));
Te.set(o, "hasDataAttrs", !0)
}
return r
}
return "object" == typeof e ? this.each(function () {
Ee.set(this, e)
}) : we(this, function (t) {
var n, i;
if (o && void 0 === t) {
if (void 0 !== (n = Ee.get(o, e) || Ee.get(o, e.replace(Se, "-$&").toLowerCase()))) return n;
if (i = re.camelCase(e), void 0 !== (n = Ee.get(o, i))) return n;
if (void 0 !== (n = l(o, i, void 0))) return n
} else i = re.camelCase(e), this.each(function () {
var n = Ee.get(this, i);
Ee.set(this, i, t), e.indexOf("-") > -1 && void 0 !== n && Ee.set(this, e, t)
})
}, null, t, arguments.length > 1, null, !0)
},
removeData: function (e) {
return this.each(function () {
Ee.remove(this, e)
})
}
}),
re.extend({
queue: function (e, t, n) {
var i;
return e ? (t = (t || "fx") + "queue", i = Te.get(e, t), n && (!i || re.isArray(n) ? i = Te.access(e, t, re.makeArray(n)) : i.push(n)), i || []) : void 0
},
dequeue: function (e, t) {
t = t || "fx";
var n = re.queue(e, t),
i = n.length,
r = n.shift(),
o = re._queueHooks(e, t),
a = function () {
re.dequeue(e, t)
};
"inprogress" === r && (r = n.shift(), i--), r && ("fx" === t && n.unshift("inprogress"), delete o.stop, r.call(e, a, o)), !i && o && o.empty.fire()
},
_queueHooks: function (e, t) {
var n = t + "queueHooks";
return Te.get(e, n) || Te.access(e, n, {
empty: re.Callbacks("once memory").add(function () {
Te.remove(e, [t + "queue", n])
})
})
}
}),
re.fn.extend({
queue: function (e, t) {
var n = 2;
return "string" != typeof e && (t = e, e = "fx", n--), arguments.length < n ? re.queue(this[0], e) : void 0 === t ? this : this.each(function () {
var n = re.queue(this, e, t);
re._queueHooks(this, e), "fx" === e && "inprogress" !== n[0] && re.dequeue(this, e)
})
},
dequeue: function (e) {
return this.each(function () {
re.dequeue(this, e)
})
},
clearQueue: function (e) {
return this.queue(e || "fx", [])
},
promise: function (e, t) {
var n, i = 1,
r = re.Deferred(),
o = this,
a = this.length,
s = function () {
--i || r.resolveWith(o, [o])
};
for ("string" != typeof e && (t = e, e = void 0), e = e || "fx"; a--;)(n = Te.get(o[a], e + "queueHooks")) && n.empty && (i++, n.empty.add(s));
return s(), r.promise(t)
}
});
var ke = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
Ae = new RegExp("^(?:([+-])=|)(" + ke + ")([a-z%]*)$", "i"),
De = ["Top", "Right", "Bottom", "Left"],
Ne = function (e, t) {
return e = t || e, "none" === re.css(e, "display") || !re.contains(e.ownerDocument, e)
},
Ie = /^(?:checkbox|radio)$/i,
$e = /<([\w:-]+)/,
Oe = /^$|\/(?:java|ecma)script/i,
je = {
option: [1, "<select multiple='multiple'>", "</select>"],
thead: [1, "<table>", "</table>"],
col: [2, "<table><colgroup>", "</colgroup></table>"],
tr: [2, "<table><tbody>", "</tbody></table>"],
td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
_default: [0, "", ""]
};
je.optgroup = je.option,
je.tbody = je.tfoot = je.colgroup = je.caption = je.thead,
je.th = je.td;
var Le = /<|&#?\w+;/;
!function () {
var e = X.createDocumentFragment(),
t = e.appendChild(X.createElement("div")),
n = X.createElement("input");
n.setAttribute("type", "radio"), n.setAttribute("checked", "checked"), n.setAttribute("name", "t"), t.appendChild(n), ie.checkClone = t.cloneNode(!0).cloneNode(!0).lastChild.checked, t.innerHTML = "<textarea>x</textarea>", ie.noCloneChecked = !!t.cloneNode(!0).lastChild.defaultValue
}();
var Me = /^key/,
Re = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
qe = /^([^.]*)(?:\.(.+)|)/;
re.event = {
global: {},
add: function (e, t, n, i, r) {
var o, a, s, l, c, u, d, f, h, p, m, g = Te.get(e);
if (g)
for (n.handler && (o = n, n = o.handler, r = o.selector), n.guid || (n.guid = re.guid++), (l = g.events) || (l = g.events = {}), (a = g.handle) || (a = g.handle = function (t) {
return void 0 !== re && re.event.triggered !== t.type ? re.event.dispatch.apply(e, arguments) : void 0
}), t = (t || "").match(_e) || [""], c = t.length; c--;) s = qe.exec(t[c]) || [], h = m = s[1], p = (s[2] || "").split(".").sort(), h && (d = re.event.special[h] || {}, h = (r ? d.delegateType : d.bindType) || h, d = re.event.special[h] || {}, u = re.extend({
type: h,
origType: m,
data: i,
handler: n,
guid: n.guid,
selector: r,
needsContext: r && re.expr.match.needsContext.test(r),
namespace: p.join(".")
}, o), (f = l[h]) || (f = l[h] = [], f.delegateCount = 0, d.setup && !1 !== d.setup.call(e, i, p, a) || e.addEventListener && e.addEventListener(h, a)), d.add && (d.add.call(e, u), u.handler.guid || (u.handler.guid = n.guid)), r ? f.splice(f.delegateCount++, 0, u) : f.push(u), re.event.global[h] = !0)
},
remove: function (e, t, n, i, r) {
var o, a, s, l, c, u, d, f, h, p, m, g = Te.hasData(e) && Te.get(e);
if (g && (l = g.events)) {
for (t = (t || "").match(_e) || [""], c = t.length; c--;)
if (s = qe.exec(t[c]) || [], h = m = s[1], p = (s[2] || "").split(".").sort(), h) {
for (d = re.event.special[h] || {}, h = (i ? d.delegateType : d.bindType) || h, f = l[h] || [], s = s[2] && new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)"), a = o = f.length; o--;) u = f[o], !r && m !== u.origType || n && n.guid !== u.guid || s && !s.test(u.namespace) || i && i !== u.selector && ("**" !== i || !u.selector) || (f.splice(o, 1), u.selector && f.delegateCount--, d.remove && d.remove.call(e, u));
a && !f.length && (d.teardown && !1 !== d.teardown.call(e, p, g.handle) || re.removeEvent(e, h, g.handle), delete l[h])
} else
for (h in l) re.event.remove(e, h + t[c], n, i, !0);
re.isEmptyObject(l) && Te.remove(e, "handle events")
}
},
dispatch: function (e) {
e = re.event.fix(e);
var t, n, i, r, o, a = [],
s = Y.call(arguments),
l = (Te.get(this, "events") || {})[e.type] || [],
c = re.event.special[e.type] || {};
if (s[0] = e, e.delegateTarget = this, !c.preDispatch || !1 !== c.preDispatch.call(this, e)) {
for (a = re.event.handlers.call(this, e, l), t = 0;
(r = a[t++]) && !e.isPropagationStopped();)
for (e.currentTarget = r.elem, n = 0;
(o = r.handlers[n++]) && !e.isImmediatePropagationStopped();) e.rnamespace && !e.rnamespace.test(o.namespace) || (e.handleObj = o, e.data = o.data, void 0 !== (i = ((re.event.special[o.origType] || {}).handle || o.handler).apply(r.elem, s)) && !1 === (e.result = i) && (e.preventDefault(), e.stopPropagation()));
return c.postDispatch && c.postDispatch.call(this, e), e.result
}
},
handlers: function (e, t) {
var n, i, r, o, a = [],
s = t.delegateCount,
l = e.target;
if (s && l.nodeType && ("click" !== e.type || isNaN(e.button) || e.button < 1))
for (; l !== this; l = l.parentNode || this)
if (1 === l.nodeType && (!0 !== l.disabled || "click" !== e.type)) {
for (i = [], n = 0; s > n; n++) o = t[n], r = o.selector + " ", void 0 === i[r] && (i[r] = o.needsContext ? re(r, this).index(l) > -1 : re.find(r, this, null, [l]).length), i[r] && i.push(o);
i.length && a.push({
elem: l,
handlers: i
})
} return s < t.length && a.push({
elem: this,
handlers: t.slice(s)
}), a
},
props: "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
fixHooks: {},
keyHooks: {
props: "char charCode key keyCode".split(" "),
filter: function (e, t) {
return null == e.which && (e.which = null != t.charCode ? t.charCode : t.keyCode), e
}
},
mouseHooks: {
props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
filter: function (e, t) {
var n, i, r, o = t.button;
return null == e.pageX && null != t.clientX && (n = e.target.ownerDocument || X, i = n.documentElement, r = n.body, e.pageX = t.clientX + (i && i.scrollLeft || r && r.scrollLeft || 0) - (i && i.clientLeft || r && r.clientLeft || 0), e.pageY = t.clientY + (i && i.scrollTop || r && r.scrollTop || 0) - (i && i.clientTop || r && r.clientTop || 0)), e.which || void 0 === o || (e.which = 1 & o ? 1 : 2 & o ? 3 : 4 & o ? 2 : 0), e
}
},
fix: function (e) {
if (e[re.expando]) return e;
var t, n, i, r = e.type,
o = e,
a = this.fixHooks[r];
for (a || (this.fixHooks[r] = a = Re.test(r) ? this.mouseHooks : Me.test(r) ? this.keyHooks : {}), i = a.props ? this.props.concat(a.props) : this.props, e = new re.Event(o), t = i.length; t--;) n = i[t], e[n] = o[n];
return e.target || (e.target = X), 3 === e.target.nodeType && (e.target = e.target.parentNode), a.filter ? a.filter(e, o) : e
},
special: {
load: {
noBubble: !0
},
focus: {
trigger: function () {
return this !== m() && this.focus ? (this.focus(), !1) : void 0
},
delegateType: "focusin"
},
blur: {
trigger: function () {
return this === m() && this.blur ? (this.blur(), !1) : void 0
},
delegateType: "focusout"
},
click: {
trigger: function () {
return "checkbox" === this.type && this.click && re.nodeName(this, "input") ? (this.click(), !1) : void 0
},
_default: function (e) {
return re.nodeName(e.target, "a")
}
},
beforeunload: {
postDispatch: function (e) {
void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result)
}
}
}
},
re.removeEvent = function (e, t, n) {
e.removeEventListener && e.removeEventListener(t, n)
},
re.Event = function (e, t) {
return this instanceof re.Event ? (e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? h : p) : this.type = e, t && re.extend(this, t), this.timeStamp = e && e.timeStamp || re.now(), void(this[re.expando] = !0)) : new re.Event(e, t)
},
re.Event.prototype = {
constructor: re.Event,
isDefaultPrevented: p,
isPropagationStopped: p,
isImmediatePropagationStopped: p,
isSimulated: !1,
preventDefault: function () {
var e = this.originalEvent;
this.isDefaultPrevented = h, e && !this.isSimulated && e.preventDefault()
},
stopPropagation: function () {
var e = this.originalEvent;
this.isPropagationStopped = h, e && !this.isSimulated && e.stopPropagation()
},
stopImmediatePropagation: function () {
var e = this.originalEvent;
this.isImmediatePropagationStopped = h, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation()
}
},
re.each({
mouseenter: "mouseover",
mouseleave: "mouseout",
pointerenter: "pointerover",
pointerleave: "pointerout"
}, function (e, t) {
re.event.special[e] = {
delegateType: t,
bindType: t,
handle: function (e) {
var n, i = this,
r = e.relatedTarget,
o = e.handleObj;
return r && (r === i || re.contains(i, r)) || (e.type = o.origType, n = o.handler.apply(this, arguments), e.type = t), n
}
}
}),
re.fn.extend({
on: function (e, t, n, i) {
return g(this, e, t, n, i)
},
one: function (e, t, n, i) {
return g(this, e, t, n, i, 1)
},
off: function (e, t, n) {
var i, r;
if (e && e.preventDefault && e.handleObj) return i = e.handleObj, re(e.delegateTarget).off(i.namespace ? i.origType + "." + i.namespace : i.origType, i.selector, i.handler), this;
if ("object" == typeof e) {
for (r in e) this.off(r, t, e[r]);
return this
}
return !1 !== t && "function" != typeof t || (n = t, t = void 0), !1 === n && (n = p), this.each(function () {
re.event.remove(this, e, n, t)
})
}
});
var Pe = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
He = /<script|<style|<link/i,
Fe = /checked\s*(?:[^=]|=\s*.checked.)/i,
We = /^true\/(.*)/,
Ue = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
re.extend({
htmlPrefilter: function (e) {
return e.replace(Pe, "<$1></$2>")
},
clone: function (e, t, n) {
var i, r, o, a, s = e.cloneNode(!0),
l = re.contains(e.ownerDocument, e);
if (!(ie.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || re.isXMLDoc(e)))
for (a = u(s), o = u(e), i = 0, r = o.length; r > i; i++) w(o[i], a[i]);
if (t)
if (n)
for (o = o || u(e), a = a || u(s), i = 0, r = o.length; r > i; i++) b(o[i], a[i]);
else b(e, s);
return a = u(s, "script"), a.length > 0 && d(a, !l && u(e, "script")), s
},
cleanData: function (e) {
for (var t, n, i, r = re.event.special, o = 0; void 0 !== (n = e[o]); o++)
if (xe(n)) {
if (t = n[Te.expando]) {
if (t.events)
for (i in t.events) r[i] ? re.event.remove(n, i) : re.removeEvent(n, i, t.handle);
n[Te.expando] = void 0
}
n[Ee.expando] && (n[Ee.expando] = void 0)
}
}
}),
re.fn.extend({
domManip: x,
detach: function (e) {
return T(this, e, !0)
},
remove: function (e) {
return T(this, e)
},
text: function (e) {
return we(this, function (e) {
return void 0 === e ? re.text(this) : this.empty().each(function () {
1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e)
})
}, null, e, arguments.length)
},
append: function () {
return x(this, arguments, function (e) {
1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || v(this, e).appendChild(e)
})
},
prepend: function () {
return x(this, arguments, function (e) {
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
var t = v(this, e);
t.insertBefore(e, t.firstChild)
}
})
},
before: function () {
return x(this, arguments, function (e) {
this.parentNode && this.parentNode.insertBefore(e, this)
})
},
after: function () {
return x(this, arguments, function (e) {
this.parentNode && this.parentNode.insertBefore(e, this.nextSibling)
})
},
empty: function () {
for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType && (re.cleanData(u(e, !1)), e.textContent = "");
return this
},
clone: function (e, t) {
return e = null != e && e, t = null == t ? e : t, this.map(function () {
return re.clone(this, e, t)
})
},
html: function (e) {
return we(this, function (e) {
var t = this[0] || {},
n = 0,
i = this.length;
if (void 0 === e && 1 === t.nodeType) return t.innerHTML;
if ("string" == typeof e && !He.test(e) && !je[($e.exec(e) || ["", ""])[1].toLowerCase()]) {
e = re.htmlPrefilter(e);
try {
for (; i > n; n++) t = this[n] || {}, 1 === t.nodeType && (re.cleanData(u(t, !1)), t.innerHTML = e);
t = 0
} catch (e) {}
}
t && this.empty().append(e)
}, null, e, arguments.length)
},
replaceWith: function () {
var e = [];
return x(this, arguments, function (t) {
var n = this.parentNode;
re.inArray(this, e) < 0 && (re.cleanData(u(this)), n && n.replaceChild(t, this))
}, e)
}
}),
re.each({
appendTo: "append",
prependTo: "prepend",
insertBefore: "before",
insertAfter: "after",
replaceAll: "replaceWith"
}, function (e, t) {
re.fn[e] = function (e) {
for (var n, i = [], r = re(e), o = r.length - 1, a = 0; o >= a; a++) n = a === o ? this : this.clone(!0), re(r[a])[t](n), J.apply(i, n.get());
return this.pushStack(i)
}
});
var Be, ze = {
HTML: "block",
BODY: "block"
},
Qe = /^margin/,
Ke = new RegExp("^(" + ke + ")(?!px)[a-z%]+$", "i"),
Ve = function (t) {
var n = t.ownerDocument.defaultView;
return n && n.opener || (n = e), n.getComputedStyle(t)
},
Xe = function (e, t, n, i) {
var r, o, a = {};
for (o in t) a[o] = e.style[o], e.style[o] = t[o];
r = n.apply(e, i || []);
for (o in t) e.style[o] = a[o];
return r
},
Ye = X.documentElement;
!function () {
function t() {
s.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%", s.innerHTML = "", Ye.appendChild(a);
var t = e.getComputedStyle(s);
n = "1%" !== t.top, o = "2px" === t.marginLeft, i = "4px" === t.width, s.style.marginRight = "50%", r = "4px" === t.marginRight, Ye.removeChild(a)
}
var n, i, r, o, a = X.createElement("div"),
s = X.createElement("div");
s.style && (s.style.backgroundClip = "content-box", s.cloneNode(!0).style.backgroundClip = "", ie.clearCloneStyle = "content-box" === s.style.backgroundClip, a.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute", a.appendChild(s), re.extend(ie, {
pixelPosition: function () {
return t(), n
},
boxSizingReliable: function () {
return null == i && t(), i
},
pixelMarginRight: function () {
return null == i && t(), r
},
reliableMarginLeft: function () {
return null == i && t(), o
},
reliableMarginRight: function () {
var t, n = s.appendChild(X.createElement("div"));
return n.style.cssText = s.style.cssText = "-webkit-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0", n.style.marginRight = n.style.width = "0", s.style.width = "1px", Ye.appendChild(a), t = !parseFloat(e.getComputedStyle(n).marginRight), Ye.removeChild(a), s.removeChild(n), t
}
}))
}();
var Ge = /^(none|table(?!-c[ea]).+)/,
Je = {
position: "absolute",
visibility: "hidden",
display: "block"
},
Ze = {
letterSpacing: "0",
fontWeight: "400"
},
et = ["Webkit", "O", "Moz", "ms"],
tt = X.createElement("div").style;
re.extend({
cssHooks: {
opacity: {
get: function (e, t) {
if (t) {
var n = S(e, "opacity");
return "" === n ? "1" : n
}
}
}
},
cssNumber: {
animationIterationCount: !0,
columnCount: !0,
fillOpacity: !0,
flexGrow: !0,
flexShrink: !0,
fontWeight: !0,
lineHeight: !0,
opacity: !0,
order: !0,
orphans: !0,
widows: !0,
zIndex: !0,
zoom: !0
},
cssProps: {
float: "cssFloat"
},
style: function (e, t, n, i) {
if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
var r, o, a, s = re.camelCase(t),
l = e.style;
return t = re.cssProps[s] || (re.cssProps[s] = A(s) || s), a = re.cssHooks[t] || re.cssHooks[s], void 0 === n ? a && "get" in a && void 0 !== (r = a.get(e, !1, i)) ? r : l[t] : (o = typeof n, "string" === o && (r = Ae.exec(n)) && r[1] && (n = c(e, t, r), o = "number"), void(null != n && n === n && ("number" === o && (n += r && r[3] || (re.cssNumber[s] ? "" : "px")), ie.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (l[t] = "inherit"), a && "set" in a && void 0 === (n = a.set(e, n, i)) || (l[t] = n))))
}
},
css: function (e, t, n, i) {
var r, o, a, s = re.camelCase(t);
return t = re.cssProps[s] || (re.cssProps[s] = A(s) || s), a = re.cssHooks[t] || re.cssHooks[s], a && "get" in a && (r = a.get(e, !0, n)), void 0 === r && (r = S(e, t, i)), "normal" === r && t in Ze && (r = Ze[t]), "" === n || n ? (o = parseFloat(r), !0 === n || isFinite(o) ? o || 0 : r) : r
}
}),
re.each(["height", "width"], function (e, t) {
re.cssHooks[t] = {
get: function (e, n, i) {
return n ? Ge.test(re.css(e, "display")) && 0 === e.offsetWidth ? Xe(e, Je, function () {
return I(e, t, i)
}) : I(e, t, i) : void 0
},
set: function (e, n, i) {
var r, o = i && Ve(e),
a = i && N(e, t, i, "border-box" === re.css(e, "boxSizing", !1, o), o);
return a && (r = Ae.exec(n)) && "px" !== (r[3] || "px") && (e.style[t] = n, n = re.css(e, t)), D(e, n, a)
}
}
}),
re.cssHooks.marginLeft = k(ie.reliableMarginLeft, function (e, t) {
return t ? (parseFloat(S(e, "marginLeft")) || e.getBoundingClientRect().left - Xe(e, {
marginLeft: 0
}, function () {
return e.getBoundingClientRect().left
})) + "px" : void 0
}),
re.cssHooks.marginRight = k(ie.reliableMarginRight, function (e, t) {
return t ? Xe(e, {
display: "inline-block"
}, S, [e, "marginRight"]) : void 0
}),
re.each({
margin: "",
padding: "",
border: "Width"
}, function (e, t) {
re.cssHooks[e + t] = {
expand: function (n) {
for (var i = 0, r = {}, o = "string" == typeof n ? n.split(" ") : [n]; 4 > i; i++) r[e + De[i] + t] = o[i] || o[i - 2] || o[0];
return r
}
}, Qe.test(e) || (re.cssHooks[e + t].set = D)
}),
re.fn.extend({
css: function (e, t) {
return we(this, function (e, t, n) {
var i, r, o = {},
a = 0;
if (re.isArray(t)) {
for (i = Ve(e), r = t.length; r > a; a++) o[t[a]] = re.css(e, t[a], !1, i);
return o
}
return void 0 !== n ? re.style(e, t, n) : re.css(e, t)
}, e, t, arguments.length > 1)
},
show: function () {
return $(this, !0)
},
hide: function () {
return $(this)
},
toggle: function (e) {
return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function () {
Ne(this) ? re(this).show() : re(this).hide()
})
}
}),
re.Tween = O,
O.prototype = {
constructor: O,
init: function (e, t, n, i, r, o) {
this.elem = e, this.prop = n, this.easing = r || re.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = i, this.unit = o || (re.cssNumber[n] ? "" : "px")
},
cur: function () {
var e = O.propHooks[this.prop];
return e && e.get ? e.get(this) : O.propHooks._default.get(this)
},
run: function (e) {
var t, n = O.propHooks[this.prop];
return this.options.duration ? this.pos = t = re.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : O.propHooks._default.set(this), this
}
},
O.prototype.init.prototype = O.prototype,
O.propHooks = {
_default: {
get: function (e) {
var t;
return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = re.css(e.elem, e.prop, ""), t && "auto" !== t ? t : 0)
},
set: function (e) {
re.fx.step[e.prop] ? re.fx.step[e.prop](e) : 1 !== e.elem.nodeType || null == e.elem.style[re.cssProps[e.prop]] && !re.cssHooks[e.prop] ? e.elem[e.prop] = e.now : re.style(e.elem, e.prop, e.now + e.unit)
}
}
},
O.propHooks.scrollTop = O.propHooks.scrollLeft = {
set: function (e) {
e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
}
},
re.easing = {
linear: function (e) {
return e
},
swing: function (e) {
return .5 - Math.cos(e * Math.PI) / 2
},
_default: "swing"
},
re.fx = O.prototype.init,
re.fx.step = {};
var nt, it, rt = /^(?:toggle|show|hide)$/,
ot = /queueHooks$/;
re.Animation = re.extend(P, {
tweeners: {
"*": [function (e, t) {
var n = this.createTween(e, t);
return c(n.elem, e, Ae.exec(t), n), n
}]
},
tweener: function (e, t) {
re.isFunction(e) ? (t = e, e = ["*"]) : e = e.match(_e);
for (var n, i = 0, r = e.length; r > i; i++) n = e[i], P.tweeners[n] = P.tweeners[n] || [], P.tweeners[n].unshift(t)
},
prefilters: [R],
prefilter: function (e, t) {
t ? P.prefilters.unshift(e) : P.prefilters.push(e)
}
}),
re.speed = function (e, t, n) {
var i = e && "object" == typeof e ? re.extend({}, e) : {
complete: n || !n && t || re.isFunction(e) && e,
duration: e,
easing: n && t || t && !re.isFunction(t) && t
};
return i.duration = re.fx.off ? 0 : "number" == typeof i.duration ? i.duration : i.duration in re.fx.speeds ? re.fx.speeds[i.duration] : re.fx.speeds._default, null != i.queue && !0 !== i.queue || (i.queue = "fx"), i.old = i.complete, i.complete = function () {
re.isFunction(i.old) && i.old.call(this), i.queue && re.dequeue(this, i.queue)
}, i
},
re.fn.extend({
fadeTo: function (e, t, n, i) {
return this.filter(Ne).css("opacity", 0).show().end().animate({
opacity: t
}, e, n, i)
},
animate: function (e, t, n, i) {
var r = re.isEmptyObject(e),
o = re.speed(t, n, i),
a = function () {
var t = P(this, re.extend({}, e), o);
(r || Te.get(this, "finish")) && t.stop(!0)
};
return a.finish = a, r || !1 === o.queue ? this.each(a) : this.queue(o.queue, a)
},
stop: function (e, t, n) {
var i = function (e) {
var t = e.stop;
delete e.stop, t(n)
};
return "string" != typeof e && (n = t, t = e, e = void 0), t && !1 !== e && this.queue(e || "fx", []), this.each(function () {
var t = !0,
r = null != e && e + "queueHooks",
o = re.timers,
a = Te.get(this);
if (r) a[r] && a[r].stop && i(a[r]);
else
for (r in a) a[r] && a[r].stop && ot.test(r) && i(a[r]);
for (r = o.length; r--;) o[r].elem !== this || null != e && o[r].queue !== e || (o[r].anim.stop(n), t = !1, o.splice(r, 1));
!t && n || re.dequeue(this, e)
})
},
finish: function (e) {
return !1 !== e && (e = e || "fx"), this.each(function () {
var t, n = Te.get(this),
i = n[e + "queue"],
r = n[e + "queueHooks"],
o = re.timers,
a = i ? i.length : 0;
for (n.finish = !0, re.queue(this, e, []), r && r.stop && r.stop.call(this, !0), t = o.length; t--;) o[t].elem === this && o[t].queue === e && (o[t].anim.stop(!0), o.splice(t, 1));
for (t = 0; a > t; t++) i[t] && i[t].finish && i[t].finish.call(this);
delete n.finish
})
}
}),
re.each(["toggle", "show", "hide"], function (e, t) {
var n = re.fn[t];
re.fn[t] = function (e, i, r) {
return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(L(t, !0), e, i, r)
}
}),
re.each({
slideDown: L("show"),
slideUp: L("hide"),
slideToggle: L("toggle"),
fadeIn: {
opacity: "show"
},
fadeOut: {
opacity: "hide"
},
fadeToggle: {
opacity: "toggle"
}
}, function (e, t) {
re.fn[e] = function (e, n, i) {
return this.animate(t, e, n, i)
}
}),
re.timers = [],
re.fx.tick = function () {
var e, t = 0,
n = re.timers;
for (nt = re.now(); t < n.length; t++)(e = n[t])() || n[t] !== e || n.splice(t--, 1);
n.length || re.fx.stop(), nt = void 0
},
re.fx.timer = function (e) {
re.timers.push(e), e() ? re.fx.start() : re.timers.pop()
},
re.fx.interval = 13,
re.fx.start = function () {
it || (it = e.setInterval(re.fx.tick, re.fx.interval))
},
re.fx.stop = function () {
e.clearInterval(it), it = null
},
re.fx.speeds = {
slow: 600,
fast: 200,
_default: 400
},
re.fn.delay = function (t, n) {
return t = re.fx ? re.fx.speeds[t] || t : t, n = n || "fx", this.queue(n, function (n, i) {
var r = e.setTimeout(n, t);
i.stop = function () {
e.clearTimeout(r)
}
})
},
function () {
var e = X.createElement("input"),
t = X.createElement("select"),
n = t.appendChild(X.createElement("option"));
e.type = "checkbox", ie.checkOn = "" !== e.value, ie.optSelected = n.selected, t.disabled = !0, ie.optDisabled = !n.disabled, e = X.createElement("input"), e.value = "t", e.type = "radio", ie.radioValue = "t" === e.value
}();
var at, st = re.expr.attrHandle;
re.fn.extend({
attr: function (e, t) {
return we(this, re.attr, e, t, arguments.length > 1)
},
removeAttr: function (e) {
return this.each(function () {
re.removeAttr(this, e)
})
}
}),
re.extend({
attr: function (e, t, n) {
var i, r, o = e.nodeType;
if (3 !== o && 8 !== o && 2 !== o) return void 0 === e.getAttribute ? re.prop(e, t, n) : (1 === o && re.isXMLDoc(e) || (t = t.toLowerCase(), r = re.attrHooks[t] || (re.expr.match.bool.test(t) ? at : void 0)), void 0 !== n ? null === n ? void re.removeAttr(e, t) : r && "set" in r && void 0 !== (i = r.set(e, n, t)) ? i : (e.setAttribute(t, n + ""), n) : r && "get" in r && null !== (i = r.get(e, t)) ? i : (i = re.find.attr(e, t), null == i ? void 0 : i))
},
attrHooks: {
type: {
set: function (e, t) {
if (!ie.radioValue && "radio" === t && re.nodeName(e, "input")) {
var n = e.value;
return e.setAttribute("type", t), n && (e.value = n), t
}
}
}
},
removeAttr: function (e, t) {
var n, i, r = 0,
o = t && t.match(_e);
if (o && 1 === e.nodeType)
for (; n = o[r++];) i = re.propFix[n] || n, re.expr.match.bool.test(n) && (e[i] = !1), e.removeAttribute(n)
}
}), at = {
set: function (e, t, n) {
return !1 === t ? re.removeAttr(e, n) : e.setAttribute(n, n), n
}
}, re.each(re.expr.match.bool.source.match(/\w+/g), function (e, t) {
var n = st[t] || re.find.attr;
st[t] = function (e, t, i) {
var r, o;
return i || (o = st[t], st[t] = r, r = null != n(e, t, i) ? t.toLowerCase() : null, st[t] = o), r
}
});
var lt = /^(?:input|select|textarea|button)$/i,
ct = /^(?:a|area)$/i;
re.fn.extend({
prop: function (e, t) {
return we(this, re.prop, e, t, arguments.length > 1)
},
removeProp: function (e) {
return this.each(function () {
delete this[re.propFix[e] || e]
})
}
}), re.extend({
prop: function (e, t, n) {
var i, r, o = e.nodeType;
if (3 !== o && 8 !== o && 2 !== o) return 1 === o && re.isXMLDoc(e) || (t = re.propFix[t] || t, r = re.propHooks[t]), void 0 !== n ? r && "set" in r && void 0 !== (i = r.set(e, n, t)) ? i : e[t] = n : r && "get" in r && null !== (i = r.get(e, t)) ? i : e[t]
},
propHooks: {
tabIndex: {
get: function (e) {
var t = re.find.attr(e, "tabindex");
return t ? parseInt(t, 10) : lt.test(e.nodeName) || ct.test(e.nodeName) && e.href ? 0 : -1
}
}
},
propFix: {
for: "htmlFor",
class: "className"
}
}), ie.optSelected || (re.propHooks.selected = {
get: function (e) {
var t = e.parentNode;
return t && t.parentNode && t.parentNode.selectedIndex, null
},
set: function (e) {
var t = e.parentNode;
t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex)
}
}), re.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () {
re.propFix[this.toLowerCase()] = this
});
var ut = /[\t\r\n\f]/g;
re.fn.extend({
addClass: function (e) {
var t, n, i, r, o, a, s, l = 0;
if (re.isFunction(e)) return this.each(function (t) {
re(this).addClass(e.call(this, t, H(this)))
});
if ("string" == typeof e && e)
for (t = e.match(_e) || []; n = this[l++];)
if (r = H(n), i = 1 === n.nodeType && (" " + r + " ").replace(ut, " ")) {
for (a = 0; o = t[a++];) i.indexOf(" " + o + " ") < 0 && (i += o + " ");
s = re.trim(i), r !== s && n.setAttribute("class", s)
} return this
},
removeClass: function (e) {
var t, n, i, r, o, a, s, l = 0;
if (re.isFunction(e)) return this.each(function (t) {
re(this).removeClass(e.call(this, t, H(this)))
});
if (!arguments.length) return this.attr("class", "");
if ("string" == typeof e && e)
for (t = e.match(_e) || []; n = this[l++];)
if (r = H(n), i = 1 === n.nodeType && (" " + r + " ").replace(ut, " ")) {
for (a = 0; o = t[a++];)
for (; i.indexOf(" " + o + " ") > -1;) i = i.replace(" " + o + " ", " ");
s = re.trim(i), r !== s && n.setAttribute("class", s)
} return this
},
toggleClass: function (e, t) {
var n = typeof e;
return "boolean" == typeof t && "string" === n ? t ? this.addClass(e) : this.removeClass(e) : re.isFunction(e) ? this.each(function (n) {
re(this).toggleClass(e.call(this, n, H(this), t), t)
}) : this.each(function () {
var t, i, r, o;
if ("string" === n)
for (i = 0, r = re(this), o = e.match(_e) || []; t = o[i++];) r.hasClass(t) ? r.removeClass(t) : r.addClass(t);
else void 0 !== e && "boolean" !== n || (t = H(this), t && Te.set(this, "__className__", t), this.setAttribute && this.setAttribute("class", t || !1 === e ? "" : Te.get(this, "__className__") || ""))
})
},
hasClass: function (e) {
var t, n, i = 0;
for (t = " " + e + " "; n = this[i++];)
if (1 === n.nodeType && (" " + H(n) + " ").replace(ut, " ").indexOf(t) > -1) return !0;
return !1
}
});
var dt = /\r/g,
ft = /[\x20\t\r\n\f]+/g;
re.fn.extend({
val: function (e) {
var t, n, i, r = this[0];
return arguments.length ? (i = re.isFunction(e), this.each(function (n) {
var r;
1 === this.nodeType && (r = i ? e.call(this, n, re(this).val()) : e, null == r ? r = "" : "number" == typeof r ? r += "" : re.isArray(r) && (r = re.map(r, function (e) {
return null == e ? "" : e + ""
})), (t = re.valHooks[this.type] || re.valHooks[this.nodeName.toLowerCase()]) && "set" in t && void 0 !== t.set(this, r, "value") || (this.value = r))
})) : r ? (t = re.valHooks[r.type] || re.valHooks[r.nodeName.toLowerCase()], t && "get" in t && void 0 !== (n = t.get(r, "value")) ? n : (n = r.value, "string" == typeof n ? n.replace(dt, "") : null == n ? "" : n)) : void 0
}
}), re.extend({
valHooks: {
option: {
get: function (e) {
var t = re.find.attr(e, "value");
return null != t ? t : re.trim(re.text(e)).replace(ft, " ")
}
},
select: {
get: function (e) {
for (var t, n, i = e.options, r = e.selectedIndex, o = "select-one" === e.type || 0 > r, a = o ? null : [], s = o ? r + 1 : i.length, l = 0 > r ? s : o ? r : 0; s > l; l++)
if (n = i[l], (n.selected || l === r) && (ie.optDisabled ? !n.disabled : null === n.getAttribute("disabled")) && (!n.parentNode.disabled || !re.nodeName(n.parentNode, "optgroup"))) {
if (t = re(n).val(), o) return t;
a.push(t)
} return a
},
set: function (e, t) {
for (var n, i, r = e.options, o = re.makeArray(t), a = r.length; a--;) i = r[a], (i.selected = re.inArray(re.valHooks.option.get(i), o) > -1) && (n = !0);
return n || (e.selectedIndex = -1), o
}
}
}
}), re.each(["radio", "checkbox"], function () {
re.valHooks[this] = {
set: function (e, t) {
return re.isArray(t) ? e.checked = re.inArray(re(e).val(), t) > -1 : void 0
}
}, ie.checkOn || (re.valHooks[this].get = function (e) {
return null === e.getAttribute("value") ? "on" : e.value
})
});
var ht = /^(?:focusinfocus|focusoutblur)$/;
re.extend(re.event, {
trigger: function (t, n, i, r) {
var o, a, s, l, c, u, d, f = [i || X],
h = ne.call(t, "type") ? t.type : t,
p = ne.call(t, "namespace") ? t.namespace.split(".") : [];
if (a = s = i = i || X, 3 !== i.nodeType && 8 !== i.nodeType && !ht.test(h + re.event.triggered) && (h.indexOf(".") > -1 && (p = h.split("."), h = p.shift(), p.sort()), c = h.indexOf(":") < 0 && "on" + h, t = t[re.expando] ? t : new re.Event(h, "object" == typeof t && t), t.isTrigger = r ? 2 : 3, t.namespace = p.join("."), t.rnamespace = t.namespace ? new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, t.result = void 0, t.target || (t.target = i), n = null == n ? [t] : re.makeArray(n, [t]), d = re.event.special[h] || {}, r || !d.trigger || !1 !== d.trigger.apply(i, n))) {
if (!r && !d.noBubble && !re.isWindow(i)) {
for (l = d.delegateType || h, ht.test(l + h) || (a = a.parentNode); a; a = a.parentNode) f.push(a), s = a;
s === (i.ownerDocument || X) && f.push(s.defaultView || s.parentWindow || e)
}
for (o = 0;
(a = f[o++]) && !t.isPropagationStopped();) t.type = o > 1 ? l : d.bindType || h, u = (Te.get(a, "events") || {})[t.type] && Te.get(a, "handle"), u && u.apply(a, n), (u = c && a[c]) && u.apply && xe(a) && (t.result = u.apply(a, n), !1 === t.result && t.preventDefault());
return t.type = h, r || t.isDefaultPrevented() || d._default && !1 !== d._default.apply(f.pop(), n) || !xe(i) || c && re.isFunction(i[h]) && !re.isWindow(i) && (s = i[c], s && (i[c] = null), re.event.triggered = h, i[h](), re.event.triggered = void 0, s && (i[c] = s)), t.result
}
},
simulate: function (e, t, n) {
var i = re.extend(new re.Event, n, {
type: e,
isSimulated: !0
});
re.event.trigger(i, null, t)
}
}), re.fn.extend({
trigger: function (e, t) {
return this.each(function () {
re.event.trigger(e, t, this)
})
},
triggerHandler: function (e, t) {
var n = this[0];
return n ? re.event.trigger(e, t, n, !0) : void 0
}
}), re.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function (e, t) {
re.fn[t] = function (e, n) {
return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t)
}
}), re.fn.extend({
hover: function (e, t) {
return this.mouseenter(e).mouseleave(t || e)
}
}), ie.focusin = "onfocusin" in e, ie.focusin || re.each({
focus: "focusin",
blur: "focusout"
}, function (e, t) {
var n = function (e) {
re.event.simulate(t, e.target, re.event.fix(e))
};
re.event.special[t] = {
setup: function () {
var i = this.ownerDocument || this,
r = Te.access(i, t);
r || i.addEventListener(e, n, !0), Te.access(i, t, (r || 0) + 1)
},
teardown: function () {
var i = this.ownerDocument || this,
r = Te.access(i, t) - 1;
r ? Te.access(i, t, r) : (i.removeEventListener(e, n, !0), Te.remove(i, t))
}
}
});
var pt = e.location,
mt = re.now(),
gt = /\?/;
re.parseJSON = function (e) {
return JSON.parse(e + "")
}, re.parseXML = function (t) {
var n;
if (!t || "string" != typeof t) return null;
try {
n = (new e.DOMParser).parseFromString(t, "text/xml")
} catch (e) {
n = void 0
}
return n && !n.getElementsByTagName("parsererror").length || re.error("Invalid XML: " + t), n
};
var vt = /#.*$/,
yt = /([?&])_=[^&]*/,
_t = /^(.*?):[ \t]*([^\r\n]*)$/gm,
bt = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
wt = /^(?:GET|HEAD)$/,
xt = /^\/\//,
Tt = {},
Et = {},
Ct = "*/".concat("*"),
St = X.createElement("a");
St.href = pt.href, re.extend({
active: 0,
lastModified: {},
etag: {},
ajaxSettings: {
url: pt.href,
type: "GET",
isLocal: bt.test(pt.protocol),
global: !0,
processData: !0,
async: !0,
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
accepts: {
"*": Ct,
text: "text/plain",
html: "text/html",
xml: "application/xml, text/xml",
json: "application/json, text/javascript"
},
contents: {
xml: /\bxml\b/,
html: /\bhtml/,
json: /\bjson\b/
},
responseFields: {
xml: "responseXML",
text: "responseText",
json: "responseJSON"
},
converters: {
"* text": String,
"text html": !0,
"text json": re.parseJSON,
"text xml": re.parseXML
},
flatOptions: {
url: !0,
context: !0
}
},
ajaxSetup: function (e, t) {
return t ? U(U(e, re.ajaxSettings), t) : U(re.ajaxSettings, e)
},
ajaxPrefilter: F(Tt),
ajaxTransport: F(Et),
ajax: function (t, n) {
function i(t, n, i, s) {
var c, d, y, _, w, T = n;
2 !== b && (b = 2, l && e.clearTimeout(l), r = void 0, a = s || "", x.readyState = t > 0 ? 4 : 0, c = t >= 200 && 300 > t || 304 === t, i && (_ = B(f, x, i)), _ = z(f, _, x, c), c ? (f.ifModified && (w = x.getResponseHeader("Last-Modified"), w && (re.lastModified[o] = w), (w = x.getResponseHeader("etag")) && (re.etag[o] = w)), 204 === t || "HEAD" === f.type ? T = "nocontent" : 304 === t ? T = "notmodified" : (T = _.state, d = _.data, y = _.error, c = !y)) : (y = T, !t && T || (T = "error", 0 > t && (t = 0))), x.status = t, x.statusText = (n || T) + "", c ? m.resolveWith(h, [d, T, x]) : m.rejectWith(h, [x, T, y]), x.statusCode(v), v = void 0, u && p.trigger(c ? "ajaxSuccess" : "ajaxError", [x, f, c ? d : y]), g.fireWith(h, [x, T]), u && (p.trigger("ajaxComplete", [x, f]), --re.active || re.event.trigger("ajaxStop")))
}
"object" == typeof t && (n = t, t = void 0), n = n || {};
var r, o, a, s, l, c, u, d, f = re.ajaxSetup({}, n),
h = f.context || f,
p = f.context && (h.nodeType || h.jquery) ? re(h) : re.event,
m = re.Deferred(),
g = re.Callbacks("once memory"),
v = f.statusCode || {},
y = {},
_ = {},
b = 0,
w = "canceled",
x = {
readyState: 0,
getResponseHeader: function (e) {
var t;
if (2 === b) {
if (!s)
for (s = {}; t = _t.exec(a);) s[t[1].toLowerCase()] = t[2];
t = s[e.toLowerCase()]
}
return null == t ? null : t
},
getAllResponseHeaders: function () {
return 2 === b ? a : null
},
setRequestHeader: function (e, t) {
var n = e.toLowerCase();
return b || (e = _[n] = _[n] || e, y[e] = t), this
},
overrideMimeType: function (e) {
return b || (f.mimeType = e), this
},
statusCode: function (e) {
var t;
if (e)
if (2 > b)
for (t in e) v[t] = [v[t], e[t]];
else x.always(e[x.status]);
return this
},
abort: function (e) {
var t = e || w;
return r && r.abort(t), i(0, t), this
}
};
if (m.promise(x).complete = g.add, x.success = x.done, x.error = x.fail, f.url = ((t || f.url || pt.href) + "").replace(vt, "").replace(xt, pt.protocol + "//"), f.type = n.method || n.type || f.method || f.type, f.dataTypes = re.trim(f.dataType || "*").toLowerCase().match(_e) || [""], null == f.crossDomain) {
c = X.createElement("a");
try {
c.href = f.url, c.href = c.href, f.crossDomain = St.protocol + "//" + St.host != c.protocol + "//" + c.host
} catch (e) {
f.crossDomain = !0
}
}
if (f.data && f.processData && "string" != typeof f.data && (f.data = re.param(f.data, f.traditional)), W(Tt, f, n, x), 2 === b) return x;
u = re.event && f.global, u && 0 == re.active++ && re.event.trigger("ajaxStart"), f.type = f.type.toUpperCase(), f.hasContent = !wt.test(f.type), o = f.url, f.hasContent || (f.data && (o = f.url += (gt.test(o) ? "&" : "?") + f.data, delete f.data), !1 === f.cache && (f.url = yt.test(o) ? o.replace(yt, "$1_=" + mt++) : o + (gt.test(o) ? "&" : "?") + "_=" + mt++)), f.ifModified && (re.lastModified[o] && x.setRequestHeader("If-Modified-Since", re.lastModified[o]), re.etag[o] && x.setRequestHeader("If-None-Match", re.etag[o])), (f.data && f.hasContent && !1 !== f.contentType || n.contentType) && x.setRequestHeader("Content-Type", f.contentType), x.setRequestHeader("Accept", f.dataTypes[0] && f.accepts[f.dataTypes[0]] ? f.accepts[f.dataTypes[0]] + ("*" !== f.dataTypes[0] ? ", " + Ct + "; q=0.01" : "") : f.accepts["*"]);
for (d in f.headers) x.setRequestHeader(d, f.headers[d]);
if (f.beforeSend && (!1 === f.beforeSend.call(h, x, f) || 2 === b)) return x.abort();
w = "abort";
for (d in {
success: 1,
error: 1,
complete: 1
}) x[d](f[d]);
if (r = W(Et, f, n, x)) {
if (x.readyState = 1, u && p.trigger("ajaxSend", [x, f]), 2 === b) return x;
f.async && f.timeout > 0 && (l = e.setTimeout(function () {
x.abort("timeout")
}, f.timeout));
try {
b = 1, r.send(y, i)
} catch (e) {
if (!(2 > b)) throw e;
i(-1, e)
}
} else i(-1, "No Transport");
return x
},
getJSON: function (e, t, n) {
return re.get(e, t, n, "json")
},
getScript: function (e, t) {
return re.get(e, void 0, t, "script")
}
}), re.each(["get", "post"], function (e, t) {
re[t] = function (e, n, i, r) {
return re.isFunction(n) && (r = r || i, i = n, n = void 0), re.ajax(re.extend({
url: e,
type: t,
dataType: r,
data: n,
success: i
}, re.isPlainObject(e) && e))
}
}), re._evalUrl = function (e) {
return re.ajax({
url: e,
type: "GET",
dataType: "script",
async: !1,
global: !1,
throws: !0
})
}, re.fn.extend({
wrapAll: function (e) {
var t;
return re.isFunction(e) ? this.each(function (t) {
re(this).wrapAll(e.call(this, t))
}) : (this[0] && (t = re(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(function () {
for (var e = this; e.firstElementChild;) e = e.firstElementChild;
return e
}).append(this)), this)
},
wrapInner: function (e) {
return re.isFunction(e) ? this.each(function (t) {
re(this).wrapInner(e.call(this, t))
}) : this.each(function () {
var t = re(this),
n = t.contents();
n.length ? n.wrapAll(e) : t.append(e)
})
},
wrap: function (e) {
var t = re.isFunction(e);
return this.each(function (n) {
re(this).wrapAll(t ? e.call(this, n) : e)
})
},
unwrap: function () {
return this.parent().each(function () {
re.nodeName(this, "body") || re(this).replaceWith(this.childNodes)
}).end()
}
}), re.expr.filters.hidden = function (e) {
return !re.expr.filters.visible(e)
}, re.expr.filters.visible = function (e) {
return e.offsetWidth > 0 || e.offsetHeight > 0 || e.getClientRects().length > 0
};
var kt = /%20/g,
At = /\[\]$/,
Dt = /\r?\n/g,
Nt = /^(?:submit|button|image|reset|file)$/i,
It = /^(?:input|select|textarea|keygen)/i;
re.param = function (e, t) {
var n, i = [],
r = function (e, t) {
t = re.isFunction(t) ? t() : null == t ? "" : t, i[i.length] = encodeURIComponent(e) + "=" + encodeURIComponent(t)
};
if (void 0 === t && (t = re.ajaxSettings && re.ajaxSettings.traditional), re.isArray(e) || e.jquery && !re.isPlainObject(e)) re.each(e, function () {
r(this.name, this.value)
});
else
for (n in e) Q(n, e[n], t, r);
return i.join("&").replace(kt, "+")
}, re.fn.extend({
serialize: function () {
return re.param(this.serializeArray())
},
serializeArray: function () {
return this.map(function () {
var e = re.prop(this, "elements");
return e ? re.makeArray(e) : this
}).filter(function () {
var e = this.type;
return this.name && !re(this).is(":disabled") && It.test(this.nodeName) && !Nt.test(e) && (this.checked || !Ie.test(e))
}).map(function (e, t) {
var n = re(this).val();
return null == n ? null : re.isArray(n) ? re.map(n, function (e) {
return {
name: t.name,
value: e.replace(Dt, "\r\n")
}
}) : {
name: t.name,
value: n.replace(Dt, "\r\n")
}
}).get()
}
}), re.ajaxSettings.xhr = function () {
try {
return new e.XMLHttpRequest
} catch (e) {}
};
var $t = {
0: 200,
1223: 204
},
Ot = re.ajaxSettings.xhr();
ie.cors = !!Ot && "withCredentials" in Ot, ie.ajax = Ot = !!Ot, re.ajaxTransport(function (t) {
var n, i;
return ie.cors || Ot && !t.crossDomain ? {
send: function (r, o) {
var a, s = t.xhr();
if (s.open(t.type, t.url, t.async, t.username, t.password), t.xhrFields)
for (a in t.xhrFields) s[a] = t.xhrFields[a];
t.mimeType && s.overrideMimeType && s.overrideMimeType(t.mimeType), t.crossDomain || r["X-Requested-With"] || (r["X-Requested-With"] = "XMLHttpRequest");
for (a in r) s.setRequestHeader(a, r[a]);
n = function (e) {
return function () {
n && (n = i = s.onload = s.onerror = s.onabort = s.onreadystatechange = null, "abort" === e ? s.abort() : "error" === e ? "number" != typeof s.status ? o(0, "error") : o(s.status, s.statusText) : o($t[s.status] || s.status, s.statusText, "text" !== (s.responseType || "text") || "string" != typeof s.responseText ? {
binary: s.response
} : {
text: s.responseText
}, s.getAllResponseHeaders()))
}
}, s.onload = n(), i = s.onerror = n("error"), void 0 !== s.onabort ? s.onabort = i : s.onreadystatechange = function () {
4 === s.readyState && e.setTimeout(function () {
n && i()
})
}, n = n("abort");
try {
s.send(t.hasContent && t.data || null)
} catch (e) {
if (n) throw e
}
},
abort: function () {
n && n()
}
} : void 0
}), re.ajaxSetup({
accepts: {
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
},
contents: {
script: /\b(?:java|ecma)script\b/
},
converters: {
"text script": function (e) {
return re.globalEval(e), e
}
}
}), re.ajaxPrefilter("script", function (e) {
void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET")
}), re.ajaxTransport("script", function (e) {
if (e.crossDomain) {
var t, n;
return {
send: function (i, r) {
t = re("<script>").prop({
charset: e.scriptCharset,
src: e.url
}).on("load error", n = function (e) {
t.remove(), n = null, e && r("error" === e.type ? 404 : 200, e.type)
}), X.head.appendChild(t[0])
},
abort: function () {
n && n()
}
}
}
});
var jt = [],
Lt = /(=)\?(?=&|$)|\?\?/;
re.ajaxSetup({
jsonp: "callback",
jsonpCallback: function () {
var e = jt.pop() || re.expando + "_" + mt++;
return this[e] = !0, e
}
}), re.ajaxPrefilter("json jsonp", function (t, n, i) {
var r, o, a, s = !1 !== t.jsonp && (Lt.test(t.url) ? "url" : "string" == typeof t.data && 0 === (t.contentType || "").indexOf("application/x-www-form-urlencoded") && Lt.test(t.data) && "data");
return s || "jsonp" === t.dataTypes[0] ? (r = t.jsonpCallback = re.isFunction(t.jsonpCallback) ? t.jsonpCallback() : t.jsonpCallback, s ? t[s] = t[s].replace(Lt, "$1" + r) : !1 !== t.jsonp && (t.url += (gt.test(t.url) ? "&" : "?") + t.jsonp + "=" + r), t.converters["script json"] = function () {
return a || re.error(r + " was not called"), a[0]
}, t.dataTypes[0] = "json", o = e[r], e[r] = function () {
a = arguments
}, i.always(function () {
void 0 === o ? re(e).removeProp(r) : e[r] = o, t[r] && (t.jsonpCallback = n.jsonpCallback, jt.push(r)), a && re.isFunction(o) && o(a[0]), a = o = void 0
}), "script") : void 0
}), re.parseHTML = function (e, t, n) {
if (!e || "string" != typeof e) return null;
"boolean" == typeof t && (n = t, t = !1), t = t || X;
var i = he.exec(e),
r = !n && [];
return i ? [t.createElement(i[1])] : (i = f([e], t, r), r && r.length && re(r).remove(), re.merge([], i.childNodes))
};
var Mt = re.fn.load;
re.fn.load = function (e, t, n) {
if ("string" != typeof e && Mt) return Mt.apply(this, arguments);
var i, r, o, a = this,
s = e.indexOf(" ");
return s > -1 && (i = re.trim(e.slice(s)), e = e.slice(0, s)), re.isFunction(t) ? (n = t, t = void 0) : t && "object" == typeof t && (r = "POST"), a.length > 0 && re.ajax({
url: e,
type: r || "GET",
dataType: "html",
data: t
}).done(function (e) {
o = arguments, a.html(i ? re("<div>").append(re.parseHTML(e)).find(i) : e)
}).always(n && function (e, t) {
a.each(function () {
n.apply(this, o || [e.responseText, t, e])
})
}), this
}, re.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (e, t) {
re.fn[t] = function (e) {
return this.on(t, e)
}
}), re.expr.filters.animated = function (e) {
return re.grep(re.timers, function (t) {
return e === t.elem
}).length
}, re.offset = {
setOffset: function (e, t, n) {
var i, r, o, a, s, l, c, u = re.css(e, "position"),
d = re(e),
f = {};
"static" === u && (e.style.position = "relative"), s = d.offset(), o = re.css(e, "top"), l = re.css(e, "left"), c = ("absolute" === u || "fixed" === u) && (o + l).indexOf("auto") > -1, c ? (i = d.position(), a = i.top, r = i.left) : (a = parseFloat(o) || 0, r = parseFloat(l) || 0), re.isFunction(t) && (t = t.call(e, n, re.extend({}, s))), null != t.top && (f.top = t.top - s.top + a), null != t.left && (f.left = t.left - s.left + r), "using" in t ? t.using.call(e, f) : d.css(f)
}
}, re.fn.extend({
offset: function (e) {
if (arguments.length) return void 0 === e ? this : this.each(function (t) {
re.offset.setOffset(this, e, t)
});
var t, n, i = this[0],
r = {
top: 0,
left: 0
},
o = i && i.ownerDocument;
return o ? (t = o.documentElement, re.contains(t, i) ? (r = i.getBoundingClientRect(), n = K(o), {
top: r.top + n.pageYOffset - t.clientTop,
left: r.left + n.pageXOffset - t.clientLeft
}) : r) : void 0
},
position: function () {
if (this[0]) {
var e, t, n = this[0],
i = {
top: 0,
left: 0
};
return "fixed" === re.css(n, "position") ? t = n.getBoundingClientRect() : (e = this.offsetParent(), t = this.offset(), re.nodeName(e[0], "html") || (i = e.offset()), i.top += re.css(e[0], "borderTopWidth", !0), i.left += re.css(e[0], "borderLeftWidth", !0)), {
top: t.top - i.top - re.css(n, "marginTop", !0),
left: t.left - i.left - re.css(n, "marginLeft", !0)
}
}
},
offsetParent: function () {
return this.map(function () {
for (var e = this.offsetParent; e && "static" === re.css(e, "position");) e = e.offsetParent;
return e || Ye
})
}
}), re.each({
scrollLeft: "pageXOffset",
scrollTop: "pageYOffset"
}, function (e, t) {
var n = "pageYOffset" === t;
re.fn[e] = function (i) {
return we(this, function (e, i, r) {
var o = K(e);
return void 0 === r ? o ? o[t] : e[i] : void(o ? o.scrollTo(n ? o.pageXOffset : r, n ? r : o.pageYOffset) : e[i] = r)
}, e, i, arguments.length)
}
}), re.each(["top", "left"], function (e, t) {
re.cssHooks[t] = k(ie.pixelPosition, function (e, n) {
return n ? (n = S(e, t), Ke.test(n) ? re(e).position()[t] + "px" : n) : void 0
})
}), re.each({
Height: "height",
Width: "width"
}, function (e, t) {
re.each({
padding: "inner" + e,
content: t,
"": "outer" + e
}, function (n, i) {
re.fn[i] = function (i, r) {
var o = arguments.length && (n || "boolean" != typeof i),
a = n || (!0 === i || !0 === r ? "margin" : "border");
return we(this, function (t, n, i) {
var r;
return re.isWindow(t) ? t.document.documentElement["client" + e] : 9 === t.nodeType ? (r = t.documentElement, Math.max(t.body["scroll" + e], r["scroll" + e], t.body["offset" + e], r["offset" + e], r["client" + e])) : void 0 === i ? re.css(t, n, a) : re.style(t, n, i, a)
}, t, o ? i : void 0, o, null)
}
})
}), re.fn.extend({
bind: function (e, t, n) {
return this.on(e, null, t, n)
},
unbind: function (e, t) {
return this.off(e, null, t)
},
delegate: function (e, t, n, i) {
return this.on(t, e, n, i)
},
undelegate: function (e, t, n) {
return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n)
},
size: function () {
return this.length
}
}), re.fn.andSelf = re.fn.addBack, "function" == typeof define && define.amd && define("jquery", [], function () {
return re
});
var Rt = e.jQuery,
qt = e.$;
return re.noConflict = function (t) {
return e.$ === re && (e.$ = qt), t && e.jQuery === re && (e.jQuery = Rt), re
}, t || (e.jQuery = e.$ = re), re
}),
// 某种库 猜测是小窗口的提示信息 https://popper.js.org
function (e, t) {
"object" == typeof exports && "undefined" != typeof module ? t(exports, require("jquery"), require("popper.js")) : "function" == typeof define && define.amd ? define(["exports", "jquery", "popper.js"], t) : t((e = e || self).bootstrap = {}, e.jQuery, e.Popper)
}(this, function (e, t, n) {
"use strict";
function i(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
function r(e, t, n) {
return t && i(e.prototype, t), n && i(e, n), e
}
function o(e) {
for (var t = 1; t < arguments.length; t++) {
var n = null != arguments[t] ? arguments[t] : {},
i = Object.keys(n);
"function" == typeof Object.getOwnPropertySymbols && (i = i.concat(Object.getOwnPropertySymbols(n).filter(function (e) {
return Object.getOwnPropertyDescriptor(n, e).enumerable
}))), i.forEach(function (t) {
var i, r, o;
i = e, o = n[r = t], r in i ? Object.defineProperty(i, r, {
value: o,
enumerable: !0,
configurable: !0,
writable: !0
}) : i[r] = o
})
}
return e
}
function a(e) {
var n = this,
i = !1;
return t(this).one(c.TRANSITION_END, function () {
i = !0
}), setTimeout(function () {
i || c.triggerTransitionEnd(n)
}, e), this
}
function s(e, t, n) {
if (0 === e.length) return e;
if (n && "function" == typeof n) return n(e);
for (var i = (new window.DOMParser).parseFromString(e, "text/html"), r = Object.keys(t), o = [].slice.call(i.body.querySelectorAll("*")), a = 0, s = o.length; a < s; a++) ! function (e, n) {
var i = o[e],
a = i.nodeName.toLowerCase();
if (-1 === r.indexOf(i.nodeName.toLowerCase())) return i.parentNode.removeChild(i), "continue";
var s = [].slice.call(i.attributes),
l = [].concat(t["*"] || [], t[a] || []);
s.forEach(function (e) {
(function (e, t) {
var n = e.nodeName.toLowerCase();
if (-1 !== t.indexOf(n)) return -1 === De.indexOf(n) || Boolean(e.nodeValue.match(Ie) || e.nodeValue.match($e));
for (var i = t.filter(function (e) {
return e instanceof RegExp
}), r = 0, o = i.length; r < o; r++)
if (n.match(i[r])) return !0;
return !1
})(e, l) || i.removeAttribute(e.nodeName)
})
}(a);
return i.body.innerHTML
}
t = t && t.hasOwnProperty("default") ? t.default : t, n = n && n.hasOwnProperty("default") ? n.default : n;
var l = "transitionend",
c = {
TRANSITION_END: "bsTransitionEnd",
getUID: function (e) {
for (; e += ~~(1e6 * Math.random()), document.getElementById(e););
return e
},
getSelectorFromElement: function (e) {
var t = e.getAttribute("data-target");
if (!t || "#" === t) {
var n = e.getAttribute("href");
t = n && "#" !== n ? n.trim() : ""
}
try {
return document.querySelector(t) ? t : null
} catch (e) {
return null
}
},
getTransitionDurationFromElement: function (e) {
if (!e) return 0;
var n = t(e).css("transition-duration"),
i = t(e).css("transition-delay"),
r = parseFloat(n),
o = parseFloat(i);
return r || o ? (n = n.split(",")[0], i = i.split(",")[0], 1e3 * (parseFloat(n) + parseFloat(i))) : 0
},
reflow: function (e) {
return e.offsetHeight
},
triggerTransitionEnd: function (e) {
t(e).trigger(l)
},
supportsTransitionEnd: function () {
return Boolean(l)
},
isElement: function (e) {
return (e[0] || e).nodeType
},
typeCheckConfig: function (e, t, n) {
for (var i in n)
if (Object.prototype.hasOwnProperty.call(n, i)) {
var r = n[i],
o = t[i],
a = o && c.isElement(o) ? "element" : (s = o, {}.toString.call(s).match(/\s([a-z]+)/i)[1].toLowerCase());
if (!new RegExp(r).test(a)) throw new Error(e.toUpperCase() + ': Option "' + i + '" provided type "' + a + '" but expected type "' + r + '".')
} var s
},
findShadowRoot: function (e) {
if (!document.documentElement.attachShadow) return null;
if ("function" != typeof e.getRootNode) return e instanceof ShadowRoot ? e : e.parentNode ? c.findShadowRoot(e.parentNode) : null;
var t = e.getRootNode();
return t instanceof ShadowRoot ? t : null
}
};
t.fn.emulateTransitionEnd = a, t.event.special[c.TRANSITION_END] = {
bindType: l,
delegateType: l,
handle: function (e) {
if (t(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
}
};
var u = "alert",
d = "bs.alert",
f = "." + d,
h = t.fn[u],
p = {
CLOSE: "close" + f,
CLOSED: "closed" + f,
CLICK_DATA_API: "click" + f + ".data-api"
},
m = function () {
function e(e) {
this._element = e
}
var n = e.prototype;
return n.close = function (e) {
var t = this._element;
e && (t = this._getRootElement(e)), this._triggerCloseEvent(t).isDefaultPrevented() || this._removeElement(t)
}, n.dispose = function () {
t.removeData(this._element, d), this._element = null
}, n._getRootElement = function (e) {
var n = c.getSelectorFromElement(e),
i = !1;
return n && (i = document.querySelector(n)), i || (i = t(e).closest(".alert")[0]), i
}, n._triggerCloseEvent = function (e) {
var n = t.Event(p.CLOSE);
return t(e).trigger(n), n
}, n._removeElement = function (e) {
var n = this;
if (t(e).removeClass("show"), t(e).hasClass("fade")) {
var i = c.getTransitionDurationFromElement(e);
t(e).one(c.TRANSITION_END, function (t) {
return n._destroyElement(e, t)
}).emulateTransitionEnd(i)
} else this._destroyElement(e)
}, n._destroyElement = function (e) {
t(e).detach().trigger(p.CLOSED).remove()
}, e._jQueryInterface = function (n) {
return this.each(function () {
var i = t(this),
r = i.data(d);
r || (r = new e(this), i.data(d, r)), "close" === n && r[n](this)
})
}, e._handleDismiss = function (e) {
return function (t) {
t && t.preventDefault(), e.close(this)
}
}, r(e, null, [{
key: "VERSION",
get: function () {
return "4.3.1"
}
}]), e
}();
t(document).on(p.CLICK_DATA_API, '[data-dismiss="alert"]', m._handleDismiss(new m)), t.fn[u] = m._jQueryInterface, t.fn[u].Constructor = m, t.fn[u].noConflict = function () {
return t.fn[u] = h, m._jQueryInterface
};
var g = "button",
v = "bs.button",
y = "." + v,
_ = ".data-api",
b = t.fn[g],
w = "active",
x = '[data-toggle^="button"]',
T = ".btn",
E = {
CLICK_DATA_API: "click" + y + _,
FOCUS_BLUR_DATA_API: "focus" + y + _ + " blur" + y + _
},
C = function () {
function e(e) {
this._element = e
}
var n = e.prototype;
return n.toggle = function () {
var e = !0,
n = !0,
i = t(this._element).closest('[data-toggle="buttons"]')[0];
if (i) {
var r = this._element.querySelector('input:not([type="hidden"])');
if (r) {
if ("radio" === r.type)
if (r.checked && this._element.classList.contains(w)) e = !1;
else {
var o = i.querySelector(".active");
o && t(o).removeClass(w)
} if (e) {
if (r.hasAttribute("disabled") || i.hasAttribute("disabled") || r.classList.contains("disabled") || i.classList.contains("disabled")) return;
r.checked = !this._element.classList.contains(w), t(r).trigger("change")
}
r.focus(), n = !1
}
}
n && this._element.setAttribute("aria-pressed", !this._element.classList.contains(w)), e && t(this._element).toggleClass(w)
}, n.dispose = function () {
t.removeData(this._element, v), this._element = null
}, e._jQueryInterface = function (n) {
return this.each(function () {
var i = t(this).data(v);
i || (i = new e(this), t(this).data(v, i)), "toggle" === n && i[n]()
})
}, r(e, null, [{
key: "VERSION",
get: function () {
return "4.3.1"
}
}]), e
}();
t(document).on(E.CLICK_DATA_API, x, function (e) {
e.preventDefault();
var n = e.target;
t(n).hasClass("btn") || (n = t(n).closest(T)), C._jQueryInterface.call(t(n), "toggle")
}).on(E.FOCUS_BLUR_DATA_API, x, function (e) {
var n = t(e.target).closest(T)[0];
t(n).toggleClass("focus", /^focus(in)?$/.test(e.type))
}), t.fn[g] = C._jQueryInterface, t.fn[g].Constructor = C, t.fn[g].noConflict = function () {
return t.fn[g] = b, C._jQueryInterface
};
var S = "carousel",
k = "bs.carousel",
A = "." + k,
D = ".data-api",
N = t.fn[S],
I = {
interval: 5e3,
keyboard: !0,
slide: !1,
pause: "hover",
wrap: !0,
touch: !0
},
$ = {
interval: "(number|boolean)",
keyboard: "boolean",
slide: "(boolean|string)",
pause: "(string|boolean)",
wrap: "boolean",
touch: "boolean"
},
O = "next",
j = "prev",
L = {
SLIDE: "slide" + A,
SLID: "slid" + A,
KEYDOWN: "keydown" + A,
MOUSEENTER: "mouseenter" + A,
MOUSELEAVE: "mouseleave" + A,
TOUCHSTART: "touchstart" + A,
TOUCHMOVE: "touchmove" + A,
TOUCHEND: "touchend" + A,
POINTERDOWN: "pointerdown" + A,
POINTERUP: "pointerup" + A,
DRAG_START: "dragstart" + A,
LOAD_DATA_API: "load" + A + D,
CLICK_DATA_API: "click" + A + D
},
M = "active",
R = ".active.carousel-item",
q = ".carousel-indicators",
P = {
TOUCH: "touch",
PEN: "pen"
},
H = function () {
function e(e, t) {
this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this.touchStartX = 0, this.touchDeltaX = 0, this._config = this._getConfig(t), this._element = e, this._indicatorsElement = this._element.querySelector(q), this._touchSupported = "ontouchstart" in document.documentElement || 0 < navigator.maxTouchPoints, this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent), this._addEventListeners()
}
var n = e.prototype;
return n.next = function () {
this._isSliding || this._slide(O)
}, n.nextWhenVisible = function () {
!document.hidden && t(this._element).is(":visible") && "hidden" !== t(this._element).css("visibility") && this.next()
}, n.prev = function () {
this._isSliding || this._slide(j)
}, n.pause = function (e) {
e || (this._isPaused = !0), this._element.querySelector(".carousel-item-next, .carousel-item-prev") && (c.triggerTransitionEnd(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null
}, n.cycle = function (e) {
e || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config.interval && !this._isPaused && (this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval))
}, n.to = function (e) {
var n = this;
this._activeElement = this._element.querySelector(R);
var i = this._getItemIndex(this._activeElement);
if (!(e > this._items.length - 1 || e < 0))
if (this._isSliding) t(this._element).one(L.SLID, function () {
return n.to(e)
});
else {
if (i === e) return this.pause(), void this.cycle();
var r = i < e ? O : j;
this._slide(r, this._items[e])
}
}, n.dispose = function () {
t(this._element).off(A), t.removeData(this._element, k), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null
}, n._getConfig = function (e) {
return e = o({}, I, e), c.typeCheckConfig(S, e, $), e
}, n._handleSwipe = function () {
var e = Math.abs(this.touchDeltaX);
if (!(e <= 40)) {
var t = e / this.touchDeltaX;
0 < t && this.prev(), t < 0 && this.next()
}
}, n._addEventListeners = function () {
var e = this;
this._config.keyboard && t(this._element).on(L.KEYDOWN, function (t) {
return e._keydown(t)
}), "hover" === this._config.pause && t(this._element).on(L.MOUSEENTER, function (t) {
return e.pause(t)
}).on(L.MOUSELEAVE, function (t) {
return e.cycle(t)
}), this._config.touch && this._addTouchEventListeners()
}, n._addTouchEventListeners = function () {
var e = this;
if (this._touchSupported) {
var n = function (t) {
e._pointerEvent && P[t.originalEvent.pointerType.toUpperCase()] ? e.touchStartX = t.originalEvent.clientX : e._pointerEvent || (e.touchStartX = t.originalEvent.touches[0].clientX)
},
i = function (t) {
e._pointerEvent && P[t.originalEvent.pointerType.toUpperCase()] && (e.touchDeltaX = t.originalEvent.clientX - e.touchStartX), e._handleSwipe(), "hover" === e._config.pause && (e.pause(), e.touchTimeout && clearTimeout(e.touchTimeout), e.touchTimeout = setTimeout(function (t) {
return e.cycle(t)
}, 500 + e._config.interval))
};
t(this._element.querySelectorAll(".carousel-item img")).on(L.DRAG_START, function (e) {
return e.preventDefault()
}), this._pointerEvent ? (t(this._element).on(L.POINTERDOWN, function (e) {
return n(e)
}), t(this._element).on(L.POINTERUP, function (e) {
return i(e)
}), this._element.classList.add("pointer-event")) : (t(this._element).on(L.TOUCHSTART, function (e) {
return n(e)
}), t(this._element).on(L.TOUCHMOVE, function (t) {
var n;
(n = t).originalEvent.touches && 1 < n.originalEvent.touches.length ? e.touchDeltaX = 0 : e.touchDeltaX = n.originalEvent.touches[0].clientX - e.touchStartX
}), t(this._element).on(L.TOUCHEND, function (e) {
return i(e)
}))
}
}, n._keydown = function (e) {
if (!/input|textarea/i.test(e.target.tagName)) switch (e.which) {
case 37:
e.preventDefault(), this.prev();
break;
case 39:
e.preventDefault(), this.next()
}
}, n._getItemIndex = function (e) {
return this._items = e && e.parentNode ? [].slice.call(e.parentNode.querySelectorAll(".carousel-item")) : [], this._items.indexOf(e)
}, n._getItemByDirection = function (e, t) {
var n = e === O,
i = e === j,
r = this._getItemIndex(t),
o = this._items.length - 1;
if ((i && 0 === r || n && r === o) && !this._config.wrap) return t;
var a = (r + (e === j ? -1 : 1)) % this._items.length;
return -1 === a ? this._items[this._items.length - 1] : this._items[a]
}, n._triggerSlideEvent = function (e, n) {
var i = this._getItemIndex(e),
r = this._getItemIndex(this._element.querySelector(R)),
o = t.Event(L.SLIDE, {
relatedTarget: e,
direction: n,
from: r,
to: i
});
return t(this._element).trigger(o), o
}, n._setActiveIndicatorElement = function (e) {
if (this._indicatorsElement) {
var n = [].slice.call(this._indicatorsElement.querySelectorAll(".active"));
t(n).removeClass(M);
var i = this._indicatorsElement.children[this._getItemIndex(e)];
i && t(i).addClass(M)
}
}, n._slide = function (e, n) {
var i, r, o, a = this,
s = this._element.querySelector(R),
l = this._getItemIndex(s),
u = n || s && this._getItemByDirection(e, s),
d = this._getItemIndex(u),
f = Boolean(this._interval);
if (o = e === O ? (i = "carousel-item-left", r = "carousel-item-next", "left") : (i = "carousel-item-right", r = "carousel-item-prev", "right"), u && t(u).hasClass(M)) this._isSliding = !1;
else if (!this._triggerSlideEvent(u, o).isDefaultPrevented() && s && u) {
this._isSliding = !0, f && this.pause(), this._setActiveIndicatorElement(u);
var h = t.Event(L.SLID, {
relatedTarget: u,
direction: o,
from: l,
to: d
});
if (t(this._element).hasClass("slide")) {
t(u).addClass(r), c.reflow(u), t(s).addClass(i), t(u).addClass(i);
var p = parseInt(u.getAttribute("data-interval"), 10);
this._config.interval = p ? (this._config.defaultInterval = this._config.defaultInterval || this._config.interval, p) : this._config.defaultInterval || this._config.interval;
var m = c.getTransitionDurationFromElement(s);
t(s).one(c.TRANSITION_END, function () {
t(u).removeClass(i + " " + r).addClass(M), t(s).removeClass(M + " " + r + " " + i), a._isSliding = !1, setTimeout(function () {
return t(a._element).trigger(h)
}, 0)
}).emulateTransitionEnd(m)
} else t(s).removeClass(M), t(u).addClass(M), this._isSliding = !1, t(this._element).trigger(h);
f && this.cycle()
}
}, e._jQueryInterface = function (n) {
return this.each(function () {
var i = t(this).data(k),
r = o({}, I, t(this).data());
"object" == typeof n && (r = o({}, r, n));
var a = "string" == typeof n ? n : r.slide;
if (i || (i = new e(this, r), t(this).data(k, i)), "number" == typeof n) i.to(n);
else if ("string" == typeof a) {
if (void 0 === i[a]) throw new TypeError('No method named "' + a + '"');
i[a]()
} else r.interval && r.ride && (i.pause(), i.cycle())
})
}, e._dataApiClickHandler = function (n) {
var i = c.getSelectorFromElement(this);
if (i) {
var r = t(i)[0];
if (r && t(r).hasClass("carousel")) {
var a = o({}, t(r).data(), t(this).data()),
s = this.getAttribute("data-slide-to");
s && (a.interval = !1), e._jQueryInterface.call(t(r), a), s && t(r).data(k).to(s), n.preventDefault()
}
}
}, r(e, null, [{
key: "VERSION",
get: function () {
return "4.3.1"
}
}, {
key: "Default",
get: function () {
return I
}
}]), e
}();
t(document).on(L.CLICK_DATA_API, "[data-slide], [data-slide-to]", H._dataApiClickHandler), t(window).on(L.LOAD_DATA_API, function () {
for (var e = [].slice.call(document.querySelectorAll('[data-ride="carousel"]')), n = 0, i = e.length; n < i; n++) {
var r = t(e[n]);
H._jQueryInterface.call(r, r.data())
}
}), t.fn[S] = H._jQueryInterface, t.fn[S].Constructor = H, t.fn[S].noConflict = function () {
return t.fn[S] = N, H._jQueryInterface
};
var F = "collapse",
W = "bs.collapse",
U = "." + W,
B = t.fn[F],
z = {
toggle: !0,
parent: ""
},
Q = {
toggle: "boolean",
parent: "(string|element)"
},
K = {
SHOW: "show" + U,
SHOWN: "shown" + U,
HIDE: "hide" + U,
HIDDEN: "hidden" + U,
CLICK_DATA_API: "click" + U + ".data-api"
},
V = "show",
X = "collapse",
Y = "collapsing",
G = "collapsed",
J = '[data-toggle="collapse"]',
Z = function () {
function e(e, t) {
this._isTransitioning = !1, this._element = e, this._config = this._getConfig(t), this._triggerArray = [].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#' + e.id + '"],[data-toggle="collapse"][data-target="#' + e.id + '"]'));
for (var n = [].slice.call(document.querySelectorAll(J)), i = 0, r = n.length; i < r; i++) {
var o = n[i],
a = c.getSelectorFromElement(o),
s = [].slice.call(document.querySelectorAll(a)).filter(function (t) {
return t === e
});
null !== a && 0 < s.length && (this._selector = a, this._triggerArray.push(o))
}
this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle()
}
var n = e.prototype;
return n.toggle = function () {
t(this._element).hasClass(V) ? this.hide() : this.show()
}, n.show = function () {
var n, i, r = this;
if (!(this._isTransitioning || t(this._element).hasClass(V) || (this._parent && 0 === (n = [].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter(function (e) {
return "string" == typeof r._config.parent ? e.getAttribute("data-parent") === r._config.parent : e.classList.contains(X)
})).length && (n = null), n && (i = t(n).not(this._selector).data(W)) && i._isTransitioning))) {
var o = t.Event(K.SHOW);
if (t(this._element).trigger(o), !o.isDefaultPrevented()) {
n && (e._jQueryInterface.call(t(n).not(this._selector), "hide"), i || t(n).data(W, null));
var a = this._getDimension();
t(this._element).removeClass(X).addClass(Y), this._element.style[a] = 0, this._triggerArray.length && t(this._triggerArray).removeClass(G).attr("aria-expanded", !0), this.setTransitioning(!0);
var s = "scroll" + (a[0].toUpperCase() + a.slice(1)),
l = c.getTransitionDurationFromElement(this._element);
t(this._element).one(c.TRANSITION_END, function () {
t(r._element).removeClass(Y).addClass(X).addClass(V), r._element.style[a] = "", r.setTransitioning(!1), t(r._element).trigger(K.SHOWN)
}).emulateTransitionEnd(l), this._element.style[a] = this._element[s] + "px"
}
}
}, n.hide = function () {
var e = this;
if (!this._isTransitioning && t(this._element).hasClass(V)) {
var n = t.Event(K.HIDE);
if (t(this._element).trigger(n), !n.isDefaultPrevented()) {
var i = this._getDimension();
this._element.style[i] = this._element.getBoundingClientRect()[i] + "px", c.reflow(this._element), t(this._element).addClass(Y).removeClass(X).removeClass(V);
var r = this._triggerArray.length;
if (0 < r)
for (var o = 0; o < r; o++) {
var a = this._triggerArray[o],
s = c.getSelectorFromElement(a);
null !== s && (t([].slice.call(document.querySelectorAll(s))).hasClass(V) || t(a).addClass(G).attr("aria-expanded", !1))
}
this.setTransitioning(!0), this._element.style[i] = "";
var l = c.getTransitionDurationFromElement(this._element);
t(this._element).one(c.TRANSITION_END, function () {
e.setTransitioning(!1), t(e._element).removeClass(Y).addClass(X).trigger(K.HIDDEN)
}).emulateTransitionEnd(l)
}
}
}, n.setTransitioning = function (e) {
this._isTransitioning = e
}, n.dispose = function () {
t.removeData(this._element, W), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null
}, n._getConfig = function (e) {
return (e = o({}, z, e)).toggle = Boolean(e.toggle), c.typeCheckConfig(F, e, Q), e
}, n._getDimension = function () {
return t(this._element).hasClass("width") ? "width" : "height"
}, n._getParent = function () {
var n, i = this;
c.isElement(this._config.parent) ? (n = this._config.parent, void 0 !== this._config.parent.jquery && (n = this._config.parent[0])) : n = document.querySelector(this._config.parent);
var r = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]',
o = [].slice.call(n.querySelectorAll(r));
return t(o).each(function (t, n) {
i._addAriaAndCollapsedClass(e._getTargetFromElement(n), [n])
}), n
}, n._addAriaAndCollapsedClass = function (e, n) {
var i = t(e).hasClass(V);
n.length && t(n).toggleClass(G, !i).attr("aria-expanded", i)
}, e._getTargetFromElement = function (e) {
var t = c.getSelectorFromElement(e);
return t ? document.querySelector(t) : null
}, e._jQueryInterface = function (n) {
return this.each(function () {
var i = t(this),
r = i.data(W),
a = o({}, z, i.data(), "object" == typeof n && n ? n : {});
if (!r && a.toggle && /show|hide/.test(n) && (a.toggle = !1), r || (r = new e(this, a), i.data(W, r)), "string" == typeof n) {
if (void 0 === r[n]) throw new TypeError('No method named "' + n + '"');
r[n]()
}
})
}, r(e, null, [{
key: "VERSION",
get: function () {
return "4.3.1"
}
}, {
key: "Default",
get: function () {
return z
}
}]), e
}();
t(document).on(K.CLICK_DATA_API, J, function (e) {
"A" === e.currentTarget.tagName && e.preventDefault();
var n = t(this),
i = c.getSelectorFromElement(this),
r = [].slice.call(document.querySelectorAll(i));
t(r).each(function () {
var e = t(this),
i = e.data(W) ? "toggle" : n.data();
Z._jQueryInterface.call(e, i)
})
}), t.fn[F] = Z._jQueryInterface, t.fn[F].Constructor = Z, t.fn[F].noConflict = function () {
return t.fn[F] = B, Z._jQueryInterface
};
var ee = "dropdown",
te = "bs.dropdown",
ne = "." + te,
ie = ".data-api",
re = t.fn[ee],
oe = new RegExp("38|40|27"),
ae = {
HIDE: "hide" + ne,
HIDDEN: "hidden" + ne,
SHOW: "show" + ne,
SHOWN: "shown" + ne,
CLICK: "click" + ne,
CLICK_DATA_API: "click" + ne + ie,
KEYDOWN_DATA_API: "keydown" + ne + ie,
KEYUP_DATA_API: "keyup" + ne + ie
},
se = "disabled",
le = "show",
ce = "dropdown-menu-right",
ue = '[data-toggle="dropdown"]',
de = ".dropdown-menu",
fe = {
offset: 0,
flip: !0,
boundary: "scrollParent",
reference: "toggle",
display: "dynamic"
},
he = {
offset: "(number|string|function)",
flip: "boolean",
boundary: "(string|element)",
reference: "(string|element)",
display: "string"
},
pe = function () {
function e(e, t) {
this._element = e, this._popper = null, this._config = this._getConfig(t), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners()
}
var i = e.prototype;
return i.toggle = function () {
if (!this._element.disabled && !t(this._element).hasClass(se)) {
var i = e._getParentFromElement(this._element),
r = t(this._menu).hasClass(le);
if (e._clearMenus(), !r) {
var o = {
relatedTarget: this._element
},
a = t.Event(ae.SHOW, o);
if (t(i).trigger(a), !a.isDefaultPrevented()) {
if (!this._inNavbar) {
if (void 0 === n && ("undefined" != typeof Popper ? (n = Popper) && 0 : 1)) throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org/)");
var s = this._element;
"parent" === this._config.reference ? s = i : c.isElement(this._config.reference) && (s = this._config.reference, void 0 !== this._config.reference.jquery && (s = this._config.reference[0])), "scrollParent" !== this._config.boundary && t(i).addClass("position-static"), this._popper = new n(s, this._menu, this._getPopperConfig())
}
"ontouchstart" in document.documentElement && 0 === t(i).closest(".navbar-nav").length && t(document.body).children().on("mouseover", null, t.noop), this._element.focus(), this._element.setAttribute("aria-expanded", !0), t(this._menu).toggleClass(le), t(i).toggleClass(le).trigger(t.Event(ae.SHOWN, o))
}
}
}
}, i.show = function () {
if (!(this._element.disabled || t(this._element).hasClass(se) || t(this._menu).hasClass(le))) {
var n = {
relatedTarget: this._element
},
i = t.Event(ae.SHOW, n),
r = e._getParentFromElement(this._element);
t(r).trigger(i), i.isDefaultPrevented() || (t(this._menu).toggleClass(le), t(r).toggleClass(le).trigger(t.Event(ae.SHOWN, n)))
}
}, i.hide = function () {
if (!this._element.disabled && !t(this._element).hasClass(se) && t(this._menu).hasClass(le)) {
var n = {
relatedTarget: this._element
},
i = t.Event(ae.HIDE, n),
r = e._getParentFromElement(this._element);
t(r).trigger(i), i.isDefaultPrevented() || (t(this._menu).toggleClass(le), t(r).toggleClass(le).trigger(t.Event(ae.HIDDEN, n)))
}
}, i.dispose = function () {
t.removeData(this._element, te), t(this._element).off(ne), this._element = null, (this._menu = null) !== this._popper && (this._popper.destroy(), this._popper = null)
}, i.update = function () {
this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate()
}, i._addEventListeners = function () {
var e = this;
t(this._element).on(ae.CLICK, function (t) {
t.preventDefault(), t.stopPropagation(), e.toggle()
})
}, i._getConfig = function (e) {
return e = o({}, this.constructor.Default, t(this._element).data(), e), c.typeCheckConfig(ee, e, this.constructor.DefaultType), e
}, i._getMenuElement = function () {
if (!this._menu) {
var t = e._getParentFromElement(this._element);
t && (this._menu = t.querySelector(de))
}
return this._menu
}, i._getPlacement = function () {
var e = t(this._element.parentNode),
n = "bottom-start";
return e.hasClass("dropup") ? (n = "top-start", t(this._menu).hasClass(ce) && (n = "top-end")) : e.hasClass("dropright") ? n = "right-start" : e.hasClass("dropleft") ? n = "left-start" : t(this._menu).hasClass(ce) && (n = "bottom-end"), n
}, i._detectNavbar = function () {
return 0 < t(this._element).closest(".navbar").length
}, i._getOffset = function () {
var e = this,
t = {};
return "function" == typeof this._config.offset ? t.fn = function (t) {
return t.offsets = o({}, t.offsets, e._config.offset(t.offsets, e._element) || {}), t
} : t.offset = this._config.offset, t
}, i._getPopperConfig = function () {
var e = {
placement: this._getPlacement(),
modifiers: {
offset: this._getOffset(),
flip: {
enabled: this._config.flip
},
preventOverflow: {
boundariesElement: this._config.boundary
}
}
};
return "static" === this._config.display && (e.modifiers.applyStyle = {
enabled: !1
}), e
}, e._jQueryInterface = function (n) {
return this.each(function () {
var i = t(this).data(te);
if (i || (i = new e(this, "object" == typeof n ? n : null), t(this).data(te, i)), "string" == typeof n) {
if (void 0 === i[n]) throw new TypeError('No method named "' + n + '"');
i[n]()
}
})
}, e._clearMenus = function (n) {
if (!n || 3 !== n.which && ("keyup" !== n.type || 9 === n.which))
for (var i = [].slice.call(document.querySelectorAll(ue)), r = 0, o = i.length; r < o; r++) {
var a = e._getParentFromElement(i[r]),
s = t(i[r]).data(te),
l = {
relatedTarget: i[r]
};
if (n && "click" === n.type && (l.clickEvent = n), s) {
var c = s._menu;
if (t(a).hasClass(le) && !(n && ("click" === n.type && /input|textarea/i.test(n.target.tagName) || "keyup" === n.type && 9 === n.which) && t.contains(a, n.target))) {
var u = t.Event(ae.HIDE, l);
t(a).trigger(u), u.isDefaultPrevented() || ("ontouchstart" in document.documentElement && t(document.body).children().off("mouseover", null, t.noop), i[r].setAttribute("aria-expanded", "false"), t(c).removeClass(le), t(a).removeClass(le).trigger(t.Event(ae.HIDDEN, l)))
}
}
}
}, e._getParentFromElement = function (e) {
var t, n = c.getSelectorFromElement(e);
return n && (t = document.querySelector(n)), t || e.parentNode
}, e._dataApiKeydownHandler = function (n) {
if ((/input|textarea/i.test(n.target.tagName) ? !(32 === n.which || 27 !== n.which && (40 !== n.which && 38 !== n.which || t(n.target).closest(de).length)) : oe.test(n.which)) && (n.preventDefault(), n.stopPropagation(), !this.disabled && !t(this).hasClass(se))) {
var i = e._getParentFromElement(this),
r = t(i).hasClass(le);
if (r && (!r || 27 !== n.which && 32 !== n.which)) {
var o = [].slice.call(i.querySelectorAll(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)"));
if (0 !== o.length) {
var a = o.indexOf(n.target);
38 === n.which && 0 < a && a--, 40 === n.which && a < o.length - 1 && a++, a < 0 && (a = 0), o[a].focus()
}
} else {
if (27 === n.which) {
var s = i.querySelector(ue);
t(s).trigger("focus")
}
t(this).trigger("click")
}
}
}, r(e, null, [{
key: "VERSION",
get: function () {
return "4.3.1"
}
}, {
key: "Default",
get: function () {
return fe
}
}, {
key: "DefaultType",
get: function () {
return he
}
}]), e
}();
t(document).on(ae.KEYDOWN_DATA_API, ue, pe._dataApiKeydownHandler).on(ae.KEYDOWN_DATA_API, de, pe._dataApiKeydownHandler).on(ae.CLICK_DATA_API + " " + ae.KEYUP_DATA_API, pe._clearMenus).on(ae.CLICK_DATA_API, ue, function (e) {
e.preventDefault(), e.stopPropagation(), pe._jQueryInterface.call(t(this), "toggle")
}).on(ae.CLICK_DATA_API, ".dropdown form", function (e) {
e.stopPropagation()
}), t.fn[ee] = pe._jQueryInterface, t.fn[ee].Constructor = pe, t.fn[ee].noConflict = function () {
return t.fn[ee] = re, pe._jQueryInterface
};
var me = "modal",
ge = "bs.modal",
ve = "." + ge,
ye = t.fn[me],
_e = {
backdrop: !0,
keyboard: !0,
focus: !0,
show: !0
},
be = {
backdrop: "(boolean|string)",
keyboard: "boolean",
focus: "boolean",
show: "boolean"
},
we = {
HIDE: "hide" + ve,
HIDDEN: "hidden" + ve,
SHOW: "show" + ve,
SHOWN: "shown" + ve,
FOCUSIN: "focusin" + ve,
RESIZE: "resize" + ve,
CLICK_DISMISS: "click.dismiss" + ve,
KEYDOWN_DISMISS: "keydown.dismiss" + ve,
MOUSEUP_DISMISS: "mouseup.dismiss" + ve,
MOUSEDOWN_DISMISS: "mousedown.dismiss" + ve,
CLICK_DATA_API: "click" + ve + ".data-api"
},
xe = "modal-open",
Te = "fade",
Ee = "show",
Ce = ".modal-dialog",
Se = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",
ke = ".sticky-top",
Ae = function () {
function e(e, t) {
this._config = this._getConfig(t), this._element = e, this._dialog = e.querySelector(Ce), this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._isTransitioning = !1, this._scrollbarWidth = 0
}
var n = e.prototype;
return n.toggle = function (e) {
return this._isShown ? this.hide() : this.show(e)
}, n.show = function (e) {
var n = this;
if (!this._isShown && !this._isTransitioning) {
t(this._element).hasClass(Te) && (this._isTransitioning = !0);
var i = t.Event(we.SHOW, {
relatedTarget: e
});
t(this._element).trigger(i), this._isShown || i.isDefaultPrevented() || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), this._setEscapeEvent(), this._setResizeEvent(), t(this._element).on(we.CLICK_DISMISS, '[data-dismiss="modal"]', function (e) {
return n.hide(e)
}), t(this._dialog).on(we.MOUSEDOWN_DISMISS, function () {
t(n._element).one(we.MOUSEUP_DISMISS, function (e) {
t(e.target).is(n._element) && (n._ignoreBackdropClick = !0)
})
}), this._showBackdrop(function () {
return n._showElement(e)
}))
}
}, n.hide = function (e) {
var n = this;
if (e && e.preventDefault(), this._isShown && !this._isTransitioning) {
var i = t.Event(we.HIDE);
if (t(this._element).trigger(i), this._isShown && !i.isDefaultPrevented()) {
this._isShown = !1;
var r = t(this._element).hasClass(Te);
if (r && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), t(document).off(we.FOCUSIN), t(this._element).removeClass(Ee), t(this._element).off(we.CLICK_DISMISS), t(this._dialog).off(we.MOUSEDOWN_DISMISS), r) {
var o = c.getTransitionDurationFromElement(this._element);
t(this._element).one(c.TRANSITION_END, function (e) {
return n._hideModal(e)
}).emulateTransitionEnd(o)
} else this._hideModal()
}
}
}, n.dispose = function () {
[window, this._element, this._dialog].forEach(function (e) {
return t(e).off(ve)
}), t(document).off(we.FOCUSIN), t.removeData(this._element, ge), this._config = null, this._element = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._isTransitioning = null, this._scrollbarWidth = null
}, n.handleUpdate = function () {
this._adjustDialog()
}, n._getConfig = function (e) {
return e = o({}, _e, e), c.typeCheckConfig(me, e, be), e
}, n._showElement = function (e) {
var n = this,
i = t(this._element).hasClass(Te);
this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = "block", this._element.removeAttribute("aria-hidden"), this._element.setAttribute("aria-modal", !0), t(this._dialog).hasClass("modal-dialog-scrollable") ? this._dialog.querySelector(".modal-body").scrollTop = 0 : this._element.scrollTop = 0, i && c.reflow(this._element), t(this._element).addClass(Ee), this._config.focus && this._enforceFocus();
var r = t.Event(we.SHOWN, {
relatedTarget: e
}),
o = function () {
n._config.focus && n._element.focus(), n._isTransitioning = !1, t(n._element).trigger(r)
};
if (i) {
var a = c.getTransitionDurationFromElement(this._dialog);
t(this._dialog).one(c.TRANSITION_END, o).emulateTransitionEnd(a)
} else o()
}, n._enforceFocus = function () {
var e = this;
t(document).off(we.FOCUSIN).on(we.FOCUSIN, function (n) {
document !== n.target && e._element !== n.target && 0 === t(e._element).has(n.target).length && e._element.focus()
})
}, n._setEscapeEvent = function () {
var e = this;
this._isShown && this._config.keyboard ? t(this._element).on(we.KEYDOWN_DISMISS, function (t) {
27 === t.which && (t.preventDefault(), e.hide())
}) : this._isShown || t(this._element).off(we.KEYDOWN_DISMISS)
}, n._setResizeEvent = function () {
var e = this;
this._isShown ? t(window).on(we.RESIZE, function (t) {
return e.handleUpdate(t)
}) : t(window).off(we.RESIZE)
}, n._hideModal = function () {
var e = this;
this._element.style.display = "none", this._element.setAttribute("aria-hidden", !0), this._element.removeAttribute("aria-modal"), this._isTransitioning = !1, this._showBackdrop(function () {
t(document.body).removeClass(xe), e._resetAdjustments(), e._resetScrollbar(), t(e._element).trigger(we.HIDDEN)
})
}, n._removeBackdrop = function () {
this._backdrop && (t(this._backdrop).remove(), this._backdrop = null)
}, n._showBackdrop = function (e) {
var n = this,
i = t(this._element).hasClass(Te) ? Te : "";
if (this._isShown && this._config.backdrop) {
if (this._backdrop = document.createElement("div"), this._backdrop.className = "modal-backdrop", i && this._backdrop.classList.add(i), t(this._backdrop).appendTo(document.body), t(this._element).on(we.CLICK_DISMISS, function (e) {
n._ignoreBackdropClick ? n._ignoreBackdropClick = !1 : e.target === e.currentTarget && ("static" === n._config.backdrop ? n._element.focus() : n.hide())
}), i && c.reflow(this._backdrop), t(this._backdrop).addClass(Ee), !e) return;
if (!i) return void e();
var r = c.getTransitionDurationFromElement(this._backdrop);
t(this._backdrop).one(c.TRANSITION_END, e).emulateTransitionEnd(r)
} else if (!this._isShown && this._backdrop) {
t(this._backdrop).removeClass(Ee);
var o = function () {
n._removeBackdrop(), e && e()
};
if (t(this._element).hasClass(Te)) {
var a = c.getTransitionDurationFromElement(this._backdrop);
t(this._backdrop).one(c.TRANSITION_END, o).emulateTransitionEnd(a)
} else o()
} else e && e()
}, n._adjustDialog = function () {
var e = this._element.scrollHeight > document.documentElement.clientHeight;
!this._isBodyOverflowing && e && (this._element.style.paddingLeft = this._scrollbarWidth + "px"), this._isBodyOverflowing && !e && (this._element.style.paddingRight = this._scrollbarWidth + "px")
}, n._resetAdjustments = function () {
this._element.style.paddingLeft = "", this._element.style.paddingRight = ""
}, n._checkScrollbar = function () {
var e = document.body.getBoundingClientRect();
this._isBodyOverflowing = e.left + e.right < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth()
}, n._setScrollbar = function () {
var e = this;
if (this._isBodyOverflowing) {
var n = [].slice.call(document.querySelectorAll(Se)),
i = [].slice.call(document.querySelectorAll(ke));
t(n).each(function (n, i) {
var r = i.style.paddingRight,
o = t(i).css("padding-right");
t(i).data("padding-right", r).css("padding-right", parseFloat(o) + e._scrollbarWidth + "px")
}), t(i).each(function (n, i) {
var r = i.style.marginRight,
o = t(i).css("margin-right");
t(i).data("margin-right", r).css("margin-right", parseFloat(o) - e._scrollbarWidth + "px")
});
var r = document.body.style.paddingRight,
o = t(document.body).css("padding-right");
t(document.body).data("padding-right", r).css("padding-right", parseFloat(o) + this._scrollbarWidth + "px")
}
t(document.body).addClass(xe)
}, n._resetScrollbar = function () {
var e = [].slice.call(document.querySelectorAll(Se));
t(e).each(function (e, n) {
var i = t(n).data("padding-right");
t(n).removeData("padding-right"), n.style.paddingRight = i || ""
});
var n = [].slice.call(document.querySelectorAll("" + ke));
t(n).each(function (e, n) {
var i = t(n).data("margin-right");
void 0 !== i && t(n).css("margin-right", i).removeData("margin-right")
});
var i = t(document.body).data("padding-right");
t(document.body).removeData("padding-right"), document.body.style.paddingRight = i || ""
}, n._getScrollbarWidth = function () {
var e = document.createElement("div");
e.className = "modal-scrollbar-measure", document.body.appendChild(e);
var t = e.getBoundingClientRect().width - e.clientWidth;
return document.body.removeChild(e), t
}, e._jQueryInterface = function (n, i) {
return this.each(function () {
var r = t(this).data(ge),
a = o({}, _e, t(this).data(), "object" == typeof n && n ? n : {});
if (r || (r = new e(this, a), t(this).data(ge, r)), "string" == typeof n) {
if (void 0 === r[n]) throw new TypeError('No method named "' + n + '"');
r[n](i)
} else a.show && r.show(i)
})
}, r(e, null, [{
key: "VERSION",
get: function () {
return "4.3.1"
}
}, {
key: "Default",
get: function () {
return _e
}
}]), e
}();
t(document).on(we.CLICK_DATA_API, '[data-toggle="modal"]', function (e) {
var n, i = this,
r = c.getSelectorFromElement(this);
r && (n = document.querySelector(r));
var a = t(n).data(ge) ? "toggle" : o({}, t(n).data(), t(this).data());
"A" !== this.tagName && "AREA" !== this.tagName || e.preventDefault();
var s = t(n).one(we.SHOW, function (e) {
e.isDefaultPrevented() || s.one(we.HIDDEN, function () {
t(i).is(":visible") && i.focus()
})
});
Ae._jQueryInterface.call(t(n), a, this)
}), t.fn[me] = Ae._jQueryInterface, t.fn[me].Constructor = Ae, t.fn[me].noConflict = function () {
return t.fn[me] = ye, Ae._jQueryInterface
};
var De = ["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"],
Ne = {
"*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i],
a: ["target", "href", "title", "rel"],
area: [],
b: [],
br: [],
col: [],
code: [],
div: [],
em: [],
hr: [],
h1: [],
h2: [],
h3: [],
h4: [],
h5: [],
h6: [],
i: [],
img: ["src", "alt", "title", "width", "height"],
li: [],
ol: [],
p: [],
pre: [],
s: [],
small: [],
span: [],
sub: [],
sup: [],
strong: [],
u: [],
ul: []
},
Ie = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:\/?#]*(?:[\/?#]|$))/gi,
$e = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i,
Oe = "tooltip",
je = "bs.tooltip",
Le = "." + je,
Me = t.fn[Oe],
Re = "bs-tooltip",
qe = new RegExp("(^|\\s)" + Re + "\\S+", "g"),
Pe = ["sanitize", "whiteList", "sanitizeFn"],
He = {
animation: "boolean",
template: "string",
title: "(string|element|function)",
trigger: "string",
delay: "(number|object)",
html: "boolean",
selector: "(string|boolean)",
placement: "(string|function)",
offset: "(number|string|function)",
container: "(string|element|boolean)",
fallbackPlacement: "(string|array)",
boundary: "(string|element)",
sanitize: "boolean",
sanitizeFn: "(null|function)",
whiteList: "object"
},
Fe = {
AUTO: "auto",
TOP: "top",
RIGHT: "right",
BOTTOM: "bottom",
LEFT: "left"
},
We = {
animation: !0,
template: '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',
trigger: "hover focus",
title: "",
delay: 0,
html: !1,
selector: !1,
placement: "top",
offset: 0,
container: !1,
fallbackPlacement: "flip",
boundary: "scrollParent",
sanitize: !0,
sanitizeFn: null,
whiteList: Ne
},
Ue = "show",
Be = {
HIDE: "hide" + Le,
HIDDEN: "hidden" + Le,
SHOW: "show" + Le,
SHOWN: "shown" + Le,
INSERTED: "inserted" + Le,
CLICK: "click" + Le,
FOCUSIN: "focusin" + Le,
FOCUSOUT: "focusout" + Le,
MOUSEENTER: "mouseenter" + Le,
MOUSELEAVE: "mouseleave" + Le
},
ze = "fade",
Qe = "show",
Ke = "hover",
Ve = "focus",
Xe = function () {
function e(e, t) {
if (void 0 === n && ("undefined" != typeof Popper ? (n = Popper) && 0 : 1)) throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");
this._isEnabled = !0, this._timeout = 0, this._hoverState = "", this._activeTrigger = {}, this._popper = null, this.element = e, this.config = this._getConfig(t), this.tip = null, this._setListeners()
}
var i = e.prototype;
return i.enable = function () {
this._isEnabled = !0
}, i.disable = function () {
this._isEnabled = !1
}, i.toggleEnabled = function () {
this._isEnabled = !this._isEnabled
}, i.toggle = function (e) {
if (this._isEnabled)
if (e) {
var n = this.constructor.DATA_KEY,
i = t(e.currentTarget).data(n);
i || (i = new this.constructor(e.currentTarget, this._getDelegateConfig()), t(e.currentTarget).data(n, i)), i._activeTrigger.click = !i._activeTrigger.click, i._isWithActiveTrigger() ? i._enter(null, i) : i._leave(null, i)
} else {
if (t(this.getTipElement()).hasClass(Qe)) return void this._leave(null, this);
this._enter(null, this)
}
}, i.dispose = function () {
clearTimeout(this._timeout), t.removeData(this.element, this.constructor.DATA_KEY), t(this.element).off(this.constructor.EVENT_KEY), t(this.element).closest(".modal").off("hide.bs.modal"), this.tip && t(this.tip).remove(), this._isEnabled = null, this._timeout = null, this._hoverState = null, (this._activeTrigger = null) !== this._popper && this._popper.destroy(), this._popper = null, this.element = null, this.config = null, this.tip = null
}, i.show = function () {
var e = this;
if ("none" === t(this.element).css("display")) throw new Error("Please use show on visible elements");
var i = t.Event(this.constructor.Event.SHOW);
if (this.isWithContent() && this._isEnabled) {
t(this.element).trigger(i);
var r = c.findShadowRoot(this.element),
o = t.contains(null !== r ? r : this.element.ownerDocument.documentElement, this.element);
if (i.isDefaultPrevented() || !o) return;
var a = this.getTipElement(),
s = c.getUID(this.constructor.NAME);
a.setAttribute("id", s), this.element.setAttribute("aria-describedby", s), this.setContent(), this.config.animation && t(a).addClass(ze);
var l = "function" == typeof this.config.placement ? this.config.placement.call(this, a, this.element) : this.config.placement,
u = this._getAttachment(l);
this.addAttachmentClass(u);
var d = this._getContainer();
t(a).data(this.constructor.DATA_KEY, this), t.contains(this.element.ownerDocument.documentElement, this.tip) || t(a).appendTo(d), t(this.element).trigger(this.constructor.Event.INSERTED), this._popper = new n(this.element, a, {
placement: u,
modifiers: {
offset: this._getOffset(),
flip: {
behavior: this.config.fallbackPlacement
},
arrow: {
element: ".arrow"
},
preventOverflow: {
boundariesElement: this.config.boundary
}
},
onCreate: function (t) {
t.originalPlacement !== t.placement && e._handlePopperPlacementChange(t)
},
onUpdate: function (t) {
return e._handlePopperPlacementChange(t)
}
}), t(a).addClass(Qe), "ontouchstart" in document.documentElement && t(document.body).children().on("mouseover", null, t.noop);
var f = function () {
e.config.animation && e._fixTransition();
var n = e._hoverState;
e._hoverState = null, t(e.element).trigger(e.constructor.Event.SHOWN), "out" === n && e._leave(null, e)
};
if (t(this.tip).hasClass(ze)) {
var h = c.getTransitionDurationFromElement(this.tip);
t(this.tip).one(c.TRANSITION_END, f).emulateTransitionEnd(h)
} else f()
}
}, i.hide = function (e) {
var n = this,
i = this.getTipElement(),
r = t.Event(this.constructor.Event.HIDE),
o = function () {
n._hoverState !== Ue && i.parentNode && i.parentNode.removeChild(i), n._cleanTipClass(), n.element.removeAttribute("aria-describedby"), t(n.element).trigger(n.constructor.Event.HIDDEN), null !== n._popper && n._popper.destroy(), e && e()
};
if (t(this.element).trigger(r), !r.isDefaultPrevented()) {
if (t(i).removeClass(Qe), "ontouchstart" in document.documentElement && t(document.body).children().off("mouseover", null, t.noop), this._activeTrigger.click = !1, this._activeTrigger[Ve] = !1, this._activeTrigger[Ke] = !1, t(this.tip).hasClass(ze)) {
var a = c.getTransitionDurationFromElement(i);
t(i).one(c.TRANSITION_END, o).emulateTransitionEnd(a)
} else o();
this._hoverState = ""
}
}, i.update = function () {
null !== this._popper && this._popper.scheduleUpdate()
}, i.isWithContent = function () {
return Boolean(this.getTitle())
}, i.addAttachmentClass = function (e) {
t(this.getTipElement()).addClass(Re + "-" + e)
}, i.getTipElement = function () {
return this.tip = this.tip || t(this.config.template)[0], this.tip
}, i.setContent = function () {
var e = this.getTipElement();
this.setElementContent(t(e.querySelectorAll(".tooltip-inner")), this.getTitle()), t(e).removeClass(ze + " " + Qe)
}, i.setElementContent = function (e, n) {
"object" != typeof n || !n.nodeType && !n.jquery ? this.config.html ? (this.config.sanitize && (n = s(n, this.config.whiteList, this.config.sanitizeFn)), e.html(n)) : e.text(n) : this.config.html ? t(n).parent().is(e) || e.empty().append(n) : e.text(t(n).text())
}, i.getTitle = function () {
var e = this.element.getAttribute("data-original-title");
return e || (e = "function" == typeof this.config.title ? this.config.title.call(this.element) : this.config.title), e
}, i._getOffset = function () {
var e = this,
t = {};
return "function" == typeof this.config.offset ? t.fn = function (t) {
return t.offsets = o({}, t.offsets, e.config.offset(t.offsets, e.element) || {}), t
} : t.offset = this.config.offset, t
}, i._getContainer = function () {
return !1 === this.config.container ? document.body : c.isElement(this.config.container) ? t(this.config.container) : t(document).find(this.config.container)
}, i._getAttachment = function (e) {
return Fe[e.toUpperCase()]
}, i._setListeners = function () {
var e = this;
this.config.trigger.split(" ").forEach(function (n) {
if ("click" === n) t(e.element).on(e.constructor.Event.CLICK, e.config.selector, function (t) {
return e.toggle(t)
});
else if ("manual" !== n) {
var i = n === Ke ? e.constructor.Event.MOUSEENTER : e.constructor.Event.FOCUSIN,
r = n === Ke ? e.constructor.Event.MOUSELEAVE : e.constructor.Event.FOCUSOUT;
t(e.element).on(i, e.config.selector, function (t) {
return e._enter(t)
}).on(r, e.config.selector, function (t) {
return e._leave(t)
})
}
}), t(this.element).closest(".modal").on("hide.bs.modal", function () {
e.element && e.hide()
}), this.config.selector ? this.config = o({}, this.config, {
trigger: "manual",
selector: ""
}) : this._fixTitle()
}, i._fixTitle = function () {
var e = typeof this.element.getAttribute("data-original-title");
(this.element.getAttribute("title") || "string" !== e) && (this.element.setAttribute("data-original-title", this.element.getAttribute("title") || ""), this.element.setAttribute("title", ""))
}, i._enter = function (e, n) {
var i = this.constructor.DATA_KEY;
(n = n || t(e.currentTarget).data(i)) || (n = new this.constructor(e.currentTarget, this._getDelegateConfig()), t(e.currentTarget).data(i, n)), e && (n._activeTrigger["focusin" === e.type ? Ve : Ke] = !0), t(n.getTipElement()).hasClass(Qe) || n._hoverState === Ue ? n._hoverState = Ue : (clearTimeout(n._timeout), n._hoverState = Ue, n.config.delay && n.config.delay.show ? n._timeout = setTimeout(function () {
n._hoverState === Ue && n.show()
}, n.config.delay.show) : n.show())
}, i._leave = function (e, n) {
var i = this.constructor.DATA_KEY;
(n = n || t(e.currentTarget).data(i)) || (n = new this.constructor(e.currentTarget, this._getDelegateConfig()), t(e.currentTarget).data(i, n)), e && (n._activeTrigger["focusout" === e.type ? Ve : Ke] = !1), n._isWithActiveTrigger() || (clearTimeout(n._timeout), n._hoverState = "out", n.config.delay && n.config.delay.hide ? n._timeout = setTimeout(function () {
"out" === n._hoverState && n.hide()
}, n.config.delay.hide) : n.hide())
}, i._isWithActiveTrigger = function () {
for (var e in this._activeTrigger)
if (this._activeTrigger[e]) return !0;
return !1
}, i._getConfig = function (e) {
var n = t(this.element).data();
return Object.keys(n).forEach(function (e) {
-1 !== Pe.indexOf(e) && delete n[e]
}), "number" == typeof (e = o({}, this.constructor.Default, n, "object" == typeof e && e ? e : {})).delay && (e.delay = {
show: e.delay,
hide: e.delay
}), "number" == typeof e.title && (e.title = e.title.toString()), "number" == typeof e.content && (e.content = e.content.toString()), c.typeCheckConfig(Oe, e, this.constructor.DefaultType), e.sanitize && (e.template = s(e.template, e.whiteList, e.sanitizeFn)), e
}, i._getDelegateConfig = function () {
var e = {};
if (this.config)
for (var t in this.config) this.constructor.Default[t] !== this.config[t] && (e[t] = this.config[t]);
return e
}, i._cleanTipClass = function () {
var e = t(this.getTipElement()),
n = e.attr("class").match(qe);
null !== n && n.length && e.removeClass(n.join(""))
}, i._handlePopperPlacementChange = function (e) {
var t = e.instance;
this.tip = t.popper, this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(e.placement))
}, i._fixTransition = function () {
var e = this.getTipElement(),
n = this.config.animation;
null === e.getAttribute("x-placement") && (t(e).removeClass(ze), this.config.animation = !1, this.hide(), this.show(), this.config.animation = n)
}, e._jQueryInterface = function (n) {
return this.each(function () {
var i = t(this).data(je),
r = "object" == typeof n && n;
if ((i || !/dispose|hide/.test(n)) && (i || (i = new e(this, r), t(this).data(je, i)), "string" == typeof n)) {
if (void 0 === i[n]) throw new TypeError('No method named "' + n + '"');
i[n]()
}
})
}, r(e, null, [{
key: "VERSION",
get: function () {
return "4.3.1"
}
}, {
key: "Default",
get: function () {
return We
}
}, {
key: "NAME",
get: function () {
return Oe
}
}, {
key: "DATA_KEY",
get: function () {
return je
}
}, {
key: "Event",
get: function () {
return Be
}
}, {
key: "EVENT_KEY",
get: function () {
return Le
}
}, {
key: "DefaultType",
get: function () {
return He
}
}]), e
}();
t.fn[Oe] = Xe._jQueryInterface, t.fn[Oe].Constructor = Xe, t.fn[Oe].noConflict = function () {
return t.fn[Oe] = Me, Xe._jQueryInterface
};
var Ye = "popover",
Ge = "bs.popover",
Je = "." + Ge,
Ze = t.fn[Ye],
et = "bs-popover",
tt = new RegExp("(^|\\s)" + et + "\\S+", "g"),
nt = o({}, Xe.Default, {
placement: "right",
trigger: "click",
content: "",
template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'
}),
it = o({}, Xe.DefaultType, {
content: "(string|element|function)"
}),
rt = {
HIDE: "hide" + Je,
HIDDEN: "hidden" + Je,
SHOW: "show" + Je,
SHOWN: "shown" + Je,
INSERTED: "inserted" + Je,
CLICK: "click" + Je,
FOCUSIN: "focusin" + Je,
FOCUSOUT: "focusout" + Je,
MOUSEENTER: "mouseenter" + Je,
MOUSELEAVE: "mouseleave" + Je
},
ot = function (e) {
function n() {
return e.apply(this, arguments) || this
}
var i, o;
o = e, (i = n).prototype = Object.create(o.prototype), (i.prototype.constructor = i).__proto__ = o;
var a = n.prototype;
return a.isWithContent = function () {
return this.getTitle() || this._getContent()
}, a.addAttachmentClass = function (e) {
t(this.getTipElement()).addClass(et + "-" + e)
}, a.getTipElement = function () {
return this.tip = this.tip || t(this.config.template)[0], this.tip
}, a.setContent = function () {
var e = t(this.getTipElement());
this.setElementContent(e.find(".popover-header"), this.getTitle());
var n = this._getContent();
"function" == typeof n && (n = n.call(this.element)), this.setElementContent(e.find(".popover-body"), n), e.removeClass("fade show")
}, a._getContent = function () {
return this.element.getAttribute("data-content") || this.config.content
}, a._cleanTipClass = function () {
var e = t(this.getTipElement()),
n = e.attr("class").match(tt);
null !== n && 0 < n.length && e.removeClass(n.join(""))
}, n._jQueryInterface = function (e) {
return this.each(function () {
var i = t(this).data(Ge),
r = "object" == typeof e ? e : null;
if ((i || !/dispose|hide/.test(e)) && (i || (i = new n(this, r), t(this).data(Ge, i)), "string" == typeof e)) {
if (void 0 === i[e]) throw new TypeError('No method named "' + e + '"');
i[e]()
}
})
}, r(n, null, [{
key: "VERSION",
get: function () {
return "4.3.1"
}
}, {
key: "Default",
get: function () {
return nt
}
}, {
key: "NAME",
get: function () {
return Ye
}
}, {
key: "DATA_KEY",
get: function () {
return Ge
}
}, {
key: "Event",
get: function () {
return rt
}
}, {
key: "EVENT_KEY",
get: function () {
return Je
}
}, {
key: "DefaultType",
get: function () {
return it
}
}]), n
}(Xe);
t.fn[Ye] = ot._jQueryInterface, t.fn[Ye].Constructor = ot, t.fn[Ye].noConflict = function () {
return t.fn[Ye] = Ze, ot._jQueryInterface
};
var at = "scrollspy",
st = "bs.scrollspy",
lt = "." + st,
ct = t.fn[at],
ut = {
offset: 10,
method: "auto",
target: ""
},
dt = {
offset: "number",
method: "string",
target: "(string|element)"
},
ft = {
ACTIVATE: "activate" + lt,
SCROLL: "scroll" + lt,
LOAD_DATA_API: "load" + lt + ".data-api"
},
ht = "active",
pt = ".nav, .list-group",
mt = ".nav-link",
gt = ".list-group-item",
vt = ".dropdown-item",
yt = "position",
_t = function () {
function e(e, n) {
var i = this;
this._element = e, this._scrollElement = "BODY" === e.tagName ? window : e, this._config = this._getConfig(n), this._selector = this._config.target + " " + mt + "," + this._config.target + " " + gt + "," + this._config.target + " " + vt, this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, t(this._scrollElement).on(ft.SCROLL, function (e) {
return i._process(e)
}), this.refresh(), this._process()
}
var n = e.prototype;
return n.refresh = function () {
var e = this,
n = this._scrollElement === this._scrollElement.window ? "offset" : yt,
i = "auto" === this._config.method ? n : this._config.method,
r = i === yt ? this._getScrollTop() : 0;
this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), [].slice.call(document.querySelectorAll(this._selector)).map(function (e) {
var n, o = c.getSelectorFromElement(e);
if (o && (n = document.querySelector(o)), n) {
var a = n.getBoundingClientRect();
if (a.width || a.height) return [t(n)[i]().top + r, o]
}
return null
}).filter(function (e) {
return e
}).sort(function (e, t) {
return e[0] - t[0]
}).forEach(function (t) {
e._offsets.push(t[0]), e._targets.push(t[1])
})
}, n.dispose = function () {
t.removeData(this._element, st), t(this._scrollElement).off(lt), this._element = null, this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null
}, n._getConfig = function (e) {
if ("string" != typeof (e = o({}, ut, "object" == typeof e && e ? e : {})).target) {
var n = t(e.target).attr("id");
n || (n = c.getUID(at), t(e.target).attr("id", n)), e.target = "#" + n
}
return c.typeCheckConfig(at, e, dt), e
}, n._getScrollTop = function () {
return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop
}, n._getScrollHeight = function () {
return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)
}, n._getOffsetHeight = function () {
return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height
}, n._process = function () {
var e = this._getScrollTop() + this._config.offset,
t = this._getScrollHeight(),
n = this._config.offset + t - this._getOffsetHeight();
if (this._scrollHeight !== t && this.refresh(), n <= e) {
var i = this._targets[this._targets.length - 1];
this._activeTarget !== i && this._activate(i)
} else {
if (this._activeTarget && e < this._offsets[0] && 0 < this._offsets[0]) return this._activeTarget = null, void this._clear();
for (var r = this._offsets.length; r--;) this._activeTarget !== this._targets[r] && e >= this._offsets[r] && (void 0 === this._offsets[r + 1] || e < this._offsets[r + 1]) && this._activate(this._targets[r])
}
}, n._activate = function (e) {
this._activeTarget = e, this._clear();
var n = this._selector.split(",").map(function (t) {
return t + '[data-target="' + e + '"],' + t + '[href="' + e + '"]'
}),
i = t([].slice.call(document.querySelectorAll(n.join(","))));
i.hasClass("dropdown-item") ? (i.closest(".dropdown").find(".dropdown-toggle").addClass(ht), i.addClass(ht)) : (i.addClass(ht), i.parents(pt).prev(mt + ", " + gt).addClass(ht), i.parents(pt).prev(".nav-item").children(mt).addClass(ht)), t(this._scrollElement).trigger(ft.ACTIVATE, {
relatedTarget: e
})
}, n._clear = function () {
[].slice.call(document.querySelectorAll(this._selector)).filter(function (e) {
return e.classList.contains(ht)
}).forEach(function (e) {
return e.classList.remove(ht)
})
}, e._jQueryInterface = function (n) {
return this.each(function () {
var i = t(this).data(st);
if (i || (i = new e(this, "object" == typeof n && n), t(this).data(st, i)), "string" == typeof n) {
if (void 0 === i[n]) throw new TypeError('No method named "' + n + '"');
i[n]()
}
})
}, r(e, null, [{
key: "VERSION",
get: function () {
return "4.3.1"
}
}, {
key: "Default",
get: function () {
return ut
}
}]), e
}();
t(window).on(ft.LOAD_DATA_API, function () {
for (var e = [].slice.call(document.querySelectorAll('[data-spy="scroll"]')), n = e.length; n--;) {
var i = t(e[n]);
_t._jQueryInterface.call(i, i.data())
}
}), t.fn[at] = _t._jQueryInterface, t.fn[at].Constructor = _t, t.fn[at].noConflict = function () {
return t.fn[at] = ct, _t._jQueryInterface
};
var bt = "bs.tab",
wt = "." + bt,
xt = t.fn.tab,
Tt = {
HIDE: "hide" + wt,
HIDDEN: "hidden" + wt,
SHOW: "show" + wt,
SHOWN: "shown" + wt,
CLICK_DATA_API: "click" + wt + ".data-api"
},
Et = "active",
Ct = ".active",
St = "> li > .active",
kt = function () {
function e(e) {
this._element = e
}
var n = e.prototype;
return n.show = function () {
var e = this;
if (!(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && t(this._element).hasClass(Et) || t(this._element).hasClass("disabled"))) {
var n, i, r = t(this._element).closest(".nav, .list-group")[0],
o = c.getSelectorFromElement(this._element);
if (r) {
var a = "UL" === r.nodeName || "OL" === r.nodeName ? St : Ct;
i = (i = t.makeArray(t(r).find(a)))[i.length - 1]
}
var s = t.Event(Tt.HIDE, {
relatedTarget: this._element
}),
l = t.Event(Tt.SHOW, {
relatedTarget: i
});
if (i && t(i).trigger(s), t(this._element).trigger(l), !l.isDefaultPrevented() && !s.isDefaultPrevented()) {
o && (n = document.querySelector(o)), this._activate(this._element, r);
var u = function () {
var n = t.Event(Tt.HIDDEN, {
relatedTarget: e._element
}),
r = t.Event(Tt.SHOWN, {
relatedTarget: i
});
t(i).trigger(n), t(e._element).trigger(r)
};
n ? this._activate(n, n.parentNode, u) : u()
}
}
}, n.dispose = function () {
t.removeData(this._element, bt), this._element = null
}, n._activate = function (e, n, i) {
var r = this,
o = (!n || "UL" !== n.nodeName && "OL" !== n.nodeName ? t(n).children(Ct) : t(n).find(St))[0],
a = i && o && t(o).hasClass("fade"),
s = function () {
return r._transitionComplete(e, o, i)
};
if (o && a) {
var l = c.getTransitionDurationFromElement(o);
t(o).removeClass("show").one(c.TRANSITION_END, s).emulateTransitionEnd(l)
} else s()
}, n._transitionComplete = function (e, n, i) {
if (n) {
t(n).removeClass(Et);
var r = t(n.parentNode).find("> .dropdown-menu .active")[0];
r && t(r).removeClass(Et), "tab" === n.getAttribute("role") && n.setAttribute("aria-selected", !1)
}
if (t(e).addClass(Et), "tab" === e.getAttribute("role") && e.setAttribute("aria-selected", !0), c.reflow(e), e.classList.contains("fade") && e.classList.add("show"), e.parentNode && t(e.parentNode).hasClass("dropdown-menu")) {
var o = t(e).closest(".dropdown")[0];
if (o) {
var a = [].slice.call(o.querySelectorAll(".dropdown-toggle"));
t(a).addClass(Et)
}
e.setAttribute("aria-expanded", !0)
}
i && i()
}, e._jQueryInterface = function (n) {
return this.each(function () {
var i = t(this),
r = i.data(bt);
if (r || (r = new e(this), i.data(bt, r)), "string" == typeof n) {
if (void 0 === r[n]) throw new TypeError('No method named "' + n + '"');
r[n]()
}
})
}, r(e, null, [{
key: "VERSION",
get: function () {
return "4.3.1"
}
}]), e
}();
t(document).on(Tt.CLICK_DATA_API, '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]', function (e) {
e.preventDefault(), kt._jQueryInterface.call(t(this), "show")
}), t.fn.tab = kt._jQueryInterface, t.fn.tab.Constructor = kt, t.fn.tab.noConflict = function () {
return t.fn.tab = xt, kt._jQueryInterface
};
var At = "toast",
Dt = "bs.toast",
Nt = "." + Dt,
It = t.fn[At],
$t = {
CLICK_DISMISS: "click.dismiss" + Nt,
HIDE: "hide" + Nt,
HIDDEN: "hidden" + Nt,
SHOW: "show" + Nt,
SHOWN: "shown" + Nt
},
Ot = "show",
jt = "showing",
Lt = {
animation: "boolean",
autohide: "boolean",
delay: "number"
},
Mt = {
animation: !0,
autohide: !0,
delay: 500
},
Rt = function () {
function e(e, t) {
this._element = e, this._config = this._getConfig(t), this._timeout = null, this._setListeners()
}
var n = e.prototype;
return n.show = function () {
var e = this;
t(this._element).trigger($t.SHOW), this._config.animation && this._element.classList.add("fade");
var n = function () {
e._element.classList.remove(jt), e._element.classList.add(Ot), t(e._element).trigger($t.SHOWN), e._config.autohide && e.hide()
};
if (this._element.classList.remove("hide"), this._element.classList.add(jt), this._config.animation) {
var i = c.getTransitionDurationFromElement(this._element);
t(this._element).one(c.TRANSITION_END, n).emulateTransitionEnd(i)
} else n()
}, n.hide = function (e) {
var n = this;
this._element.classList.contains(Ot) && (t(this._element).trigger($t.HIDE), e ? this._close() : this._timeout = setTimeout(function () {
n._close()
}, this._config.delay))
}, n.dispose = function () {
clearTimeout(this._timeout), this._timeout = null, this._element.classList.contains(Ot) && this._element.classList.remove(Ot), t(this._element).off($t.CLICK_DISMISS), t.removeData(this._element, Dt), this._element = null, this._config = null
}, n._getConfig = function (e) {
return e = o({}, Mt, t(this._element).data(), "object" == typeof e && e ? e : {}), c.typeCheckConfig(At, e, this.constructor.DefaultType), e
}, n._setListeners = function () {
var e = this;
t(this._element).on($t.CLICK_DISMISS, '[data-dismiss="toast"]', function () {
return e.hide(!0)
})
}, n._close = function () {
var e = this,
n = function () {
e._element.classList.add("hide"), t(e._element).trigger($t.HIDDEN)
};
if (this._element.classList.remove(Ot), this._config.animation) {
var i = c.getTransitionDurationFromElement(this._element);
t(this._element).one(c.TRANSITION_END, n).emulateTransitionEnd(i)
} else n()
}, e._jQueryInterface = function (n) {
return this.each(function () {
var i = t(this),
r = i.data(Dt);
if (r || (r = new e(this, "object" == typeof n && n), i.data(Dt, r)), "string" == typeof n) {
if (void 0 === r[n]) throw new TypeError('No method named "' + n + '"');
r[n](this)
}
})
}, r(e, null, [{
key: "VERSION",
get: function () {
return "4.3.1"
}
}, {
key: "DefaultType",
get: function () {
return Lt
}
}, {
key: "Default",
get: function () {
return Mt
}
}]), e
}();
t.fn[At] = Rt._jQueryInterface, t.fn[At].Constructor = Rt, t.fn[At].noConflict = function () {
return t.fn[At] = It, Rt._jQueryInterface
},
function () {
if (void 0 === t) throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");
var e = t.fn.jquery.split(" ")[0].split(".");
if (e[0] < 2 && e[1] < 9 || 1 === e[0] && 9 === e[1] && e[2] < 1 || 4 <= e[0]) throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")
}(), e.Util = c, e.Alert = m, e.Button = C, e.Carousel = H, e.Collapse = Z, e.Dropdown = pe, e.Modal = Ae, e.Popover = ot, e.Scrollspy = _t, e.Tab = kt, e.Toast = Rt, e.Tooltip = Xe, Object.defineProperty(e, "__esModule", {
value: !0
})
}),
// 应该是从这里开始才是真正的代码片段
// 获取当前页面 米拓系统信息
function () {
// 从meta 拿到信息
window.MSTR = $('meta[name="generator"]').data("variable").split("|"),
// 将M 变量全局化
window.M = [],
// 从获取的信息内拿到第一个键值,猜测是域名
M.weburl = MSTR[0],
// 当前页面语言
M.lang = MSTR[1],
// 系统语言
M.synchronous = MSTR[2],
// 获取版本号,若是没有版本号 则设置为默认值 metinfo
M.metinfo_version = $('meta[name="generator"]').length ? $('meta[name="generator"]').attr("content").replace("MetInfo ", "").replace(/\./g, "") : "metinfo",
// 猜测为用户名
M.user_name = $('meta[name="generator"]').data("user_name") || "",
// 当前时间戳
M.time = (new Date).getTime(),
// 返回由客户机发送服务器的 user-agent 头部的值。
// navigator Navigator 对象包含有关浏览器的信息。
M.useragent = navigator.userAgent,
// 判断移动端类型
M.useragent_tlc = M.useragent.toLowerCase(),
// /iPad/.test(M.useragent) 是否为ipad
// /Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Silk/.test(M.useragent) 判断是否为手机端
// 判断是否为ipad 是则为t 不是则判断是为手机端 是为m 不是则默认为电脑端为 d
M.device_type = device_type = /iPad/.test(M.useragent) ? "t" : /Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Silk/.test(M.useragent) ? "m" : "d",
// 判断是否为UC浏览器
M.is_ucbro = /UC/.test(M.useragent),
// 判断是否IE9
M.is_lteie9 = !1,
// 判断是否为IE10
M.is_ie10 = !1,
// M.iebrowser_ver = (M.useragent_tlc.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [0, "0"])[1]
// 获取浏览器版本号
new RegExp("msie").test(M.useragent_tlc) && (M.iebrowser_ver = (M.useragent_tlc.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [0, "0"])[1], 10 == M.iebrowser_ver && (M.is_ie10 = !0), M.iebrowser_ver < 10 && (M.is_lteie9 = !0)),
// 延迟加载判断是否加载loadbg 样式效果
window.met_lazyloadbg = $("input[name=met_lazyloadbg]").val()
|| M.weburl + "app/static/images/loading.gif",
met_lazyloadbg.indexOf(M.weburl) < 0
&& met_lazyloadbg.indexOf("http") < 0
&& met_lazyloadbg.indexOf("../") < 0
&& (met_lazyloadbg = M.weburl + met_lazyloadbg),
(met_lazyloadbg == M.weburl || met_lazyloadbg.indexOf(".png") < 0 && met_lazyloadbg.indexOf(".gif") < 0 && met_lazyloadbg.indexOf(".jpg") < 0)
&& (met_lazyloadbg = M.weburl + "app/static/images/loading.gif"),
(window.ActiveXObject || "ActiveXObject" in window || M.is_ucbro) && (met_lazyloadbg = "base64"),
// 拿到最终结果
M.lazyloadbg = met_lazyloadbg,
// 最终执行
$(function () {
// 绑定操作
$(document).on("click", ".modal-dialog.modal-center", function (e) {
$(e.target).closest(".modal-dialog.modal-center .modal-content").length || $(this).parents(".modal:eq(0)").attr("data-backdrop") || $(this).parents(".modal:eq(0)").modal("hide")
}),
// 移动端处理
"m" == M.device_type && $(document).on("show.bs.modal", ".modal", function (e) {
$(".modal-dialog", this).hasClass("modal-center") && $(".modal-dialog", this).removeClass("modal-center")
}),
// 弹窗开启处理
$(document).on("shown.bs.modal", ".modal", function (e) {
$(".modal-dialog", this).hasClass("modal-center") && $(".modal-content", this).outerHeight() > $(window).height() && $(".modal-dialog", this).removeClass("modal-center")
}),
// 弹窗关闭处理
$(document).on("hidden.bs.modal", ".modal", function (e) {
$("form[data-validate_order]", this).each(function (e, t) {
$(this).data("formValidation").resetForm()
}), $(".modal.show").length && $("body").addClass("modal-open")
})
})
}(),
// 配置模块路径
M.metui_config = {
config: {
debug: 1
},
modules: {
routers: "#static/admin/js/routers",
app_form: "#modules/form/app_form",
formvalidation: {
css: "formValidation.min",
js: "formValidation.min"
},
datatables: {
css: "dataTables.bootstrap.min",
js: "jquery.dataTables.min"
},
breakpoints: "breakpoints.min",
ueditor: "ueditor.all.min",
minicolors: {
css: "jquery.minicolors",
js: "jquery.minicolors.min"
},
tokenfield: {
css: "#modules/bootstrap-tokenfield/bootstrap-tokenfield.min",
js: "#modules/bootstrap-tokenfield/bootstrap-tokenfield.min"
},
ionrangeslider: {
css: "ionrangeslider.min",
js: "ion.rangeSlider.min"
},
datetimepicker: {
css: "#modules/time/jquery.datetimepicker",
js: "#modules/time/jquery.datetimepicker"
},
"select-linkage": "jquery.cityselect",
alertify: {
css: "alertify.min"
},
fileinput: {
css: ["#fonts/glyphicons/glyphicons.min", "css/fileinput.min"],
js: "js/fileinput.min"
},
touchspin: {
css: "#modules/bootstrap-touchspin/bootstrap-touchspin.min",
js: "#modules/bootstrap-touchspin/bootstrap-touchspin.min"
},
lazyload: "#modules/jquery.lazyload.min",
masonry: "masonry.pkgd.min",
appear: "#modules/jquery-appear/jquery.appear.min",
ladda: {
css: "ladda.min",
js: "ladda.min"
},
"webui-popover": {
css: "webui-popover.min",
js: "jquery.webui-popover.min"
},
submenu: {
css: "#modules/bootstrap-submenu/bootstrap-submenu.min",
js: "#modules/bootstrap-submenu/bootstrap-submenu.min"
},
dragsort: "jquery.dragsort",
webuipopover: {
css: "#modules/webui-popover/webui-popover.min",
js: "#modules/webui-popover/jquery.webui-popover.min"
},
popper: "popper.min",
switchery: {
css: "switchery.min",
js: "switchery.min"
},
editable: {
css: "#modules/x-editable/x-editable.min",
js: "#modules/x-editable/bootstrap-editable.min"
},
editormd: {
js: "#app/editorswith/editormd/editormd",
css: "#app/editorswith/editormd/css/editormd.min"
}
}
},
// 将UI 信息挂载到e 上
function (e) {
"use strict";
var t = document,
n = {
modules: {},
status: {},
timeout: 10,
event: {},
debug: 0,
time: (new Date).getTime(),
dir: function () {
var e = t.currentScript ? t.currentScript.src : function () {
for (var e, n = t.scripts, i = n.length - 1, r = i; r > 0; r--)
if ("interactive" === n[r].readyState) {
e = n[r].src;
break
} return e || n[i].src
}();
return e.substring(0, e.lastIndexOf("/") + 1)
}()
},
i = function () {
this.v = M.metinfo_version
},
// 打印错误
r = function (t) {
e.console && console.error && console.error("Met hint: " + t)
},
o = [],
// 配置基础文件根目录
a = {
static: "app/static/",
modules: "app/static/modules/",
fonts: "app/static/fonts/",
sys: "app/system/",
app: "app/app/",
pub: "app/system/include/templates/admin/"
},
s = function (e, t) {
var n = t || (o[e] && o[e].js ? o[e].js : e),
i = n.indexOf("/") >= 0 ? n.split("/") : ["", n],
r = 0;
return $.each(a, function (e, t) {
if (i[0] == "#" + e) return n = M.weburl + n.replace(i[0] + "/", t), r = 1, !1
}), r || (n = M.weburl + "app/static/modules/" + (e ? e + "/" : "") + n), n
};
n.host = (n.dir.match(/\/\/([\s\S]+?)\//) || ["//" + location.host + "/"])[0],
i.prototype.config = n,
i.prototype.modules = o,
i.prototype.define = function (e, t) {
var i = this,
r = "function" == typeof e,
o = function () {
var e = function (e, t) {
metui[e] = t, n.status[e] = !0
};
return "function" == typeof t && t(function (i, r) {
e(i, r), n.callback[i] = function () {
t(e)
}
}), this
};
return r && (t = e, e = []), metui["metui.all"] || !metui["metui.all"] && metui["metui.mobile"] ? o.call(i) : (i.use(e, o), i)
},
// 定义的metui.use
i.prototype.use = function (e, i, a) {
function l(e, t, i) {
var o = "PLaySTATION 3" === navigator.platform ? /^complete$/ : /^(complete|loaded)$/;
("load" === e.type || o.test((e.currentTarget || e.srcElement).readyState)) && (n.modules[h] = t, d.removeChild(m), void 0 === n.status[h] && (n.status[h] = 1), function e() {
if (++p > 1e3 * n.timeout / 4) return r(h + " is not a valid module");
n.status[h] ? c() : setTimeout(e, 4)
}()
)
}
function c() {
a.push(metui[h]), e.length > 1 ? u.use(e.slice(1), i, a) : "function" == typeof i && i.apply(metui, a)
}
var u = this,
d = t.getElementsByTagName("html")[0];
if ("undefined" == typeof init_load) return window.init_load = 1, metui.configs = M.metui_config, $.extend(n, M.metui_config.config), $.extend(o, M.metui_config.modules), u.use(e, i), !1;
if (e = "string" == typeof e ? [e] : e, "#static/js/configs" != e[0] && void 0 === metui.configs) {
var f = setInterval(function () {
void 0 !== metui.configs && (u.use(e, i), clearInterval(f))
}, 10);
return !1
}
var h = e[0],
p = 0;
if (a = a || [], h && (o[h] = "string" == typeof o[h] ? [o[h]] : o[h]), o[h] && 1 == o[h].length && void 0 === o[h].js && (o[h] = {
js: o[h][0]
}), 0 === e.length || metui["metui.all"] && o[h] || !metui["metui.all"] && metui["metui.mobile"] && o[h]) return c(), u;
if (n.modules[h]) ! function e() {
if (++p > 1e3 * n.timeout / 4) return r(h + " is not a valid module");
n.modules[h].length, n.status[h] ? c() : setTimeout(e, 4)
}();
else {
var m = t.createElement("script"),
g = s(h) + ".js";
g = g.replace(/^\{\/\}/, ""), m.async = !0, m.charset = "utf-8", m.src = g + "?" + (n.debug ? n.time : u.v), d.appendChild(m), !m.attachEvent || m.attachEvent.toString && m.attachEvent.toString().indexOf("[native code") < 0 ? m.addEventListener("load", function (e) {
l(e, g)
}, !1) : m.attachEvent("onreadystatechange", function (e) {
l(e, g)
}), n.modules[h] = g, void 0 !== o[h] && void 0 !== o[h].css && u.link(o[h].css, "", h)
}
return u
},
i.prototype.link = function (e, i, o) {
for (var a = this, l = t.getElementsByTagName("head")[0], e = "string" == typeof e ? [e] : e, c = 0; c < e.length; c++) {
e[c] = s(o, e[c]) + ".css";
var u = t.createElement("link");
u.rel = "stylesheet", u.media = "all";
var d = u.id = "metuicss-" + e[c].replace(".css", "").replace(M.weburl, "").replace(/\./g, "").replace(/\//g, "-"),
f = 0;
u.href = e[c] + "?" + (n.debug ? n.time : a.v), t.getElementById(d) || l.appendChild(u),
function o() {
if (++f > 1e3 * n.timeout / 100) return r(e[c] + " timeout");
"function" == typeof i && (t.getElementById(d) ? i() : setTimeout(o, 100))
}()
}
return a
},
n.callback = {},
i.prototype.factory = function (e) {
if (metui[e]) return "function" == typeof n.callback[e] ? n.callback[e] : null
},
i.prototype.ajax = i.prototype.request = function (e, t) {
var e = $.extend({
url: "",
data: "",
type: "POST",
dataType: "json",
success: function (e) {
"function" == typeof t && t(e)
}
}, e);
!e.data && (e.type = "GET"), $.ajax(e)
},
e.metui = new i
}(window),
function () {
"undefined" != typeof MET && ($.extend(M, MET), MET = M),
M.url || (M.url = []),
M.url.static = M.weburl + "app/static/",
M.url.static_modules = M.url.static + "modules/",
M.url.app = M.weburl + "app/app/",
M.url.system = M.weburl + "app/system/",
M.met_editor_plugin = "ueditor" == M.met_editor ? M.met_editor : ["#app/editorswith/editormd/markdown/dist/to-markdown", M.met_editor],
$.fn.extend({
// 米拓编辑器
metEditor: function () {
if ($(this).length) {
var e = $(this);
"undefined" == typeof EDITOR_VAL && (window.EDITOR_VAL = []), "cn" != M.synchronous && "editormd" == M.met_editor && M.met_editor_plugin.push("#app/editorswith/editormd/languages/" + M.synchronous), metui.use(M.met_editor_plugin, function () {
e.each(function (e, t) {
var n = parseInt($(this).data("editor-y")) || 400;
if ("ueditor" == M.met_editor) {
if (!$(this).attr("id")) {
var i = "ueditor-" + (new Date).getTime();
$("#" + i).length && (i += 1), $(this).attr({
id: i
})
}
EDITOR_VAL[t.id] && $("#" + t.id + ".edui-default").length && EDITOR_VAL[t.id].destroy();
var r = $(this).parents(".met-scrollbar").eq(0),
o = "";
r.length && (r.attr("id") || r.attr({
id: "scrollbar-" + (new Date).getTime()
}), o = "#" + r.attr("id")), EDITOR_VAL[t.id] = UE.getEditor(t.id, {
lang: "en" == M.synchronous ? "en" : "zh-cn",
wrapper: o,
scaleEnabled: !0,
autoFloatEnabled: !0,
initialFrameWidth: parseInt($(this).data("editor-x")) || "100%",
initialFrameHeight: n
})
} else if ("editormd" == M.met_editor) {
$(this).text(toMarkdown($(this).text(), {
gfm: !0
}));
var i = "editormd-" + (new Date).getTime();
$("#" + i).length && (i += 1), $(this).wrap('<div id="' + i + '" class="mb-0"></div>'), EDITOR_VAL[i] = editormd(i, {
name: $(this).attr("name"),
height: n,
htmlDecode: !0,
saveHTMLToTextarea: !0,
path: M.url.app + "editorswith/editormd/lib/",
imageUpload: !0
}), EDITOR_VAL[i].setContent = function (e) {
EDITOR_VAL[i].setValue(toMarkdown(e, {
gfm: !0
}))
}
}
})
})
}
},
// 时间插件
metDatetimepicker: function () {
$(this).length && $(this).each(function (e, t) {
var n = $(this);
$(this).datetimepicker({
lang: "cn" == M.synchronous ? "ch" : "en",
timepicker: 2 == n.attr("data-day-type"),
format: 2 == n.attr("data-day-type") ? "Y-m-d H:i:s" : "Y-m-d",
onSelectDate: function (e, t) {
n.val() || n.trigger("change")
},
onSelectTime: function (e, t) {
n.val() || n.trigger("change")
}
})
})
},
// 城市选择器
metCitySelect: function () {
$(this).length && ("undefined" == typeof citySelect && (window.citySelect = []), $(this).each(function (e) {
var t = $(this).attr("data-key") && "" != $(this).attr("data-key") ? $(this).attr("data-key") : (new Date).getTime(),
n = $(this).attr("data-select-url"),
i = $(".select-linkage-data", this),
r = {
url: n ? "json" == n && i.length ? JSON.parse(i.val()) : n : M.url.static_modules + "select-linkage/citydata.min.json",
prov: $(this).find(".prov").attr("data-checked"),
city: $(this).find(".city").attr("data-checked"),
dist: $(this).find(".dist").attr("data-checked"),
value_key: $(this).data("value_key") || "value",
nodata: $(this).data("nodata") || "none",
required: $(this).data("required") || !1
};
$(this).attr({
"data-key": t
}), $(this).hasClass("shop-address-select") && $.extend(r, {
country: $(this).find(".country").attr("data-checked"),
country_name_key: "name",
p_name_key: "name",
n_name_key: "name",
s_name_key: "name",
p_children_key: "children",
n_children_key: "children",
getCityjson: function (e, t) {
return t = t || 0, e[t].children
}
}), citySelect[t] && citySelect[t].destroy(), citySelect[t] = $(this).citySelect(r)
}))
},
// 拖拽排序
metDragsort: function () {
var e = $(this);
"undefined" == typeof dragsortFun && (window.dragsortFun = []), e.each(function (e, t) {
var n = window,
i = $(this),
r = $(this).attr("data-dragsort_order") && "" != $(this).attr("data-dragsort_order") ? $(this).attr("data-dragsort_order") : (new Date).getTime(),
o = $(this).parents(".met-scrollbar").eq(0);
$(this).attr({
"data-dragsort_order": r
}), o.length && (!o.attr("data-dragsort_key") && o.attr({
"data-dragsort_key": r
}), n = '[data-dragsort_key="' + o.attr("data-dragsort_key") + '"]'), $(this).dragsort("destroy"), $(this).dragsort({
dragSelector: $(this).data("drag_selector") || "tr",
dragBetween: !1,
scrollContainer: n,
dragSelectorExclude: void 0 !== $(this).data("drag_selector_exclude") ? $(this).data("drag_selector_exclude") : "input,textarea,select,a,i,span,button,.minicolors-panel",
dragEnd: function () {
void 0 !== dragsortFun[r] && dragsortFun[r](i, $(this)), i.parents("table").find(".checkall-all:eq(0)").prop({
checked: !0
}).change()
}
})
})
},
// 猜测默认选项
metRadioCheckboxChecked: function () {
$(this).length && $(this).each(function (e, t) {
var n = "switchery" == $(this).attr("data-plugin"),
i = String(n ? $(this).val() : $(this).attr("data-checked")),
r = $(this).data("delimiter") || "#@met@#";
if (n ? parseInt(i) : "undefined" != i) {
i = i.indexOf(r) >= 0 ? i.split(r) : [i];
var o = $(this).attr("name");
$(this).parents("form").find('input[name="' + o + '"]').removeAttr("checked");
for (var a = 0; a < i.length; a++) $(this).parents("form").find('input[name="' + o + '"][value="' + i[a] + '"]').attr("checked", !0).prop({
checked: !0
}).change()
}
})
},
// 猜测下拉的默认选项
metSelectChecked: function () {
$(this).length && $(this).each(function (e, t) {
if ($(this).attr("multiple")) {
var n = $(this),
i = "" != $(this).attr("data-checked") ? $(this).attr("data-checked").split($(this).data("delimiter") || "|") : "";
$.each(i, function (e, t) {
n.find('option[value="' + t + '"]').attr({
selected: !0
})
})
} else $('option[value="' + $(this).attr("data-checked") + '"]', this).attr({
selected: !0
})
})
},
// 延迟加载
metLazyLoad: function (e) {
if ($(this).length) {
var t = $(this),
e = e || {};
if ($(this).parents(".met-scrollbar").length) {
var n = "met-lazyload-container-" + (new Date).getTime();
$(this).parents(".met-scrollbar").eq(0).addClass(n), e.container = "." + n
}
metui.use("lazyload", function () {
t.lazyload(e)
})
}
},
// 确认弹窗
metClickConfirmAjax: function (e) {
var t = encodeURI(this.selector);
if ("undefined" == typeof clickConfirmAjaxStatus && (window.clickConfirmAjaxStatus = {}), !clickConfirmAjaxStatus[t]) {
clickConfirmAjaxStatus[t] = 1;
var e = $.extend({
ajax_data: "",
true_text: METLANG.confirm || "确定",
false_text: METLANG.cancel || "取消",
confirm_text: METLANG.delete_information || "您确定要删除该信息吗?删除之后无法再恢复。",
true_fun: function () {
var e = "function" == typeof this.url ? this.url() : this.url,
t = "function" == typeof this.ajax_data ? this.ajax_data() : this.ajax_data,
n = this;
$.ajax({
url: e,
type: t ? "POST" : "GET",
dataType: "json",
data: t,
success: function (e) {
n.ajax_fun(e)
}
})
},
false_fun: "",
ajax_fun: function (e) {
metAjaxFun({
result: e
})
}
}, e);
$(document).on("click", this.selector, function (t) {
var n = $.extend({
el: $(this),
url: $(this).data("url")
}, e);
metui.use("alertify", function () {
var e = "function" == typeof n.confirm_text ? n.confirm_text() : n.confirm_text;
alertify.okBtn(n.true_text).cancelBtn(n.false_text).confirm(e, function (e) {
n.true_fun()
}, function () {
"function" == typeof n.false_fun && n.false_fun()
})
})
})
}
},
// 表搜索重置
tabelsearchReset: function (e) {
window.dataTable_search_stop = 1;
var t = '[data-table-search]:not([data-table-noreset]):not([type="hidden"]):not([hidden])';
$(this).find(t).val("").change(), $(this).find(t + "select").each(function (e, t) {
$(this).val($("option:first-child", this).val()).change()
}), "function" == typeof e && e(), dataTable_search_stop = 0
},
// 栏目
metCommon: function () {
var e = this;
$("form", e).length && ("undefined" == typeof validate ? metui.use(["form", "app_form"]) : $("form", e).validation()),
$(".dataTable", e).length && ("undefined" == typeof dataTable ? metui.use("table") : $(e).metDataTable()),
$('[data-toggle="modal"],.modal', e).length && metui.use("modal"),
$('textarea[data-plugin="editor"]', e).length && $('textarea[data-plugin="editor"]', e).metEditor(),
$('[data-plugin="minicolors"]', e).length && metui.use("minicolors", function () {
$('[data-plugin="minicolors"]', e).minicolors().attr({placeholder: METLANG.default_values})
}),
$('[data-plugin="tokenfield"]', e).length && metui.use("tokenfield", function () {
$('[data-plugin="tokenfield"]', e).tokenfield()
}),
$('[type="text"][data-plugin="ionRangeSlider"]', e).length && metui.use("ionrangeslider", function () {
$('[type="text"][data-plugin="ionRangeSlider"]', e).ionRangeSlider()
}),
$('[data-plugin="datetimepicker"]', e).length && metui.use("datetimepicker", function () {
$('[data-plugin="datetimepicker"]', e).metDatetimepicker()
}),
$('[data-plugin="select-linkage"]', e).length && metui.use("select-linkage", function () {
$('[data-plugin="select-linkage"]', e).metCitySelect()
}),
$('[data-plugin="alertify"]', e).length && metui.use("alertify"),
$('[data-plugin="checkAll"]', e).length && metui.use("checkall", function () {
$('[data-plugin="checkAll"]', e).checkAll(".checkall-all", ".checkall-item:not([disabled])", ".checkall-contrary")
}),
$('input[type="file"][data-plugin="fileinput"]', e).length && metui.use(["modal", "fileinput"], function () {
$('input[type="file"][data-plugin="fileinput"]', e).metFileInput()
}),
$(".met-scrollbar", e).length && $(".met-scrollbar", e).addClass("oya").each(function (e, t) {
$(this).data("height") && $(this).css({
"max-height": parseInt($(this).data("height"))
})
}),
$('input[data-checked],input[data-plugin="switchery"]', e).length && $('input[data-checked],input[data-plugin="switchery"]', e).metRadioCheckboxChecked(),
$("select[data-checked]", e).length && $("select[data-checked]", e).metSelectChecked(),
$('[data-plugin="touchSpin"]', e).length && metui.use("touchspin", function () {
$('[data-plugin="touchSpin"]', e).TouchSpin()
}),
$("[data-original]", e).length && !$(".met-web").length && $("[data-original]", e).metLazyLoad(),
$("[data-submenu]", e).length && metui.use(["popper", "submenu"], function () {
$("[data-submenu]", e).submenupicker()
}),
$('[data-toggle="dropdown"]', e).length && $('[data-toggle="dropdown"]', e).attr({
onClick: "dropdownMenuPosition(this)"
}),
$('[data-plugin="dragsort"]', e).length && metui.use("dragsort", function () {
$('[data-plugin="dragsort"]', e).metDragsort()
}),
$('[data-plugin="iconset"]', e).length && metui.use(["modal", "iconset"], function () {
$('[data-plugin="iconset"]', e).metIconSet()
}),
$('[data-plugin="webuiPopover"]', e).length && metui.use("webuipopover", function () {
$('[data-plugin="webuiPopover"]', e).each(function (e, t) {
var n = M.component.webuiPopover($(this));
$(this).webuiPopover(n)
})
}),
$('[data-plugin="switchery"]', e).length && metui.use("switchery", function () {
$('[data-plugin="switchery"]', e).each(function (e, t) {
new Switchery(t)
})
}),
$('[data-plugin="select-fontsize"]', e).length && metui.use("fontsize-select", function () {
$('[data-plugin="select-fontsize"]', e).fontSizeSelect()
})
}
}),
$(document).metCommon(),
$(function () {
// 检测输入框的值变化
$(document).on("change", 'input[type="checkbox"][data-plugin="switchery"]', function (e) {
var t = $(this).is(":checked") ? 1 : 0;
$(this).val(t)
}),
// 检测指定class 的变化
$(document).on("change", ".tokenfield .token-input", function (e) {
$(this).parents(".tokenfield").find("[name][data-fv-field]").trigger("change")
}),
// 点击事件 好像是折叠效果
$(document).on("click", '[data-toggle="collapse"]', function (e) {
var t = $('i[class*="fa-angle-"]', this),
n = $($(this).data("target"));
if (t.length && (t.hasClass("transition500") || t.addClass("transition500"), n.height() ? t.removeClass("rotate90") : t.addClass("rotate90")), !n.height()) {
var i = ($(this), $(this).parents(".met-scrollbar").eq(0));
setTimeout(function () {
var e = n.height();
e > 100 && (e = 100), e += i.scrollTop(), i.stop().animate({
scrollTop: e
}, 300)
}, 500)
}
}),
// 猜测返回顶部
metGoTop($(".metadmin-rightcontent").length ? ".metadmin-rightcontent" : ""),
// 点击指定class时触发
$(document).on("click", ".webui-popover [data-webuipopover-hide]", function (e) {
$("body").click()
})
})
}(),
// 类似核心方法吧
M.component = {
// 装载
loader: function (e) {
var e = $.extend({
type: "",
class_name: "",
wrapper_class: "",
height: "",
colspan: "",
style: ""
}, e),
// 默认返回值
t = '<div class="text-center py-5 ' + e.class_name + '" style="height:' + e.height + ";" + e.style + '"><div class="' + e.wrapper_class + '"><div class="loader loader-round-circle"></div></div></div>';
// 判断类型 估计是判断是否为表格吧
switch (e.type) {
case "table":
t = '<tr><td colspan="' + e.colspan + '">' + t + "</td></tr>"
}
return t
},
// 类似表格的操作
btn: function (e, t) {
var n = "";
switch (e) {
case "cancel":
n = '<button type="button" class="btn btn-sm btn-default ml-1" table-cancel>' + (METLANG.js49 || "撤销") + "</button>";
break;
case "del_item":
n = '<button type="button" class="btn btn-sm btn-default" data-plugin="webuiPopover" data-webuipopover-component="table-del" data-del_url="' + t.del_url + '">' + (METLANG.delete || "删除") + "</button>";
break;
case "del":
t.class = t.class ? t.class : "btn btn-sm btn-default " + (t.other_class ? t.other_class : ""), n = '<button type="button" class="' + t.class + '" data-url="' + t.del_url + '" table-delete data-plugin="alertify" data-type="confirm"' + (t.confirm_title ? ' data-confirm-title="' + t.confirm_title + '"' : "") + ">" + (t.title || METLANG.delete || "删除") + "</button>"
}
return n
},
webuiPopoverFun: [],
webuiPopover: function (e) {
var t = {},
n = e.data("webuipopoverComponent"),
i = "webuipopover-" + (new Date).getTime();
return e.wrap('<div class="position-relative d-inline-block ' + i + '"></div>'), n && M.component.webuiPopoverFun[n] && (t = M.component.webuiPopoverFun[n](i)), t
},
checkall: function (e, t) {
return "item" == e ? '<div class="custom-control custom-checkbox"><input class="checkall-item custom-control-input" type="checkbox" name="id" value="' + t + '"><label class="custom-control-label"></label></div>' : '<th data-table-columnclass="text-center" class="text-center" width="30"><div class="custom-control custom-checkbox"><input class="checkall-all custom-control-input" type="checkbox"><label class="custom-control-label"></label></div></th>'
},
// 表单的默认处理
formWidget: function (e, t, n, i, r, o) {
var a = "",
s = $.extend(!0, {
data_value_key: "value",
rows: 5,
attr: "",
class_name: "",
delimiter: ",",
dt: 1,
inline_block: 0,
other: "",
other1: ""
}, "object" == typeof e ? e : {
name: e,
value: t,
type: n,
required: i,
no_formgroup: r,
class_name: o || ""
});
if (s.example_title) {
a = '<h3 class="example-title clearfix">' + s.example_title + s.other + "</h3>";
}else {
var l = function () {
var e = "",
t = s.class_name;
return s.required && (s.required = "file" == s.type ? 'data-filerequired="1"' : "required"), $.inArray(s.type, ["text", "checkbox", "radio", "hidden", "file", "button"]) >= 0 && (e += 'type="' + s.type + '"'), $.inArray(s.type, ["text", "checkbox", "radio", "hidden", "file"]) >= 0 && (e += ' value="' + s.value + '"'), !s.key && void 0 !== s.checked && (e += ' data-checked="' + s.checked + '"'), $.inArray(s.type, ["checkbox"]) >= 0 && void 0 !== s.delimiter && (e += ' data-delimiter="' + s.delimiter + '"'), s.placeholder && (e += ' placeholder="' + s.placeholder + '"'), $.inArray(s.type, ["checkbox", "radio"]) >= 0 && (e += ' id="' + s.type + "-" + s.name + "-" + c + "-" + s.key + '"') && (t += " custom-control-input"), $.inArray(s.type, ["text", "select", "textarea"]) >= 0 && (t += " form-control"), s.name && (e += ' name="' + s.name + '"'), e += " " + s.attr + " " + s.required + ' class="' + t + '"'
},
c = (new Date).getTime();
switch ($.inArray(s.type, ["select", "checkbox", "radio"]) >= 0 && (s.checked = s.value), s.type) {
case "select":
$.each(s.data, function (e, t) {
a += '<option value="' + t[s.data_value_key] + '" ' + ("function" == typeof s.select_option_attr ? s.select_option_attr(e, t) : "") + ">" + ("function" == typeof s.select_option ? s.select_option(e, t) : t.name) + "</option>"
}), s.wfull || (s.class_name += " w-auto d-inline-block"), a = "<select " + l() + ">" + a + "</select>";
break;
case "textarea":
a = "<textarea " + l() + ' rows="' + s.rows + '">' + s.value + "</textarea>";
break;
case "textarea_hidden":
a = "<textarea " + l() + " hidden>" + s.value + "</textarea>";
break;
case "checkbox":
$.each(s.data, function (e, t) {
s.value = t[s.data_value_key], s.key = e, a += '<div class="custom-control custom-checkbox ' + (s.inline_block ? "custom-control-inline" : "") + '"><input ' + l() + '><label class="custom-control-label" for="checkbox-' + s.name + "-" + c + "-" + e + '">' + (t.name ? t.name : t.value) + "</label></div>"
});
break;
case "radio":
$.each(s.data, function (e, t) {
s.value = t[s.data_value_key], s.key = e, a += '<div class="custom-control custom-radio ' + (s.inline_block ? "custom-control-inline" : "") + '"><input ' + l() + '><label class="custom-control-label" for="radio-' + s.name + "-" + c + "-" + e + '">' + (t.name ? t.name : t.value) + "</label></div>"
});
break;
case "file":
var u = s.accept ? "file" == s.accept ? u = "*" : s.accept : "image/*";
a = '<div class="d-inline-block"><input ' + l() + ' data-plugin="fileinput" ' + (s.multiple ? "multiple" : "") + ' accept="' + u + '"></div>';
break;
case "editor":
a = "<textarea " + l() + ' data-plugin="editor" data-editor-y="200" hidden>' + s.value + "</textarea>";
break;
case "color":
s.type = "text", a = "<input " + l() + ' data-plugin="minicolors">';
break;
case "socail_link":
var e = s.name,
d = s.value,
t = s.value.split("$M$");
s.name = e + "-socail_type", s.type = "select", s.checked = t[0], a = '<div class="input-group"><select ' + l() + '><option value="tel">' + METLANG.parameter8 + '</option><option value="sms">' + METLANG.short_message + '</option><option value="email">' + METLANG.mailbox + '</option><option value="qq">' + METLANG.common_qq + '</option><option value="qyqq">' + METLANG.enterprise_qq + "</option></select>", delete s.checked, s.name = e + "-socail_val", s.type = "text", s.value = t[1], a += "<input " + l() + "></div>", s.name = e, s.type = "hidden", s.value = d, a += "<input " + l() + ">";
break;
case "icon":
s.type = "hidden", a = "<input " + l() + ' data-plugin="iconset" data-btn_size="' + (s.btn_size || "") + '" data-icon_class="' + (s.icon_class || "") + '">';
break;
case "collapse":
s.type = "button", s.class_name += " btn btn-warning", a = "<button " + l() + ' data-toggle="collapse" data-target="' + s.target + '">' + s.title + '<i class="icon fa-angle-right ml-2"></i></button>';
break;
case "submit":
a = '<button type="submit" class="btn btn-primary ' + s.class_name + '" ' + s.attr + ">" + s.title + "</button>";
default:
s.type || (s.type = "hidden"), a = "<input " + l() + ">"
}
a += s.other + (s.tips ? '<span class="text-help ml-2 ' + s.tips_class + '">' + s.tips + "</span>" : "") + s.other1, s.required && !s.no_formgroup && (a = '<div class="form-group">' + a + "</div>"), s.dl && (a = "<dl>" + (s.dt ? '<dt><label class="form-control-label">' + s.label + "</label></dt>" : "") + '<dd class="clearfix">' + a + "</dd></dl>")
}
return a
},
// 提交保存的html
submit_selctor: '.btn[type="submit"]:not([data-submit_type])'
},
function () {
function e() {
// 判断是否登陆状态
if (checkLogin()) {
// 已登陆的处理
// 获取URL上 从 # 号开始的部分,返回的结果上带有 #
var e = location.hash;
// 判断是否存在# 后面的内容,不存在则不再执行
if ("" == (e = e.length > 2 && "#/" == e.substr(0, 2) ? e.substr(2) : "")) return !1;
// 存在# 后面内容,则进行下面处理
// 不含# 含# 后面的所有内容,且含?后面的内容
var t = e;
// 判断是否存在/?内容
e.indexOf("/?") > 0 && (e = e.substr(0, e.indexOf("/?")));
// 这个时候的e 已经变成了,/?之前的内容,类似 app/met_template 应用的位置 系统的则是seo
// 应用目录名或者说是模块名
var n = hashHandle(e);
// e 变身为 完整目录位置 类似 app/met_template 应用的位置 系统的则是seo
e = "app/" == e.substr(0, 4) ? "app/" + n : n;
var i = $('.metadmin-sidebar-nav a[href="#/' + e + '"]'),
r = $('.metadmin-content[data-page="' + e + '"]'),
o = $(".metadmin-loader"),
// 默认情况加载的内容
a = function (t) {
var a = t || r;
if (o.stop().fadeOut(100, function () {a.fadeIn(100)}), M.noside) {
var s = (a.find(".met-headtab:eq(0) a.active").text() || a.find('>input[type="hidden"][name="page_title"]').val()) + "-";
}else {
var s = i.attr("title") ? i.attr("title") + "-" : "home" == n ? METLANG.background_page + "-" : "",
l = '<li class="breadcrumb-item"><a href="#/' + e + '">' + (i.attr("title") || METLANG.background_page) + "</a></li>";
if (i.parents(".sub").length || i.data("parent-title")) {
var c = i.data("parent-title") || i.parents(".sub").prev("a").attr("title");
l = '<li class="breadcrumb-item">' + c + "</li>" + l, s += c + "-"
}
}
$("title").html(s + $("title").data("title")),
M.noside && ($(".metadmin-breadcrumb .breadcrumb-item:gt(0)").remove(),
$(".metadmin-breadcrumb .breadcrumb-item:first-child").after(l)),
"manage" != e && a.find(".met-headtab[data-ajaxchange]:eq(0) a:eq(" + (getQueryString("head_tab_active") || 0) + ")").click()
};
$(".metadmin-sidebar-nav li").removeClass("active"),
i.parents("li").addClass("active"),
$(".metadmin-content").hide(),
o.stop().fadeIn(100),
// 判断处理
r.length && r.attr("data-loaded")
? setTimeout(function () {
a(),
loadedTempReload(e)
}, 200)
: $.metLoadTemp(t, "", function (t, n, i, r, o) {
$(".metadmin-main").append('<div class="metadmin-content card p-4 border-none metadmin-shadow position-static" data-page="' + e + '" data-loaded="1" style="display: none;"></div>');
// 正常页面打开执行过程
var s = $('.metadmin-content[data-page="' + e + '"]');
s.html(t.html),
a(s),
adminModuleInfo(s, n, e, i, r, o),
"function" == typeof TEMPLOADFUNS[e] && TEMPLOADFUNS[e]()
})
}
}
// e 函数结束
// 检测是否存在met-admin的class名
M.is_admin = $("html").hasClass("met-admin"),
M.noside = getQueryString("noside"),
// 猜测是加载内容
$.metLoadTemp = function (e, t, n) {
// e = app/met_template/?c=temtool&a=dotemlist
if (!e) return !1;
var i = file_path = "",
r = 0,
t = t || {},
o = "";
"#" == e.substr(0, 1) && (i = e.substr(1, e.indexOf("/")),
e = e.substr(e.indexOf("/") + 1)),
e.indexOf("?") > 0 && (o = e.substr(e.indexOf("?") + 1),
e = e.substr(0, e.indexOf("?") - 1)),
"" != o && $.each(o.split("&"),
function (e, n) {
if (n) {
var i = n.split("=");
i[1] && "" != i[1] && (t[i[0]] = i[1])
}
});
var a = e.indexOf("/") ? e.split("/") : [e];
"app" == a[0] && (a.splice(0, 1), r = 1),
metui.use("routers", function () {
ROUTERS[a[0]] || (ROUTERS[a[0]] = {}),
ROUTERS[a[0]].module || (ROUTERS[a[0]].module = a[0]),
ROUTERS[a[0]].path || (ROUTERS[a[0]].path = "index"),
"index" == a[1] && a.splice(1),
a[1] && (ROUTERS[a[0]].sub || (ROUTERS[a[0]].sub = {}),
ROUTERS[a[0]].sub[a[1]] || (ROUTERS[a[0]].sub[a[1]] = {}),
ROUTERS[a[0]].sub[a[1]].path || (ROUTERS[a[0]].sub[a[1]].path = a[1]));
var o = a[1] ? ROUTERS[a[0]].sub[a[1]].data : ROUTERS[a[0]].data;
o && $.extend(t, o),
// 模板文件目录位置
i ? file_path = i + e
: (i = (r ? "apps" : "sys") + "/",
file_path = i + ROUTERS[a[0]].module + "/admin/templates/" + (a[1] ? ROUTERS[a[0]].sub[a[1]].path : ROUTERS[a[0]].path),
"apps/" == i && (i = "app/")),
// 加载内容
$.ajax({
url: M.url.admin + "?m=include&c=loadtemp&a=doviewhtml",
type: "POST",
dataType: "json",
data: {
path: file_path,
data: t
},
success: function (e) {
metAjaxFun({
result: e,
true_fun: function () {
"function" == typeof n && n(e, i, a, file_path, t)
}
})
}
})
})
},
window.TEMPLOADFUNS = [],
checkLogin(),
M.is_admin && (M.useragent_tlc.indexOf("rv:11.0") > 0
? window.onhashchange = function () {
// 执行登陆状态处理
e()
} : window.addEventListener("popstate", function () {
// 执行登陆状态处理
e()
}),
location.hash.length < 2 ? location.hash = "/home" : e()),
$(function () {
$(document).on("click", "a,button,input", function (e) {
$("html.met-admin,html.met-pageset").length && !$(this).parents(".alertify").length && !$(this).hasClass("dropdown-toggle") && (checkLogin() || e.preventDefault())
}),
$(".met-login-form").length && metui.use(["form", "app_form"], function () {
setTimeout(function () {
formSaveCallback($(".met-login-form").attr("data-validate_order"), {
true_fun: function (e) {
setTimeout(function () {
location.href = M.url.admin + "?lang=" + e.data.admin_lang + "&n=ui_set"
}, 1e3)
}
})
}, 0)
}),
$(".met-getpassword-form[data-submit-ajax]").length && metui.use(["form", "app_form"], function () {
setTimeout(function () {
formSaveCallback($(".met-getpassword-form").attr("data-validate_order"), {
true_fun: function (e) {
e.url && setTimeout(function () {
location.href = e.url
}, 1500)
}
})
}, 0)
}),
$(".metadmin-head-langlist a[data-val]").click(function (e) {
setCookie("admin_lang", $(this).data("val")), location.href = M.url.admin
}),
$(document).on("click", '.function-ency-list .list-group-item a[href*="/#/"]', function (e) {
if (M.is_admin) {
e.preventDefault(), $(".function-ency-modal").modal("hide");
var t = $(this).attr("href").split("/")[1];
if ("manage" != t && $('.metadmin-content[data-page="' + t + '"] .met-headtab[data-ajaxchange]').length) {
var n = getQueryString("head_tab_active", $(this).attr("href")) || 0;
$('.metadmin-content[data-page="' + t + '"] .met-headtab a:eq(' + n + ")").click()
} else location.href = $(this).attr("href")
}
}),
// 点击URL后的操作 且URL 内必须含有#
$(document).on("click", '.met-headtab[data-ajaxchange] a[href^="#"]', function (e) {
M.is_admin && replaceParamVal("head_tab_active", $(this).index());
var t = $($(this).attr("href")),
n = $(this).text(),
i = $(this).data("url"),
r = i.indexOf("/?") > 0 ? i.split("/?")[0] : i;
r = hashHandle(r), t.attr("data-loaded") ? loadedTempReload(r, t) : metLoadTemp(i, "", t, function (e) {
t.html(e)
}, function (e, n) {
"function" == typeof TEMPLOADFUNS[r] && TEMPLOADFUNS[r](), t.attr({
"data-loaded": 1
})
});
var o = t.parents(".tab-content:eq(0)");
o.css({
"min-height": Math.max.call(null, 300, o.height())
}), o.find(".tab-pane").addClass("hide"), o.find(">.headtab-content-loader").length || o.append(M.component.loader({
class_name: "w-100 bg-white position-absolute headtab-content-loader",
wrapper_class: "d-flex align-items-center justify-content-center h-100",
style: "left:0;top:0;z-index:100;",
height: "300px"
})), o.addClass("position-relative").find(">.headtab-content-loader").removeClass("hide"), setTimeout(function () {
o.removeClass("position-relative").find(">.headtab-content-loader").addClass("hide"), t.removeClass("hide"), o.css({
"min-height": ""
}), M.is_admin && M.noside && $("title").html(n + "-" + $("title").data("title"))
}, 300)
}),
M.component.datatablePlay = function (e, t, n) {
metui.use(["table", "datatables"], function () {
var t = t || e.obj.find(".dataTable").data("datatable_order");
$(t).attr({
"data-table-ajaxurl": $(t).data("ajaxurl")
}), "function" == typeof n && (datatable_option[t] = n(e, t)), setTimeout(function () {
e.obj.metDataTable()
}, 50)
})
},
M.component.commonList = function (e) {
var t = $.extend(!0, {}, admin_module),
n = t.obj.find("[data-datatable_order]").data("datatable_order");
M.component.datatablePlay(t, n, e), TEMPLOADFUNS[t.hash] = function () {
var n = $.extend(!0, {}, admin_module),
i = n.obj.find("[data-datatable_order]").data("datatable_order"),
r = function () {
n.obj.attr("data-loaded") ? (n.obj.tabelsearchReset(), setTimeout(function () {
datatable[i].ajax.reload()
}, 0)) : M.component.datatablePlay(n, i, e)
};
n.obj.selector == t.obj.selector ? r() : void 0 !== datatable[i] ? r() : M.component.datatablePlay(n, i, e)
}
},
$(document).on("click", ".clear-cache", function (e) {
e.preventDefault(), metAlert(($(this).attr("title") || $(this).text()) + "...", 0, 1), metui.ajax({
url: $(this).attr("href")
}, function (e) {
metAjaxFun({
result: e,
true_fun: function () {
metAlert("", 0, 1), setTimeout(function () {
window.location.reload()
}, 500)
}
})
})
}),
$(".btn-adminsidebar-control").click(function (e) {
var t = $("i", this).hasClass("wb-arrow-left"),
n = t ? 0 : 300;
$("i", this).removeClass(t ? "wb-arrow-left" : "wb-menu").addClass(t ? "wb-menu" : "wb-arrow-left"), $(".metadmin-sidebar").toggleClass("min"), setTimeout(function () {
$(".metadmin-sidebar").toggleClass("retract")
}, n)
})
})
}();