Created
January 12, 2018 15:34
-
-
Save mvnp/0a1aa62b46008a22943048f433f1621e to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function setCookie(a, b, c) { | |
var d = new Date; | |
d.setTime(d.getTime() + 24 * c * 60 * 60 * 1e3); | |
var e = "expires=" + d.toUTCString(); | |
document.cookie = a + "=" + b + ";" + e + ";path=/" | |
} | |
function getCookie(a) { | |
for (var b = a + "=", c = document.cookie.split(";"), d = 0; d < c.length; d++) { | |
for (var e = c[d]; | |
" " == e.charAt(0);) e = e.substring(1); | |
if (0 == e.indexOf(b)) return e.substring(b.length, e.length) | |
} | |
return "" | |
} | |
if (! function(a, b) { | |
"object" == typeof module && "object" == typeof module.exports ? module.exports = a.document ? b(a, !0) : function(a) { | |
if (!a.document) throw new Error("jQuery requires a window with a document"); | |
return b(a) | |
} : b(a) | |
}("undefined" != typeof window ? window : this, function(a, b) { | |
function c(a) { | |
var b = !!a && "length" in a && a.length, | |
c = na.type(a); | |
return "function" !== c && !na.isWindow(a) && ("array" === c || 0 === b || "number" == typeof b && b > 0 && b - 1 in a) | |
} | |
function d(a, b, c) { | |
if (na.isFunction(b)) return na.grep(a, function(a, d) { | |
return !!b.call(a, d, a) !== c | |
}); | |
if (b.nodeType) return na.grep(a, function(a) { | |
return a === b !== c | |
}); | |
if ("string" == typeof b) { | |
if (xa.test(b)) return na.filter(b, a, c); | |
b = na.filter(b, a) | |
} | |
return na.grep(a, function(a) { | |
return na.inArray(a, b) > -1 !== c | |
}) | |
} | |
function e(a, b) { | |
do a = a[b]; while (a && 1 !== a.nodeType); | |
return a | |
} | |
function f(a) { | |
var b = {}; | |
return na.each(a.match(Da) || [], function(a, c) { | |
b[c] = !0 | |
}), b | |
} | |
function g() { | |
da.addEventListener ? (da.removeEventListener("DOMContentLoaded", h), a.removeEventListener("load", h)) : (da.detachEvent("onreadystatechange", h), a.detachEvent("onload", h)) | |
} | |
function h() { | |
(da.addEventListener || "load" === a.event.type || "complete" === da.readyState) && (g(), na.ready()) | |
} | |
function i(a, b, c) { | |
if (void 0 === c && 1 === a.nodeType) { | |
var d = "data-" + b.replace(Ia, "-$1").toLowerCase(); | |
if (c = a.getAttribute(d), "string" == typeof c) { | |
try { | |
c = "true" === c || "false" !== c && ("null" === c ? null : +c + "" === c ? +c : Ha.test(c) ? na.parseJSON(c) : c) | |
} catch (a) {} | |
na.data(a, b, c) | |
} else c = void 0 | |
} | |
return c | |
} | |
function j(a) { | |
var b; | |
for (b in a) | |
if (("data" !== b || !na.isEmptyObject(a[b])) && "toJSON" !== b) return !1; | |
return !0 | |
} | |
function k(a, b, c, d) { | |
if (Ga(a)) { | |
var e, f, g = na.expando, | |
h = a.nodeType, | |
i = h ? na.cache : a, | |
j = h ? a[g] : a[g] && g; | |
if (j && i[j] && (d || i[j].data) || void 0 !== c || "string" != typeof b) return j || (j = h ? a[g] = ca.pop() || na.guid++ : g), i[j] || (i[j] = h ? {} : { | |
toJSON: na.noop | |
}), "object" != typeof b && "function" != typeof b || (d ? i[j] = na.extend(i[j], b) : i[j].data = na.extend(i[j].data, b)), f = i[j], d || (f.data || (f.data = {}), f = f.data), void 0 !== c && (f[na.camelCase(b)] = c), "string" == typeof b ? (e = f[b], null == e && (e = f[na.camelCase(b)])) : e = f, e | |
} | |
} | |
function l(a, b, c) { | |
if (Ga(a)) { | |
var d, e, f = a.nodeType, | |
g = f ? na.cache : a, | |
h = f ? a[na.expando] : na.expando; | |
if (g[h]) { | |
if (b && (d = c ? g[h] : g[h].data)) { | |
na.isArray(b) ? b = b.concat(na.map(b, na.camelCase)) : b in d ? b = [b] : (b = na.camelCase(b), b = b in d ? [b] : b.split(" ")), e = b.length; | |
for (; e--;) delete d[b[e]]; | |
if (c ? !j(d) : !na.isEmptyObject(d)) return | |
}(c || (delete g[h].data, j(g[h]))) && (f ? na.cleanData([a], !0) : la.deleteExpando || g != g.window ? delete g[h] : g[h] = void 0) | |
} | |
} | |
} | |
function m(a, b, c, d) { | |
var e, f = 1, | |
g = 20, | |
h = d ? function() { | |
return d.cur() | |
} : function() { | |
return na.css(a, b, "") | |
}, | |
i = h(), | |
j = c && c[3] || (na.cssNumber[b] ? "" : "px"), | |
k = (na.cssNumber[b] || "px" !== j && +i) && Ka.exec(na.css(a, b)); | |
if (k && k[3] !== j) { | |
j = j || k[3], c = c || [], k = +i || 1; | |
do f = f || ".5", k /= f, na.style(a, b, k + j); while (f !== (f = h() / i) && 1 !== f && --g) | |
} | |
return c && (k = +k || +i || 0, e = c[1] ? k + (c[1] + 1) * c[2] : +c[2], d && (d.unit = j, d.start = k, d.end = e)), e | |
} | |
function n(a) { | |
var b = Sa.split("|"), | |
c = a.createDocumentFragment(); | |
if (c.createElement) | |
for (; b.length;) c.createElement(b.pop()); | |
return c | |
} | |
function o(a, b) { | |
var c, d, e = 0, | |
f = "undefined" != typeof a.getElementsByTagName ? a.getElementsByTagName(b || "*") : "undefined" != typeof a.querySelectorAll ? a.querySelectorAll(b || "*") : void 0; | |
if (!f) | |
for (f = [], c = a.childNodes || a; null != (d = c[e]); e++) !b || na.nodeName(d, b) ? f.push(d) : na.merge(f, o(d, b)); | |
return void 0 === b || b && na.nodeName(a, b) ? na.merge([a], f) : f | |
} | |
function p(a, b) { | |
for (var c, d = 0; null != (c = a[d]); d++) na._data(c, "globalEval", !b || na._data(b[d], "globalEval")) | |
} | |
function q(a) { | |
Oa.test(a.type) && (a.defaultChecked = a.checked) | |
} | |
function r(a, b, c, d, e) { | |
for (var f, g, h, i, j, k, l, m = a.length, r = n(b), s = [], t = 0; m > t; t++) | |
if (g = a[t], g || 0 === g) | |
if ("object" === na.type(g)) na.merge(s, g.nodeType ? [g] : g); | |
else if (Ua.test(g)) { | |
for (i = i || r.appendChild(b.createElement("div")), j = (Pa.exec(g) || ["", ""])[1].toLowerCase(), l = Ta[j] || Ta._default, i.innerHTML = l[1] + na.htmlPrefilter(g) + l[2], f = l[0]; f--;) i = i.lastChild; | |
if (!la.leadingWhitespace && Ra.test(g) && s.push(b.createTextNode(Ra.exec(g)[0])), !la.tbody) | |
for (g = "table" !== j || Va.test(g) ? "<table>" !== l[1] || Va.test(g) ? 0 : i : i.firstChild, f = g && g.childNodes.length; f--;) na.nodeName(k = g.childNodes[f], "tbody") && !k.childNodes.length && g.removeChild(k); | |
for (na.merge(s, i.childNodes), i.textContent = ""; i.firstChild;) i.removeChild(i.firstChild); | |
i = r.lastChild | |
} else s.push(b.createTextNode(g)); | |
for (i && r.removeChild(i), la.appendChecked || na.grep(o(s, "input"), q), t = 0; g = s[t++];) | |
if (d && na.inArray(g, d) > -1) e && e.push(g); | |
else if (h = na.contains(g.ownerDocument, g), i = o(r.appendChild(g), "script"), h && p(i), c) | |
for (f = 0; g = i[f++];) Qa.test(g.type || "") && c.push(g); | |
return i = null, r | |
} | |
function s() { | |
return !0 | |
} | |
function t() { | |
return !1 | |
} | |
function u() { | |
try { | |
return da.activeElement | |
} catch (a) {} | |
} | |
function v(a, b, c, d, e, f) { | |
var g, h; | |
if ("object" == typeof b) { | |
"string" != typeof c && (d = d || c, c = void 0); | |
for (h in b) v(a, h, c, d, b[h], f); | |
return a | |
} | |
if (null == d && null == e ? (e = c, d = c = void 0) : null == e && ("string" == typeof c ? (e = d, d = void 0) : (e = d, d = c, c = void 0)), e === !1) e = t; | |
else if (!e) return a; | |
return 1 === f && (g = e, e = function(a) { | |
return na().off(a), g.apply(this, arguments) | |
}, e.guid = g.guid || (g.guid = na.guid++)), a.each(function() { | |
na.event.add(this, b, e, d, c) | |
}) | |
} | |
function w(a, b) { | |
return na.nodeName(a, "table") && na.nodeName(11 !== b.nodeType ? b : b.firstChild, "tr") ? a.getElementsByTagName("tbody")[0] || a.appendChild(a.ownerDocument.createElement("tbody")) : a | |
} | |
function x(a) { | |
return a.type = (null !== na.find.attr(a, "type")) + "/" + a.type, a | |
} | |
function y(a) { | |
var b = eb.exec(a.type); | |
return b ? a.type = b[1] : a.removeAttribute("type"), a | |
} | |
function z(a, b) { | |
if (1 === b.nodeType && na.hasData(a)) { | |
var c, d, e, f = na._data(a), | |
g = na._data(b, f), | |
h = f.events; | |
if (h) { | |
delete g.handle, g.events = {}; | |
for (c in h) | |
for (d = 0, e = h[c].length; e > d; d++) na.event.add(b, c, h[c][d]) | |
} | |
g.data && (g.data = na.extend({}, g.data)) | |
} | |
} | |
function A(a, b) { | |
var c, d, e; | |
if (1 === b.nodeType) { | |
if (c = b.nodeName.toLowerCase(), !la.noCloneEvent && b[na.expando]) { | |
e = na._data(b); | |
for (d in e.events) na.removeEvent(b, d, e.handle); | |
b.removeAttribute(na.expando) | |
} | |
"script" === c && b.text !== a.text ? (x(b).text = a.text, y(b)) : "object" === c ? (b.parentNode && (b.outerHTML = a.outerHTML), la.html5Clone && a.innerHTML && !na.trim(b.innerHTML) && (b.innerHTML = a.innerHTML)) : "input" === c && Oa.test(a.type) ? (b.defaultChecked = b.checked = a.checked, b.value !== a.value && (b.value = a.value)) : "option" === c ? b.defaultSelected = b.selected = a.defaultSelected : "input" !== c && "textarea" !== c || (b.defaultValue = a.defaultValue) | |
} | |
} | |
function B(a, b, c, d) { | |
b = fa.apply([], b); | |
var e, f, g, h, i, j, k = 0, | |
l = a.length, | |
m = l - 1, | |
n = b[0], | |
p = na.isFunction(n); | |
if (p || l > 1 && "string" == typeof n && !la.checkClone && db.test(n)) return a.each(function(e) { | |
var f = a.eq(e); | |
p && (b[0] = n.call(this, e, f.html())), B(f, b, c, d) | |
}); | |
if (l && (j = r(b, a[0].ownerDocument, !1, a, d), e = j.firstChild, 1 === j.childNodes.length && (j = e), e || d)) { | |
for (h = na.map(o(j, "script"), x), g = h.length; l > k; k++) f = j, k !== m && (f = na.clone(f, !0, !0), g && na.merge(h, o(f, "script"))), c.call(a[k], f, k); | |
if (g) | |
for (i = h[h.length - 1].ownerDocument, na.map(h, y), k = 0; g > k; k++) f = h[k], Qa.test(f.type || "") && !na._data(f, "globalEval") && na.contains(i, f) && (f.src ? na._evalUrl && na._evalUrl(f.src) : na.globalEval((f.text || f.textContent || f.innerHTML || "").replace(fb, ""))); | |
j = e = null | |
} | |
return a | |
} | |
function C(a, b, c) { | |
for (var d, e = b ? na.filter(b, a) : a, f = 0; null != (d = e[f]); f++) c || 1 !== d.nodeType || na.cleanData(o(d)), d.parentNode && (c && na.contains(d.ownerDocument, d) && p(o(d, "script")), d.parentNode.removeChild(d)); | |
return a | |
} | |
function D(a, b) { | |
var c = na(b.createElement(a)).appendTo(b.body), | |
d = na.css(c[0], "display"); | |
return c.detach(), d | |
} | |
function E(a) { | |
var b = da, | |
c = jb[a]; | |
return c || (c = D(a, b), "none" !== c && c || (ib = (ib || na("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement), b = (ib[0].contentWindow || ib[0].contentDocument).document, b.write(), b.close(), c = D(a, b), ib.detach()), jb[a] = c), c | |
} | |
function F(a, b) { | |
return { | |
get: function() { | |
return a() ? void delete this.get : (this.get = b).apply(this, arguments) | |
} | |
} | |
} | |
function G(a) { | |
if (a in yb) return a; | |
for (var b = a.charAt(0).toUpperCase() + a.slice(1), c = xb.length; c--;) | |
if (a = xb[c] + b, a in yb) return a | |
} | |
function H(a, b) { | |
for (var c, d, e, f = [], g = 0, h = a.length; h > g; g++) d = a[g], d.style && (f[g] = na._data(d, "olddisplay"), c = d.style.display, b ? (f[g] || "none" !== c || (d.style.display = ""), "" === d.style.display && Ma(d) && (f[g] = na._data(d, "olddisplay", E(d.nodeName)))) : (e = Ma(d), (c && "none" !== c || !e) && na._data(d, "olddisplay", e ? c : na.css(d, "display")))); | |
for (g = 0; h > g; g++) d = a[g], d.style && (b && "none" !== d.style.display && "" !== d.style.display || (d.style.display = b ? f[g] || "" : "none")); | |
return a | |
} | |
function I(a, b, c) { | |
var d = ub.exec(b); | |
return d ? Math.max(0, d[1] - (c || 0)) + (d[2] || "px") : b | |
} | |
function J(a, b, c, d, e) { | |
for (var f = c === (d ? "border" : "content") ? 4 : "width" === b ? 1 : 0, g = 0; 4 > f; f += 2) "margin" === c && (g += na.css(a, c + La[f], !0, e)), d ? ("content" === c && (g -= na.css(a, "padding" + La[f], !0, e)), "margin" !== c && (g -= na.css(a, "border" + La[f] + "Width", !0, e))) : (g += na.css(a, "padding" + La[f], !0, e), "padding" !== c && (g += na.css(a, "border" + La[f] + "Width", !0, e))); | |
return g | |
} | |
function K(a, b, c) { | |
var d = !0, | |
e = "width" === b ? a.offsetWidth : a.offsetHeight, | |
f = ob(a), | |
g = la.boxSizing && "border-box" === na.css(a, "boxSizing", !1, f); | |
if (0 >= e || null == e) { | |
if (e = pb(a, b, f), (0 > e || null == e) && (e = a.style[b]), lb.test(e)) return e; | |
d = g && (la.boxSizingReliable() || e === a.style[b]), e = parseFloat(e) || 0 | |
} | |
return e + J(a, b, c || (g ? "border" : "content"), d, f) + "px" | |
} | |
function L(a, b, c, d, e) { | |
return new L.prototype.init(a, b, c, d, e) | |
} | |
function M() { | |
return a.setTimeout(function() { | |
zb = void 0 | |
}), zb = na.now() | |
} | |
function N(a, b) { | |
var c, d = { | |
height: a | |
}, | |
e = 0; | |
for (b = b ? 1 : 0; 4 > e; e += 2 - b) c = La[e], d["margin" + c] = d["padding" + c] = a; | |
return b && (d.opacity = d.width = a), d | |
} | |
function O(a, b, c) { | |
for (var d, e = (R.tweeners[b] || []).concat(R.tweeners["*"]), f = 0, g = e.length; g > f; f++) | |
if (d = e[f].call(c, b, a)) return d | |
} | |
function P(a, b, c) { | |
var d, e, f, g, h, i, j, k, l = this, | |
m = {}, | |
n = a.style, | |
o = a.nodeType && Ma(a), | |
p = na._data(a, "fxshow"); | |
c.queue || (h = na._queueHooks(a, "fx"), null == h.unqueued && (h.unqueued = 0, i = h.empty.fire, h.empty.fire = function() { | |
h.unqueued || i() | |
}), h.unqueued++, l.always(function() { | |
l.always(function() { | |
h.unqueued--, na.queue(a, "fx").length || h.empty.fire() | |
}) | |
})), 1 === a.nodeType && ("height" in b || "width" in b) && (c.overflow = [n.overflow, n.overflowX, n.overflowY], j = na.css(a, "display"), k = "none" === j ? na._data(a, "olddisplay") || E(a.nodeName) : j, "inline" === k && "none" === na.css(a, "float") && (la.inlineBlockNeedsLayout && "inline" !== E(a.nodeName) ? n.zoom = 1 : n.display = "inline-block")), c.overflow && (n.overflow = "hidden", la.shrinkWrapBlocks() || l.always(function() { | |
n.overflow = c.overflow[0], n.overflowX = c.overflow[1], n.overflowY = c.overflow[2] | |
})); | |
for (d in b) | |
if (e = b[d], Bb.exec(e)) { | |
if (delete b[d], f = f || "toggle" === e, e === (o ? "hide" : "show")) { | |
if ("show" !== e || !p || void 0 === p[d]) continue; | |
o = !0 | |
} | |
m[d] = p && p[d] || na.style(a, d) | |
} else j = void 0; | |
if (na.isEmptyObject(m)) "inline" === ("none" === j ? E(a.nodeName) : j) && (n.display = j); | |
else { | |
p ? "hidden" in p && (o = p.hidden) : p = na._data(a, "fxshow", {}), f && (p.hidden = !o), o ? na(a).show() : l.done(function() { | |
na(a).hide() | |
}), l.done(function() { | |
var b; | |
na._removeData(a, "fxshow"); | |
for (b in m) na.style(a, b, m[b]) | |
}); | |
for (d in m) g = O(o ? p[d] : 0, d, l), d in p || (p[d] = g.start, o && (g.end = g.start, g.start = "width" === d || "height" === d ? 1 : 0)) | |
} | |
} | |
function Q(a, b) { | |
var c, d, e, f, g; | |
for (c in a) | |
if (d = na.camelCase(c), e = b[d], f = a[c], na.isArray(f) && (e = f[1], f = a[c] = f[0]), c !== d && (a[d] = f, delete a[c]), g = na.cssHooks[d], g && "expand" in g) { | |
f = g.expand(f), delete a[d]; | |
for (c in f) c in a || (a[c] = f[c], b[c] = e) | |
} else b[d] = e | |
} | |
function R(a, b, c) { | |
var d, e, f = 0, | |
g = R.prefilters.length, | |
h = na.Deferred().always(function() { | |
delete i.elem | |
}), | |
i = function() { | |
if (e) return !1; | |
for (var b = zb || M(), c = Math.max(0, j.startTime + j.duration - b), d = c / j.duration || 0, f = 1 - d, g = 0, i = j.tweens.length; i > g; g++) j.tweens[g].run(f); | |
return h.notifyWith(a, [j, f, c]), 1 > f && i ? c : (h.resolveWith(a, [j]), !1) | |
}, | |
j = h.promise({ | |
elem: a, | |
props: na.extend({}, b), | |
opts: na.extend(!0, { | |
specialEasing: {}, | |
easing: na.easing._default | |
}, c), | |
originalProperties: b, | |
originalOptions: c, | |
startTime: zb || M(), | |
duration: c.duration, | |
tweens: [], | |
createTween: function(b, c) { | |
var d = na.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing); | |
return j.tweens.push(d), d | |
}, | |
stop: function(b) { | |
var c = 0, | |
d = b ? j.tweens.length : 0; | |
if (e) return this; | |
for (e = !0; d > c; c++) j.tweens[c].run(1); | |
return b ? (h.notifyWith(a, [j, 1, 0]), h.resolveWith(a, [j, b])) : h.rejectWith(a, [j, b]), this | |
} | |
}), | |
k = j.props; | |
for (Q(k, j.opts.specialEasing); g > f; f++) | |
if (d = R.prefilters[f].call(j, a, k, j.opts)) return na.isFunction(d.stop) && (na._queueHooks(j.elem, j.opts.queue).stop = na.proxy(d.stop, d)), d; | |
return na.map(k, O, j), na.isFunction(j.opts.start) && j.opts.start.call(a, j), na.fx.timer(na.extend(i, { | |
elem: a, | |
anim: j, | |
queue: j.opts.queue | |
})), j.progress(j.opts.progress).done(j.opts.done, j.opts.complete).fail(j.opts.fail).always(j.opts.always) | |
} | |
function S(a) { | |
return na.attr(a, "class") || "" | |
} | |
function T(a) { | |
return function(b, c) { | |
"string" != typeof b && (c = b, b = "*"); | |
var d, e = 0, | |
f = b.toLowerCase().match(Da) || []; | |
if (na.isFunction(c)) | |
for (; d = f[e++];) "+" === d.charAt(0) ? (d = d.slice(1) || "*", (a[d] = a[d] || []).unshift(c)) : (a[d] = a[d] || []).push(c) | |
} | |
} | |
function U(a, b, c, d) { | |
function e(h) { | |
var i; | |
return f[h] = !0, na.each(a[h] || [], function(a, h) { | |
var j = h(b, c, d); | |
return "string" != typeof j || g || f[j] ? g ? !(i = j) : void 0 : (b.dataTypes.unshift(j), e(j), !1) | |
}), i | |
} | |
var f = {}, | |
g = a === $b; | |
return e(b.dataTypes[0]) || !f["*"] && e("*") | |
} | |
function V(a, b) { | |
var c, d, e = na.ajaxSettings.flatOptions || {}; | |
for (d in b) void 0 !== b[d] && ((e[d] ? a : c || (c = {}))[d] = b[d]); | |
return c && na.extend(!0, a, c), a | |
} | |
function W(a, b, c) { | |
for (var d, e, f, g, h = a.contents, i = a.dataTypes; | |
"*" === i[0];) i.shift(), void 0 === e && (e = a.mimeType || b.getResponseHeader("Content-Type")); | |
if (e) | |
for (g in h) | |
if (h[g] && h[g].test(e)) { | |
i.unshift(g); | |
break | |
} | |
if (i[0] in c) f = i[0]; | |
else { | |
for (g in c) { | |
if (!i[0] || a.converters[g + " " + i[0]]) { | |
f = g; | |
break | |
} | |
d || (d = g) | |
} | |
f = f || d | |
} | |
return f ? (f !== i[0] && i.unshift(f), c[f]) : void 0 | |
} | |
function X(a, b, c, d) { | |
var e, f, g, h, i, j = {}, | |
k = a.dataTypes.slice(); | |
if (k[1]) | |
for (g in a.converters) j[g.toLowerCase()] = a.converters[g]; | |
for (f = k.shift(); f;) | |
if (a.responseFields[f] && (c[a.responseFields[f]] = b), !i && d && a.dataFilter && (b = a.dataFilter(b, a.dataType)), i = f, f = k.shift()) | |
if ("*" === f) f = i; | |
else if ("*" !== i && i !== f) { | |
if (g = j[i + " " + f] || j["* " + f], !g) | |
for (e in j) | |
if (h = e.split(" "), h[1] === f && (g = j[i + " " + h[0]] || j["* " + h[0]])) { | |
g === !0 ? g = j[e] : j[e] !== !0 && (f = h[0], k.unshift(h[1])); | |
break | |
} | |
if (g !== !0) | |
if (g && a.throws) b = g(b); | |
else try { | |
b = g(b) | |
} catch (a) { | |
return { | |
state: "parsererror", | |
error: g ? a : "No conversion from " + i + " to " + f | |
} | |
} | |
} | |
return { | |
state: "success", | |
data: b | |
} | |
} | |
function Y(a) { | |
return a.style && a.style.display || na.css(a, "display") | |
} | |
function Z(a) { | |
if (!na.contains(a.ownerDocument || da, a)) return !0; | |
for (; a && 1 === a.nodeType;) { | |
if ("none" === Y(a) || "hidden" === a.type) return !0; | |
a = a.parentNode | |
} | |
return !1 | |
} | |
function $(a, b, c, d) { | |
var e; | |
if (na.isArray(b)) na.each(b, function(b, e) { | |
c || dc.test(a) ? d(a, e) : $(a + "[" + ("object" == typeof e && null != e ? b : "") + "]", e, c, d) | |
}); | |
else if (c || "object" !== na.type(b)) d(a, b); | |
else | |
for (e in b) $(a + "[" + e + "]", b[e], c, d) | |
} | |
function _() { | |
try { | |
return new a.XMLHttpRequest | |
} catch (a) {} | |
} | |
function aa() { | |
try { | |
return new a.ActiveXObject("Microsoft.XMLHTTP") | |
} catch (a) {} | |
} | |
function ba(a) { | |
return na.isWindow(a) ? a : 9 === a.nodeType && (a.defaultView || a.parentWindow) | |
} | |
var ca = [], | |
da = a.document, | |
ea = ca.slice, | |
fa = ca.concat, | |
ga = ca.push, | |
ha = ca.indexOf, | |
ia = {}, | |
ja = ia.toString, | |
ka = ia.hasOwnProperty, | |
la = {}, | |
ma = "1.12.4", | |
na = function(a, b) { | |
return new na.fn.init(a, b) | |
}, | |
oa = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, | |
pa = /^-ms-/, | |
qa = /-([\da-z])/gi, | |
ra = function(a, b) { | |
return b.toUpperCase() | |
}; | |
na.fn = na.prototype = { | |
jquery: ma, | |
constructor: na, | |
selector: "", | |
length: 0, | |
toArray: function() { | |
return ea.call(this) | |
}, | |
get: function(a) { | |
return null != a ? 0 > a ? this[a + this.length] : this[a] : ea.call(this) | |
}, | |
pushStack: function(a) { | |
var b = na.merge(this.constructor(), a); | |
return b.prevObject = this, b.context = this.context, b | |
}, | |
each: function(a) { | |
return na.each(this, a) | |
}, | |
map: function(a) { | |
return this.pushStack(na.map(this, function(b, c) { | |
return a.call(b, c, b) | |
})) | |
}, | |
slice: function() { | |
return this.pushStack(ea.apply(this, arguments)) | |
}, | |
first: function() { | |
return this.eq(0) | |
}, | |
last: function() { | |
return this.eq(-1) | |
}, | |
eq: function(a) { | |
var b = this.length, | |
c = +a + (0 > a ? b : 0); | |
return this.pushStack(c >= 0 && b > c ? [this[c]] : []) | |
}, | |
end: function() { | |
return this.prevObject || this.constructor() | |
}, | |
push: ga, | |
sort: ca.sort, | |
splice: ca.splice | |
}, na.extend = na.fn.extend = function() { | |
var a, b, c, d, e, f, g = arguments[0] || {}, | |
h = 1, | |
i = arguments.length, | |
j = !1; | |
for ("boolean" == typeof g && (j = g, g = arguments[h] || {}, h++), "object" == typeof g || na.isFunction(g) || (g = {}), h === i && (g = this, h--); i > h; h++) | |
if (null != (e = arguments[h])) | |
for (d in e) a = g[d], c = e[d], g !== c && (j && c && (na.isPlainObject(c) || (b = na.isArray(c))) ? (b ? (b = !1, f = a && na.isArray(a) ? a : []) : f = a && na.isPlainObject(a) ? a : {}, g[d] = na.extend(j, f, c)) : void 0 !== c && (g[d] = c)); | |
return g | |
}, na.extend({ | |
expando: "jQuery" + (ma + Math.random()).replace(/\D/g, ""), | |
isReady: !0, | |
error: function(a) { | |
throw new Error(a) | |
}, | |
noop: function() {}, | |
isFunction: function(a) { | |
return "function" === na.type(a) | |
}, | |
isArray: Array.isArray || function(a) { | |
return "array" === na.type(a) | |
}, | |
isWindow: function(a) { | |
return null != a && a == a.window | |
}, | |
isNumeric: function(a) { | |
var b = a && a.toString(); | |
return !na.isArray(a) && b - parseFloat(b) + 1 >= 0 | |
}, | |
isEmptyObject: function(a) { | |
var b; | |
for (b in a) return !1; | |
return !0 | |
}, | |
isPlainObject: function(a) { | |
var b; | |
if (!a || "object" !== na.type(a) || a.nodeType || na.isWindow(a)) return !1; | |
try { | |
if (a.constructor && !ka.call(a, "constructor") && !ka.call(a.constructor.prototype, "isPrototypeOf")) return !1 | |
} catch (a) { | |
return !1 | |
} | |
if (!la.ownFirst) | |
for (b in a) return ka.call(a, b); | |
for (b in a); | |
return void 0 === b || ka.call(a, b) | |
}, | |
type: function(a) { | |
return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? ia[ja.call(a)] || "object" : typeof a | |
}, | |
globalEval: function(b) { | |
b && na.trim(b) && (a.execScript || function(b) { | |
a.eval.call(a, b) | |
})(b) | |
}, | |
camelCase: function(a) { | |
return a.replace(pa, "ms-").replace(qa, ra) | |
}, | |
nodeName: function(a, b) { | |
return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase() | |
}, | |
each: function(a, b) { | |
var d, e = 0; | |
if (c(a)) | |
for (d = a.length; d > e && b.call(a[e], e, a[e]) !== !1; e++); | |
else | |
for (e in a) | |
if (b.call(a[e], e, a[e]) === !1) break; | |
return a | |
}, | |
trim: function(a) { | |
return null == a ? "" : (a + "").replace(oa, "") | |
}, | |
makeArray: function(a, b) { | |
var d = b || []; | |
return null != a && (c(Object(a)) ? na.merge(d, "string" == typeof a ? [a] : a) : ga.call(d, a)), d | |
}, | |
inArray: function(a, b, c) { | |
var d; | |
if (b) { | |
if (ha) return ha.call(b, a, c); | |
for (d = b.length, c = c ? 0 > c ? Math.max(0, d + c) : c : 0; d > c; c++) | |
if (c in b && b[c] === a) return c | |
} | |
return -1 | |
}, | |
merge: function(a, b) { | |
for (var c = +b.length, d = 0, e = a.length; c > d;) a[e++] = b[d++]; | |
if (c !== c) | |
for (; void 0 !== b[d];) a[e++] = b[d++]; | |
return a.length = e, a | |
}, | |
grep: function(a, b, c) { | |
for (var d, e = [], f = 0, g = a.length, h = !c; g > f; f++) d = !b(a[f], f), d !== h && e.push(a[f]); | |
return e | |
}, | |
map: function(a, b, d) { | |
var e, f, g = 0, | |
h = []; | |
if (c(a)) | |
for (e = a.length; e > g; g++) f = b(a[g], g, d), null != f && h.push(f); | |
else | |
for (g in a) f = b(a[g], g, d), null != f && h.push(f); | |
return fa.apply([], h) | |
}, | |
guid: 1, | |
proxy: function(a, b) { | |
var c, d, e; | |
return "string" == typeof b && (e = a[b], b = a, a = e), na.isFunction(a) ? (c = ea.call(arguments, 2), d = function() { | |
return a.apply(b || this, c.concat(ea.call(arguments))) | |
}, d.guid = a.guid = a.guid || na.guid++, d) : void 0 | |
}, | |
now: function() { | |
return +new Date | |
}, | |
support: la | |
}), "function" == typeof Symbol && (na.fn[Symbol.iterator] = ca[Symbol.iterator]), na.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(a, b) { | |
ia["[object " + b + "]"] = b.toLowerCase() | |
}); | |
var sa = function(a) { | |
function b(a, b, c, d) { | |
var e, f, g, h, i, j, l, n, o = b && b.ownerDocument, | |
p = b ? b.nodeType : 9; | |
if (c = c || [], "string" != typeof a || !a || 1 !== p && 9 !== p && 11 !== p) return c; | |
if (!d && ((b ? b.ownerDocument || b : O) !== G && F(b), b = b || G, I)) { | |
if (11 !== p && (j = ra.exec(a))) | |
if (e = j[1]) { | |
if (9 === p) { | |
if (!(g = b.getElementById(e))) return c; | |
if (g.id === e) return c.push(g), c | |
} else if (o && (g = o.getElementById(e)) && M(b, g) && g.id === e) return c.push(g), c | |
} else { | |
if (j[2]) return $.apply(c, b.getElementsByTagName(a)), c; | |
if ((e = j[3]) && v.getElementsByClassName && b.getElementsByClassName) return $.apply(c, b.getElementsByClassName(e)), c | |
} | |
if (v.qsa && !T[a + " "] && (!J || !J.test(a))) { | |
if (1 !== p) o = b, n = a; | |
else if ("object" !== b.nodeName.toLowerCase()) { | |
for ((h = b.getAttribute("id")) ? h = h.replace(ta, "\\$&") : b.setAttribute("id", h = N), l = z(a), f = l.length, i = ma.test(h) ? "#" + h : "[id='" + h + "']"; f--;) l[f] = i + " " + m(l[f]); | |
n = l.join(","), o = sa.test(a) && k(b.parentNode) || b | |
} | |
if (n) try { | |
return $.apply(c, o.querySelectorAll(n)), c | |
} catch (a) {} finally { | |
h === N && b.removeAttribute("id") | |
} | |
} | |
} | |
return B(a.replace(ha, "$1"), b, c, d) | |
} | |
function c() { | |
function a(c, d) { | |
return b.push(c + " ") > w.cacheLength && delete a[b.shift()], a[c + " "] = d | |
} | |
var b = []; | |
return a | |
} | |
function d(a) { | |
return a[N] = !0, a | |
} | |
function e(a) { | |
var b = G.createElement("div"); | |
try { | |
return !!a(b) | |
} catch (a) { | |
return !1 | |
} finally { | |
b.parentNode && b.parentNode.removeChild(b), b = null | |
} | |
} | |
function f(a, b) { | |
for (var c = a.split("|"), d = c.length; d--;) w.attrHandle[c[d]] = b | |
} | |
function g(a, b) { | |
var c = b && a, | |
d = c && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || V) - (~a.sourceIndex || V); | |
if (d) return d; | |
if (c) | |
for (; c = c.nextSibling;) | |
if (c === b) return -1; | |
return a ? 1 : -1 | |
} | |
function h(a) { | |
return function(b) { | |
var c = b.nodeName.toLowerCase(); | |
return "input" === c && b.type === a | |
} | |
} | |
function i(a) { | |
return function(b) { | |
var c = b.nodeName.toLowerCase(); | |
return ("input" === c || "button" === c) && b.type === a | |
} | |
} | |
function j(a) { | |
return d(function(b) { | |
return b = +b, d(function(c, d) { | |
for (var e, f = a([], c.length, b), g = f.length; g--;) c[e = f[g]] && (c[e] = !(d[e] = c[e])) | |
}) | |
}) | |
} | |
function k(a) { | |
return a && "undefined" != typeof a.getElementsByTagName && a | |
} | |
function l() {} | |
function m(a) { | |
for (var b = 0, c = a.length, d = ""; c > b; b++) d += a[b].value; | |
return d | |
} | |
function n(a, b, c) { | |
var d = b.dir, | |
e = c && "parentNode" === d, | |
f = Q++; | |
return b.first ? function(b, c, f) { | |
for (; b = b[d];) | |
if (1 === b.nodeType || e) return a(b, c, f) | |
} : function(b, c, g) { | |
var h, i, j, k = [P, f]; | |
if (g) { | |
for (; b = b[d];) | |
if ((1 === b.nodeType || e) && a(b, c, g)) return !0 | |
} else | |
for (; b = b[d];) | |
if (1 === b.nodeType || e) { | |
if (j = b[N] || (b[N] = {}), i = j[b.uniqueID] || (j[b.uniqueID] = {}), (h = i[d]) && h[0] === P && h[1] === f) return k[2] = h[2]; | |
if (i[d] = k, k[2] = a(b, c, g)) return !0 | |
} | |
} | |
} | |
function o(a) { | |
return a.length > 1 ? function(b, c, d) { | |
for (var e = a.length; e--;) | |
if (!a[e](b, c, d)) return !1; | |
return !0 | |
} : a[0] | |
} | |
function p(a, c, d) { | |
for (var e = 0, f = c.length; f > e; e++) b(a, c[e], d); | |
return d | |
} | |
function q(a, b, c, d, e) { | |
for (var f, g = [], h = 0, i = a.length, j = null != b; i > h; h++)(f = a[h]) && (c && !c(f, d, e) || (g.push(f), j && b.push(h))); | |
return g | |
} | |
function r(a, b, c, e, f, g) { | |
return e && !e[N] && (e = r(e)), f && !f[N] && (f = r(f, g)), d(function(d, g, h, i) { | |
var j, k, l, m = [], | |
n = [], | |
o = g.length, | |
r = d || p(b || "*", h.nodeType ? [h] : h, []), | |
s = !a || !d && b ? r : q(r, m, a, h, i), | |
t = c ? f || (d ? a : o || e) ? [] : g : s; | |
if (c && c(s, t, h, i), e) | |
for (j = q(t, n), e(j, [], h, i), k = j.length; k--;)(l = j[k]) && (t[n[k]] = !(s[n[k]] = l)); | |
if (d) { | |
if (f || a) { | |
if (f) { | |
for (j = [], k = t.length; k--;)(l = t[k]) && j.push(s[k] = l); | |
f(null, t = [], j, i) | |
} | |
for (k = t.length; k--;)(l = t[k]) && (j = f ? aa(d, l) : m[k]) > -1 && (d[j] = !(g[j] = l)) | |
} | |
} else t = q(t === g ? t.splice(o, t.length) : t), f ? f(null, g, t, i) : $.apply(g, t) | |
}) | |
} | |
function s(a) { | |
for (var b, c, d, e = a.length, f = w.relative[a[0].type], g = f || w.relative[" "], h = f ? 1 : 0, i = n(function(a) { | |
return a === b | |
}, g, !0), j = n(function(a) { | |
return aa(b, a) > -1 | |
}, g, !0), k = [function(a, c, d) { | |
var e = !f && (d || c !== C) || ((b = c).nodeType ? i(a, c, d) : j(a, c, d)); | |
return b = null, e | |
}]; e > h; h++) | |
if (c = w.relative[a[h].type]) k = [n(o(k), c)]; | |
else { | |
if (c = w.filter[a[h].type].apply(null, a[h].matches), c[N]) { | |
for (d = ++h; e > d && !w.relative[a[d].type]; d++); | |
return r(h > 1 && o(k), h > 1 && m(a.slice(0, h - 1).concat({ | |
value: " " === a[h - 2].type ? "*" : "" | |
})).replace(ha, "$1"), c, d > h && s(a.slice(h, d)), e > d && s(a = a.slice(d)), e > d && m(a)) | |
} | |
k.push(c) | |
} | |
return o(k) | |
} | |
function t(a, c) { | |
var e = c.length > 0, | |
f = a.length > 0, | |
g = function(d, g, h, i, j) { | |
var k, l, m, n = 0, | |
o = "0", | |
p = d && [], | |
r = [], | |
s = C, | |
t = d || f && w.find.TAG("*", j), | |
u = P += null == s ? 1 : Math.random() || .1, | |
v = t.length; | |
for (j && (C = g === G || g || j); o !== v && null != (k = t[o]); o++) { | |
if (f && k) { | |
for (l = 0, g || k.ownerDocument === G || (F(k), h = !I); m = a[l++];) | |
if (m(k, g || G, h)) { | |
i.push(k); | |
break | |
} | |
j && (P = u) | |
} | |
e && ((k = !m && k) && n--, d && p.push(k)) | |
} | |
if (n += o, e && o !== n) { | |
for (l = 0; m = c[l++];) m(p, r, g, h); | |
if (d) { | |
if (n > 0) | |
for (; o--;) p[o] || r[o] || (r[o] = Y.call(i)); | |
r = q(r) | |
} | |
$.apply(i, r), j && !d && r.length > 0 && n + c.length > 1 && b.uniqueSort(i) | |
} | |
return j && (P = u, C = s), p | |
}; | |
return e ? d(g) : g | |
} | |
var u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N = "sizzle" + 1 * new Date, | |
O = a.document, | |
P = 0, | |
Q = 0, | |
R = c(), | |
S = c(), | |
T = c(), | |
U = function(a, b) { | |
return a === b && (E = !0), 0 | |
}, | |
V = 1 << 31, | |
W = {}.hasOwnProperty, | |
X = [], | |
Y = X.pop, | |
Z = X.push, | |
$ = X.push, | |
_ = X.slice, | |
aa = function(a, b) { | |
for (var c = 0, d = a.length; d > c; c++) | |
if (a[c] === b) return c; | |
return -1 | |
}, | |
ba = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", | |
ca = "[\\x20\\t\\r\\n\\f]", | |
da = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", | |
ea = "\\[" + ca + "*(" + da + ")(?:" + ca + "*([*^$|!~]?=)" + ca + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + da + "))|)" + ca + "*\\]", | |
fa = ":(" + da + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + ea + ")*)|.*)\\)|)", | |
ga = new RegExp(ca + "+", "g"), | |
ha = new RegExp("^" + ca + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ca + "+$", "g"), | |
ia = new RegExp("^" + ca + "*," + ca + "*"), | |
ja = new RegExp("^" + ca + "*([>+~]|" + ca + ")" + ca + "*"), | |
ka = new RegExp("=" + ca + "*([^\\]'\"]*?)" + ca + "*\\]", "g"), | |
la = new RegExp(fa), | |
ma = new RegExp("^" + da + "$"), | |
na = { | |
ID: new RegExp("^#(" + da + ")"), | |
CLASS: new RegExp("^\\.(" + da + ")"), | |
TAG: new RegExp("^(" + da + "|[*])"), | |
ATTR: new RegExp("^" + ea), | |
PSEUDO: new RegExp("^" + fa), | |
CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + ca + "*(even|odd|(([+-]|)(\\d*)n|)" + ca + "*(?:([+-]|)" + ca + "*(\\d+)|))" + ca + "*\\)|)", "i"), | |
bool: new RegExp("^(?:" + ba + ")$", "i"), | |
needsContext: new RegExp("^" + ca + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + ca + "*((?:-\\d)?\\d*)" + ca + "*\\)|)(?=[^-]|$)", "i") | |
}, | |
oa = /^(?:input|select|textarea|button)$/i, | |
pa = /^h\d$/i, | |
qa = /^[^{]+\{\s*\[native \w/, | |
ra = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, | |
sa = /[+~]/, | |
ta = /'|\\/g, | |
ua = new RegExp("\\\\([\\da-f]{1,6}" + ca + "?|(" + ca + ")|.)", "ig"), | |
va = function(a, b, c) { | |
var d = "0x" + b - 65536; | |
return d !== d || c ? b : 0 > d ? String.fromCharCode(d + 65536) : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320) | |
}, | |
wa = function() { | |
F() | |
}; | |
try { | |
$.apply(X = _.call(O.childNodes), O.childNodes), X[O.childNodes.length].nodeType | |
} catch (a) { | |
$ = { | |
apply: X.length ? function(a, b) { | |
Z.apply(a, _.call(b)) | |
} : function(a, b) { | |
for (var c = a.length, d = 0; a[c++] = b[d++];); | |
a.length = c - 1 | |
} | |
} | |
} | |
v = b.support = {}, y = b.isXML = function(a) { | |
var b = a && (a.ownerDocument || a).documentElement; | |
return !!b && "HTML" !== b.nodeName | |
}, F = b.setDocument = function(a) { | |
var b, c, d = a ? a.ownerDocument || a : O; | |
return d !== G && 9 === d.nodeType && d.documentElement ? (G = d, H = G.documentElement, I = !y(G), (c = G.defaultView) && c.top !== c && (c.addEventListener ? c.addEventListener("unload", wa, !1) : c.attachEvent && c.attachEvent("onunload", wa)), v.attributes = e(function(a) { | |
return a.className = "i", !a.getAttribute("className") | |
}), v.getElementsByTagName = e(function(a) { | |
return a.appendChild(G.createComment("")), !a.getElementsByTagName("*").length | |
}), v.getElementsByClassName = qa.test(G.getElementsByClassName), v.getById = e(function(a) { | |
return H.appendChild(a).id = N, !G.getElementsByName || !G.getElementsByName(N).length | |
}), v.getById ? (w.find.ID = function(a, b) { | |
if ("undefined" != typeof b.getElementById && I) { | |
var c = b.getElementById(a); | |
return c ? [c] : [] | |
} | |
}, w.filter.ID = function(a) { | |
var b = a.replace(ua, va); | |
return function(a) { | |
return a.getAttribute("id") === b | |
} | |
}) : (delete w.find.ID, w.filter.ID = function(a) { | |
var b = a.replace(ua, va); | |
return function(a) { | |
var c = "undefined" != typeof a.getAttributeNode && a.getAttributeNode("id"); | |
return c && c.value === b | |
} | |
}), w.find.TAG = v.getElementsByTagName ? function(a, b) { | |
return "undefined" != typeof b.getElementsByTagName ? b.getElementsByTagName(a) : v.qsa ? b.querySelectorAll(a) : void 0 | |
} : function(a, b) { | |
var c, d = [], | |
e = 0, | |
f = b.getElementsByTagName(a); | |
if ("*" === a) { | |
for (; c = f[e++];) 1 === c.nodeType && d.push(c); | |
return d | |
} | |
return f | |
}, w.find.CLASS = v.getElementsByClassName && function(a, b) { | |
return "undefined" != typeof b.getElementsByClassName && I ? b.getElementsByClassName(a) : void 0 | |
}, K = [], J = [], (v.qsa = qa.test(G.querySelectorAll)) && (e(function(a) { | |
H.appendChild(a).innerHTML = "<a id='" + N + "'></a><select id='" + N + "-\r\\' msallowcapture=''><option selected=''></option></select>", a.querySelectorAll("[msallowcapture^='']").length && J.push("[*^$]=" + ca + "*(?:''|\"\")"), a.querySelectorAll("[selected]").length || J.push("\\[" + ca + "*(?:value|" + ba + ")"), a.querySelectorAll("[id~=" + N + "-]").length || J.push("~="), a.querySelectorAll(":checked").length || J.push(":checked"), a.querySelectorAll("a#" + N + "+*").length || J.push(".#.+[+~]") | |
}), e(function(a) { | |
var b = G.createElement("input"); | |
b.setAttribute("type", "hidden"), a.appendChild(b).setAttribute("name", "D"), a.querySelectorAll("[name=d]").length && J.push("name" + ca + "*[*^$|!~]?="), a.querySelectorAll(":enabled").length || J.push(":enabled", ":disabled"), a.querySelectorAll("*,:x"), J.push(",.*:") | |
})), (v.matchesSelector = qa.test(L = H.matches || H.webkitMatchesSelector || H.mozMatchesSelector || H.oMatchesSelector || H.msMatchesSelector)) && e(function(a) { | |
v.disconnectedMatch = L.call(a, "div"), L.call(a, "[s!='']:x"), K.push("!=", fa) | |
}), J = J.length && new RegExp(J.join("|")), K = K.length && new RegExp(K.join("|")), b = qa.test(H.compareDocumentPosition), M = b || qa.test(H.contains) ? function(a, b) { | |
var c = 9 === a.nodeType ? a.documentElement : a, | |
d = b && b.parentNode; | |
return a === d || !(!d || 1 !== d.nodeType || !(c.contains ? c.contains(d) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d))) | |
} : function(a, b) { | |
if (b) | |
for (; b = b.parentNode;) | |
if (b === a) return !0; | |
return !1 | |
}, U = b ? function(a, b) { | |
if (a === b) return E = !0, 0; | |
var c = !a.compareDocumentPosition - !b.compareDocumentPosition; | |
return c ? c : (c = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1, 1 & c || !v.sortDetached && b.compareDocumentPosition(a) === c ? a === G || a.ownerDocument === O && M(O, a) ? -1 : b === G || b.ownerDocument === O && M(O, b) ? 1 : D ? aa(D, a) - aa(D, b) : 0 : 4 & c ? -1 : 1) | |
} : function(a, b) { | |
if (a === b) return E = !0, 0; | |
var c, d = 0, | |
e = a.parentNode, | |
f = b.parentNode, | |
h = [a], | |
i = [b]; | |
if (!e || !f) return a === G ? -1 : b === G ? 1 : e ? -1 : f ? 1 : D ? aa(D, a) - aa(D, b) : 0; | |
if (e === f) return g(a, b); | |
for (c = a; c = c.parentNode;) h.unshift(c); | |
for (c = b; c = c.parentNode;) i.unshift(c); | |
for (; h[d] === i[d];) d++; | |
return d ? g(h[d], i[d]) : h[d] === O ? -1 : i[d] === O ? 1 : 0 | |
}, G) : G | |
}, b.matches = function(a, c) { | |
return b(a, null, null, c) | |
}, b.matchesSelector = function(a, c) { | |
if ((a.ownerDocument || a) !== G && F(a), c = c.replace(ka, "='$1']"), v.matchesSelector && I && !T[c + " "] && (!K || !K.test(c)) && (!J || !J.test(c))) try { | |
var d = L.call(a, c); | |
if (d || v.disconnectedMatch || a.document && 11 !== a.document.nodeType) return d | |
} catch (a) {} | |
return b(c, G, null, [a]).length > 0 | |
}, b.contains = function(a, b) { | |
return (a.ownerDocument || a) !== G && F(a), M(a, b) | |
}, b.attr = function(a, b) { | |
(a.ownerDocument || a) !== G && F(a); | |
var c = w.attrHandle[b.toLowerCase()], | |
d = c && W.call(w.attrHandle, b.toLowerCase()) ? c(a, b, !I) : void 0; | |
return void 0 !== d ? d : v.attributes || !I ? a.getAttribute(b) : (d = a.getAttributeNode(b)) && d.specified ? d.value : null | |
}, b.error = function(a) { | |
throw new Error("Syntax error, unrecognized expression: " + a) | |
}, b.uniqueSort = function(a) { | |
var b, c = [], | |
d = 0, | |
e = 0; | |
if (E = !v.detectDuplicates, D = !v.sortStable && a.slice(0), a.sort(U), E) { | |
for (; b = a[e++];) b === a[e] && (d = c.push(e)); | |
for (; d--;) a.splice(c[d], 1) | |
} | |
return D = null, a | |
}, x = b.getText = function(a) { | |
var b, c = "", | |
d = 0, | |
e = a.nodeType; | |
if (e) { | |
if (1 === e || 9 === e || 11 === e) { | |
if ("string" == typeof a.textContent) return a.textContent; | |
for (a = a.firstChild; a; a = a.nextSibling) c += x(a) | |
} else if (3 === e || 4 === e) return a.nodeValue | |
} else | |
for (; b = a[d++];) c += x(b); | |
return c | |
}, w = b.selectors = { | |
cacheLength: 50, | |
createPseudo: d, | |
match: na, | |
attrHandle: {}, | |
find: {}, | |
relative: { | |
">": { | |
dir: "parentNode", | |
first: !0 | |
}, | |
" ": { | |
dir: "parentNode" | |
}, | |
"+": { | |
dir: "previousSibling", | |
first: !0 | |
}, | |
"~": { | |
dir: "previousSibling" | |
} | |
}, | |
preFilter: { | |
ATTR: function(a) { | |
return a[1] = a[1].replace(ua, va), a[3] = (a[3] || a[4] || a[5] || "").replace(ua, va), "~=" === a[2] && (a[3] = " " + a[3] + " "), a.slice(0, 4) | |
}, | |
CHILD: function(a) { | |
return a[1] = a[1].toLowerCase(), "nth" === a[1].slice(0, 3) ? (a[3] || b.error(a[0]), a[4] = +(a[4] ? a[5] + (a[6] || 1) : 2 * ("even" === a[3] || "odd" === a[3])), a[5] = +(a[7] + a[8] || "odd" === a[3])) : a[3] && b.error(a[0]), a | |
}, | |
PSEUDO: function(a) { | |
var b, c = !a[6] && a[2]; | |
return na.CHILD.test(a[0]) ? null : (a[3] ? a[2] = a[4] || a[5] || "" : c && la.test(c) && (b = z(c, !0)) && (b = c.indexOf(")", c.length - b) - c.length) && (a[0] = a[0].slice(0, b), a[2] = c.slice(0, b)), a.slice(0, 3)) | |
} | |
}, | |
filter: { | |
TAG: function(a) { | |
var b = a.replace(ua, va).toLowerCase(); | |
return "*" === a ? function() { | |
return !0 | |
} : function(a) { | |
return a.nodeName && a.nodeName.toLowerCase() === b | |
} | |
}, | |
CLASS: function(a) { | |
var b = R[a + " "]; | |
return b || (b = new RegExp("(^|" + ca + ")" + a + "(" + ca + "|$)")) && R(a, function(a) { | |
return b.test("string" == typeof a.className && a.className || "undefined" != typeof a.getAttribute && a.getAttribute("class") || "") | |
}) | |
}, | |
ATTR: function(a, c, d) { | |
return function(e) { | |
var f = b.attr(e, a); | |
return null == f ? "!=" === c : !c || (f += "", "=" === c ? f === d : "!=" === c ? f !== d : "^=" === c ? d && 0 === f.indexOf(d) : "*=" === c ? d && f.indexOf(d) > -1 : "$=" === c ? d && f.slice(-d.length) === d : "~=" === c ? (" " + f.replace(ga, " ") + " ").indexOf(d) > -1 : "|=" === c && (f === d || f.slice(0, d.length + 1) === d + "-")) | |
} | |
}, | |
CHILD: function(a, b, c, d, e) { | |
var f = "nth" !== a.slice(0, 3), | |
g = "last" !== a.slice(-4), | |
h = "of-type" === b; | |
return 1 === d && 0 === e ? function(a) { | |
return !!a.parentNode | |
} : function(b, c, i) { | |
var j, k, l, m, n, o, p = f !== g ? "nextSibling" : "previousSibling", | |
q = b.parentNode, | |
r = h && b.nodeName.toLowerCase(), | |
s = !i && !h, | |
t = !1; | |
if (q) { | |
if (f) { | |
for (; p;) { | |
for (m = b; m = m[p];) | |
if (h ? m.nodeName.toLowerCase() === r : 1 === m.nodeType) return !1; | |
o = p = "only" === a && !o && "nextSibling" | |
} | |
return !0 | |
} | |
if (o = [g ? q.firstChild : q.lastChild], g && s) { | |
for (m = q, l = m[N] || (m[N] = {}), k = l[m.uniqueID] || (l[m.uniqueID] = {}), j = k[a] || [], n = j[0] === P && j[1], t = n && j[2], m = n && q.childNodes[n]; m = ++n && m && m[p] || (t = n = 0) || o.pop();) | |
if (1 === m.nodeType && ++t && m === b) { | |
k[a] = [P, n, t]; | |
break | |
} | |
} else if (s && (m = b, l = m[N] || (m[N] = {}), k = l[m.uniqueID] || (l[m.uniqueID] = {}), j = k[a] || [], n = j[0] === P && j[1], t = n), t === !1) | |
for (; | |
(m = ++n && m && m[p] || (t = n = 0) || o.pop()) && ((h ? m.nodeName.toLowerCase() !== r : 1 !== m.nodeType) || !++t || (s && (l = m[N] || (m[N] = {}), k = l[m.uniqueID] || (l[m.uniqueID] = {}), k[a] = [P, t]), m !== b));); | |
return t -= e, t === d || t % d === 0 && t / d >= 0 | |
} | |
} | |
}, | |
PSEUDO: function(a, c) { | |
var e, f = w.pseudos[a] || w.setFilters[a.toLowerCase()] || b.error("unsupported pseudo: " + a); | |
return f[N] ? f(c) : f.length > 1 ? (e = [a, a, "", c], w.setFilters.hasOwnProperty(a.toLowerCase()) ? d(function(a, b) { | |
for (var d, e = f(a, c), g = e.length; g--;) d = aa(a, e[g]), a[d] = !(b[d] = e[g]) | |
}) : function(a) { | |
return f(a, 0, e) | |
}) : f | |
} | |
}, | |
pseudos: { | |
not: d(function(a) { | |
var b = [], | |
c = [], | |
e = A(a.replace(ha, "$1")); | |
return e[N] ? d(function(a, b, c, d) { | |
for (var f, g = e(a, null, d, []), h = a.length; h--;)(f = g[h]) && (a[h] = !(b[h] = f)) | |
}) : function(a, d, f) { | |
return b[0] = a, e(b, null, f, c), b[0] = null, !c.pop() | |
} | |
}), | |
has: d(function(a) { | |
return function(c) { | |
return b(a, c).length > 0 | |
} | |
}), | |
contains: d(function(a) { | |
return a = a.replace(ua, va), | |
function(b) { | |
return (b.textContent || b.innerText || x(b)).indexOf(a) > -1 | |
} | |
}), | |
lang: d(function(a) { | |
return ma.test(a || "") || b.error("unsupported lang: " + a), a = a.replace(ua, va).toLowerCase(), | |
function(b) { | |
var c; | |
do | |
if (c = I ? b.lang : b.getAttribute("xml:lang") || b.getAttribute("lang")) return c = c.toLowerCase(), c === a || 0 === c.indexOf(a + "-"); while ((b = b.parentNode) && 1 === b.nodeType); | |
return !1 | |
} | |
}), | |
target: function(b) { | |
var c = a.location && a.location.hash; | |
return c && c.slice(1) === b.id | |
}, | |
root: function(a) { | |
return a === H | |
}, | |
focus: function(a) { | |
return a === G.activeElement && (!G.hasFocus || G.hasFocus()) && !!(a.type || a.href || ~a.tabIndex) | |
}, | |
enabled: function(a) { | |
return a.disabled === !1 | |
}, | |
disabled: function(a) { | |
return a.disabled === !0 | |
}, | |
checked: function(a) { | |
var b = a.nodeName.toLowerCase(); | |
return "input" === b && !!a.checked || "option" === b && !!a.selected | |
}, | |
selected: function(a) { | |
return a.parentNode && a.parentNode.selectedIndex, a.selected === !0 | |
}, | |
empty: function(a) { | |
for (a = a.firstChild; a; a = a.nextSibling) | |
if (a.nodeType < 6) return !1; | |
return !0 | |
}, | |
parent: function(a) { | |
return !w.pseudos.empty(a) | |
}, | |
header: function(a) { | |
return pa.test(a.nodeName) | |
}, | |
input: function(a) { | |
return oa.test(a.nodeName) | |
}, | |
button: function(a) { | |
var b = a.nodeName.toLowerCase(); | |
return "input" === b && "button" === a.type || "button" === b | |
}, | |
text: function(a) { | |
var b; | |
return "input" === a.nodeName.toLowerCase() && "text" === a.type && (null == (b = a.getAttribute("type")) || "text" === b.toLowerCase()) | |
}, | |
first: j(function() { | |
return [0] | |
}), | |
last: j(function(a, b) { | |
return [b - 1] | |
}), | |
eq: j(function(a, b, c) { | |
return [0 > c ? c + b : c] | |
}), | |
even: j(function(a, b) { | |
for (var c = 0; b > c; c += 2) a.push(c); | |
return a | |
}), | |
odd: j(function(a, b) { | |
for (var c = 1; b > c; c += 2) a.push(c); | |
return a | |
}), | |
lt: j(function(a, b, c) { | |
for (var d = 0 > c ? c + b : c; --d >= 0;) a.push(d); | |
return a | |
}), | |
gt: j(function(a, b, c) { | |
for (var d = 0 > c ? c + b : c; ++d < b;) a.push(d); | |
return a | |
}) | |
} | |
}, w.pseudos.nth = w.pseudos.eq; | |
for (u in { | |
radio: !0, | |
checkbox: !0, | |
file: !0, | |
password: !0, | |
image: !0 | |
}) w.pseudos[u] = h(u); | |
for (u in { | |
submit: !0, | |
reset: !0 | |
}) w.pseudos[u] = i(u); | |
return l.prototype = w.filters = w.pseudos, w.setFilters = new l, z = b.tokenize = function(a, c) { | |
var d, e, f, g, h, i, j, k = S[a + " "]; | |
if (k) return c ? 0 : k.slice(0); | |
for (h = a, i = [], j = w.preFilter; h;) { | |
d && !(e = ia.exec(h)) || (e && (h = h.slice(e[0].length) || h), i.push(f = [])), d = !1, (e = ja.exec(h)) && (d = e.shift(), f.push({ | |
value: d, | |
type: e[0].replace(ha, " ") | |
}), h = h.slice(d.length)); | |
for (g in w.filter) !(e = na[g].exec(h)) || j[g] && !(e = j[g](e)) || (d = e.shift(), f.push({ | |
value: d, | |
type: g, | |
matches: e | |
}), h = h.slice(d.length)); | |
if (!d) break | |
} | |
return c ? h.length : h ? b.error(a) : S(a, i).slice(0) | |
}, A = b.compile = function(a, b) { | |
var c, d = [], | |
e = [], | |
f = T[a + " "]; | |
if (!f) { | |
for (b || (b = z(a)), c = b.length; c--;) f = s(b[c]), f[N] ? d.push(f) : e.push(f); | |
f = T(a, t(e, d)), f.selector = a | |
} | |
return f | |
}, B = b.select = function(a, b, c, d) { | |
var e, f, g, h, i, j = "function" == typeof a && a, | |
l = !d && z(a = j.selector || a); | |
if (c = c || [], 1 === l.length) { | |
if (f = l[0] = l[0].slice(0), f.length > 2 && "ID" === (g = f[0]).type && v.getById && 9 === b.nodeType && I && w.relative[f[1].type]) { | |
if (b = (w.find.ID(g.matches[0].replace(ua, va), b) || [])[0], !b) return c; | |
j && (b = b.parentNode), a = a.slice(f.shift().value.length) | |
} | |
for (e = na.needsContext.test(a) ? 0 : f.length; e-- && (g = f[e], !w.relative[h = g.type]);) | |
if ((i = w.find[h]) && (d = i(g.matches[0].replace(ua, va), sa.test(f[0].type) && k(b.parentNode) || b))) { | |
if (f.splice(e, 1), a = d.length && m(f), !a) return $.apply(c, d), c; | |
break | |
} | |
} | |
return (j || A(a, l))(d, b, !I, c, !b || sa.test(a) && k(b.parentNode) || b), c | |
}, v.sortStable = N.split("").sort(U).join("") === N, v.detectDuplicates = !!E, F(), v.sortDetached = e(function(a) { | |
return 1 & a.compareDocumentPosition(G.createElement("div")) | |
}), e(function(a) { | |
return a.innerHTML = "<a href='#'></a>", "#" === a.firstChild.getAttribute("href") | |
}) || f("type|href|height|width", function(a, b, c) { | |
return c ? void 0 : a.getAttribute(b, "type" === b.toLowerCase() ? 1 : 2) | |
}), v.attributes && e(function(a) { | |
return a.innerHTML = "<input/>", a.firstChild.setAttribute("value", ""), "" === a.firstChild.getAttribute("value") | |
}) || f("value", function(a, b, c) { | |
return c || "input" !== a.nodeName.toLowerCase() ? void 0 : a.defaultValue | |
}), e(function(a) { | |
return null == a.getAttribute("disabled") | |
}) || f(ba, function(a, b, c) { | |
var d; | |
return c ? void 0 : a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null | |
}), b | |
}(a); | |
na.find = sa, na.expr = sa.selectors, na.expr[":"] = na.expr.pseudos, na.uniqueSort = na.unique = sa.uniqueSort, na.text = sa.getText, na.isXMLDoc = sa.isXML, na.contains = sa.contains; | |
var ta = function(a, b, c) { | |
for (var d = [], e = void 0 !== c; | |
(a = a[b]) && 9 !== a.nodeType;) | |
if (1 === a.nodeType) { | |
if (e && na(a).is(c)) break; | |
d.push(a) | |
} | |
return d | |
}, | |
ua = function(a, b) { | |
for (var c = []; a; a = a.nextSibling) 1 === a.nodeType && a !== b && c.push(a); | |
return c | |
}, | |
va = na.expr.match.needsContext, | |
wa = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/, | |
xa = /^.[^:#\[\.,]*$/; | |
na.filter = function(a, b, c) { | |
var d = b[0]; | |
return c && (a = ":not(" + a + ")"), 1 === b.length && 1 === d.nodeType ? na.find.matchesSelector(d, a) ? [d] : [] : na.find.matches(a, na.grep(b, function(a) { | |
return 1 === a.nodeType | |
})) | |
}, na.fn.extend({ | |
find: function(a) { | |
var b, c = [], | |
d = this, | |
e = d.length; | |
if ("string" != typeof a) return this.pushStack(na(a).filter(function() { | |
for (b = 0; e > b; b++) | |
if (na.contains(d[b], this)) return !0 | |
})); | |
for (b = 0; e > b; b++) na.find(a, d[b], c); | |
return c = this.pushStack(e > 1 ? na.unique(c) : c), c.selector = this.selector ? this.selector + " " + a : a, c | |
}, | |
filter: function(a) { | |
return this.pushStack(d(this, a || [], !1)) | |
}, | |
not: function(a) { | |
return this.pushStack(d(this, a || [], !0)) | |
}, | |
is: function(a) { | |
return !!d(this, "string" == typeof a && va.test(a) ? na(a) : a || [], !1).length | |
} | |
}); | |
var ya, za = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, | |
Aa = na.fn.init = function(a, b, c) { | |
var d, e; | |
if (!a) return this; | |
if (c = c || ya, "string" == typeof a) { | |
if (d = "<" === a.charAt(0) && ">" === a.charAt(a.length - 1) && a.length >= 3 ? [null, a, null] : za.exec(a), !d || !d[1] && b) return !b || b.jquery ? (b || c).find(a) : this.constructor(b).find(a); | |
if (d[1]) { | |
if (b = b instanceof na ? b[0] : b, na.merge(this, na.parseHTML(d[1], b && b.nodeType ? b.ownerDocument || b : da, !0)), wa.test(d[1]) && na.isPlainObject(b)) | |
for (d in b) na.isFunction(this[d]) ? this[d](b[d]) : this.attr(d, b[d]); | |
return this | |
} | |
if (e = da.getElementById(d[2]), e && e.parentNode) { | |
if (e.id !== d[2]) return ya.find(a); | |
this.length = 1, this[0] = e | |
} | |
return this.context = da, this.selector = a, this | |
} | |
return a.nodeType ? (this.context = this[0] = a, this.length = 1, this) : na.isFunction(a) ? "undefined" != typeof c.ready ? c.ready(a) : a(na) : (void 0 !== a.selector && (this.selector = a.selector, this.context = a.context), na.makeArray(a, this)) | |
}; | |
Aa.prototype = na.fn, ya = na(da); | |
var Ba = /^(?:parents|prev(?:Until|All))/, | |
Ca = { | |
children: !0, | |
contents: !0, | |
next: !0, | |
prev: !0 | |
}; | |
na.fn.extend({ | |
has: function(a) { | |
var b, c = na(a, this), | |
d = c.length; | |
return this.filter(function() { | |
for (b = 0; d > b; b++) | |
if (na.contains(this, c[b])) return !0 | |
}) | |
}, | |
closest: function(a, b) { | |
for (var c, d = 0, e = this.length, f = [], g = va.test(a) || "string" != typeof a ? na(a, b || this.context) : 0; e > d; d++) | |
for (c = this[d]; c && c !== b; c = c.parentNode) | |
if (c.nodeType < 11 && (g ? g.index(c) > -1 : 1 === c.nodeType && na.find.matchesSelector(c, a))) { | |
f.push(c); | |
break | |
} | |
return this.pushStack(f.length > 1 ? na.uniqueSort(f) : f) | |
}, | |
index: function(a) { | |
return a ? "string" == typeof a ? na.inArray(this[0], na(a)) : na.inArray(a.jquery ? a[0] : a, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 | |
}, | |
add: function(a, b) { | |
return this.pushStack(na.uniqueSort(na.merge(this.get(), na(a, b)))) | |
}, | |
addBack: function(a) { | |
return this.add(null == a ? this.prevObject : this.prevObject.filter(a)) | |
} | |
}), na.each({ | |
parent: function(a) { | |
var b = a.parentNode; | |
return b && 11 !== b.nodeType ? b : null | |
}, | |
parents: function(a) { | |
return ta(a, "parentNode") | |
}, | |
parentsUntil: function(a, b, c) { | |
return ta(a, "parentNode", c) | |
}, | |
next: function(a) { | |
return e(a, "nextSibling") | |
}, | |
prev: function(a) { | |
return e(a, "previousSibling") | |
}, | |
nextAll: function(a) { | |
return ta(a, "nextSibling") | |
}, | |
prevAll: function(a) { | |
return ta(a, "previousSibling") | |
}, | |
nextUntil: function(a, b, c) { | |
return ta(a, "nextSibling", c) | |
}, | |
prevUntil: function(a, b, c) { | |
return ta(a, "previousSibling", c) | |
}, | |
siblings: function(a) { | |
return ua((a.parentNode || {}).firstChild, a) | |
}, | |
children: function(a) { | |
return ua(a.firstChild) | |
}, | |
contents: function(a) { | |
return na.nodeName(a, "iframe") ? a.contentDocument || a.contentWindow.document : na.merge([], a.childNodes) | |
} | |
}, function(a, b) { | |
na.fn[a] = function(c, d) { | |
var e = na.map(this, b, c); | |
return "Until" !== a.slice(-5) && (d = c), d && "string" == typeof d && (e = na.filter(d, e)), this.length > 1 && (Ca[a] || (e = na.uniqueSort(e)), Ba.test(a) && (e = e.reverse())), this.pushStack(e) | |
} | |
}); | |
var Da = /\S+/g; | |
na.Callbacks = function(a) { | |
a = "string" == typeof a ? f(a) : na.extend({}, a); | |
var b, c, d, e, g = [], | |
h = [], | |
i = -1, | |
j = function() { | |
for (e = a.once, d = b = !0; h.length; i = -1) | |
for (c = h.shift(); ++i < g.length;) g[i].apply(c[0], c[1]) === !1 && a.stopOnFalse && (i = g.length, c = !1); | |
a.memory || (c = !1), b = !1, e && (g = c ? [] : "") | |
}, | |
k = { | |
add: function() { | |
return g && (c && !b && (i = g.length - 1, h.push(c)), function b(c) { | |
na.each(c, function(c, d) { | |
na.isFunction(d) ? a.unique && k.has(d) || g.push(d) : d && d.length && "string" !== na.type(d) && b(d) | |
}) | |
}(arguments), c && !b && j()), this | |
}, | |
remove: function() { | |
return na.each(arguments, function(a, b) { | |
for (var c; | |
(c = na.inArray(b, g, c)) > -1;) g.splice(c, 1), i >= c && i-- | |
}), this | |
}, | |
has: function(a) { | |
return a ? na.inArray(a, g) > -1 : g.length > 0 | |
}, | |
empty: function() { | |
return g && (g = []), this | |
}, | |
disable: function() { | |
return e = h = [], g = c = "", this | |
}, | |
disabled: function() { | |
return !g | |
}, | |
lock: function() { | |
return e = !0, c || k.disable(), this | |
}, | |
locked: function() { | |
return !!e | |
}, | |
fireWith: function(a, c) { | |
return e || (c = c || [], c = [a, c.slice ? c.slice() : c], h.push(c), b || j()), this | |
}, | |
fire: function() { | |
return k.fireWith(this, arguments), this | |
}, | |
fired: function() { | |
return !!d | |
} | |
}; | |
return k | |
}, na.extend({ | |
Deferred: function(a) { | |
var b = [ | |
["resolve", "done", na.Callbacks("once memory"), "resolved"], | |
["reject", "fail", na.Callbacks("once memory"), "rejected"], | |
["notify", "progress", na.Callbacks("memory")] | |
], | |
c = "pending", | |
d = { | |
state: function() { | |
return c | |
}, | |
always: function() { | |
return e.done(arguments).fail(arguments), this | |
}, | |
then: function() { | |
var a = arguments; | |
return na.Deferred(function(c) { | |
na.each(b, function(b, f) { | |
var g = na.isFunction(a[b]) && a[b]; | |
e[f[1]](function() { | |
var a = g && g.apply(this, arguments); | |
a && na.isFunction(a.promise) ? a.promise().progress(c.notify).done(c.resolve).fail(c.reject) : c[f[0] + "With"](this === d ? c.promise() : this, g ? [a] : arguments) | |
}) | |
}), a = null | |
}).promise() | |
}, | |
promise: function(a) { | |
return null != a ? na.extend(a, d) : d | |
} | |
}, | |
e = {}; | |
return d.pipe = d.then, na.each(b, function(a, f) { | |
var g = f[2], | |
h = f[3]; | |
d[f[1]] = g.add, h && g.add(function() { | |
c = h | |
}, b[1 ^ a][2].disable, b[2][2].lock), e[f[0]] = function() { | |
return e[f[0] + "With"](this === e ? d : this, arguments), this | |
}, e[f[0] + "With"] = g.fireWith | |
}), d.promise(e), a && a.call(e, e), e | |
}, | |
when: function(a) { | |
var b, c, d, e = 0, | |
f = ea.call(arguments), | |
g = f.length, | |
h = 1 !== g || a && na.isFunction(a.promise) ? g : 0, | |
i = 1 === h ? a : na.Deferred(), | |
j = function(a, c, d) { | |
return function(e) { | |
c[a] = this, d[a] = arguments.length > 1 ? ea.call(arguments) : e, d === b ? i.notifyWith(c, d) : --h || i.resolveWith(c, d) | |
} | |
}; | |
if (g > 1) | |
for (b = new Array(g), c = new Array(g), d = new Array(g); g > e; e++) f[e] && na.isFunction(f[e].promise) ? f[e].promise().progress(j(e, c, b)).done(j(e, d, f)).fail(i.reject) : --h; | |
return h || i.resolveWith(d, f), i.promise() | |
} | |
}); | |
var Ea; | |
na.fn.ready = function(a) { | |
return na.ready.promise().done(a), this | |
}, na.extend({ | |
isReady: !1, | |
readyWait: 1, | |
holdReady: function(a) { | |
a ? na.readyWait++ : na.ready(!0) | |
}, | |
ready: function(a) { | |
(a === !0 ? --na.readyWait : na.isReady) || (na.isReady = !0, a !== !0 && --na.readyWait > 0 || (Ea.resolveWith(da, [na]), na.fn.triggerHandler && (na(da).triggerHandler("ready"), na(da).off("ready")))) | |
} | |
}), na.ready.promise = function(b) { | |
if (!Ea) | |
if (Ea = na.Deferred(), "complete" === da.readyState || "loading" !== da.readyState && !da.documentElement.doScroll) a.setTimeout(na.ready); | |
else if (da.addEventListener) da.addEventListener("DOMContentLoaded", h), a.addEventListener("load", h); | |
else { | |
da.attachEvent("onreadystatechange", h), a.attachEvent("onload", h); | |
var c = !1; | |
try { | |
c = null == a.frameElement && da.documentElement | |
} catch (a) {} | |
c && c.doScroll && ! function b() { | |
if (!na.isReady) { | |
try { | |
c.doScroll("left") | |
} catch (c) { | |
return a.setTimeout(b, 50) | |
} | |
g(), na.ready() | |
} | |
}() | |
} | |
return Ea.promise(b) | |
}, na.ready.promise(); | |
var Fa; | |
for (Fa in na(la)) break; | |
la.ownFirst = "0" === Fa, la.inlineBlockNeedsLayout = !1, na(function() { | |
var a, b, c, d; | |
c = da.getElementsByTagName("body")[0], c && c.style && (b = da.createElement("div"), d = da.createElement("div"), d.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", c.appendChild(d).appendChild(b), "undefined" != typeof b.style.zoom && (b.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1", la.inlineBlockNeedsLayout = a = 3 === b.offsetWidth, a && (c.style.zoom = 1)), c.removeChild(d)) | |
}), | |
function() { | |
var a = da.createElement("div"); | |
la.deleteExpando = !0; | |
try { | |
delete a.test | |
} catch (a) { | |
la.deleteExpando = !1 | |
} | |
a = null | |
}(); | |
var Ga = function(a) { | |
var b = na.noData[(a.nodeName + " ").toLowerCase()], | |
c = +a.nodeType || 1; | |
return (1 === c || 9 === c) && (!b || b !== !0 && a.getAttribute("classid") === b) | |
}, | |
Ha = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, | |
Ia = /([A-Z])/g; | |
na.extend({ | |
cache: {}, | |
noData: { | |
"applet ": !0, | |
"embed ": !0, | |
"object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" | |
}, | |
hasData: function(a) { | |
return a = a.nodeType ? na.cache[a[na.expando]] : a[na.expando], !!a && !j(a) | |
}, | |
data: function(a, b, c) { | |
return k(a, b, c) | |
}, | |
removeData: function(a, b) { | |
return l(a, b) | |
}, | |
_data: function(a, b, c) { | |
return k(a, b, c, !0) | |
}, | |
_removeData: function(a, b) { | |
return l(a, b, !0) | |
} | |
}), na.fn.extend({ | |
data: function(a, b) { | |
var c, d, e, f = this[0], | |
g = f && f.attributes; | |
if (void 0 === a) { | |
if (this.length && (e = na.data(f), 1 === f.nodeType && !na._data(f, "parsedAttrs"))) { | |
for (c = g.length; c--;) g[c] && (d = g[c].name, 0 === d.indexOf("data-") && (d = na.camelCase(d.slice(5)), i(f, d, e[d]))); | |
na._data(f, "parsedAttrs", !0) | |
} | |
return e | |
} | |
return "object" == typeof a ? this.each(function() { | |
na.data(this, a) | |
}) : arguments.length > 1 ? this.each(function() { | |
na.data(this, a, b) | |
}) : f ? i(f, a, na.data(f, a)) : void 0 | |
}, | |
removeData: function(a) { | |
return this.each(function() { | |
na.removeData(this, a) | |
}) | |
} | |
}), na.extend({ | |
queue: function(a, b, c) { | |
var d; | |
return a ? (b = (b || "fx") + "queue", d = na._data(a, b), c && (!d || na.isArray(c) ? d = na._data(a, b, na.makeArray(c)) : d.push(c)), d || []) : void 0 | |
}, | |
dequeue: function(a, b) { | |
b = b || "fx"; | |
var c = na.queue(a, b), | |
d = c.length, | |
e = c.shift(), | |
f = na._queueHooks(a, b), | |
g = function() { | |
na.dequeue(a, b) | |
}; | |
"inprogress" === e && (e = c.shift(), d--), e && ("fx" === b && c.unshift("inprogress"), delete f.stop, e.call(a, g, f)), !d && f && f.empty.fire() | |
}, | |
_queueHooks: function(a, b) { | |
var c = b + "queueHooks"; | |
return na._data(a, c) || na._data(a, c, { | |
empty: na.Callbacks("once memory").add(function() { | |
na._removeData(a, b + "queue"), na._removeData(a, c) | |
}) | |
}) | |
} | |
}), na.fn.extend({ | |
queue: function(a, b) { | |
var c = 2; | |
return "string" != typeof a && (b = a, a = "fx", c--), arguments.length < c ? na.queue(this[0], a) : void 0 === b ? this : this.each(function() { | |
var c = na.queue(this, a, b); | |
na._queueHooks(this, a), "fx" === a && "inprogress" !== c[0] && na.dequeue(this, a) | |
}) | |
}, | |
dequeue: function(a) { | |
return this.each(function() { | |
na.dequeue(this, a) | |
}) | |
}, | |
clearQueue: function(a) { | |
return this.queue(a || "fx", []) | |
}, | |
promise: function(a, b) { | |
var c, d = 1, | |
e = na.Deferred(), | |
f = this, | |
g = this.length, | |
h = function() { | |
--d || e.resolveWith(f, [f]) | |
}; | |
for ("string" != typeof a && (b = a, a = void 0), a = a || "fx"; g--;) c = na._data(f[g], a + "queueHooks"), c && c.empty && (d++, c.empty.add(h)); | |
return h(), e.promise(b) | |
} | |
}), | |
function() { | |
var a; | |
la.shrinkWrapBlocks = function() { | |
if (null != a) return a; | |
a = !1; | |
var b, c, d; | |
return c = da.getElementsByTagName("body")[0], c && c.style ? (b = da.createElement("div"), d = da.createElement("div"), d.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", c.appendChild(d).appendChild(b), "undefined" != typeof b.style.zoom && (b.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1", b.appendChild(da.createElement("div")).style.width = "5px", a = 3 !== b.offsetWidth), c.removeChild(d), a) : void 0 | |
} | |
}(); | |
var Ja = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, | |
Ka = new RegExp("^(?:([+-])=|)(" + Ja + ")([a-z%]*)$", "i"), | |
La = ["Top", "Right", "Bottom", "Left"], | |
Ma = function(a, b) { | |
return a = b || a, "none" === na.css(a, "display") || !na.contains(a.ownerDocument, a) | |
}, | |
Na = function(a, b, c, d, e, f, g) { | |
var h = 0, | |
i = a.length, | |
j = null == c; | |
if ("object" === na.type(c)) { | |
e = !0; | |
for (h in c) Na(a, b, h, c[h], !0, f, g) | |
} else if (void 0 !== d && (e = !0, na.isFunction(d) || (g = !0), j && (g ? (b.call(a, d), b = null) : (j = b, b = function(a, b, c) { | |
return j.call(na(a), c) | |
})), b)) | |
for (; i > h; h++) b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c))); | |
return e ? a : j ? b.call(a) : i ? b(a[0], c) : f | |
}, | |
Oa = /^(?:checkbox|radio)$/i, | |
Pa = /<([\w:-]+)/, | |
Qa = /^$|\/(?:java|ecma)script/i, | |
Ra = /^\s+/, | |
Sa = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video"; | |
! function() { | |
var a = da.createElement("div"), | |
b = da.createDocumentFragment(), | |
c = da.createElement("input"); | |
a.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", la.leadingWhitespace = 3 === a.firstChild.nodeType, la.tbody = !a.getElementsByTagName("tbody").length, la.htmlSerialize = !!a.getElementsByTagName("link").length, la.html5Clone = "<:nav></:nav>" !== da.createElement("nav").cloneNode(!0).outerHTML, c.type = "checkbox", c.checked = !0, b.appendChild(c), la.appendChecked = c.checked, a.innerHTML = "<textarea>x</textarea>", la.noCloneChecked = !!a.cloneNode(!0).lastChild.defaultValue, b.appendChild(a), c = da.createElement("input"), c.setAttribute("type", "radio"), c.setAttribute("checked", "checked"), c.setAttribute("name", "t"), a.appendChild(c), la.checkClone = a.cloneNode(!0).cloneNode(!0).lastChild.checked, la.noCloneEvent = !!a.addEventListener, a[na.expando] = 1, la.attributes = !a.getAttribute(na.expando) | |
}(); | |
var Ta = { | |
option: [1, "<select multiple='multiple'>", "</select>"], | |
legend: [1, "<fieldset>", "</fieldset>"], | |
area: [1, "<map>", "</map>"], | |
param: [1, "<object>", "</object>"], | |
thead: [1, "<table>", "</table>"], | |
tr: [2, "<table><tbody>", "</tbody></table>"], | |
col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"], | |
td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], | |
_default: la.htmlSerialize ? [0, "", ""] : [1, "X<div>", "</div>"] | |
}; | |
Ta.optgroup = Ta.option, Ta.tbody = Ta.tfoot = Ta.colgroup = Ta.caption = Ta.thead, Ta.th = Ta.td; | |
var Ua = /<|&#?\w+;/, | |
Va = /<tbody/i; | |
! function() { | |
var b, c, d = da.createElement("div"); | |
for (b in { | |
submit: !0, | |
change: !0, | |
focusin: !0 | |
}) c = "on" + b, (la[b] = c in a) || (d.setAttribute(c, "t"), la[b] = d.attributes[c].expando === !1); | |
d = null | |
}(); | |
var Wa = /^(?:input|select|textarea)$/i, | |
Xa = /^key/, | |
Ya = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, | |
Za = /^(?:focusinfocus|focusoutblur)$/, | |
$a = /^([^.]*)(?:\.(.+)|)/; | |
na.event = { | |
global: {}, | |
add: function(a, b, c, d, e) { | |
var f, g, h, i, j, k, l, m, n, o, p, q = na._data(a); | |
if (q) { | |
for (c.handler && (i = c, c = i.handler, e = i.selector), c.guid || (c.guid = na.guid++), (g = q.events) || (g = q.events = {}), (k = q.handle) || (k = q.handle = function(a) { | |
return "undefined" == typeof na || a && na.event.triggered === a.type ? void 0 : na.event.dispatch.apply(k.elem, arguments) | |
}, k.elem = a), b = (b || "").match(Da) || [""], h = b.length; h--;) f = $a.exec(b[h]) || [], n = p = f[1], o = (f[2] || "").split(".").sort(), n && (j = na.event.special[n] || {}, n = (e ? j.delegateType : j.bindType) || n, j = na.event.special[n] || {}, l = na.extend({ | |
type: n, | |
origType: p, | |
data: d, | |
handler: c, | |
guid: c.guid, | |
selector: e, | |
needsContext: e && na.expr.match.needsContext.test(e), | |
namespace: o.join(".") | |
}, i), (m = g[n]) || (m = g[n] = [], m.delegateCount = 0, j.setup && j.setup.call(a, d, o, k) !== !1 || (a.addEventListener ? a.addEventListener(n, k, !1) : a.attachEvent && a.attachEvent("on" + n, k))), j.add && (j.add.call(a, l), l.handler.guid || (l.handler.guid = c.guid)), e ? m.splice(m.delegateCount++, 0, l) : m.push(l), na.event.global[n] = !0); | |
a = null | |
} | |
}, | |
remove: function(a, b, c, d, e) { | |
var f, g, h, i, j, k, l, m, n, o, p, q = na.hasData(a) && na._data(a); | |
if (q && (k = q.events)) { | |
for (b = (b || "").match(Da) || [""], j = b.length; j--;) | |
if (h = $a.exec(b[j]) || [], n = p = h[1], o = (h[2] || "").split(".").sort(), n) { | |
for (l = na.event.special[n] || {}, n = (d ? l.delegateType : l.bindType) || n, m = k[n] || [], h = h[2] && new RegExp("(^|\\.)" + o.join("\\.(?:.*\\.|)") + "(\\.|$)"), i = f = m.length; f--;) g = m[f], !e && p !== g.origType || c && c.guid !== g.guid || h && !h.test(g.namespace) || d && d !== g.selector && ("**" !== d || !g.selector) || (m.splice(f, 1), g.selector && m.delegateCount--, l.remove && l.remove.call(a, g)); | |
i && !m.length && (l.teardown && l.teardown.call(a, o, q.handle) !== !1 || na.removeEvent(a, n, q.handle), delete k[n]) | |
} else | |
for (n in k) na.event.remove(a, n + b[j], c, d, !0); | |
na.isEmptyObject(k) && (delete q.handle, na._removeData(a, "events")) | |
} | |
}, | |
trigger: function(b, c, d, e) { | |
var f, g, h, i, j, k, l, m = [d || da], | |
n = ka.call(b, "type") ? b.type : b, | |
o = ka.call(b, "namespace") ? b.namespace.split(".") : []; | |
if (h = k = d = d || da, 3 !== d.nodeType && 8 !== d.nodeType && !Za.test(n + na.event.triggered) && (n.indexOf(".") > -1 && (o = n.split("."), n = o.shift(), o.sort()), g = n.indexOf(":") < 0 && "on" + n, b = b[na.expando] ? b : new na.Event(n, "object" == typeof b && b), b.isTrigger = e ? 2 : 3, b.namespace = o.join("."), b.rnamespace = b.namespace ? new RegExp("(^|\\.)" + o.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, b.result = void 0, b.target || (b.target = d), c = null == c ? [b] : na.makeArray(c, [b]), j = na.event.special[n] || {}, e || !j.trigger || j.trigger.apply(d, c) !== !1)) { | |
if (!e && !j.noBubble && !na.isWindow(d)) { | |
for (i = j.delegateType || n, Za.test(i + n) || (h = h.parentNode); h; h = h.parentNode) m.push(h), k = h; | |
k === (d.ownerDocument || da) && m.push(k.defaultView || k.parentWindow || a) | |
} | |
for (l = 0; | |
(h = m[l++]) && !b.isPropagationStopped();) b.type = l > 1 ? i : j.bindType || n, f = (na._data(h, "events") || {})[b.type] && na._data(h, "handle"), f && f.apply(h, c), f = g && h[g], f && f.apply && Ga(h) && (b.result = f.apply(h, c), b.result === !1 && b.preventDefault()); | |
if (b.type = n, !e && !b.isDefaultPrevented() && (!j._default || j._default.apply(m.pop(), c) === !1) && Ga(d) && g && d[n] && !na.isWindow(d)) { | |
k = d[g], k && (d[g] = null), na.event.triggered = n; | |
try { | |
d[n]() | |
} catch (a) {} | |
na.event.triggered = void 0, k && (d[g] = k) | |
} | |
return b.result | |
} | |
}, | |
dispatch: function(a) { | |
a = na.event.fix(a); | |
var b, c, d, e, f, g = [], | |
h = ea.call(arguments), | |
i = (na._data(this, "events") || {})[a.type] || [], | |
j = na.event.special[a.type] || {}; | |
if (h[0] = a, a.delegateTarget = this, !j.preDispatch || j.preDispatch.call(this, a) !== !1) { | |
for (g = na.event.handlers.call(this, a, i), b = 0; | |
(e = g[b++]) && !a.isPropagationStopped();) | |
for (a.currentTarget = e.elem, c = 0; | |
(f = e.handlers[c++]) && !a.isImmediatePropagationStopped();) a.rnamespace && !a.rnamespace.test(f.namespace) || (a.handleObj = f, a.data = f.data, d = ((na.event.special[f.origType] || {}).handle || f.handler).apply(e.elem, h), void 0 !== d && (a.result = d) === !1 && (a.preventDefault(), a.stopPropagation())); | |
return j.postDispatch && j.postDispatch.call(this, a), a.result | |
} | |
}, | |
handlers: function(a, b) { | |
var c, d, e, f, g = [], | |
h = b.delegateCount, | |
i = a.target; | |
if (h && i.nodeType && ("click" !== a.type || isNaN(a.button) || a.button < 1)) | |
for (; i != this; i = i.parentNode || this) | |
if (1 === i.nodeType && (i.disabled !== !0 || "click" !== a.type)) { | |
for (d = [], c = 0; h > c; c++) f = b[c], e = f.selector + " ", void 0 === d[e] && (d[e] = f.needsContext ? na(e, this).index(i) > -1 : na.find(e, this, null, [i]).length), d[e] && d.push(f); | |
d.length && g.push({ | |
elem: i, | |
handlers: d | |
}) | |
} | |
return h < b.length && g.push({ | |
elem: this, | |
handlers: b.slice(h) | |
}), g | |
}, | |
fix: function(a) { | |
if (a[na.expando]) return a; | |
var b, c, d, e = a.type, | |
f = a, | |
g = this.fixHooks[e]; | |
for (g || (this.fixHooks[e] = g = Ya.test(e) ? this.mouseHooks : Xa.test(e) ? this.keyHooks : {}), d = g.props ? this.props.concat(g.props) : this.props, a = new na.Event(f), b = d.length; b--;) c = d[b], a[c] = f[c]; | |
return a.target || (a.target = f.srcElement || da), 3 === a.target.nodeType && (a.target = a.target.parentNode), a.metaKey = !!a.metaKey, g.filter ? g.filter(a, f) : 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(a, b) { | |
return null == a.which && (a.which = null != b.charCode ? b.charCode : b.keyCode), a | |
} | |
}, | |
mouseHooks: { | |
props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), | |
filter: function(a, b) { | |
var c, d, e, f = b.button, | |
g = b.fromElement; | |
return null == a.pageX && null != b.clientX && (d = a.target.ownerDocument || da, e = d.documentElement, c = d.body, a.pageX = b.clientX + (e && e.scrollLeft || c && c.scrollLeft || 0) - (e && e.clientLeft || c && c.clientLeft || 0), a.pageY = b.clientY + (e && e.scrollTop || c && c.scrollTop || 0) - (e && e.clientTop || c && c.clientTop || 0)), !a.relatedTarget && g && (a.relatedTarget = g === a.target ? b.toElement : g), a.which || void 0 === f || (a.which = 1 & f ? 1 : 2 & f ? 3 : 4 & f ? 2 : 0), a | |
} | |
}, | |
special: { | |
load: { | |
noBubble: !0 | |
}, | |
focus: { | |
trigger: function() { | |
if (this !== u() && this.focus) try { | |
return this.focus(), !1 | |
} catch (a) {} | |
}, | |
delegateType: "focusin" | |
}, | |
blur: { | |
trigger: function() { | |
return this === u() && this.blur ? (this.blur(), !1) : void 0 | |
}, | |
delegateType: "focusout" | |
}, | |
click: { | |
trigger: function() { | |
return na.nodeName(this, "input") && "checkbox" === this.type && this.click ? (this.click(), !1) : void 0 | |
}, | |
_default: function(a) { | |
return na.nodeName(a.target, "a") | |
} | |
}, | |
beforeunload: { | |
postDispatch: function(a) { | |
void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result) | |
} | |
} | |
}, | |
simulate: function(a, b, c) { | |
var d = na.extend(new na.Event, c, { | |
type: a, | |
isSimulated: !0 | |
}); | |
na.event.trigger(d, null, b), d.isDefaultPrevented() && c.preventDefault() | |
} | |
}, na.removeEvent = da.removeEventListener ? function(a, b, c) { | |
a.removeEventListener && a.removeEventListener(b, c) | |
} : function(a, b, c) { | |
var d = "on" + b; | |
a.detachEvent && ("undefined" == typeof a[d] && (a[d] = null), a.detachEvent(d, c)) | |
}, na.Event = function(a, b) { | |
return this instanceof na.Event ? (a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && a.returnValue === !1 ? s : t) : this.type = a, b && na.extend(this, b), this.timeStamp = a && a.timeStamp || na.now(), void(this[na.expando] = !0)) : new na.Event(a, b) | |
}, na.Event.prototype = { | |
constructor: na.Event, | |
isDefaultPrevented: t, | |
isPropagationStopped: t, | |
isImmediatePropagationStopped: t, | |
preventDefault: function() { | |
var a = this.originalEvent; | |
this.isDefaultPrevented = s, a && (a.preventDefault ? a.preventDefault() : a.returnValue = !1) | |
}, | |
stopPropagation: function() { | |
var a = this.originalEvent; | |
this.isPropagationStopped = s, a && !this.isSimulated && (a.stopPropagation && a.stopPropagation(), a.cancelBubble = !0) | |
}, | |
stopImmediatePropagation: function() { | |
var a = this.originalEvent; | |
this.isImmediatePropagationStopped = s, a && a.stopImmediatePropagation && a.stopImmediatePropagation(), this.stopPropagation() | |
} | |
}, na.each({ | |
mouseenter: "mouseover", | |
mouseleave: "mouseout", | |
pointerenter: "pointerover", | |
pointerleave: "pointerout" | |
}, function(a, b) { | |
na.event.special[a] = { | |
delegateType: b, | |
bindType: b, | |
handle: function(a) { | |
var c, d = this, | |
e = a.relatedTarget, | |
f = a.handleObj; | |
return e && (e === d || na.contains(d, e)) || (a.type = f.origType, c = f.handler.apply(this, arguments), a.type = b), c | |
} | |
} | |
}), la.submit || (na.event.special.submit = { | |
setup: function() { | |
return !na.nodeName(this, "form") && void na.event.add(this, "click._submit keypress._submit", function(a) { | |
var b = a.target, | |
c = na.nodeName(b, "input") || na.nodeName(b, "button") ? na.prop(b, "form") : void 0; | |
c && !na._data(c, "submit") && (na.event.add(c, "submit._submit", function(a) { | |
a._submitBubble = !0 | |
}), na._data(c, "submit", !0)) | |
}) | |
}, | |
postDispatch: function(a) { | |
a._submitBubble && (delete a._submitBubble, this.parentNode && !a.isTrigger && na.event.simulate("submit", this.parentNode, a)) | |
}, | |
teardown: function() { | |
return !na.nodeName(this, "form") && void na.event.remove(this, "._submit") | |
} | |
}), la.change || (na.event.special.change = { | |
setup: function() { | |
return Wa.test(this.nodeName) ? ("checkbox" !== this.type && "radio" !== this.type || (na.event.add(this, "propertychange._change", function(a) { | |
"checked" === a.originalEvent.propertyName && (this._justChanged = !0) | |
}), na.event.add(this, "click._change", function(a) { | |
this._justChanged && !a.isTrigger && (this._justChanged = !1), na.event.simulate("change", this, a) | |
})), !1) : void na.event.add(this, "beforeactivate._change", function(a) { | |
var b = a.target; | |
Wa.test(b.nodeName) && !na._data(b, "change") && (na.event.add(b, "change._change", function(a) { | |
!this.parentNode || a.isSimulated || a.isTrigger || na.event.simulate("change", this.parentNode, a) | |
}), na._data(b, "change", !0)) | |
}) | |
}, | |
handle: function(a) { | |
var b = a.target; | |
return this !== b || a.isSimulated || a.isTrigger || "radio" !== b.type && "checkbox" !== b.type ? a.handleObj.handler.apply(this, arguments) : void 0 | |
}, | |
teardown: function() { | |
return na.event.remove(this, "._change"), !Wa.test(this.nodeName) | |
} | |
}), la.focusin || na.each({ | |
focus: "focusin", | |
blur: "focusout" | |
}, function(a, b) { | |
var c = function(a) { | |
na.event.simulate(b, a.target, na.event.fix(a)) | |
}; | |
na.event.special[b] = { | |
setup: function() { | |
var d = this.ownerDocument || this, | |
e = na._data(d, b); | |
e || d.addEventListener(a, c, !0), na._data(d, b, (e || 0) + 1) | |
}, | |
teardown: function() { | |
var d = this.ownerDocument || this, | |
e = na._data(d, b) - 1; | |
e ? na._data(d, b, e) : (d.removeEventListener(a, c, !0), na._removeData(d, b)) | |
} | |
} | |
}), na.fn.extend({ | |
on: function(a, b, c, d) { | |
return v(this, a, b, c, d) | |
}, | |
one: function(a, b, c, d) { | |
return v(this, a, b, c, d, 1) | |
}, | |
off: function(a, b, c) { | |
var d, e; | |
if (a && a.preventDefault && a.handleObj) return d = a.handleObj, na(a.delegateTarget).off(d.namespace ? d.origType + "." + d.namespace : d.origType, d.selector, d.handler), this; | |
if ("object" == typeof a) { | |
for (e in a) this.off(e, b, a[e]); | |
return this | |
} | |
return b !== !1 && "function" != typeof b || (c = b, b = void 0), c === !1 && (c = t), this.each(function() { | |
na.event.remove(this, a, c, b) | |
}) | |
}, | |
trigger: function(a, b) { | |
return this.each(function() { | |
na.event.trigger(a, b, this) | |
}) | |
}, | |
triggerHandler: function(a, b) { | |
var c = this[0]; | |
return c ? na.event.trigger(a, b, c, !0) : void 0 | |
} | |
}); | |
var _a = / jQuery\d+="(?:null|\d+)"/g, | |
ab = new RegExp("<(?:" + Sa + ")[\\s/>]", "i"), | |
bb = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi, | |
cb = /<script|<style|<link/i, | |
db = /checked\s*(?:[^=]|=\s*.checked.)/i, | |
eb = /^true\/(.*)/, | |
fb = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, | |
gb = n(da), | |
hb = gb.appendChild(da.createElement("div")); | |
na.extend({ | |
htmlPrefilter: function(a) { | |
return a.replace(bb, "<$1></$2>") | |
}, | |
clone: function(a, b, c) { | |
var d, e, f, g, h, i = na.contains(a.ownerDocument, a); | |
if (la.html5Clone || na.isXMLDoc(a) || !ab.test("<" + a.nodeName + ">") ? f = a.cloneNode(!0) : (hb.innerHTML = a.outerHTML, hb.removeChild(f = hb.firstChild)), !(la.noCloneEvent && la.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || na.isXMLDoc(a))) | |
for (d = o(f), h = o(a), g = 0; null != (e = h[g]); ++g) d[g] && A(e, d[g]); | |
if (b) | |
if (c) | |
for (h = h || o(a), d = d || o(f), g = 0; null != (e = h[g]); g++) z(e, d[g]); | |
else z(a, f); | |
return d = o(f, "script"), d.length > 0 && p(d, !i && o(a, "script")), d = h = e = null, f | |
}, | |
cleanData: function(a, b) { | |
for (var c, d, e, f, g = 0, h = na.expando, i = na.cache, j = la.attributes, k = na.event.special; null != (c = a[g]); g++) | |
if ((b || Ga(c)) && (e = c[h], f = e && i[e])) { | |
if (f.events) | |
for (d in f.events) k[d] ? na.event.remove(c, d) : na.removeEvent(c, d, f.handle); | |
i[e] && (delete i[e], j || "undefined" == typeof c.removeAttribute ? c[h] = void 0 : c.removeAttribute(h), ca.push(e)) | |
} | |
} | |
}), na.fn.extend({ | |
domManip: B, | |
detach: function(a) { | |
return C(this, a, !0) | |
}, | |
remove: function(a) { | |
return C(this, a) | |
}, | |
text: function(a) { | |
return Na(this, function(a) { | |
return void 0 === a ? na.text(this) : this.empty().append((this[0] && this[0].ownerDocument || da).createTextNode(a)) | |
}, null, a, arguments.length) | |
}, | |
append: function() { | |
return B(this, arguments, function(a) { | |
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { | |
var b = w(this, a); | |
b.appendChild(a) | |
} | |
}) | |
}, | |
prepend: function() { | |
return B(this, arguments, function(a) { | |
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { | |
var b = w(this, a); | |
b.insertBefore(a, b.firstChild) | |
} | |
}) | |
}, | |
before: function() { | |
return B(this, arguments, function(a) { | |
this.parentNode && this.parentNode.insertBefore(a, this) | |
}) | |
}, | |
after: function() { | |
return B(this, arguments, function(a) { | |
this.parentNode && this.parentNode.insertBefore(a, this.nextSibling) | |
}) | |
}, | |
empty: function() { | |
for (var a, b = 0; null != (a = this[b]); b++) { | |
for (1 === a.nodeType && na.cleanData(o(a, !1)); a.firstChild;) a.removeChild(a.firstChild); | |
a.options && na.nodeName(a, "select") && (a.options.length = 0) | |
} | |
return this | |
}, | |
clone: function(a, b) { | |
return a = null != a && a, b = null == b ? a : b, this.map(function() { | |
return na.clone(this, a, b) | |
}) | |
}, | |
html: function(a) { | |
return Na(this, function(a) { | |
var b = this[0] || {}, | |
c = 0, | |
d = this.length; | |
if (void 0 === a) return 1 === b.nodeType ? b.innerHTML.replace(_a, "") : void 0; | |
if ("string" == typeof a && !cb.test(a) && (la.htmlSerialize || !ab.test(a)) && (la.leadingWhitespace || !Ra.test(a)) && !Ta[(Pa.exec(a) || ["", ""])[1].toLowerCase()]) { | |
a = na.htmlPrefilter(a); | |
try { | |
for (; d > c; c++) b = this[c] || {}, 1 === b.nodeType && (na.cleanData(o(b, !1)), b.innerHTML = a); | |
b = 0 | |
} catch (a) {} | |
} | |
b && this.empty().append(a) | |
}, null, a, arguments.length) | |
}, | |
replaceWith: function() { | |
var a = []; | |
return B(this, arguments, function(b) { | |
var c = this.parentNode; | |
na.inArray(this, a) < 0 && (na.cleanData(o(this)), c && c.replaceChild(b, this)) | |
}, a) | |
} | |
}), na.each({ | |
appendTo: "append", | |
prependTo: "prepend", | |
insertBefore: "before", | |
insertAfter: "after", | |
replaceAll: "replaceWith" | |
}, function(a, b) { | |
na.fn[a] = function(a) { | |
for (var c, d = 0, e = [], f = na(a), g = f.length - 1; g >= d; d++) c = d === g ? this : this.clone(!0), na(f[d])[b](c), ga.apply(e, c.get()); | |
return this.pushStack(e) | |
} | |
}); | |
var ib, jb = { | |
HTML: "block", | |
BODY: "block" | |
}, | |
kb = /^margin/, | |
lb = new RegExp("^(" + Ja + ")(?!px)[a-z%]+$", "i"), | |
mb = function(a, b, c, d) { | |
var e, f, g = {}; | |
for (f in b) g[f] = a.style[f], a.style[f] = b[f]; | |
e = c.apply(a, d || []); | |
for (f in b) a.style[f] = g[f]; | |
return e | |
}, | |
nb = da.documentElement; | |
! function() { | |
function b() { | |
var b, k, l = da.documentElement; | |
l.appendChild(i), j.style.cssText = "-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%", c = e = h = !1, d = g = !0, a.getComputedStyle && (k = a.getComputedStyle(j), c = "1%" !== (k || {}).top, h = "2px" === (k || {}).marginLeft, e = "4px" === (k || { | |
width: "4px" | |
}).width, j.style.marginRight = "50%", d = "4px" === (k || { | |
marginRight: "4px" | |
}).marginRight, b = j.appendChild(da.createElement("div")), b.style.cssText = j.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0", b.style.marginRight = b.style.width = "0", j.style.width = "1px", g = !parseFloat((a.getComputedStyle(b) || {}).marginRight), j.removeChild(b)), j.style.display = "none", f = 0 === j.getClientRects().length, f && (j.style.display = "", j.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", j.childNodes[0].style.borderCollapse = "separate", b = j.getElementsByTagName("td"), b[0].style.cssText = "margin:0;border:0;padding:0;display:none", f = 0 === b[0].offsetHeight, f && (b[0].style.display = "", b[1].style.display = "none", f = 0 === b[0].offsetHeight)), l.removeChild(i) | |
} | |
var c, d, e, f, g, h, i = da.createElement("div"), | |
j = da.createElement("div"); | |
j.style && (j.style.cssText = "float:left;opacity:.5", la.opacity = "0.5" === j.style.opacity, la.cssFloat = !!j.style.cssFloat, j.style.backgroundClip = "content-box", j.cloneNode(!0).style.backgroundClip = "", la.clearCloneStyle = "content-box" === j.style.backgroundClip, i = da.createElement("div"), i.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute", j.innerHTML = "", i.appendChild(j), la.boxSizing = "" === j.style.boxSizing || "" === j.style.MozBoxSizing || "" === j.style.WebkitBoxSizing, na.extend(la, { | |
reliableHiddenOffsets: function() { | |
return null == c && b(), f | |
}, | |
boxSizingReliable: function() { | |
return null == c && b(), e | |
}, | |
pixelMarginRight: function() { | |
return null == c && b(), d | |
}, | |
pixelPosition: function() { | |
return null == c && b(), c | |
}, | |
reliableMarginRight: function() { | |
return null == c && b(), g | |
}, | |
reliableMarginLeft: function() { | |
return null == c && b(), h | |
} | |
})) | |
}(); | |
var ob, pb, qb = /^(top|right|bottom|left)$/; | |
a.getComputedStyle ? (ob = function(b) { | |
var c = b.ownerDocument.defaultView; | |
return c && c.opener || (c = a), c.getComputedStyle(b) | |
}, pb = function(a, b, c) { | |
var d, e, f, g, h = a.style; | |
return c = c || ob(a), g = c ? c.getPropertyValue(b) || c[b] : void 0, "" !== g && void 0 !== g || na.contains(a.ownerDocument, a) || (g = na.style(a, b)), c && !la.pixelMarginRight() && lb.test(g) && kb.test(b) && (d = h.width, e = h.minWidth, f = h.maxWidth, h.minWidth = h.maxWidth = h.width = g, g = c.width, h.width = d, h.minWidth = e, h.maxWidth = f), void 0 === g ? g : g + "" | |
}) : nb.currentStyle && (ob = function(a) { | |
return a.currentStyle | |
}, pb = function(a, b, c) { | |
var d, e, f, g, h = a.style; | |
return c = c || ob(a), g = c ? c[b] : void 0, null == g && h && h[b] && (g = h[b]), lb.test(g) && !qb.test(b) && (d = h.left, e = a.runtimeStyle, f = e && e.left, f && (e.left = a.currentStyle.left), h.left = "fontSize" === b ? "1em" : g, g = h.pixelLeft + "px", h.left = d, f && (e.left = f)), void 0 === g ? g : g + "" || "auto" | |
}); | |
var rb = /alpha\([^)]*\)/i, | |
sb = /opacity\s*=\s*([^)]*)/i, | |
tb = /^(none|table(?!-c[ea]).+)/, | |
ub = new RegExp("^(" + Ja + ")(.*)$", "i"), | |
vb = { | |
position: "absolute", | |
visibility: "hidden", | |
display: "block" | |
}, | |
wb = { | |
letterSpacing: "0", | |
fontWeight: "400" | |
}, | |
xb = ["Webkit", "O", "Moz", "ms"], | |
yb = da.createElement("div").style; | |
na.extend({ | |
cssHooks: { | |
opacity: { | |
get: function(a, b) { | |
if (b) { | |
var c = pb(a, "opacity"); | |
return "" === c ? "1" : c | |
} | |
} | |
} | |
}, | |
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: la.cssFloat ? "cssFloat" : "styleFloat" | |
}, | |
style: function(a, b, c, d) { | |
if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) { | |
var e, f, g, h = na.camelCase(b), | |
i = a.style; | |
if (b = na.cssProps[h] || (na.cssProps[h] = G(h) || h), g = na.cssHooks[b] || na.cssHooks[h], void 0 === c) return g && "get" in g && void 0 !== (e = g.get(a, !1, d)) ? e : i[b]; | |
if (f = typeof c, "string" === f && (e = Ka.exec(c)) && e[1] && (c = m(a, b, e), f = "number"), null != c && c === c && ("number" === f && (c += e && e[3] || (na.cssNumber[h] ? "" : "px")), la.clearCloneStyle || "" !== c || 0 !== b.indexOf("background") || (i[b] = "inherit"), !(g && "set" in g && void 0 === (c = g.set(a, c, d))))) try { | |
i[b] = c | |
} catch (a) {} | |
} | |
}, | |
css: function(a, b, c, d) { | |
var e, f, g, h = na.camelCase(b); | |
return b = na.cssProps[h] || (na.cssProps[h] = G(h) || h), g = na.cssHooks[b] || na.cssHooks[h], g && "get" in g && (f = g.get(a, !0, c)), void 0 === f && (f = pb(a, b, d)), "normal" === f && b in wb && (f = wb[b]), "" === c || c ? (e = parseFloat(f), c === !0 || isFinite(e) ? e || 0 : f) : f | |
} | |
}), na.each(["height", "width"], function(a, b) { | |
na.cssHooks[b] = { | |
get: function(a, c, d) { | |
return c ? tb.test(na.css(a, "display")) && 0 === a.offsetWidth ? mb(a, vb, function() { | |
return K(a, b, d) | |
}) : K(a, b, d) : void 0 | |
}, | |
set: function(a, c, d) { | |
var e = d && ob(a); | |
return I(a, c, d ? J(a, b, d, la.boxSizing && "border-box" === na.css(a, "boxSizing", !1, e), e) : 0) | |
} | |
} | |
}), la.opacity || (na.cssHooks.opacity = { | |
get: function(a, b) { | |
return sb.test((b && a.currentStyle ? a.currentStyle.filter : a.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : b ? "1" : "" | |
}, | |
set: function(a, b) { | |
var c = a.style, | |
d = a.currentStyle, | |
e = na.isNumeric(b) ? "alpha(opacity=" + 100 * b + ")" : "", | |
f = d && d.filter || c.filter || ""; | |
c.zoom = 1, (b >= 1 || "" === b) && "" === na.trim(f.replace(rb, "")) && c.removeAttribute && (c.removeAttribute("filter"), "" === b || d && !d.filter) || (c.filter = rb.test(f) ? f.replace(rb, e) : f + " " + e) | |
} | |
}), na.cssHooks.marginRight = F(la.reliableMarginRight, function(a, b) { | |
return b ? mb(a, { | |
display: "inline-block" | |
}, pb, [a, "marginRight"]) : void 0 | |
}), na.cssHooks.marginLeft = F(la.reliableMarginLeft, function(a, b) { | |
return b ? (parseFloat(pb(a, "marginLeft")) || (na.contains(a.ownerDocument, a) ? a.getBoundingClientRect().left - mb(a, { | |
marginLeft: 0 | |
}, function() { | |
return a.getBoundingClientRect().left | |
}) : 0)) + "px" : void 0 | |
}), na.each({ | |
margin: "", | |
padding: "", | |
border: "Width" | |
}, function(a, b) { | |
na.cssHooks[a + b] = { | |
expand: function(c) { | |
for (var d = 0, e = {}, f = "string" == typeof c ? c.split(" ") : [c]; 4 > d; d++) e[a + La[d] + b] = f[d] || f[d - 2] || f[0]; | |
return e | |
} | |
}, kb.test(a) || (na.cssHooks[a + b].set = I) | |
}), na.fn.extend({ | |
css: function(a, b) { | |
return Na(this, function(a, b, c) { | |
var d, e, f = {}, | |
g = 0; | |
if (na.isArray(b)) { | |
for (d = ob(a), e = b.length; e > g; g++) f[b[g]] = na.css(a, b[g], !1, d); | |
return f | |
} | |
return void 0 !== c ? na.style(a, b, c) : na.css(a, b) | |
}, a, b, arguments.length > 1) | |
}, | |
show: function() { | |
return H(this, !0) | |
}, | |
hide: function() { | |
return H(this) | |
}, | |
toggle: function(a) { | |
return "boolean" == typeof a ? a ? this.show() : this.hide() : this.each(function() { | |
Ma(this) ? na(this).show() : na(this).hide() | |
}) | |
} | |
}), na.Tween = L, L.prototype = { | |
constructor: L, | |
init: function(a, b, c, d, e, f) { | |
this.elem = a, this.prop = c, this.easing = e || na.easing._default, this.options = b, this.start = this.now = this.cur(), this.end = d, this.unit = f || (na.cssNumber[c] ? "" : "px") | |
}, | |
cur: function() { | |
var a = L.propHooks[this.prop]; | |
return a && a.get ? a.get(this) : L.propHooks._default.get(this) | |
}, | |
run: function(a) { | |
var b, c = L.propHooks[this.prop]; | |
return this.options.duration ? this.pos = b = na.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration) : this.pos = b = a, this.now = (this.end - this.start) * b + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), c && c.set ? c.set(this) : L.propHooks._default.set(this), this | |
} | |
}, L.prototype.init.prototype = L.prototype, L.propHooks = { | |
_default: { | |
get: function(a) { | |
var b; | |
return 1 !== a.elem.nodeType || null != a.elem[a.prop] && null == a.elem.style[a.prop] ? a.elem[a.prop] : (b = na.css(a.elem, a.prop, ""), b && "auto" !== b ? b : 0) | |
}, | |
set: function(a) { | |
na.fx.step[a.prop] ? na.fx.step[a.prop](a) : 1 !== a.elem.nodeType || null == a.elem.style[na.cssProps[a.prop]] && !na.cssHooks[a.prop] ? a.elem[a.prop] = a.now : na.style(a.elem, a.prop, a.now + a.unit) | |
} | |
} | |
}, L.propHooks.scrollTop = L.propHooks.scrollLeft = { | |
set: function(a) { | |
a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now) | |
} | |
}, na.easing = { | |
linear: function(a) { | |
return a | |
}, | |
swing: function(a) { | |
return .5 - Math.cos(a * Math.PI) / 2 | |
}, | |
_default: "swing" | |
}, na.fx = L.prototype.init, na.fx.step = {}; | |
var zb, Ab, Bb = /^(?:toggle|show|hide)$/, | |
Cb = /queueHooks$/; | |
na.Animation = na.extend(R, { | |
tweeners: { | |
"*": [function(a, b) { | |
var c = this.createTween(a, b); | |
return m(c.elem, a, Ka.exec(b), c), c | |
}] | |
}, | |
tweener: function(a, b) { | |
na.isFunction(a) ? (b = a, a = ["*"]) : a = a.match(Da); | |
for (var c, d = 0, e = a.length; e > d; d++) c = a[d], R.tweeners[c] = R.tweeners[c] || [], R.tweeners[c].unshift(b) | |
}, | |
prefilters: [P], | |
prefilter: function(a, b) { | |
b ? R.prefilters.unshift(a) : R.prefilters.push(a) | |
} | |
}), na.speed = function(a, b, c) { | |
var d = a && "object" == typeof a ? na.extend({}, a) : { | |
complete: c || !c && b || na.isFunction(a) && a, | |
duration: a, | |
easing: c && b || b && !na.isFunction(b) && b | |
}; | |
return d.duration = na.fx.off ? 0 : "number" == typeof d.duration ? d.duration : d.duration in na.fx.speeds ? na.fx.speeds[d.duration] : na.fx.speeds._default, null != d.queue && d.queue !== !0 || (d.queue = "fx"), d.old = d.complete, d.complete = function() { | |
na.isFunction(d.old) && d.old.call(this), d.queue && na.dequeue(this, d.queue) | |
}, d | |
}, na.fn.extend({ | |
fadeTo: function(a, b, c, d) { | |
return this.filter(Ma).css("opacity", 0).show().end().animate({ | |
opacity: b | |
}, a, c, d) | |
}, | |
animate: function(a, b, c, d) { | |
var e = na.isEmptyObject(a), | |
f = na.speed(b, c, d), | |
g = function() { | |
var b = R(this, na.extend({}, a), f); | |
(e || na._data(this, "finish")) && b.stop(!0) | |
}; | |
return g.finish = g, e || f.queue === !1 ? this.each(g) : this.queue(f.queue, g) | |
}, | |
stop: function(a, b, c) { | |
var d = function(a) { | |
var b = a.stop; | |
delete a.stop, b(c) | |
}; | |
return "string" != typeof a && (c = b, b = a, a = void 0), b && a !== !1 && this.queue(a || "fx", []), this.each(function() { | |
var b = !0, | |
e = null != a && a + "queueHooks", | |
f = na.timers, | |
g = na._data(this); | |
if (e) g[e] && g[e].stop && d(g[e]); | |
else | |
for (e in g) g[e] && g[e].stop && Cb.test(e) && d(g[e]); | |
for (e = f.length; e--;) f[e].elem !== this || null != a && f[e].queue !== a || (f[e].anim.stop(c), b = !1, f.splice(e, 1)); | |
!b && c || na.dequeue(this, a) | |
}) | |
}, | |
finish: function(a) { | |
return a !== !1 && (a = a || "fx"), this.each(function() { | |
var b, c = na._data(this), | |
d = c[a + "queue"], | |
e = c[a + "queueHooks"], | |
f = na.timers, | |
g = d ? d.length : 0; | |
for (c.finish = !0, na.queue(this, a, []), e && e.stop && e.stop.call(this, !0), b = f.length; b--;) f[b].elem === this && f[b].queue === a && (f[b].anim.stop(!0), f.splice(b, 1)); | |
for (b = 0; g > b; b++) d[b] && d[b].finish && d[b].finish.call(this); | |
delete c.finish | |
}) | |
} | |
}), na.each(["toggle", "show", "hide"], function(a, b) { | |
var c = na.fn[b]; | |
na.fn[b] = function(a, d, e) { | |
return null == a || "boolean" == typeof a ? c.apply(this, arguments) : this.animate(N(b, !0), a, d, e) | |
} | |
}), na.each({ | |
slideDown: N("show"), | |
slideUp: N("hide"), | |
slideToggle: N("toggle"), | |
fadeIn: { | |
opacity: "show" | |
}, | |
fadeOut: { | |
opacity: "hide" | |
}, | |
fadeToggle: { | |
opacity: "toggle" | |
} | |
}, function(a, b) { | |
na.fn[a] = function(a, c, d) { | |
return this.animate(b, a, c, d) | |
} | |
}), na.timers = [], na.fx.tick = function() { | |
var a, b = na.timers, | |
c = 0; | |
for (zb = na.now(); c < b.length; c++) a = b[c], a() || b[c] !== a || b.splice(c--, 1); | |
b.length || na.fx.stop(), zb = void 0 | |
}, na.fx.timer = function(a) { | |
na.timers.push(a), a() ? na.fx.start() : na.timers.pop() | |
}, na.fx.interval = 13, na.fx.start = function() { | |
Ab || (Ab = a.setInterval(na.fx.tick, na.fx.interval)) | |
}, na.fx.stop = function() { | |
a.clearInterval(Ab), Ab = null | |
}, na.fx.speeds = { | |
slow: 600, | |
fast: 200, | |
_default: 400 | |
}, na.fn.delay = function(b, c) { | |
return b = na.fx ? na.fx.speeds[b] || b : b, c = c || "fx", this.queue(c, function(c, d) { | |
var e = a.setTimeout(c, b); | |
d.stop = function() { | |
a.clearTimeout(e) | |
} | |
}) | |
}, | |
function() { | |
var a, b = da.createElement("input"), | |
c = da.createElement("div"), | |
d = da.createElement("select"), | |
e = d.appendChild(da.createElement("option")); | |
c = da.createElement("div"), c.setAttribute("className", "t"), c.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", a = c.getElementsByTagName("a")[0], b.setAttribute("type", "checkbox"), c.appendChild(b), a = c.getElementsByTagName("a")[0], a.style.cssText = "top:1px", la.getSetAttribute = "t" !== c.className, la.style = /top/.test(a.getAttribute("style")), la.hrefNormalized = "/a" === a.getAttribute("href"), la.checkOn = !!b.value, la.optSelected = e.selected, la.enctype = !!da.createElement("form").enctype, d.disabled = !0, la.optDisabled = !e.disabled, b = da.createElement("input"), b.setAttribute("value", ""), la.input = "" === b.getAttribute("value"), b.value = "t", b.setAttribute("type", "radio"), la.radioValue = "t" === b.value | |
}(); | |
var Db = /\r/g, | |
Eb = /[\x20\t\r\n\f]+/g; | |
na.fn.extend({ | |
val: function(a) { | |
var b, c, d, e = this[0]; | |
return arguments.length ? (d = na.isFunction(a), this.each(function(c) { | |
var e; | |
1 === this.nodeType && (e = d ? a.call(this, c, na(this).val()) : a, null == e ? e = "" : "number" == typeof e ? e += "" : na.isArray(e) && (e = na.map(e, function(a) { | |
return null == a ? "" : a + "" | |
})), b = na.valHooks[this.type] || na.valHooks[this.nodeName.toLowerCase()], b && "set" in b && void 0 !== b.set(this, e, "value") || (this.value = e)) | |
})) : e ? (b = na.valHooks[e.type] || na.valHooks[e.nodeName.toLowerCase()], b && "get" in b && void 0 !== (c = b.get(e, "value")) ? c : (c = e.value, "string" == typeof c ? c.replace(Db, "") : null == c ? "" : c)) : void 0 | |
} | |
}), na.extend({ | |
valHooks: { | |
option: { | |
get: function(a) { | |
var b = na.find.attr(a, "value"); | |
return null != b ? b : na.trim(na.text(a)).replace(Eb, " ") | |
} | |
}, | |
select: { | |
get: function(a) { | |
for (var b, c, d = a.options, e = a.selectedIndex, f = "select-one" === a.type || 0 > e, g = f ? null : [], h = f ? e + 1 : d.length, i = 0 > e ? h : f ? e : 0; h > i; i++) | |
if (c = d[i], (c.selected || i === e) && (la.optDisabled ? !c.disabled : null === c.getAttribute("disabled")) && (!c.parentNode.disabled || !na.nodeName(c.parentNode, "optgroup"))) { | |
if (b = na(c).val(), f) return b; | |
g.push(b) | |
} | |
return g | |
}, | |
set: function(a, b) { | |
for (var c, d, e = a.options, f = na.makeArray(b), g = e.length; g--;) | |
if (d = e[g], na.inArray(na.valHooks.option.get(d), f) > -1) try { | |
d.selected = c = !0 | |
} catch (a) { | |
d.scrollHeight | |
} else d.selected = !1; | |
return c || (a.selectedIndex = -1), e | |
} | |
} | |
} | |
}), na.each(["radio", "checkbox"], function() { | |
na.valHooks[this] = { | |
set: function(a, b) { | |
return na.isArray(b) ? a.checked = na.inArray(na(a).val(), b) > -1 : void 0 | |
} | |
}, la.checkOn || (na.valHooks[this].get = function(a) { | |
return null === a.getAttribute("value") ? "on" : a.value | |
}) | |
}); | |
var Fb, Gb, Hb = na.expr.attrHandle, | |
Ib = /^(?:checked|selected)$/i, | |
Jb = la.getSetAttribute, | |
Kb = la.input; | |
na.fn.extend({ | |
attr: function(a, b) { | |
return Na(this, na.attr, a, b, arguments.length > 1) | |
}, | |
removeAttr: function(a) { | |
return this.each(function() { | |
na.removeAttr(this, a) | |
}) | |
} | |
}), na.extend({ | |
attr: function(a, b, c) { | |
var d, e, f = a.nodeType; | |
if (3 !== f && 8 !== f && 2 !== f) return "undefined" == typeof a.getAttribute ? na.prop(a, b, c) : (1 === f && na.isXMLDoc(a) || (b = b.toLowerCase(), e = na.attrHooks[b] || (na.expr.match.bool.test(b) ? Gb : Fb)), void 0 !== c ? null === c ? void na.removeAttr(a, b) : e && "set" in e && void 0 !== (d = e.set(a, c, b)) ? d : (a.setAttribute(b, c + ""), c) : e && "get" in e && null !== (d = e.get(a, b)) ? d : (d = na.find.attr(a, b), null == d ? void 0 : d)) | |
}, | |
attrHooks: { | |
type: { | |
set: function(a, b) { | |
if (!la.radioValue && "radio" === b && na.nodeName(a, "input")) { | |
var c = a.value; | |
return a.setAttribute("type", b), c && (a.value = c), b | |
} | |
} | |
} | |
}, | |
removeAttr: function(a, b) { | |
var c, d, e = 0, | |
f = b && b.match(Da); | |
if (f && 1 === a.nodeType) | |
for (; c = f[e++];) d = na.propFix[c] || c, na.expr.match.bool.test(c) ? Kb && Jb || !Ib.test(c) ? a[d] = !1 : a[na.camelCase("default-" + c)] = a[d] = !1 : na.attr(a, c, ""), a.removeAttribute(Jb ? c : d) | |
} | |
}), Gb = { | |
set: function(a, b, c) { | |
return b === !1 ? na.removeAttr(a, c) : Kb && Jb || !Ib.test(c) ? a.setAttribute(!Jb && na.propFix[c] || c, c) : a[na.camelCase("default-" + c)] = a[c] = !0, c | |
} | |
}, na.each(na.expr.match.bool.source.match(/\w+/g), function(a, b) { | |
var c = Hb[b] || na.find.attr; | |
Kb && Jb || !Ib.test(b) ? Hb[b] = function(a, b, d) { | |
var e, f; | |
return d || (f = Hb[b], Hb[b] = e, e = null != c(a, b, d) ? b.toLowerCase() : null, Hb[b] = f), e | |
} : Hb[b] = function(a, b, c) { | |
return c ? void 0 : a[na.camelCase("default-" + b)] ? b.toLowerCase() : null | |
} | |
}), Kb && Jb || (na.attrHooks.value = { | |
set: function(a, b, c) { | |
return na.nodeName(a, "input") ? void(a.defaultValue = b) : Fb && Fb.set(a, b, c) | |
} | |
}), Jb || (Fb = { | |
set: function(a, b, c) { | |
var d = a.getAttributeNode(c); | |
return d || a.setAttributeNode(d = a.ownerDocument.createAttribute(c)), d.value = b += "", "value" === c || b === a.getAttribute(c) ? b : void 0 | |
} | |
}, Hb.id = Hb.name = Hb.coords = function(a, b, c) { | |
var d; | |
return c ? void 0 : (d = a.getAttributeNode(b)) && "" !== d.value ? d.value : null | |
}, na.valHooks.button = { | |
get: function(a, b) { | |
var c = a.getAttributeNode(b); | |
return c && c.specified ? c.value : void 0 | |
}, | |
set: Fb.set | |
}, na.attrHooks.contenteditable = { | |
set: function(a, b, c) { | |
Fb.set(a, "" !== b && b, c) | |
} | |
}, na.each(["width", "height"], function(a, b) { | |
na.attrHooks[b] = { | |
set: function(a, c) { | |
return "" === c ? (a.setAttribute(b, "auto"), c) : void 0 | |
} | |
} | |
})), la.style || (na.attrHooks.style = { | |
get: function(a) { | |
return a.style.cssText || void 0 | |
}, | |
set: function(a, b) { | |
return a.style.cssText = b + "" | |
} | |
}); | |
var Lb = /^(?:input|select|textarea|button|object)$/i, | |
Mb = /^(?:a|area)$/i; | |
na.fn.extend({ | |
prop: function(a, b) { | |
return Na(this, na.prop, a, b, arguments.length > 1) | |
}, | |
removeProp: function(a) { | |
return a = na.propFix[a] || a, this.each(function() { | |
try { | |
this[a] = void 0, delete this[a] | |
} catch (a) {} | |
}) | |
} | |
}), na.extend({ | |
prop: function(a, b, c) { | |
var d, e, f = a.nodeType; | |
if (3 !== f && 8 !== f && 2 !== f) return 1 === f && na.isXMLDoc(a) || (b = na.propFix[b] || b, e = na.propHooks[b]), void 0 !== c ? e && "set" in e && void 0 !== (d = e.set(a, c, b)) ? d : a[b] = c : e && "get" in e && null !== (d = e.get(a, b)) ? d : a[b] | |
}, | |
propHooks: { | |
tabIndex: { | |
get: function(a) { | |
var b = na.find.attr(a, "tabindex"); | |
return b ? parseInt(b, 10) : Lb.test(a.nodeName) || Mb.test(a.nodeName) && a.href ? 0 : -1 | |
} | |
} | |
}, | |
propFix: { | |
for: "htmlFor", | |
class: "className" | |
} | |
}), la.hrefNormalized || na.each(["href", "src"], function(a, b) { | |
na.propHooks[b] = { | |
get: function(a) { | |
return a.getAttribute(b, 4) | |
} | |
} | |
}), la.optSelected || (na.propHooks.selected = { | |
get: function(a) { | |
var b = a.parentNode; | |
return b && (b.selectedIndex, b.parentNode && b.parentNode.selectedIndex), null | |
}, | |
set: function(a) { | |
var b = a.parentNode; | |
b && (b.selectedIndex, b.parentNode && b.parentNode.selectedIndex) | |
} | |
}), na.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() { | |
na.propFix[this.toLowerCase()] = this | |
}), la.enctype || (na.propFix.enctype = "encoding"); | |
var Nb = /[\t\r\n\f]/g; | |
na.fn.extend({ | |
addClass: function(a) { | |
var b, c, d, e, f, g, h, i = 0; | |
if (na.isFunction(a)) return this.each(function(b) { | |
na(this).addClass(a.call(this, b, S(this))) | |
}); | |
if ("string" == typeof a && a) | |
for (b = a.match(Da) || []; c = this[i++];) | |
if (e = S(c), d = 1 === c.nodeType && (" " + e + " ").replace(Nb, " ")) { | |
for (g = 0; f = b[g++];) d.indexOf(" " + f + " ") < 0 && (d += f + " "); | |
h = na.trim(d), e !== h && na.attr(c, "class", h) | |
} | |
return this | |
}, | |
removeClass: function(a) { | |
var b, c, d, e, f, g, h, i = 0; | |
if (na.isFunction(a)) return this.each(function(b) { | |
na(this).removeClass(a.call(this, b, S(this))) | |
}); | |
if (!arguments.length) return this.attr("class", ""); | |
if ("string" == typeof a && a) | |
for (b = a.match(Da) || []; c = this[i++];) | |
if (e = S(c), d = 1 === c.nodeType && (" " + e + " ").replace(Nb, " ")) { | |
for (g = 0; f = b[g++];) | |
for (; d.indexOf(" " + f + " ") > -1;) d = d.replace(" " + f + " ", " "); | |
h = na.trim(d), e !== h && na.attr(c, "class", h) | |
} | |
return this | |
}, | |
toggleClass: function(a, b) { | |
var c = typeof a; | |
return "boolean" == typeof b && "string" === c ? b ? this.addClass(a) : this.removeClass(a) : na.isFunction(a) ? this.each(function(c) { | |
na(this).toggleClass(a.call(this, c, S(this), b), b) | |
}) : this.each(function() { | |
var b, d, e, f; | |
if ("string" === c) | |
for (d = 0, e = na(this), f = a.match(Da) || []; b = f[d++];) e.hasClass(b) ? e.removeClass(b) : e.addClass(b); | |
else void 0 !== a && "boolean" !== c || (b = S(this), b && na._data(this, "__className__", b), na.attr(this, "class", b || a === !1 ? "" : na._data(this, "__className__") || "")) | |
}) | |
}, | |
hasClass: function(a) { | |
var b, c, d = 0; | |
for (b = " " + a + " "; c = this[d++];) | |
if (1 === c.nodeType && (" " + S(c) + " ").replace(Nb, " ").indexOf(b) > -1) return !0; | |
return !1 | |
} | |
}), na.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(a, b) { | |
na.fn[b] = function(a, c) { | |
return arguments.length > 0 ? this.on(b, null, a, c) : this.trigger(b) | |
} | |
}), na.fn.extend({ | |
hover: function(a, b) { | |
return this.mouseenter(a).mouseleave(b || a) | |
} | |
}); | |
var Ob = a.location, | |
Pb = na.now(), | |
Qb = /\?/, | |
Rb = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g; | |
na.parseJSON = function(b) { | |
if (a.JSON && a.JSON.parse) return a.JSON.parse(b + ""); | |
var c, d = null, | |
e = na.trim(b + ""); | |
return e && !na.trim(e.replace(Rb, function(a, b, e, f) { | |
return c && b && (d = 0), 0 === d ? a : (c = e || b, d += !f - !e, "") | |
})) ? Function("return " + e)() : na.error("Invalid JSON: " + b) | |
}, na.parseXML = function(b) { | |
var c, d; | |
if (!b || "string" != typeof b) return null; | |
try { | |
a.DOMParser ? (d = new a.DOMParser, c = d.parseFromString(b, "text/xml")) : (c = new a.ActiveXObject("Microsoft.XMLDOM"), c.async = "false", c.loadXML(b)) | |
} catch (a) { | |
c = void 0 | |
} | |
return c && c.documentElement && !c.getElementsByTagName("parsererror").length || na.error("Invalid XML: " + b), c | |
}; | |
var Sb = /#.*$/, | |
Tb = /([?&])_=[^&]*/, | |
Ub = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm, | |
Vb = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, | |
Wb = /^(?:GET|HEAD)$/, | |
Xb = /^\/\//, | |
Yb = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/, | |
Zb = {}, | |
$b = {}, | |
_b = "*/".concat("*"), | |
ac = Ob.href, | |
bc = Yb.exec(ac.toLowerCase()) || []; | |
na.extend({ | |
active: 0, | |
lastModified: {}, | |
etag: {}, | |
ajaxSettings: { | |
url: ac, | |
type: "GET", | |
isLocal: Vb.test(bc[1]), | |
global: !0, | |
processData: !0, | |
async: !0, | |
contentType: "application/x-www-form-urlencoded; charset=UTF-8", | |
accepts: { | |
"*": _b, | |
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": na.parseJSON, | |
"text xml": na.parseXML | |
}, | |
flatOptions: { | |
url: !0, | |
context: !0 | |
} | |
}, | |
ajaxSetup: function(a, b) { | |
return b ? V(V(a, na.ajaxSettings), b) : V(na.ajaxSettings, a) | |
}, | |
ajaxPrefilter: T(Zb), | |
ajaxTransport: T($b), | |
ajax: function(b, c) { | |
function d(b, c, d, e) { | |
var f, l, s, t, v, x = c; | |
2 !== u && (u = 2, i && a.clearTimeout(i), k = void 0, h = e || "", w.readyState = b > 0 ? 4 : 0, f = b >= 200 && 300 > b || 304 === b, d && (t = W(m, w, d)), t = X(m, t, w, f), f ? (m.ifModified && (v = w.getResponseHeader("Last-Modified"), v && (na.lastModified[g] = v), v = w.getResponseHeader("etag"), v && (na.etag[g] = v)), 204 === b || "HEAD" === m.type ? x = "nocontent" : 304 === b ? x = "notmodified" : (x = t.state, l = t.data, s = t.error, f = !s)) : (s = x, !b && x || (x = "error", 0 > b && (b = 0))), w.status = b, w.statusText = (c || x) + "", f ? p.resolveWith(n, [l, x, w]) : p.rejectWith(n, [w, x, s]), w.statusCode(r), r = void 0, j && o.trigger(f ? "ajaxSuccess" : "ajaxError", [w, m, f ? l : s]), q.fireWith(n, [w, x]), j && (o.trigger("ajaxComplete", [w, m]), --na.active || na.event.trigger("ajaxStop"))) | |
} | |
"object" == typeof b && (c = b, b = void 0), c = c || {}; | |
var e, f, g, h, i, j, k, l, m = na.ajaxSetup({}, c), | |
n = m.context || m, | |
o = m.context && (n.nodeType || n.jquery) ? na(n) : na.event, | |
p = na.Deferred(), | |
q = na.Callbacks("once memory"), | |
r = m.statusCode || {}, | |
s = {}, | |
t = {}, | |
u = 0, | |
v = "canceled", | |
w = { | |
readyState: 0, | |
getResponseHeader: function(a) { | |
var b; | |
if (2 === u) { | |
if (!l) | |
for (l = {}; b = Ub.exec(h);) l[b[1].toLowerCase()] = b[2]; | |
b = l[a.toLowerCase()] | |
} | |
return null == b ? null : b | |
}, | |
getAllResponseHeaders: function() { | |
return 2 === u ? h : null | |
}, | |
setRequestHeader: function(a, b) { | |
var c = a.toLowerCase(); | |
return u || (a = t[c] = t[c] || a, s[a] = b), this | |
}, | |
overrideMimeType: function(a) { | |
return u || (m.mimeType = a), this | |
}, | |
statusCode: function(a) { | |
var b; | |
if (a) | |
if (2 > u) | |
for (b in a) r[b] = [r[b], a[b]]; | |
else w.always(a[w.status]); | |
return this | |
}, | |
abort: function(a) { | |
var b = a || v; | |
return k && k.abort(b), d(0, b), this | |
} | |
}; | |
if (p.promise(w).complete = q.add, w.success = w.done, w.error = w.fail, m.url = ((b || m.url || ac) + "").replace(Sb, "").replace(Xb, bc[1] + "//"), m.type = c.method || c.type || m.method || m.type, m.dataTypes = na.trim(m.dataType || "*").toLowerCase().match(Da) || [""], null == m.crossDomain && (e = Yb.exec(m.url.toLowerCase()), m.crossDomain = !(!e || e[1] === bc[1] && e[2] === bc[2] && (e[3] || ("http:" === e[1] ? "80" : "443")) === (bc[3] || ("http:" === bc[1] ? "80" : "443")))), m.data && m.processData && "string" != typeof m.data && (m.data = na.param(m.data, m.traditional)), U(Zb, m, c, w), 2 === u) return w; | |
j = na.event && m.global, j && 0 === na.active++ && na.event.trigger("ajaxStart"), m.type = m.type.toUpperCase(), m.hasContent = !Wb.test(m.type), g = m.url, m.hasContent || (m.data && (g = m.url += (Qb.test(g) ? "&" : "?") + m.data, delete m.data), m.cache === !1 && (m.url = Tb.test(g) ? g.replace(Tb, "$1_=" + Pb++) : g + (Qb.test(g) ? "&" : "?") + "_=" + Pb++)), m.ifModified && (na.lastModified[g] && w.setRequestHeader("If-Modified-Since", na.lastModified[g]), na.etag[g] && w.setRequestHeader("If-None-Match", na.etag[g])), (m.data && m.hasContent && m.contentType !== !1 || c.contentType) && w.setRequestHeader("Content-Type", m.contentType), w.setRequestHeader("Accept", m.dataTypes[0] && m.accepts[m.dataTypes[0]] ? m.accepts[m.dataTypes[0]] + ("*" !== m.dataTypes[0] ? ", " + _b + "; q=0.01" : "") : m.accepts["*"]); | |
for (f in m.headers) w.setRequestHeader(f, m.headers[f]); | |
if (m.beforeSend && (m.beforeSend.call(n, w, m) === !1 || 2 === u)) return w.abort(); | |
v = "abort"; | |
for (f in { | |
success: 1, | |
error: 1, | |
complete: 1 | |
}) w[f](m[f]); | |
if (k = U($b, m, c, w)) { | |
if (w.readyState = 1, j && o.trigger("ajaxSend", [w, m]), 2 === u) return w; | |
m.async && m.timeout > 0 && (i = a.setTimeout(function() { | |
w.abort("timeout") | |
}, m.timeout)); | |
try { | |
u = 1, k.send(s, d) | |
} catch (a) { | |
if (!(2 > u)) throw a; | |
d(-1, a) | |
} | |
} else d(-1, "No Transport"); | |
return w | |
}, | |
getJSON: function(a, b, c) { | |
return na.get(a, b, c, "json") | |
}, | |
getScript: function(a, b) { | |
return na.get(a, void 0, b, "script") | |
} | |
}), na.each(["get", "post"], function(a, b) { | |
na[b] = function(a, c, d, e) { | |
return na.isFunction(c) && (e = e || d, d = c, c = void 0), na.ajax(na.extend({ | |
url: a, | |
type: b, | |
dataType: e, | |
data: c, | |
success: d | |
}, na.isPlainObject(a) && a)) | |
} | |
}), na._evalUrl = function(a) { | |
return na.ajax({ | |
url: a, | |
type: "GET", | |
dataType: "script", | |
cache: !0, | |
async: !1, | |
global: !1, | |
throws: !0 | |
}) | |
}, na.fn.extend({ | |
wrapAll: function(a) { | |
if (na.isFunction(a)) return this.each(function(b) { | |
na(this).wrapAll(a.call(this, b)) | |
}); | |
if (this[0]) { | |
var b = na(a, this[0].ownerDocument).eq(0).clone(!0); | |
this[0].parentNode && b.insertBefore(this[0]), b.map(function() { | |
for (var a = this; a.firstChild && 1 === a.firstChild.nodeType;) a = a.firstChild; | |
return a | |
}).append(this) | |
} | |
return this | |
}, | |
wrapInner: function(a) { | |
return na.isFunction(a) ? this.each(function(b) { | |
na(this).wrapInner(a.call(this, b)) | |
}) : this.each(function() { | |
var b = na(this), | |
c = b.contents(); | |
c.length ? c.wrapAll(a) : b.append(a) | |
}) | |
}, | |
wrap: function(a) { | |
var b = na.isFunction(a); | |
return this.each(function(c) { | |
na(this).wrapAll(b ? a.call(this, c) : a) | |
}) | |
}, | |
unwrap: function() { | |
return this.parent().each(function() { | |
na.nodeName(this, "body") || na(this).replaceWith(this.childNodes) | |
}).end() | |
} | |
}), na.expr.filters.hidden = function(a) { | |
return la.reliableHiddenOffsets() ? a.offsetWidth <= 0 && a.offsetHeight <= 0 && !a.getClientRects().length : Z(a) | |
}, na.expr.filters.visible = function(a) { | |
return !na.expr.filters.hidden(a) | |
}; | |
var cc = /%20/g, | |
dc = /\[\]$/, | |
ec = /\r?\n/g, | |
fc = /^(?:submit|button|image|reset|file)$/i, | |
gc = /^(?:input|select|textarea|keygen)/i; | |
na.param = function(a, b) { | |
var c, d = [], | |
e = function(a, b) { | |
b = na.isFunction(b) ? b() : null == b ? "" : b, d[d.length] = encodeURIComponent(a) + "=" + encodeURIComponent(b) | |
}; | |
if (void 0 === b && (b = na.ajaxSettings && na.ajaxSettings.traditional), na.isArray(a) || a.jquery && !na.isPlainObject(a)) na.each(a, function() { | |
e(this.name, this.value) | |
}); | |
else | |
for (c in a) $(c, a[c], b, e); | |
return d.join("&").replace(cc, "+") | |
}, na.fn.extend({ | |
serialize: function() { | |
return na.param(this.serializeArray()) | |
}, | |
serializeArray: function() { | |
return this.map(function() { | |
var a = na.prop(this, "elements"); | |
return a ? na.makeArray(a) : this | |
}).filter(function() { | |
var a = this.type; | |
return this.name && !na(this).is(":disabled") && gc.test(this.nodeName) && !fc.test(a) && (this.checked || !Oa.test(a)) | |
}).map(function(a, b) { | |
var c = na(this).val(); | |
return null == c ? null : na.isArray(c) ? na.map(c, function(a) { | |
return { | |
name: b.name, | |
value: a.replace(ec, "\r\n") | |
} | |
}) : { | |
name: b.name, | |
value: c.replace(ec, "\r\n") | |
} | |
}).get() | |
} | |
}), na.ajaxSettings.xhr = void 0 !== a.ActiveXObject ? function() { | |
return this.isLocal ? aa() : da.documentMode > 8 ? _() : /^(get|post|head|put|delete|options)$/i.test(this.type) && _() || aa() | |
} : _; | |
var hc = 0, | |
ic = {}, | |
jc = na.ajaxSettings.xhr(); | |
a.attachEvent && a.attachEvent("onunload", function() { | |
for (var a in ic) ic[a](void 0, !0) | |
}), la.cors = !!jc && "withCredentials" in jc, jc = la.ajax = !!jc, jc && na.ajaxTransport(function(b) { | |
if (!b.crossDomain || la.cors) { | |
var c; | |
return { | |
send: function(d, e) { | |
var f, g = b.xhr(), | |
h = ++hc; | |
if (g.open(b.type, b.url, b.async, b.username, b.password), b.xhrFields) | |
for (f in b.xhrFields) g[f] = b.xhrFields[f]; | |
b.mimeType && g.overrideMimeType && g.overrideMimeType(b.mimeType), b.crossDomain || d["X-Requested-With"] || (d["X-Requested-With"] = "XMLHttpRequest"); | |
for (f in d) void 0 !== d[f] && g.setRequestHeader(f, d[f] + ""); | |
g.send(b.hasContent && b.data || null), c = function(a, d) { | |
var f, i, j; | |
if (c && (d || 4 === g.readyState)) | |
if (delete ic[h], c = void 0, g.onreadystatechange = na.noop, d) 4 !== g.readyState && g.abort(); | |
else { | |
j = {}, f = g.status, "string" == typeof g.responseText && (j.text = g.responseText); | |
try { | |
i = g.statusText | |
} catch (a) { | |
i = "" | |
} | |
f || !b.isLocal || b.crossDomain ? 1223 === f && (f = 204) : f = j.text ? 200 : 404 | |
} | |
j && e(f, i, j, g.getAllResponseHeaders()) | |
}, b.async ? 4 === g.readyState ? a.setTimeout(c) : g.onreadystatechange = ic[h] = c : c() | |
}, | |
abort: function() { | |
c && c(void 0, !0) | |
} | |
} | |
} | |
}), na.ajaxSetup({ | |
accepts: { | |
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" | |
}, | |
contents: { | |
script: /\b(?:java|ecma)script\b/ | |
}, | |
converters: { | |
"text script": function(a) { | |
return na.globalEval(a), a | |
} | |
} | |
}), na.ajaxPrefilter("script", function(a) { | |
void 0 === a.cache && (a.cache = !1), a.crossDomain && (a.type = "GET", a.global = !1) | |
}), na.ajaxTransport("script", function(a) { | |
if (a.crossDomain) { | |
var b, c = da.head || na("head")[0] || da.documentElement; | |
return { | |
send: function(d, e) { | |
b = da.createElement("script"), b.async = !0, a.scriptCharset && (b.charset = a.scriptCharset), b.src = a.url, b.onload = b.onreadystatechange = function(a, c) { | |
(c || !b.readyState || /loaded|complete/.test(b.readyState)) && (b.onload = b.onreadystatechange = null, b.parentNode && b.parentNode.removeChild(b), b = null, c || e(200, "success")) | |
}, c.insertBefore(b, c.firstChild) | |
}, | |
abort: function() { | |
b && b.onload(void 0, !0) | |
} | |
} | |
} | |
}); | |
var kc = [], | |
lc = /(=)\?(?=&|$)|\?\?/; | |
na.ajaxSetup({ | |
jsonp: "callback", | |
jsonpCallback: function() { | |
var a = kc.pop() || na.expando + "_" + Pb++; | |
return this[a] = !0, a | |
} | |
}), na.ajaxPrefilter("json jsonp", function(b, c, d) { | |
var e, f, g, h = b.jsonp !== !1 && (lc.test(b.url) ? "url" : "string" == typeof b.data && 0 === (b.contentType || "").indexOf("application/x-www-form-urlencoded") && lc.test(b.data) && "data"); | |
return h || "jsonp" === b.dataTypes[0] ? (e = b.jsonpCallback = na.isFunction(b.jsonpCallback) ? b.jsonpCallback() : b.jsonpCallback, h ? b[h] = b[h].replace(lc, "$1" + e) : b.jsonp !== !1 && (b.url += (Qb.test(b.url) ? "&" : "?") + b.jsonp + "=" + e), b.converters["script json"] = function() { | |
return g || na.error(e + " was not called"), g[0] | |
}, b.dataTypes[0] = "json", f = a[e], a[e] = function() { | |
g = arguments | |
}, d.always(function() { | |
void 0 === f ? na(a).removeProp(e) : a[e] = f, b[e] && (b.jsonpCallback = c.jsonpCallback, kc.push(e)), g && na.isFunction(f) && f(g[0]), g = f = void 0 | |
}), "script") : void 0 | |
}), na.parseHTML = function(a, b, c) { | |
if (!a || "string" != typeof a) return null; | |
"boolean" == typeof b && (c = b, b = !1), b = b || da; | |
var d = wa.exec(a), | |
e = !c && []; | |
return d ? [b.createElement(d[1])] : (d = r([a], b, e), e && e.length && na(e).remove(), na.merge([], d.childNodes)) | |
}; | |
var mc = na.fn.load; | |
na.fn.load = function(a, b, c) { | |
if ("string" != typeof a && mc) return mc.apply(this, arguments); | |
var d, e, f, g = this, | |
h = a.indexOf(" "); | |
return h > -1 && (d = na.trim(a.slice(h, a.length)), a = a.slice(0, h)), na.isFunction(b) ? (c = b, b = void 0) : b && "object" == typeof b && (e = "POST"), g.length > 0 && na.ajax({ | |
url: a, | |
type: e || "GET", | |
dataType: "html", | |
data: b | |
}).done(function(a) { | |
f = arguments, g.html(d ? na("<div>").append(na.parseHTML(a)).find(d) : a) | |
}).always(c && function(a, b) { | |
g.each(function() { | |
c.apply(this, f || [a.responseText, b, a]) | |
}) | |
}), this | |
}, na.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(a, b) { | |
na.fn[b] = function(a) { | |
return this.on(b, a) | |
} | |
}), na.expr.filters.animated = function(a) { | |
return na.grep(na.timers, function(b) { | |
return a === b.elem | |
}).length | |
}, na.offset = { | |
setOffset: function(a, b, c) { | |
var d, e, f, g, h, i, j, k = na.css(a, "position"), | |
l = na(a), | |
m = {}; | |
"static" === k && (a.style.position = "relative"), h = l.offset(), f = na.css(a, "top"), i = na.css(a, "left"), j = ("absolute" === k || "fixed" === k) && na.inArray("auto", [f, i]) > -1, j ? (d = l.position(), g = d.top, e = d.left) : (g = parseFloat(f) || 0, e = parseFloat(i) || 0), na.isFunction(b) && (b = b.call(a, c, na.extend({}, h))), null != b.top && (m.top = b.top - h.top + g), null != b.left && (m.left = b.left - h.left + e), "using" in b ? b.using.call(a, m) : l.css(m) | |
} | |
}, na.fn.extend({ | |
offset: function(a) { | |
if (arguments.length) return void 0 === a ? this : this.each(function(b) { | |
na.offset.setOffset(this, a, b) | |
}); | |
var b, c, d = { | |
top: 0, | |
left: 0 | |
}, | |
e = this[0], | |
f = e && e.ownerDocument; | |
return f ? (b = f.documentElement, na.contains(b, e) ? ("undefined" != typeof e.getBoundingClientRect && (d = e.getBoundingClientRect()), c = ba(f), { | |
top: d.top + (c.pageYOffset || b.scrollTop) - (b.clientTop || 0), | |
left: d.left + (c.pageXOffset || b.scrollLeft) - (b.clientLeft || 0) | |
}) : d) : void 0 | |
}, | |
position: function() { | |
if (this[0]) { | |
var a, b, c = { | |
top: 0, | |
left: 0 | |
}, | |
d = this[0]; | |
return "fixed" === na.css(d, "position") ? b = d.getBoundingClientRect() : (a = this.offsetParent(), b = this.offset(), na.nodeName(a[0], "html") || (c = a.offset()), c.top += na.css(a[0], "borderTopWidth", !0), c.left += na.css(a[0], "borderLeftWidth", !0)), { | |
top: b.top - c.top - na.css(d, "marginTop", !0), | |
left: b.left - c.left - na.css(d, "marginLeft", !0) | |
} | |
} | |
}, | |
offsetParent: function() { | |
return this.map(function() { | |
for (var a = this.offsetParent; a && !na.nodeName(a, "html") && "static" === na.css(a, "position");) a = a.offsetParent; | |
return a || nb | |
}) | |
} | |
}), na.each({ | |
scrollLeft: "pageXOffset", | |
scrollTop: "pageYOffset" | |
}, function(a, b) { | |
var c = /Y/.test(b); | |
na.fn[a] = function(d) { | |
return Na(this, function(a, d, e) { | |
var f = ba(a); | |
return void 0 === e ? f ? b in f ? f[b] : f.document.documentElement[d] : a[d] : void(f ? f.scrollTo(c ? na(f).scrollLeft() : e, c ? e : na(f).scrollTop()) : a[d] = e) | |
}, a, d, arguments.length, null) | |
} | |
}), na.each(["top", "left"], function(a, b) { | |
na.cssHooks[b] = F(la.pixelPosition, function(a, c) { | |
return c ? (c = pb(a, b), lb.test(c) ? na(a).position()[b] + "px" : c) : void 0 | |
}) | |
}), na.each({ | |
Height: "height", | |
Width: "width" | |
}, function(a, b) { | |
na.each({ | |
padding: "inner" + a, | |
content: b, | |
"": "outer" + a | |
}, function(c, d) { | |
na.fn[d] = function(d, e) { | |
var f = arguments.length && (c || "boolean" != typeof d), | |
g = c || (d === !0 || e === !0 ? "margin" : "border"); | |
return Na(this, function(b, c, d) { | |
var e; | |
return na.isWindow(b) ? b.document.documentElement["client" + a] : 9 === b.nodeType ? (e = b.documentElement, Math.max(b.body["scroll" + a], e["scroll" + a], b.body["offset" + a], e["offset" + a], e["client" + a])) : void 0 === d ? na.css(b, c, g) : na.style(b, c, d, g) | |
}, b, f ? d : void 0, f, null) | |
} | |
}) | |
}), na.fn.extend({ | |
bind: function(a, b, c) { | |
return this.on(a, null, b, c) | |
}, | |
unbind: function(a, b) { | |
return this.off(a, null, b) | |
}, | |
delegate: function(a, b, c, d) { | |
return this.on(b, a, c, d) | |
}, | |
undelegate: function(a, b, c) { | |
return 1 === arguments.length ? this.off(a, "**") : this.off(b, a || "**", c) | |
} | |
}), na.fn.size = function() { | |
return this.length | |
}, na.fn.andSelf = na.fn.addBack, "function" == typeof define && define.amd && define("jquery", [], function() { | |
return na | |
}); | |
var nc = a.jQuery, | |
oc = a.$; | |
return na.noConflict = function(b) { | |
return a.$ === na && (a.$ = oc), b && a.jQuery === na && (a.jQuery = nc), na | |
}, b || (a.jQuery = a.$ = na), na | |
}), function(a) { | |
"use strict"; | |
function b(a) { | |
return function() { | |
var b, c = arguments[0]; | |
for (b = "[" + (a ? a + ":" : "") + c + "] http://errors.angularjs.org/1.5.7/" + (a ? a + "/" : "") + c, c = 1; c < arguments.length; c++) { | |
b = b + (1 == c ? "?" : "&") + "p" + (c - 1) + "="; | |
var d, e = encodeURIComponent; | |
d = arguments[c], d = "function" == typeof d ? d.toString().replace(/ \{[\s\S]*$/, "") : "undefined" == typeof d ? "undefined" : "string" != typeof d ? JSON.stringify(d) : d, b += e(d) | |
} | |
return Error(b) | |
} | |
} | |
function c(a) { | |
if (null == a || z(a)) return !1; | |
if (fd(a) || u(a) || Sc && a instanceof Sc) return !0; | |
var b = "length" in Object(a) && a.length; | |
return v(b) && (0 <= b && (b - 1 in a || a instanceof Array) || "function" == typeof a.item) | |
} | |
function d(a, b, e) { | |
var f, g; | |
if (a) | |
if (x(a)) | |
for (f in a) "prototype" == f || "length" == f || "name" == f || a.hasOwnProperty && !a.hasOwnProperty(f) || b.call(e, a[f], f, a); | |
else if (fd(a) || c(a)) { | |
var h = "object" != typeof a; | |
for (f = 0, g = a.length; f < g; f++)(h || f in a) && b.call(e, a[f], f, a) | |
} else if (a.forEach && a.forEach !== d) a.forEach(b, e, a); | |
else if (t(a)) | |
for (f in a) b.call(e, a[f], f, a); | |
else if ("function" == typeof a.hasOwnProperty) | |
for (f in a) a.hasOwnProperty(f) && b.call(e, a[f], f, a); | |
else | |
for (f in a) Wc.call(a, f) && b.call(e, a[f], f, a); | |
return a | |
} | |
function e(a, b, c) { | |
for (var d = Object.keys(a).sort(), e = 0; e < d.length; e++) b.call(c, a[d[e]], d[e]); | |
return d | |
} | |
function f(a) { | |
return function(b, c) { | |
a(c, b) | |
} | |
} | |
function g() { | |
return ++ed | |
} | |
function h(a, b, c) { | |
for (var d = a.$$hashKey, e = 0, f = b.length; e < f; ++e) { | |
var g = b[e]; | |
if (s(g) || x(g)) | |
for (var i = Object.keys(g), j = 0, k = i.length; j < k; j++) { | |
var l = i[j], | |
m = g[l]; | |
c && s(m) ? w(m) ? a[l] = new Date(m.valueOf()) : y(m) ? a[l] = new RegExp(m) : m.nodeName ? a[l] = m.cloneNode(!0) : D(m) ? a[l] = m.clone() : (s(a[l]) || (a[l] = fd(m) ? [] : {}), h(a[l], [m], !0)) : a[l] = m | |
} | |
} | |
return d ? a.$$hashKey = d : delete a.$$hashKey, a | |
} | |
function i(a) { | |
return h(a, Zc.call(arguments, 1), !1) | |
} | |
function j(a) { | |
return h(a, Zc.call(arguments, 1), !0) | |
} | |
function k(a) { | |
return parseInt(a, 10) | |
} | |
function l(a, b) { | |
return i(Object.create(a), b) | |
} | |
function m() {} | |
function n(a) { | |
return a | |
} | |
function o(a) { | |
return function() { | |
return a | |
} | |
} | |
function p(a) { | |
return x(a.toString) && a.toString !== ad | |
} | |
function q(a) { | |
return "undefined" == typeof a | |
} | |
function r(a) { | |
return "undefined" != typeof a | |
} | |
function s(a) { | |
return null !== a && "object" == typeof a | |
} | |
function t(a) { | |
return null !== a && "object" == typeof a && !bd(a) | |
} | |
function u(a) { | |
return "string" == typeof a | |
} | |
function v(a) { | |
return "number" == typeof a | |
} | |
function w(a) { | |
return "[object Date]" === ad.call(a) | |
} | |
function x(a) { | |
return "function" == typeof a | |
} | |
function y(a) { | |
return "[object RegExp]" === ad.call(a) | |
} | |
function z(a) { | |
return a && a.window === a | |
} | |
function A(a) { | |
return a && a.$evalAsync && a.$watch | |
} | |
function B(a) { | |
return "boolean" == typeof a | |
} | |
function C(a) { | |
return a && v(a.length) && gd.test(ad.call(a)) | |
} | |
function D(a) { | |
return !(!a || !(a.nodeName || a.prop && a.attr && a.find)) | |
} | |
function E(a) { | |
var b = {}; | |
a = a.split(","); | |
var c; | |
for (c = 0; c < a.length; c++) b[a[c]] = !0; | |
return b | |
} | |
function F(a) { | |
return Xc(a.nodeName || a[0] && a[0].nodeName) | |
} | |
function G(a, b) { | |
var c = a.indexOf(b); | |
return 0 <= c && a.splice(c, 1), c | |
} | |
function H(a, b) { | |
function c(a, b) { | |
var c, d = b.$$hashKey; | |
if (fd(a)) { | |
c = 0; | |
for (var f = a.length; c < f; c++) b.push(e(a[c])) | |
} else if (t(a)) | |
for (c in a) b[c] = e(a[c]); | |
else if (a && "function" == typeof a.hasOwnProperty) | |
for (c in a) a.hasOwnProperty(c) && (b[c] = e(a[c])); | |
else | |
for (c in a) Wc.call(a, c) && (b[c] = e(a[c])); | |
return d ? b.$$hashKey = d : delete b.$$hashKey, b | |
} | |
function e(a) { | |
if (!s(a)) return a; | |
var b = g.indexOf(a); | |
if (-1 !== b) return h[b]; | |
if (z(a) || A(a)) throw cd("cpws"); | |
var b = !1, | |
d = f(a); | |
return void 0 === d && (d = fd(a) ? [] : Object.create(bd(a)), b = !0), g.push(a), h.push(d), b ? c(a, d) : d | |
} | |
function f(a) { | |
switch (ad.call(a)) { | |
case "[object Int8Array]": | |
case "[object Int16Array]": | |
case "[object Int32Array]": | |
case "[object Float32Array]": | |
case "[object Float64Array]": | |
case "[object Uint8Array]": | |
case "[object Uint8ClampedArray]": | |
case "[object Uint16Array]": | |
case "[object Uint32Array]": | |
return new a.constructor(e(a.buffer)); | |
case "[object ArrayBuffer]": | |
if (!a.slice) { | |
var b = new ArrayBuffer(a.byteLength); | |
return new Uint8Array(b).set(new Uint8Array(a)), b | |
} | |
return a.slice(0); | |
case "[object Boolean]": | |
case "[object Number]": | |
case "[object String]": | |
case "[object Date]": | |
return new a.constructor(a.valueOf()); | |
case "[object RegExp]": | |
return b = new RegExp(a.source, a.toString().match(/[^\/]*$/)[0]), b.lastIndex = a.lastIndex, b; | |
case "[object Blob]": | |
return new a.constructor([a], { | |
type: a.type | |
}) | |
} | |
if (x(a.cloneNode)) return a.cloneNode(!0) | |
} | |
var g = [], | |
h = []; | |
if (b) { | |
if (C(b) || "[object ArrayBuffer]" === ad.call(b)) throw cd("cpta"); | |
if (a === b) throw cd("cpi"); | |
return fd(b) ? b.length = 0 : d(b, function(a, c) { | |
"$$hashKey" !== c && delete b[c] | |
}), g.push(a), h.push(b), c(a, b) | |
} | |
return e(a) | |
} | |
function I(a, b) { | |
if (a === b) return !0; | |
if (null === a || null === b) return !1; | |
if (a !== a && b !== b) return !0; | |
var c, d = typeof a; | |
if (d == typeof b && "object" == d) { | |
if (!fd(a)) { | |
if (w(a)) return !!w(b) && I(a.getTime(), b.getTime()); | |
if (y(a)) return !!y(b) && a.toString() == b.toString(); | |
if (A(a) || A(b) || z(a) || z(b) || fd(b) || w(b) || y(b)) return !1; | |
d = ga(); | |
for (c in a) | |
if ("$" !== c.charAt(0) && !x(a[c])) { | |
if (!I(a[c], b[c])) return !1; | |
d[c] = !0 | |
} | |
for (c in b) | |
if (!(c in d) && "$" !== c.charAt(0) && r(b[c]) && !x(b[c])) return !1; | |
return !0 | |
} | |
if (!fd(b)) return !1; | |
if ((d = a.length) == b.length) { | |
for (c = 0; c < d; c++) | |
if (!I(a[c], b[c])) return !1; | |
return !0 | |
} | |
} | |
return !1 | |
} | |
function J(a, b, c) { | |
return a.concat(Zc.call(b, c)) | |
} | |
function K(a, b) { | |
var c = 2 < arguments.length ? Zc.call(arguments, 2) : []; | |
return !x(b) || b instanceof RegExp ? b : c.length ? function() { | |
return arguments.length ? b.apply(a, J(c, arguments, 0)) : b.apply(a, c) | |
} : function() { | |
return arguments.length ? b.apply(a, arguments) : b.call(a) | |
} | |
} | |
function L(b, c) { | |
var d = c; | |
return "string" == typeof b && "$" === b.charAt(0) && "$" === b.charAt(1) ? d = void 0 : z(c) ? d = "$WINDOW" : c && a.document === c ? d = "$DOCUMENT" : A(c) && (d = "$SCOPE"), d | |
} | |
function M(a, b) { | |
if (!q(a)) return v(b) || (b = b ? 2 : null), JSON.stringify(a, L, b) | |
} | |
function N(a) { | |
return u(a) ? JSON.parse(a) : a | |
} | |
function O(a, b) { | |
a = a.replace(ld, ""); | |
var c = Date.parse("Jan 01, 1970 00:00:00 " + a) / 6e4; | |
return isNaN(c) ? b : c | |
} | |
function P(a, b, c) { | |
c = c ? -1 : 1; | |
var d = a.getTimezoneOffset(); | |
return b = O(b, d), c *= b - d, a = new Date(a.getTime()), a.setMinutes(a.getMinutes() + c), a | |
} | |
function Q(a) { | |
a = Sc(a).clone(); | |
try { | |
a.empty() | |
} catch (a) {} | |
var b = Sc("<div>").append(a).html(); | |
try { | |
return a[0].nodeType === pd ? Xc(b) : b.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/, function(a, b) { | |
return "<" + Xc(b) | |
}) | |
} catch (a) { | |
return Xc(b) | |
} | |
} | |
function R(a) { | |
try { | |
return decodeURIComponent(a) | |
} catch (a) {} | |
} | |
function S(a) { | |
var b = {}; | |
return d((a || "").split("&"), function(a) { | |
var c, d, e; | |
a && (d = a = a.replace(/\+/g, "%20"), c = a.indexOf("="), -1 !== c && (d = a.substring(0, c), e = a.substring(c + 1)), d = R(d), r(d) && (e = !r(e) || R(e), Wc.call(b, d) ? fd(b[d]) ? b[d].push(e) : b[d] = [b[d], e] : b[d] = e)) | |
}), b | |
} | |
function T(a) { | |
var b = []; | |
return d(a, function(a, c) { | |
fd(a) ? d(a, function(a) { | |
b.push(V(c, !0) + (!0 === a ? "" : "=" + V(a, !0))) | |
}) : b.push(V(c, !0) + (!0 === a ? "" : "=" + V(a, !0))) | |
}), b.length ? b.join("&") : "" | |
} | |
function U(a) { | |
return V(a, !0).replace(/%26/gi, "&").replace(/%3D/gi, "=").replace(/%2B/gi, "+") | |
} | |
function V(a, b) { | |
return encodeURIComponent(a).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%3B/gi, ";").replace(/%20/g, b ? "%20" : "+") | |
} | |
function W(a, b) { | |
var c, d, e = md.length; | |
for (d = 0; d < e; ++d) | |
if (c = md[d] + b, u(c = a.getAttribute(c))) return c; | |
return null | |
} | |
function X(a, b) { | |
var c, e, f = {}; | |
d(md, function(b) { | |
b += "app", !c && a.hasAttribute && a.hasAttribute(b) && (c = a, e = a.getAttribute(b)) | |
}), d(md, function(b) { | |
b += "app"; | |
var d; | |
!c && (d = a.querySelector("[" + b.replace(":", "\\:") + "]")) && (c = d, e = d.getAttribute(b)) | |
}), c && (f.strictDi = null !== W(c, "strict-di"), b(c, e ? [e] : [], f)) | |
} | |
function Y(b, c, e) { | |
s(e) || (e = {}), e = i({ | |
strictDi: !1 | |
}, e); | |
var f = function() { | |
if (b = Sc(b), b.injector()) { | |
var d = b[0] === a.document ? "document" : Q(b); | |
throw cd("btstrpd", d.replace(/</, "<").replace(/>/, ">")) | |
} | |
return c = c || [], c.unshift(["$provide", function(a) { | |
a.value("$rootElement", b) | |
}]), e.debugInfoEnabled && c.push(["$compileProvider", function(a) { | |
a.debugInfoEnabled(!0) | |
}]), c.unshift("ng"), d = Na(c, e.strictDi), d.invoke(["$rootScope", "$rootElement", "$compile", "$injector", function(a, b, c, d) { | |
a.$apply(function() { | |
b.data("$injector", d), c(b)(a) | |
}) | |
}]), d | |
}, | |
g = /^NG_ENABLE_DEBUG_INFO!/, | |
h = /^NG_DEFER_BOOTSTRAP!/; | |
return a && g.test(a.name) && (e.debugInfoEnabled = !0, a.name = a.name.replace(g, "")), a && !h.test(a.name) ? f() : (a.name = a.name.replace(h, ""), dd.resumeBootstrap = function(a) { | |
return d(a, function(a) { | |
c.push(a) | |
}), f() | |
}, void(x(dd.resumeDeferredBootstrap) && dd.resumeDeferredBootstrap())) | |
} | |
function Z() { | |
a.name = "NG_ENABLE_DEBUG_INFO!" + a.name, a.location.reload() | |
} | |
function $(a) { | |
if (a = dd.element(a).injector(), !a) throw cd("test"); | |
return a.get("$$testability") | |
} | |
function _(a, b) { | |
return b = b || "_", a.replace(nd, function(a, c) { | |
return (c ? b : "") + a.toLowerCase() | |
}) | |
} | |
function aa() { | |
var b; | |
if (!od) { | |
var c = kd(); | |
(Tc = q(c) ? a.jQuery : c ? a[c] : void 0) && Tc.fn.on ? (Sc = Tc, i(Tc.fn, { | |
scope: Dd.scope, | |
isolateScope: Dd.isolateScope, | |
controller: Dd.controller, | |
injector: Dd.injector, | |
inheritedData: Dd.inheritedData | |
}), b = Tc.cleanData, Tc.cleanData = function(a) { | |
for (var c, d, e = 0; null != (d = a[e]); e++)(c = Tc._data(d, "events")) && c.$destroy && Tc(d).triggerHandler("$destroy"); | |
b(a) | |
}) : Sc = oa, dd.element = Sc, od = !0 | |
} | |
} | |
function ba(a, b, c) { | |
if (!a) throw cd("areq", b || "?", c || "required"); | |
return a | |
} | |
function ca(a, b, c) { | |
return c && fd(a) && (a = a[a.length - 1]), ba(x(a), b, "not a function, got " + (a && "object" == typeof a ? a.constructor.name || "Object" : typeof a)), a | |
} | |
function da(a, b) { | |
if ("hasOwnProperty" === a) throw cd("badname", b) | |
} | |
function ea(a, b, c) { | |
if (!b) return a; | |
b = b.split("."); | |
for (var d, e = a, f = b.length, g = 0; g < f; g++) d = b[g], a && (a = (e = a)[d]); | |
return !c && x(a) ? K(e, a) : a | |
} | |
function fa(a) { | |
for (var b, c = a[0], d = a[a.length - 1], e = 1; c !== d && (c = c.nextSibling); e++)(b || a[e] !== c) && (b || (b = Sc(Zc.call(a, 0, e))), b.push(c)); | |
return b || a | |
} | |
function ga() { | |
return Object.create(null) | |
} | |
function ha(a) { | |
function c(a, b, c) { | |
return a[b] || (a[b] = c()) | |
} | |
var d = b("$injector"), | |
e = b("ng"); | |
return a = c(a, "angular", Object), a.$$minErr = a.$$minErr || b, c(a, "module", function() { | |
var a = {}; | |
return function(b, f, g) { | |
if ("hasOwnProperty" === b) throw e("badname", "module"); | |
return f && a.hasOwnProperty(b) && (a[b] = null), c(a, b, function() { | |
function a(a, b, c, d) { | |
return d || (d = e), | |
function() { | |
return d[c || "push"]([a, b, arguments]), k | |
} | |
} | |
function c(a, c) { | |
return function(d, f) { | |
return f && x(f) && (f.$$moduleName = b), e.push([a, c, arguments]), k | |
} | |
} | |
if (!f) throw d("nomod", b); | |
var e = [], | |
h = [], | |
i = [], | |
j = a("$injector", "invoke", "push", h), | |
k = { | |
_invokeQueue: e, | |
_configBlocks: h, | |
_runBlocks: i, | |
requires: f, | |
name: b, | |
provider: c("$provide", "provider"), | |
factory: c("$provide", "factory"), | |
service: c("$provide", "service"), | |
value: a("$provide", "value"), | |
constant: a("$provide", "constant", "unshift"), | |
decorator: c("$provide", "decorator"), | |
animation: c("$animateProvider", "register"), | |
filter: c("$filterProvider", "register"), | |
controller: c("$controllerProvider", "register"), | |
directive: c("$compileProvider", "directive"), | |
component: c("$compileProvider", "component"), | |
config: j, | |
run: function(a) { | |
return i.push(a), this | |
} | |
}; | |
return g && j(g), k | |
}) | |
} | |
}) | |
} | |
function ia(a, b) { | |
if (fd(a)) { | |
b = b || []; | |
for (var c = 0, d = a.length; c < d; c++) b[c] = a[c] | |
} else if (s(a)) | |
for (c in b = b || {}, a) "$" === c.charAt(0) && "$" === c.charAt(1) || (b[c] = a[c]); | |
return b || a | |
} | |
function ja(c) { | |
i(c, { | |
bootstrap: Y, | |
copy: H, | |
extend: i, | |
merge: j, | |
equals: I, | |
element: Sc, | |
forEach: d, | |
injector: Na, | |
noop: m, | |
bind: K, | |
toJson: M, | |
fromJson: N, | |
identity: n, | |
isUndefined: q, | |
isDefined: r, | |
isString: u, | |
isFunction: x, | |
isObject: s, | |
isNumber: v, | |
isElement: D, | |
isArray: fd, | |
version: qd, | |
isDate: w, | |
lowercase: Xc, | |
uppercase: Yc, | |
callbacks: { | |
counter: 0 | |
}, | |
getTestability: $, | |
$$minErr: b, | |
$$csp: jd, | |
reloadWithDebugInfo: Z | |
}), (Uc = ha(a))("ng", ["ngLocale"], ["$provide", function(a) { | |
a.provider({ | |
$$sanitizeUri: Zb | |
}), a.provider("$compile", Wa).directive({ | |
a: Ie, | |
input: Ze, | |
textarea: Ze, | |
form: Me, | |
script: Pf, | |
select: Sf, | |
style: Uf, | |
option: Tf, | |
ngBind: af, | |
ngBindHtml: cf, | |
ngBindTemplate: bf, | |
ngClass: ef, | |
ngClassEven: gf, | |
ngClassOdd: ff, | |
ngCloak: hf, | |
ngController: jf, | |
ngForm: Ne, | |
ngHide: If, | |
ngIf: mf, | |
ngInclude: nf, | |
ngInit: pf, | |
ngNonBindable: Bf, | |
ngPluralize: Ff, | |
ngRepeat: Gf, | |
ngShow: Hf, | |
ngStyle: Jf, | |
ngSwitch: Kf, | |
ngSwitchWhen: Lf, | |
ngSwitchDefault: Mf, | |
ngOptions: Ef, | |
ngTransclude: Of, | |
ngModel: yf, | |
ngList: qf, | |
ngChange: df, | |
pattern: Wf, | |
ngPattern: Wf, | |
required: Vf, | |
ngRequired: Vf, | |
minlength: Yf, | |
ngMinlength: Yf, | |
maxlength: Xf, | |
ngMaxlength: Xf, | |
ngValue: _e, | |
ngModelOptions: Af | |
}).directive({ | |
ngInclude: of | |
}).directive(Je).directive(kf), a.provider({ | |
$anchorScroll: Oa, | |
$animate: Rd, | |
$animateCss: Ud, | |
$$animateJs: Pd, | |
$$animateQueue: Qd, | |
$$AnimateRunner: Td, | |
$$animateAsyncRun: Sd, | |
$browser: Ta, | |
$cacheFactory: Ua, | |
$controller: ab, | |
$document: bb, | |
$exceptionHandler: cb, | |
$filter: lc, | |
$$forceReflow: $d, | |
$interpolate: ob, | |
$interval: pb, | |
$http: kb, | |
$httpParamSerializer: eb, | |
$httpParamSerializerJQLike: fb, | |
$httpBackend: mb, | |
$xhrFactory: lb, | |
$location: Bb, | |
$log: Cb, | |
$parse: Tb, | |
$rootScope: Yb, | |
$q: Ub, | |
$$q: Vb, | |
$sce: bc, | |
$sceDelegate: ac, | |
$sniffer: cc, | |
$templateCache: Va, | |
$templateRequest: dc, | |
$$testability: ec, | |
$timeout: fc, | |
$window: ic, | |
$$rAF: Xb, | |
$$jqLite: Ia, | |
$$HashMap: Hd, | |
$$cookieReader: kc | |
}) | |
}]) | |
} | |
function ka(a) { | |
return a.replace(td, function(a, b, c, d) { | |
return d ? c.toUpperCase() : c | |
}).replace(ud, "Moz$1") | |
} | |
function la(a) { | |
return a = a.nodeType, 1 === a || !a || 9 === a | |
} | |
function ma(a, b) { | |
var c, e, f = b.createDocumentFragment(), | |
g = []; | |
if (yd.test(a)) { | |
for (c = c || f.appendChild(b.createElement("div")), e = (zd.exec(a) || ["", ""])[1].toLowerCase(), e = Bd[e] || Bd._default, c.innerHTML = e[1] + a.replace(Ad, "<$1></$2>") + e[2], e = e[0]; e--;) c = c.lastChild; | |
g = J(g, c.childNodes), c = f.firstChild, c.textContent = "" | |
} else g.push(b.createTextNode(a)); | |
return f.textContent = "", f.innerHTML = "", d(g, function(a) { | |
f.appendChild(a) | |
}), f | |
} | |
function na(a, b) { | |
var c = a.parentNode; | |
c && c.replaceChild(b, a), b.appendChild(a) | |
} | |
function oa(b) { | |
if (b instanceof oa) return b; | |
var c; | |
if (u(b) && (b = hd(b), c = !0), !(this instanceof oa)) { | |
if (c && "<" != b.charAt(0)) throw wd("nosel"); | |
return new oa(b) | |
} | |
if (c) { | |
c = a.document; | |
var d; | |
b = (d = xd.exec(b)) ? [c.createElement(d[1])] : (d = ma(b, c)) ? d.childNodes : [] | |
} | |
ya(this, b) | |
} | |
function pa(a) { | |
return a.cloneNode(!0) | |
} | |
function qa(a, b) { | |
if (b || sa(a), a.querySelectorAll) | |
for (var c = a.querySelectorAll("*"), d = 0, e = c.length; d < e; d++) sa(c[d]) | |
} | |
function ra(a, b, c, e) { | |
if (r(e)) throw wd("offargs"); | |
var f = (e = ta(a)) && e.events, | |
g = e && e.handle; | |
if (g) | |
if (b) { | |
var h = function(b) { | |
var d = f[b]; | |
r(c) && G(d || [], c), r(c) && d && 0 < d.length || (a.removeEventListener(b, g, !1), delete f[b]) | |
}; | |
d(b.split(" "), function(a) { | |
h(a), vd[a] && h(vd[a]) | |
}) | |
} else | |
for (b in f) "$destroy" !== b && a.removeEventListener(b, g, !1), delete f[b] | |
} | |
function sa(a, b) { | |
var c = a.ng339, | |
d = c && rd[c]; | |
d && (b ? delete d.data[b] : (d.handle && (d.events.$destroy && d.handle({}, "$destroy"), ra(a)), delete rd[c], a.ng339 = void 0)) | |
} | |
function ta(a, b) { | |
var c = a.ng339, | |
c = c && rd[c]; | |
return b && !c && (a.ng339 = c = ++sd, c = rd[c] = { | |
events: {}, | |
data: {}, | |
handle: void 0 | |
}), c | |
} | |
function ua(a, b, c) { | |
if (la(a)) { | |
var d = r(c), | |
e = !d && b && !s(b), | |
f = !b; | |
if (a = (a = ta(a, !e)) && a.data, d) a[b] = c; | |
else { | |
if (f) return a; | |
if (e) return a && a[b]; | |
i(a, b) | |
} | |
} | |
} | |
function va(a, b) { | |
return !!a.getAttribute && -1 < (" " + (a.getAttribute("class") || "") + " ").replace(/[\n\t]/g, " ").indexOf(" " + b + " ") | |
} | |
function wa(a, b) { | |
b && a.setAttribute && d(b.split(" "), function(b) { | |
a.setAttribute("class", hd((" " + (a.getAttribute("class") || "") + " ").replace(/[\n\t]/g, " ").replace(" " + hd(b) + " ", " "))) | |
}) | |
} | |
function xa(a, b) { | |
if (b && a.setAttribute) { | |
var c = (" " + (a.getAttribute("class") || "") + " ").replace(/[\n\t]/g, " "); | |
d(b.split(" "), function(a) { | |
a = hd(a), -1 === c.indexOf(" " + a + " ") && (c += a + " ") | |
}), a.setAttribute("class", hd(c)) | |
} | |
} | |
function ya(a, b) { | |
if (b) | |
if (b.nodeType) a[a.length++] = b; | |
else { | |
var c = b.length; | |
if ("number" == typeof c && b.window !== b) { | |
if (c) | |
for (var d = 0; d < c; d++) a[a.length++] = b[d] | |
} else a[a.length++] = b | |
} | |
} | |
function za(a, b) { | |
return Aa(a, "$" + (b || "ngController") + "Controller") | |
} | |
function Aa(a, b, c) { | |
for (9 == a.nodeType && (a = a.documentElement), b = fd(b) ? b : [b]; a;) { | |
for (var d = 0, e = b.length; d < e; d++) | |
if (r(c = Sc.data(a, b[d]))) return c; | |
a = a.parentNode || 11 === a.nodeType && a.host | |
} | |
} | |
function Ba(a) { | |
for (qa(a, !0); a.firstChild;) a.removeChild(a.firstChild) | |
} | |
function Ca(a, b) { | |
b || qa(a); | |
var c = a.parentNode; | |
c && c.removeChild(a) | |
} | |
function Da(b, c) { | |
c = c || a, "complete" === c.document.readyState ? c.setTimeout(b) : Sc(c).on("load", b) | |
} | |
function Ea(a, b) { | |
var c = Ed[b.toLowerCase()]; | |
return c && Fd[F(a)] && c | |
} | |
function Fa(a, b) { | |
var c = function(c, d) { | |
c.isDefaultPrevented = function() { | |
return c.defaultPrevented | |
}; | |
var e = b[d || c.type], | |
f = e ? e.length : 0; | |
if (f) { | |
if (q(c.immediatePropagationStopped)) { | |
var g = c.stopImmediatePropagation; | |
c.stopImmediatePropagation = function() { | |
c.immediatePropagationStopped = !0, c.stopPropagation && c.stopPropagation(), g && g.call(c) | |
} | |
} | |
c.isImmediatePropagationStopped = function() { | |
return !0 === c.immediatePropagationStopped | |
}; | |
var h = e.specialHandlerWrapper || Ga; | |
1 < f && (e = ia(e)); | |
for (var i = 0; i < f; i++) c.isImmediatePropagationStopped() || h(a, c, e[i]) | |
} | |
}; | |
return c.elem = a, c | |
} | |
function Ga(a, b, c) { | |
c.call(a, b) | |
} | |
function Ha(a, b, c) { | |
var d = b.relatedTarget; | |
d && (d === a || Cd.call(a, d)) || c.call(a, b) | |
} | |
function Ia() { | |
this.$get = function() { | |
return i(oa, { | |
hasClass: function(a, b) { | |
return a.attr && (a = a[0]), va(a, b) | |
}, | |
addClass: function(a, b) { | |
return a.attr && (a = a[0]), xa(a, b) | |
}, | |
removeClass: function(a, b) { | |
return a.attr && (a = a[0]), wa(a, b) | |
} | |
}) | |
} | |
} | |
function Ja(a, b) { | |
var c = a && a.$$hashKey; | |
return c ? ("function" == typeof c && (c = a.$$hashKey()), c) : (c = typeof a, c = "function" == c || "object" == c && null !== a ? a.$$hashKey = c + ":" + (b || g)() : c + ":" + a) | |
} | |
function Ka(a, b) { | |
if (b) { | |
var c = 0; | |
this.nextUid = function() { | |
return ++c | |
} | |
} | |
d(a, this.put, this) | |
} | |
function La(a) { | |
return a = (Function.prototype.toString.call(a) + " ").replace(Md, ""), a.match(Id) || a.match(Jd) | |
} | |
function Ma(a) { | |
return (a = La(a)) ? "function(" + (a[1] || "").replace(/[\s\r\n]+/, " ") + ")" : "fn" | |
} | |
function Na(a, b) { | |
function c(a) { | |
return function(b, c) { | |
return s(b) ? void d(b, f(a)) : a(b, c) | |
} | |
} | |
function e(a, b) { | |
if (da(a, "service"), (x(b) || fd(b)) && (b = p.instantiate(b)), !b.$get) throw Nd("pget", a); | |
return n[a + "Provider"] = b | |
} | |
function g(a, b) { | |
return function() { | |
var c = v.invoke(b, this); | |
if (q(c)) throw Nd("undef", a); | |
return c | |
} | |
} | |
function h(a, b, c) { | |
return e(a, { | |
$get: !1 !== c ? g(a, b) : b | |
}) | |
} | |
function i(a) { | |
ba(q(a) || fd(a), "modulesToLoad", "not an array"); | |
var b, c = []; | |
return d(a, function(a) { | |
function d(a) { | |
var b, c; | |
for (b = 0, c = a.length; b < c; b++) { | |
var d = a[b], | |
e = p.get(d[0]); | |
e[d[1]].apply(e, d[2]) | |
} | |
} | |
if (!m.get(a)) { | |
m.put(a, !0); | |
try { | |
u(a) ? (b = Uc(a), c = c.concat(i(b.requires)).concat(b._runBlocks), d(b._invokeQueue), d(b._configBlocks)) : x(a) ? c.push(p.invoke(a)) : fd(a) ? c.push(p.invoke(a)) : ca(a, "module") | |
} catch (b) { | |
throw fd(a) && (a = a[a.length - 1]), b.message && b.stack && -1 == b.stack.indexOf(b.message) && (b = b.message + "\n" + b.stack), Nd("modulerr", a, b.stack || b.message || b) | |
} | |
} | |
}), c | |
} | |
function j(a, c) { | |
function d(b, d) { | |
if (a.hasOwnProperty(b)) { | |
if (a[b] === k) throw Nd("cdep", b + " <- " + l.join(" <- ")); | |
return a[b] | |
} | |
try { | |
return l.unshift(b), a[b] = k, a[b] = c(b, d) | |
} catch (c) { | |
throw a[b] === k && delete a[b], c | |
} finally { | |
l.shift() | |
} | |
} | |
function e(a, c, e) { | |
var f = []; | |
a = Na.$$annotate(a, b, e); | |
for (var g = 0, h = a.length; g < h; g++) { | |
var i = a[g]; | |
if ("string" != typeof i) throw Nd("itkn", i); | |
f.push(c && c.hasOwnProperty(i) ? c[i] : d(i, e)) | |
} | |
return f | |
} | |
return { | |
invoke: function(a, b, c, d) { | |
return "string" == typeof c && (d = c, c = null), c = e(a, c, d), fd(a) && (a = a[a.length - 1]), d = !(11 >= Rc) && ("function" == typeof a && /^(?:class\s|constructor\()/.test(Function.prototype.toString.call(a) + " ")), d ? (c.unshift(null), new(Function.prototype.bind.apply(a, c))) : a.apply(b, c) | |
}, | |
instantiate: function(a, b, c) { | |
var d = fd(a) ? a[a.length - 1] : a; | |
return a = e(a, b, c), a.unshift(null), new(Function.prototype.bind.apply(d, a)) | |
}, | |
get: d, | |
annotate: Na.$$annotate, | |
has: function(b) { | |
return n.hasOwnProperty(b + "Provider") || a.hasOwnProperty(b) | |
} | |
} | |
} | |
b = !0 === b; | |
var k = {}, | |
l = [], | |
m = new Ka([], !0), | |
n = { | |
$provide: { | |
provider: c(e), | |
factory: c(h), | |
service: c(function(a, b) { | |
return h(a, ["$injector", function(a) { | |
return a.instantiate(b) | |
}]) | |
}), | |
value: c(function(a, b) { | |
return h(a, o(b), !1) | |
}), | |
constant: c(function(a, b) { | |
da(a, "constant"), n[a] = b, r[a] = b | |
}), | |
decorator: function(a, b) { | |
var c = p.get(a + "Provider"), | |
d = c.$get; | |
c.$get = function() { | |
var a = v.invoke(d, c); | |
return v.invoke(b, null, { | |
$delegate: a | |
}) | |
} | |
} | |
} | |
}, | |
p = n.$injector = j(n, function(a, b) { | |
throw dd.isString(b) && l.push(b), Nd("unpr", l.join(" <- ")) | |
}), | |
r = {}, | |
t = j(r, function(a, b) { | |
var c = p.get(a + "Provider", b); | |
return v.invoke(c.$get, c, void 0, a) | |
}), | |
v = t; | |
n.$injectorProvider = { | |
$get: o(t) | |
}; | |
var w = i(a), | |
v = t.get("$injector"); | |
return v.strictDi = b, d(w, function(a) { | |
a && v.invoke(a) | |
}), v | |
} | |
function Oa() { | |
var a = !0; | |
this.disableAutoScrolling = function() { | |
a = !1 | |
}, this.$get = ["$window", "$location", "$rootScope", function(b, c, d) { | |
function e(a) { | |
var b = null; | |
return Array.prototype.some.call(a, function(a) { | |
if ("a" === F(a)) return b = a, !0 | |
}), b | |
} | |
function f(a) { | |
if (a) { | |
a.scrollIntoView(); | |
var c; | |
c = g.yOffset, x(c) ? c = c() : D(c) ? (c = c[0], c = "fixed" !== b.getComputedStyle(c).position ? 0 : c.getBoundingClientRect().bottom) : v(c) || (c = 0), c && (a = a.getBoundingClientRect().top, b.scrollBy(0, a - c)) | |
} else b.scrollTo(0, 0) | |
} | |
function g(a) { | |
a = u(a) ? a : c.hash(); | |
var b; | |
a ? (b = h.getElementById(a)) ? f(b) : (b = e(h.getElementsByName(a))) ? f(b) : "top" === a && f(null) : f(null) | |
} | |
var h = b.document; | |
return a && d.$watch(function() { | |
return c.hash() | |
}, function(a, b) { | |
a === b && "" === a || Da(function() { | |
d.$evalAsync(g) | |
}) | |
}), g | |
}] | |
} | |
function Pa(a, b) { | |
return a || b ? a ? b ? (fd(a) && (a = a.join(" ")), fd(b) && (b = b.join(" ")), a + " " + b) : a : b : "" | |
} | |
function Qa(a) { | |
u(a) && (a = a.split(" ")); | |
var b = ga(); | |
return d(a, function(a) { | |
a.length && (b[a] = !0) | |
}), b | |
} | |
function Ra(a) { | |
return s(a) ? a : {} | |
} | |
function Sa(a, b, c, e) { | |
function f(a) { | |
try { | |
a.apply(null, Zc.call(arguments, 1)) | |
} finally { | |
if (r--, 0 === r) | |
for (; s.length;) try { | |
s.pop()() | |
} catch (a) { | |
c.error(a) | |
} | |
} | |
} | |
function g() { | |
x = null, h(), i() | |
} | |
function h() { | |
t = y(), t = q(t) ? null : t, I(t, B) && (t = B), B = t | |
} | |
function i() { | |
v === j.url() && u === t || (v = j.url(), u = t, d(z, function(a) { | |
a(j.url(), t) | |
})) | |
} | |
var j = this, | |
k = a.location, | |
l = a.history, | |
n = a.setTimeout, | |
o = a.clearTimeout, | |
p = {}; | |
j.isMock = !1; | |
var r = 0, | |
s = []; | |
j.$$completeOutstandingRequest = f, j.$$incOutstandingRequestCount = function() { | |
r++ | |
}, j.notifyWhenNoOutstandingRequests = function(a) { | |
0 === r ? a() : s.push(a) | |
}; | |
var t, u, v = k.href, | |
w = b.find("base"), | |
x = null, | |
y = e.history ? function() { | |
try { | |
return l.state | |
} catch (a) {} | |
} : m; | |
h(), u = t, j.url = function(b, c, d) { | |
if (q(d) && (d = null), k !== a.location && (k = a.location), l !== a.history && (l = a.history), b) { | |
var f = u === d; | |
if (v === b && (!e.history || f)) return j; | |
var g = v && ub(v) === ub(b); | |
return v = b, u = d, !e.history || g && f ? (g || (x = b), c ? k.replace(b) : g ? (c = k, d = b.indexOf("#"), d = -1 === d ? "" : b.substr(d), c.hash = d) : k.href = b, k.href !== b && (x = b)) : (l[c ? "replaceState" : "pushState"](d, "", b), h(), u = t), x && (x = b), j | |
} | |
return x || k.href.replace(/%27/g, "'") | |
}, j.state = function() { | |
return t | |
}; | |
var z = [], | |
A = !1, | |
B = null; | |
j.onUrlChange = function(b) { | |
return A || (e.history && Sc(a).on("popstate", g), Sc(a).on("hashchange", g), A = !0), z.push(b), b | |
}, j.$$applicationDestroyed = function() { | |
Sc(a).off("hashchange popstate", g) | |
}, j.$$checkUrlChange = i, j.baseHref = function() { | |
var a = w.attr("href"); | |
return a ? a.replace(/^(https?\:)?\/\/[^\/]*/, "") : "" | |
}, j.defer = function(a, b) { | |
var c; | |
return r++, c = n(function() { | |
delete p[c], f(a) | |
}, b || 0), p[c] = !0, c | |
}, j.defer.cancel = function(a) { | |
return !!p[a] && (delete p[a], o(a), f(m), !0) | |
} | |
} | |
function Ta() { | |
this.$get = ["$window", "$log", "$sniffer", "$document", function(a, b, c, d) { | |
return new Sa(a, d, b, c) | |
}] | |
} | |
function Ua() { | |
this.$get = function() { | |
function a(a, d) { | |
function e(a) { | |
a != m && (n ? n == a && (n = a.n) : n = a, f(a.n, a.p), f(a, m), m = a, m.n = null) | |
} | |
function f(a, b) { | |
a != b && (a && (a.p = b), b && (b.n = a)) | |
} | |
if (a in c) throw b("$cacheFactory")("iid", a); | |
var g = 0, | |
h = i({}, d, { | |
id: a | |
}), | |
j = ga(), | |
k = d && d.capacity || Number.MAX_VALUE, | |
l = ga(), | |
m = null, | |
n = null; | |
return c[a] = { | |
put: function(a, b) { | |
if (!q(b)) { | |
if (k < Number.MAX_VALUE) { | |
var c = l[a] || (l[a] = { | |
key: a | |
}); | |
e(c) | |
} | |
return a in j || g++, j[a] = b, g > k && this.remove(n.key), b | |
} | |
}, | |
get: function(a) { | |
if (k < Number.MAX_VALUE) { | |
var b = l[a]; | |
if (!b) return; | |
e(b) | |
} | |
return j[a] | |
}, | |
remove: function(a) { | |
if (k < Number.MAX_VALUE) { | |
var b = l[a]; | |
if (!b) return; | |
b == m && (m = b.p), b == n && (n = b.n), f(b.n, b.p), delete l[a] | |
} | |
a in j && (delete j[a], g--) | |
}, | |
removeAll: function() { | |
j = ga(), g = 0, l = ga(), m = n = null | |
}, | |
destroy: function() { | |
l = h = j = null, delete c[a] | |
}, | |
info: function() { | |
return i({}, h, { | |
size: g | |
}) | |
} | |
} | |
} | |
var c = {}; | |
return a.info = function() { | |
var a = {}; | |
return d(c, function(b, c) { | |
a[c] = b.info() | |
}), a | |
}, a.get = function(a) { | |
return c[a] | |
}, a | |
} | |
} | |
function Va() { | |
this.$get = ["$cacheFactory", function(a) { | |
return a("templates") | |
}] | |
} | |
function Wa(b, c) { | |
function e(a, b, c) { | |
var e = /^\s*([@&<]|=(\*?))(\??)\s*(\w*)\s*$/, | |
f = ga(); | |
return d(a, function(a, d) { | |
if (a in y) f[d] = y[a]; | |
else { | |
var g = a.match(e); | |
if (!g) throw Vd("iscp", b, d, a, c ? "controller bindings definition" : "isolate scope definition"); | |
f[d] = { | |
mode: g[1][0], | |
collection: "*" === g[2], | |
optional: "?" === g[3], | |
attrName: g[4] || d | |
}, g[4] && (y[a] = f[d]) | |
} | |
}), f | |
} | |
function g(a) { | |
var b = a.charAt(0); | |
if (!b || b !== Xc(b)) throw Vd("baddir", a); | |
if (a !== a.trim()) throw Vd("baddir", a) | |
} | |
function h(a) { | |
var b = a.require || a.controller && a.name; | |
return !fd(b) && s(b) && d(b, function(a, c) { | |
var d = a.match(v); | |
a.substring(d[0].length) || (b[c] = d[0] + c) | |
}), b | |
} | |
var j = {}, | |
k = /^\s*directive\:\s*([\w\-]+)\s+(.*)$/, | |
p = /(([\w\-]+)(?:\:([^;]+))?;?)/, | |
t = E("ngSrc,ngSrcset,src,srcset"), | |
v = /^(?:(\^\^?)?(\?)?(\^\^?)?)?/, | |
w = /^(on[a-z]+|formaction)$/, | |
y = ga(); | |
this.directive = function a(c, e) { | |
return da(c, "directive"), u(c) ? (g(c), ba(e, "directiveFactory"), j.hasOwnProperty(c) || (j[c] = [], b.factory(c + "Directive", ["$injector", "$exceptionHandler", function(a, b) { | |
var e = []; | |
return d(j[c], function(d, f) { | |
try { | |
var g = a.invoke(d); | |
x(g) ? g = { | |
compile: o(g) | |
} : !g.compile && g.link && (g.compile = o(g.link)), g.priority = g.priority || 0, g.index = f, g.name = g.name || c, g.require = h(g), g.restrict = g.restrict || "EA", g.$$moduleName = d.$$moduleName, e.push(g) | |
} catch (a) { | |
b(a) | |
} | |
}), e | |
}])), j[c].push(e)) : d(c, f(a)), this | |
}, this.component = function(a, b) { | |
function c(a) { | |
function c(b) { | |
return x(b) || fd(b) ? function(c, d) { | |
return a.invoke(b, this, { | |
$element: c, | |
$attrs: d | |
}) | |
} : b | |
} | |
var f = b.template || b.templateUrl ? b.template : "", | |
g = { | |
controller: e, | |
controllerAs: _a(b.controller) || b.controllerAs || "$ctrl", | |
template: c(f), | |
templateUrl: c(b.templateUrl), | |
transclude: b.transclude, | |
scope: {}, | |
bindToController: b.bindings || {}, | |
restrict: "E", | |
require: b.require | |
}; | |
return d(b, function(a, b) { | |
"$" === b.charAt(0) && (g[b] = a) | |
}), g | |
} | |
var e = b.controller || function() {}; | |
return d(b, function(a, b) { | |
"$" === b.charAt(0) && (c[b] = a, x(e) && (e[b] = a)) | |
}), c.$inject = ["$injector"], this.directive(a, c) | |
}, this.aHrefSanitizationWhitelist = function(a) { | |
return r(a) ? (c.aHrefSanitizationWhitelist(a), this) : c.aHrefSanitizationWhitelist() | |
}, this.imgSrcSanitizationWhitelist = function(a) { | |
return r(a) ? (c.imgSrcSanitizationWhitelist(a), this) : c.imgSrcSanitizationWhitelist() | |
}; | |
var z = !0; | |
this.debugInfoEnabled = function(a) { | |
return r(a) ? (z = a, this) : z | |
}; | |
var C = 10; | |
this.onChangesTtl = function(a) { | |
return arguments.length ? (C = a, this) : C | |
}, this.$get = ["$injector", "$interpolate", "$exceptionHandler", "$templateRequest", "$parse", "$controller", "$rootScope", "$sce", "$animate", "$$sanitizeUri", function(b, c, f, g, h, o, y, D, E, H) { | |
function J() { | |
try { | |
if (!--ua) throw ra = void 0, Vd("infchng", C); | |
y.$apply(function() { | |
for (var a = [], b = 0, c = ra.length; b < c; ++b) try { | |
ra[b]() | |
} catch (b) { | |
a.push(b) | |
} | |
if (ra = void 0, a.length) throw a | |
}) | |
} finally { | |
ua++ | |
} | |
} | |
function L(a, b) { | |
if (b) { | |
var c, d, e, f = Object.keys(b); | |
for (c = 0, d = f.length; c < d; c++) e = f[c], this[e] = b[e] | |
} else this.$attr = {}; | |
this.$$element = a | |
} | |
function M(a, b, c) { | |
ta.innerHTML = "<span " + b + ">", b = ta.firstChild.attributes; | |
var d = b[0]; | |
b.removeNamedItem(d.name), d.value = c, a.attributes.setNamedItem(d) | |
} | |
function N(a, b) { | |
try { | |
a.addClass(b) | |
} catch (a) {} | |
} | |
function O(b, c, d, e, f) { | |
b instanceof Sc || (b = Sc(b)); | |
for (var g = /\S+/, h = 0, i = b.length; h < i; h++) { | |
var j = b[h]; | |
j.nodeType === pd && j.nodeValue.match(g) && na(j, b[h] = a.document.createElement("span")) | |
} | |
var k = P(b, c, b, d, e, f); | |
O.$$addScopeClass(b); | |
var l = null; | |
return function(a, c, d) { | |
ba(a, "scope"), f && f.needsNewScope && (a = a.$parent.$new()), d = d || {}; | |
var e = d.parentBoundTranscludeFn, | |
g = d.transcludeControllers; | |
if (d = d.futureParentElement, e && e.$$boundTransclude && (e = e.$$boundTransclude), l || (l = (d = d && d[0]) && "foreignobject" !== F(d) && ad.call(d).match(/SVG/) ? "svg" : "html"), d = "html" !== l ? Sc(ia(l, Sc("<div>").append(b).html())) : c ? Dd.clone.call(b) : b, g) | |
for (var h in g) d.data("$" + h + "Controller", g[h].instance); | |
return O.$$addScopeInfo(d, a), c && c(d, a), k && k(a, d, d, e), d | |
} | |
} | |
function P(a, b, c, d, e, f) { | |
function g(a, c, d, e) { | |
var f, g, h, i, j, k, n; | |
if (l) | |
for (n = Array(c.length), i = 0; i < m.length; i += 3) f = m[i], n[f] = c[f]; | |
else n = c; | |
for (i = 0, j = m.length; i < j;) g = n[m[i++]], c = m[i++], f = m[i++], c ? (c.scope ? (h = a.$new(), O.$$addScopeInfo(Sc(g), h)) : h = a, k = c.transcludeOnThisElement ? R(a, c.transclude, e) : !c.templateOnThisElement && e ? e : !e && b ? R(a, b) : null, c(f, h, g, d, k)) : f && f(a, g.childNodes, void 0, e) | |
} | |
for (var h, i, j, k, l, m = [], n = 0; n < a.length; n++) h = new L, i = S(a[n], [], h, 0 === n ? d : void 0, e), (f = i.length ? W(i, a[n], h, b, c, null, [], [], f) : null) && f.scope && O.$$addScopeClass(h.$$element), h = f && f.terminal || !(j = a[n].childNodes) || !j.length ? null : P(j, f ? (f.transcludeOnThisElement || !f.templateOnThisElement) && f.transclude : b), (f || h) && (m.push(n, f, h), k = !0, l = l || f), f = null; | |
return k ? g : null | |
} | |
function R(a, b, c) { | |
function d(d, e, f, g, h) { | |
return d || (d = a.$new(!1, h), d.$$transcluded = !0), b(d, e, { | |
parentBoundTranscludeFn: c, | |
transcludeControllers: f, | |
futureParentElement: g | |
}) | |
} | |
var e, f = d.$$slots = ga(); | |
for (e in b.$$slots) f[e] = b.$$slots[e] ? R(a, b.$$slots[e], c) : null; | |
return d | |
} | |
function S(a, b, c, d, e) { | |
var f, g = c.$attr; | |
switch (a.nodeType) { | |
case 1: | |
$(b, Ya(F(a)), "E", d, e); | |
for (var h, i, j, l = a.attributes, m = 0, n = l && l.length; m < n; m++) { | |
var o = !1, | |
q = !1; | |
h = l[m], f = h.name, i = hd(h.value), h = Ya(f), (j = ya.test(h)) && (f = f.replace(Xd, "").substr(8).replace(/_(.)/g, function(a, b) { | |
return b.toUpperCase() | |
})), (h = h.match(za)) && aa(h[1]) && (o = f, q = f.substr(0, f.length - 5) + "end", f = f.substr(0, f.length - 6)), h = Ya(f.toLowerCase()), g[h] = f, !j && c.hasOwnProperty(h) || (c[h] = i, Ea(a, h) && (c[h] = !0)), ka(a, b, i, h, j), $(b, h, "A", d, e, o, q) | |
} | |
if (a = a.className, s(a) && (a = a.animVal), u(a) && "" !== a) | |
for (; f = p.exec(a);) h = Ya(f[2]), $(b, h, "C", d, e) && (c[h] = hd(f[3])), a = a.substr(f.index + f[0].length); | |
break; | |
case pd: | |
if (11 === Rc) | |
for (; a.parentNode && a.nextSibling && a.nextSibling.nodeType === pd;) a.nodeValue += a.nextSibling.nodeValue, a.parentNode.removeChild(a.nextSibling); | |
ha(b, a.nodeValue); | |
break; | |
case 8: | |
try { | |
(f = k.exec(a.nodeValue)) && (h = Ya(f[1]), $(b, h, "M", d, e) && (c[h] = hd(f[2]))) | |
} catch (a) {} | |
} | |
return b.sort(ea), b | |
} | |
function T(a, b, c) { | |
var d = [], | |
e = 0; | |
if (b && a.hasAttribute && a.hasAttribute(b)) { | |
do { | |
if (!a) throw Vd("uterdir", b, c); | |
1 == a.nodeType && (a.hasAttribute(b) && e++, a.hasAttribute(c) && e--), d.push(a), a = a.nextSibling | |
} while (0 < e) | |
} else d.push(a); | |
return Sc(d) | |
} | |
function U(a, b, c) { | |
return function(d, e, f, g, h) { | |
return e = T(e[0], b, c), a(d, e, f, g, h) | |
} | |
} | |
function V(a, b, c, d, e, f) { | |
var g; | |
return a ? O(b, c, d, e, f) : function() { | |
return g || (g = O(b, c, d, e, f), b = c = f = null), g.apply(this, arguments) | |
} | |
} | |
function W(a, b, c, e, g, h, j, k, l) { | |
function m(a, b, c, d) { | |
a && (c && (a = U(a, c, d)), a.require = o.require, a.directiveName = p, (z === o || o.$$isolateScope) && (a = ma(a, { | |
isolateScope: !0 | |
})), j.push(a)), b && (c && (b = U(b, c, d)), b.require = o.require, b.directiveName = p, (z === o || o.$$isolateScope) && (b = ma(b, { | |
isolateScope: !0 | |
})), k.push(b)) | |
} | |
function n(a, e, g, h, l) { | |
function m(a, b, c, d) { | |
var e; | |
if (A(a) || (d = c, c = b, b = a, a = void 0), G && (e = u), c || (c = G ? C.parent() : C), !d) return l(a, b, e, c, F); | |
var f = l.$$slots[d]; | |
if (f) return f(a, b, e, c, F); | |
if (q(f)) throw Vd("noslot", d, Q(C)) | |
} | |
var n, o, p, r, t, u, v, C; | |
b === g ? (h = c, C = c.$$element) : (C = Sc(g), h = new L(C, c)), t = e, z ? r = e.$new(!0) : w && (t = e.$parent), l && (v = m, v.$$boundTransclude = l, v.isSlotFilled = function(a) { | |
return !!l.$$slots[a] | |
}), y && (u = Y(C, h, v, y, r, e, z)), z && (O.$$addScopeInfo(C, r, !0, !(B && (B === z || B === z.$$originalDirective))), O.$$addScopeClass(C, !0), r.$$isolateBindings = z.$$isolateBindings, o = qa(e, h, r, r.$$isolateBindings, z), o.removeWatches && r.$on("$destroy", o.removeWatches)); | |
for (n in u) { | |
o = y[n], p = u[n]; | |
var D = o.$$bindings.bindToController; | |
p.bindingInfo = p.identifier && D ? qa(t, h, p.instance, D, o) : {}; | |
var E = p(); | |
E !== p.instance && (p.instance = E, C.data("$" + o.name + "Controller", E), p.bindingInfo.removeWatches && p.bindingInfo.removeWatches(), p.bindingInfo = qa(t, h, p.instance, D, o)) | |
} | |
for (d(y, function(a, b) { | |
var c = a.require; | |
a.bindToController && !fd(c) && s(c) && i(u[b].instance, X(b, c, C, u)) | |
}), d(u, function(a) { | |
var b = a.instance; | |
if (x(b.$onChanges)) try { | |
b.$onChanges(a.bindingInfo.initialChanges) | |
} catch (a) { | |
f(a) | |
} | |
if (x(b.$onInit)) try { | |
b.$onInit() | |
} catch (a) { | |
f(a) | |
} | |
x(b.$onDestroy) && t.$on("$destroy", function() { | |
b.$onDestroy() | |
}) | |
}), n = 0, o = j.length; n < o; n++) p = j[n], oa(p, p.isolateScope ? r : e, C, h, p.require && X(p.directiveName, p.require, C, u), v); | |
var F = e; | |
for (z && (z.template || null === z.templateUrl) && (F = r), a && a(F, g.childNodes, void 0, l), n = k.length - 1; 0 <= n; n--) p = k[n], oa(p, p.isolateScope ? r : e, C, h, p.require && X(p.directiveName, p.require, C, u), v); | |
d(u, function(a) { | |
a = a.instance, x(a.$postLink) && a.$postLink() | |
}) | |
} | |
l = l || {}; | |
for (var o, p, r, t, u, v = -Number.MAX_VALUE, w = l.newScopeDirective, y = l.controllerDirectives, z = l.newIsolateScopeDirective, B = l.templateDirective, C = l.nonTlbTranscludeDirective, D = !1, E = !1, G = l.hasElementTranscludeDirective, H = c.$$element = Sc(b), I = e, J = !1, M = !1, N = 0, P = a.length; N < P; N++) { | |
o = a[N]; | |
var R = o.$$start, | |
W = o.$$end; | |
if (R && (H = T(b, R, W)), r = void 0, v > o.priority) break; | |
if ((u = o.scope) && (o.templateUrl || (s(u) ? (fa("new/isolated scope", z || w, o, H), z = o) : fa("new/isolated scope", z, o, H)), w = w || o), p = o.name, !J && (o.replace && (o.templateUrl || o.template) || o.transclude && !o.$$tlb)) { | |
for (u = N + 1; J = a[u++];) | |
if (J.transclude && !J.$$tlb || J.replace && (J.templateUrl || J.template)) { | |
M = !0; | |
break | |
} | |
J = !0 | |
} | |
if (!o.templateUrl && o.controller && (u = o.controller, y = y || ga(), fa("'" + p + "' controller", y[p], o, H), y[p] = o), u = o.transclude) | |
if (D = !0, o.$$tlb || (fa("transclusion", C, o, H), C = o), "element" == u) G = !0, v = o.priority, r = H, H = c.$$element = Sc(O.$$createComment(p, c[p])), b = H[0], la(g, Zc.call(r, 0), b), r[0].$$parentNode = r[0].parentNode, I = V(M, r, e, v, h && h.name, { | |
nonTlbTranscludeDirective: C | |
}); | |
else { | |
var $ = ga(); | |
if (r = Sc(pa(b)).contents(), s(u)) { | |
r = []; | |
var _ = ga(), | |
aa = ga(); | |
d(u, function(a, b) { | |
var c = "?" === a.charAt(0); | |
a = c ? a.substring(1) : a, _[a] = b, $[b] = null, aa[b] = c | |
}), d(H.contents(), function(a) { | |
var b = _[Ya(F(a))]; | |
b ? (aa[b] = !0, $[b] = $[b] || [], $[b].push(a)) : r.push(a) | |
}), d(aa, function(a, b) { | |
if (!a) throw Vd("reqslot", b) | |
}); | |
for (var ba in $) $[ba] && ($[ba] = V(M, $[ba], e)) | |
} | |
H.empty(), I = V(M, r, e, void 0, void 0, { | |
needsNewScope: o.$$isolateScope || o.$$newScope | |
}), I.$$slots = $ | |
} | |
if (o.template) | |
if (E = !0, fa("template", B, o, H), B = o, u = x(o.template) ? o.template(H, c) : o.template, u = xa(u), o.replace) { | |
if (h = o, r = yd.test(u) ? $a(ia(o.templateNamespace, hd(u))) : [], b = r[0], 1 != r.length || 1 !== b.nodeType) throw Vd("tplrt", p, ""); | |
la(g, H, b), P = { | |
$attr: {} | |
}, u = S(b, [], P); | |
var ea = a.splice(N + 1, a.length - (N + 1)); | |
(z || w) && Z(u, z, w), a = a.concat(u).concat(ea), ca(c, P), P = a.length | |
} else H.html(u); | |
if (o.templateUrl) E = !0, fa("template", B, o, H), B = o, o.replace && (h = o), n = da(a.splice(N, a.length - N), H, c, g, D && I, j, k, { | |
controllerDirectives: y, | |
newScopeDirective: w !== o && w, | |
newIsolateScopeDirective: z, | |
templateDirective: B, | |
nonTlbTranscludeDirective: C | |
}), P = a.length; | |
else if (o.compile) try { | |
t = o.compile(H, c, I); | |
var ha = o.$$originalDirective || o; | |
x(t) ? m(null, K(ha, t), R, W) : t && m(K(ha, t.pre), K(ha, t.post), R, W) | |
} catch (a) { | |
f(a, Q(H)) | |
} | |
o.terminal && (n.terminal = !0, v = Math.max(v, o.priority)) | |
} | |
return n.scope = w && !0 === w.scope, n.transcludeOnThisElement = D, n.templateOnThisElement = E, n.transclude = I, l.hasElementTranscludeDirective = G, n | |
} | |
function X(a, b, c, e) { | |
var f; | |
if (u(b)) { | |
var g = b.match(v); | |
b = b.substring(g[0].length); | |
var h = g[1] || g[3], | |
g = "?" === g[2]; | |
if ("^^" === h ? c = c.parent() : f = (f = e && e[b]) && f.instance, !f) { | |
var i = "$" + b + "Controller"; | |
f = h ? c.inheritedData(i) : c.data(i) | |
} | |
if (!f && !g) throw Vd("ctreq", b, a) | |
} else if (fd(b)) | |
for (f = [], h = 0, g = b.length; h < g; h++) f[h] = X(a, b[h], c, e); | |
else s(b) && (f = {}, d(b, function(b, d) { | |
f[d] = X(a, b, c, e) | |
})); | |
return f || null | |
} | |
function Y(a, b, c, d, e, f, g) { | |
var h, i = ga(); | |
for (h in d) { | |
var j = d[h], | |
k = { | |
$scope: j === g || j.$$isolateScope ? e : f, | |
$element: a, | |
$attrs: b, | |
$transclude: c | |
}, | |
l = j.controller; | |
"@" == l && (l = b[j.name]), k = o(l, k, !0, j.controllerAs), i[j.name] = k, a.data("$" + j.name + "Controller", k.instance) | |
} | |
return i | |
} | |
function Z(a, b, c) { | |
for (var d = 0, e = a.length; d < e; d++) a[d] = l(a[d], { | |
$$isolateScope: b, | |
$$newScope: c | |
}) | |
} | |
function $(a, c, d, g, h, i, k) { | |
if (c === h) return null; | |
if (h = null, j.hasOwnProperty(c)) { | |
var m; | |
c = b.get(c + "Directive"); | |
for (var n = 0, o = c.length; n < o; n++) try { | |
if (m = c[n], (q(g) || g > m.priority) && -1 != m.restrict.indexOf(d)) { | |
if (i && (m = l(m, { | |
$$start: i, | |
$$end: k | |
})), !m.$$bindings) { | |
var p = m, | |
r = m, | |
t = m.name, | |
u = { | |
isolateScope: null, | |
bindToController: null | |
}; | |
if (s(r.scope) && (!0 === r.bindToController ? (u.bindToController = e(r.scope, t, !0), u.isolateScope = {}) : u.isolateScope = e(r.scope, t, !1)), s(r.bindToController) && (u.bindToController = e(r.bindToController, t, !0)), s(u.bindToController)) { | |
var v = r.controller, | |
w = r.controllerAs; | |
if (!v) throw Vd("noctrl", t); | |
if (!_a(v, w)) throw Vd("noident", t) | |
} | |
var x = p.$$bindings = u; | |
s(x.isolateScope) && (m.$$isolateBindings = x.isolateScope) | |
} | |
a.push(m), h = m | |
} | |
} catch (a) { | |
f(a) | |
} | |
} | |
return h | |
} | |
function aa(a) { | |
if (j.hasOwnProperty(a)) | |
for (var c = b.get(a + "Directive"), d = 0, e = c.length; d < e; d++) | |
if (a = c[d], a.multiElement) return !0; | |
return !1 | |
} | |
function ca(a, b) { | |
var c = b.$attr, | |
e = a.$attr; | |
d(a, function(d, e) { | |
"$" != e.charAt(0) && (b[e] && b[e] !== d && (d += ("style" === e ? ";" : " ") + b[e]), a.$set(e, d, !0, c[e])) | |
}), d(b, function(b, d) { | |
a.hasOwnProperty(d) || "$" === d.charAt(0) || (a[d] = b, "class" !== d && "style" !== d && (e[d] = c[d])) | |
}) | |
} | |
function da(a, b, c, e, f, h, i, j) { | |
var k, m, n = [], | |
o = b[0], | |
p = a.shift(), | |
q = l(p, { | |
templateUrl: null, | |
transclude: null, | |
replace: null, | |
$$originalDirective: p | |
}), | |
r = x(p.templateUrl) ? p.templateUrl(b, c) : p.templateUrl, | |
t = p.templateNamespace; | |
return b.empty(), g(r).then(function(g) { | |
var l, u; | |
if (g = xa(g), p.replace) { | |
if (g = yd.test(g) ? $a(ia(t, hd(g))) : [], l = g[0], 1 != g.length || 1 !== l.nodeType) throw Vd("tplrt", p.name, r); | |
g = { | |
$attr: {} | |
}, la(e, b, l); | |
var v = S(l, [], g); | |
s(p.scope) && Z(v, !0), a = v.concat(a), ca(c, g) | |
} else l = o, b.html(g); | |
for (a.unshift(q), k = W(a, l, c, f, b, p, h, i, j), d(e, function(a, c) { | |
a == l && (e[c] = b[0]) | |
}), m = P(b[0].childNodes, f); n.length;) { | |
g = n.shift(), u = n.shift(); | |
var w = n.shift(), | |
x = n.shift(), | |
v = b[0]; | |
if (!g.$$destroyed) { | |
if (u !== o) { | |
var y = u.className; | |
j.hasElementTranscludeDirective && p.replace || (v = pa(l)), la(w, Sc(u), v), N(Sc(v), y) | |
} | |
u = k.transcludeOnThisElement ? R(g, k.transclude, x) : x, k(m, g, v, e, u) | |
} | |
} | |
n = null | |
}), | |
function(a, b, c, d, e) { | |
a = e, b.$$destroyed || (n ? n.push(b, c, d, a) : (k.transcludeOnThisElement && (a = R(b, k.transclude, e)), k(m, b, c, d, a))) | |
} | |
} | |
function ea(a, b) { | |
var c = b.priority - a.priority; | |
return 0 !== c ? c : a.name !== b.name ? a.name < b.name ? -1 : 1 : a.index - b.index | |
} | |
function fa(a, b, c, d) { | |
function e(a) { | |
return a ? " (module: " + a + ")" : "" | |
} | |
if (b) throw Vd("multidir", b.name, e(b.$$moduleName), c.name, e(c.$$moduleName), a, Q(d)) | |
} | |
function ha(a, b) { | |
var d = c(b, !0); | |
d && a.push({ | |
priority: 0, | |
compile: function(a) { | |
a = a.parent(); | |
var b = !!a.length; | |
return b && O.$$addBindingClass(a), | |
function(a, c) { | |
var e = c.parent(); | |
b || O.$$addBindingClass(e), O.$$addBindingInfo(e, d.expressions), a.$watch(d, function(a) { | |
c[0].nodeValue = a | |
}) | |
} | |
} | |
}) | |
} | |
function ia(b, c) { | |
switch (b = Xc(b || "html")) { | |
case "svg": | |
case "math": | |
var d = a.document.createElement("div"); | |
return d.innerHTML = "<" + b + ">" + c + "</" + b + ">", d.childNodes[0].childNodes; | |
default: | |
return c | |
} | |
} | |
function ja(a, b) { | |
if ("srcdoc" == b) return D.HTML; | |
var c = F(a); | |
return "xlinkHref" == b || "form" == c && "action" == b || "img" != c && ("src" == b || "ngSrc" == b) ? D.RESOURCE_URL : void 0 | |
} | |
function ka(a, b, d, e, f) { | |
var g = ja(a, e); | |
f = t[e] || f; | |
var h = c(d, !0, g, f); | |
if (h) { | |
if ("multiple" === e && "select" === F(a)) throw Vd("selmulti", Q(a)); | |
b.push({ | |
priority: 100, | |
compile: function() { | |
return { | |
pre: function(a, b, i) { | |
if (b = i.$$observers || (i.$$observers = ga()), w.test(e)) throw Vd("nodomevents"); | |
var j = i[e]; | |
j !== d && (h = j && c(j, !0, g, f), d = j), h && (i[e] = h(a), (b[e] || (b[e] = [])).$$inter = !0, (i.$$observers && i.$$observers[e].$$scope || a).$watch(h, function(a, b) { | |
"class" === e && a != b ? i.$updateClass(a, b) : i.$set(e, a) | |
})) | |
} | |
} | |
} | |
}) | |
} | |
} | |
function la(b, c, d) { | |
var e, f, g = c[0], | |
h = c.length, | |
i = g.parentNode; | |
if (b) | |
for (e = 0, f = b.length; e < f; e++) | |
if (b[e] == g) { | |
b[e++] = d, f = e + h - 1; | |
for (var j = b.length; e < j; e++, f++) f < j ? b[e] = b[f] : delete b[e]; | |
b.length -= h - 1, b.context === g && (b.context = d); | |
break | |
} | |
for (i && i.replaceChild(d, g), b = a.document.createDocumentFragment(), e = 0; e < h; e++) b.appendChild(c[e]); | |
for (Sc.hasData(g) && (Sc.data(d, Sc.data(g)), Sc(g).off("$destroy")), Sc.cleanData(b.querySelectorAll("*")), e = 1; e < h; e++) delete c[e]; | |
c[0] = d, c.length = 1 | |
} | |
function ma(a, b) { | |
return i(function() { | |
return a.apply(null, arguments) | |
}, a, b) | |
} | |
function oa(a, b, c, d, e, g) { | |
try { | |
a(b, c, d, e, g) | |
} catch (a) { | |
f(a, Q(c)) | |
} | |
} | |
function qa(a, b, e, f, g) { | |
function i(b, c, d) { | |
x(e.$onChanges) && c !== d && (ra || (a.$$postDigest(J), ra = []), k || (k = {}, ra.push(j)), k[b] && (d = k[b].previousValue), k[b] = new Xa(d, c)) | |
} | |
function j() { | |
e.$onChanges(k), k = void 0 | |
} | |
var k, l = [], | |
n = {}; | |
return d(f, function(d, f) { | |
var j, k, o, p, q = d.attrName, | |
r = d.optional; | |
switch (d.mode) { | |
case "@": | |
r || Wc.call(b, q) || (e[f] = b[q] = void 0), b.$observe(q, function(a) { | |
(u(a) || B(a)) && (i(f, a, e[f]), e[f] = a) | |
}), b.$$observers[q].$$scope = a, j = b[q], u(j) ? e[f] = c(j)(a) : B(j) && (e[f] = j), n[f] = new Xa(Wd, e[f]); | |
break; | |
case "=": | |
if (!Wc.call(b, q)) { | |
if (r) break; | |
b[q] = void 0 | |
} | |
if (r && !b[q]) break; | |
k = h(b[q]), p = k.literal ? I : function(a, b) { | |
return a === b || a !== a && b !== b | |
}, o = k.assign || function() { | |
throw j = e[f] = k(a), Vd("nonassign", b[q], q, g.name) | |
}, j = e[f] = k(a), r = function(b) { | |
return p(b, e[f]) || (p(b, j) ? o(a, b = e[f]) : e[f] = b), j = b | |
}, r.$stateful = !0, r = d.collection ? a.$watchCollection(b[q], r) : a.$watch(h(b[q], r), null, k.literal), l.push(r); | |
break; | |
case "<": | |
if (!Wc.call(b, q)) { | |
if (r) break; | |
b[q] = void 0 | |
} | |
if (r && !b[q]) break; | |
k = h(b[q]); | |
var s = e[f] = k(a); | |
n[f] = new Xa(Wd, e[f]), r = a.$watch(k, function(a, b) { | |
if (b === a) { | |
if (b === s) return; | |
b = s | |
} | |
i(f, a, b), e[f] = a | |
}, k.literal), l.push(r); | |
break; | |
case "&": | |
if (k = b.hasOwnProperty(q) ? h(b[q]) : m, k === m && r) break; | |
e[f] = function(b) { | |
return k(a, b) | |
} | |
} | |
}), { | |
initialChanges: n, | |
removeWatches: l.length && function() { | |
for (var a = 0, b = l.length; a < b; ++a) l[a]() | |
} | |
} | |
} | |
var ra, sa = /^\w/, | |
ta = a.document.createElement("div"), | |
ua = C; | |
L.prototype = { | |
$normalize: Ya, | |
$addClass: function(a) { | |
a && 0 < a.length && E.addClass(this.$$element, a) | |
}, | |
$removeClass: function(a) { | |
a && 0 < a.length && E.removeClass(this.$$element, a) | |
}, | |
$updateClass: function(a, b) { | |
var c = Za(a, b); | |
c && c.length && E.addClass(this.$$element, c), (c = Za(b, a)) && c.length && E.removeClass(this.$$element, c) | |
}, | |
$set: function(a, b, c, e) { | |
var g = Ea(this.$$element[0], a), | |
h = Gd[a], | |
i = a; | |
if (g ? (this.$$element.prop(a, b), e = g) : h && (this[h] = b, i = h), this[a] = b, e ? this.$attr[a] = e : (e = this.$attr[a]) || (this.$attr[a] = e = _(a, "-")), g = F(this.$$element), "a" === g && ("href" === a || "xlinkHref" === a) || "img" === g && "src" === a) this[a] = b = H(b, "src" === a); | |
else if ("img" === g && "srcset" === a && r(b)) { | |
for (var g = "", h = hd(b), j = /(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/, j = /\s/.test(h) ? j : /(,)/, h = h.split(j), j = Math.floor(h.length / 2), k = 0; k < j; k++) var l = 2 * k, | |
g = g + H(hd(h[l]), !0), | |
g = g + (" " + hd(h[l + 1])); | |
h = hd(h[2 * k]).split(/\s/), g += H(hd(h[0]), !0), 2 === h.length && (g += " " + hd(h[1])), this[a] = b = g | |
}!1 !== c && (null === b || q(b) ? this.$$element.removeAttr(e) : sa.test(e) ? this.$$element.attr(e, b) : M(this.$$element[0], e, b)), (a = this.$$observers) && d(a[i], function(a) { | |
try { | |
a(b) | |
} catch (a) { | |
f(a) | |
} | |
}) | |
}, | |
$observe: function(a, b) { | |
var c = this, | |
d = c.$$observers || (c.$$observers = ga()), | |
e = d[a] || (d[a] = []); | |
return e.push(b), y.$evalAsync(function() { | |
e.$$inter || !c.hasOwnProperty(a) || q(c[a]) || b(c[a]) | |
}), | |
function() { | |
G(e, b) | |
} | |
} | |
}; | |
var va = c.startSymbol(), | |
wa = c.endSymbol(), | |
xa = "{{" == va && "}}" == wa ? n : function(a) { | |
return a.replace(/\{\{/g, va).replace(/}}/g, wa) | |
}, | |
ya = /^ngAttr[A-Z]/, | |
za = /^(.+)Start$/; | |
return O.$$addBindingInfo = z ? function(a, b) { | |
var c = a.data("$binding") || []; | |
fd(b) ? c = c.concat(b) : c.push(b), a.data("$binding", c) | |
} : m, O.$$addBindingClass = z ? function(a) { | |
N(a, "ng-binding") | |
} : m, O.$$addScopeInfo = z ? function(a, b, c, d) { | |
a.data(c ? d ? "$isolateScopeNoTemplate" : "$isolateScope" : "$scope", b) | |
} : m, O.$$addScopeClass = z ? function(a, b) { | |
N(a, b ? "ng-isolate-scope" : "ng-scope") | |
} : m, O.$$createComment = function(b, c) { | |
var d = ""; | |
return z && (d = " " + (b || "") + ": ", c && (d += c + " ")), a.document.createComment(d) | |
}, O | |
}] | |
} | |
function Xa(a, b) { | |
this.previousValue = a, this.currentValue = b | |
} | |
function Ya(a) { | |
return ka(a.replace(Xd, "")) | |
} | |
function Za(a, b) { | |
var c = "", | |
d = a.split(/\s+/), | |
e = b.split(/\s+/), | |
f = 0; | |
a: for (; f < d.length; f++) { | |
for (var g = d[f], h = 0; h < e.length; h++) | |
if (g == e[h]) continue a; | |
c += (0 < c.length ? " " : "") + g | |
} | |
return c | |
} | |
function $a(a) { | |
a = Sc(a); | |
var b = a.length; | |
if (1 >= b) return a; | |
for (; b--;) 8 === a[b].nodeType && $c.call(a, b, 1); | |
return a | |
} | |
function _a(a, b) { | |
if (b && u(b)) return b; | |
if (u(a)) { | |
var c = Zd.exec(a); | |
if (c) return c[3] | |
} | |
} | |
function ab() { | |
var a = {}, | |
c = !1; | |
this.has = function(b) { | |
return a.hasOwnProperty(b) | |
}, this.register = function(b, c) { | |
da(b, "controller"), s(b) ? i(a, b) : a[b] = c | |
}, this.allowGlobals = function() { | |
c = !0 | |
}, this.$get = ["$injector", "$window", function(d, e) { | |
function f(a, c, d, e) { | |
if (!a || !s(a.$scope)) throw b("$controller")("noscp", e, c); | |
a.$scope[c] = d | |
} | |
return function(b, g, h, j) { | |
var k, l, m; | |
if (h = !0 === h, j && u(j) && (m = j), u(b)) { | |
if (j = b.match(Zd), !j) throw Yd("ctrlfmt", b); | |
l = j[1], m = m || j[3], b = a.hasOwnProperty(l) ? a[l] : ea(g.$scope, l, !0) || (c ? ea(e, l, !0) : void 0), ca(b, l, !0) | |
} | |
return h ? (h = (fd(b) ? b[b.length - 1] : b).prototype, k = Object.create(h || null), m && f(g, m, k, l || b.name), i(function() { | |
var a = d.invoke(b, k, g, l); | |
return a !== k && (s(a) || x(a)) && (k = a, m && f(g, m, k, l || b.name)), k | |
}, { | |
instance: k, | |
identifier: m | |
})) : (k = d.instantiate(b, g, l), m && f(g, m, k, l || b.name), k) | |
} | |
}] | |
} | |
function bb() { | |
this.$get = ["$window", function(a) { | |
return Sc(a.document) | |
}] | |
} | |
function cb() { | |
this.$get = ["$log", function(a) { | |
return function(b, c) { | |
a.error.apply(a, arguments) | |
} | |
}] | |
} | |
function db(a) { | |
return s(a) ? w(a) ? a.toISOString() : M(a) : a | |
} | |
function eb() { | |
this.$get = function() { | |
return function(a) { | |
if (!a) return ""; | |
var b = []; | |
return e(a, function(a, c) { | |
null === a || q(a) || (fd(a) ? d(a, function(a) { | |
b.push(V(c) + "=" + V(db(a))) | |
}) : b.push(V(c) + "=" + V(db(a)))) | |
}), b.join("&") | |
} | |
} | |
} | |
function fb() { | |
this.$get = function() { | |
return function(a) { | |
function b(a, f, g) { | |
null === a || q(a) || (fd(a) ? d(a, function(a, c) { | |
b(a, f + "[" + (s(a) ? c : "") + "]") | |
}) : s(a) && !w(a) ? e(a, function(a, c) { | |
b(a, f + (g ? "" : "[") + c + (g ? "" : "]")) | |
}) : c.push(V(f) + "=" + V(db(a)))) | |
} | |
if (!a) return ""; | |
var c = []; | |
return b(a, "", !0), c.join("&") | |
} | |
} | |
} | |
function gb(a, b) { | |
if (u(a)) { | |
var c = a.replace(de, "").trim(); | |
if (c) { | |
var d = b("Content-Type"); | |
(d = d && 0 === d.indexOf(_d)) || (d = (d = c.match(be)) && ce[d[0]].test(c)), d && (a = N(c)) | |
} | |
} | |
return a | |
} | |
function hb(a) { | |
var b, c = ga(); | |
return u(a) ? d(a.split("\n"), function(a) { | |
b = a.indexOf(":"); | |
var d = Xc(hd(a.substr(0, b))); | |
a = hd(a.substr(b + 1)), d && (c[d] = c[d] ? c[d] + ", " + a : a) | |
}) : s(a) && d(a, function(a, b) { | |
var d = Xc(b), | |
e = hd(a); | |
d && (c[d] = c[d] ? c[d] + ", " + e : e) | |
}), c | |
} | |
function ib(a) { | |
var b; | |
return function(c) { | |
return b || (b = hb(a)), c ? (c = b[Xc(c)], void 0 === c && (c = null), c) : b | |
} | |
} | |
function jb(a, b, c, e) { | |
return x(e) ? e(a, b, c) : (d(e, function(d) { | |
a = d(a, b, c) | |
}), a) | |
} | |
function kb() { | |
var a = this.defaults = { | |
transformResponse: [gb], | |
transformRequest: [function(a) { | |
return s(a) && "[object File]" !== ad.call(a) && "[object Blob]" !== ad.call(a) && "[object FormData]" !== ad.call(a) ? M(a) : a | |
}], | |
headers: { | |
common: { | |
Accept: "application/json, text/plain, */*" | |
}, | |
post: ia(ae), | |
put: ia(ae), | |
patch: ia(ae) | |
}, | |
xsrfCookieName: "XSRF-TOKEN", | |
xsrfHeaderName: "X-XSRF-TOKEN", | |
paramSerializer: "$httpParamSerializer" | |
}, | |
c = !1; | |
this.useApplyAsync = function(a) { | |
return r(a) ? (c = !!a, this) : c | |
}; | |
var e = !0; | |
this.useLegacyPromiseExtensions = function(a) { | |
return r(a) ? (e = !!a, this) : e | |
}; | |
var f = this.interceptors = []; | |
this.$get = ["$httpBackend", "$$cookieReader", "$cacheFactory", "$rootScope", "$q", "$injector", function(g, h, j, k, l, m) { | |
function n(c) { | |
function f(a) { | |
var b = i({}, a); | |
return b.data = jb(a.data, a.headers, a.status, h.transformResponse), a = a.status, 200 <= a && 300 > a ? b : l.reject(b) | |
} | |
function g(a, b) { | |
var c, e = {}; | |
return d(a, function(a, d) { | |
x(a) ? (c = a(b), null != c && (e[d] = c)) : e[d] = a | |
}), e | |
} | |
if (!s(c)) throw b("$http")("badreq", c); | |
if (!u(c.url)) throw b("$http")("badreq", c.url); | |
var h = i({ | |
method: "get", | |
transformRequest: a.transformRequest, | |
transformResponse: a.transformResponse, | |
paramSerializer: a.paramSerializer | |
}, c); | |
h.headers = function(b) { | |
var c, d, e, f = a.headers, | |
h = i({}, b.headers), | |
f = i({}, f.common, f[Xc(b.method)]); | |
a: for (c in f) { | |
d = Xc(c); | |
for (e in h) | |
if (Xc(e) === d) continue a; | |
h[c] = f[c] | |
} | |
return g(h, ia(b)) | |
}(c), h.method = Yc(h.method), h.paramSerializer = u(h.paramSerializer) ? m.get(h.paramSerializer) : h.paramSerializer; | |
var j = [function(b) { | |
var c = b.headers, | |
e = jb(b.data, ib(c), void 0, b.transformRequest); | |
return q(e) && d(c, function(a, b) { | |
"content-type" === Xc(b) && delete c[b] | |
}), q(b.withCredentials) && !q(a.withCredentials) && (b.withCredentials = a.withCredentials), o(b, e).then(f, f) | |
}, void 0], | |
k = l.when(h); | |
for (d(v, function(a) { | |
(a.request || a.requestError) && j.unshift(a.request, a.requestError), (a.response || a.responseError) && j.push(a.response, a.responseError) | |
}); j.length;) { | |
c = j.shift(); | |
var n = j.shift(), | |
k = k.then(c, n) | |
} | |
return e ? (k.success = function(a) { | |
return ca(a, "fn"), k.then(function(b) { | |
a(b.data, b.status, b.headers, h) | |
}), k | |
}, k.error = function(a) { | |
return ca(a, "fn"), k.then(null, function(b) { | |
a(b.data, b.status, b.headers, h) | |
}), k | |
}) : (k.success = fe("success"), k.error = fe("error")), k | |
} | |
function o(b, e) { | |
function f(a) { | |
if (a) { | |
var b = {}; | |
return d(a, function(a, d) { | |
b[d] = function(b) { | |
function d() { | |
a(b) | |
} | |
c ? k.$applyAsync(d) : k.$$phase ? d() : k.$apply(d) | |
} | |
}), b | |
} | |
} | |
function i(a, b, d, e) { | |
function f() { | |
j(b, a, d, e) | |
} | |
u && (200 <= a && 300 > a ? u.put(A, [a, b, hb(d), e]) : u.remove(A)), c ? k.$applyAsync(f) : (f(), k.$$phase || k.$apply()) | |
} | |
function j(a, c, d, e) { | |
c = -1 <= c ? c : 0, (200 <= c && 300 > c ? w.resolve : w.reject)({ | |
data: a, | |
status: c, | |
headers: ib(d), | |
config: b, | |
statusText: e | |
}) | |
} | |
function m(a) { | |
j(a.data, a.status, ia(a.headers()), a.statusText) | |
} | |
function o() { | |
var a = n.pendingRequests.indexOf(b); - 1 !== a && n.pendingRequests.splice(a, 1) | |
} | |
var u, v, w = l.defer(), | |
y = w.promise, | |
z = b.headers, | |
A = p(b.url, b.paramSerializer(b.params)); | |
return n.pendingRequests.push(b), y.then(o, o), !b.cache && !a.cache || !1 === b.cache || "GET" !== b.method && "JSONP" !== b.method || (u = s(b.cache) ? b.cache : s(a.cache) ? a.cache : t), u && (v = u.get(A), r(v) ? v && x(v.then) ? v.then(m, m) : fd(v) ? j(v[1], v[0], ia(v[2]), v[3]) : j(v, 200, {}, "OK") : u.put(A, y)), q(v) && ((v = hc(b.url) ? h()[b.xsrfCookieName || a.xsrfCookieName] : void 0) && (z[b.xsrfHeaderName || a.xsrfHeaderName] = v), g(b.method, A, e, i, z, b.timeout, b.withCredentials, b.responseType, f(b.eventHandlers), f(b.uploadEventHandlers))), y | |
} | |
function p(a, b) { | |
return 0 < b.length && (a += (-1 == a.indexOf("?") ? "?" : "&") + b), a | |
} | |
var t = j("$http"); | |
a.paramSerializer = u(a.paramSerializer) ? m.get(a.paramSerializer) : a.paramSerializer; | |
var v = []; | |
return d(f, function(a) { | |
v.unshift(u(a) ? m.get(a) : m.invoke(a)) | |
}), n.pendingRequests = [], | |
function(a) { | |
d(arguments, function(a) { | |
n[a] = function(b, c) { | |
return n(i({}, c || {}, { | |
method: a, | |
url: b | |
})) | |
} | |
}) | |
}("get", "delete", "head", "jsonp"), | |
function(a) { | |
d(arguments, function(a) { | |
n[a] = function(b, c, d) { | |
return n(i({}, d || {}, { | |
method: a, | |
url: b, | |
data: c | |
})) | |
} | |
}) | |
}("post", "put", "patch"), n.defaults = a, n | |
}] | |
} | |
function lb() { | |
this.$get = function() { | |
return function() { | |
return new a.XMLHttpRequest | |
} | |
} | |
} | |
function mb() { | |
this.$get = ["$browser", "$window", "$document", "$xhrFactory", function(a, b, c, d) { | |
return nb(a, d, a.defer, b.angular.callbacks, c[0]) | |
}] | |
} | |
function nb(a, b, c, e, f) { | |
function g(a, b, c) { | |
var d = f.createElement("script"), | |
g = null; | |
return d.type = "text/javascript", d.src = a, d.async = !0, g = function(a) { | |
d.removeEventListener("load", g, !1), d.removeEventListener("error", g, !1), f.body.removeChild(d), d = null; | |
var h = -1, | |
i = "unknown"; | |
a && ("load" !== a.type || e[b].called || (a = { | |
type: "error" | |
}), i = a.type, h = "error" === a.type ? 404 : 200), c && c(h, i) | |
}, d.addEventListener("load", g, !1), d.addEventListener("error", g, !1), f.body.appendChild(d), g | |
} | |
return function(f, h, i, j, k, l, n, o, p, s) { | |
function t() { | |
w && w(), y && y.abort() | |
} | |
function u(b, d, e, f, g) { | |
r(z) && c.cancel(z), w = y = null, b(d, e, f, g), a.$$completeOutstandingRequest(m) | |
} | |
if (a.$$incOutstandingRequestCount(), h = h || a.url(), "jsonp" == Xc(f)) { | |
var v = "_" + (e.counter++).toString(36); | |
e[v] = function(a) { | |
e[v].data = a, e[v].called = !0 | |
}; | |
var w = g(h.replace("JSON_CALLBACK", "angular.callbacks." + v), v, function(a, b) { | |
u(j, a, e[v].data, "", b), e[v] = m | |
}) | |
} else { | |
var y = b(f, h); | |
if (y.open(f, h, !0), d(k, function(a, b) { | |
r(a) && y.setRequestHeader(b, a) | |
}), y.onload = function() { | |
var a = y.statusText || "", | |
b = "response" in y ? y.response : y.responseText, | |
c = 1223 === y.status ? 204 : y.status; | |
0 === c && (c = b ? 200 : "file" == gc(h).protocol ? 404 : 0), u(j, c, b, y.getAllResponseHeaders(), a) | |
}, f = function() { | |
u(j, -1, null, null, "") | |
}, y.onerror = f, y.onabort = f, d(p, function(a, b) { | |
y.addEventListener(b, a) | |
}), d(s, function(a, b) { | |
y.upload.addEventListener(b, a) | |
}), n && (y.withCredentials = !0), o) try { | |
y.responseType = o | |
} catch (a) { | |
if ("json" !== o) throw a | |
} | |
y.send(q(i) ? null : i) | |
} | |
if (0 < l) var z = c(t, l); | |
else l && x(l.then) && l.then(t) | |
} | |
} | |
function ob() { | |
var a = "{{", | |
b = "}}"; | |
this.startSymbol = function(b) { | |
return b ? (a = b, this) : a | |
}, this.endSymbol = function(a) { | |
return a ? (b = a, this) : b | |
}, this.$get = ["$parse", "$exceptionHandler", "$sce", function(c, d, e) { | |
function f(a) { | |
return "\\\\\\" + a | |
} | |
function g(c) { | |
return c.replace(m, a).replace(n, b) | |
} | |
function h(a, b, c, d) { | |
var e; | |
return e = a.$watch(function(a) { | |
return e(), d(a) | |
}, b, c) | |
} | |
function j(f, j, m, n) { | |
function p(a) { | |
try { | |
var b = a; | |
a = m ? e.getTrusted(m, b) : e.valueOf(b); | |
var c; | |
if (n && !r(a)) c = a; | |
else if (null == a) c = ""; | |
else { | |
switch (typeof a) { | |
case "string": | |
break; | |
case "number": | |
a = "" + a; | |
break; | |
default: | |
a = M(a) | |
} | |
c = a | |
} | |
return c | |
} catch (a) { | |
d(ge.interr(f, a)) | |
} | |
} | |
if (!f.length || -1 === f.indexOf(a)) { | |
var s; | |
return j || (j = g(f), s = o(j), s.exp = f, s.expressions = [], s.$$watchDelegate = h), s | |
} | |
n = !!n; | |
var t, u, v = 0, | |
w = [], | |
y = []; | |
s = f.length; | |
for (var z = [], A = []; v < s;) { | |
if (-1 == (t = f.indexOf(a, v)) || -1 == (u = f.indexOf(b, t + k))) { | |
v !== s && z.push(g(f.substring(v))); | |
break | |
} | |
v !== t && z.push(g(f.substring(v, t))), v = f.substring(t + k, u), w.push(v), y.push(c(v, p)), v = u + l, A.push(z.length), z.push("") | |
} | |
if (m && 1 < z.length && ge.throwNoconcat(f), !j || w.length) { | |
var B = function(a) { | |
for (var b = 0, c = w.length; b < c; b++) { | |
if (n && q(a[b])) return; | |
z[A[b]] = a[b] | |
} | |
return z.join("") | |
}; | |
return i(function(a) { | |
var b = 0, | |
c = w.length, | |
e = Array(c); | |
try { | |
for (; b < c; b++) e[b] = y[b](a); | |
return B(e) | |
} catch (a) { | |
d(ge.interr(f, a)) | |
} | |
}, { | |
exp: f, | |
expressions: w, | |
$$watchDelegate: function(a, b) { | |
var c; | |
return a.$watchGroup(y, function(d, e) { | |
var f = B(d); | |
x(b) && b.call(this, f, d !== e ? c : f, a), c = f | |
}) | |
} | |
}) | |
} | |
} | |
var k = a.length, | |
l = b.length, | |
m = new RegExp(a.replace(/./g, f), "g"), | |
n = new RegExp(b.replace(/./g, f), "g"); | |
return j.startSymbol = function() { | |
return a | |
}, j.endSymbol = function() { | |
return b | |
}, j | |
}] | |
} | |
function pb() { | |
this.$get = ["$rootScope", "$window", "$q", "$$q", "$browser", function(a, b, c, d, e) { | |
function f(f, h, i, j) { | |
function k() { | |
l ? f.apply(null, m) : f(p) | |
} | |
var l = 4 < arguments.length, | |
m = l ? Zc.call(arguments, 4) : [], | |
n = b.setInterval, | |
o = b.clearInterval, | |
p = 0, | |
q = r(j) && !j, | |
s = (q ? d : c).defer(), | |
t = s.promise; | |
return i = r(i) ? i : 0, t.$$intervalId = n(function() { | |
q ? e.defer(k) : a.$evalAsync(k), s.notify(p++), 0 < i && p >= i && (s.resolve(p), o(t.$$intervalId), delete g[t.$$intervalId]), q || a.$apply() | |
}, h), g[t.$$intervalId] = s, t | |
} | |
var g = {}; | |
return f.cancel = function(a) { | |
return !!(a && a.$$intervalId in g) && (g[a.$$intervalId].reject("canceled"), b.clearInterval(a.$$intervalId), delete g[a.$$intervalId], !0) | |
}, f | |
}] | |
} | |
function qb(a) { | |
a = a.split("/"); | |
for (var b = a.length; b--;) a[b] = U(a[b]); | |
return a.join("/") | |
} | |
function rb(a, b) { | |
var c = gc(a); | |
b.$$protocol = c.protocol, b.$$host = c.hostname, b.$$port = k(c.port) || ie[c.protocol] || null | |
} | |
function sb(a, b) { | |
var c = "/" !== a.charAt(0); | |
c && (a = "/" + a); | |
var d = gc(a); | |
b.$$path = decodeURIComponent(c && "/" === d.pathname.charAt(0) ? d.pathname.substring(1) : d.pathname), b.$$search = S(d.search), b.$$hash = decodeURIComponent(d.hash), b.$$path && "/" != b.$$path.charAt(0) && (b.$$path = "/" + b.$$path) | |
} | |
function tb(a, b) { | |
if (0 === b.lastIndexOf(a, 0)) return b.substr(a.length) | |
} | |
function ub(a) { | |
var b = a.indexOf("#"); | |
return -1 == b ? a : a.substr(0, b) | |
} | |
function vb(a) { | |
return a.replace(/(#.+)|#$/, "$1") | |
} | |
function wb(a, b, c) { | |
this.$$html5 = !0, c = c || "", rb(a, this), this.$$parse = function(a) { | |
var c = tb(b, a); | |
if (!u(c)) throw je("ipthprfx", a, b); | |
sb(c, this), this.$$path || (this.$$path = "/"), this.$$compose() | |
}, this.$$compose = function() { | |
var a = T(this.$$search), | |
c = this.$$hash ? "#" + U(this.$$hash) : ""; | |
this.$$url = qb(this.$$path) + (a ? "?" + a : "") + c, this.$$absUrl = b + this.$$url.substr(1) | |
}, this.$$parseLinkUrl = function(d, e) { | |
if (e && "#" === e[0]) return this.hash(e.slice(1)), !0; | |
var f, g; | |
return r(f = tb(a, d)) ? (g = f, g = r(f = tb(c, f)) ? b + (tb("/", f) || f) : a + g) : r(f = tb(b, d)) ? g = b + f : b == d + "/" && (g = b), g && this.$$parse(g), !!g | |
} | |
} | |
function xb(a, b, c) { | |
rb(a, this), this.$$parse = function(d) { | |
var e, f = tb(a, d) || tb(b, d); | |
q(f) || "#" !== f.charAt(0) ? this.$$html5 ? e = f : (e = "", q(f) && (a = d, this.replace())) : (e = tb(c, f), q(e) && (e = f)), sb(e, this), d = this.$$path; | |
var f = a, | |
g = /^\/[A-Z]:(\/.*)/; | |
0 === e.lastIndexOf(f, 0) && (e = e.replace(f, "")), g.exec(e) || (d = (e = g.exec(d)) ? e[1] : d), this.$$path = d, this.$$compose() | |
}, this.$$compose = function() { | |
var b = T(this.$$search), | |
d = this.$$hash ? "#" + U(this.$$hash) : ""; | |
this.$$url = qb(this.$$path) + (b ? "?" + b : "") + d, this.$$absUrl = a + (this.$$url ? c + this.$$url : "") | |
}, this.$$parseLinkUrl = function(b, c) { | |
return ub(a) == ub(b) && (this.$$parse(b), !0) | |
} | |
} | |
function yb(a, b, c) { | |
this.$$html5 = !0, xb.apply(this, arguments), this.$$parseLinkUrl = function(d, e) { | |
if (e && "#" === e[0]) return this.hash(e.slice(1)), !0; | |
var f, g; | |
return a == ub(d) ? f = d : (g = tb(b, d)) ? f = a + c + g : b === d + "/" && (f = b), f && this.$$parse(f), !!f | |
}, this.$$compose = function() { | |
var b = T(this.$$search), | |
d = this.$$hash ? "#" + U(this.$$hash) : ""; | |
this.$$url = qb(this.$$path) + (b ? "?" + b : "") + d, this.$$absUrl = a + c + this.$$url | |
} | |
} | |
function zb(a) { | |
return function() { | |
return this[a] | |
} | |
} | |
function Ab(a, b) { | |
return function(c) { | |
return q(c) ? this[a] : (this[a] = b(c), this.$$compose(), this) | |
} | |
} | |
function Bb() { | |
var a = "", | |
b = { | |
enabled: !1, | |
requireBase: !0, | |
rewriteLinks: !0 | |
}; | |
this.hashPrefix = function(b) { | |
return r(b) ? (a = b, this) : a | |
}, this.html5Mode = function(a) { | |
return B(a) ? (b.enabled = a, this) : s(a) ? (B(a.enabled) && (b.enabled = a.enabled), B(a.requireBase) && (b.requireBase = a.requireBase), B(a.rewriteLinks) && (b.rewriteLinks = a.rewriteLinks), this) : b | |
}, this.$get = ["$rootScope", "$browser", "$sniffer", "$rootElement", "$window", function(c, d, e, f, g) { | |
function h(a, b, c) { | |
var e = j.url(), | |
f = j.$$state; | |
try { | |
d.url(a, b, c), j.$$state = d.state() | |
} catch (a) { | |
throw j.url(e), j.$$state = f, a | |
} | |
} | |
function i(a, b) { | |
c.$broadcast("$locationChangeSuccess", j.absUrl(), a, j.$$state, b) | |
} | |
var j, k; | |
k = d.baseHref(); | |
var l, m = d.url(); | |
if (b.enabled) { | |
if (!k && b.requireBase) throw je("nobase"); | |
l = m.substring(0, m.indexOf("/", m.indexOf("//") + 2)) + (k || "/"), k = e.history ? wb : yb | |
} else l = ub(m), k = xb; | |
var n = l.substr(0, ub(l).lastIndexOf("/") + 1); | |
j = new k(l, n, "#" + a), j.$$parseLinkUrl(m, m), j.$$state = d.state(); | |
var o = /^\s*(javascript|mailto):/i; | |
f.on("click", function(a) { | |
if (b.rewriteLinks && !a.ctrlKey && !a.metaKey && !a.shiftKey && 2 != a.which && 2 != a.button) { | |
for (var e = Sc(a.target); | |
"a" !== F(e[0]);) | |
if (e[0] === f[0] || !(e = e.parent())[0]) return; | |
var h = e.prop("href"), | |
i = e.attr("href") || e.attr("xlink:href"); | |
s(h) && "[object SVGAnimatedString]" === h.toString() && (h = gc(h.animVal).href), o.test(h) || !h || e.attr("target") || a.isDefaultPrevented() || !j.$$parseLinkUrl(h, i) || (a.preventDefault(), j.absUrl() != d.url() && (c.$apply(), g.angular["ff-684208-preventDefault"] = !0)) | |
} | |
}), vb(j.absUrl()) != vb(m) && d.url(j.absUrl(), !0); | |
var p = !0; | |
return d.onUrlChange(function(a, b) { | |
q(tb(n, a)) ? g.location.href = a : (c.$evalAsync(function() { | |
var d, e = j.absUrl(), | |
f = j.$$state; | |
a = vb(a), j.$$parse(a), j.$$state = b, d = c.$broadcast("$locationChangeStart", a, e, b, f).defaultPrevented, j.absUrl() === a && (d ? (j.$$parse(e), j.$$state = f, h(e, !1, f)) : (p = !1, i(e, f))) | |
}), c.$$phase || c.$digest()) | |
}), c.$watch(function() { | |
var a = vb(d.url()), | |
b = vb(j.absUrl()), | |
f = d.state(), | |
g = j.$$replace, | |
k = a !== b || j.$$html5 && e.history && f !== j.$$state; | |
(p || k) && (p = !1, c.$evalAsync(function() { | |
var b = j.absUrl(), | |
d = c.$broadcast("$locationChangeStart", b, a, j.$$state, f).defaultPrevented; | |
j.absUrl() === b && (d ? (j.$$parse(a), j.$$state = f) : (k && h(b, g, f === j.$$state ? null : j.$$state), i(a, f))) | |
})), j.$$replace = !1 | |
}), j | |
}] | |
} | |
function Cb() { | |
var a = !0, | |
b = this; | |
this.debugEnabled = function(b) { | |
return r(b) ? (a = b, this) : a | |
}, this.$get = ["$window", function(c) { | |
function e(a) { | |
return a instanceof Error && (a.stack ? a = a.message && -1 === a.stack.indexOf(a.message) ? "Error: " + a.message + "\n" + a.stack : a.stack : a.sourceURL && (a = a.message + "\n" + a.sourceURL + ":" + a.line)), a | |
} | |
function f(a) { | |
var b = c.console || {}, | |
f = b[a] || b.log || m; | |
a = !1; | |
try { | |
a = !!f.apply | |
} catch (a) {} | |
return a ? function() { | |
var a = []; | |
return d(arguments, function(b) { | |
a.push(e(b)) | |
}), f.apply(b, a) | |
} : function(a, b) { | |
f(a, null == b ? "" : b) | |
} | |
} | |
return { | |
log: f("log"), | |
info: f("info"), | |
warn: f("warn"), | |
error: f("error"), | |
debug: function() { | |
var c = f("debug"); | |
return function() { | |
a && c.apply(b, arguments) | |
} | |
}() | |
} | |
}] | |
} | |
function Db(a, b) { | |
if ("__defineGetter__" === a || "__defineSetter__" === a || "__lookupGetter__" === a || "__lookupSetter__" === a || "__proto__" === a) throw le("isecfld", b); | |
return a | |
} | |
function Eb(a) { | |
return a + "" | |
} | |
function Fb(a, b) { | |
if (a) { | |
if (a.constructor === a) throw le("isecfn", b); | |
if (a.window === a) throw le("isecwindow", b); | |
if (a.children && (a.nodeName || a.prop && a.attr && a.find)) throw le("isecdom", b); | |
if (a === Object) throw le("isecobj", b) | |
} | |
return a | |
} | |
function Gb(a, b) { | |
if (a) { | |
if (a.constructor === a) throw le("isecfn", b); | |
if (a === me || a === ne || a === oe) throw le("isecff", b) | |
} | |
} | |
function Hb(a, b) { | |
if (a && (a === (0).constructor || a === (!1).constructor || a === "".constructor || a === {}.constructor || a === [].constructor || a === Function.constructor)) throw le("isecaf", b) | |
} | |
function Ib(a, b) { | |
return "undefined" != typeof a ? a : b | |
} | |
function Jb(a, b) { | |
return "undefined" == typeof a ? b : "undefined" == typeof b ? a : a + b | |
} | |
function Kb(a, b) { | |
var c, e; | |
switch (a.type) { | |
case se.Program: | |
c = !0, d(a.body, function(a) { | |
Kb(a.expression, b), c = c && a.expression.constant | |
}), a.constant = c; | |
break; | |
case se.Literal: | |
a.constant = !0, a.toWatch = []; | |
break; | |
case se.UnaryExpression: | |
Kb(a.argument, b), a.constant = a.argument.constant, a.toWatch = a.argument.toWatch; | |
break; | |
case se.BinaryExpression: | |
Kb(a.left, b), Kb(a.right, b), a.constant = a.left.constant && a.right.constant, a.toWatch = a.left.toWatch.concat(a.right.toWatch); | |
break; | |
case se.LogicalExpression: | |
Kb(a.left, b), Kb(a.right, b), a.constant = a.left.constant && a.right.constant, a.toWatch = a.constant ? [] : [a]; | |
break; | |
case se.ConditionalExpression: | |
Kb(a.test, b), Kb(a.alternate, b), Kb(a.consequent, b), a.constant = a.test.constant && a.alternate.constant && a.consequent.constant, a.toWatch = a.constant ? [] : [a]; | |
break; | |
case se.Identifier: | |
a.constant = !1, a.toWatch = [a]; | |
break; | |
case se.MemberExpression: | |
Kb(a.object, b), a.computed && Kb(a.property, b), a.constant = a.object.constant && (!a.computed || a.property.constant), a.toWatch = [a]; | |
break; | |
case se.CallExpression: | |
c = !!a.filter && !b(a.callee.name).$stateful, e = [], d(a.arguments, function(a) { | |
Kb(a, b), c = c && a.constant, a.constant || e.push.apply(e, a.toWatch) | |
}), a.constant = c, a.toWatch = a.filter && !b(a.callee.name).$stateful ? e : [a]; | |
break; | |
case se.AssignmentExpression: | |
Kb(a.left, b), Kb(a.right, b), a.constant = a.left.constant && a.right.constant, a.toWatch = [a]; | |
break; | |
case se.ArrayExpression: | |
c = !0, e = [], d(a.elements, function(a) { | |
Kb(a, b), c = c && a.constant, a.constant || e.push.apply(e, a.toWatch) | |
}), a.constant = c, a.toWatch = e; | |
break; | |
case se.ObjectExpression: | |
c = !0, e = [], d(a.properties, function(a) { | |
Kb(a.value, b), c = c && a.value.constant && !a.computed, a.value.constant || e.push.apply(e, a.value.toWatch) | |
}), a.constant = c, a.toWatch = e; | |
break; | |
case se.ThisExpression: | |
a.constant = !1, a.toWatch = []; | |
break; | |
case se.LocalsExpression: | |
a.constant = !1, a.toWatch = [] | |
} | |
} | |
function Lb(a) { | |
if (1 == a.length) { | |
a = a[0].expression; | |
var b = a.toWatch; | |
return 1 !== b.length ? b : b[0] !== a ? b : void 0 | |
} | |
} | |
function Mb(a) { | |
return a.type === se.Identifier || a.type === se.MemberExpression | |
} | |
function Nb(a) { | |
if (1 === a.body.length && Mb(a.body[0].expression)) return { | |
type: se.AssignmentExpression, | |
left: a.body[0].expression, | |
right: { | |
type: se.NGValueParameter | |
}, | |
operator: "=" | |
} | |
} | |
function Ob(a) { | |
return 0 === a.body.length || 1 === a.body.length && (a.body[0].expression.type === se.Literal || a.body[0].expression.type === se.ArrayExpression || a.body[0].expression.type === se.ObjectExpression) | |
} | |
function Pb(a, b) { | |
this.astBuilder = a, this.$filter = b | |
} | |
function Qb(a, b) { | |
this.astBuilder = a, this.$filter = b | |
} | |
function Rb(a) { | |
return "constructor" == a | |
} | |
function Sb(a) { | |
return x(a.valueOf) ? a.valueOf() : ue.call(a) | |
} | |
function Tb() { | |
var a, b, c = ga(), | |
e = ga(), | |
f = { | |
true: !0, | |
false: !1, | |
null: null, | |
undefined: void 0 | |
}; | |
this.addLiteral = function(a, b) { | |
f[a] = b | |
}, this.setIdentifierFns = function(c, d) { | |
return a = c, b = d, this | |
}, this.$get = ["$filter", function(g) { | |
function h(a, b, d) { | |
var f, h, j; | |
switch (d = d || u, typeof a) { | |
case "string": | |
j = a = a.trim(); | |
var q = d ? e : c; | |
if (f = q[j], !f) { | |
":" === a.charAt(0) && ":" === a.charAt(1) && (h = !0, a = a.substring(2)), f = d ? t : s; | |
var r = new re(f); | |
f = new te(r, g, f).parse(a), f.constant ? f.$$watchDelegate = o : h ? f.$$watchDelegate = f.literal ? n : l : f.inputs && (f.$$watchDelegate = k), d && (f = i(f)), q[j] = f | |
} | |
return p(f, b); | |
case "function": | |
return p(a, b); | |
default: | |
return p(m, b) | |
} | |
} | |
function i(a) { | |
function b(b, c, d, e) { | |
var f = u; | |
u = !0; | |
try { | |
return a(b, c, d, e) | |
} finally { | |
u = f | |
} | |
} | |
if (!a) return a; | |
b.$$watchDelegate = a.$$watchDelegate, b.assign = i(a.assign), b.constant = a.constant, b.literal = a.literal; | |
for (var c = 0; a.inputs && c < a.inputs.length; ++c) a.inputs[c] = i(a.inputs[c]); | |
return b.inputs = a.inputs, b | |
} | |
function j(a, b) { | |
return null == a || null == b ? a === b : ("object" != typeof a || (a = Sb(a), "object" != typeof a)) && (a === b || a !== a && b !== b) | |
} | |
function k(a, b, c, d, e) { | |
var f, g = d.inputs; | |
if (1 === g.length) { | |
var h = j, | |
g = g[0]; | |
return a.$watch(function(a) { | |
var b = g(a); | |
return j(b, h) || (f = d(a, void 0, void 0, [b]), h = b && Sb(b)), f | |
}, b, c, e) | |
} | |
for (var i = [], k = [], l = 0, m = g.length; l < m; l++) i[l] = j, k[l] = null; | |
return a.$watch(function(a) { | |
for (var b = !1, c = 0, e = g.length; c < e; c++) { | |
var h = g[c](a); | |
(b || (b = !j(h, i[c]))) && (k[c] = h, i[c] = h && Sb(h)) | |
} | |
return b && (f = d(a, void 0, void 0, k)), f | |
}, b, c, e) | |
} | |
function l(a, b, c, d) { | |
var e, f; | |
return e = a.$watch(function(a) { | |
return d(a) | |
}, function(a, c, d) { | |
f = a, x(b) && b.apply(this, arguments), r(a) && d.$$postDigest(function() { | |
r(f) && e() | |
}) | |
}, c) | |
} | |
function n(a, b, c, e) { | |
function f(a) { | |
var b = !0; | |
return d(a, function(a) { | |
r(a) || (b = !1) | |
}), b | |
} | |
var g, h; | |
return g = a.$watch(function(a) { | |
return e(a) | |
}, function(a, c, d) { | |
h = a, x(b) && b.call(this, a, c, d), f(a) && d.$$postDigest(function() { | |
f(h) && g() | |
}) | |
}, c) | |
} | |
function o(a, b, c, d) { | |
var e; | |
return e = a.$watch(function(a) { | |
return e(), d(a) | |
}, b, c) | |
} | |
function p(a, b) { | |
if (!b) return a; | |
var c = a.$$watchDelegate, | |
d = !1, | |
c = c !== n && c !== l ? function(c, e, f, g) { | |
return f = d && g ? g[0] : a(c, e, f, g), b(f, c, e) | |
} : function(c, d, e, f) { | |
return e = a(c, d, e, f), c = b(e, c, d), r(e) ? c : e | |
}; | |
return a.$$watchDelegate && a.$$watchDelegate !== k ? c.$$watchDelegate = a.$$watchDelegate : b.$stateful || (c.$$watchDelegate = k, d = !a.inputs, c.inputs = a.inputs ? a.inputs : [a]), c | |
} | |
var q = jd().noUnsafeEval, | |
s = { | |
csp: q, | |
expensiveChecks: !1, | |
literals: H(f), | |
isIdentifierStart: x(a) && a, | |
isIdentifierContinue: x(b) && b | |
}, | |
t = { | |
csp: q, | |
expensiveChecks: !0, | |
literals: H(f), | |
isIdentifierStart: x(a) && a, | |
isIdentifierContinue: x(b) && b | |
}, | |
u = !1; | |
return h.$$runningExpensiveChecks = function() { | |
return u | |
}, h | |
}] | |
} | |
function Ub() { | |
this.$get = ["$rootScope", "$exceptionHandler", function(a, b) { | |
return Wb(function(b) { | |
a.$evalAsync(b) | |
}, b) | |
}] | |
} | |
function Vb() { | |
this.$get = ["$browser", "$exceptionHandler", function(a, b) { | |
return Wb(function(b) { | |
a.defer(b) | |
}, b) | |
}] | |
} | |
function Wb(a, c) { | |
function e() { | |
this.$$state = { | |
status: 0 | |
} | |
} | |
function f(a, b) { | |
return function(c) { | |
b.call(a, c) | |
} | |
} | |
function g(b) { | |
!b.processScheduled && b.pending && (b.processScheduled = !0, a(function() { | |
var a, d, e; | |
e = b.pending, b.processScheduled = !1, b.pending = void 0; | |
for (var f = 0, g = e.length; f < g; ++f) { | |
d = e[f][0], a = e[f][b.status]; | |
try { | |
x(a) ? d.resolve(a(b.value)) : 1 === b.status ? d.resolve(b.value) : d.reject(b.value) | |
} catch (a) { | |
d.reject(a), c(a) | |
} | |
} | |
})) | |
} | |
function h() { | |
this.promise = new e | |
} | |
var j = b("$q", TypeError); | |
i(e.prototype, { | |
then: function(a, b, c) { | |
if (q(a) && q(b) && q(c)) return this; | |
var d = new h; | |
return this.$$state.pending = this.$$state.pending || [], this.$$state.pending.push([d, a, b, c]), 0 < this.$$state.status && g(this.$$state), d.promise | |
}, | |
catch: function(a) { | |
return this.then(null, a) | |
}, | |
finally: function(a, b) { | |
return this.then(function(b) { | |
return l(b, !0, a) | |
}, function(b) { | |
return l(b, !1, a) | |
}, b) | |
} | |
}), i(h.prototype, { | |
resolve: function(a) { | |
this.promise.$$state.status || (a === this.promise ? this.$$reject(j("qcycle", a)) : this.$$resolve(a)) | |
}, | |
$$resolve: function(a) { | |
function b(a) { | |
i || (i = !0, h.$$resolve(a)) | |
} | |
function d(a) { | |
i || (i = !0, h.$$reject(a)) | |
} | |
var e, h = this, | |
i = !1; | |
try { | |
(s(a) || x(a)) && (e = a && a.then), x(e) ? (this.promise.$$state.status = -1, e.call(a, b, d, f(this, this.notify))) : (this.promise.$$state.value = a, this.promise.$$state.status = 1, g(this.promise.$$state)) | |
} catch (a) { | |
d(a), c(a) | |
} | |
}, | |
reject: function(a) { | |
this.promise.$$state.status || this.$$reject(a) | |
}, | |
$$reject: function(a) { | |
this.promise.$$state.value = a, this.promise.$$state.status = 2, g(this.promise.$$state) | |
}, | |
notify: function(b) { | |
var d = this.promise.$$state.pending; | |
0 >= this.promise.$$state.status && d && d.length && a(function() { | |
for (var a, e, f = 0, g = d.length; f < g; f++) { | |
e = d[f][0], a = d[f][3]; | |
try { | |
e.notify(x(a) ? a(b) : b) | |
} catch (a) { | |
c(a) | |
} | |
} | |
}) | |
} | |
}); | |
var k = function(a, b) { | |
var c = new h; | |
return b ? c.resolve(a) : c.reject(a), c.promise | |
}, | |
l = function(a, b, c) { | |
var d = null; | |
try { | |
x(c) && (d = c()) | |
} catch (a) { | |
return k(a, !1) | |
} | |
return d && x(d.then) ? d.then(function() { | |
return k(a, b) | |
}, function(a) { | |
return k(a, !1) | |
}) : k(a, b) | |
}, | |
m = function(a, b, c, d) { | |
var e = new h; | |
return e.resolve(a), e.promise.then(b, c, d) | |
}, | |
n = function(a) { | |
if (!x(a)) throw j("norslvr", a); | |
var b = new h; | |
return a(function(a) { | |
b.resolve(a) | |
}, function(a) { | |
b.reject(a) | |
}), b.promise | |
}; | |
return n.prototype = e.prototype, n.defer = function() { | |
var a = new h; | |
return a.resolve = f(a, a.resolve), a.reject = f(a, a.reject), a.notify = f(a, a.notify), a | |
}, n.reject = function(a) { | |
var b = new h; | |
return b.reject(a), b.promise | |
}, n.when = m, n.resolve = m, n.all = function(a) { | |
var b = new h, | |
c = 0, | |
e = fd(a) ? [] : {}; | |
return d(a, function(a, d) { | |
c++, m(a).then(function(a) { | |
e.hasOwnProperty(d) || (e[d] = a, --c || b.resolve(e)) | |
}, function(a) { | |
e.hasOwnProperty(d) || b.reject(a) | |
}) | |
}), 0 === c && b.resolve(e), b.promise | |
}, n | |
} | |
function Xb() { | |
this.$get = ["$window", "$timeout", function(a, b) { | |
var c = a.requestAnimationFrame || a.webkitRequestAnimationFrame, | |
d = a.cancelAnimationFrame || a.webkitCancelAnimationFrame || a.webkitCancelRequestAnimationFrame, | |
e = !!c, | |
f = e ? function(a) { | |
var b = c(a); | |
return function() { | |
d(b) | |
} | |
} : function(a) { | |
var c = b(a, 16.66, !1); | |
return function() { | |
b.cancel(c) | |
} | |
}; | |
return f.supported = e, f | |
}] | |
} | |
function Yb() { | |
function a(a) { | |
function b() { | |
this.$$watchers = this.$$nextSibling = this.$$childHead = this.$$childTail = null, this.$$listeners = {}, this.$$listenerCount = {}, this.$$watchersCount = 0, this.$id = ++ed, this.$$ChildScope = null | |
} | |
return b.prototype = a, b | |
} | |
var e = 10, | |
f = b("$rootScope"), | |
g = null, | |
h = null; | |
this.digestTtl = function(a) { | |
return arguments.length && (e = a), e | |
}, this.$get = ["$exceptionHandler", "$parse", "$browser", function(b, i, j) { | |
function k(a) { | |
a.currentScope.$$destroyed = !0 | |
} | |
function l(a) { | |
9 === Rc && (a.$$childHead && l(a.$$childHead), a.$$nextSibling && l(a.$$nextSibling)), a.$parent = a.$$nextSibling = a.$$prevSibling = a.$$childHead = a.$$childTail = a.$root = a.$$watchers = null | |
} | |
function n() { | |
this.$id = ++ed, this.$$phase = this.$parent = this.$$watchers = this.$$nextSibling = this.$$prevSibling = this.$$childHead = this.$$childTail = null, this.$root = this, this.$$destroyed = !1, this.$$listeners = {}, this.$$listenerCount = {}, this.$$watchersCount = 0, this.$$isolateBindings = null | |
} | |
function o(a) { | |
if (w.$$phase) throw f("inprog", w.$$phase); | |
w.$$phase = a | |
} | |
function p(a, b) { | |
do a.$$watchersCount += b; while (a = a.$parent) | |
} | |
function r(a, b, c) { | |
do a.$$listenerCount[c] -= b, 0 === a.$$listenerCount[c] && delete a.$$listenerCount[c]; while (a = a.$parent) | |
} | |
function t() {} | |
function u() { | |
for (; A.length;) try { | |
A.shift()() | |
} catch (a) { | |
b(a) | |
} | |
h = null | |
} | |
function v() { | |
null === h && (h = j.defer(function() { | |
w.$apply(u) | |
})) | |
} | |
n.prototype = { | |
constructor: n, | |
$new: function(b, c) { | |
var d; | |
return c = c || this, b ? (d = new n, d.$root = this.$root) : (this.$$ChildScope || (this.$$ChildScope = a(this)), d = new this.$$ChildScope), d.$parent = c, d.$$prevSibling = c.$$childTail, c.$$childHead ? (c.$$childTail.$$nextSibling = d, c.$$childTail = d) : c.$$childHead = c.$$childTail = d, (b || c != this) && d.$on("$destroy", k), d | |
}, | |
$watch: function(a, b, c, d) { | |
var e = i(a); | |
if (e.$$watchDelegate) return e.$$watchDelegate(this, b, c, e, a); | |
var f = this, | |
h = f.$$watchers, | |
j = { | |
fn: b, | |
last: t, | |
get: e, | |
exp: d || a, | |
eq: !!c | |
}; | |
return g = null, x(b) || (j.fn = m), h || (h = f.$$watchers = []), h.unshift(j), p(this, 1), | |
function() { | |
0 <= G(h, j) && p(f, -1), g = null | |
} | |
}, | |
$watchGroup: function(a, b) { | |
function c() { | |
i = !1, j ? (j = !1, b(f, f, h)) : b(f, e, h) | |
} | |
var e = Array(a.length), | |
f = Array(a.length), | |
g = [], | |
h = this, | |
i = !1, | |
j = !0; | |
if (!a.length) { | |
var k = !0; | |
return h.$evalAsync(function() { | |
k && b(f, f, h) | |
}), | |
function() { | |
k = !1 | |
} | |
} | |
return 1 === a.length ? this.$watch(a[0], function(a, c, d) { | |
f[0] = a, e[0] = c, b(f, a === c ? f : e, d) | |
}) : (d(a, function(a, b) { | |
var d = h.$watch(a, function(a, d) { | |
f[b] = a, e[b] = d, i || (i = !0, h.$evalAsync(c)) | |
}); | |
g.push(d) | |
}), function() { | |
for (; g.length;) g.shift()() | |
}) | |
}, | |
$watchCollection: function(a, b) { | |
function d(a) { | |
e = a; | |
var b, d, g, h; | |
if (!q(e)) { | |
if (s(e)) | |
if (c(e)) | |
for (f !== m && (f = m, p = f.length = 0, k++), a = e.length, p !== a && (k++, f.length = p = a), b = 0; b < a; b++) h = f[b], g = e[b], d = h !== h && g !== g, d || h === g || (k++, f[b] = g); | |
else { | |
f !== n && (f = n = {}, p = 0, k++), a = 0; | |
for (b in e) Wc.call(e, b) && (a++, g = e[b], h = f[b], b in f ? (d = h !== h && g !== g, d || h === g || (k++, f[b] = g)) : (p++, f[b] = g, k++)); | |
if (p > a) | |
for (b in k++, f) Wc.call(e, b) || (p--, delete f[b]) | |
} | |
else f !== e && (f = e, k++); | |
return k | |
} | |
} | |
d.$stateful = !0; | |
var e, f, g, h = this, | |
j = 1 < b.length, | |
k = 0, | |
l = i(a, d), | |
m = [], | |
n = {}, | |
o = !0, | |
p = 0; | |
return this.$watch(l, function() { | |
if (o ? (o = !1, b(e, e, h)) : b(e, g, h), j) | |
if (s(e)) | |
if (c(e)) { | |
g = Array(e.length); | |
for (var a = 0; a < e.length; a++) g[a] = e[a] | |
} else | |
for (a in g = {}, e) Wc.call(e, a) && (g[a] = e[a]); | |
else g = e | |
}) | |
}, | |
$digest: function() { | |
var a, c, d, i, k, l, m, n, p, q, r, s = e, | |
v = []; | |
o("$digest"), j.$$checkUrlChange(), this === w && null !== h && (j.defer.cancel(h), u()), g = null; | |
do { | |
for (n = !1, p = this, l = 0; l < y.length; l++) { | |
try { | |
r = y[l], r.scope.$eval(r.expression, r.locals) | |
} catch (a) { | |
b(a) | |
} | |
g = null | |
} | |
y.length = 0; | |
a: do { | |
if (l = p.$$watchers) | |
for (m = l.length; m--;) try { | |
if (a = l[m]) | |
if (k = a.get, (c = k(p)) === (d = a.last) || (a.eq ? I(c, d) : "number" == typeof c && "number" == typeof d && isNaN(c) && isNaN(d))) { | |
if (a === g) { | |
n = !1; | |
break a | |
} | |
} else n = !0, g = a, a.last = a.eq ? H(c, null) : c, i = a.fn, i(c, d === t ? c : d, p), 5 > s && (q = 4 - s, v[q] || (v[q] = []), v[q].push({ | |
msg: x(a.exp) ? "fn: " + (a.exp.name || a.exp.toString()) : a.exp, | |
newVal: c, | |
oldVal: d | |
})) | |
} catch (a) { | |
b(a) | |
} | |
if (!(l = p.$$watchersCount && p.$$childHead || p !== this && p.$$nextSibling)) | |
for (; p !== this && !(l = p.$$nextSibling);) p = p.$parent | |
} while (p = l); | |
if ((n || y.length) && !s--) throw w.$$phase = null, f("infdig", e, v) | |
} while (n || y.length); | |
for (w.$$phase = null; B < z.length;) try { | |
z[B++]() | |
} catch (a) { | |
b(a) | |
} | |
z.length = B = 0 | |
}, | |
$destroy: function() { | |
if (!this.$$destroyed) { | |
var a = this.$parent; | |
this.$broadcast("$destroy"), this.$$destroyed = !0, this === w && j.$$applicationDestroyed(), p(this, -this.$$watchersCount); | |
for (var b in this.$$listenerCount) r(this, this.$$listenerCount[b], b); | |
a && a.$$childHead == this && (a.$$childHead = this.$$nextSibling), a && a.$$childTail == this && (a.$$childTail = this.$$prevSibling), this.$$prevSibling && (this.$$prevSibling.$$nextSibling = this.$$nextSibling), this.$$nextSibling && (this.$$nextSibling.$$prevSibling = this.$$prevSibling), this.$destroy = this.$digest = this.$apply = this.$evalAsync = this.$applyAsync = m, this.$on = this.$watch = this.$watchGroup = function() { | |
return m | |
}, this.$$listeners = {}, this.$$nextSibling = null, l(this) | |
} | |
}, | |
$eval: function(a, b) { | |
return i(a)(this, b) | |
}, | |
$evalAsync: function(a, b) { | |
w.$$phase || y.length || j.defer(function() { | |
y.length && w.$digest() | |
}), y.push({ | |
scope: this, | |
expression: i(a), | |
locals: b | |
}) | |
}, | |
$$postDigest: function(a) { | |
z.push(a) | |
}, | |
$apply: function(a) { | |
try { | |
o("$apply"); | |
try { | |
return this.$eval(a) | |
} finally { | |
w.$$phase = null | |
} | |
} catch (a) { | |
b(a) | |
} finally { | |
try { | |
w.$digest() | |
} catch (a) { | |
throw b(a), a | |
} | |
} | |
}, | |
$applyAsync: function(a) { | |
function b() { | |
c.$eval(a) | |
} | |
var c = this; | |
a && A.push(b), a = i(a), v() | |
}, | |
$on: function(a, b) { | |
var c = this.$$listeners[a]; | |
c || (this.$$listeners[a] = c = []), c.push(b); | |
var d = this; | |
do d.$$listenerCount[a] || (d.$$listenerCount[a] = 0), d.$$listenerCount[a]++; while (d = d.$parent); | |
var e = this; | |
return function() { | |
var d = c.indexOf(b); - 1 !== d && (c[d] = null, r(e, 1, a)) | |
} | |
}, | |
$emit: function(a, c) { | |
var d, e, f, g = [], | |
h = this, | |
i = !1, | |
j = { | |
name: a, | |
targetScope: h, | |
stopPropagation: function() { | |
i = !0 | |
}, | |
preventDefault: function() { | |
j.defaultPrevented = !0 | |
}, | |
defaultPrevented: !1 | |
}, | |
k = J([j], arguments, 1); | |
do { | |
for (d = h.$$listeners[a] || g, j.currentScope = h, e = 0, f = d.length; e < f; e++) | |
if (d[e]) try { | |
d[e].apply(null, k) | |
} catch (a) { | |
b(a) | |
} else d.splice(e, 1), e--, f--; | |
if (i) return j.currentScope = null, j; | |
h = h.$parent | |
} while (h); | |
return j.currentScope = null, j | |
}, | |
$broadcast: function(a, c) { | |
var d = this, | |
e = this, | |
f = { | |
name: a, | |
targetScope: this, | |
preventDefault: function() { | |
f.defaultPrevented = !0 | |
}, | |
defaultPrevented: !1 | |
}; | |
if (!this.$$listenerCount[a]) return f; | |
for (var g, h, i = J([f], arguments, 1); d = e;) { | |
for (f.currentScope = d, e = d.$$listeners[a] || [], g = 0, h = e.length; g < h; g++) | |
if (e[g]) try { | |
e[g].apply(null, i) | |
} catch (a) { | |
b(a) | |
} else e.splice(g, 1), g--, h--; | |
if (!(e = d.$$listenerCount[a] && d.$$childHead || d !== this && d.$$nextSibling)) | |
for (; d !== this && !(e = d.$$nextSibling);) d = d.$parent | |
} | |
return f.currentScope = null, f | |
} | |
}; | |
var w = new n, | |
y = w.$$asyncQueue = [], | |
z = w.$$postDigestQueue = [], | |
A = w.$$applyAsyncQueue = [], | |
B = 0; | |
return w | |
}] | |
} | |
function Zb() { | |
var a = /^\s*(https?|ftp|mailto|tel|file):/, | |
b = /^\s*((https?|ftp|file|blob):|data:image\/)/; | |
this.aHrefSanitizationWhitelist = function(b) { | |
return r(b) ? (a = b, this) : a | |
}, this.imgSrcSanitizationWhitelist = function(a) { | |
return r(a) ? (b = a, this) : b | |
}, this.$get = function() { | |
return function(c, d) { | |
var e, f = d ? b : a; | |
return e = gc(c).href, "" === e || e.match(f) ? c : "unsafe:" + e | |
} | |
} | |
} | |
function $b(a) { | |
if ("self" === a) return a; | |
if (u(a)) { | |
if (-1 < a.indexOf("***")) throw ve("iwcard", a); | |
return a = id(a).replace("\\*\\*", ".*").replace("\\*", "[^:/.?&;]*"), new RegExp("^" + a + "$") | |
} | |
if (y(a)) return new RegExp("^" + a.source + "$"); | |
throw ve("imatcher") | |
} | |
function _b(a) { | |
var b = []; | |
return r(a) && d(a, function(a) { | |
b.push($b(a)) | |
}), b | |
} | |
function ac() { | |
this.SCE_CONTEXTS = we; | |
var a = ["self"], | |
b = []; | |
this.resourceUrlWhitelist = function(b) { | |
return arguments.length && (a = _b(b)), a | |
}, this.resourceUrlBlacklist = function(a) { | |
return arguments.length && (b = _b(a)), b | |
}, this.$get = ["$injector", function(c) { | |
function d(a, b) { | |
return "self" === a ? hc(b) : !!a.exec(b.href) | |
} | |
function e(a) { | |
var b = function(a) { | |
this.$$unwrapTrustedValue = function() { | |
return a | |
} | |
}; | |
return a && (b.prototype = new a), b.prototype.valueOf = function() { | |
return this.$$unwrapTrustedValue() | |
}, b.prototype.toString = function() { | |
return this.$$unwrapTrustedValue().toString() | |
}, b | |
} | |
var f = function(a) { | |
throw ve("unsafe") | |
}; | |
c.has("$sanitize") && (f = c.get("$sanitize")); | |
var g = e(), | |
h = {}; | |
return h[we.HTML] = e(g), h[we.CSS] = e(g), h[we.URL] = e(g), h[we.JS] = e(g), h[we.RESOURCE_URL] = e(h[we.URL]), { | |
trustAs: function(a, b) { | |
var c = h.hasOwnProperty(a) ? h[a] : null; | |
if (!c) throw ve("icontext", a, b); | |
if (null === b || q(b) || "" === b) return b; | |
if ("string" != typeof b) throw ve("itype", a); | |
return new c(b) | |
}, | |
getTrusted: function(c, e) { | |
if (null === e || q(e) || "" === e) return e; | |
var g = h.hasOwnProperty(c) ? h[c] : null; | |
if (g && e instanceof g) return e.$$unwrapTrustedValue(); | |
if (c === we.RESOURCE_URL) { | |
var i, j, g = gc(e.toString()), | |
k = !1; | |
for (i = 0, j = a.length; i < j; i++) | |
if (d(a[i], g)) { | |
k = !0; | |
break | |
} | |
if (k) | |
for (i = 0, j = b.length; i < j; i++) | |
if (d(b[i], g)) { | |
k = !1; | |
break | |
} | |
if (k) return e; | |
throw ve("insecurl", e.toString()) | |
} | |
if (c === we.HTML) return f(e); | |
throw ve("unsafe") | |
}, | |
valueOf: function(a) { | |
return a instanceof g ? a.$$unwrapTrustedValue() : a | |
} | |
} | |
}] | |
} | |
function bc() { | |
var a = !0; | |
this.enabled = function(b) { | |
return arguments.length && (a = !!b), a | |
}, this.$get = ["$parse", "$sceDelegate", function(b, c) { | |
if (a && 8 > Rc) throw ve("iequirks"); | |
var e = ia(we); | |
e.isEnabled = function() { | |
return a | |
}, e.trustAs = c.trustAs, e.getTrusted = c.getTrusted, e.valueOf = c.valueOf, a || (e.trustAs = e.getTrusted = function(a, b) { | |
return b | |
}, e.valueOf = n), e.parseAs = function(a, c) { | |
var d = b(c); | |
return d.literal && d.constant ? d : b(c, function(b) { | |
return e.getTrusted(a, b) | |
}) | |
}; | |
var f = e.parseAs, | |
g = e.getTrusted, | |
h = e.trustAs; | |
return d(we, function(a, b) { | |
var c = Xc(b); | |
e[ka("parse_as_" + c)] = function(b) { | |
return f(a, b) | |
}, e[ka("get_trusted_" + c)] = function(b) { | |
return g(a, b) | |
}, e[ka("trust_as_" + c)] = function(b) { | |
return h(a, b) | |
} | |
}), e | |
}] | |
} | |
function cc() { | |
this.$get = ["$window", "$document", function(a, b) { | |
var c, d = {}, | |
e = !(a.chrome && a.chrome.app && a.chrome.app.runtime) && a.history && a.history.pushState, | |
f = k((/android (\d+)/.exec(Xc((a.navigator || {}).userAgent)) || [])[1]), | |
g = /Boxee/i.test((a.navigator || {}).userAgent), | |
h = b[0] || {}, | |
i = /^(Moz|webkit|ms)(?=[A-Z])/, | |
j = h.body && h.body.style, | |
l = !1, | |
m = !1; | |
if (j) { | |
for (var n in j) | |
if (l = i.exec(n)) { | |
c = l[0], c = c[0].toUpperCase() + c.substr(1); | |
break | |
} | |
c || (c = "WebkitOpacity" in j && "webkit"), l = !!("transition" in j || c + "Transition" in j), m = !!("animation" in j || c + "Animation" in j), !f || l && m || (l = u(j.webkitTransition), m = u(j.webkitAnimation)) | |
} | |
return { | |
history: !(!e || 4 > f || g), | |
hasEvent: function(a) { | |
if ("input" === a && 11 >= Rc) return !1; | |
if (q(d[a])) { | |
var b = h.createElement("div"); | |
d[a] = "on" + a in b | |
} | |
return d[a] | |
}, | |
csp: jd(), | |
vendorPrefix: c, | |
transitions: l, | |
animations: m, | |
android: f | |
} | |
}] | |
} | |
function dc() { | |
var a; | |
this.httpOptions = function(b) { | |
return b ? (a = b, this) : a | |
}, this.$get = ["$templateCache", "$http", "$q", "$sce", function(b, c, d, e) { | |
function f(g, h) { | |
f.totalPendingRequests++, u(g) && !q(b.get(g)) || (g = e.getTrustedResourceUrl(g)); | |
var j = c.defaults && c.defaults.transformResponse; | |
return fd(j) ? j = j.filter(function(a) { | |
return a !== gb | |
}) : j === gb && (j = null), c.get(g, i({ | |
cache: b, | |
transformResponse: j | |
}, a)).finally(function() { | |
f.totalPendingRequests-- | |
}).then(function(a) { | |
return b.put(g, a.data), a.data | |
}, function(a) { | |
if (!h) throw xe("tpload", g, a.status, a.statusText); | |
return d.reject(a) | |
}) | |
} | |
return f.totalPendingRequests = 0, f | |
}] | |
} | |
function ec() { | |
this.$get = ["$rootScope", "$browser", "$location", function(a, b, c) { | |
return { | |
findBindings: function(a, b, c) { | |
a = a.getElementsByClassName("ng-binding"); | |
var e = []; | |
return d(a, function(a) { | |
var f = dd.element(a).data("$binding"); | |
f && d(f, function(d) { | |
c ? new RegExp("(^|\\s)" + id(b) + "(\\s|\\||$)").test(d) && e.push(a) : -1 != d.indexOf(b) && e.push(a) | |
}) | |
}), e | |
}, | |
findModels: function(a, b, c) { | |
for (var d = ["ng-", "data-ng-", "ng\\:"], e = 0; e < d.length; ++e) { | |
var f = a.querySelectorAll("[" + d[e] + "model" + (c ? "=" : "*=") + '"' + b + '"]'); | |
if (f.length) return f | |
} | |
}, | |
getLocation: function() { | |
return c.url() | |
}, | |
setLocation: function(b) { | |
b !== c.url() && (c.url(b), a.$digest()) | |
}, | |
whenStable: function(a) { | |
b.notifyWhenNoOutstandingRequests(a) | |
} | |
} | |
}] | |
} | |
function fc() { | |
this.$get = ["$rootScope", "$browser", "$q", "$$q", "$exceptionHandler", function(a, b, c, d, e) { | |
function f(f, h, i) { | |
x(f) || (i = h, h = f, f = m); | |
var j, k = Zc.call(arguments, 3), | |
l = r(i) && !i, | |
n = (l ? d : c).defer(), | |
o = n.promise; | |
return j = b.defer(function() { | |
try { | |
n.resolve(f.apply(null, k)) | |
} catch (a) { | |
n.reject(a), e(a) | |
} finally { | |
delete g[o.$$timeoutId] | |
} | |
l || a.$apply() | |
}, h), o.$$timeoutId = j, g[j] = n, o | |
} | |
var g = {}; | |
return f.cancel = function(a) { | |
return !!(a && a.$$timeoutId in g) && (g[a.$$timeoutId].reject("canceled"), delete g[a.$$timeoutId], b.defer.cancel(a.$$timeoutId)) | |
}, f | |
}] | |
} | |
function gc(a) { | |
return Rc && (ye.setAttribute("href", a), a = ye.href), ye.setAttribute("href", a), { | |
href: ye.href, | |
protocol: ye.protocol ? ye.protocol.replace(/:$/, "") : "", | |
host: ye.host, | |
search: ye.search ? ye.search.replace(/^\?/, "") : "", | |
hash: ye.hash ? ye.hash.replace(/^#/, "") : "", | |
hostname: ye.hostname, | |
port: ye.port, | |
pathname: "/" === ye.pathname.charAt(0) ? ye.pathname : "/" + ye.pathname | |
} | |
} | |
function hc(a) { | |
return a = u(a) ? gc(a) : a, a.protocol === ze.protocol && a.host === ze.host | |
} | |
function ic() { | |
this.$get = o(a) | |
} | |
function jc(a) { | |
function b(a) { | |
try { | |
return decodeURIComponent(a) | |
} catch (b) { | |
return a | |
} | |
} | |
var c = a[0] || {}, | |
d = {}, | |
e = ""; | |
return function() { | |
var a, f, g, h, i; | |
if (a = c.cookie || "", a !== e) | |
for (e = a, a = e.split("; "), d = {}, g = 0; g < a.length; g++) f = a[g], h = f.indexOf("="), 0 < h && (i = b(f.substring(0, h)), q(d[i]) && (d[i] = b(f.substring(h + 1)))); | |
return d | |
} | |
} | |
function kc() { | |
this.$get = jc | |
} | |
function lc(a) { | |
function b(c, e) { | |
if (s(c)) { | |
var f = {}; | |
return d(c, function(a, c) { | |
f[c] = b(c, a) | |
}), f | |
} | |
return a.factory(c + "Filter", e) | |
} | |
this.register = b, this.$get = ["$injector", function(a) { | |
return function(b) { | |
return a.get(b + "Filter") | |
} | |
}], b("currency", qc), b("date", Bc), b("filter", mc), b("json", Cc), b("limitTo", Dc), b("lowercase", Ge), b("number", rc), b("orderBy", Fc), b("uppercase", He) | |
} | |
function mc() { | |
return function(a, d, e) { | |
if (!c(a)) { | |
if (null == a) return a; | |
throw b("filter")("notarray", a) | |
} | |
var f; | |
switch (pc(d)) { | |
case "function": | |
break; | |
case "boolean": | |
case "null": | |
case "number": | |
case "string": | |
f = !0; | |
case "object": | |
d = nc(d, e, f); | |
break; | |
default: | |
return a | |
} | |
return Array.prototype.filter.call(a, d) | |
} | |
} | |
function nc(a, b, c) { | |
var d = s(a) && "$" in a; | |
return !0 === b ? b = I : x(b) || (b = function(a, b) { | |
return !q(a) && (null === a || null === b ? a === b : !(s(b) || s(a) && !p(a)) && (a = Xc("" + a), b = Xc("" + b), -1 !== a.indexOf(b))) | |
}), | |
function(e) { | |
return d && !s(e) ? oc(e, a.$, b, !1) : oc(e, a, b, c) | |
} | |
} | |
function oc(a, b, c, d, e) { | |
var f = pc(a), | |
g = pc(b); | |
if ("string" === g && "!" === b.charAt(0)) return !oc(a, b.substring(1), c, d); | |
if (fd(a)) return a.some(function(a) { | |
return oc(a, b, c, d) | |
}); | |
switch (f) { | |
case "object": | |
var h; | |
if (d) { | |
for (h in a) | |
if ("$" !== h.charAt(0) && oc(a[h], b, c, !0)) return !0; | |
return !e && oc(a, b, c, !1) | |
} | |
if ("object" === g) { | |
for (h in b) | |
if (e = b[h], !x(e) && !q(e) && (f = "$" === h, !oc(f ? a : a[h], e, c, f, f))) return !1; | |
return !0 | |
} | |
return c(a, b); | |
case "function": | |
return !1; | |
default: | |
return c(a, b) | |
} | |
} | |
function pc(a) { | |
return null === a ? "null" : typeof a | |
} | |
function qc(a) { | |
var b = a.NUMBER_FORMATS; | |
return function(a, c, d) { | |
return q(c) && (c = b.CURRENCY_SYM), q(d) && (d = b.PATTERNS[1].maxFrac), null == a ? a : uc(a, b.PATTERNS[1], b.GROUP_SEP, b.DECIMAL_SEP, d).replace(/\u00A4/g, c) | |
} | |
} | |
function rc(a) { | |
var b = a.NUMBER_FORMATS; | |
return function(a, c) { | |
return null == a ? a : uc(a, b.PATTERNS[0], b.GROUP_SEP, b.DECIMAL_SEP, c) | |
} | |
} | |
function sc(a) { | |
var b, c, d, e, f, g = 0; | |
for (-1 < (c = a.indexOf(Be)) && (a = a.replace(Be, "")), 0 < (d = a.search(/e/i)) ? (0 > c && (c = d), c += +a.slice(d + 1), a = a.substring(0, d)) : 0 > c && (c = a.length), d = 0; a.charAt(d) == Ce; d++); | |
if (d == (f = a.length)) b = [0], c = 1; | |
else { | |
for (f--; a.charAt(f) == Ce;) f--; | |
for (c -= d, b = [], e = 0; d <= f; d++, e++) b[e] = +a.charAt(d) | |
} | |
return c > Ae && (b = b.splice(0, Ae - 1), g = c - 1, c = 1), { | |
d: b, | |
e: g, | |
i: c | |
} | |
} | |
function tc(a, b, c, d) { | |
var e = a.d, | |
f = e.length - a.i; | |
if (b = q(b) ? Math.min(Math.max(c, f), d) : +b, c = b + a.i, d = e[c], 0 < c) { | |
e.splice(Math.max(a.i, c)); | |
for (var g = c; g < e.length; g++) e[g] = 0 | |
} else | |
for (f = Math.max(0, f), a.i = 1, e.length = Math.max(1, c = b + 1), e[0] = 0, g = 1; g < c; g++) e[g] = 0; | |
if (5 <= d) | |
if (0 > c - 1) { | |
for (d = 0; d > c; d--) e.unshift(0), a.i++; | |
e.unshift(1), a.i++ | |
} else e[c - 1]++; | |
for (; f < Math.max(0, b); f++) e.push(0); | |
(b = e.reduceRight(function(a, b, c, d) { | |
return b += a, d[c] = b % 10, Math.floor(b / 10) | |
}, 0)) && (e.unshift(b), a.i++) | |
} | |
function uc(a, b, c, d, e) { | |
if (!u(a) && !v(a) || isNaN(a)) return ""; | |
var f = !isFinite(a), | |
g = !1, | |
h = Math.abs(a) + "", | |
i = ""; | |
if (f) i = "∞"; | |
else { | |
for (g = sc(h), tc(g, e, b.minFrac, b.maxFrac), i = g.d, h = g.i, e = g.e, f = [], g = i.reduce(function(a, b) { | |
return a && !b | |
}, !0); 0 > h;) i.unshift(0), h++; | |
for (0 < h ? f = i.splice(h, i.length) : (f = i, i = [0]), h = [], i.length >= b.lgSize && h.unshift(i.splice(-b.lgSize, i.length).join("")); i.length > b.gSize;) h.unshift(i.splice(-b.gSize, i.length).join("")); | |
i.length && h.unshift(i.join("")), i = h.join(c), f.length && (i += d + f.join("")), e && (i += "e+" + e) | |
} | |
return 0 > a && !g ? b.negPre + i + b.negSuf : b.posPre + i + b.posSuf | |
} | |
function vc(a, b, c, d) { | |
var e = ""; | |
for ((0 > a || d && 0 >= a) && (d ? a = -a + 1 : (a = -a, e = "-")), a = "" + a; a.length < b;) a = Ce + a; | |
return c && (a = a.substr(a.length - b)), e + a | |
} | |
function wc(a, b, c, d, e) { | |
return c = c || 0, | |
function(f) { | |
return f = f["get" + a](), (0 < c || f > -c) && (f += c), 0 === f && -12 == c && (f = 12), vc(f, b, d, e) | |
} | |
} | |
function xc(a, b, c) { | |
return function(d, e) { | |
var f = d["get" + a](), | |
g = Yc((c ? "STANDALONE" : "") + (b ? "SHORT" : "") + a); | |
return e[g][f] | |
} | |
} | |
function yc(a) { | |
var b = new Date(a, 0, 1).getDay(); | |
return new Date(a, 0, (4 >= b ? 5 : 12) - b) | |
} | |
function zc(a) { | |
return function(b) { | |
var c = yc(b.getFullYear()); | |
return b = +new Date(b.getFullYear(), b.getMonth(), b.getDate() + (4 - b.getDay())) - +c, b = 1 + Math.round(b / 6048e5), vc(b, a) | |
} | |
} | |
function Ac(a, b) { | |
return 0 >= a.getFullYear() ? b.ERAS[0] : b.ERAS[1] | |
} | |
function Bc(a) { | |
function b(a) { | |
var b; | |
if (b = a.match(c)) { | |
a = new Date(0); | |
var d = 0, | |
e = 0, | |
f = b[8] ? a.setUTCFullYear : a.setFullYear, | |
g = b[8] ? a.setUTCHours : a.setHours; | |
b[9] && (d = k(b[9] + b[10]), e = k(b[9] + b[11])), f.call(a, k(b[1]), k(b[2]) - 1, k(b[3])), d = k(b[4] || 0) - d, e = k(b[5] || 0) - e, f = k(b[6] || 0), b = Math.round(1e3 * parseFloat("0." + (b[7] || 0))), g.call(a, d, e, f, b) | |
} | |
return a | |
} | |
var c = /^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/; | |
return function(c, e, f) { | |
var g, h, i = "", | |
j = []; | |
if (e = e || "mediumDate", e = a.DATETIME_FORMATS[e] || e, u(c) && (c = Fe.test(c) ? k(c) : b(c)), v(c) && (c = new Date(c)), !w(c) || !isFinite(c.getTime())) return c; | |
for (; e;)(h = Ee.exec(e)) ? (j = J(j, h, 1), e = j.pop()) : (j.push(e), e = null); | |
var l = c.getTimezoneOffset(); | |
return f && (l = O(f, l), c = P(c, f, !0)), d(j, function(b) { | |
g = De[b], i += g ? g(c, a.DATETIME_FORMATS, l) : "''" === b ? "'" : b.replace(/(^'|'$)/g, "").replace(/''/g, "'") | |
}), i | |
} | |
} | |
function Cc() { | |
return function(a, b) { | |
return q(b) && (b = 2), M(a, b) | |
} | |
} | |
function Dc() { | |
return function(a, b, d) { | |
return b = 1 / 0 === Math.abs(Number(b)) ? Number(b) : k(b), isNaN(b) ? a : (v(a) && (a = a.toString()), c(a) ? (d = !d || isNaN(d) ? 0 : k(d), d = 0 > d ? Math.max(0, a.length + d) : d, 0 <= b ? Ec(a, d, d + b) : 0 === d ? Ec(a, b, a.length) : Ec(a, Math.max(0, d + b), d)) : a) | |
} | |
} | |
function Ec(a, b, c) { | |
return u(a) ? a.slice(b, c) : Zc.call(a, b, c) | |
} | |
function Fc(a) { | |
function d(b) { | |
return b.map(function(b) { | |
var c = 1, | |
d = n; | |
if (x(b)) d = b; | |
else if (u(b) && ("+" != b.charAt(0) && "-" != b.charAt(0) || (c = "-" == b.charAt(0) ? -1 : 1, b = b.substring(1)), "" !== b && (d = a(b), d.constant))) var e = d(), | |
d = function(a) { | |
return a[e] | |
}; | |
return { | |
get: d, | |
descending: c | |
} | |
}) | |
} | |
function e(a) { | |
switch (typeof a) { | |
case "number": | |
case "boolean": | |
case "string": | |
return !0; | |
default: | |
return !1 | |
} | |
} | |
function f(a, b) { | |
var c = 0, | |
d = a.type, | |
e = b.type; | |
if (d === e) { | |
var e = a.value, | |
f = b.value; | |
"string" === d ? (e = e.toLowerCase(), f = f.toLowerCase()) : "object" === d && (s(e) && (e = a.index), s(f) && (f = b.index)), e !== f && (c = e < f ? -1 : 1) | |
} else c = d < e ? -1 : 1; | |
return c | |
} | |
return function(a, g, h, i) { | |
if (null == a) return a; | |
if (!c(a)) throw b("orderBy")("notarray", a); | |
fd(g) || (g = [g]), 0 === g.length && (g = ["+"]); | |
var j = d(g), | |
k = h ? -1 : 1, | |
l = x(i) ? i : f; | |
return a = Array.prototype.map.call(a, function(a, b) { | |
return { | |
value: a, | |
tieBreaker: { | |
value: b, | |
type: "number", | |
index: b | |
}, | |
predicateValues: j.map(function(c) { | |
var d = c.get(a); | |
return c = typeof d, null === d ? (c = "string", d = "null") : "object" === c && (x(d.valueOf) && (d = d.valueOf(), e(d)) || p(d) && (d = d.toString(), e(d))), { | |
value: d, | |
type: c, | |
index: b | |
} | |
}) | |
} | |
}), a.sort(function(a, b) { | |
for (var c = 0, d = j.length; c < d; c++) { | |
var e = l(a.predicateValues[c], b.predicateValues[c]); | |
if (e) return e * j[c].descending * k | |
} | |
return l(a.tieBreaker, b.tieBreaker) * k | |
}), a = a.map(function(a) { | |
return a.value | |
}) | |
} | |
} | |
function Gc(a) { | |
return x(a) && (a = { | |
link: a | |
}), a.restrict = a.restrict || "AC", o(a) | |
} | |
function Hc(a, b, c, e, f) { | |
var g = this, | |
h = []; | |
g.$error = {}, g.$$success = {}, g.$pending = void 0, g.$name = f(b.name || b.ngForm || "")(c), g.$dirty = !1, g.$pristine = !0, g.$valid = !0, g.$invalid = !1, g.$submitted = !1, g.$$parentForm = Ke, g.$rollbackViewValue = function() { | |
d(h, function(a) { | |
a.$rollbackViewValue() | |
}) | |
}, g.$commitViewValue = function() { | |
d(h, function(a) { | |
a.$commitViewValue() | |
}) | |
}, g.$addControl = function(a) { | |
da(a.$name, "input"), h.push(a), a.$name && (g[a.$name] = a), a.$$parentForm = g | |
}, g.$$renameControl = function(a, b) { | |
var c = a.$name; | |
g[c] === a && delete g[c], g[b] = a, a.$name = b | |
}, g.$removeControl = function(a) { | |
a.$name && g[a.$name] === a && delete g[a.$name], d(g.$pending, function(b, c) { | |
g.$setValidity(c, null, a) | |
}), d(g.$error, function(b, c) { | |
g.$setValidity(c, null, a) | |
}), d(g.$$success, function(b, c) { | |
g.$setValidity(c, null, a) | |
}), G(h, a), a.$$parentForm = Ke | |
}, Pc({ | |
ctrl: this, | |
$element: a, | |
set: function(a, b, c) { | |
var d = a[b]; | |
d ? -1 === d.indexOf(c) && d.push(c) : a[b] = [c] | |
}, | |
unset: function(a, b, c) { | |
var d = a[b]; | |
d && (G(d, c), 0 === d.length && delete a[b]) | |
}, | |
$animate: e | |
}), g.$setDirty = function() { | |
e.removeClass(a, tf), e.addClass(a, uf), g.$dirty = !0, g.$pristine = !1, g.$$parentForm.$setDirty() | |
}, g.$setPristine = function() { | |
e.setClass(a, tf, uf + " ng-submitted"), g.$dirty = !1, g.$pristine = !0, g.$submitted = !1, d(h, function(a) { | |
a.$setPristine() | |
}) | |
}, g.$setUntouched = function() { | |
d(h, function(a) { | |
a.$setUntouched() | |
}) | |
}, g.$setSubmitted = function() { | |
e.addClass(a, "ng-submitted"), g.$submitted = !0, g.$$parentForm.$setSubmitted() | |
} | |
} | |
function Ic(a) { | |
a.$formatters.push(function(b) { | |
return a.$isEmpty(b) ? b : b.toString() | |
}) | |
} | |
function Jc(a, b, c, d, e, f) { | |
var g = Xc(b[0].type); | |
if (!e.android) { | |
var h = !1; | |
b.on("compositionstart", function() { | |
h = !0 | |
}), b.on("compositionend", function() { | |
h = !1, j() | |
}) | |
} | |
var i, j = function(a) { | |
if (i && (f.defer.cancel(i), i = null), !h) { | |
var e = b.val(); | |
a = a && a.type, "password" === g || c.ngTrim && "false" === c.ngTrim || (e = hd(e)), (d.$viewValue !== e || "" === e && d.$$hasNativeValidators) && d.$setViewValue(e, a) | |
} | |
}; | |
if (e.hasEvent("input")) b.on("input", j); | |
else { | |
var k = function(a, b, c) { | |
i || (i = f.defer(function() { | |
i = null, b && b.value === c || j(a) | |
})) | |
}; | |
b.on("keydown", function(a) { | |
var b = a.keyCode; | |
91 === b || 15 < b && 19 > b || 37 <= b && 40 >= b || k(a, this, this.value) | |
}), e.hasEvent("paste") && b.on("paste cut", k) | |
} | |
b.on("change", j), Xe[g] && d.$$hasNativeValidators && g === c.type && b.on("keydown wheel mousedown", function(a) { | |
if (!i) { | |
var b = this.validity, | |
c = b.badInput, | |
d = b.typeMismatch; | |
i = f.defer(function() { | |
i = null, b.badInput === c && b.typeMismatch === d || j(a) | |
}) | |
} | |
}), d.$render = function() { | |
var a = d.$isEmpty(d.$viewValue) ? "" : d.$viewValue; | |
b.val() !== a && b.val(a) | |
} | |
} | |
function Kc(a, b) { | |
return function(c, e) { | |
var f, g; | |
if (w(c)) return c; | |
if (u(c)) { | |
if ('"' == c.charAt(0) && '"' == c.charAt(c.length - 1) && (c = c.substring(1, c.length - 1)), Oe.test(c)) return new Date(c); | |
if (a.lastIndex = 0, f = a.exec(c)) return f.shift(), g = e ? { | |
yyyy: e.getFullYear(), | |
MM: e.getMonth() + 1, | |
dd: e.getDate(), | |
HH: e.getHours(), | |
mm: e.getMinutes(), | |
ss: e.getSeconds(), | |
sss: e.getMilliseconds() / 1e3 | |
} : { | |
yyyy: 1970, | |
MM: 1, | |
dd: 1, | |
HH: 0, | |
mm: 0, | |
ss: 0, | |
sss: 0 | |
}, d(f, function(a, c) { | |
c < b.length && (g[b[c]] = +a) | |
}), new Date(g.yyyy, g.MM - 1, g.dd, g.HH, g.mm, g.ss || 0, 1e3 * g.sss || 0) | |
} | |
return NaN | |
} | |
} | |
function Lc(a, b, c, d) { | |
return function(e, f, g, h, i, j, k) { | |
function l(a) { | |
return a && !(a.getTime && a.getTime() !== a.getTime()) | |
} | |
function m(a) { | |
return r(a) && !w(a) ? c(a) || void 0 : a | |
} | |
Mc(e, f, g, h), Jc(e, f, g, h, i, j); | |
var n, o = h && h.$options && h.$options.timezone; | |
if (h.$$parserName = a, h.$parsers.push(function(a) { | |
return h.$isEmpty(a) ? null : b.test(a) ? (a = c(a, n), o && (a = P(a, o)), a) : void 0 | |
}), h.$formatters.push(function(a) { | |
if (a && !w(a)) throw wf("datefmt", a); | |
return l(a) ? ((n = a) && o && (n = P(n, o, !0)), k("date")(a, d, o)) : (n = null, "") | |
}), r(g.min) || g.ngMin) { | |
var p; | |
h.$validators.min = function(a) { | |
return !l(a) || q(p) || c(a) >= p | |
}, g.$observe("min", function(a) { | |
p = m(a), h.$validate() | |
}) | |
} | |
if (r(g.max) || g.ngMax) { | |
var s; | |
h.$validators.max = function(a) { | |
return !l(a) || q(s) || c(a) <= s | |
}, g.$observe("max", function(a) { | |
s = m(a), h.$validate() | |
}) | |
} | |
} | |
} | |
function Mc(a, b, c, d) { | |
(d.$$hasNativeValidators = s(b[0].validity)) && d.$parsers.push(function(a) { | |
var c = b.prop("validity") || {}; | |
return c.badInput || c.typeMismatch ? void 0 : a | |
}) | |
} | |
function Nc(a, b, c, d, e) { | |
if (r(d)) { | |
if (a = a(d), !a.constant) throw wf("constexpr", c, d); | |
return a(b) | |
} | |
return e | |
} | |
function Oc(a, b) { | |
return a = "ngClass" + a, ["$animate", function(c) { | |
function e(a, b) { | |
var c = [], | |
d = 0; | |
a: for (; d < a.length; d++) { | |
for (var e = a[d], f = 0; f < b.length; f++) | |
if (e == b[f]) continue a; | |
c.push(e) | |
} | |
return c | |
} | |
function f(a) { | |
var b = []; | |
return fd(a) ? (d(a, function(a) { | |
b = b.concat(f(a)) | |
}), b) : u(a) ? a.split(" ") : s(a) ? (d(a, function(a, c) { | |
a && (b = b.concat(c.split(" "))) | |
}), b) : a | |
} | |
return { | |
restrict: "AC", | |
link: function(g, h, i) { | |
function j(a) { | |
a = k(a, 1), i.$addClass(a) | |
} | |
function k(a, b) { | |
var c = h.data("$classCounts") || ga(), | |
e = []; | |
return d(a, function(a) { | |
(0 < b || c[a]) && (c[a] = (c[a] || 0) + b, c[a] === +(0 < b) && e.push(a)) | |
}), h.data("$classCounts", c), e.join(" ") | |
} | |
function l(a, b) { | |
var d = e(b, a), | |
f = e(a, b), | |
d = k(d, 1), | |
f = k(f, -1); | |
d && d.length && c.addClass(h, d), f && f.length && c.removeClass(h, f) | |
} | |
function m(a) { | |
if (!0 === b || (1 & g.$index) === b) { | |
var c = f(a || []); | |
if (n) { | |
if (!I(a, n)) { | |
var d = f(n); | |
l(d, c) | |
} | |
} else j(c) | |
} | |
n = fd(a) ? a.map(function(a) { | |
return ia(a) | |
}) : ia(a) | |
} | |
var n; | |
g.$watch(i[a], m, !0), i.$observe("class", function(b) { | |
m(g.$eval(i[a])) | |
}), "ngClass" !== a && g.$watch("$index", function(c, d) { | |
var e = 1 & c; | |
if (e !== (1 & d)) { | |
var h = f(g.$eval(i[a])); | |
e === b ? j(h) : (e = k(h, -1), i.$removeClass(e)) | |
} | |
}) | |
} | |
} | |
}] | |
} | |
function Pc(a) { | |
function b(a, b) { | |
b && !f[a] ? (i.addClass(e, a), f[a] = !0) : !b && f[a] && (i.removeClass(e, a), f[a] = !1) | |
} | |
function c(a, c) { | |
a = a ? "-" + _(a, "-") : "", b(rf + a, !0 === c), b(sf + a, !1 === c) | |
} | |
var d = a.ctrl, | |
e = a.$element, | |
f = {}, | |
g = a.set, | |
h = a.unset, | |
i = a.$animate; | |
f[sf] = !(f[rf] = e.hasClass(rf)), d.$setValidity = function(a, e, f) { | |
q(e) ? (d.$pending || (d.$pending = {}), g(d.$pending, a, f)) : (d.$pending && h(d.$pending, a, f), Qc(d.$pending) && (d.$pending = void 0)), B(e) ? e ? (h(d.$error, a, f), g(d.$$success, a, f)) : (g(d.$error, a, f), h(d.$$success, a, f)) : (h(d.$error, a, f), h(d.$$success, a, f)), d.$pending ? (b(vf, !0), d.$valid = d.$invalid = void 0, c("", null)) : (b(vf, !1), d.$valid = Qc(d.$error), d.$invalid = !d.$valid, c("", d.$valid)), e = d.$pending && d.$pending[a] ? void 0 : !d.$error[a] && (!!d.$$success[a] || null), c(a, e), d.$$parentForm.$setValidity(a, e, d) | |
} | |
} | |
function Qc(a) { | |
if (a) | |
for (var b in a) | |
if (a.hasOwnProperty(b)) return !1; | |
return !0 | |
} | |
var Rc, Sc, Tc, Uc, Vc = /^\/(.+)\/([a-z]*)$/, | |
Wc = Object.prototype.hasOwnProperty, | |
Xc = function(a) { | |
return u(a) ? a.toLowerCase() : a | |
}, | |
Yc = function(a) { | |
return u(a) ? a.toUpperCase() : a | |
}, | |
Zc = [].slice, | |
$c = [].splice, | |
_c = [].push, | |
ad = Object.prototype.toString, | |
bd = Object.getPrototypeOf, | |
cd = b("ng"), | |
dd = a.angular || (a.angular = {}), | |
ed = 0; | |
Rc = a.document.documentMode, m.$inject = [], n.$inject = []; | |
var fd = Array.isArray, | |
gd = /^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array\]$/, | |
hd = function(a) { | |
return u(a) ? a.trim() : a | |
}, | |
id = function(a) { | |
return a.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g, "\\$1").replace(/\x08/g, "\\x08") | |
}, | |
jd = function() { | |
if (!r(jd.rules)) { | |
var b = a.document.querySelector("[ng-csp]") || a.document.querySelector("[data-ng-csp]"); | |
if (b) { | |
var c = b.getAttribute("ng-csp") || b.getAttribute("data-ng-csp"); | |
jd.rules = { | |
noUnsafeEval: !c || -1 !== c.indexOf("no-unsafe-eval"), | |
noInlineStyle: !c || -1 !== c.indexOf("no-inline-style") | |
} | |
} else { | |
b = jd; | |
try { | |
new Function(""), c = !1 | |
} catch (a) { | |
c = !0 | |
} | |
b.rules = { | |
noUnsafeEval: c, | |
noInlineStyle: !1 | |
} | |
} | |
} | |
return jd.rules | |
}, | |
kd = function() { | |
if (r(kd.name_)) return kd.name_; | |
var b, c, d, e, f = md.length; | |
for (c = 0; c < f; ++c) | |
if (d = md[c], b = a.document.querySelector("[" + d.replace(":", "\\:") + "jq]")) { | |
e = b.getAttribute(d + "jq"); | |
break | |
} | |
return kd.name_ = e | |
}, | |
ld = /:/g, | |
md = ["ng-", "data-ng-", "ng:", "x-ng-"], | |
nd = /[A-Z]/g, | |
od = !1, | |
pd = 3, | |
qd = { | |
full: "1.5.7", | |
major: 1, | |
minor: 5, | |
dot: 7, | |
codeName: "hexagonal-circumvolution" | |
}; | |
oa.expando = "ng339"; | |
var rd = oa.cache = {}, | |
sd = 1; | |
oa._data = function(a) { | |
return this.cache[a[this.expando]] || {} | |
}; | |
var td = /([\:\-\_]+(.))/g, | |
ud = /^moz([A-Z])/, | |
vd = { | |
mouseleave: "mouseout", | |
mouseenter: "mouseover" | |
}, | |
wd = b("jqLite"), | |
xd = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/, | |
yd = /<|&#?\w+;/, | |
zd = /<([\w:-]+)/, | |
Ad = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi, | |
Bd = { | |
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, "", ""] | |
}; | |
Bd.optgroup = Bd.option, Bd.tbody = Bd.tfoot = Bd.colgroup = Bd.caption = Bd.thead, Bd.th = Bd.td; | |
var Cd = a.Node.prototype.contains || function(a) { | |
return !!(16 & this.compareDocumentPosition(a)) | |
}, | |
Dd = oa.prototype = { | |
ready: function(b) { | |
function c() { | |
d || (d = !0, b()) | |
} | |
var d = !1; | |
"complete" === a.document.readyState ? a.setTimeout(c) : (this.on("DOMContentLoaded", c), oa(a).on("load", c)) | |
}, | |
toString: function() { | |
var a = []; | |
return d(this, function(b) { | |
a.push("" + b) | |
}), "[" + a.join(", ") + "]" | |
}, | |
eq: function(a) { | |
return Sc(0 <= a ? this[a] : this[this.length + a]) | |
}, | |
length: 0, | |
push: _c, | |
sort: [].sort, | |
splice: [].splice | |
}, | |
Ed = {}; | |
d("multiple selected checked disabled readOnly required open".split(" "), function(a) { | |
Ed[Xc(a)] = a | |
}); | |
var Fd = {}; | |
d("input select option textarea button form details".split(" "), function(a) { | |
Fd[a] = !0 | |
}); | |
var Gd = { | |
ngMinlength: "minlength", | |
ngMaxlength: "maxlength", | |
ngMin: "min", | |
ngMax: "max", | |
ngPattern: "pattern" | |
}; | |
d({ | |
data: ua, | |
removeData: sa, | |
hasData: function(a) { | |
for (var b in rd[a.ng339]) return !0; | |
return !1 | |
}, | |
cleanData: function(a) { | |
for (var b = 0, c = a.length; b < c; b++) sa(a[b]) | |
} | |
}, function(a, b) { | |
oa[b] = a | |
}), d({ | |
data: ua, | |
inheritedData: Aa, | |
scope: function(a) { | |
return Sc.data(a, "$scope") || Aa(a.parentNode || a, ["$isolateScope", "$scope"]) | |
}, | |
isolateScope: function(a) { | |
return Sc.data(a, "$isolateScope") || Sc.data(a, "$isolateScopeNoTemplate") | |
}, | |
controller: za, | |
injector: function(a) { | |
return Aa(a, "$injector") | |
}, | |
removeAttr: function(a, b) { | |
a.removeAttribute(b) | |
}, | |
hasClass: va, | |
css: function(a, b, c) { | |
return b = ka(b), r(c) ? void(a.style[b] = c) : a.style[b] | |
}, | |
attr: function(a, b, c) { | |
var d = a.nodeType; | |
if (d !== pd && 2 !== d && 8 !== d) | |
if (d = Xc(b), Ed[d]) { | |
if (!r(c)) return a[b] || (a.attributes.getNamedItem(b) || m).specified ? d : void 0; | |
c ? (a[b] = !0, a.setAttribute(b, d)) : (a[b] = !1, a.removeAttribute(d)) | |
} else if (r(c)) a.setAttribute(b, c); | |
else if (a.getAttribute) return a = a.getAttribute(b, 2), null === a ? void 0 : a | |
}, | |
prop: function(a, b, c) { | |
return r(c) ? void(a[b] = c) : a[b] | |
}, | |
text: function() { | |
function a(a, b) { | |
if (q(b)) { | |
var c = a.nodeType; | |
return 1 === c || c === pd ? a.textContent : "" | |
} | |
a.textContent = b | |
} | |
return a.$dv = "", a | |
}(), | |
val: function(a, b) { | |
if (q(b)) { | |
if (a.multiple && "select" === F(a)) { | |
var c = []; | |
return d(a.options, function(a) { | |
a.selected && c.push(a.value || a.text) | |
}), 0 === c.length ? null : c | |
} | |
return a.value | |
} | |
a.value = b | |
}, | |
html: function(a, b) { | |
return q(b) ? a.innerHTML : (qa(a, !0), void(a.innerHTML = b)) | |
}, | |
empty: Ba | |
}, function(a, b) { | |
oa.prototype[b] = function(b, c) { | |
var d, e, f = this.length; | |
if (a !== Ba && q(2 == a.length && a !== va && a !== za ? b : c)) { | |
if (s(b)) { | |
for (d = 0; d < f; d++) | |
if (a === ua) a(this[d], b); | |
else | |
for (e in b) a(this[d], e, b[e]); | |
return this | |
} | |
for (d = a.$dv, f = q(d) ? Math.min(f, 1) : f, e = 0; e < f; e++) { | |
var g = a(this[e], b, c); | |
d = d ? d + g : g | |
} | |
return d | |
} | |
for (d = 0; d < f; d++) a(this[d], b, c); | |
return this | |
} | |
}), d({ | |
removeData: sa, | |
on: function(a, b, c, d) { | |
if (r(d)) throw wd("onargs"); | |
if (la(a)) { | |
d = ta(a, !0); | |
var e = d.events, | |
f = d.handle; | |
f || (f = d.handle = Fa(a, e)), d = 0 <= b.indexOf(" ") ? b.split(" ") : [b]; | |
for (var g = d.length, h = function(b, d, g) { | |
var h = e[b]; | |
h || (h = e[b] = [], h.specialHandlerWrapper = d, "$destroy" === b || g || a.addEventListener(b, f, !1)), h.push(c) | |
}; g--;) b = d[g], vd[b] ? (h(vd[b], Ha), h(b, void 0, !0)) : h(b) | |
} | |
}, | |
off: ra, | |
one: function(a, b, c) { | |
a = Sc(a), a.on(b, function d() { | |
a.off(b, c), a.off(b, d) | |
}), a.on(b, c) | |
}, | |
replaceWith: function(a, b) { | |
var c, e = a.parentNode; | |
qa(a), d(new oa(b), function(b) { | |
c ? e.insertBefore(b, c.nextSibling) : e.replaceChild(b, a), c = b | |
}) | |
}, | |
children: function(a) { | |
var b = []; | |
return d(a.childNodes, function(a) { | |
1 === a.nodeType && b.push(a) | |
}), b | |
}, | |
contents: function(a) { | |
return a.contentDocument || a.childNodes || [] | |
}, | |
append: function(a, b) { | |
var c = a.nodeType; | |
if (1 === c || 11 === c) { | |
b = new oa(b); | |
for (var c = 0, d = b.length; c < d; c++) a.appendChild(b[c]) | |
} | |
}, | |
prepend: function(a, b) { | |
if (1 === a.nodeType) { | |
var c = a.firstChild; | |
d(new oa(b), function(b) { | |
a.insertBefore(b, c) | |
}) | |
} | |
}, | |
wrap: function(a, b) { | |
na(a, Sc(b).eq(0).clone()[0]) | |
}, | |
remove: Ca, | |
detach: function(a) { | |
Ca(a, !0) | |
}, | |
after: function(a, b) { | |
var c = a, | |
d = a.parentNode; | |
b = new oa(b); | |
for (var e = 0, f = b.length; e < f; e++) { | |
var g = b[e]; | |
d.insertBefore(g, c.nextSibling), c = g | |
} | |
}, | |
addClass: xa, | |
removeClass: wa, | |
toggleClass: function(a, b, c) { | |
b && d(b.split(" "), function(b) { | |
var d = c; | |
q(d) && (d = !va(a, b)), (d ? xa : wa)(a, b) | |
}) | |
}, | |
parent: function(a) { | |
return (a = a.parentNode) && 11 !== a.nodeType ? a : null | |
}, | |
next: function(a) { | |
return a.nextElementSibling | |
}, | |
find: function(a, b) { | |
return a.getElementsByTagName ? a.getElementsByTagName(b) : [] | |
}, | |
clone: pa, | |
triggerHandler: function(a, b, c) { | |
var e, f, g = b.type || b, | |
h = ta(a); | |
(h = (h = h && h.events) && h[g]) && (e = { | |
preventDefault: function() { | |
this.defaultPrevented = !0 | |
}, | |
isDefaultPrevented: function() { | |
return !0 === this.defaultPrevented | |
}, | |
stopImmediatePropagation: function() { | |
this.immediatePropagationStopped = !0 | |
}, | |
isImmediatePropagationStopped: function() { | |
return !0 === this.immediatePropagationStopped | |
}, | |
stopPropagation: m, | |
type: g, | |
target: a | |
}, b.type && (e = i(e, b)), b = ia(h), f = c ? [e].concat(c) : [e], d(b, function(b) { | |
e.isImmediatePropagationStopped() || b.apply(a, f) | |
})) | |
} | |
}, function(a, b) { | |
oa.prototype[b] = function(b, c, d) { | |
for (var e, f = 0, g = this.length; f < g; f++) q(e) ? (e = a(this[f], b, c, d), r(e) && (e = Sc(e))) : ya(e, a(this[f], b, c, d)); | |
return r(e) ? e : this | |
}, oa.prototype.bind = oa.prototype.on, oa.prototype.unbind = oa.prototype.off | |
}), Ka.prototype = { | |
put: function(a, b) { | |
this[Ja(a, this.nextUid)] = b | |
}, | |
get: function(a) { | |
return this[Ja(a, this.nextUid)] | |
}, | |
remove: function(a) { | |
var b = this[a = Ja(a, this.nextUid)]; | |
return delete this[a], b | |
} | |
}; | |
var Hd = [function() { | |
this.$get = [function() { | |
return Ka | |
}] | |
}], | |
Id = /^([^\(]+?)=>/, | |
Jd = /^[^\(]*\(\s*([^\)]*)\)/m, | |
Kd = /,/, | |
Ld = /^\s*(_?)(\S+?)\1\s*$/, | |
Md = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm, | |
Nd = b("$injector"); | |
Na.$$annotate = function(a, b, c) { | |
var e; | |
if ("function" == typeof a) { | |
if (!(e = a.$inject)) { | |
if (e = [], a.length) { | |
if (b) throw u(c) && c || (c = a.name || Ma(a)), Nd("strictdi", c); | |
b = La(a), d(b[1].split(Kd), function(a) { | |
a.replace(Ld, function(a, b, c) { | |
e.push(c) | |
}) | |
}) | |
} | |
a.$inject = e | |
} | |
} else fd(a) ? (b = a.length - 1, ca(a[b], "fn"), e = a.slice(0, b)) : ca(a, "fn", !0); | |
return e | |
}; | |
var Od = b("$animate"), | |
Pd = function() { | |
this.$get = m | |
}, | |
Qd = function() { | |
var a = new Ka, | |
b = []; | |
this.$get = ["$$AnimateRunner", "$rootScope", function(c, e) { | |
function f(a, b, c) { | |
var e = !1; | |
return b && (b = u(b) ? b.split(" ") : fd(b) ? b : [], d(b, function(b) { | |
b && (e = !0, a[b] = c) | |
})), e | |
} | |
function g() { | |
d(b, function(b) { | |
var c = a.get(b); | |
if (c) { | |
var e = Qa(b.attr("class")), | |
f = "", | |
g = ""; | |
d(c, function(a, b) { | |
a !== !!e[b] && (a ? f += (f.length ? " " : "") + b : g += (g.length ? " " : "") + b) | |
}), d(b, function(a) { | |
f && xa(a, f), g && wa(a, g) | |
}), a.remove(b) | |
} | |
}), b.length = 0 | |
} | |
return { | |
enabled: m, | |
on: m, | |
off: m, | |
pin: m, | |
push: function(d, h, i, j) { | |
return j && j(), i = i || {}, i.from && d.css(i.from), i.to && d.css(i.to), (i.addClass || i.removeClass) && (h = i.addClass, j = i.removeClass, i = a.get(d) || {}, h = f(i, h, !0), j = f(i, j, !1), (h || j) && (a.put(d, i), b.push(d), 1 === b.length && e.$$postDigest(g))), d = new c, d.complete(), d | |
} | |
} | |
}] | |
}, | |
Rd = ["$provide", function(a) { | |
var b = this; | |
this.$$registeredAnimations = Object.create(null), this.register = function(c, d) { | |
if (c && "." !== c.charAt(0)) throw Od("notcsel", c); | |
var e = c + "-animation"; | |
b.$$registeredAnimations[c.substr(1)] = e, a.factory(e, d) | |
}, this.classNameFilter = function(a) { | |
if (1 === arguments.length && (this.$$classNameFilter = a instanceof RegExp ? a : null) && /(\s+|\/)ng-animate(\s+|\/)/.test(this.$$classNameFilter.toString())) throw Od("nongcls", "ng-animate"); | |
return this.$$classNameFilter | |
}, this.$get = ["$$animateQueue", function(a) { | |
function b(a, b, c) { | |
if (c) { | |
var d; | |
a: { | |
for (d = 0; d < c.length; d++) { | |
var e = c[d]; | |
if (1 === e.nodeType) { | |
d = e; | |
break a | |
} | |
} | |
d = void 0 | |
}!d || d.parentNode || d.previousElementSibling || (c = null) | |
} | |
c ? c.after(a) : b.prepend(a) | |
} | |
return { | |
on: a.on, | |
off: a.off, | |
pin: a.pin, | |
enabled: a.enabled, | |
cancel: function(a) { | |
a.end && a.end() | |
}, | |
enter: function(c, d, e, f) { | |
return d = d && Sc(d), e = e && Sc(e), d = d || e.parent(), b(c, d, e), a.push(c, "enter", Ra(f)) | |
}, | |
move: function(c, d, e, f) { | |
return d = d && Sc(d), e = e && Sc(e), d = d || e.parent(), b(c, d, e), a.push(c, "move", Ra(f)) | |
}, | |
leave: function(b, c) { | |
return a.push(b, "leave", Ra(c), function() { | |
b.remove() | |
}) | |
}, | |
addClass: function(b, c, d) { | |
return d = Ra(d), d.addClass = Pa(d.addclass, c), a.push(b, "addClass", d) | |
}, | |
removeClass: function(b, c, d) { | |
return d = Ra(d), d.removeClass = Pa(d.removeClass, c), a.push(b, "removeClass", d) | |
}, | |
setClass: function(b, c, d, e) { | |
return e = Ra(e), e.addClass = Pa(e.addClass, c), e.removeClass = Pa(e.removeClass, d), a.push(b, "setClass", e) | |
}, | |
animate: function(b, c, d, e, f) { | |
return f = Ra(f), f.from = f.from ? i(f.from, c) : c, f.to = f.to ? i(f.to, d) : d, f.tempClasses = Pa(f.tempClasses, e || "ng-inline-animate"), a.push(b, "animate", f) | |
} | |
} | |
}] | |
}], | |
Sd = function() { | |
this.$get = ["$$rAF", function(a) { | |
function b(b) { | |
c.push(b), 1 < c.length || a(function() { | |
for (var a = 0; a < c.length; a++) c[a](); | |
c = [] | |
}) | |
} | |
var c = []; | |
return function() { | |
var a = !1; | |
return b(function() { | |
a = !0 | |
}), | |
function(c) { | |
a ? c() : b(c) | |
} | |
} | |
}] | |
}, | |
Td = function() { | |
this.$get = ["$q", "$sniffer", "$$animateAsyncRun", "$document", "$timeout", function(a, b, c, e, f) { | |
function g(a) { | |
this.setHost(a); | |
var b = c(); | |
this._doneCallbacks = [], this._tick = function(a) { | |
var c = e[0]; | |
c && c.hidden ? f(a, 0, !1) : b(a) | |
}, this._state = 0 | |
} | |
return g.chain = function(a, b) { | |
function c() { | |
d === a.length ? b(!0) : a[d](function(a) { | |
!1 === a ? b(!1) : (d++, c()) | |
}) | |
} | |
var d = 0; | |
c() | |
}, g.all = function(a, b) { | |
function c(c) { | |
f = f && c, ++e === a.length && b(f) | |
} | |
var e = 0, | |
f = !0; | |
d(a, function(a) { | |
a.done(c) | |
}) | |
}, g.prototype = { | |
setHost: function(a) { | |
this.host = a || {} | |
}, | |
done: function(a) { | |
2 === this._state ? a() : this._doneCallbacks.push(a) | |
}, | |
progress: m, | |
getPromise: function() { | |
if (!this.promise) { | |
var b = this; | |
this.promise = a(function(a, c) { | |
b.done(function(b) { | |
!1 === b ? c() : a() | |
}) | |
}) | |
} | |
return this.promise | |
}, | |
then: function(a, b) { | |
return this.getPromise().then(a, b) | |
}, | |
catch: function(a) { | |
return this.getPromise().catch(a) | |
}, | |
finally: function(a) { | |
return this.getPromise().finally(a) | |
}, | |
pause: function() { | |
this.host.pause && this.host.pause() | |
}, | |
resume: function() { | |
this.host.resume && this.host.resume() | |
}, | |
end: function() { | |
this.host.end && this.host.end(), this._resolve(!0) | |
}, | |
cancel: function() { | |
this.host.cancel && this.host.cancel(), this._resolve(!1) | |
}, | |
complete: function(a) { | |
var b = this; | |
0 === b._state && (b._state = 1, b._tick(function() { | |
b._resolve(a) | |
})) | |
}, | |
_resolve: function(a) { | |
2 !== this._state && (d(this._doneCallbacks, function(b) { | |
b(a) | |
}), this._doneCallbacks.length = 0, this._state = 2) | |
} | |
}, g | |
}] | |
}, | |
Ud = function() { | |
this.$get = ["$$rAF", "$q", "$$AnimateRunner", function(a, b, c) { | |
return function(b, d) { | |
function e() { | |
return a(function() { | |
f.addClass && (b.addClass(f.addClass), f.addClass = null), f.removeClass && (b.removeClass(f.removeClass), f.removeClass = null), f.to && (b.css(f.to), f.to = null), g || h.complete(), g = !0 | |
}), h | |
} | |
var f = d || {}; | |
f.$$prepared || (f = H(f)), f.cleanupStyles && (f.from = f.to = null), f.from && (b.css(f.from), f.from = null); | |
var g, h = new c; | |
return { | |
start: e, | |
end: e | |
} | |
} | |
}] | |
}, | |
Vd = b("$compile"), | |
Wd = new function() {}; | |
Wa.$inject = ["$provide", "$$sanitizeUriProvider"], Xa.prototype.isFirstChange = function() { | |
return this.previousValue === Wd | |
}; | |
var Xd = /^((?:x|data)[\:\-_])/i, | |
Yd = b("$controller"), | |
Zd = /^(\S+)(\s+as\s+([\w$]+))?$/, | |
$d = function() { | |
this.$get = ["$document", function(a) { | |
return function(b) { | |
return b ? !b.nodeType && b instanceof Sc && (b = b[0]) : b = a[0].body, b.offsetWidth + 1 | |
} | |
}] | |
}, | |
_d = "application/json", | |
ae = { | |
"Content-Type": _d + ";charset=utf-8" | |
}, | |
be = /^\[|^\{(?!\{)/, | |
ce = { | |
"[": /]$/, | |
"{": /}$/ | |
}, | |
de = /^\)\]\}',?\n/, | |
ee = b("$http"), | |
fe = function(a) { | |
return function() { | |
throw ee("legacy", a) | |
} | |
}, | |
ge = dd.$interpolateMinErr = b("$interpolate"); | |
ge.throwNoconcat = function(a) { | |
throw ge("noconcat", a) | |
}, ge.interr = function(a, b) { | |
return ge("interr", a, b.toString()) | |
}; | |
var he = /^([^\?#]*)(\?([^#]*))?(#(.*))?$/, | |
ie = { | |
http: 80, | |
https: 443, | |
ftp: 21 | |
}, | |
je = b("$location"), | |
ke = { | |
$$absUrl: "", | |
$$html5: !1, | |
$$replace: !1, | |
absUrl: zb("$$absUrl"), | |
url: function(a) { | |
if (q(a)) return this.$$url; | |
var b = he.exec(a); | |
return (b[1] || "" === a) && this.path(decodeURIComponent(b[1])), (b[2] || b[1] || "" === a) && this.search(b[3] || ""), this.hash(b[5] || ""), this | |
}, | |
protocol: zb("$$protocol"), | |
host: zb("$$host"), | |
port: zb("$$port"), | |
path: Ab("$$path", function(a) { | |
return a = null !== a ? a.toString() : "", "/" == a.charAt(0) ? a : "/" + a | |
}), | |
search: function(a, b) { | |
switch (arguments.length) { | |
case 0: | |
return this.$$search; | |
case 1: | |
if (u(a) || v(a)) a = a.toString(), this.$$search = S(a); | |
else { | |
if (!s(a)) throw je("isrcharg"); | |
a = H(a, {}), d(a, function(b, c) { | |
null == b && delete a[c] | |
}), this.$$search = a | |
} | |
break; | |
default: | |
q(b) || null === b ? delete this.$$search[a] : this.$$search[a] = b | |
} | |
return this.$$compose(), this | |
}, | |
hash: Ab("$$hash", function(a) { | |
return null !== a ? a.toString() : "" | |
}), | |
replace: function() { | |
return this.$$replace = !0, this | |
} | |
}; | |
d([yb, xb, wb], function(a) { | |
a.prototype = Object.create(ke), a.prototype.state = function(b) { | |
if (!arguments.length) return this.$$state; | |
if (a !== wb || !this.$$html5) throw je("nostate"); | |
return this.$$state = q(b) ? null : b, this | |
} | |
}); | |
var le = b("$parse"), | |
me = Function.prototype.call, | |
ne = Function.prototype.apply, | |
oe = Function.prototype.bind, | |
pe = ga(); | |
d("+ - * / % === !== == != < > <= >= && || ! = |".split(" "), function(a) { | |
pe[a] = !0 | |
}); | |
var qe = { | |
n: "\n", | |
f: "\f", | |
r: "\r", | |
t: "\t", | |
v: "\v", | |
"'": "'", | |
'"': '"' | |
}, | |
re = function(a) { | |
this.options = a | |
}; | |
re.prototype = { | |
constructor: re, | |
lex: function(a) { | |
for (this.text = a, this.index = 0, this.tokens = []; this.index < this.text.length;) | |
if (a = this.text.charAt(this.index), '"' === a || "'" === a) this.readString(a); | |
else if (this.isNumber(a) || "." === a && this.isNumber(this.peek())) this.readNumber(); | |
else if (this.isIdentifierStart(this.peekMultichar())) this.readIdent(); | |
else if (this.is(a, "(){}[].,;:?")) this.tokens.push({ | |
index: this.index, | |
text: a | |
}), this.index++; | |
else if (this.isWhitespace(a)) this.index++; | |
else { | |
var b = a + this.peek(), | |
c = b + this.peek(2), | |
d = pe[b], | |
e = pe[c]; | |
pe[a] || d || e ? (a = e ? c : d ? b : a, this.tokens.push({ | |
index: this.index, | |
text: a, | |
operator: !0 | |
}), this.index += a.length) : this.throwError("Unexpected next character ", this.index, this.index + 1) | |
} | |
return this.tokens | |
}, | |
is: function(a, b) { | |
return -1 !== b.indexOf(a) | |
}, | |
peek: function(a) { | |
return a = a || 1, this.index + a < this.text.length && this.text.charAt(this.index + a) | |
}, | |
isNumber: function(a) { | |
return "0" <= a && "9" >= a && "string" == typeof a | |
}, | |
isWhitespace: function(a) { | |
return " " === a || "\r" === a || "\t" === a || "\n" === a || "\v" === a || " " === a | |
}, | |
isIdentifierStart: function(a) { | |
return this.options.isIdentifierStart ? this.options.isIdentifierStart(a, this.codePointAt(a)) : this.isValidIdentifierStart(a) | |
}, | |
isValidIdentifierStart: function(a) { | |
return "a" <= a && "z" >= a || "A" <= a && "Z" >= a || "_" === a || "$" === a | |
}, | |
isIdentifierContinue: function(a) { | |
return this.options.isIdentifierContinue ? this.options.isIdentifierContinue(a, this.codePointAt(a)) : this.isValidIdentifierContinue(a) | |
}, | |
isValidIdentifierContinue: function(a, b) { | |
return this.isValidIdentifierStart(a, b) || this.isNumber(a) | |
}, | |
codePointAt: function(a) { | |
return 1 === a.length ? a.charCodeAt(0) : (a.charCodeAt(0) << 10) + a.charCodeAt(1) - 56613888 | |
}, | |
peekMultichar: function() { | |
var a = this.text.charAt(this.index), | |
b = this.peek(); | |
if (!b) return a; | |
var c = a.charCodeAt(0), | |
d = b.charCodeAt(0); | |
return 55296 <= c && 56319 >= c && 56320 <= d && 57343 >= d ? a + b : a | |
}, | |
isExpOperator: function(a) { | |
return "-" === a || "+" === a || this.isNumber(a) | |
}, | |
throwError: function(a, b, c) { | |
throw c = c || this.index, b = r(b) ? "s " + b + "-" + this.index + " [" + this.text.substring(b, c) + "]" : " " + c, le("lexerr", a, b, this.text) | |
}, | |
readNumber: function() { | |
for (var a = "", b = this.index; this.index < this.text.length;) { | |
var c = Xc(this.text.charAt(this.index)); | |
if ("." == c || this.isNumber(c)) a += c; | |
else { | |
var d = this.peek(); | |
if ("e" == c && this.isExpOperator(d)) a += c; | |
else if (this.isExpOperator(c) && d && this.isNumber(d) && "e" == a.charAt(a.length - 1)) a += c; | |
else { | |
if (!this.isExpOperator(c) || d && this.isNumber(d) || "e" != a.charAt(a.length - 1)) break; | |
this.throwError("Invalid exponent") | |
} | |
} | |
this.index++ | |
} | |
this.tokens.push({ | |
index: b, | |
text: a, | |
constant: !0, | |
value: Number(a) | |
}) | |
}, | |
readIdent: function() { | |
var a = this.index; | |
for (this.index += this.peekMultichar().length; this.index < this.text.length;) { | |
var b = this.peekMultichar(); | |
if (!this.isIdentifierContinue(b)) break; | |
this.index += b.length | |
} | |
this.tokens.push({ | |
index: a, | |
text: this.text.slice(a, this.index), | |
identifier: !0 | |
}) | |
}, | |
readString: function(a) { | |
var b = this.index; | |
this.index++; | |
for (var c = "", d = a, e = !1; this.index < this.text.length;) { | |
var f = this.text.charAt(this.index), | |
d = d + f; | |
if (e) "u" === f ? (e = this.text.substring(this.index + 1, this.index + 5), e.match(/[\da-f]{4}/i) || this.throwError("Invalid unicode escape [\\u" + e + "]"), this.index += 4, c += String.fromCharCode(parseInt(e, 16))) : c += qe[f] || f, e = !1; | |
else if ("\\" === f) e = !0; | |
else { | |
if (f === a) return this.index++, void this.tokens.push({ | |
index: b, | |
text: d, | |
constant: !0, | |
value: c | |
}); | |
c += f | |
} | |
this.index++ | |
} | |
this.throwError("Unterminated quote", b) | |
} | |
}; | |
var se = function(a, b) { | |
this.lexer = a, this.options = b | |
}; | |
se.Program = "Program", se.ExpressionStatement = "ExpressionStatement", se.AssignmentExpression = "AssignmentExpression", se.ConditionalExpression = "ConditionalExpression", se.LogicalExpression = "LogicalExpression", se.BinaryExpression = "BinaryExpression", se.UnaryExpression = "UnaryExpression", se.CallExpression = "CallExpression", se.MemberExpression = "MemberExpression", se.Identifier = "Identifier", se.Literal = "Literal", se.ArrayExpression = "ArrayExpression", se.Property = "Property", se.ObjectExpression = "ObjectExpression", se.ThisExpression = "ThisExpression", se.LocalsExpression = "LocalsExpression", se.NGValueParameter = "NGValueParameter", se.prototype = { | |
ast: function(a) { | |
return this.text = a, this.tokens = this.lexer.lex(a), a = this.program(), 0 !== this.tokens.length && this.throwError("is an unexpected token", this.tokens[0]), a | |
}, | |
program: function() { | |
for (var a = [];;) | |
if (0 < this.tokens.length && !this.peek("}", ")", ";", "]") && a.push(this.expressionStatement()), !this.expect(";")) return { | |
type: se.Program, | |
body: a | |
} | |
}, | |
expressionStatement: function() { | |
return { | |
type: se.ExpressionStatement, | |
expression: this.filterChain() | |
} | |
}, | |
filterChain: function() { | |
for (var a = this.expression(); this.expect("|");) a = this.filter(a); | |
return a | |
}, | |
expression: function() { | |
return this.assignment() | |
}, | |
assignment: function() { | |
var a = this.ternary(); | |
return this.expect("=") && (a = { | |
type: se.AssignmentExpression, | |
left: a, | |
right: this.assignment(), | |
operator: "=" | |
}), a | |
}, | |
ternary: function() { | |
var a, b, c = this.logicalOR(); | |
return this.expect("?") && (a = this.expression(), this.consume(":")) ? (b = this.expression(), { | |
type: se.ConditionalExpression, | |
test: c, | |
alternate: a, | |
consequent: b | |
}) : c | |
}, | |
logicalOR: function() { | |
for (var a = this.logicalAND(); this.expect("||");) a = { | |
type: se.LogicalExpression, | |
operator: "||", | |
left: a, | |
right: this.logicalAND() | |
}; | |
return a | |
}, | |
logicalAND: function() { | |
for (var a = this.equality(); this.expect("&&");) a = { | |
type: se.LogicalExpression, | |
operator: "&&", | |
left: a, | |
right: this.equality() | |
}; | |
return a | |
}, | |
equality: function() { | |
for (var a, b = this.relational(); a = this.expect("==", "!=", "===", "!==");) b = { | |
type: se.BinaryExpression, | |
operator: a.text, | |
left: b, | |
right: this.relational() | |
}; | |
return b | |
}, | |
relational: function() { | |
for (var a, b = this.additive(); a = this.expect("<", ">", "<=", ">=");) b = { | |
type: se.BinaryExpression, | |
operator: a.text, | |
left: b, | |
right: this.additive() | |
}; | |
return b | |
}, | |
additive: function() { | |
for (var a, b = this.multiplicative(); a = this.expect("+", "-");) b = { | |
type: se.BinaryExpression, | |
operator: a.text, | |
left: b, | |
right: this.multiplicative() | |
}; | |
return b | |
}, | |
multiplicative: function() { | |
for (var a, b = this.unary(); a = this.expect("*", "/", "%");) b = { | |
type: se.BinaryExpression, | |
operator: a.text, | |
left: b, | |
right: this.unary() | |
}; | |
return b | |
}, | |
unary: function() { | |
var a; | |
return (a = this.expect("+", "-", "!")) ? { | |
type: se.UnaryExpression, | |
operator: a.text, | |
prefix: !0, | |
argument: this.unary() | |
} : this.primary() | |
}, | |
primary: function() { | |
var a; | |
this.expect("(") ? (a = this.filterChain(), this.consume(")")) : this.expect("[") ? a = this.arrayDeclaration() : this.expect("{") ? a = this.object() : this.selfReferential.hasOwnProperty(this.peek().text) ? a = H(this.selfReferential[this.consume().text]) : this.options.literals.hasOwnProperty(this.peek().text) ? a = { | |
type: se.Literal, | |
value: this.options.literals[this.consume().text] | |
} : this.peek().identifier ? a = this.identifier() : this.peek().constant ? a = this.constant() : this.throwError("not a primary expression", this.peek()); | |
for (var b; b = this.expect("(", "[", ".");) "(" === b.text ? (a = { | |
type: se.CallExpression, | |
callee: a, | |
arguments: this.parseArguments() | |
}, this.consume(")")) : "[" === b.text ? (a = { | |
type: se.MemberExpression, | |
object: a, | |
property: this.expression(), | |
computed: !0 | |
}, this.consume("]")) : "." === b.text ? a = { | |
type: se.MemberExpression, | |
object: a, | |
property: this.identifier(), | |
computed: !1 | |
} : this.throwError("IMPOSSIBLE"); | |
return a | |
}, | |
filter: function(a) { | |
a = [a]; | |
for (var b = { | |
type: se.CallExpression, | |
callee: this.identifier(), | |
arguments: a, | |
filter: !0 | |
}; this.expect(":");) a.push(this.expression()); | |
return b | |
}, | |
parseArguments: function() { | |
var a = []; | |
if (")" !== this.peekToken().text) | |
do a.push(this.filterChain()); while (this.expect(",")); | |
return a | |
}, | |
identifier: function() { | |
var a = this.consume(); | |
return a.identifier || this.throwError("is not a valid identifier", a), { | |
type: se.Identifier, | |
name: a.text | |
} | |
}, | |
constant: function() { | |
return { | |
type: se.Literal, | |
value: this.consume().value | |
} | |
}, | |
arrayDeclaration: function() { | |
var a = []; | |
if ("]" !== this.peekToken().text) | |
do { | |
if (this.peek("]")) break; | |
a.push(this.expression()) | |
} while (this.expect(",")); | |
return this.consume("]"), { | |
type: se.ArrayExpression, | |
elements: a | |
} | |
}, | |
object: function() { | |
var a, b = []; | |
if ("}" !== this.peekToken().text) | |
do { | |
if (this.peek("}")) break; | |
a = { | |
type: se.Property, | |
kind: "init" | |
}, this.peek().constant ? (a.key = this.constant(), a.computed = !1, this.consume(":"), a.value = this.expression()) : this.peek().identifier ? (a.key = this.identifier(), a.computed = !1, this.peek(":") ? (this.consume(":"), a.value = this.expression()) : a.value = a.key) : this.peek("[") ? (this.consume("["), a.key = this.expression(), this.consume("]"), a.computed = !0, this.consume(":"), a.value = this.expression()) : this.throwError("invalid key", this.peek()), b.push(a) | |
} while (this.expect(",")); | |
return this.consume("}"), { | |
type: se.ObjectExpression, | |
properties: b | |
} | |
}, | |
throwError: function(a, b) { | |
throw le("syntax", b.text, a, b.index + 1, this.text, this.text.substring(b.index)) | |
}, | |
consume: function(a) { | |
if (0 === this.tokens.length) throw le("ueoe", this.text); | |
var b = this.expect(a); | |
return b || this.throwError("is unexpected, expecting [" + a + "]", this.peek()), b | |
}, | |
peekToken: function() { | |
if (0 === this.tokens.length) throw le("ueoe", this.text); | |
return this.tokens[0] | |
}, | |
peek: function(a, b, c, d) { | |
return this.peekAhead(0, a, b, c, d) | |
}, | |
peekAhead: function(a, b, c, d, e) { | |
if (this.tokens.length > a) { | |
a = this.tokens[a]; | |
var f = a.text; | |
if (f === b || f === c || f === d || f === e || !(b || c || d || e)) return a | |
} | |
return !1 | |
}, | |
expect: function(a, b, c, d) { | |
return !!(a = this.peek(a, b, c, d)) && (this.tokens.shift(), a) | |
}, | |
selfReferential: { | |
this: { | |
type: se.ThisExpression | |
}, | |
$locals: { | |
type: se.LocalsExpression | |
} | |
} | |
}, Pb.prototype = { | |
compile: function(a, b) { | |
var c = this, | |
e = this.astBuilder.ast(a); | |
this.state = { | |
nextId: 0, | |
filters: {}, | |
expensiveChecks: b, | |
fn: { | |
vars: [], | |
body: [], | |
own: {} | |
}, | |
assign: { | |
vars: [], | |
body: [], | |
own: {} | |
}, | |
inputs: [] | |
}, Kb(e, c.$filter); | |
var f, g = ""; | |
return this.stage = "assign", (f = Nb(e)) && (this.state.computing = "assign", g = this.nextId(), this.recurse(f, g), this.return_(g), g = "fn.assign=" + this.generateFunction("assign", "s,v,l")), f = Lb(e.body), c.stage = "inputs", d(f, function(a, b) { | |
var d = "fn" + b; | |
c.state[d] = { | |
vars: [], | |
body: [], | |
own: {} | |
}, c.state.computing = d; | |
var e = c.nextId(); | |
c.recurse(a, e), c.return_(e), c.state.inputs.push(d), a.watchId = b | |
}), this.state.computing = "fn", this.stage = "main", this.recurse(e), g = '"' + this.USE + " " + this.STRICT + '";\n' + this.filterPrefix() + "var fn=" + this.generateFunction("fn", "s,l,a,i") + g + this.watchFns() + "return fn;", g = new Function("$filter", "ensureSafeMemberName", "ensureSafeObject", "ensureSafeFunction", "getStringValue", "ensureSafeAssignContext", "ifDefined", "plus", "text", g)(this.$filter, Db, Fb, Gb, Eb, Hb, Ib, Jb, a), this.state = this.stage = void 0, g.literal = Ob(e), g.constant = e.constant, g | |
}, | |
USE: "use", | |
STRICT: "strict", | |
watchFns: function() { | |
var a = [], | |
b = this.state.inputs, | |
c = this; | |
return d(b, function(b) { | |
a.push("var " + b + "=" + c.generateFunction(b, "s")) | |
}), b.length && a.push("fn.inputs=[" + b.join(",") + "];"), a.join("") | |
}, | |
generateFunction: function(a, b) { | |
return "function(" + b + "){" + this.varsPrefix(a) + this.body(a) + "};" | |
}, | |
filterPrefix: function() { | |
var a = [], | |
b = this; | |
return d(this.state.filters, function(c, d) { | |
a.push(c + "=$filter(" + b.escape(d) + ")") | |
}), a.length ? "var " + a.join(",") + ";" : "" | |
}, | |
varsPrefix: function(a) { | |
return this.state[a].vars.length ? "var " + this.state[a].vars.join(",") + ";" : "" | |
}, | |
body: function(a) { | |
return this.state[a].body.join("") | |
}, | |
recurse: function(a, b, c, e, f, g) { | |
var h, i, j, k, l, n = this; | |
if (e = e || m, !g && r(a.watchId)) b = b || this.nextId(), this.if_("i", this.lazyAssign(b, this.computedMember("i", a.watchId)), this.lazyRecurse(a, b, c, e, f, !0)); | |
else switch (a.type) { | |
case se.Program: | |
d(a.body, function(b, c) { | |
n.recurse(b.expression, void 0, void 0, function(a) { | |
i = a | |
}), c !== a.body.length - 1 ? n.current().body.push(i, ";") : n.return_(i) | |
}); | |
break; | |
case se.Literal: | |
k = this.escape(a.value), this.assign(b, k), e(k); | |
break; | |
case se.UnaryExpression: | |
this.recurse(a.argument, void 0, void 0, function(a) { | |
i = a | |
}), k = a.operator + "(" + this.ifDefined(i, 0) + ")", this.assign(b, k), e(k); | |
break; | |
case se.BinaryExpression: | |
this.recurse(a.left, void 0, void 0, function(a) { | |
h = a | |
}), this.recurse(a.right, void 0, void 0, function(a) { | |
i = a | |
}), k = "+" === a.operator ? this.plus(h, i) : "-" === a.operator ? this.ifDefined(h, 0) + a.operator + this.ifDefined(i, 0) : "(" + h + ")" + a.operator + "(" + i + ")", this.assign(b, k), e(k); | |
break; | |
case se.LogicalExpression: | |
b = b || this.nextId(), n.recurse(a.left, b), n.if_("&&" === a.operator ? b : n.not(b), n.lazyRecurse(a.right, b)), e(b); | |
break; | |
case se.ConditionalExpression: | |
b = b || this.nextId(), n.recurse(a.test, b), n.if_(b, n.lazyRecurse(a.alternate, b), n.lazyRecurse(a.consequent, b)), e(b); | |
break; | |
case se.Identifier: | |
b = b || this.nextId(), c && (c.context = "inputs" === n.stage ? "s" : this.assign(this.nextId(), this.getHasOwnProperty("l", a.name) + "?l:s"), c.computed = !1, c.name = a.name), Db(a.name), n.if_("inputs" === n.stage || n.not(n.getHasOwnProperty("l", a.name)), function() { | |
n.if_("inputs" === n.stage || "s", function() { | |
f && 1 !== f && n.if_(n.not(n.nonComputedMember("s", a.name)), n.lazyAssign(n.nonComputedMember("s", a.name), "{}")), n.assign(b, n.nonComputedMember("s", a.name)) | |
}) | |
}, b && n.lazyAssign(b, n.nonComputedMember("l", a.name))), (n.state.expensiveChecks || Rb(a.name)) && n.addEnsureSafeObject(b), e(b); | |
break; | |
case se.MemberExpression: | |
h = c && (c.context = this.nextId()) || this.nextId(), b = b || this.nextId(), n.recurse(a.object, h, void 0, function() { | |
n.if_(n.notNull(h), function() { | |
f && 1 !== f && n.addEnsureSafeAssignContext(h), a.computed ? (i = n.nextId(), n.recurse(a.property, i), n.getStringValue(i), n.addEnsureSafeMemberName(i), f && 1 !== f && n.if_(n.not(n.computedMember(h, i)), n.lazyAssign(n.computedMember(h, i), "{}")), k = n.ensureSafeObject(n.computedMember(h, i)), n.assign(b, k), c && (c.computed = !0, c.name = i)) : (Db(a.property.name), f && 1 !== f && n.if_(n.not(n.nonComputedMember(h, a.property.name)), n.lazyAssign(n.nonComputedMember(h, a.property.name), "{}")), k = n.nonComputedMember(h, a.property.name), (n.state.expensiveChecks || Rb(a.property.name)) && (k = n.ensureSafeObject(k)), n.assign(b, k), c && (c.computed = !1, c.name = a.property.name)) | |
}, function() { | |
n.assign(b, "undefined") | |
}), e(b) | |
}, !!f); | |
break; | |
case se.CallExpression: | |
b = b || this.nextId(), a.filter ? (i = n.filter(a.callee.name), j = [], d(a.arguments, function(a) { | |
var b = n.nextId(); | |
n.recurse(a, b), j.push(b) | |
}), k = i + "(" + j.join(",") + ")", n.assign(b, k), e(b)) : (i = n.nextId(), h = {}, j = [], n.recurse(a.callee, i, h, function() { | |
n.if_(n.notNull(i), function() { | |
n.addEnsureSafeFunction(i), d(a.arguments, function(a) { | |
n.recurse(a, n.nextId(), void 0, function(a) { | |
j.push(n.ensureSafeObject(a)) | |
}) | |
}), h.name ? (n.state.expensiveChecks || n.addEnsureSafeObject(h.context), k = n.member(h.context, h.name, h.computed) + "(" + j.join(",") + ")") : k = i + "(" + j.join(",") + ")", k = n.ensureSafeObject(k), n.assign(b, k) | |
}, function() { | |
n.assign(b, "undefined") | |
}), e(b) | |
})); | |
break; | |
case se.AssignmentExpression: | |
if (i = this.nextId(), h = {}, !Mb(a.left)) throw le("lval"); | |
this.recurse(a.left, void 0, h, function() { | |
n.if_(n.notNull(h.context), function() { | |
n.recurse(a.right, i), n.addEnsureSafeObject(n.member(h.context, h.name, h.computed)), n.addEnsureSafeAssignContext(h.context), k = n.member(h.context, h.name, h.computed) + a.operator + i, n.assign(b, k), e(b || k) | |
}) | |
}, 1); | |
break; | |
case se.ArrayExpression: | |
j = [], d(a.elements, function(a) { | |
n.recurse(a, n.nextId(), void 0, function(a) { | |
j.push(a) | |
}) | |
}), k = "[" + j.join(",") + "]", this.assign(b, k), e(k); | |
break; | |
case se.ObjectExpression: | |
j = [], l = !1, d(a.properties, function(a) { | |
a.computed && (l = !0) | |
}), l ? (b = b || this.nextId(), this.assign(b, "{}"), d(a.properties, function(a) { | |
a.computed ? (h = n.nextId(), n.recurse(a.key, h)) : h = a.key.type === se.Identifier ? a.key.name : "" + a.key.value, i = n.nextId(), n.recurse(a.value, i), n.assign(n.member(b, h, a.computed), i) | |
})) : (d(a.properties, function(b) { | |
n.recurse(b.value, a.constant ? void 0 : n.nextId(), void 0, function(a) { | |
j.push(n.escape(b.key.type === se.Identifier ? b.key.name : "" + b.key.value) + ":" + a) | |
}) | |
}), k = "{" + j.join(",") + "}", this.assign(b, k)), e(b || k); | |
break; | |
case se.ThisExpression: | |
this.assign(b, "s"), e("s"); | |
break; | |
case se.LocalsExpression: | |
this.assign(b, "l"), e("l"); | |
break; | |
case se.NGValueParameter: | |
this.assign(b, "v"), e("v") | |
} | |
}, | |
getHasOwnProperty: function(a, b) { | |
var c = a + "." + b, | |
d = this.current().own; | |
return d.hasOwnProperty(c) || (d[c] = this.nextId(!1, a + "&&(" + this.escape(b) + " in " + a + ")")), d[c] | |
}, | |
assign: function(a, b) { | |
if (a) return this.current().body.push(a, "=", b, ";"), a | |
}, | |
filter: function(a) { | |
return this.state.filters.hasOwnProperty(a) || (this.state.filters[a] = this.nextId(!0)), this.state.filters[a] | |
}, | |
ifDefined: function(a, b) { | |
return "ifDefined(" + a + "," + this.escape(b) + ")" | |
}, | |
plus: function(a, b) { | |
return "plus(" + a + "," + b + ")" | |
}, | |
return_: function(a) { | |
this.current().body.push("return ", a, ";") | |
}, | |
if_: function(a, b, c) { | |
if (!0 === a) b(); | |
else { | |
var d = this.current().body; | |
d.push("if(", a, "){"), b(), d.push("}"), c && (d.push("else{"), c(), d.push("}")) | |
} | |
}, | |
not: function(a) { | |
return "!(" + a + ")" | |
}, | |
notNull: function(a) { | |
return a + "!=null" | |
}, | |
nonComputedMember: function(a, b) { | |
var c = /[^$_a-zA-Z0-9]/g; | |
return /[$_a-zA-Z][$_a-zA-Z0-9]*/.test(b) ? a + "." + b : a + '["' + b.replace(c, this.stringEscapeFn) + '"]' | |
}, | |
computedMember: function(a, b) { | |
return a + "[" + b + "]" | |
}, | |
member: function(a, b, c) { | |
return c ? this.computedMember(a, b) : this.nonComputedMember(a, b) | |
}, | |
addEnsureSafeObject: function(a) { | |
this.current().body.push(this.ensureSafeObject(a), ";") | |
}, | |
addEnsureSafeMemberName: function(a) { | |
this.current().body.push(this.ensureSafeMemberName(a), ";") | |
}, | |
addEnsureSafeFunction: function(a) { | |
this.current().body.push(this.ensureSafeFunction(a), ";") | |
}, | |
addEnsureSafeAssignContext: function(a) { | |
this.current().body.push(this.ensureSafeAssignContext(a), ";") | |
}, | |
ensureSafeObject: function(a) { | |
return "ensureSafeObject(" + a + ",text)" | |
}, | |
ensureSafeMemberName: function(a) { | |
return "ensureSafeMemberName(" + a + ",text)" | |
}, | |
ensureSafeFunction: function(a) { | |
return "ensureSafeFunction(" + a + ",text)" | |
}, | |
getStringValue: function(a) { | |
this.assign(a, "getStringValue(" + a + ")") | |
}, | |
ensureSafeAssignContext: function(a) { | |
return "ensureSafeAssignContext(" + a + ",text)" | |
}, | |
lazyRecurse: function(a, b, c, d, e, f) { | |
var g = this; | |
return function() { | |
g.recurse(a, b, c, d, e, f) | |
} | |
}, | |
lazyAssign: function(a, b) { | |
var c = this; | |
return function() { | |
c.assign(a, b) | |
} | |
}, | |
stringEscapeRegex: /[^ a-zA-Z0-9]/g, | |
stringEscapeFn: function(a) { | |
return "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4) | |
}, | |
escape: function(a) { | |
if (u(a)) return "'" + a.replace(this.stringEscapeRegex, this.stringEscapeFn) + "'"; | |
if (v(a)) return a.toString(); | |
if (!0 === a) return "true"; | |
if (!1 === a) return "false"; | |
if (null === a) return "null"; | |
if ("undefined" == typeof a) return "undefined"; | |
throw le("esc") | |
}, | |
nextId: function(a, b) { | |
var c = "v" + this.state.nextId++; | |
return a || this.current().vars.push(c + (b ? "=" + b : "")), c | |
}, | |
current: function() { | |
return this.state[this.state.computing] | |
} | |
}, Qb.prototype = { | |
compile: function(a, b) { | |
var c = this, | |
e = this.astBuilder.ast(a); | |
this.expression = a, this.expensiveChecks = b, Kb(e, c.$filter); | |
var f, g; | |
(f = Nb(e)) && (g = this.recurse(f)), f = Lb(e.body); | |
var h; | |
f && (h = [], d(f, function(a, b) { | |
var d = c.recurse(a); | |
a.input = d, h.push(d), a.watchId = b | |
})); | |
var i = []; | |
return d(e.body, function(a) { | |
i.push(c.recurse(a.expression)) | |
}), f = 0 === e.body.length ? m : 1 === e.body.length ? i[0] : function(a, b) { | |
var c; | |
return d(i, function(d) { | |
c = d(a, b) | |
}), c | |
}, g && (f.assign = function(a, b, c) { | |
return g(a, c, b) | |
}), h && (f.inputs = h), f.literal = Ob(e), f.constant = e.constant, f | |
}, | |
recurse: function(a, b, c) { | |
var e, f, g, h = this; | |
if (a.input) return this.inputs(a.input, a.watchId); | |
switch (a.type) { | |
case se.Literal: | |
return this.value(a.value, b); | |
case se.UnaryExpression: | |
return f = this.recurse(a.argument), this["unary" + a.operator](f, b); | |
case se.BinaryExpression: | |
return e = this.recurse(a.left), f = this.recurse(a.right), this["binary" + a.operator](e, f, b); | |
case se.LogicalExpression: | |
return e = this.recurse(a.left), f = this.recurse(a.right), this["binary" + a.operator](e, f, b); | |
case se.ConditionalExpression: | |
return this["ternary?:"](this.recurse(a.test), this.recurse(a.alternate), this.recurse(a.consequent), b); | |
case se.Identifier: | |
return Db(a.name, h.expression), h.identifier(a.name, h.expensiveChecks || Rb(a.name), b, c, h.expression); | |
case se.MemberExpression: | |
return e = this.recurse(a.object, !1, !!c), a.computed || (Db(a.property.name, h.expression), f = a.property.name), a.computed && (f = this.recurse(a.property)), a.computed ? this.computedMember(e, f, b, c, h.expression) : this.nonComputedMember(e, f, h.expensiveChecks, b, c, h.expression); | |
case se.CallExpression: | |
return g = [], d(a.arguments, function(a) { | |
g.push(h.recurse(a)) | |
}), a.filter && (f = this.$filter(a.callee.name)), a.filter || (f = this.recurse(a.callee, !0)), a.filter ? function(a, c, d, e) { | |
for (var h = [], i = 0; i < g.length; ++i) h.push(g[i](a, c, d, e)); | |
return a = f.apply(void 0, h, e), b ? { | |
context: void 0, | |
name: void 0, | |
value: a | |
} : a | |
} : function(a, c, d, e) { | |
var i, j = f(a, c, d, e); | |
if (null != j.value) { | |
Fb(j.context, h.expression), Gb(j.value, h.expression), i = []; | |
for (var k = 0; k < g.length; ++k) i.push(Fb(g[k](a, c, d, e), h.expression)); | |
i = Fb(j.value.apply(j.context, i), h.expression) | |
} | |
return b ? { | |
value: i | |
} : i | |
}; | |
case se.AssignmentExpression: | |
return e = this.recurse(a.left, !0, 1), f = this.recurse(a.right), | |
function(a, c, d, g) { | |
var i = e(a, c, d, g); | |
return a = f(a, c, d, g), Fb(i.value, h.expression), Hb(i.context), i.context[i.name] = a, b ? { | |
value: a | |
} : a | |
}; | |
case se.ArrayExpression: | |
return g = [], d(a.elements, function(a) { | |
g.push(h.recurse(a)) | |
}), | |
function(a, c, d, e) { | |
for (var f = [], h = 0; h < g.length; ++h) f.push(g[h](a, c, d, e)); | |
return b ? { | |
value: f | |
} : f | |
}; | |
case se.ObjectExpression: | |
return g = [], d(a.properties, function(a) { | |
a.computed ? g.push({ | |
key: h.recurse(a.key), | |
computed: !0, | |
value: h.recurse(a.value) | |
}) : g.push({ | |
key: a.key.type === se.Identifier ? a.key.name : "" + a.key.value, | |
computed: !1, | |
value: h.recurse(a.value) | |
}) | |
}), | |
function(a, c, d, e) { | |
for (var f = {}, h = 0; h < g.length; ++h) g[h].computed ? f[g[h].key(a, c, d, e)] = g[h].value(a, c, d, e) : f[g[h].key] = g[h].value(a, c, d, e); | |
return b ? { | |
value: f | |
} : f | |
}; | |
case se.ThisExpression: | |
return function(a) { | |
return b ? { | |
value: a | |
} : a | |
}; | |
case se.LocalsExpression: | |
return function(a, c) { | |
return b ? { | |
value: c | |
} : c | |
}; | |
case se.NGValueParameter: | |
return function(a, c, d) { | |
return b ? { | |
value: d | |
} : d | |
} | |
} | |
}, | |
"unary+": function(a, b) { | |
return function(c, d, e, f) { | |
return c = a(c, d, e, f), c = r(c) ? +c : 0, b ? { | |
value: c | |
} : c | |
} | |
}, | |
"unary-": function(a, b) { | |
return function(c, d, e, f) { | |
return c = a(c, d, e, f), c = r(c) ? -c : 0, b ? { | |
value: c | |
} : c | |
} | |
}, | |
"unary!": function(a, b) { | |
return function(c, d, e, f) { | |
return c = !a(c, d, e, f), b ? { | |
value: c | |
} : c | |
} | |
}, | |
"binary+": function(a, b, c) { | |
return function(d, e, f, g) { | |
var h = a(d, e, f, g); | |
return d = b(d, e, f, g), h = Jb(h, d), c ? { | |
value: h | |
} : h | |
} | |
}, | |
"binary-": function(a, b, c) { | |
return function(d, e, f, g) { | |
var h = a(d, e, f, g); | |
return d = b(d, e, f, g), h = (r(h) ? h : 0) - (r(d) ? d : 0), c ? { | |
value: h | |
} : h | |
} | |
}, | |
"binary*": function(a, b, c) { | |
return function(d, e, f, g) { | |
return d = a(d, e, f, g) * b(d, e, f, g), c ? { | |
value: d | |
} : d | |
} | |
}, | |
"binary/": function(a, b, c) { | |
return function(d, e, f, g) { | |
return d = a(d, e, f, g) / b(d, e, f, g), c ? { | |
value: d | |
} : d | |
} | |
}, | |
"binary%": function(a, b, c) { | |
return function(d, e, f, g) { | |
return d = a(d, e, f, g) % b(d, e, f, g), c ? { | |
value: d | |
} : d | |
} | |
}, | |
"binary===": function(a, b, c) { | |
return function(d, e, f, g) { | |
return d = a(d, e, f, g) === b(d, e, f, g), c ? { | |
value: d | |
} : d | |
} | |
}, | |
"binary!==": function(a, b, c) { | |
return function(d, e, f, g) { | |
return d = a(d, e, f, g) !== b(d, e, f, g), c ? { | |
value: d | |
} : d | |
} | |
}, | |
"binary==": function(a, b, c) { | |
return function(d, e, f, g) { | |
return d = a(d, e, f, g) == b(d, e, f, g), c ? { | |
value: d | |
} : d | |
} | |
}, | |
"binary!=": function(a, b, c) { | |
return function(d, e, f, g) { | |
return d = a(d, e, f, g) != b(d, e, f, g), c ? { | |
value: d | |
} : d | |
} | |
}, | |
"binary<": function(a, b, c) { | |
return function(d, e, f, g) { | |
return d = a(d, e, f, g) < b(d, e, f, g), c ? { | |
value: d | |
} : d | |
} | |
}, | |
"binary>": function(a, b, c) { | |
return function(d, e, f, g) { | |
return d = a(d, e, f, g) > b(d, e, f, g), c ? { | |
value: d | |
} : d | |
} | |
}, | |
"binary<=": function(a, b, c) { | |
return function(d, e, f, g) { | |
return d = a(d, e, f, g) <= b(d, e, f, g), c ? { | |
value: d | |
} : d | |
} | |
}, | |
"binary>=": function(a, b, c) { | |
return function(d, e, f, g) { | |
return d = a(d, e, f, g) >= b(d, e, f, g), c ? { | |
value: d | |
} : d | |
} | |
}, | |
"binary&&": function(a, b, c) { | |
return function(d, e, f, g) { | |
return d = a(d, e, f, g) && b(d, e, f, g), c ? { | |
value: d | |
} : d | |
} | |
}, | |
"binary||": function(a, b, c) { | |
return function(d, e, f, g) { | |
return d = a(d, e, f, g) || b(d, e, f, g), c ? { | |
value: d | |
} : d | |
} | |
}, | |
"ternary?:": function(a, b, c, d) { | |
return function(e, f, g, h) { | |
return e = a(e, f, g, h) ? b(e, f, g, h) : c(e, f, g, h), d ? { | |
value: e | |
} : e | |
} | |
}, | |
value: function(a, b) { | |
return function() { | |
return b ? { | |
context: void 0, | |
name: void 0, | |
value: a | |
} : a | |
} | |
}, | |
identifier: function(a, b, c, d, e) { | |
return function(f, g, h, i) { | |
return f = g && a in g ? g : f, d && 1 !== d && f && !f[a] && (f[a] = {}), g = f ? f[a] : void 0, b && Fb(g, e), c ? { | |
context: f, | |
name: a, | |
value: g | |
} : g | |
} | |
}, | |
computedMember: function(a, b, c, d, e) { | |
return function(f, g, h, i) { | |
var j, k, l = a(f, g, h, i); | |
return null != l && (j = b(f, g, h, i), j += "", Db(j, e), d && 1 !== d && (Hb(l), l && !l[j] && (l[j] = {})), k = l[j], Fb(k, e)), c ? { | |
context: l, | |
name: j, | |
value: k | |
} : k | |
} | |
}, | |
nonComputedMember: function(a, b, c, d, e, f) { | |
return function(g, h, i, j) { | |
return g = a(g, h, i, j), e && 1 !== e && (Hb(g), g && !g[b] && (g[b] = {})), h = null != g ? g[b] : void 0, (c || Rb(b)) && Fb(h, f), d ? { | |
context: g, | |
name: b, | |
value: h | |
} : h | |
} | |
}, | |
inputs: function(a, b) { | |
return function(c, d, e, f) { | |
return f ? f[b] : a(c, d, e) | |
} | |
} | |
}; | |
var te = function(a, b, c) { | |
this.lexer = a, this.$filter = b, this.options = c, this.ast = new se(a, c), this.astCompiler = c.csp ? new Qb(this.ast, b) : new Pb(this.ast, b) | |
}; | |
te.prototype = { | |
constructor: te, | |
parse: function(a) { | |
return this.astCompiler.compile(a, this.options.expensiveChecks) | |
} | |
}; | |
var ue = Object.prototype.valueOf, | |
ve = b("$sce"), | |
we = { | |
HTML: "html", | |
CSS: "css", | |
URL: "url", | |
RESOURCE_URL: "resourceUrl", | |
JS: "js" | |
}, | |
xe = b("$compile"), | |
ye = a.document.createElement("a"), | |
ze = gc(a.location.href); | |
jc.$inject = ["$document"], lc.$inject = ["$provide"]; | |
var Ae = 22, | |
Be = ".", | |
Ce = "0"; | |
qc.$inject = ["$locale"], rc.$inject = ["$locale"]; | |
var De = { | |
yyyy: wc("FullYear", 4, 0, !1, !0), | |
yy: wc("FullYear", 2, 0, !0, !0), | |
y: wc("FullYear", 1, 0, !1, !0), | |
MMMM: xc("Month"), | |
MMM: xc("Month", !0), | |
MM: wc("Month", 2, 1), | |
M: wc("Month", 1, 1), | |
LLLL: xc("Month", !1, !0), | |
dd: wc("Date", 2), | |
d: wc("Date", 1), | |
HH: wc("Hours", 2), | |
H: wc("Hours", 1), | |
hh: wc("Hours", 2, -12), | |
h: wc("Hours", 1, -12), | |
mm: wc("Minutes", 2), | |
m: wc("Minutes", 1), | |
ss: wc("Seconds", 2), | |
s: wc("Seconds", 1), | |
sss: wc("Milliseconds", 3), | |
EEEE: xc("Day"), | |
EEE: xc("Day", !0), | |
a: function(a, b) { | |
return 12 > a.getHours() ? b.AMPMS[0] : b.AMPMS[1] | |
}, | |
Z: function(a, b, c) { | |
return a = -1 * c, a = (0 <= a ? "+" : "") + (vc(Math[0 < a ? "floor" : "ceil"](a / 60), 2) + vc(Math.abs(a % 60), 2)) | |
}, | |
ww: zc(2), | |
w: zc(1), | |
G: Ac, | |
GG: Ac, | |
GGG: Ac, | |
GGGG: function(a, b) { | |
return 0 >= a.getFullYear() ? b.ERANAMES[0] : b.ERANAMES[1] | |
} | |
}, | |
Ee = /((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/, | |
Fe = /^\-?\d+$/; | |
Bc.$inject = ["$locale"]; | |
var Ge = o(Xc), | |
He = o(Yc); | |
Fc.$inject = ["$parse"]; | |
var Ie = o({ | |
restrict: "E", | |
compile: function(a, b) { | |
if (!b.href && !b.xlinkHref) return function(a, b) { | |
if ("a" === b[0].nodeName.toLowerCase()) { | |
var c = "[object SVGAnimatedString]" === ad.call(b.prop("href")) ? "xlink:href" : "href"; | |
b.on("click", function(a) { | |
b.attr(c) || a.preventDefault() | |
}) | |
} | |
} | |
} | |
}), | |
Je = {}; | |
d(Ed, function(a, b) { | |
function c(a, c, e) { | |
a.$watch(e[d], function(a) { | |
e.$set(b, !!a) | |
}) | |
} | |
if ("multiple" != a) { | |
var d = Ya("ng-" + b), | |
e = c; | |
"checked" === a && (e = function(a, b, e) { | |
e.ngModel !== e[d] && c(a, b, e) | |
}), Je[d] = function() { | |
return { | |
restrict: "A", | |
priority: 100, | |
link: e | |
} | |
} | |
} | |
}), d(Gd, function(a, b) { | |
Je[b] = function() { | |
return { | |
priority: 100, | |
link: function(a, c, d) { | |
return "ngPattern" === b && "/" == d.ngPattern.charAt(0) && (c = d.ngPattern.match(Vc)) ? void d.$set("ngPattern", new RegExp(c[1], c[2])) : void a.$watch(d[b], function(a) { | |
d.$set(b, a) | |
}) | |
} | |
} | |
} | |
}), d(["src", "srcset", "href"], function(a) { | |
var b = Ya("ng-" + a); | |
Je[b] = function() { | |
return { | |
priority: 99, | |
link: function(c, d, e) { | |
var f = a, | |
g = a; | |
"href" === a && "[object SVGAnimatedString]" === ad.call(d.prop("href")) && (g = "xlinkHref", e.$attr[g] = "xlink:href", f = null), e.$observe(b, function(b) { | |
b ? (e.$set(g, b), Rc && f && d.prop(f, e[g])) : "href" === a && e.$set(g, null) | |
}) | |
} | |
} | |
} | |
}); | |
var Ke = { | |
$addControl: m, | |
$$renameControl: function(a, b) { | |
a.$name = b | |
}, | |
$removeControl: m, | |
$setValidity: m, | |
$setDirty: m, | |
$setPristine: m, | |
$setSubmitted: m | |
}; | |
Hc.$inject = ["$element", "$attrs", "$scope", "$animate", "$interpolate"]; | |
var Le = function(a) { | |
return ["$timeout", "$parse", function(b, c) { | |
function d(a) { | |
return "" === a ? c('this[""]').assign : c(a).assign || m | |
} | |
return { | |
name: "form", | |
restrict: a ? "EAC" : "E", | |
require: ["form", "^^?form"], | |
controller: Hc, | |
compile: function(c, e) { | |
c.addClass(tf).addClass(rf); | |
var f = e.name ? "name" : !(!a || !e.ngForm) && "ngForm"; | |
return { | |
pre: function(a, c, e, g) { | |
var h = g[0]; | |
if (!("action" in e)) { | |
var j = function(b) { | |
a.$apply(function() { | |
h.$commitViewValue(), h.$setSubmitted() | |
}), b.preventDefault() | |
}; | |
c[0].addEventListener("submit", j, !1), c.on("$destroy", function() { | |
b(function() { | |
c[0].removeEventListener("submit", j, !1) | |
}, 0, !1) | |
}) | |
}(g[1] || h.$$parentForm).$addControl(h); | |
var k = f ? d(h.$name) : m; | |
f && (k(a, h), e.$observe(f, function(b) { | |
h.$name !== b && (k(a, void 0), h.$$parentForm.$$renameControl(h, b), (k = d(h.$name))(a, h)) | |
})), c.on("$destroy", function() { | |
h.$$parentForm.$removeControl(h), k(a, void 0), i(h, Ke) | |
}) | |
} | |
} | |
} | |
} | |
}] | |
}, | |
Me = Le(), | |
Ne = Le(!0), | |
Oe = /^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/, | |
Pe = /^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:\/?#]+|\[[a-f\d:]+\])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i, | |
Qe = /^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/, | |
Re = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/, | |
Se = /^(\d{4,})-(\d{2})-(\d{2})$/, | |
Te = /^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/, | |
Ue = /^(\d{4,})-W(\d\d)$/, | |
Ve = /^(\d{4,})-(\d\d)$/, | |
We = /^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/, | |
Xe = ga(); | |
d(["date", "datetime-local", "month", "time", "week"], function(a) { | |
Xe[a] = !0 | |
}); | |
var Ye = { | |
text: function(a, b, c, d, e, f) { | |
Jc(a, b, c, d, e, f), Ic(d) | |
}, | |
date: Lc("date", Se, Kc(Se, ["yyyy", "MM", "dd"]), "yyyy-MM-dd"), | |
"datetime-local": Lc("datetimelocal", Te, Kc(Te, "yyyy MM dd HH mm ss sss".split(" ")), "yyyy-MM-ddTHH:mm:ss.sss"), | |
time: Lc("time", We, Kc(We, ["HH", "mm", "ss", "sss"]), "HH:mm:ss.sss"), | |
week: Lc("week", Ue, function(a, b) { | |
if (w(a)) return a; | |
if (u(a)) { | |
Ue.lastIndex = 0; | |
var c = Ue.exec(a); | |
if (c) { | |
var d = +c[1], | |
e = +c[2], | |
f = c = 0, | |
g = 0, | |
h = 0, | |
i = yc(d), | |
e = 7 * (e - 1); | |
return b && (c = b.getHours(), f = b.getMinutes(), g = b.getSeconds(), h = b.getMilliseconds()), new Date(d, 0, i.getDate() + e, c, f, g, h) | |
} | |
} | |
return NaN | |
}, "yyyy-Www"), | |
month: Lc("month", Ve, Kc(Ve, ["yyyy", "MM"]), "yyyy-MM"), | |
number: function(a, b, c, d, e, f) { | |
if (Mc(a, b, c, d), Jc(a, b, c, d, e, f), d.$$parserName = "number", d.$parsers.push(function(a) { | |
return d.$isEmpty(a) ? null : Re.test(a) ? parseFloat(a) : void 0 | |
}), d.$formatters.push(function(a) { | |
if (!d.$isEmpty(a)) { | |
if (!v(a)) throw wf("numfmt", a); | |
a = a.toString() | |
} | |
return a | |
}), r(c.min) || c.ngMin) { | |
var g; | |
d.$validators.min = function(a) { | |
return d.$isEmpty(a) || q(g) || a >= g | |
}, c.$observe("min", function(a) { | |
r(a) && !v(a) && (a = parseFloat(a, 10)), g = v(a) && !isNaN(a) ? a : void 0, d.$validate() | |
}) | |
} | |
if (r(c.max) || c.ngMax) { | |
var h; | |
d.$validators.max = function(a) { | |
return d.$isEmpty(a) || q(h) || a <= h | |
}, c.$observe("max", function(a) { | |
r(a) && !v(a) && (a = parseFloat(a, 10)), h = v(a) && !isNaN(a) ? a : void 0, d.$validate() | |
}) | |
} | |
}, | |
url: function(a, b, c, d, e, f) { | |
Jc(a, b, c, d, e, f), Ic(d), d.$$parserName = "url", d.$validators.url = function(a, b) { | |
var c = a || b; | |
return d.$isEmpty(c) || Pe.test(c) | |
} | |
}, | |
email: function(a, b, c, d, e, f) { | |
Jc(a, b, c, d, e, f), Ic(d), d.$$parserName = "email", d.$validators.email = function(a, b) { | |
var c = a || b; | |
return d.$isEmpty(c) || Qe.test(c) | |
} | |
}, | |
radio: function(a, b, c, d) { | |
q(c.name) && b.attr("name", ++ed), b.on("click", function(a) { | |
b[0].checked && d.$setViewValue(c.value, a && a.type) | |
}), d.$render = function() { | |
b[0].checked = c.value == d.$viewValue | |
}, c.$observe("value", d.$render) | |
}, | |
checkbox: function(a, b, c, d, e, f, g, h) { | |
var i = Nc(h, a, "ngTrueValue", c.ngTrueValue, !0), | |
j = Nc(h, a, "ngFalseValue", c.ngFalseValue, !1); | |
b.on("click", function(a) { | |
d.$setViewValue(b[0].checked, a && a.type) | |
}), d.$render = function() { | |
b[0].checked = d.$viewValue | |
}, d.$isEmpty = function(a) { | |
return !1 === a | |
}, d.$formatters.push(function(a) { | |
return I(a, i) | |
}), d.$parsers.push(function(a) { | |
return a ? i : j | |
}) | |
}, | |
hidden: m, | |
button: m, | |
submit: m, | |
reset: m, | |
file: m | |
}, | |
Ze = ["$browser", "$sniffer", "$filter", "$parse", function(a, b, c, d) { | |
return { | |
restrict: "E", | |
require: ["?ngModel"], | |
link: { | |
pre: function(e, f, g, h) { | |
h[0] && (Ye[Xc(g.type)] || Ye.text)(e, f, g, h[0], b, a, c, d) | |
} | |
} | |
} | |
}], | |
$e = /^(true|false|\d+)$/, | |
_e = function() { | |
return { | |
restrict: "A", | |
priority: 100, | |
compile: function(a, b) { | |
return $e.test(b.ngValue) ? function(a, b, c) { | |
c.$set("value", a.$eval(c.ngValue)) | |
} : function(a, b, c) { | |
a.$watch(c.ngValue, function(a) { | |
c.$set("value", a) | |
}) | |
} | |
} | |
} | |
}, | |
af = ["$compile", function(a) { | |
return { | |
restrict: "AC", | |
compile: function(b) { | |
return a.$$addBindingClass(b), | |
function(b, c, d) { | |
a.$$addBindingInfo(c, d.ngBind), c = c[0], b.$watch(d.ngBind, function(a) { | |
c.textContent = q(a) ? "" : a | |
}) | |
} | |
} | |
} | |
}], | |
bf = ["$interpolate", "$compile", function(a, b) { | |
return { | |
compile: function(c) { | |
return b.$$addBindingClass(c), | |
function(c, d, e) { | |
c = a(d.attr(e.$attr.ngBindTemplate)), b.$$addBindingInfo(d, c.expressions), d = d[0], e.$observe("ngBindTemplate", function(a) { | |
d.textContent = q(a) ? "" : a | |
}) | |
} | |
} | |
} | |
}], | |
cf = ["$sce", "$parse", "$compile", function(a, b, c) { | |
return { | |
restrict: "A", | |
compile: function(d, e) { | |
var f = b(e.ngBindHtml), | |
g = b(e.ngBindHtml, function(b) { | |
return a.valueOf(b) | |
}); | |
return c.$$addBindingClass(d), | |
function(b, d, e) { | |
c.$$addBindingInfo(d, e.ngBindHtml), b.$watch(g, function() { | |
var c = f(b); | |
d.html(a.getTrustedHtml(c) || "") | |
}) | |
} | |
} | |
} | |
}], | |
df = o({ | |
restrict: "A", | |
require: "ngModel", | |
link: function(a, b, c, d) { | |
d.$viewChangeListeners.push(function() { | |
a.$eval(c.ngChange) | |
}) | |
} | |
}), | |
ef = Oc("", !0), | |
ff = Oc("Odd", 0), | |
gf = Oc("Even", 1), | |
hf = Gc({ | |
compile: function(a, b) { | |
b.$set("ngCloak", void 0), a.removeClass("ng-cloak") | |
} | |
}), | |
jf = [function() { | |
return { | |
restrict: "A", | |
scope: !0, | |
controller: "@", | |
priority: 500 | |
} | |
}], | |
kf = {}, | |
lf = { | |
blur: !0, | |
focus: !0 | |
}; | |
d("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "), function(a) { | |
var b = Ya("ng-" + a); | |
kf[b] = ["$parse", "$rootScope", function(c, d) { | |
return { | |
restrict: "A", | |
compile: function(e, f) { | |
var g = c(f[b], null, !0); | |
return function(b, c) { | |
c.on(a, function(c) { | |
var e = function() { | |
g(b, { | |
$event: c | |
}) | |
}; | |
lf[a] && d.$$phase ? b.$evalAsync(e) : b.$apply(e) | |
}) | |
} | |
} | |
} | |
}] | |
}); | |
var mf = ["$animate", "$compile", function(a, b) { | |
return { | |
multiElement: !0, | |
transclude: "element", | |
priority: 600, | |
terminal: !0, | |
restrict: "A", | |
$$tlb: !0, | |
link: function(c, d, e, f, g) { | |
var h, i, j; | |
c.$watch(e.ngIf, function(c) { | |
c ? i || g(function(c, f) { | |
i = f, c[c.length++] = b.$$createComment("end ngIf", e.ngIf), h = { | |
clone: c | |
}, a.enter(c, d.parent(), d) | |
}) : (j && (j.remove(), j = null), i && (i.$destroy(), i = null), h && (j = fa(h.clone), a.leave(j).then(function() { | |
j = null | |
}), h = null)) | |
}) | |
} | |
} | |
}], | |
nf = ["$templateRequest", "$anchorScroll", "$animate", function(a, b, c) { | |
return { | |
restrict: "ECA", | |
priority: 400, | |
terminal: !0, | |
transclude: "element", | |
controller: dd.noop, | |
compile: function(d, e) { | |
var f = e.ngInclude || e.src, | |
g = e.onload || "", | |
h = e.autoscroll; | |
return function(d, e, i, j, k) { | |
var l, m, n, o = 0, | |
p = function() { | |
m && (m.remove(), m = null), l && (l.$destroy(), l = null), n && (c.leave(n).then(function() { | |
m = null | |
}), m = n, n = null) | |
}; | |
d.$watch(f, function(f) { | |
var i = function() { | |
!r(h) || h && !d.$eval(h) || b() | |
}, | |
m = ++o; | |
f ? (a(f, !0).then(function(a) { | |
if (!d.$$destroyed && m === o) { | |
var b = d.$new(); | |
j.template = a, a = k(b, function(a) { | |
p(), c.enter(a, null, e).then(i) | |
}), l = b, n = a, l.$emit("$includeContentLoaded", f), d.$eval(g) | |
} | |
}, function() { | |
d.$$destroyed || m !== o || (p(), d.$emit("$includeContentError", f)) | |
}), d.$emit("$includeContentRequested", f)) : (p(), j.template = null) | |
}) | |
} | |
} | |
} | |
}], | |
of = ["$compile", function(b) { | |
return { | |
restrict: "ECA", | |
priority: -400, | |
require: "ngInclude", | |
link: function(c, d, e, f) { | |
ad.call(d[0]).match(/SVG/) ? (d.empty(), b(ma(f.template, a.document).childNodes)(c, function(a) { | |
d.append(a) | |
}, { | |
futureParentElement: d | |
})) : (d.html(f.template), b(d.contents())(c)) | |
} | |
} | |
}], | |
pf = Gc({ | |
priority: 450, | |
compile: function() { | |
return { | |
pre: function(a, b, c) { | |
a.$eval(c.ngInit) | |
} | |
} | |
} | |
}), | |
qf = function() { | |
return { | |
restrict: "A", | |
priority: 100, | |
require: "ngModel", | |
link: function(a, b, c, e) { | |
var f = b.attr(c.$attr.ngList) || ", ", | |
g = "false" !== c.ngTrim, | |
h = g ? hd(f) : f; | |
e.$parsers.push(function(a) { | |
if (!q(a)) { | |
var b = []; | |
return a && d(a.split(h), function(a) { | |
a && b.push(g ? hd(a) : a) | |
}), b | |
} | |
}), e.$formatters.push(function(a) { | |
if (fd(a)) return a.join(f) | |
}), e.$isEmpty = function(a) { | |
return !a || !a.length | |
} | |
} | |
} | |
}, | |
rf = "ng-valid", | |
sf = "ng-invalid", | |
tf = "ng-pristine", | |
uf = "ng-dirty", | |
vf = "ng-pending", | |
wf = b("ngModel"), | |
xf = ["$scope", "$exceptionHandler", "$attrs", "$element", "$parse", "$animate", "$timeout", "$rootScope", "$q", "$interpolate", function(a, b, c, e, f, g, h, i, j, k) { | |
this.$modelValue = this.$viewValue = Number.NaN, this.$$rawModelValue = void 0, this.$validators = {}, this.$asyncValidators = {}, this.$parsers = [], this.$formatters = [], this.$viewChangeListeners = [], this.$untouched = !0, this.$touched = !1, this.$pristine = !0, this.$dirty = !1, this.$valid = !0, this.$invalid = !1, this.$error = {}, this.$$success = {}, this.$pending = void 0, this.$name = k(c.name || "", !1)(a), this.$$parentForm = Ke; | |
var l, n = f(c.ngModel), | |
o = n.assign, | |
p = n, | |
s = o, | |
t = null, | |
u = this; | |
this.$$setOptions = function(a) { | |
if ((u.$options = a) && a.getterSetter) { | |
var b = f(c.ngModel + "()"), | |
d = f(c.ngModel + "($$$p)"); | |
p = function(a) { | |
var c = n(a); | |
return x(c) && (c = b(a)), c | |
}, s = function(a, b) { | |
x(n(a)) ? d(a, { | |
$$$p: b | |
}) : o(a, b) | |
} | |
} else if (!n.assign) throw wf("nonassign", c.ngModel, Q(e)) | |
}, this.$render = m, this.$isEmpty = function(a) { | |
return q(a) || "" === a || null === a || a !== a | |
}, this.$$updateEmptyClasses = function(a) { | |
u.$isEmpty(a) ? (g.removeClass(e, "ng-not-empty"), g.addClass(e, "ng-empty")) : (g.removeClass(e, "ng-empty"), g.addClass(e, "ng-not-empty")) | |
}; | |
var w = 0; | |
Pc({ | |
ctrl: this, | |
$element: e, | |
set: function(a, b) { | |
a[b] = !0 | |
}, | |
unset: function(a, b) { | |
delete a[b] | |
}, | |
$animate: g | |
}), this.$setPristine = function() { | |
u.$dirty = !1, u.$pristine = !0, g.removeClass(e, uf), g.addClass(e, tf) | |
}, this.$setDirty = function() { | |
u.$dirty = !0, u.$pristine = !1, g.removeClass(e, tf), g.addClass(e, uf), u.$$parentForm.$setDirty() | |
}, this.$setUntouched = function() { | |
u.$touched = !1, u.$untouched = !0, g.setClass(e, "ng-untouched", "ng-touched") | |
}, this.$setTouched = function() { | |
u.$touched = !0, u.$untouched = !1, g.setClass(e, "ng-touched", "ng-untouched") | |
}, this.$rollbackViewValue = function() { | |
h.cancel(t), u.$viewValue = u.$$lastCommittedViewValue, u.$render() | |
}, this.$validate = function() { | |
if (!v(u.$modelValue) || !isNaN(u.$modelValue)) { | |
var a = u.$$rawModelValue, | |
b = u.$valid, | |
c = u.$modelValue, | |
d = u.$options && u.$options.allowInvalid; | |
u.$$runValidators(a, u.$$lastCommittedViewValue, function(e) { | |
d || b === e || (u.$modelValue = e ? a : void 0, u.$modelValue !== c && u.$$writeModelToScope()) | |
}) | |
} | |
}, this.$$runValidators = function(a, b, c) { | |
function e() { | |
var c = !0; | |
return d(u.$validators, function(d, e) { | |
var f = d(a, b); | |
c = c && f, g(e, f) | |
}), !!c || (d(u.$asyncValidators, function(a, b) { | |
g(b, null) | |
}), !1) | |
} | |
function f() { | |
var c = [], | |
e = !0; | |
d(u.$asyncValidators, function(d, f) { | |
var h = d(a, b); | |
if (!h || !x(h.then)) throw wf("nopromise", h); | |
g(f, void 0), c.push(h.then(function() { | |
g(f, !0) | |
}, function() { | |
e = !1, g(f, !1) | |
})) | |
}), c.length ? j.all(c).then(function() { | |
h(e) | |
}, m) : h(!0) | |
} | |
function g(a, b) { | |
i === w && u.$setValidity(a, b) | |
} | |
function h(a) { | |
i === w && c(a) | |
} | |
w++; | |
var i = w; | |
(function() { | |
var a = u.$$parserName || "parse"; | |
return q(l) ? (g(a, null), !0) : (l || (d(u.$validators, function(a, b) { | |
g(b, null) | |
}), d(u.$asyncValidators, function(a, b) { | |
g(b, null) | |
})), g(a, l), l) | |
})() && e() ? f() : h(!1) | |
}, this.$commitViewValue = function() { | |
var a = u.$viewValue; | |
h.cancel(t), (u.$$lastCommittedViewValue !== a || "" === a && u.$$hasNativeValidators) && (u.$$updateEmptyClasses(a), u.$$lastCommittedViewValue = a, u.$pristine && this.$setDirty(), this.$$parseAndValidate()) | |
}, this.$$parseAndValidate = function() { | |
var b = u.$$lastCommittedViewValue; | |
if (l = !q(b) || void 0) | |
for (var c = 0; c < u.$parsers.length; c++) | |
if (b = u.$parsers[c](b), q(b)) { | |
l = !1; | |
break | |
} | |
v(u.$modelValue) && isNaN(u.$modelValue) && (u.$modelValue = p(a)); | |
var d = u.$modelValue, | |
e = u.$options && u.$options.allowInvalid; | |
u.$$rawModelValue = b, e && (u.$modelValue = b, u.$modelValue !== d && u.$$writeModelToScope()), u.$$runValidators(b, u.$$lastCommittedViewValue, function(a) { | |
e || (u.$modelValue = a ? b : void 0, u.$modelValue !== d && u.$$writeModelToScope()) | |
}) | |
}, this.$$writeModelToScope = function() { | |
s(a, u.$modelValue), d(u.$viewChangeListeners, function(a) { | |
try { | |
a() | |
} catch (a) { | |
b(a) | |
} | |
}) | |
}, this.$setViewValue = function(a, b) { | |
u.$viewValue = a, u.$options && !u.$options.updateOnDefault || u.$$debounceViewValueCommit(b) | |
}, this.$$debounceViewValueCommit = function(b) { | |
var c = 0, | |
d = u.$options; | |
d && r(d.debounce) && (d = d.debounce, v(d) ? c = d : v(d[b]) ? c = d[b] : v(d.default) && (c = d.default)), h.cancel(t), c ? t = h(function() { | |
u.$commitViewValue() | |
}, c) : i.$$phase ? u.$commitViewValue() : a.$apply(function() { | |
u.$commitViewValue() | |
}) | |
}, a.$watch(function() { | |
var b = p(a); | |
if (b !== u.$modelValue && (u.$modelValue === u.$modelValue || b === b)) { | |
u.$modelValue = u.$$rawModelValue = b, l = void 0; | |
for (var c = u.$formatters, d = c.length, e = b; d--;) e = c[d](e); | |
u.$viewValue !== e && (u.$$updateEmptyClasses(e), u.$viewValue = u.$$lastCommittedViewValue = e, u.$render(), u.$$runValidators(b, e, m)) | |
} | |
return b | |
}) | |
}], | |
yf = ["$rootScope", function(a) { | |
return { | |
restrict: "A", | |
require: ["ngModel", "^?form", "^?ngModelOptions"], | |
controller: xf, | |
priority: 1, | |
compile: function(b) { | |
return b.addClass(tf).addClass("ng-untouched").addClass(rf), { | |
pre: function(a, b, c, d) { | |
var e = d[0]; | |
b = d[1] || e.$$parentForm, e.$$setOptions(d[2] && d[2].$options), b.$addControl(e), c.$observe("name", function(a) { | |
e.$name !== a && e.$$parentForm.$$renameControl(e, a) | |
}), a.$on("$destroy", function() { | |
e.$$parentForm.$removeControl(e) | |
}) | |
}, | |
post: function(b, c, d, e) { | |
var f = e[0]; | |
f.$options && f.$options.updateOn && c.on(f.$options.updateOn, function(a) { | |
f.$$debounceViewValueCommit(a && a.type) | |
}), c.on("blur", function() { | |
f.$touched || (a.$$phase ? b.$evalAsync(f.$setTouched) : b.$apply(f.$setTouched)) | |
}) | |
} | |
} | |
} | |
} | |
}], | |
zf = /(\s+|^)default(\s+|$)/, | |
Af = function() { | |
return { | |
restrict: "A", | |
controller: ["$scope", "$attrs", function(a, b) { | |
var c = this; | |
this.$options = H(a.$eval(b.ngModelOptions)), r(this.$options.updateOn) ? (this.$options.updateOnDefault = !1, this.$options.updateOn = hd(this.$options.updateOn.replace(zf, function() { | |
return c.$options.updateOnDefault = !0, " " | |
}))) : this.$options.updateOnDefault = !0 | |
}] | |
} | |
}, | |
Bf = Gc({ | |
terminal: !0, | |
priority: 1e3 | |
}), | |
Cf = b("ngOptions"), | |
Df = /^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/, | |
Ef = ["$compile", "$document", "$parse", function(b, e, f) { | |
function g(a, b, d) { | |
function e(a, b, c, d, e) { | |
this.selectValue = a, this.viewValue = b, this.label = c, this.group = d, this.disabled = e | |
} | |
function g(a) { | |
var b; | |
if (!j && c(a)) b = a; | |
else { | |
b = []; | |
for (var d in a) a.hasOwnProperty(d) && "$" !== d.charAt(0) && b.push(d) | |
} | |
return b | |
} | |
var h = a.match(Df); | |
if (!h) throw Cf("iexp", a, Q(b)); | |
var i = h[5] || h[7], | |
j = h[6]; | |
a = / as /.test(h[0]) && h[1]; | |
var k = h[9]; | |
b = f(h[2] ? h[1] : i); | |
var l = a && f(a) || b, | |
m = k && f(k), | |
n = k ? function(a, b) { | |
return m(d, b) | |
} : function(a) { | |
return Ja(a) | |
}, | |
o = function(a, b) { | |
return n(a, u(a, b)) | |
}, | |
p = f(h[2] || h[1]), | |
q = f(h[3] || ""), | |
r = f(h[4] || ""), | |
s = f(h[8]), | |
t = {}, | |
u = j ? function(a, b) { | |
return t[j] = b, t[i] = a, t | |
} : function(a) { | |
return t[i] = a, t | |
}; | |
return { | |
trackBy: k, | |
getTrackByValue: o, | |
getWatchables: f(s, function(a) { | |
var b = []; | |
a = a || []; | |
for (var c = g(a), e = c.length, f = 0; f < e; f++) { | |
var i = a === c ? f : c[f], | |
j = a[i], | |
i = u(j, i), | |
j = n(j, i); | |
b.push(j), (h[2] || h[1]) && (j = p(d, i), b.push(j)), h[4] && (i = r(d, i), b.push(i)) | |
} | |
return b | |
}), | |
getOptions: function() { | |
for (var a = [], b = {}, c = s(d) || [], f = g(c), h = f.length, i = 0; i < h; i++) { | |
var j = c === f ? i : f[i], | |
m = u(c[j], j), | |
t = l(d, m), | |
j = n(t, m), | |
v = p(d, m), | |
w = q(d, m), | |
m = r(d, m), | |
t = new e(j, t, v, w, m); | |
a.push(t), b[j] = t | |
} | |
return { | |
items: a, | |
selectValueMap: b, | |
getOptionFromViewValue: function(a) { | |
return b[o(a)] | |
}, | |
getViewValueFromOption: function(a) { | |
return k ? dd.copy(a.viewValue) : a.viewValue | |
} | |
} | |
} | |
} | |
} | |
var h = a.document.createElement("option"), | |
i = a.document.createElement("optgroup"); | |
return { | |
restrict: "A", | |
terminal: !0, | |
require: ["select", "ngModel"], | |
link: { | |
pre: function(a, b, c, d) { | |
d[0].registerOption = m | |
}, | |
post: function(a, c, f, j) { | |
function k(a, b) { | |
a.element = b, b.disabled = a.disabled, a.label !== b.label && (b.label = a.label, b.textContent = a.label), a.value !== b.value && (b.value = a.selectValue) | |
} | |
function l() { | |
var a = v && n.readValue(); | |
if (v) | |
for (var b = v.items.length - 1; 0 <= b; b--) { | |
var d = v.items[b]; | |
Ca(d.group ? d.element.parentNode : d.element) | |
} | |
v = w.getOptions(); | |
var e = {}; | |
t && c.prepend(m), v.items.forEach(function(a) { | |
var b; | |
if (r(a.group)) { | |
b = e[a.group], b || (b = i.cloneNode(!1), x.appendChild(b), b.label = a.group, e[a.group] = b); | |
var c = h.cloneNode(!1) | |
} else b = x, c = h.cloneNode(!1); | |
b.appendChild(c), k(a, c) | |
}), c[0].appendChild(x), o.$render(), o.$isEmpty(a) || (b = n.readValue(), (w.trackBy || p ? I(a, b) : a === b) || (o.$setViewValue(b), o.$render())) | |
} | |
var m, n = j[0], | |
o = j[1], | |
p = f.multiple; | |
j = 0; | |
for (var q = c.children(), s = q.length; j < s; j++) | |
if ("" === q[j].value) { | |
m = q.eq(j); | |
break | |
} | |
var t = !!m, | |
u = Sc(h.cloneNode(!1)); | |
u.val("?"); | |
var v, w = g(f.ngOptions, c, a), | |
x = e[0].createDocumentFragment(); | |
p ? (o.$isEmpty = function(a) { | |
return !a || 0 === a.length | |
}, n.writeValue = function(a) { | |
v.items.forEach(function(a) { | |
a.element.selected = !1 | |
}), a && a.forEach(function(a) { | |
(a = v.getOptionFromViewValue(a)) && (a.element.selected = !0) | |
}) | |
}, n.readValue = function() { | |
var a = c.val() || [], | |
b = []; | |
return d(a, function(a) { | |
(a = v.selectValueMap[a]) && !a.disabled && b.push(v.getViewValueFromOption(a)) | |
}), b | |
}, w.trackBy && a.$watchCollection(function() { | |
if (fd(o.$viewValue)) return o.$viewValue.map(function(a) { | |
return w.getTrackByValue(a) | |
}) | |
}, function() { | |
o.$render() | |
})) : (n.writeValue = function(a) { | |
var b = v.getOptionFromViewValue(a); | |
b ? (c[0].value !== b.selectValue && (u.remove(), t || m.remove(), c[0].value = b.selectValue, b.element.selected = !0), b.element.setAttribute("selected", "selected")) : null === a || t ? (u.remove(), t || c.prepend(m), c.val(""), m.prop("selected", !0), m.attr("selected", !0)) : (t || m.remove(), c.prepend(u), c.val("?"), u.prop("selected", !0), u.attr("selected", !0)) | |
}, n.readValue = function() { | |
var a = v.selectValueMap[c.val()]; | |
return a && !a.disabled ? (t || m.remove(), u.remove(), v.getViewValueFromOption(a)) : null | |
}, w.trackBy && a.$watch(function() { | |
return w.getTrackByValue(o.$viewValue) | |
}, function() { | |
o.$render() | |
})), t ? (m.remove(), b(m)(a), m.removeClass("ng-scope")) : m = Sc(h.cloneNode(!1)), c.empty(), l(), a.$watchCollection(w.getWatchables, l) | |
} | |
} | |
} | |
}], | |
Ff = ["$locale", "$interpolate", "$log", function(a, b, c) { | |
var e = /{}/g, | |
f = /^when(Minus)?(.+)$/; | |
return { | |
link: function(g, h, i) { | |
function j(a) { | |
h.text(a || "") | |
} | |
var k, l = i.count, | |
n = i.$attr.when && h.attr(i.$attr.when), | |
o = i.offset || 0, | |
p = g.$eval(n) || {}, | |
r = {}, | |
s = b.startSymbol(), | |
t = b.endSymbol(), | |
u = s + l + "-" + o + t, | |
w = dd.noop; | |
d(i, function(a, b) { | |
var c = f.exec(b); | |
c && (c = (c[1] ? "-" : "") + Xc(c[2]), p[c] = h.attr(i.$attr[b])) | |
}), d(p, function(a, c) { | |
r[c] = b(a.replace(e, u)) | |
}), g.$watch(l, function(b) { | |
var d = parseFloat(b), | |
e = isNaN(d); | |
e || d in p || (d = a.pluralCat(d - o)), d === k || e && v(k) && isNaN(k) || (w(), e = r[d], q(e) ? (null != b && c.debug("ngPluralize: no rule defined for '" + d + "' in " + n), w = m, j()) : w = g.$watch(e, j), k = d) | |
}) | |
} | |
} | |
}], | |
Gf = ["$parse", "$animate", "$compile", function(a, e, f) { | |
var g = b("ngRepeat"), | |
h = function(a, b, c, d, e, f, g) { | |
a[c] = d, e && (a[e] = f), a.$index = b, a.$first = 0 === b, a.$last = b === g - 1, a.$middle = !(a.$first || a.$last), a.$odd = !(a.$even = 0 === (1 & b)) | |
}; | |
return { | |
restrict: "A", | |
multiElement: !0, | |
transclude: "element", | |
priority: 1e3, | |
terminal: !0, | |
$$tlb: !0, | |
compile: function(b, i) { | |
var j = i.ngRepeat, | |
k = f.$$createComment("end ngRepeat", j), | |
l = j.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/); | |
if (!l) throw g("iexp", j); | |
var m = l[1], | |
n = l[2], | |
o = l[3], | |
p = l[4], | |
l = m.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/); | |
if (!l) throw g("iidexp", m); | |
var q = l[3] || l[1], | |
r = l[2]; | |
if (o && (!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(o) || /^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(o))) throw g("badident", o); | |
var s, t, u, v, w = { | |
$id: Ja | |
}; | |
return p ? s = a(p) : (u = function(a, b) { | |
return Ja(b) | |
}, v = function(a) { | |
return a | |
}), | |
function(a, b, f, i, l) { | |
s && (t = function(b, c, d) { | |
return r && (w[r] = b), w[q] = c, w.$index = d, s(a, w) | |
}); | |
var m = ga(); | |
a.$watchCollection(n, function(f) { | |
var i, n, p, s, w, x, y, z, A, B, C = b[0], | |
D = ga(); | |
if (o && (a[o] = f), c(f)) z = f, n = t || u; | |
else | |
for (B in n = t || v, z = [], f) Wc.call(f, B) && "$" !== B.charAt(0) && z.push(B); | |
for (s = z.length, B = Array(s), i = 0; i < s; i++) | |
if (w = f === z ? i : z[i], x = f[w], y = n(w, x, i), m[y]) A = m[y], delete m[y], D[y] = A, B[i] = A; | |
else { | |
if (D[y]) throw d(B, function(a) { | |
a && a.scope && (m[a.id] = a) | |
}), g("dupes", j, y, x); | |
B[i] = { | |
id: y, | |
scope: void 0, | |
clone: void 0 | |
}, D[y] = !0 | |
} | |
for (p in m) { | |
if (A = m[p], y = fa(A.clone), e.leave(y), y[0].parentNode) | |
for (i = 0, n = y.length; i < n; i++) y[i].$$NG_REMOVED = !0; | |
A.scope.$destroy() | |
} | |
for (i = 0; i < s; i++) | |
if (w = f === z ? i : z[i], x = f[w], A = B[i], A.scope) { | |
p = C; | |
do p = p.nextSibling; while (p && p.$$NG_REMOVED); | |
A.clone[0] != p && e.move(fa(A.clone), null, C), C = A.clone[A.clone.length - 1], h(A.scope, i, q, x, r, w, s) | |
} else l(function(a, b) { | |
A.scope = b; | |
var c = k.cloneNode(!1); | |
a[a.length++] = c, e.enter(a, null, C), C = c, A.clone = a, D[A.id] = A, h(A.scope, i, q, x, r, w, s) | |
}); | |
m = D | |
}) | |
} | |
} | |
} | |
}], | |
Hf = ["$animate", function(a) { | |
return { | |
restrict: "A", | |
multiElement: !0, | |
link: function(b, c, d) { | |
b.$watch(d.ngShow, function(b) { | |
a[b ? "removeClass" : "addClass"](c, "ng-hide", { | |
tempClasses: "ng-hide-animate" | |
}) | |
}) | |
} | |
} | |
}], | |
If = ["$animate", function(a) { | |
return { | |
restrict: "A", | |
multiElement: !0, | |
link: function(b, c, d) { | |
b.$watch(d.ngHide, function(b) { | |
a[b ? "addClass" : "removeClass"](c, "ng-hide", { | |
tempClasses: "ng-hide-animate" | |
}) | |
}) | |
} | |
} | |
}], | |
Jf = Gc(function(a, b, c) { | |
a.$watch(c.ngStyle, function(a, c) { | |
c && a !== c && d(c, function(a, c) { | |
b.css(c, "") | |
}), a && b.css(a) | |
}, !0) | |
}), | |
Kf = ["$animate", "$compile", function(a, b) { | |
return { | |
require: "ngSwitch", | |
controller: ["$scope", function() { | |
this.cases = {} | |
}], | |
link: function(c, e, f, g) { | |
var h = [], | |
i = [], | |
j = [], | |
k = [], | |
l = function(a, b) { | |
return function() { | |
a.splice(b, 1) | |
} | |
}; | |
c.$watch(f.ngSwitch || f.on, function(c) { | |
var e, f; | |
for (e = 0, f = j.length; e < f; ++e) a.cancel(j[e]); | |
for (e = j.length = 0, f = k.length; e < f; ++e) { | |
var m = fa(i[e].clone); | |
k[e].$destroy(), (j[e] = a.leave(m)).then(l(j, e)) | |
} | |
i.length = 0, k.length = 0, (h = g.cases["!" + c] || g.cases["?"]) && d(h, function(c) { | |
c.transclude(function(d, e) { | |
k.push(e); | |
var f = c.element; | |
d[d.length++] = b.$$createComment("end ngSwitchWhen"), i.push({ | |
clone: d | |
}), a.enter(d, f.parent(), f) | |
}) | |
}) | |
}) | |
} | |
} | |
}], | |
Lf = Gc({ | |
transclude: "element", | |
priority: 1200, | |
require: "^ngSwitch", | |
multiElement: !0, | |
link: function(a, b, c, d, e) { | |
d.cases["!" + c.ngSwitchWhen] = d.cases["!" + c.ngSwitchWhen] || [], d.cases["!" + c.ngSwitchWhen].push({ | |
transclude: e, | |
element: b | |
}) | |
} | |
}), | |
Mf = Gc({ | |
transclude: "element", | |
priority: 1200, | |
require: "^ngSwitch", | |
multiElement: !0, | |
link: function(a, b, c, d, e) { | |
d.cases["?"] = d.cases["?"] || [], d.cases["?"].push({ | |
transclude: e, | |
element: b | |
}) | |
} | |
}), | |
Nf = b("ngTransclude"), | |
Of = Gc({ | |
restrict: "EAC", | |
link: function(a, b, c, d, e) { | |
if (c.ngTransclude === c.$attr.ngTransclude && (c.ngTransclude = ""), !e) throw Nf("orphan", Q(b)); | |
e(function(a) { | |
a.length && (b.empty(), b.append(a)) | |
}, null, c.ngTransclude || c.ngTranscludeSlot) | |
} | |
}), | |
Pf = ["$templateCache", function(a) { | |
return { | |
restrict: "E", | |
terminal: !0, | |
compile: function(b, c) { | |
"text/ng-template" == c.type && a.put(c.id, b[0].text) | |
} | |
} | |
}], | |
Qf = { | |
$setViewValue: m, | |
$render: m | |
}, | |
Rf = ["$element", "$scope", function(b, c) { | |
var d = this, | |
e = new Ka; | |
d.ngModelCtrl = Qf, d.unknownOption = Sc(a.document.createElement("option")), d.renderUnknownOption = function(a) { | |
a = "? " + Ja(a) + " ?", d.unknownOption.val(a), b.prepend(d.unknownOption), b.val(a) | |
}, c.$on("$destroy", function() { | |
d.renderUnknownOption = m | |
}), d.removeUnknownOption = function() { | |
d.unknownOption.parent() && d.unknownOption.remove() | |
}, d.readValue = function() { | |
return d.removeUnknownOption(), b.val() | |
}, d.writeValue = function(a) { | |
d.hasOption(a) ? (d.removeUnknownOption(), b.val(a), "" === a && d.emptyOption.prop("selected", !0)) : null == a && d.emptyOption ? (d.removeUnknownOption(), b.val("")) : d.renderUnknownOption(a) | |
}, d.addOption = function(a, b) { | |
if (8 !== b[0].nodeType) { | |
da(a, '"option value"'), "" === a && (d.emptyOption = b); | |
var c = e.get(a) || 0; | |
e.put(a, c + 1), d.ngModelCtrl.$render(), b[0].hasAttribute("selected") && (b[0].selected = !0) | |
} | |
}, d.removeOption = function(a) { | |
var b = e.get(a); | |
b && (1 === b ? (e.remove(a), "" === a && (d.emptyOption = void 0)) : e.put(a, b - 1)) | |
}, d.hasOption = function(a) { | |
return !!e.get(a) | |
}, d.registerOption = function(a, b, c, e, f) { | |
if (e) { | |
var g; | |
c.$observe("value", function(a) { | |
r(g) && d.removeOption(g), g = a, d.addOption(a, b) | |
}) | |
} else f ? a.$watch(f, function(a, e) { | |
c.$set("value", a), e !== a && d.removeOption(e), d.addOption(a, b) | |
}) : d.addOption(c.value, b); | |
b.on("$destroy", function() { | |
d.removeOption(c.value), d.ngModelCtrl.$render() | |
}) | |
} | |
}], | |
Sf = function() { | |
return { | |
restrict: "E", | |
require: ["select", "?ngModel"], | |
controller: Rf, | |
priority: 1, | |
link: { | |
pre: function(a, b, c, e) { | |
var f = e[1]; | |
if (f) { | |
var g = e[0]; | |
if (g.ngModelCtrl = f, b.on("change", function() { | |
a.$apply(function() { | |
f.$setViewValue(g.readValue()) | |
}) | |
}), c.multiple) { | |
g.readValue = function() { | |
var a = []; | |
return d(b.find("option"), function(b) { | |
b.selected && a.push(b.value) | |
}), a | |
}, g.writeValue = function(a) { | |
var c = new Ka(a); | |
d(b.find("option"), function(a) { | |
a.selected = r(c.get(a.value)) | |
}) | |
}; | |
var h, i = NaN; | |
a.$watch(function() { | |
i !== f.$viewValue || I(h, f.$viewValue) || (h = ia(f.$viewValue), f.$render()), i = f.$viewValue | |
}), f.$isEmpty = function(a) { | |
return !a || 0 === a.length | |
} | |
} | |
} | |
}, | |
post: function(a, b, c, d) { | |
var e = d[1]; | |
if (e) { | |
var f = d[0]; | |
e.$render = function() { | |
f.writeValue(e.$viewValue) | |
} | |
} | |
} | |
} | |
} | |
}, | |
Tf = ["$interpolate", function(a) { | |
return { | |
restrict: "E", | |
priority: 100, | |
compile: function(b, c) { | |
if (r(c.value)) var d = a(c.value, !0); | |
else { | |
var e = a(b.text(), !0); | |
e || c.$set("value", b.text()) | |
} | |
return function(a, b, c) { | |
var f = b.parent(); | |
(f = f.data("$selectController") || f.parent().data("$selectController")) && f.registerOption(a, b, c, d, e) | |
} | |
} | |
} | |
}], | |
Uf = o({ | |
restrict: "E", | |
terminal: !1 | |
}), | |
Vf = function() { | |
return { | |
restrict: "A", | |
require: "?ngModel", | |
link: function(a, b, c, d) { | |
d && (c.required = !0, d.$validators.required = function(a, b) { | |
return !c.required || !d.$isEmpty(b) | |
}, c.$observe("required", function() { | |
d.$validate() | |
})) | |
} | |
} | |
}, | |
Wf = function() { | |
return { | |
restrict: "A", | |
require: "?ngModel", | |
link: function(a, c, d, e) { | |
if (e) { | |
var f, g = d.ngPattern || d.pattern; | |
d.$observe("pattern", function(a) { | |
if (u(a) && 0 < a.length && (a = new RegExp("^" + a + "$")), a && !a.test) throw b("ngPattern")("noregexp", g, a, Q(c)); | |
f = a || void 0, e.$validate() | |
}), e.$validators.pattern = function(a, b) { | |
return e.$isEmpty(b) || q(f) || f.test(b) | |
} | |
} | |
} | |
} | |
}, | |
Xf = function() { | |
return { | |
restrict: "A", | |
require: "?ngModel", | |
link: function(a, b, c, d) { | |
if (d) { | |
var e = -1; | |
c.$observe("maxlength", function(a) { | |
a = k(a), e = isNaN(a) ? -1 : a, d.$validate() | |
}), d.$validators.maxlength = function(a, b) { | |
return 0 > e || d.$isEmpty(b) || b.length <= e | |
} | |
} | |
} | |
} | |
}, | |
Yf = function() { | |
return { | |
restrict: "A", | |
require: "?ngModel", | |
link: function(a, b, c, d) { | |
if (d) { | |
var e = 0; | |
c.$observe("minlength", function(a) { | |
e = k(a) || 0, d.$validate() | |
}), d.$validators.minlength = function(a, b) { | |
return d.$isEmpty(b) || b.length >= e | |
} | |
} | |
} | |
} | |
}; | |
a.angular.bootstrap ? a.console && console.log("WARNING: Tried to load angular more than once.") : (aa(), ja(dd), dd.module("ngLocale", [], ["$provide", function(a) { | |
function b(a) { | |
a += ""; | |
var b = a.indexOf("."); | |
return -1 == b ? 0 : a.length - b - 1 | |
} | |
a.value("$locale", { | |
DATETIME_FORMATS: { | |
AMPMS: ["AM", "PM"], | |
DAY: "Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "), | |
ERANAMES: ["Before Christ", "Anno Domini"], | |
ERAS: ["BC", "AD"], | |
FIRSTDAYOFWEEK: 6, | |
MONTH: "January February March April May June July August September October November December".split(" "), | |
SHORTDAY: "Sun Mon Tue Wed Thu Fri Sat".split(" "), | |
SHORTMONTH: "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "), | |
STANDALONEMONTH: "January February March April May June July August September October November December".split(" "), | |
WEEKENDRANGE: [5, 6], | |
fullDate: "EEEE, MMMM d, y", | |
longDate: "MMMM d, y", | |
medium: "MMM d, y h:mm:ss a", | |
mediumDate: "MMM d, y", | |
mediumTime: "h:mm:ss a", | |
short: "M/d/yy h:mm a", | |
shortDate: "M/d/yy", | |
shortTime: "h:mm a" | |
}, | |
NUMBER_FORMATS: { | |
CURRENCY_SYM: "$", | |
DECIMAL_SEP: ".", | |
GROUP_SEP: ",", | |
PATTERNS: [{ | |
gSize: 3, | |
lgSize: 3, | |
maxFrac: 3, | |
minFrac: 0, | |
minInt: 1, | |
negPre: "-", | |
negSuf: "", | |
posPre: "", | |
posSuf: "" | |
}, { | |
gSize: 3, | |
lgSize: 3, | |
maxFrac: 2, | |
minFrac: 2, | |
minInt: 1, | |
negPre: "-¤", | |
negSuf: "", | |
posPre: "¤", | |
posSuf: "" | |
}] | |
}, | |
id: "en-us", | |
localeID: "en_US", | |
pluralCat: function(a, c) { | |
var d = 0 | a, | |
e = c; | |
return void 0 === e && (e = Math.min(b(a), 3)), | |
Math.pow(10, e), 1 == d && 0 == e ? "one" : "other" | |
} | |
}) | |
}]), Sc(a.document).ready(function() { | |
X(a.document, Y) | |
})) | |
}(window), !window.angular.$$csp().noInlineStyle && window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>'), "undefined" == typeof jQuery) throw new Error("Bootstrap's JavaScript requires jQuery"); + function(a) { | |
"use strict"; | |
var b = a.fn.jquery.split(" ")[0].split("."); | |
if (b[0] < 2 && b[1] < 9 || 1 == b[0] && 9 == b[1] && b[2] < 1 || b[0] > 2) throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3") | |
}(jQuery), + function(a) { | |
"use strict"; | |
function b() { | |
var a = document.createElement("bootstrap"), | |
b = { | |
WebkitTransition: "webkitTransitionEnd", | |
MozTransition: "transitionend", | |
OTransition: "oTransitionEnd otransitionend", | |
transition: "transitionend" | |
}; | |
for (var c in b) | |
if (void 0 !== a.style[c]) return { | |
end: b[c] | |
}; | |
return !1 | |
} | |
a.fn.emulateTransitionEnd = function(b) { | |
var c = !1, | |
d = this; | |
a(this).one("bsTransitionEnd", function() { | |
c = !0 | |
}); | |
var e = function() { | |
c || a(d).trigger(a.support.transition.end) | |
}; | |
return setTimeout(e, b), this | |
}, a(function() { | |
a.support.transition = b(), a.support.transition && (a.event.special.bsTransitionEnd = { | |
bindType: a.support.transition.end, | |
delegateType: a.support.transition.end, | |
handle: function(b) { | |
return a(b.target).is(this) ? b.handleObj.handler.apply(this, arguments) : void 0 | |
} | |
}) | |
}) | |
}(jQuery), + function(a) { | |
"use strict"; | |
function b(b) { | |
return this.each(function() { | |
var c = a(this), | |
e = c.data("bs.alert"); | |
e || c.data("bs.alert", e = new d(this)), "string" == typeof b && e[b].call(c) | |
}) | |
} | |
var c = '[data-dismiss="alert"]', | |
d = function(b) { | |
a(b).on("click", c, this.close) | |
}; | |
d.VERSION = "3.3.6", d.TRANSITION_DURATION = 150, d.prototype.close = function(b) { | |
function c() { | |
g.detach().trigger("closed.bs.alert").remove() | |
} | |
var e = a(this), | |
f = e.attr("data-target"); | |
f || (f = e.attr("href"), f = f && f.replace(/.*(?=#[^\s]*$)/, "")); | |
var g = a(f); | |
b && b.preventDefault(), g.length || (g = e.closest(".alert")), g.trigger(b = a.Event("close.bs.alert")), b.isDefaultPrevented() || (g.removeClass("in"), a.support.transition && g.hasClass("fade") ? g.one("bsTransitionEnd", c).emulateTransitionEnd(d.TRANSITION_DURATION) : c()) | |
}; | |
var e = a.fn.alert; | |
a.fn.alert = b, a.fn.alert.Constructor = d, a.fn.alert.noConflict = function() { | |
return a.fn.alert = e, this | |
}, a(document).on("click.bs.alert.data-api", c, d.prototype.close) | |
}(jQuery), + function(a) { | |
"use strict"; | |
function b(b) { | |
return this.each(function() { | |
var d = a(this), | |
e = d.data("bs.button"), | |
f = "object" == typeof b && b; | |
e || d.data("bs.button", e = new c(this, f)), "toggle" == b ? e.toggle() : b && e.setState(b) | |
}) | |
} | |
var c = function(b, d) { | |
this.$element = a(b), this.options = a.extend({}, c.DEFAULTS, d), this.isLoading = !1 | |
}; | |
c.VERSION = "3.3.6", c.DEFAULTS = { | |
loadingText: "loading..." | |
}, c.prototype.setState = function(b) { | |
var c = "disabled", | |
d = this.$element, | |
e = d.is("input") ? "val" : "html", | |
f = d.data(); | |
b += "Text", null == f.resetText && d.data("resetText", d[e]()), setTimeout(a.proxy(function() { | |
d[e](null == f[b] ? this.options[b] : f[b]), "loadingText" == b ? (this.isLoading = !0, d.addClass(c).attr(c, c)) : this.isLoading && (this.isLoading = !1, d.removeClass(c).removeAttr(c)) | |
}, this), 0) | |
}, c.prototype.toggle = function() { | |
var a = !0, | |
b = this.$element.closest('[data-toggle="buttons"]'); | |
if (b.length) { | |
var c = this.$element.find("input"); | |
"radio" == c.prop("type") ? (c.prop("checked") && (a = !1), b.find(".active").removeClass("active"), this.$element.addClass("active")) : "checkbox" == c.prop("type") && (c.prop("checked") !== this.$element.hasClass("active") && (a = !1), this.$element.toggleClass("active")), c.prop("checked", this.$element.hasClass("active")), a && c.trigger("change") | |
} else this.$element.attr("aria-pressed", !this.$element.hasClass("active")), this.$element.toggleClass("active") | |
}; | |
var d = a.fn.button; | |
a.fn.button = b, a.fn.button.Constructor = c, a.fn.button.noConflict = function() { | |
return a.fn.button = d, this | |
}, a(document).on("click.bs.button.data-api", '[data-toggle^="button"]', function(c) { | |
var d = a(c.target); | |
d.hasClass("btn") || (d = d.closest(".btn")), b.call(d, "toggle"), a(c.target).is('input[type="radio"]') || a(c.target).is('input[type="checkbox"]') || c.preventDefault() | |
}).on("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', function(b) { | |
a(b.target).closest(".btn").toggleClass("focus", /^focus(in)?$/.test(b.type)) | |
}) | |
}(jQuery), + function(a) { | |
"use strict"; | |
function b(b) { | |
return this.each(function() { | |
var d = a(this), | |
e = d.data("bs.carousel"), | |
f = a.extend({}, c.DEFAULTS, d.data(), "object" == typeof b && b), | |
g = "string" == typeof b ? b : f.slide; | |
e || d.data("bs.carousel", e = new c(this, f)), "number" == typeof b ? e.to(b) : g ? e[g]() : f.interval && e.pause().cycle() | |
}) | |
} | |
var c = function(b, c) { | |
this.$element = a(b), this.$indicators = this.$element.find(".carousel-indicators"), this.options = c, this.paused = null, this.sliding = null, this.interval = null, this.$active = null, this.$items = null, this.options.keyboard && this.$element.on("keydown.bs.carousel", a.proxy(this.keydown, this)), "hover" == this.options.pause && !("ontouchstart" in document.documentElement) && this.$element.on("mouseenter.bs.carousel", a.proxy(this.pause, this)).on("mouseleave.bs.carousel", a.proxy(this.cycle, this)) | |
}; | |
c.VERSION = "3.3.6", c.TRANSITION_DURATION = 600, c.DEFAULTS = { | |
interval: 5e3, | |
pause: "hover", | |
wrap: !0, | |
keyboard: !0 | |
}, c.prototype.keydown = function(a) { | |
if (!/input|textarea/i.test(a.target.tagName)) { | |
switch (a.which) { | |
case 37: | |
this.prev(); | |
break; | |
case 39: | |
this.next(); | |
break; | |
default: | |
return | |
} | |
a.preventDefault() | |
} | |
}, c.prototype.cycle = function(b) { | |
return b || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(a.proxy(this.next, this), this.options.interval)), this | |
}, c.prototype.getItemIndex = function(a) { | |
return this.$items = a.parent().children(".item"), this.$items.index(a || this.$active) | |
}, c.prototype.getItemForDirection = function(a, b) { | |
var c = this.getItemIndex(b), | |
d = "prev" == a && 0 === c || "next" == a && c == this.$items.length - 1; | |
if (d && !this.options.wrap) return b; | |
var e = "prev" == a ? -1 : 1, | |
f = (c + e) % this.$items.length; | |
return this.$items.eq(f) | |
}, c.prototype.to = function(a) { | |
var b = this, | |
c = this.getItemIndex(this.$active = this.$element.find(".item.active")); | |
return a > this.$items.length - 1 || 0 > a ? void 0 : this.sliding ? this.$element.one("slid.bs.carousel", function() { | |
b.to(a) | |
}) : c == a ? this.pause().cycle() : this.slide(a > c ? "next" : "prev", this.$items.eq(a)) | |
}, c.prototype.pause = function(b) { | |
return b || (this.paused = !0), this.$element.find(".next, .prev").length && a.support.transition && (this.$element.trigger(a.support.transition.end), this.cycle(!0)), this.interval = clearInterval(this.interval), this | |
}, c.prototype.next = function() { | |
return this.sliding ? void 0 : this.slide("next") | |
}, c.prototype.prev = function() { | |
return this.sliding ? void 0 : this.slide("prev") | |
}, c.prototype.slide = function(b, d) { | |
var e = this.$element.find(".item.active"), | |
f = d || this.getItemForDirection(b, e), | |
g = this.interval, | |
h = "next" == b ? "left" : "right", | |
i = this; | |
if (f.hasClass("active")) return this.sliding = !1; | |
var j = f[0], | |
k = a.Event("slide.bs.carousel", { | |
relatedTarget: j, | |
direction: h | |
}); | |
if (this.$element.trigger(k), !k.isDefaultPrevented()) { | |
if (this.sliding = !0, g && this.pause(), this.$indicators.length) { | |
this.$indicators.find(".active").removeClass("active"); | |
var l = a(this.$indicators.children()[this.getItemIndex(f)]); | |
l && l.addClass("active") | |
} | |
var m = a.Event("slid.bs.carousel", { | |
relatedTarget: j, | |
direction: h | |
}); | |
return a.support.transition && this.$element.hasClass("slide") ? (f.addClass(b), f[0].offsetWidth, e.addClass(h), f.addClass(h), e.one("bsTransitionEnd", function() { | |
f.removeClass([b, h].join(" ")).addClass("active"), e.removeClass(["active", h].join(" ")), i.sliding = !1, setTimeout(function() { | |
i.$element.trigger(m) | |
}, 0) | |
}).emulateTransitionEnd(c.TRANSITION_DURATION)) : (e.removeClass("active"), f.addClass("active"), this.sliding = !1, this.$element.trigger(m)), g && this.cycle(), this | |
} | |
}; | |
var d = a.fn.carousel; | |
a.fn.carousel = b, a.fn.carousel.Constructor = c, a.fn.carousel.noConflict = function() { | |
return a.fn.carousel = d, this | |
}; | |
var e = function(c) { | |
var d, e = a(this), | |
f = a(e.attr("data-target") || (d = e.attr("href")) && d.replace(/.*(?=#[^\s]+$)/, "")); | |
if (f.hasClass("carousel")) { | |
var g = a.extend({}, f.data(), e.data()), | |
h = e.attr("data-slide-to"); | |
h && (g.interval = !1), b.call(f, g), h && f.data("bs.carousel").to(h), c.preventDefault() | |
} | |
}; | |
a(document).on("click.bs.carousel.data-api", "[data-slide]", e).on("click.bs.carousel.data-api", "[data-slide-to]", e), a(window).on("load", function() { | |
a('[data-ride="carousel"]').each(function() { | |
var c = a(this); | |
b.call(c, c.data()) | |
}) | |
}) | |
}(jQuery), + function(a) { | |
"use strict"; | |
function b(b) { | |
var c, d = b.attr("data-target") || (c = b.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, ""); | |
return a(d) | |
} | |
function c(b) { | |
return this.each(function() { | |
var c = a(this), | |
e = c.data("bs.collapse"), | |
f = a.extend({}, d.DEFAULTS, c.data(), "object" == typeof b && b); | |
!e && f.toggle && /show|hide/.test(b) && (f.toggle = !1), e || c.data("bs.collapse", e = new d(this, f)), "string" == typeof b && e[b]() | |
}) | |
} | |
var d = function(b, c) { | |
this.$element = a(b), this.options = a.extend({}, d.DEFAULTS, c), this.$trigger = a('[data-toggle="collapse"][href="#' + b.id + '"],[data-toggle="collapse"][data-target="#' + b.id + '"]'), this.transitioning = null, this.options.parent ? this.$parent = this.getParent() : this.addAriaAndCollapsedClass(this.$element, this.$trigger), this.options.toggle && this.toggle() | |
}; | |
d.VERSION = "3.3.6", d.TRANSITION_DURATION = 350, d.DEFAULTS = { | |
toggle: !0 | |
}, d.prototype.dimension = function() { | |
var a = this.$element.hasClass("width"); | |
return a ? "width" : "height" | |
}, d.prototype.show = function() { | |
if (!this.transitioning && !this.$element.hasClass("in")) { | |
var b, e = this.$parent && this.$parent.children(".panel").children(".in, .collapsing"); | |
if (!(e && e.length && (b = e.data("bs.collapse"), b && b.transitioning))) { | |
var f = a.Event("show.bs.collapse"); | |
if (this.$element.trigger(f), !f.isDefaultPrevented()) { | |
e && e.length && (c.call(e, "hide"), b || e.data("bs.collapse", null)); | |
var g = this.dimension(); | |
this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded", !0), this.$trigger.removeClass("collapsed").attr("aria-expanded", !0), this.transitioning = 1; | |
var h = function() { | |
this.$element.removeClass("collapsing").addClass("collapse in")[g](""), this.transitioning = 0, this.$element.trigger("shown.bs.collapse") | |
}; | |
if (!a.support.transition) return h.call(this); | |
var i = a.camelCase(["scroll", g].join("-")); | |
this.$element.one("bsTransitionEnd", a.proxy(h, this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i]) | |
} | |
} | |
} | |
}, d.prototype.hide = function() { | |
if (!this.transitioning && this.$element.hasClass("in")) { | |
var b = a.Event("hide.bs.collapse"); | |
if (this.$element.trigger(b), !b.isDefaultPrevented()) { | |
var c = this.dimension(); | |
this.$element[c](this.$element[c]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded", !1), this.$trigger.addClass("collapsed").attr("aria-expanded", !1), this.transitioning = 1; | |
var e = function() { | |
this.transitioning = 0, this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse") | |
}; | |
return a.support.transition ? void this.$element[c](0).one("bsTransitionEnd", a.proxy(e, this)).emulateTransitionEnd(d.TRANSITION_DURATION) : e.call(this) | |
} | |
} | |
}, d.prototype.toggle = function() { | |
this[this.$element.hasClass("in") ? "hide" : "show"]() | |
}, d.prototype.getParent = function() { | |
return a(this.options.parent).find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]').each(a.proxy(function(c, d) { | |
var e = a(d); | |
this.addAriaAndCollapsedClass(b(e), e) | |
}, this)).end() | |
}, d.prototype.addAriaAndCollapsedClass = function(a, b) { | |
var c = a.hasClass("in"); | |
a.attr("aria-expanded", c), b.toggleClass("collapsed", !c).attr("aria-expanded", c) | |
}; | |
var e = a.fn.collapse; | |
a.fn.collapse = c, a.fn.collapse.Constructor = d, a.fn.collapse.noConflict = function() { | |
return a.fn.collapse = e, this | |
}, a(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', function(d) { | |
var e = a(this); | |
e.attr("data-target") || d.preventDefault(); | |
var f = b(e), | |
g = f.data("bs.collapse"), | |
h = g ? "toggle" : e.data(); | |
c.call(f, h) | |
}) | |
}(jQuery), + function(a) { | |
"use strict"; | |
function b(b) { | |
var c = b.attr("data-target"); | |
c || (c = b.attr("href"), c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, "")); | |
var d = c && a(c); | |
return d && d.length ? d : b.parent() | |
} | |
function c(c) { | |
c && 3 === c.which || (a(e).remove(), a(f).each(function() { | |
var d = a(this), | |
e = b(d), | |
f = { | |
relatedTarget: this | |
}; | |
e.hasClass("open") && (c && "click" == c.type && /input|textarea/i.test(c.target.tagName) && a.contains(e[0], c.target) || (e.trigger(c = a.Event("hide.bs.dropdown", f)), c.isDefaultPrevented() || (d.attr("aria-expanded", "false"), e.removeClass("open").trigger(a.Event("hidden.bs.dropdown", f))))) | |
})) | |
} | |
function d(b) { | |
return this.each(function() { | |
var c = a(this), | |
d = c.data("bs.dropdown"); | |
d || c.data("bs.dropdown", d = new g(this)), "string" == typeof b && d[b].call(c) | |
}) | |
} | |
var e = ".dropdown-backdrop", | |
f = '[data-toggle="dropdown"]', | |
g = function(b) { | |
a(b).on("click.bs.dropdown", this.toggle) | |
}; | |
g.VERSION = "3.3.6", g.prototype.toggle = function(d) { | |
var e = a(this); | |
if (!e.is(".disabled, :disabled")) { | |
var f = b(e), | |
g = f.hasClass("open"); | |
if (c(), !g) { | |
"ontouchstart" in document.documentElement && !f.closest(".navbar-nav").length && a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click", c); | |
var h = { | |
relatedTarget: this | |
}; | |
if (f.trigger(d = a.Event("show.bs.dropdown", h)), d.isDefaultPrevented()) return; | |
e.trigger("focus").attr("aria-expanded", "true"), f.toggleClass("open").trigger(a.Event("shown.bs.dropdown", h)) | |
} | |
return !1 | |
} | |
}, g.prototype.keydown = function(c) { | |
if (/(38|40|27|32)/.test(c.which) && !/input|textarea/i.test(c.target.tagName)) { | |
var d = a(this); | |
if (c.preventDefault(), c.stopPropagation(), !d.is(".disabled, :disabled")) { | |
var e = b(d), | |
g = e.hasClass("open"); | |
if (!g && 27 != c.which || g && 27 == c.which) return 27 == c.which && e.find(f).trigger("focus"), d.trigger("click"); | |
var h = " li:not(.disabled):visible a", | |
i = e.find(".dropdown-menu" + h); | |
if (i.length) { | |
var j = i.index(c.target); | |
38 == c.which && j > 0 && j--, 40 == c.which && j < i.length - 1 && j++, ~j || (j = 0), i.eq(j).trigger("focus") | |
} | |
} | |
} | |
}; | |
var h = a.fn.dropdown; | |
a.fn.dropdown = d, a.fn.dropdown.Constructor = g, a.fn.dropdown.noConflict = function() { | |
return a.fn.dropdown = h, this | |
}, a(document).on("click.bs.dropdown.data-api", c).on("click.bs.dropdown.data-api", ".dropdown form", function(a) { | |
a.stopPropagation() | |
}).on("click.bs.dropdown.data-api", f, g.prototype.toggle).on("keydown.bs.dropdown.data-api", f, g.prototype.keydown).on("keydown.bs.dropdown.data-api", ".dropdown-menu", g.prototype.keydown) | |
}(jQuery), + function(a) { | |
"use strict"; | |
function b(b, d) { | |
return this.each(function() { | |
var e = a(this), | |
f = e.data("bs.modal"), | |
g = a.extend({}, c.DEFAULTS, e.data(), "object" == typeof b && b); | |
f || e.data("bs.modal", f = new c(this, g)), "string" == typeof b ? f[b](d) : g.show && f.show(d) | |
}) | |
} | |
var c = function(b, c) { | |
this.options = c, this.$body = a(document.body), this.$element = a(b), this.$dialog = this.$element.find(".modal-dialog"), this.$backdrop = null, this.isShown = null, this.originalBodyPad = null, this.scrollbarWidth = 0, this.ignoreBackdropClick = !1, this.options.remote && this.$element.find(".modal-content").load(this.options.remote, a.proxy(function() { | |
this.$element.trigger("loaded.bs.modal") | |
}, this)) | |
}; | |
c.VERSION = "3.3.6", c.TRANSITION_DURATION = 300, c.BACKDROP_TRANSITION_DURATION = 150, c.DEFAULTS = { | |
backdrop: !0, | |
keyboard: !0, | |
show: !0 | |
}, c.prototype.toggle = function(a) { | |
return this.isShown ? this.hide() : this.show(a) | |
}, c.prototype.show = function(b) { | |
var d = this, | |
e = a.Event("show.bs.modal", { | |
relatedTarget: b | |
}); | |
this.$element.trigger(e), this.isShown || e.isDefaultPrevented() || (this.isShown = !0, this.checkScrollbar(), this.setScrollbar(), this.$body.addClass("modal-open"), this.escape(), this.resize(), this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', a.proxy(this.hide, this)), this.$dialog.on("mousedown.dismiss.bs.modal", function() { | |
d.$element.one("mouseup.dismiss.bs.modal", function(b) { | |
a(b.target).is(d.$element) && (d.ignoreBackdropClick = !0) | |
}) | |
}), this.backdrop(function() { | |
var e = a.support.transition && d.$element.hasClass("fade"); | |
d.$element.parent().length || d.$element.appendTo(d.$body), d.$element.show().scrollTop(0), d.adjustDialog(), e && d.$element[0].offsetWidth, d.$element.addClass("in"), d.enforceFocus(); | |
var f = a.Event("shown.bs.modal", { | |
relatedTarget: b | |
}); | |
e ? d.$dialog.one("bsTransitionEnd", function() { | |
d.$element.trigger("focus").trigger(f) | |
}).emulateTransitionEnd(c.TRANSITION_DURATION) : d.$element.trigger("focus").trigger(f) | |
})) | |
}, c.prototype.hide = function(b) { | |
b && b.preventDefault(), b = a.Event("hide.bs.modal"), this.$element.trigger(b), this.isShown && !b.isDefaultPrevented() && (this.isShown = !1, this.escape(), this.resize(), a(document).off("focusin.bs.modal"), this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"), this.$dialog.off("mousedown.dismiss.bs.modal"), a.support.transition && this.$element.hasClass("fade") ? this.$element.one("bsTransitionEnd", a.proxy(this.hideModal, this)).emulateTransitionEnd(c.TRANSITION_DURATION) : this.hideModal()) | |
}, c.prototype.enforceFocus = function() { | |
a(document).off("focusin.bs.modal").on("focusin.bs.modal", a.proxy(function(a) { | |
this.$element[0] === a.target || this.$element.has(a.target).length || this.$element.trigger("focus") | |
}, this)) | |
}, c.prototype.escape = function() { | |
this.isShown && this.options.keyboard ? this.$element.on("keydown.dismiss.bs.modal", a.proxy(function(a) { | |
27 == a.which && this.hide() | |
}, this)) : this.isShown || this.$element.off("keydown.dismiss.bs.modal") | |
}, c.prototype.resize = function() { | |
this.isShown ? a(window).on("resize.bs.modal", a.proxy(this.handleUpdate, this)) : a(window).off("resize.bs.modal") | |
}, c.prototype.hideModal = function() { | |
var a = this; | |
this.$element.hide(), this.backdrop(function() { | |
a.$body.removeClass("modal-open"), a.resetAdjustments(), a.resetScrollbar(), a.$element.trigger("hidden.bs.modal") | |
}) | |
}, c.prototype.removeBackdrop = function() { | |
this.$backdrop && this.$backdrop.remove(), this.$backdrop = null | |
}, c.prototype.backdrop = function(b) { | |
var d = this, | |
e = this.$element.hasClass("fade") ? "fade" : ""; | |
if (this.isShown && this.options.backdrop) { | |
var f = a.support.transition && e; | |
if (this.$backdrop = a(document.createElement("div")).addClass("modal-backdrop " + e).appendTo(this.$body), this.$element.on("click.dismiss.bs.modal", a.proxy(function(a) { | |
return this.ignoreBackdropClick ? void(this.ignoreBackdropClick = !1) : void(a.target === a.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus() : this.hide())) | |
}, this)), f && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !b) return; | |
f ? this.$backdrop.one("bsTransitionEnd", b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) : b() | |
} else if (!this.isShown && this.$backdrop) { | |
this.$backdrop.removeClass("in"); | |
var g = function() { | |
d.removeBackdrop(), b && b() | |
}; | |
a.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one("bsTransitionEnd", g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) : g() | |
} else b && b() | |
}, c.prototype.handleUpdate = function() { | |
this.adjustDialog() | |
}, c.prototype.adjustDialog = function() { | |
var a = this.$element[0].scrollHeight > document.documentElement.clientHeight; | |
this.$element.css({ | |
paddingLeft: !this.bodyIsOverflowing && a ? this.scrollbarWidth : "", | |
paddingRight: this.bodyIsOverflowing && !a ? this.scrollbarWidth : "" | |
}) | |
}, c.prototype.resetAdjustments = function() { | |
this.$element.css({ | |
paddingLeft: "", | |
paddingRight: "" | |
}) | |
}, c.prototype.checkScrollbar = function() { | |
var a = window.innerWidth; | |
if (!a) { | |
var b = document.documentElement.getBoundingClientRect(); | |
a = b.right - Math.abs(b.left) | |
} | |
this.bodyIsOverflowing = document.body.clientWidth < a, this.scrollbarWidth = this.measureScrollbar() | |
}, c.prototype.setScrollbar = function() { | |
var a = parseInt(this.$body.css("padding-right") || 0, 10); | |
this.originalBodyPad = document.body.style.paddingRight || "", this.bodyIsOverflowing && this.$body.css("padding-right", a + this.scrollbarWidth) | |
}, c.prototype.resetScrollbar = function() { | |
this.$body.css("padding-right", this.originalBodyPad) | |
}, c.prototype.measureScrollbar = function() { | |
var a = document.createElement("div"); | |
a.className = "modal-scrollbar-measure", this.$body.append(a); | |
var b = a.offsetWidth - a.clientWidth; | |
return this.$body[0].removeChild(a), b | |
}; | |
var d = a.fn.modal; | |
a.fn.modal = b, a.fn.modal.Constructor = c, a.fn.modal.noConflict = function() { | |
return a.fn.modal = d, this | |
}, a(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function(c) { | |
var d = a(this), | |
e = d.attr("href"), | |
f = a(d.attr("data-target") || e && e.replace(/.*(?=#[^\s]+$)/, "")), | |
g = f.data("bs.modal") ? "toggle" : a.extend({ | |
remote: !/#/.test(e) && e | |
}, f.data(), d.data()); | |
d.is("a") && c.preventDefault(), f.one("show.bs.modal", function(a) { | |
a.isDefaultPrevented() || f.one("hidden.bs.modal", function() { | |
d.is(":visible") && d.trigger("focus") | |
}) | |
}), b.call(f, g, this) | |
}) | |
}(jQuery), + function(a) { | |
"use strict"; | |
function b(b) { | |
return this.each(function() { | |
var d = a(this), | |
e = d.data("bs.tooltip"), | |
f = "object" == typeof b && b; | |
(e || !/destroy|hide/.test(b)) && (e || d.data("bs.tooltip", e = new c(this, f)), "string" == typeof b && e[b]()) | |
}) | |
} | |
var c = function(a, b) { | |
this.type = null, this.options = null, this.enabled = null, this.timeout = null, this.hoverState = null, this.$element = null, this.inState = null, this.init("tooltip", a, b) | |
}; | |
c.VERSION = "3.3.6", c.TRANSITION_DURATION = 150, c.DEFAULTS = { | |
animation: !0, | |
placement: "top", | |
selector: !1, | |
template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', | |
trigger: "hover focus", | |
title: "", | |
delay: 0, | |
html: !1, | |
container: !1, | |
viewport: { | |
selector: "body", | |
padding: 0 | |
} | |
}, c.prototype.init = function(b, c, d) { | |
if (this.enabled = !0, this.type = b, this.$element = a(c), this.options = this.getOptions(d), this.$viewport = this.options.viewport && a(a.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : this.options.viewport.selector || this.options.viewport), this.inState = { | |
click: !1, | |
hover: !1, | |
focus: !1 | |
}, this.$element[0] instanceof document.constructor && !this.options.selector) throw new Error("`selector` option must be specified when initializing " + this.type + " on the window.document object!"); | |
for (var e = this.options.trigger.split(" "), f = e.length; f--;) { | |
var g = e[f]; | |
if ("click" == g) this.$element.on("click." + this.type, this.options.selector, a.proxy(this.toggle, this)); | |
else if ("manual" != g) { | |
var h = "hover" == g ? "mouseenter" : "focusin", | |
i = "hover" == g ? "mouseleave" : "focusout"; | |
this.$element.on(h + "." + this.type, this.options.selector, a.proxy(this.enter, this)), this.$element.on(i + "." + this.type, this.options.selector, a.proxy(this.leave, this)) | |
} | |
} | |
this.options.selector ? this._options = a.extend({}, this.options, { | |
trigger: "manual", | |
selector: "" | |
}) : this.fixTitle() | |
}, c.prototype.getDefaults = function() { | |
return c.DEFAULTS | |
}, c.prototype.getOptions = function(b) { | |
return b = a.extend({}, this.getDefaults(), this.$element.data(), b), b.delay && "number" == typeof b.delay && (b.delay = { | |
show: b.delay, | |
hide: b.delay | |
}), b | |
}, c.prototype.getDelegateOptions = function() { | |
var b = {}, | |
c = this.getDefaults(); | |
return this._options && a.each(this._options, function(a, d) { | |
c[a] != d && (b[a] = d) | |
}), b | |
}, c.prototype.enter = function(b) { | |
var c = b instanceof this.constructor ? b : a(b.currentTarget).data("bs." + this.type); | |
return c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c)), b instanceof a.Event && (c.inState["focusin" == b.type ? "focus" : "hover"] = !0), c.tip().hasClass("in") || "in" == c.hoverState ? void(c.hoverState = "in") : (clearTimeout(c.timeout), c.hoverState = "in", c.options.delay && c.options.delay.show ? void(c.timeout = setTimeout(function() { | |
"in" == c.hoverState && c.show() | |
}, c.options.delay.show)) : c.show()) | |
}, c.prototype.isInStateTrue = function() { | |
for (var a in this.inState) | |
if (this.inState[a]) return !0; | |
return !1 | |
}, c.prototype.leave = function(b) { | |
var c = b instanceof this.constructor ? b : a(b.currentTarget).data("bs." + this.type); | |
return c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c)), b instanceof a.Event && (c.inState["focusout" == b.type ? "focus" : "hover"] = !1), c.isInStateTrue() ? void 0 : (clearTimeout(c.timeout), c.hoverState = "out", c.options.delay && c.options.delay.hide ? void(c.timeout = setTimeout(function() { | |
"out" == c.hoverState && c.hide() | |
}, c.options.delay.hide)) : c.hide()) | |
}, c.prototype.show = function() { | |
var b = a.Event("show.bs." + this.type); | |
if (this.hasContent() && this.enabled) { | |
this.$element.trigger(b); | |
var d = a.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]); | |
if (b.isDefaultPrevented() || !d) return; | |
var e = this, | |
f = this.tip(), | |
g = this.getUID(this.type); | |
this.setContent(), f.attr("id", g), this.$element.attr("aria-describedby", g), this.options.animation && f.addClass("fade"); | |
var h = "function" == typeof this.options.placement ? this.options.placement.call(this, f[0], this.$element[0]) : this.options.placement, | |
i = /\s?auto?\s?/i, | |
j = i.test(h); | |
j && (h = h.replace(i, "") || "top"), f.detach().css({ | |
top: 0, | |
left: 0, | |
display: "block" | |
}).addClass(h).data("bs." + this.type, this), this.options.container ? f.appendTo(this.options.container) : f.insertAfter(this.$element), this.$element.trigger("inserted.bs." + this.type); | |
var k = this.getPosition(), | |
l = f[0].offsetWidth, | |
m = f[0].offsetHeight; | |
if (j) { | |
var n = h, | |
o = this.getPosition(this.$viewport); | |
h = "bottom" == h && k.bottom + m > o.bottom ? "top" : "top" == h && k.top - m < o.top ? "bottom" : "right" == h && k.right + l > o.width ? "left" : "left" == h && k.left - l < o.left ? "right" : h, f.removeClass(n).addClass(h) | |
} | |
var p = this.getCalculatedOffset(h, k, l, m); | |
this.applyPlacement(p, h); | |
var q = function() { | |
var a = e.hoverState; | |
e.$element.trigger("shown.bs." + e.type), e.hoverState = null, "out" == a && e.leave(e) | |
}; | |
a.support.transition && this.$tip.hasClass("fade") ? f.one("bsTransitionEnd", q).emulateTransitionEnd(c.TRANSITION_DURATION) : q() | |
} | |
}, c.prototype.applyPlacement = function(b, c) { | |
var d = this.tip(), | |
e = d[0].offsetWidth, | |
f = d[0].offsetHeight, | |
g = parseInt(d.css("margin-top"), 10), | |
h = parseInt(d.css("margin-left"), 10); | |
isNaN(g) && (g = 0), isNaN(h) && (h = 0), b.top += g, b.left += h, a.offset.setOffset(d[0], a.extend({ | |
using: function(a) { | |
d.css({ | |
top: Math.round(a.top), | |
left: Math.round(a.left) | |
}) | |
} | |
}, b), 0), d.addClass("in"); | |
var i = d[0].offsetWidth, | |
j = d[0].offsetHeight; | |
"top" == c && j != f && (b.top = b.top + f - j); | |
var k = this.getViewportAdjustedDelta(c, b, i, j); | |
k.left ? b.left += k.left : b.top += k.top; | |
var l = /top|bottom/.test(c), | |
m = l ? 2 * k.left - e + i : 2 * k.top - f + j, | |
n = l ? "offsetWidth" : "offsetHeight"; | |
d.offset(b), this.replaceArrow(m, d[0][n], l) | |
}, c.prototype.replaceArrow = function(a, b, c) { | |
this.arrow().css(c ? "left" : "top", 50 * (1 - a / b) + "%").css(c ? "top" : "left", "") | |
}, c.prototype.setContent = function() { | |
var a = this.tip(), | |
b = this.getTitle(); | |
a.find(".tooltip-inner")[this.options.html ? "html" : "text"](b), a.removeClass("fade in top bottom left right") | |
}, c.prototype.hide = function(b) { | |
function d() { | |
"in" != e.hoverState && f.detach(), e.$element.removeAttr("aria-describedby").trigger("hidden.bs." + e.type), b && b() | |
} | |
var e = this, | |
f = a(this.$tip), | |
g = a.Event("hide.bs." + this.type); | |
return this.$element.trigger(g), g.isDefaultPrevented() ? void 0 : (f.removeClass("in"), a.support.transition && f.hasClass("fade") ? f.one("bsTransitionEnd", d).emulateTransitionEnd(c.TRANSITION_DURATION) : d(), this.hoverState = null, this) | |
}, c.prototype.fixTitle = function() { | |
var a = this.$element; | |
(a.attr("title") || "string" != typeof a.attr("data-original-title")) && a.attr("data-original-title", a.attr("title") || "").attr("title", "") | |
}, c.prototype.hasContent = function() { | |
return this.getTitle() | |
}, c.prototype.getPosition = function(b) { | |
b = b || this.$element; | |
var c = b[0], | |
d = "BODY" == c.tagName, | |
e = c.getBoundingClientRect(); | |
null == e.width && (e = a.extend({}, e, { | |
width: e.right - e.left, | |
height: e.bottom - e.top | |
})); | |
var f = d ? { | |
top: 0, | |
left: 0 | |
} : b.offset(), | |
g = { | |
scroll: d ? document.documentElement.scrollTop || document.body.scrollTop : b.scrollTop() | |
}, | |
h = d ? { | |
width: a(window).width(), | |
height: a(window).height() | |
} : null; | |
return a.extend({}, e, g, h, f) | |
}, c.prototype.getCalculatedOffset = function(a, b, c, d) { | |
return "bottom" == a ? { | |
top: b.top + b.height, | |
left: b.left + b.width / 2 - c / 2 | |
} : "top" == a ? { | |
top: b.top - d, | |
left: b.left + b.width / 2 - c / 2 | |
} : "left" == a ? { | |
top: b.top + b.height / 2 - d / 2, | |
left: b.left - c | |
} : { | |
top: b.top + b.height / 2 - d / 2, | |
left: b.left + b.width | |
} | |
}, c.prototype.getViewportAdjustedDelta = function(a, b, c, d) { | |
var e = { | |
top: 0, | |
left: 0 | |
}; | |
if (!this.$viewport) return e; | |
var f = this.options.viewport && this.options.viewport.padding || 0, | |
g = this.getPosition(this.$viewport); | |
if (/right|left/.test(a)) { | |
var h = b.top - f - g.scroll, | |
i = b.top + f - g.scroll + d; | |
h < g.top ? e.top = g.top - h : i > g.top + g.height && (e.top = g.top + g.height - i) | |
} else { | |
var j = b.left - f, | |
k = b.left + f + c; | |
j < g.left ? e.left = g.left - j : k > g.right && (e.left = g.left + g.width - k) | |
} | |
return e | |
}, c.prototype.getTitle = function() { | |
var a, b = this.$element, | |
c = this.options; | |
return a = b.attr("data-original-title") || ("function" == typeof c.title ? c.title.call(b[0]) : c.title) | |
}, c.prototype.getUID = function(a) { | |
do a += ~~(1e6 * Math.random()); while (document.getElementById(a)); | |
return a | |
}, c.prototype.tip = function() { | |
if (!this.$tip && (this.$tip = a(this.options.template), 1 != this.$tip.length)) throw new Error(this.type + " `template` option must consist of exactly 1 top-level element!"); | |
return this.$tip | |
}, c.prototype.arrow = function() { | |
return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow") | |
}, c.prototype.enable = function() { | |
this.enabled = !0 | |
}, c.prototype.disable = function() { | |
this.enabled = !1 | |
}, c.prototype.toggleEnabled = function() { | |
this.enabled = !this.enabled | |
}, c.prototype.toggle = function(b) { | |
var c = this; | |
b && (c = a(b.currentTarget).data("bs." + this.type), c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c))), b ? (c.inState.click = !c.inState.click, c.isInStateTrue() ? c.enter(c) : c.leave(c)) : c.tip().hasClass("in") ? c.leave(c) : c.enter(c) | |
}, c.prototype.destroy = function() { | |
var a = this; | |
clearTimeout(this.timeout), this.hide(function() { | |
a.$element.off("." + a.type).removeData("bs." + a.type), a.$tip && a.$tip.detach(), a.$tip = null, a.$arrow = null, a.$viewport = null | |
}) | |
}; | |
var d = a.fn.tooltip; | |
a.fn.tooltip = b, a.fn.tooltip.Constructor = c, a.fn.tooltip.noConflict = function() { | |
return a.fn.tooltip = d, this | |
} | |
}(jQuery), + function(a) { | |
"use strict"; | |
function b(b) { | |
return this.each(function() { | |
var d = a(this), | |
e = d.data("bs.popover"), | |
f = "object" == typeof b && b; | |
(e || !/destroy|hide/.test(b)) && (e || d.data("bs.popover", e = new c(this, f)), "string" == typeof b && e[b]()) | |
}) | |
} | |
var c = function(a, b) { | |
this.init("popover", a, b) | |
}; | |
if (!a.fn.tooltip) throw new Error("Popover requires tooltip.js"); | |
c.VERSION = "3.3.6", c.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, { | |
placement: "right", | |
trigger: "click", | |
content: "", | |
template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>' | |
}), c.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype), c.prototype.constructor = c, c.prototype.getDefaults = function() { | |
return c.DEFAULTS | |
}, c.prototype.setContent = function() { | |
var a = this.tip(), | |
b = this.getTitle(), | |
c = this.getContent(); | |
a.find(".popover-title")[this.options.html ? "html" : "text"](b), a.find(".popover-content").children().detach().end()[this.options.html ? "string" == typeof c ? "html" : "append" : "text"](c), a.removeClass("fade top bottom left right in"), a.find(".popover-title").html() || a.find(".popover-title").hide() | |
}, c.prototype.hasContent = function() { | |
return this.getTitle() || this.getContent() | |
}, c.prototype.getContent = function() { | |
var a = this.$element, | |
b = this.options; | |
return a.attr("data-content") || ("function" == typeof b.content ? b.content.call(a[0]) : b.content) | |
}, c.prototype.arrow = function() { | |
return this.$arrow = this.$arrow || this.tip().find(".arrow") | |
}; | |
var d = a.fn.popover; | |
a.fn.popover = b, a.fn.popover.Constructor = c, a.fn.popover.noConflict = function() { | |
return a.fn.popover = d, this | |
} | |
}(jQuery), + function(a) { | |
"use strict"; | |
function b(c, d) { | |
this.$body = a(document.body), this.$scrollElement = a(a(c).is(document.body) ? window : c), this.options = a.extend({}, b.DEFAULTS, d), this.selector = (this.options.target || "") + " .nav li > a", this.offsets = [], this.targets = [], this.activeTarget = null, this.scrollHeight = 0, this.$scrollElement.on("scroll.bs.scrollspy", a.proxy(this.process, this)), this.refresh(), this.process() | |
} | |
function c(c) { | |
return this.each(function() { | |
var d = a(this), | |
e = d.data("bs.scrollspy"), | |
f = "object" == typeof c && c; | |
e || d.data("bs.scrollspy", e = new b(this, f)), "string" == typeof c && e[c]() | |
}) | |
} | |
b.VERSION = "3.3.6", b.DEFAULTS = { | |
offset: 10 | |
}, b.prototype.getScrollHeight = function() { | |
return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) | |
}, b.prototype.refresh = function() { | |
var b = this, | |
c = "offset", | |
d = 0; | |
this.offsets = [], this.targets = [], this.scrollHeight = this.getScrollHeight(), a.isWindow(this.$scrollElement[0]) || (c = "position", d = this.$scrollElement.scrollTop()), this.$body.find(this.selector).map(function() { | |
var b = a(this), | |
e = b.data("target") || b.attr("href"), | |
f = /^#./.test(e) && a(e); | |
return f && f.length && f.is(":visible") && [ | |
[f[c]().top + d, e] | |
] || null | |
}).sort(function(a, b) { | |
return a[0] - b[0] | |
}).each(function() { | |
b.offsets.push(this[0]), b.targets.push(this[1]) | |
}) | |
}, b.prototype.process = function() { | |
var a, b = this.$scrollElement.scrollTop() + this.options.offset, | |
c = this.getScrollHeight(), | |
d = this.options.offset + c - this.$scrollElement.height(), | |
e = this.offsets, | |
f = this.targets, | |
g = this.activeTarget; | |
if (this.scrollHeight != c && this.refresh(), b >= d) return g != (a = f[f.length - 1]) && this.activate(a); | |
if (g && b < e[0]) return this.activeTarget = null, this.clear(); | |
for (a = e.length; a--;) g != f[a] && b >= e[a] && (void 0 === e[a + 1] || b < e[a + 1]) && this.activate(f[a]) | |
}, b.prototype.activate = function(b) { | |
this.activeTarget = b, this.clear(); | |
var c = this.selector + '[data-target="' + b + '"],' + this.selector + '[href="' + b + '"]', | |
d = a(c).parents("li").addClass("active"); | |
d.parent(".dropdown-menu").length && (d = d.closest("li.dropdown").addClass("active")), d.trigger("activate.bs.scrollspy") | |
}, b.prototype.clear = function() { | |
a(this.selector).parentsUntil(this.options.target, ".active").removeClass("active") | |
}; | |
var d = a.fn.scrollspy; | |
a.fn.scrollspy = c, a.fn.scrollspy.Constructor = b, a.fn.scrollspy.noConflict = function() { | |
return a.fn.scrollspy = d, this | |
}, a(window).on("load.bs.scrollspy.data-api", function() { | |
a('[data-spy="scroll"]').each(function() { | |
var b = a(this); | |
c.call(b, b.data()) | |
}) | |
}) | |
}(jQuery), + function(a) { | |
"use strict"; | |
function b(b) { | |
return this.each(function() { | |
var d = a(this), | |
e = d.data("bs.tab"); | |
e || d.data("bs.tab", e = new c(this)), "string" == typeof b && e[b]() | |
}) | |
} | |
var c = function(b) { | |
this.element = a(b) | |
}; | |
c.VERSION = "3.3.6", c.TRANSITION_DURATION = 150, c.prototype.show = function() { | |
var b = this.element, | |
c = b.closest("ul:not(.dropdown-menu)"), | |
d = b.data("target"); | |
if (d || (d = b.attr("href"), d = d && d.replace(/.*(?=#[^\s]*$)/, "")), !b.parent("li").hasClass("active")) { | |
var e = c.find(".active:last a"), | |
f = a.Event("hide.bs.tab", { | |
relatedTarget: b[0] | |
}), | |
g = a.Event("show.bs.tab", { | |
relatedTarget: e[0] | |
}); | |
if (e.trigger(f), b.trigger(g), !g.isDefaultPrevented() && !f.isDefaultPrevented()) { | |
var h = a(d); | |
this.activate(b.closest("li"), c), this.activate(h, h.parent(), function() { | |
e.trigger({ | |
type: "hidden.bs.tab", | |
relatedTarget: b[0] | |
}), b.trigger({ | |
type: "shown.bs.tab", | |
relatedTarget: e[0] | |
}) | |
}) | |
} | |
} | |
}, c.prototype.activate = function(b, d, e) { | |
function f() { | |
g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !1), b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded", !0), h ? (b[0].offsetWidth, b.addClass("in")) : b.removeClass("fade"), b.parent(".dropdown-menu").length && b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !0), e && e() | |
} | |
var g = d.find("> .active"), | |
h = e && a.support.transition && (g.length && g.hasClass("fade") || !!d.find("> .fade").length); | |
g.length && h ? g.one("bsTransitionEnd", f).emulateTransitionEnd(c.TRANSITION_DURATION) : f(), g.removeClass("in") | |
}; | |
var d = a.fn.tab; | |
a.fn.tab = b, a.fn.tab.Constructor = c, a.fn.tab.noConflict = function() { | |
return a.fn.tab = d, this | |
}; | |
var e = function(c) { | |
c.preventDefault(), b.call(a(this), "show") | |
}; | |
a(document).on("click.bs.tab.data-api", '[data-toggle="tab"]', e).on("click.bs.tab.data-api", '[data-toggle="pill"]', e) | |
}(jQuery), + function(a) { | |
"use strict"; | |
function b(b) { | |
return this.each(function() { | |
var d = a(this), | |
e = d.data("bs.affix"), | |
f = "object" == typeof b && b; | |
e || d.data("bs.affix", e = new c(this, f)), "string" == typeof b && e[b]() | |
}) | |
} | |
var c = function(b, d) { | |
this.options = a.extend({}, c.DEFAULTS, d), this.$target = a(this.options.target).on("scroll.bs.affix.data-api", a.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", a.proxy(this.checkPositionWithEventLoop, this)), this.$element = a(b), this.affixed = null, this.unpin = null, this.pinnedOffset = null, this.checkPosition() | |
}; | |
c.VERSION = "3.3.6", c.RESET = "affix affix-top affix-bottom", c.DEFAULTS = { | |
offset: 0, | |
target: window | |
}, c.prototype.getState = function(a, b, c, d) { | |
var e = this.$target.scrollTop(), | |
f = this.$element.offset(), | |
g = this.$target.height(); | |
if (null != c && "top" == this.affixed) return c > e && "top"; | |
if ("bottom" == this.affixed) return null != c ? !(e + this.unpin <= f.top) && "bottom" : !(a - d >= e + g) && "bottom"; | |
var h = null == this.affixed, | |
i = h ? e : f.top, | |
j = h ? g : b; | |
return null != c && c >= e ? "top" : null != d && i + j >= a - d && "bottom" | |
}, c.prototype.getPinnedOffset = function() { | |
if (this.pinnedOffset) return this.pinnedOffset; | |
this.$element.removeClass(c.RESET).addClass("affix"); | |
var a = this.$target.scrollTop(), | |
b = this.$element.offset(); | |
return this.pinnedOffset = b.top - a | |
}, c.prototype.checkPositionWithEventLoop = function() { | |
setTimeout(a.proxy(this.checkPosition, this), 1) | |
}, c.prototype.checkPosition = function() { | |
if (this.$element.is(":visible")) { | |
var b = this.$element.height(), | |
d = this.options.offset, | |
e = d.top, | |
f = d.bottom, | |
g = Math.max(a(document).height(), a(document.body).height()); | |
"object" != typeof d && (f = e = d), "function" == typeof e && (e = d.top(this.$element)), "function" == typeof f && (f = d.bottom(this.$element)); | |
var h = this.getState(g, b, e, f); | |
if (this.affixed != h) { | |
null != this.unpin && this.$element.css("top", ""); | |
var i = "affix" + (h ? "-" + h : ""), | |
j = a.Event(i + ".bs.affix"); | |
if (this.$element.trigger(j), j.isDefaultPrevented()) return; | |
this.affixed = h, this.unpin = "bottom" == h ? this.getPinnedOffset() : null, this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix", "affixed") + ".bs.affix") | |
} | |
"bottom" == h && this.$element.offset({ | |
top: g - b - f | |
}) | |
} | |
}; | |
var d = a.fn.affix; | |
a.fn.affix = b, a.fn.affix.Constructor = c, a.fn.affix.noConflict = function() { | |
return a.fn.affix = d, this | |
}, a(window).on("load", function() { | |
a('[data-spy="affix"]').each(function() { | |
var c = a(this), | |
d = c.data(); | |
d.offset = d.offset || {}, null != d.offsetBottom && (d.offset.bottom = d.offsetBottom), null != d.offsetTop && (d.offset.top = d.offsetTop), b.call(c, d) | |
}) | |
}) | |
}(jQuery), ! function(a, b) { | |
"function" == typeof define && define.amd ? define(["jquery"], b) : b("object" == typeof exports ? require("jquery") : a.jQuery ? a.jQuery : a.Zepto) | |
}(this, function(a, b) { | |
a.fn.jPlayer = function(c) { | |
var d = "jPlayer", | |
e = "string" == typeof c, | |
f = Array.prototype.slice.call(arguments, 1), | |
g = this; | |
return c = !e && f.length ? a.extend.apply(null, [!0, c].concat(f)) : c, e && "_" === c.charAt(0) ? g : (this.each(e ? function() { | |
var e = a(this).data(d), | |
h = e && a.isFunction(e[c]) ? e[c].apply(e, f) : e; | |
return h !== e && h !== b ? (g = h, !1) : void 0 | |
} : function() { | |
var b = a(this).data(d); | |
b ? b.option(c || {}) : a(this).data(d, new a.jPlayer(c, this)) | |
}), g) | |
}, a.jPlayer = function(b, c) { | |
if (arguments.length) { | |
this.element = a(c), this.options = a.extend(!0, {}, this.options, b); | |
var d = this; | |
this.element.bind("remove.jPlayer", function() { | |
d.destroy() | |
}), this._init() | |
} | |
}, "function" != typeof a.fn.stop && (a.fn.stop = function() {}), a.jPlayer.emulateMethods = "load play pause", a.jPlayer.emulateStatus = "src readyState networkState currentTime duration paused ended playbackRate", a.jPlayer.emulateOptions = "muted volume", a.jPlayer.reservedEvent = "ready flashreset resize repeat error warning", a.jPlayer.event = {}, a.each(["ready", "setmedia", "flashreset", "resize", "repeat", "click", "error", "warning", "loadstart", "progress", "suspend", "abort", "emptied", "stalled", "play", "pause", "loadedmetadata", "loadeddata", "waiting", "playing", "canplay", "canplaythrough", "seeking", "seeked", "timeupdate", "ended", "ratechange", "durationchange", "volumechange"], function() { | |
a.jPlayer.event[this] = "jPlayer_" + this | |
}), a.jPlayer.htmlEvent = ["loadstart", "abort", "emptied", "stalled", "loadedmetadata", "canplay", "canplaythrough"], a.jPlayer.pause = function() { | |
a.jPlayer.prototype.destroyRemoved(), a.each(a.jPlayer.prototype.instances, function(a, b) { | |
b.data("jPlayer").status.srcSet && b.jPlayer("pause") | |
}) | |
}, a.jPlayer.timeFormat = { | |
showHour: !1, | |
showMin: !0, | |
showSec: !0, | |
padHour: !1, | |
padMin: !0, | |
padSec: !0, | |
sepHour: ":", | |
sepMin: ":", | |
sepSec: "" | |
}; | |
var c = function() { | |
this.init() | |
}; | |
c.prototype = { | |
init: function() { | |
this.options = { | |
timeFormat: a.jPlayer.timeFormat | |
} | |
}, | |
time: function(a) { | |
a = a && "number" == typeof a ? a : 0; | |
var b = new Date(1e3 * a), | |
c = b.getUTCHours(), | |
d = this.options.timeFormat.showHour ? b.getUTCMinutes() : b.getUTCMinutes() + 60 * c, | |
e = this.options.timeFormat.showMin ? b.getUTCSeconds() : b.getUTCSeconds() + 60 * d, | |
f = this.options.timeFormat.padHour && 10 > c ? "0" + c : c, | |
g = this.options.timeFormat.padMin && 10 > d ? "0" + d : d, | |
h = this.options.timeFormat.padSec && 10 > e ? "0" + e : e, | |
i = ""; | |
return i += this.options.timeFormat.showHour ? f + this.options.timeFormat.sepHour : "", i += this.options.timeFormat.showMin ? g + this.options.timeFormat.sepMin : "", i += this.options.timeFormat.showSec ? h + this.options.timeFormat.sepSec : "" | |
} | |
}; | |
var d = new c; | |
a.jPlayer.convertTime = function(a) { | |
return d.time(a) | |
}, a.jPlayer.uaBrowser = function(a) { | |
var b = a.toLowerCase(), | |
c = /(webkit)[ \/]([\w.]+)/, | |
d = /(opera)(?:.*version)?[ \/]([\w.]+)/, | |
e = /(msie) ([\w.]+)/, | |
f = /(mozilla)(?:.*? rv:([\w.]+))?/, | |
g = c.exec(b) || d.exec(b) || e.exec(b) || b.indexOf("compatible") < 0 && f.exec(b) || []; | |
return { | |
browser: g[1] || "", | |
version: g[2] || "0" | |
} | |
}, a.jPlayer.uaPlatform = function(a) { | |
var b = a.toLowerCase(), | |
c = /(ipad|iphone|ipod|android|blackberry|playbook|windows ce|webos)/, | |
d = /(ipad|playbook)/, | |
e = /(android)/, | |
f = /(mobile)/, | |
g = c.exec(b) || [], | |
h = d.exec(b) || !f.exec(b) && e.exec(b) || []; | |
return g[1] && (g[1] = g[1].replace(/\s/g, "_")), { | |
platform: g[1] || "", | |
tablet: h[1] || "" | |
} | |
}, a.jPlayer.browser = {}, a.jPlayer.platform = {}; | |
var e = a.jPlayer.uaBrowser(navigator.userAgent); | |
e.browser && (a.jPlayer.browser[e.browser] = !0, a.jPlayer.browser.version = e.version); | |
var f = a.jPlayer.uaPlatform(navigator.userAgent); | |
f.platform && (a.jPlayer.platform[f.platform] = !0, a.jPlayer.platform.mobile = !f.tablet, a.jPlayer.platform.tablet = !!f.tablet), a.jPlayer.getDocMode = function() { | |
var b; | |
return a.jPlayer.browser.msie && (document.documentMode ? b = document.documentMode : (b = 5, document.compatMode && "CSS1Compat" === document.compatMode && (b = 7))), b | |
}, a.jPlayer.browser.documentMode = a.jPlayer.getDocMode(), a.jPlayer.nativeFeatures = { | |
init: function() { | |
var a, b, c, d = document, | |
e = d.createElement("video"), | |
f = { | |
w3c: ["fullscreenEnabled", "fullscreenElement", "requestFullscreen", "exitFullscreen", "fullscreenchange", "fullscreenerror"], | |
moz: ["mozFullScreenEnabled", "mozFullScreenElement", "mozRequestFullScreen", "mozCancelFullScreen", "mozfullscreenchange", "mozfullscreenerror"], | |
webkit: ["", "webkitCurrentFullScreenElement", "webkitRequestFullScreen", "webkitCancelFullScreen", "webkitfullscreenchange", ""], | |
webkitVideo: ["webkitSupportsFullscreen", "webkitDisplayingFullscreen", "webkitEnterFullscreen", "webkitExitFullscreen", "", ""], | |
ms: ["", "msFullscreenElement", "msRequestFullscreen", "msExitFullscreen", "MSFullscreenChange", "MSFullscreenError"] | |
}, | |
g = ["w3c", "moz", "webkit", "webkitVideo", "ms"]; | |
for (this.fullscreen = a = { | |
support: { | |
w3c: !!d[f.w3c[0]], | |
moz: !!d[f.moz[0]], | |
webkit: "function" == typeof d[f.webkit[3]], | |
webkitVideo: "function" == typeof e[f.webkitVideo[2]], | |
ms: "function" == typeof e[f.ms[2]] | |
}, | |
used: {} | |
}, b = 0, c = g.length; c > b; b++) { | |
var h = g[b]; | |
if (a.support[h]) { | |
a.spec = h, a.used[h] = !0; | |
break | |
} | |
} | |
if (a.spec) { | |
var i = f[a.spec]; | |
a.api = { | |
fullscreenEnabled: !0, | |
fullscreenElement: function(a) { | |
return a = a ? a : d, a[i[1]] | |
}, | |
requestFullscreen: function(a) { | |
return a[i[2]]() | |
}, | |
exitFullscreen: function(a) { | |
return a = a ? a : d, a[i[3]]() | |
} | |
}, a.event = { | |
fullscreenchange: i[4], | |
fullscreenerror: i[5] | |
} | |
} else a.api = { | |
fullscreenEnabled: !1, | |
fullscreenElement: function() { | |
return null | |
}, | |
requestFullscreen: function() {}, | |
exitFullscreen: function() {} | |
}, a.event = {} | |
} | |
}, a.jPlayer.nativeFeatures.init(), a.jPlayer.focus = null, a.jPlayer.keyIgnoreElementNames = "A INPUT TEXTAREA SELECT BUTTON"; | |
var g = function(b) { | |
var c, d = a.jPlayer.focus; | |
d && (a.each(a.jPlayer.keyIgnoreElementNames.split(/\s+/g), function(a, d) { | |
return b.target.nodeName.toUpperCase() === d.toUpperCase() ? (c = !0, !1) : void 0 | |
}), c || a.each(d.options.keyBindings, function(c, e) { | |
return e && a.isFunction(e.fn) && ("number" == typeof e.key && b.which === e.key || "string" == typeof e.key && b.key === e.key) ? (b.preventDefault(), e.fn(d), !1) : void 0 | |
})) | |
}; | |
a.jPlayer.keys = function(b) { | |
var c = "keydown.jPlayer"; | |
a(document.documentElement).unbind(c), b && a(document.documentElement).bind(c, g) | |
}, a.jPlayer.keys(!0), a.jPlayer.prototype = { | |
count: 0, | |
version: { | |
script: "2.9.2", | |
needFlash: "2.9.0", | |
flash: "unknown" | |
}, | |
options: { | |
swfPath: "js", | |
solution: "html, flash", | |
supplied: "mp3", | |
auroraFormats: "wav", | |
preload: "metadata", | |
volume: .8, | |
muted: !1, | |
remainingDuration: !1, | |
toggleDuration: !1, | |
captureDuration: !0, | |
playbackRate: 1, | |
defaultPlaybackRate: 1, | |
minPlaybackRate: .5, | |
maxPlaybackRate: 4, | |
wmode: "opaque", | |
backgroundColor: "#000000", | |
cssSelectorAncestor: "#jp_container_1", | |
cssSelector: { | |
videoPlay: ".jp-video-play", | |
play: ".jp-play", | |
pause: ".jp-pause", | |
stop: ".jp-stop", | |
seekBar: ".jp-seek-bar", | |
playBar: ".jp-play-bar", | |
mute: ".jp-mute", | |
unmute: ".jp-unmute", | |
volumeBar: ".jp-volume-bar", | |
volumeBarValue: ".jp-volume-bar-value", | |
volumeMax: ".jp-volume-max", | |
playbackRateBar: ".jp-playback-rate-bar", | |
playbackRateBarValue: ".jp-playback-rate-bar-value", | |
currentTime: ".jp-current-time", | |
duration: ".jp-duration", | |
title: ".jp-title", | |
fullScreen: ".jp-full-screen", | |
restoreScreen: ".jp-restore-screen", | |
repeat: ".jp-repeat", | |
repeatOff: ".jp-repeat-off", | |
gui: ".jp-gui", | |
noSolution: ".jp-no-solution" | |
}, | |
stateClass: { | |
playing: "jp-state-playing", | |
seeking: "jp-state-seeking", | |
muted: "jp-state-muted", | |
looped: "jp-state-looped", | |
fullScreen: "jp-state-full-screen", | |
noVolume: "jp-state-no-volume" | |
}, | |
useStateClassSkin: !1, | |
autoBlur: !0, | |
smoothPlayBar: !1, | |
fullScreen: !1, | |
fullWindow: !1, | |
autohide: { | |
restored: !1, | |
full: !0, | |
fadeIn: 200, | |
fadeOut: 600, | |
hold: 1e3 | |
}, | |
loop: !1, | |
repeat: function(b) { | |
b.jPlayer.options.loop ? a(this).unbind(".jPlayerRepeat").bind(a.jPlayer.event.ended + ".jPlayer.jPlayerRepeat", function() { | |
a(this).jPlayer("play") | |
}) : a(this).unbind(".jPlayerRepeat") | |
}, | |
nativeVideoControls: {}, | |
noFullWindow: { | |
msie: /msie [0-6]\./, | |
ipad: /ipad.*?os [0-4]\./, | |
iphone: /iphone/, | |
ipod: /ipod/, | |
android_pad: /android [0-3]\.(?!.*?mobile)/, | |
android_phone: /(?=.*android)(?!.*chrome)(?=.*mobile)/, | |
blackberry: /blackberry/, | |
windows_ce: /windows ce/, | |
iemobile: /iemobile/, | |
webos: /webos/ | |
}, | |
noVolume: { | |
ipad: /ipad/, | |
iphone: /iphone/, | |
ipod: /ipod/, | |
android_pad: /android(?!.*?mobile)/, | |
android_phone: /android.*?mobile/, | |
blackberry: /blackberry/, | |
windows_ce: /windows ce/, | |
iemobile: /iemobile/, | |
webos: /webos/, | |
playbook: /playbook/ | |
}, | |
timeFormat: {}, | |
keyEnabled: !1, | |
audioFullScreen: !1, | |
keyBindings: { | |
play: { | |
key: 80, | |
fn: function(a) { | |
a.status.paused ? a.play() : a.pause() | |
} | |
}, | |
fullScreen: { | |
key: 70, | |
fn: function(a) { | |
(a.status.video || a.options.audioFullScreen) && a._setOption("fullScreen", !a.options.fullScreen) | |
} | |
}, | |
muted: { | |
key: 77, | |
fn: function(a) { | |
a._muted(!a.options.muted) | |
} | |
}, | |
volumeUp: { | |
key: 190, | |
fn: function(a) { | |
a.volume(a.options.volume + .1) | |
} | |
}, | |
volumeDown: { | |
key: 188, | |
fn: function(a) { | |
a.volume(a.options.volume - .1) | |
} | |
}, | |
loop: { | |
key: 76, | |
fn: function(a) { | |
a._loop(!a.options.loop) | |
} | |
} | |
}, | |
verticalVolume: !1, | |
verticalPlaybackRate: !1, | |
globalVolume: !1, | |
idPrefix: "jp", | |
noConflict: "jQuery", | |
emulateHtml: !1, | |
consoleAlerts: !0, | |
errorAlerts: !1, | |
warningAlerts: !1 | |
}, | |
optionsAudio: { | |
size: { | |
width: "0px", | |
height: "0px", | |
cssClass: "" | |
}, | |
sizeFull: { | |
width: "0px", | |
height: "0px", | |
cssClass: "" | |
} | |
}, | |
optionsVideo: { | |
size: { | |
width: "480px", | |
height: "270px", | |
cssClass: "jp-video-270p" | |
}, | |
sizeFull: { | |
width: "100%", | |
height: "100%", | |
cssClass: "jp-video-full" | |
} | |
}, | |
instances: {}, | |
status: { | |
src: "", | |
media: {}, | |
paused: !0, | |
format: {}, | |
formatType: "", | |
waitForPlay: !0, | |
waitForLoad: !0, | |
srcSet: !1, | |
video: !1, | |
seekPercent: 0, | |
currentPercentRelative: 0, | |
currentPercentAbsolute: 0, | |
currentTime: 0, | |
duration: 0, | |
remaining: 0, | |
videoWidth: 0, | |
videoHeight: 0, | |
readyState: 0, | |
networkState: 0, | |
playbackRate: 1, | |
ended: 0 | |
}, | |
internal: { | |
ready: !1 | |
}, | |
solution: { | |
html: !0, | |
aurora: !0, | |
flash: !0 | |
}, | |
format: { | |
mp3: { | |
codec: "audio/mpeg", | |
flashCanPlay: !0, | |
media: "audio" | |
}, | |
m4a: { | |
codec: 'audio/mp4; codecs="mp4a.40.2"', | |
flashCanPlay: !0, | |
media: "audio" | |
}, | |
m3u8a: { | |
codec: 'application/vnd.apple.mpegurl; codecs="mp4a.40.2"', | |
flashCanPlay: !1, | |
media: "audio" | |
}, | |
m3ua: { | |
codec: "audio/mpegurl", | |
flashCanPlay: !1, | |
media: "audio" | |
}, | |
oga: { | |
codec: 'audio/ogg; codecs="vorbis, opus"', | |
flashCanPlay: !1, | |
media: "audio" | |
}, | |
flac: { | |
codec: "audio/x-flac", | |
flashCanPlay: !1, | |
media: "audio" | |
}, | |
wav: { | |
codec: 'audio/wav; codecs="1"', | |
flashCanPlay: !1, | |
media: "audio" | |
}, | |
webma: { | |
codec: 'audio/webm; codecs="vorbis"', | |
flashCanPlay: !1, | |
media: "audio" | |
}, | |
fla: { | |
codec: "audio/x-flv", | |
flashCanPlay: !0, | |
media: "audio" | |
}, | |
rtmpa: { | |
codec: 'audio/rtmp; codecs="rtmp"', | |
flashCanPlay: !0, | |
media: "audio" | |
}, | |
m4v: { | |
codec: 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"', | |
flashCanPlay: !0, | |
media: "video" | |
}, | |
m3u8v: { | |
codec: 'application/vnd.apple.mpegurl; codecs="avc1.42E01E, mp4a.40.2"', | |
flashCanPlay: !1, | |
media: "video" | |
}, | |
m3uv: { | |
codec: "audio/mpegurl", | |
flashCanPlay: !1, | |
media: "video" | |
}, | |
ogv: { | |
codec: 'video/ogg; codecs="theora, vorbis"', | |
flashCanPlay: !1, | |
media: "video" | |
}, | |
webmv: { | |
codec: 'video/webm; codecs="vorbis, vp8"', | |
flashCanPlay: !1, | |
media: "video" | |
}, | |
flv: { | |
codec: "video/x-flv", | |
flashCanPlay: !0, | |
media: "video" | |
}, | |
rtmpv: { | |
codec: 'video/rtmp; codecs="rtmp"', | |
flashCanPlay: !0, | |
media: "video" | |
} | |
}, | |
_init: function() { | |
var c = this; | |
if (this.element.empty(), this.status = a.extend({}, this.status), this.internal = a.extend({}, this.internal), this.options.timeFormat = a.extend({}, a.jPlayer.timeFormat, this.options.timeFormat), this.internal.cmdsIgnored = a.jPlayer.platform.ipad || a.jPlayer.platform.iphone || a.jPlayer.platform.ipod, this.internal.domNode = this.element.get(0), this.options.keyEnabled && !a.jPlayer.focus && (a.jPlayer.focus = this), this.androidFix = { | |
setMedia: !1, | |
play: !1, | |
pause: !1, | |
time: NaN | |
}, a.jPlayer.platform.android && (this.options.preload = "auto" !== this.options.preload ? "metadata" : "auto"), this.formats = [], this.solutions = [], this.require = {}, this.htmlElement = {}, this.html = {}, this.html.audio = {}, this.html.video = {}, this.aurora = {}, this.aurora.formats = [], this.aurora.properties = [], this.flash = {}, this.css = {}, this.css.cs = {}, this.css.jq = {}, this.ancestorJq = [], this.options.volume = this._limitValue(this.options.volume, 0, 1), a.each(this.options.supplied.toLowerCase().split(","), function(b, d) { | |
var e = d.replace(/^\s+|\s+$/g, ""); | |
if (c.format[e]) { | |
var f = !1; | |
a.each(c.formats, function(a, b) { | |
return e === b ? (f = !0, !1) : void 0 | |
}), f || c.formats.push(e) | |
} | |
}), a.each(this.options.solution.toLowerCase().split(","), function(b, d) { | |
var e = d.replace(/^\s+|\s+$/g, ""); | |
if (c.solution[e]) { | |
var f = !1; | |
a.each(c.solutions, function(a, b) { | |
return e === b ? (f = !0, !1) : void 0 | |
}), f || c.solutions.push(e) | |
} | |
}), a.each(this.options.auroraFormats.toLowerCase().split(","), function(b, d) { | |
var e = d.replace(/^\s+|\s+$/g, ""); | |
if (c.format[e]) { | |
var f = !1; | |
a.each(c.aurora.formats, function(a, b) { | |
return e === b ? (f = !0, !1) : void 0 | |
}), f || c.aurora.formats.push(e) | |
} | |
}), this.internal.instance = "jp_" + this.count, this.instances[this.internal.instance] = this.element, this.element.attr("id") || this.element.attr("id", this.options.idPrefix + "_jplayer_" + this.count), this.internal.self = a.extend({}, { | |
id: this.element.attr("id"), | |
jq: this.element | |
}), this.internal.audio = a.extend({}, { | |
id: this.options.idPrefix + "_audio_" + this.count, | |
jq: b | |
}), this.internal.video = a.extend({}, { | |
id: this.options.idPrefix + "_video_" + this.count, | |
jq: b | |
}), this.internal.flash = a.extend({}, { | |
id: this.options.idPrefix + "_flash_" + this.count, | |
jq: b, | |
swf: this.options.swfPath + (".swf" !== this.options.swfPath.toLowerCase().slice(-4) ? (this.options.swfPath && "/" !== this.options.swfPath.slice(-1) ? "/" : "") + "jquery.jplayer.swf" : "") | |
}), this.internal.poster = a.extend({}, { | |
id: this.options.idPrefix + "_poster_" + this.count, | |
jq: b | |
}), a.each(a.jPlayer.event, function(a, d) { | |
c.options[a] !== b && (c.element.bind(d + ".jPlayer", c.options[a]), c.options[a] = b) | |
}), this.require.audio = !1, this.require.video = !1, a.each(this.formats, function(a, b) { | |
c.require[c.format[b].media] = !0 | |
}), this.options = this.require.video ? a.extend(!0, {}, this.optionsVideo, this.options) : a.extend(!0, {}, this.optionsAudio, this.options), this._setSize(), this.status.nativeVideoControls = this._uaBlocklist(this.options.nativeVideoControls), this.status.noFullWindow = this._uaBlocklist(this.options.noFullWindow), this.status.noVolume = this._uaBlocklist(this.options.noVolume), a.jPlayer.nativeFeatures.fullscreen.api.fullscreenEnabled && this._fullscreenAddEventListeners(), this._restrictNativeVideoControls(), this.htmlElement.poster = document.createElement("img"), this.htmlElement.poster.id = this.internal.poster.id, this.htmlElement.poster.onload = function() { | |
(!c.status.video || c.status.waitForPlay) && c.internal.poster.jq.show() | |
}, this.element.append(this.htmlElement.poster), this.internal.poster.jq = a("#" + this.internal.poster.id), this.internal.poster.jq.css({ | |
width: this.status.width, | |
height: this.status.height | |
}), this.internal.poster.jq.hide(), this.internal.poster.jq.bind("click.jPlayer", function() { | |
c._trigger(a.jPlayer.event.click) | |
}), this.html.audio.available = !1, this.require.audio && (this.htmlElement.audio = document.createElement("audio"), this.htmlElement.audio.id = this.internal.audio.id, this.html.audio.available = !!this.htmlElement.audio.canPlayType && this._testCanPlayType(this.htmlElement.audio)), this.html.video.available = !1, this.require.video && (this.htmlElement.video = document.createElement("video"), this.htmlElement.video.id = this.internal.video.id, this.html.video.available = !!this.htmlElement.video.canPlayType && this._testCanPlayType(this.htmlElement.video)), this.flash.available = this._checkForFlash(10.1), this.html.canPlay = {}, this.aurora.canPlay = {}, this.flash.canPlay = {}, a.each(this.formats, function(b, d) { | |
c.html.canPlay[d] = c.html[c.format[d].media].available && "" !== c.htmlElement[c.format[d].media].canPlayType(c.format[d].codec), c.aurora.canPlay[d] = a.inArray(d, c.aurora.formats) > -1, c.flash.canPlay[d] = c.format[d].flashCanPlay && c.flash.available | |
}), this.html.desired = !1, this.aurora.desired = !1, this.flash.desired = !1, a.each(this.solutions, function(b, d) { | |
if (0 === b) c[d].desired = !0; | |
else { | |
var e = !1, | |
f = !1; | |
a.each(c.formats, function(a, b) { | |
c[c.solutions[0]].canPlay[b] && ("video" === c.format[b].media ? f = !0 : e = !0) | |
}), c[d].desired = c.require.audio && !e || c.require.video && !f | |
} | |
}), this.html.support = {}, this.aurora.support = {}, this.flash.support = {}, a.each(this.formats, function(a, b) { | |
c.html.support[b] = c.html.canPlay[b] && c.html.desired, c.aurora.support[b] = c.aurora.canPlay[b] && c.aurora.desired, c.flash.support[b] = c.flash.canPlay[b] && c.flash.desired | |
}), this.html.used = !1, this.aurora.used = !1, this.flash.used = !1, a.each(this.solutions, function(b, d) { | |
a.each(c.formats, function(a, b) { | |
return c[d].support[b] ? (c[d].used = !0, !1) : void 0 | |
}) | |
}), this._resetActive(), this._resetGate(), this._cssSelectorAncestor(this.options.cssSelectorAncestor), this.html.used || this.aurora.used || this.flash.used ? this.css.jq.noSolution.length && this.css.jq.noSolution.hide() : (this._error({ | |
type: a.jPlayer.error.NO_SOLUTION, | |
context: "{solution:'" + this.options.solution + "', supplied:'" + this.options.supplied + "'}", | |
message: a.jPlayer.errorMsg.NO_SOLUTION, | |
hint: a.jPlayer.errorHint.NO_SOLUTION | |
}), this.css.jq.noSolution.length && this.css.jq.noSolution.show()), this.flash.used) { | |
var d, e = "jQuery=" + encodeURI(this.options.noConflict) + "&id=" + encodeURI(this.internal.self.id) + "&vol=" + this.options.volume + "&muted=" + this.options.muted; | |
if (a.jPlayer.browser.msie && (Number(a.jPlayer.browser.version) < 9 || a.jPlayer.browser.documentMode < 9)) { | |
var f = '<object id="' + this.internal.flash.id + '" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="0" height="0" tabindex="-1"></object>', | |
g = ['<param name="movie" value="' + this.internal.flash.swf + '" />', '<param name="FlashVars" value="' + e + '" />', '<param name="allowScriptAccess" value="always" />', '<param name="bgcolor" value="' + this.options.backgroundColor + '" />', '<param name="wmode" value="' + this.options.wmode + '" />']; | |
d = document.createElement(f); | |
for (var h = 0; h < g.length; h++) d.appendChild(document.createElement(g[h])) | |
} else { | |
var i = function(a, b, c) { | |
var d = document.createElement("param"); | |
d.setAttribute("name", b), d.setAttribute("value", c), a.appendChild(d) | |
}; | |
d = document.createElement("object"), d.setAttribute("id", this.internal.flash.id), d.setAttribute("name", this.internal.flash.id), d.setAttribute("data", this.internal.flash.swf), d.setAttribute("type", "application/x-shockwave-flash"), d.setAttribute("width", "1"), d.setAttribute("height", "1"), d.setAttribute("tabindex", "-1"), i(d, "flashvars", e), i(d, "allowscriptaccess", "always"), i(d, "bgcolor", this.options.backgroundColor), i(d, "wmode", this.options.wmode) | |
} | |
this.element.append(d), this.internal.flash.jq = a(d) | |
} | |
this.status.playbackRateEnabled = !(!this.html.used || this.flash.used) && this._testPlaybackRate("audio"), this._updatePlaybackRate(), this.html.used && (this.html.audio.available && (this._addHtmlEventListeners(this.htmlElement.audio, this.html.audio), this.element.append(this.htmlElement.audio), this.internal.audio.jq = a("#" + this.internal.audio.id)), this.html.video.available && (this._addHtmlEventListeners(this.htmlElement.video, this.html.video), this.element.append(this.htmlElement.video), this.internal.video.jq = a("#" + this.internal.video.id), this.internal.video.jq.css(this.status.nativeVideoControls ? { | |
width: this.status.width, | |
height: this.status.height | |
} : { | |
width: "0px", | |
height: "0px" | |
}), this.internal.video.jq.bind("click.jPlayer", function() { | |
c._trigger(a.jPlayer.event.click) | |
}))), this.aurora.used, this.options.emulateHtml && this._emulateHtmlBridge(), !this.html.used && !this.aurora.used || this.flash.used || setTimeout(function() { | |
c.internal.ready = !0, c.version.flash = "n/a", c._trigger(a.jPlayer.event.repeat), c._trigger(a.jPlayer.event.ready) | |
}, 100), this._updateNativeVideoControls(), this.css.jq.videoPlay.length && this.css.jq.videoPlay.hide(), a.jPlayer.prototype.count++ | |
}, | |
destroy: function() { | |
this.clearMedia(), this._removeUiClass(), this.css.jq.currentTime.length && this.css.jq.currentTime.text(""), this.css.jq.duration.length && this.css.jq.duration.text(""), a.each(this.css.jq, function(a, b) { | |
b.length && b.unbind(".jPlayer") | |
}), this.internal.poster.jq.unbind(".jPlayer"), this.internal.video.jq && this.internal.video.jq.unbind(".jPlayer"), this._fullscreenRemoveEventListeners(), this === a.jPlayer.focus && (a.jPlayer.focus = null), this.options.emulateHtml && this._destroyHtmlBridge(), this.element.removeData("jPlayer"), this.element.unbind(".jPlayer"), this.element.empty(), delete this.instances[this.internal.instance] | |
}, | |
destroyRemoved: function() { | |
var b = this; | |
a.each(this.instances, function(a, c) { | |
b.element !== c && (c.data("jPlayer") || (c.jPlayer("destroy"), delete b.instances[a])) | |
}) | |
}, | |
enable: function() {}, | |
disable: function() {}, | |
_testCanPlayType: function(a) { | |
try { | |
return a.canPlayType(this.format.mp3.codec), !0 | |
} catch (a) { | |
return !1 | |
} | |
}, | |
_testPlaybackRate: function(a) { | |
var b, c = .5; | |
a = "string" == typeof a ? a : "audio", b = document.createElement(a); | |
try { | |
return "playbackRate" in b && (b.playbackRate = c, b.playbackRate === c) | |
} catch (a) { | |
return !1 | |
} | |
}, | |
_uaBlocklist: function(b) { | |
var c = navigator.userAgent.toLowerCase(), | |
d = !1; | |
return a.each(b, function(a, b) { | |
return b && b.test(c) ? (d = !0, !1) : void 0 | |
}), d | |
}, | |
_restrictNativeVideoControls: function() { | |
this.require.audio && this.status.nativeVideoControls && (this.status.nativeVideoControls = !1, this.status.noFullWindow = !0) | |
}, | |
_updateNativeVideoControls: function() { | |
this.html.video.available && this.html.used && (this.htmlElement.video.controls = this.status.nativeVideoControls, this._updateAutohide(), this.status.nativeVideoControls && this.require.video ? (this.internal.poster.jq.hide(), this.internal.video.jq.css({ | |
width: this.status.width, | |
height: this.status.height | |
})) : this.status.waitForPlay && this.status.video && (this.internal.poster.jq.show(), this.internal.video.jq.css({ | |
width: "0px", | |
height: "0px" | |
}))) | |
}, | |
_addHtmlEventListeners: function(b, c) { | |
var d = this; | |
b.preload = this.options.preload, b.muted = this.options.muted, b.volume = this.options.volume, this.status.playbackRateEnabled && (b.defaultPlaybackRate = this.options.defaultPlaybackRate, b.playbackRate = this.options.playbackRate), b.addEventListener("progress", function() { | |
c.gate && (d.internal.cmdsIgnored && this.readyState > 0 && (d.internal.cmdsIgnored = !1), d._getHtmlStatus(b), d._updateInterface(), d._trigger(a.jPlayer.event.progress)) | |
}, !1), b.addEventListener("loadeddata", function() { | |
c.gate && (d.androidFix.setMedia = !1, d.androidFix.play && (d.androidFix.play = !1, d.play(d.androidFix.time)), d.androidFix.pause && (d.androidFix.pause = !1, d.pause(d.androidFix.time)), d._trigger(a.jPlayer.event.loadeddata)) | |
}, !1), b.addEventListener("timeupdate", function() { | |
c.gate && (d._getHtmlStatus(b), d._updateInterface(), d._trigger(a.jPlayer.event.timeupdate)) | |
}, !1), b.addEventListener("durationchange", function() { | |
c.gate && (d._getHtmlStatus(b), d._updateInterface(), d._trigger(a.jPlayer.event.durationchange)) | |
}, !1), b.addEventListener("play", function() { | |
c.gate && (d._updateButtons(!0), d._html_checkWaitForPlay(), d._trigger(a.jPlayer.event.play)) | |
}, !1), b.addEventListener("playing", function() { | |
c.gate && (d._updateButtons(!0), d._seeked(), d._trigger(a.jPlayer.event.playing)) | |
}, !1), b.addEventListener("pause", function() { | |
c.gate && (d._updateButtons(!1), d._trigger(a.jPlayer.event.pause)) | |
}, !1), b.addEventListener("waiting", function() { | |
c.gate && (d._seeking(), d._trigger(a.jPlayer.event.waiting)) | |
}, !1), b.addEventListener("seeking", function() { | |
c.gate && (d._seeking(), d._trigger(a.jPlayer.event.seeking)) | |
}, !1), b.addEventListener("seeked", function() { | |
c.gate && (d._seeked(), d._trigger(a.jPlayer.event.seeked)) | |
}, !1), b.addEventListener("volumechange", function() { | |
c.gate && (d.options.volume = b.volume, d.options.muted = b.muted, d._updateMute(), d._updateVolume(), d._trigger(a.jPlayer.event.volumechange)) | |
}, !1), b.addEventListener("ratechange", function() { | |
c.gate && (d.options.defaultPlaybackRate = b.defaultPlaybackRate, d.options.playbackRate = b.playbackRate, d._updatePlaybackRate(), d._trigger(a.jPlayer.event.ratechange)) | |
}, !1), b.addEventListener("suspend", function() { | |
c.gate && (d._seeked(), d._trigger(a.jPlayer.event.suspend)) | |
}, !1), b.addEventListener("ended", function() { | |
c.gate && (a.jPlayer.browser.webkit || (d.htmlElement.media.currentTime = 0), d.htmlElement.media.pause(), d._updateButtons(!1), d._getHtmlStatus(b, !0), d._updateInterface(), d._trigger(a.jPlayer.event.ended)) | |
}, !1), b.addEventListener("error", function() { | |
c.gate && (d._updateButtons(!1), d._seeked(), d.status.srcSet && (clearTimeout(d.internal.htmlDlyCmdId), d.status.waitForLoad = !0, d.status.waitForPlay = !0, d.status.video && !d.status.nativeVideoControls && d.internal.video.jq.css({ | |
width: "0px", | |
height: "0px" | |
}), d._validString(d.status.media.poster) && !d.status.nativeVideoControls && d.internal.poster.jq.show(), d.css.jq.videoPlay.length && d.css.jq.videoPlay.show(), d._error({ | |
type: a.jPlayer.error.URL, | |
context: d.status.src, | |
message: a.jPlayer.errorMsg.URL, | |
hint: a.jPlayer.errorHint.URL | |
}))) | |
}, !1), a.each(a.jPlayer.htmlEvent, function(e, f) { | |
b.addEventListener(this, function() { | |
c.gate && d._trigger(a.jPlayer.event[f]) | |
}, !1) | |
}) | |
}, | |
_addAuroraEventListeners: function(b, c) { | |
var d = this; | |
b.volume = 100 * this.options.volume, b.on("progress", function() { | |
c.gate && (d.internal.cmdsIgnored && this.readyState > 0 && (d.internal.cmdsIgnored = !1), d._getAuroraStatus(b), d._updateInterface(), d._trigger(a.jPlayer.event.progress), b.duration > 0 && d._trigger(a.jPlayer.event.timeupdate)) | |
}, !1), b.on("ready", function() { | |
c.gate && d._trigger(a.jPlayer.event.loadeddata) | |
}, !1), b.on("duration", function() { | |
c.gate && (d._getAuroraStatus(b), d._updateInterface(), d._trigger(a.jPlayer.event.durationchange)) | |
}, !1), b.on("end", function() { | |
c.gate && (d._updateButtons(!1), d._getAuroraStatus(b, !0), d._updateInterface(), d._trigger(a.jPlayer.event.ended)) | |
}, !1), b.on("error", function() { | |
c.gate && (d._updateButtons(!1), d._seeked(), d.status.srcSet && (d.status.waitForLoad = !0, d.status.waitForPlay = !0, d.status.video && !d.status.nativeVideoControls && d.internal.video.jq.css({ | |
width: "0px", | |
height: "0px" | |
}), d._validString(d.status.media.poster) && !d.status.nativeVideoControls && d.internal.poster.jq.show(), d.css.jq.videoPlay.length && d.css.jq.videoPlay.show(), d._error({ | |
type: a.jPlayer.error.URL, | |
context: d.status.src, | |
message: a.jPlayer.errorMsg.URL, | |
hint: a.jPlayer.errorHint.URL | |
}))) | |
}, !1) | |
}, | |
_getHtmlStatus: function(a, b) { | |
var c = 0, | |
d = 0, | |
e = 0, | |
f = 0; | |
isFinite(a.duration) && (this.status.duration = a.duration), c = a.currentTime, d = this.status.duration > 0 ? 100 * c / this.status.duration : 0, "object" == typeof a.seekable && a.seekable.length > 0 ? (e = this.status.duration > 0 ? 100 * a.seekable.end(a.seekable.length - 1) / this.status.duration : 100, f = this.status.duration > 0 ? 100 * a.currentTime / a.seekable.end(a.seekable.length - 1) : 0) : (e = 100, f = d), b && (c = 0, f = 0, d = 0), this.status.seekPercent = e, this.status.currentPercentRelative = f, this.status.currentPercentAbsolute = d, this.status.currentTime = c, this.status.remaining = this.status.duration - this.status.currentTime, this.status.videoWidth = a.videoWidth, this.status.videoHeight = a.videoHeight, this.status.readyState = a.readyState, this.status.networkState = a.networkState, this.status.playbackRate = a.playbackRate, this.status.ended = a.ended | |
}, | |
_getAuroraStatus: function(a, b) { | |
var c = 0, | |
d = 0, | |
e = 0, | |
f = 0; | |
this.status.duration = a.duration / 1e3, c = a.currentTime / 1e3, d = this.status.duration > 0 ? 100 * c / this.status.duration : 0, a.buffered > 0 ? (e = this.status.duration > 0 ? a.buffered * this.status.duration / this.status.duration : 100, f = this.status.duration > 0 ? c / (a.buffered * this.status.duration) : 0) : (e = 100, f = d), b && (c = 0, f = 0, d = 0), this.status.seekPercent = e, this.status.currentPercentRelative = f, this.status.currentPercentAbsolute = d, this.status.currentTime = c, this.status.remaining = this.status.duration - this.status.currentTime, this.status.readyState = 4, this.status.networkState = 0, this.status.playbackRate = 1, this.status.ended = !1 | |
}, | |
_resetStatus: function() { | |
this.status = a.extend({}, this.status, a.jPlayer.prototype.status) | |
}, | |
_trigger: function(b, c, d) { | |
var e = a.Event(b); | |
e.jPlayer = {}, e.jPlayer.version = a.extend({}, this.version), e.jPlayer.options = a.extend(!0, {}, this.options), e.jPlayer.status = a.extend(!0, {}, this.status), e.jPlayer.html = a.extend(!0, {}, this.html), e.jPlayer.aurora = a.extend(!0, {}, this.aurora), e.jPlayer.flash = a.extend(!0, {}, this.flash), | |
c && (e.jPlayer.error = a.extend({}, c)), d && (e.jPlayer.warning = a.extend({}, d)), this.element.trigger(e) | |
}, | |
jPlayerFlashEvent: function(b, c) { | |
if (b === a.jPlayer.event.ready) | |
if (this.internal.ready) { | |
if (this.flash.gate) { | |
if (this.status.srcSet) { | |
var d = this.status.currentTime, | |
e = this.status.paused; | |
this.setMedia(this.status.media), this.volumeWorker(this.options.volume), d > 0 && (e ? this.pause(d) : this.play(d)) | |
} | |
this._trigger(a.jPlayer.event.flashreset) | |
} | |
} else this.internal.ready = !0, this.internal.flash.jq.css({ | |
width: "0px", | |
height: "0px" | |
}), this.version.flash = c.version, this.version.needFlash !== this.version.flash && this._error({ | |
type: a.jPlayer.error.VERSION, | |
context: this.version.flash, | |
message: a.jPlayer.errorMsg.VERSION + this.version.flash, | |
hint: a.jPlayer.errorHint.VERSION | |
}), this._trigger(a.jPlayer.event.repeat), this._trigger(b); | |
if (this.flash.gate) switch (b) { | |
case a.jPlayer.event.progress: | |
this._getFlashStatus(c), this._updateInterface(), this._trigger(b); | |
break; | |
case a.jPlayer.event.timeupdate: | |
this._getFlashStatus(c), this._updateInterface(), this._trigger(b); | |
break; | |
case a.jPlayer.event.play: | |
this._seeked(), this._updateButtons(!0), this._trigger(b); | |
break; | |
case a.jPlayer.event.pause: | |
this._updateButtons(!1), this._trigger(b); | |
break; | |
case a.jPlayer.event.ended: | |
this._updateButtons(!1), this._trigger(b); | |
break; | |
case a.jPlayer.event.click: | |
this._trigger(b); | |
break; | |
case a.jPlayer.event.error: | |
this.status.waitForLoad = !0, this.status.waitForPlay = !0, this.status.video && this.internal.flash.jq.css({ | |
width: "0px", | |
height: "0px" | |
}), this._validString(this.status.media.poster) && this.internal.poster.jq.show(), this.css.jq.videoPlay.length && this.status.video && this.css.jq.videoPlay.show(), this.status.video ? this._flash_setVideo(this.status.media) : this._flash_setAudio(this.status.media), this._updateButtons(!1), this._error({ | |
type: a.jPlayer.error.URL, | |
context: c.src, | |
message: a.jPlayer.errorMsg.URL, | |
hint: a.jPlayer.errorHint.URL | |
}); | |
break; | |
case a.jPlayer.event.seeking: | |
this._seeking(), this._trigger(b); | |
break; | |
case a.jPlayer.event.seeked: | |
this._seeked(), this._trigger(b); | |
break; | |
case a.jPlayer.event.ready: | |
break; | |
default: | |
this._trigger(b) | |
} | |
return !1 | |
}, | |
_getFlashStatus: function(a) { | |
this.status.seekPercent = a.seekPercent, this.status.currentPercentRelative = a.currentPercentRelative, this.status.currentPercentAbsolute = a.currentPercentAbsolute, this.status.currentTime = a.currentTime, this.status.duration = a.duration, this.status.remaining = a.duration - a.currentTime, this.status.videoWidth = a.videoWidth, this.status.videoHeight = a.videoHeight, this.status.readyState = 4, this.status.networkState = 0, this.status.playbackRate = 1, this.status.ended = !1 | |
}, | |
_updateButtons: function(a) { | |
a === b ? a = !this.status.paused : this.status.paused = !a, a ? this.addStateClass("playing") : this.removeStateClass("playing"), !this.status.noFullWindow && this.options.fullWindow ? this.addStateClass("fullScreen") : this.removeStateClass("fullScreen"), this.options.loop ? this.addStateClass("looped") : this.removeStateClass("looped"), this.css.jq.play.length && this.css.jq.pause.length && (a ? (this.css.jq.play.hide(), this.css.jq.pause.show()) : (this.css.jq.play.show(), this.css.jq.pause.hide())), this.css.jq.restoreScreen.length && this.css.jq.fullScreen.length && (this.status.noFullWindow ? (this.css.jq.fullScreen.hide(), this.css.jq.restoreScreen.hide()) : this.options.fullWindow ? (this.css.jq.fullScreen.hide(), this.css.jq.restoreScreen.show()) : (this.css.jq.fullScreen.show(), this.css.jq.restoreScreen.hide())), this.css.jq.repeat.length && this.css.jq.repeatOff.length && (this.options.loop ? (this.css.jq.repeat.hide(), this.css.jq.repeatOff.show()) : (this.css.jq.repeat.show(), this.css.jq.repeatOff.hide())) | |
}, | |
_updateInterface: function() { | |
this.css.jq.seekBar.length && this.css.jq.seekBar.width(this.status.seekPercent + "%"), this.css.jq.playBar.length && (this.options.smoothPlayBar ? this.css.jq.playBar.stop().animate({ | |
width: this.status.currentPercentAbsolute + "%" | |
}, 250, "linear") : this.css.jq.playBar.width(this.status.currentPercentRelative + "%")); | |
var a = ""; | |
this.css.jq.currentTime.length && (a = this._convertTime(this.status.currentTime), a !== this.css.jq.currentTime.text() && this.css.jq.currentTime.text(this._convertTime(this.status.currentTime))); | |
var b = "", | |
c = this.status.duration, | |
d = this.status.remaining; | |
this.css.jq.duration.length && ("string" == typeof this.status.media.duration ? b = this.status.media.duration : ("number" == typeof this.status.media.duration && (c = this.status.media.duration, d = c - this.status.currentTime), b = this.options.remainingDuration ? (d > 0 ? "-" : "") + this._convertTime(d) : this._convertTime(c)), b !== this.css.jq.duration.text() && this.css.jq.duration.text(b)) | |
}, | |
_convertTime: c.prototype.time, | |
_seeking: function() { | |
this.css.jq.seekBar.length && this.css.jq.seekBar.addClass("jp-seeking-bg"), this.addStateClass("seeking") | |
}, | |
_seeked: function() { | |
this.css.jq.seekBar.length && this.css.jq.seekBar.removeClass("jp-seeking-bg"), this.removeStateClass("seeking") | |
}, | |
_resetGate: function() { | |
this.html.audio.gate = !1, this.html.video.gate = !1, this.aurora.gate = !1, this.flash.gate = !1 | |
}, | |
_resetActive: function() { | |
this.html.active = !1, this.aurora.active = !1, this.flash.active = !1 | |
}, | |
_escapeHtml: function(a) { | |
return a.split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""") | |
}, | |
_qualifyURL: function(a) { | |
var b = document.createElement("div"); | |
return b.innerHTML = '<a href="' + this._escapeHtml(a) + '">x</a>', b.firstChild.href | |
}, | |
_absoluteMediaUrls: function(b) { | |
var c = this; | |
return a.each(b, function(a, d) { | |
d && c.format[a] && "data:" !== d.substr(0, 5) && (b[a] = c._qualifyURL(d)) | |
}), b | |
}, | |
addStateClass: function(a) { | |
this.ancestorJq.length && this.ancestorJq.addClass(this.options.stateClass[a]) | |
}, | |
removeStateClass: function(a) { | |
this.ancestorJq.length && this.ancestorJq.removeClass(this.options.stateClass[a]) | |
}, | |
setMedia: function(b) { | |
var c = this, | |
d = !1, | |
e = this.status.media.poster !== b.poster; | |
this._resetMedia(), this._resetGate(), this._resetActive(), this.androidFix.setMedia = !1, this.androidFix.play = !1, this.androidFix.pause = !1, b = this._absoluteMediaUrls(b), a.each(this.formats, function(e, f) { | |
var g = "video" === c.format[f].media; | |
return a.each(c.solutions, function(e, h) { | |
if (c[h].support[f] && c._validString(b[f])) { | |
var i = "html" === h, | |
j = "aurora" === h; | |
return g ? (i ? (c.html.video.gate = !0, c._html_setVideo(b), c.html.active = !0) : (c.flash.gate = !0, c._flash_setVideo(b), c.flash.active = !0), c.css.jq.videoPlay.length && c.css.jq.videoPlay.show(), c.status.video = !0) : (i ? (c.html.audio.gate = !0, c._html_setAudio(b), c.html.active = !0, a.jPlayer.platform.android && (c.androidFix.setMedia = !0)) : j ? (c.aurora.gate = !0, c._aurora_setAudio(b), c.aurora.active = !0) : (c.flash.gate = !0, c._flash_setAudio(b), c.flash.active = !0), c.css.jq.videoPlay.length && c.css.jq.videoPlay.hide(), c.status.video = !1), d = !0, !1 | |
} | |
}), !d && void 0 | |
}), d ? (this.status.nativeVideoControls && this.html.video.gate || this._validString(b.poster) && (e ? this.htmlElement.poster.src = b.poster : this.internal.poster.jq.show()), "string" == typeof b.title && (this.css.jq.title.length && this.css.jq.title.html(b.title), this.htmlElement.audio && this.htmlElement.audio.setAttribute("title", b.title), this.htmlElement.video && this.htmlElement.video.setAttribute("title", b.title)), this.status.srcSet = !0, this.status.media = a.extend({}, b), this._updateButtons(!1), this._updateInterface(), this._trigger(a.jPlayer.event.setmedia)) : this._error({ | |
type: a.jPlayer.error.NO_SUPPORT, | |
context: "{supplied:'" + this.options.supplied + "'}", | |
message: a.jPlayer.errorMsg.NO_SUPPORT, | |
hint: a.jPlayer.errorHint.NO_SUPPORT | |
}) | |
}, | |
_resetMedia: function() { | |
this._resetStatus(), this._updateButtons(!1), this._updateInterface(), this._seeked(), this.internal.poster.jq.hide(), clearTimeout(this.internal.htmlDlyCmdId), this.html.active ? this._html_resetMedia() : this.aurora.active ? this._aurora_resetMedia() : this.flash.active && this._flash_resetMedia() | |
}, | |
clearMedia: function() { | |
this._resetMedia(), this.html.active ? this._html_clearMedia() : this.aurora.active ? this._aurora_clearMedia() : this.flash.active && this._flash_clearMedia(), this._resetGate(), this._resetActive() | |
}, | |
load: function() { | |
this.status.srcSet ? this.html.active ? this._html_load() : this.aurora.active ? this._aurora_load() : this.flash.active && this._flash_load() : this._urlNotSetError("load") | |
}, | |
focus: function() { | |
this.options.keyEnabled && (a.jPlayer.focus = this) | |
}, | |
play: function(a) { | |
var b = "object" == typeof a; | |
b && this.options.useStateClassSkin && !this.status.paused ? this.pause(a) : (a = "number" == typeof a ? a : NaN, this.status.srcSet ? (this.focus(), this.html.active ? this._html_play(a) : this.aurora.active ? this._aurora_play(a) : this.flash.active && this._flash_play(a)) : this._urlNotSetError("play")) | |
}, | |
videoPlay: function() { | |
this.play() | |
}, | |
pause: function(a) { | |
a = "number" == typeof a ? a : NaN, this.status.srcSet ? this.html.active ? this._html_pause(a) : this.aurora.active ? this._aurora_pause(a) : this.flash.active && this._flash_pause(a) : this._urlNotSetError("pause") | |
}, | |
tellOthers: function(b, c) { | |
var d = this, | |
e = "function" == typeof c, | |
f = Array.prototype.slice.call(arguments); | |
"string" == typeof b && (e && f.splice(1, 1), a.jPlayer.prototype.destroyRemoved(), a.each(this.instances, function() { | |
d.element !== this && (!e || c.call(this.data("jPlayer"), d)) && this.jPlayer.apply(this, f) | |
})) | |
}, | |
pauseOthers: function(a) { | |
this.tellOthers("pause", function() { | |
return this.status.srcSet | |
}, a) | |
}, | |
stop: function() { | |
this.status.srcSet ? this.html.active ? this._html_pause(0) : this.aurora.active ? this._aurora_pause(0) : this.flash.active && this._flash_pause(0) : this._urlNotSetError("stop") | |
}, | |
playHead: function(a) { | |
a = this._limitValue(a, 0, 100), this.status.srcSet ? this.html.active ? this._html_playHead(a) : this.aurora.active ? this._aurora_playHead(a) : this.flash.active && this._flash_playHead(a) : this._urlNotSetError("playHead") | |
}, | |
_muted: function(a) { | |
this.mutedWorker(a), this.options.globalVolume && this.tellOthers("mutedWorker", function() { | |
return this.options.globalVolume | |
}, a) | |
}, | |
mutedWorker: function(b) { | |
this.options.muted = b, this.html.used && this._html_setProperty("muted", b), this.aurora.used && this._aurora_mute(b), this.flash.used && this._flash_mute(b), this.html.video.gate || this.html.audio.gate || (this._updateMute(b), this._updateVolume(this.options.volume), this._trigger(a.jPlayer.event.volumechange)) | |
}, | |
mute: function(a) { | |
var c = "object" == typeof a; | |
c && this.options.useStateClassSkin && this.options.muted ? this._muted(!1) : (a = a === b || !!a, this._muted(a)) | |
}, | |
unmute: function(a) { | |
a = a === b || !!a, this._muted(!a) | |
}, | |
_updateMute: function(a) { | |
a === b && (a = this.options.muted), a ? this.addStateClass("muted") : this.removeStateClass("muted"), this.css.jq.mute.length && this.css.jq.unmute.length && (this.status.noVolume ? (this.css.jq.mute.hide(), this.css.jq.unmute.hide()) : a ? (this.css.jq.mute.hide(), this.css.jq.unmute.show()) : (this.css.jq.mute.show(), this.css.jq.unmute.hide())) | |
}, | |
volume: function(a) { | |
this.volumeWorker(a), this.options.globalVolume && this.tellOthers("volumeWorker", function() { | |
return this.options.globalVolume | |
}, a) | |
}, | |
volumeWorker: function(b) { | |
b = this._limitValue(b, 0, 1), this.options.volume = b, this.html.used && this._html_setProperty("volume", b), this.aurora.used && this._aurora_volume(b), this.flash.used && this._flash_volume(b), this.html.video.gate || this.html.audio.gate || (this._updateVolume(b), this._trigger(a.jPlayer.event.volumechange)) | |
}, | |
volumeBar: function(b) { | |
if (this.css.jq.volumeBar.length) { | |
var c = a(b.currentTarget), | |
d = c.offset(), | |
e = b.pageX - d.left, | |
f = c.width(), | |
g = c.height() - b.pageY + d.top, | |
h = c.height(); | |
this.volume(this.options.verticalVolume ? g / h : e / f) | |
} | |
this.options.muted && this._muted(!1) | |
}, | |
_updateVolume: function(a) { | |
a === b && (a = this.options.volume), a = this.options.muted ? 0 : a, this.status.noVolume ? (this.addStateClass("noVolume"), this.css.jq.volumeBar.length && this.css.jq.volumeBar.hide(), this.css.jq.volumeBarValue.length && this.css.jq.volumeBarValue.hide(), this.css.jq.volumeMax.length && this.css.jq.volumeMax.hide()) : (this.removeStateClass("noVolume"), this.css.jq.volumeBar.length && this.css.jq.volumeBar.show(), this.css.jq.volumeBarValue.length && (this.css.jq.volumeBarValue.show(), this.css.jq.volumeBarValue[this.options.verticalVolume ? "height" : "width"](100 * a + "%")), this.css.jq.volumeMax.length && this.css.jq.volumeMax.show()) | |
}, | |
volumeMax: function() { | |
this.volume(1), this.options.muted && this._muted(!1) | |
}, | |
_cssSelectorAncestor: function(b) { | |
var c = this; | |
this.options.cssSelectorAncestor = b, this._removeUiClass(), this.ancestorJq = b ? a(b) : [], b && 1 !== this.ancestorJq.length && this._warning({ | |
type: a.jPlayer.warning.CSS_SELECTOR_COUNT, | |
context: b, | |
message: a.jPlayer.warningMsg.CSS_SELECTOR_COUNT + this.ancestorJq.length + " found for cssSelectorAncestor.", | |
hint: a.jPlayer.warningHint.CSS_SELECTOR_COUNT | |
}), this._addUiClass(), a.each(this.options.cssSelector, function(a, b) { | |
c._cssSelector(a, b) | |
}), this._updateInterface(), this._updateButtons(), this._updateAutohide(), this._updateVolume(), this._updateMute() | |
}, | |
_cssSelector: function(b, c) { | |
var d = this; | |
if ("string" == typeof c) | |
if (a.jPlayer.prototype.options.cssSelector[b]) { | |
if (this.css.jq[b] && this.css.jq[b].length && this.css.jq[b].unbind(".jPlayer"), this.options.cssSelector[b] = c, this.css.cs[b] = this.options.cssSelectorAncestor + " " + c, this.css.jq[b] = c ? a(this.css.cs[b]) : [], this.css.jq[b].length && this[b]) { | |
var e = function(c) { | |
c.preventDefault(), d[b](c), d.options.autoBlur ? a(this).blur() : a(this).focus() | |
}; | |
this.css.jq[b].bind("click.jPlayer", e) | |
} | |
c && 1 !== this.css.jq[b].length && this._warning({ | |
type: a.jPlayer.warning.CSS_SELECTOR_COUNT, | |
context: this.css.cs[b], | |
message: a.jPlayer.warningMsg.CSS_SELECTOR_COUNT + this.css.jq[b].length + " found for " + b + " method.", | |
hint: a.jPlayer.warningHint.CSS_SELECTOR_COUNT | |
}) | |
} else this._warning({ | |
type: a.jPlayer.warning.CSS_SELECTOR_METHOD, | |
context: b, | |
message: a.jPlayer.warningMsg.CSS_SELECTOR_METHOD, | |
hint: a.jPlayer.warningHint.CSS_SELECTOR_METHOD | |
}); | |
else this._warning({ | |
type: a.jPlayer.warning.CSS_SELECTOR_STRING, | |
context: c, | |
message: a.jPlayer.warningMsg.CSS_SELECTOR_STRING, | |
hint: a.jPlayer.warningHint.CSS_SELECTOR_STRING | |
}) | |
}, | |
duration: function(a) { | |
this.options.toggleDuration && (this.options.captureDuration && a.stopPropagation(), this._setOption("remainingDuration", !this.options.remainingDuration)) | |
}, | |
seekBar: function(b) { | |
if (this.css.jq.seekBar.length) { | |
var c = a(b.currentTarget), | |
d = c.offset(), | |
e = b.pageX - d.left, | |
f = c.width(), | |
g = 100 * e / f; | |
this.playHead(g) | |
} | |
}, | |
playbackRate: function(a) { | |
this._setOption("playbackRate", a) | |
}, | |
playbackRateBar: function(b) { | |
if (this.css.jq.playbackRateBar.length) { | |
var c, d, e = a(b.currentTarget), | |
f = e.offset(), | |
g = b.pageX - f.left, | |
h = e.width(), | |
i = e.height() - b.pageY + f.top, | |
j = e.height(); | |
c = this.options.verticalPlaybackRate ? i / j : g / h, d = c * (this.options.maxPlaybackRate - this.options.minPlaybackRate) + this.options.minPlaybackRate, this.playbackRate(d) | |
} | |
}, | |
_updatePlaybackRate: function() { | |
var a = this.options.playbackRate, | |
b = (a - this.options.minPlaybackRate) / (this.options.maxPlaybackRate - this.options.minPlaybackRate); | |
this.status.playbackRateEnabled ? (this.css.jq.playbackRateBar.length && this.css.jq.playbackRateBar.show(), this.css.jq.playbackRateBarValue.length && (this.css.jq.playbackRateBarValue.show(), this.css.jq.playbackRateBarValue[this.options.verticalPlaybackRate ? "height" : "width"](100 * b + "%"))) : (this.css.jq.playbackRateBar.length && this.css.jq.playbackRateBar.hide(), this.css.jq.playbackRateBarValue.length && this.css.jq.playbackRateBarValue.hide()) | |
}, | |
repeat: function(a) { | |
var b = "object" == typeof a; | |
this._loop(!(b && this.options.useStateClassSkin && this.options.loop)) | |
}, | |
repeatOff: function() { | |
this._loop(!1) | |
}, | |
_loop: function(b) { | |
this.options.loop !== b && (this.options.loop = b, this._updateButtons(), this._trigger(a.jPlayer.event.repeat)) | |
}, | |
option: function(c, d) { | |
var e = c; | |
if (0 === arguments.length) return a.extend(!0, {}, this.options); | |
if ("string" == typeof c) { | |
var f = c.split("."); | |
if (d === b) { | |
for (var g = a.extend(!0, {}, this.options), h = 0; h < f.length; h++) { | |
if (g[f[h]] === b) return this._warning({ | |
type: a.jPlayer.warning.OPTION_KEY, | |
context: c, | |
message: a.jPlayer.warningMsg.OPTION_KEY, | |
hint: a.jPlayer.warningHint.OPTION_KEY | |
}), b; | |
g = g[f[h]] | |
} | |
return g | |
} | |
e = {}; | |
for (var i = e, j = 0; j < f.length; j++) j < f.length - 1 ? (i[f[j]] = {}, i = i[f[j]]) : i[f[j]] = d | |
} | |
return this._setOptions(e), this | |
}, | |
_setOptions: function(b) { | |
var c = this; | |
return a.each(b, function(a, b) { | |
c._setOption(a, b) | |
}), this | |
}, | |
_setOption: function(b, c) { | |
var d = this; | |
switch (b) { | |
case "volume": | |
this.volume(c); | |
break; | |
case "muted": | |
this._muted(c); | |
break; | |
case "globalVolume": | |
this.options[b] = c; | |
break; | |
case "cssSelectorAncestor": | |
this._cssSelectorAncestor(c); | |
break; | |
case "cssSelector": | |
a.each(c, function(a, b) { | |
d._cssSelector(a, b) | |
}); | |
break; | |
case "playbackRate": | |
this.options[b] = c = this._limitValue(c, this.options.minPlaybackRate, this.options.maxPlaybackRate), this.html.used && this._html_setProperty("playbackRate", c), this._updatePlaybackRate(); | |
break; | |
case "defaultPlaybackRate": | |
this.options[b] = c = this._limitValue(c, this.options.minPlaybackRate, this.options.maxPlaybackRate), this.html.used && this._html_setProperty("defaultPlaybackRate", c), this._updatePlaybackRate(); | |
break; | |
case "minPlaybackRate": | |
this.options[b] = c = this._limitValue(c, .1, this.options.maxPlaybackRate - .1), this._updatePlaybackRate(); | |
break; | |
case "maxPlaybackRate": | |
this.options[b] = c = this._limitValue(c, this.options.minPlaybackRate + .1, 16), this._updatePlaybackRate(); | |
break; | |
case "fullScreen": | |
if (this.options[b] !== c) { | |
var e = a.jPlayer.nativeFeatures.fullscreen.used.webkitVideo; | |
(!e || e && !this.status.waitForPlay) && (e || (this.options[b] = c), c ? this._requestFullscreen() : this._exitFullscreen(), e || this._setOption("fullWindow", c)) | |
} | |
break; | |
case "fullWindow": | |
this.options[b] !== c && (this._removeUiClass(), this.options[b] = c, this._refreshSize()); | |
break; | |
case "size": | |
this.options.fullWindow || this.options[b].cssClass === c.cssClass || this._removeUiClass(), this.options[b] = a.extend({}, this.options[b], c), this._refreshSize(); | |
break; | |
case "sizeFull": | |
this.options.fullWindow && this.options[b].cssClass !== c.cssClass && this._removeUiClass(), this.options[b] = a.extend({}, this.options[b], c), this._refreshSize(); | |
break; | |
case "autohide": | |
this.options[b] = a.extend({}, this.options[b], c), this._updateAutohide(); | |
break; | |
case "loop": | |
this._loop(c); | |
break; | |
case "remainingDuration": | |
this.options[b] = c, this._updateInterface(); | |
break; | |
case "toggleDuration": | |
this.options[b] = c; | |
break; | |
case "nativeVideoControls": | |
this.options[b] = a.extend({}, this.options[b], c), this.status.nativeVideoControls = this._uaBlocklist(this.options.nativeVideoControls), this._restrictNativeVideoControls(), this._updateNativeVideoControls(); | |
break; | |
case "noFullWindow": | |
this.options[b] = a.extend({}, this.options[b], c), this.status.nativeVideoControls = this._uaBlocklist(this.options.nativeVideoControls), this.status.noFullWindow = this._uaBlocklist(this.options.noFullWindow), this._restrictNativeVideoControls(), this._updateButtons(); | |
break; | |
case "noVolume": | |
this.options[b] = a.extend({}, this.options[b], c), this.status.noVolume = this._uaBlocklist(this.options.noVolume), this._updateVolume(), this._updateMute(); | |
break; | |
case "emulateHtml": | |
this.options[b] !== c && (this.options[b] = c, c ? this._emulateHtmlBridge() : this._destroyHtmlBridge()); | |
break; | |
case "timeFormat": | |
this.options[b] = a.extend({}, this.options[b], c); | |
break; | |
case "keyEnabled": | |
this.options[b] = c, c || this !== a.jPlayer.focus || (a.jPlayer.focus = null); | |
break; | |
case "keyBindings": | |
this.options[b] = a.extend(!0, {}, this.options[b], c); | |
break; | |
case "audioFullScreen": | |
this.options[b] = c; | |
break; | |
case "autoBlur": | |
this.options[b] = c | |
} | |
return this | |
}, | |
_refreshSize: function() { | |
this._setSize(), this._addUiClass(), this._updateSize(), this._updateButtons(), this._updateAutohide(), this._trigger(a.jPlayer.event.resize) | |
}, | |
_setSize: function() { | |
this.options.fullWindow ? (this.status.width = this.options.sizeFull.width, this.status.height = this.options.sizeFull.height, this.status.cssClass = this.options.sizeFull.cssClass) : (this.status.width = this.options.size.width, this.status.height = this.options.size.height, this.status.cssClass = this.options.size.cssClass), this.element.css({ | |
width: this.status.width, | |
height: this.status.height | |
}) | |
}, | |
_addUiClass: function() { | |
this.ancestorJq.length && this.ancestorJq.addClass(this.status.cssClass) | |
}, | |
_removeUiClass: function() { | |
this.ancestorJq.length && this.ancestorJq.removeClass(this.status.cssClass) | |
}, | |
_updateSize: function() { | |
this.internal.poster.jq.css({ | |
width: this.status.width, | |
height: this.status.height | |
}), !this.status.waitForPlay && this.html.active && this.status.video || this.html.video.available && this.html.used && this.status.nativeVideoControls ? this.internal.video.jq.css({ | |
width: this.status.width, | |
height: this.status.height | |
}) : !this.status.waitForPlay && this.flash.active && this.status.video && this.internal.flash.jq.css({ | |
width: this.status.width, | |
height: this.status.height | |
}) | |
}, | |
_updateAutohide: function() { | |
var a = this, | |
b = "mousemove.jPlayer", | |
c = ".jPlayerAutohide", | |
d = b + c, | |
e = function(b) { | |
var c, d, e = !1; | |
"undefined" != typeof a.internal.mouse ? (c = a.internal.mouse.x - b.pageX, d = a.internal.mouse.y - b.pageY, e = Math.floor(c) > 0 || Math.floor(d) > 0) : e = !0, a.internal.mouse = { | |
x: b.pageX, | |
y: b.pageY | |
}, e && a.css.jq.gui.fadeIn(a.options.autohide.fadeIn, function() { | |
clearTimeout(a.internal.autohideId), a.internal.autohideId = setTimeout(function() { | |
a.css.jq.gui.fadeOut(a.options.autohide.fadeOut) | |
}, a.options.autohide.hold) | |
}) | |
}; | |
this.css.jq.gui.length && (this.css.jq.gui.stop(!0, !0), clearTimeout(this.internal.autohideId), delete this.internal.mouse, this.element.unbind(c), this.css.jq.gui.unbind(c), this.status.nativeVideoControls ? this.css.jq.gui.hide() : this.options.fullWindow && this.options.autohide.full || !this.options.fullWindow && this.options.autohide.restored ? (this.element.bind(d, e), this.css.jq.gui.bind(d, e), this.css.jq.gui.hide()) : this.css.jq.gui.show()) | |
}, | |
fullScreen: function(a) { | |
var b = "object" == typeof a; | |
b && this.options.useStateClassSkin && this.options.fullScreen ? this._setOption("fullScreen", !1) : this._setOption("fullScreen", !0) | |
}, | |
restoreScreen: function() { | |
this._setOption("fullScreen", !1) | |
}, | |
_fullscreenAddEventListeners: function() { | |
var b = this, | |
c = a.jPlayer.nativeFeatures.fullscreen; | |
c.api.fullscreenEnabled && c.event.fullscreenchange && ("function" != typeof this.internal.fullscreenchangeHandler && (this.internal.fullscreenchangeHandler = function() { | |
b._fullscreenchange() | |
}), document.addEventListener(c.event.fullscreenchange, this.internal.fullscreenchangeHandler, !1)) | |
}, | |
_fullscreenRemoveEventListeners: function() { | |
var b = a.jPlayer.nativeFeatures.fullscreen; | |
this.internal.fullscreenchangeHandler && document.removeEventListener(b.event.fullscreenchange, this.internal.fullscreenchangeHandler, !1) | |
}, | |
_fullscreenchange: function() { | |
this.options.fullScreen && !a.jPlayer.nativeFeatures.fullscreen.api.fullscreenElement() && this._setOption("fullScreen", !1) | |
}, | |
_requestFullscreen: function() { | |
var b = this.ancestorJq.length ? this.ancestorJq[0] : this.element[0], | |
c = a.jPlayer.nativeFeatures.fullscreen; | |
c.used.webkitVideo && (b = this.htmlElement.video), c.api.fullscreenEnabled && c.api.requestFullscreen(b) | |
}, | |
_exitFullscreen: function() { | |
var b, c = a.jPlayer.nativeFeatures.fullscreen; | |
c.used.webkitVideo && (b = this.htmlElement.video), c.api.fullscreenEnabled && c.api.exitFullscreen(b) | |
}, | |
_html_initMedia: function(b) { | |
var c = a(this.htmlElement.media).empty(); | |
a.each(b.track || [], function(a, b) { | |
var d = document.createElement("track"); | |
d.setAttribute("kind", b.kind ? b.kind : ""), d.setAttribute("src", b.src ? b.src : ""), d.setAttribute("srclang", b.srclang ? b.srclang : ""), d.setAttribute("label", b.label ? b.label : ""), b.def && d.setAttribute("default", b.def), c.append(d) | |
}), this.htmlElement.media.src = this.status.src, "none" !== this.options.preload && this._html_load(), this._trigger(a.jPlayer.event.timeupdate) | |
}, | |
_html_setFormat: function(b) { | |
var c = this; | |
a.each(this.formats, function(a, d) { | |
return c.html.support[d] && b[d] ? (c.status.src = b[d], c.status.format[d] = !0, c.status.formatType = d, !1) : void 0 | |
}) | |
}, | |
_html_setAudio: function(a) { | |
this._html_setFormat(a), this.htmlElement.media = this.htmlElement.audio, this._html_initMedia(a) | |
}, | |
_html_setVideo: function(a) { | |
this._html_setFormat(a), this.status.nativeVideoControls && (this.htmlElement.video.poster = this._validString(a.poster) ? a.poster : ""), this.htmlElement.media = this.htmlElement.video, this._html_initMedia(a) | |
}, | |
_html_resetMedia: function() { | |
this.htmlElement.media && (this.htmlElement.media.id !== this.internal.video.id || this.status.nativeVideoControls || this.internal.video.jq.css({ | |
width: "0px", | |
height: "0px" | |
}), this.htmlElement.media.pause()) | |
}, | |
_html_clearMedia: function() { | |
this.htmlElement.media && (this.htmlElement.media.src = "about:blank", this.htmlElement.media.load()) | |
}, | |
_html_load: function() { | |
this.status.waitForLoad && (this.status.waitForLoad = !1, this.htmlElement.media.load()), clearTimeout(this.internal.htmlDlyCmdId) | |
}, | |
_html_play: function(a) { | |
var b = this, | |
c = this.htmlElement.media; | |
if (this.androidFix.pause = !1, this._html_load(), this.androidFix.setMedia) this.androidFix.play = !0, this.androidFix.time = a; | |
else if (isNaN(a)) c.play(); | |
else { | |
this.internal.cmdsIgnored && c.play(); | |
try { | |
if (c.seekable && !("object" == typeof c.seekable && c.seekable.length > 0)) throw 1; | |
c.currentTime = a, c.play() | |
} catch (c) { | |
return void(this.internal.htmlDlyCmdId = setTimeout(function() { | |
b.play(a) | |
}, 250)) | |
} | |
} | |
this._html_checkWaitForPlay() | |
}, | |
_html_pause: function(a) { | |
var b = this, | |
c = this.htmlElement.media; | |
if (this.androidFix.play = !1, a > 0 ? this._html_load() : clearTimeout(this.internal.htmlDlyCmdId), c.pause(), this.androidFix.setMedia) this.androidFix.pause = !0, this.androidFix.time = a; | |
else if (!isNaN(a)) try { | |
if (c.seekable && !("object" == typeof c.seekable && c.seekable.length > 0)) throw 1; | |
c.currentTime = a | |
} catch (c) { | |
return void(this.internal.htmlDlyCmdId = setTimeout(function() { | |
b.pause(a) | |
}, 250)) | |
} | |
a > 0 && this._html_checkWaitForPlay() | |
}, | |
_html_playHead: function(a) { | |
var b = this, | |
c = this.htmlElement.media; | |
this._html_load(); | |
try { | |
if ("object" == typeof c.seekable && c.seekable.length > 0) c.currentTime = a * c.seekable.end(c.seekable.length - 1) / 100; | |
else { | |
if (!(c.duration > 0) || isNaN(c.duration)) throw "e"; | |
c.currentTime = a * c.duration / 100 | |
} | |
} catch (c) { | |
return void(this.internal.htmlDlyCmdId = setTimeout(function() { | |
b.playHead(a) | |
}, 250)) | |
} | |
this.status.waitForLoad || this._html_checkWaitForPlay() | |
}, | |
_html_checkWaitForPlay: function() { | |
this.status.waitForPlay && (this.status.waitForPlay = !1, this.css.jq.videoPlay.length && this.css.jq.videoPlay.hide(), this.status.video && (this.internal.poster.jq.hide(), this.internal.video.jq.css({ | |
width: this.status.width, | |
height: this.status.height | |
}))) | |
}, | |
_html_setProperty: function(a, b) { | |
this.html.audio.available && (this.htmlElement.audio[a] = b), this.html.video.available && (this.htmlElement.video[a] = b) | |
}, | |
_aurora_setAudio: function(b) { | |
var c = this; | |
a.each(this.formats, function(a, d) { | |
return c.aurora.support[d] && b[d] ? (c.status.src = b[d], c.status.format[d] = !0, c.status.formatType = d, !1) : void 0 | |
}), this.aurora.player = new AV.Player.fromURL(this.status.src), this._addAuroraEventListeners(this.aurora.player, this.aurora), "auto" === this.options.preload && (this._aurora_load(), this.status.waitForLoad = !1) | |
}, | |
_aurora_resetMedia: function() { | |
this.aurora.player && this.aurora.player.stop() | |
}, | |
_aurora_clearMedia: function() {}, | |
_aurora_load: function() { | |
this.status.waitForLoad && (this.status.waitForLoad = !1, this.aurora.player.preload()) | |
}, | |
_aurora_play: function(b) { | |
this.status.waitForLoad || isNaN(b) || this.aurora.player.seek(b), this.aurora.player.playing || this.aurora.player.play(), this.status.waitForLoad = !1, this._aurora_checkWaitForPlay(), this._updateButtons(!0), this._trigger(a.jPlayer.event.play) | |
}, | |
_aurora_pause: function(b) { | |
isNaN(b) || this.aurora.player.seek(1e3 * b), this.aurora.player.pause(), b > 0 && this._aurora_checkWaitForPlay(), this._updateButtons(!1), this._trigger(a.jPlayer.event.pause) | |
}, | |
_aurora_playHead: function(a) { | |
this.aurora.player.duration > 0 && this.aurora.player.seek(a * this.aurora.player.duration / 100), this.status.waitForLoad || this._aurora_checkWaitForPlay() | |
}, | |
_aurora_checkWaitForPlay: function() { | |
this.status.waitForPlay && (this.status.waitForPlay = !1) | |
}, | |
_aurora_volume: function(a) { | |
this.aurora.player.volume = 100 * a | |
}, | |
_aurora_mute: function(a) { | |
a ? (this.aurora.properties.lastvolume = this.aurora.player.volume, this.aurora.player.volume = 0) : this.aurora.player.volume = this.aurora.properties.lastvolume, this.aurora.properties.muted = a | |
}, | |
_flash_setAudio: function(b) { | |
var c = this; | |
try { | |
a.each(this.formats, function(a, d) { | |
if (c.flash.support[d] && b[d]) { | |
switch (d) { | |
case "m4a": | |
case "fla": | |
c._getMovie().fl_setAudio_m4a(b[d]); | |
break; | |
case "mp3": | |
c._getMovie().fl_setAudio_mp3(b[d]); | |
break; | |
case "rtmpa": | |
c._getMovie().fl_setAudio_rtmp(b[d]) | |
} | |
return c.status.src = b[d], c.status.format[d] = !0, c.status.formatType = d, !1 | |
} | |
}), "auto" === this.options.preload && (this._flash_load(), this.status.waitForLoad = !1) | |
} catch (a) { | |
this._flashError(a) | |
} | |
}, | |
_flash_setVideo: function(b) { | |
var c = this; | |
try { | |
a.each(this.formats, function(a, d) { | |
if (c.flash.support[d] && b[d]) { | |
switch (d) { | |
case "m4v": | |
case "flv": | |
c._getMovie().fl_setVideo_m4v(b[d]); | |
break; | |
case "rtmpv": | |
c._getMovie().fl_setVideo_rtmp(b[d]) | |
} | |
return c.status.src = b[d], c.status.format[d] = !0, c.status.formatType = d, !1 | |
} | |
}), "auto" === this.options.preload && (this._flash_load(), this.status.waitForLoad = !1) | |
} catch (a) { | |
this._flashError(a) | |
} | |
}, | |
_flash_resetMedia: function() { | |
this.internal.flash.jq.css({ | |
width: "0px", | |
height: "0px" | |
}), this._flash_pause(NaN) | |
}, | |
_flash_clearMedia: function() { | |
try { | |
this._getMovie().fl_clearMedia() | |
} catch (a) { | |
this._flashError(a) | |
} | |
}, | |
_flash_load: function() { | |
try { | |
this._getMovie().fl_load() | |
} catch (a) { | |
this._flashError(a) | |
} | |
this.status.waitForLoad = !1 | |
}, | |
_flash_play: function(a) { | |
try { | |
this._getMovie().fl_play(a) | |
} catch (a) { | |
this._flashError(a) | |
} | |
this.status.waitForLoad = !1, this._flash_checkWaitForPlay() | |
}, | |
_flash_pause: function(a) { | |
try { | |
this._getMovie().fl_pause(a) | |
} catch (a) { | |
this._flashError(a) | |
} | |
a > 0 && (this.status.waitForLoad = !1, this._flash_checkWaitForPlay()) | |
}, | |
_flash_playHead: function(a) { | |
try { | |
this._getMovie().fl_play_head(a) | |
} catch (a) { | |
this._flashError(a) | |
} | |
this.status.waitForLoad || this._flash_checkWaitForPlay() | |
}, | |
_flash_checkWaitForPlay: function() { | |
this.status.waitForPlay && (this.status.waitForPlay = !1, this.css.jq.videoPlay.length && this.css.jq.videoPlay.hide(), this.status.video && (this.internal.poster.jq.hide(), this.internal.flash.jq.css({ | |
width: this.status.width, | |
height: this.status.height | |
}))) | |
}, | |
_flash_volume: function(a) { | |
try { | |
this._getMovie().fl_volume(a) | |
} catch (a) { | |
this._flashError(a) | |
} | |
}, | |
_flash_mute: function(a) { | |
try { | |
this._getMovie().fl_mute(a) | |
} catch (a) { | |
this._flashError(a) | |
} | |
}, | |
_getMovie: function() { | |
return document[this.internal.flash.id] | |
}, | |
_getFlashPluginVersion: function() { | |
var a, b = 0; | |
if (window.ActiveXObject) try { | |
if (a = new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) { | |
var c = a.GetVariable("$version"); | |
c && (c = c.split(" ")[1].split(","), b = parseInt(c[0], 10) + "." + parseInt(c[1], 10)) | |
} | |
} catch (a) {} else navigator.plugins && navigator.mimeTypes.length > 0 && (a = navigator.plugins["Shockwave Flash"], a && (b = navigator.plugins["Shockwave Flash"].description.replace(/.*\s(\d+\.\d+).*/, "$1"))); | |
return 1 * b | |
}, | |
_checkForFlash: function(a) { | |
var b = !1; | |
return this._getFlashPluginVersion() >= a && (b = !0), b | |
}, | |
_validString: function(a) { | |
return a && "string" == typeof a | |
}, | |
_limitValue: function(a, b, c) { | |
return b > a ? b : a > c ? c : a | |
}, | |
_urlNotSetError: function(b) { | |
this._error({ | |
type: a.jPlayer.error.URL_NOT_SET, | |
context: b, | |
message: a.jPlayer.errorMsg.URL_NOT_SET, | |
hint: a.jPlayer.errorHint.URL_NOT_SET | |
}) | |
}, | |
_flashError: function(b) { | |
var c; | |
c = this.internal.ready ? "FLASH_DISABLED" : "FLASH", this._error({ | |
type: a.jPlayer.error[c], | |
context: this.internal.flash.swf, | |
message: a.jPlayer.errorMsg[c] + b.message, | |
hint: a.jPlayer.errorHint[c] | |
}), this.internal.flash.jq.css({ | |
width: "1px", | |
height: "1px" | |
}) | |
}, | |
_error: function(b) { | |
this._trigger(a.jPlayer.event.error, b), this.options.errorAlerts && this._alert("Error!" + (b.message ? "\n" + b.message : "") + (b.hint ? "\n" + b.hint : "") + "\nContext: " + b.context) | |
}, | |
_warning: function(c) { | |
this._trigger(a.jPlayer.event.warning, b, c), this.options.warningAlerts && this._alert("Warning!" + (c.message ? "\n" + c.message : "") + (c.hint ? "\n" + c.hint : "") + "\nContext: " + c.context) | |
}, | |
_alert: function(a) { | |
var b = "jPlayer " + this.version.script + " : id='" + this.internal.self.id + "' : " + a; | |
this.options.consoleAlerts ? window.console && window.console.log && window.console.log(b) : alert(b) | |
}, | |
_emulateHtmlBridge: function() { | |
var b = this; | |
a.each(a.jPlayer.emulateMethods.split(/\s+/g), function(a, c) { | |
b.internal.domNode[c] = function(a) { | |
b[c](a) | |
} | |
}), a.each(a.jPlayer.event, function(c, d) { | |
var e = !0; | |
a.each(a.jPlayer.reservedEvent.split(/\s+/g), function(a, b) { | |
return b === c ? (e = !1, !1) : void 0 | |
}), e && b.element.bind(d + ".jPlayer.jPlayerHtml", function() { | |
b._emulateHtmlUpdate(); | |
var a = document.createEvent("Event"); | |
a.initEvent(c, !1, !0), b.internal.domNode.dispatchEvent(a) | |
}) | |
}) | |
}, | |
_emulateHtmlUpdate: function() { | |
var b = this; | |
a.each(a.jPlayer.emulateStatus.split(/\s+/g), function(a, c) { | |
b.internal.domNode[c] = b.status[c] | |
}), a.each(a.jPlayer.emulateOptions.split(/\s+/g), function(a, c) { | |
b.internal.domNode[c] = b.options[c] | |
}) | |
}, | |
_destroyHtmlBridge: function() { | |
var b = this; | |
this.element.unbind(".jPlayerHtml"); | |
var c = a.jPlayer.emulateMethods + " " + a.jPlayer.emulateStatus + " " + a.jPlayer.emulateOptions; | |
a.each(c.split(/\s+/g), function(a, c) { | |
delete b.internal.domNode[c] | |
}) | |
} | |
}, a.jPlayer.error = { | |
FLASH: "e_flash", | |
FLASH_DISABLED: "e_flash_disabled", | |
NO_SOLUTION: "e_no_solution", | |
NO_SUPPORT: "e_no_support", | |
URL: "e_url", | |
URL_NOT_SET: "e_url_not_set", | |
VERSION: "e_version" | |
}, a.jPlayer.errorMsg = { | |
FLASH: "jPlayer's Flash fallback is not configured correctly, or a command was issued before the jPlayer Ready event. Details: ", | |
FLASH_DISABLED: "jPlayer's Flash fallback has been disabled by the browser due to the CSS rules you have used. Details: ", | |
NO_SOLUTION: "No solution can be found by jPlayer in this browser. Neither HTML nor Flash can be used.", | |
NO_SUPPORT: "It is not possible to play any media format provided in setMedia() on this browser using your current options.", | |
URL: "Media URL could not be loaded.", | |
URL_NOT_SET: "Attempt to issue media playback commands, while no media url is set.", | |
VERSION: "jPlayer " + a.jPlayer.prototype.version.script + " needs Jplayer.swf version " + a.jPlayer.prototype.version.needFlash + " but found " | |
}, a.jPlayer.errorHint = { | |
FLASH: "Check your swfPath option and that Jplayer.swf is there.", | |
FLASH_DISABLED: "Check that you have not display:none; the jPlayer entity or any ancestor.", | |
NO_SOLUTION: "Review the jPlayer options: support and supplied.", | |
NO_SUPPORT: "Video or audio formats defined in the supplied option are missing.", | |
URL: "Check media URL is valid.", | |
URL_NOT_SET: "Use setMedia() to set the media URL.", | |
VERSION: "Update jPlayer files." | |
}, a.jPlayer.warning = { | |
CSS_SELECTOR_COUNT: "e_css_selector_count", | |
CSS_SELECTOR_METHOD: "e_css_selector_method", | |
CSS_SELECTOR_STRING: "e_css_selector_string", | |
OPTION_KEY: "e_option_key" | |
}, a.jPlayer.warningMsg = { | |
CSS_SELECTOR_COUNT: "The number of css selectors found did not equal one: ", | |
CSS_SELECTOR_METHOD: "The methodName given in jPlayer('cssSelector') is not a valid jPlayer method.", | |
CSS_SELECTOR_STRING: "The methodCssSelector given in jPlayer('cssSelector') is not a String or is empty.", | |
OPTION_KEY: "The option requested in jPlayer('option') is undefined." | |
}, a.jPlayer.warningHint = { | |
CSS_SELECTOR_COUNT: "Check your css selector and the ancestor.", | |
CSS_SELECTOR_METHOD: "Check your method name.", | |
CSS_SELECTOR_STRING: "Check your css selector is a string.", | |
OPTION_KEY: "Check your option name." | |
} | |
}), | |
function(a) { | |
"function" == typeof define && define.amd ? define(["jquery"], a) : "object" == typeof module && module.exports ? module.exports = a(require("jquery")) : a(jQuery) | |
}(function(a) { | |
var b = Array.prototype.slice, | |
c = Array.prototype.splice, | |
d = { | |
topSpacing: 0, | |
bottomSpacing: 0, | |
className: "is-sticky", | |
wrapperClassName: "sticky-wrapper", | |
center: !1, | |
getWidthFrom: "", | |
widthFromWrapper: !0, | |
responsiveWidth: !1, | |
zIndex: "auto" | |
}, | |
e = a(window), | |
f = a(document), | |
g = [], | |
h = e.height(), | |
i = function() { | |
for (var b = e.scrollTop(), c = f.height(), d = c - h, i = b > d ? d - b : 0, j = 0, k = g.length; j < k; j++) { | |
var l = g[j], | |
m = l.stickyWrapper.offset().top, | |
n = m - l.topSpacing - i; | |
if (l.stickyWrapper.css("height", l.stickyElement.outerHeight()), b <= n) null !== l.currentTop && (l.stickyElement.css({ | |
width: "", | |
position: "", | |
top: "", | |
"z-index": "" | |
}), l.stickyElement.parent().removeClass(l.className), l.stickyElement.trigger("sticky-end", [l]), l.currentTop = null); | |
else { | |
var o = c - l.stickyElement.outerHeight() - l.topSpacing - l.bottomSpacing - b - i; | |
if (o < 0 ? o += l.topSpacing : o = l.topSpacing, l.currentTop !== o) { | |
var p; | |
l.getWidthFrom ? p = a(l.getWidthFrom).width() || null : l.widthFromWrapper && (p = l.stickyWrapper.width()), null == p && (p = l.stickyElement.width()), l.stickyElement.css("width", p).css("position", "fixed").css("top", o).css("z-index", l.zIndex), l.stickyElement.parent().addClass(l.className), null === l.currentTop ? l.stickyElement.trigger("sticky-start", [l]) : l.stickyElement.trigger("sticky-update", [l]), l.currentTop === l.topSpacing && l.currentTop > o || null === l.currentTop && o < l.topSpacing ? l.stickyElement.trigger("sticky-bottom-reached", [l]) : null !== l.currentTop && o === l.topSpacing && l.currentTop < o && l.stickyElement.trigger("sticky-bottom-unreached", [l]), l.currentTop = o | |
} | |
var q = l.stickyWrapper.parent(), | |
r = l.stickyElement.offset().top + l.stickyElement.outerHeight() >= q.offset().top + q.outerHeight() && l.stickyElement.offset().top <= l.topSpacing; | |
r ? l.stickyElement.css("position", "absolute").css("top", "").css("bottom", 0).css("z-index", "") : l.stickyElement.css("position", "fixed").css("top", o).css("bottom", "").css("z-index", l.zIndex) | |
} | |
} | |
}, | |
j = function() { | |
h = e.height(); | |
for (var b = 0, c = g.length; b < c; b++) { | |
var d = g[b], | |
f = null; | |
d.getWidthFrom ? d.responsiveWidth && (f = a(d.getWidthFrom).width()) : d.widthFromWrapper && (f = d.stickyWrapper.width()), null != f && d.stickyElement.css("width", f) | |
} | |
}, | |
k = { | |
init: function(b) { | |
return this.each(function() { | |
var c = a.extend({}, d, b), | |
e = a(this), | |
f = e.attr("id"), | |
h = f ? f + "-" + d.wrapperClassName : d.wrapperClassName, | |
i = a("<div></div>").attr("id", h).addClass(c.wrapperClassName); | |
e.wrapAll(function() { | |
if (0 == a(this).parent("#" + h).length) return i | |
}); | |
var j = e.parent(); | |
c.center && j.css({ | |
width: e.outerWidth(), | |
marginLeft: "auto", | |
marginRight: "auto" | |
}), "right" === e.css("float") && e.css({ | |
float: "none" | |
}).parent().css({ | |
float: "right" | |
}), c.stickyElement = e, c.stickyWrapper = j, c.currentTop = null, g.push(c), k.setWrapperHeight(this), k.setupChangeListeners(this) | |
}) | |
}, | |
setWrapperHeight: function(b) { | |
var c = a(b), | |
d = c.parent(); | |
d && d.css("height", c.outerHeight()) | |
}, | |
setupChangeListeners: function(a) { | |
if (window.MutationObserver) { | |
var b = new window.MutationObserver(function(b) { | |
(b[0].addedNodes.length || b[0].removedNodes.length) && k.setWrapperHeight(a) | |
}); | |
b.observe(a, { | |
subtree: !0, | |
childList: !0 | |
}) | |
} else window.addEventListener ? (a.addEventListener("DOMNodeInserted", function() { | |
k.setWrapperHeight(a) | |
}, !1), a.addEventListener("DOMNodeRemoved", function() { | |
k.setWrapperHeight(a) | |
}, !1)) : window.attachEvent && (a.attachEvent("onDOMNodeInserted", function() { | |
k.setWrapperHeight(a) | |
}), a.attachEvent("onDOMNodeRemoved", function() { | |
k.setWrapperHeight(a) | |
})) | |
}, | |
update: i, | |
unstick: function(b) { | |
return this.each(function() { | |
for (var b = this, d = a(b), e = -1, f = g.length; f-- > 0;) g[f].stickyElement.get(0) === b && (c.call(g, f, 1), e = f); | |
e !== -1 && (d.unwrap(), d.css({ | |
width: "", | |
position: "", | |
top: "", | |
float: "", | |
"z-index": "" | |
})) | |
}) | |
} | |
}; | |
window.addEventListener ? (window.addEventListener("scroll", i, !1), window.addEventListener("resize", j, !1)) : window.attachEvent && (window.attachEvent("onscroll", i), window.attachEvent("onresize", j)), a.fn.sticky = function(c) { | |
return k[c] ? k[c].apply(this, b.call(arguments, 1)) : "object" != typeof c && c ? void a.error("Method " + c + " does not exist on jQuery.sticky") : k.init.apply(this, arguments) | |
}, a.fn.unstick = function(c) { | |
return k[c] ? k[c].apply(this, b.call(arguments, 1)) : "object" != typeof c && c ? void a.error("Method " + c + " does not exist on jQuery.sticky") : k.unstick.apply(this, arguments) | |
}, a(function() { | |
setTimeout(i, 0) | |
}) | |
}), jQuery.easing.jswing = jQuery.easing.swing, jQuery.extend(jQuery.easing, { | |
def: "easeOutQuad", | |
swing: function(a, b, c, d, e) { | |
return jQuery.easing[jQuery.easing.def](a, b, c, d, e) | |
}, | |
easeInQuad: function(a, b, c, d, e) { | |
return d * (b /= e) * b + c | |
}, | |
easeOutQuad: function(a, b, c, d, e) { | |
return -d * (b /= e) * (b - 2) + c | |
}, | |
easeInOutQuad: function(a, b, c, d, e) { | |
return (b /= e / 2) < 1 ? d / 2 * b * b + c : -d / 2 * (--b * (b - 2) - 1) + c | |
}, | |
easeInCubic: function(a, b, c, d, e) { | |
return d * (b /= e) * b * b + c | |
}, | |
easeOutCubic: function(a, b, c, d, e) { | |
return d * ((b = b / e - 1) * b * b + 1) + c | |
}, | |
easeInOutCubic: function(a, b, c, d, e) { | |
return (b /= e / 2) < 1 ? d / 2 * b * b * b + c : d / 2 * ((b -= 2) * b * b + 2) + c | |
}, | |
easeInQuart: function(a, b, c, d, e) { | |
return d * (b /= e) * b * b * b + c | |
}, | |
easeOutQuart: function(a, b, c, d, e) { | |
return -d * ((b = b / e - 1) * b * b * b - 1) + c | |
}, | |
easeInOutQuart: function(a, b, c, d, e) { | |
return (b /= e / 2) < 1 ? d / 2 * b * b * b * b + c : -d / 2 * ((b -= 2) * b * b * b - 2) + c | |
}, | |
easeInQuint: function(a, b, c, d, e) { | |
return d * (b /= e) * b * b * b * b + c | |
}, | |
easeOutQuint: function(a, b, c, d, e) { | |
return d * ((b = b / e - 1) * b * b * b * b + 1) + c | |
}, | |
easeInOutQuint: function(a, b, c, d, e) { | |
return (b /= e / 2) < 1 ? d / 2 * b * b * b * b * b + c : d / 2 * ((b -= 2) * b * b * b * b + 2) + c | |
}, | |
easeInSine: function(a, b, c, d, e) { | |
return -d * Math.cos(b / e * (Math.PI / 2)) + d + c | |
}, | |
easeOutSine: function(a, b, c, d, e) { | |
return d * Math.sin(b / e * (Math.PI / 2)) + c | |
}, | |
easeInOutSine: function(a, b, c, d, e) { | |
return -d / 2 * (Math.cos(Math.PI * b / e) - 1) + c | |
}, | |
easeInExpo: function(a, b, c, d, e) { | |
return 0 == b ? c : d * Math.pow(2, 10 * (b / e - 1)) + c | |
}, | |
easeOutExpo: function(a, b, c, d, e) { | |
return b == e ? c + d : d * (-Math.pow(2, -10 * b / e) + 1) + c | |
}, | |
easeInOutExpo: function(a, b, c, d, e) { | |
return 0 == b ? c : b == e ? c + d : (b /= e / 2) < 1 ? d / 2 * Math.pow(2, 10 * (b - 1)) + c : d / 2 * (-Math.pow(2, -10 * --b) + 2) + c | |
}, | |
easeInCirc: function(a, b, c, d, e) { | |
return -d * (Math.sqrt(1 - (b /= e) * b) - 1) + c | |
}, | |
easeOutCirc: function(a, b, c, d, e) { | |
return d * Math.sqrt(1 - (b = b / e - 1) * b) + c | |
}, | |
easeInOutCirc: function(a, b, c, d, e) { | |
return (b /= e / 2) < 1 ? -d / 2 * (Math.sqrt(1 - b * b) - 1) + c : d / 2 * (Math.sqrt(1 - (b -= 2) * b) + 1) + c | |
}, | |
easeInElastic: function(a, b, c, d, e) { | |
var f = 1.70158, | |
g = 0, | |
h = d; | |
if (0 == b) return c; | |
if (1 == (b /= e)) return c + d; | |
if (g || (g = .3 * e), h < Math.abs(d)) { | |
h = d; | |
var f = g / 4 | |
} else var f = g / (2 * Math.PI) * Math.asin(d / h); | |
return -(h * Math.pow(2, 10 * (b -= 1)) * Math.sin((b * e - f) * (2 * Math.PI) / g)) + c | |
}, | |
easeOutElastic: function(a, b, c, d, e) { | |
var f = 1.70158, | |
g = 0, | |
h = d; | |
if (0 == b) return c; | |
if (1 == (b /= e)) return c + d; | |
if (g || (g = .3 * e), h < Math.abs(d)) { | |
h = d; | |
var f = g / 4 | |
} else var f = g / (2 * Math.PI) * Math.asin(d / h); | |
return h * Math.pow(2, -10 * b) * Math.sin((b * e - f) * (2 * Math.PI) / g) + d + c | |
}, | |
easeInOutElastic: function(a, b, c, d, e) { | |
var f = 1.70158, | |
g = 0, | |
h = d; | |
if (0 == b) return c; | |
if (2 == (b /= e / 2)) return c + d; | |
if (g || (g = e * (.3 * 1.5)), h < Math.abs(d)) { | |
h = d; | |
var f = g / 4 | |
} else var f = g / (2 * Math.PI) * Math.asin(d / h); | |
return b < 1 ? -.5 * (h * Math.pow(2, 10 * (b -= 1)) * Math.sin((b * e - f) * (2 * Math.PI) / g)) + c : h * Math.pow(2, -10 * (b -= 1)) * Math.sin((b * e - f) * (2 * Math.PI) / g) * .5 + d + c | |
}, | |
easeInBack: function(a, b, c, d, e, f) { | |
return void 0 == f && (f = 1.70158), d * (b /= e) * b * ((f + 1) * b - f) + c | |
}, | |
easeOutBack: function(a, b, c, d, e, f) { | |
return void 0 == f && (f = 1.70158), d * ((b = b / e - 1) * b * ((f + 1) * b + f) + 1) + c | |
}, | |
easeInOutBack: function(a, b, c, d, e, f) { | |
return void 0 == f && (f = 1.70158), (b /= e / 2) < 1 ? d / 2 * (b * b * (((f *= 1.525) + 1) * b - f)) + c : d / 2 * ((b -= 2) * b * (((f *= 1.525) + 1) * b + f) + 2) + c | |
}, | |
easeInBounce: function(a, b, c, d, e) { | |
return d - jQuery.easing.easeOutBounce(a, e - b, 0, d, e) + c | |
}, | |
easeOutBounce: function(a, b, c, d, e) { | |
return (b /= e) < 1 / 2.75 ? d * (7.5625 * b * b) + c : b < 2 / 2.75 ? d * (7.5625 * (b -= 1.5 / 2.75) * b + .75) + c : b < 2.5 / 2.75 ? d * (7.5625 * (b -= 2.25 / 2.75) * b + .9375) + c : d * (7.5625 * (b -= 2.625 / 2.75) * b + .984375) + c | |
}, | |
easeInOutBounce: function(a, b, c, d, e) { | |
return b < e / 2 ? .5 * jQuery.easing.easeInBounce(a, 2 * b, 0, d, e) + c : .5 * jQuery.easing.easeOutBounce(a, 2 * b - e, 0, d, e) + .5 * d + c | |
} | |
}), | |
function() { | |
var a, b, c, d, e, f = function(a, b) { | |
return function() { | |
return a.apply(b, arguments) | |
} | |
}, | |
g = [].indexOf || function(a) { | |
for (var b = 0, c = this.length; b < c; b++) | |
if (b in this && this[b] === a) return b; | |
return -1 | |
}; | |
b = function() { | |
function a() {} | |
return a.prototype.extend = function(a, b) { | |
var c, d; | |
for (c in b) d = b[c], null == a[c] && (a[c] = d); | |
return a | |
}, a.prototype.isMobile = function(a) { | |
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a) | |
}, a.prototype.createEvent = function(a, b, c, d) { | |
var e; | |
return null == b && (b = !1), null == c && (c = !1), null == d && (d = null), null != document.createEvent ? (e = document.createEvent("CustomEvent"), e.initCustomEvent(a, b, c, d)) : null != document.createEventObject ? (e = document.createEventObject(), e.eventType = a) : e.eventName = a, e | |
}, a.prototype.emitEvent = function(a, b) { | |
return null != a.dispatchEvent ? a.dispatchEvent(b) : b in (null != a) ? a[b]() : "on" + b in (null != a) ? a["on" + b]() : void 0 | |
}, a.prototype.addEvent = function(a, b, c) { | |
return null != a.addEventListener ? a.addEventListener(b, c, !1) : null != a.attachEvent ? a.attachEvent("on" + b, c) : a[b] = c | |
}, a.prototype.removeEvent = function(a, b, c) { | |
return null != a.removeEventListener ? a.removeEventListener(b, c, !1) : null != a.detachEvent ? a.detachEvent("on" + b, c) : delete a[b] | |
}, a.prototype.innerHeight = function() { | |
return "innerHeight" in window ? window.innerHeight : document.documentElement.clientHeight | |
}, a | |
}(), c = this.WeakMap || this.MozWeakMap || (c = function() { | |
function a() { | |
this.keys = [], this.values = [] | |
} | |
return a.prototype.get = function(a) { | |
var b, c, d, e, f; | |
for (f = this.keys, b = d = 0, e = f.length; d < e; b = ++d) | |
if (c = f[b], c === a) return this.values[b] | |
}, a.prototype.set = function(a, b) { | |
var c, d, e, f, g; | |
for (g = this.keys, c = e = 0, f = g.length; e < f; c = ++e) | |
if (d = g[c], d === a) return void(this.values[c] = b); | |
return this.keys.push(a), this.values.push(b) | |
}, a | |
}()), a = this.MutationObserver || this.WebkitMutationObserver || this.MozMutationObserver || (a = function() { | |
function a() { | |
"undefined" != typeof console && null !== console && console.warn("MutationObserver is not supported by your browser."), "undefined" != typeof console && null !== console && console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.") | |
} | |
return a.notSupported = !0, a.prototype.observe = function() {}, a | |
}()), d = this.getComputedStyle || function(a, b) { | |
return this.getPropertyValue = function(b) { | |
var c; | |
return "float" === b && (b = "styleFloat"), e.test(b) && b.replace(e, function(a, b) { | |
return b.toUpperCase() | |
}), (null != (c = a.currentStyle) ? c[b] : void 0) || null | |
}, this | |
}, e = /(\-([a-z]){1})/g, this.WOW = function() { | |
function e(a) { | |
null == a && (a = {}), this.scrollCallback = f(this.scrollCallback, this), this.scrollHandler = f(this.scrollHandler, this), this.resetAnimation = f(this.resetAnimation, this), this.start = f(this.start, this), this.scrolled = !0, this.config = this.util().extend(a, this.defaults), this.animationNameCache = new c, this.wowEvent = this.util().createEvent(this.config.boxClass) | |
} | |
return e.prototype.defaults = { | |
boxClass: "wow", | |
animateClass: "animated", | |
offset: 0, | |
mobile: !0, | |
live: !0, | |
callback: null | |
}, e.prototype.init = function() { | |
var a; | |
return this.element = window.document.documentElement, "interactive" === (a = document.readyState) || "complete" === a ? this.start() : this.util().addEvent(document, "DOMContentLoaded", this.start), this.finished = [] | |
}, e.prototype.start = function() { | |
var b, c, d, e; | |
if (this.stopped = !1, this.boxes = function() { | |
var a, c, d, e; | |
for (d = this.element.querySelectorAll("." + this.config.boxClass), e = [], a = 0, c = d.length; a < c; a++) b = d[a], e.push(b); | |
return e | |
}.call(this), this.all = function() { | |
var a, c, d, e; | |
for (d = this.boxes, e = [], a = 0, c = d.length; a < c; a++) b = d[a], e.push(b); | |
return e | |
}.call(this), this.boxes.length) | |
if (this.disabled()) this.resetStyle(); | |
else | |
for (e = this.boxes, c = 0, d = e.length; c < d; c++) b = e[c], this.applyStyle(b, !0); | |
if (this.disabled() || (this.util().addEvent(window, "scroll", this.scrollHandler), this.util().addEvent(window, "resize", this.scrollHandler), this.interval = setInterval(this.scrollCallback, 50)), this.config.live) return new a(function(a) { | |
return function(b) { | |
var c, d, e, f, g; | |
for (g = [], c = 0, d = b.length; c < d; c++) f = b[c], g.push(function() { | |
var a, b, c, d; | |
for (c = f.addedNodes || [], d = [], a = 0, b = c.length; a < b; a++) e = c[a], d.push(this.doSync(e)); | |
return d | |
}.call(a)); | |
return g | |
} | |
}(this)).observe(document.body, { | |
childList: !0, | |
subtree: !0 | |
}) | |
}, e.prototype.stop = function() { | |
if (this.stopped = !0, this.util().removeEvent(window, "scroll", this.scrollHandler), this.util().removeEvent(window, "resize", this.scrollHandler), null != this.interval) return clearInterval(this.interval) | |
}, e.prototype.sync = function(b) { | |
if (a.notSupported) return this.doSync(this.element) | |
}, e.prototype.doSync = function(a) { | |
var b, c, d, e, f; | |
if (null == a && (a = this.element), 1 === a.nodeType) { | |
for (a = a.parentNode || a, e = a.querySelectorAll("." + this.config.boxClass), f = [], c = 0, d = e.length; c < d; c++) b = e[c], g.call(this.all, b) < 0 ? (this.boxes.push(b), this.all.push(b), this.stopped || this.disabled() ? this.resetStyle() : this.applyStyle(b, !0), f.push(this.scrolled = !0)) : f.push(void 0); | |
return f | |
} | |
}, e.prototype.show = function(a) { | |
return this.applyStyle(a), a.className = a.className + " " + this.config.animateClass, null != this.config.callback && this.config.callback(a), this.util().emitEvent(a, this.wowEvent), this.util().addEvent(a, "animationend", this.resetAnimation), this.util().addEvent(a, "oanimationend", this.resetAnimation), this.util().addEvent(a, "webkitAnimationEnd", this.resetAnimation), this.util().addEvent(a, "MSAnimationEnd", this.resetAnimation), a | |
}, e.prototype.applyStyle = function(a, b) { | |
var c, d, e; | |
return d = a.getAttribute("data-wow-duration"), c = a.getAttribute("data-wow-delay"), e = a.getAttribute("data-wow-iteration"), this.animate(function(f) { | |
return function() { | |
return f.customStyle(a, b, d, c, e) | |
} | |
}(this)) | |
}, e.prototype.animate = function() { | |
return "requestAnimationFrame" in window ? function(a) { | |
return window.requestAnimationFrame(a) | |
} : function(a) { | |
return a() | |
} | |
}(), e.prototype.resetStyle = function() { | |
var a, b, c, d, e; | |
for (d = this.boxes, e = [], b = 0, c = d.length; b < c; b++) a = d[b], e.push(a.style.visibility = "visible"); | |
return e | |
}, e.prototype.resetAnimation = function(a) { | |
var b; | |
if (a.type.toLowerCase().indexOf("animationend") >= 0) return b = a.target || a.srcElement, b.className = b.className.replace(this.config.animateClass, "").trim() | |
}, e.prototype.customStyle = function(a, b, c, d, e) { | |
return b && this.cacheAnimationName(a), a.style.visibility = b ? "hidden" : "visible", c && this.vendorSet(a.style, { | |
animationDuration: c | |
}), d && this.vendorSet(a.style, { | |
animationDelay: d | |
}), e && this.vendorSet(a.style, { | |
animationIterationCount: e | |
}), this.vendorSet(a.style, { | |
animationName: b ? "none" : this.cachedAnimationName(a) | |
}), a | |
}, e.prototype.vendors = ["moz", "webkit"], e.prototype.vendorSet = function(a, b) { | |
var c, d, e, f; | |
d = []; | |
for (c in b) e = b[c], a["" + c] = e, d.push(function() { | |
var b, d, g, h; | |
for (g = this.vendors, h = [], b = 0, d = g.length; b < d; b++) f = g[b], h.push(a["" + f + c.charAt(0).toUpperCase() + c.substr(1)] = e); | |
return h | |
}.call(this)); | |
return d | |
}, e.prototype.vendorCSS = function(a, b) { | |
var c, e, f, g, h, i; | |
for (h = d(a), g = h.getPropertyCSSValue(b), f = this.vendors, c = 0, e = f.length; c < e; c++) i = f[c], g = g || h.getPropertyCSSValue("-" + i + "-" + b); | |
return g | |
}, e.prototype.animationName = function(a) { | |
var b; | |
try { | |
b = this.vendorCSS(a, "animation-name").cssText | |
} catch (c) { | |
b = d(a).getPropertyValue("animation-name") | |
} | |
return "none" === b ? "" : b | |
}, e.prototype.cacheAnimationName = function(a) { | |
return this.animationNameCache.set(a, this.animationName(a)) | |
}, e.prototype.cachedAnimationName = function(a) { | |
return this.animationNameCache.get(a) | |
}, e.prototype.scrollHandler = function() { | |
return this.scrolled = !0 | |
}, e.prototype.scrollCallback = function() { | |
var a; | |
if (this.scrolled && (this.scrolled = !1, this.boxes = function() { | |
var b, c, d, e; | |
for (d = this.boxes, e = [], b = 0, c = d.length; b < c; b++) a = d[b], a && (this.isVisible(a) ? this.show(a) : e.push(a)); | |
return e | |
}.call(this), !this.boxes.length && !this.config.live)) return this.stop() | |
}, e.prototype.offsetTop = function(a) { | |
for (var b; void 0 === a.offsetTop;) a = a.parentNode; | |
for (b = a.offsetTop; a = a.offsetParent;) b += a.offsetTop; | |
return b | |
}, e.prototype.isVisible = function(a) { | |
var b, c, d, e, f; | |
return c = a.getAttribute("data-wow-offset") || this.config.offset, f = window.pageYOffset, e = f + Math.min(this.element.clientHeight, this.util().innerHeight()) - c, d = this.offsetTop(a), b = d + a.clientHeight, d <= e && b >= f | |
}, e.prototype.util = function() { | |
return null != this._util ? this._util : this._util = new b | |
}, e.prototype.disabled = function() { | |
return !this.config.mobile && this.util().isMobile(navigator.userAgent) | |
}, e | |
}() | |
}.call(this), | |
function(a) { | |
"use strict"; | |
a("body").scrollspy({ | |
target: ".navbar-fixed-top", | |
offset: 60 | |
}), a("#topNav").affix({ | |
offset: { | |
top: 200 | |
} | |
}), (new WOW).init(), a("a.page-scroll").bind("click", function(b) { | |
var c = a(this); | |
a("html, body").stop().animate({ | |
scrollTop: a(c.attr("href")).offset().top - 60 | |
}, 1150, "easeInOutExpo"), b.preventDefault() | |
}), a(".navbar-collapse ul li a").click(function() { | |
a(".navbar-toggle:visible").click() | |
}), a("#galleryModal").on("show.bs.modal", function(b) { | |
a("#galleryImage").attr("src", a(b.relatedTarget).data("src")) | |
}), a.ajaxSetup({ | |
headers: { | |
"X-CSRF-TOKEN": a('meta[name="csrf-token"]').attr("content") | |
} | |
}), a("#ad1").sticky({ | |
topSpacing: 70 | |
}), a("#ad2").sticky({ | |
topSpacing: 70 | |
}) | |
}(jQuery), | |
function(a, b) { | |
"use strict"; | |
function c(a, b, c) { | |
if (!a) throw pa("areq", "Argument '{0}' is {1}", b || "?", c || "required"); | |
return a | |
} | |
function d(a, b) { | |
return a || b ? a ? b ? (Q(a) && (a = a.join(" ")), Q(b) && (b = b.join(" ")), a + " " + b) : a : b : "" | |
} | |
function e(a) { | |
var b = {}; | |
return a && (a.to || a.from) && (b.to = a.to, b.from = a.from), b | |
} | |
function f(a, b, c) { | |
var d = ""; | |
return a = Q(a) ? a : a && R(a) && a.length ? a.split(/\s+/) : [], P(a, function(a, e) { | |
a && a.length > 0 && (d += e > 0 ? " " : "", d += c ? b + a : a + b) | |
}), d | |
} | |
function g(a, b) { | |
var c = a.indexOf(b); | |
b >= 0 && a.splice(c, 1) | |
} | |
function h(a) { | |
if (a instanceof O) switch (a.length) { | |
case 0: | |
return a; | |
case 1: | |
if (a[0].nodeType === X) return a; | |
break; | |
default: | |
return O(i(a)) | |
} | |
if (a.nodeType === X) return O(a) | |
} | |
function i(a) { | |
if (!a[0]) return a; | |
for (var b = 0; b < a.length; b++) { | |
var c = a[b]; | |
if (c.nodeType == X) return c | |
} | |
} | |
function j(a, b, c) { | |
P(b, function(b) { | |
a.addClass(b, c) | |
}) | |
} | |
function k(a, b, c) { | |
P(b, function(b) { | |
a.removeClass(b, c) | |
}) | |
} | |
function l(a) { | |
return function(b, c) { | |
c.addClass && (j(a, b, c.addClass), c.addClass = null), c.removeClass && (k(a, b, c.removeClass), c.removeClass = null) | |
} | |
} | |
function m(a) { | |
if (a = a || {}, !a.$$prepared) { | |
var b = a.domOperation || L; | |
a.domOperation = function() { | |
a.$$domOperationFired = !0, b(), b = L | |
}, a.$$prepared = !0 | |
} | |
return a | |
} | |
function n(a, b) { | |
o(a, b), p(a, b) | |
} | |
function o(a, b) { | |
b.from && (a.css(b.from), b.from = null) | |
} | |
function p(a, b) { | |
b.to && (a.css(b.to), b.to = null) | |
} | |
function q(a, b, c) { | |
var d = b.options || {}, | |
e = c.options || {}, | |
f = (d.addClass || "") + " " + (e.addClass || ""), | |
g = (d.removeClass || "") + " " + (e.removeClass || ""), | |
h = r(a.attr("class"), f, g); | |
e.preparationClasses && (d.preparationClasses = y(e.preparationClasses, d.preparationClasses), delete e.preparationClasses); | |
var i = d.domOperation !== L ? d.domOperation : null; | |
return N(d, e), i && (d.domOperation = i), h.addClass ? d.addClass = h.addClass : d.addClass = null, h.removeClass ? d.removeClass = h.removeClass : d.removeClass = null, b.addClass = d.addClass, b.removeClass = d.removeClass, d | |
} | |
function r(a, b, c) { | |
function d(a) { | |
R(a) && (a = a.split(" ")); | |
var b = {}; | |
return P(a, function(a) { | |
a.length && (b[a] = !0) | |
}), b | |
} | |
var e = 1, | |
f = -1, | |
g = {}; | |
a = d(a), b = d(b), P(b, function(a, b) { | |
g[b] = e | |
}), c = d(c), P(c, function(a, b) { | |
g[b] = g[b] === e ? null : f | |
}); | |
var h = { | |
addClass: "", | |
removeClass: "" | |
}; | |
return P(g, function(b, c) { | |
var d, g; | |
b === e ? (d = "addClass", g = !a[c]) : b === f && (d = "removeClass", g = a[c]), g && (h[d].length && (h[d] += " "), h[d] += c) | |
}), h | |
} | |
function s(a) { | |
return a instanceof b.element ? a[0] : a | |
} | |
function t(a, b, c) { | |
var d = ""; | |
b && (d = f(b, $, !0)), c.addClass && (d = y(d, f(c.addClass, Y))), c.removeClass && (d = y(d, f(c.removeClass, Z))), d.length && (c.preparationClasses = d, a.addClass(d)) | |
} | |
function u(a, b) { | |
b.preparationClasses && (a.removeClass(b.preparationClasses), b.preparationClasses = null), b.activeClasses && (a.removeClass(b.activeClasses), b.activeClasses = null) | |
} | |
function v(a, b) { | |
var c = b ? "-" + b + "s" : ""; | |
return x(a, [na, c]), [na, c] | |
} | |
function w(a, b) { | |
var c = b ? "paused" : "", | |
d = J + ja; | |
return x(a, [d, c]), [d, c] | |
} | |
function x(a, b) { | |
var c = b[0], | |
d = b[1]; | |
a.style[c] = d | |
} | |
function y(a, b) { | |
return a ? b ? a + " " + b : a : b | |
} | |
function z(a) { | |
return [ma, a + "s"] | |
} | |
function A(a, b) { | |
var c = b ? la : na; | |
return [c, a + "s"] | |
} | |
function B(a, b, c) { | |
var d = Object.create(null), | |
e = a.getComputedStyle(b) || {}; | |
return P(c, function(a, b) { | |
var c = e[a]; | |
if (c) { | |
var f = c.charAt(0); | |
("-" === f || "+" === f || f >= 0) && (c = C(c)), 0 === c && (c = null), d[b] = c | |
} | |
}), d | |
} | |
function C(a) { | |
var b = 0, | |
c = a.split(/\s*,\s*/); | |
return P(c, function(a) { | |
"s" == a.charAt(a.length - 1) && (a = a.substring(0, a.length - 1)), a = parseFloat(a) || 0, b = b ? Math.max(a, b) : a | |
}), b | |
} | |
function D(a) { | |
return 0 === a || null != a | |
} | |
function E(a, b) { | |
var c = H, | |
d = a + "s"; | |
return b ? c += ea : d += " linear all", [c, d] | |
} | |
function F() { | |
var a = Object.create(null); | |
return { | |
flush: function() { | |
a = Object.create(null) | |
}, | |
count: function(b) { | |
var c = a[b]; | |
return c ? c.total : 0 | |
}, | |
get: function(b) { | |
var c = a[b]; | |
return c && c.value | |
}, | |
put: function(b, c) { | |
a[b] ? a[b].total++ : a[b] = { | |
total: 1, | |
value: c | |
} | |
} | |
} | |
} | |
function G(a, b, c) { | |
P(c, function(c) { | |
a[c] = U(a[c]) ? a[c] : b.style.getPropertyValue(c) | |
}) | |
} | |
var H, I, J, K, L = b.noop, | |
M = b.copy, | |
N = b.extend, | |
O = b.element, | |
P = b.forEach, | |
Q = b.isArray, | |
R = b.isString, | |
S = b.isObject, | |
T = b.isUndefined, | |
U = b.isDefined, | |
V = b.isFunction, | |
W = b.isElement, | |
X = 1, | |
Y = "-add", | |
Z = "-remove", | |
$ = "ng-", | |
_ = "-active", | |
aa = "-prepare", | |
ba = "ng-animate", | |
ca = "$$ngAnimateChildren", | |
da = ""; | |
T(a.ontransitionend) && U(a.onwebkittransitionend) ? (da = "-webkit-", H = "WebkitTransition", I = "webkitTransitionEnd transitionend") : (H = "transition", I = "transitionend"), T(a.onanimationend) && U(a.onwebkitanimationend) ? (da = "-webkit-", J = "WebkitAnimation", K = "webkitAnimationEnd animationend") : (J = "animation", K = "animationend"); | |
var ea = "Duration", | |
fa = "Property", | |
ga = "Delay", | |
ha = "TimingFunction", | |
ia = "IterationCount", | |
ja = "PlayState", | |
ka = 9999, | |
la = J + ga, | |
ma = J + ea, | |
na = H + ga, | |
oa = H + ea, | |
pa = b.$$minErr("ng"), | |
qa = ["$$rAF", function(a) { | |
function b(a) { | |
d = d.concat(a), c() | |
} | |
function c() { | |
if (d.length) { | |
for (var b = d.shift(), f = 0; f < b.length; f++) b[f](); | |
e || a(function() { | |
e || c() | |
}) | |
} | |
} | |
var d, e; | |
return d = b.queue = [], b.waitUntilQuiet = function(b) { | |
e && e(), e = a(function() { | |
e = null, b(), c() | |
}) | |
}, b | |
}], | |
ra = ["$interpolate", function(a) { | |
return { | |
link: function(c, d, e) { | |
function f(a) { | |
a = "on" === a || "true" === a, d.data(ca, a) | |
} | |
var g = e.ngAnimateChildren; | |
b.isString(g) && 0 === g.length ? d.data(ca, !0) : (f(a(g)(c)), e.$observe("ngAnimateChildren", f)) | |
} | |
} | |
}], | |
sa = "$$animateCss", | |
ta = 1e3, | |
ua = 3, | |
va = 1.5, | |
wa = { | |
transitionDuration: oa, | |
transitionDelay: na, | |
transitionProperty: H + fa, | |
animationDuration: ma, | |
animationDelay: la, | |
animationIterationCount: J + ia | |
}, | |
xa = { | |
transitionDuration: oa, | |
transitionDelay: na, | |
animationDuration: ma, | |
animationDelay: la | |
}, | |
ya = ["$animateProvider", function(a) { | |
var b = F(), | |
c = F(); | |
this.$get = ["$window", "$$jqLite", "$$AnimateRunner", "$timeout", "$$forceReflow", "$sniffer", "$$rAFScheduler", "$$animateQueue", function(a, d, h, i, j, k, q, r) { | |
function t(a, b) { | |
var c = "$$ngAnimateParentKey", | |
d = a.parentNode, | |
e = d[c] || (d[c] = ++O); | |
return e + "-" + a.getAttribute("class") + "-" + b | |
} | |
function u(c, d, e, f) { | |
var g = b.get(e); | |
return g || (g = B(a, c, f), "infinite" === g.animationIterationCount && (g.animationIterationCount = 1)), b.put(e, g), g | |
} | |
function y(e, g, h, i) { | |
var j; | |
if (b.count(h) > 0 && (j = c.get(h), !j)) { | |
var k = f(g, "-stagger"); | |
d.addClass(e, k), j = B(a, e, i), j.animationDuration = Math.max(j.animationDuration, 0), j.transitionDuration = Math.max(j.transitionDuration, 0), d.removeClass(e, k), c.put(h, j) | |
} | |
return j || {} | |
} | |
function C(a) { | |
R.push(a), q.waitUntilQuiet(function() { | |
b.flush(), c.flush(); | |
for (var a = j(), d = 0; d < R.length; d++) R[d](a); | |
R.length = 0 | |
}) | |
} | |
function F(a, b, c) { | |
var d = u(a, b, c, wa), | |
e = d.animationDelay, | |
f = d.transitionDelay; | |
return d.maxDelay = e && f ? Math.max(e, f) : e || f, d.maxDuration = Math.max(d.animationDuration * d.animationIterationCount, d.transitionDuration), d | |
} | |
var N = l(d), | |
O = 0, | |
R = []; | |
return function(a, c) { | |
function j() { | |
q() | |
} | |
function l() { | |
q(!0) | |
} | |
function q(b) { | |
if (!(V || X && W)) { | |
V = !0, W = !1, S.$$skipPreparationClasses || d.removeClass(a, wa), d.removeClass(a, za), w(U, !1), v(U, !1), P(ja, function(a) { | |
U.style[a[0]] = "" | |
}), N(a, S), n(a, S), Object.keys(T).length && P(T, function(a, b) { | |
a ? U.style.setProperty(b, a) : U.style.removeProperty(b) | |
}), S.onDone && S.onDone(), na && na.length && a.off(na.join(" "), O); | |
var c = a.data(sa); | |
c && (i.cancel(c[0].timer), a.removeData(sa)), aa && aa.complete(!b) | |
} | |
} | |
function u(a) { | |
Na.blockTransition && v(U, a), Na.blockKeyframeAnimation && w(U, !!a) | |
} | |
function B() { | |
return aa = new h({ | |
end: j, | |
cancel: l | |
}), C(L), q(), { | |
$$willAnimate: !1, | |
start: function() { | |
return aa | |
}, | |
end: j | |
} | |
} | |
function O(a) { | |
a.stopPropagation(); | |
var b = a.originalEvent || a, | |
c = b.$manualTimeStamp || Date.now(), | |
d = parseFloat(b.elapsedTime.toFixed(ua)); | |
Math.max(c - ia, 0) >= da && d >= ea && (X = !0, q()) | |
} | |
function R() { | |
function b() { | |
if (!V) { | |
if (u(!1), P(ja, function(a) { | |
var b = a[0], | |
c = a[1]; | |
U.style[b] = c | |
}), N(a, S), d.addClass(a, za), Na.recalculateTimingStyles) { | |
if (ya = U.className + " " + wa, Ca = t(U, ya), La = F(U, ya, Ca), Ma = La.maxDelay, ca = Math.max(Ma, 0), ea = La.maxDuration, 0 === ea) return void q(); | |
Na.hasTransitions = La.transitionDuration > 0, Na.hasAnimations = La.animationDuration > 0 | |
} | |
if (Na.applyAnimationDelay && (Ma = "boolean" != typeof S.delay && D(S.delay) ? parseFloat(S.delay) : Ma, ca = Math.max(Ma, 0), La.animationDelay = Ma, Oa = A(Ma, !0), ja.push(Oa), U.style[Oa[0]] = Oa[1]), da = ca * ta, ga = ea * ta, S.easing) { | |
var b, e = S.easing; | |
Na.hasTransitions && (b = H + ha, ja.push([b, e]), U.style[b] = e), Na.hasAnimations && (b = J + ha, ja.push([b, e]), U.style[b] = e) | |
} | |
La.transitionDuration && na.push(I), La.animationDuration && na.push(K), ia = Date.now(); | |
var f = da + va * ga, | |
g = ia + f, | |
h = a.data(sa) || [], | |
j = !0; | |
if (h.length) { | |
var k = h[0]; | |
j = g > k.expectedEndTime, j ? i.cancel(k.timer) : h.push(q) | |
} | |
if (j) { | |
var l = i(c, f, !1); | |
h[0] = { | |
timer: l, | |
expectedEndTime: g | |
}, h.push(q), a.data(sa, h) | |
} | |
na.length && a.on(na.join(" "), O), S.to && (S.cleanupStyles && G(T, U, Object.keys(S.to)), p(a, S)) | |
} | |
} | |
function c() { | |
var b = a.data(sa); | |
if (b) { | |
for (var c = 1; c < b.length; c++) b[c](); | |
a.removeData(sa) | |
} | |
} | |
if (!V) { | |
if (!U.parentNode) return void q(); | |
var e = function(a) { | |
if (X) W && a && (W = !1, q()); | |
else if (W = !a, La.animationDuration) { | |
var b = w(U, W); | |
W ? ja.push(b) : g(ja, b) | |
} | |
}, | |
f = Ja > 0 && (La.transitionDuration && 0 === Da.transitionDuration || La.animationDuration && 0 === Da.animationDuration) && Math.max(Da.animationDelay, Da.transitionDelay); | |
f ? i(b, Math.floor(f * Ja * ta), !1) : b(), ba.resume = function() { | |
e(!0) | |
}, ba.pause = function() { | |
e(!1) | |
} | |
} | |
} | |
var S = c || {}; | |
S.$$prepared || (S = m(M(S))); | |
var T = {}, | |
U = s(a); | |
if (!U || !U.parentNode || !r.enabled()) return B(); | |
var V, W, X, aa, ba, ca, da, ea, ga, ia, ja = [], | |
la = a.attr("class"), | |
ma = e(S), | |
na = []; | |
if (0 === S.duration || !k.animations && !k.transitions) return B(); | |
var oa = S.event && Q(S.event) ? S.event.join(" ") : S.event, | |
pa = oa && S.structural, | |
qa = "", | |
ra = ""; | |
pa ? qa = f(oa, $, !0) : oa && (qa = oa), S.addClass && (ra += f(S.addClass, Y)), S.removeClass && (ra.length && (ra += " "), ra += f(S.removeClass, Z)), S.applyClassesEarly && ra.length && N(a, S); | |
var wa = [qa, ra].join(" ").trim(), | |
ya = la + " " + wa, | |
za = f(wa, _), | |
Aa = ma.to && Object.keys(ma.to).length > 0, | |
Ba = (S.keyframeStyle || "").length > 0; | |
if (!Ba && !Aa && !wa) return B(); | |
var Ca, Da; | |
if (S.stagger > 0) { | |
var Ea = parseFloat(S.stagger); | |
Da = { | |
transitionDelay: Ea, | |
animationDelay: Ea, | |
transitionDuration: 0, | |
animationDuration: 0 | |
} | |
} else Ca = t(U, ya), Da = y(U, wa, Ca, xa); | |
S.$$skipPreparationClasses || d.addClass(a, wa); | |
var Fa; | |
if (S.transitionStyle) { | |
var Ga = [H, S.transitionStyle]; | |
x(U, Ga), ja.push(Ga) | |
} | |
if (S.duration >= 0) { | |
Fa = U.style[H].length > 0; | |
var Ha = E(S.duration, Fa); | |
x(U, Ha), ja.push(Ha) | |
} | |
if (S.keyframeStyle) { | |
var Ia = [J, S.keyframeStyle]; | |
x(U, Ia), ja.push(Ia) | |
} | |
var Ja = Da ? S.staggerIndex >= 0 ? S.staggerIndex : b.count(Ca) : 0, | |
Ka = 0 === Ja; | |
Ka && !S.skipBlocking && v(U, ka); | |
var La = F(U, ya, Ca), | |
Ma = La.maxDelay; | |
ca = Math.max(Ma, 0), ea = La.maxDuration; | |
var Na = {}; | |
if (Na.hasTransitions = La.transitionDuration > 0, Na.hasAnimations = La.animationDuration > 0, Na.hasTransitionAll = Na.hasTransitions && "all" == La.transitionProperty, Na.applyTransitionDuration = Aa && (Na.hasTransitions && !Na.hasTransitionAll || Na.hasAnimations && !Na.hasTransitions), Na.applyAnimationDuration = S.duration && Na.hasAnimations, Na.applyTransitionDelay = D(S.delay) && (Na.applyTransitionDuration || Na.hasTransitions), Na.applyAnimationDelay = D(S.delay) && Na.hasAnimations, Na.recalculateTimingStyles = ra.length > 0, (Na.applyTransitionDuration || Na.applyAnimationDuration) && (ea = S.duration ? parseFloat(S.duration) : ea, Na.applyTransitionDuration && (Na.hasTransitions = !0, La.transitionDuration = ea, Fa = U.style[H + fa].length > 0, ja.push(E(ea, Fa))), Na.applyAnimationDuration && (Na.hasAnimations = !0, La.animationDuration = ea, ja.push(z(ea)))), 0 === ea && !Na.recalculateTimingStyles) return B(); | |
if (null != S.delay) { | |
var Oa; | |
"boolean" != typeof S.delay && (Oa = parseFloat(S.delay), ca = Math.max(Oa, 0)), Na.applyTransitionDelay && ja.push(A(Oa)), Na.applyAnimationDelay && ja.push(A(Oa, !0)) | |
} | |
return null == S.duration && La.transitionDuration > 0 && (Na.recalculateTimingStyles = Na.recalculateTimingStyles || Ka), da = ca * ta, ga = ea * ta, S.skipBlocking || (Na.blockTransition = La.transitionDuration > 0, Na.blockKeyframeAnimation = La.animationDuration > 0 && Da.animationDelay > 0 && 0 === Da.animationDuration), S.from && (S.cleanupStyles && G(T, U, Object.keys(S.from)), o(a, S)), Na.blockTransition || Na.blockKeyframeAnimation ? u(ea) : S.skipBlocking || v(U, !1), { | |
$$willAnimate: !0, | |
end: j, | |
start: function() { | |
if (!V) return ba = { | |
end: j, | |
cancel: l, | |
resume: null, | |
pause: null | |
}, aa = new h(ba), C(R), aa | |
} | |
} | |
} | |
}] | |
}], | |
za = ["$$animationProvider", function(a) { | |
function b(a) { | |
return a.parentNode && 11 === a.parentNode.nodeType | |
} | |
a.drivers.push("$$animateCssDriver"); | |
var c = "ng-animate-shim", | |
d = "ng-anchor", | |
e = "ng-anchor-out", | |
f = "ng-anchor-in"; | |
this.$get = ["$animateCss", "$rootScope", "$$AnimateRunner", "$rootElement", "$sniffer", "$$jqLite", "$document", function(a, g, h, i, j, k, m) { | |
function n(a) { | |
return a.replace(/\bng-\S+\b/g, "") | |
} | |
function o(a, b) { | |
return R(a) && (a = a.split(" ")), R(b) && (b = b.split(" ")), a.filter(function(a) { | |
return b.indexOf(a) === -1 | |
}).join(" ") | |
} | |
function p(b, g, i) { | |
function j(a) { | |
var b = {}, | |
c = s(a).getBoundingClientRect(); | |
return P(["width", "height", "top", "left"], function(a) { | |
var d = c[a]; | |
switch (a) { | |
case "top": | |
d += t.scrollTop; | |
break; | |
case "left": | |
d += t.scrollLeft | |
} | |
b[a] = Math.floor(d) + "px" | |
}), b | |
} | |
function k() { | |
var b = a(q, { | |
addClass: e, | |
delay: !0, | |
from: j(g) | |
}); | |
return b.$$willAnimate ? b : null | |
} | |
function l(a) { | |
return a.attr("class") || "" | |
} | |
function m() { | |
var b = n(l(i)), | |
c = o(b, r), | |
d = o(r, b), | |
g = a(q, { | |
to: j(i), | |
addClass: f + " " + c, | |
removeClass: e + " " + d, | |
delay: !0 | |
}); | |
return g.$$willAnimate ? g : null | |
} | |
function p() { | |
q.remove(), g.removeClass(c), i.removeClass(c) | |
} | |
var q = O(s(g).cloneNode(!0)), | |
r = n(l(q)); | |
g.addClass(c), i.addClass(c), q.addClass(d), v.append(q); | |
var u, w = k(); | |
if (!w && (u = m(), !u)) return p(); | |
var x = w || u; | |
return { | |
start: function() { | |
function a() { | |
c && c.end() | |
} | |
var b, c = x.start(); | |
return c.done(function() { | |
return c = null, !u && (u = m()) ? (c = u.start(), c.done(function() { | |
c = null, p(), b.complete() | |
}), c) : (p(), void b.complete()) | |
}), b = new h({ | |
end: a, | |
cancel: a | |
}) | |
} | |
} | |
} | |
function q(a, b, c, d) { | |
var e = r(a, L), | |
f = r(b, L), | |
g = []; | |
if (P(d, function(a) { | |
var b = a.out, | |
d = a.in, | |
e = p(c, b, d); | |
e && g.push(e) | |
}), e || f || 0 !== g.length) return { | |
start: function() { | |
function a() { | |
P(b, function(a) { | |
a.end() | |
}) | |
} | |
var b = []; | |
e && b.push(e.start()), f && b.push(f.start()), P(g, function(a) { | |
b.push(a.start()) | |
}); | |
var c = new h({ | |
end: a, | |
cancel: a | |
}); | |
return h.all(b, function(a) { | |
c.complete(a) | |
}), c | |
} | |
} | |
} | |
function r(b) { | |
var c = b.element, | |
d = b.options || {}; | |
b.structural && (d.event = b.event, d.structural = !0, d.applyClassesEarly = !0, "leave" === b.event && (d.onDone = d.domOperation)), d.preparationClasses && (d.event = y(d.event, d.preparationClasses)); | |
var e = a(c, d); | |
return e.$$willAnimate ? e : null | |
} | |
if (!j.animations && !j.transitions) return L; | |
var t = m[0].body, | |
u = s(i), | |
v = O(b(u) || t.contains(u) ? u : t); | |
l(k); | |
return function(a) { | |
return a.from && a.to ? q(a.from, a.to, a.classes, a.anchors) : r(a); | |
} | |
}] | |
}], | |
Aa = ["$animateProvider", function(a) { | |
this.$get = ["$injector", "$$AnimateRunner", "$$jqLite", function(b, c, d) { | |
function e(c) { | |
c = Q(c) ? c : c.split(" "); | |
for (var d = [], e = {}, f = 0; f < c.length; f++) { | |
var g = c[f], | |
h = a.$$registeredAnimations[g]; | |
h && !e[g] && (d.push(b.get(h)), e[g] = !0) | |
} | |
return d | |
} | |
var f = l(d); | |
return function(a, b, d, g) { | |
function h() { | |
g.domOperation(), f(a, g) | |
} | |
function i() { | |
o = !0, h(), n(a, g) | |
} | |
function j(a, b, d, e, f) { | |
var g; | |
switch (d) { | |
case "animate": | |
g = [b, e.from, e.to, f]; | |
break; | |
case "setClass": | |
g = [b, r, s, f]; | |
break; | |
case "addClass": | |
g = [b, r, f]; | |
break; | |
case "removeClass": | |
g = [b, s, f]; | |
break; | |
default: | |
g = [b, f] | |
} | |
g.push(e); | |
var h = a.apply(a, g); | |
if (h) | |
if (V(h.start) && (h = h.start()), h instanceof c) h.done(f); | |
else if (V(h)) return h; | |
return L | |
} | |
function k(a, b, d, e, f) { | |
var g = []; | |
return P(e, function(e) { | |
var h = e[f]; | |
h && g.push(function() { | |
var e, f, g = !1, | |
i = function(a) { | |
g || (g = !0, (f || L)(a), e.complete(!a)) | |
}; | |
return e = new c({ | |
end: function() { | |
i() | |
}, | |
cancel: function() { | |
i(!0) | |
} | |
}), f = j(h, a, b, d, function(a) { | |
var b = a === !1; | |
i(b) | |
}), e | |
}) | |
}), g | |
} | |
function l(a, b, d, e, f) { | |
var g = k(a, b, d, e, f); | |
if (0 === g.length) { | |
var h, i; | |
"beforeSetClass" === f ? (h = k(a, "removeClass", d, e, "beforeRemoveClass"), i = k(a, "addClass", d, e, "beforeAddClass")) : "setClass" === f && (h = k(a, "removeClass", d, e, "removeClass"), i = k(a, "addClass", d, e, "addClass")), h && (g = g.concat(h)), i && (g = g.concat(i)) | |
} | |
if (0 !== g.length) return function(a) { | |
var b = []; | |
return g.length && P(g, function(a) { | |
b.push(a()) | |
}), b.length ? c.all(b, a) : a(), | |
function(a) { | |
P(b, function(b) { | |
a ? b.cancel() : b.end() | |
}) | |
} | |
} | |
} | |
var o = !1; | |
3 === arguments.length && S(d) && (g = d, d = null), g = m(g), d || (d = a.attr("class") || "", g.addClass && (d += " " + g.addClass), g.removeClass && (d += " " + g.removeClass)); | |
var p, q, r = g.addClass, | |
s = g.removeClass, | |
t = e(d); | |
if (t.length) { | |
var u, v; | |
"leave" == b ? (v = "leave", u = "afterLeave") : (v = "before" + b.charAt(0).toUpperCase() + b.substr(1), u = b), "enter" !== b && "move" !== b && (p = l(a, b, g, t, v)), q = l(a, b, g, t, u) | |
} | |
if (p || q) { | |
var w; | |
return { | |
$$willAnimate: !0, | |
end: function() { | |
return w ? w.end() : (i(), w = new c, w.complete(!0)), w | |
}, | |
start: function() { | |
function a(a) { | |
i(a), w.complete(a) | |
} | |
function b(b) { | |
o || ((d || L)(b), a(b)) | |
} | |
if (w) return w; | |
w = new c; | |
var d, e = []; | |
return p && e.push(function(a) { | |
d = p(a) | |
}), e.length ? e.push(function(a) { | |
h(), a(!0) | |
}) : h(), q && e.push(function(a) { | |
d = q(a) | |
}), w.setHost({ | |
end: function() { | |
b() | |
}, | |
cancel: function() { | |
b(!0) | |
} | |
}), c.chain(e, a), w | |
} | |
} | |
} | |
} | |
}] | |
}], | |
Ba = ["$$animationProvider", function(a) { | |
a.drivers.push("$$animateJsDriver"), this.$get = ["$$animateJs", "$$AnimateRunner", function(a, b) { | |
function c(b) { | |
var c = b.element, | |
d = b.event, | |
e = b.options, | |
f = b.classes; | |
return a(c, d, f, e) | |
} | |
return function(a) { | |
if (a.from && a.to) { | |
var d = c(a.from), | |
e = c(a.to); | |
if (!d && !e) return; | |
return { | |
start: function() { | |
function a() { | |
return function() { | |
P(f, function(a) { | |
a.end() | |
}) | |
} | |
} | |
function c(a) { | |
g.complete(a) | |
} | |
var f = []; | |
d && f.push(d.start()), e && f.push(e.start()), b.all(f, c); | |
var g = new b({ | |
end: a(), | |
cancel: a() | |
}); | |
return g | |
} | |
} | |
} | |
return c(a) | |
} | |
}] | |
}], | |
Ca = "data-ng-animate", | |
Da = "$ngAnimatePin", | |
Ea = ["$animateProvider", function(d) { | |
function e(a) { | |
if (!a) return null; | |
var b = a.split(p), | |
c = Object.create(null); | |
return P(b, function(a) { | |
c[a] = !0 | |
}), c | |
} | |
function f(a, b) { | |
if (a && b) { | |
var c = e(b); | |
return a.split(p).some(function(a) { | |
return c[a] | |
}) | |
} | |
} | |
function g(a, b, c, d) { | |
return r[a].some(function(a) { | |
return a(b, c, d) | |
}) | |
} | |
function j(a, b) { | |
var c = (a.addClass || "").length > 0, | |
d = (a.removeClass || "").length > 0; | |
return b ? c && d : c || d | |
} | |
var k = 1, | |
o = 2, | |
p = " ", | |
r = this.rules = { | |
skip: [], | |
cancel: [], | |
join: [] | |
}; | |
r.join.push(function(a, b, c) { | |
return !b.structural && j(b) | |
}), r.skip.push(function(a, b, c) { | |
return !b.structural && !j(b) | |
}), r.skip.push(function(a, b, c) { | |
return "leave" == c.event && b.structural | |
}), r.skip.push(function(a, b, c) { | |
return c.structural && c.state === o && !b.structural | |
}), r.cancel.push(function(a, b, c) { | |
return c.structural && b.structural | |
}), r.cancel.push(function(a, b, c) { | |
return c.state === o && b.structural | |
}), r.cancel.push(function(a, b, c) { | |
if (c.structural) return !1; | |
var d = b.addClass, | |
e = b.removeClass, | |
g = c.addClass, | |
h = c.removeClass; | |
return !(T(d) && T(e) || T(g) && T(h)) && (f(d, h) || f(e, g)) | |
}), this.$get = ["$$rAF", "$rootScope", "$rootElement", "$document", "$$HashMap", "$$animation", "$$AnimateRunner", "$templateRequest", "$$jqLite", "$$forceReflow", function(e, f, p, r, v, w, x, y, z, A) { | |
function B() { | |
var a = !1; | |
return function(b) { | |
a ? b() : f.$$postDigest(function() { | |
a = !0, b() | |
}) | |
} | |
} | |
function C(a, b) { | |
return q(a, b, {}) | |
} | |
function D(a, b, c) { | |
var d = s(b), | |
e = s(a), | |
f = [], | |
g = _[c]; | |
return g && P(g, function(a) { | |
ea.call(a.node, d) ? f.push(a.callback) : "leave" === c && ea.call(a.node, e) && f.push(a.callback) | |
}), f | |
} | |
function E(a, b, c) { | |
var d = i(b); | |
return a.filter(function(a) { | |
var b = a.node === d && (!c || a.callback === c); | |
return !b | |
}) | |
} | |
function F(a, b) { | |
"close" !== a || b[0].parentNode || fa.off(b) | |
} | |
function G(a, b, c) { | |
function d(b, c, d, f) { | |
z(function() { | |
var b = D(p, a, c); | |
b.length ? e(function() { | |
P(b, function(b) { | |
b(a, d, f) | |
}), F(d, a) | |
}) : F(d, a) | |
}), b.progress(c, d, f) | |
} | |
function i(b) { | |
u(a, v), da(a, v), n(a, v), v.domOperation(), y.complete(!b) | |
} | |
var l, p, v = M(c); | |
a = h(a), a && (l = s(a), p = a.parent()), v = m(v); | |
var y = new x, | |
z = B(); | |
if (Q(v.addClass) && (v.addClass = v.addClass.join(" ")), v.addClass && !R(v.addClass) && (v.addClass = null), Q(v.removeClass) && (v.removeClass = v.removeClass.join(" ")), v.removeClass && !R(v.removeClass) && (v.removeClass = null), v.from && !S(v.from) && (v.from = null), v.to && !S(v.to) && (v.to = null), !l) return i(), y; | |
var A = [l.className, v.addClass, v.removeClass].join(" "); | |
if (!ba(A)) return i(), y; | |
var E = ["enter", "move", "leave"].indexOf(b) >= 0, | |
G = r[0].hidden, | |
J = !Z || G || Y.get(l), | |
N = !J && V.get(l) || {}, | |
O = !!N.state; | |
if (J || O && N.state == k || (J = !K(a, p, b)), J) return G && d(y, b, "start"), i(), G && d(y, b, "close"), y; | |
E && H(a); | |
var T = { | |
structural: E, | |
element: a, | |
event: b, | |
addClass: v.addClass, | |
removeClass: v.removeClass, | |
close: i, | |
options: v, | |
runner: y | |
}; | |
if (O) { | |
var U = g("skip", a, T, N); | |
if (U) return N.state === o ? (i(), y) : (q(a, N, T), N.runner); | |
var W = g("cancel", a, T, N); | |
if (W) | |
if (N.state === o) N.runner.end(); | |
else { | |
if (!N.structural) return q(a, N, T), N.runner; | |
N.close() | |
} | |
else { | |
var X = g("join", a, T, N); | |
if (X) { | |
if (N.state !== o) return t(a, E ? b : null, v), b = T.event = N.event, v = q(a, N, T), N.runner; | |
C(a, T) | |
} | |
} | |
} else C(a, T); | |
var $ = T.structural; | |
if ($ || ($ = "animate" === T.event && Object.keys(T.options.to || {}).length > 0 || j(T)), !$) return i(), I(a), y; | |
var _ = (N.counter || 0) + 1; | |
return T.counter = _, L(a, k, T), f.$$postDigest(function() { | |
var c = V.get(l), | |
e = !c; | |
c = c || {}; | |
var f = a.parent() || [], | |
g = f.length > 0 && ("animate" === c.event || c.structural || j(c)); | |
if (e || c.counter !== _ || !g) return e && (da(a, v), n(a, v)), (e || E && c.event !== b) && (v.domOperation(), y.end()), void(g || I(a)); | |
b = !c.structural && j(c, !0) ? "setClass" : c.event, L(a, o); | |
var h = w(a, b, c.options); | |
y.setHost(h), d(y, b, "start", {}), h.done(function(c) { | |
i(!c); | |
var e = V.get(l); | |
e && e.counter === _ && I(s(a)), d(y, b, "close", {}) | |
}) | |
}), y | |
} | |
function H(a) { | |
var b = s(a), | |
c = b.querySelectorAll("[" + Ca + "]"); | |
P(c, function(a) { | |
var b = parseInt(a.getAttribute(Ca)), | |
c = V.get(a); | |
if (c) switch (b) { | |
case o: | |
c.runner.end(); | |
case k: | |
V.remove(a) | |
} | |
}) | |
} | |
function I(a) { | |
var b = s(a); | |
b.removeAttribute(Ca), V.remove(b) | |
} | |
function J(a, b) { | |
return s(a) === s(b) | |
} | |
function K(a, b, c) { | |
var d, e = O(r[0].body), | |
f = J(a, e) || "HTML" === a[0].nodeName, | |
g = J(a, p), | |
h = !1, | |
i = Y.get(s(a)), | |
j = O.data(a[0], Da); | |
for (j && (b = j), b = s(b); b && (g || (g = J(b, p)), b.nodeType === X);) { | |
var k = V.get(b) || {}; | |
if (!h) { | |
var l = Y.get(b); | |
if (l === !0 && i !== !1) { | |
i = !0; | |
break | |
} | |
l === !1 && (i = !1), h = k.structural | |
} | |
if (T(d) || d === !0) { | |
var m = O.data(b, ca); | |
U(m) && (d = m) | |
} | |
if (h && d === !1) break; | |
if (f || (f = J(b, e)), f && g) break; | |
b = g || !(j = O.data(b, Da)) ? b.parentNode : s(j) | |
} | |
var n = (!h || d) && i !== !0; | |
return n && g && f | |
} | |
function L(a, b, c) { | |
c = c || {}, c.state = b; | |
var d = s(a); | |
d.setAttribute(Ca, b); | |
var e = V.get(d), | |
f = e ? N(e, c) : c; | |
V.put(d, f) | |
} | |
var V = new v, | |
Y = new v, | |
Z = null, | |
$ = f.$watch(function() { | |
return 0 === y.totalPendingRequests | |
}, function(a) { | |
a && ($(), f.$$postDigest(function() { | |
f.$$postDigest(function() { | |
null === Z && (Z = !0) | |
}) | |
})) | |
}), | |
_ = {}, | |
aa = d.classNameFilter(), | |
ba = aa ? function(a) { | |
return aa.test(a) | |
} : function() { | |
return !0 | |
}, | |
da = l(z), | |
ea = a.Node.prototype.contains || function(a) { | |
return this === a || !!(16 & this.compareDocumentPosition(a)) | |
}, | |
fa = { | |
on: function(a, b, c) { | |
var d = i(b); | |
_[a] = _[a] || [], _[a].push({ | |
node: d, | |
callback: c | |
}), O(b).on("$destroy", function() { | |
var e = V.get(d); | |
e || fa.off(a, b, c) | |
}) | |
}, | |
off: function(a, c, d) { | |
if (1 !== arguments.length || b.isString(arguments[0])) { | |
var e = _[a]; | |
e && (_[a] = 1 === arguments.length ? null : E(e, c, d)) | |
} else { | |
c = arguments[0]; | |
for (var f in _) _[f] = E(_[f], c) | |
} | |
}, | |
pin: function(a, b) { | |
c(W(a), "element", "not an element"), c(W(b), "parentElement", "not an element"), a.data(Da, b) | |
}, | |
push: function(a, b, c, d) { | |
return c = c || {}, c.domOperation = d, G(a, b, c) | |
}, | |
enabled: function(a, b) { | |
var c = arguments.length; | |
if (0 === c) b = !!Z; | |
else { | |
var d = W(a); | |
if (d) { | |
var e = s(a), | |
f = Y.get(e); | |
1 === c ? b = !f : Y.put(e, !b) | |
} else b = Z = !!a | |
} | |
return b | |
} | |
}; | |
return fa | |
}] | |
}], | |
Fa = ["$animateProvider", function(a) { | |
function b(a, b) { | |
a.data(h, b) | |
} | |
function c(a) { | |
a.removeData(h) | |
} | |
function e(a) { | |
return a.data(h) | |
} | |
var f = "ng-animate-ref", | |
g = this.drivers = [], | |
h = "$$animationRunner"; | |
this.$get = ["$$jqLite", "$rootScope", "$injector", "$$AnimateRunner", "$$HashMap", "$$rAFScheduler", function(a, h, i, j, k, o) { | |
function p(a) { | |
function b(a) { | |
if (a.processed) return a; | |
a.processed = !0; | |
var c = a.domNode, | |
d = c.parentNode; | |
f.put(c, a); | |
for (var g; d;) { | |
if (g = f.get(d)) { | |
g.processed || (g = b(g)); | |
break | |
} | |
d = d.parentNode | |
} | |
return (g || e).children.push(a), a | |
} | |
function c(a) { | |
var b, c = [], | |
d = []; | |
for (b = 0; b < a.children.length; b++) d.push(a.children[b]); | |
var e = d.length, | |
f = 0, | |
g = []; | |
for (b = 0; b < d.length; b++) { | |
var h = d[b]; | |
e <= 0 && (e = f, f = 0, c.push(g), g = []), g.push(h.fn), h.children.forEach(function(a) { | |
f++, d.push(a) | |
}), e-- | |
} | |
return g.length && c.push(g), c | |
} | |
var d, e = { | |
children: [] | |
}, | |
f = new k; | |
for (d = 0; d < a.length; d++) { | |
var g = a[d]; | |
f.put(g.domNode, a[d] = { | |
domNode: g.domNode, | |
fn: g.fn, | |
children: [] | |
}) | |
} | |
for (d = 0; d < a.length; d++) b(a[d]); | |
return c(e) | |
} | |
var q = [], | |
r = l(a); | |
return function(k, l, t) { | |
function u(a) { | |
var b = "[" + f + "]", | |
c = a.hasAttribute(f) ? [a] : a.querySelectorAll(b), | |
d = []; | |
return P(c, function(a) { | |
var b = a.getAttribute(f); | |
b && b.length && d.push(a) | |
}), d | |
} | |
function v(a) { | |
var b = [], | |
c = {}; | |
P(a, function(a, d) { | |
var e = a.element, | |
g = s(e), | |
h = a.event, | |
i = ["enter", "move"].indexOf(h) >= 0, | |
j = a.structural ? u(g) : []; | |
if (j.length) { | |
var k = i ? "to" : "from"; | |
P(j, function(a) { | |
var b = a.getAttribute(f); | |
c[b] = c[b] || {}, c[b][k] = { | |
animationID: d, | |
element: O(a) | |
} | |
}) | |
} else b.push(a) | |
}); | |
var d = {}, | |
e = {}; | |
return P(c, function(c, f) { | |
var g = c.from, | |
h = c.to; | |
if (!g || !h) { | |
var i = g ? g.animationID : h.animationID, | |
j = i.toString(); | |
return void(d[j] || (d[j] = !0, b.push(a[i]))) | |
} | |
var k = a[g.animationID], | |
l = a[h.animationID], | |
m = g.animationID.toString(); | |
if (!e[m]) { | |
var n = e[m] = { | |
structural: !0, | |
beforeStart: function() { | |
k.beforeStart(), l.beforeStart() | |
}, | |
close: function() { | |
k.close(), l.close() | |
}, | |
classes: w(k.classes, l.classes), | |
from: k, | |
to: l, | |
anchors: [] | |
}; | |
n.classes.length ? b.push(n) : (b.push(k), b.push(l)) | |
} | |
e[m].anchors.push({ | |
out: g.element, | |
in: h.element | |
}) | |
}), b | |
} | |
function w(a, b) { | |
a = a.split(" "), b = b.split(" "); | |
for (var c = [], d = 0; d < a.length; d++) { | |
var e = a[d]; | |
if ("ng-" !== e.substring(0, 3)) | |
for (var f = 0; f < b.length; f++) | |
if (e === b[f]) { | |
c.push(e); | |
break | |
} | |
} | |
return c.join(" ") | |
} | |
function x(a) { | |
for (var b = g.length - 1; b >= 0; b--) { | |
var c = g[b], | |
d = i.get(c), | |
e = d(a); | |
if (e) return e | |
} | |
} | |
function y() { | |
k.addClass(ba), F && a.addClass(k, F), G && (a.removeClass(k, G), G = null) | |
} | |
function z(a, b) { | |
function c(a) { | |
var c = e(a); | |
c && c.setHost(b) | |
} | |
a.from && a.to ? (c(a.from.element), c(a.to.element)) : c(a.element) | |
} | |
function A() { | |
var a = e(k); | |
!a || "leave" === l && t.$$domOperationFired || a.end() | |
} | |
function B(b) { | |
k.off("$destroy", A), c(k), r(k, t), n(k, t), t.domOperation(), F && a.removeClass(k, F), k.removeClass(ba), D.complete(!b) | |
} | |
t = m(t); | |
var C = ["enter", "move", "leave"].indexOf(l) >= 0, | |
D = new j({ | |
end: function() { | |
B() | |
}, | |
cancel: function() { | |
B(!0) | |
} | |
}); | |
if (!g.length) return B(), D; | |
b(k, D); | |
var E = d(k.attr("class"), d(t.addClass, t.removeClass)), | |
F = t.tempClasses; | |
F && (E += " " + F, t.tempClasses = null); | |
var G; | |
return C && (G = "ng-" + l + aa, a.addClass(k, G)), q.push({ | |
element: k, | |
classes: E, | |
event: l, | |
structural: C, | |
options: t, | |
beforeStart: y, | |
close: B | |
}), k.on("$destroy", A), q.length > 1 ? D : (h.$$postDigest(function() { | |
var a = []; | |
P(q, function(b) { | |
e(b.element) ? a.push(b) : b.close() | |
}), q.length = 0; | |
var b = v(a), | |
c = []; | |
P(b, function(a) { | |
c.push({ | |
domNode: s(a.from ? a.from.element : a.element), | |
fn: function() { | |
a.beforeStart(); | |
var b, c = a.close, | |
d = a.anchors ? a.from.element || a.to.element : a.element; | |
if (e(d)) { | |
var f = x(a); | |
f && (b = f.start) | |
} | |
if (b) { | |
var g = b(); | |
g.done(function(a) { | |
c(!a) | |
}), z(a, g) | |
} else c() | |
} | |
}) | |
}), o(p(c)) | |
}), D) | |
} | |
}] | |
}], | |
Ga = ["$animate", "$rootScope", function(a, b) { | |
return { | |
restrict: "A", | |
transclude: "element", | |
terminal: !0, | |
priority: 600, | |
link: function(b, c, d, e, f) { | |
var g, h; | |
b.$watchCollection(d.ngAnimateSwap || d.for, function(d) { | |
g && a.leave(g), h && (h.$destroy(), h = null), (d || 0 === d) && (h = b.$new(), f(h, function(b) { | |
g = b, a.enter(b, null, c) | |
})) | |
}) | |
} | |
} | |
}]; | |
b.module("ngAnimate", []).directive("ngAnimateSwap", Ga).directive("ngAnimateChildren", ra).factory("$$rAFScheduler", qa).provider("$$animateQueue", Ea).provider("$$animation", Fa).provider("$animateCss", ya).provider("$$animateCssDriver", za).provider("$$animateJs", Aa).provider("$$animateJsDriver", Ba) | |
}(window, window.angular), | |
function(a, b) { | |
"use strict"; | |
function c() { | |
function a(a, b, d, e) { | |
return function(g, h, i) { | |
var j = i.$normalize(b); | |
!c[j] || f(h, d) || i[j] || g.$watch(i[a], function(a) { | |
a = e ? !a : !!a, h.attr(b, a) | |
}) | |
} | |
} | |
var c = { | |
ariaHidden: !0, | |
ariaChecked: !0, | |
ariaReadonly: !0, | |
ariaDisabled: !0, | |
ariaRequired: !0, | |
ariaInvalid: !0, | |
ariaValue: !0, | |
tabindex: !0, | |
bindKeypress: !0, | |
bindRoleForClick: !0 | |
}; | |
this.config = function(a) { | |
c = b.extend(c, a) | |
}, this.$get = function() { | |
return { | |
config: function(a) { | |
return c[a] | |
}, | |
$$watchExpr: a | |
} | |
} | |
} | |
var d = b.module("ngAria", ["ng"]).provider("$aria", c), | |
e = ["BUTTON", "A", "INPUT", "TEXTAREA", "SELECT", "DETAILS", "SUMMARY"], | |
f = function(a, b) { | |
if (b.indexOf(a[0].nodeName) !== -1) return !0 | |
}; | |
d.directive("ngShow", ["$aria", function(a) { | |
return a.$$watchExpr("ngShow", "aria-hidden", [], !0) | |
}]).directive("ngHide", ["$aria", function(a) { | |
return a.$$watchExpr("ngHide", "aria-hidden", [], !1) | |
}]).directive("ngValue", ["$aria", function(a) { | |
return a.$$watchExpr("ngValue", "aria-checked", e, !1) | |
}]).directive("ngChecked", ["$aria", function(a) { | |
return a.$$watchExpr("ngChecked", "aria-checked", e, !1) | |
}]).directive("ngReadonly", ["$aria", function(a) { | |
return a.$$watchExpr("ngReadonly", "aria-readonly", e, !1) | |
}]).directive("ngRequired", ["$aria", function(a) { | |
return a.$$watchExpr("ngRequired", "aria-required", e, !1) | |
}]).directive("ngModel", ["$aria", function(a) { | |
function b(b, c, d, g) { | |
return a.config(c) && !d.attr(b) && (g || !f(d, e)) | |
} | |
function c(a, b) { | |
return !b.attr("role") && b.attr("type") === a && "INPUT" !== b[0].nodeName | |
} | |
function d(a, b) { | |
var c = a.type, | |
d = a.role; | |
return "checkbox" === (c || d) || "menuitemcheckbox" === d ? "checkbox" : "radio" === (c || d) || "menuitemradio" === d ? "radio" : "range" === c || "progressbar" === d || "slider" === d ? "range" : "" | |
} | |
return { | |
restrict: "A", | |
require: "ngModel", | |
priority: 200, | |
compile: function(e, f) { | |
var g = d(f, e); | |
return { | |
pre: function(a, b, c, d) { | |
"checkbox" === g && (d.$isEmpty = function(a) { | |
return a === !1 | |
}) | |
}, | |
post: function(d, e, f, h) { | |
function i() { | |
return h.$modelValue | |
} | |
function j(a) { | |
var b = f.value == h.$viewValue; | |
e.attr("aria-checked", b) | |
} | |
function k() { | |
e.attr("aria-checked", !h.$isEmpty(h.$viewValue)) | |
} | |
var l = b("tabindex", "tabindex", e, !1); | |
switch (g) { | |
case "radio": | |
case "checkbox": | |
c(g, e) && e.attr("role", g), b("aria-checked", "ariaChecked", e, !1) && d.$watch(i, "radio" === g ? j : k), l && e.attr("tabindex", 0); | |
break; | |
case "range": | |
if (c(g, e) && e.attr("role", "slider"), a.config("ariaValue")) { | |
var m = !e.attr("aria-valuemin") && (f.hasOwnProperty("min") || f.hasOwnProperty("ngMin")), | |
n = !e.attr("aria-valuemax") && (f.hasOwnProperty("max") || f.hasOwnProperty("ngMax")), | |
o = !e.attr("aria-valuenow"); | |
m && f.$observe("min", function(a) { | |
e.attr("aria-valuemin", a) | |
}), n && f.$observe("max", function(a) { | |
e.attr("aria-valuemax", a) | |
}), o && d.$watch(i, function(a) { | |
e.attr("aria-valuenow", a) | |
}) | |
} | |
l && e.attr("tabindex", 0) | |
}!f.hasOwnProperty("ngRequired") && h.$validators.required && b("aria-required", "ariaRequired", e, !1) && f.$observe("required", function() { | |
e.attr("aria-required", !!f.required) | |
}), b("aria-invalid", "ariaInvalid", e, !0) && d.$watch(function() { | |
return h.$invalid | |
}, function(a) { | |
e.attr("aria-invalid", !!a) | |
}) | |
} | |
} | |
} | |
} | |
}]).directive("ngDisabled", ["$aria", function(a) { | |
return a.$$watchExpr("ngDisabled", "aria-disabled", e, !1) | |
}]).directive("ngMessages", function() { | |
return { | |
restrict: "A", | |
require: "?ngMessages", | |
link: function(a, b, c, d) { | |
b.attr("aria-live") || b.attr("aria-live", "assertive") | |
} | |
} | |
}).directive("ngClick", ["$aria", "$parse", function(a, b) { | |
return { | |
restrict: "A", | |
compile: function(c, d) { | |
var g = b(d.ngClick, null, !0); | |
return function(b, c, d) { | |
f(c, e) || (a.config("bindRoleForClick") && !c.attr("role") && c.attr("role", "button"), a.config("tabindex") && !c.attr("tabindex") && c.attr("tabindex", 0), a.config("bindKeypress") && !d.ngKeypress && c.on("keypress", function(a) { | |
function c() { | |
g(b, { | |
$event: a | |
}) | |
} | |
var d = a.which || a.keyCode; | |
32 !== d && 13 !== d || b.$apply(c) | |
})) | |
} | |
} | |
} | |
}]).directive("ngDblclick", ["$aria", function(a) { | |
return function(b, c, d) { | |
!a.config("tabindex") || c.attr("tabindex") || f(c, e) || c.attr("tabindex", 0) | |
} | |
}]) | |
}(window, window.angular), ! function(a, b, c, d) { | |
"use strict"; | |
function e(a, b, c) { | |
return setTimeout(j(a, c), b) | |
} | |
function f(a, b, c) { | |
return !!Array.isArray(a) && (g(a, c[b], c), !0) | |
} | |
function g(a, b, c) { | |
var e; | |
if (a) | |
if (a.forEach) a.forEach(b, c); | |
else if (a.length !== d) | |
for (e = 0; e < a.length;) b.call(c, a[e], e, a), e++; | |
else | |
for (e in a) a.hasOwnProperty(e) && b.call(c, a[e], e, a) | |
} | |
function h(b, c, d) { | |
var e = "DEPRECATED METHOD: " + c + "\n" + d + " AT \n"; | |
return function() { | |
var c = new Error("get-stack-trace"), | |
d = c && c.stack ? c.stack.replace(/^[^\(]+?[\n$]/gm, "").replace(/^\s+at\s+/gm, "").replace(/^Object.<anonymous>\s*\(/gm, "{anonymous}()@") : "Unknown Stack Trace", | |
f = a.console && (a.console.warn || a.console.log); | |
return f && f.call(a.console, e, d), b.apply(this, arguments) | |
} | |
} | |
function i(a, b, c) { | |
var d, e = b.prototype; | |
d = a.prototype = Object.create(e), d.constructor = a, d._super = e, c && la(d, c) | |
} | |
function j(a, b) { | |
return function() { | |
return a.apply(b, arguments) | |
} | |
} | |
function k(a, b) { | |
return typeof a == oa ? a.apply(b ? b[0] || d : d, b) : a | |
} | |
function l(a, b) { | |
return a === d ? b : a | |
} | |
function m(a, b, c) { | |
g(q(b), function(b) { | |
a.addEventListener(b, c, !1) | |
}) | |
} | |
function n(a, b, c) { | |
g(q(b), function(b) { | |
a.removeEventListener(b, c, !1) | |
}) | |
} | |
function o(a, b) { | |
for (; a;) { | |
if (a == b) return !0; | |
a = a.parentNode | |
} | |
return !1 | |
} | |
function p(a, b) { | |
return a.indexOf(b) > -1 | |
} | |
function q(a) { | |
return a.trim().split(/\s+/g) | |
} | |
function r(a, b, c) { | |
if (a.indexOf && !c) return a.indexOf(b); | |
for (var d = 0; d < a.length;) { | |
if (c && a[d][c] == b || !c && a[d] === b) return d; | |
d++ | |
} | |
return -1 | |
} | |
function s(a) { | |
return Array.prototype.slice.call(a, 0) | |
} | |
function t(a, b, c) { | |
for (var d = [], e = [], f = 0; f < a.length;) { | |
var g = b ? a[f][b] : a[f]; | |
r(e, g) < 0 && d.push(a[f]), e[f] = g, f++ | |
} | |
return c && (d = b ? d.sort(function(a, c) { | |
return a[b] > c[b] | |
}) : d.sort()), d | |
} | |
function u(a, b) { | |
for (var c, e, f = b[0].toUpperCase() + b.slice(1), g = 0; g < ma.length;) { | |
if (c = ma[g], e = c ? c + f : b, e in a) return e; | |
g++ | |
} | |
return d | |
} | |
function v() { | |
return ua++ | |
} | |
function w(b) { | |
var c = b.ownerDocument || b; | |
return c.defaultView || c.parentWindow || a | |
} | |
function x(a, b) { | |
var c = this; | |
this.manager = a, this.callback = b, this.element = a.element, this.target = a.options.inputTarget, this.domHandler = function(b) { | |
k(a.options.enable, [a]) && c.handler(b) | |
}, this.init() | |
} | |
function y(a) { | |
var b, c = a.options.inputClass; | |
return new(b = c ? c : xa ? M : ya ? P : wa ? R : L)(a, z) | |
} | |
function z(a, b, c) { | |
var d = c.pointers.length, | |
e = c.changedPointers.length, | |
f = b & Ea && d - e === 0, | |
g = b & (Ga | Ha) && d - e === 0; | |
c.isFirst = !!f, c.isFinal = !!g, f && (a.session = {}), c.eventType = b, A(a, c), a.emit("hammer.input", c), a.recognize(c), a.session.prevInput = c | |
} | |
function A(a, b) { | |
var c = a.session, | |
d = b.pointers, | |
e = d.length; | |
c.firstInput || (c.firstInput = D(b)), e > 1 && !c.firstMultiple ? c.firstMultiple = D(b) : 1 === e && (c.firstMultiple = !1); | |
var f = c.firstInput, | |
g = c.firstMultiple, | |
h = g ? g.center : f.center, | |
i = b.center = E(d); | |
b.timeStamp = ra(), b.deltaTime = b.timeStamp - f.timeStamp, b.angle = I(h, i), b.distance = H(h, i), B(c, b), b.offsetDirection = G(b.deltaX, b.deltaY); | |
var j = F(b.deltaTime, b.deltaX, b.deltaY); | |
b.overallVelocityX = j.x, b.overallVelocityY = j.y, b.overallVelocity = qa(j.x) > qa(j.y) ? j.x : j.y, b.scale = g ? K(g.pointers, d) : 1, b.rotation = g ? J(g.pointers, d) : 0, b.maxPointers = c.prevInput ? b.pointers.length > c.prevInput.maxPointers ? b.pointers.length : c.prevInput.maxPointers : b.pointers.length, C(c, b); | |
var k = a.element; | |
o(b.srcEvent.target, k) && (k = b.srcEvent.target), b.target = k | |
} | |
function B(a, b) { | |
var c = b.center, | |
d = a.offsetDelta || {}, | |
e = a.prevDelta || {}, | |
f = a.prevInput || {}; | |
b.eventType !== Ea && f.eventType !== Ga || (e = a.prevDelta = { | |
x: f.deltaX || 0, | |
y: f.deltaY || 0 | |
}, d = a.offsetDelta = { | |
x: c.x, | |
y: c.y | |
}), b.deltaX = e.x + (c.x - d.x), b.deltaY = e.y + (c.y - d.y) | |
} | |
function C(a, b) { | |
var c, e, f, g, h = a.lastInterval || b, | |
i = b.timeStamp - h.timeStamp; | |
if (b.eventType != Ha && (i > Da || h.velocity === d)) { | |
var j = b.deltaX - h.deltaX, | |
k = b.deltaY - h.deltaY, | |
l = F(i, j, k); | |
e = l.x, f = l.y, c = qa(l.x) > qa(l.y) ? l.x : l.y, g = G(j, k), a.lastInterval = b | |
} else c = h.velocity, e = h.velocityX, f = h.velocityY, g = h.direction; | |
b.velocity = c, b.velocityX = e, b.velocityY = f, b.direction = g | |
} | |
function D(a) { | |
for (var b = [], c = 0; c < a.pointers.length;) b[c] = { | |
clientX: pa(a.pointers[c].clientX), | |
clientY: pa(a.pointers[c].clientY) | |
}, c++; | |
return { | |
timeStamp: ra(), | |
pointers: b, | |
center: E(b), | |
deltaX: a.deltaX, | |
deltaY: a.deltaY | |
} | |
} | |
function E(a) { | |
var b = a.length; | |
if (1 === b) return { | |
x: pa(a[0].clientX), | |
y: pa(a[0].clientY) | |
}; | |
for (var c = 0, d = 0, e = 0; b > e;) c += a[e].clientX, d += a[e].clientY, e++; | |
return { | |
x: pa(c / b), | |
y: pa(d / b) | |
} | |
} | |
function F(a, b, c) { | |
return { | |
x: b / a || 0, | |
y: c / a || 0 | |
} | |
} | |
function G(a, b) { | |
return a === b ? Ia : qa(a) >= qa(b) ? 0 > a ? Ja : Ka : 0 > b ? La : Ma | |
} | |
function H(a, b, c) { | |
c || (c = Qa); | |
var d = b[c[0]] - a[c[0]], | |
e = b[c[1]] - a[c[1]]; | |
return Math.sqrt(d * d + e * e) | |
} | |
function I(a, b, c) { | |
c || (c = Qa); | |
var d = b[c[0]] - a[c[0]], | |
e = b[c[1]] - a[c[1]]; | |
return 180 * Math.atan2(e, d) / Math.PI | |
} | |
function J(a, b) { | |
return I(b[1], b[0], Ra) + I(a[1], a[0], Ra) | |
} | |
function K(a, b) { | |
return H(b[0], b[1], Ra) / H(a[0], a[1], Ra) | |
} | |
function L() { | |
this.evEl = Ta, this.evWin = Ua, this.pressed = !1, x.apply(this, arguments) | |
} | |
function M() { | |
this.evEl = Xa, this.evWin = Ya, x.apply(this, arguments), this.store = this.manager.session.pointerEvents = [] | |
} | |
function N() { | |
this.evTarget = $a, this.evWin = _a, this.started = !1, x.apply(this, arguments) | |
} | |
function O(a, b) { | |
var c = s(a.touches), | |
d = s(a.changedTouches); | |
return b & (Ga | Ha) && (c = t(c.concat(d), "identifier", !0)), [c, d] | |
} | |
function P() { | |
this.evTarget = bb, this.targetIds = {}, x.apply(this, arguments) | |
} | |
function Q(a, b) { | |
var c = s(a.touches), | |
d = this.targetIds; | |
if (b & (Ea | Fa) && 1 === c.length) return d[c[0].identifier] = !0, [c, c]; | |
var e, f, g = s(a.changedTouches), | |
h = [], | |
i = this.target; | |
if (f = c.filter(function(a) { | |
return o(a.target, i) | |
}), b === Ea) | |
for (e = 0; e < f.length;) d[f[e].identifier] = !0, e++; | |
for (e = 0; e < g.length;) d[g[e].identifier] && h.push(g[e]), b & (Ga | Ha) && delete d[g[e].identifier], e++; | |
return h.length ? [t(f.concat(h), "identifier", !0), h] : void 0 | |
} | |
function R() { | |
x.apply(this, arguments); | |
var a = j(this.handler, this); | |
this.touch = new P(this.manager, a), this.mouse = new L(this.manager, a), this.primaryTouch = null, this.lastTouches = [] | |
} | |
function S(a, b) { | |
a & Ea ? (this.primaryTouch = b.changedPointers[0].identifier, T.call(this, b)) : a & (Ga | Ha) && T.call(this, b) | |
} | |
function T(a) { | |
var b = a.changedPointers[0]; | |
if (b.identifier === this.primaryTouch) { | |
var c = { | |
x: b.clientX, | |
y: b.clientY | |
}; | |
this.lastTouches.push(c); | |
var d = this.lastTouches, | |
e = function() { | |
var a = d.indexOf(c); | |
a > -1 && d.splice(a, 1) | |
}; | |
setTimeout(e, cb) | |
} | |
} | |
function U(a) { | |
for (var b = a.srcEvent.clientX, c = a.srcEvent.clientY, d = 0; d < this.lastTouches.length; d++) { | |
var e = this.lastTouches[d], | |
f = Math.abs(b - e.x), | |
g = Math.abs(c - e.y); | |
if (db >= f && db >= g) return !0 | |
} | |
return !1 | |
} | |
function V(a, b) { | |
this.manager = a, this.set(b) | |
} | |
function W(a) { | |
if (p(a, jb)) return jb; | |
var b = p(a, kb), | |
c = p(a, lb); | |
return b && c ? jb : b || c ? b ? kb : lb : p(a, ib) ? ib : hb | |
} | |
function X() { | |
if (!fb) return !1; | |
var b = {}, | |
c = a.CSS && a.CSS.supports; | |
return ["auto", "manipulation", "pan-y", "pan-x", "pan-x pan-y", "none"].forEach(function(d) { | |
b[d] = !c || a.CSS.supports("touch-action", d) | |
}), b | |
} | |
function Y(a) { | |
this.options = la({}, this.defaults, a || {}), this.id = v(), this.manager = null, this.options.enable = l(this.options.enable, !0), this.state = nb, this.simultaneous = {}, this.requireFail = [] | |
} | |
function Z(a) { | |
return a & sb ? "cancel" : a & qb ? "end" : a & pb ? "move" : a & ob ? "start" : "" | |
} | |
function $(a) { | |
return a == Ma ? "down" : a == La ? "up" : a == Ja ? "left" : a == Ka ? "right" : "" | |
} | |
function _(a, b) { | |
var c = b.manager; | |
return c ? c.get(a) : a | |
} | |
function aa() { | |
Y.apply(this, arguments) | |
} | |
function ba() { | |
aa.apply(this, arguments), this.pX = null, this.pY = null | |
} | |
function ca() { | |
aa.apply(this, arguments) | |
} | |
function da() { | |
Y.apply(this, arguments), this._timer = null, this._input = null | |
} | |
function ea() { | |
aa.apply(this, arguments) | |
} | |
function fa() { | |
aa.apply(this, arguments) | |
} | |
function ga() { | |
Y.apply(this, arguments), this.pTime = !1, this.pCenter = !1, this._timer = null, this._input = null, this.count = 0 | |
} | |
function ha(a, b) { | |
return b = b || {}, b.recognizers = l(b.recognizers, ha.defaults.preset), new ia(a, b) | |
} | |
function ia(a, b) { | |
this.options = la({}, ha.defaults, b || {}), this.options.inputTarget = this.options.inputTarget || a, this.handlers = {}, this.session = {}, this.recognizers = [], this.oldCssProps = {}, this.element = a, this.input = y(this), this.touchAction = new V(this, this.options.touchAction), ja(this, !0), g(this.options.recognizers, function(a) { | |
var b = this.add(new a[0](a[1])); | |
a[2] && b.recognizeWith(a[2]), a[3] && b.requireFailure(a[3]) | |
}, this) | |
} | |
function ja(a, b) { | |
var c = a.element; | |
if (c.style) { | |
var d; | |
g(a.options.cssProps, function(e, f) { | |
d = u(c.style, f), b ? (a.oldCssProps[d] = c.style[d], c.style[d] = e) : c.style[d] = a.oldCssProps[d] || "" | |
}), b || (a.oldCssProps = {}) | |
} | |
} | |
function ka(a, c) { | |
var d = b.createEvent("Event"); | |
d.initEvent(a, !0, !0), d.gesture = c, c.target.dispatchEvent(d) | |
} | |
var la, ma = ["", "webkit", "Moz", "MS", "ms", "o"], | |
na = b.createElement("div"), | |
oa = "function", | |
pa = Math.round, | |
qa = Math.abs, | |
ra = Date.now; | |
la = "function" != typeof Object.assign ? function(a) { | |
if (a === d || null === a) throw new TypeError("Cannot convert undefined or null to object"); | |
for (var b = Object(a), c = 1; c < arguments.length; c++) { | |
var e = arguments[c]; | |
if (e !== d && null !== e) | |
for (var f in e) e.hasOwnProperty(f) && (b[f] = e[f]) | |
} | |
return b | |
} : Object.assign; | |
var sa = h(function(a, b, c) { | |
for (var e = Object.keys(b), f = 0; f < e.length;)(!c || c && a[e[f]] === d) && (a[e[f]] = b[e[f]]), f++; | |
return a | |
}, "extend", "Use `assign`."), | |
ta = h(function(a, b) { | |
return sa(a, b, !0) | |
}, "merge", "Use `assign`."), | |
ua = 1, | |
va = /mobile|tablet|ip(ad|hone|od)|android/i, | |
wa = "ontouchstart" in a, | |
xa = u(a, "PointerEvent") !== d, | |
ya = wa && va.test(navigator.userAgent), | |
za = "touch", | |
Aa = "pen", | |
Ba = "mouse", | |
Ca = "kinect", | |
Da = 25, | |
Ea = 1, | |
Fa = 2, | |
Ga = 4, | |
Ha = 8, | |
Ia = 1, | |
Ja = 2, | |
Ka = 4, | |
La = 8, | |
Ma = 16, | |
Na = Ja | Ka, | |
Oa = La | Ma, | |
Pa = Na | Oa, | |
Qa = ["x", "y"], | |
Ra = ["clientX", "clientY"]; | |
x.prototype = { | |
handler: function() {}, | |
init: function() { | |
this.evEl && m(this.element, this.evEl, this.domHandler), this.evTarget && m(this.target, this.evTarget, this.domHandler), this.evWin && m(w(this.element), this.evWin, this.domHandler) | |
}, | |
destroy: function() { | |
this.evEl && n(this.element, this.evEl, this.domHandler), this.evTarget && n(this.target, this.evTarget, this.domHandler), this.evWin && n(w(this.element), this.evWin, this.domHandler) | |
} | |
}; | |
var Sa = { | |
mousedown: Ea, | |
mousemove: Fa, | |
mouseup: Ga | |
}, | |
Ta = "mousedown", | |
Ua = "mousemove mouseup"; | |
i(L, x, { | |
handler: function(a) { | |
var b = Sa[a.type]; | |
b & Ea && 0 === a.button && (this.pressed = !0), b & Fa && 1 !== a.which && (b = Ga), this.pressed && (b & Ga && (this.pressed = !1), this.callback(this.manager, b, { | |
pointers: [a], | |
changedPointers: [a], | |
pointerType: Ba, | |
srcEvent: a | |
})) | |
} | |
}); | |
var Va = { | |
pointerdown: Ea, | |
pointermove: Fa, | |
pointerup: Ga, | |
pointercancel: Ha, | |
pointerout: Ha | |
}, | |
Wa = { | |
2: za, | |
3: Aa, | |
4: Ba, | |
5: Ca | |
}, | |
Xa = "pointerdown", | |
Ya = "pointermove pointerup pointercancel"; | |
a.MSPointerEvent && !a.PointerEvent && (Xa = "MSPointerDown", Ya = "MSPointerMove MSPointerUp MSPointerCancel"), i(M, x, { | |
handler: function(a) { | |
var b = this.store, | |
c = !1, | |
d = a.type.toLowerCase().replace("ms", ""), | |
e = Va[d], | |
f = Wa[a.pointerType] || a.pointerType, | |
g = f == za, | |
h = r(b, a.pointerId, "pointerId"); | |
e & Ea && (0 === a.button || g) ? 0 > h && (b.push(a), h = b.length - 1) : e & (Ga | Ha) && (c = !0), 0 > h || (b[h] = a, this.callback(this.manager, e, { | |
pointers: b, | |
changedPointers: [a], | |
pointerType: f, | |
srcEvent: a | |
}), c && b.splice(h, 1)) | |
} | |
}); | |
var Za = { | |
touchstart: Ea, | |
touchmove: Fa, | |
touchend: Ga, | |
touchcancel: Ha | |
}, | |
$a = "touchstart", | |
_a = "touchstart touchmove touchend touchcancel"; | |
i(N, x, { | |
handler: function(a) { | |
var b = Za[a.type]; | |
if (b === Ea && (this.started = !0), this.started) { | |
var c = O.call(this, a, b); | |
b & (Ga | Ha) && c[0].length - c[1].length === 0 && (this.started = !1), this.callback(this.manager, b, { | |
pointers: c[0], | |
changedPointers: c[1], | |
pointerType: za, | |
srcEvent: a | |
}) | |
} | |
} | |
}); | |
var ab = { | |
touchstart: Ea, | |
touchmove: Fa, | |
touchend: Ga, | |
touchcancel: Ha | |
}, | |
bb = "touchstart touchmove touchend touchcancel"; | |
i(P, x, { | |
handler: function(a) { | |
var b = ab[a.type], | |
c = Q.call(this, a, b); | |
c && this.callback(this.manager, b, { | |
pointers: c[0], | |
changedPointers: c[1], | |
pointerType: za, | |
srcEvent: a | |
}) | |
} | |
}); | |
var cb = 2500, | |
db = 25; | |
i(R, x, { | |
handler: function(a, b, c) { | |
var d = c.pointerType == za, | |
e = c.pointerType == Ba; | |
if (!(e && c.sourceCapabilities && c.sourceCapabilities.firesTouchEvents)) { | |
if (d) S.call(this, b, c); | |
else if (e && U.call(this, c)) return; | |
this.callback(a, b, c) | |
} | |
}, | |
destroy: function() { | |
this.touch.destroy(), this.mouse.destroy() | |
} | |
}); | |
var eb = u(na.style, "touchAction"), | |
fb = eb !== d, | |
gb = "compute", | |
hb = "auto", | |
ib = "manipulation", | |
jb = "none", | |
kb = "pan-x", | |
lb = "pan-y", | |
mb = X(); | |
V.prototype = { | |
set: function(a) { | |
a == gb && (a = this.compute()), fb && this.manager.element.style && mb[a] && (this.manager.element.style[eb] = a), this.actions = a.toLowerCase().trim() | |
}, | |
update: function() { | |
this.set(this.manager.options.touchAction) | |
}, | |
compute: function() { | |
var a = []; | |
return g(this.manager.recognizers, function(b) { | |
k(b.options.enable, [b]) && (a = a.concat(b.getTouchAction())) | |
}), W(a.join(" ")) | |
}, | |
preventDefaults: function(a) { | |
var b = a.srcEvent, | |
c = a.offsetDirection; | |
if (this.manager.session.prevented) return void b.preventDefault(); | |
var d = this.actions, | |
e = p(d, jb) && !mb[jb], | |
f = p(d, lb) && !mb[lb], | |
g = p(d, kb) && !mb[kb]; | |
if (e) { | |
var h = 1 === a.pointers.length, | |
i = a.distance < 2, | |
j = a.deltaTime < 250; | |
if (h && i && j) return | |
} | |
return g && f ? void 0 : e || f && c & Na || g && c & Oa ? this.preventSrc(b) : void 0 | |
}, | |
preventSrc: function(a) { | |
this.manager.session.prevented = !0, a.preventDefault() | |
} | |
}; | |
var nb = 1, | |
ob = 2, | |
pb = 4, | |
qb = 8, | |
rb = qb, | |
sb = 16, | |
tb = 32; | |
Y.prototype = { | |
defaults: {}, | |
set: function(a) { | |
return la(this.options, a), this.manager && this.manager.touchAction.update(), this | |
}, | |
recognizeWith: function(a) { | |
if (f(a, "recognizeWith", this)) return this; | |
var b = this.simultaneous; | |
return a = _(a, this), b[a.id] || (b[a.id] = a, a.recognizeWith(this)), this | |
}, | |
dropRecognizeWith: function(a) { | |
return f(a, "dropRecognizeWith", this) ? this : (a = _(a, this), delete this.simultaneous[a.id], this) | |
}, | |
requireFailure: function(a) { | |
if (f(a, "requireFailure", this)) return this; | |
var b = this.requireFail; | |
return a = _(a, this), -1 === r(b, a) && (b.push(a), a.requireFailure(this)), this | |
}, | |
dropRequireFailure: function(a) { | |
if (f(a, "dropRequireFailure", this)) return this; | |
a = _(a, this); | |
var b = r(this.requireFail, a); | |
return b > -1 && this.requireFail.splice(b, 1), this | |
}, | |
hasRequireFailures: function() { | |
return this.requireFail.length > 0 | |
}, | |
canRecognizeWith: function(a) { | |
return !!this.simultaneous[a.id] | |
}, | |
emit: function(a) { | |
function b(b) { | |
c.manager.emit(b, a) | |
} | |
var c = this, | |
d = this.state; | |
qb > d && b(c.options.event + Z(d)), b(c.options.event), a.additionalEvent && b(a.additionalEvent), d >= qb && b(c.options.event + Z(d)) | |
}, | |
tryEmit: function(a) { | |
return this.canEmit() ? this.emit(a) : void(this.state = tb) | |
}, | |
canEmit: function() { | |
for (var a = 0; a < this.requireFail.length;) { | |
if (!(this.requireFail[a].state & (tb | nb))) return !1; | |
a++ | |
} | |
return !0 | |
}, | |
recognize: function(a) { | |
var b = la({}, a); | |
return k(this.options.enable, [this, b]) ? (this.state & (rb | sb | tb) && (this.state = nb), this.state = this.process(b), void(this.state & (ob | pb | qb | sb) && this.tryEmit(b))) : (this.reset(), void(this.state = tb)) | |
}, | |
process: function(a) {}, | |
getTouchAction: function() {}, | |
reset: function() {} | |
}, i(aa, Y, { | |
defaults: { | |
pointers: 1 | |
}, | |
attrTest: function(a) { | |
var b = this.options.pointers; | |
return 0 === b || a.pointers.length === b | |
}, | |
process: function(a) { | |
var b = this.state, | |
c = a.eventType, | |
d = b & (ob | pb), | |
e = this.attrTest(a); | |
return d && (c & Ha || !e) ? b | sb : d || e ? c & Ga ? b | qb : b & ob ? b | pb : ob : tb | |
} | |
}), i(ba, aa, { | |
defaults: { | |
event: "pan", | |
threshold: 10, | |
pointers: 1, | |
direction: Pa | |
}, | |
getTouchAction: function() { | |
var a = this.options.direction, | |
b = []; | |
return a & Na && b.push(lb), a & Oa && b.push(kb), b | |
}, | |
directionTest: function(a) { | |
var b = this.options, | |
c = !0, | |
d = a.distance, | |
e = a.direction, | |
f = a.deltaX, | |
g = a.deltaY; | |
return e & b.direction || (b.direction & Na ? (e = 0 === f ? Ia : 0 > f ? Ja : Ka, c = f != this.pX, d = Math.abs(a.deltaX)) : (e = 0 === g ? Ia : 0 > g ? La : Ma, c = g != this.pY, d = Math.abs(a.deltaY))), a.direction = e, c && d > b.threshold && e & b.direction | |
}, | |
attrTest: function(a) { | |
return aa.prototype.attrTest.call(this, a) && (this.state & ob || !(this.state & ob) && this.directionTest(a)) | |
}, | |
emit: function(a) { | |
this.pX = a.deltaX, this.pY = a.deltaY; | |
var b = $(a.direction); | |
b && (a.additionalEvent = this.options.event + b), this._super.emit.call(this, a) | |
} | |
}), i(ca, aa, { | |
defaults: { | |
event: "pinch", | |
threshold: 0, | |
pointers: 2 | |
}, | |
getTouchAction: function() { | |
return [jb] | |
}, | |
attrTest: function(a) { | |
return this._super.attrTest.call(this, a) && (Math.abs(a.scale - 1) > this.options.threshold || this.state & ob) | |
}, | |
emit: function(a) { | |
if (1 !== a.scale) { | |
var b = a.scale < 1 ? "in" : "out"; | |
a.additionalEvent = this.options.event + b | |
} | |
this._super.emit.call(this, a) | |
} | |
}), i(da, Y, { | |
defaults: { | |
event: "press", | |
pointers: 1, | |
time: 251, | |
threshold: 9 | |
}, | |
getTouchAction: function() { | |
return [hb] | |
}, | |
process: function(a) { | |
var b = this.options, | |
c = a.pointers.length === b.pointers, | |
d = a.distance < b.threshold, | |
f = a.deltaTime > b.time; | |
if (this._input = a, !d || !c || a.eventType & (Ga | Ha) && !f) this.reset(); | |
else if (a.eventType & Ea) this.reset(), this._timer = e(function() { | |
this.state = rb, this.tryEmit() | |
}, b.time, this); | |
else if (a.eventType & Ga) return rb; | |
return tb | |
}, | |
reset: function() { | |
clearTimeout(this._timer) | |
}, | |
emit: function(a) { | |
this.state === rb && (a && a.eventType & Ga ? this.manager.emit(this.options.event + "up", a) : (this._input.timeStamp = ra(), this.manager.emit(this.options.event, this._input))) | |
} | |
}), i(ea, aa, { | |
defaults: { | |
event: "rotate", | |
threshold: 0, | |
pointers: 2 | |
}, | |
getTouchAction: function() { | |
return [jb] | |
}, | |
attrTest: function(a) { | |
return this._super.attrTest.call(this, a) && (Math.abs(a.rotation) > this.options.threshold || this.state & ob); | |
} | |
}), i(fa, aa, { | |
defaults: { | |
event: "swipe", | |
threshold: 10, | |
velocity: .3, | |
direction: Na | Oa, | |
pointers: 1 | |
}, | |
getTouchAction: function() { | |
return ba.prototype.getTouchAction.call(this) | |
}, | |
attrTest: function(a) { | |
var b, c = this.options.direction; | |
return c & (Na | Oa) ? b = a.overallVelocity : c & Na ? b = a.overallVelocityX : c & Oa && (b = a.overallVelocityY), this._super.attrTest.call(this, a) && c & a.offsetDirection && a.distance > this.options.threshold && a.maxPointers == this.options.pointers && qa(b) > this.options.velocity && a.eventType & Ga | |
}, | |
emit: function(a) { | |
var b = $(a.offsetDirection); | |
b && this.manager.emit(this.options.event + b, a), this.manager.emit(this.options.event, a) | |
} | |
}), i(ga, Y, { | |
defaults: { | |
event: "tap", | |
pointers: 1, | |
taps: 1, | |
interval: 300, | |
time: 250, | |
threshold: 9, | |
posThreshold: 10 | |
}, | |
getTouchAction: function() { | |
return [ib] | |
}, | |
process: function(a) { | |
var b = this.options, | |
c = a.pointers.length === b.pointers, | |
d = a.distance < b.threshold, | |
f = a.deltaTime < b.time; | |
if (this.reset(), a.eventType & Ea && 0 === this.count) return this.failTimeout(); | |
if (d && f && c) { | |
if (a.eventType != Ga) return this.failTimeout(); | |
var g = !this.pTime || a.timeStamp - this.pTime < b.interval, | |
h = !this.pCenter || H(this.pCenter, a.center) < b.posThreshold; | |
this.pTime = a.timeStamp, this.pCenter = a.center, h && g ? this.count += 1 : this.count = 1, this._input = a; | |
var i = this.count % b.taps; | |
if (0 === i) return this.hasRequireFailures() ? (this._timer = e(function() { | |
this.state = rb, this.tryEmit() | |
}, b.interval, this), ob) : rb | |
} | |
return tb | |
}, | |
failTimeout: function() { | |
return this._timer = e(function() { | |
this.state = tb | |
}, this.options.interval, this), tb | |
}, | |
reset: function() { | |
clearTimeout(this._timer) | |
}, | |
emit: function() { | |
this.state == rb && (this._input.tapCount = this.count, this.manager.emit(this.options.event, this._input)) | |
} | |
}), ha.VERSION = "2.0.8", ha.defaults = { | |
domEvents: !1, | |
touchAction: gb, | |
enable: !0, | |
inputTarget: null, | |
inputClass: null, | |
preset: [ | |
[ea, { | |
enable: !1 | |
}], | |
[ca, { | |
enable: !1 | |
}, | |
["rotate"] | |
], | |
[fa, { | |
direction: Na | |
}], | |
[ba, { | |
direction: Na | |
}, | |
["swipe"] | |
], | |
[ga], | |
[ga, { | |
event: "doubletap", | |
taps: 2 | |
}, | |
["tap"] | |
], | |
[da] | |
], | |
cssProps: { | |
userSelect: "none", | |
touchSelect: "none", | |
touchCallout: "none", | |
contentZooming: "none", | |
userDrag: "none", | |
tapHighlightColor: "rgba(0,0,0,0)" | |
} | |
}; | |
var ub = 1, | |
vb = 2; | |
ia.prototype = { | |
set: function(a) { | |
return la(this.options, a), a.touchAction && this.touchAction.update(), a.inputTarget && (this.input.destroy(), this.input.target = a.inputTarget, this.input.init()), this | |
}, | |
stop: function(a) { | |
this.session.stopped = a ? vb : ub | |
}, | |
recognize: function(a) { | |
var b = this.session; | |
if (!b.stopped) { | |
this.touchAction.preventDefaults(a); | |
var c, d = this.recognizers, | |
e = b.curRecognizer; | |
(!e || e && e.state & rb) && (e = b.curRecognizer = null); | |
for (var f = 0; f < d.length;) c = d[f], b.stopped === vb || e && c != e && !c.canRecognizeWith(e) ? c.reset() : c.recognize(a), !e && c.state & (ob | pb | qb) && (e = b.curRecognizer = c), f++ | |
} | |
}, | |
get: function(a) { | |
if (a instanceof Y) return a; | |
for (var b = this.recognizers, c = 0; c < b.length; c++) | |
if (b[c].options.event == a) return b[c]; | |
return null | |
}, | |
add: function(a) { | |
if (f(a, "add", this)) return this; | |
var b = this.get(a.options.event); | |
return b && this.remove(b), this.recognizers.push(a), a.manager = this, this.touchAction.update(), a | |
}, | |
remove: function(a) { | |
if (f(a, "remove", this)) return this; | |
if (a = this.get(a)) { | |
var b = this.recognizers, | |
c = r(b, a); - 1 !== c && (b.splice(c, 1), this.touchAction.update()) | |
} | |
return this | |
}, | |
on: function(a, b) { | |
if (a !== d && b !== d) { | |
var c = this.handlers; | |
return g(q(a), function(a) { | |
c[a] = c[a] || [], c[a].push(b) | |
}), this | |
} | |
}, | |
off: function(a, b) { | |
if (a !== d) { | |
var c = this.handlers; | |
return g(q(a), function(a) { | |
b ? c[a] && c[a].splice(r(c[a], b), 1) : delete c[a] | |
}), this | |
} | |
}, | |
emit: function(a, b) { | |
this.options.domEvents && ka(a, b); | |
var c = this.handlers[a] && this.handlers[a].slice(); | |
if (c && c.length) { | |
b.type = a, b.preventDefault = function() { | |
b.srcEvent.preventDefault() | |
}; | |
for (var d = 0; d < c.length;) c[d](b), d++ | |
} | |
}, | |
destroy: function() { | |
this.element && ja(this, !1), this.handlers = {}, this.session = {}, this.input.destroy(), this.element = null | |
} | |
}, la(ha, { | |
INPUT_START: Ea, | |
INPUT_MOVE: Fa, | |
INPUT_END: Ga, | |
INPUT_CANCEL: Ha, | |
STATE_POSSIBLE: nb, | |
STATE_BEGAN: ob, | |
STATE_CHANGED: pb, | |
STATE_ENDED: qb, | |
STATE_RECOGNIZED: rb, | |
STATE_CANCELLED: sb, | |
STATE_FAILED: tb, | |
DIRECTION_NONE: Ia, | |
DIRECTION_LEFT: Ja, | |
DIRECTION_RIGHT: Ka, | |
DIRECTION_UP: La, | |
DIRECTION_DOWN: Ma, | |
DIRECTION_HORIZONTAL: Na, | |
DIRECTION_VERTICAL: Oa, | |
DIRECTION_ALL: Pa, | |
Manager: ia, | |
Input: x, | |
TouchAction: V, | |
TouchInput: P, | |
MouseInput: L, | |
PointerEventInput: M, | |
TouchMouseInput: R, | |
SingleTouchInput: N, | |
Recognizer: Y, | |
AttrRecognizer: aa, | |
Tap: ga, | |
Pan: ba, | |
Swipe: fa, | |
Pinch: ca, | |
Rotate: ea, | |
Press: da, | |
on: m, | |
off: n, | |
each: g, | |
merge: ta, | |
extend: sa, | |
assign: la, | |
inherit: i, | |
bindFn: j, | |
prefixed: u | |
}); | |
var wb = "undefined" != typeof a ? a : "undefined" != typeof self ? self : {}; | |
wb.Hammer = ha, "function" == typeof define && define.amd ? define(function() { | |
return ha | |
}) : "undefined" != typeof module && module.exports ? module.exports = ha : a[c] = ha | |
}(window, document, "Hammer"), | |
function() { | |
"use strict"; | |
function a(a, b, c, d, e, f, g) { | |
function h() { | |
return v.length | |
} | |
function i(a) { | |
if (1 !== arguments.length || a) | |
if (a) o(a.toastId); | |
else | |
for (var b = 0; b < v.length; b++) o(v[b].toastId) | |
} | |
function j(a, b, c) { | |
var d = q().iconClasses.error; | |
return p(d, a, b, c) | |
} | |
function k(a, b, c) { | |
var d = q().iconClasses.info; | |
return p(d, a, b, c) | |
} | |
function l(a, b, c) { | |
var d = q().iconClasses.success; | |
return p(d, a, b, c) | |
} | |
function m(a, b, c) { | |
var d = q().iconClasses.warning; | |
return p(d, a, b, c) | |
} | |
function n(a, b) { | |
a && a.isOpened && v.indexOf(a) >= 0 && a.scope.refreshTimer(b) | |
} | |
function o(b, c) { | |
function d(a) { | |
for (var b = 0; b < v.length; b++) | |
if (v[b].toastId === a) return v[b] | |
} | |
function e() { | |
return !v.length | |
} | |
var h = d(b); | |
h && !h.deleting && (h.deleting = !0, h.isOpened = !1, a.leave(h.el).then(function() { | |
h.scope.options.onHidden && h.scope.options.onHidden(!!c, h), h.scope.$destroy(); | |
var a = v.indexOf(h); | |
delete x[h.scope.message], v.splice(a, 1); | |
var b = f.maxOpened; | |
b && v.length >= b && v[b - 1].open.resolve(), e() && (t.remove(), t = null, y = g.defer()) | |
})) | |
} | |
function p(a, b, c, d) { | |
return angular.isObject(c) && (d = c, c = null), s({ | |
iconClass: a, | |
message: b, | |
optionsOverride: d, | |
title: c | |
}) | |
} | |
function q() { | |
return angular.extend({}, f) | |
} | |
function r(b) { | |
if (t) return y.promise; | |
t = angular.element("<div></div>"), t.attr("id", b.containerId), t.addClass(b.positionClass), t.css({ | |
"pointer-events": "auto" | |
}); | |
var c = angular.element(document.querySelector(b.target)); | |
if (!c || !c.length) throw "Target for toasts doesn't exist"; | |
return a.enter(t, c).then(function() { | |
y.resolve() | |
}), y.promise | |
} | |
function s(c) { | |
function f() { | |
return m.autoDismiss && m.maxOpened && v.length > m.maxOpened | |
} | |
function h(a, b, c) { | |
function d(b) { | |
if (c[b]) return function() { | |
c[b](a) | |
} | |
} | |
c.allowHtml ? (a.scope.allowHtml = !0, a.scope.title = e.trustAsHtml(b.title), a.scope.message = e.trustAsHtml(b.message)) : (a.scope.title = b.title, a.scope.message = b.message), a.scope.toastType = a.iconClass, a.scope.toastId = a.toastId, a.scope.extraData = c.extraData, a.scope.options = { | |
extendedTimeOut: c.extendedTimeOut, | |
messageClass: c.messageClass, | |
onHidden: c.onHidden, | |
onShown: d("onShown"), | |
onTap: d("onTap"), | |
progressBar: c.progressBar, | |
tapToDismiss: c.tapToDismiss, | |
timeOut: c.timeOut, | |
titleClass: c.titleClass, | |
toastClass: c.toastClass | |
}, c.closeButton && (a.scope.options.closeHtml = c.closeHtml) | |
} | |
function i() { | |
function a(a) { | |
for (var b = ["containerId", "iconClasses", "maxOpened", "newestOnTop", "positionClass", "preventDuplicates", "preventOpenDuplicates", "templates"], c = 0, d = b.length; c < d; c++) delete a[b[c]]; | |
return a | |
} | |
var b = { | |
toastId: u++, | |
isOpened: !1, | |
scope: d.$new(), | |
open: g.defer() | |
}; | |
return b.iconClass = c.iconClass, c.optionsOverride && (angular.extend(m, a(c.optionsOverride)), b.iconClass = c.optionsOverride.iconClass || b.iconClass), h(b, c, m), b.el = j(b.scope), b | |
} | |
function j(a) { | |
var c = angular.element("<div toast></div>"), | |
d = b.get("$compile"); | |
return d(c)(a) | |
} | |
function k() { | |
return m.maxOpened && v.length <= m.maxOpened || !m.maxOpened | |
} | |
function l() { | |
var a = m.preventDuplicates && c.message === w, | |
b = m.preventOpenDuplicates && x[c.message]; | |
return !(!a && !b) || (w = c.message, x[c.message] = !0, !1) | |
} | |
var m = q(); | |
if (!l()) { | |
var n = i(); | |
if (v.push(n), f()) | |
for (var p = v.slice(0, v.length - m.maxOpened), s = 0, y = p.length; s < y; s++) o(p[s].toastId); | |
return k() && n.open.resolve(), n.open.promise.then(function() { | |
r(m).then(function() { | |
if (n.isOpened = !0, m.newestOnTop) a.enter(n.el, t).then(function() { | |
n.scope.init() | |
}); | |
else { | |
var b = t[0].lastChild ? angular.element(t[0].lastChild) : null; | |
a.enter(n.el, t, b).then(function() { | |
n.scope.init() | |
}) | |
} | |
}) | |
}), n | |
} | |
} | |
var t, u = 0, | |
v = [], | |
w = "", | |
x = {}, | |
y = g.defer(), | |
z = { | |
active: h, | |
clear: i, | |
error: j, | |
info: k, | |
remove: o, | |
success: l, | |
warning: m, | |
refreshTimer: n | |
}; | |
return z | |
} | |
angular.module("toastr", []).factory("toastr", a), a.$inject = ["$animate", "$injector", "$document", "$rootScope", "$sce", "toastrConfig", "$q"] | |
}(), | |
function() { | |
"use strict"; | |
angular.module("toastr").constant("toastrConfig", { | |
allowHtml: !1, | |
autoDismiss: !1, | |
closeButton: !1, | |
closeHtml: "<button>×</button>", | |
containerId: "toast-container", | |
extendedTimeOut: 1e3, | |
iconClasses: { | |
error: "toast-error", | |
info: "toast-info", | |
success: "toast-success", | |
warning: "toast-warning" | |
}, | |
maxOpened: 0, | |
messageClass: "toast-message", | |
newestOnTop: !0, | |
onHidden: null, | |
onShown: null, | |
onTap: null, | |
positionClass: "toast-top-right", | |
preventDuplicates: !1, | |
preventOpenDuplicates: !1, | |
progressBar: !1, | |
tapToDismiss: !0, | |
target: "body", | |
templates: { | |
toast: "directives/toast/toast.html", | |
progressbar: "directives/progressbar/progressbar.html" | |
}, | |
timeOut: 5e3, | |
titleClass: "toast-title", | |
toastClass: "toast" | |
}) | |
}(), | |
function() { | |
"use strict"; | |
function a(a) { | |
function b(a, b, c, d) { | |
function e() { | |
var a = (h - (new Date).getTime()) / g * 100; | |
b.css("width", a + "%") | |
} | |
var f, g, h; | |
d.progressBar = a, a.start = function(a) { | |
f && clearInterval(f), g = parseFloat(a), h = (new Date).getTime() + g, f = setInterval(e, 10) | |
}, a.stop = function() { | |
f && clearInterval(f) | |
}, a.$on("$destroy", function() { | |
clearInterval(f) | |
}) | |
} | |
return { | |
require: "^toast", | |
templateUrl: function() { | |
return a.templates.progressbar | |
}, | |
link: b | |
} | |
} | |
angular.module("toastr").directive("progressBar", a), a.$inject = ["toastrConfig"] | |
}(), | |
function() { | |
"use strict"; | |
function a() { | |
this.progressBar = null, this.startProgressBar = function(a) { | |
this.progressBar && this.progressBar.start(a) | |
}, this.stopProgressBar = function() { | |
this.progressBar && this.progressBar.stop() | |
} | |
} | |
angular.module("toastr").controller("ToastController", a) | |
}(), | |
function() { | |
"use strict"; | |
function a(a, b, c, d) { | |
function e(c, e, f, g) { | |
function h(a) { | |
return g.startProgressBar(a), b(function() { | |
g.stopProgressBar(), d.remove(c.toastId) | |
}, a, 1) | |
} | |
function i() { | |
c.progressBar = !1, g.stopProgressBar() | |
} | |
function j() { | |
return c.options.closeHtml | |
} | |
var k; | |
if (c.toastClass = c.options.toastClass, c.titleClass = c.options.titleClass, c.messageClass = c.options.messageClass, c.progressBar = c.options.progressBar, j()) { | |
var l = angular.element(c.options.closeHtml), | |
m = a.get("$compile"); | |
l.addClass("toast-close-button"), l.attr("ng-click", "close(true, $event)"), m(l)(c), e.children().prepend(l) | |
} | |
c.init = function() { | |
c.options.timeOut && (k = h(c.options.timeOut)), c.options.onShown && c.options.onShown() | |
}, e.on("mouseenter", function() { | |
i(), k && b.cancel(k) | |
}), c.tapToast = function() { | |
angular.isFunction(c.options.onTap) && c.options.onTap(), c.options.tapToDismiss && c.close(!0) | |
}, c.close = function(a, b) { | |
b && angular.isFunction(b.stopPropagation) && b.stopPropagation(), d.remove(c.toastId, a) | |
}, c.refreshTimer = function(a) { | |
k && (b.cancel(k), k = h(a || c.options.timeOut)) | |
}, e.on("mouseleave", function() { | |
0 === c.options.timeOut && 0 === c.options.extendedTimeOut || (c.$apply(function() { | |
c.progressBar = c.options.progressBar | |
}), k = h(c.options.extendedTimeOut)) | |
}) | |
} | |
return { | |
templateUrl: function() { | |
return c.templates.toast | |
}, | |
controller: "ToastController", | |
link: e | |
} | |
} | |
angular.module("toastr").directive("toast", a), a.$inject = ["$injector", "$interval", "toastrConfig", "toastr"] | |
}(), angular.module("toastr").run(["$templateCache", function(a) { | |
a.put("directives/progressbar/progressbar.html", '<div class="toast-progress"></div>\n'), a.put("directives/toast/toast.html", '<div class="{{toastClass}} {{toastType}}" ng-click="tapToast()">\n <div ng-switch on="allowHtml">\n <div ng-switch-default ng-if="title" class="{{titleClass}}" aria-label="{{title}}">{{title}}</div>\n <div ng-switch-default class="{{messageClass}}" aria-label="{{message}}">{{message}}</div>\n <div ng-switch-when="true" ng-if="title" class="{{titleClass}}" ng-bind-html="title"></div>\n <div ng-switch-when="true" class="{{messageClass}}" ng-bind-html="message"></div>\n </div>\n <progress-bar ng-if="progressBar"></progress-bar>\n</div>\n') | |
}]), | |
function(a, b, c) { | |
"use strict"; | |
! function() { | |
b.module("ngMaterial", ["ng", "ngAnimate", "ngAria", "material.core", "material.core.gestures", "material.core.layout", "material.core.theming.palette", "material.core.theming", "material.core.animate", "material.components.autocomplete", "material.components.backdrop", "material.components.button", "material.components.bottomSheet", "material.components.card", "material.components.checkbox", "material.components.chips", "material.components.colors", "material.components.content", "material.components.datepicker", "material.components.dialog", "material.components.divider", "material.components.fabActions", "material.components.fabShared", "material.components.fabSpeedDial", "material.components.fabToolbar", "material.components.fabTrigger", "material.components.gridList", "material.components.icon", "material.components.list", "material.components.input", "material.components.menuBar", "material.components.menu", "material.components.navBar", "material.components.panel", "material.components.progressCircular", "material.components.progressLinear", "material.components.radioButton", "material.components.sidenav", "material.components.select", "material.components.slider", "material.components.showHide", "material.components.swipe", "material.components.sticky", "material.components.switch", "material.components.subheader", "material.components.tabs", "material.components.toast", "material.components.toolbar", "material.components.tooltip", "material.components.virtualRepeat", "material.components.whiteframe"]) | |
}(), | |
function() { | |
function a(a, b) { | |
if (b.has("$swipe")) { | |
var c = "You are using the ngTouch module. \nAngular Material already has mobile click, tap, and swipe support... \nngTouch is not supported with Angular Material!"; | |
a.warn(c) | |
} | |
} | |
function c(a, b) { | |
a.decorator("$$rAF", ["$delegate", d]), b.theme("default").primaryPalette("indigo").accentPalette("pink").warnPalette("deep-orange").backgroundPalette("grey") | |
} | |
function d(a) { | |
return a.throttle = function(b) { | |
var c, d, e, f; | |
return function() { | |
c = arguments, f = this, e = b, d || (d = !0, a(function() { | |
e.apply(f, Array.prototype.slice.call(c)), d = !1 | |
})) | |
} | |
}, a | |
} | |
b.module("material.core", ["ngAnimate", "material.core.animate", "material.core.layout", "material.core.gestures", "material.core.theming"]).config(c).run(a), a.$inject = ["$log", "$injector"], c.$inject = ["$provide", "$mdThemingProvider"], d.$inject = ["$delegate"] | |
}(), | |
function() { | |
function a() { | |
return { | |
restrict: "A", | |
link: c | |
} | |
} | |
function c(a, b, c) { | |
var d = c.mdAutoFocus || c.mdAutofocus || c.mdSidenavFocus; | |
a.$watch(d, function(a) { | |
b.toggleClass("_md-autofocus", a) | |
}) | |
} | |
b.module("material.core").directive("mdAutofocus", a).directive("mdAutoFocus", a).directive("mdSidenavFocus", a) | |
}(), | |
function() { | |
function a() { | |
function a(a) { | |
var b = "#" === a[0] ? a.substr(1) : a, | |
c = b.length / 3, | |
d = b.substr(0, c), | |
e = b.substr(c, c), | |
f = b.substr(2 * c); | |
return 1 === c && (d += d, e += e, f += f), "rgba(" + parseInt(d, 16) + "," + parseInt(e, 16) + "," + parseInt(f, 16) + ",0.1)" | |
} | |
function b(a) { | |
a = a.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i); | |
var b = a && 4 === a.length ? "#" + ("0" + parseInt(a[1], 10).toString(16)).slice(-2) + ("0" + parseInt(a[2], 10).toString(16)).slice(-2) + ("0" + parseInt(a[3], 10).toString(16)).slice(-2) : ""; | |
return b.toUpperCase() | |
} | |
function c(a) { | |
return a.replace(")", ", 0.1)").replace("(", "a(") | |
} | |
function d(a) { | |
return a ? a.replace("rgba", "rgb").replace(/,[^\),]+\)/, ")") : "rgb(0,0,0)" | |
} | |
return { | |
rgbaToHex: b, | |
hexToRgba: a, | |
rgbToRgba: c, | |
rgbaToRgb: d | |
} | |
} | |
b.module("material.core").factory("$mdColorUtil", a) | |
}(), | |
function() { | |
function a(a) { | |
function c(a) { | |
var b = f + "-" + a, | |
c = e(b), | |
g = c.charAt(0).toLowerCase() + c.substring(1); | |
return d(a) ? a : d(c) ? c : d(g) ? g : a | |
} | |
function d(a) { | |
return b.isDefined(i.style[a]) | |
} | |
function e(a) { | |
return a.replace(h, function(a, b, c, d) { | |
return d ? c.toUpperCase() : c | |
}) | |
} | |
var f = a.vendorPrefix, | |
g = /webkit/i.test(f), | |
h = /([:\-_]+(.))/g, | |
i = document.createElement("div"); | |
return { | |
KEY_CODE: { | |
COMMA: 188, | |
SEMICOLON: 186, | |
ENTER: 13, | |
ESCAPE: 27, | |
SPACE: 32, | |
PAGE_UP: 33, | |
PAGE_DOWN: 34, | |
END: 35, | |
HOME: 36, | |
LEFT_ARROW: 37, | |
UP_ARROW: 38, | |
RIGHT_ARROW: 39, | |
DOWN_ARROW: 40, | |
TAB: 9, | |
BACKSPACE: 8, | |
DELETE: 46 | |
}, | |
CSS: { | |
TRANSITIONEND: "transitionend" + (g ? " webkitTransitionEnd" : ""), | |
ANIMATIONEND: "animationend" + (g ? " webkitAnimationEnd" : ""), | |
TRANSFORM: c("transform"), | |
TRANSFORM_ORIGIN: c("transformOrigin"), | |
TRANSITION: c("transition"), | |
TRANSITION_DURATION: c("transitionDuration"), | |
ANIMATION_PLAY_STATE: c("animationPlayState"), | |
ANIMATION_DURATION: c("animationDuration"), | |
ANIMATION_NAME: c("animationName"), | |
ANIMATION_TIMING: c("animationTimingFunction"), | |
ANIMATION_DIRECTION: c("animationDirection") | |
}, | |
MEDIA: { | |
xs: "(max-width: 599px)", | |
"gt-xs": "(min-width: 600px)", | |
sm: "(min-width: 600px) and (max-width: 959px)", | |
"gt-sm": "(min-width: 960px)", | |
md: "(min-width: 960px) and (max-width: 1279px)", | |
"gt-md": "(min-width: 1280px)", | |
lg: "(min-width: 1280px) and (max-width: 1919px)", | |
"gt-lg": "(min-width: 1920px)", | |
xl: "(min-width: 1920px)", | |
landscape: "(orientation: landscape)", | |
portrait: "(orientation: portrait)", | |
print: "print" | |
}, | |
MEDIA_PRIORITY: ["xl", "gt-lg", "lg", "gt-md", "md", "gt-sm", "sm", "gt-xs", "xs", "landscape", "portrait", "print"] | |
} | |
} | |
b.module("material.core").factory("$mdConstant", a), a.$inject = ["$sniffer"] | |
}(), | |
function() { | |
function a(a, c) { | |
function d() { | |
return [].concat(s) | |
} | |
function e() { | |
return s.length | |
} | |
function f(a) { | |
return s.length && a > -1 && a < s.length | |
} | |
function g(a) { | |
return !!a && f(m(a) + 1) | |
} | |
function h(a) { | |
return !!a && f(m(a) - 1) | |
} | |
function i(a) { | |
return f(a) ? s[a] : null | |
} | |
function j(a, b) { | |
return s.filter(function(c) { | |
return c[a] === b | |
}) | |
} | |
function k(a, c) { | |
return a ? (b.isNumber(c) || (c = s.length), s.splice(c, 0, a), m(a)) : -1 | |
} | |
function l(a) { | |
n(a) && s.splice(m(a), 1) | |
} | |
function m(a) { | |
return s.indexOf(a) | |
} | |
function n(a) { | |
return a && m(a) > -1 | |
} | |
function o() { | |
return s.length ? s[0] : null | |
} | |
function p() { | |
return s.length ? s[s.length - 1] : null | |
} | |
function q(a, d, e, g) { | |
e = e || r; | |
for (var h = m(d);;) { | |
if (!f(h)) return null; | |
var i = h + (a ? -1 : 1), | |
j = null; | |
if (f(i) ? j = s[i] : c && (j = a ? p() : o(), i = m(j)), null === j || i === g) return null; | |
if (e(j)) return j; | |
b.isUndefined(g) && (g = i), h = i | |
} | |
} | |
var r = function() { | |
return !0 | |
}; | |
a && !b.isArray(a) && (a = Array.prototype.slice.call(a)), c = !!c; | |
var s = a || []; | |
return { | |
items: d, | |
count: e, | |
inRange: f, | |
contains: n, | |
indexOf: m, | |
itemAt: i, | |
findBy: j, | |
add: k, | |
remove: l, | |
first: o, | |
last: p, | |
next: b.bind(null, q, !1), | |
previous: b.bind(null, q, !0), | |
hasPrevious: h, | |
hasNext: g | |
} | |
} | |
b.module("material.core").config(["$provide", function(b) { | |
b.decorator("$mdUtil", ["$delegate", function(b) { | |
return b.iterator = a, b | |
}]) | |
}]) | |
}(), | |
function() { | |
function a(a, c, d) { | |
function e(a) { | |
var c = m[a]; | |
b.isUndefined(c) && (c = m[a] = f(a)); | |
var d = o[c]; | |
return b.isUndefined(d) && (d = g(c)), d | |
} | |
function f(b) { | |
return a.MEDIA[b] || ("(" !== b.charAt(0) ? "(" + b + ")" : b) | |
} | |
function g(a) { | |
var b = n[a]; | |
return b || (b = n[a] = d.matchMedia(a)), b.addListener(h), o[b.media] = !!b.matches | |
} | |
function h(a) { | |
c.$evalAsync(function() { | |
o[a.media] = !!a.matches | |
}) | |
} | |
function i(a) { | |
return n[a] | |
} | |
function j(b, c) { | |
for (var d = 0; d < a.MEDIA_PRIORITY.length; d++) { | |
var e = a.MEDIA_PRIORITY[d]; | |
if (n[m[e]].matches) { | |
var f = l(b, c + "-" + e); | |
if (b[f]) return b[f] | |
} | |
} | |
return b[l(b, c)] | |
} | |
function k(c, d, e) { | |
var f = []; | |
return c.forEach(function(c) { | |
var g = l(d, c); | |
b.isDefined(d[g]) && f.push(d.$observe(g, b.bind(void 0, e, null))); | |
for (var h in a.MEDIA) g = l(d, c + "-" + h), b.isDefined(d[g]) && f.push(d.$observe(g, b.bind(void 0, e, h))) | |
}), | |
function() { | |
f.forEach(function(a) { | |
a() | |
}) | |
} | |
} | |
function l(a, b) { | |
return p[b] || (p[b] = a.$normalize(b)) | |
} | |
var m = {}, | |
n = {}, | |
o = {}, | |
p = {}; | |
return e.getResponsiveAttribute = j, e.getQuery = i, e.watchResponsiveAttributes = k, e | |
} | |
b.module("material.core").factory("$mdMedia", a), a.$inject = ["$mdConstant", "$rootScope", "$window"] | |
}(), | |
function() { | |
function a(a, c) { | |
function d(a) { | |
return a = b.isArray(a) ? a : [a], a.forEach(function(b) { | |
g.forEach(function(c) { | |
a.push(c + "-" + b) | |
}) | |
}), a | |
} | |
function e(a) { | |
return a = b.isArray(a) ? a : [a], d(a).map(function(a) { | |
return "[" + a + "]" | |
}).join(",") | |
} | |
function f(a, b) { | |
a = a[0] || a; | |
for (var c = d(b), e = 0; e < c.length; e++) | |
if (a.hasAttribute(c[e])) return !0; | |
return !1 | |
} | |
var g = ["data", "x"]; | |
return a ? c ? e(a) : d(a) : { | |
buildList: d, | |
buildSelector: e, | |
hasAttribute: f | |
} | |
} | |
b.module("material.core").config(["$provide", function(b) { | |
b.decorator("$mdUtil", ["$delegate", function(b) { | |
return b.prefixer = a, b | |
}]) | |
}]) | |
}(), | |
function() { | |
function d(d, f, g, h, i, j, k, l, m) { | |
function n(a) { | |
return a[0] || a | |
} | |
var o = j.startSymbol(), | |
p = j.endSymbol(), | |
q = "{{" === o && "}}" === p, | |
r = function(a, c, d) { | |
var e = !1; | |
if (a && a.length) { | |
var f = m.getComputedStyle(a[0]); | |
e = b.isDefined(f[c]) && (!d || f[c] == d) | |
} | |
return e | |
}, | |
s = { | |
dom: {}, | |
now: a.performance ? b.bind(a.performance, a.performance.now) : Date.now || function() { | |
return (new Date).getTime() | |
}, | |
bidi: function(a, c, e, f) { | |
function g(a) { | |
return a ? h(a) ? a : a + "px" : "0" | |
} | |
function h(a) { | |
return String(a).indexOf("px") > -1 | |
} | |
var i = !("rtl" == d[0].dir || "rtl" == d[0].body.dir); | |
return 0 == arguments.length ? i ? "ltr" : "rtl" : void(i && b.isDefined(e) ? b.element(a).css(c, g(e)) : !i && b.isDefined(f) && b.element(a).css(c, g(f))) | |
}, | |
clientRect: function(a, b, c) { | |
var d = n(a); | |
b = n(b || d.offsetParent || document.body); | |
var e = d.getBoundingClientRect(), | |
f = c ? b.getBoundingClientRect() : { | |
left: 0, | |
top: 0, | |
width: 0, | |
height: 0 | |
}; | |
return { | |
left: e.left - f.left, | |
top: e.top - f.top, | |
width: e.width, | |
height: e.height | |
} | |
}, | |
offsetRect: function(a, b) { | |
return s.clientRect(a, b, !0) | |
}, | |
nodesToArray: function(a) { | |
a = a || []; | |
for (var b = [], c = 0; c < a.length; ++c) b.push(a.item(c)); | |
return b | |
}, | |
scrollTop: function(a) { | |
a = b.element(a || d[0].body); | |
var e = a[0] == d[0].body ? d[0].body : c, | |
f = e ? e.scrollTop + e.parentElement.scrollTop : 0; | |
return f || Math.abs(a[0].getBoundingClientRect().top) | |
}, | |
findFocusTarget: function(a, c) { | |
function d(a, c) { | |
var d, e = a[0].querySelectorAll(c); | |
return e && e.length && e.length && b.forEach(e, function(a) { | |
a = b.element(a); | |
var c = a.hasClass("_md-autofocus"); | |
c && (d = a) | |
}), d | |
} | |
var e, f = this.prefixer("md-autofocus", !0); | |
return e = d(a, c || f), e || c == f || (e = d(a, this.prefixer("md-auto-focus", !0)), e || (e = d(a, f))), e | |
}, | |
disableScrollAround: function(a, c) { | |
function e(a) { | |
function c(a) { | |
a.preventDefault() | |
} | |
a = b.element(a || h)[0]; | |
var d = b.element('<div class="md-scroll-mask"> <div class="md-scroll-mask-bar"></div></div>'); | |
return a.appendChild(d[0]), d.on("wheel", c), d.on("touchmove", c), | |
function() { | |
d.off("wheel"), d.off("touchmove"), d[0].parentNode.removeChild(d[0]), delete s.disableScrollAround._enableScrolling | |
} | |
} | |
function f() { | |
var a = h.parentNode, | |
b = a.style.cssText || "", | |
c = h.style.cssText || "", | |
d = s.scrollTop(h), | |
e = h.clientWidth; | |
return h.scrollHeight > h.clientHeight + 1 && (g(h, { | |
position: "fixed", | |
width: "100%", | |
top: -d + "px" | |
}), a.style.overflowY = "scroll"), h.clientWidth < e && g(h, { | |
overflow: "hidden" | |
}), | |
function() { | |
h.style.cssText = c, a.style.cssText = b, h.scrollTop = d, a.scrollTop = d | |
} | |
} | |
function g(a, b) { | |
for (var c in b) a.style[c] = b[c] | |
} | |
if (s.disableScrollAround._count = s.disableScrollAround._count || 0, ++s.disableScrollAround._count, s.disableScrollAround._enableScrolling) return s.disableScrollAround._enableScrolling; | |
var h = d[0].body, | |
i = f(), | |
j = e(c); | |
return s.disableScrollAround._enableScrolling = function() { | |
--s.disableScrollAround._count || (i(), j(), delete s.disableScrollAround._enableScrolling) | |
} | |
}, | |
enableScrolling: function() { | |
var a = this.disableScrollAround._enableScrolling; | |
a && a() | |
}, | |
floatingScrollbars: function() { | |
if (this.floatingScrollbars.cached === c) { | |
var a = b.element("<div><div></div></div>").css({ | |
width: "100%", | |
"z-index": -1, | |
position: "absolute", | |
height: "35px", | |
"overflow-y": "scroll" | |
}); | |
a.children().css("height", "60px"), d[0].body.appendChild(a[0]), this.floatingScrollbars.cached = a[0].offsetWidth == a[0].childNodes[0].offsetWidth, a.remove() | |
} | |
return this.floatingScrollbars.cached | |
}, | |
forceFocus: function(b) { | |
var c = b[0] || b; | |
document.addEventListener("click", function a(b) { | |
b.target === c && b.$focus && (c.focus(), b.stopImmediatePropagation(), b.preventDefault(), c.removeEventListener("click", a)) | |
}, !0); | |
var d = document.createEvent("MouseEvents"); | |
d.initMouseEvent("click", !1, !0, a, {}, 0, 0, 0, 0, !1, !1, !1, !1, 0, null), d.$material = !0, d.$focus = !0, c.dispatchEvent(d) | |
}, | |
createBackdrop: function(a, b) { | |
return g(s.supplant('<md-backdrop class="{0}">', [b]))(a) | |
}, | |
supplant: function(a, b, c) { | |
return c = c || /\{([^\{\}]*)\}/g, a.replace(c, function(a, c) { | |
var d = c.split("."), | |
e = b; | |
try { | |
for (var f in d) d.hasOwnProperty(f) && (e = e[d[f]]) | |
} catch (b) { | |
e = a | |
} | |
return "string" == typeof e || "number" == typeof e ? e : a | |
}) | |
}, | |
fakeNgModel: function() { | |
return { | |
$fake: !0, | |
$setTouched: b.noop, | |
$setViewValue: function(a) { | |
this.$viewValue = a, this.$render(a), this.$viewChangeListeners.forEach(function(a) { | |
a() | |
}) | |
}, | |
$isEmpty: function(a) { | |
return 0 === ("" + a).length | |
}, | |
$parsers: [], | |
$formatters: [], | |
$viewChangeListeners: [], | |
$render: b.noop | |
} | |
}, | |
debounce: function(a, b, d, e) { | |
var g; | |
return function() { | |
var h = d, | |
i = Array.prototype.slice.call(arguments); | |
f.cancel(g), g = f(function() { | |
g = c, a.apply(h, i) | |
}, b || 10, e) | |
} | |
}, | |
throttle: function(a, b) { | |
var c; | |
return function() { | |
var d = this, | |
e = arguments, | |
f = s.now(); | |
(!c || f - c > b) && (a.apply(d, e), c = f) | |
} | |
}, | |
time: function(a) { | |
var b = s.now(); | |
return a(), s.now() - b | |
}, | |
valueOnUse: function(a, b, c) { | |
var d = null, | |
e = Array.prototype.slice.call(arguments), | |
f = e.length > 3 ? e.slice(3) : []; | |
Object.defineProperty(a, b, { | |
get: function() { | |
return null === d && (d = c.apply(a, f)), d | |
} | |
}) | |
}, | |
nextUid: function() { | |
return "" + e++ | |
}, | |
disconnectScope: function(a) { | |
if (a && a.$root !== a && !a.$$destroyed) { | |
var b = a.$parent; | |
a.$$disconnected = !0, b.$$childHead === a && (b.$$childHead = a.$$nextSibling), b.$$childTail === a && (b.$$childTail = a.$$prevSibling), a.$$prevSibling && (a.$$prevSibling.$$nextSibling = a.$$nextSibling), a.$$nextSibling && (a.$$nextSibling.$$prevSibling = a.$$prevSibling), a.$$nextSibling = a.$$prevSibling = null | |
} | |
}, | |
reconnectScope: function(a) { | |
if (a && a.$root !== a && a.$$disconnected) { | |
var b = a, | |
c = b.$parent; | |
b.$$disconnected = !1, b.$$prevSibling = c.$$childTail, c.$$childHead ? (c.$$childTail.$$nextSibling = b, c.$$childTail = b) : c.$$childHead = c.$$childTail = b | |
} | |
}, | |
getClosest: function(a, c, d) { | |
if (a instanceof b.element && (a = a[0]), c = c.toUpperCase(), d && (a = a.parentNode), !a) return null; | |
do | |
if (a.nodeName === c) return a; while (a = a.parentNode); | |
return null | |
}, | |
elementContains: function(c, d) { | |
var e = a.Node && a.Node.prototype && Node.prototype.contains, | |
f = e ? b.bind(c, c.contains) : b.bind(c, function(a) { | |
return c === d || !!(16 & this.compareDocumentPosition(a)) | |
}); | |
return f(d) | |
}, | |
extractElementByName: function(a, c, d, e) { | |
function f(a) { | |
return g(a) || (d ? h(a) : null) | |
} | |
function g(a) { | |
if (a) | |
for (var b = 0, d = a.length; b < d; b++) | |
if (a[b].nodeName.toLowerCase() === c) return a[b]; | |
return null | |
} | |
function h(a) { | |
var b; | |
if (a) | |
for (var c = 0, d = a.length; c < d; c++) { | |
var e = a[c]; | |
if (!b) | |
for (var g = 0, h = e.childNodes.length; g < h; g++) b = b || f([e.childNodes[g]]) | |
} | |
return b | |
} | |
var i = f(a); | |
return !i && e && k.warn(s.supplant("Unable to find node '{0}' in element '{1}'.", [c, a[0].outerHTML])), b.element(i || a) | |
}, | |
initOptionalProperties: function(a, c, d) { | |
d = d || {}, b.forEach(a.$$isolateBindings, function(e, f) { | |
if (e.optional && b.isUndefined(a[f])) { | |
var g = b.isDefined(c[e.attrName]); | |
a[f] = b.isDefined(d[f]) ? d[f] : g | |
} | |
}) | |
}, | |
nextTick: function(a, b, c) { | |
function d() { | |
var a = e.queue, | |
b = e.digest; | |
e.queue = [], e.timeout = null, e.digest = !1, a.forEach(function(a) { | |
var b = a.scope && a.scope.$$destroyed; | |
b || a.callback() | |
}), b && h.$digest() | |
} | |
var e = s.nextTick, | |
g = e.timeout, | |
i = e.queue || []; | |
return i.push({ | |
scope: c, | |
callback: a | |
}), null == b && (b = !0), e.digest = e.digest || b, e.queue = i, g || (e.timeout = f(d, 0, !1)) | |
}, | |
processTemplate: function(a) { | |
return q ? a : a && b.isString(a) ? a.replace(/\{\{/g, o).replace(/}}/g, p) : a | |
}, | |
getParentWithPointerEvents: function(a) { | |
for (var b = a.parent(); r(b, "pointer-events", "none");) b = b.parent(); | |
return b | |
}, | |
getNearestContentElement: function(a) { | |
for (var b = a.parent()[0]; b && b !== l[0] && b !== document.body && "MD-CONTENT" !== b.nodeName.toUpperCase();) b = b.parentNode; | |
return b | |
}, | |
parseAttributeBoolean: function(a, b) { | |
return "" === a || !!a && (b === !1 || "false" !== a && "0" !== a) | |
}, | |
hasComputedStyle: r | |
}; | |
return s.dom.animator = i(s), s | |
} | |
var e = 0; | |
b.module("material.core").factory("$mdUtil", d), d.$inject = ["$document", "$timeout", "$compile", "$rootScope", "$$mdAnimate", "$interpolate", "$log", "$rootElement", "$window"], b.element.prototype.focus = b.element.prototype.focus || function() { | |
return this.length && this[0].focus(), this | |
}, b.element.prototype.blur = b.element.prototype.blur || function() { | |
return this.length && this[0].blur(), this | |
} | |
}(), | |
function() { | |
function a(a, c, d, e) { | |
function f(a, d, e) { | |
var f = b.element(a)[0] || a; | |
!f || f.hasAttribute(d) && 0 !== f.getAttribute(d).length || j(f, d) || (e = b.isString(e) ? e.trim() : "", e.length ? a.attr(d, e) : c.warn('ARIA: Attribute "', d, '", required for accessibility, is missing on node:', f)) | |
} | |
function g(b, c, d) { | |
a(function() { | |
f(b, c, d()) | |
}) | |
} | |
function h(a, b) { | |
var c = i(a) || "", | |
d = c.indexOf(e.startSymbol()) > -1; | |
d ? g(a, b, function() { | |
return i(a) | |
}) : f(a, b, c) | |
} | |
function i(a) { | |
function b(b) { | |
for (; b.parentNode && (b = b.parentNode) !== a;) | |
if (b.getAttribute && "true" === b.getAttribute("aria-hidden")) return !0 | |
} | |
a = a[0] || a; | |
for (var c, d = document.createTreeWalker(a, NodeFilter.SHOW_TEXT, null, !1), e = ""; c = d.nextNode();) b(c) || (e += c.textContent); | |
return e.trim() || "" | |
} | |
function j(a, b) { | |
function c(a) { | |
var b = a.currentStyle ? a.currentStyle : d.getComputedStyle(a); | |
return "none" === b.display | |
} | |
var e = a.hasChildNodes(), | |
f = !1; | |
if (e) | |
for (var g = a.childNodes, h = 0; h < g.length; h++) { | |
var i = g[h]; | |
1 === i.nodeType && i.hasAttribute(b) && (c(i) || (f = !0)) | |
} | |
return f | |
} | |
return { | |
expect: f, | |
expectAsync: g, | |
expectWithText: h | |
} | |
} | |
b.module("material.core").service("$mdAria", a), a.$inject = ["$$rAF", "$log", "$window", "$interpolate"] | |
}(), | |
function() { | |
function a(a, c, d, e, f) { | |
this.compile = function(g) { | |
var h = g.templateUrl, | |
i = g.template || "", | |
j = g.controller, | |
k = g.controllerAs, | |
l = b.extend({}, g.resolve || {}), | |
m = b.extend({}, g.locals || {}), | |
n = g.transformTemplate || b.identity, | |
o = g.bindToController; | |
return b.forEach(l, function(a, c) { | |
b.isString(a) ? l[c] = d.get(a) : l[c] = d.invoke(a) | |
}), b.extend(l, m), h ? l.$template = c(h).then(function(a) { | |
return a | |
}) : l.$template = a.when(i), a.all(l).then(function(a) { | |
var c, d = n(a.$template, g), | |
h = g.element || b.element("<div>").html(d.trim()).contents(), | |
i = e(h); | |
return c = { | |
locals: a, | |
element: h, | |
link: function(d) { | |
if (a.$scope = d, j) { | |
var e = f(j, a, !0); | |
o && b.extend(e.instance, a); | |
var g = e(); | |
h.data("$ngControllerController", g), h.children().data("$ngControllerController", g), k && (d[k] = g), c.controller = g | |
} | |
return i(d) | |
} | |
} | |
}) | |
} | |
} | |
b.module("material.core").service("$mdCompiler", a), a.$inject = ["$q", "$templateRequest", "$injector", "$compile", "$controller"] | |
}(), | |
function() { | |
function c() {} | |
function d(c, d, e) { | |
function f(a) { | |
return function(b, c) { | |
c.distance < this.state.options.maxDistance && this.dispatchEvent(b, a, c) | |
} | |
} | |
function g(a, b, c) { | |
var d = o[b.replace(/^\$md./, "")]; | |
if (!d) throw new Error("Failed to register element with handler " + b + ". Available handlers: " + Object.keys(o).join(", ")); | |
return d.registerElement(a, c) | |
} | |
function i(a, d) { | |
var e = new c(a); | |
return b.extend(e, d), o[a] = e, q | |
} | |
var j = navigator.userAgent || navigator.vendor || a.opera, | |
l = j.match(/ipad|iphone|ipod/i), | |
m = j.match(/android/i), | |
n = "undefined" != typeof a.jQuery && b.element === a.jQuery, | |
q = { | |
handler: i, | |
register: g, | |
isHijackingClicks: (l || m) && !n && !p | |
}; | |
if (q.isHijackingClicks) { | |
var r = 6; | |
q.handler("click", { | |
options: { | |
maxDistance: r | |
}, | |
onEnd: f("click") | |
}), q.handler("focus", { | |
options: { | |
maxDistance: r | |
}, | |
onEnd: function(a, b) { | |
function c(a) { | |
var b = ["INPUT", "SELECT", "BUTTON", "TEXTAREA", "VIDEO", "AUDIO"]; | |
return "-1" != a.getAttribute("tabindex") && !a.hasAttribute("DISABLED") && (a.hasAttribute("tabindex") || a.hasAttribute("href") || b.indexOf(a.nodeName) != -1) | |
} | |
b.distance < this.state.options.maxDistance && c(a.target) && (this.dispatchEvent(a, "focus", b), a.target.focus()) | |
} | |
}), q.handler("mouseup", { | |
options: { | |
maxDistance: r | |
}, | |
onEnd: f("mouseup") | |
}), q.handler("mousedown", { | |
onStart: function(a) { | |
this.dispatchEvent(a, "mousedown") | |
} | |
}) | |
} | |
return q.handler("press", { | |
onStart: function(a, b) { | |
this.dispatchEvent(a, "$md.pressdown") | |
}, | |
onEnd: function(a, b) { | |
this.dispatchEvent(a, "$md.pressup") | |
} | |
}).handler("hold", { | |
options: { | |
maxDistance: 6, | |
delay: 500 | |
}, | |
onCancel: function() { | |
e.cancel(this.state.timeout) | |
}, | |
onStart: function(a, c) { | |
return this.state.registeredParent ? (this.state.pos = { | |
x: c.x, | |
y: c.y | |
}, void(this.state.timeout = e(b.bind(this, function() { | |
this.dispatchEvent(a, "$md.hold"), this.cancel() | |
}), this.state.options.delay, !1))) : this.cancel() | |
}, | |
onMove: function(a, b) { | |
a.preventDefault(); | |
var c = this.state.pos.x - b.x, | |
d = this.state.pos.y - b.y; | |
Math.sqrt(c * c + d * d) > this.options.maxDistance && this.cancel() | |
}, | |
onEnd: function() { | |
this.onCancel() | |
} | |
}).handler("drag", { | |
options: { | |
minDistance: 6, | |
horizontal: !0, | |
cancelMultiplier: 1.5 | |
}, | |
onStart: function(a) { | |
this.state.registeredParent || this.cancel() | |
}, | |
onMove: function(a, b) { | |
var c, d; | |
a.preventDefault(), this.state.dragPointer ? this.dispatchDragMove(a) : (this.state.options.horizontal ? (c = Math.abs(b.distanceX) > this.state.options.minDistance, d = Math.abs(b.distanceY) > this.state.options.minDistance * this.state.options.cancelMultiplier) : (c = Math.abs(b.distanceY) > this.state.options.minDistance, d = Math.abs(b.distanceX) > this.state.options.minDistance * this.state.options.cancelMultiplier), c ? (this.state.dragPointer = h(a), k(a, this.state.dragPointer), this.dispatchEvent(a, "$md.dragstart", this.state.dragPointer)) : d && this.cancel()) | |
}, | |
dispatchDragMove: d.throttle(function(a) { | |
this.state.isRunning && (k(a, this.state.dragPointer), this.dispatchEvent(a, "$md.drag", this.state.dragPointer)) | |
}), | |
onEnd: function(a, b) { | |
this.state.dragPointer && (k(a, this.state.dragPointer), this.dispatchEvent(a, "$md.dragend", this.state.dragPointer)) | |
} | |
}).handler("swipe", { | |
options: { | |
minVelocity: .65, | |
minDistance: 10 | |
}, | |
onEnd: function(a, b) { | |
var c; | |
Math.abs(b.velocityX) > this.state.options.minVelocity && Math.abs(b.distanceX) > this.state.options.minDistance ? (c = "left" == b.directionX ? "$md.swipeleft" : "$md.swiperight", this.dispatchEvent(a, c)) : Math.abs(b.velocityY) > this.state.options.minVelocity && Math.abs(b.distanceY) > this.state.options.minDistance && (c = "up" == b.directionY ? "$md.swipeup" : "$md.swipedown", this.dispatchEvent(a, c)) | |
} | |
}) | |
} | |
function e(a) { | |
this.name = a, this.state = {} | |
} | |
function f() { | |
function c(a, c, d) { | |
d = d || m; | |
var e = new b.element.Event(c); | |
e.$material = !0, e.pointer = d, e.srcEvent = a, b.extend(e, { | |
clientX: d.x, | |
clientY: d.y, | |
screenX: d.x, | |
screenY: d.y, | |
pageX: d.x, | |
pageY: d.y, | |
ctrlKey: a.ctrlKey, | |
altKey: a.altKey, | |
shiftKey: a.shiftKey, | |
metaKey: a.metaKey | |
}), b.element(d.target).trigger(e) | |
} | |
function d(b, c, d) { | |
d = d || m; | |
var e; | |
"click" === c || "mouseup" == c || "mousedown" == c ? (e = document.createEvent("MouseEvents"), e.initMouseEvent(c, !0, !0, a, b.detail, d.x, d.y, d.x, d.y, b.ctrlKey, b.altKey, b.shiftKey, b.metaKey, b.button, b.relatedTarget || null)) : (e = document.createEvent("CustomEvent"), e.initCustomEvent(c, !0, !0, {})), e.$material = !0, e.pointer = d, e.srcEvent = b, d.target.dispatchEvent(e) | |
} | |
var f = "undefined" != typeof a.jQuery && b.element === a.jQuery; | |
return e.prototype = { | |
options: {}, | |
dispatchEvent: f ? c : d, | |
onStart: b.noop, | |
onMove: b.noop, | |
onEnd: b.noop, | |
onCancel: b.noop, | |
start: function(a, c) { | |
if (!this.state.isRunning) { | |
var d = this.getNearestParent(a.target), | |
e = d && d.$mdGesture[this.name] || {}; | |
this.state = { | |
isRunning: !0, | |
options: b.extend({}, this.options, e), | |
registeredParent: d | |
}, this.onStart(a, c) | |
} | |
}, | |
move: function(a, b) { | |
this.state.isRunning && this.onMove(a, b) | |
}, | |
end: function(a, b) { | |
this.state.isRunning && (this.onEnd(a, b), this.state.isRunning = !1) | |
}, | |
cancel: function(a, b) { | |
this.onCancel(a, b), this.state = {} | |
}, | |
getNearestParent: function(a) { | |
for (var b = a; b;) { | |
if ((b.$mdGesture || {})[this.name]) return b; | |
b = b.parentNode | |
} | |
return null | |
}, | |
registerElement: function(a, b) { | |
function c() { | |
delete a[0].$mdGesture[d.name], a.off("$destroy", c) | |
} | |
var d = this; | |
return a[0].$mdGesture = a[0].$mdGesture || {}, a[0].$mdGesture[this.name] = b || {}, a.on("$destroy", c), c | |
} | |
}, e | |
} | |
function g(a, c) { | |
function d(a) { | |
var b = !a.clientX && !a.clientY; | |
b || a.$material || a.isIonicTap || j(a) || (a.preventDefault(), a.stopPropagation()) | |
} | |
function e(a) { | |
var b = 0 === a.clientX && 0 === a.clientY; | |
b || a.$material || a.isIonicTap || j(a) ? (q = null, "label" == a.target.tagName.toLowerCase() && (q = { | |
x: a.x, | |
y: a.y | |
})) : (a.preventDefault(), a.stopPropagation(), q = null) | |
} | |
function f(a, b) { | |
var d; | |
for (var e in o) d = o[e], d instanceof c && ("start" === a && d.cancel(), d[a](b, m)) | |
} | |
function g(a) { | |
if (!m) { | |
var b = +Date.now(); | |
n && !i(a, n) && b - n.endTime < 1500 || (m = h(a), f("start", a)) | |
} | |
} | |
function l(a) { | |
m && i(a, m) && (k(a, m), f("move", a)) | |
} | |
function p(a) { | |
m && i(a, m) && (k(a, m), m.endTime = +Date.now(), f("end", a), n = m, m = null) | |
} | |
document.contains || (document.contains = function(a) { | |
return document.body.contains(a) | |
}), !r && a.isHijackingClicks && (document.addEventListener("click", e, !0), document.addEventListener("mouseup", d, !0), document.addEventListener("mousedown", d, !0), document.addEventListener("focus", d, !0), r = !0); | |
var s = "mousedown touchstart pointerdown", | |
t = "mousemove touchmove pointermove", | |
u = "mouseup mouseleave touchend touchcancel pointerup pointercancel"; | |
b.element(document).on(s, g).on(t, l).on(u, p).on("$$mdGestureReset", function() { | |
n = m = null | |
}) | |
} | |
function h(a) { | |
var b = l(a), | |
c = { | |
startTime: +Date.now(), | |
target: a.target, | |
type: a.type.charAt(0) | |
}; | |
return c.startX = c.x = b.pageX, c.startY = c.y = b.pageY, c | |
} | |
function i(a, b) { | |
return a && b && a.type.charAt(0) === b.type | |
} | |
function j(a) { | |
return q && q.x == a.x && q.y == a.y | |
} | |
function k(a, b) { | |
var c = l(a), | |
d = b.x = c.pageX, | |
e = b.y = c.pageY; | |
b.distanceX = d - b.startX, b.distanceY = e - b.startY, b.distance = Math.sqrt(b.distanceX * b.distanceX + b.distanceY * b.distanceY), b.directionX = b.distanceX > 0 ? "right" : b.distanceX < 0 ? "left" : "", b.directionY = b.distanceY > 0 ? "down" : b.distanceY < 0 ? "up" : "", b.duration = +Date.now() - b.startTime, b.velocityX = b.distanceX / b.duration, b.velocityY = b.distanceY / b.duration | |
} | |
function l(a) { | |
return a = a.originalEvent || a, a.touches && a.touches[0] || a.changedTouches && a.changedTouches[0] || a | |
} | |
var m, n, o = {}, | |
p = !1, | |
q = null, | |
r = !1; | |
b.module("material.core.gestures", []).provider("$mdGesture", c).factory("$$MdGestureHandler", f).run(g), c.prototype = { | |
skipClickHijack: function() { | |
return p = !0 | |
}, | |
$get: ["$$MdGestureHandler", "$$rAF", "$timeout", function(a, b, c) { | |
return new d(a, b, c) | |
}] | |
}, d.$inject = ["$$MdGestureHandler", "$$rAF", "$timeout"], g.$inject = ["$mdGesture", "$$MdGestureHandler"] | |
}(), | |
function() { | |
function a() { | |
function a(a) { | |
function c(a) { | |
return i.optionsFactory = a.options, i.methods = (a.methods || []).concat(g), j | |
} | |
function d(a, b) { | |
return h[a] = b, j | |
} | |
function e(b, c) { | |
if (c = c || {}, c.methods = c.methods || [], c.options = c.options || function() { | |
return {} | |
}, /^cancel|hide|show$/.test(b)) throw new Error("Preset '" + b + "' in " + a + " is reserved!"); | |
if (c.methods.indexOf("_options") > -1) throw new Error("Method '_options' in " + a + " is reserved!"); | |
return i.presets[b] = { | |
methods: c.methods.concat(g), | |
optionsFactory: c.options, | |
argOption: c.argOption | |
}, j | |
} | |
function f(c, d) { | |
function e(a) { | |
return a = a || {}, a._options && (a = a._options), l.show(b.extend({}, k, a)) | |
} | |
function f(a) { | |
return l.destroy(a) | |
} | |
function g(b, c) { | |
var e = {}; | |
return e[a] = m, d.invoke(b || function() { | |
return c | |
}, {}, e) | |
} | |
var j, k, l = c(), | |
m = { | |
hide: l.hide, | |
cancel: l.cancel, | |
show: e, | |
destroy: f | |
}; | |
return j = i.methods || [], k = g(i.optionsFactory, {}), b.forEach(h, function(a, b) { | |
m[b] = a | |
}), b.forEach(i.presets, function(a, c) { | |
function d(a) { | |
this._options = b.extend({}, e, a) | |
} | |
var e = g(a.optionsFactory, {}), | |
f = (a.methods || []).concat(j); | |
if (b.extend(e, { | |
$type: c | |
}), b.forEach(f, function(a) { | |
d.prototype[a] = function(b) { | |
return this._options[a] = b, this | |
} | |
}), a.argOption) { | |
var h = "show" + c.charAt(0).toUpperCase() + c.slice(1); | |
m[h] = function(a) { | |
var b = m[c](a); | |
return m.show(b) | |
} | |
} | |
m[c] = function(c) { | |
return arguments.length && a.argOption && !b.isObject(c) && !b.isArray(c) ? (new d)[a.argOption](c) : new d(c) | |
} | |
}), m | |
} | |
var g = ["onHide", "onShow", "onRemove"], | |
h = {}, | |
i = { | |
presets: {} | |
}, | |
j = { | |
setDefaults: c, | |
addPreset: e, | |
addMethod: d, | |
$get: f | |
}; | |
return j.addPreset("build", { | |
methods: ["controller", "controllerAs", "resolve", "template", "templateUrl", "themable", "transformTemplate", "parent"] | |
}), f.$inject = ["$$interimElement", "$injector"], j | |
} | |
function d(a, d, e, f, g, h, i, j, k, l, m) { | |
return function() { | |
function n(a) { | |
a = a || {}; | |
var b = new r(a || {}), | |
c = !a.skipHide && u.length ? s.cancel() : d.when(!0); | |
return c.finally(function() { | |
u.push(b), b.show().catch(function(a) { | |
return a | |
}) | |
}), b.deferred.promise | |
} | |
function o(a, b) { | |
function e(c) { | |
return c.remove(a, !1, b || {}).catch(function(a) { | |
return a | |
}), c.deferred.promise | |
} | |
if (!u.length) return d.when(a); | |
if (b = b || {}, b.closeAll) { | |
var f = d.all(u.reverse().map(e)); | |
return u = [], f | |
} | |
if (b.closeTo !== c) return d.all(u.splice(b.closeTo).map(e)); | |
var g = u.pop(); | |
return e(g) | |
} | |
function p(a, c) { | |
var e = u.pop(); | |
return e ? (e.remove(a, !0, c || {}).catch(function(a) { | |
return a | |
}), e.deferred.promise.catch(b.noop)) : d.when(a) | |
} | |
function q(a) { | |
var c = a ? null : u.shift(), | |
e = b.element(a).length ? b.element(a)[0].parentNode : null; | |
if (e) { | |
var f = u.filter(function(a) { | |
var b = a.options.element[0]; | |
return b === e | |
}); | |
f.length > 0 && (c = f[0], u.splice(u.indexOf(c), 1)) | |
} | |
return c ? c.remove(t, !1, { | |
$destroy: !0 | |
}) : d.when(t) | |
} | |
function r(m) { | |
function n() { | |
return d(function(a, b) { | |
function c(a) { | |
x.deferred.reject(a), b(a) | |
} | |
q(m).then(function(b) { | |
y = r(b, m), z = v(y, m, b.controller).then(a, c) | |
}, c) | |
}) | |
} | |
function o(a, c, e) { | |
function f(a) { | |
x.deferred.resolve(a) | |
} | |
function g(a) { | |
x.deferred.reject(a) | |
} | |
return y ? (m = b.extend(m || {}, e || {}), m.cancelAutoHide && m.cancelAutoHide(), m.element.triggerHandler("$mdInterimElementRemove"), m.$destroy === !0 ? w(m.element, m).then(function() { | |
c && g(a) || f(a) | |
}) : (d.when(z).finally(function() { | |
w(m.element, m).then(function() { | |
c && g(a) || f(a) | |
}, g) | |
}), x.deferred.promise)) : d.when(!1) | |
} | |
function p(a) { | |
return a = a || {}, a.template && (a.template = j.processTemplate(a.template)), b.extend({ | |
preserveScope: !1, | |
cancelAutoHide: b.noop, | |
scope: a.scope || f.$new(a.isolateScope), | |
onShow: function(a, b, c) { | |
return i.enter(b, c.parent) | |
}, | |
onRemove: function(a, b) { | |
return b && i.leave(b) || d.when() | |
} | |
}, a) | |
} | |
function q(a) { | |
var b = a.skipCompile ? null : k.compile(a); | |
return b || d(function(b) { | |
b({ | |
locals: {}, | |
link: function() { | |
return a.element | |
} | |
}) | |
}) | |
} | |
function r(a, c) { | |
b.extend(a.locals, c); | |
var d = a.link(c.scope); | |
return c.element = d, c.parent = t(d, c), c.themable && l(d), d | |
} | |
function t(c, d) { | |
var e = d.parent; | |
if (e = b.isFunction(e) ? e(d.scope, c, d) : b.isString(e) ? b.element(a[0].querySelector(e)) : b.element(e), !(e || {}).length) { | |
var f; | |
return h[0] && h[0].querySelector && (f = h[0].querySelector(":not(svg) > body")), f || (f = h[0]), "#comment" == f.nodeName && (f = a[0].body), b.element(f) | |
} | |
return e | |
} | |
function u() { | |
var a, d = b.noop; | |
m.hideDelay && (a = g(s.hide, m.hideDelay), d = function() { | |
g.cancel(a) | |
}), m.cancelAutoHide = function() { | |
d(), m.cancelAutoHide = c | |
} | |
} | |
function v(a, c, e) { | |
var f = c.onShowing || b.noop, | |
g = c.onComplete || b.noop; | |
return f(c.scope, a, c, e), d(function(b, f) { | |
try { | |
d.when(c.onShow(c.scope, a, c, e)).then(function() { | |
g(c.scope, a, c), u(), b(a) | |
}, f) | |
} catch (a) { | |
f(a.message) | |
} | |
}) | |
} | |
function w(a, c) { | |
var d = c.onRemoving || b.noop; | |
return e(function(b, f) { | |
try { | |
var g = e.when(c.onRemove(c.scope, a, c) || !0); | |
d(a, g), 1 == c.$destroy ? b(a) : g.then(function() { | |
!c.preserveScope && c.scope && c.scope.$destroy(), b(a) | |
}, f) | |
} catch (a) { | |
f(a) | |
} | |
}) | |
} | |
var x, y, z = d.when(!0); | |
return m = p(m), x = { | |
options: m, | |
deferred: d.defer(), | |
show: n, | |
remove: o | |
} | |
} | |
var s, t = !1, | |
u = []; | |
return s = { | |
show: n, | |
hide: o, | |
cancel: p, | |
destroy: q, | |
$injector_: m | |
} | |
} | |
} | |
return a.$get = d, d.$inject = ["$document", "$q", "$$q", "$rootScope", "$timeout", "$rootElement", "$animate", "$mdUtil", "$mdCompiler", "$mdTheming", "$injector"], a | |
} | |
b.module("material.core").provider("$$interimElement", a) | |
}(), | |
function() { | |
! function() { | |
function a(a) { | |
function g(a) { | |
return a.replace(i, "").replace(j, function(a, b, c, d) { | |
return d ? c.toUpperCase() : c | |
}) | |
} | |
var i = /^((?:x|data)[\:\-_])/i, | |
j = /([\:\-\_]+(.))/g, | |
k = ["", "xs", "gt-xs", "sm", "gt-sm", "md", "gt-md", "lg", "gt-lg", "xl", "print"], | |
l = ["layout", "flex", "flex-order", "flex-offset", "layout-align"], | |
m = ["show", "hide", "layout-padding", "layout-margin"]; | |
b.forEach(k, function(c) { | |
b.forEach(l, function(b) { | |
var d = c ? b + "-" + c : b; | |
a.directive(g(d), e(d)) | |
}), b.forEach(m, function(b) { | |
var d = c ? b + "-" + c : b; | |
a.directive(g(d), f(d)) | |
}) | |
}), a.directive("mdLayoutCss", c).directive("ngCloak", d("ng-cloak")).directive("layoutWrap", f("layout-wrap")).directive("layoutNowrap", f("layout-nowrap")).directive("layoutNoWrap", f("layout-no-wrap")).directive("layoutFill", f("layout-fill")).directive("layoutLtMd", h("layout-lt-md", !0)).directive("layoutLtLg", h("layout-lt-lg", !0)).directive("flexLtMd", h("flex-lt-md", !0)).directive("flexLtLg", h("flex-lt-lg", !0)).directive("layoutAlignLtMd", h("layout-align-lt-md")).directive("layoutAlignLtLg", h("layout-align-lt-lg")).directive("flexOrderLtMd", h("flex-order-lt-md")).directive("flexOrderLtLg", h("flex-order-lt-lg")).directive("offsetLtMd", h("flex-offset-lt-md")).directive("offsetLtLg", h("flex-offset-lt-lg")).directive("hideLtMd", h("hide-lt-md")).directive("hideLtLg", h("hide-lt-lg")).directive("showLtMd", h("show-lt-md")).directive("showLtLg", h("show-lt-lg")) | |
} | |
function c() { | |
return { | |
restrict: "A", | |
priority: "900", | |
compile: function(a, c) { | |
return y.enabled = !1, b.noop | |
} | |
} | |
} | |
function d(a) { | |
return ["$timeout", function(c) { | |
return { | |
restrict: "A", | |
priority: -10, | |
compile: function(d) { | |
return y.enabled ? (d.addClass(a), function(b, d) { | |
c(function() { | |
d.removeClass(a) | |
}, 10, !1) | |
}) : b.noop | |
} | |
} | |
}] | |
} | |
function e(a) { | |
function c(b, c, d) { | |
var e = g(c, a, d), | |
f = d.$observe(d.$normalize(a), e); | |
e(m(a, d, "")), b.$on("$destroy", function() { | |
f() | |
}) | |
} | |
return ["$mdUtil", "$interpolate", "$log", function(d, e, f) { | |
return p = d, q = e, r = f, { | |
restrict: "A", | |
compile: function(d, e) { | |
var f; | |
return y.enabled && (i(a, e, d, r), j(a, m(a, e, ""), k(d, a, e)), f = c), f || b.noop | |
} | |
} | |
}] | |
} | |
function f(a) { | |
function c(b, c) { | |
c.addClass(a) | |
} | |
return ["$mdUtil", "$interpolate", "$log", function(d, e, f) { | |
return p = d, q = e, r = f, { | |
restrict: "A", | |
compile: function(d, e) { | |
var f; | |
return y.enabled && (j(a, m(a, e, ""), k(d, a, e)), c(null, d), f = c), f || b.noop | |
} | |
} | |
}] | |
} | |
function g(a, c) { | |
var d; | |
return function(e) { | |
var f = j(c, e || ""); | |
b.isDefined(f) && (d && a.removeClass(d), d = f ? c + "-" + f.replace(t, "-") : c, a.addClass(d)) | |
} | |
} | |
function h(a) { | |
var c = a.split("-"); | |
return ["$log", function(d) { | |
return d.warn(a + "has been deprecated. Please use a `" + c[0] + "-gt-<xxx>` variant."), b.noop | |
}] | |
} | |
function i(a, b, c, d) { | |
var e, f, g, h = c[0].nodeName.toLowerCase(); | |
switch (a.replace(s, "")) { | |
case "flex": | |
"md-button" != h && "fieldset" != h || (f = "<" + h + " " + a + "></" + h + ">", g = "https://github.com/philipwalton/flexbugs#9-some-html-elements-cant-be-flex-containers", e = "Markup '{0}' may not work as expected in IE Browsers. Consult '{1}' for details.", d.warn(p.supplant(e, [f, g]))) | |
} | |
} | |
function j(a, c, d) { | |
var e = c; | |
if (!l(c)) { | |
switch (a.replace(s, "")) { | |
case "layout": | |
n(c, v) || (c = v[0]); | |
break; | |
case "flex": | |
n(c, u) || isNaN(c) && (c = ""); | |
break; | |
case "flex-offset": | |
case "flex-order": | |
c && !isNaN(+c) || (c = "0"); | |
break; | |
case "layout-align": | |
var f = o(c); | |
c = p.supplant("{main}-{cross}", f); | |
break; | |
case "layout-padding": | |
case "layout-margin": | |
case "layout-fill": | |
case "layout-wrap": | |
case "layout-nowrap": | |
case "layout-nowrap": | |
c = "" | |
} | |
c != e && (d || b.noop)(c) | |
} | |
return c | |
} | |
function k(a, b, c) { | |
return function(a) { | |
l(a) || (c[c.$normalize(b)] = a) | |
} | |
} | |
function l(a) { | |
return (a || "").indexOf(q.startSymbol()) > -1 | |
} | |
function m(a, b, c) { | |
var d = b.$normalize(a); | |
return b[d] ? b[d].replace(t, "-") : c || null | |
} | |
function n(a, b, c) { | |
a = c && a ? a.replace(t, c) : a; | |
var d = !1; | |
return a && b.forEach(function(b) { | |
b = c ? b.replace(t, c) : b, d = d || b === a | |
}), d | |
} | |
function o(a) { | |
var b, c = { | |
main: "start", | |
cross: "stretch" | |
}; | |
return a = a || "", 0 != a.indexOf("-") && 0 != a.indexOf(" ") || (a = "none" + a), b = a.toLowerCase().trim().replace(t, "-").split("-"), b.length && "space" === b[0] && (b = [b[0] + "-" + b[1], b[2]]), b.length > 0 && (c.main = b[0] || c.main), b.length > 1 && (c.cross = b[1] || c.cross), w.indexOf(c.main) < 0 && (c.main = "start"), x.indexOf(c.cross) < 0 && (c.cross = "stretch"), c | |
} | |
var p, q, r, s = /(-gt)?-(sm|md|lg|print)/g, | |
t = /\s+/g, | |
u = ["grow", "initial", "auto", "none", "noshrink", "nogrow"], | |
v = ["row", "column"], | |
w = ["", "start", "center", "end", "stretch", "space-around", "space-between"], | |
x = ["", "start", "center", "end", "stretch"], | |
y = { | |
enabled: !0, | |
breakpoints: [] | |
}; | |
a(b.module("material.core.layout", ["ng"])) | |
}() | |
}(), | |
function() { | |
function a(a, d) { | |
function e(a) { | |
return a && "" !== a | |
} | |
var f, g = [], | |
h = {}; | |
return f = { | |
notFoundError: function(b, c) { | |
a.error((c || "") + "No instance found for handle", b) | |
}, | |
getInstances: function() { | |
return g | |
}, | |
get: function(a) { | |
if (!e(a)) return null; | |
var b, c, d; | |
for (b = 0, c = g.length; b < c; b++) | |
if (d = g[b], d.$$mdHandle === a) return d; | |
return null | |
}, | |
register: function(a, c) { | |
function d() { | |
var b = g.indexOf(a); | |
b !== -1 && g.splice(b, 1) | |
} | |
function e() { | |
var b = h[c]; | |
b && (b.forEach(function(b) { | |
b.resolve(a) | |
}), delete h[c]) | |
} | |
return c ? (a.$$mdHandle = c, g.push(a), e(), d) : b.noop | |
}, | |
when: function(a) { | |
if (e(a)) { | |
var b = d.defer(), | |
g = f.get(a); | |
return g ? b.resolve(g) : (h[a] === c && (h[a] = []), h[a].push(b)), b.promise | |
} | |
return d.reject("Invalid `md-component-id` value.") | |
} | |
} | |
} | |
b.module("material.core").factory("$mdComponentRegistry", a), a.$inject = ["$log", "$q"] | |
}(), | |
function() { | |
! function() { | |
function a(a) { | |
function c(a) { | |
return a.hasClass("md-icon-button") ? { | |
isMenuItem: a.hasClass("md-menu-item"), | |
fitRipple: !0, | |
center: !0 | |
} : { | |
isMenuItem: a.hasClass("md-menu-item"), | |
dimBackground: !0 | |
} | |
} | |
return { | |
attach: function(d, e, f) { | |
return f = b.extend(c(e), f), a.attach(d, e, f) | |
} | |
} | |
} | |
b.module("material.core").factory("$mdButtonInkRipple", a), a.$inject = ["$mdInkRipple"] | |
}() | |
}(), | |
function() { | |
! function() { | |
function a(a) { | |
function c(c, d, e) { | |
return a.attach(c, d, b.extend({ | |
center: !0, | |
dimBackground: !1, | |
fitRipple: !0 | |
}, e)) | |
} | |
return { | |
attach: c | |
} | |
} | |
b.module("material.core").factory("$mdCheckboxInkRipple", a), a.$inject = ["$mdInkRipple"] | |
}() | |
}(), | |
function() { | |
! function() { | |
function a(a) { | |
function c(c, d, e) { | |
return a.attach(c, d, b.extend({ | |
center: !1, | |
dimBackground: !0, | |
outline: !1, | |
rippleSize: "full" | |
}, e)) | |
} | |
return { | |
attach: c | |
} | |
} | |
b.module("material.core").factory("$mdListInkRipple", a), a.$inject = ["$mdInkRipple"] | |
}() | |
}(), | |
function() { | |
function a(a, c) { | |
return { | |
controller: b.noop, | |
link: function(b, d, e) { | |
e.hasOwnProperty("mdInkRippleCheckbox") ? c.attach(b, d) : a.attach(b, d) | |
} | |
} | |
} | |
function c() { | |
function a() { | |
c = !0 | |
} | |
var c = !1; | |
return { | |
disableInkRipple: a, | |
$get: ["$injector", function(a) { | |
function e(e, f, g) { | |
return c || f.controller("mdNoInk") ? b.noop : a.instantiate(d, { | |
$scope: e, | |
$element: f, | |
rippleOptions: g | |
}) | |
} | |
return { | |
attach: e | |
} | |
}] | |
} | |
} | |
function d(a, c, d, e, f, g, h) { | |
this.$window = e, this.$timeout = f, this.$mdUtil = g, this.$mdColorUtil = h, this.$scope = a, this.$element = c, this.options = d, this.mousedown = !1, this.ripples = [], this.timeout = null, this.lastRipple = null, g.valueOnUse(this, "container", this.createContainer), this.$element.addClass("md-ink-ripple"), (c.controller("mdInkRipple") || {}).createRipple = b.bind(this, this.createRipple), (c.controller("mdInkRipple") || {}).setColor = b.bind(this, this.color), this.bindEvents() | |
} | |
function e(a, c) { | |
(a.mousedown || a.lastRipple) && (a.mousedown = !1, a.$mdUtil.nextTick(b.bind(a, c), !1)) | |
} | |
function f() { | |
return { | |
controller: b.noop | |
} | |
} | |
b.module("material.core").provider("$mdInkRipple", c).directive("mdInkRipple", a).directive("mdNoInk", f).directive("mdNoBar", f).directive("mdNoStretch", f); | |
var g = 450; | |
a.$inject = ["$mdButtonInkRipple", "$mdCheckboxInkRipple"], d.$inject = ["$scope", "$element", "rippleOptions", "$window", "$timeout", "$mdUtil", "$mdColorUtil"], d.prototype.color = function(a) { | |
function c() { | |
var a = d.options && d.options.colorElement ? d.options.colorElement : [], | |
b = a.length ? a[0] : d.$element[0]; | |
return b ? d.$window.getComputedStyle(b).color : "rgb(0,0,0)" | |
} | |
var d = this; | |
return b.isDefined(a) && (d._color = d._parseColor(a)), d._color || d._parseColor(d.inkRipple()) || d._parseColor(c()) | |
}, d.prototype.calculateColor = function() { | |
return this.color() | |
}, d.prototype._parseColor = function(a, b) { | |
b = b || 1; | |
var c = this.$mdColorUtil; | |
if (a) return 0 === a.indexOf("rgba") ? a.replace(/\d?\.?\d*\s*\)\s*$/, (.1 * b).toString() + ")") : 0 === a.indexOf("rgb") ? c.rgbToRgba(a) : 0 === a.indexOf("#") ? c.hexToRgba(a) : void 0 | |
}, d.prototype.bindEvents = function() { | |
this.$element.on("mousedown", b.bind(this, this.handleMousedown)), this.$element.on("mouseup touchend", b.bind(this, this.handleMouseup)), this.$element.on("mouseleave", b.bind(this, this.handleMouseup)), this.$element.on("touchmove", b.bind(this, this.handleTouchmove)) | |
}, d.prototype.handleMousedown = function(a) { | |
if (!this.mousedown) | |
if (a.hasOwnProperty("originalEvent") && (a = a.originalEvent), this.mousedown = !0, this.options.center) this.createRipple(this.container.prop("clientWidth") / 2, this.container.prop("clientWidth") / 2); | |
else if (a.srcElement !== this.$element[0]) { | |
var b = this.$element[0].getBoundingClientRect(), | |
c = a.clientX - b.left, | |
d = a.clientY - b.top; | |
this.createRipple(c, d) | |
} else this.createRipple(a.offsetX, a.offsetY) | |
}, d.prototype.handleMouseup = function() { | |
e(this, this.clearRipples) | |
}, d.prototype.handleTouchmove = function() { | |
e(this, this.deleteRipples) | |
}, d.prototype.deleteRipples = function() { | |
for (var a = 0; a < this.ripples.length; a++) this.ripples[a].remove() | |
}, d.prototype.clearRipples = function() { | |
for (var a = 0; a < this.ripples.length; a++) this.fadeInComplete(this.ripples[a]) | |
}, d.prototype.createContainer = function() { | |
var a = b.element('<div class="md-ripple-container"></div>'); | |
return this.$element.append(a), a | |
}, d.prototype.clearTimeout = function() { | |
this.timeout && (this.$timeout.cancel(this.timeout), this.timeout = null) | |
}, d.prototype.isRippleAllowed = function() { | |
var a = this.$element[0]; | |
do { | |
if (!a.tagName || "BODY" === a.tagName) break; | |
if (a && b.isFunction(a.hasAttribute)) { | |
if (a.hasAttribute("disabled")) return !1; | |
if ("false" === this.inkRipple() || "0" === this.inkRipple()) return !1 | |
} | |
} while (a = a.parentNode); | |
return !0 | |
}, d.prototype.inkRipple = function() { | |
return this.$element.attr("md-ink-ripple") | |
}, d.prototype.createRipple = function(a, c) { | |
function d(a, b, c) { | |
return a ? Math.max(b, c) : Math.sqrt(Math.pow(b, 2) + Math.pow(c, 2)) | |
} | |
if (this.isRippleAllowed()) { | |
var e = this, | |
f = e.$mdColorUtil, | |
h = b.element('<div class="md-ripple"></div>'), | |
i = this.$element.prop("clientWidth"), | |
j = this.$element.prop("clientHeight"), | |
k = 2 * Math.max(Math.abs(i - a), a), | |
l = 2 * Math.max(Math.abs(j - c), c), | |
m = d(this.options.fitRipple, k, l), | |
n = this.calculateColor(); | |
h.css({ | |
left: a + "px", | |
top: c + "px", | |
background: "black", | |
width: m + "px", | |
height: m + "px", | |
backgroundColor: f.rgbaToRgb(n), | |
borderColor: f.rgbaToRgb(n) | |
}), this.lastRipple = h, this.clearTimeout(), this.timeout = this.$timeout(function() { | |
e.clearTimeout(), e.mousedown || e.fadeInComplete(h) | |
}, .35 * g, !1), this.options.dimBackground && this.container.css({ | |
backgroundColor: n | |
}), this.container.append(h), this.ripples.push(h), h.addClass("md-ripple-placed"), this.$mdUtil.nextTick(function() { | |
h.addClass("md-ripple-scaled md-ripple-active"), e.$timeout(function() { | |
e.clearRipples() | |
}, g, !1) | |
}, !1) | |
} | |
}, d.prototype.fadeInComplete = function(a) { | |
this.lastRipple === a ? this.timeout || this.mousedown || this.removeRipple(a) : this.removeRipple(a) | |
}, d.prototype.removeRipple = function(a) { | |
var b = this, | |
c = this.ripples.indexOf(a); | |
c < 0 || (this.ripples.splice(this.ripples.indexOf(a), 1), a.removeClass("md-ripple-active"), 0 === this.ripples.length && this.container.css({ | |
backgroundColor: "" | |
}), this.$timeout(function() { | |
b.fadeOutComplete(a) | |
}, g, !1)) | |
}, d.prototype.fadeOutComplete = function(a) { | |
a.remove(), this.lastRipple = null | |
} | |
}(), | |
function() { | |
! function() { | |
function a(a) { | |
function c(c, d, e) { | |
return a.attach(c, d, b.extend({ | |
center: !1, | |
dimBackground: !0, | |
outline: !1, | |
rippleSize: "full" | |
}, e)) | |
} | |
return { | |
attach: c | |
} | |
} | |
b.module("material.core").factory("$mdTabInkRipple", a), a.$inject = ["$mdInkRipple"] | |
}() | |
}(), | |
function() { | |
b.module("material.core.theming.palette", []).constant("$mdColorPalette", { | |
red: { | |
50: "#ffebee", | |
100: "#ffcdd2", | |
200: "#ef9a9a", | |
300: "#e57373", | |
400: "#ef5350", | |
500: "#f44336", | |
600: "#e53935", | |
700: "#d32f2f", | |
800: "#c62828", | |
900: "#b71c1c", | |
A100: "#ff8a80", | |
A200: "#ff5252", | |
A400: "#ff1744", | |
A700: "#d50000", | |
contrastDefaultColor: "light", | |
contrastDarkColors: "50 100 200 300 A100", | |
contrastStrongLightColors: "400 500 600 700 A200 A400 A700" | |
}, | |
pink: { | |
50: "#fce4ec", | |
100: "#f8bbd0", | |
200: "#f48fb1", | |
300: "#f06292", | |
400: "#ec407a", | |
500: "#e91e63", | |
600: "#d81b60", | |
700: "#c2185b", | |
800: "#ad1457", | |
900: "#880e4f", | |
A100: "#ff80ab", | |
A200: "#ff4081", | |
A400: "#f50057", | |
A700: "#c51162", | |
contrastDefaultColor: "light", | |
contrastDarkColors: "50 100 200 A100", | |
contrastStrongLightColors: "500 600 A200 A400 A700" | |
}, | |
purple: { | |
50: "#f3e5f5", | |
100: "#e1bee7", | |
200: "#ce93d8", | |
300: "#ba68c8", | |
400: "#ab47bc", | |
500: "#9c27b0", | |
600: "#8e24aa", | |
700: "#7b1fa2", | |
800: "#6a1b9a", | |
900: "#4a148c", | |
A100: "#ea80fc", | |
A200: "#e040fb", | |
A400: "#d500f9", | |
A700: "#aa00ff", | |
contrastDefaultColor: "light", | |
contrastDarkColors: "50 100 200 A100", | |
contrastStrongLightColors: "300 400 A200 A400 A700" | |
}, | |
"deep-purple": { | |
50: "#ede7f6", | |
100: "#d1c4e9", | |
200: "#b39ddb", | |
300: "#9575cd", | |
400: "#7e57c2", | |
500: "#673ab7", | |
600: "#5e35b1", | |
700: "#512da8", | |
800: "#4527a0", | |
900: "#311b92", | |
A100: "#b388ff", | |
A200: "#7c4dff", | |
A400: "#651fff", | |
A700: "#6200ea", | |
contrastDefaultColor: "light", | |
contrastDarkColors: "50 100 200 A100", | |
contrastStrongLightColors: "300 400 A200" | |
}, | |
indigo: { | |
50: "#e8eaf6", | |
100: "#c5cae9", | |
200: "#9fa8da", | |
300: "#7986cb", | |
400: "#5c6bc0", | |
500: "#3f51b5", | |
600: "#3949ab", | |
700: "#303f9f", | |
800: "#283593", | |
900: "#1a237e", | |
A100: "#8c9eff", | |
A200: "#536dfe", | |
A400: "#3d5afe", | |
A700: "#304ffe", | |
contrastDefaultColor: "light", | |
contrastDarkColors: "50 100 200 A100", | |
contrastStrongLightColors: "300 400 A200 A400" | |
}, | |
blue: { | |
50: "#e3f2fd", | |
100: "#bbdefb", | |
200: "#90caf9", | |
300: "#64b5f6", | |
400: "#42a5f5", | |
500: "#2196f3", | |
600: "#1e88e5", | |
700: "#1976d2", | |
800: "#1565c0", | |
900: "#0d47a1", | |
A100: "#82b1ff", | |
A200: "#448aff", | |
A400: "#2979ff", | |
A700: "#2962ff", | |
contrastDefaultColor: "light", | |
contrastDarkColors: "50 100 200 300 400 A100", | |
contrastStrongLightColors: "500 600 700 A200 A400 A700" | |
}, | |
"light-blue": { | |
50: "#e1f5fe", | |
100: "#b3e5fc", | |
200: "#81d4fa", | |
300: "#4fc3f7", | |
400: "#29b6f6", | |
500: "#03a9f4", | |
600: "#039be5", | |
700: "#0288d1", | |
800: "#0277bd", | |
900: "#01579b", | |
A100: "#80d8ff", | |
A200: "#40c4ff", | |
A400: "#00b0ff", | |
A700: "#0091ea", | |
contrastDefaultColor: "dark", | |
contrastLightColors: "600 700 800 900 A700", | |
contrastStrongLightColors: "600 700 800 A700" | |
}, | |
cyan: { | |
50: "#e0f7fa", | |
100: "#b2ebf2", | |
200: "#80deea", | |
300: "#4dd0e1", | |
400: "#26c6da", | |
500: "#00bcd4", | |
600: "#00acc1", | |
700: "#0097a7", | |
800: "#00838f", | |
900: "#006064", | |
A100: "#84ffff", | |
A200: "#18ffff", | |
A400: "#00e5ff", | |
A700: "#00b8d4", | |
contrastDefaultColor: "dark", | |
contrastLightColors: "700 800 900", | |
contrastStrongLightColors: "700 800 900" | |
}, | |
teal: { | |
50: "#e0f2f1", | |
100: "#b2dfdb", | |
200: "#80cbc4", | |
300: "#4db6ac", | |
400: "#26a69a", | |
500: "#009688", | |
600: "#00897b", | |
700: "#00796b", | |
800: "#00695c", | |
900: "#004d40", | |
A100: "#a7ffeb", | |
A200: "#64ffda", | |
A400: "#1de9b6", | |
A700: "#00bfa5", | |
contrastDefaultColor: "dark", | |
contrastLightColors: "500 600 700 800 900", | |
contrastStrongLightColors: "500 600 700" | |
}, | |
green: { | |
50: "#e8f5e9", | |
100: "#c8e6c9", | |
200: "#a5d6a7", | |
300: "#81c784", | |
400: "#66bb6a", | |
500: "#4caf50", | |
600: "#43a047", | |
700: "#388e3c", | |
800: "#2e7d32", | |
900: "#1b5e20", | |
A100: "#b9f6ca", | |
A200: "#69f0ae", | |
A400: "#00e676", | |
A700: "#00c853", | |
contrastDefaultColor: "dark", | |
contrastLightColors: "500 600 700 800 900", | |
contrastStrongLightColors: "500 600 700" | |
}, | |
"light-green": { | |
50: "#f1f8e9", | |
100: "#dcedc8", | |
200: "#c5e1a5", | |
300: "#aed581", | |
400: "#9ccc65", | |
500: "#8bc34a", | |
600: "#7cb342", | |
700: "#689f38", | |
800: "#558b2f", | |
900: "#33691e", | |
A100: "#ccff90", | |
A200: "#b2ff59", | |
A400: "#76ff03", | |
A700: "#64dd17", | |
contrastDefaultColor: "dark", | |
contrastLightColors: "700 800 900", | |
contrastStrongLightColors: "700 800 900" | |
}, | |
lime: { | |
50: "#f9fbe7", | |
100: "#f0f4c3", | |
200: "#e6ee9c", | |
300: "#dce775", | |
400: "#d4e157", | |
500: "#cddc39", | |
600: "#c0ca33", | |
700: "#afb42b", | |
800: "#9e9d24", | |
900: "#827717", | |
A100: "#f4ff81", | |
A200: "#eeff41", | |
A400: "#c6ff00", | |
A700: "#aeea00", | |
contrastDefaultColor: "dark", | |
contrastLightColors: "900", | |
contrastStrongLightColors: "900" | |
}, | |
yellow: { | |
50: "#fffde7", | |
100: "#fff9c4", | |
200: "#fff59d", | |
300: "#fff176", | |
400: "#ffee58", | |
500: "#ffeb3b", | |
600: "#fdd835", | |
700: "#fbc02d", | |
800: "#f9a825", | |
900: "#f57f17", | |
A100: "#ffff8d", | |
A200: "#ffff00", | |
A400: "#ffea00", | |
A700: "#ffd600", | |
contrastDefaultColor: "dark" | |
}, | |
amber: { | |
50: "#fff8e1", | |
100: "#ffecb3", | |
200: "#ffe082", | |
300: "#ffd54f", | |
400: "#ffca28", | |
500: "#ffc107", | |
600: "#ffb300", | |
700: "#ffa000", | |
800: "#ff8f00", | |
900: "#ff6f00", | |
A100: "#ffe57f", | |
A200: "#ffd740", | |
A400: "#ffc400", | |
A700: "#ffab00", | |
contrastDefaultColor: "dark" | |
}, | |
orange: { | |
50: "#fff3e0", | |
100: "#ffe0b2", | |
200: "#ffcc80", | |
300: "#ffb74d", | |
400: "#ffa726", | |
500: "#ff9800", | |
600: "#fb8c00", | |
700: "#f57c00", | |
800: "#ef6c00", | |
900: "#e65100", | |
A100: "#ffd180", | |
A200: "#ffab40", | |
A400: "#ff9100", | |
A700: "#ff6d00", | |
contrastDefaultColor: "dark", | |
contrastLightColors: "800 900", | |
contrastStrongLightColors: "800 900" | |
}, | |
"deep-orange": { | |
50: "#fbe9e7", | |
100: "#ffccbc", | |
200: "#ffab91", | |
300: "#ff8a65", | |
400: "#ff7043", | |
500: "#ff5722", | |
600: "#f4511e", | |
700: "#e64a19", | |
800: "#d84315", | |
900: "#bf360c", | |
A100: "#ff9e80", | |
A200: "#ff6e40", | |
A400: "#ff3d00", | |
A700: "#dd2c00", | |
contrastDefaultColor: "light", | |
contrastDarkColors: "50 100 200 300 400 A100 A200", | |
contrastStrongLightColors: "500 600 700 800 900 A400 A700" | |
}, | |
brown: { | |
50: "#efebe9", | |
100: "#d7ccc8", | |
200: "#bcaaa4", | |
300: "#a1887f", | |
400: "#8d6e63", | |
500: "#795548", | |
600: "#6d4c41", | |
700: "#5d4037", | |
800: "#4e342e", | |
900: "#3e2723", | |
A100: "#d7ccc8", | |
A200: "#bcaaa4", | |
A400: "#8d6e63", | |
A700: "#5d4037", | |
contrastDefaultColor: "light", | |
contrastDarkColors: "50 100 200 A100 A200", | |
contrastStrongLightColors: "300 400" | |
}, | |
grey: { | |
50: "#fafafa", | |
100: "#f5f5f5", | |
200: "#eeeeee", | |
300: "#e0e0e0", | |
400: "#bdbdbd", | |
500: "#9e9e9e", | |
600: "#757575", | |
700: "#616161", | |
800: "#424242", | |
900: "#212121", | |
A100: "#ffffff", | |
A200: "#000000", | |
A400: "#303030", | |
A700: "#616161", | |
contrastDefaultColor: "dark", | |
contrastLightColors: "600 700 800 900 A200 A400 A700" | |
}, | |
"blue-grey": { | |
50: "#eceff1", | |
100: "#cfd8dc", | |
200: "#b0bec5", | |
300: "#90a4ae", | |
400: "#78909c", | |
500: "#607d8b", | |
600: "#546e7a", | |
700: "#455a64", | |
800: "#37474f", | |
900: "#263238", | |
A100: "#cfd8dc", | |
A200: "#b0bec5", | |
A400: "#78909c", | |
A700: "#455a64", | |
contrastDefaultColor: "light", | |
contrastDarkColors: "50 100 200 300 A100 A200", | |
contrastStrongLightColors: "400 500 700" | |
} | |
}) | |
}(), | |
function() { | |
function a(a) { | |
function d(a, b) { | |
return b = b || {}, l[a] = g(a, b), r | |
} | |
function e(a, c) { | |
return g(a, b.extend({}, l[a] || {}, c)) | |
} | |
function g(a, b) { | |
var c = y.filter(function(a) { | |
return !b[a] | |
}); | |
if (c.length) throw new Error("Missing colors %1 in palette %2!".replace("%1", c.join(", ")).replace("%2", a)); | |
return b | |
} | |
function i(a, c) { | |
if (s[a]) return s[a]; | |
c = c || "default"; | |
var d = "string" == typeof c ? s[c] : c, | |
e = new j(a); | |
return d && b.forEach(d.colors, function(a, c) { | |
e.colors[c] = { | |
name: a.name, | |
hues: b.extend({}, a.hues) | |
} | |
}), s[a] = e, e | |
} | |
function j(a) { | |
function c(a) { | |
if (a = 0 === arguments.length || !!a, a !== d.isDark) { | |
d.isDark = a, d.foregroundPalette = d.isDark ? o : n, d.foregroundShadow = d.isDark ? p : q; | |
var c = d.isDark ? x : w, | |
e = d.isDark ? w : x; | |
return b.forEach(c, function(a, b) { | |
var c = d.colors[b], | |
f = e[b]; | |
if (c) | |
for (var g in c.hues) c.hues[g] === f[g] && (c.hues[g] = a[g]) | |
}), d | |
} | |
} | |
var d = this; | |
d.name = a, d.colors = {}, d.dark = c, c(!1), u.forEach(function(a) { | |
var c = (d.isDark ? x : w)[a]; | |
d[a + "Palette"] = function(e, f) { | |
var g = d.colors[a] = { | |
name: e, | |
hues: b.extend({}, c, f) | |
}; | |
return Object.keys(g.hues).forEach(function(a) { | |
if (!c[a]) throw new Error("Invalid hue name '%1' in theme %2's %3 color %4. Available hue names: %4".replace("%1", a).replace("%2", d.name).replace("%3", e).replace("%4", Object.keys(c).join(", "))) | |
}), Object.keys(g.hues).map(function(a) { | |
return g.hues[a] | |
}).forEach(function(b) { | |
if (y.indexOf(b) == -1) throw new Error("Invalid hue value '%1' in theme %2's %3 color %4. Available hue values: %5".replace("%1", b).replace("%2", d.name).replace("%3", a).replace("%4", e).replace("%5", y.join(", "))) | |
}), d | |
}, d[a + "Color"] = function() { | |
var b = Array.prototype.slice.call(arguments); | |
return console.warn("$mdThemingProviderTheme." + a + "Color() has been deprecated. Use $mdThemingProviderTheme." + a + "Palette() instead."), d[a + "Palette"].apply(d, b) | |
} | |
}) | |
} | |
function m(a, d) { | |
function e(a) { | |
return a === c || "" === a || g.THEMES[a] !== c | |
} | |
function f(c, f) { | |
function g() { | |
return i = f.controller("mdTheme") || c.data("$mdThemeController"), i && i.$mdTheme || ("default" == t ? "" : t) | |
} | |
function h(a) { | |
if (a) { | |
e(a) || d.warn("Attempted to use unregistered theme '" + a + "'. Register it with $mdThemingProvider.theme()."); | |
var b = c.data("$mdThemeName"); | |
b && c.removeClass("md-" + b + "-theme"), c.addClass("md-" + a + "-theme"), c.data("$mdThemeName", a), i && c.data("$mdThemeController", i) | |
} | |
} | |
var i = f.controller("mdTheme"), | |
j = c.attr("md-theme-watch"), | |
k = (v || b.isDefined(j)) && "false" != j; | |
h(g()), c.on("$destroy", k ? a.$watch(g, h) : b.noop) | |
} | |
var g = function(b, d) { | |
d === c && (d = b, b = c), b === c && (b = a), g.inherit(d, d) | |
}; | |
return g.THEMES = b.extend({}, s), g.PALETTES = b.extend({}, l), g.inherit = f, g.registered = e, g.defaultTheme = function() { | |
return t | |
}, g.generateTheme = function(a) { | |
h(s[a], a, A) | |
}, g | |
} | |
l = {}; | |
var r, s = {}, | |
t = "default", | |
v = !1; | |
return b.extend(l, a), m.$inject = ["$rootScope", "$log"], r = { | |
definePalette: d, | |
extendPalette: e, | |
theme: i, | |
disableTheming: function() { | |
B = !0 | |
}, | |
setNonce: function(a) { | |
A = a | |
}, | |
setDefaultTheme: function(a) { | |
t = a | |
}, | |
alwaysWatchTheme: function(a) { | |
v = a | |
}, | |
generateThemesOnDemand: function(a) { | |
z = a | |
}, | |
$get: m, | |
_LIGHT_DEFAULT_HUES: w, | |
_DARK_DEFAULT_HUES: x, | |
_PALETTES: l, | |
_THEMES: s, | |
_parseRules: f, | |
_rgba: k | |
} | |
} | |
function d(a, c, d) { | |
return { | |
priority: 100, | |
link: { | |
pre: function(e, f, g) { | |
var h = [], | |
i = { | |
registerChanges: function(a, c) { | |
return c && (a = b.bind(c, a)), h.push(a), | |
function() { | |
var b = h.indexOf(a); | |
b > -1 && h.splice(b, 1) | |
} | |
}, | |
$setTheme: function(b) { | |
a.registered(b) || d.warn("attempted to use unregistered theme '" + b + "'"), i.$mdTheme = b, h.forEach(function(a) { | |
a() | |
}) | |
} | |
}; | |
f.data("$mdThemeController", i), i.$setTheme(c(g.mdTheme)(e)), g.$observe("mdTheme", i.$setTheme) | |
} | |
} | |
} | |
} | |
function e(a) { | |
return a | |
} | |
function f(a, c, d) { | |
i(a, c), d = d.replace(/THEME_NAME/g, a.name); | |
var e = [], | |
f = a.colors[c], | |
g = new RegExp(".md-" + a.name + "-theme", "g"), | |
h = new RegExp("('|\")?{{\\s*(" + c + ")-(color|contrast)-?(\\d\\.?\\d*)?\\s*}}(\"|')?", "g"), | |
j = /'?"?\{\{\s*([a-zA-Z]+)-(A?\d+|hue\-[0-3]|shadow|default)-?(\d\.?\d*)?(contrast)?\s*\}\}'?"?/g, | |
m = l[f.name]; | |
return d = d.replace(j, function(b, c, d, e, f) { | |
return "foreground" === c ? "shadow" == d ? a.foregroundShadow : a.foregroundPalette[d] || a.foregroundPalette[1] : (0 !== d.indexOf("hue") && "default" !== d || (d = a.colors[c].hues[d]), k((l[a.colors[c].name][d] || "")[f ? "contrast" : "value"], e)) | |
}), b.forEach(f.hues, function(b, c) { | |
var f = d.replace(h, function(a, c, d, e, f) { | |
return k(m[b]["color" === e ? "value" : "contrast"], f) | |
}); | |
if ("default" !== c && (f = f.replace(g, ".md-" + a.name + "-theme.md-" + c)), "default" == a.name) { | |
var i = /((?:(?:(?: |>|\.|\w|-|:|\(|\)|\[|\]|"|'|=)+) )?)((?:(?:\w|\.|-)+)?)\.md-default-theme((?: |>|\.|\w|-|:|\(|\)|\[|\]|"|'|=)*)/g; | |
f = f.replace(i, function(a, b, c, d) { | |
return a + ", " + b + c + d | |
}) | |
} | |
e.push(f) | |
}), e | |
} | |
function g(a, c) { | |
function d(a, c) { | |
var d = a.contrastDefaultColor, | |
e = a.contrastLightColors || [], | |
f = a.contrastStrongLightColors || [], | |
g = a.contrastDarkColors || []; | |
"string" == typeof e && (e = e.split(" ")), "string" == typeof f && (f = f.split(" ")), "string" == typeof g && (g = g.split(" ")), delete a.contrastDefaultColor, delete a.contrastLightColors, delete a.contrastStrongLightColors, delete a.contrastDarkColors, b.forEach(a, function(c, h) { | |
function i() { | |
return "light" === d ? g.indexOf(h) > -1 ? r : f.indexOf(h) > -1 ? t : s : e.indexOf(h) > -1 ? f.indexOf(h) > -1 ? t : s : r | |
} | |
if (!b.isObject(c)) { | |
var k = j(c); | |
if (!k) throw new Error("Color %1, in palette %2's hue %3, is invalid. Hex or rgb(a) color expected.".replace("%1", c).replace("%2", a.name).replace("%3", h)); | |
a[h] = { | |
value: k, | |
contrast: i() | |
} | |
} | |
}) | |
} | |
var e = document.head, | |
f = e ? e.firstElementChild : null, | |
g = !B && a.has("$MD_THEME_CSS") ? a.get("$MD_THEME_CSS") : ""; | |
if (f && 0 !== g.length) { | |
b.forEach(l, d); | |
var i = g.split(/\}(?!(\}|'|"|;))/).filter(function(a) { | |
return a && a.length | |
}).map(function(a) { | |
return a.trim() + "}" | |
}), | |
k = new RegExp("md-(" + u.join("|") + ")", "g"); | |
u.forEach(function(a) { | |
C[a] = "" | |
}), i.forEach(function(a) { | |
for (var b, c = (a.match(k), 0); b = u[c]; c++) | |
if (a.indexOf(".md-" + b) > -1) return C[b] += a; | |
for (c = 0; b = u[c]; c++) | |
if (a.indexOf(b) > -1) return C[b] += a; | |
return C[v] += a | |
}), z || b.forEach(c.THEMES, function(a) { | |
m[a.name] || "default" !== c.defaultTheme() && "default" === a.name || h(a, a.name, A) | |
}) | |
} | |
} | |
function h(a, b, c) { | |
var d = document.head, | |
e = d ? d.firstElementChild : null; | |
m[b] || (u.forEach(function(b) { | |
for (var g = f(a, b, C[b]); g.length;) { | |
var h = g.shift(); | |
if (h) { | |
var i = document.createElement("style"); | |
i.setAttribute("md-theme-style", ""), c && i.setAttribute("nonce", c), i.appendChild(document.createTextNode(h)), d.insertBefore(i, e) | |
} | |
} | |
}), m[a.name] = !0) | |
} | |
function i(a, b) { | |
if (!l[(a.colors[b] || {}).name]) throw new Error("You supplied an invalid color palette for theme %1's %2 palette. Available palettes: %3".replace("%1", a.name).replace("%2", b).replace("%3", Object.keys(l).join(", "))) | |
} | |
function j(a) { | |
if (b.isArray(a) && 3 == a.length) return a; | |
if (/^rgb/.test(a)) return a.replace(/(^\s*rgba?\(|\)\s*$)/g, "").split(",").map(function(a, b) { | |
return 3 == b ? parseFloat(a, 10) : parseInt(a, 10) | |
}); | |
if ("#" == a.charAt(0) && (a = a.substring(1)), /^([a-fA-F0-9]{3}){1,2}$/g.test(a)) { | |
var c = a.length / 3, | |
d = a.substr(0, c), | |
e = a.substr(c, c), | |
f = a.substr(2 * c); | |
return 1 === c && (d += d, e += e, f += f), [parseInt(d, 16), parseInt(e, 16), parseInt(f, 16)] | |
} | |
} | |
function k(a, c) { | |
return a ? (4 == a.length && (a = b.copy(a), c ? a.pop() : c = a.pop()), c && ("number" == typeof c || "string" == typeof c && c.length) ? "rgba(" + a.join(",") + "," + c + ")" : "rgb(" + a.join(",") + ")") : "rgb('0,0,0')" | |
} | |
b.module("material.core.theming", ["material.core.theming.palette"]).directive("mdTheme", d).directive("mdThemable", e).provider("$mdTheming", a).run(g); | |
var l, m = {}, | |
n = { | |
name: "dark", | |
1: "rgba(0,0,0,0.87)", | |
2: "rgba(0,0,0,0.54)", | |
3: "rgba(0,0,0,0.38)", | |
4: "rgba(0,0,0,0.12)" | |
}, | |
o = { | |
name: "light", | |
1: "rgba(255,255,255,1.0)", | |
2: "rgba(255,255,255,0.7)", | |
3: "rgba(255,255,255,0.5)", | |
4: "rgba(255,255,255,0.12)" | |
}, | |
p = "1px 1px 0px rgba(0,0,0,0.4), -1px -1px 0px rgba(0,0,0,0.4)", | |
q = "", | |
r = j("rgba(0,0,0,0.87)"), | |
s = j("rgba(255,255,255,0.87)"), | |
t = j("rgb(255,255,255)"), | |
u = ["primary", "accent", "warn", "background"], | |
v = "primary", | |
w = { | |
accent: { | |
default: "A200", | |
"hue-1": "A100", | |
"hue-2": "A400", | |
"hue-3": "A700" | |
}, | |
background: { | |
default: "50", | |
"hue-1": "A100", | |
"hue-2": "100", | |
"hue-3": "300" | |
} | |
}, | |
x = { | |
background: { | |
default: "A400", | |
"hue-1": "800", | |
"hue-2": "900", | |
"hue-3": "A200" | |
} | |
}; | |
u.forEach(function(a) { | |
var b = { | |
default: "500", | |
"hue-1": "300", | |
"hue-2": "800", | |
"hue-3": "A100" | |
}; | |
w[a] || (w[a] = b), x[a] || (x[a] = b) | |
}); | |
var y = ["50", "100", "200", "300", "400", "500", "600", "700", "800", "900", "A100", "A200", "A400", "A700"], | |
z = !1, | |
A = null, | |
B = !1; | |
a.$inject = ["$mdColorPalette"], d.$inject = ["$mdTheming", "$interpolate", "$log"], e.$inject = ["$mdTheming"]; | |
var C = {}; | |
g.$inject = ["$injector", "$mdTheming"] | |
}(), | |
function() { | |
function c(c, d, e, f, g) { | |
var h; | |
return h = { | |
translate3d: function(a, b, c, d) { | |
function e(c) { | |
return g(a, { | |
to: c || b, | |
addClass: d.transitionOutClass, | |
removeClass: d.transitionInClass | |
}).start() | |
} | |
return g(a, { | |
from: b, | |
to: c, | |
addClass: d.transitionInClass, | |
removeClass: d.transitionOutClass | |
}).start().then(function() { | |
return e | |
}) | |
}, | |
waitTransitionEnd: function(b, c) { | |
var g = 3e3; | |
return d(function(d, h) { | |
function i(a) { | |
a && a.target !== b[0] || (a && e.cancel(k), b.off(f.CSS.TRANSITIONEND, i), d()) | |
} | |
function j(c) { | |
return c = c || a.getComputedStyle(b[0]), "0s" == c.transitionDuration || !c.transition && !c.transitionProperty | |
} | |
c = c || {}, j(c.cachedTransitionStyles) && (g = 0); | |
var k = e(i, c.timeout || g); | |
b.on(f.CSS.TRANSITIONEND, i) | |
}) | |
}, | |
calculateTransformValues: function(a, b) { | |
function c() { | |
var b = a ? a.parent() : null, | |
c = b ? b.parent() : null; | |
return c ? h.clientRect(c) : null | |
} | |
var d = b.element, | |
e = b.bounds; | |
if (d || e) { | |
var f = d ? h.clientRect(d) || c() : h.copyRect(e), | |
g = h.copyRect(a[0].getBoundingClientRect()), | |
i = h.centerPointFor(g), | |
j = h.centerPointFor(f); | |
return { | |
centerX: j.x - i.x, | |
centerY: j.y - i.y, | |
scaleX: Math.round(100 * Math.min(.5, f.width / g.width)) / 100, | |
scaleY: Math.round(100 * Math.min(.5, f.height / g.height)) / 100 | |
} | |
} | |
return { | |
centerX: 0, | |
centerY: 0, | |
scaleX: .5, | |
scaleY: .5 | |
} | |
}, | |
calculateZoomToOrigin: function(a, d) { | |
var e = "translate3d( {centerX}px, {centerY}px, 0 ) scale( {scaleX}, {scaleY} )", | |
f = b.bind(null, c.supplant, e); | |
return f(h.calculateTransformValues(a, d)) | |
}, | |
calculateSlideToOrigin: function(a, d) { | |
var e = "translate3d( {centerX}px, {centerY}px, 0 )", | |
f = b.bind(null, c.supplant, e); | |
return f(h.calculateTransformValues(a, d)) | |
}, | |
toCss: function(a) { | |
function c(a, c, e) { | |
b.forEach(c.split(" "), function(a) { | |
d[a] = e | |
}) | |
} | |
var d = {}, | |
e = "left top right bottom width height x y min-width min-height max-width max-height"; | |
return b.forEach(a, function(a, g) { | |
if (!b.isUndefined(a)) | |
if (e.indexOf(g) >= 0) d[g] = a + "px"; | |
else switch (g) { | |
case "transition": | |
c(g, f.CSS.TRANSITION, a); | |
break; | |
case "transform": | |
c(g, f.CSS.TRANSFORM, a); | |
break; | |
case "transformOrigin": | |
c(g, f.CSS.TRANSFORM_ORIGIN, a) | |
} | |
}), d | |
}, | |
toTransformCss: function(a, c, d) { | |
var e = {}; | |
return b.forEach(f.CSS.TRANSFORM.split(" "), function(b) { | |
e[b] = a | |
}), c && (d = d || "all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) !important", e.transition = d), e | |
}, | |
copyRect: function(a, c) { | |
return a ? (c = c || {}, b.forEach("left top right bottom width height".split(" "), function(b) { | |
c[b] = Math.round(a[b]) | |
}), c.width = c.width || c.right - c.left, c.height = c.height || c.bottom - c.top, c) : null | |
}, | |
clientRect: function(a) { | |
var c = b.element(a)[0].getBoundingClientRect(), | |
d = function(a) { | |
return a && a.width > 0 && a.height > 0 | |
}; | |
return d(c) ? h.copyRect(c) : null | |
}, | |
centerPointFor: function(a) { | |
return a ? { | |
x: Math.round(a.left + a.width / 2), | |
y: Math.round(a.top + a.height / 2) | |
} : { | |
x: 0, | |
y: 0 | |
} | |
} | |
} | |
} | |
b.module("material.core").factory("$$mdAnimate", ["$q", "$timeout", "$mdConstant", "$animateCss", function(a, b, d, e) { | |
return function(f) { | |
return c(f, a, b, d, e) | |
} | |
}]) | |
}(), | |
function() { | |
b.version.minor >= 4 ? b.module("material.core.animate", []) : ! function() { | |
function a(a) { | |
return a.replace(/-[a-z]/g, function(a) { | |
return a.charAt(1).toUpperCase() | |
}) | |
} | |
var c = b.forEach, | |
d = b.isDefined(document.documentElement.style.WebkitAppearance), | |
e = d ? "-webkit-" : "", | |
f = (d ? "webkitTransitionEnd " : "") + "transitionend", | |
g = (d ? "webkitAnimationEnd " : "") + "animationend", | |
h = ["$document", function(a) { | |
return function() { | |
return a[0].body.clientWidth + 1 | |
} | |
}], | |
i = ["$$rAF", function(a) { | |
return function() { | |
var b = !1; | |
return a(function() { | |
b = !0 | |
}), | |
function(c) { | |
b ? c() : a(c) | |
} | |
} | |
}], | |
j = ["$q", "$$rAFMutex", function(a, d) { | |
function e(a) { | |
this.setHost(a), this._doneCallbacks = [], this._runInAnimationFrame = d(), this._state = 0 | |
} | |
var f = 0, | |
g = 1, | |
h = 2; | |
return e.prototype = { | |
setHost: function(a) { | |
this.host = a || {} | |
}, | |
done: function(a) { | |
this._state === h ? a() : this._doneCallbacks.push(a) | |
}, | |
progress: b.noop, | |
getPromise: function() { | |
if (!this.promise) { | |
var b = this; | |
this.promise = a(function(a, c) { | |
b.done(function(b) { | |
b === !1 ? c() : a() | |
}) | |
}) | |
} | |
return this.promise | |
}, | |
then: function(a, b) { | |
return this.getPromise().then(a, b) | |
}, | |
catch: function(a) { | |
return this.getPromise().catch(a) | |
}, | |
finally: function(a) { | |
return this.getPromise().finally(a) | |
}, | |
pause: function() { | |
this.host.pause && this.host.pause() | |
}, | |
resume: function() { | |
this.host.resume && this.host.resume() | |
}, | |
end: function() { | |
this.host.end && this.host.end(), this._resolve(!0) | |
}, | |
cancel: function() { | |
this.host.cancel && this.host.cancel(), this._resolve(!1) | |
}, | |
complete: function(a) { | |
var b = this; | |
b._state === f && (b._state = g, b._runInAnimationFrame(function() { | |
b._resolve(a) | |
})) | |
}, | |
_resolve: function(a) { | |
this._state !== h && (c(this._doneCallbacks, function(b) { | |
b(a) | |
}), this._doneCallbacks.length = 0, this._state = h) | |
} | |
}, e | |
}]; | |
b.module("material.core.animate", []).factory("$$forceReflow", h).factory("$$AnimateRunner", j).factory("$$rAFMutex", i).factory("$animateCss", ["$window", "$$rAF", "$$AnimateRunner", "$$forceReflow", "$$jqLite", "$timeout", "$animate", function(b, h, i, j, k, l, m) { | |
function n(d, h) { | |
var j = [], | |
k = v(d), | |
n = k && m.enabled(), | |
q = !1, | |
x = !1; | |
n && (h.transitionStyle && j.push([e + "transition", h.transitionStyle]), h.keyframeStyle && j.push([e + "animation", h.keyframeStyle]), h.delay && j.push([e + "transition-delay", h.delay + "s"]), h.duration && j.push([e + "transition-duration", h.duration + "s"]), q = h.keyframeStyle || h.to && (h.duration > 0 || h.transitionStyle), x = !!h.addClass || !!h.removeClass, w(d, !0)); | |
var y = n && (q || x); | |
t(d, h); | |
var z, A, B = !1; | |
return { | |
close: b.close, | |
start: function() { | |
function b() { | |
if (!B) return B = !0, z && A && d.off(z, A), o(d, h), s(d, h), c(j, function(b) { | |
k.style[a(b[0])] = "" | |
}), m.complete(!0), m | |
} | |
var m = new i; | |
return r(function() { | |
if (w(d, !1), !y) return b(); | |
c(j, function(b) { | |
var c = b[0], | |
d = b[1]; | |
k.style[a(c)] = d | |
}), o(d, h); | |
var i = p(d); | |
if (0 === i.duration) return b(); | |
var m = []; | |
h.easing && (i.transitionDuration && m.push([e + "transition-timing-function", h.easing]), i.animationDuration && m.push([e + "animation-timing-function", h.easing])), h.delay && i.animationDelay && m.push([e + "animation-delay", h.delay + "s"]), h.duration && i.animationDuration && m.push([e + "animation-duration", h.duration + "s"]), c(m, function(b) { | |
var c = b[0], | |
d = b[1]; | |
k.style[a(c)] = d, j.push(b) | |
}); | |
var n = i.delay, | |
q = 1e3 * n, | |
r = i.duration, | |
s = 1e3 * r, | |
t = Date.now(); | |
z = [], i.transitionDuration && z.push(f), i.animationDuration && z.push(g), z = z.join(" "), A = function(a) { | |
a.stopPropagation(); | |
var c = a.originalEvent || a, | |
d = c.timeStamp || Date.now(), | |
e = parseFloat(c.elapsedTime.toFixed(3)); | |
Math.max(d - t, 0) >= q && e >= r && b() | |
}, d.on(z, A), u(d, h), l(b, q + 1.5 * s, !1) | |
}), m | |
} | |
} | |
} | |
function o(a, b) { | |
b.addClass && (k.addClass(a, b.addClass), b.addClass = null), b.removeClass && (k.removeClass(a, b.removeClass), b.removeClass = null) | |
} | |
function p(a) { | |
function c(a) { | |
return d ? "Webkit" + a.charAt(0).toUpperCase() + a.substr(1) : a | |
} | |
var e = v(a), | |
f = b.getComputedStyle(e), | |
g = q(f[c("transitionDuration")]), | |
h = q(f[c("animationDuration")]), | |
i = q(f[c("transitionDelay")]), | |
j = q(f[c("animationDelay")]); | |
h *= parseInt(f[c("animationIterationCount")], 10) || 1; | |
var k = Math.max(h, g), | |
l = Math.max(j, i); | |
return { | |
duration: k, | |
delay: l, | |
animationDuration: h, | |
transitionDuration: g, | |
animationDelay: j, | |
transitionDelay: i | |
} | |
} | |
function q(a) { | |
var b = 0, | |
d = (a || "").split(/\s*,\s*/); | |
return c(d, function(a) { | |
"s" == a.charAt(a.length - 1) && (a = a.substring(0, a.length - 1)), a = parseFloat(a) || 0, b = b ? Math.max(a, b) : a | |
}), b | |
} | |
function r(a) { | |
x && x(), y.push(a), x = h(function() { | |
x = null; | |
for (var a = j(), b = 0; b < y.length; b++) y[b](a); | |
y.length = 0 | |
}) | |
} | |
function s(a, b) { | |
t(a, b), u(a, b) | |
} | |
function t(a, b) { | |
b.from && (a.css(b.from), b.from = null) | |
} | |
function u(a, b) { | |
b.to && (a.css(b.to), b.to = null) | |
} | |
function v(a) { | |
for (var b = 0; b < a.length; b++) | |
if (1 === a[b].nodeType) return a[b] | |
} | |
function w(b, c) { | |
var d = v(b), | |
f = a(e + "transition-delay"); | |
d.style[f] = c ? "-9999s" : "" | |
} | |
var x, y = []; | |
return n | |
}]) | |
}() | |
}(), | |
function() { | |
b.module("material.components.autocomplete", ["material.core", "material.components.icon", "material.components.virtualRepeat"]) | |
}(), | |
function() { | |
b.module("material.components.backdrop", ["material.core"]).directive("mdBackdrop", ["$mdTheming", "$mdUtil", "$animate", "$rootElement", "$window", "$log", "$$rAF", "$document", function(a, b, c, d, e, f, g, h) { | |
function i(b, i, k) { | |
c.pin && c.pin(i, d), g(function() { | |
var b = e.getComputedStyle(h[0].body); | |
if ("fixed" == b.position) { | |
var c = parseInt(b.height, 10) + Math.abs(parseInt(b.top, 10)); | |
i.css({ | |
height: c + "px" | |
}) | |
} | |
var d = i.parent()[0]; | |
if (d) { | |
"BODY" == d.nodeName && i.css({ | |
position: "fixed" | |
}); | |
var g = e.getComputedStyle(d); | |
"static" == g.position && f.warn(j) | |
} | |
i.parent().length && a.inherit(i, i.parent()) | |
}) | |
} | |
var j = "<md-backdrop> may not work properly in a scrolled, static-positioned parent container."; | |
return { | |
restrict: "E", | |
link: i | |
} | |
}]) | |
}(), | |
function() { | |
function a(a) { | |
return { | |
restrict: "E", | |
link: function(b, c) { | |
a(c) | |
} | |
} | |
} | |
function c(a, c, d, e) { | |
function |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment