Created
January 22, 2019 00:20
-
-
Save draem/ce959681e8f5a37244f80ca514f94991 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
This file contains 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
var $jscomp = { | |
scope: {}, | |
findInternal: function(d, c, e) { | |
d instanceof String && (d = String(d)); | |
for (var m = d.length, h = 0; h < m; h++) { | |
var p = d[h]; | |
if (c.call(e, p, h, d)) return { | |
i: h, | |
v: p | |
} | |
} | |
return { | |
i: -1, | |
v: void 0 | |
} | |
} | |
}; | |
$jscomp.defineProperty = "function" == typeof Object.defineProperties ? Object.defineProperty : function(d, c, e) { | |
if (e.get || e.set) throw new TypeError("ES3 does not support getters and setters."); | |
d != Array.prototype && d != Object.prototype && (d[c] = e.value) | |
}; | |
$jscomp.getGlobal = function(d) { | |
return "undefined" != typeof window && window === d ? d : "undefined" != typeof global && null != global ? global : d | |
}; | |
$jscomp.global = $jscomp.getGlobal(this); | |
$jscomp.polyfill = function(d, c, e, m) { | |
if (c) { | |
e = $jscomp.global; | |
d = d.split("."); | |
for (m = 0; m < d.length - 1; m++) { | |
var h = d[m]; | |
h in e || (e[h] = {}); | |
e = e[h] | |
} | |
d = d[d.length - 1]; | |
m = e[d]; | |
c = c(m); | |
c != m && null != c && $jscomp.defineProperty(e, d, { | |
configurable: !0, | |
writable: !0, | |
value: c | |
}) | |
} | |
}; | |
$jscomp.polyfill("Array.prototype.find", function(d) { | |
return d ? d : function(d, e) { | |
return $jscomp.findInternal(this, d, e).v | |
} | |
}, "es6-impl", "es3"); | |
$jscomp.SYMBOL_PREFIX = "jscomp_symbol_"; | |
$jscomp.initSymbol = function() { | |
$jscomp.initSymbol = function() {}; | |
$jscomp.global.Symbol || ($jscomp.global.Symbol = $jscomp.Symbol) | |
}; | |
$jscomp.symbolCounter_ = 0; | |
$jscomp.Symbol = function(d) { | |
return $jscomp.SYMBOL_PREFIX + (d || "") + $jscomp.symbolCounter_++ | |
}; | |
$jscomp.initSymbolIterator = function() { | |
$jscomp.initSymbol(); | |
var d = $jscomp.global.Symbol.iterator; | |
d || (d = $jscomp.global.Symbol.iterator = $jscomp.global.Symbol("iterator")); | |
"function" != typeof Array.prototype[d] && $jscomp.defineProperty(Array.prototype, d, { | |
configurable: !0, | |
writable: !0, | |
value: function() { | |
return $jscomp.arrayIterator(this) | |
} | |
}); | |
$jscomp.initSymbolIterator = function() {} | |
}; | |
$jscomp.arrayIterator = function(d) { | |
var c = 0; | |
return $jscomp.iteratorPrototype(function() { | |
return c < d.length ? { | |
done: !1, | |
value: d[c++] | |
} : { | |
done: !0 | |
} | |
}) | |
}; | |
$jscomp.iteratorPrototype = function(d) { | |
$jscomp.initSymbolIterator(); | |
d = { | |
next: d | |
}; | |
d[$jscomp.global.Symbol.iterator] = function() { | |
return this | |
}; | |
return d | |
}; | |
$jscomp.array = $jscomp.array || {}; | |
$jscomp.iteratorFromArray = function(d, c) { | |
$jscomp.initSymbolIterator(); | |
d instanceof String && (d += ""); | |
var e = 0, | |
m = { | |
next: function() { | |
if (e < d.length) { | |
var h = e++; | |
return { | |
value: c(h, d[h]), | |
done: !1 | |
} | |
} | |
m.next = function() { | |
return { | |
done: !0, | |
value: void 0 | |
} | |
}; | |
return m.next() | |
} | |
}; | |
m[Symbol.iterator] = function() { | |
return m | |
}; | |
return m | |
}; | |
$jscomp.polyfill("Array.prototype.values", function(d) { | |
return d ? d : function() { | |
return $jscomp.iteratorFromArray(this, function(d, e) { | |
return e | |
}) | |
} | |
}, "es6", "es3"); | |
$jscomp.polyfill("Array.prototype.keys", function(d) { | |
return d ? d : function() { | |
return $jscomp.iteratorFromArray(this, function(d) { | |
return d | |
}) | |
} | |
}, "es6-impl", "es3"); | |
$jscomp.polyfill("Array.prototype.findIndex", function(d) { | |
return d ? d : function(d, e) { | |
return $jscomp.findInternal(this, d, e).i | |
} | |
}, "es6-impl", "es3"); | |
$jscomp.polyfill("Array.prototype.fill", function(d) { | |
return d ? d : function(d, e, m) { | |
var c = this.length || 0; | |
0 > e && (e = Math.max(0, c + e)); | |
if (null == m || m > c) m = c; | |
m = Number(m); | |
0 > m && (m = Math.max(0, c + m)); | |
for (e = Number(e || 0); e < m; e++) this[e] = d; | |
return this | |
} | |
}, "es6-impl", "es3"); | |
$jscomp.polyfill("Number.EPSILON", function(d) { | |
return Math.pow(2, -52) | |
}, "es6-impl", "es3"); | |
$jscomp.checkStringArgs = function(d, c, e) { | |
if (null == d) throw new TypeError("The 'this' value for String.prototype." + e + " must not be null or undefined"); | |
if (c instanceof RegExp) throw new TypeError("First argument to String.prototype." + e + " must not be a regular expression"); | |
return d + "" | |
}; | |
$jscomp.polyfill("String.prototype.repeat", function(d) { | |
return d ? d : function(d) { | |
var c = $jscomp.checkStringArgs(this, null, "repeat"); | |
if (0 > d || 1342177279 < d) throw new RangeError("Invalid count value"); | |
d |= 0; | |
for (var m = ""; d;) | |
if (d & 1 && (m += c), d >>>= 1) c += c; | |
return m | |
} | |
}, "es6-impl", "es3"); | |
$jscomp.makeIterator = function(d) { | |
$jscomp.initSymbolIterator(); | |
var c = d[Symbol.iterator]; | |
return c ? c.call(d) : $jscomp.arrayIterator(d) | |
}; | |
$jscomp.owns = function(d, c) { | |
return Object.prototype.hasOwnProperty.call(d, c) | |
}; | |
$jscomp.polyfill("WeakMap", function(d) { | |
function c(d) { | |
$jscomp.owns(d, m) || $jscomp.defineProperty(d, m, { | |
value: {} | |
}) | |
} | |
function e(d) { | |
var a = Object[d]; | |
a && (Object[d] = function(d) { | |
c(d); | |
return a(d) | |
}) | |
} | |
if (function() { | |
if (!d || !Object.seal) return !1; | |
try { | |
var c = Object.seal({}), | |
a = Object.seal({}), | |
f = new d([ | |
[c, 2], | |
[a, 3] | |
]); | |
if (2 != f.get(c) || 3 != f.get(a)) return !1; | |
f["delete"](c); | |
f.set(a, 4); | |
return !f.has(c) && 4 == f.get(a) | |
} catch (k) { | |
return !1 | |
} | |
}()) return d; | |
var m = "$jscomp_hidden_" + Math.random().toString().substring(2); | |
e("freeze"); | |
e("preventExtensions"); | |
e("seal"); | |
var h = 0, | |
p = function(d) { | |
this.id_ = (h += Math.random() + 1).toString(); | |
if (d) { | |
$jscomp.initSymbol(); | |
$jscomp.initSymbolIterator(); | |
d = $jscomp.makeIterator(d); | |
for (var a; !(a = d.next()).done;) a = a.value, this.set(a[0], a[1]) | |
} | |
}; | |
p.prototype.set = function(d, a) { | |
c(d); | |
if (!$jscomp.owns(d, m)) throw Error("WeakMap key fail: " + d); | |
d[m][this.id_] = a; | |
return this | |
}; | |
p.prototype.get = function(d) { | |
return $jscomp.owns(d, m) ? d[m][this.id_] : void 0 | |
}; | |
p.prototype.has = function(d) { | |
return $jscomp.owns(d, m) && $jscomp.owns(d[m], this.id_) | |
}; | |
p.prototype["delete"] = function(d) { | |
return $jscomp.owns(d, m) && $jscomp.owns(d[m], this.id_) ? delete d[m][this.id_] : !1 | |
}; | |
return p | |
}, "es6-impl", "es3"); | |
$jscomp.ASSUME_NO_NATIVE_MAP = !1; | |
$jscomp.polyfill("Map", function(d) { | |
if (!$jscomp.ASSUME_NO_NATIVE_MAP && function() { | |
if (!d || !d.prototype.entries || "function" != typeof Object.seal) return !1; | |
try { | |
var a = Object.seal({ | |
x: 4 | |
}), | |
c = new d($jscomp.makeIterator([ | |
[a, "s"] | |
])); | |
if ("s" != c.get(a) || 1 != c.size || c.get({ | |
x: 4 | |
}) || c.set({ | |
x: 4 | |
}, "t") != c || 2 != c.size) return !1; | |
var k = c.entries(), | |
n = k.next(); | |
if (n.done || n.value[0] != a || "s" != n.value[1]) return !1; | |
n = k.next(); | |
return n.done || 4 != n.value[0].x || "t" != n.value[1] || !k.next().done ? !1 : !0 | |
} catch (t) { | |
return !1 | |
} | |
}()) return d; | |
$jscomp.initSymbol(); | |
$jscomp.initSymbolIterator(); | |
var c = new WeakMap, | |
e = function(a) { | |
this.data_ = {}; | |
this.head_ = p(); | |
this.size = 0; | |
if (a) { | |
a = $jscomp.makeIterator(a); | |
for (var d; !(d = a.next()).done;) d = d.value, this.set(d[0], d[1]) | |
} | |
}; | |
e.prototype.set = function(a, d) { | |
var c = m(this, a); | |
c.list || (c.list = this.data_[c.id] = []); | |
c.entry ? c.entry.value = d : (c.entry = { | |
next: this.head_, | |
previous: this.head_.previous, | |
head: this.head_, | |
key: a, | |
value: d | |
}, c.list.push(c.entry), this.head_.previous.next = c.entry, this.head_.previous = c.entry, this.size++); | |
return this | |
}; | |
e.prototype["delete"] = function(a) { | |
a = m(this, a); | |
return a.entry && a.list ? (a.list.splice(a.index, 1), a.list.length || delete this.data_[a.id], a.entry.previous.next = a.entry.next, a.entry.next.previous = a.entry.previous, a.entry.head = null, this.size--, !0) : !1 | |
}; | |
e.prototype.clear = function() { | |
this.data_ = {}; | |
this.head_ = this.head_.previous = p(); | |
this.size = 0 | |
}; | |
e.prototype.has = function(a) { | |
return !!m(this, a).entry | |
}; | |
e.prototype.get = function(a) { | |
return (a = m(this, a).entry) && a.value | |
}; | |
e.prototype.entries = function() { | |
return h(this, function(a) { | |
return [a.key, a.value] | |
}) | |
}; | |
e.prototype.keys = function() { | |
return h(this, function(a) { | |
return a.key | |
}) | |
}; | |
e.prototype.values = function() { | |
return h(this, function(a) { | |
return a.value | |
}) | |
}; | |
e.prototype.forEach = function(a, d) { | |
for (var c = this.entries(), f; !(f = c.next()).done;) f = f.value, a.call(d, f[1], f[0], this) | |
}; | |
e.prototype[Symbol.iterator] = e.prototype.entries; | |
var m = function(a, d) { | |
var f; | |
f = d && typeof d; | |
"object" == f || "function" == f ? c.has(d) ? f = c.get(d) : (f = "" + ++q, c.set(d, f)) : f = "p_" + d; | |
var n = a.data_[f]; | |
if (n && $jscomp.owns(a.data_, f)) | |
for (var e = 0; e < n.length; e++) { | |
var h = n[e]; | |
if (d !== d && h.key !== h.key || d === h.key) return { | |
id: f, | |
list: n, | |
index: e, | |
entry: h | |
} | |
} | |
return { | |
id: f, | |
list: n, | |
index: -1, | |
entry: void 0 | |
} | |
}, | |
h = function(a, d) { | |
var c = a.head_; | |
return $jscomp.iteratorPrototype(function() { | |
if (c) { | |
for (; c.head != a.head_;) c = c.previous; | |
for (; c.next != c.head;) return c = c.next, { | |
done: !1, | |
value: d(c) | |
}; | |
c = null | |
} | |
return { | |
done: !0, | |
value: void 0 | |
} | |
}) | |
}, | |
p = function() { | |
var a = {}; | |
return a.previous = a.next = a.head = a | |
}, | |
q = 0; | |
return e | |
}, "es6-impl", "es3"); | |
! function(d, c) { | |
"object" == typeof module && "object" == typeof module.exports ? module.exports = d.document ? c(d, !0) : function(d) { | |
if (!d.document) throw Error("jQuery requires a window with a document"); | |
return c(d) | |
} : c(d) | |
}("undefined" != typeof window ? window : this, function(d, c) { | |
function e(a) { | |
var d = a.length, | |
c = z.type(a); | |
return "function" === c || z.isWindow(a) ? !1 : 1 === a.nodeType && d ? !0 : "array" === c || 0 === d || "number" == typeof d && 0 < d && d - 1 in a | |
} | |
function m(a, d, c) { | |
if (z.isFunction(d)) return z.grep(a, function(a, f) { | |
return !!d.call(a, f, a) !== c | |
}); | |
if (d.nodeType) return z.grep(a, function(a) { | |
return a === d !== c | |
}); | |
if ("string" == typeof d) { | |
if (Ib.test(d)) return z.filter(d, a, c); | |
d = z.filter(d, a) | |
} | |
return z.grep(a, function(a) { | |
return 0 <= z.inArray(a, d) !== c | |
}) | |
} | |
function h(a, d) { | |
do { | |
a = a[d] | |
} while (a && 1 !== a.nodeType); | |
return a | |
} | |
function p(a) { | |
var d = Sa[a] = {}; | |
return z.each(a.match(Ha) || [], function(a, c) { | |
d[c] = !0 | |
}), d | |
} | |
function q() { | |
X.addEventListener ? (X.removeEventListener("DOMContentLoaded", a, !1), d.removeEventListener("load", a, !1)) : (X.detachEvent("onreadystatechange", a), d.detachEvent("onload", a)) | |
} | |
function a() { | |
(X.addEventListener || "load" === event.type || "complete" === X.readyState) && (q(), z.ready()) | |
} | |
function f(a, d, c) { | |
if (void 0 === c && 1 === a.nodeType) { | |
var f = "data-" + d.replace(yb, "-$1").toLowerCase(); | |
if (c = a.getAttribute(f), "string" == typeof c) { | |
try { | |
c = "true" === c ? !0 : "false" === c ? !1 : "null" === c ? null : +c + "" === c ? +c : ab.test(c) ? z.parseJSON(c) : c | |
} catch (yc) {} | |
z.data(a, d, c) | |
} else c = void 0 | |
} | |
return c | |
} | |
function k(a) { | |
for (var d in a) | |
if (("data" !== d || !z.isEmptyObject(a[d])) && "toJSON" !== d) return !1; | |
return !0 | |
} | |
function n(a, d, c, f) { | |
if (z.acceptData(a)) { | |
var k, n, e = z.expando, | |
v = a.nodeType, | |
t = v ? z.cache : a, | |
h = v ? a[e] : a[e] && e; | |
if (h && t[h] && (f || t[h].data) || void 0 !== c || "string" != typeof d) return h || (h = v ? a[e] = ta.pop() || z.guid++ : e), t[h] || (t[h] = v ? {} : { | |
toJSON: z.noop | |
}), ("object" == typeof d || "function" == typeof d) && (f ? t[h] = z.extend(t[h], d) : t[h].data = z.extend(t[h].data, d)), n = t[h], f || (n.data || (n.data = {}), n = n.data), void 0 !== c && (n[z.camelCase(d)] = c), "string" == typeof d ? (k = n[d], null == k && (k = n[z.camelCase(d)])) : k = n, k | |
} | |
} | |
function t(a, d, c) { | |
if (z.acceptData(a)) { | |
var f, n, e = a.nodeType, | |
v = e ? z.cache : a, | |
t = e ? a[z.expando] : z.expando; | |
if (v[t]) { | |
if (d && (f = c ? v[t] : v[t].data)) { | |
z.isArray(d) ? d = d.concat(z.map(d, z.camelCase)) : d in f ? d = [d] : (d = z.camelCase(d), d = d in f ? [d] : d.split(" ")); | |
for (n = d.length; n--;) delete f[d[n]]; | |
if (c ? !k(f) : !z.isEmptyObject(f)) return | |
}(c || (delete v[t].data, k(v[t]))) && (e ? z.cleanData([a], !0) : P.deleteExpando || v != v.window ? delete v[t] : v[t] = null) | |
} | |
} | |
} | |
function w() { | |
return !0 | |
} | |
function u() { | |
return !1 | |
} | |
function C() { | |
try { | |
return X.activeElement | |
} catch (nb) {} | |
} | |
function A(a) { | |
var d = cc.split("|"); | |
a = a.createDocumentFragment(); | |
if (a.createElement) | |
for (; d.length;) a.createElement(d.pop()); | |
return a | |
} | |
function v(a, d) { | |
var c, f, k = 0, | |
n = "undefined" !== typeof a.getElementsByTagName ? a.getElementsByTagName(d || "*") : "undefined" !== typeof a.querySelectorAll ? a.querySelectorAll(d || "*") : void 0; | |
if (!n) | |
for (n = [], c = a.childNodes || a; null != (f = c[k]); k++) !d || z.nodeName(f, d) ? n.push(f) : z.merge(n, v(f, d)); | |
return void 0 === d || d && z.nodeName(a, d) ? z.merge([a], n) : n | |
} | |
function B(a) { | |
Jb.test(a.type) && (a.defaultChecked = a.checked) | |
} | |
function D(a, d) { | |
return z.nodeName(a, "table") && z.nodeName(11 !== d.nodeType ? d : d.firstChild, "tr") ? a.getElementsByTagName("tbody")[0] || a.appendChild(a.ownerDocument.createElement("tbody")) : a | |
} | |
function E(a) { | |
return a.type = (null !== z.find.attr(a, "type")) + "/" + a.type, a | |
} | |
function F(a) { | |
var d = Pb.exec(a.type); | |
return d ? a.type = d[1] : a.removeAttribute("type"), a | |
} | |
function G(a, d) { | |
for (var c, f = 0; null != (c = a[f]); f++) z._data(c, "globalEval", !d || z._data(d[f], "globalEval")) | |
} | |
function J(a, d) { | |
if (1 === d.nodeType && z.hasData(a)) { | |
var c, f, k; | |
f = z._data(a); | |
var n = z._data(d, f), | |
e = f.events; | |
if (e) | |
for (c in delete n.handle, n.events = {}, e) | |
for (f = 0, k = e[c].length; k > f; f++) z.event.add(d, c, e[c][f]); | |
n.data && (n.data = z.extend({}, n.data)) | |
} | |
} | |
function I(a, c) { | |
var f, k = z(c.createElement(a)).appendTo(c.body), | |
n = d.getDefaultComputedStyle && (f = d.getDefaultComputedStyle(k[0])) ? f.display : z.css(k[0], "display"); | |
return k.detach(), n | |
} | |
function K(a) { | |
var d = X, | |
c = ga[a]; | |
return c || (c = I(a, d), "none" !== c && c || (ra = (ra || z("<iframe frameborder='0' width='0' height='0'/>")).appendTo(d.documentElement), d = (ra[0].contentWindow || ra[0].contentDocument).document, d.write(), d.close(), c = I(a, d), ra.detach()), ga[a] = c), c | |
} | |
function M(a, d) { | |
return { | |
get: function() { | |
var c = a(); | |
if (null != c) return c ? void delete this.get : (this.get = d).apply(this, arguments) | |
} | |
} | |
} | |
function L(a, d) { | |
if (d in a) return d; | |
for (var c = d.charAt(0).toUpperCase() + d.slice(1), f = d, k = dc.length; k--;) | |
if (d = dc[k] + c, d in a) return d; | |
return f | |
} | |
function U(a, d) { | |
for (var c, f, k, n = [], e = 0, v = a.length; v > e; e++) f = a[e], f.style && (n[e] = z._data(f, "olddisplay"), c = f.style.display, d ? (n[e] || "none" !== c || (f.style.display = ""), "" === f.style.display && va(f) && (n[e] = z._data(f, "olddisplay", K(f.nodeName)))) : (k = va(f), (c && "none" !== c || !k) && z._data(f, "olddisplay", k ? c : z.css(f, "display")))); | |
for (e = 0; v > e; e++) f = a[e], f.style && (d && "none" !== f.style.display && "" !== f.style.display || (f.style.display = d ? n[e] || "" : "none")); | |
return a | |
} | |
function Q(a, d, c) { | |
return (a = sb.exec(d)) ? Math.max(0, a[1] - (c || 0)) + (a[2] || "px") : d | |
} | |
function H(a, d, c, f, k) { | |
d = c === (f ? "border" : "content") ? 4 : "width" === d ? 1 : 0; | |
for (var n = 0; 4 > d; d += 2) "margin" === c && (n += z.css(a, c + ia[d], !0, k)), f ? ("content" === c && (n -= z.css(a, "padding" + ia[d], !0, k)), "margin" !== c && (n -= z.css(a, "border" + ia[d] + "Width", !0, k))) : (n += z.css(a, "padding" + ia[d], !0, k), "padding" !== c && (n += z.css(a, "border" + ia[d] + "Width", !0, k))); | |
return n | |
} | |
function O(a, d, c) { | |
var f = !0, | |
k = "width" === d ? a.offsetWidth : a.offsetHeight, | |
n = tb(a), | |
e = P.boxSizing && "border-box" === z.css(a, "boxSizing", !1, n); | |
if (0 >= k || null == k) { | |
if (k = zb(a, d, n), (0 > k || null == k) && (k = a.style[d]), la.test(k)) return k; | |
f = e && (P.boxSizingReliable() || k === a.style[d]); | |
k = parseFloat(k) || 0 | |
} | |
return k + H(a, d, c || (e ? "border" : "content"), f, n) + "px" | |
} | |
function W(a, d, c, f, k) { | |
return new W.prototype.init(a, d, c, f, k) | |
} | |
function ca() { | |
return setTimeout(function() { | |
Qa = void 0 | |
}), Qa = z.now() | |
} | |
function ha(a, d) { | |
var c, f = { | |
height: a | |
}, | |
k = 0; | |
for (d = d ? 1 : 0; 4 > k; k += 2 - d) c = ia[k], f["margin" + c] = f["padding" + c] = a; | |
return d && (f.opacity = f.width = a), f | |
} | |
function Y(a, d, c) { | |
for (var f, k = (bb[d] || []).concat(bb["*"]), n = 0, e = k.length; e > n; n++) | |
if (f = k[n].call(c, d, a)) return f | |
} | |
function Z(a, d) { | |
var c, f, k, n, e; | |
for (c in a) | |
if (f = z.camelCase(c), k = d[f], n = a[c], z.isArray(n) && (k = n[1], n = a[c] = n[0]), c !== f && (a[f] = n, delete a[c]), e = z.cssHooks[f], e && "expand" in e) | |
for (c in n = e.expand(n), delete a[f], n) c in a || (a[c] = n[c], d[c] = k); | |
else d[f] = k | |
} | |
function R(a, d, c) { | |
var f, k = 0, | |
n = Ka.length, | |
e = z.Deferred().always(function() { | |
delete v.elem | |
}), | |
v = function() { | |
if (f) return !1; | |
for (var d = Qa || ca(), d = Math.max(0, t.startTime + t.duration - d), c = 1 - (d / t.duration || 0), k = 0, n = t.tweens.length; n > k; k++) t.tweens[k].run(c); | |
return e.notifyWith(a, [t, c, d]), 1 > c && n ? d : (e.resolveWith(a, [t]), !1) | |
}, | |
t = e.promise({ | |
elem: a, | |
props: z.extend({}, d), | |
opts: z.extend(!0, { | |
specialEasing: {} | |
}, c), | |
originalProperties: d, | |
originalOptions: c, | |
startTime: Qa || ca(), | |
duration: c.duration, | |
tweens: [], | |
createTween: function(d, c) { | |
var f = z.Tween(a, t.opts, d, c, t.opts.specialEasing[d] || t.opts.easing); | |
return t.tweens.push(f), f | |
}, | |
stop: function(d) { | |
var c = 0, | |
k = d ? t.tweens.length : 0; | |
if (f) return this; | |
for (f = !0; k > c; c++) t.tweens[c].run(1); | |
return d ? e.resolveWith(a, [t, d]) : e.rejectWith(a, [t, d]), this | |
} | |
}); | |
c = t.props; | |
for (Z(c, t.opts.specialEasing); n > k; k++) | |
if (d = Ka[k].call(t, a, c, t.opts)) return d; | |
return z.map(c, Y, t), z.isFunction(t.opts.start) && t.opts.start.call(a, t), z.fx.timer(z.extend(v, { | |
elem: a, | |
anim: t, | |
queue: t.opts.queue | |
})), t.progress(t.opts.progress).done(t.opts.done, t.opts.complete).fail(t.opts.fail).always(t.opts.always) | |
} | |
function aa(a) { | |
return function(d, c) { | |
"string" != typeof d && (c = d, d = "*"); | |
var f, k = 0, | |
n = d.toLowerCase().match(Ha) || []; | |
if (z.isFunction(c)) | |
for (; f = n[k++];) "+" === f.charAt(0) ? (f = f.slice(1) || "*", (a[f] = a[f] || []).unshift(c)) : (a[f] = a[f] || []).push(c) | |
} | |
} | |
function da(a, d, c, f) { | |
function k(v) { | |
var t; | |
return n[v] = !0, z.each(a[v] || [], function(a, v) { | |
var h = v(d, c, f); | |
return "string" != typeof h || e || n[h] ? e ? !(t = h) : void 0 : (d.dataTypes.unshift(h), k(h), !1) | |
}), t | |
} | |
var n = {}, | |
e = a === cb; | |
return k(d.dataTypes[0]) || !n["*"] && k("*") | |
} | |
function ua(a, d) { | |
var c, f, k = z.ajaxSettings.flatOptions || {}; | |
for (f in d) void 0 !== d[f] && ((k[f] ? a : c || (c = {}))[f] = d[f]); | |
return c && z.extend(!0, a, c), a | |
} | |
function Da(a, d, c, f) { | |
var k; | |
if (z.isArray(d)) z.each(d, function(d, k) { | |
c || N.test(a) ? f(a, k) : Da(a + "[" + ("object" == typeof k ? d : "") + "]", k, c, f) | |
}); | |
else if (c || "object" !== z.type(d)) f(a, d); | |
else | |
for (k in d) Da(a + "[" + k + "]", d[k], c, f) | |
} | |
function S() { | |
try { | |
return new d.XMLHttpRequest | |
} catch (nb) {} | |
} | |
function wa(a) { | |
return z.isWindow(a) ? a : 9 === a.nodeType ? a.defaultView || a.parentWindow : !1 | |
} | |
var ta = [], | |
na = ta.slice, | |
ea = ta.concat, | |
Ea = ta.push, | |
ja = ta.indexOf, | |
hb = {}, | |
ob = hb.toString, | |
xa = hb.hasOwnProperty, | |
P = {}, | |
z = function(a, d) { | |
return new z.fn.init(a, d) | |
}, | |
Db = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, | |
Eb = /^-ms-/, | |
Qb = /-([\da-z])/gi, | |
Ia = function(a, d) { | |
return d.toUpperCase() | |
}; | |
z.fn = z.prototype = { | |
jquery: "1.11.2", | |
constructor: z, | |
selector: "", | |
length: 0, | |
toArray: function() { | |
return na.call(this) | |
}, | |
get: function(a) { | |
return null != a ? 0 > a ? this[a + this.length] : this[a] : na.call(this) | |
}, | |
pushStack: function(a) { | |
a = z.merge(this.constructor(), a); | |
return a.prevObject = this, a.context = this.context, a | |
}, | |
each: function(a, d) { | |
return z.each(this, a, d) | |
}, | |
map: function(a) { | |
return this.pushStack(z.map(this, function(d, c) { | |
return a.call(d, c, d) | |
})) | |
}, | |
slice: function() { | |
return this.pushStack(na.apply(this, arguments)) | |
}, | |
first: function() { | |
return this.eq(0) | |
}, | |
last: function() { | |
return this.eq(-1) | |
}, | |
eq: function(a) { | |
var d = this.length; | |
a = +a + (0 > a ? d : 0); | |
return this.pushStack(0 <= a && d > a ? [this[a]] : []) | |
}, | |
end: function() { | |
return this.prevObject || this.constructor(null) | |
}, | |
push: Ea, | |
sort: ta.sort, | |
splice: ta.splice | |
}; | |
z.extend = z.fn.extend = function() { | |
var a, d, c, f, k, n, e = arguments[0] || {}, | |
v = 1, | |
t = arguments.length, | |
h = !1; | |
"boolean" == typeof e && (h = e, e = arguments[v] || {}, v++); | |
"object" == typeof e || z.isFunction(e) || (e = {}); | |
for (v === t && (e = this, v--); t > v; v++) | |
if (null != (k = arguments[v])) | |
for (f in k) a = e[f], c = k[f], e !== c && (h && c && (z.isPlainObject(c) || (d = z.isArray(c))) ? (d ? (d = !1, n = a && z.isArray(a) ? a : []) : n = a && z.isPlainObject(a) ? a : {}, e[f] = z.extend(h, n, c)) : void 0 !== c && (e[f] = c)); | |
return e | |
}; | |
z.extend({ | |
expando: "jQuery" + ("1.11.2" + Math.random()).replace(/\D/g, ""), | |
isReady: !0, | |
error: function(a) { | |
throw Error(a) | |
}, | |
noop: function() {}, | |
isFunction: function(a) { | |
return "function" === z.type(a) | |
}, | |
isArray: Array.isArray || function(a) { | |
return "array" === z.type(a) | |
}, | |
isWindow: function(a) { | |
return null != a && a == a.window | |
}, | |
isNumeric: function(a) { | |
return !z.isArray(a) && 0 <= a - parseFloat(a) + 1 | |
}, | |
isEmptyObject: function(a) { | |
for (var d in a) return !1; | |
return !0 | |
}, | |
isPlainObject: function(a) { | |
var d; | |
if (!a || "object" !== z.type(a) || a.nodeType || z.isWindow(a)) return !1; | |
try { | |
if (a.constructor && !xa.call(a, "constructor") && !xa.call(a.constructor.prototype, "isPrototypeOf")) return !1 | |
} catch (xc) { | |
return !1 | |
} | |
if (P.ownLast) | |
for (d in a) return xa.call(a, d); | |
for (d in a); | |
return void 0 === d || xa.call(a, d) | |
}, | |
type: function(a) { | |
return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? hb[ob.call(a)] || "object" : typeof a | |
}, | |
globalEval: function(a) { | |
a && z.trim(a) && (d.execScript || function(a) { | |
d.eval.call(d, a) | |
})(a) | |
}, | |
camelCase: function(a) { | |
return a.replace(Eb, "ms-").replace(Qb, Ia) | |
}, | |
nodeName: function(a, d) { | |
return a.nodeName && a.nodeName.toLowerCase() === d.toLowerCase() | |
}, | |
each: function(a, d, c) { | |
var f, k = 0, | |
n = a.length, | |
v = e(a); | |
if (c) | |
if (v) | |
for (; n > k && (f = d.apply(a[k], c), !1 !== f); k++); | |
else | |
for (k in a) { | |
if (f = d.apply(a[k], c), !1 === f) break | |
} else if (v) | |
for (; n > k && (f = d.call(a[k], k, a[k]), !1 !== f); k++); | |
else | |
for (k in a) | |
if (f = d.call(a[k], k, a[k]), !1 === f) break; | |
return a | |
}, | |
trim: function(a) { | |
return null == a ? "" : (a + "").replace(Db, "") | |
}, | |
makeArray: function(a, d) { | |
var c = d || []; | |
return null != a && (e(Object(a)) ? z.merge(c, "string" == typeof a ? [a] : a) : Ea.call(c, a)), c | |
}, | |
inArray: function(a, d, c) { | |
var f; | |
if (d) { | |
if (ja) return ja.call(d, a, c); | |
f = d.length; | |
for (c = c ? 0 > c ? Math.max(0, f + c) : c : 0; f > c; c++) | |
if (c in d && d[c] === a) return c | |
} | |
return -1 | |
}, | |
merge: function(a, d) { | |
for (var c = +d.length, f = 0, k = a.length; c > f;) a[k++] = d[f++]; | |
if (c !== c) | |
for (; void 0 !== d[f];) a[k++] = d[f++]; | |
return a.length = k, a | |
}, | |
grep: function(a, d, c) { | |
for (var f = [], k = 0, n = a.length, e = !c; n > k; k++) c = !d(a[k], k), c !== e && f.push(a[k]); | |
return f | |
}, | |
map: function(a, d, c) { | |
var f, k = 0, | |
n = a.length, | |
v = []; | |
if (e(a)) | |
for (; n > k; k++) f = d(a[k], k, c), null != f && v.push(f); | |
else | |
for (k in a) f = d(a[k], k, c), null != f && v.push(f); | |
return ea.apply([], v) | |
}, | |
guid: 1, | |
proxy: function(a, d) { | |
var c, f, k; | |
return "string" == typeof d && (k = a[d], d = a, a = k), z.isFunction(a) ? (c = na.call(arguments, 2), f = function() { | |
return a.apply(d || this, c.concat(na.call(arguments))) | |
}, f.guid = a.guid = a.guid || z.guid++, f) : void 0 | |
}, | |
now: function() { | |
return +new Date | |
}, | |
support: P | |
}); | |
z.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(a, d) { | |
hb["[object " + d + "]"] = d.toLowerCase() | |
}); | |
var za = function(a) { | |
function d(a, d, c, f) { | |
var k, n, e, v, t; | |
if ((d ? d.ownerDocument || d : Fa) !== H && Ra(d), d = d || H, c = c || [], v = d.nodeType, "string" != typeof a || !a || 1 !== v && 9 !== v && 11 !== v) return c; | |
if (!f && Ya) { | |
if (11 !== v && (k = ua.exec(a))) | |
if (e = k[1]) | |
if (9 === v) { | |
if (n = d.getElementById(e), !n || !n.parentNode) return c; | |
if (n.id === e) return c.push(n), c | |
} else { | |
if (d.ownerDocument && (n = d.ownerDocument.getElementById(e)) && W(d, n) && n.id === e) return c.push(n), c | |
} else { | |
if (k[2]) return Y.apply(c, d.getElementsByTagName(a)), c; | |
if ((e = k[3]) && F.getElementsByClassName) return Y.apply(c, d.getElementsByClassName(e)), c | |
} | |
if (F.qsa && (!Xa || !Xa.test(a))) { | |
if (n = k = oa, e = d, t = 1 !== v && a, 1 === v && "object" !== d.nodeName.toLowerCase()) { | |
v = Ca(a); | |
(k = d.getAttribute("id")) ? n = k.replace(Da, "\\$&"): d.setAttribute("id", n); | |
n = "[id='" + n + "'] "; | |
for (e = v.length; e--;) v[e] = n + u(v[e]); | |
e = pb.test(a) && m(d.parentNode) || d; | |
t = v.join(",") | |
} | |
if (t) try { | |
return Y.apply(c, e.querySelectorAll(t)), c | |
} catch (bd) {} finally { | |
k || d.removeAttribute("id") | |
} | |
} | |
} | |
return z(a.replace(ia, "$1"), d, c, f) | |
} | |
function c() { | |
function a(c, f) { | |
return d.push(c + " ") > N.cacheLength && delete a[d.shift()], a[c + " "] = f | |
} | |
var d = []; | |
return a | |
} | |
function f(a) { | |
return a[oa] = !0, a | |
} | |
function k(a) { | |
var d = H.createElement("div"); | |
try { | |
return !!a(d) | |
} catch ($c) { | |
return !1 | |
} finally { | |
d.parentNode && d.parentNode.removeChild(d) | |
} | |
} | |
function n(a, d) { | |
for (var c = a.split("|"), f = a.length; f--;) N.attrHandle[c[f]] = d | |
} | |
function e(a, d) { | |
var c = d && a, | |
f = c && 1 === a.nodeType && 1 === d.nodeType && (~d.sourceIndex || -2147483648) - (~a.sourceIndex || -2147483648); | |
if (f) return f; | |
if (c) | |
for (; c = c.nextSibling;) | |
if (c === d) return -1; | |
return a ? 1 : -1 | |
} | |
function v(a) { | |
return function(d) { | |
return "input" === d.nodeName.toLowerCase() && d.type === a | |
} | |
} | |
function t(a) { | |
return function(d) { | |
var c = d.nodeName.toLowerCase(); | |
return ("input" === c || "button" === c) && d.type === a | |
} | |
} | |
function h(a) { | |
return f(function(d) { | |
return d = +d, f(function(c, f) { | |
for (var k, n = a([], c.length, d), e = n.length; e--;) c[k = n[e]] && (c[k] = !(f[k] = c[k])) | |
}) | |
}) | |
} | |
function m(a) { | |
return a && "undefined" != typeof a.getElementsByTagName && a | |
} | |
function w() {} | |
function u(a) { | |
for (var d = 0, c = a.length, f = ""; c > d; d++) f += a[d].value; | |
return f | |
} | |
function B(a, d, c) { | |
var f = d.dir, | |
k = c && "parentNode" === f, | |
n = L++; | |
return d.first ? function(d, c, n) { | |
for (; d = d[f];) | |
if (1 === d.nodeType || k) return a(d, c, n) | |
} : function(d, c, e) { | |
var v, t, h = [Kb, n]; | |
if (e) | |
for (; d = d[f];) { | |
if ((1 === d.nodeType || k) && a(d, c, e)) return !0 | |
} else | |
for (; d = d[f];) | |
if (1 === d.nodeType || k) { | |
if (t = d[oa] || (d[oa] = {}), (v = t[f]) && v[0] === Kb && v[1] === n) return h[2] = v[2]; | |
if (t[f] = h, h[2] = a(d, c, e)) return !0 | |
} | |
} | |
} | |
function q(a) { | |
return 1 < a.length ? function(d, c, f) { | |
for (var k = a.length; k--;) | |
if (!a[k](d, c, f)) return !1; | |
return !0 | |
} : a[0] | |
} | |
function p(a, d, c, f, k) { | |
for (var n, e = [], v = 0, t = a.length, h = null != d; t > v; v++)(n = a[v]) && (!c || c(n, f, k)) && (e.push(n), h && d.push(v)); | |
return e | |
} | |
function D(a, c, k, n, e, v) { | |
return n && !n[oa] && (n = D(n)), e && !e[oa] && (e = D(e, v)), f(function(f, v, t, h) { | |
var m, w, u = [], | |
B = [], | |
q = v.length, | |
D; | |
if (!(D = f)) { | |
D = c || "*"; | |
for (var C = t.nodeType ? [t] : t, E = [], A = 0, F = C.length; F > A; A++) d(D, C[A], E); | |
D = E | |
} | |
D = !a || !f && c ? D : p(D, u, a, t, h); | |
C = k ? e || (f ? a : q || n) ? [] : v : D; | |
if (k && k(D, C, t, h), n) | |
for (m = p(C, B), n(m, [], t, h), t = m.length; t--;)(w = m[t]) && (C[B[t]] = !(D[B[t]] = w)); | |
if (f) { | |
if (e || a) { | |
if (e) { | |
m = []; | |
for (t = C.length; t--;)(w = C[t]) && m.push(D[t] = w); | |
e(null, C = [], m, h) | |
} | |
for (t = C.length; t--;)(w = C[t]) && -1 < (m = e ? Hb(f, w) : u[t]) && (f[m] = !(v[m] = w)) | |
} | |
} else C = p(C === v ? C.splice(q, C.length) : C), e ? e(null, v, C, h) : Y.apply(v, C) | |
}) | |
} | |
function C(a) { | |
var d, c, f, k = a.length, | |
n = N.relative[a[0].type]; | |
c = n || N.relative[" "]; | |
for (var e = n ? 1 : 0, v = B(function(a) { | |
return a === d | |
}, c, !0), t = B(function(a) { | |
return -1 < Hb(d, a) | |
}, c, !0), h = [function(a, c, f) { | |
a = !n && (f || c !== J) || ((d = c).nodeType ? v(a, c, f) : t(a, c, f)); | |
return d = null, a | |
}]; k > e; e++) | |
if (c = N.relative[a[e].type]) h = [B(q(h), c)]; | |
else { | |
if (c = N.filter[a[e].type].apply(null, a[e].matches), c[oa]) { | |
for (f = ++e; k > f && !N.relative[a[f].type]; f++); | |
return D(1 < e && q(h), 1 < e && u(a.slice(0, e - 1).concat({ | |
value: " " === a[e - 2].type ? "*" : "" | |
})).replace(ia, "$1"), c, f > e && C(a.slice(e, f)), k > f && C(a = a.slice(f)), k > f && u(a)) | |
} | |
h.push(c) | |
} | |
return q(h) | |
} | |
function E(a, c) { | |
var k = 0 < c.length, | |
n = 0 < a.length, | |
e = function(f, e, v, t, h) { | |
var m, w, u, B = 0, | |
q = "0", | |
D = f && [], | |
C = [], | |
E = J, | |
A = f || n && N.find.TAG("*", h), | |
F = Kb += null == E ? 1 : Math.random() || .1, | |
nb = A.length; | |
for (h && (J = e !== H && e); q !== nb && null != (m = A[q]); q++) { | |
if (n && m) { | |
for (w = 0; u = a[w++];) | |
if (u(m, e, v)) { | |
t.push(m); | |
break | |
} | |
h && (Kb = F) | |
} | |
k && ((m = !u && m) && B--, f && D.push(m)) | |
} | |
if (B += q, k && q !== B) { | |
for (w = 0; u = c[w++];) u(D, C, e, v); | |
if (f) { | |
if (0 < B) | |
for (; q--;) D[q] || C[q] || (C[q] = ha.call(t)); | |
C = p(C) | |
} | |
Y.apply(t, C); | |
h && !f && 0 < C.length && 1 < B + c.length && d.uniqueSort(t) | |
} | |
return h && (Kb = F, J = E), D | |
}; | |
return k ? f(e) : e | |
} | |
var A, F, N, nb, G, Ca, K, z, J, fa, I, Ra, H, O, Ya, Xa, M, Ob, W, oa = "sizzle" + 1 * new Date, | |
Fa = a.document, | |
Kb = 0, | |
L = 0, | |
pc = c(), | |
sa = c(), | |
ca = c(), | |
U = function(a, d) { | |
return a === d && (I = !0), 0 | |
}, | |
Q = {}.hasOwnProperty, | |
va = [], | |
ha = va.pop, | |
Zb = va.push, | |
Y = va.push, | |
S = va.slice, | |
Hb = function(a, d) { | |
for (var c = 0, f = a.length; f > c; c++) | |
if (a[c] === d) return c; | |
return -1 | |
}, | |
R = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+".replace("w", "w#"), | |
Z = "\\[[\\x20\\t\\r\\n\\f]*((?:\\\\.|[\\w-]|[^\\x00-\\xa0])+)(?:[\\x20\\t\\r\\n\\f]*([*^$|!~]?=)[\\x20\\t\\r\\n\\f]*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + R + "))|)[\\x20\\t\\r\\n\\f]*\\]", | |
aa = ":((?:\\\\.|[\\w-]|[^\\x00-\\xa0])+)(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + Z + ")*)|.*)\\)|)", | |
ta = RegExp("[\\x20\\t\\r\\n\\f]+", "g"), | |
ia = RegExp("^[\\x20\\t\\r\\n\\f]+|((?:^|[^\\\\])(?:\\\\.)*)[\\x20\\t\\r\\n\\f]+$", "g"), | |
da = /^[\x20\t\r\n\f]*,[\x20\t\r\n\f]*/, | |
vb = /^[\x20\t\r\n\f]*([>+~]|[\x20\t\r\n\f])[\x20\t\r\n\f]*/, | |
sc = RegExp("=[\\x20\\t\\r\\n\\f]*([^\\]'\"]*?)[\\x20\\t\\r\\n\\f]*\\]", "g"), | |
ma = new RegExp(aa), | |
vc = new RegExp("^" + R + "$"), | |
Ab = { | |
ID: /^#((?:\\.|[\w-]|[^\x00-\xa0])+)/, | |
CLASS: /^\.((?:\\.|[\w-]|[^\x00-\xa0])+)/, | |
TAG: new RegExp("^(" + "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+".replace("w", "w*") + ")"), | |
ATTR: new RegExp("^" + Z), | |
PSEUDO: new RegExp("^" + aa), | |
CHILD: /^:(only|first|last|nth|nth-last)-(child|of-type)(?:\([\x20\t\r\n\f]*(even|odd|(([+-]|)(\d*)n|)[\x20\t\r\n\f]*(?:([+-]|)[\x20\t\r\n\f]*(\d+)|))[\x20\t\r\n\f]*\)|)/i, | |
bool: /^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$/i, | |
needsContext: /^[\x20\t\r\n\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\([\x20\t\r\n\f]*((?:-\d)?\d*)[\x20\t\r\n\f]*\)|)(?=[^-]|$)/i | |
}, | |
Jb = /^(?:input|select|textarea|button)$/i, | |
Lb = /^h\d$/i, | |
P = /^[^{]+\{\s*\[native \w/, | |
ua = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, | |
pb = /[+~]/, | |
Da = /'|\\/g, | |
Va = RegExp("\\\\([\\da-f]{1,6}[\\x20\\t\\r\\n\\f]?|([\\x20\\t\\r\\n\\f])|.)", "ig"), | |
T = function(a, d, c) { | |
a = "0x" + d - 65536; | |
return a !== a || c ? d : 0 > a ? String.fromCharCode(a + 65536) : String.fromCharCode(a >> 10 | 55296, 1023 & a | 56320) | |
}, | |
Bb = function() { | |
Ra() | |
}; | |
try { | |
Y.apply(va = S.call(Fa.childNodes), Fa.childNodes), va[Fa.childNodes.length].nodeType | |
} catch (Zc) { | |
Y = { | |
apply: va.length ? function(a, d) { | |
Zb.apply(a, S.call(d)) | |
} : function(a, d) { | |
for (var c = a.length, f = 0; a[c++] = d[f++];); | |
a.length = c - 1 | |
} | |
} | |
} | |
F = d.support = {}; | |
G = d.isXML = function(a) { | |
return (a = a && (a.ownerDocument || a).documentElement) ? "HTML" !== a.nodeName : !1 | |
}; | |
Ra = d.setDocument = function(a) { | |
var d, c, f = a ? a.ownerDocument || a : Fa; | |
return f !== H && 9 === f.nodeType && f.documentElement ? (H = f, O = f.documentElement, c = f.defaultView, c && c !== c.top && (c.addEventListener ? c.addEventListener("unload", Bb, !1) : c.attachEvent && c.attachEvent("onunload", Bb)), Ya = !G(f), F.attributes = k(function(a) { | |
return a.className = "i", !a.getAttribute("className") | |
}), F.getElementsByTagName = k(function(a) { | |
return a.appendChild(f.createComment("")), !a.getElementsByTagName("*").length | |
}), F.getElementsByClassName = P.test(f.getElementsByClassName), F.getById = k(function(a) { | |
return O.appendChild(a).id = oa, !f.getElementsByName || !f.getElementsByName(oa).length | |
}), F.getById ? (N.find.ID = function(a, d) { | |
if ("undefined" != typeof d.getElementById && Ya) { | |
var c = d.getElementById(a); | |
return c && c.parentNode ? [c] : [] | |
} | |
}, N.filter.ID = function(a) { | |
var d = a.replace(Va, T); | |
return function(a) { | |
return a.getAttribute("id") === d | |
} | |
}) : (delete N.find.ID, N.filter.ID = function(a) { | |
var d = a.replace(Va, T); | |
return function(a) { | |
return (a = "undefined" != typeof a.getAttributeNode && a.getAttributeNode("id")) && a.value === d | |
} | |
}), N.find.TAG = F.getElementsByTagName ? function(a, d) { | |
return "undefined" != typeof d.getElementsByTagName ? d.getElementsByTagName(a) : F.qsa ? d.querySelectorAll(a) : void 0 | |
} : function(a, d) { | |
var c, f = [], | |
k = 0, | |
n = d.getElementsByTagName(a); | |
if ("*" === a) { | |
for (; c = n[k++];) 1 === c.nodeType && f.push(c); | |
return f | |
} | |
return n | |
}, N.find.CLASS = F.getElementsByClassName && function(a, d) { | |
return Ya ? d.getElementsByClassName(a) : void 0 | |
}, M = [], Xa = [], (F.qsa = P.test(f.querySelectorAll)) && (k(function(a) { | |
O.appendChild(a).innerHTML = "<a id='" + oa + "'></a><select id='" + oa + "-\f]' msallowcapture=''><option selected=''></option></select>"; | |
a.querySelectorAll("[msallowcapture^='']").length && Xa.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"); | |
a.querySelectorAll("[selected]").length || Xa.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)"); | |
a.querySelectorAll("[id~=" + oa + "-]").length || Xa.push("~="); | |
a.querySelectorAll(":checked").length || Xa.push(":checked"); | |
a.querySelectorAll("a#" + oa + "+*").length || Xa.push(".#.+[+~]") | |
}), k(function(a) { | |
var d = f.createElement("input"); | |
d.setAttribute("type", "hidden"); | |
a.appendChild(d).setAttribute("name", "D"); | |
a.querySelectorAll("[name=d]").length && Xa.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?="); | |
a.querySelectorAll(":enabled").length || Xa.push(":enabled", ":disabled"); | |
a.querySelectorAll("*,:x"); | |
Xa.push(",.*:") | |
})), (F.matchesSelector = P.test(Ob = O.matches || O.webkitMatchesSelector || O.mozMatchesSelector || O.oMatchesSelector || O.msMatchesSelector)) && k(function(a) { | |
F.disconnectedMatch = Ob.call(a, "div"); | |
Ob.call(a, "[s!='']:x"); | |
M.push("!=", aa) | |
}), Xa = Xa.length && new RegExp(Xa.join("|")), M = M.length && new RegExp(M.join("|")), d = P.test(O.compareDocumentPosition), W = d || P.test(O.contains) ? function(a, d) { | |
var c = 9 === a.nodeType ? a.documentElement : a, | |
f = d && d.parentNode; | |
return a === f || !(!f || 1 !== f.nodeType || !(c.contains ? c.contains(f) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(f))) | |
} : function(a, d) { | |
if (d) | |
for (; d = d.parentNode;) | |
if (d === a) return !0; | |
return !1 | |
}, U = d ? function(a, d) { | |
if (a === d) return I = !0, 0; | |
var c = !a.compareDocumentPosition - !d.compareDocumentPosition; | |
return c ? c : (c = (a.ownerDocument || a) === (d.ownerDocument || d) ? a.compareDocumentPosition(d) : 1, 1 & c || !F.sortDetached && d.compareDocumentPosition(a) === c ? a === f || a.ownerDocument === Fa && W(Fa, a) ? -1 : d === f || d.ownerDocument === Fa && W(Fa, d) ? 1 : fa ? Hb(fa, a) - Hb(fa, d) : 0 : 4 & c ? -1 : 1) | |
} : function(a, d) { | |
if (a === d) return I = !0, 0; | |
var c, k = 0; | |
c = a.parentNode; | |
var n = d.parentNode, | |
v = [a], | |
t = [d]; | |
if (!c || !n) return a === f ? -1 : d === f ? 1 : c ? -1 : n ? 1 : fa ? Hb(fa, a) - Hb(fa, d) : 0; | |
if (c === n) return e(a, d); | |
for (c = a; c = c.parentNode;) v.unshift(c); | |
for (c = d; c = c.parentNode;) t.unshift(c); | |
for (; v[k] === t[k];) k++; | |
return k ? e(v[k], t[k]) : v[k] === Fa ? -1 : t[k] === Fa ? 1 : 0 | |
}, f) : H | |
}; | |
d.matches = function(a, c) { | |
return d(a, null, null, c) | |
}; | |
d.matchesSelector = function(a, c) { | |
if ((a.ownerDocument || a) !== H && Ra(a), c = c.replace(sc, "='$1']"), !(!F.matchesSelector || !Ya || M && M.test(c) || Xa && Xa.test(c))) try { | |
var f = Ob.call(a, c); | |
if (f || F.disconnectedMatch || a.document && 11 !== a.document.nodeType) return f | |
} catch (ad) {} | |
return 0 < d(c, H, null, [a]).length | |
}; | |
d.contains = function(a, d) { | |
return (a.ownerDocument || a) !== H && Ra(a), W(a, d) | |
}; | |
d.attr = function(a, d) { | |
(a.ownerDocument || a) !== H && Ra(a); | |
var c = N.attrHandle[d.toLowerCase()], | |
c = c && Q.call(N.attrHandle, d.toLowerCase()) ? c(a, d, !Ya) : void 0; | |
return void 0 !== c ? c : F.attributes || !Ya ? a.getAttribute(d) : (c = a.getAttributeNode(d)) && c.specified ? c.value : null | |
}; | |
d.error = function(a) { | |
throw Error("Syntax error, unrecognized expression: " + a) | |
}; | |
d.uniqueSort = function(a) { | |
var d, c = [], | |
f = 0, | |
k = 0; | |
if (I = !F.detectDuplicates, fa = !F.sortStable && a.slice(0), a.sort(U), I) { | |
for (; d = a[k++];) d === a[k] && (f = c.push(k)); | |
for (; f--;) a.splice(c[f], 1) | |
} | |
return fa = null, a | |
}; | |
nb = d.getText = function(a) { | |
var d, c = "", | |
f = 0; | |
if (d = a.nodeType) | |
if (1 === d || 9 === d || 11 === d) { | |
if ("string" == typeof a.textContent) return a.textContent; | |
for (a = a.firstChild; a; a = a.nextSibling) c += nb(a) | |
} else { | |
if (3 === d || 4 === d) return a.nodeValue | |
} else | |
for (; d = a[f++];) c += nb(d); | |
return c | |
}; | |
N = d.selectors = { | |
cacheLength: 50, | |
createPseudo: f, | |
match: Ab, | |
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(Va, T), a[3] = (a[3] || a[4] || a[5] || "").replace(Va, T), "~=" === 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] || d.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] && d.error(a[0]), a | |
}, | |
PSEUDO: function(a) { | |
var d, c = !a[6] && a[2]; | |
return Ab.CHILD.test(a[0]) ? null : (a[3] ? a[2] = a[4] || a[5] || "" : c && ma.test(c) && (d = Ca(c, !0)) && (d = c.indexOf(")", c.length - d) - c.length) && (a[0] = a[0].slice(0, d), a[2] = c.slice(0, d)), a.slice(0, 3)) | |
} | |
}, | |
filter: { | |
TAG: function(a) { | |
var d = a.replace(Va, T).toLowerCase(); | |
return "*" === a ? function() { | |
return !0 | |
} : function(a) { | |
return a.nodeName && a.nodeName.toLowerCase() === d | |
} | |
}, | |
CLASS: function(a) { | |
var d = pc[a + " "]; | |
return d || (d = new RegExp("(^|[\\x20\\t\\r\\n\\f])" + a + "([\\x20\\t\\r\\n\\f]|$)"), pc(a, function(a) { | |
return d.test("string" == typeof a.className && a.className || "undefined" != typeof a.getAttribute && a.getAttribute("class") || "") | |
})) | |
}, | |
ATTR: function(a, c, f) { | |
return function(k) { | |
k = d.attr(k, a); | |
return null == k ? "!=" === c : c ? (k += "", "=" === c ? k === f : "!=" === c ? k !== f : "^=" === c ? f && 0 === k.indexOf(f) : "*=" === c ? f && -1 < k.indexOf(f) : "$=" === c ? f && k.slice(-f.length) === f : "~=" === c ? -1 < (" " + k.replace(ta, " ") + " ").indexOf(f) : "|=" === c ? k === f || k.slice(0, f.length + 1) === f + "-" : !1) : !0 | |
} | |
}, | |
CHILD: function(a, d, c, f, k) { | |
var n = "nth" !== a.slice(0, 3), | |
e = "last" !== a.slice(-4), | |
v = "of-type" === d; | |
return 1 === f && 0 === k ? function(a) { | |
return !!a.parentNode | |
} : function(d, c, t) { | |
var h, m, w, u, B; | |
c = n !== e ? "nextSibling" : "previousSibling"; | |
var q = d.parentNode, | |
p = v && d.nodeName.toLowerCase(); | |
t = !t && !v; | |
if (q) { | |
if (n) { | |
for (; c;) { | |
for (m = d; m = m[c];) | |
if (v ? m.nodeName.toLowerCase() === p : 1 === m.nodeType) return !1; | |
B = c = "only" === a && !B && "nextSibling" | |
} | |
return !0 | |
} | |
if (B = [e ? q.firstChild : q.lastChild], e && t) | |
for (t = q[oa] || (q[oa] = {}), h = t[a] || [], u = h[0] === Kb && h[1], w = h[0] === Kb && h[2], m = u && q.childNodes[u]; m = ++u && m && m[c] || (w = u = 0) || B.pop();) { | |
if (1 === m.nodeType && ++w && m === d) { | |
t[a] = [Kb, u, w]; | |
break | |
} | |
} else if (t && (h = (d[oa] || (d[oa] = {}))[a]) && h[0] === Kb) w = h[1]; | |
else | |
for (; | |
(m = ++u && m && m[c] || (w = u = 0) || B.pop()) && ((v ? m.nodeName.toLowerCase() !== p : 1 !== m.nodeType) || !++w || (t && ((m[oa] || (m[oa] = {}))[a] = [Kb, w]), m !== d));); | |
return w -= k, w === f || 0 === w % f && 0 <= w / f | |
} | |
} | |
}, | |
PSEUDO: function(a, c) { | |
var k, n = N.pseudos[a] || N.setFilters[a.toLowerCase()] || d.error("unsupported pseudo: " + a); | |
return n[oa] ? n(c) : 1 < n.length ? (k = [a, a, "", c], N.setFilters.hasOwnProperty(a.toLowerCase()) ? f(function(a, d) { | |
for (var f, k = n(a, c), e = k.length; e--;) f = Hb(a, k[e]), a[f] = !(d[f] = k[e]) | |
}) : function(a) { | |
return n(a, 0, k) | |
}) : n | |
} | |
}, | |
pseudos: { | |
not: f(function(a) { | |
var d = [], | |
c = [], | |
k = K(a.replace(ia, "$1")); | |
return k[oa] ? f(function(a, d, c, f) { | |
var n; | |
c = k(a, null, f, []); | |
for (f = a.length; f--;)(n = c[f]) && (a[f] = !(d[f] = n)) | |
}) : function(a, f, n) { | |
return d[0] = a, k(d, null, n, c), d[0] = null, !c.pop() | |
} | |
}), | |
has: f(function(a) { | |
return function(c) { | |
return 0 < d(a, c).length | |
} | |
}), | |
contains: f(function(a) { | |
return a = a.replace(Va, T), | |
function(d) { | |
return -1 < (d.textContent || d.innerText || nb(d)).indexOf(a) | |
} | |
}), | |
lang: f(function(a) { | |
return vc.test(a || "") || d.error("unsupported lang: " + a), a = a.replace(Va, T).toLowerCase(), | |
function(d) { | |
var c; | |
do { | |
if (c = Ya ? d.lang : d.getAttribute("xml:lang") || d.getAttribute("lang")) return c = c.toLowerCase(), c === a || 0 === c.indexOf(a + "-") | |
} while ((d = d.parentNode) && 1 === d.nodeType); | |
return !1 | |
} | |
}), | |
target: function(d) { | |
var c = a.location && a.location.hash; | |
return c && c.slice(1) === d.id | |
}, | |
root: function(a) { | |
return a === O | |
}, | |
focus: function(a) { | |
return a === H.activeElement && (!H.hasFocus || H.hasFocus()) && !!(a.type || a.href || ~a.tabIndex) | |
}, | |
enabled: function(a) { | |
return !1 === a.disabled | |
}, | |
disabled: function(a) { | |
return !0 === a.disabled | |
}, | |
checked: function(a) { | |
var d = a.nodeName.toLowerCase(); | |
return "input" === d && !!a.checked || "option" === d && !!a.selected | |
}, | |
selected: function(a) { | |
return a.parentNode && a.parentNode.selectedIndex, !0 === a.selected | |
}, | |
empty: function(a) { | |
for (a = a.firstChild; a; a = a.nextSibling) | |
if (6 > a.nodeType) return !1; | |
return !0 | |
}, | |
parent: function(a) { | |
return !N.pseudos.empty(a) | |
}, | |
header: function(a) { | |
return Lb.test(a.nodeName) | |
}, | |
input: function(a) { | |
return Jb.test(a.nodeName) | |
}, | |
button: function(a) { | |
var d = a.nodeName.toLowerCase(); | |
return "input" === d && "button" === a.type || "button" === d | |
}, | |
text: function(a) { | |
var d; | |
return "input" === a.nodeName.toLowerCase() && "text" === a.type && (null == (d = a.getAttribute("type")) || "text" === d.toLowerCase()) | |
}, | |
first: h(function() { | |
return [0] | |
}), | |
last: h(function(a, d) { | |
return [d - 1] | |
}), | |
eq: h(function(a, d, c) { | |
return [0 > c ? c + d : c] | |
}), | |
even: h(function(a, d) { | |
for (var c = 0; d > c; c += 2) a.push(c); | |
return a | |
}), | |
odd: h(function(a, d) { | |
for (var c = 1; d > c; c += 2) a.push(c); | |
return a | |
}), | |
lt: h(function(a, d, c) { | |
for (d = 0 > c ? c + d : c; 0 <= --d;) a.push(d); | |
return a | |
}), | |
gt: h(function(a, d, c) { | |
for (c = 0 > c ? c + d : c; ++c < d;) a.push(c); | |
return a | |
}) | |
} | |
}; | |
N.pseudos.nth = N.pseudos.eq; | |
for (A in { | |
radio: !0, | |
checkbox: !0, | |
file: !0, | |
password: !0, | |
image: !0 | |
}) N.pseudos[A] = v(A); | |
for (A in { | |
submit: !0, | |
reset: !0 | |
}) N.pseudos[A] = t(A); | |
w.prototype = N.filters = N.pseudos; | |
N.setFilters = new w; | |
Ca = d.tokenize = function(a, c) { | |
var f, k, n, e, v, t, h; | |
if (v = sa[a + " "]) return c ? 0 : v.slice(0); | |
v = a; | |
t = []; | |
for (h = N.preFilter; v;) { | |
f && !(k = da.exec(v)) || (k && (v = v.slice(k[0].length) || v), t.push(n = [])); | |
f = !1; | |
(k = vb.exec(v)) && (f = k.shift(), n.push({ | |
value: f, | |
type: k[0].replace(ia, " ") | |
}), v = v.slice(f.length)); | |
for (e in N.filter) !(k = Ab[e].exec(v)) || h[e] && !(k = h[e](k)) || (f = k.shift(), n.push({ | |
value: f, | |
type: e, | |
matches: k | |
}), v = v.slice(f.length)); | |
if (!f) break | |
} | |
return c ? v.length : v ? d.error(a) : sa(a, t).slice(0) | |
}; | |
return K = d.compile = function(a, d) { | |
var c, f = [], | |
k = [], | |
n = ca[a + " "]; | |
if (!n) { | |
d || (d = Ca(a)); | |
for (c = d.length; c--;) n = C(d[c]), n[oa] ? f.push(n) : k.push(n); | |
n = ca(a, E(k, f)); | |
n.selector = a | |
} | |
return n | |
}, z = d.select = function(a, d, c, f) { | |
var k, n, e, v, t, h = "function" == typeof a && a, | |
w = !f && Ca(a = h.selector || a); | |
if (c = c || [], 1 === w.length) { | |
if (n = w[0] = w[0].slice(0), 2 < n.length && "ID" === (e = n[0]).type && F.getById && 9 === d.nodeType && Ya && N.relative[n[1].type]) { | |
if (d = (N.find.ID(e.matches[0].replace(Va, T), d) || [])[0], !d) return c; | |
h && (d = d.parentNode); | |
a = a.slice(n.shift().value.length) | |
} | |
for (k = Ab.needsContext.test(a) ? 0 : n.length; k-- && (e = n[k], !N.relative[v = e.type]);) | |
if ((t = N.find[v]) && (f = t(e.matches[0].replace(Va, T), pb.test(n[0].type) && m(d.parentNode) || d))) { | |
if (n.splice(k, 1), a = f.length && u(n), !a) return Y.apply(c, f), c; | |
break | |
} | |
} | |
return (h || K(a, w))(f, d, !Ya, c, pb.test(a) && m(d.parentNode) || d), c | |
}, F.sortStable = oa.split("").sort(U).join("") === oa, F.detectDuplicates = !!I, Ra(), F.sortDetached = k(function(a) { | |
return 1 & a.compareDocumentPosition(H.createElement("div")) | |
}), k(function(a) { | |
return a.innerHTML = "<a href='#'></a>", "#" === a.firstChild.getAttribute("href") | |
}) || n("type|href|height|width", function(a, d, c) { | |
return c ? void 0 : a.getAttribute(d, "type" === d.toLowerCase() ? 1 : 2) | |
}), F.attributes && k(function(a) { | |
return a.innerHTML = "<input/>", a.firstChild.setAttribute("value", ""), "" === a.firstChild.getAttribute("value") | |
}) || n("value", function(a, d, c) { | |
return c || "input" !== a.nodeName.toLowerCase() ? void 0 : a.defaultValue | |
}), k(function(a) { | |
return null == a.getAttribute("disabled") | |
}) || n("checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", function(a, d, c) { | |
var f; | |
return c ? void 0 : !0 === a[d] ? d.toLowerCase() : (f = a.getAttributeNode(d)) && f.specified ? f.value : null | |
}), d | |
}(d); | |
z.find = za; | |
z.expr = za.selectors; | |
z.expr[":"] = z.expr.pseudos; | |
z.unique = za.uniqueSort; | |
z.text = za.getText; | |
z.isXMLDoc = za.isXML; | |
z.contains = za.contains; | |
var Ta = z.expr.match.needsContext, | |
ib = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, | |
Ib = /^.[^:#\[\.,]*$/; | |
z.filter = function(a, d, c) { | |
var f = d[0]; | |
return c && (a = ":not(" + a + ")"), 1 === d.length && 1 === f.nodeType ? z.find.matchesSelector(f, a) ? [f] : [] : z.find.matches(a, z.grep(d, function(a) { | |
return 1 === a.nodeType | |
})) | |
}; | |
z.fn.extend({ | |
find: function(a) { | |
var d, c = [], | |
f = this, | |
k = f.length; | |
if ("string" != typeof a) return this.pushStack(z(a).filter(function() { | |
for (d = 0; k > d; d++) | |
if (z.contains(f[d], this)) return !0 | |
})); | |
for (d = 0; k > d; d++) z.find(a, f[d], c); | |
return c = this.pushStack(1 < k ? z.unique(c) : c), c.selector = this.selector ? this.selector + " " + a : a, c | |
}, | |
filter: function(a) { | |
return this.pushStack(m(this, a || [], !1)) | |
}, | |
not: function(a) { | |
return this.pushStack(m(this, a || [], !0)) | |
}, | |
is: function(a) { | |
return !!m(this, "string" == typeof a && Ta.test(a) ? z(a) : a || [], !1).length | |
} | |
}); | |
var jb, X = d.document, | |
kb = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/; | |
(z.fn.init = function(a, d) { | |
var c, f; | |
if (!a) return this; | |
if ("string" == typeof a) { | |
if (c = "<" === a.charAt(0) && ">" === a.charAt(a.length - 1) && 3 <= a.length ? [null, a, null] : kb.exec(a), !c || !c[1] && d) return !d || d.jquery ? (d || jb).find(a) : this.constructor(d).find(a); | |
if (c[1]) { | |
if (d = d instanceof z ? d[0] : d, z.merge(this, z.parseHTML(c[1], d && d.nodeType ? d.ownerDocument || d : X, !0)), ib.test(c[1]) && z.isPlainObject(d)) | |
for (c in d) z.isFunction(this[c]) ? this[c](d[c]) : this.attr(c, d[c]); | |
return this | |
} | |
if (f = X.getElementById(c[2]), f && f.parentNode) { | |
if (f.id !== c[2]) return jb.find(a); | |
this.length = 1; | |
this[0] = f | |
} | |
return this.context = X, this.selector = a, this | |
} | |
return a.nodeType ? (this.context = this[0] = a, this.length = 1, this) : z.isFunction(a) ? "undefined" != typeof jb.ready ? jb.ready(a) : a(z) : (void 0 !== a.selector && (this.selector = a.selector, this.context = a.context), z.makeArray(a, this)) | |
}).prototype = z.fn; | |
jb = z(X); | |
var La = /^(?:parents|prev(?:Until|All))/, | |
Ga = { | |
children: !0, | |
contents: !0, | |
next: !0, | |
prev: !0 | |
}; | |
z.extend({ | |
dir: function(a, d, c) { | |
var f = []; | |
for (a = a[d]; a && 9 !== a.nodeType && (void 0 === c || 1 !== a.nodeType || !z(a).is(c));) 1 === a.nodeType && f.push(a), a = a[d]; | |
return f | |
}, | |
sibling: function(a, d) { | |
for (var c = []; a; a = a.nextSibling) 1 === a.nodeType && a !== d && c.push(a); | |
return c | |
} | |
}); | |
z.fn.extend({ | |
has: function(a) { | |
var d, c = z(a, this), | |
f = c.length; | |
return this.filter(function() { | |
for (d = 0; f > d; d++) | |
if (z.contains(this, c[d])) return !0 | |
}) | |
}, | |
closest: function(a, d) { | |
for (var c, f = 0, k = this.length, n = [], e = Ta.test(a) || "string" != typeof a ? z(a, d || this.context) : 0; k > f; f++) | |
for (c = this[f]; c && c !== d; c = c.parentNode) | |
if (11 > c.nodeType && (e ? -1 < e.index(c) : 1 === c.nodeType && z.find.matchesSelector(c, a))) { | |
n.push(c); | |
break | |
} | |
return this.pushStack(1 < n.length ? z.unique(n) : n) | |
}, | |
index: function(a) { | |
return a ? "string" == typeof a ? z.inArray(this[0], z(a)) : z.inArray(a.jquery ? a[0] : a, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 | |
}, | |
add: function(a, d) { | |
return this.pushStack(z.unique(z.merge(this.get(), z(a, d)))) | |
}, | |
addBack: function(a) { | |
return this.add(null == a ? this.prevObject : this.prevObject.filter(a)) | |
} | |
}); | |
z.each({ | |
parent: function(a) { | |
return (a = a.parentNode) && 11 !== a.nodeType ? a : null | |
}, | |
parents: function(a) { | |
return z.dir(a, "parentNode") | |
}, | |
parentsUntil: function(a, d, c) { | |
return z.dir(a, "parentNode", c) | |
}, | |
next: function(a) { | |
return h(a, "nextSibling") | |
}, | |
prev: function(a) { | |
return h(a, "previousSibling") | |
}, | |
nextAll: function(a) { | |
return z.dir(a, "nextSibling") | |
}, | |
prevAll: function(a) { | |
return z.dir(a, "previousSibling") | |
}, | |
nextUntil: function(a, d, c) { | |
return z.dir(a, "nextSibling", c) | |
}, | |
prevUntil: function(a, d, c) { | |
return z.dir(a, "previousSibling", c) | |
}, | |
siblings: function(a) { | |
return z.sibling((a.parentNode || {}).firstChild, a) | |
}, | |
children: function(a) { | |
return z.sibling(a.firstChild) | |
}, | |
contents: function(a) { | |
return z.nodeName(a, "iframe") ? a.contentDocument || a.contentWindow.document : z.merge([], a.childNodes) | |
} | |
}, function(a, d) { | |
z.fn[a] = function(c, f) { | |
var k = z.map(this, d, c); | |
return "Until" !== a.slice(-5) && (f = c), f && "string" == typeof f && (k = z.filter(f, k)), 1 < this.length && (Ga[a] || (k = z.unique(k)), La.test(a) && (k = k.reverse())), this.pushStack(k) | |
} | |
}); | |
var Ha = /\S+/g, | |
Sa = {}; | |
z.Callbacks = function(a) { | |
a = "string" == typeof a ? Sa[a] || p(a) : z.extend({}, a); | |
var d, c, f, k, n, e, v = [], | |
t = !a.once && [], | |
h = function(w) { | |
c = a.memory && w; | |
f = !0; | |
n = e || 0; | |
e = 0; | |
k = v.length; | |
for (d = !0; v && k > n; n++) | |
if (!1 === v[n].apply(w[0], w[1]) && a.stopOnFalse) { | |
c = !1; | |
break | |
} | |
d = !1; | |
v && (t ? t.length && h(t.shift()) : c ? v = [] : m.disable()) | |
}, | |
m = { | |
add: function() { | |
if (v) { | |
var f = v.length; | |
! function Ac(d) { | |
z.each(d, function(d, c) { | |
var f = z.type(c); | |
"function" === f ? a.unique && m.has(c) || v.push(c) : c && c.length && "string" !== f && Ac(c) | |
}) | |
}(arguments); | |
d ? k = v.length : c && (e = f, h(c)) | |
} | |
return this | |
}, | |
remove: function() { | |
return v && z.each(arguments, function(a, c) { | |
for (var f; - 1 < (f = z.inArray(c, v, f));) v.splice(f, 1), d && (k >= f && k--, n >= f && n--) | |
}), this | |
}, | |
has: function(a) { | |
return a ? -1 < z.inArray(a, v) : !(!v || !v.length) | |
}, | |
empty: function() { | |
return v = [], k = 0, this | |
}, | |
disable: function() { | |
return v = t = c = void 0, this | |
}, | |
disabled: function() { | |
return !v | |
}, | |
lock: function() { | |
return t = void 0, c || m.disable(), this | |
}, | |
locked: function() { | |
return !t | |
}, | |
fireWith: function(a, c) { | |
return !v || f && !t || (c = c || [], c = [a, c.slice ? c.slice() : c], d ? t.push(c) : h(c)), this | |
}, | |
fire: function() { | |
return m.fireWith(this, arguments), this | |
}, | |
fired: function() { | |
return !!f | |
} | |
}; | |
return m | |
}; | |
z.extend({ | |
Deferred: function(a) { | |
var d = [ | |
["resolve", "done", z.Callbacks("once memory"), "resolved"], | |
["reject", "fail", z.Callbacks("once memory"), "rejected"], | |
["notify", "progress", z.Callbacks("memory")] | |
], | |
c = "pending", | |
f = { | |
state: function() { | |
return c | |
}, | |
always: function() { | |
return k.done(arguments).fail(arguments), this | |
}, | |
then: function() { | |
var a = arguments; | |
return z.Deferred(function(c) { | |
z.each(d, function(d, n) { | |
var e = z.isFunction(a[d]) && a[d]; | |
k[n[1]](function() { | |
var a = e && e.apply(this, arguments); | |
a && z.isFunction(a.promise) ? a.promise().done(c.resolve).fail(c.reject).progress(c.notify) : c[n[0] + "With"](this === f ? c.promise() : this, e ? [a] : arguments) | |
}) | |
}); | |
a = null | |
}).promise() | |
}, | |
promise: function(a) { | |
return null != a ? z.extend(a, f) : f | |
} | |
}, | |
k = {}; | |
return f.pipe = f.then, z.each(d, function(a, n) { | |
var e = n[2], | |
v = n[3]; | |
f[n[1]] = e.add; | |
v && e.add(function() { | |
c = v | |
}, d[1 ^ a][2].disable, d[2][2].lock); | |
k[n[0]] = function() { | |
return k[n[0] + "With"](this === k ? f : this, arguments), this | |
}; | |
k[n[0] + "With"] = e.fireWith | |
}), f.promise(k), a && a.call(k, k), k | |
}, | |
when: function(a) { | |
var d = 0, | |
c = na.call(arguments), | |
f = c.length, | |
k = 1 !== f || a && z.isFunction(a.promise) ? f : 0, | |
n = 1 === k ? a : z.Deferred(), | |
e = function(a, d, c) { | |
return function(f) { | |
d[a] = this; | |
c[a] = 1 < arguments.length ? na.call(arguments) : f; | |
c === v ? n.notifyWith(d, c) : --k || n.resolveWith(d, c) | |
} | |
}, | |
v, t, h; | |
if (1 < f) | |
for (v = Array(f), t = Array(f), h = Array(f); f > d; d++) c[d] && z.isFunction(c[d].promise) ? c[d].promise().done(e(d, h, c)).fail(n.reject).progress(e(d, t, v)) : --k; | |
return k || n.resolveWith(h, c), n.promise() | |
} | |
}); | |
var Ua; | |
z.fn.ready = function(a) { | |
return z.ready.promise().done(a), this | |
}; | |
z.extend({ | |
isReady: !1, | |
readyWait: 1, | |
holdReady: function(a) { | |
a ? z.readyWait++ : z.ready(!0) | |
}, | |
ready: function(a) { | |
if (!0 === a ? !--z.readyWait : !z.isReady) { | |
if (!X.body) return setTimeout(z.ready); | |
z.isReady = !0; | |
!0 !== a && 0 < --z.readyWait || (Ua.resolveWith(X, [z]), z.fn.triggerHandler && (z(X).triggerHandler("ready"), z(X).off("ready"))) | |
} | |
} | |
}); | |
z.ready.promise = function(c) { | |
if (!Ua) | |
if (Ua = z.Deferred(), "complete" === X.readyState) setTimeout(z.ready); | |
else if (X.addEventListener) X.addEventListener("DOMContentLoaded", a, !1), d.addEventListener("load", a, !1); | |
else { | |
X.attachEvent("onreadystatechange", a); | |
d.attachEvent("onload", a); | |
var f = !1; | |
try { | |
f = null == d.frameElement && X.documentElement | |
} catch (xc) {} | |
f && f.doScroll && ! function tc() { | |
if (!z.isReady) { | |
try { | |
f.doScroll("left") | |
} catch (yc) { | |
return setTimeout(tc, 50) | |
} | |
q(); | |
z.ready() | |
} | |
}() | |
} | |
return Ua.promise(c) | |
}; | |
for (var ub in z(P)) break; | |
P.ownLast = "0" !== ub; | |
P.inlineBlockNeedsLayout = !1; | |
z(function() { | |
var a, d, c, f; | |
(c = X.getElementsByTagName("body")[0]) && c.style && (d = X.createElement("div"), f = X.createElement("div"), f.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", c.appendChild(f).appendChild(d), "undefined" !== typeof d.style.zoom && (d.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1", P.inlineBlockNeedsLayout = a = 3 === d.offsetWidth, a && (c.style.zoom = 1)), c.removeChild(f)) | |
}); | |
(function() { | |
var a = X.createElement("div"); | |
if (null == P.deleteExpando) { | |
P.deleteExpando = !0; | |
try { | |
delete a.test | |
} catch (qc) { | |
P.deleteExpando = !1 | |
} | |
} | |
})(); | |
z.acceptData = function(a) { | |
var d = z.noData[(a.nodeName + " ").toLowerCase()], | |
c = +a.nodeType || 1; | |
return 1 !== c && 9 !== c ? !1 : !d || !0 !== d && a.getAttribute("classid") === d | |
}; | |
var ab = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, | |
yb = /([A-Z])/g; | |
z.extend({ | |
cache: {}, | |
noData: { | |
"applet ": !0, | |
"embed ": !0, | |
"object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" | |
}, | |
hasData: function(a) { | |
return a = a.nodeType ? z.cache[a[z.expando]] : a[z.expando], !!a && !k(a) | |
}, | |
data: function(a, d, c) { | |
return n(a, d, c) | |
}, | |
removeData: function(a, d) { | |
return t(a, d) | |
}, | |
_data: function(a, d, c) { | |
return n(a, d, c, !0) | |
}, | |
_removeData: function(a, d) { | |
return t(a, d, !0) | |
} | |
}); | |
z.fn.extend({ | |
data: function(a, d) { | |
var c, k, n, e = this[0], | |
v = e && e.attributes; | |
if (void 0 === a) { | |
if (this.length && (n = z.data(e), 1 === e.nodeType && !z._data(e, "parsedAttrs"))) { | |
for (c = v.length; c--;) v[c] && (k = v[c].name, 0 === k.indexOf("data-") && (k = z.camelCase(k.slice(5)), f(e, k, n[k]))); | |
z._data(e, "parsedAttrs", !0) | |
} | |
return n | |
} | |
return "object" == typeof a ? this.each(function() { | |
z.data(this, a) | |
}) : 1 < arguments.length ? this.each(function() { | |
z.data(this, a, d) | |
}) : e ? f(e, a, z.data(e, a)) : void 0 | |
}, | |
removeData: function(a) { | |
return this.each(function() { | |
z.removeData(this, a) | |
}) | |
} | |
}); | |
z.extend({ | |
queue: function(a, d, c) { | |
var f; | |
return a ? (d = (d || "fx") + "queue", f = z._data(a, d), c && (!f || z.isArray(c) ? f = z._data(a, d, z.makeArray(c)) : f.push(c)), f || []) : void 0 | |
}, | |
dequeue: function(a, d) { | |
d = d || "fx"; | |
var c = z.queue(a, d), | |
f = c.length, | |
k = c.shift(), | |
n = z._queueHooks(a, d), | |
e = function() { | |
z.dequeue(a, d) | |
}; | |
"inprogress" === k && (k = c.shift(), f--); | |
k && ("fx" === d && c.unshift("inprogress"), delete n.stop, k.call(a, e, n)); | |
!f && n && n.empty.fire() | |
}, | |
_queueHooks: function(a, d) { | |
var c = d + "queueHooks"; | |
return z._data(a, c) || z._data(a, c, { | |
empty: z.Callbacks("once memory").add(function() { | |
z._removeData(a, d + "queue"); | |
z._removeData(a, c) | |
}) | |
}) | |
} | |
}); | |
z.fn.extend({ | |
queue: function(a, d) { | |
var c = 2; | |
return "string" != typeof a && (d = a, a = "fx", c--), arguments.length < c ? z.queue(this[0], a) : void 0 === d ? this : this.each(function() { | |
var c = z.queue(this, a, d); | |
z._queueHooks(this, a); | |
"fx" === a && "inprogress" !== c[0] && z.dequeue(this, a) | |
}) | |
}, | |
dequeue: function(a) { | |
return this.each(function() { | |
z.dequeue(this, a) | |
}) | |
}, | |
clearQueue: function(a) { | |
return this.queue(a || "fx", []) | |
}, | |
promise: function(a, d) { | |
var c, f = 1, | |
k = z.Deferred(), | |
n = this, | |
e = this.length, | |
v = function() { | |
--f || k.resolveWith(n, [n]) | |
}; | |
"string" != typeof a && (d = a, a = void 0); | |
for (a = a || "fx"; e--;)(c = z._data(n[e], a + "queueHooks")) && c.empty && (f++, c.empty.add(v)); | |
return v(), k.promise(d) | |
} | |
}); | |
var Ma = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, | |
ia = ["Top", "Right", "Bottom", "Left"], | |
va = function(a, d) { | |
return a = d || a, "none" === z.css(a, "display") || !z.contains(a.ownerDocument, a) | |
}, | |
vb = z.access = function(a, d, c, f, k, n, e) { | |
var v = 0, | |
t = a.length, | |
h = null == c; | |
if ("object" === z.type(c)) | |
for (v in k = !0, c) z.access(a, d, v, c[v], !0, n, e); | |
else if (void 0 !== f && (k = !0, z.isFunction(f) || (e = !0), h && (e ? (d.call(a, f), d = null) : (h = d, d = function(a, d, c) { | |
return h.call(z(a), c) | |
})), d)) | |
for (; t > v; v++) d(a[v], c, e ? f : f.call(a[v], v, d(a[v], c))); | |
return k ? a : h ? d.call(a) : t ? d(a[0], c) : n | |
}, | |
Jb = /^(?:checkbox|radio)$/i; | |
! function() { | |
var a = X.createElement("input"), | |
d = X.createElement("div"), | |
c = X.createDocumentFragment(); | |
if (d.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", P.leadingWhitespace = 3 === d.firstChild.nodeType, P.tbody = !d.getElementsByTagName("tbody").length, P.htmlSerialize = !!d.getElementsByTagName("link").length, P.html5Clone = "<:nav></:nav>" !== X.createElement("nav").cloneNode(!0).outerHTML, a.type = "checkbox", a.checked = !0, c.appendChild(a), P.appendChecked = a.checked, d.innerHTML = "<textarea>x</textarea>", P.noCloneChecked = !!d.cloneNode(!0).lastChild.defaultValue, c.appendChild(d), d.innerHTML = "<input type='radio' checked='checked' name='t'/>", P.checkClone = d.cloneNode(!0).cloneNode(!0).lastChild.checked, P.noCloneEvent = !0, d.attachEvent && (d.attachEvent("onclick", function() { | |
P.noCloneEvent = !1 | |
}), d.cloneNode(!0).click()), null == P.deleteExpando) { | |
P.deleteExpando = !0; | |
try { | |
delete d.test | |
} catch (tc) { | |
P.deleteExpando = !1 | |
} | |
} | |
}(); | |
(function() { | |
var a, c, f = X.createElement("div"); | |
for (a in { | |
submit: !0, | |
change: !0, | |
focusin: !0 | |
}) c = "on" + a, (P[a + "Bubbles"] = c in d) || (f.setAttribute(c, "t"), P[a + "Bubbles"] = !1 === f.attributes[c].expando) | |
})(); | |
var ma = /^(?:input|select|textarea)$/i, | |
Ab = /^key/, | |
pb = /^(?:mouse|pointer|contextmenu)|click/, | |
Lb = /^(?:focusinfocus|focusoutblur)$/, | |
Va = /^([^.]*)(?:\.(.+)|)$/; | |
z.event = { | |
global: {}, | |
add: function(a, d, c, f, k) { | |
var n, e, v, t, h, m, w, u, B, q; | |
if (v = z._data(a)) { | |
c.handler && (t = c, c = t.handler, k = t.selector); | |
c.guid || (c.guid = z.guid++); | |
(e = v.events) || (e = v.events = {}); | |
(m = v.handle) || (m = v.handle = function(a) { | |
return "undefined" === typeof z || a && z.event.triggered === a.type ? void 0 : z.event.dispatch.apply(m.elem, arguments) | |
}, m.elem = a); | |
d = (d || "").match(Ha) || [""]; | |
for (v = d.length; v--;) n = Va.exec(d[v]) || [], B = q = n[1], n = (n[2] || "").split(".").sort(), B && (h = z.event.special[B] || {}, B = (k ? h.delegateType : h.bindType) || B, h = z.event.special[B] || {}, w = z.extend({ | |
type: B, | |
origType: q, | |
data: f, | |
handler: c, | |
guid: c.guid, | |
selector: k, | |
needsContext: k && z.expr.match.needsContext.test(k), | |
namespace: n.join(".") | |
}, t), (u = e[B]) || (u = e[B] = [], u.delegateCount = 0, h.setup && !1 !== h.setup.call(a, f, n, m) || (a.addEventListener ? a.addEventListener(B, m, !1) : a.attachEvent && a.attachEvent("on" + B, m))), h.add && (h.add.call(a, w), w.handler.guid || (w.handler.guid = c.guid)), k ? u.splice(u.delegateCount++, 0, w) : u.push(w), z.event.global[B] = !0); | |
a = null | |
} | |
}, | |
remove: function(a, d, c, f, k) { | |
var n, e, v, t, h, m, w, u, B, q, p, D = z.hasData(a) && z._data(a); | |
if (D && (m = D.events)) { | |
d = (d || "").match(Ha) || [""]; | |
for (h = d.length; h--;) | |
if (v = Va.exec(d[h]) || [], B = p = v[1], q = (v[2] || "").split(".").sort(), B) { | |
w = z.event.special[B] || {}; | |
B = (f ? w.delegateType : w.bindType) || B; | |
u = m[B] || []; | |
v = v[2] && new RegExp("(^|\\.)" + q.join("\\.(?:.*\\.|)") + "(\\.|$)"); | |
for (t = n = u.length; n--;) e = u[n], !k && p !== e.origType || c && c.guid !== e.guid || v && !v.test(e.namespace) || f && f !== e.selector && ("**" !== f || !e.selector) || (u.splice(n, 1), e.selector && u.delegateCount--, w.remove && w.remove.call(a, e)); | |
t && !u.length && (w.teardown && !1 !== w.teardown.call(a, q, D.handle) || z.removeEvent(a, B, D.handle), delete m[B]) | |
} else | |
for (B in m) z.event.remove(a, B + d[h], c, f, !0); | |
z.isEmptyObject(m) && (delete D.handle, z._removeData(a, "events")) | |
} | |
}, | |
trigger: function(a, c, f, k) { | |
var n, e, v, t, h, m, w = [f || X], | |
u = xa.call(a, "type") ? a.type : a; | |
m = xa.call(a, "namespace") ? a.namespace.split(".") : []; | |
if (v = n = f = f || X, 3 !== f.nodeType && 8 !== f.nodeType && !Lb.test(u + z.event.triggered) && (0 <= u.indexOf(".") && (m = u.split("."), u = m.shift(), m.sort()), e = 0 > u.indexOf(":") && "on" + u, a = a[z.expando] ? a : new z.Event(u, "object" == typeof a && a), a.isTrigger = k ? 2 : 3, a.namespace = m.join("."), a.namespace_re = a.namespace ? new RegExp("(^|\\.)" + m.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, a.result = void 0, a.target || (a.target = f), c = null == c ? [a] : z.makeArray(c, [a]), h = z.event.special[u] || {}, k || !h.trigger || !1 !== h.trigger.apply(f, c))) { | |
if (!k && !h.noBubble && !z.isWindow(f)) { | |
t = h.delegateType || u; | |
for (Lb.test(t + u) || (v = v.parentNode); v; v = v.parentNode) w.push(v), n = v; | |
n === (f.ownerDocument || X) && w.push(n.defaultView || n.parentWindow || d) | |
} | |
for (m = 0; | |
(v = w[m++]) && !a.isPropagationStopped();) a.type = 1 < m ? t : h.bindType || u, (n = (z._data(v, "events") || {})[a.type] && z._data(v, "handle")) && n.apply(v, c), (n = e && v[e]) && n.apply && z.acceptData(v) && (a.result = n.apply(v, c), !1 === a.result && a.preventDefault()); | |
if (a.type = u, !(k || a.isDefaultPrevented() || h._default && !1 !== h._default.apply(w.pop(), c)) && z.acceptData(f) && e && f[u] && !z.isWindow(f)) { | |
(n = f[e]) && (f[e] = null); | |
z.event.triggered = u; | |
try { | |
f[u]() | |
} catch (zc) {} | |
z.event.triggered = void 0; | |
n && (f[e] = n) | |
} | |
return a.result | |
} | |
}, | |
dispatch: function(a) { | |
a = z.event.fix(a); | |
var d, c, f, k, n, e, v = na.call(arguments); | |
d = (z._data(this, "events") || {})[a.type] || []; | |
var t = z.event.special[a.type] || {}; | |
if (v[0] = a, a.delegateTarget = this, !t.preDispatch || !1 !== t.preDispatch.call(this, a)) { | |
e = z.event.handlers.call(this, a, d); | |
for (d = 0; | |
(k = e[d++]) && !a.isPropagationStopped();) | |
for (a.currentTarget = k.elem, n = 0; | |
(f = k.handlers[n++]) && !a.isImmediatePropagationStopped();) a.namespace_re && !a.namespace_re.test(f.namespace) || (a.handleObj = f, a.data = f.data, c = ((z.event.special[f.origType] || {}).handle || f.handler).apply(k.elem, v), void 0 === c || !1 !== (a.result = c) || (a.preventDefault(), a.stopPropagation())); | |
return t.postDispatch && t.postDispatch.call(this, a), a.result | |
} | |
}, | |
handlers: function(a, d) { | |
var c, f, k, n, e = [], | |
v = d.delegateCount, | |
t = a.target; | |
if (v && t.nodeType && (!a.button || "click" !== a.type)) | |
for (; t != this; t = t.parentNode || this) | |
if (1 === t.nodeType && (!0 !== t.disabled || "click" !== a.type)) { | |
k = []; | |
for (n = 0; v > n; n++) f = d[n], c = f.selector + " ", void 0 === k[c] && (k[c] = f.needsContext ? 0 <= z(c, this).index(t) : z.find(c, this, null, [t]).length), k[c] && k.push(f); | |
k.length && e.push({ | |
elem: t, | |
handlers: k | |
}) | |
} | |
return v < d.length && e.push({ | |
elem: this, | |
handlers: d.slice(v) | |
}), e | |
}, | |
fix: function(a) { | |
if (a[z.expando]) return a; | |
var d, c, f; | |
d = a.type; | |
var k = a, | |
n = this.fixHooks[d]; | |
n || (this.fixHooks[d] = n = pb.test(d) ? this.mouseHooks : Ab.test(d) ? this.keyHooks : {}); | |
f = n.props ? this.props.concat(n.props) : this.props; | |
a = new z.Event(k); | |
for (d = f.length; d--;) c = f[d], a[c] = k[c]; | |
return a.target || (a.target = k.srcElement || X), 3 === a.target.nodeType && (a.target = a.target.parentNode), a.metaKey = !!a.metaKey, n.filter ? n.filter(a, k) : a | |
}, | |
props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), | |
fixHooks: {}, | |
keyHooks: { | |
props: ["char", "charCode", "key", "keyCode"], | |
filter: function(a, d) { | |
return null == a.which && (a.which = null != d.charCode ? d.charCode : d.keyCode), a | |
} | |
}, | |
mouseHooks: { | |
props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), | |
filter: function(a, d) { | |
var c, f, k, n = d.button, | |
e = d.fromElement; | |
return null == a.pageX && null != d.clientX && (f = a.target.ownerDocument || X, k = f.documentElement, c = f.body, a.pageX = d.clientX + (k && k.scrollLeft || c && c.scrollLeft || 0) - (k && k.clientLeft || c && c.clientLeft || 0), a.pageY = d.clientY + (k && k.scrollTop || c && c.scrollTop || 0) - (k && k.clientTop || c && c.clientTop || 0)), !a.relatedTarget && e && (a.relatedTarget = e === a.target ? d.toElement : e), a.which || void 0 === n || (a.which = 1 & n ? 1 : 2 & n ? 3 : 4 & n ? 2 : 0), a | |
} | |
}, | |
special: { | |
load: { | |
noBubble: !0 | |
}, | |
focus: { | |
trigger: function() { | |
if (this !== C() && this.focus) try { | |
return this.focus(), !1 | |
} catch (nb) {} | |
}, | |
delegateType: "focusin" | |
}, | |
blur: { | |
trigger: function() { | |
return this === C() && this.blur ? (this.blur(), !1) : void 0 | |
}, | |
delegateType: "focusout" | |
}, | |
click: { | |
trigger: function() { | |
return z.nodeName(this, "input") && "checkbox" === this.type && this.click ? (this.click(), !1) : void 0 | |
}, | |
_default: function(a) { | |
return z.nodeName(a.target, "a") | |
} | |
}, | |
beforeunload: { | |
postDispatch: function(a) { | |
void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result) | |
} | |
} | |
}, | |
simulate: function(a, d, c, f) { | |
a = z.extend(new z.Event, c, { | |
type: a, | |
isSimulated: !0, | |
originalEvent: {} | |
}); | |
f ? z.event.trigger(a, null, d) : z.event.dispatch.call(d, a); | |
a.isDefaultPrevented() && c.preventDefault() | |
} | |
}; | |
z.removeEvent = X.removeEventListener ? function(a, d, c) { | |
a.removeEventListener && a.removeEventListener(d, c, !1) | |
} : function(a, d, c) { | |
d = "on" + d; | |
a.detachEvent && ("undefined" === typeof a[d] && (a[d] = null), a.detachEvent(d, c)) | |
}; | |
z.Event = function(a, d) { | |
return this instanceof z.Event ? (a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && !1 === a.returnValue ? w : u) : this.type = a, d && z.extend(this, d), this.timeStamp = a && a.timeStamp || z.now(), void(this[z.expando] = !0)) : new z.Event(a, d) | |
}; | |
z.Event.prototype = { | |
isDefaultPrevented: u, | |
isPropagationStopped: u, | |
isImmediatePropagationStopped: u, | |
preventDefault: function() { | |
var a = this.originalEvent; | |
this.isDefaultPrevented = w; | |
a && (a.preventDefault ? a.preventDefault() : a.returnValue = !1) | |
}, | |
stopPropagation: function() { | |
var a = this.originalEvent; | |
this.isPropagationStopped = w; | |
a && (a.stopPropagation && a.stopPropagation(), a.cancelBubble = !0) | |
}, | |
stopImmediatePropagation: function() { | |
var a = this.originalEvent; | |
this.isImmediatePropagationStopped = w; | |
a && a.stopImmediatePropagation && a.stopImmediatePropagation(); | |
this.stopPropagation() | |
} | |
}; | |
z.each({ | |
mouseenter: "mouseover", | |
mouseleave: "mouseout", | |
pointerenter: "pointerover", | |
pointerleave: "pointerout" | |
}, function(a, d) { | |
z.event.special[a] = { | |
delegateType: d, | |
bindType: d, | |
handle: function(a) { | |
var c, f = a.relatedTarget, | |
k = a.handleObj; | |
return (!f || f !== this && !z.contains(this, f)) && (a.type = k.origType, c = k.handler.apply(this, arguments), a.type = d), c | |
} | |
} | |
}); | |
P.submitBubbles || (z.event.special.submit = { | |
setup: function() { | |
return z.nodeName(this, "form") ? !1 : void z.event.add(this, "click._submit keypress._submit", function(a) { | |
a = a.target; | |
(a = z.nodeName(a, "input") || z.nodeName(a, "button") ? a.form : void 0) && !z._data(a, "submitBubbles") && (z.event.add(a, "submit._submit", function(a) { | |
a._submit_bubble = !0 | |
}), z._data(a, "submitBubbles", !0)) | |
}) | |
}, | |
postDispatch: function(a) { | |
a._submit_bubble && (delete a._submit_bubble, this.parentNode && !a.isTrigger && z.event.simulate("submit", this.parentNode, a, !0)) | |
}, | |
teardown: function() { | |
return z.nodeName(this, "form") ? !1 : void z.event.remove(this, "._submit") | |
} | |
}); | |
P.changeBubbles || (z.event.special.change = { | |
setup: function() { | |
return ma.test(this.nodeName) ? (("checkbox" === this.type || "radio" === this.type) && (z.event.add(this, "propertychange._change", function(a) { | |
"checked" === a.originalEvent.propertyName && (this._just_changed = !0) | |
}), z.event.add(this, "click._change", function(a) { | |
this._just_changed && !a.isTrigger && (this._just_changed = !1); | |
z.event.simulate("change", this, a, !0) | |
})), !1) : void z.event.add(this, "beforeactivate._change", function(a) { | |
a = a.target; | |
ma.test(a.nodeName) && !z._data(a, "changeBubbles") && (z.event.add(a, "change._change", function(a) { | |
!this.parentNode || a.isSimulated || a.isTrigger || z.event.simulate("change", this.parentNode, a, !0) | |
}), z._data(a, "changeBubbles", !0)) | |
}) | |
}, | |
handle: function(a) { | |
var d = a.target; | |
return this !== d || a.isSimulated || a.isTrigger || "radio" !== d.type && "checkbox" !== d.type ? a.handleObj.handler.apply(this, arguments) : void 0 | |
}, | |
teardown: function() { | |
return z.event.remove(this, "._change"), !ma.test(this.nodeName) | |
} | |
}); | |
P.focusinBubbles || z.each({ | |
focus: "focusin", | |
blur: "focusout" | |
}, function(a, d) { | |
var c = function(a) { | |
z.event.simulate(d, a.target, z.event.fix(a), !0) | |
}; | |
z.event.special[d] = { | |
setup: function() { | |
var f = this.ownerDocument || this, | |
k = z._data(f, d); | |
k || f.addEventListener(a, c, !0); | |
z._data(f, d, (k || 0) + 1) | |
}, | |
teardown: function() { | |
var f = this.ownerDocument || this, | |
k = z._data(f, d) - 1; | |
k ? z._data(f, d, k) : (f.removeEventListener(a, c, !0), z._removeData(f, d)) | |
} | |
} | |
}); | |
z.fn.extend({ | |
on: function(a, d, c, f, k) { | |
var n, e; | |
if ("object" == typeof a) { | |
"string" != typeof d && (c = c || d, d = void 0); | |
for (n in a) this.on(n, d, c, a[n], k); | |
return this | |
} | |
if (null == c && null == f ? (f = d, c = d = void 0) : null == f && ("string" == typeof d ? (f = c, c = void 0) : (f = c, c = d, d = void 0)), !1 === f) f = u; | |
else if (!f) return this; | |
return 1 === k && (e = f, f = function(a) { | |
return z().off(a), e.apply(this, arguments) | |
}, f.guid = e.guid || (e.guid = z.guid++)), this.each(function() { | |
z.event.add(this, a, f, c, d) | |
}) | |
}, | |
one: function(a, d, c, f) { | |
return this.on(a, d, c, f, 1) | |
}, | |
off: function(a, d, c) { | |
var f, k; | |
if (a && a.preventDefault && a.handleObj) return f = a.handleObj, z(a.delegateTarget).off(f.namespace ? f.origType + "." + f.namespace : f.origType, f.selector, f.handler), this; | |
if ("object" == typeof a) { | |
for (k in a) this.off(k, d, a[k]); | |
return this | |
} | |
return (!1 === d || "function" == typeof d) && (c = d, d = void 0), !1 === c && (c = u), this.each(function() { | |
z.event.remove(this, a, c, d) | |
}) | |
}, | |
trigger: function(a, d) { | |
return this.each(function() { | |
z.event.trigger(a, d, this) | |
}) | |
}, | |
triggerHandler: function(a, d) { | |
var c = this[0]; | |
return c ? z.event.trigger(a, d, c, !0) : void 0 | |
} | |
}); | |
var cc = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", | |
Bb = / jQuery\d+="(?:null|\d+)"/g, | |
lb = new RegExp("<(?:" + cc + ")[\\s/>]", "i"), | |
Za = /^\s+/, | |
hc = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, | |
qb = /<([\w:]+)/, | |
Aa = /<tbody/i, | |
qa = /<|&#?\w+;/, | |
ic = /<(?:script|style|link)/i, | |
jc = /checked\s*(?:[^=]|=\s*.checked.)/i, | |
Wa = /^$|\/(?:java|ecma)script/i, | |
Pb = /^true\/(.*)/, | |
ac = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, | |
db = { | |
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: P.htmlSerialize ? [0, "", ""] : [1, "X<div>", "</div>"] | |
}, | |
T = A(X).appendChild(X.createElement("div")); | |
db.optgroup = db.option; | |
db.tbody = db.tfoot = db.colgroup = db.caption = db.thead; | |
db.th = db.td; | |
z.extend({ | |
clone: function(a, d, c) { | |
var f, k, n, e, t, h = z.contains(a.ownerDocument, a); | |
if (P.html5Clone || z.isXMLDoc(a) || !lb.test("<" + a.nodeName + ">") ? n = a.cloneNode(!0) : (T.innerHTML = a.outerHTML, T.removeChild(n = T.firstChild)), !(P.noCloneEvent && P.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || z.isXMLDoc(a))) | |
for (f = v(n), t = v(a), e = 0; null != (k = t[e]); ++e) | |
if (f[e]) { | |
var m = void 0, | |
w, u = k, | |
B = f[e]; | |
if (1 === B.nodeType) { | |
if (w = B.nodeName.toLowerCase(), !P.noCloneEvent && B[z.expando]) { | |
k = z._data(B); | |
for (m in k.events) z.removeEvent(B, m, k.handle); | |
B.removeAttribute(z.expando) | |
} | |
"script" === w && B.text !== u.text ? (E(B).text = u.text, F(B)) : "object" === w ? (B.parentNode && (B.outerHTML = u.outerHTML), P.html5Clone && u.innerHTML && !z.trim(B.innerHTML) && (B.innerHTML = u.innerHTML)) : "input" === w && Jb.test(u.type) ? (B.defaultChecked = B.checked = u.checked, B.value !== u.value && (B.value = u.value)) : "option" === w ? B.defaultSelected = B.selected = u.defaultSelected : ("input" === w || "textarea" === w) && (B.defaultValue = u.defaultValue) | |
} | |
} | |
if (d) | |
if (c) | |
for (t = t || v(a), f = f || v(n), e = 0; null != (k = t[e]); e++) J(k, f[e]); | |
else J(a, n); | |
return f = v(n, "script"), 0 < f.length && G(f, !h && v(a, "script")), n | |
}, | |
buildFragment: function(a, d, c, f) { | |
for (var k, n, e, t, h, m, w, u = a.length, q = A(d), p = [], D = 0; u > D; D++) | |
if (n = a[D], n || 0 === n) | |
if ("object" === z.type(n)) z.merge(p, n.nodeType ? [n] : n); | |
else if (qa.test(n)) { | |
t = t || q.appendChild(d.createElement("div")); | |
h = (qb.exec(n) || ["", ""])[1].toLowerCase(); | |
w = db[h] || db._default; | |
t.innerHTML = w[1] + n.replace(hc, "<$1></$2>") + w[2]; | |
for (k = w[0]; k--;) t = t.lastChild; | |
if (!P.leadingWhitespace && Za.test(n) && p.push(d.createTextNode(Za.exec(n)[0])), !P.tbody) | |
for (k = (n = "table" !== h || Aa.test(n) ? "<table>" !== w[1] || Aa.test(n) ? 0 : t : t.firstChild) && n.childNodes.length; k--;) z.nodeName(m = n.childNodes[k], "tbody") && !m.childNodes.length && n.removeChild(m); | |
z.merge(p, t.childNodes); | |
for (t.textContent = ""; t.firstChild;) t.removeChild(t.firstChild); | |
t = q.lastChild | |
} else p.push(d.createTextNode(n)); | |
t && q.removeChild(t); | |
P.appendChecked || z.grep(v(p, "input"), B); | |
for (D = 0; n = p[D++];) | |
if ((!f || -1 === z.inArray(n, f)) && (e = z.contains(n.ownerDocument, n), t = v(q.appendChild(n), "script"), e && G(t), c)) | |
for (k = 0; n = t[k++];) Wa.test(n.type || "") && c.push(n); | |
return q | |
}, | |
cleanData: function(a, d) { | |
for (var c, f, k, n, e = 0, v = z.expando, t = z.cache, h = P.deleteExpando, m = z.event.special; null != (c = a[e]); e++) | |
if ((d || z.acceptData(c)) && (k = c[v], n = k && t[k])) { | |
if (n.events) | |
for (f in n.events) m[f] ? z.event.remove(c, f) : z.removeEvent(c, f, n.handle); | |
t[k] && (delete t[k], h ? delete c[v] : "undefined" !== typeof c.removeAttribute ? c.removeAttribute(v) : c[v] = null, ta.push(k)) | |
} | |
} | |
}); | |
z.fn.extend({ | |
text: function(a) { | |
return vb(this, function(a) { | |
return void 0 === a ? z.text(this) : this.empty().append((this[0] && this[0].ownerDocument || X).createTextNode(a)) | |
}, null, a, arguments.length) | |
}, | |
append: function() { | |
return this.domManip(arguments, function(a) { | |
1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || D(this, a).appendChild(a) | |
}) | |
}, | |
prepend: function() { | |
return this.domManip(arguments, function(a) { | |
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { | |
var d = D(this, a); | |
d.insertBefore(a, d.firstChild) | |
} | |
}) | |
}, | |
before: function() { | |
return this.domManip(arguments, function(a) { | |
this.parentNode && this.parentNode.insertBefore(a, this) | |
}) | |
}, | |
after: function() { | |
return this.domManip(arguments, function(a) { | |
this.parentNode && this.parentNode.insertBefore(a, this.nextSibling) | |
}) | |
}, | |
remove: function(a, d) { | |
for (var c, f = a ? z.filter(a, this) : this, k = 0; null != (c = f[k]); k++) d || 1 !== c.nodeType || z.cleanData(v(c)), c.parentNode && (d && z.contains(c.ownerDocument, c) && G(v(c, "script")), c.parentNode.removeChild(c)); | |
return this | |
}, | |
empty: function() { | |
for (var a, d = 0; null != (a = this[d]); d++) { | |
for (1 === a.nodeType && z.cleanData(v(a, !1)); a.firstChild;) a.removeChild(a.firstChild); | |
a.options && z.nodeName(a, "select") && (a.options.length = 0) | |
} | |
return this | |
}, | |
clone: function(a, d) { | |
return a = null == a ? !1 : a, d = null == d ? a : d, this.map(function() { | |
return z.clone(this, a, d) | |
}) | |
}, | |
html: function(a) { | |
return vb(this, function(a) { | |
var d = this[0] || {}, | |
c = 0, | |
f = this.length; | |
if (void 0 === a) return 1 === d.nodeType ? d.innerHTML.replace(Bb, "") : void 0; | |
if (!("string" != typeof a || ic.test(a) || !P.htmlSerialize && lb.test(a) || !P.leadingWhitespace && Za.test(a) || db[(qb.exec(a) || ["", ""])[1].toLowerCase()])) { | |
a = a.replace(hc, "<$1></$2>"); | |
try { | |
for (; f > c; c++) d = this[c] || {}, 1 === d.nodeType && (z.cleanData(v(d, !1)), d.innerHTML = a); | |
d = 0 | |
} catch (Cc) {} | |
} | |
d && this.empty().append(a) | |
}, null, a, arguments.length) | |
}, | |
replaceWith: function() { | |
var a = arguments[0]; | |
return this.domManip(arguments, function(d) { | |
a = this.parentNode; | |
z.cleanData(v(this)); | |
a && a.replaceChild(d, this) | |
}), a && (a.length || a.nodeType) ? this : this.remove() | |
}, | |
detach: function(a) { | |
return this.remove(a, !0) | |
}, | |
domManip: function(a, d) { | |
a = ea.apply([], a); | |
var c, f, k, n, e = 0, | |
t = this.length, | |
h = this, | |
m = t - 1, | |
w = a[0], | |
u = z.isFunction(w); | |
if (u || 1 < t && "string" == typeof w && !P.checkClone && jc.test(w)) return this.each(function(c) { | |
var f = h.eq(c); | |
u && (a[0] = w.call(this, c, f.html())); | |
f.domManip(a, d) | |
}); | |
if (t && (n = z.buildFragment(a, this[0].ownerDocument, !1, this), c = n.firstChild, 1 === n.childNodes.length && (n = c), c)) { | |
k = z.map(v(n, "script"), E); | |
for (f = k.length; t > e; e++) c = n, e !== m && (c = z.clone(c, !0, !0), f && z.merge(k, v(c, "script"))), d.call(this[e], c, e); | |
if (f) | |
for (n = k[k.length - 1].ownerDocument, z.map(k, F), e = 0; f > e; e++) c = k[e], Wa.test(c.type || "") && !z._data(c, "globalEval") && z.contains(n, c) && (c.src ? z._evalUrl && z._evalUrl(c.src) : z.globalEval((c.text || c.textContent || c.innerHTML || "").replace(ac, ""))); | |
n = c = null | |
} | |
return this | |
} | |
}); | |
z.each({ | |
appendTo: "append", | |
prependTo: "prepend", | |
insertBefore: "before", | |
insertAfter: "after", | |
replaceAll: "replaceWith" | |
}, function(a, d) { | |
z.fn[a] = function(a) { | |
for (var c = 0, f = [], k = z(a), n = k.length - 1; n >= c; c++) a = c === n ? this : this.clone(!0), z(k[c])[d](a), Ea.apply(f, a.get()); | |
return this.pushStack(f) | |
} | |
}); | |
var ra, ga = {}; | |
! function() { | |
var a; | |
P.shrinkWrapBlocks = function() { | |
if (null != a) return a; | |
a = !1; | |
var d, c, f; | |
return c = X.getElementsByTagName("body")[0], c && c.style ? (d = X.createElement("div"), f = X.createElement("div"), f.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", c.appendChild(f).appendChild(d), "undefined" !== typeof d.style.zoom && (d.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", d.appendChild(X.createElement("div")).style.width = "5px", a = 3 !== d.offsetWidth), c.removeChild(f), a) : void 0 | |
} | |
}(); | |
var ba = /^margin/, | |
la = new RegExp("^(" + Ma + ")(?!px)[a-z%]+$", "i"), | |
tb, zb, rb = /^(top|right|bottom|left)$/; | |
d.getComputedStyle ? (tb = function(a) { | |
return a.ownerDocument.defaultView.opener ? a.ownerDocument.defaultView.getComputedStyle(a, null) : d.getComputedStyle(a, null) | |
}, zb = function(a, d, c) { | |
var f, k, n, e, v = a.style; | |
return c = c || tb(a), e = c ? c.getPropertyValue(d) || c[d] : void 0, c && ("" !== e || z.contains(a.ownerDocument, a) || (e = z.style(a, d)), la.test(e) && ba.test(d) && (f = v.width, k = v.minWidth, n = v.maxWidth, v.minWidth = v.maxWidth = v.width = e, e = c.width, v.width = f, v.minWidth = k, v.maxWidth = n)), void 0 === e ? e : e + "" | |
}) : X.documentElement.currentStyle && (tb = function(a) { | |
return a.currentStyle | |
}, zb = function(a, d, c) { | |
var f, k, n, e, v = a.style; | |
return c = c || tb(a), e = c ? c[d] : void 0, null == e && v && v[d] && (e = v[d]), la.test(e) && !rb.test(d) && (f = v.left, k = a.runtimeStyle, n = k && k.left, n && (k.left = a.currentStyle.left), v.left = "fontSize" === d ? "1em" : e, e = v.pixelLeft + "px", v.left = f, n && (k.left = n)), void 0 === e ? e : e + "" || "auto" | |
}); | |
! function() { | |
var a, c, f, k, n, e, v; | |
if (a = X.createElement("div"), a.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", f = a.getElementsByTagName("a")[0], c = f && f.style) { | |
var t = function() { | |
var a, c, f, t; | |
(c = X.getElementsByTagName("body")[0]) && c.style && (a = X.createElement("div"), f = X.createElement("div"), f.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", c.appendChild(f).appendChild(a), a.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute", k = n = !1, v = !0, d.getComputedStyle && (k = "1%" !== (d.getComputedStyle(a, null) || {}).top, n = "4px" === (d.getComputedStyle(a, null) || { | |
width: "4px" | |
}).width, t = a.appendChild(X.createElement("div")), t.style.cssText = a.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0", t.style.marginRight = t.style.width = "0", a.style.width = "1px", v = !parseFloat((d.getComputedStyle(t, null) || {}).marginRight), a.removeChild(t)), a.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", t = a.getElementsByTagName("td"), t[0].style.cssText = "margin:0;border:0;padding:0;display:none", e = 0 === t[0].offsetHeight, e && (t[0].style.display = "", t[1].style.display = "none", e = 0 === t[0].offsetHeight), c.removeChild(f)) | |
}; | |
c.cssText = "float:left;opacity:.5"; | |
P.opacity = "0.5" === c.opacity; | |
P.cssFloat = !!c.cssFloat; | |
a.style.backgroundClip = "content-box"; | |
a.cloneNode(!0).style.backgroundClip = ""; | |
P.clearCloneStyle = "content-box" === a.style.backgroundClip; | |
P.boxSizing = "" === c.boxSizing || "" === c.MozBoxSizing || "" === c.WebkitBoxSizing; | |
z.extend(P, { | |
reliableHiddenOffsets: function() { | |
return null == e && t(), e | |
}, | |
boxSizingReliable: function() { | |
return null == n && t(), n | |
}, | |
pixelPosition: function() { | |
return null == k && t(), k | |
}, | |
reliableMarginRight: function() { | |
return null == v && t(), v | |
} | |
}) | |
} | |
}(); | |
z.swap = function(a, d, c, f) { | |
var k, n = {}; | |
for (k in d) n[k] = a.style[k], a.style[k] = d[k]; | |
c = c.apply(a, f || []); | |
for (k in d) a.style[k] = n[k]; | |
return c | |
}; | |
var Cb = /alpha\([^)]*\)/i, | |
uc = /opacity\s*=\s*([^)]*)/, | |
Rb = /^(none|table(?!-c[ea]).+)/, | |
sb = new RegExp("^(" + Ma + ")(.*)$", "i"), | |
rc = new RegExp("^([+-])=(" + Ma + ")", "i"), | |
kc = { | |
position: "absolute", | |
visibility: "hidden", | |
display: "block" | |
}, | |
Sb = { | |
letterSpacing: "0", | |
fontWeight: "400" | |
}, | |
dc = ["Webkit", "O", "Moz", "ms"]; | |
z.extend({ | |
cssHooks: { | |
opacity: { | |
get: function(a, d) { | |
if (d) { | |
var c = zb(a, "opacity"); | |
return "" === c ? "1" : c | |
} | |
} | |
} | |
}, | |
cssNumber: { | |
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: P.cssFloat ? "cssFloat" : "styleFloat" | |
}, | |
style: function(a, d, c, f) { | |
if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) { | |
var k, n, e, v = z.camelCase(d), | |
t = a.style; | |
if (d = z.cssProps[v] || (z.cssProps[v] = L(t, v)), e = z.cssHooks[d] || z.cssHooks[v], void 0 === c) return e && "get" in e && void 0 !== (k = e.get(a, !1, f)) ? k : t[d]; | |
if (n = typeof c, "string" === n && (k = rc.exec(c)) && (c = (k[1] + 1) * k[2] + parseFloat(z.css(a, d)), n = "number"), null != c && c === c && ("number" !== n || z.cssNumber[v] || (c += "px"), P.clearCloneStyle || "" !== c || 0 !== d.indexOf("background") || (t[d] = "inherit"), !(e && "set" in e && void 0 === (c = e.set(a, c, f))))) try { | |
t[d] = c | |
} catch (Ec) {} | |
} | |
}, | |
css: function(a, d, c, f) { | |
var k, n, e, v = z.camelCase(d); | |
return d = z.cssProps[v] || (z.cssProps[v] = L(a.style, v)), e = z.cssHooks[d] || z.cssHooks[v], e && "get" in e && (n = e.get(a, !0, c)), void 0 === n && (n = zb(a, d, f)), "normal" === n && d in Sb && (n = Sb[d]), "" === c || c ? (k = parseFloat(n), !0 === c || z.isNumeric(k) ? k || 0 : n) : n | |
} | |
}); | |
z.each(["height", "width"], function(a, d) { | |
z.cssHooks[d] = { | |
get: function(a, c, f) { | |
return c ? Rb.test(z.css(a, "display")) && 0 === a.offsetWidth ? z.swap(a, kc, function() { | |
return O(a, d, f) | |
}) : O(a, d, f) : void 0 | |
}, | |
set: function(a, c, f) { | |
var k = f && tb(a); | |
return Q(a, c, f ? H(a, d, f, P.boxSizing && "border-box" === z.css(a, "boxSizing", !1, k), k) : 0) | |
} | |
} | |
}); | |
P.opacity || (z.cssHooks.opacity = { | |
get: function(a, d) { | |
return uc.test((d && a.currentStyle ? a.currentStyle.filter : a.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : d ? "1" : "" | |
}, | |
set: function(a, d) { | |
var c = a.style, | |
f = a.currentStyle, | |
k = z.isNumeric(d) ? "alpha(opacity=" + 100 * d + ")" : "", | |
n = f && f.filter || c.filter || ""; | |
c.zoom = 1; | |
(1 <= d || "" === d) && "" === z.trim(n.replace(Cb, "")) && c.removeAttribute && (c.removeAttribute("filter"), "" === d || f && !f.filter) || (c.filter = Cb.test(n) ? n.replace(Cb, k) : n + " " + k) | |
} | |
}); | |
z.cssHooks.marginRight = M(P.reliableMarginRight, function(a, d) { | |
return d ? z.swap(a, { | |
display: "inline-block" | |
}, zb, [a, "marginRight"]) : void 0 | |
}); | |
z.each({ | |
margin: "", | |
padding: "", | |
border: "Width" | |
}, function(a, d) { | |
z.cssHooks[a + d] = { | |
expand: function(c) { | |
var f = 0, | |
k = {}; | |
for (c = "string" == typeof c ? c.split(" ") : [c]; 4 > f; f++) k[a + ia[f] + d] = c[f] || c[f - 2] || c[0]; | |
return k | |
} | |
}; | |
ba.test(a) || (z.cssHooks[a + d].set = Q) | |
}); | |
z.fn.extend({ | |
css: function(a, d) { | |
return vb(this, function(a, d, c) { | |
var f, k = {}, | |
n = 0; | |
if (z.isArray(d)) { | |
c = tb(a); | |
for (f = d.length; f > n; n++) k[d[n]] = z.css(a, d[n], !1, c); | |
return k | |
} | |
return void 0 !== c ? z.style(a, d, c) : z.css(a, d) | |
}, a, d, 1 < arguments.length) | |
}, | |
show: function() { | |
return U(this, !0) | |
}, | |
hide: function() { | |
return U(this) | |
}, | |
toggle: function(a) { | |
return "boolean" == typeof a ? a ? this.show() : this.hide() : this.each(function() { | |
va(this) ? z(this).show() : z(this).hide() | |
}) | |
} | |
}); | |
z.Tween = W; | |
W.prototype = { | |
constructor: W, | |
init: function(a, d, c, f, k, n) { | |
this.elem = a; | |
this.prop = c; | |
this.easing = k || "swing"; | |
this.options = d; | |
this.start = this.now = this.cur(); | |
this.end = f; | |
this.unit = n || (z.cssNumber[c] ? "" : "px") | |
}, | |
cur: function() { | |
var a = W.propHooks[this.prop]; | |
return a && a.get ? a.get(this) : W.propHooks._default.get(this) | |
}, | |
run: function(a) { | |
var d, c = W.propHooks[this.prop]; | |
return this.pos = d = this.options.duration ? z.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration) : a, this.now = (this.end - this.start) * d + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), c && c.set ? c.set(this) : W.propHooks._default.set(this), this | |
} | |
}; | |
W.prototype.init.prototype = W.prototype; | |
W.propHooks = { | |
_default: { | |
get: function(a) { | |
var d; | |
return null == a.elem[a.prop] || a.elem.style && null != a.elem.style[a.prop] ? (d = z.css(a.elem, a.prop, ""), d && "auto" !== d ? d : 0) : a.elem[a.prop] | |
}, | |
set: function(a) { | |
z.fx.step[a.prop] ? z.fx.step[a.prop](a) : a.elem.style && (null != a.elem.style[z.cssProps[a.prop]] || z.cssHooks[a.prop]) ? z.style(a.elem, a.prop, a.now + a.unit) : a.elem[a.prop] = a.now | |
} | |
} | |
}; | |
W.propHooks.scrollTop = W.propHooks.scrollLeft = { | |
set: function(a) { | |
a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now) | |
} | |
}; | |
z.easing = { | |
linear: function(a) { | |
return a | |
}, | |
swing: function(a) { | |
return .5 - Math.cos(a * Math.PI) / 2 | |
} | |
}; | |
z.fx = W.prototype.init; | |
z.fx.step = {}; | |
var Qa, mb, Ba = /^(?:toggle|show|hide)$/, | |
lc = new RegExp("^(?:([+-])=|)(" + Ma + ")([a-z%]*)$", "i"), | |
Mb = /queueHooks$/, | |
Ka = [function(a, d, c) { | |
var f, k, n, e, v, t, h, m = this, | |
w = {}, | |
u = a.style, | |
B = a.nodeType && va(a), | |
q = z._data(a, "fxshow"); | |
c.queue || (e = z._queueHooks(a, "fx"), null == e.unqueued && (e.unqueued = 0, v = e.empty.fire, e.empty.fire = function() { | |
e.unqueued || v() | |
}), e.unqueued++, m.always(function() { | |
m.always(function() { | |
e.unqueued--; | |
z.queue(a, "fx").length || e.empty.fire() | |
}) | |
})); | |
1 === a.nodeType && ("height" in d || "width" in d) && (c.overflow = [u.overflow, u.overflowX, u.overflowY], t = z.css(a, "display"), h = "none" === t ? z._data(a, "olddisplay") || K(a.nodeName) : t, "inline" === h && "none" === z.css(a, "float") && (P.inlineBlockNeedsLayout && "inline" !== K(a.nodeName) ? u.zoom = 1 : u.display = "inline-block")); | |
c.overflow && (u.overflow = "hidden", P.shrinkWrapBlocks() || m.always(function() { | |
u.overflow = c.overflow[0]; | |
u.overflowX = c.overflow[1]; | |
u.overflowY = c.overflow[2] | |
})); | |
for (f in d) | |
if (k = d[f], Ba.exec(k)) { | |
if (delete d[f], n = n || "toggle" === k, k === (B ? "hide" : "show")) { | |
if ("show" !== k || !q || void 0 === q[f]) continue; | |
B = !0 | |
} | |
w[f] = q && q[f] || z.style(a, f) | |
} else t = void 0; | |
if (z.isEmptyObject(w)) "inline" === ("none" === t ? K(a.nodeName) : t) && (u.display = t); | |
else | |
for (f in q ? "hidden" in q && (B = q.hidden) : q = z._data(a, "fxshow", {}), n && (q.hidden = !B), B ? z(a).show() : m.done(function() { | |
z(a).hide() | |
}), m.done(function() { | |
var d; | |
z._removeData(a, "fxshow"); | |
for (d in w) z.style(a, d, w[d]) | |
}), w) d = Y(B ? q[f] : 0, f, m), f in q || (q[f] = d.start, B && (d.end = d.start, d.start = "width" === f || "height" === f ? 1 : 0)) | |
}], | |
bb = { | |
"*": [function(a, d) { | |
var c = this.createTween(a, d), | |
f = c.cur(), | |
k = lc.exec(d), | |
n = k && k[3] || (z.cssNumber[a] ? "" : "px"), | |
e = (z.cssNumber[a] || "px" !== n && +f) && lc.exec(z.css(c.elem, a)), | |
v = 1, | |
t = 20; | |
if (e && e[3] !== n) { | |
n = n || e[3]; | |
k = k || []; | |
e = +f || 1; | |
do { | |
v = v || ".5", e /= v, z.style(c.elem, a, e + n) | |
} while (v !== (v = c.cur() / f) && 1 !== v && --t) | |
} | |
return k && (e = c.start = +e || +f || 0, c.unit = n, c.end = k[1] ? e + (k[1] + 1) * k[2] : +k[2]), c | |
}] | |
}; | |
z.Animation = z.extend(R, { | |
tweener: function(a, d) { | |
z.isFunction(a) ? (d = a, a = ["*"]) : a = a.split(" "); | |
for (var c, f = 0, k = a.length; k > f; f++) c = a[f], bb[c] = bb[c] || [], bb[c].unshift(d) | |
}, | |
prefilter: function(a, d) { | |
d ? Ka.unshift(a) : Ka.push(a) | |
} | |
}); | |
z.speed = function(a, d, c) { | |
var f = a && "object" == typeof a ? z.extend({}, a) : { | |
complete: c || !c && d || z.isFunction(a) && a, | |
duration: a, | |
easing: c && d || d && !z.isFunction(d) && d | |
}; | |
return f.duration = z.fx.off ? 0 : "number" == typeof f.duration ? f.duration : f.duration in z.fx.speeds ? z.fx.speeds[f.duration] : z.fx.speeds._default, (null == f.queue || !0 === f.queue) && (f.queue = "fx"), f.old = f.complete, f.complete = function() { | |
z.isFunction(f.old) && f.old.call(this); | |
f.queue && z.dequeue(this, f.queue) | |
}, f | |
}; | |
z.fn.extend({ | |
fadeTo: function(a, d, c, f) { | |
return this.filter(va).css("opacity", 0).show().end().animate({ | |
opacity: d | |
}, a, c, f) | |
}, | |
animate: function(a, d, c, f) { | |
var k = z.isEmptyObject(a), | |
n = z.speed(d, c, f); | |
d = function() { | |
var d = R(this, z.extend({}, a), n); | |
(k || z._data(this, "finish")) && d.stop(!0) | |
}; | |
return d.finish = d, k || !1 === n.queue ? this.each(d) : this.queue(n.queue, d) | |
}, | |
stop: function(a, d, c) { | |
var f = function(a) { | |
var d = a.stop; | |
delete a.stop; | |
d(c) | |
}; | |
return "string" != typeof a && (c = d, d = a, a = void 0), d && !1 !== a && this.queue(a || "fx", []), this.each(function() { | |
var d = !0, | |
k = null != a && a + "queueHooks", | |
n = z.timers, | |
e = z._data(this); | |
if (k) e[k] && e[k].stop && f(e[k]); | |
else | |
for (k in e) e[k] && e[k].stop && Mb.test(k) && f(e[k]); | |
for (k = n.length; k--;) n[k].elem !== this || null != a && n[k].queue !== a || (n[k].anim.stop(c), d = !1, n.splice(k, 1)); | |
!d && c || z.dequeue(this, a) | |
}) | |
}, | |
finish: function(a) { | |
return !1 !== a && (a = a || "fx"), this.each(function() { | |
var d, c = z._data(this), | |
f = c[a + "queue"]; | |
d = c[a + "queueHooks"]; | |
var k = z.timers, | |
n = f ? f.length : 0; | |
c.finish = !0; | |
z.queue(this, a, []); | |
d && d.stop && d.stop.call(this, !0); | |
for (d = k.length; d--;) k[d].elem === this && k[d].queue === a && (k[d].anim.stop(!0), k.splice(d, 1)); | |
for (d = 0; n > d; d++) f[d] && f[d].finish && f[d].finish.call(this); | |
delete c.finish | |
}) | |
} | |
}); | |
z.each(["toggle", "show", "hide"], function(a, d) { | |
var c = z.fn[d]; | |
z.fn[d] = function(a, f, k) { | |
return null == a || "boolean" == typeof a ? c.apply(this, arguments) : this.animate(ha(d, !0), a, f, k) | |
} | |
}); | |
z.each({ | |
slideDown: ha("show"), | |
slideUp: ha("hide"), | |
slideToggle: ha("toggle"), | |
fadeIn: { | |
opacity: "show" | |
}, | |
fadeOut: { | |
opacity: "hide" | |
}, | |
fadeToggle: { | |
opacity: "toggle" | |
} | |
}, function(a, d) { | |
z.fn[a] = function(a, c, f) { | |
return this.animate(d, a, c, f) | |
} | |
}); | |
z.timers = []; | |
z.fx.tick = function() { | |
var a, d = z.timers, | |
c = 0; | |
for (Qa = z.now(); c < d.length; c++) a = d[c], a() || d[c] !== a || d.splice(c--, 1); | |
d.length || z.fx.stop(); | |
Qa = void 0 | |
}; | |
z.fx.timer = function(a) { | |
z.timers.push(a); | |
a() ? z.fx.start() : z.timers.pop() | |
}; | |
z.fx.interval = 13; | |
z.fx.start = function() { | |
mb || (mb = setInterval(z.fx.tick, z.fx.interval)) | |
}; | |
z.fx.stop = function() { | |
clearInterval(mb); | |
mb = null | |
}; | |
z.fx.speeds = { | |
slow: 600, | |
fast: 200, | |
_default: 400 | |
}; | |
z.fn.delay = function(a, d) { | |
return a = z.fx ? z.fx.speeds[a] || a : a, d = d || "fx", this.queue(d, function(d, c) { | |
var f = setTimeout(d, a); | |
c.stop = function() { | |
clearTimeout(f) | |
} | |
}) | |
}; | |
(function() { | |
var a, d, c, f, k; | |
d = X.createElement("div"); | |
d.setAttribute("className", "t"); | |
d.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>"; | |
f = d.getElementsByTagName("a")[0]; | |
c = X.createElement("select"); | |
k = c.appendChild(X.createElement("option")); | |
a = d.getElementsByTagName("input")[0]; | |
f.style.cssText = "top:1px"; | |
P.getSetAttribute = "t" !== d.className; | |
P.style = /top/.test(f.getAttribute("style")); | |
P.hrefNormalized = "/a" === f.getAttribute("href"); | |
P.checkOn = !!a.value; | |
P.optSelected = k.selected; | |
P.enctype = !!X.createElement("form").enctype; | |
c.disabled = !0; | |
P.optDisabled = !k.disabled; | |
a = X.createElement("input"); | |
a.setAttribute("value", ""); | |
P.input = "" === a.getAttribute("value"); | |
a.value = "t"; | |
a.setAttribute("type", "radio"); | |
P.radioValue = "t" === a.value | |
})(); | |
var Nb = /\r/g; | |
z.fn.extend({ | |
val: function(a) { | |
var d, c, f, k = this[0]; | |
if (arguments.length) return f = z.isFunction(a), this.each(function(c) { | |
var k; | |
1 === this.nodeType && (k = f ? a.call(this, c, z(this).val()) : a, null == k ? k = "" : "number" == typeof k ? k += "" : z.isArray(k) && (k = z.map(k, function(a) { | |
return null == a ? "" : a + "" | |
})), d = z.valHooks[this.type] || z.valHooks[this.nodeName.toLowerCase()], d && "set" in d && void 0 !== d.set(this, k, "value") || (this.value = k)) | |
}); | |
if (k) return d = z.valHooks[k.type] || z.valHooks[k.nodeName.toLowerCase()], d && "get" in d && void 0 !== (c = d.get(k, "value")) ? c : (c = k.value, "string" == typeof c ? c.replace(Nb, "") : null == c ? "" : c) | |
} | |
}); | |
z.extend({ | |
valHooks: { | |
option: { | |
get: function(a) { | |
var d = z.find.attr(a, "value"); | |
return null != d ? d : z.trim(z.text(a)) | |
} | |
}, | |
select: { | |
get: function(a) { | |
for (var d, c = a.options, f = a.selectedIndex, k = "select-one" === a.type || 0 > f, n = k ? null : [], e = k ? f + 1 : c.length, v = 0 > f ? e : k ? f : 0; e > v; v++) | |
if (d = c[v], !(!d.selected && v !== f || (P.optDisabled ? d.disabled : null !== d.getAttribute("disabled")) || d.parentNode.disabled && z.nodeName(d.parentNode, "optgroup"))) { | |
if (a = z(d).val(), k) return a; | |
n.push(a) | |
} | |
return n | |
}, | |
set: function(a, d) { | |
for (var c, f, k = a.options, n = z.makeArray(d), e = k.length; e--;) | |
if (f = k[e], 0 <= z.inArray(z.valHooks.option.get(f), n)) try { | |
f.selected = c = !0 | |
} catch (Dc) { | |
f.scrollHeight | |
} else f.selected = !1; | |
return c || (a.selectedIndex = -1), k | |
} | |
} | |
} | |
}); | |
z.each(["radio", "checkbox"], function() { | |
z.valHooks[this] = { | |
set: function(a, d) { | |
return z.isArray(d) ? a.checked = 0 <= z.inArray(z(a).val(), d) : void 0 | |
} | |
}; | |
P.checkOn || (z.valHooks[this].get = function(a) { | |
return null === a.getAttribute("value") ? "on" : a.value | |
}) | |
}); | |
var Na, Tb, wb = z.expr.attrHandle, | |
Ub = /^(?:checked|selected)$/i, | |
ka = P.getSetAttribute, | |
Vb = P.input; | |
z.fn.extend({ | |
attr: function(a, d) { | |
return vb(this, z.attr, a, d, 1 < arguments.length) | |
}, | |
removeAttr: function(a) { | |
return this.each(function() { | |
z.removeAttr(this, a) | |
}) | |
} | |
}); | |
z.extend({ | |
attr: function(a, d, c) { | |
var f, k, n = a.nodeType; | |
if (a && 3 !== n && 8 !== n && 2 !== n) return "undefined" === typeof a.getAttribute ? z.prop(a, d, c) : (1 === n && z.isXMLDoc(a) || (d = d.toLowerCase(), f = z.attrHooks[d] || (z.expr.match.bool.test(d) ? Tb : Na)), void 0 === c ? f && "get" in f && null !== (k = f.get(a, d)) ? k : (k = z.find.attr(a, d), null == k ? void 0 : k) : null !== c ? f && "set" in f && void 0 !== (k = f.set(a, c, d)) ? k : (a.setAttribute(d, c + ""), c) : void z.removeAttr(a, d)) | |
}, | |
removeAttr: function(a, d) { | |
var c, f, k = 0, | |
n = d && d.match(Ha); | |
if (n && 1 === a.nodeType) | |
for (; c = n[k++];) f = z.propFix[c] || c, z.expr.match.bool.test(c) ? Vb && ka || !Ub.test(c) ? a[f] = !1 : a[z.camelCase("default-" + c)] = a[f] = !1 : z.attr(a, c, ""), a.removeAttribute(ka ? c : f) | |
}, | |
attrHooks: { | |
type: { | |
set: function(a, d) { | |
if (!P.radioValue && "radio" === d && z.nodeName(a, "input")) { | |
var c = a.value; | |
return a.setAttribute("type", d), c && (a.value = c), d | |
} | |
} | |
} | |
} | |
}); | |
Tb = { | |
set: function(a, d, c) { | |
return !1 === d ? z.removeAttr(a, c) : Vb && ka || !Ub.test(c) ? a.setAttribute(!ka && z.propFix[c] || c, c) : a[z.camelCase("default-" + c)] = a[c] = !0, c | |
} | |
}; | |
z.each(z.expr.match.bool.source.match(/\w+/g), function(a, d) { | |
var c = wb[d] || z.find.attr; | |
wb[d] = Vb && ka || !Ub.test(d) ? function(a, d, f) { | |
var k, n; | |
return f || (n = wb[d], wb[d] = k, k = null != c(a, d, f) ? d.toLowerCase() : null, wb[d] = n), k | |
} : function(a, d, c) { | |
return c ? void 0 : a[z.camelCase("default-" + d)] ? d.toLowerCase() : null | |
} | |
}); | |
Vb && ka || (z.attrHooks.value = { | |
set: function(a, d, c) { | |
return z.nodeName(a, "input") ? void(a.defaultValue = d) : Na && Na.set(a, d, c) | |
} | |
}); | |
ka || (Na = { | |
set: function(a, d, c) { | |
var f = a.getAttributeNode(c); | |
return f || a.setAttributeNode(f = a.ownerDocument.createAttribute(c)), f.value = d += "", "value" === c || d === a.getAttribute(c) ? d : void 0 | |
} | |
}, wb.id = wb.name = wb.coords = function(a, d, c) { | |
var f; | |
return c ? void 0 : (f = a.getAttributeNode(d)) && "" !== f.value ? f.value : null | |
}, z.valHooks.button = { | |
get: function(a, d) { | |
var c = a.getAttributeNode(d); | |
return c && c.specified ? c.value : void 0 | |
}, | |
set: Na.set | |
}, z.attrHooks.contenteditable = { | |
set: function(a, d, c) { | |
Na.set(a, "" === d ? !1 : d, c) | |
} | |
}, z.each(["width", "height"], function(a, d) { | |
z.attrHooks[d] = { | |
set: function(a, c) { | |
return "" === c ? (a.setAttribute(d, "auto"), c) : void 0 | |
} | |
} | |
})); | |
P.style || (z.attrHooks.style = { | |
get: function(a) { | |
return a.style.cssText || void 0 | |
}, | |
set: function(a, d) { | |
return a.style.cssText = d + "" | |
} | |
}); | |
var Oa = /^(?:input|select|textarea|button|object)$/i, | |
mc = /^(?:a|area)$/i; | |
z.fn.extend({ | |
prop: function(a, d) { | |
return vb(this, z.prop, a, d, 1 < arguments.length) | |
}, | |
removeProp: function(a) { | |
return a = z.propFix[a] || a, this.each(function() { | |
try { | |
this[a] = void 0, delete this[a] | |
} catch (qc) {} | |
}) | |
} | |
}); | |
z.extend({ | |
propFix: { | |
for: "htmlFor", | |
class: "className" | |
}, | |
prop: function(a, d, c) { | |
var f, k, n, e = a.nodeType; | |
if (a && 3 !== e && 8 !== e && 2 !== e) return n = 1 !== e || !z.isXMLDoc(a), n && (d = z.propFix[d] || d, k = z.propHooks[d]), void 0 !== c ? k && "set" in k && void 0 !== (f = k.set(a, c, d)) ? f : a[d] = c : k && "get" in k && null !== (f = k.get(a, d)) ? f : a[d] | |
}, | |
propHooks: { | |
tabIndex: { | |
get: function(a) { | |
var d = z.find.attr(a, "tabindex"); | |
return d ? parseInt(d, 10) : Oa.test(a.nodeName) || mc.test(a.nodeName) && a.href ? 0 : -1 | |
} | |
} | |
} | |
}); | |
P.hrefNormalized || z.each(["href", "src"], function(a, d) { | |
z.propHooks[d] = { | |
get: function(a) { | |
return a.getAttribute(d, 4) | |
} | |
} | |
}); | |
P.optSelected || (z.propHooks.selected = { | |
get: function(a) { | |
a = a.parentNode; | |
return a && (a.selectedIndex, a.parentNode && a.parentNode.selectedIndex), null | |
} | |
}); | |
z.each("tabIndex readOnly maxLength cellSpacing cellPadding rowSpan colSpan useMap frameBorder contentEditable".split(" "), function() { | |
z.propFix[this.toLowerCase()] = this | |
}); | |
P.enctype || (z.propFix.enctype = "encoding"); | |
var Wb = /[\t\r\n\f]/g; | |
z.fn.extend({ | |
addClass: function(a) { | |
var d, c, f, k, n, e = 0, | |
v = this.length; | |
d = "string" == typeof a && a; | |
if (z.isFunction(a)) return this.each(function(d) { | |
z(this).addClass(a.call(this, d, this.className)) | |
}); | |
if (d) | |
for (d = (a || "").match(Ha) || []; v > e; e++) | |
if (c = this[e], f = 1 === c.nodeType && (c.className ? (" " + c.className + " ").replace(Wb, " ") : " ")) { | |
for (n = 0; k = d[n++];) 0 > f.indexOf(" " + k + " ") && (f += k + " "); | |
f = z.trim(f); | |
c.className !== f && (c.className = f) | |
} | |
return this | |
}, | |
removeClass: function(a) { | |
var d, c, f, k, n, e = 0, | |
v = this.length; | |
d = 0 === arguments.length || "string" == typeof a && a; | |
if (z.isFunction(a)) return this.each(function(d) { | |
z(this).removeClass(a.call(this, d, this.className)) | |
}); | |
if (d) | |
for (d = (a || "").match(Ha) || []; v > e; e++) | |
if (c = this[e], f = 1 === c.nodeType && (c.className ? (" " + c.className + " ").replace(Wb, " ") : "")) { | |
for (n = 0; k = d[n++];) | |
for (; 0 <= f.indexOf(" " + k + " ");) f = f.replace(" " + k + " ", " "); | |
f = a ? z.trim(f) : ""; | |
c.className !== f && (c.className = f) | |
} | |
return this | |
}, | |
toggleClass: function(a, d) { | |
var c = typeof a; | |
return "boolean" == typeof d && "string" === c ? d ? this.addClass(a) : this.removeClass(a) : this.each(z.isFunction(a) ? function(c) { | |
z(this).toggleClass(a.call(this, c, this.className, d), d) | |
} : function() { | |
if ("string" === c) | |
for (var d, f = 0, k = z(this), n = a.match(Ha) || []; d = n[f++];) k.hasClass(d) ? k.removeClass(d) : k.addClass(d); | |
else("undefined" === c || "boolean" === c) && (this.className && z._data(this, "__className__", this.className), this.className = this.className || !1 === a ? "" : z._data(this, "__className__") || "") | |
}) | |
}, | |
hasClass: function(a) { | |
a = " " + a + " "; | |
for (var d = 0, c = this.length; c > d; d++) | |
if (1 === this[d].nodeType && 0 <= (" " + this[d].className + " ").replace(Wb, " ").indexOf(a)) return !0; | |
return !1 | |
} | |
}); | |
z.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, d) { | |
z.fn[d] = function(a, c) { | |
return 0 < arguments.length ? this.on(d, null, a, c) : this.trigger(d) | |
} | |
}); | |
z.fn.extend({ | |
hover: function(a, d) { | |
return this.mouseenter(a).mouseleave(d || a) | |
}, | |
bind: function(a, d, c) { | |
return this.on(a, null, d, c) | |
}, | |
unbind: function(a, d) { | |
return this.off(a, null, d) | |
}, | |
delegate: function(a, d, c, f) { | |
return this.on(d, a, c, f) | |
}, | |
undelegate: function(a, d, c) { | |
return 1 === arguments.length ? this.off(a, "**") : this.off(d, a || "**", c) | |
} | |
}); | |
var Fb = z.now(), | |
bc = /\?/, | |
Xb = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g; | |
z.parseJSON = function(a) { | |
if (d.JSON && d.JSON.parse) return d.JSON.parse(a + ""); | |
var c, f = null, | |
k = z.trim(a + ""); | |
return k && !z.trim(k.replace(Xb, function(a, d, k, n) { | |
return c && d && (f = 0), 0 === f ? a : (c = k || d, f += !n - !k, "") | |
})) ? Function("return " + k)() : z.error("Invalid JSON: " + a) | |
}; | |
z.parseXML = function(a) { | |
var c, f; | |
if (!a || "string" != typeof a) return null; | |
try { | |
d.DOMParser ? (f = new DOMParser, c = f.parseFromString(a, "text/xml")) : (c = new ActiveXObject("Microsoft.XMLDOM"), c.async = "false", c.loadXML(a)) | |
} catch (tc) { | |
c = void 0 | |
} | |
return c && c.documentElement && !c.getElementsByTagName("parsererror").length || z.error("Invalid XML: " + a), c | |
}; | |
var xb, fb, Yb = /#.*$/, | |
nc = /([?&])_=[^&]*/, | |
oc = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm, | |
eb = /^(?:GET|HEAD)$/, | |
Pa = /^\/\//, | |
$a = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/, | |
Ja = {}, | |
cb = {}, | |
gb = "*/".concat("*"); | |
try { | |
fb = location.href | |
} catch (nb) { | |
fb = X.createElement("a"), fb.href = "", fb = fb.href | |
} | |
xb = $a.exec(fb.toLowerCase()) || []; | |
z.extend({ | |
active: 0, | |
lastModified: {}, | |
etag: {}, | |
ajaxSettings: { | |
url: fb, | |
type: "GET", | |
isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(xb[1]), | |
global: !0, | |
processData: !0, | |
async: !0, | |
contentType: "application/x-www-form-urlencoded; charset=UTF-8", | |
accepts: { | |
"*": gb, | |
text: "text/plain", | |
html: "text/html", | |
xml: "application/xml, text/xml", | |
json: "application/json, text/javascript" | |
}, | |
contents: { | |
xml: /xml/, | |
html: /html/, | |
json: /json/ | |
}, | |
responseFields: { | |
xml: "responseXML", | |
text: "responseText", | |
json: "responseJSON" | |
}, | |
converters: { | |
"* text": String, | |
"text html": !0, | |
"text json": z.parseJSON, | |
"text xml": z.parseXML | |
}, | |
flatOptions: { | |
url: !0, | |
context: !0 | |
} | |
}, | |
ajaxSetup: function(a, d) { | |
return d ? ua(ua(a, z.ajaxSettings), d) : ua(z.ajaxSettings, a) | |
}, | |
ajaxPrefilter: aa(Ja), | |
ajaxTransport: aa(cb), | |
ajax: function(a, d) { | |
function c(a, d, c, f) { | |
var k, m, C, E, F = d; | |
if (2 !== A) { | |
A = 2; | |
v && clearTimeout(v); | |
h = void 0; | |
e = f || ""; | |
N.readyState = 0 < a ? 4 : 0; | |
f = 200 <= a && 300 > a || 304 === a; | |
if (c) { | |
C = w; | |
for (var G = N, Ca, K, fa, J, I = C.contents, Ra = C.dataTypes; | |
"*" === Ra[0];) Ra.shift(), void 0 === K && (K = C.mimeType || G.getResponseHeader("Content-Type")); | |
if (K) | |
for (J in I) | |
if (I[J] && I[J].test(K)) { | |
Ra.unshift(J); | |
break | |
} | |
if (Ra[0] in c) fa = Ra[0]; | |
else { | |
for (J in c) { | |
if (!Ra[0] || C.converters[J + " " + Ra[0]]) { | |
fa = J; | |
break | |
} | |
Ca || (Ca = J) | |
} | |
fa = fa || Ca | |
} | |
C = fa ? (fa !== Ra[0] && Ra.unshift(fa), c[fa]) : void 0 | |
} | |
var oa; | |
a: { | |
c = w; | |
Ca = C; | |
K = N; | |
fa = f; | |
var Fa, H, O; | |
C = {}; | |
G = c.dataTypes.slice(); | |
if (G[1]) | |
for (Fa in c.converters) C[Fa.toLowerCase()] = c.converters[Fa]; | |
for (J = G.shift(); J;) | |
if (c.responseFields[J] && (K[c.responseFields[J]] = Ca), !O && fa && c.dataFilter && (Ca = c.dataFilter(Ca, c.dataType)), O = J, J = G.shift()) | |
if ("*" === J) J = O; | |
else if ("*" !== O && O !== J) { | |
if (Fa = C[O + " " + J] || C["* " + J], !Fa) | |
for (oa in C) | |
if (H = oa.split(" "), H[1] === J && (Fa = C[O + " " + H[0]] || C["* " + H[0]])) { | |
!0 === Fa ? Fa = C[oa] : !0 !== C[oa] && (J = H[0], G.unshift(H[1])); | |
break | |
} | |
if (!0 !== Fa) | |
if (Fa && c["throws"]) Ca = Fa(Ca); | |
else try { | |
Ca = Fa(Ca) | |
} catch (Yc) { | |
oa = { | |
state: "parsererror", | |
error: Fa ? Yc : "No conversion from " + O + " to " + J | |
}; | |
break a | |
} | |
} | |
oa = { | |
state: "success", | |
data: Ca | |
} | |
} | |
C = oa; | |
f ? (w.ifModified && (E = N.getResponseHeader("Last-Modified"), E && (z.lastModified[n] = E), E = N.getResponseHeader("etag"), E && (z.etag[n] = E)), 204 === a || "HEAD" === w.type ? F = "nocontent" : 304 === a ? F = "notmodified" : (F = C.state, k = C.data, m = C.error, f = !m)) : (m = F, (a || !F) && (F = "error", 0 > a && (a = 0))); | |
N.status = a; | |
N.statusText = (d || F) + ""; | |
f ? q.resolveWith(u, [k, F, N]) : q.rejectWith(u, [N, F, m]); | |
N.statusCode(D); | |
D = void 0; | |
t && B.trigger(f ? "ajaxSuccess" : "ajaxError", [N, w, f ? k : m]); | |
p.fireWith(u, [N, F]); | |
t && (B.trigger("ajaxComplete", [N, w]), --z.active || z.event.trigger("ajaxStop")) | |
} | |
} | |
"object" == typeof a && (d = a, a = void 0); | |
d = d || {}; | |
var f, k, n, e, v, t, h, m, w = z.ajaxSetup({}, d), | |
u = w.context || w, | |
B = w.context && (u.nodeType || u.jquery) ? z(u) : z.event, | |
q = z.Deferred(), | |
p = z.Callbacks("once memory"), | |
D = w.statusCode || {}, | |
C = {}, | |
E = {}, | |
A = 0, | |
F = "canceled", | |
N = { | |
readyState: 0, | |
getResponseHeader: function(a) { | |
var d; | |
if (2 === A) { | |
if (!m) | |
for (m = {}; d = oc.exec(e);) m[d[1].toLowerCase()] = d[2]; | |
d = m[a.toLowerCase()] | |
} | |
return null == d ? null : d | |
}, | |
getAllResponseHeaders: function() { | |
return 2 === A ? e : null | |
}, | |
setRequestHeader: function(a, d) { | |
var c = a.toLowerCase(); | |
return A || (a = E[c] = E[c] || a, C[a] = d), this | |
}, | |
overrideMimeType: function(a) { | |
return A || (w.mimeType = a), this | |
}, | |
statusCode: function(a) { | |
var d; | |
if (a) | |
if (2 > A) | |
for (d in a) D[d] = [D[d], a[d]]; | |
else N.always(a[N.status]); | |
return this | |
}, | |
abort: function(a) { | |
a = a || F; | |
return h && h.abort(a), c(0, a), this | |
} | |
}; | |
if (q.promise(N).complete = p.add, N.success = N.done, N.error = N.fail, w.url = ((a || w.url || fb) + "").replace(Yb, "").replace(Pa, xb[1] + "//"), w.type = d.method || d.type || w.method || w.type, w.dataTypes = z.trim(w.dataType || "*").toLowerCase().match(Ha) || [""], null == w.crossDomain && (f = $a.exec(w.url.toLowerCase()), w.crossDomain = !(!f || f[1] === xb[1] && f[2] === xb[2] && (f[3] || ("http:" === f[1] ? "80" : "443")) === (xb[3] || ("http:" === xb[1] ? "80" : "443")))), w.data && w.processData && "string" != typeof w.data && (w.data = z.param(w.data, w.traditional)), da(Ja, w, d, N), 2 === A) return N; | |
(t = z.event && w.global) && 0 === z.active++ && z.event.trigger("ajaxStart"); | |
w.type = w.type.toUpperCase(); | |
w.hasContent = !eb.test(w.type); | |
n = w.url; | |
w.hasContent || (w.data && (n = w.url += (bc.test(n) ? "&" : "?") + w.data, delete w.data), !1 === w.cache && (w.url = nc.test(n) ? n.replace(nc, "$1_=" + Fb++) : n + (bc.test(n) ? "&" : "?") + "_=" + Fb++)); | |
w.ifModified && (z.lastModified[n] && N.setRequestHeader("If-Modified-Since", z.lastModified[n]), z.etag[n] && N.setRequestHeader("If-None-Match", z.etag[n])); | |
(w.data && w.hasContent && !1 !== w.contentType || d.contentType) && N.setRequestHeader("Content-Type", w.contentType); | |
N.setRequestHeader("Accept", w.dataTypes[0] && w.accepts[w.dataTypes[0]] ? w.accepts[w.dataTypes[0]] + ("*" !== w.dataTypes[0] ? ", " + gb + "; q=0.01" : "") : w.accepts["*"]); | |
for (k in w.headers) N.setRequestHeader(k, w.headers[k]); | |
if (w.beforeSend && (!1 === w.beforeSend.call(u, N, w) || 2 === A)) return N.abort(); | |
F = "abort"; | |
for (k in { | |
success: 1, | |
error: 1, | |
complete: 1 | |
}) N[k](w[k]); | |
if (h = da(cb, w, d, N)) { | |
N.readyState = 1; | |
t && B.trigger("ajaxSend", [N, w]); | |
w.async && 0 < w.timeout && (v = setTimeout(function() { | |
N.abort("timeout") | |
}, w.timeout)); | |
try { | |
A = 1, h.send(C, c) | |
} catch (wc) { | |
if (!(2 > A)) throw wc; | |
c(-1, wc) | |
} | |
} else c(-1, "No Transport"); | |
return N | |
}, | |
getJSON: function(a, d, c) { | |
return z.get(a, d, c, "json") | |
}, | |
getScript: function(a, d) { | |
return z.get(a, void 0, d, "script") | |
} | |
}); | |
z.each(["get", "post"], function(a, d) { | |
z[d] = function(a, c, f, k) { | |
return z.isFunction(c) && (k = k || f, f = c, c = void 0), z.ajax({ | |
url: a, | |
type: d, | |
dataType: k, | |
data: c, | |
success: f | |
}) | |
} | |
}); | |
z._evalUrl = function(a) { | |
return z.ajax({ | |
url: a, | |
type: "GET", | |
dataType: "script", | |
async: !1, | |
global: !1, | |
throws: !0 | |
}) | |
}; | |
z.fn.extend({ | |
wrapAll: function(a) { | |
if (z.isFunction(a)) return this.each(function(d) { | |
z(this).wrapAll(a.call(this, d)) | |
}); | |
if (this[0]) { | |
var d = z(a, this[0].ownerDocument).eq(0).clone(!0); | |
this[0].parentNode && d.insertBefore(this[0]); | |
d.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 this.each(z.isFunction(a) ? function(d) { | |
z(this).wrapInner(a.call(this, d)) | |
} : function() { | |
var d = z(this), | |
c = d.contents(); | |
c.length ? c.wrapAll(a) : d.append(a) | |
}) | |
}, | |
wrap: function(a) { | |
var d = z.isFunction(a); | |
return this.each(function(c) { | |
z(this).wrapAll(d ? a.call(this, c) : a) | |
}) | |
}, | |
unwrap: function() { | |
return this.parent().each(function() { | |
z.nodeName(this, "body") || z(this).replaceWith(this.childNodes) | |
}).end() | |
} | |
}); | |
z.expr.filters.hidden = function(a) { | |
return 0 >= a.offsetWidth && 0 >= a.offsetHeight || !P.reliableHiddenOffsets() && "none" === (a.style && a.style.display || z.css(a, "display")) | |
}; | |
z.expr.filters.visible = function(a) { | |
return !z.expr.filters.hidden(a) | |
}; | |
var Gb = /%20/g, | |
N = /\[\]$/, | |
Ca = /\r?\n/g, | |
fa = /^(?:submit|button|image|reset|file)$/i, | |
Ra = /^(?:input|select|textarea|keygen)/i; | |
z.param = function(a, d) { | |
var c, f = [], | |
k = function(a, d) { | |
d = z.isFunction(d) ? d() : null == d ? "" : d; | |
f[f.length] = encodeURIComponent(a) + "=" + encodeURIComponent(d) | |
}; | |
if (void 0 === d && (d = z.ajaxSettings && z.ajaxSettings.traditional), z.isArray(a) || a.jquery && !z.isPlainObject(a)) z.each(a, function() { | |
k(this.name, this.value) | |
}); | |
else | |
for (c in a) Da(c, a[c], d, k); | |
return f.join("&").replace(Gb, "+") | |
}; | |
z.fn.extend({ | |
serialize: function() { | |
return z.param(this.serializeArray()) | |
}, | |
serializeArray: function() { | |
return this.map(function() { | |
var a = z.prop(this, "elements"); | |
return a ? z.makeArray(a) : this | |
}).filter(function() { | |
var a = this.type; | |
return this.name && !z(this).is(":disabled") && Ra.test(this.nodeName) && !fa.test(a) && (this.checked || !Jb.test(a)) | |
}).map(function(a, d) { | |
var c = z(this).val(); | |
return null == c ? null : z.isArray(c) ? z.map(c, function(a) { | |
return { | |
name: d.name, | |
value: a.replace(Ca, "\r\n") | |
} | |
}) : { | |
name: d.name, | |
value: c.replace(Ca, "\r\n") | |
} | |
}).get() | |
} | |
}); | |
z.ajaxSettings.xhr = void 0 !== d.ActiveXObject ? function() { | |
var a; | |
if (!(a = !this.isLocal && /^(get|post|head|put|delete|options)$/i.test(this.type) && S())) a: { | |
try { | |
a = new d.ActiveXObject("Microsoft.XMLHTTP"); | |
break a | |
} catch (qc) {} | |
a = void 0 | |
} | |
return a | |
} : S; | |
var Xa = 0, | |
Ya = {}, | |
Ob = z.ajaxSettings.xhr(); | |
d.attachEvent && d.attachEvent("onunload", function() { | |
for (var a in Ya) Ya[a](void 0, !0) | |
}); | |
P.cors = !!Ob && "withCredentials" in Ob; | |
(Ob = P.ajax = !!Ob) && z.ajaxTransport(function(a) { | |
if (!a.crossDomain || P.cors) { | |
var d; | |
return { | |
send: function(c, f) { | |
var k, n = a.xhr(), | |
e = ++Xa; | |
if (n.open(a.type, a.url, a.async, a.username, a.password), a.xhrFields) | |
for (k in a.xhrFields) n[k] = a.xhrFields[k]; | |
a.mimeType && n.overrideMimeType && n.overrideMimeType(a.mimeType); | |
a.crossDomain || c["X-Requested-With"] || (c["X-Requested-With"] = "XMLHttpRequest"); | |
for (k in c) void 0 !== c[k] && n.setRequestHeader(k, c[k] + ""); | |
n.send(a.hasContent && a.data || null); | |
d = function(c, k) { | |
var v, t, h; | |
if (d && (k || 4 === n.readyState)) | |
if (delete Ya[e], d = void 0, n.onreadystatechange = z.noop, k) 4 !== n.readyState && n.abort(); | |
else { | |
h = {}; | |
v = n.status; | |
"string" == typeof n.responseText && (h.text = n.responseText); | |
try { | |
t = n.statusText | |
} catch (zc) { | |
t = "" | |
} | |
v || !a.isLocal || a.crossDomain ? 1223 === v && (v = 204) : v = h.text ? 200 : 404 | |
} | |
h && f(v, t, h, n.getAllResponseHeaders()) | |
}; | |
a.async ? 4 === n.readyState ? setTimeout(d) : n.onreadystatechange = Ya[e] = d : d() | |
}, | |
abort: function() { | |
d && d(void 0, !0) | |
} | |
} | |
} | |
}); | |
z.ajaxSetup({ | |
accepts: { | |
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" | |
}, | |
contents: { | |
script: /(?:java|ecma)script/ | |
}, | |
converters: { | |
"text script": function(a) { | |
return z.globalEval(a), a | |
} | |
} | |
}); | |
z.ajaxPrefilter("script", function(a) { | |
void 0 === a.cache && (a.cache = !1); | |
a.crossDomain && (a.type = "GET", a.global = !1) | |
}); | |
z.ajaxTransport("script", function(a) { | |
if (a.crossDomain) { | |
var d, c = X.head || z("head")[0] || X.documentElement; | |
return { | |
send: function(f, k) { | |
d = X.createElement("script"); | |
d.async = !0; | |
a.scriptCharset && (d.charset = a.scriptCharset); | |
d.src = a.url; | |
d.onload = d.onreadystatechange = function(a, c) { | |
(c || !d.readyState || /loaded|complete/.test(d.readyState)) && (d.onload = d.onreadystatechange = null, d.parentNode && d.parentNode.removeChild(d), d = null, c || k(200, "success")) | |
}; | |
c.insertBefore(d, c.firstChild) | |
}, | |
abort: function() { | |
d && d.onload(void 0, !0) | |
} | |
} | |
} | |
}); | |
var pc = [], | |
sa = /(=)\?(?=&|$)|\?\?/; | |
z.ajaxSetup({ | |
jsonp: "callback", | |
jsonpCallback: function() { | |
var a = pc.pop() || z.expando + "_" + Fb++; | |
return this[a] = !0, a | |
} | |
}); | |
z.ajaxPrefilter("json jsonp", function(a, c, f) { | |
var k, n, e, v = !1 !== a.jsonp && (sa.test(a.url) ? "url" : "string" == typeof a.data && !(a.contentType || "").indexOf("application/x-www-form-urlencoded") && sa.test(a.data) && "data"); | |
return v || "jsonp" === a.dataTypes[0] ? (k = a.jsonpCallback = z.isFunction(a.jsonpCallback) ? a.jsonpCallback() : a.jsonpCallback, v ? a[v] = a[v].replace(sa, "$1" + k) : !1 !== a.jsonp && (a.url += (bc.test(a.url) ? "&" : "?") + a.jsonp + "=" + k), a.converters["script json"] = function() { | |
return e || z.error(k + " was not called"), e[0] | |
}, a.dataTypes[0] = "json", n = d[k], d[k] = function() { | |
e = arguments | |
}, f.always(function() { | |
d[k] = n; | |
a[k] && (a.jsonpCallback = c.jsonpCallback, pc.push(k)); | |
e && z.isFunction(n) && n(e[0]); | |
e = n = void 0 | |
}), "script") : void 0 | |
}); | |
z.parseHTML = function(a, d, c) { | |
if (!a || "string" != typeof a) return null; | |
"boolean" == typeof d && (c = d, d = !1); | |
d = d || X; | |
var f = ib.exec(a); | |
c = !c && []; | |
return f ? [d.createElement(f[1])] : (f = z.buildFragment([a], d, c), c && c.length && z(c).remove(), z.merge([], f.childNodes)) | |
}; | |
var Zb = z.fn.load; | |
z.fn.load = function(a, d, c) { | |
if ("string" != typeof a && Zb) return Zb.apply(this, arguments); | |
var f, k, n, e = this, | |
v = a.indexOf(" "); | |
return 0 <= v && (f = z.trim(a.slice(v, a.length)), a = a.slice(0, v)), z.isFunction(d) ? (c = d, d = void 0) : d && "object" == typeof d && (n = "POST"), 0 < e.length && z.ajax({ | |
url: a, | |
type: n, | |
dataType: "html", | |
data: d | |
}).done(function(a) { | |
k = arguments; | |
e.html(f ? z("<div>").append(z.parseHTML(a)).find(f) : a) | |
}).complete(c && function(a, d) { | |
e.each(c, k || [a.responseText, d, a]) | |
}), this | |
}; | |
z.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function(a, d) { | |
z.fn[d] = function(a) { | |
return this.on(d, a) | |
} | |
}); | |
z.expr.filters.animated = function(a) { | |
return z.grep(z.timers, function(d) { | |
return a === d.elem | |
}).length | |
}; | |
var Hb = d.document.documentElement; | |
z.offset = { | |
setOffset: function(a, d, c) { | |
var f, k, n, e, v, t, h = z.css(a, "position"), | |
m = z(a), | |
w = {}; | |
"static" === h && (a.style.position = "relative"); | |
v = m.offset(); | |
n = z.css(a, "top"); | |
t = z.css(a, "left"); | |
("absolute" === h || "fixed" === h) && -1 < z.inArray("auto", [n, t]) ? (f = m.position(), e = f.top, k = f.left) : (e = parseFloat(n) || 0, k = parseFloat(t) || 0); | |
z.isFunction(d) && (d = d.call(a, c, v)); | |
null != d.top && (w.top = d.top - v.top + e); | |
null != d.left && (w.left = d.left - v.left + k); | |
"using" in d ? d.using.call(a, w) : m.css(w) | |
} | |
}; | |
z.fn.extend({ | |
offset: function(a) { | |
if (arguments.length) return void 0 === a ? this : this.each(function(d) { | |
z.offset.setOffset(this, a, d) | |
}); | |
var d, c, f = { | |
top: 0, | |
left: 0 | |
}, | |
k = this[0], | |
n = k && k.ownerDocument; | |
if (n) return d = n.documentElement, z.contains(d, k) ? ("undefined" !== typeof k.getBoundingClientRect && (f = k.getBoundingClientRect()), c = wa(n), { | |
top: f.top + (c.pageYOffset || d.scrollTop) - (d.clientTop || 0), | |
left: f.left + (c.pageXOffset || d.scrollLeft) - (d.clientLeft || 0) | |
}) : f | |
}, | |
position: function() { | |
if (this[0]) { | |
var a, d, c = { | |
top: 0, | |
left: 0 | |
}, | |
f = this[0]; | |
return "fixed" === z.css(f, "position") ? d = f.getBoundingClientRect() : (a = this.offsetParent(), d = this.offset(), z.nodeName(a[0], "html") || (c = a.offset()), c.top += z.css(a[0], "borderTopWidth", !0), c.left += z.css(a[0], "borderLeftWidth", !0)), { | |
top: d.top - c.top - z.css(f, "marginTop", !0), | |
left: d.left - c.left - z.css(f, "marginLeft", !0) | |
} | |
} | |
}, | |
offsetParent: function() { | |
return this.map(function() { | |
for (var a = this.offsetParent || Hb; a && !z.nodeName(a, "html") && "static" === z.css(a, "position");) a = a.offsetParent; | |
return a || Hb | |
}) | |
} | |
}); | |
z.each({ | |
scrollLeft: "pageXOffset", | |
scrollTop: "pageYOffset" | |
}, function(a, d) { | |
var c = /Y/.test(d); | |
z.fn[a] = function(f) { | |
return vb(this, function(a, f, k) { | |
var n = wa(a); | |
return void 0 === k ? n ? d in n ? n[d] : n.document.documentElement[f] : a[f] : void(n ? n.scrollTo(c ? z(n).scrollLeft() : k, c ? k : z(n).scrollTop()) : a[f] = k) | |
}, a, f, arguments.length, null) | |
} | |
}); | |
z.each(["top", "left"], function(a, d) { | |
z.cssHooks[d] = M(P.pixelPosition, function(a, c) { | |
return c ? (c = zb(a, d), la.test(c) ? z(a).position()[d] + "px" : c) : void 0 | |
}) | |
}); | |
z.each({ | |
Height: "height", | |
Width: "width" | |
}, function(a, d) { | |
z.each({ | |
padding: "inner" + a, | |
content: d, | |
"": "outer" + a | |
}, function(c, f) { | |
z.fn[f] = function(f, k) { | |
var n = arguments.length && (c || "boolean" != typeof f), | |
e = c || (!0 === f || !0 === k ? "margin" : "border"); | |
return vb(this, function(d, c, f) { | |
var k; | |
return z.isWindow(d) ? d.document.documentElement["client" + a] : 9 === d.nodeType ? (k = d.documentElement, Math.max(d.body["scroll" + a], k["scroll" + a], d.body["offset" + a], k["offset" + a], k["client" + a])) : void 0 === f ? z.css(d, c, e) : z.style(d, c, f, e) | |
}, d, n ? f : void 0, n, null) | |
} | |
}) | |
}); | |
z.fn.size = function() { | |
return this.length | |
}; | |
z.fn.andSelf = z.fn.addBack; | |
"function" == typeof define && define.amd && define("jquery", [], function() { | |
return z | |
}); | |
var sc = d.jQuery, | |
vc = d.$; | |
return z.noConflict = function(a) { | |
return d.$ === z && (d.$ = vc), a && d.jQuery === z && (d.jQuery = sc), z | |
}, "undefined" === typeof c && (d.jQuery = d.$ = z), z | |
}); | |
(function(d) { | |
"function" == typeof define && define.amd ? define(["jquery"], d) : d(jQuery) | |
})(function(d) { | |
function c(a, c) { | |
var f, k, n, v = a.nodeName.toLowerCase(); | |
return "area" === v ? (f = a.parentNode, k = f.name, a.href && k && "map" === f.nodeName.toLowerCase() ? (n = d("img[usemap='#" + k + "']")[0], !!n && e(n)) : !1) : (/input|select|textarea|button|object/.test(v) ? !a.disabled : "a" === v ? a.href || c : c) && e(a) | |
} | |
function e(a) { | |
return d.expr.filters.visible(a) && !d(a).parents().addBack().filter(function() { | |
return "hidden" === d.css(this, "visibility") | |
}).length | |
} | |
function m(a) { | |
for (var d, c; a.length && a[0] !== document;) { | |
if (d = a.css("position"), ("absolute" === d || "relative" === d || "fixed" === d) && (c = parseInt(a.css("zIndex"), 10), !isNaN(c) && 0 !== c)) return c; | |
a = a.parent() | |
} | |
return 0 | |
} | |
function h() { | |
this._curInst = null; | |
this._keyEvent = !1; | |
this._disabledInputs = []; | |
this._inDialog = this._datepickerShowing = !1; | |
this._mainDivId = "ui-datepicker-div"; | |
this._inlineClass = "ui-datepicker-inline"; | |
this._appendClass = "ui-datepicker-append"; | |
this._triggerClass = "ui-datepicker-trigger"; | |
this._dialogClass = "ui-datepicker-dialog"; | |
this._disableClass = "ui-datepicker-disabled"; | |
this._unselectableClass = "ui-datepicker-unselectable"; | |
this._currentClass = "ui-datepicker-current-day"; | |
this._dayOverClass = "ui-datepicker-days-cell-over"; | |
this.regional = []; | |
this.regional[""] = { | |
closeText: "Done", | |
prevText: "Prev", | |
nextText: "Next", | |
currentText: "Today", | |
monthNames: "January February March April May June July August September October November December".split(" "), | |
monthNamesShort: "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "), | |
dayNames: "Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "), | |
dayNamesShort: "Sun Mon Tue Wed Thu Fri Sat".split(" "), | |
dayNamesMin: "Su Mo Tu We Th Fr Sa".split(" "), | |
weekHeader: "Wk", | |
dateFormat: "mm/dd/yy", | |
firstDay: 0, | |
isRTL: !1, | |
showMonthAfterYear: !1, | |
yearSuffix: "" | |
}; | |
this._defaults = { | |
showOn: "focus", | |
showAnim: "fadeIn", | |
showOptions: {}, | |
defaultDate: null, | |
appendText: "", | |
buttonText: "...", | |
buttonImage: "", | |
buttonImageOnly: !1, | |
hideIfNoPrevNext: !1, | |
navigationAsDateFormat: !1, | |
gotoCurrent: !1, | |
changeMonth: !1, | |
changeYear: !1, | |
yearRange: "c-10:c+10", | |
showOtherMonths: !1, | |
selectOtherMonths: !1, | |
showWeek: !1, | |
calculateWeek: this.iso8601Week, | |
shortYearCutoff: "+10", | |
minDate: null, | |
maxDate: null, | |
duration: "fast", | |
beforeShowDay: null, | |
beforeShow: null, | |
onSelect: null, | |
onChangeMonthYear: null, | |
onClose: null, | |
numberOfMonths: 1, | |
showCurrentAtPos: 0, | |
stepMonths: 1, | |
stepBigMonths: 12, | |
altField: "", | |
altFormat: "", | |
constrainInput: !0, | |
showButtonPanel: !1, | |
autoSize: !1, | |
disabled: !1 | |
}; | |
d.extend(this._defaults, this.regional[""]); | |
this.regional.en = d.extend(!0, {}, this.regional[""]); | |
this.regional["en-US"] = d.extend(!0, {}, this.regional.en); | |
this.dpDiv = p(d("<div id='" + this._mainDivId + "' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")) | |
} | |
function p(a) { | |
return a.delegate("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a", "mouseout", function() { | |
d(this).removeClass("ui-state-hover"); - 1 !== this.className.indexOf("ui-datepicker-prev") && d(this).removeClass("ui-datepicker-prev-hover"); - 1 !== this.className.indexOf("ui-datepicker-next") && d(this).removeClass("ui-datepicker-next-hover") | |
}).delegate("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a", "mouseover", q) | |
} | |
function q() { | |
d.datepicker._isDisabledDatepicker(A.inline ? A.dpDiv.parent()[0] : A.input[0]) || (d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"), d(this).addClass("ui-state-hover"), -1 !== this.className.indexOf("ui-datepicker-prev") && d(this).addClass("ui-datepicker-prev-hover"), -1 !== this.className.indexOf("ui-datepicker-next") && d(this).addClass("ui-datepicker-next-hover")) | |
} | |
function a(a, c) { | |
d.extend(a, c); | |
for (var f in c) null == c[f] && (a[f] = c[f]); | |
return a | |
} | |
function f(a) { | |
return function() { | |
var d = this.element.val(); | |
a.apply(this, arguments); | |
this._refresh(); | |
d !== this.element.val() && this._trigger("change") | |
} | |
} | |
d.ui = d.ui || {}; | |
d.extend(d.ui, { | |
version: "1.11.2", | |
keyCode: { | |
BACKSPACE: 8, | |
COMMA: 188, | |
DELETE: 46, | |
DOWN: 40, | |
END: 35, | |
ENTER: 13, | |
ESCAPE: 27, | |
HOME: 36, | |
LEFT: 37, | |
PAGE_DOWN: 34, | |
PAGE_UP: 33, | |
PERIOD: 190, | |
RIGHT: 39, | |
SPACE: 32, | |
TAB: 9, | |
UP: 38 | |
} | |
}); | |
d.fn.extend({ | |
scrollParent: function(a) { | |
var c = this.css("position"), | |
f = "absolute" === c, | |
k = a ? /(auto|scroll|hidden)/ : /(auto|scroll)/; | |
a = this.parents().filter(function() { | |
var a = d(this); | |
return f && "static" === a.css("position") ? !1 : k.test(a.css("overflow") + a.css("overflow-y") + a.css("overflow-x")) | |
}).eq(0); | |
return "fixed" !== c && a.length ? a : d(this[0].ownerDocument || document) | |
}, | |
uniqueId: function() { | |
var a = 0; | |
return function() { | |
return this.each(function() { | |
this.id || (this.id = "ui-id-" + ++a) | |
}) | |
} | |
}(), | |
removeUniqueId: function() { | |
return this.each(function() { | |
/^ui-id-\d+$/.test(this.id) && d(this).removeAttr("id") | |
}) | |
} | |
}); | |
d.extend(d.expr[":"], { | |
data: d.expr.createPseudo ? d.expr.createPseudo(function(a) { | |
return function(c) { | |
return !!d.data(c, a) | |
} | |
}) : function(a, c, f) { | |
return !!d.data(a, f[3]) | |
}, | |
focusable: function(a) { | |
return c(a, !isNaN(d.attr(a, "tabindex"))) | |
}, | |
tabbable: function(a) { | |
var f = d.attr(a, "tabindex"), | |
k = isNaN(f); | |
return (k || 0 <= f) && c(a, !k) | |
} | |
}); | |
d("<a>").outerWidth(1).jquery || d.each(["Width", "Height"], function(a, c) { | |
function f(a, c, f, n) { | |
return d.each(k, function() { | |
c -= parseFloat(d.css(a, "padding" + this)) || 0; | |
f && (c -= parseFloat(d.css(a, "border" + this + "Width")) || 0); | |
n && (c -= parseFloat(d.css(a, "margin" + this)) || 0) | |
}), c | |
} | |
var k = "Width" === c ? ["Left", "Right"] : ["Top", "Bottom"], | |
n = c.toLowerCase(), | |
e = { | |
innerWidth: d.fn.innerWidth, | |
innerHeight: d.fn.innerHeight, | |
outerWidth: d.fn.outerWidth, | |
outerHeight: d.fn.outerHeight | |
}; | |
d.fn["inner" + c] = function(a) { | |
return void 0 === a ? e["inner" + c].call(this) : this.each(function() { | |
d(this).css(n, f(this, a) + "px") | |
}) | |
}; | |
d.fn["outer" + c] = function(a, k) { | |
return "number" != typeof a ? e["outer" + c].call(this, a) : this.each(function() { | |
d(this).css(n, f(this, a, !0, k) + "px") | |
}) | |
} | |
}); | |
d.fn.addBack || (d.fn.addBack = function(a) { | |
return this.add(null == a ? this.prevObject : this.prevObject.filter(a)) | |
}); | |
d("<a>").data("a-b", "a").removeData("a-b").data("a-b") && (d.fn.removeData = function(a) { | |
return function(c) { | |
return arguments.length ? a.call(this, d.camelCase(c)) : a.call(this) | |
} | |
}(d.fn.removeData)); | |
d.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()); | |
d.fn.extend({ | |
focus: function(a) { | |
return function(c, f) { | |
return "number" == typeof c ? this.each(function() { | |
var a = this; | |
setTimeout(function() { | |
d(a).focus(); | |
f && f.call(a) | |
}, c) | |
}) : a.apply(this, arguments) | |
} | |
}(d.fn.focus), | |
disableSelection: function() { | |
var a = "onselectstart" in document.createElement("div") ? "selectstart" : "mousedown"; | |
return function() { | |
return this.bind(a + ".ui-disableSelection", function(a) { | |
a.preventDefault() | |
}) | |
} | |
}(), | |
enableSelection: function() { | |
return this.unbind(".ui-disableSelection") | |
}, | |
zIndex: function(a) { | |
if (void 0 !== a) return this.css("zIndex", a); | |
if (this.length) { | |
var c, f; | |
for (a = d(this[0]); a.length && a[0] !== document;) { | |
if (c = a.css("position"), ("absolute" === c || "relative" === c || "fixed" === c) && (f = parseInt(a.css("zIndex"), 10), !isNaN(f) && 0 !== f)) return f; | |
a = a.parent() | |
} | |
} | |
return 0 | |
} | |
}); | |
d.ui.plugin = { | |
add: function(a, c, f) { | |
var k; | |
a = d.ui[a].prototype; | |
for (k in f) a.plugins[k] = a.plugins[k] || [], a.plugins[k].push([c, f[k]]) | |
}, | |
call: function(a, d, c, f) { | |
if ((d = a.plugins[d]) && (f || a.element[0].parentNode && 11 !== a.element[0].parentNode.nodeType)) | |
for (f = 0; d.length > f; f++) a.options[d[f][0]] && d[f][1].apply(a.element, c) | |
} | |
}; | |
var k = 0, | |
n = Array.prototype.slice; | |
d.cleanData = function(a) { | |
return function(c) { | |
var f, k, n; | |
for (n = 0; null != (k = c[n]); n++) try { | |
(f = d._data(k, "events")) && f.remove && d(k).triggerHandler("remove") | |
} catch (G) {} | |
a(c) | |
} | |
}(d.cleanData); | |
d.widget = function(a, c, f) { | |
var k, n, e, v, t = {}, | |
h = a.split(".")[0]; | |
return a = a.split(".")[1], k = h + "-" + a, f || (f = c, c = d.Widget), d.expr[":"][k.toLowerCase()] = function(a) { | |
return !!d.data(a, k) | |
}, d[h] = d[h] || {}, n = d[h][a], e = d[h][a] = function(a, d) { | |
return this._createWidget ? (arguments.length && this._createWidget(a, d), void 0) : new e(a, d) | |
}, d.extend(e, n, { | |
version: f.version, | |
_proto: d.extend({}, f), | |
_childConstructors: [] | |
}), v = new c, v.options = d.widget.extend({}, v.options), d.each(f, function(a, f) { | |
return d.isFunction(f) ? (t[a] = function() { | |
var d = function() { | |
return c.prototype[a].apply(this, arguments) | |
}, | |
k = function(d) { | |
return c.prototype[a].apply(this, d) | |
}; | |
return function() { | |
var a, c = this._super, | |
n = this._superApply; | |
return this._super = d, this._superApply = k, a = f.apply(this, arguments), this._super = c, this._superApply = n, a | |
} | |
}(), void 0) : (t[a] = f, void 0) | |
}), e.prototype = d.widget.extend(v, { | |
widgetEventPrefix: n ? v.widgetEventPrefix || a : a | |
}, t, { | |
constructor: e, | |
namespace: h, | |
widgetName: a, | |
widgetFullName: k | |
}), n ? (d.each(n._childConstructors, function(a, c) { | |
var f = c.prototype; | |
d.widget(f.namespace + "." + f.widgetName, e, c._proto) | |
}), delete n._childConstructors) : c._childConstructors.push(e), d.widget.bridge(a, e), e | |
}; | |
d.widget.extend = function(a) { | |
for (var c, f, k = n.call(arguments, 1), e = 0, v = k.length; v > e; e++) | |
for (c in k[e]) f = k[e][c], k[e].hasOwnProperty(c) && void 0 !== f && (a[c] = d.isPlainObject(f) ? d.isPlainObject(a[c]) ? d.widget.extend({}, a[c], f) : d.widget.extend({}, f) : f); | |
return a | |
}; | |
d.widget.bridge = function(a, c) { | |
var f = c.prototype.widgetFullName || a; | |
d.fn[a] = function(k) { | |
var e = "string" == typeof k, | |
v = n.call(arguments, 1), | |
t = this; | |
return k = !e && v.length ? d.widget.extend.apply(null, [k].concat(v)) : k, e ? this.each(function() { | |
var c, n = d.data(this, f); | |
return "instance" === k ? (t = n, !1) : n ? d.isFunction(n[k]) && "_" !== k.charAt(0) ? (c = n[k].apply(n, v), c !== n && void 0 !== c ? (t = c && c.jquery ? t.pushStack(c.get()) : c, !1) : void 0) : d.error("no such method '" + k + "' for " + a + " widget instance") : d.error("cannot call methods on " + a + " prior to initialization; attempted to call method '" + k + "'") | |
}) : this.each(function() { | |
var a = d.data(this, f); | |
a ? (a.option(k || {}), a._init && a._init()) : d.data(this, f, new c(k, this)) | |
}), t | |
} | |
}; | |
d.Widget = function() {}; | |
d.Widget._childConstructors = []; | |
d.Widget.prototype = { | |
widgetName: "widget", | |
widgetEventPrefix: "", | |
defaultElement: "<div>", | |
options: { | |
disabled: !1, | |
create: null | |
}, | |
_createWidget: function(a, c) { | |
c = d(c || this.defaultElement || this)[0]; | |
this.element = d(c); | |
this.uuid = k++; | |
this.eventNamespace = "." + this.widgetName + this.uuid; | |
this.bindings = d(); | |
this.hoverable = d(); | |
this.focusable = d(); | |
c !== this && (d.data(c, this.widgetFullName, this), this._on(!0, this.element, { | |
remove: function(a) { | |
a.target === c && this.destroy() | |
} | |
}), this.document = d(c.style ? c.ownerDocument : c.document || c), this.window = d(this.document[0].defaultView || this.document[0].parentWindow)); | |
this.options = d.widget.extend({}, this.options, this._getCreateOptions(), a); | |
this._create(); | |
this._trigger("create", null, this._getCreateEventData()); | |
this._init() | |
}, | |
_getCreateOptions: d.noop, | |
_getCreateEventData: d.noop, | |
_create: d.noop, | |
_init: d.noop, | |
destroy: function() { | |
this._destroy(); | |
this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(d.camelCase(this.widgetFullName)); | |
this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName + "-disabled ui-state-disabled"); | |
this.bindings.unbind(this.eventNamespace); | |
this.hoverable.removeClass("ui-state-hover"); | |
this.focusable.removeClass("ui-state-focus") | |
}, | |
_destroy: d.noop, | |
widget: function() { | |
return this.element | |
}, | |
option: function(a, c) { | |
var f, k, n, e = a; | |
if (0 === arguments.length) return d.widget.extend({}, this.options); | |
if ("string" == typeof a) | |
if (e = {}, f = a.split("."), a = f.shift(), f.length) { | |
k = e[a] = d.widget.extend({}, this.options[a]); | |
for (n = 0; f.length - 1 > n; n++) k[f[n]] = k[f[n]] || {}, k = k[f[n]]; | |
if (a = f.pop(), 1 === arguments.length) return void 0 === k[a] ? null : k[a]; | |
k[a] = c | |
} else { | |
if (1 === arguments.length) return void 0 === this.options[a] ? null : this.options[a]; | |
e[a] = c | |
} | |
return this._setOptions(e), this | |
}, | |
_setOptions: function(a) { | |
for (var d in a) this._setOption(d, a[d]); | |
return this | |
}, | |
_setOption: function(a, d) { | |
return this.options[a] = d, "disabled" === a && (this.widget().toggleClass(this.widgetFullName + "-disabled", !!d), d && (this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus"))), this | |
}, | |
enable: function() { | |
return this._setOptions({ | |
disabled: !1 | |
}) | |
}, | |
disable: function() { | |
return this._setOptions({ | |
disabled: !0 | |
}) | |
}, | |
_on: function(a, c, f) { | |
var k, n = this; | |
"boolean" != typeof a && (f = c, c = a, a = !1); | |
f ? (c = k = d(c), this.bindings = this.bindings.add(c)) : (f = c, c = this.element, k = this.widget()); | |
d.each(f, function(f, e) { | |
function v() { | |
return a || !0 !== n.options.disabled && !d(this).hasClass("ui-state-disabled") ? ("string" == typeof e ? n[e] : e).apply(n, arguments) : void 0 | |
} | |
"string" != typeof e && (v.guid = e.guid = e.guid || v.guid || d.guid++); | |
var t = f.match(/^([\w:-]*)\s*(.*)$/), | |
h = t[1] + n.eventNamespace; | |
(t = t[2]) ? k.delegate(t, h, v): c.bind(h, v) | |
}) | |
}, | |
_off: function(a, c) { | |
c = (c || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace; | |
a.unbind(c).undelegate(c); | |
this.bindings = d(this.bindings.not(a).get()); | |
this.focusable = d(this.focusable.not(a).get()); | |
this.hoverable = d(this.hoverable.not(a).get()) | |
}, | |
_delay: function(a, d) { | |
var c = this; | |
return setTimeout(function() { | |
return ("string" == typeof a ? c[a] : a).apply(c, arguments) | |
}, d || 0) | |
}, | |
_hoverable: function(a) { | |
this.hoverable = this.hoverable.add(a); | |
this._on(a, { | |
mouseenter: function(a) { | |
d(a.currentTarget).addClass("ui-state-hover") | |
}, | |
mouseleave: function(a) { | |
d(a.currentTarget).removeClass("ui-state-hover") | |
} | |
}) | |
}, | |
_focusable: function(a) { | |
this.focusable = this.focusable.add(a); | |
this._on(a, { | |
focusin: function(a) { | |
d(a.currentTarget).addClass("ui-state-focus") | |
}, | |
focusout: function(a) { | |
d(a.currentTarget).removeClass("ui-state-focus") | |
} | |
}) | |
}, | |
_trigger: function(a, c, f) { | |
var k, n = this.options[a]; | |
if (f = f || {}, c = d.Event(c), c.type = (a === this.widgetEventPrefix ? a : this.widgetEventPrefix + a).toLowerCase(), c.target = this.element[0], a = c.originalEvent) | |
for (k in a) k in c || (c[k] = a[k]); | |
return this.element.trigger(c, f), !(d.isFunction(n) && !1 === n.apply(this.element[0], [c].concat(f)) || c.isDefaultPrevented()) | |
} | |
}; | |
d.each({ | |
show: "fadeIn", | |
hide: "fadeOut" | |
}, function(a, c) { | |
d.Widget.prototype["_" + a] = function(f, k, n) { | |
"string" == typeof k && (k = { | |
effect: k | |
}); | |
var e, v = k ? !0 === k || "number" == typeof k ? c : k.effect || c : a; | |
k = k || {}; | |
"number" == typeof k && (k = { | |
duration: k | |
}); | |
e = !d.isEmptyObject(k); | |
k.complete = n; | |
k.delay && f.delay(k.delay); | |
e && d.effects && d.effects.effect[v] ? f[a](k) : v !== a && f[v] ? f[v](k.duration, k.easing, n) : f.queue(function(c) { | |
d(this)[a](); | |
n && n.call(f[0]); | |
c() | |
}) | |
} | |
}); | |
d.widget; | |
var t = !1; | |
d(document).mouseup(function() { | |
t = !1 | |
}); | |
d.widget("ui.mouse", { | |
version: "1.11.2", | |
options: { | |
cancel: "input,textarea,button,select,option", | |
distance: 1, | |
delay: 0 | |
}, | |
_mouseInit: function() { | |
var a = this; | |
this.element.bind("mousedown." + this.widgetName, function(d) { | |
return a._mouseDown(d) | |
}).bind("click." + this.widgetName, function(c) { | |
return !0 === d.data(c.target, a.widgetName + ".preventClickEvent") ? (d.removeData(c.target, a.widgetName + ".preventClickEvent"), c.stopImmediatePropagation(), !1) : void 0 | |
}); | |
this.started = !1 | |
}, | |
_mouseDestroy: function() { | |
this.element.unbind("." + this.widgetName); | |
this._mouseMoveDelegate && this.document.unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate) | |
}, | |
_mouseDown: function(a) { | |
if (!t) { | |
this._mouseMoved = !1; | |
this._mouseStarted && this._mouseUp(a); | |
this._mouseDownEvent = a; | |
var c = this, | |
f = 1 === a.which, | |
k = "string" == typeof this.options.cancel && a.target.nodeName ? d(a.target).closest(this.options.cancel).length : !1; | |
return f && !k && this._mouseCapture(a) ? (this.mouseDelayMet = !this.options.delay, this.mouseDelayMet || (this._mouseDelayTimer = setTimeout(function() { | |
c.mouseDelayMet = !0 | |
}, this.options.delay)), this._mouseDistanceMet(a) && this._mouseDelayMet(a) && (this._mouseStarted = !1 !== this._mouseStart(a), !this._mouseStarted) ? (a.preventDefault(), !0) : (!0 === d.data(a.target, this.widgetName + ".preventClickEvent") && d.removeData(a.target, this.widgetName + ".preventClickEvent"), this._mouseMoveDelegate = function(a) { | |
return c._mouseMove(a) | |
}, this._mouseUpDelegate = function(a) { | |
return c._mouseUp(a) | |
}, this.document.bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate), a.preventDefault(), t = !0, !0)) : !0 | |
} | |
}, | |
_mouseMove: function(a) { | |
return this._mouseMoved && (d.ui.ie && (!document.documentMode || 9 > document.documentMode) && !a.button || !a.which) ? this._mouseUp(a) : ((a.which || a.button) && (this._mouseMoved = !0), this._mouseStarted ? (this._mouseDrag(a), a.preventDefault()) : (this._mouseDistanceMet(a) && this._mouseDelayMet(a) && (this._mouseStarted = !1 !== this._mouseStart(this._mouseDownEvent, a), this._mouseStarted ? this._mouseDrag(a) : this._mouseUp(a)), !this._mouseStarted)) | |
}, | |
_mouseUp: function(a) { | |
return this.document.unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate), this._mouseStarted && (this._mouseStarted = !1, a.target === this._mouseDownEvent.target && d.data(a.target, this.widgetName + ".preventClickEvent", !0), this._mouseStop(a)), t = !1, !1 | |
}, | |
_mouseDistanceMet: function(a) { | |
return Math.max(Math.abs(this._mouseDownEvent.pageX - a.pageX), Math.abs(this._mouseDownEvent.pageY - a.pageY)) >= this.options.distance | |
}, | |
_mouseDelayMet: function() { | |
return this.mouseDelayMet | |
}, | |
_mouseStart: function() {}, | |
_mouseDrag: function() {}, | |
_mouseStop: function() {}, | |
_mouseCapture: function() { | |
return !0 | |
} | |
}); | |
(function() { | |
function a(a, d, c) { | |
return [parseFloat(a[0]) * (q.test(a[0]) ? d / 100 : 1), parseFloat(a[1]) * (q.test(a[1]) ? c / 100 : 1)] | |
} | |
function c(a) { | |
var c = a[0]; | |
return 9 === c.nodeType ? { | |
width: a.width(), | |
height: a.height(), | |
offset: { | |
top: 0, | |
left: 0 | |
} | |
} : d.isWindow(c) ? { | |
width: a.width(), | |
height: a.height(), | |
offset: { | |
top: a.scrollTop(), | |
left: a.scrollLeft() | |
} | |
} : c.preventDefault ? { | |
width: 0, | |
height: 0, | |
offset: { | |
top: c.pageY, | |
left: c.pageX | |
} | |
} : { | |
width: a.outerWidth(), | |
height: a.outerHeight(), | |
offset: a.offset() | |
} | |
} | |
d.ui = d.ui || {}; | |
var f, k, n = Math.max, | |
e = Math.abs, | |
t = Math.round, | |
h = /left|center|right/, | |
m = /top|center|bottom/, | |
w = /[\+\-]\d+(\.[\d]+)?%?/, | |
u = /^\w+/, | |
q = /%$/, | |
p = d.fn.position; | |
d.position = { | |
scrollbarWidth: function() { | |
if (void 0 !== f) return f; | |
var a, c, k = d("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"), | |
n = k.children()[0]; | |
return d("body").append(k), a = n.offsetWidth, k.css("overflow", "scroll"), c = n.offsetWidth, a === c && (c = k[0].clientWidth), k.remove(), f = a - c | |
}, | |
getScrollInfo: function(a) { | |
var c = a.isWindow || a.isDocument ? "" : a.element.css("overflow-x"), | |
f = a.isWindow || a.isDocument ? "" : a.element.css("overflow-y"), | |
c = "scroll" === c || "auto" === c && a.width < a.element[0].scrollWidth; | |
return { | |
width: "scroll" === f || "auto" === f && a.height < a.element[0].scrollHeight ? d.position.scrollbarWidth() : 0, | |
height: c ? d.position.scrollbarWidth() : 0 | |
} | |
}, | |
getWithinInfo: function(a) { | |
a = d(a || window); | |
var c = d.isWindow(a[0]), | |
f = !!a[0] && 9 === a[0].nodeType; | |
return { | |
element: a, | |
isWindow: c, | |
isDocument: f, | |
offset: a.offset() || { | |
left: 0, | |
top: 0 | |
}, | |
scrollLeft: a.scrollLeft(), | |
scrollTop: a.scrollTop(), | |
width: c || f ? a.width() : a.outerWidth(), | |
height: c || f ? a.height() : a.outerHeight() | |
} | |
} | |
}; | |
d.fn.position = function(f) { | |
if (!f || !f.of) return p.apply(this, arguments); | |
f = d.extend({}, f); | |
var v, B, q, D, C, A, E = d(f.of), | |
F = d.position.getWithinInfo(f.within), | |
G = d.position.getScrollInfo(F), | |
K = (f.collision || "flip").split(" "), | |
J = {}; | |
return A = c(E), E[0].preventDefault && (f.at = "left top"), B = A.width, q = A.height, D = A.offset, C = d.extend({}, D), d.each(["my", "at"], function() { | |
var a, d, c = (f[this] || "").split(" "); | |
1 === c.length && (c = h.test(c[0]) ? c.concat(["center"]) : m.test(c[0]) ? ["center"].concat(c) : ["center", "center"]); | |
c[0] = h.test(c[0]) ? c[0] : "center"; | |
c[1] = m.test(c[1]) ? c[1] : "center"; | |
a = w.exec(c[0]); | |
d = w.exec(c[1]); | |
J[this] = [a ? a[0] : 0, d ? d[0] : 0]; | |
f[this] = [u.exec(c[0])[0], u.exec(c[1])[0]] | |
}), 1 === K.length && (K[1] = K[0]), "right" === f.at[0] ? C.left += B : "center" === f.at[0] && (C.left += B / 2), "bottom" === f.at[1] ? C.top += q : "center" === f.at[1] && (C.top += q / 2), v = a(J.at, B, q), C.left += v[0], C.top += v[1], this.each(function() { | |
var c, h, m = d(this), | |
w = m.outerWidth(), | |
u = m.outerHeight(), | |
p = parseInt(d.css(this, "marginLeft"), 10) || 0, | |
A = parseInt(d.css(this, "marginTop"), 10) || 0, | |
I = w + p + (parseInt(d.css(this, "marginRight"), 10) || 0) + G.width, | |
O = u + A + (parseInt(d.css(this, "marginBottom"), 10) || 0) + G.height, | |
H = d.extend({}, C), | |
M = a(J.my, m.outerWidth(), m.outerHeight()); | |
"right" === f.my[0] ? H.left -= w : "center" === f.my[0] && (H.left -= w / 2); | |
"bottom" === f.my[1] ? H.top -= u : "center" === f.my[1] && (H.top -= u / 2); | |
H.left += M[0]; | |
H.top += M[1]; | |
k || (H.left = t(H.left), H.top = t(H.top)); | |
c = { | |
marginLeft: p, | |
marginTop: A | |
}; | |
d.each(["left", "top"], function(a, k) { | |
d.ui.position[K[a]] && d.ui.position[K[a]][k](H, { | |
targetWidth: B, | |
targetHeight: q, | |
elemWidth: w, | |
elemHeight: u, | |
collisionPosition: c, | |
collisionWidth: I, | |
collisionHeight: O, | |
offset: [v[0] + M[0], v[1] + M[1]], | |
my: f.my, | |
at: f.at, | |
within: F, | |
elem: m | |
}) | |
}); | |
f.using && (h = function(a) { | |
var d = D.left - H.left, | |
c = d + B - w, | |
k = D.top - H.top, | |
v = k + q - u, | |
t = { | |
target: { | |
element: E, | |
left: D.left, | |
top: D.top, | |
width: B, | |
height: q | |
}, | |
element: { | |
element: m, | |
left: H.left, | |
top: H.top, | |
width: w, | |
height: u | |
}, | |
horizontal: 0 > c ? "left" : 0 < d ? "right" : "center", | |
vertical: 0 > v ? "top" : 0 < k ? "bottom" : "middle" | |
}; | |
w > B && B > e(d + c) && (t.horizontal = "center"); | |
u > q && q > e(k + v) && (t.vertical = "middle"); | |
t.important = n(e(d), e(c)) > n(e(k), e(v)) ? "horizontal" : "vertical"; | |
f.using.call(this, a, t) | |
}); | |
m.offset(d.extend(H, { | |
using: h | |
})) | |
}) | |
}; | |
d.ui.position = { | |
fit: { | |
left: function(a, d) { | |
var c, f = d.within, | |
k = f.isWindow ? f.scrollLeft : f.offset.left, | |
f = f.width, | |
e = a.left - d.collisionPosition.marginLeft, | |
v = k - e, | |
t = e + d.collisionWidth - f - k; | |
d.collisionWidth > f ? 0 < v && 0 >= t ? (c = a.left + v + d.collisionWidth - f - k, a.left += v - c) : a.left = 0 < t && 0 >= v ? k : v > t ? k + f - d.collisionWidth : k : 0 < v ? a.left += v : 0 < t ? a.left -= t : a.left = n(a.left - e, a.left) | |
}, | |
top: function(a, d) { | |
var c, f = d.within, | |
f = f.isWindow ? f.scrollTop : f.offset.top, | |
k = d.within.height, | |
e = a.top - d.collisionPosition.marginTop, | |
v = f - e, | |
t = e + d.collisionHeight - k - f; | |
d.collisionHeight > k ? 0 < v && 0 >= t ? (c = a.top + v + d.collisionHeight - k - f, a.top += v - c) : a.top = 0 < t && 0 >= v ? f : v > t ? f + k - d.collisionHeight : f : 0 < v ? a.top += v : 0 < t ? a.top -= t : a.top = n(a.top - e, a.top) | |
} | |
}, | |
flip: { | |
left: function(a, d) { | |
var c, f, k = d.within, | |
n = k.offset.left + k.scrollLeft, | |
v = k.width, | |
k = k.isWindow ? k.scrollLeft : k.offset.left, | |
t = a.left - d.collisionPosition.marginLeft, | |
h = t - k, | |
t = t + d.collisionWidth - v - k, | |
m = "left" === d.my[0] ? -d.elemWidth : "right" === d.my[0] ? d.elemWidth : 0, | |
w = "left" === d.at[0] ? d.targetWidth : "right" === d.at[0] ? -d.targetWidth : 0, | |
u = -2 * d.offset[0]; | |
0 > h ? (c = a.left + m + w + u + d.collisionWidth - v - n, (0 > c || e(h) > c) && (a.left += m + w + u)) : 0 < t && (f = a.left - d.collisionPosition.marginLeft + m + w + u - k, (0 < f || t > e(f)) && (a.left += m + w + u)) | |
}, | |
top: function(a, d) { | |
var c, f, k = d.within, | |
n = k.offset.top + k.scrollTop, | |
v = k.height, | |
k = k.isWindow ? k.scrollTop : k.offset.top, | |
t = a.top - d.collisionPosition.marginTop, | |
h = t - k, | |
t = t + d.collisionHeight - v - k, | |
m = "top" === d.my[1] ? -d.elemHeight : "bottom" === d.my[1] ? d.elemHeight : 0, | |
w = "top" === d.at[1] ? d.targetHeight : "bottom" === d.at[1] ? -d.targetHeight : 0, | |
u = -2 * d.offset[1]; | |
0 > h ? (f = a.top + m + w + u + d.collisionHeight - v - n, a.top + m + w + u > h && (0 > f || e(h) > f) && (a.top += m + w + u)) : 0 < t && (c = a.top - d.collisionPosition.marginTop + m + w + u - k, a.top + m + w + u > t && (0 < c || t > e(c)) && (a.top += m + w + u)) | |
} | |
}, | |
flipfit: { | |
left: function() { | |
d.ui.position.flip.left.apply(this, arguments); | |
d.ui.position.fit.left.apply(this, arguments) | |
}, | |
top: function() { | |
d.ui.position.flip.top.apply(this, arguments); | |
d.ui.position.fit.top.apply(this, arguments) | |
} | |
} | |
}; | |
(function() { | |
var a, c, f, n, e = document.getElementsByTagName("body")[0]; | |
f = document.createElement("div"); | |
a = document.createElement(e ? "div" : "body"); | |
c = { | |
visibility: "hidden", | |
width: 0, | |
height: 0, | |
border: 0, | |
margin: 0, | |
background: "none" | |
}; | |
e && d.extend(c, { | |
position: "absolute", | |
left: "-1000px", | |
top: "-1000px" | |
}); | |
for (n in c) a.style[n] = c[n]; | |
a.appendChild(f); | |
c = e || document.documentElement; | |
c.insertBefore(a, c.firstChild); | |
f.style.cssText = "position: absolute; left: 10.7432222px;"; | |
f = d(f).offset().left; | |
k = 10 < f && 11 > f; | |
a.innerHTML = ""; | |
c.removeChild(a) | |
})() | |
})(); | |
d.ui.position; | |
d.widget("ui.accordion", { | |
version: "1.11.2", | |
options: { | |
active: 0, | |
animate: {}, | |
collapsible: !1, | |
event: "click", | |
header: "> li > :first-child,> :not(li):even", | |
heightStyle: "auto", | |
icons: { | |
activeHeader: "ui-icon-triangle-1-s", | |
header: "ui-icon-triangle-1-e" | |
}, | |
activate: null, | |
beforeActivate: null | |
}, | |
hideProps: { | |
borderTopWidth: "hide", | |
borderBottomWidth: "hide", | |
paddingTop: "hide", | |
paddingBottom: "hide", | |
height: "hide" | |
}, | |
showProps: { | |
borderTopWidth: "show", | |
borderBottomWidth: "show", | |
paddingTop: "show", | |
paddingBottom: "show", | |
height: "show" | |
}, | |
_create: function() { | |
var a = this.options; | |
this.prevShow = this.prevHide = d(); | |
this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role", "tablist"); | |
a.collapsible || !1 !== a.active && null != a.active || (a.active = 0); | |
this._processPanels(); | |
0 > a.active && (a.active += this.headers.length); | |
this._refresh() | |
}, | |
_getCreateEventData: function() { | |
return { | |
header: this.active, | |
panel: this.active.length ? this.active.next() : d() | |
} | |
}, | |
_createIcons: function() { | |
var a = this.options.icons; | |
a && (d("<span>").addClass("ui-accordion-header-icon ui-icon " + a.header).prependTo(this.headers), this.active.children(".ui-accordion-header-icon").removeClass(a.header).addClass(a.activeHeader), this.headers.addClass("ui-accordion-icons")) | |
}, | |
_destroyIcons: function() { | |
this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove() | |
}, | |
_destroy: function() { | |
var a; | |
this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"); | |
this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").removeUniqueId(); | |
this._destroyIcons(); | |
a = this.headers.next().removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").css("display", "").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeUniqueId(); | |
"content" !== this.options.heightStyle && a.css("height", "") | |
}, | |
_setOption: function(a, d) { | |
return "active" === a ? (this._activate(d), void 0) : ("event" === a && (this.options.event && this._off(this.headers, this.options.event), this._setupEvents(d)), this._super(a, d), "collapsible" !== a || d || !1 !== this.options.active || this._activate(0), "icons" === a && (this._destroyIcons(), d && this._createIcons()), "disabled" === a && (this.element.toggleClass("ui-state-disabled", !!d).attr("aria-disabled", d), this.headers.add(this.headers.next()).toggleClass("ui-state-disabled", !!d)), void 0) | |
}, | |
_keydown: function(a) { | |
if (!a.altKey && !a.ctrlKey) { | |
var c = d.ui.keyCode, | |
f = this.headers.length, | |
k = this.headers.index(a.target), | |
n = !1; | |
switch (a.keyCode) { | |
case c.RIGHT: | |
case c.DOWN: | |
n = this.headers[(k + 1) % f]; | |
break; | |
case c.LEFT: | |
case c.UP: | |
n = this.headers[(k - 1 + f) % f]; | |
break; | |
case c.SPACE: | |
case c.ENTER: | |
this._eventHandler(a); | |
break; | |
case c.HOME: | |
n = this.headers[0]; | |
break; | |
case c.END: | |
n = this.headers[f - 1] | |
} | |
n && (d(a.target).attr("tabIndex", -1), d(n).attr("tabIndex", 0), n.focus(), a.preventDefault()) | |
} | |
}, | |
_panelKeyDown: function(a) { | |
a.keyCode === d.ui.keyCode.UP && a.ctrlKey && d(a.currentTarget).prev().focus() | |
}, | |
refresh: function() { | |
var a = this.options; | |
this._processPanels(); | |
!1 === a.active && !0 === a.collapsible || !this.headers.length ? (a.active = !1, this.active = d()) : !1 === a.active ? this._activate(0) : this.active.length && !d.contains(this.element[0], this.active[0]) ? this.headers.length === this.headers.find(".ui-state-disabled").length ? (a.active = !1, this.active = d()) : this._activate(Math.max(0, a.active - 1)) : a.active = this.headers.index(this.active); | |
this._destroyIcons(); | |
this._refresh() | |
}, | |
_processPanels: function() { | |
var a = this.headers, | |
d = this.panels; | |
this.headers = this.element.find(this.options.header).addClass("ui-accordion-header ui-state-default ui-corner-all"); | |
this.panels = this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide(); | |
d && (this._off(a.not(this.headers)), this._off(d.not(this.panels))) | |
}, | |
_refresh: function() { | |
var a, c = this.options, | |
f = c.heightStyle, | |
k = this.element.parent(); | |
this.active = this._findActive(c.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"); | |
this.active.next().addClass("ui-accordion-content-active").show(); | |
this.headers.attr("role", "tab").each(function() { | |
var a = d(this), | |
c = a.uniqueId().attr("id"), | |
f = a.next(), | |
k = f.uniqueId().attr("id"); | |
a.attr("aria-controls", k); | |
f.attr("aria-labelledby", c) | |
}).next().attr("role", "tabpanel"); | |
this.headers.not(this.active).attr({ | |
"aria-selected": "false", | |
"aria-expanded": "false", | |
tabIndex: -1 | |
}).next().attr({ | |
"aria-hidden": "true" | |
}).hide(); | |
this.active.length ? this.active.attr({ | |
"aria-selected": "true", | |
"aria-expanded": "true", | |
tabIndex: 0 | |
}).next().attr({ | |
"aria-hidden": "false" | |
}) : this.headers.eq(0).attr("tabIndex", 0); | |
this._createIcons(); | |
this._setupEvents(c.event); | |
"fill" === f ? (a = k.height(), this.element.siblings(":visible").each(function() { | |
var c = d(this), | |
f = c.css("position"); | |
"absolute" !== f && "fixed" !== f && (a -= c.outerHeight(!0)) | |
}), this.headers.each(function() { | |
a -= d(this).outerHeight(!0) | |
}), this.headers.next().each(function() { | |
d(this).height(Math.max(0, a - d(this).innerHeight() + d(this).height())) | |
}).css("overflow", "auto")) : "auto" === f && (a = 0, this.headers.next().each(function() { | |
a = Math.max(a, d(this).css("height", "").height()) | |
}).height(a)) | |
}, | |
_activate: function(a) { | |
a = this._findActive(a)[0]; | |
a !== this.active[0] && (a = a || this.active[0], this._eventHandler({ | |
target: a, | |
currentTarget: a, | |
preventDefault: d.noop | |
})) | |
}, | |
_findActive: function(a) { | |
return "number" == typeof a ? this.headers.eq(a) : d() | |
}, | |
_setupEvents: function(a) { | |
var c = { | |
keydown: "_keydown" | |
}; | |
a && d.each(a.split(" "), function(a, d) { | |
c[d] = "_eventHandler" | |
}); | |
this._off(this.headers.add(this.headers.next())); | |
this._on(this.headers, c); | |
this._on(this.headers.next(), { | |
keydown: "_panelKeyDown" | |
}); | |
this._hoverable(this.headers); | |
this._focusable(this.headers) | |
}, | |
_eventHandler: function(a) { | |
var c = this.options, | |
f = this.active, | |
k = d(a.currentTarget), | |
n = k[0] === f[0], | |
e = n && c.collapsible, | |
v = e ? d() : k.next(), | |
t = f.next(), | |
v = { | |
oldHeader: f, | |
oldPanel: t, | |
newHeader: e ? d() : k, | |
newPanel: v | |
}; | |
a.preventDefault(); | |
n && !c.collapsible || !1 === this._trigger("beforeActivate", a, v) || (c.active = e ? !1 : this.headers.index(k), this.active = n ? d() : k, this._toggle(v), f.removeClass("ui-accordion-header-active ui-state-active"), c.icons && f.children(".ui-accordion-header-icon").removeClass(c.icons.activeHeader).addClass(c.icons.header), n || (k.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"), c.icons && k.children(".ui-accordion-header-icon").removeClass(c.icons.header).addClass(c.icons.activeHeader), k.next().addClass("ui-accordion-content-active"))) | |
}, | |
_toggle: function(a) { | |
var c = a.newPanel, | |
f = this.prevShow.length ? this.prevShow : a.oldPanel; | |
this.prevShow.add(this.prevHide).stop(!0, !0); | |
this.prevShow = c; | |
this.prevHide = f; | |
this.options.animate ? this._animate(c, f, a) : (f.hide(), c.show(), this._toggleComplete(a)); | |
f.attr({ | |
"aria-hidden": "true" | |
}); | |
f.prev().attr("aria-selected", "false"); | |
c.length && f.length ? f.prev().attr({ | |
tabIndex: -1, | |
"aria-expanded": "false" | |
}) : c.length && this.headers.filter(function() { | |
return 0 === d(this).attr("tabIndex") | |
}).attr("tabIndex", -1); | |
c.attr("aria-hidden", "false").prev().attr({ | |
"aria-selected": "true", | |
tabIndex: 0, | |
"aria-expanded": "true" | |
}) | |
}, | |
_animate: function(a, d, c) { | |
var f, k, n, e = this, | |
v = 0, | |
t = a.length && (!d.length || a.index() < d.index()), | |
h = this.options.animate || {}, | |
t = t && h.down || h, | |
m = function() { | |
e._toggleComplete(c) | |
}; | |
return "number" == typeof t && (n = t), "string" == typeof t && (k = t), k = k || t.easing || h.easing, n = n || t.duration || h.duration, d.length ? a.length ? (f = a.show().outerHeight(), d.animate(this.hideProps, { | |
duration: n, | |
easing: k, | |
step: function(a, d) { | |
d.now = Math.round(a) | |
} | |
}), a.hide().animate(this.showProps, { | |
duration: n, | |
easing: k, | |
complete: m, | |
step: function(a, c) { | |
c.now = Math.round(a); | |
"height" !== c.prop ? v += c.now : "content" !== e.options.heightStyle && (c.now = Math.round(f - d.outerHeight() - v), v = 0) | |
} | |
}), void 0) : d.animate(this.hideProps, n, k, m) : a.animate(this.showProps, n, k, m) | |
}, | |
_toggleComplete: function(a) { | |
var d = a.oldPanel; | |
d.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all"); | |
d.length && (d.parent()[0].className = d.parent()[0].className); | |
this._trigger("activate", null, a) | |
} | |
}); | |
d.widget("ui.menu", { | |
version: "1.11.2", | |
defaultElement: "<ul>", | |
delay: 300, | |
options: { | |
icons: { | |
submenu: "ui-icon-carat-1-e" | |
}, | |
items: "> *", | |
menus: "ul", | |
position: { | |
my: "left-1 top", | |
at: "right top" | |
}, | |
role: "menu", | |
blur: null, | |
focus: null, | |
select: null | |
}, | |
_create: function() { | |
this.activeMenu = this.element; | |
this.mouseHandled = !1; | |
this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content").toggleClass("ui-menu-icons", !!this.element.find(".ui-icon").length).attr({ | |
role: this.options.role, | |
tabIndex: 0 | |
}); | |
this.options.disabled && this.element.addClass("ui-state-disabled").attr("aria-disabled", "true"); | |
this._on({ | |
"mousedown .ui-menu-item": function(a) { | |
a.preventDefault() | |
}, | |
"click .ui-menu-item": function(a) { | |
var c = d(a.target); | |
!this.mouseHandled && c.not(".ui-state-disabled").length && (this.select(a), a.isPropagationStopped() || (this.mouseHandled = !0), c.has(".ui-menu").length ? this.expand(a) : !this.element.is(":focus") && d(this.document[0].activeElement).closest(".ui-menu").length && (this.element.trigger("focus", [!0]), this.active && 1 === this.active.parents(".ui-menu").length && clearTimeout(this.timer))) | |
}, | |
"mouseenter .ui-menu-item": function(a) { | |
if (!this.previousFilter) { | |
var c = d(a.currentTarget); | |
c.siblings(".ui-state-active").removeClass("ui-state-active"); | |
this.focus(a, c) | |
} | |
}, | |
mouseleave: "collapseAll", | |
"mouseleave .ui-menu": "collapseAll", | |
focus: function(a, d) { | |
var c = this.active || this.element.find(this.options.items).eq(0); | |
d || this.focus(a, c) | |
}, | |
blur: function(a) { | |
this._delay(function() { | |
d.contains(this.element[0], this.document[0].activeElement) || this.collapseAll(a) | |
}) | |
}, | |
keydown: "_keydown" | |
}); | |
this.refresh(); | |
this._on(this.document, { | |
click: function(a) { | |
this._closeOnDocumentClick(a) && this.collapseAll(a); | |
this.mouseHandled = !1 | |
} | |
}) | |
}, | |
_destroy: function() { | |
this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-menu-icons ui-front").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(); | |
this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").removeUniqueId().removeClass("ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function() { | |
var a = d(this); | |
a.data("ui-menu-submenu-carat") && a.remove() | |
}); | |
this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content") | |
}, | |
_keydown: function(a) { | |
var c, f, k, n = !0; | |
switch (a.keyCode) { | |
case d.ui.keyCode.PAGE_UP: | |
this.previousPage(a); | |
break; | |
case d.ui.keyCode.PAGE_DOWN: | |
this.nextPage(a); | |
break; | |
case d.ui.keyCode.HOME: | |
this._move("first", "first", a); | |
break; | |
case d.ui.keyCode.END: | |
this._move("last", "last", a); | |
break; | |
case d.ui.keyCode.UP: | |
this.previous(a); | |
break; | |
case d.ui.keyCode.DOWN: | |
this.next(a); | |
break; | |
case d.ui.keyCode.LEFT: | |
this.collapse(a); | |
break; | |
case d.ui.keyCode.RIGHT: | |
this.active && !this.active.is(".ui-state-disabled") && this.expand(a); | |
break; | |
case d.ui.keyCode.ENTER: | |
case d.ui.keyCode.SPACE: | |
this._activate(a); | |
break; | |
case d.ui.keyCode.ESCAPE: | |
this.collapse(a); | |
break; | |
default: | |
n = !1, c = this.previousFilter || "", f = String.fromCharCode(a.keyCode), k = !1, clearTimeout(this.filterTimer), f === c ? k = !0 : f = c + f, c = this._filterMenuItems(f), c = k && -1 !== c.index(this.active.next()) ? this.active.nextAll(".ui-menu-item") : c, c.length || (f = String.fromCharCode(a.keyCode), c = this._filterMenuItems(f)), c.length ? (this.focus(a, c), this.previousFilter = f, this.filterTimer = this._delay(function() { | |
delete this.previousFilter | |
}, 1e3)) : delete this.previousFilter | |
} | |
n && a.preventDefault() | |
}, | |
_activate: function(a) { | |
this.active.is(".ui-state-disabled") || (this.active.is("[aria-haspopup='true']") ? this.expand(a) : this.select(a)) | |
}, | |
refresh: function() { | |
var a, c = this, | |
f = this.options.icons.submenu; | |
a = this.element.find(this.options.menus); | |
this.element.toggleClass("ui-menu-icons", !!this.element.find(".ui-icon").length); | |
a.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-front").hide().attr({ | |
role: this.options.role, | |
"aria-hidden": "true", | |
"aria-expanded": "false" | |
}).each(function() { | |
var a = d(this), | |
c = a.parent(), | |
k = d("<span>").addClass("ui-menu-icon ui-icon " + f).data("ui-menu-submenu-carat", !0); | |
c.attr("aria-haspopup", "true").prepend(k); | |
a.attr("aria-labelledby", c.attr("id")) | |
}); | |
a = a.add(this.element).find(this.options.items); | |
a.not(".ui-menu-item").each(function() { | |
var a = d(this); | |
c._isDivider(a) && a.addClass("ui-widget-content ui-menu-divider") | |
}); | |
a.not(".ui-menu-item, .ui-menu-divider").addClass("ui-menu-item").uniqueId().attr({ | |
tabIndex: -1, | |
role: this._itemRole() | |
}); | |
a.filter(".ui-state-disabled").attr("aria-disabled", "true"); | |
this.active && !d.contains(this.element[0], this.active[0]) && this.blur() | |
}, | |
_itemRole: function() { | |
return { | |
menu: "menuitem", | |
listbox: "option" | |
}[this.options.role] | |
}, | |
_setOption: function(a, d) { | |
"icons" === a && this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(d.submenu); | |
"disabled" === a && this.element.toggleClass("ui-state-disabled", !!d).attr("aria-disabled", d); | |
this._super(a, d) | |
}, | |
focus: function(a, d) { | |
var c; | |
this.blur(a, a && "focus" === a.type); | |
this._scrollIntoView(d); | |
this.active = d.first(); | |
c = this.active.addClass("ui-state-focus").removeClass("ui-state-active"); | |
this.options.role && this.element.attr("aria-activedescendant", c.attr("id")); | |
this.active.parent().closest(".ui-menu-item").addClass("ui-state-active"); | |
a && "keydown" === a.type ? this._close() : this.timer = this._delay(function() { | |
this._close() | |
}, this.delay); | |
c = d.children(".ui-menu"); | |
c.length && a && /^mouse/.test(a.type) && this._startOpening(c); | |
this.activeMenu = d.parent(); | |
this._trigger("focus", a, { | |
item: d | |
}) | |
}, | |
_scrollIntoView: function(a) { | |
var c, f, k, n, e, v; | |
this._hasScroll() && (c = parseFloat(d.css(this.activeMenu[0], "borderTopWidth")) || 0, f = parseFloat(d.css(this.activeMenu[0], "paddingTop")) || 0, k = a.offset().top - this.activeMenu.offset().top - c - f, n = this.activeMenu.scrollTop(), e = this.activeMenu.height(), v = a.outerHeight(), 0 > k ? this.activeMenu.scrollTop(n + k) : k + v > e && this.activeMenu.scrollTop(n + k - e + v)) | |
}, | |
blur: function(a, d) { | |
d || clearTimeout(this.timer); | |
this.active && (this.active.removeClass("ui-state-focus"), this.active = null, this._trigger("blur", a, { | |
item: this.active | |
})) | |
}, | |
_startOpening: function(a) { | |
clearTimeout(this.timer); | |
"true" === a.attr("aria-hidden") && (this.timer = this._delay(function() { | |
this._close(); | |
this._open(a) | |
}, this.delay)) | |
}, | |
_open: function(a) { | |
var c = d.extend({ | |
of: this.active | |
}, this.options.position); | |
clearTimeout(this.timer); | |
this.element.find(".ui-menu").not(a.parents(".ui-menu")).hide().attr("aria-hidden", "true"); | |
a.show().removeAttr("aria-hidden").attr("aria-expanded", "true").position(c) | |
}, | |
collapseAll: function(a, c) { | |
clearTimeout(this.timer); | |
this.timer = this._delay(function() { | |
var f = c ? this.element : d(a && a.target).closest(this.element.find(".ui-menu")); | |
f.length || (f = this.element); | |
this._close(f); | |
this.blur(a); | |
this.activeMenu = f | |
}, this.delay) | |
}, | |
_close: function(a) { | |
a || (a = this.active ? this.active.parent() : this.element); | |
a.find(".ui-menu").hide().attr("aria-hidden", "true").attr("aria-expanded", "false").end().find(".ui-state-active").not(".ui-state-focus").removeClass("ui-state-active") | |
}, | |
_closeOnDocumentClick: function(a) { | |
return !d(a.target).closest(".ui-menu").length | |
}, | |
_isDivider: function(a) { | |
return !/[^\-\u2014\u2013\s]/.test(a.text()) | |
}, | |
collapse: function(a) { | |
var d = this.active && this.active.parent().closest(".ui-menu-item", this.element); | |
d && d.length && (this._close(), this.focus(a, d)) | |
}, | |
expand: function(a) { | |
var d = this.active && this.active.children(".ui-menu ").find(this.options.items).first(); | |
d && d.length && (this._open(d.parent()), this._delay(function() { | |
this.focus(a, d) | |
})) | |
}, | |
next: function(a) { | |
this._move("next", "first", a) | |
}, | |
previous: function(a) { | |
this._move("prev", "last", a) | |
}, | |
isFirstItem: function() { | |
return this.active && !this.active.prevAll(".ui-menu-item").length | |
}, | |
isLastItem: function() { | |
return this.active && !this.active.nextAll(".ui-menu-item").length | |
}, | |
_move: function(a, d, c) { | |
var f; | |
this.active && (f = "first" === a || "last" === a ? this.active["first" === a ? "prevAll" : "nextAll"](".ui-menu-item").eq(-1) : this.active[a + "All"](".ui-menu-item").eq(0)); | |
f && f.length && this.active || (f = this.activeMenu.find(this.options.items)[d]()); | |
this.focus(c, f) | |
}, | |
nextPage: function(a) { | |
var c, f, k; | |
return this.active ? (this.isLastItem() || (this._hasScroll() ? (f = this.active.offset().top, k = this.element.height(), this.active.nextAll(".ui-menu-item").each(function() { | |
return c = d(this), 0 > c.offset().top - f - k | |
}), this.focus(a, c)) : this.focus(a, this.activeMenu.find(this.options.items)[this.active ? "last" : "first"]())), void 0) : (this.next(a), void 0) | |
}, | |
previousPage: function(a) { | |
var c, f, k; | |
return this.active ? (this.isFirstItem() || (this._hasScroll() ? (f = this.active.offset().top, k = this.element.height(), this.active.prevAll(".ui-menu-item").each(function() { | |
return c = d(this), 0 < c.offset().top - f + k | |
}), this.focus(a, c)) : this.focus(a, this.activeMenu.find(this.options.items).first())), void 0) : (this.next(a), void 0) | |
}, | |
_hasScroll: function() { | |
return this.element.outerHeight() < this.element.prop("scrollHeight") | |
}, | |
select: function(a) { | |
this.active = this.active || d(a.target).closest(".ui-menu-item"); | |
var c = { | |
item: this.active | |
}; | |
this.active.has(".ui-menu").length || this.collapseAll(a, !0); | |
this._trigger("select", a, c) | |
}, | |
_filterMenuItems: function(a) { | |
a = a.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"); | |
var c = RegExp("^" + a, "i"); | |
return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function() { | |
return c.test(d.trim(d(this).text())) | |
}) | |
} | |
}); | |
d.widget("ui.autocomplete", { | |
version: "1.11.2", | |
defaultElement: "<input>", | |
options: { | |
appendTo: null, | |
autoFocus: !1, | |
delay: 300, | |
minLength: 1, | |
position: { | |
my: "left top", | |
at: "left bottom", | |
collision: "none" | |
}, | |
source: null, | |
change: null, | |
close: null, | |
focus: null, | |
open: null, | |
response: null, | |
search: null, | |
select: null | |
}, | |
requestIndex: 0, | |
pending: 0, | |
_create: function() { | |
var a, c, f, k = this.element[0].nodeName.toLowerCase(), | |
n = "textarea" === k, | |
k = "input" === k; | |
this.isMultiLine = n ? !0 : k ? !1 : this.element.prop("isContentEditable"); | |
this.valueMethod = this.element[n || k ? "val" : "text"]; | |
this.isNewMenu = !0; | |
this.element.addClass("ui-autocomplete-input").attr("autocomplete", "off"); | |
this._on(this.element, { | |
keydown: function(k) { | |
if (this.element.prop("readOnly")) return a = !0, f = !0, c = !0, void 0; | |
c = f = a = !1; | |
var n = d.ui.keyCode; | |
switch (k.keyCode) { | |
case n.PAGE_UP: | |
a = !0; | |
this._move("previousPage", k); | |
break; | |
case n.PAGE_DOWN: | |
a = !0; | |
this._move("nextPage", k); | |
break; | |
case n.UP: | |
a = !0; | |
this._keyEvent("previous", k); | |
break; | |
case n.DOWN: | |
a = !0; | |
this._keyEvent("next", k); | |
break; | |
case n.ENTER: | |
this.menu.active && (a = !0, k.preventDefault(), this.menu.select(k)); | |
break; | |
case n.TAB: | |
this.menu.active && this.menu.select(k); | |
break; | |
case n.ESCAPE: | |
this.menu.element.is(":visible") && (this.isMultiLine || this._value(this.term), this.close(k), k.preventDefault()); | |
break; | |
default: | |
c = !0, this._searchTimeout(k) | |
} | |
}, | |
keypress: function(f) { | |
if (a) return a = !1, (!this.isMultiLine || this.menu.element.is(":visible")) && f.preventDefault(), void 0; | |
if (!c) { | |
var k = d.ui.keyCode; | |
switch (f.keyCode) { | |
case k.PAGE_UP: | |
this._move("previousPage", f); | |
break; | |
case k.PAGE_DOWN: | |
this._move("nextPage", f); | |
break; | |
case k.UP: | |
this._keyEvent("previous", f); | |
break; | |
case k.DOWN: | |
this._keyEvent("next", f) | |
} | |
} | |
}, | |
input: function(a) { | |
return f ? (f = !1, a.preventDefault(), void 0) : (this._searchTimeout(a), void 0) | |
}, | |
focus: function() { | |
this.selectedItem = null; | |
this.previous = this._value() | |
}, | |
blur: function(a) { | |
return this.cancelBlur ? (delete this.cancelBlur, void 0) : (clearTimeout(this.searching), this.close(a), this._change(a), void 0) | |
} | |
}); | |
this._initSource(); | |
this.menu = d("<ul>").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({ | |
role: null | |
}).hide().menu("instance"); | |
this._on(this.menu.element, { | |
mousedown: function(a) { | |
a.preventDefault(); | |
this.cancelBlur = !0; | |
this._delay(function() { | |
delete this.cancelBlur | |
}); | |
var c = this.menu.element[0]; | |
d(a.target).closest(".ui-menu-item").length || this._delay(function() { | |
var a = this; | |
this.document.one("mousedown", function(f) { | |
f.target === a.element[0] || f.target === c || d.contains(c, f.target) || a.close() | |
}) | |
}) | |
}, | |
menufocus: function(a, c) { | |
var f, k; | |
return this.isNewMenu && (this.isNewMenu = !1, a.originalEvent && /^mouse/.test(a.originalEvent.type)) ? (this.menu.blur(), this.document.one("mousemove", function() { | |
d(a.target).trigger(a.originalEvent) | |
}), void 0) : (k = c.item.data("ui-autocomplete-item"), !1 !== this._trigger("focus", a, { | |
item: k | |
}) && a.originalEvent && /^key/.test(a.originalEvent.type) && this._value(k.value), f = c.item.attr("aria-label") || k.value, f && d.trim(f).length && (this.liveRegion.children().hide(), d("<div>").text(f).appendTo(this.liveRegion)), void 0) | |
}, | |
menuselect: function(a, d) { | |
var c = d.item.data("ui-autocomplete-item"), | |
f = this.previous; | |
this.element[0] !== this.document[0].activeElement && (this.element.focus(), this.previous = f, this._delay(function() { | |
this.previous = f; | |
this.selectedItem = c | |
})); | |
!1 !== this._trigger("select", a, { | |
item: c | |
}) && this._value(c.value); | |
this.term = this._value(); | |
this.close(a); | |
this.selectedItem = c | |
} | |
}); | |
this.liveRegion = d("<span>", { | |
role: "status", | |
"aria-live": "assertive", | |
"aria-relevant": "additions" | |
}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body); | |
this._on(this.window, { | |
beforeunload: function() { | |
this.element.removeAttr("autocomplete") | |
} | |
}) | |
}, | |
_destroy: function() { | |
clearTimeout(this.searching); | |
this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"); | |
this.menu.element.remove(); | |
this.liveRegion.remove() | |
}, | |
_setOption: function(a, d) { | |
this._super(a, d); | |
"source" === a && this._initSource(); | |
"appendTo" === a && this.menu.element.appendTo(this._appendTo()); | |
"disabled" === a && d && this.xhr && this.xhr.abort() | |
}, | |
_appendTo: function() { | |
var a = this.options.appendTo; | |
return a && (a = a.jquery || a.nodeType ? d(a) : this.document.find(a).eq(0)), a && a[0] || (a = this.element.closest(".ui-front")), a.length || (a = this.document[0].body), a | |
}, | |
_initSource: function() { | |
var a, c, f = this; | |
d.isArray(this.options.source) ? (a = this.options.source, this.source = function(c, f) { | |
f(d.ui.autocomplete.filter(a, c.term)) | |
}) : "string" == typeof this.options.source ? (c = this.options.source, this.source = function(a, k) { | |
f.xhr && f.xhr.abort(); | |
f.xhr = d.ajax({ | |
url: c, | |
data: a, | |
dataType: "json", | |
success: function(a) { | |
k(a) | |
}, | |
error: function() { | |
k([]) | |
} | |
}) | |
}) : this.source = this.options.source | |
}, | |
_searchTimeout: function(a) { | |
clearTimeout(this.searching); | |
this.searching = this._delay(function() { | |
var d = this.term === this._value(), | |
c = this.menu.element.is(":visible"), | |
f = a.altKey || a.ctrlKey || a.metaKey || a.shiftKey; | |
d && (!d || c || f) || (this.selectedItem = null, this.search(null, a)) | |
}, this.options.delay) | |
}, | |
search: function(a, d) { | |
return a = null != a ? a : this._value(), this.term = this._value(), a.length < this.options.minLength ? this.close(d) : !1 !== this._trigger("search", d) ? this._search(a) : void 0 | |
}, | |
_search: function(a) { | |
this.pending++; | |
this.element.addClass("ui-autocomplete-loading"); | |
this.cancelSearch = !1; | |
this.source({ | |
term: a | |
}, this._response()) | |
}, | |
_response: function() { | |
var a = ++this.requestIndex; | |
return d.proxy(function(d) { | |
a === this.requestIndex && this.__response(d); | |
this.pending--; | |
this.pending || this.element.removeClass("ui-autocomplete-loading") | |
}, this) | |
}, | |
__response: function(a) { | |
a && (a = this._normalize(a)); | |
this._trigger("response", null, { | |
content: a | |
}); | |
!this.options.disabled && a && a.length && !this.cancelSearch ? (this._suggest(a), this._trigger("open")) : this._close() | |
}, | |
close: function(a) { | |
this.cancelSearch = !0; | |
this._close(a) | |
}, | |
_close: function(a) { | |
this.menu.element.is(":visible") && (this.menu.element.hide(), this.menu.blur(), this.isNewMenu = !0, this._trigger("close", a)) | |
}, | |
_change: function(a) { | |
this.previous !== this._value() && this._trigger("change", a, { | |
item: this.selectedItem | |
}) | |
}, | |
_normalize: function(a) { | |
return a.length && a[0].label && a[0].value ? a : d.map(a, function(a) { | |
return "string" == typeof a ? { | |
label: a, | |
value: a | |
} : d.extend({}, a, { | |
label: a.label || a.value, | |
value: a.value || a.label | |
}) | |
}) | |
}, | |
_suggest: function(a) { | |
var c = this.menu.element.empty(); | |
this._renderMenu(c, a); | |
this.isNewMenu = !0; | |
this.menu.refresh(); | |
c.show(); | |
this._resizeMenu(); | |
c.position(d.extend({ | |
of: this.element | |
}, this.options.position)); | |
this.options.autoFocus && this.menu.next() | |
}, | |
_resizeMenu: function() { | |
var a = this.menu.element; | |
a.outerWidth(Math.max(a.width("").outerWidth() + 1, this.element.outerWidth())) | |
}, | |
_renderMenu: function(a, c) { | |
var f = this; | |
d.each(c, function(d, c) { | |
f._renderItemData(a, c) | |
}) | |
}, | |
_renderItemData: function(a, d) { | |
return this._renderItem(a, d).data("ui-autocomplete-item", d) | |
}, | |
_renderItem: function(a, c) { | |
return d("<li>").text(c.label).appendTo(a) | |
}, | |
_move: function(a, d) { | |
return this.menu.element.is(":visible") ? this.menu.isFirstItem() && /^previous/.test(a) || this.menu.isLastItem() && /^next/.test(a) ? (this.isMultiLine || this._value(this.term), this.menu.blur(), void 0) : (this.menu[a](d), void 0) : (this.search(null, d), void 0) | |
}, | |
widget: function() { | |
return this.menu.element | |
}, | |
_value: function() { | |
return this.valueMethod.apply(this.element, arguments) | |
}, | |
_keyEvent: function(a, d) { | |
this.isMultiLine && !this.menu.element.is(":visible") || (this._move(a, d), d.preventDefault()) | |
} | |
}); | |
d.extend(d.ui.autocomplete, { | |
escapeRegex: function(a) { | |
return a.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&") | |
}, | |
filter: function(a, c) { | |
var f = RegExp(d.ui.autocomplete.escapeRegex(c), "i"); | |
return d.grep(a, function(a) { | |
return f.test(a.label || a.value || a) | |
}) | |
} | |
}); | |
d.widget("ui.autocomplete", d.ui.autocomplete, { | |
options: { | |
messages: { | |
noResults: "No search results.", | |
results: function(a) { | |
return a + (1 < a ? " results are" : " result is") + " available, use up and down arrow keys to navigate." | |
} | |
} | |
}, | |
__response: function(a) { | |
var c; | |
this._superApply(arguments); | |
this.options.disabled || this.cancelSearch || (c = a && a.length ? this.options.messages.results(a.length) : this.options.messages.noResults, this.liveRegion.children().hide(), d("<div>").text(c).appendTo(this.liveRegion)) | |
} | |
}); | |
d.ui.autocomplete; | |
var w, u = function() { | |
var a = d(this); | |
setTimeout(function() { | |
a.find(":ui-button").button("refresh") | |
}, 1) | |
}, | |
C = function(a) { | |
var c = a.name, | |
f = a.form, | |
k = d([]); | |
return c && (c = c.replace(/'/g, "\\'"), k = f ? d(f).find("[name='" + c + "'][type=radio]") : d("[name='" + c + "'][type=radio]", a.ownerDocument).filter(function() { | |
return !this.form | |
})), k | |
}; | |
d.widget("ui.button", { | |
version: "1.11.2", | |
defaultElement: "<button>", | |
options: { | |
disabled: null, | |
text: !0, | |
label: null, | |
icons: { | |
primary: null, | |
secondary: null | |
} | |
}, | |
_create: function() { | |
this.element.closest("form").unbind("reset" + this.eventNamespace).bind("reset" + this.eventNamespace, u); | |
"boolean" != typeof this.options.disabled ? this.options.disabled = !!this.element.prop("disabled") : this.element.prop("disabled", this.options.disabled); | |
this._determineButtonType(); | |
this.hasTitle = !!this.buttonElement.attr("title"); | |
var a = this, | |
c = this.options, | |
f = "checkbox" === this.type || "radio" === this.type, | |
k = f ? "" : "ui-state-active"; | |
null === c.label && (c.label = "input" === this.type ? this.buttonElement.val() : this.buttonElement.html()); | |
this._hoverable(this.buttonElement); | |
this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role", "button").bind("mouseenter" + this.eventNamespace, function() { | |
c.disabled || this === w && d(this).addClass("ui-state-active") | |
}).bind("mouseleave" + this.eventNamespace, function() { | |
c.disabled || d(this).removeClass(k) | |
}).bind("click" + this.eventNamespace, function(a) { | |
c.disabled && (a.preventDefault(), a.stopImmediatePropagation()) | |
}); | |
this._on({ | |
focus: function() { | |
this.buttonElement.addClass("ui-state-focus") | |
}, | |
blur: function() { | |
this.buttonElement.removeClass("ui-state-focus") | |
} | |
}); | |
f && this.element.bind("change" + this.eventNamespace, function() { | |
a.refresh() | |
}); | |
"checkbox" === this.type ? this.buttonElement.bind("click" + this.eventNamespace, function() { | |
return c.disabled ? !1 : void 0 | |
}) : "radio" === this.type ? this.buttonElement.bind("click" + this.eventNamespace, function() { | |
if (c.disabled) return !1; | |
d(this).addClass("ui-state-active"); | |
a.buttonElement.attr("aria-pressed", "true"); | |
var f = a.element[0]; | |
C(f).not(f).map(function() { | |
return d(this).button("widget")[0] | |
}).removeClass("ui-state-active").attr("aria-pressed", "false") | |
}) : (this.buttonElement.bind("mousedown" + this.eventNamespace, function() { | |
return c.disabled ? !1 : (d(this).addClass("ui-state-active"), w = this, a.document.one("mouseup", function() { | |
w = null | |
}), void 0) | |
}).bind("mouseup" + this.eventNamespace, function() { | |
return c.disabled ? !1 : (d(this).removeClass("ui-state-active"), void 0) | |
}).bind("keydown" + this.eventNamespace, function(a) { | |
return c.disabled ? !1 : ((a.keyCode === d.ui.keyCode.SPACE || a.keyCode === d.ui.keyCode.ENTER) && d(this).addClass("ui-state-active"), void 0) | |
}).bind("keyup" + this.eventNamespace + " blur" + this.eventNamespace, function() { | |
d(this).removeClass("ui-state-active") | |
}), this.buttonElement.is("a") && this.buttonElement.keyup(function(a) { | |
a.keyCode === d.ui.keyCode.SPACE && d(this).click() | |
})); | |
this._setOption("disabled", c.disabled); | |
this._resetButton() | |
}, | |
_determineButtonType: function() { | |
var a, d, c; | |
this.type = this.element.is("[type=checkbox]") ? "checkbox" : this.element.is("[type=radio]") ? "radio" : this.element.is("input") ? "input" : "button"; | |
"checkbox" === this.type || "radio" === this.type ? (a = this.element.parents().last(), d = "label[for='" + this.element.attr("id") + "']", this.buttonElement = a.find(d), this.buttonElement.length || (a = a.length ? a.siblings() : this.element.siblings(), this.buttonElement = a.filter(d), this.buttonElement.length || (this.buttonElement = a.find(d))), this.element.addClass("ui-helper-hidden-accessible"), c = this.element.is(":checked"), c && this.buttonElement.addClass("ui-state-active"), this.buttonElement.prop("aria-pressed", c)) : this.buttonElement = this.element | |
}, | |
widget: function() { | |
return this.buttonElement | |
}, | |
_destroy: function() { | |
this.element.removeClass("ui-helper-hidden-accessible"); | |
this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-active ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()); | |
this.hasTitle || this.buttonElement.removeAttr("title") | |
}, | |
_setOption: function(a, d) { | |
return this._super(a, d), "disabled" === a ? (this.widget().toggleClass("ui-state-disabled", !!d), this.element.prop("disabled", !!d), d && ("checkbox" === this.type || "radio" === this.type ? this.buttonElement.removeClass("ui-state-focus") : this.buttonElement.removeClass("ui-state-focus ui-state-active")), void 0) : (this._resetButton(), void 0) | |
}, | |
refresh: function() { | |
var a = this.element.is("input, button") ? this.element.is(":disabled") : this.element.hasClass("ui-button-disabled"); | |
a !== this.options.disabled && this._setOption("disabled", a); | |
"radio" === this.type ? C(this.element[0]).each(function() { | |
d(this).is(":checked") ? d(this).button("widget").addClass("ui-state-active").attr("aria-pressed", "true") : d(this).button("widget").removeClass("ui-state-active").attr("aria-pressed", "false") | |
}) : "checkbox" === this.type && (this.element.is(":checked") ? this.buttonElement.addClass("ui-state-active").attr("aria-pressed", "true") : this.buttonElement.removeClass("ui-state-active").attr("aria-pressed", "false")) | |
}, | |
_resetButton: function() { | |
if ("input" === this.type) return this.options.label && this.element.val(this.options.label), void 0; | |
var a = this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"), | |
c = d("<span></span>", this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(a.empty()).text(), | |
f = this.options.icons, | |
k = f.primary && f.secondary, | |
n = []; | |
f.primary || f.secondary ? (this.options.text && n.push("ui-button-text-icon" + (k ? "s" : f.primary ? "-primary" : "-secondary")), f.primary && a.prepend("<span class='ui-button-icon-primary ui-icon " + f.primary + "'></span>"), f.secondary && a.append("<span class='ui-button-icon-secondary ui-icon " + f.secondary + "'></span>"), this.options.text || (n.push(k ? "ui-button-icons-only" : "ui-button-icon-only"), this.hasTitle || a.attr("title", d.trim(c)))) : n.push("ui-button-text-only"); | |
a.addClass(n.join(" ")) | |
} | |
}); | |
d.widget("ui.buttonset", { | |
version: "1.11.2", | |
options: { | |
items: "button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)" | |
}, | |
_create: function() { | |
this.element.addClass("ui-buttonset") | |
}, | |
_init: function() { | |
this.refresh() | |
}, | |
_setOption: function(a, d) { | |
"disabled" === a && this.buttons.button("option", a, d); | |
this._super(a, d) | |
}, | |
refresh: function() { | |
var a = "rtl" === this.element.css("direction"), | |
c = this.element.find(this.options.items), | |
f = c.filter(":ui-button"); | |
c.not(":ui-button").button(); | |
f.button("refresh"); | |
this.buttons = c.map(function() { | |
return d(this).button("widget")[0] | |
}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(a ? "ui-corner-right" : "ui-corner-left").end().filter(":last").addClass(a ? "ui-corner-left" : "ui-corner-right").end().end() | |
}, | |
_destroy: function() { | |
this.element.removeClass("ui-buttonset"); | |
this.buttons.map(function() { | |
return d(this).button("widget")[0] | |
}).removeClass("ui-corner-left ui-corner-right").end().button("destroy") | |
} | |
}); | |
d.ui.button; | |
d.extend(d.ui, { | |
datepicker: { | |
version: "1.11.2" | |
} | |
}); | |
var A; | |
d.extend(h.prototype, { | |
markerClassName: "hasDatepicker", | |
maxRows: 4, | |
_widgetDatepicker: function() { | |
return this.dpDiv | |
}, | |
setDefaults: function(d) { | |
return a(this._defaults, d || {}), this | |
}, | |
_attachDatepicker: function(a, c) { | |
var f, k, n; | |
f = a.nodeName.toLowerCase(); | |
k = "div" === f || "span" === f; | |
a.id || (this.uuid += 1, a.id = "dp" + this.uuid); | |
n = this._newInst(d(a), k); | |
n.settings = d.extend({}, c || {}); | |
"input" === f ? this._connectDatepicker(a, n) : k && this._inlineDatepicker(a, n) | |
}, | |
_newInst: function(a, c) { | |
return { | |
id: a[0].id.replace(/([^A-Za-z0-9_\-])/g, "\\\\$1"), | |
input: a, | |
selectedDay: 0, | |
selectedMonth: 0, | |
selectedYear: 0, | |
drawMonth: 0, | |
drawYear: 0, | |
inline: c, | |
dpDiv: c ? p(d("<div class='" + this._inlineClass + " ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")) : this.dpDiv | |
} | |
}, | |
_connectDatepicker: function(a, c) { | |
var f = d(a); | |
c.append = d([]); | |
c.trigger = d([]); | |
f.hasClass(this.markerClassName) || (this._attachments(f, c), f.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp), this._autoSize(c), d.data(a, "datepicker", c), c.settings.disabled && this._disableDatepicker(a)) | |
}, | |
_attachments: function(a, c) { | |
var f, k, n; | |
f = this._get(c, "appendText"); | |
var e = this._get(c, "isRTL"); | |
c.append && c.append.remove(); | |
f && (c.append = d("<span class='" + this._appendClass + "'>" + f + "</span>"), a[e ? "before" : "after"](c.append)); | |
a.unbind("focus", this._showDatepicker); | |
c.trigger && c.trigger.remove(); | |
f = this._get(c, "showOn"); | |
"focus" !== f && "both" !== f || a.focus(this._showDatepicker); | |
"button" !== f && "both" !== f || (k = this._get(c, "buttonText"), n = this._get(c, "buttonImage"), c.trigger = d(this._get(c, "buttonImageOnly") ? d("<img/>").addClass(this._triggerClass).attr({ | |
src: n, | |
alt: k, | |
title: k | |
}) : d("<button type='button'></button>").addClass(this._triggerClass).html(n ? d("<img/>").attr({ | |
src: n, | |
alt: k, | |
title: k | |
}) : k)), a[e ? "before" : "after"](c.trigger), c.trigger.click(function() { | |
return d.datepicker._datepickerShowing && d.datepicker._lastInput === a[0] ? d.datepicker._hideDatepicker() : d.datepicker._datepickerShowing && d.datepicker._lastInput !== a[0] ? (d.datepicker._hideDatepicker(), d.datepicker._showDatepicker(a[0])) : d.datepicker._showDatepicker(a[0]), !1 | |
})) | |
}, | |
_autoSize: function(a) { | |
if (this._get(a, "autoSize") && !a.inline) { | |
var d, c, f, k, n = new Date(2009, 11, 20), | |
e = this._get(a, "dateFormat"); | |
e.match(/[DM]/) && (d = function(a) { | |
for (k = f = c = 0; a.length > k; k++) a[k].length > c && (c = a[k].length, f = k); | |
return f | |
}, n.setMonth(d(this._get(a, e.match(/MM/) ? "monthNames" : "monthNamesShort"))), n.setDate(d(this._get(a, e.match(/DD/) ? "dayNames" : "dayNamesShort")) + 20 - n.getDay())); | |
a.input.attr("size", this._formatDate(a, n).length) | |
} | |
}, | |
_inlineDatepicker: function(a, c) { | |
var f = d(a); | |
f.hasClass(this.markerClassName) || (f.addClass(this.markerClassName).append(c.dpDiv), d.data(a, "datepicker", c), this._setDate(c, this._getDefaultDate(c), !0), this._updateDatepicker(c), this._updateAlternate(c), c.settings.disabled && this._disableDatepicker(a), c.dpDiv.css("display", "block")) | |
}, | |
_dialogDatepicker: function(c, f, k, n, e) { | |
var t, v, h, m, w; | |
c = this._dialogInst; | |
return c || (this.uuid += 1, t = "dp" + this.uuid, this._dialogInput = d("<input type='text' id='" + t + "' style='position: absolute; top: -100px; width: 0px;'/>"), this._dialogInput.keydown(this._doKeyDown), d("body").append(this._dialogInput), c = this._dialogInst = this._newInst(this._dialogInput, !1), c.settings = {}, d.data(this._dialogInput[0], "datepicker", c)), a(c.settings, n || {}), f = f && f.constructor === Date ? this._formatDate(c, f) : f, this._dialogInput.val(f), this._pos = e ? e.length ? e : [e.pageX, e.pageY] : null, this._pos || (v = document.documentElement.clientWidth, h = document.documentElement.clientHeight, m = document.documentElement.scrollLeft || document.body.scrollLeft, w = document.documentElement.scrollTop || document.body.scrollTop, this._pos = [v / 2 - 100 + m, h / 2 - 150 + w]), this._dialogInput.css("left", this._pos[0] + 20 + "px").css("top", this._pos[1] + "px"), c.settings.onSelect = k, this._inDialog = !0, this.dpDiv.addClass(this._dialogClass), this._showDatepicker(this._dialogInput[0]), d.blockUI && d.blockUI(this.dpDiv), d.data(this._dialogInput[0], "datepicker", c), this | |
}, | |
_destroyDatepicker: function(a) { | |
var c, f = d(a), | |
k = d.data(a, "datepicker"); | |
f.hasClass(this.markerClassName) && (c = a.nodeName.toLowerCase(), d.removeData(a, "datepicker"), "input" === c ? (k.append.remove(), k.trigger.remove(), f.removeClass(this.markerClassName).unbind("focus", this._showDatepicker).unbind("keydown", this._doKeyDown).unbind("keypress", this._doKeyPress).unbind("keyup", this._doKeyUp)) : ("div" === c || "span" === c) && f.removeClass(this.markerClassName).empty()) | |
}, | |
_enableDatepicker: function(a) { | |
var c, f, k = d(a), | |
n = d.data(a, "datepicker"); | |
k.hasClass(this.markerClassName) && (c = a.nodeName.toLowerCase(), "input" === c ? (a.disabled = !1, n.trigger.filter("button").each(function() { | |
this.disabled = !1 | |
}).end().filter("img").css({ | |
opacity: "1.0", | |
cursor: "" | |
})) : ("div" === c || "span" === c) && (f = k.children("." + this._inlineClass), f.children().removeClass("ui-state-disabled"), f.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled", !1)), this._disabledInputs = d.map(this._disabledInputs, function(d) { | |
return d === a ? null : d | |
})) | |
}, | |
_disableDatepicker: function(a) { | |
var c, f, k = d(a), | |
n = d.data(a, "datepicker"); | |
k.hasClass(this.markerClassName) && (c = a.nodeName.toLowerCase(), "input" === c ? (a.disabled = !0, n.trigger.filter("button").each(function() { | |
this.disabled = !0 | |
}).end().filter("img").css({ | |
opacity: "0.5", | |
cursor: "default" | |
})) : ("div" === c || "span" === c) && (f = k.children("." + this._inlineClass), f.children().addClass("ui-state-disabled"), f.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled", !0)), this._disabledInputs = d.map(this._disabledInputs, function(d) { | |
return d === a ? null : d | |
}), this._disabledInputs[this._disabledInputs.length] = a) | |
}, | |
_isDisabledDatepicker: function(a) { | |
if (!a) return !1; | |
for (var d = 0; this._disabledInputs.length > d; d++) | |
if (this._disabledInputs[d] === a) return !0; | |
return !1 | |
}, | |
_getInst: function(a) { | |
try { | |
return d.data(a, "datepicker") | |
} catch (B) { | |
throw "Missing instance data for this datepicker" | |
} | |
}, | |
_optionDatepicker: function(c, f, k) { | |
var n, e, t, v, h = this._getInst(c); | |
return 2 === arguments.length && "string" == typeof f ? "defaults" === f ? d.extend({}, d.datepicker._defaults) : h ? "all" === f ? d.extend({}, h.settings) : this._get(h, f) : null : (n = f || {}, "string" == typeof f && (n = {}, n[f] = k), h && (this._curInst === h && this._hideDatepicker(), e = this._getDateDatepicker(c, !0), t = this._getMinMaxDate(h, "min"), v = this._getMinMaxDate(h, "max"), a(h.settings, n), null !== t && void 0 !== n.dateFormat && void 0 === n.minDate && (h.settings.minDate = this._formatDate(h, t)), null !== v && void 0 !== n.dateFormat && void 0 === n.maxDate && (h.settings.maxDate = this._formatDate(h, v)), "disabled" in n && (n.disabled ? this._disableDatepicker(c) : this._enableDatepicker(c)), this._attachments(d(c), h), this._autoSize(h), this._setDate(h, e), this._updateAlternate(h), this._updateDatepicker(h)), void 0) | |
}, | |
_changeDatepicker: function(a, d, c) { | |
this._optionDatepicker(a, d, c) | |
}, | |
_refreshDatepicker: function(a) { | |
(a = this._getInst(a)) && this._updateDatepicker(a) | |
}, | |
_setDateDatepicker: function(a, d) { | |
var c = this._getInst(a); | |
c && (this._setDate(c, d), this._updateDatepicker(c), this._updateAlternate(c)) | |
}, | |
_getDateDatepicker: function(a, d) { | |
var c = this._getInst(a); | |
return c && !c.inline && this._setDateFromField(c, d), c ? this._getDate(c) : null | |
}, | |
_doKeyDown: function(a) { | |
var c, f, k, n = d.datepicker._getInst(a.target), | |
e = !0, | |
t = n.dpDiv.is(".ui-datepicker-rtl"); | |
if (n._keyEvent = !0, d.datepicker._datepickerShowing) switch (a.keyCode) { | |
case 9: | |
d.datepicker._hideDatepicker(); | |
e = !1; | |
break; | |
case 13: | |
return k = d("td." + d.datepicker._dayOverClass + ":not(." + d.datepicker._currentClass + ")", n.dpDiv), k[0] && d.datepicker._selectDay(a.target, n.selectedMonth, n.selectedYear, k[0]), c = d.datepicker._get(n, "onSelect"), c ? (f = d.datepicker._formatDate(n), c.apply(n.input ? n.input[0] : null, [f, n])) : d.datepicker._hideDatepicker(), !1; | |
case 27: | |
d.datepicker._hideDatepicker(); | |
break; | |
case 33: | |
d.datepicker._adjustDate(a.target, a.ctrlKey ? -d.datepicker._get(n, "stepBigMonths") : -d.datepicker._get(n, "stepMonths"), "M"); | |
break; | |
case 34: | |
d.datepicker._adjustDate(a.target, a.ctrlKey ? +d.datepicker._get(n, "stepBigMonths") : +d.datepicker._get(n, "stepMonths"), "M"); | |
break; | |
case 35: | |
(a.ctrlKey || a.metaKey) && d.datepicker._clearDate(a.target); | |
e = a.ctrlKey || a.metaKey; | |
break; | |
case 36: | |
(a.ctrlKey || a.metaKey) && d.datepicker._gotoToday(a.target); | |
e = a.ctrlKey || a.metaKey; | |
break; | |
case 37: | |
(a.ctrlKey || a.metaKey) && d.datepicker._adjustDate(a.target, t ? 1 : -1, "D"); | |
e = a.ctrlKey || a.metaKey; | |
a.originalEvent.altKey && d.datepicker._adjustDate(a.target, a.ctrlKey ? -d.datepicker._get(n, "stepBigMonths") : -d.datepicker._get(n, "stepMonths"), "M"); | |
break; | |
case 38: | |
(a.ctrlKey || a.metaKey) && d.datepicker._adjustDate(a.target, -7, "D"); | |
e = a.ctrlKey || a.metaKey; | |
break; | |
case 39: | |
(a.ctrlKey || a.metaKey) && d.datepicker._adjustDate(a.target, t ? -1 : 1, "D"); | |
e = a.ctrlKey || a.metaKey; | |
a.originalEvent.altKey && d.datepicker._adjustDate(a.target, a.ctrlKey ? +d.datepicker._get(n, "stepBigMonths") : +d.datepicker._get(n, "stepMonths"), "M"); | |
break; | |
case 40: | |
(a.ctrlKey || a.metaKey) && d.datepicker._adjustDate(a.target, 7, "D"); | |
e = a.ctrlKey || a.metaKey; | |
break; | |
default: | |
e = !1 | |
} else 36 === a.keyCode && a.ctrlKey ? d.datepicker._showDatepicker(this) : e = !1; | |
e && (a.preventDefault(), a.stopPropagation()) | |
}, | |
_doKeyPress: function(a) { | |
var c, f, k = d.datepicker._getInst(a.target); | |
return d.datepicker._get(k, "constrainInput") ? (c = d.datepicker._possibleChars(d.datepicker._get(k, "dateFormat")), f = String.fromCharCode(null == a.charCode ? a.keyCode : a.charCode), a.ctrlKey || a.metaKey || " " > f || !c || -1 < c.indexOf(f)) : void 0 | |
}, | |
_doKeyUp: function(a) { | |
var c; | |
a = d.datepicker._getInst(a.target); | |
if (a.input.val() !== a.lastVal) try { | |
(c = d.datepicker.parseDate(d.datepicker._get(a, "dateFormat"), a.input ? a.input.val() : null, d.datepicker._getFormatConfig(a))) && (d.datepicker._setDateFromField(a), d.datepicker._updateAlternate(a), d.datepicker._updateDatepicker(a)) | |
} catch (D) {} | |
return !0 | |
}, | |
_showDatepicker: function(c) { | |
if (c = c.target || c, "input" !== c.nodeName.toLowerCase() && (c = d("input", c.parentNode)[0]), !d.datepicker._isDisabledDatepicker(c) && d.datepicker._lastInput !== c) { | |
var f, k, n, e, t, v; | |
f = d.datepicker._getInst(c); | |
d.datepicker._curInst && d.datepicker._curInst !== f && (d.datepicker._curInst.dpDiv.stop(!0, !0), f && d.datepicker._datepickerShowing && d.datepicker._hideDatepicker(d.datepicker._curInst.input[0])); | |
k = (k = d.datepicker._get(f, "beforeShow")) ? k.apply(c, [c, f]) : {}; | |
!1 !== k && (a(f.settings, k), f.lastVal = null, d.datepicker._lastInput = c, d.datepicker._setDateFromField(f), d.datepicker._inDialog && (c.value = ""), d.datepicker._pos || (d.datepicker._pos = d.datepicker._findPos(c), d.datepicker._pos[1] += c.offsetHeight), n = !1, d(c).parents().each(function() { | |
return n |= "fixed" === d(this).css("position"), !n | |
}), e = { | |
left: d.datepicker._pos[0], | |
top: d.datepicker._pos[1] | |
}, d.datepicker._pos = null, f.dpDiv.empty(), f.dpDiv.css({ | |
position: "absolute", | |
display: "block", | |
top: "-1000px" | |
}), d.datepicker._updateDatepicker(f), e = d.datepicker._checkOffset(f, e, n), f.dpDiv.css({ | |
position: d.datepicker._inDialog && d.blockUI ? "static" : n ? "fixed" : "absolute", | |
display: "none", | |
left: e.left + "px", | |
top: e.top + "px" | |
}), f.inline || (t = d.datepicker._get(f, "showAnim"), v = d.datepicker._get(f, "duration"), f.dpDiv.css("z-index", m(d(c)) + 1), d.datepicker._datepickerShowing = !0, d.effects && d.effects.effect[t] ? f.dpDiv.show(t, d.datepicker._get(f, "showOptions"), v) : f.dpDiv[t || "show"](t ? v : null), d.datepicker._shouldFocusInput(f) && f.input.focus(), d.datepicker._curInst = f)) | |
} | |
}, | |
_updateDatepicker: function(a) { | |
this.maxRows = 4; | |
A = a; | |
a.dpDiv.empty().append(this._generateHTML(a)); | |
this._attachHandlers(a); | |
var c, f = this._getNumberOfMonths(a), | |
k = f[1], | |
n = a.dpDiv.find("." + this._dayOverClass + " a"); | |
0 < n.length && q.apply(n.get(0)); | |
a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""); | |
1 < k && a.dpDiv.addClass("ui-datepicker-multi-" + k).css("width", 17 * k + "em"); | |
a.dpDiv[(1 !== f[0] || 1 !== f[1] ? "add" : "remove") + "Class"]("ui-datepicker-multi"); | |
a.dpDiv[(this._get(a, "isRTL") ? "add" : "remove") + "Class"]("ui-datepicker-rtl"); | |
a === d.datepicker._curInst && d.datepicker._datepickerShowing && d.datepicker._shouldFocusInput(a) && a.input.focus(); | |
a.yearshtml && (c = a.yearshtml, setTimeout(function() { | |
c === a.yearshtml && a.yearshtml && a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml); | |
c = a.yearshtml = null | |
}, 0)) | |
}, | |
_shouldFocusInput: function(a) { | |
return a.input && a.input.is(":visible") && !a.input.is(":disabled") && !a.input.is(":focus") | |
}, | |
_checkOffset: function(a, c, f) { | |
var k = a.dpDiv.outerWidth(), | |
n = a.dpDiv.outerHeight(), | |
e = a.input ? a.input.outerWidth() : 0, | |
t = a.input ? a.input.outerHeight() : 0, | |
v = document.documentElement.clientWidth + (f ? 0 : d(document).scrollLeft()), | |
h = document.documentElement.clientHeight + (f ? 0 : d(document).scrollTop()); | |
return c.left -= this._get(a, "isRTL") ? k - e : 0, c.left -= f && c.left === a.input.offset().left ? d(document).scrollLeft() : 0, c.top -= f && c.top === a.input.offset().top + t ? d(document).scrollTop() : 0, c.left -= Math.min(c.left, c.left + k > v && v > k ? Math.abs(c.left + k - v) : 0), c.top -= Math.min(c.top, c.top + n > h && h > n ? Math.abs(n + t) : 0), c | |
}, | |
_findPos: function(a) { | |
for (var c, f = this._getInst(a), f = this._get(f, "isRTL"); a && ("hidden" === a.type || 1 !== a.nodeType || d.expr.filters.hidden(a));) a = a[f ? "previousSibling" : "nextSibling"]; | |
return c = d(a).offset(), [c.left, c.top] | |
}, | |
_hideDatepicker: function(a) { | |
var c, f, k, n, e = this._curInst; | |
!e || a && e !== d.data(a, "datepicker") || this._datepickerShowing && (c = this._get(e, "showAnim"), f = this._get(e, "duration"), k = function() { | |
d.datepicker._tidyDialog(e) | |
}, d.effects && (d.effects.effect[c] || d.effects[c]) ? e.dpDiv.hide(c, d.datepicker._get(e, "showOptions"), f, k) : e.dpDiv["slideDown" === c ? "slideUp" : "fadeIn" === c ? "fadeOut" : "hide"](c ? f : null, k), c || k(), this._datepickerShowing = !1, n = this._get(e, "onClose"), n && n.apply(e.input ? e.input[0] : null, [e.input ? e.input.val() : "", e]), this._lastInput = null, this._inDialog && (this._dialogInput.css({ | |
position: "absolute", | |
left: "0", | |
top: "-100px" | |
}), d.blockUI && (d.unblockUI(), d("body").append(this.dpDiv))), this._inDialog = !1) | |
}, | |
_tidyDialog: function(a) { | |
a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar") | |
}, | |
_checkExternalClick: function(a) { | |
if (d.datepicker._curInst) { | |
a = d(a.target); | |
var c = d.datepicker._getInst(a[0]); | |
(!(a[0].id === d.datepicker._mainDivId || 0 !== a.parents("#" + d.datepicker._mainDivId).length || a.hasClass(d.datepicker.markerClassName) || a.closest("." + d.datepicker._triggerClass).length || !d.datepicker._datepickerShowing || d.datepicker._inDialog && d.blockUI) || a.hasClass(d.datepicker.markerClassName) && d.datepicker._curInst !== c) && d.datepicker._hideDatepicker() | |
} | |
}, | |
_adjustDate: function(a, c, f) { | |
a = d(a); | |
var k = this._getInst(a[0]); | |
this._isDisabledDatepicker(a[0]) || (this._adjustInstDate(k, c + ("M" === f ? this._get(k, "showCurrentAtPos") : 0), f), this._updateDatepicker(k)) | |
}, | |
_gotoToday: function(a) { | |
var c; | |
a = d(a); | |
var f = this._getInst(a[0]); | |
this._get(f, "gotoCurrent") && f.currentDay ? (f.selectedDay = f.currentDay, f.drawMonth = f.selectedMonth = f.currentMonth, f.drawYear = f.selectedYear = f.currentYear) : (c = new Date, f.selectedDay = c.getDate(), f.drawMonth = f.selectedMonth = c.getMonth(), f.drawYear = f.selectedYear = c.getFullYear()); | |
this._notifyChange(f); | |
this._adjustDate(a) | |
}, | |
_selectMonthYear: function(a, c, f) { | |
a = d(a); | |
var k = this._getInst(a[0]); | |
k["selected" + ("M" === f ? "Month" : "Year")] = k["draw" + ("M" === f ? "Month" : "Year")] = parseInt(c.options[c.selectedIndex].value, 10); | |
this._notifyChange(k); | |
this._adjustDate(a) | |
}, | |
_selectDay: function(a, c, f, k) { | |
var n, e = d(a); | |
d(k).hasClass(this._unselectableClass) || this._isDisabledDatepicker(e[0]) || (n = this._getInst(e[0]), n.selectedDay = n.currentDay = d("a", k).html(), n.selectedMonth = n.currentMonth = c, n.selectedYear = n.currentYear = f, this._selectDate(a, this._formatDate(n, n.currentDay, n.currentMonth, n.currentYear))) | |
}, | |
_clearDate: function(a) { | |
a = d(a); | |
this._selectDate(a, "") | |
}, | |
_selectDate: function(a, c) { | |
var f; | |
f = d(a); | |
var k = this._getInst(f[0]); | |
c = null != c ? c : this._formatDate(k); | |
k.input && k.input.val(c); | |
this._updateAlternate(k); | |
(f = this._get(k, "onSelect")) ? f.apply(k.input ? k.input[0] : null, [c, k]): k.input && k.input.trigger("change"); | |
k.inline ? this._updateDatepicker(k) : (this._hideDatepicker(), this._lastInput = k.input[0], "object" != typeof k.input[0] && k.input.focus(), this._lastInput = null) | |
}, | |
_updateAlternate: function(a) { | |
var c, f, k, n = this._get(a, "altField"); | |
n && (c = this._get(a, "altFormat") || this._get(a, "dateFormat"), f = this._getDate(a), k = this.formatDate(c, f, this._getFormatConfig(a)), d(n).each(function() { | |
d(this).val(k) | |
})) | |
}, | |
noWeekends: function(a) { | |
a = a.getDay(); | |
return [0 < a && 6 > a, ""] | |
}, | |
iso8601Week: function(a) { | |
var d; | |
a = new Date(a.getTime()); | |
return a.setDate(a.getDate() + 4 - (a.getDay() || 7)), d = a.getTime(), a.setMonth(0), a.setDate(1), Math.floor(Math.round((d - a) / 864e5) / 7) + 1 | |
}, | |
parseDate: function(a, c, f) { | |
if (null == a || null == c) throw "Invalid arguments"; | |
if (c = "object" == typeof c ? "" + c : c + "", "" === c) return null; | |
var k, n, e, t, h = 0, | |
v = (f ? f.shortYearCutoff : null) || this._defaults.shortYearCutoff, | |
v = "string" != typeof v ? v : (new Date).getFullYear() % 100 + parseInt(v, 10), | |
m = (f ? f.dayNamesShort : null) || this._defaults.dayNamesShort, | |
w = (f ? f.dayNames : null) || this._defaults.dayNames, | |
u = (f ? f.monthNamesShort : null) || this._defaults.monthNamesShort; | |
f = (f ? f.monthNames : null) || this._defaults.monthNames; | |
var q = -1, | |
p = -1, | |
B = -1, | |
C = -1, | |
D = !1, | |
A = function(d) { | |
d = a.length > k + 1 && a.charAt(k + 1) === d; | |
return d && k++, d | |
}, | |
Y = function(a) { | |
var d = A(a), | |
d = "@" === a ? 14 : "!" === a ? 20 : "y" === a && d ? 4 : "o" === a ? 3 : 2; | |
a = RegExp("^\\d{" + ("y" === a ? d : 1) + "," + d + "}"); | |
a = c.substring(h).match(a); | |
if (!a) throw "Missing number at position " + h; | |
return h += a[0].length, parseInt(a[0], 10) | |
}, | |
Z = function(a, f, k) { | |
var n = -1; | |
a = d.map(A(a) ? k : f, function(a, d) { | |
return [ | |
[d, a] | |
] | |
}).sort(function(a, d) { | |
return -(a[1].length - d[1].length) | |
}); | |
if (d.each(a, function(a, d) { | |
var f = d[1]; | |
return c.substr(h, f.length).toLowerCase() === f.toLowerCase() ? (n = d[0], h += f.length, !1) : void 0 | |
}), -1 !== n) return n + 1; | |
throw "Unknown name at position " + h | |
}, | |
R = function() { | |
if (c.charAt(h) !== a.charAt(k)) throw "Unexpected literal at position " + h; | |
h++ | |
}; | |
for (k = 0; a.length > k; k++) | |
if (D) "'" !== a.charAt(k) || A("'") ? R() : D = !1; | |
else switch (a.charAt(k)) { | |
case "d": | |
B = Y("d"); | |
break; | |
case "D": | |
Z("D", m, w); | |
break; | |
case "o": | |
C = Y("o"); | |
break; | |
case "m": | |
p = Y("m"); | |
break; | |
case "M": | |
p = Z("M", u, f); | |
break; | |
case "y": | |
q = Y("y"); | |
break; | |
case "@": | |
t = new Date(Y("@")); | |
q = t.getFullYear(); | |
p = t.getMonth() + 1; | |
B = t.getDate(); | |
break; | |
case "!": | |
t = new Date((Y("!") - this._ticksTo1970) / 1e4); | |
q = t.getFullYear(); | |
p = t.getMonth() + 1; | |
B = t.getDate(); | |
break; | |
case "'": | |
A("'") ? R() : D = !0; | |
break; | |
default: | |
R() | |
} | |
if (c.length > h && (e = c.substr(h), !/^\s+/.test(e))) throw "Extra/unparsed characters found in date: " + e; | |
if (-1 === q ? q = (new Date).getFullYear() : 100 > q && (q += (new Date).getFullYear() - (new Date).getFullYear() % 100 + (v >= q ? 0 : -100)), -1 < C) | |
for (p = 1, B = C; !(n = this._getDaysInMonth(q, p - 1), n >= B);) p++, B -= n; | |
if (t = this._daylightSavingAdjust(new Date(q, p - 1, B)), t.getFullYear() !== q || t.getMonth() + 1 !== p || t.getDate() !== B) throw "Invalid date"; | |
return t | |
}, | |
ATOM: "yy-mm-dd", | |
COOKIE: "D, dd M yy", | |
ISO_8601: "yy-mm-dd", | |
RFC_822: "D, d M y", | |
RFC_850: "DD, dd-M-y", | |
RFC_1036: "D, d M y", | |
RFC_1123: "D, d M yy", | |
RFC_2822: "D, d M yy", | |
RSS: "D, d M y", | |
TICKS: "!", | |
TIMESTAMP: "@", | |
W3C: "yy-mm-dd", | |
_ticksTo1970: 864e9 * (718685 + Math.floor(492.5) - Math.floor(19.7) + Math.floor(4.925)), | |
formatDate: function(a, d, c) { | |
if (!d) return ""; | |
var f, k = (c ? c.dayNamesShort : null) || this._defaults.dayNamesShort, | |
n = (c ? c.dayNames : null) || this._defaults.dayNames, | |
e = (c ? c.monthNamesShort : null) || this._defaults.monthNamesShort; | |
c = (c ? c.monthNames : null) || this._defaults.monthNames; | |
var t = function(d) { | |
d = a.length > f + 1 && a.charAt(f + 1) === d; | |
return d && f++, d | |
}, | |
h = function(a, d, c) { | |
d = "" + d; | |
if (t(a)) | |
for (; c > d.length;) d = "0" + d; | |
return d | |
}, | |
v = function(a, d, c, f) { | |
return t(a) ? f[d] : c[d] | |
}, | |
m = "", | |
w = !1; | |
if (d) | |
for (f = 0; a.length > f; f++) | |
if (w) "'" !== a.charAt(f) || t("'") ? m += a.charAt(f) : w = !1; | |
else switch (a.charAt(f)) { | |
case "d": | |
m += h("d", d.getDate(), 2); | |
break; | |
case "D": | |
m += v("D", d.getDay(), k, n); | |
break; | |
case "o": | |
m += h("o", Math.round((new Date(d.getFullYear(), d.getMonth(), d.getDate()).getTime() - new Date(d.getFullYear(), 0, 0).getTime()) / 864e5), 3); | |
break; | |
case "m": | |
m += h("m", d.getMonth() + 1, 2); | |
break; | |
case "M": | |
m += v("M", d.getMonth(), e, c); | |
break; | |
case "y": | |
m += t("y") ? d.getFullYear() : (10 > d.getYear() % 100 ? "0" : "") + d.getYear() % 100; | |
break; | |
case "@": | |
m += d.getTime(); | |
break; | |
case "!": | |
m += 1e4 * d.getTime() + this._ticksTo1970; | |
break; | |
case "'": | |
t("'") ? m += "'" : w = !0; | |
break; | |
default: | |
m += a.charAt(f) | |
} | |
return m | |
}, | |
_possibleChars: function(a) { | |
var d, c = "", | |
f = !1, | |
k = function(c) { | |
c = a.length > d + 1 && a.charAt(d + 1) === c; | |
return c && d++, c | |
}; | |
for (d = 0; a.length > d; d++) | |
if (f) "'" !== a.charAt(d) || k("'") ? c += a.charAt(d) : f = !1; | |
else switch (a.charAt(d)) { | |
case "d": | |
case "m": | |
case "y": | |
case "@": | |
c += "0123456789"; | |
break; | |
case "D": | |
case "M": | |
return null; | |
case "'": | |
k("'") ? c += "'" : f = !0; | |
break; | |
default: | |
c += a.charAt(d) | |
} | |
return c | |
}, | |
_get: function(a, d) { | |
return void 0 !== a.settings[d] ? a.settings[d] : this._defaults[d] | |
}, | |
_setDateFromField: function(a, d) { | |
if (a.input.val() !== a.lastVal) { | |
var c = this._get(a, "dateFormat"), | |
f = a.lastVal = a.input ? a.input.val() : null, | |
k = this._getDefaultDate(a), | |
n = k, | |
e = this._getFormatConfig(a); | |
try { | |
n = this.parseDate(c, f, e) || k | |
} catch (I) { | |
f = d ? "" : f | |
} | |
a.selectedDay = n.getDate(); | |
a.drawMonth = a.selectedMonth = n.getMonth(); | |
a.drawYear = a.selectedYear = n.getFullYear(); | |
a.currentDay = f ? n.getDate() : 0; | |
a.currentMonth = f ? n.getMonth() : 0; | |
a.currentYear = f ? n.getFullYear() : 0; | |
this._adjustInstDate(a) | |
} | |
}, | |
_getDefaultDate: function(a) { | |
return this._restrictMinMax(a, this._determineDate(a, this._get(a, "defaultDate"), new Date)) | |
}, | |
_determineDate: function(a, c, f) { | |
var k = function(a) { | |
var d = new Date; | |
return d.setDate(d.getDate() + a), d | |
}, | |
n = function(c) { | |
try { | |
return d.datepicker.parseDate(d.datepicker._get(a, "dateFormat"), c, d.datepicker._getFormatConfig(a)) | |
} catch (U) {} | |
for (var f = (c.toLowerCase().match(/^c/) ? d.datepicker._getDate(a) : null) || new Date, k = f.getFullYear(), n = f.getMonth(), f = f.getDate(), e = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, t = e.exec(c); t;) { | |
switch (t[2] || "d") { | |
case "d": | |
case "D": | |
f += parseInt(t[1], 10); | |
break; | |
case "w": | |
case "W": | |
f += 7 * parseInt(t[1], 10); | |
break; | |
case "m": | |
case "M": | |
n += parseInt(t[1], 10); | |
f = Math.min(f, d.datepicker._getDaysInMonth(k, n)); | |
break; | |
case "y": | |
case "Y": | |
k += parseInt(t[1], 10), f = Math.min(f, d.datepicker._getDaysInMonth(k, n)) | |
} | |
t = e.exec(c) | |
} | |
return new Date(k, n, f) | |
}; | |
c = null == c || "" === c ? f : "string" == typeof c ? n(c) : "number" == typeof c ? isNaN(c) ? f : k(c) : new Date(c.getTime()); | |
return c = c && "Invalid Date" == "" + c ? f : c, c && (c.setHours(0), c.setMinutes(0), c.setSeconds(0), c.setMilliseconds(0)), this._daylightSavingAdjust(c) | |
}, | |
_daylightSavingAdjust: function(a) { | |
return a ? (a.setHours(12 < a.getHours() ? a.getHours() + 2 : 0), a) : null | |
}, | |
_setDate: function(a, d, c) { | |
var f = !d, | |
k = a.selectedMonth, | |
n = a.selectedYear; | |
d = this._restrictMinMax(a, this._determineDate(a, d, new Date)); | |
a.selectedDay = a.currentDay = d.getDate(); | |
a.drawMonth = a.selectedMonth = a.currentMonth = d.getMonth(); | |
a.drawYear = a.selectedYear = a.currentYear = d.getFullYear(); | |
k === a.selectedMonth && n === a.selectedYear || c || this._notifyChange(a); | |
this._adjustInstDate(a); | |
a.input && a.input.val(f ? "" : this._formatDate(a)) | |
}, | |
_getDate: function(a) { | |
return !a.currentYear || a.input && "" === a.input.val() ? null : this._daylightSavingAdjust(new Date(a.currentYear, a.currentMonth, a.currentDay)) | |
}, | |
_attachHandlers: function(a) { | |
var c = this._get(a, "stepMonths"), | |
f = "#" + a.id.replace(/\\\\/g, "\\"); | |
a.dpDiv.find("[data-handler]").map(function() { | |
d(this).bind(this.getAttribute("data-event"), { | |
prev: function() { | |
d.datepicker._adjustDate(f, -c, "M") | |
}, | |
next: function() { | |
d.datepicker._adjustDate(f, +c, "M") | |
}, | |
hide: function() { | |
d.datepicker._hideDatepicker() | |
}, | |
today: function() { | |
d.datepicker._gotoToday(f) | |
}, | |
selectDay: function() { | |
return d.datepicker._selectDay(f, +this.getAttribute("data-month"), +this.getAttribute("data-year"), this), !1 | |
}, | |
selectMonth: function() { | |
return d.datepicker._selectMonthYear(f, this, "M"), !1 | |
}, | |
selectYear: function() { | |
return d.datepicker._selectMonthYear(f, this, "Y"), !1 | |
} | |
}[this.getAttribute("data-handler")]) | |
}) | |
}, | |
_generateHTML: function(a) { | |
var d, c, f, k, n, e, t, h, m, v, w, u, q, p, C, A, ha, Y, Z, R, aa, da, ua, Da, S, wa, ta, na = new Date, | |
na = this._daylightSavingAdjust(new Date(na.getFullYear(), na.getMonth(), na.getDate())), | |
ea = this._get(a, "isRTL"); | |
e = this._get(a, "showButtonPanel"); | |
f = this._get(a, "hideIfNoPrevNext"); | |
n = this._get(a, "navigationAsDateFormat"); | |
var Ea = this._getNumberOfMonths(a), | |
ja = this._get(a, "showCurrentAtPos"); | |
k = this._get(a, "stepMonths"); | |
var hb = 1 !== Ea[0] || 1 !== Ea[1], | |
ob = this._daylightSavingAdjust(a.currentDay ? new Date(a.currentYear, a.currentMonth, a.currentDay) : new Date(9999, 9, 9)), | |
xa = this._getMinMaxDate(a, "min"), | |
P = this._getMinMaxDate(a, "max"), | |
ja = a.drawMonth - ja, | |
z = a.drawYear; | |
if (0 > ja && (ja += 12, z--), P) | |
for (d = this._daylightSavingAdjust(new Date(P.getFullYear(), P.getMonth() - Ea[0] * Ea[1] + 1, P.getDate())), d = xa && xa > d ? xa : d; this._daylightSavingAdjust(new Date(z, ja, 1)) > d;) ja--, 0 > ja && (ja = 11, z--); | |
a.drawMonth = ja; | |
a.drawYear = z; | |
d = this._get(a, "prevText"); | |
d = n ? this.formatDate(d, this._daylightSavingAdjust(new Date(z, ja - k, 1)), this._getFormatConfig(a)) : d; | |
d = this._canAdjustMonth(a, -1, z, ja) ? "<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='" + d + "'><span class='ui-icon ui-icon-circle-triangle-" + (ea ? "e" : "w") + "'>" + d + "</span></a>" : f ? "" : "<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='" + d + "'><span class='ui-icon ui-icon-circle-triangle-" + (ea ? "e" : "w") + "'>" + d + "</span></a>"; | |
c = this._get(a, "nextText"); | |
c = n ? this.formatDate(c, this._daylightSavingAdjust(new Date(z, ja + k, 1)), this._getFormatConfig(a)) : c; | |
f = this._canAdjustMonth(a, 1, z, ja) ? "<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='" + c + "'><span class='ui-icon ui-icon-circle-triangle-" + (ea ? "w" : "e") + "'>" + c + "</span></a>" : f ? "" : "<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='" + c + "'><span class='ui-icon ui-icon-circle-triangle-" + (ea ? "w" : "e") + "'>" + c + "</span></a>"; | |
k = this._get(a, "currentText"); | |
c = this._get(a, "gotoCurrent") && a.currentDay ? ob : na; | |
k = n ? this.formatDate(k, c, this._getFormatConfig(a)) : k; | |
n = a.inline ? "" : "<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>" + this._get(a, "closeText") + "</button>"; | |
e = e ? "<div class='ui-datepicker-buttonpane ui-widget-content'>" + (ea ? n : "") + (this._isInRange(a, c) ? "<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>" + k + "</button>" : "") + (ea ? "" : n) + "</div>" : ""; | |
n = parseInt(this._get(a, "firstDay"), 10); | |
n = isNaN(n) ? 0 : n; | |
k = this._get(a, "showWeek"); | |
c = this._get(a, "dayNames"); | |
t = this._get(a, "dayNamesMin"); | |
h = this._get(a, "monthNames"); | |
m = this._get(a, "monthNamesShort"); | |
v = this._get(a, "beforeShowDay"); | |
w = this._get(a, "showOtherMonths"); | |
u = this._get(a, "selectOtherMonths"); | |
q = this._getDefaultDate(a); | |
p = ""; | |
for (A = 0; Ea[0] > A; A++) { | |
ha = ""; | |
this.maxRows = 4; | |
for (Y = 0; Ea[1] > Y; Y++) { | |
if (Z = this._daylightSavingAdjust(new Date(z, ja, a.selectedDay)), C = " ui-corner-all", R = "", hb) { | |
if (R += "<div class='ui-datepicker-group", 1 < Ea[1]) switch (Y) { | |
case 0: | |
R += " ui-datepicker-group-first"; | |
C = " ui-corner-" + (ea ? "right" : "left"); | |
break; | |
case Ea[1] - 1: | |
R += " ui-datepicker-group-last"; | |
C = " ui-corner-" + (ea ? "left" : "right"); | |
break; | |
default: | |
R += " ui-datepicker-group-middle", C = "" | |
} | |
R += "'>" | |
} | |
R += "<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix" + C + "'>" + (/all|left/.test(C) && 0 === A ? ea ? f : d : "") + (/all|right/.test(C) && 0 === A ? ea ? d : f : "") + this._generateMonthYearHeader(a, ja, z, xa, P, 0 < A || 0 < Y, h, m) + "</div><table class='ui-datepicker-calendar'><thead><tr>"; | |
aa = k ? "<th class='ui-datepicker-week-col'>" + this._get(a, "weekHeader") + "</th>" : ""; | |
for (C = 0; 7 > C; C++) da = (C + n) % 7, aa += "<th scope='col'" + (5 <= (C + n + 6) % 7 ? " class='ui-datepicker-week-end'" : "") + "><span title='" + c[da] + "'>" + t[da] + "</span></th>"; | |
R += aa + "</tr></thead><tbody>"; | |
aa = this._getDaysInMonth(z, ja); | |
z === a.selectedYear && ja === a.selectedMonth && (a.selectedDay = Math.min(a.selectedDay, aa)); | |
C = (this._getFirstDayOfMonth(z, ja) - n + 7) % 7; | |
aa = Math.ceil((C + aa) / 7); | |
this.maxRows = aa = hb ? this.maxRows > aa ? this.maxRows : aa : aa; | |
da = this._daylightSavingAdjust(new Date(z, ja, 1 - C)); | |
for (ua = 0; aa > ua; ua++) { | |
R += "<tr>"; | |
Da = k ? "<td class='ui-datepicker-week-col'>" + this._get(a, "calculateWeek")(da) + "</td>" : ""; | |
for (C = 0; 7 > C; C++) S = v ? v.apply(a.input ? a.input[0] : null, [da]) : [!0, ""], ta = (wa = da.getMonth() !== ja) && !u || !S[0] || xa && xa > da || P && da > P, Da += "<td class='" + (5 <= (C + n + 6) % 7 ? " ui-datepicker-week-end" : "") + (wa ? " ui-datepicker-other-month" : "") + (da.getTime() === Z.getTime() && ja === a.selectedMonth && a._keyEvent || q.getTime() === da.getTime() && q.getTime() === Z.getTime() ? " " + this._dayOverClass : "") + (ta ? " " + this._unselectableClass + " ui-state-disabled" : "") + (wa && !w ? "" : " " + S[1] + (da.getTime() === ob.getTime() ? " " + this._currentClass : "") + (da.getTime() === na.getTime() ? " ui-datepicker-today" : "")) + "'" + (wa && !w || !S[2] ? "" : " title='" + S[2].replace(/'/g, "'") + "'") + (ta ? "" : " data-handler='selectDay' data-event='click' data-month='" + da.getMonth() + "' data-year='" + da.getFullYear() + "'") + ">" + (wa && !w ? " " : ta ? "<span class='ui-state-default'>" + da.getDate() + "</span>" : "<a class='ui-state-default" + (da.getTime() === na.getTime() ? " ui-state-highlight" : "") + (da.getTime() === ob.getTime() ? " ui-state-active" : "") + (wa ? " ui-priority-secondary" : "") + "' href='#'>" + da.getDate() + "</a>") + "</td>", da.setDate(da.getDate() + 1), da = this._daylightSavingAdjust(da); | |
R += Da + "</tr>" | |
} | |
ja++; | |
11 < ja && (ja = 0, z++); | |
R += "</tbody></table>" + (hb ? "</div>" + (0 < Ea[0] && Y === Ea[1] - 1 ? "<div class='ui-datepicker-row-break'></div>" : "") : ""); | |
ha += R | |
} | |
p += ha | |
} | |
return p += e, a._keyEvent = !1, p | |
}, | |
_generateMonthYearHeader: function(a, d, c, f, k, n, e, t) { | |
var h, m, v, w = this._get(a, "changeMonth"), | |
u = this._get(a, "changeYear"), | |
q = this._get(a, "showMonthAfterYear"), | |
p = "<div class='ui-datepicker-title'>", | |
B = ""; | |
if (n || !w) B += "<span class='ui-datepicker-month'>" + e[d] + "</span>"; | |
else { | |
e = f && f.getFullYear() === c; | |
h = k && k.getFullYear() === c; | |
B += "<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>"; | |
for (m = 0; 12 > m; m++)(!e || m >= f.getMonth()) && (!h || k.getMonth() >= m) && (B += "<option value='" + m + "'" + (m === d ? " selected='selected'" : "") + ">" + t[m] + "</option>"); | |
B += "</select>" | |
} | |
if (q || (p += B + (!n && w && u ? "" : " ")), !a.yearshtml) | |
if (a.yearshtml = "", n || !u) p += "<span class='ui-datepicker-year'>" + c + "</span>"; | |
else { | |
t = this._get(a, "yearRange").split(":"); | |
v = (new Date).getFullYear(); | |
e = function(a) { | |
a = a.match(/c[+\-].*/) ? c + parseInt(a.substring(1), 10) : a.match(/[+\-].*/) ? v + parseInt(a, 10) : parseInt(a, 10); | |
return isNaN(a) ? v : a | |
}; | |
d = e(t[0]); | |
t = Math.max(d, e(t[1] || "")); | |
d = f ? Math.max(d, f.getFullYear()) : d; | |
t = k ? Math.min(t, k.getFullYear()) : t; | |
for (a.yearshtml += "<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>"; t >= d; d++) a.yearshtml += "<option value='" + d + "'" + (d === c ? " selected='selected'" : "") + ">" + d + "</option>"; | |
a.yearshtml += "</select>"; | |
p += a.yearshtml; | |
a.yearshtml = null | |
} | |
return p += this._get(a, "yearSuffix"), q && (p += (!n && w && u ? "" : " ") + B), p += "</div>" | |
}, | |
_adjustInstDate: function(a, d, c) { | |
var f = a.drawYear + ("Y" === c ? d : 0), | |
k = a.drawMonth + ("M" === c ? d : 0); | |
d = Math.min(a.selectedDay, this._getDaysInMonth(f, k)) + ("D" === c ? d : 0); | |
f = this._restrictMinMax(a, this._daylightSavingAdjust(new Date(f, k, d))); | |
a.selectedDay = f.getDate(); | |
a.drawMonth = a.selectedMonth = f.getMonth(); | |
a.drawYear = a.selectedYear = f.getFullYear(); | |
"M" !== c && "Y" !== c || this._notifyChange(a) | |
}, | |
_restrictMinMax: function(a, d) { | |
var c = this._getMinMaxDate(a, "min"), | |
f = this._getMinMaxDate(a, "max"), | |
c = c && c > d ? c : d; | |
return f && c > f ? f : c | |
}, | |
_notifyChange: function(a) { | |
var d = this._get(a, "onChangeMonthYear"); | |
d && d.apply(a.input ? a.input[0] : null, [a.selectedYear, a.selectedMonth + 1, a]) | |
}, | |
_getNumberOfMonths: function(a) { | |
a = this._get(a, "numberOfMonths"); | |
return null == a ? [1, 1] : "number" == typeof a ? [1, a] : a | |
}, | |
_getMinMaxDate: function(a, d) { | |
return this._determineDate(a, this._get(a, d + "Date"), null) | |
}, | |
_getDaysInMonth: function(a, d) { | |
return 32 - this._daylightSavingAdjust(new Date(a, d, 32)).getDate() | |
}, | |
_getFirstDayOfMonth: function(a, d) { | |
return new Date(a, d, 1).getDay() | |
}, | |
_canAdjustMonth: function(a, d, c, f) { | |
var k = this._getNumberOfMonths(a); | |
c = this._daylightSavingAdjust(new Date(c, f + (0 > d ? d : k[0] * k[1]), 1)); | |
return 0 > d && c.setDate(this._getDaysInMonth(c.getFullYear(), c.getMonth())), this._isInRange(a, c) | |
}, | |
_isInRange: function(a, d) { | |
var c, f, k = this._getMinMaxDate(a, "min"), | |
n = this._getMinMaxDate(a, "max"), | |
e = null, | |
t = null, | |
h = this._get(a, "yearRange"); | |
return h && (c = h.split(":"), f = (new Date).getFullYear(), e = parseInt(c[0], 10), t = parseInt(c[1], 10), c[0].match(/[+\-].*/) && (e += f), c[1].match(/[+\-].*/) && (t += f)), (!k || d.getTime() >= k.getTime()) && (!n || d.getTime() <= n.getTime()) && (!e || d.getFullYear() >= e) && (!t || t >= d.getFullYear()) | |
}, | |
_getFormatConfig: function(a) { | |
var d = this._get(a, "shortYearCutoff"); | |
return d = "string" != typeof d ? d : (new Date).getFullYear() % 100 + parseInt(d, 10), { | |
shortYearCutoff: d, | |
dayNamesShort: this._get(a, "dayNamesShort"), | |
dayNames: this._get(a, "dayNames"), | |
monthNamesShort: this._get(a, "monthNamesShort"), | |
monthNames: this._get(a, "monthNames") | |
} | |
}, | |
_formatDate: function(a, d, c, f) { | |
d || (a.currentDay = a.selectedDay, a.currentMonth = a.selectedMonth, a.currentYear = a.selectedYear); | |
d = d ? "object" == typeof d ? d : this._daylightSavingAdjust(new Date(f, c, d)) : this._daylightSavingAdjust(new Date(a.currentYear, a.currentMonth, a.currentDay)); | |
return this.formatDate(this._get(a, "dateFormat"), d, this._getFormatConfig(a)) | |
} | |
}); | |
d.fn.datepicker = function(a) { | |
if (!this.length) return this; | |
d.datepicker.initialized || (d(document).mousedown(d.datepicker._checkExternalClick), d.datepicker.initialized = !0); | |
0 === d("#" + d.datepicker._mainDivId).length && d("body").append(d.datepicker.dpDiv); | |
var c = Array.prototype.slice.call(arguments, 1); | |
return "string" != typeof a || "isDisabled" !== a && "getDate" !== a && "widget" !== a ? "option" === a && 2 === arguments.length && "string" == typeof arguments[1] ? d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this[0]].concat(c)) : this.each(function() { | |
"string" == typeof a ? d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this].concat(c)) : d.datepicker._attachDatepicker(this, a) | |
}) : d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this[0]].concat(c)) | |
}; | |
d.datepicker = new h; | |
d.datepicker.initialized = !1; | |
d.datepicker.uuid = (new Date).getTime(); | |
d.datepicker.version = "1.11.2"; | |
d.datepicker; | |
d.widget("ui.draggable", d.ui.mouse, { | |
version: "1.11.2", | |
widgetEventPrefix: "drag", | |
options: { | |
addClasses: !0, | |
appendTo: "parent", | |
axis: !1, | |
connectToSortable: !1, | |
containment: !1, | |
cursor: "auto", | |
cursorAt: !1, | |
grid: !1, | |
handle: !1, | |
helper: "original", | |
iframeFix: !1, | |
opacity: !1, | |
refreshPositions: !1, | |
revert: !1, | |
revertDuration: 500, | |
scope: "default", | |
scroll: !0, | |
scrollSensitivity: 20, | |
scrollSpeed: 20, | |
snap: !1, | |
snapMode: "both", | |
snapTolerance: 20, | |
stack: !1, | |
zIndex: !1, | |
drag: null, | |
start: null, | |
stop: null | |
}, | |
_create: function() { | |
"original" === this.options.helper && this._setPositionRelative(); | |
this.options.addClasses && this.element.addClass("ui-draggable"); | |
this.options.disabled && this.element.addClass("ui-draggable-disabled"); | |
this._setHandleClassName(); | |
this._mouseInit() | |
}, | |
_setOption: function(a, d) { | |
this._super(a, d); | |
"handle" === a && (this._removeHandleClassName(), this._setHandleClassName()) | |
}, | |
_destroy: function() { | |
return (this.helper || this.element).is(".ui-draggable-dragging") ? (this.destroyOnClear = !0, void 0) : (this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"), this._removeHandleClassName(), this._mouseDestroy(), void 0) | |
}, | |
_mouseCapture: function(a) { | |
var c = this.options; | |
return this._blurActiveElement(a), this.helper || c.disabled || 0 < d(a.target).closest(".ui-resizable-handle").length ? !1 : (this.handle = this._getHandle(a), this.handle ? (this._blockFrames(!0 === c.iframeFix ? "iframe" : c.iframeFix), !0) : !1) | |
}, | |
_blockFrames: function(a) { | |
this.iframeBlocks = this.document.find(a).map(function() { | |
var a = d(this); | |
return d("<div>").css("position", "absolute").appendTo(a.parent()).outerWidth(a.outerWidth()).outerHeight(a.outerHeight()).offset(a.offset())[0] | |
}) | |
}, | |
_unblockFrames: function() { | |
this.iframeBlocks && (this.iframeBlocks.remove(), delete this.iframeBlocks) | |
}, | |
_blurActiveElement: function(a) { | |
var c = this.document[0]; | |
if (this.handleElement.is(a.target)) try { | |
c.activeElement && "body" !== c.activeElement.nodeName.toLowerCase() && d(c.activeElement).blur() | |
} catch (D) {} | |
}, | |
_mouseStart: function(a) { | |
var c = this.options; | |
return this.helper = this._createHelper(a), this.helper.addClass("ui-draggable-dragging"), this._cacheHelperProportions(), d.ui.ddmanager && (d.ui.ddmanager.current = this), this._cacheMargins(), this.cssPosition = this.helper.css("position"), this.scrollParent = this.helper.scrollParent(!0), this.offsetParent = this.helper.offsetParent(), this.hasFixedAncestor = 0 < this.helper.parents().filter(function() { | |
return "fixed" === d(this).css("position") | |
}).length, this.positionAbs = this.element.offset(), this._refreshOffsets(a), this.originalPosition = this.position = this._generatePosition(a, !1), this.originalPageX = a.pageX, this.originalPageY = a.pageY, c.cursorAt && this._adjustOffsetFromHelper(c.cursorAt), this._setContainment(), !1 === this._trigger("start", a) ? (this._clear(), !1) : (this._cacheHelperProportions(), d.ui.ddmanager && !c.dropBehaviour && d.ui.ddmanager.prepareOffsets(this, a), this._normalizeRightBottom(), this._mouseDrag(a, !0), d.ui.ddmanager && d.ui.ddmanager.dragStart(this, a), !0) | |
}, | |
_refreshOffsets: function(a) { | |
this.offset = { | |
top: this.positionAbs.top - this.margins.top, | |
left: this.positionAbs.left - this.margins.left, | |
scroll: !1, | |
parent: this._getParentOffset(), | |
relative: this._getRelativeOffset() | |
}; | |
this.offset.click = { | |
left: a.pageX - this.offset.left, | |
top: a.pageY - this.offset.top | |
} | |
}, | |
_mouseDrag: function(a, c) { | |
if (this.hasFixedAncestor && (this.offset.parent = this._getParentOffset()), this.position = this._generatePosition(a, !0), this.positionAbs = this._convertPositionTo("absolute"), !c) { | |
var f = this._uiHash(); | |
if (!1 === this._trigger("drag", a, f)) return this._mouseUp({}), !1; | |
this.position = f.position | |
} | |
return this.helper[0].style.left = this.position.left + "px", this.helper[0].style.top = this.position.top + "px", d.ui.ddmanager && d.ui.ddmanager.drag(this, a), !1 | |
}, | |
_mouseStop: function(a) { | |
var c = this, | |
f = !1; | |
return d.ui.ddmanager && !this.options.dropBehaviour && (f = d.ui.ddmanager.drop(this, a)), this.dropped && (f = this.dropped, this.dropped = !1), "invalid" === this.options.revert && !f || "valid" === this.options.revert && f || !0 === this.options.revert || d.isFunction(this.options.revert) && this.options.revert.call(this.element, f) ? d(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() { | |
!1 !== c._trigger("stop", a) && c._clear() | |
}) : !1 !== this._trigger("stop", a) && this._clear(), !1 | |
}, | |
_mouseUp: function(a) { | |
return this._unblockFrames(), d.ui.ddmanager && d.ui.ddmanager.dragStop(this, a), this.handleElement.is(a.target) && this.element.focus(), d.ui.mouse.prototype._mouseUp.call(this, a) | |
}, | |
cancel: function() { | |
return this.helper.is(".ui-draggable-dragging") ? this._mouseUp({}) : this._clear(), this | |
}, | |
_getHandle: function(a) { | |
return this.options.handle ? !!d(a.target).closest(this.element.find(this.options.handle)).length : !0 | |
}, | |
_setHandleClassName: function() { | |
this.handleElement = this.options.handle ? this.element.find(this.options.handle) : this.element; | |
this.handleElement.addClass("ui-draggable-handle") | |
}, | |
_removeHandleClassName: function() { | |
this.handleElement.removeClass("ui-draggable-handle") | |
}, | |
_createHelper: function(a) { | |
var c = this.options, | |
f = d.isFunction(c.helper); | |
a = f ? d(c.helper.apply(this.element[0], [a])) : "clone" === c.helper ? this.element.clone().removeAttr("id") : this.element; | |
return a.parents("body").length || a.appendTo("parent" === c.appendTo ? this.element[0].parentNode : c.appendTo), f && a[0] === this.element[0] && this._setPositionRelative(), a[0] === this.element[0] || /(fixed|absolute)/.test(a.css("position")) || a.css("position", "absolute"), a | |
}, | |
_setPositionRelative: function() { | |
/^(?:r|a|f)/.test(this.element.css("position")) || (this.element[0].style.position = "relative") | |
}, | |
_adjustOffsetFromHelper: function(a) { | |
"string" == typeof a && (a = a.split(" ")); | |
d.isArray(a) && (a = { | |
left: +a[0], | |
top: +a[1] || 0 | |
}); | |
"left" in a && (this.offset.click.left = a.left + this.margins.left); | |
"right" in a && (this.offset.click.left = this.helperProportions.width - a.right + this.margins.left); | |
"top" in a && (this.offset.click.top = a.top + this.margins.top); | |
"bottom" in a && (this.offset.click.top = this.helperProportions.height - a.bottom + this.margins.top) | |
}, | |
_isRootNode: function(a) { | |
return /(html|body)/i.test(a.tagName) || a === this.document[0] | |
}, | |
_getParentOffset: function() { | |
var a = this.offsetParent.offset(), | |
c = this.document[0]; | |
return "absolute" === this.cssPosition && this.scrollParent[0] !== c && d.contains(this.scrollParent[0], this.offsetParent[0]) && (a.left += this.scrollParent.scrollLeft(), a.top += this.scrollParent.scrollTop()), this._isRootNode(this.offsetParent[0]) && (a = { | |
top: 0, | |
left: 0 | |
}), { | |
top: a.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), | |
left: a.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0) | |
} | |
}, | |
_getRelativeOffset: function() { | |
if ("relative" !== this.cssPosition) return { | |
top: 0, | |
left: 0 | |
}; | |
var a = this.element.position(), | |
d = this._isRootNode(this.scrollParent[0]); | |
return { | |
top: a.top - (parseInt(this.helper.css("top"), 10) || 0) + (d ? 0 : this.scrollParent.scrollTop()), | |
left: a.left - (parseInt(this.helper.css("left"), 10) || 0) + (d ? 0 : this.scrollParent.scrollLeft()) | |
} | |
}, | |
_cacheMargins: function() { | |
this.margins = { | |
left: parseInt(this.element.css("marginLeft"), 10) || 0, | |
top: parseInt(this.element.css("marginTop"), 10) || 0, | |
right: parseInt(this.element.css("marginRight"), 10) || 0, | |
bottom: parseInt(this.element.css("marginBottom"), 10) || 0 | |
} | |
}, | |
_cacheHelperProportions: function() { | |
this.helperProportions = { | |
width: this.helper.outerWidth(), | |
height: this.helper.outerHeight() | |
} | |
}, | |
_setContainment: function() { | |
var a, c, f, k = this.options, | |
n = this.document[0]; | |
return this.relativeContainer = null, k.containment ? "window" === k.containment ? (this.containment = [d(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left, d(window).scrollTop() - this.offset.relative.top - this.offset.parent.top, d(window).scrollLeft() + d(window).width() - this.helperProportions.width - this.margins.left, d(window).scrollTop() + (d(window).height() || n.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top], void 0) : "document" === k.containment ? (this.containment = [0, 0, d(n).width() - this.helperProportions.width - this.margins.left, (d(n).height() || n.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top], void 0) : k.containment.constructor === Array ? (this.containment = k.containment, void 0) : ("parent" === k.containment && (k.containment = this.helper[0].parentNode), c = d(k.containment), f = c[0], f && (a = /(scroll|auto)/.test(c.css("overflow")), this.containment = [(parseInt(c.css("borderLeftWidth"), 10) || 0) + (parseInt(c.css("paddingLeft"), 10) || 0), (parseInt(c.css("borderTopWidth"), 10) || 0) + (parseInt(c.css("paddingTop"), 10) || 0), (a ? Math.max(f.scrollWidth, f.offsetWidth) : f.offsetWidth) - (parseInt(c.css("borderRightWidth"), 10) || 0) - (parseInt(c.css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, (a ? Math.max(f.scrollHeight, f.offsetHeight) : f.offsetHeight) - (parseInt(c.css("borderBottomWidth"), 10) || 0) - (parseInt(c.css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom], this.relativeContainer = c), void 0) : (this.containment = null, void 0) | |
}, | |
_convertPositionTo: function(a, d) { | |
d || (d = this.position); | |
var c = "absolute" === a ? 1 : -1, | |
f = this._isRootNode(this.scrollParent[0]); | |
return { | |
top: d.top + this.offset.relative.top * c + this.offset.parent.top * c - ("fixed" === this.cssPosition ? -this.offset.scroll.top : f ? 0 : this.offset.scroll.top) * c, | |
left: d.left + this.offset.relative.left * c + this.offset.parent.left * c - ("fixed" === this.cssPosition ? -this.offset.scroll.left : f ? 0 : this.offset.scroll.left) * c | |
} | |
}, | |
_generatePosition: function(a, d) { | |
var c, f, k, n, e = this.options, | |
t = this._isRootNode(this.scrollParent[0]), | |
h = a.pageX, | |
m = a.pageY; | |
return t && this.offset.scroll || (this.offset.scroll = { | |
top: this.scrollParent.scrollTop(), | |
left: this.scrollParent.scrollLeft() | |
}), d && (this.containment && (this.relativeContainer ? (f = this.relativeContainer.offset(), c = [this.containment[0] + f.left, this.containment[1] + f.top, this.containment[2] + f.left, this.containment[3] + f.top]) : c = this.containment, a.pageX - this.offset.click.left < c[0] && (h = c[0] + this.offset.click.left), a.pageY - this.offset.click.top < c[1] && (m = c[1] + this.offset.click.top), a.pageX - this.offset.click.left > c[2] && (h = c[2] + this.offset.click.left), a.pageY - this.offset.click.top > c[3] && (m = c[3] + this.offset.click.top)), e.grid && (k = e.grid[1] ? this.originalPageY + Math.round((m - this.originalPageY) / e.grid[1]) * e.grid[1] : this.originalPageY, m = c ? k - this.offset.click.top >= c[1] || k - this.offset.click.top > c[3] ? k : k - this.offset.click.top >= c[1] ? k - e.grid[1] : k + e.grid[1] : k, n = e.grid[0] ? this.originalPageX + Math.round((h - this.originalPageX) / e.grid[0]) * e.grid[0] : this.originalPageX, h = c ? n - this.offset.click.left >= c[0] || n - this.offset.click.left > c[2] ? n : n - this.offset.click.left >= c[0] ? n - e.grid[0] : n + e.grid[0] : n), "y" === e.axis && (h = this.originalPageX), "x" === e.axis && (m = this.originalPageY)), { | |
top: m - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ("fixed" === this.cssPosition ? -this.offset.scroll.top : t ? 0 : this.offset.scroll.top), | |
left: h - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ("fixed" === this.cssPosition ? -this.offset.scroll.left : t ? 0 : this.offset.scroll.left) | |
} | |
}, | |
_clear: function() { | |
this.helper.removeClass("ui-draggable-dragging"); | |
this.helper[0] === this.element[0] || this.cancelHelperRemoval || this.helper.remove(); | |
this.helper = null; | |
this.cancelHelperRemoval = !1; | |
this.destroyOnClear && this.destroy() | |
}, | |
_normalizeRightBottom: function() { | |
"y" !== this.options.axis && "auto" !== this.helper.css("right") && (this.helper.width(this.helper.width()), this.helper.css("right", "auto")); | |
"x" !== this.options.axis && "auto" !== this.helper.css("bottom") && (this.helper.height(this.helper.height()), this.helper.css("bottom", "auto")) | |
}, | |
_trigger: function(a, c, f) { | |
return f = f || this._uiHash(), d.ui.plugin.call(this, a, [c, f, this], !0), /^(drag|start|stop)/.test(a) && (this.positionAbs = this._convertPositionTo("absolute"), f.offset = this.positionAbs), d.Widget.prototype._trigger.call(this, a, c, f) | |
}, | |
plugins: {}, | |
_uiHash: function() { | |
return { | |
helper: this.helper, | |
position: this.position, | |
originalPosition: this.originalPosition, | |
offset: this.positionAbs | |
} | |
} | |
}); | |
d.ui.plugin.add("draggable", "connectToSortable", { | |
start: function(a, c, f) { | |
var k = d.extend({}, c, { | |
item: f.element | |
}); | |
f.sortables = []; | |
d(f.options.connectToSortable).each(function() { | |
var c = d(this).sortable("instance"); | |
c && !c.options.disabled && (f.sortables.push(c), c.refreshPositions(), c._trigger("activate", a, k)) | |
}) | |
}, | |
stop: function(a, c, f) { | |
var k = d.extend({}, c, { | |
item: f.element | |
}); | |
f.cancelHelperRemoval = !1; | |
d.each(f.sortables, function() { | |
this.isOver ? (this.isOver = 0, f.cancelHelperRemoval = !0, this.cancelHelperRemoval = !1, this._storedCSS = { | |
position: this.placeholder.css("position"), | |
top: this.placeholder.css("top"), | |
left: this.placeholder.css("left") | |
}, this._mouseStop(a), this.options.helper = this.options._helper) : (this.cancelHelperRemoval = !0, this._trigger("deactivate", a, k)) | |
}) | |
}, | |
drag: function(a, c, f) { | |
d.each(f.sortables, function() { | |
var k = !1, | |
n = this; | |
n.positionAbs = f.positionAbs; | |
n.helperProportions = f.helperProportions; | |
n.offset.click = f.offset.click; | |
n._intersectsWith(n.containerCache) && (k = !0, d.each(f.sortables, function() { | |
return this.positionAbs = f.positionAbs, this.helperProportions = f.helperProportions, this.offset.click = f.offset.click, this !== n && this._intersectsWith(this.containerCache) && d.contains(n.element[0], this.element[0]) && (k = !1), k | |
})); | |
k ? (n.isOver || (n.isOver = 1, n.currentItem = c.helper.appendTo(n.element).data("ui-sortable-item", !0), n.options._helper = n.options.helper, n.options.helper = function() { | |
return c.helper[0] | |
}, a.target = n.currentItem[0], n._mouseCapture(a, !0), n._mouseStart(a, !0, !0), n.offset.click.top = f.offset.click.top, n.offset.click.left = f.offset.click.left, n.offset.parent.left -= f.offset.parent.left - n.offset.parent.left, n.offset.parent.top -= f.offset.parent.top - n.offset.parent.top, f._trigger("toSortable", a), f.dropped = n.element, d.each(f.sortables, function() { | |
this.refreshPositions() | |
}), f.currentItem = f.element, n.fromOutside = f), n.currentItem && (n._mouseDrag(a), c.position = n.position)) : n.isOver && (n.isOver = 0, n.cancelHelperRemoval = !0, n.options._revert = n.options.revert, n.options.revert = !1, n._trigger("out", a, n._uiHash(n)), n._mouseStop(a, !0), n.options.revert = n.options._revert, n.options.helper = n.options._helper, n.placeholder && n.placeholder.remove(), f._refreshOffsets(a), c.position = f._generatePosition(a, !0), f._trigger("fromSortable", a), f.dropped = !1, d.each(f.sortables, function() { | |
this.refreshPositions() | |
})) | |
}) | |
} | |
}); | |
d.ui.plugin.add("draggable", "cursor", { | |
start: function(a, c, f) { | |
a = d("body"); | |
f = f.options; | |
a.css("cursor") && (f._cursor = a.css("cursor")); | |
a.css("cursor", f.cursor) | |
}, | |
stop: function(a, c, f) { | |
a = f.options; | |
a._cursor && d("body").css("cursor", a._cursor) | |
} | |
}); | |
d.ui.plugin.add("draggable", "opacity", { | |
start: function(a, c, f) { | |
a = d(c.helper); | |
f = f.options; | |
a.css("opacity") && (f._opacity = a.css("opacity")); | |
a.css("opacity", f.opacity) | |
}, | |
stop: function(a, c, f) { | |
a = f.options; | |
a._opacity && d(c.helper).css("opacity", a._opacity) | |
} | |
}); | |
d.ui.plugin.add("draggable", "scroll", { | |
start: function(a, d, c) { | |
c.scrollParentNotHidden || (c.scrollParentNotHidden = c.helper.scrollParent(!1)); | |
c.scrollParentNotHidden[0] !== c.document[0] && "HTML" !== c.scrollParentNotHidden[0].tagName && (c.overflowOffset = c.scrollParentNotHidden.offset()) | |
}, | |
drag: function(a, c, f) { | |
c = f.options; | |
var k = !1, | |
n = f.scrollParentNotHidden[0], | |
e = f.document[0]; | |
n !== e && "HTML" !== n.tagName ? (c.axis && "x" === c.axis || (f.overflowOffset.top + n.offsetHeight - a.pageY < c.scrollSensitivity ? n.scrollTop = k = n.scrollTop + c.scrollSpeed : a.pageY - f.overflowOffset.top < c.scrollSensitivity && (n.scrollTop = k = n.scrollTop - c.scrollSpeed)), c.axis && "y" === c.axis || (f.overflowOffset.left + n.offsetWidth - a.pageX < c.scrollSensitivity ? n.scrollLeft = k = n.scrollLeft + c.scrollSpeed : a.pageX - f.overflowOffset.left < c.scrollSensitivity && (n.scrollLeft = k = n.scrollLeft - c.scrollSpeed))) : (c.axis && "x" === c.axis || (a.pageY - d(e).scrollTop() < c.scrollSensitivity ? k = d(e).scrollTop(d(e).scrollTop() - c.scrollSpeed) : d(window).height() - (a.pageY - d(e).scrollTop()) < c.scrollSensitivity && (k = d(e).scrollTop(d(e).scrollTop() + c.scrollSpeed))), c.axis && "y" === c.axis || (a.pageX - d(e).scrollLeft() < c.scrollSensitivity ? k = d(e).scrollLeft(d(e).scrollLeft() - c.scrollSpeed) : d(window).width() - (a.pageX - d(e).scrollLeft()) < c.scrollSensitivity && (k = d(e).scrollLeft(d(e).scrollLeft() + c.scrollSpeed)))); | |
!1 !== k && d.ui.ddmanager && !c.dropBehaviour && d.ui.ddmanager.prepareOffsets(f, a) | |
} | |
}); | |
d.ui.plugin.add("draggable", "snap", { | |
start: function(a, c, f) { | |
a = f.options; | |
f.snapElements = []; | |
d(a.snap.constructor !== String ? a.snap.items || ":data(ui-draggable)" : a.snap).each(function() { | |
var a = d(this), | |
c = a.offset(); | |
this !== f.element[0] && f.snapElements.push({ | |
item: this, | |
width: a.outerWidth(), | |
height: a.outerHeight(), | |
top: c.top, | |
left: c.left | |
}) | |
}) | |
}, | |
drag: function(a, c, f) { | |
var k, n, e, t, h, m, w, v, u, q, p = f.options, | |
C = p.snapTolerance, | |
B = c.offset.left, | |
A = B + f.helperProportions.width, | |
D = c.offset.top, | |
Y = D + f.helperProportions.height; | |
for (u = f.snapElements.length - 1; 0 <= u; u--) h = f.snapElements[u].left - f.margins.left, m = h + f.snapElements[u].width, w = f.snapElements[u].top - f.margins.top, v = w + f.snapElements[u].height, h - C > A || B > m + C || w - C > Y || D > v + C || !d.contains(f.snapElements[u].item.ownerDocument, f.snapElements[u].item) ? (f.snapElements[u].snapping && f.options.snap.release && f.options.snap.release.call(f.element, a, d.extend(f._uiHash(), { | |
snapItem: f.snapElements[u].item | |
})), f.snapElements[u].snapping = !1) : ("inner" !== p.snapMode && (k = C >= Math.abs(w - Y), n = C >= Math.abs(v - D), e = C >= Math.abs(h - A), t = C >= Math.abs(m - B), k && (c.position.top = f._convertPositionTo("relative", { | |
top: w - f.helperProportions.height, | |
left: 0 | |
}).top), n && (c.position.top = f._convertPositionTo("relative", { | |
top: v, | |
left: 0 | |
}).top), e && (c.position.left = f._convertPositionTo("relative", { | |
top: 0, | |
left: h - f.helperProportions.width | |
}).left), t && (c.position.left = f._convertPositionTo("relative", { | |
top: 0, | |
left: m | |
}).left)), q = k || n || e || t, "outer" !== p.snapMode && (k = C >= Math.abs(w - D), n = C >= Math.abs(v - Y), e = C >= Math.abs(h - B), t = C >= Math.abs(m - A), k && (c.position.top = f._convertPositionTo("relative", { | |
top: w, | |
left: 0 | |
}).top), n && (c.position.top = f._convertPositionTo("relative", { | |
top: v - f.helperProportions.height, | |
left: 0 | |
}).top), e && (c.position.left = f._convertPositionTo("relative", { | |
top: 0, | |
left: h | |
}).left), t && (c.position.left = f._convertPositionTo("relative", { | |
top: 0, | |
left: m - f.helperProportions.width | |
}).left)), !f.snapElements[u].snapping && (k || n || e || t || q) && f.options.snap.snap && f.options.snap.snap.call(f.element, a, d.extend(f._uiHash(), { | |
snapItem: f.snapElements[u].item | |
})), f.snapElements[u].snapping = k || n || e || t || q) | |
} | |
}); | |
d.ui.plugin.add("draggable", "stack", { | |
start: function(a, c, f) { | |
var k; | |
a = d.makeArray(d(f.options.stack)).sort(function(a, c) { | |
return (parseInt(d(a).css("zIndex"), 10) || 0) - (parseInt(d(c).css("zIndex"), 10) || 0) | |
}); | |
a.length && (k = parseInt(d(a[0]).css("zIndex"), 10) || 0, d(a).each(function(a) { | |
d(this).css("zIndex", k + a) | |
}), this.css("zIndex", k + a.length)) | |
} | |
}); | |
d.ui.plugin.add("draggable", "zIndex", { | |
start: function(a, c, f) { | |
a = d(c.helper); | |
f = f.options; | |
a.css("zIndex") && (f._zIndex = a.css("zIndex")); | |
a.css("zIndex", f.zIndex) | |
}, | |
stop: function(a, c, f) { | |
a = f.options; | |
a._zIndex && d(c.helper).css("zIndex", a._zIndex) | |
} | |
}); | |
d.ui.draggable; | |
d.widget("ui.resizable", d.ui.mouse, { | |
version: "1.11.2", | |
widgetEventPrefix: "resize", | |
options: { | |
alsoResize: !1, | |
animate: !1, | |
animateDuration: "slow", | |
animateEasing: "swing", | |
aspectRatio: !1, | |
autoHide: !1, | |
containment: !1, | |
ghost: !1, | |
grid: !1, | |
handles: "e,s,se", | |
helper: !1, | |
maxHeight: null, | |
maxWidth: null, | |
minHeight: 10, | |
minWidth: 10, | |
zIndex: 90, | |
resize: null, | |
start: null, | |
stop: null | |
}, | |
_num: function(a) { | |
return parseInt(a, 10) || 0 | |
}, | |
_isNumber: function(a) { | |
return !isNaN(parseInt(a, 10)) | |
}, | |
_hasScroll: function(a, c) { | |
if ("hidden" === d(a).css("overflow")) return !1; | |
var f = c && "left" === c ? "scrollLeft" : "scrollTop", | |
k = !1; | |
return 0 < a[f] ? !0 : (a[f] = 1, k = 0 < a[f], a[f] = 0, k) | |
}, | |
_create: function() { | |
var a, c, f, k, n, e = this, | |
t = this.options; | |
if (this.element.addClass("ui-resizable"), d.extend(this, { | |
_aspectRatio: !!t.aspectRatio, | |
aspectRatio: t.aspectRatio, | |
originalElement: this.element, | |
_proportionallyResizeElements: [], | |
_helper: t.helper || t.ghost || t.animate ? t.helper || "ui-resizable-helper" : null | |
}), this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i) && (this.element.wrap(d("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({ | |
position: this.element.css("position"), | |
width: this.element.outerWidth(), | |
height: this.element.outerHeight(), | |
top: this.element.css("top"), | |
left: this.element.css("left") | |
})), this.element = this.element.parent().data("ui-resizable", this.element.resizable("instance")), this.elementIsWrapper = !0, this.element.css({ | |
marginLeft: this.originalElement.css("marginLeft"), | |
marginTop: this.originalElement.css("marginTop"), | |
marginRight: this.originalElement.css("marginRight"), | |
marginBottom: this.originalElement.css("marginBottom") | |
}), this.originalElement.css({ | |
marginLeft: 0, | |
marginTop: 0, | |
marginRight: 0, | |
marginBottom: 0 | |
}), this.originalResizeStyle = this.originalElement.css("resize"), this.originalElement.css("resize", "none"), this._proportionallyResizeElements.push(this.originalElement.css({ | |
position: "static", | |
zoom: 1, | |
display: "block" | |
})), this.originalElement.css({ | |
margin: this.originalElement.css("margin") | |
}), this._proportionallyResize()), this.handles = t.handles || (d(".ui-resizable-handle", this.element).length ? { | |
n: ".ui-resizable-n", | |
e: ".ui-resizable-e", | |
s: ".ui-resizable-s", | |
w: ".ui-resizable-w", | |
se: ".ui-resizable-se", | |
sw: ".ui-resizable-sw", | |
ne: ".ui-resizable-ne", | |
nw: ".ui-resizable-nw" | |
} : "e,s,se"), this.handles.constructor === String) | |
for ("all" === this.handles && (this.handles = "n,e,s,w,se,sw,ne,nw"), a = this.handles.split(","), this.handles = {}, c = 0; a.length > c; c++) f = d.trim(a[c]), n = "ui-resizable-" + f, k = d("<div class='ui-resizable-handle " + n + "'></div>"), k.css({ | |
zIndex: t.zIndex | |
}), "se" === f && k.addClass("ui-icon ui-icon-gripsmall-diagonal-se"), this.handles[f] = ".ui-resizable-" + f, this.element.append(k); | |
this._renderAxis = function(a) { | |
var c, f, k, n; | |
a = a || this.element; | |
for (c in this.handles) this.handles[c].constructor === String && (this.handles[c] = this.element.children(this.handles[c]).first().show()), this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i) && (f = d(this.handles[c], this.element), n = /sw|ne|nw|se|n|s/.test(c) ? f.outerHeight() : f.outerWidth(), k = ["padding", /ne|nw|n/.test(c) ? "Top" : /se|sw|s/.test(c) ? "Bottom" : /^e$/.test(c) ? "Right" : "Left"].join(""), a.css(k, n), this._proportionallyResize()), d(this.handles[c]).length | |
}; | |
this._renderAxis(this.element); | |
this._handles = d(".ui-resizable-handle", this.element).disableSelection(); | |
this._handles.mouseover(function() { | |
e.resizing || (this.className && (k = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)), e.axis = k && k[1] ? k[1] : "se") | |
}); | |
t.autoHide && (this._handles.hide(), d(this.element).addClass("ui-resizable-autohide").mouseenter(function() { | |
t.disabled || (d(this).removeClass("ui-resizable-autohide"), e._handles.show()) | |
}).mouseleave(function() { | |
t.disabled || e.resizing || (d(this).addClass("ui-resizable-autohide"), e._handles.hide()) | |
})); | |
this._mouseInit() | |
}, | |
_destroy: function() { | |
this._mouseDestroy(); | |
var a, c = function(a) { | |
d(a).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove() | |
}; | |
return this.elementIsWrapper && (c(this.element), a = this.element, this.originalElement.css({ | |
position: a.css("position"), | |
width: a.outerWidth(), | |
height: a.outerHeight(), | |
top: a.css("top"), | |
left: a.css("left") | |
}).insertAfter(a), a.remove()), this.originalElement.css("resize", this.originalResizeStyle), c(this.originalElement), this | |
}, | |
_mouseCapture: function(a) { | |
var c, f, k = !1; | |
for (c in this.handles) f = d(this.handles[c])[0], (f === a.target || d.contains(f, a.target)) && (k = !0); | |
return !this.options.disabled && k | |
}, | |
_mouseStart: function(a) { | |
var c, f, k, n = this.options, | |
e = this.element; | |
return this.resizing = !0, this._renderProxy(), c = this._num(this.helper.css("left")), f = this._num(this.helper.css("top")), n.containment && (c += d(n.containment).scrollLeft() || 0, f += d(n.containment).scrollTop() || 0), this.offset = this.helper.offset(), this.position = { | |
left: c, | |
top: f | |
}, this.size = this._helper ? { | |
width: this.helper.width(), | |
height: this.helper.height() | |
} : { | |
width: e.width(), | |
height: e.height() | |
}, this.originalSize = this._helper ? { | |
width: e.outerWidth(), | |
height: e.outerHeight() | |
} : { | |
width: e.width(), | |
height: e.height() | |
}, this.sizeDiff = { | |
width: e.outerWidth() - e.width(), | |
height: e.outerHeight() - e.height() | |
}, this.originalPosition = { | |
left: c, | |
top: f | |
}, this.originalMousePosition = { | |
left: a.pageX, | |
top: a.pageY | |
}, this.aspectRatio = "number" == typeof n.aspectRatio ? n.aspectRatio : this.originalSize.width / this.originalSize.height || 1, k = d(".ui-resizable-" + this.axis).css("cursor"), d("body").css("cursor", "auto" === k ? this.axis + "-resize" : k), e.addClass("ui-resizable-resizing"), this._propagate("start", a), !0 | |
}, | |
_mouseDrag: function(a) { | |
var c, f, k = this.originalMousePosition, | |
n = a.pageX - k.left || 0, | |
k = a.pageY - k.top || 0, | |
e = this._change[this.axis]; | |
return this._updatePrevProperties(), e ? (c = e.apply(this, [a, n, k]), this._updateVirtualBoundaries(a.shiftKey), (this._aspectRatio || a.shiftKey) && (c = this._updateRatio(c, a)), c = this._respectSize(c, a), this._updateCache(c), this._propagate("resize", a), f = this._applyChanges(), !this._helper && this._proportionallyResizeElements.length && this._proportionallyResize(), d.isEmptyObject(f) || (this._updatePrevProperties(), this._trigger("resize", a, this.ui()), this._applyChanges()), !1) : !1 | |
}, | |
_mouseStop: function(a) { | |
this.resizing = !1; | |
var c, f, k, n, e, t, h, m = this.options; | |
return this._helper && (c = this._proportionallyResizeElements, f = c.length && /textarea/i.test(c[0].nodeName), k = f && this._hasScroll(c[0], "left") ? 0 : this.sizeDiff.height, n = f ? 0 : this.sizeDiff.width, e = { | |
width: this.helper.width() - n, | |
height: this.helper.height() - k | |
}, t = parseInt(this.element.css("left"), 10) + (this.position.left - this.originalPosition.left) || null, h = parseInt(this.element.css("top"), 10) + (this.position.top - this.originalPosition.top) || null, m.animate || this.element.css(d.extend(e, { | |
top: h, | |
left: t | |
})), this.helper.height(this.size.height), this.helper.width(this.size.width), this._helper && !m.animate && this._proportionallyResize()), d("body").css("cursor", "auto"), this.element.removeClass("ui-resizable-resizing"), this._propagate("stop", a), this._helper && this.helper.remove(), !1 | |
}, | |
_updatePrevProperties: function() { | |
this.prevPosition = { | |
top: this.position.top, | |
left: this.position.left | |
}; | |
this.prevSize = { | |
width: this.size.width, | |
height: this.size.height | |
} | |
}, | |
_applyChanges: function() { | |
var a = {}; | |
return this.position.top !== this.prevPosition.top && (a.top = this.position.top + "px"), this.position.left !== this.prevPosition.left && (a.left = this.position.left + "px"), this.size.width !== this.prevSize.width && (a.width = this.size.width + "px"), this.size.height !== this.prevSize.height && (a.height = this.size.height + "px"), this.helper.css(a), a | |
}, | |
_updateVirtualBoundaries: function(a) { | |
var d, c, f, k, n; | |
n = this.options; | |
n = { | |
minWidth: this._isNumber(n.minWidth) ? n.minWidth : 0, | |
maxWidth: this._isNumber(n.maxWidth) ? n.maxWidth : 1 / 0, | |
minHeight: this._isNumber(n.minHeight) ? n.minHeight : 0, | |
maxHeight: this._isNumber(n.maxHeight) ? n.maxHeight : 1 / 0 | |
}; | |
(this._aspectRatio || a) && (d = n.minHeight * this.aspectRatio, f = n.minWidth / this.aspectRatio, c = n.maxHeight * this.aspectRatio, k = n.maxWidth / this.aspectRatio, d > n.minWidth && (n.minWidth = d), f > n.minHeight && (n.minHeight = f), n.maxWidth > c && (n.maxWidth = c), n.maxHeight > k && (n.maxHeight = k)); | |
this._vBoundaries = n | |
}, | |
_updateCache: function(a) { | |
this.offset = this.helper.offset(); | |
this._isNumber(a.left) && (this.position.left = a.left); | |
this._isNumber(a.top) && (this.position.top = a.top); | |
this._isNumber(a.height) && (this.size.height = a.height); | |
this._isNumber(a.width) && (this.size.width = a.width) | |
}, | |
_updateRatio: function(a) { | |
var d = this.position, | |
c = this.size, | |
f = this.axis; | |
return this._isNumber(a.height) ? a.width = a.height * this.aspectRatio : this._isNumber(a.width) && (a.height = a.width / this.aspectRatio), "sw" === f && (a.left = d.left + (c.width - a.width), a.top = null), "nw" === f && (a.top = d.top + (c.height - a.height), a.left = d.left + (c.width - a.width)), a | |
}, | |
_respectSize: function(a) { | |
var d = this._vBoundaries, | |
c = this.axis, | |
f = this._isNumber(a.width) && d.maxWidth && d.maxWidth < a.width, | |
k = this._isNumber(a.height) && d.maxHeight && d.maxHeight < a.height, | |
n = this._isNumber(a.width) && d.minWidth && d.minWidth > a.width, | |
e = this._isNumber(a.height) && d.minHeight && d.minHeight > a.height, | |
t = this.originalPosition.left + this.originalSize.width, | |
h = this.position.top + this.size.height, | |
m = /sw|nw|w/.test(c), | |
c = /nw|ne|n/.test(c); | |
return n && (a.width = d.minWidth), e && (a.height = d.minHeight), f && (a.width = d.maxWidth), k && (a.height = d.maxHeight), n && m && (a.left = t - d.minWidth), f && m && (a.left = t - d.maxWidth), e && c && (a.top = h - d.minHeight), k && c && (a.top = h - d.maxHeight), a.width || a.height || a.left || !a.top ? a.width || a.height || a.top || !a.left || (a.left = null) : a.top = null, a | |
}, | |
_getPaddingPlusBorderDimensions: function(a) { | |
var d = 0, | |
c = [], | |
f = [a.css("borderTopWidth"), a.css("borderRightWidth"), a.css("borderBottomWidth"), a.css("borderLeftWidth")]; | |
for (a = [a.css("paddingTop"), a.css("paddingRight"), a.css("paddingBottom"), a.css("paddingLeft")]; 4 > d; d++) c[d] = parseInt(f[d], 10) || 0, c[d] += parseInt(a[d], 10) || 0; | |
return { | |
height: c[0] + c[2], | |
width: c[1] + c[3] | |
} | |
}, | |
_proportionallyResize: function() { | |
if (this._proportionallyResizeElements.length) | |
for (var a, d = 0, c = this.helper || this.element; this._proportionallyResizeElements.length > d; d++) a = this._proportionallyResizeElements[d], this.outerDimensions || (this.outerDimensions = this._getPaddingPlusBorderDimensions(a)), a.css({ | |
height: c.height() - this.outerDimensions.height || 0, | |
width: c.width() - this.outerDimensions.width || 0 | |
}) | |
}, | |
_renderProxy: function() { | |
var a = this.options; | |
this.elementOffset = this.element.offset(); | |
this._helper ? (this.helper = this.helper || d("<div style='overflow:hidden;'></div>"), this.helper.addClass(this._helper).css({ | |
width: this.element.outerWidth() - 1, | |
height: this.element.outerHeight() - 1, | |
position: "absolute", | |
left: this.elementOffset.left + "px", | |
top: this.elementOffset.top + "px", | |
zIndex: ++a.zIndex | |
}), this.helper.appendTo("body").disableSelection()) : this.helper = this.element | |
}, | |
_change: { | |
e: function(a, d) { | |
return { | |
width: this.originalSize.width + d | |
} | |
}, | |
w: function(a, d) { | |
return { | |
left: this.originalPosition.left + d, | |
width: this.originalSize.width - d | |
} | |
}, | |
n: function(a, d, c) { | |
return { | |
top: this.originalPosition.top + c, | |
height: this.originalSize.height - c | |
} | |
}, | |
s: function(a, d, c) { | |
return { | |
height: this.originalSize.height + c | |
} | |
}, | |
se: function(a, c, f) { | |
return d.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [a, c, f])) | |
}, | |
sw: function(a, c, f) { | |
return d.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [a, c, f])) | |
}, | |
ne: function(a, c, f) { | |
return d.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [a, c, f])) | |
}, | |
nw: function(a, c, f) { | |
return d.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [a, c, f])) | |
} | |
}, | |
_propagate: function(a, c) { | |
d.ui.plugin.call(this, a, [c, this.ui()]); | |
"resize" !== a && this._trigger(a, c, this.ui()) | |
}, | |
plugins: {}, | |
ui: function() { | |
return { | |
originalElement: this.originalElement, | |
element: this.element, | |
helper: this.helper, | |
position: this.position, | |
size: this.size, | |
originalSize: this.originalSize, | |
originalPosition: this.originalPosition | |
} | |
} | |
}); | |
d.ui.plugin.add("resizable", "animate", { | |
stop: function(a) { | |
var c = d(this).resizable("instance"), | |
f = c.options, | |
k = c._proportionallyResizeElements, | |
n = k.length && /textarea/i.test(k[0].nodeName), | |
e = n && c._hasScroll(k[0], "left") ? 0 : c.sizeDiff.height, | |
n = { | |
width: c.size.width - (n ? 0 : c.sizeDiff.width), | |
height: c.size.height - e | |
}, | |
e = parseInt(c.element.css("left"), 10) + (c.position.left - c.originalPosition.left) || null, | |
t = parseInt(c.element.css("top"), 10) + (c.position.top - c.originalPosition.top) || null; | |
c.element.animate(d.extend(n, t && e ? { | |
top: t, | |
left: e | |
} : {}), { | |
duration: f.animateDuration, | |
easing: f.animateEasing, | |
step: function() { | |
var f = { | |
width: parseInt(c.element.css("width"), 10), | |
height: parseInt(c.element.css("height"), 10), | |
top: parseInt(c.element.css("top"), 10), | |
left: parseInt(c.element.css("left"), 10) | |
}; | |
k && k.length && d(k[0]).css({ | |
width: f.width, | |
height: f.height | |
}); | |
c._updateCache(f); | |
c._propagate("resize", a) | |
} | |
}) | |
} | |
}); | |
d.ui.plugin.add("resizable", "containment", { | |
start: function() { | |
var a, c, f, k, n, e, t, h = d(this).resizable("instance"), | |
m = h.element, | |
w = h.options.containment; | |
(m = w instanceof d ? w.get(0) : /parent/.test(w) ? m.parent().get(0) : w) && (h.containerElement = d(m), /document/.test(w) || w === document ? (h.containerOffset = { | |
left: 0, | |
top: 0 | |
}, h.containerPosition = { | |
left: 0, | |
top: 0 | |
}, h.parentData = { | |
element: d(document), | |
left: 0, | |
top: 0, | |
width: d(document).width(), | |
height: d(document).height() || document.body.parentNode.scrollHeight | |
}) : (a = d(m), c = [], d(["Top", "Right", "Left", "Bottom"]).each(function(d, f) { | |
c[d] = h._num(a.css("padding" + f)) | |
}), h.containerOffset = a.offset(), h.containerPosition = a.position(), h.containerSize = { | |
height: a.innerHeight() - c[3], | |
width: a.innerWidth() - c[1] | |
}, f = h.containerOffset, k = h.containerSize.height, n = h.containerSize.width, e = h._hasScroll(m, "left") ? m.scrollWidth : n, t = h._hasScroll(m) ? m.scrollHeight : k, h.parentData = { | |
element: m, | |
left: f.left, | |
top: f.top, | |
width: e, | |
height: t | |
})) | |
}, | |
resize: function(a) { | |
var c, f, k, n = d(this).resizable("instance"); | |
c = n.options; | |
f = n.containerOffset; | |
k = n.position; | |
a = n._aspectRatio || a.shiftKey; | |
var e = { | |
top: 0, | |
left: 0 | |
}, | |
t = n.containerElement, | |
h = !0; | |
t[0] !== document && /static/.test(t.css("position")) && (e = f); | |
k.left < (n._helper ? f.left : 0) && (n.size.width += n._helper ? n.position.left - f.left : n.position.left - e.left, a && (n.size.height = n.size.width / n.aspectRatio, h = !1), n.position.left = c.helper ? f.left : 0); | |
k.top < (n._helper ? f.top : 0) && (n.size.height += n._helper ? n.position.top - f.top : n.position.top, a && (n.size.width = n.size.height * n.aspectRatio, h = !1), n.position.top = n._helper ? f.top : 0); | |
c = n.containerElement.get(0) === n.element.parent().get(0); | |
k = /relative|absolute/.test(n.containerElement.css("position")); | |
c && k ? (n.offset.left = n.parentData.left + n.position.left, n.offset.top = n.parentData.top + n.position.top) : (n.offset.left = n.element.offset().left, n.offset.top = n.element.offset().top); | |
c = Math.abs(n.sizeDiff.width + (n._helper ? n.offset.left - e.left : n.offset.left - f.left)); | |
f = Math.abs(n.sizeDiff.height + (n._helper ? n.offset.top - e.top : n.offset.top - f.top)); | |
c + n.size.width >= n.parentData.width && (n.size.width = n.parentData.width - c, a && (n.size.height = n.size.width / n.aspectRatio, h = !1)); | |
f + n.size.height >= n.parentData.height && (n.size.height = n.parentData.height - f, a && (n.size.width = n.size.height * n.aspectRatio, h = !1)); | |
h || (n.position.left = n.prevPosition.left, n.position.top = n.prevPosition.top, n.size.width = n.prevSize.width, n.size.height = n.prevSize.height) | |
}, | |
stop: function() { | |
var a = d(this).resizable("instance"), | |
c = a.options, | |
f = a.containerOffset, | |
k = a.containerPosition, | |
n = a.containerElement, | |
e = d(a.helper), | |
t = e.offset(), | |
h = e.outerWidth() - a.sizeDiff.width, | |
e = e.outerHeight() - a.sizeDiff.height; | |
a._helper && !c.animate && /relative/.test(n.css("position")) && d(this).css({ | |
left: t.left - k.left - f.left, | |
width: h, | |
height: e | |
}); | |
a._helper && !c.animate && /static/.test(n.css("position")) && d(this).css({ | |
left: t.left - k.left - f.left, | |
width: h, | |
height: e | |
}) | |
} | |
}); | |
d.ui.plugin.add("resizable", "alsoResize", { | |
start: function() { | |
var a = d(this).resizable("instance").options, | |
c = function(a) { | |
d(a).each(function() { | |
var a = d(this); | |
a.data("ui-resizable-alsoresize", { | |
width: parseInt(a.width(), 10), | |
height: parseInt(a.height(), 10), | |
left: parseInt(a.css("left"), 10), | |
top: parseInt(a.css("top"), 10) | |
}) | |
}) | |
}; | |
"object" != typeof a.alsoResize || a.alsoResize.parentNode ? c(a.alsoResize) : a.alsoResize.length ? (a.alsoResize = a.alsoResize[0], c(a.alsoResize)) : d.each(a.alsoResize, function(a) { | |
c(a) | |
}) | |
}, | |
resize: function(a, c) { | |
var f = d(this).resizable("instance"), | |
k = f.options, | |
n = f.originalSize, | |
e = f.originalPosition, | |
t = { | |
height: f.size.height - n.height || 0, | |
width: f.size.width - n.width || 0, | |
top: f.position.top - e.top || 0, | |
left: f.position.left - e.left || 0 | |
}, | |
h = function(a, f) { | |
d(a).each(function() { | |
var a = d(this), | |
k = d(this).data("ui-resizable-alsoresize"), | |
n = {}, | |
e = f && f.length ? f : a.parents(c.originalElement[0]).length ? ["width", "height"] : ["width", "height", "top", "left"]; | |
d.each(e, function(a, d) { | |
var c = (k[d] || 0) + (t[d] || 0); | |
c && 0 <= c && (n[d] = c || null) | |
}); | |
a.css(n) | |
}) | |
}; | |
"object" != typeof k.alsoResize || k.alsoResize.nodeType ? h(k.alsoResize) : d.each(k.alsoResize, function(a, d) { | |
h(a, d) | |
}) | |
}, | |
stop: function() { | |
d(this).removeData("resizable-alsoresize") | |
} | |
}); | |
d.ui.plugin.add("resizable", "ghost", { | |
start: function() { | |
var a = d(this).resizable("instance"), | |
c = a.options, | |
f = a.size; | |
a.ghost = a.originalElement.clone(); | |
a.ghost.css({ | |
opacity: .25, | |
display: "block", | |
position: "relative", | |
height: f.height, | |
width: f.width, | |
margin: 0, | |
left: 0, | |
top: 0 | |
}).addClass("ui-resizable-ghost").addClass("string" == typeof c.ghost ? c.ghost : ""); | |
a.ghost.appendTo(a.helper) | |
}, | |
resize: function() { | |
var a = d(this).resizable("instance"); | |
a.ghost && a.ghost.css({ | |
position: "relative", | |
height: a.size.height, | |
width: a.size.width | |
}) | |
}, | |
stop: function() { | |
var a = d(this).resizable("instance"); | |
a.ghost && a.helper && a.helper.get(0).removeChild(a.ghost.get(0)) | |
} | |
}); | |
d.ui.plugin.add("resizable", "grid", { | |
resize: function() { | |
var a, c = d(this).resizable("instance"), | |
f = c.options, | |
k = c.size, | |
n = c.originalSize, | |
e = c.originalPosition, | |
t = c.axis, | |
h = "number" == typeof f.grid ? [f.grid, f.grid] : f.grid, | |
m = h[0] || 1, | |
w = h[1] || 1, | |
u = Math.round((k.width - n.width) / m) * m, | |
k = Math.round((k.height - n.height) / w) * w, | |
q = n.width + u, | |
p = n.height + k, | |
C = f.maxWidth && q > f.maxWidth, | |
A = f.maxHeight && p > f.maxHeight, | |
W = f.minWidth && f.minWidth > q, | |
ca = f.minHeight && f.minHeight > p; | |
f.grid = h; | |
W && (q += m); | |
ca && (p += w); | |
C && (q -= m); | |
A && (p -= w); | |
/^(se|s|e)$/.test(t) ? (c.size.width = q, c.size.height = p) : /^(ne)$/.test(t) ? (c.size.width = q, c.size.height = p, c.position.top = e.top - k) : /^(sw)$/.test(t) ? (c.size.width = q, c.size.height = p, c.position.left = e.left - u) : ((0 >= p - w || 0 >= q - m) && (a = c._getPaddingPlusBorderDimensions(this)), 0 < p - w ? (c.size.height = p, c.position.top = e.top - k) : (p = w - a.height, c.size.height = p, c.position.top = e.top + n.height - p), 0 < q - m ? (c.size.width = q, c.position.left = e.left - u) : (q = w - a.height, c.size.width = q, c.position.left = e.left + n.width - q)) | |
} | |
}); | |
d.ui.resizable; | |
d.widget("ui.dialog", { | |
version: "1.11.2", | |
options: { | |
appendTo: "body", | |
autoOpen: !0, | |
buttons: [], | |
closeOnEscape: !0, | |
closeText: "Close", | |
dialogClass: "", | |
draggable: !0, | |
hide: null, | |
height: "auto", | |
maxHeight: null, | |
maxWidth: null, | |
minHeight: 150, | |
minWidth: 150, | |
modal: !1, | |
position: { | |
my: "center", | |
at: "center", | |
of: window, | |
collision: "fit", | |
using: function(a) { | |
var c = d(this).css(a).offset().top; | |
0 > c && d(this).css("top", a.top - c) | |
} | |
}, | |
resizable: !0, | |
show: null, | |
title: null, | |
width: 300, | |
beforeClose: null, | |
close: null, | |
drag: null, | |
dragStart: null, | |
dragStop: null, | |
focus: null, | |
open: null, | |
resize: null, | |
resizeStart: null, | |
resizeStop: null | |
}, | |
sizeRelatedOptions: { | |
buttons: !0, | |
height: !0, | |
maxHeight: !0, | |
maxWidth: !0, | |
minHeight: !0, | |
minWidth: !0, | |
width: !0 | |
}, | |
resizableRelatedOptions: { | |
maxHeight: !0, | |
maxWidth: !0, | |
minHeight: !0, | |
minWidth: !0 | |
}, | |
_create: function() { | |
this.originalCss = { | |
display: this.element[0].style.display, | |
width: this.element[0].style.width, | |
minHeight: this.element[0].style.minHeight, | |
maxHeight: this.element[0].style.maxHeight, | |
height: this.element[0].style.height | |
}; | |
this.originalPosition = { | |
parent: this.element.parent(), | |
index: this.element.parent().children().index(this.element) | |
}; | |
this.originalTitle = this.element.attr("title"); | |
this.options.title = this.options.title || this.originalTitle; | |
this._createWrapper(); | |
this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog); | |
this._createTitlebar(); | |
this._createButtonPane(); | |
this.options.draggable && d.fn.draggable && this._makeDraggable(); | |
this.options.resizable && d.fn.resizable && this._makeResizable(); | |
this._isOpen = !1; | |
this._trackFocus() | |
}, | |
_init: function() { | |
this.options.autoOpen && this.open() | |
}, | |
_appendTo: function() { | |
var a = this.options.appendTo; | |
return a && (a.jquery || a.nodeType) ? d(a) : this.document.find(a || "body").eq(0) | |
}, | |
_destroy: function() { | |
var a, d = this.originalPosition; | |
this._destroyOverlay(); | |
this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach(); | |
this.uiDialog.stop(!0, !0).remove(); | |
this.originalTitle && this.element.attr("title", this.originalTitle); | |
a = d.parent.children().eq(d.index); | |
a.length && a[0] !== this.element[0] ? a.before(this.element) : d.parent.append(this.element) | |
}, | |
widget: function() { | |
return this.uiDialog | |
}, | |
disable: d.noop, | |
enable: d.noop, | |
close: function(a) { | |
var c, f = this; | |
if (this._isOpen && !1 !== this._trigger("beforeClose", a)) { | |
if (this._isOpen = !1, this._focusedElement = null, this._destroyOverlay(), this._untrackInstance(), !this.opener.filter(":focusable").focus().length) try { | |
(c = this.document[0].activeElement) && "body" !== c.nodeName.toLowerCase() && d(c).blur() | |
} catch (E) {} | |
this._hide(this.uiDialog, this.options.hide, function() { | |
f._trigger("close", a) | |
}) | |
} | |
}, | |
isOpen: function() { | |
return this._isOpen | |
}, | |
moveToTop: function() { | |
this._moveToTop() | |
}, | |
_moveToTop: function(a, c) { | |
var f = !1, | |
k = this.uiDialog.siblings(".ui-front:visible").map(function() { | |
return +d(this).css("z-index") | |
}).get(), | |
k = Math.max.apply(null, k); | |
return k >= +this.uiDialog.css("z-index") && (this.uiDialog.css("z-index", k + 1), f = !0), f && !c && this._trigger("focus", a), f | |
}, | |
open: function() { | |
var a = this; | |
return this._isOpen ? (this._moveToTop() && this._focusTabbable(), void 0) : (this._isOpen = !0, this.opener = d(this.document[0].activeElement), this._size(), this._position(), this._createOverlay(), this._moveToTop(null, !0), this.overlay && this.overlay.css("z-index", this.uiDialog.css("z-index") - 1), this._show(this.uiDialog, this.options.show, function() { | |
a._focusTabbable(); | |
a._trigger("focus") | |
}), this._makeFocusTarget(), this._trigger("open"), void 0) | |
}, | |
_focusTabbable: function() { | |
var a = this._focusedElement; | |
a || (a = this.element.find("[autofocus]")); | |
a.length || (a = this.element.find(":tabbable")); | |
a.length || (a = this.uiDialogButtonPane.find(":tabbable")); | |
a.length || (a = this.uiDialogTitlebarClose.filter(":tabbable")); | |
a.length || (a = this.uiDialog); | |
a.eq(0).focus() | |
}, | |
_keepFocus: function(a) { | |
function c() { | |
var a = this.document[0].activeElement; | |
this.uiDialog[0] === a || d.contains(this.uiDialog[0], a) || this._focusTabbable() | |
} | |
a.preventDefault(); | |
c.call(this); | |
this._delay(c) | |
}, | |
_createWrapper: function() { | |
this.uiDialog = d("<div>").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front " + this.options.dialogClass).hide().attr({ | |
tabIndex: -1, | |
role: "dialog" | |
}).appendTo(this._appendTo()); | |
this._on(this.uiDialog, { | |
keydown: function(a) { | |
if (this.options.closeOnEscape && !a.isDefaultPrevented() && a.keyCode && a.keyCode === d.ui.keyCode.ESCAPE) return a.preventDefault(), this.close(a), void 0; | |
if (a.keyCode === d.ui.keyCode.TAB && !a.isDefaultPrevented()) { | |
var c = this.uiDialog.find(":tabbable"), | |
f = c.filter(":first"), | |
k = c.filter(":last"); | |
a.target !== k[0] && a.target !== this.uiDialog[0] || a.shiftKey ? a.target !== f[0] && a.target !== this.uiDialog[0] || !a.shiftKey || (this._delay(function() { | |
k.focus() | |
}), a.preventDefault()) : (this._delay(function() { | |
f.focus() | |
}), a.preventDefault()) | |
} | |
}, | |
mousedown: function(a) { | |
this._moveToTop(a) && this._focusTabbable() | |
} | |
}); | |
this.element.find("[aria-describedby]").length || this.uiDialog.attr({ | |
"aria-describedby": this.element.uniqueId().attr("id") | |
}) | |
}, | |
_createTitlebar: function() { | |
var a; | |
this.uiDialogTitlebar = d("<div>").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog); | |
this._on(this.uiDialogTitlebar, { | |
mousedown: function(a) { | |
d(a.target).closest(".ui-dialog-titlebar-close") || this.uiDialog.focus() | |
} | |
}); | |
this.uiDialogTitlebarClose = d("<button type='button'></button>").button({ | |
label: this.options.closeText, | |
icons: { | |
primary: "ui-icon-closethick" | |
}, | |
text: !1 | |
}).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar); | |
this._on(this.uiDialogTitlebarClose, { | |
click: function(a) { | |
a.preventDefault(); | |
this.close(a) | |
} | |
}); | |
a = d("<span>").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar); | |
this._title(a); | |
this.uiDialog.attr({ | |
"aria-labelledby": a.attr("id") | |
}) | |
}, | |
_title: function(a) { | |
this.options.title || a.html(" "); | |
a.text(this.options.title) | |
}, | |
_createButtonPane: function() { | |
this.uiDialogButtonPane = d("<div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"); | |
this.uiButtonSet = d("<div>").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane); | |
this._createButtons() | |
}, | |
_createButtons: function() { | |
var a = this, | |
c = this.options.buttons; | |
return this.uiDialogButtonPane.remove(), this.uiButtonSet.empty(), d.isEmptyObject(c) || d.isArray(c) && !c.length ? (this.uiDialog.removeClass("ui-dialog-buttons"), void 0) : (d.each(c, function(c, f) { | |
var k, n; | |
f = d.isFunction(f) ? { | |
click: f, | |
text: c | |
} : f; | |
f = d.extend({ | |
type: "button" | |
}, f); | |
k = f.click; | |
f.click = function() { | |
k.apply(a.element[0], arguments) | |
}; | |
n = { | |
icons: f.icons, | |
text: f.showText | |
}; | |
delete f.icons; | |
delete f.showText; | |
d("<button></button>", f).button(n).appendTo(a.uiButtonSet) | |
}), this.uiDialog.addClass("ui-dialog-buttons"), this.uiDialogButtonPane.appendTo(this.uiDialog), void 0) | |
}, | |
_makeDraggable: function() { | |
function a(a) { | |
return { | |
position: a.position, | |
offset: a.offset | |
} | |
} | |
var c = this, | |
f = this.options; | |
this.uiDialog.draggable({ | |
cancel: ".ui-dialog-content, .ui-dialog-titlebar-close", | |
handle: ".ui-dialog-titlebar", | |
containment: "document", | |
start: function(f, k) { | |
d(this).addClass("ui-dialog-dragging"); | |
c._blockFrames(); | |
c._trigger("dragStart", f, a(k)) | |
}, | |
drag: function(d, f) { | |
c._trigger("drag", d, a(f)) | |
}, | |
stop: function(k, n) { | |
var e = n.offset.left - c.document.scrollLeft(), | |
t = n.offset.top - c.document.scrollTop(); | |
f.position = { | |
my: "left top", | |
at: "left" + (0 <= e ? "+" : "") + e + " top" + (0 <= t ? "+" : "") + t, | |
of: c.window | |
}; | |
d(this).removeClass("ui-dialog-dragging"); | |
c._unblockFrames(); | |
c._trigger("dragStop", k, a(n)) | |
} | |
}) | |
}, | |
_makeResizable: function() { | |
function a(a) { | |
return { | |
originalPosition: a.originalPosition, | |
originalSize: a.originalSize, | |
position: a.position, | |
size: a.size | |
} | |
} | |
var c = this, | |
f = this.options, | |
k = f.resizable, | |
n = this.uiDialog.css("position"), | |
k = "string" == typeof k ? k : "n,e,s,w,se,sw,ne,nw"; | |
this.uiDialog.resizable({ | |
cancel: ".ui-dialog-content", | |
containment: "document", | |
alsoResize: this.element, | |
maxWidth: f.maxWidth, | |
maxHeight: f.maxHeight, | |
minWidth: f.minWidth, | |
minHeight: this._minHeight(), | |
handles: k, | |
start: function(f, k) { | |
d(this).addClass("ui-dialog-resizing"); | |
c._blockFrames(); | |
c._trigger("resizeStart", f, a(k)) | |
}, | |
resize: function(d, f) { | |
c._trigger("resize", d, a(f)) | |
}, | |
stop: function(k, n) { | |
var e = c.uiDialog.offset(), | |
t = e.left - c.document.scrollLeft(), | |
e = e.top - c.document.scrollTop(); | |
f.height = c.uiDialog.height(); | |
f.width = c.uiDialog.width(); | |
f.position = { | |
my: "left top", | |
at: "left" + (0 <= t ? "+" : "") + t + " top" + (0 <= e ? "+" : "") + e, | |
of: c.window | |
}; | |
d(this).removeClass("ui-dialog-resizing"); | |
c._unblockFrames(); | |
c._trigger("resizeStop", k, a(n)) | |
} | |
}).css("position", n) | |
}, | |
_trackFocus: function() { | |
this._on(this.widget(), { | |
focusin: function(a) { | |
this._makeFocusTarget(); | |
this._focusedElement = d(a.target) | |
} | |
}) | |
}, | |
_makeFocusTarget: function() { | |
this._untrackInstance(); | |
this._trackingInstances().unshift(this) | |
}, | |
_untrackInstance: function() { | |
var a = this._trackingInstances(), | |
c = d.inArray(this, a); - 1 !== c && a.splice(c, 1) | |
}, | |
_trackingInstances: function() { | |
var a = this.document.data("ui-dialog-instances"); | |
return a || (a = [], this.document.data("ui-dialog-instances", a)), a | |
}, | |
_minHeight: function() { | |
var a = this.options; | |
return "auto" === a.height ? a.minHeight : Math.min(a.minHeight, a.height) | |
}, | |
_position: function() { | |
var a = this.uiDialog.is(":visible"); | |
a || this.uiDialog.show(); | |
this.uiDialog.position(this.options.position); | |
a || this.uiDialog.hide() | |
}, | |
_setOptions: function(a) { | |
var c = this, | |
f = !1, | |
k = {}; | |
d.each(a, function(a, d) { | |
c._setOption(a, d); | |
a in c.sizeRelatedOptions && (f = !0); | |
a in c.resizableRelatedOptions && (k[a] = d) | |
}); | |
f && (this._size(), this._position()); | |
this.uiDialog.is(":data(ui-resizable)") && this.uiDialog.resizable("option", k) | |
}, | |
_setOption: function(a, d) { | |
var c, f, k = this.uiDialog; | |
"dialogClass" === a && k.removeClass(this.options.dialogClass).addClass(d); | |
"disabled" !== a && (this._super(a, d), "appendTo" === a && this.uiDialog.appendTo(this._appendTo()), "buttons" === a && this._createButtons(), "closeText" === a && this.uiDialogTitlebarClose.button({ | |
label: "" + d | |
}), "draggable" === a && (c = k.is(":data(ui-draggable)"), c && !d && k.draggable("destroy"), !c && d && this._makeDraggable()), "position" === a && this._position(), "resizable" === a && (f = k.is(":data(ui-resizable)"), f && !d && k.resizable("destroy"), f && "string" == typeof d && k.resizable("option", "handles", d), f || !1 === d || this._makeResizable()), "title" === a && this._title(this.uiDialogTitlebar.find(".ui-dialog-title"))) | |
}, | |
_size: function() { | |
var a, d, c, f = this.options; | |
this.element.show().css({ | |
width: "auto", | |
minHeight: 0, | |
maxHeight: "none", | |
height: 0 | |
}); | |
f.minWidth > f.width && (f.width = f.minWidth); | |
a = this.uiDialog.css({ | |
height: "auto", | |
width: f.width | |
}).outerHeight(); | |
d = Math.max(0, f.minHeight - a); | |
c = "number" == typeof f.maxHeight ? Math.max(0, f.maxHeight - a) : "none"; | |
"auto" === f.height ? this.element.css({ | |
minHeight: d, | |
maxHeight: c, | |
height: "auto" | |
}) : this.element.height(Math.max(0, f.height - a)); | |
this.uiDialog.is(":data(ui-resizable)") && this.uiDialog.resizable("option", "minHeight", this._minHeight()) | |
}, | |
_blockFrames: function() { | |
this.iframeBlocks = this.document.find("iframe").map(function() { | |
var a = d(this); | |
return d("<div>").css({ | |
position: "absolute", | |
width: a.outerWidth(), | |
height: a.outerHeight() | |
}).appendTo(a.parent()).offset(a.offset())[0] | |
}) | |
}, | |
_unblockFrames: function() { | |
this.iframeBlocks && (this.iframeBlocks.remove(), delete this.iframeBlocks) | |
}, | |
_allowInteraction: function(a) { | |
return d(a.target).closest(".ui-dialog").length ? !0 : !!d(a.target).closest(".ui-datepicker").length | |
}, | |
_createOverlay: function() { | |
if (this.options.modal) { | |
var a = !0; | |
this._delay(function() { | |
a = !1 | |
}); | |
this.document.data("ui-dialog-overlays") || this._on(this.document, { | |
focusin: function(d) { | |
a || this._allowInteraction(d) || (d.preventDefault(), this._trackingInstances()[0]._focusTabbable()) | |
} | |
}); | |
this.overlay = d("<div>").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo()); | |
this._on(this.overlay, { | |
mousedown: "_keepFocus" | |
}); | |
this.document.data("ui-dialog-overlays", (this.document.data("ui-dialog-overlays") || 0) + 1) | |
} | |
}, | |
_destroyOverlay: function() { | |
if (this.options.modal && this.overlay) { | |
var a = this.document.data("ui-dialog-overlays") - 1; | |
a ? this.document.data("ui-dialog-overlays", a) : this.document.unbind("focusin").removeData("ui-dialog-overlays"); | |
this.overlay.remove(); | |
this.overlay = null | |
} | |
} | |
}); | |
d.widget("ui.droppable", { | |
version: "1.11.2", | |
widgetEventPrefix: "drop", | |
options: { | |
accept: "*", | |
activeClass: !1, | |
addClasses: !0, | |
greedy: !1, | |
hoverClass: !1, | |
scope: "default", | |
tolerance: "intersect", | |
activate: null, | |
deactivate: null, | |
drop: null, | |
out: null, | |
over: null | |
}, | |
_create: function() { | |
var a, c = this.options, | |
f = c.accept; | |
this.isover = !1; | |
this.isout = !0; | |
this.accept = d.isFunction(f) ? f : function(a) { | |
return a.is(f) | |
}; | |
this.proportions = function() { | |
return arguments.length ? (a = arguments[0], void 0) : a ? a : a = { | |
width: this.element[0].offsetWidth, | |
height: this.element[0].offsetHeight | |
} | |
}; | |
this._addToManager(c.scope); | |
c.addClasses && this.element.addClass("ui-droppable") | |
}, | |
_addToManager: function(a) { | |
d.ui.ddmanager.droppables[a] = d.ui.ddmanager.droppables[a] || []; | |
d.ui.ddmanager.droppables[a].push(this) | |
}, | |
_splice: function(a) { | |
for (var d = 0; a.length > d; d++) a[d] === this && a.splice(d, 1) | |
}, | |
_destroy: function() { | |
this._splice(d.ui.ddmanager.droppables[this.options.scope]); | |
this.element.removeClass("ui-droppable ui-droppable-disabled") | |
}, | |
_setOption: function(a, c) { | |
"accept" === a ? this.accept = d.isFunction(c) ? c : function(a) { | |
return a.is(c) | |
} : "scope" === a && (this._splice(d.ui.ddmanager.droppables[this.options.scope]), this._addToManager(c)); | |
this._super(a, c) | |
}, | |
_activate: function(a) { | |
var c = d.ui.ddmanager.current; | |
this.options.activeClass && this.element.addClass(this.options.activeClass); | |
c && this._trigger("activate", a, this.ui(c)) | |
}, | |
_deactivate: function(a) { | |
var c = d.ui.ddmanager.current; | |
this.options.activeClass && this.element.removeClass(this.options.activeClass); | |
c && this._trigger("deactivate", a, this.ui(c)) | |
}, | |
_over: function(a) { | |
var c = d.ui.ddmanager.current; | |
c && (c.currentItem || c.element)[0] !== this.element[0] && this.accept.call(this.element[0], c.currentItem || c.element) && (this.options.hoverClass && this.element.addClass(this.options.hoverClass), this._trigger("over", a, this.ui(c))) | |
}, | |
_out: function(a) { | |
var c = d.ui.ddmanager.current; | |
c && (c.currentItem || c.element)[0] !== this.element[0] && this.accept.call(this.element[0], c.currentItem || c.element) && (this.options.hoverClass && this.element.removeClass(this.options.hoverClass), this._trigger("out", a, this.ui(c))) | |
}, | |
_drop: function(a, c) { | |
var f = c || d.ui.ddmanager.current, | |
k = !1; | |
return f && (f.currentItem || f.element)[0] !== this.element[0] ? (this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function() { | |
var c = d(this).droppable("instance"); | |
return c.options.greedy && !c.options.disabled && c.options.scope === f.options.scope && c.accept.call(c.element[0], f.currentItem || f.element) && d.ui.intersect(f, d.extend(c, { | |
offset: c.element.offset() | |
}), c.options.tolerance, a) ? (k = !0, !1) : void 0 | |
}), k ? !1 : this.accept.call(this.element[0], f.currentItem || f.element) ? (this.options.activeClass && this.element.removeClass(this.options.activeClass), this.options.hoverClass && this.element.removeClass(this.options.hoverClass), this._trigger("drop", a, this.ui(f)), this.element) : !1) : !1 | |
}, | |
ui: function(a) { | |
return { | |
draggable: a.currentItem || a.element, | |
helper: a.helper, | |
position: a.position, | |
offset: a.positionAbs | |
} | |
} | |
}); | |
d.ui.intersect = function() { | |
return function(a, d, c, f) { | |
if (!d.offset) return !1; | |
var k = (a.positionAbs || a.position.absolute).left + a.margins.left, | |
n = (a.positionAbs || a.position.absolute).top + a.margins.top, | |
e = k + a.helperProportions.width, | |
t = n + a.helperProportions.height, | |
h = d.offset.left, | |
m = d.offset.top, | |
w = h + d.proportions().width, | |
u = m + d.proportions().height; | |
switch (c) { | |
case "fit": | |
return k >= h && w >= e && n >= m && u >= t; | |
case "intersect": | |
return k + a.helperProportions.width / 2 > h && w > e - a.helperProportions.width / 2 && n + a.helperProportions.height / 2 > m && u > t - a.helperProportions.height / 2; | |
case "pointer": | |
a = f.pageY; | |
c = d.proportions().height; | |
if (m = a >= m && m + c > a) f = f.pageX, d = d.proportions().width, m = f >= h && h + d > f; | |
return m; | |
case "touch": | |
return (n >= m && u >= n || t >= m && u >= t || m > n && t > u) && (k >= h && w >= k || e >= h && w >= e || h > k && e > w); | |
default: | |
return !1 | |
} | |
} | |
}(); | |
d.ui.ddmanager = { | |
current: null, | |
droppables: { | |
default: [] | |
}, | |
prepareOffsets: function(a, c) { | |
var f, k, n = d.ui.ddmanager.droppables[a.options.scope] || [], | |
e = c ? c.type : null, | |
t = (a.currentItem || a.element).find(":data(ui-droppable)").addBack(); | |
f = 0; | |
a: for (; n.length > f; f++) | |
if (!(n[f].options.disabled || a && !n[f].accept.call(n[f].element[0], a.currentItem || a.element))) { | |
for (k = 0; t.length > k; k++) | |
if (t[k] === n[f].element[0]) { | |
n[f].proportions().height = 0; | |
continue a | |
} | |
n[f].visible = "none" !== n[f].element.css("display"); | |
n[f].visible && ("mousedown" === e && n[f]._activate.call(n[f], c), n[f].offset = n[f].element.offset(), n[f].proportions({ | |
width: n[f].element[0].offsetWidth, | |
height: n[f].element[0].offsetHeight | |
})) | |
} | |
}, | |
drop: function(a, c) { | |
var f = !1; | |
return d.each((d.ui.ddmanager.droppables[a.options.scope] || []).slice(), function() { | |
this.options && (!this.options.disabled && this.visible && d.ui.intersect(a, this, this.options.tolerance, c) && (f = this._drop.call(this, c) || f), !this.options.disabled && this.visible && this.accept.call(this.element[0], a.currentItem || a.element) && (this.isout = !0, this.isover = !1, this._deactivate.call(this, c))) | |
}), f | |
}, | |
dragStart: function(a, c) { | |
a.element.parentsUntil("body").bind("scroll.droppable", function() { | |
a.options.refreshPositions || d.ui.ddmanager.prepareOffsets(a, c) | |
}) | |
}, | |
drag: function(a, c) { | |
a.options.refreshPositions && d.ui.ddmanager.prepareOffsets(a, c); | |
d.each(d.ui.ddmanager.droppables[a.options.scope] || [], function() { | |
if (!this.options.disabled && !this.greedyChild && this.visible) { | |
var f, k, n, e = d.ui.intersect(a, this, this.options.tolerance, c); | |
(e = !e && this.isover ? "isout" : e && !this.isover ? "isover" : null) && (this.options.greedy && (k = this.options.scope, n = this.element.parents(":data(ui-droppable)").filter(function() { | |
return d(this).droppable("instance").options.scope === k | |
}), n.length && (f = d(n[0]).droppable("instance"), f.greedyChild = "isover" === e)), f && "isover" === e && (f.isover = !1, f.isout = !0, f._out.call(f, c)), this[e] = !0, this["isout" === e ? "isover" : "isout"] = !1, this["isover" === e ? "_over" : "_out"].call(this, c), f && "isout" === e && (f.isout = !1, f.isover = !0, f._over.call(f, c))) | |
} | |
}) | |
}, | |
dragStop: function(a, c) { | |
a.element.parentsUntil("body").unbind("scroll.droppable"); | |
a.options.refreshPositions || d.ui.ddmanager.prepareOffsets(a, c) | |
} | |
}; | |
d.ui.droppable; | |
d.effects = { | |
effect: {} | |
}; | |
(function(a, d) { | |
function c(a, d, c) { | |
var f = w[d.type] || {}; | |
return null == a ? c || !d.def ? null : d.def : (a = f.floor ? ~~a : parseFloat(a), isNaN(a) ? d.def : f.mod ? (a + f.mod) % f.mod : 0 > a ? 0 : a > f.max ? f.max : a) | |
} | |
function f(c) { | |
var f = h(), | |
k = f._rgba = []; | |
return c = c.toLowerCase(), q(t, function(a, n) { | |
var e, t = n.re.exec(c), | |
t = t && n.parse(t), | |
h = n.space || "rgba"; | |
return t ? (e = f[h](t), f[m[h].cache] = e[m[h].cache], k = f._rgba = e._rgba, !1) : d | |
}), k.length ? ("0,0,0,0" === k.join() && a.extend(k, n.transparent), f) : n[c] | |
} | |
function k(a, d, c) { | |
return c = (c + 1) % 1, 1 > 6 * c ? a + 6 * (d - a) * c : 1 > 2 * c ? d : 2 > 3 * c ? a + 6 * (d - a) * (2 / 3 - c) : a | |
} | |
var n, e = /^([\-+])=\s*(\d+\.?\d*)/, | |
t = [{ | |
re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, | |
parse: function(a) { | |
return [a[1], a[2], a[3], a[4]] | |
} | |
}, { | |
re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, | |
parse: function(a) { | |
return [2.55 * a[1], 2.55 * a[2], 2.55 * a[3], a[4]] | |
} | |
}, { | |
re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/, | |
parse: function(a) { | |
return [parseInt(a[1], 16), parseInt(a[2], 16), parseInt(a[3], 16)] | |
} | |
}, { | |
re: /#([a-f0-9])([a-f0-9])([a-f0-9])/, | |
parse: function(a) { | |
return [parseInt(a[1] + a[1], 16), parseInt(a[2] + a[2], 16), parseInt(a[3] + a[3], 16)] | |
} | |
}, { | |
re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, | |
space: "hsla", | |
parse: function(a) { | |
return [a[1], a[2] / 100, a[3] / 100, a[4]] | |
} | |
}], | |
h = a.Color = function(d, c, f, k) { | |
return new a.Color.fn.parse(d, c, f, k) | |
}, | |
m = { | |
rgba: { | |
props: { | |
red: { | |
idx: 0, | |
type: "byte" | |
}, | |
green: { | |
idx: 1, | |
type: "byte" | |
}, | |
blue: { | |
idx: 2, | |
type: "byte" | |
} | |
} | |
}, | |
hsla: { | |
props: { | |
hue: { | |
idx: 0, | |
type: "degrees" | |
}, | |
saturation: { | |
idx: 1, | |
type: "percent" | |
}, | |
lightness: { | |
idx: 2, | |
type: "percent" | |
} | |
} | |
} | |
}, | |
w = { | |
byte: { | |
floor: !0, | |
max: 255 | |
}, | |
percent: { | |
max: 1 | |
}, | |
degrees: { | |
mod: 360, | |
floor: !0 | |
} | |
}, | |
u = h.support = {}, | |
v = a("<p>")[0], | |
q = a.each; | |
v.style.cssText = "background-color:rgba(1,1,1,.5)"; | |
u.rgba = -1 < v.style.backgroundColor.indexOf("rgba"); | |
q(m, function(a, d) { | |
d.cache = "_" + a; | |
d.props.alpha = { | |
idx: 3, | |
type: "percent", | |
def: 1 | |
} | |
}); | |
h.fn = a.extend(h.prototype, { | |
parse: function(k, e, t, w) { | |
if (k === d) return this._rgba = [null, null, null, null], this; | |
(k.jquery || k.nodeType) && (k = a(k).css(e), e = d); | |
var u = this, | |
v = a.type(k), | |
p = this._rgba = []; | |
return e !== d && (k = [k, e, t, w], v = "array"), "string" === v ? this.parse(f(k) || n._default) : "array" === v ? (q(m.rgba.props, function(a, d) { | |
p[d.idx] = c(k[d.idx], d) | |
}), this) : "object" === v ? (k instanceof h ? q(m, function(a, d) { | |
k[d.cache] && (u[d.cache] = k[d.cache].slice()) | |
}) : q(m, function(d, f) { | |
var n = f.cache; | |
q(f.props, function(a, d) { | |
if (!u[n] && f.to) { | |
if ("alpha" === a || null == k[a]) return; | |
u[n] = f.to(u._rgba) | |
} | |
u[n][d.idx] = c(k[a], d, !0) | |
}); | |
u[n] && 0 > a.inArray(null, u[n].slice(0, 3)) && (u[n][3] = 1, f.from && (u._rgba = f.from(u[n]))) | |
}), this) : d | |
}, | |
is: function(a) { | |
var c = h(a), | |
f = !0, | |
k = this; | |
return q(m, function(a, n) { | |
var e, t = c[n.cache]; | |
return t && (e = k[n.cache] || n.to && n.to(k._rgba) || [], q(n.props, function(a, c) { | |
return null != t[c.idx] ? f = t[c.idx] === e[c.idx] : d | |
})), f | |
}), f | |
}, | |
_space: function() { | |
var a = [], | |
d = this; | |
return q(m, function(c, f) { | |
d[f.cache] && a.push(c) | |
}), a.pop() | |
}, | |
transition: function(a, d) { | |
var f = h(a), | |
k = f._space(), | |
n = m[k], | |
e = 0 === this.alpha() ? h("transparent") : this, | |
t = e[n.cache] || n.to(e._rgba), | |
u = t.slice(); | |
return f = f[n.cache], q(n.props, function(a, k) { | |
var n = k.idx, | |
e = t[n], | |
h = f[n], | |
m = w[k.type] || {}; | |
null !== h && (null === e ? u[n] = h : (m.mod && (h - e > m.mod / 2 ? e += m.mod : e - h > m.mod / 2 && (e -= m.mod)), u[n] = c((h - e) * d + e, k))) | |
}), this[k](u) | |
}, | |
blend: function(d) { | |
if (1 === this._rgba[3]) return this; | |
var c = this._rgba.slice(), | |
f = c.pop(), | |
k = h(d)._rgba; | |
return h(a.map(c, function(a, d) { | |
return (1 - f) * k[d] + f * a | |
})) | |
}, | |
toRgbaString: function() { | |
var d = "rgba(", | |
c = a.map(this._rgba, function(a, d) { | |
return null == a ? 2 < d ? 1 : 0 : a | |
}); | |
return 1 === c[3] && (c.pop(), d = "rgb("), d + c.join() + ")" | |
}, | |
toHslaString: function() { | |
var d = "hsla(", | |
c = a.map(this.hsla(), function(a, d) { | |
return null == a && (a = 2 < d ? 1 : 0), d && 3 > d && (a = Math.round(100 * a) + "%"), a | |
}); | |
return 1 === c[3] && (c.pop(), d = "hsl("), d + c.join() + ")" | |
}, | |
toHexString: function(d) { | |
var c = this._rgba.slice(), | |
f = c.pop(); | |
return d && c.push(~~(255 * f)), "#" + a.map(c, function(a) { | |
return a = (a || 0).toString(16), 1 === a.length ? "0" + a : a | |
}).join("") | |
}, | |
toString: function() { | |
return 0 === this._rgba[3] ? "transparent" : this.toRgbaString() | |
} | |
}); | |
h.fn.parse.prototype = h.fn; | |
m.hsla.to = function(a) { | |
if (null == a[0] || null == a[1] || null == a[2]) return [null, null, null, a[3]]; | |
var d, c, f = a[0] / 255, | |
k = a[1] / 255, | |
n = a[2] / 255; | |
a = a[3]; | |
var e = Math.max(f, k, n), | |
t = Math.min(f, k, n), | |
h = e - t, | |
m = e + t, | |
w = .5 * m; | |
return d = t === e ? 0 : f === e ? 60 * (k - n) / h + 360 : k === e ? 60 * (n - f) / h + 120 : 60 * (f - k) / h + 240, c = 0 === h ? 0 : .5 >= w ? h / m : h / (2 - m), [Math.round(d) % 360, c, w, null == a ? 1 : a] | |
}; | |
m.hsla.from = function(a) { | |
if (null == a[0] || null == a[1] || null == a[2]) return [null, null, null, a[3]]; | |
var d = a[0] / 360, | |
c = a[1], | |
f = a[2]; | |
a = a[3]; | |
c = .5 >= f ? f * (1 + c) : f + c - f * c; | |
f = 2 * f - c; | |
return [Math.round(255 * k(f, c, d + 1 / 3)), Math.round(255 * k(f, c, d)), Math.round(255 * k(f, c, d - 1 / 3)), a] | |
}; | |
q(m, function(f, k) { | |
var n = k.props, | |
t = k.cache, | |
m = k.to, | |
w = k.from; | |
h.fn[f] = function(f) { | |
if (m && !this[t] && (this[t] = m(this._rgba)), f === d) return this[t].slice(); | |
var k, e = a.type(f), | |
u = "array" === e || "object" === e ? f : arguments, | |
v = this[t].slice(); | |
return q(n, function(a, d) { | |
var f = u["object" === e ? a : d.idx]; | |
null == f && (f = v[d.idx]); | |
v[d.idx] = c(f, d) | |
}), w ? (k = h(w(v)), k[t] = v, k) : h(v) | |
}; | |
q(n, function(d, c) { | |
h.fn[d] || (h.fn[d] = function(k) { | |
var n, t = a.type(k), | |
h = "alpha" === d ? this._hsla ? "hsla" : "rgba" : f, | |
m = this[h](), | |
w = m[c.idx]; | |
return "undefined" === t ? w : ("function" === t && (k = k.call(this, w), t = a.type(k)), null == k && c.empty ? this : ("string" === t && (n = e.exec(k), n && (k = w + parseFloat(n[2]) * ("+" === n[1] ? 1 : -1))), m[c.idx] = k, this[h](m))) | |
}) | |
}) | |
}); | |
h.hook = function(d) { | |
d = d.split(" "); | |
q(d, function(d, c) { | |
a.cssHooks[c] = { | |
set: function(d, k) { | |
var n, e = ""; | |
if ("transparent" !== k && ("string" !== a.type(k) || (n = f(k)))) { | |
if (k = h(n || k), !u.rgba && 1 !== k._rgba[3]) { | |
for (n = "backgroundColor" === c ? d.parentNode : d; | |
("" === e || "transparent" === e) && n && n.style;) try { | |
e = a.css(n, "backgroundColor"), n = n.parentNode | |
} catch (aa) {} | |
k = k.blend(e && "transparent" !== e ? e : "_default") | |
} | |
k = k.toRgbaString() | |
} | |
try { | |
d.style[c] = k | |
} catch (aa) {} | |
} | |
}; | |
a.fx.step[c] = function(d) { | |
d.colorInit || (d.start = h(d.elem, c), d.end = h(d.end), d.colorInit = !0); | |
a.cssHooks[c].set(d.elem, d.start.transition(d.end, d.pos)) | |
} | |
}) | |
}; | |
h.hook("backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor"); | |
a.cssHooks.borderColor = { | |
expand: function(a) { | |
var d = {}; | |
return q(["Top", "Right", "Bottom", "Left"], function(c, f) { | |
d["border" + f + "Color"] = a | |
}), d | |
} | |
}; | |
n = a.Color.names = { | |
aqua: "#00ffff", | |
black: "#000000", | |
blue: "#0000ff", | |
fuchsia: "#ff00ff", | |
gray: "#808080", | |
green: "#008000", | |
lime: "#00ff00", | |
maroon: "#800000", | |
navy: "#000080", | |
olive: "#808000", | |
purple: "#800080", | |
red: "#ff0000", | |
silver: "#c0c0c0", | |
teal: "#008080", | |
white: "#ffffff", | |
yellow: "#ffff00", | |
transparent: [null, null, null, 0], | |
_default: "#ffffff" | |
} | |
})(d); | |
(function() { | |
function a(a) { | |
var c, f = a.ownerDocument.defaultView ? a.ownerDocument.defaultView.getComputedStyle(a, null) : a.currentStyle, | |
k = {}; | |
if (f && f.length && f[0] && f[f[0]]) | |
for (a = f.length; a--;) c = f[a], "string" == typeof f[c] && (k[d.camelCase(c)] = f[c]); | |
else | |
for (c in f) "string" == typeof f[c] && (k[c] = f[c]); | |
return k | |
} | |
var c = ["add", "remove", "toggle"], | |
f = { | |
border: 1, | |
borderBottom: 1, | |
borderColor: 1, | |
borderLeft: 1, | |
borderRight: 1, | |
borderTop: 1, | |
borderWidth: 1, | |
margin: 1, | |
padding: 1 | |
}; | |
d.each(["borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle"], function(a, c) { | |
d.fx.step[c] = function(a) { | |
("none" !== a.end && !a.setAttr || 1 === a.pos && !a.setAttr) && (d.style(a.elem, c, a.end), a.setAttr = !0) | |
} | |
}); | |
d.fn.addBack || (d.fn.addBack = function(a) { | |
return this.add(null == a ? this.prevObject : this.prevObject.filter(a)) | |
}); | |
d.effects.animateClass = function(k, n, e, t) { | |
var h = d.speed(n, e, t); | |
return this.queue(function() { | |
var n, e = d(this), | |
t = e.attr("class") || "", | |
m = h.children ? e.find("*").addBack() : e, | |
m = m.map(function() { | |
return { | |
el: d(this), | |
start: a(this) | |
} | |
}); | |
n = function() { | |
d.each(c, function(a, d) { | |
k[d] && e[d + "Class"](k[d]) | |
}) | |
}; | |
n(); | |
m = m.map(function() { | |
this.end = a(this.el[0]); | |
var c = this.start, | |
k = this.end, | |
n, e, t = {}; | |
for (n in k) e = k[n], c[n] !== e && (f[n] || (d.fx.step[n] || !isNaN(parseFloat(e))) && (t[n] = e)); | |
return this.diff = t, this | |
}); | |
e.attr("class", t); | |
m = m.map(function() { | |
var a = this, | |
c = d.Deferred(), | |
f = d.extend({}, h, { | |
queue: !1, | |
complete: function() { | |
c.resolve(a) | |
} | |
}); | |
return this.el.animate(this.diff, f), c.promise() | |
}); | |
d.when.apply(d, m.get()).done(function() { | |
n(); | |
d.each(arguments, function() { | |
var a = this.el; | |
d.each(this.diff, function(d) { | |
a.css(d, "") | |
}) | |
}); | |
h.complete.call(e[0]) | |
}) | |
}) | |
}; | |
d.fn.extend({ | |
addClass: function(a) { | |
return function(c, f, k, n) { | |
return f ? d.effects.animateClass.call(this, { | |
add: c | |
}, f, k, n) : a.apply(this, arguments) | |
} | |
}(d.fn.addClass), | |
removeClass: function(a) { | |
return function(c, f, k, n) { | |
return 1 < arguments.length ? d.effects.animateClass.call(this, { | |
remove: c | |
}, f, k, n) : a.apply(this, arguments) | |
} | |
}(d.fn.removeClass), | |
toggleClass: function(a) { | |
return function(c, f, k, n, e) { | |
return "boolean" == typeof f || void 0 === f ? k ? d.effects.animateClass.call(this, f ? { | |
add: c | |
} : { | |
remove: c | |
}, k, n, e) : a.apply(this, arguments) : d.effects.animateClass.call(this, { | |
toggle: c | |
}, f, k, n) | |
} | |
}(d.fn.toggleClass), | |
switchClass: function(a, c, f, k, n) { | |
return d.effects.animateClass.call(this, { | |
add: c, | |
remove: a | |
}, f, k, n) | |
} | |
}) | |
})(); | |
(function() { | |
function a(a, c, f, k) { | |
return d.isPlainObject(a) && (c = a, a = a.effect), a = { | |
effect: a | |
}, null == c && (c = {}), d.isFunction(c) && (k = c, f = null, c = {}), ("number" == typeof c || d.fx.speeds[c]) && (k = f, f = c, c = {}), d.isFunction(f) && (k = f, f = null), c && d.extend(a, c), f = f || c.duration, a.duration = d.fx.off ? 0 : "number" == typeof f ? f : f in d.fx.speeds ? d.fx.speeds[f] : d.fx.speeds._default, a.complete = k || c.complete, a | |
} | |
function c(a) { | |
return !a || "number" == typeof a || d.fx.speeds[a] ? !0 : "string" != typeof a || d.effects.effect[a] ? d.isFunction(a) ? !0 : "object" != typeof a || a.effect ? !1 : !0 : !0 | |
} | |
d.extend(d.effects, { | |
version: "1.11.2", | |
save: function(a, d) { | |
for (var c = 0; d.length > c; c++) null !== d[c] && a.data("ui-effects-" + d[c], a[0].style[d[c]]) | |
}, | |
restore: function(a, d) { | |
var c, f; | |
for (f = 0; d.length > f; f++) null !== d[f] && (c = a.data("ui-effects-" + d[f]), void 0 === c && (c = ""), a.css(d[f], c)) | |
}, | |
setMode: function(a, d) { | |
return "toggle" === d && (d = a.is(":hidden") ? "show" : "hide"), d | |
}, | |
getBaseline: function(a, d) { | |
var c, f; | |
switch (a[0]) { | |
case "top": | |
c = 0; | |
break; | |
case "middle": | |
c = .5; | |
break; | |
case "bottom": | |
c = 1; | |
break; | |
default: | |
c = a[0] / d.height | |
} | |
switch (a[1]) { | |
case "left": | |
f = 0; | |
break; | |
case "center": | |
f = .5; | |
break; | |
case "right": | |
f = 1; | |
break; | |
default: | |
f = a[1] / d.width | |
} | |
return { | |
x: f, | |
y: c | |
} | |
}, | |
createWrapper: function(a) { | |
if (a.parent().is(".ui-effects-wrapper")) return a.parent(); | |
var c = { | |
width: a.outerWidth(!0), | |
height: a.outerHeight(!0), | |
float: a.css("float") | |
}, | |
f = d("<div></div>").addClass("ui-effects-wrapper").css({ | |
fontSize: "100%", | |
background: "transparent", | |
border: "none", | |
margin: 0, | |
padding: 0 | |
}), | |
k = { | |
width: a.width(), | |
height: a.height() | |
}, | |
n = document.activeElement; | |
try { | |
n.id | |
} catch (I) { | |
n = document.body | |
} | |
return a.wrap(f), (a[0] === n || d.contains(a[0], n)) && d(n).focus(), f = a.parent(), "static" === a.css("position") ? (f.css({ | |
position: "relative" | |
}), a.css({ | |
position: "relative" | |
})) : (d.extend(c, { | |
position: a.css("position"), | |
zIndex: a.css("z-index") | |
}), d.each(["top", "left", "bottom", "right"], function(d, f) { | |
c[f] = a.css(f); | |
isNaN(parseInt(c[f], 10)) && (c[f] = "auto") | |
}), a.css({ | |
position: "relative", | |
top: 0, | |
left: 0, | |
right: "auto", | |
bottom: "auto" | |
})), a.css(k), f.css(c).show() | |
}, | |
removeWrapper: function(a) { | |
var c = document.activeElement; | |
return a.parent().is(".ui-effects-wrapper") && (a.parent().replaceWith(a), (a[0] === c || d.contains(a[0], c)) && d(c).focus()), a | |
}, | |
setTransition: function(a, c, f, k) { | |
return k = k || {}, d.each(c, function(d, c) { | |
var n = a.cssUnit(c); | |
0 < n[0] && (k[c] = n[0] * f + n[1]) | |
}), k | |
} | |
}); | |
d.fn.extend({ | |
effect: function() { | |
function c(a) { | |
function c() { | |
d.isFunction(n) && n.call(k[0]); | |
d.isFunction(a) && a() | |
} | |
var k = d(this), | |
n = f.complete, | |
t = f.mode; | |
(k.is(":hidden") ? "hide" === t : "show" === t) ? (k[t](), c()) : e.call(k[0], f, c) | |
} | |
var f = a.apply(this, arguments), | |
k = f.mode, | |
n = f.queue, | |
e = d.effects.effect[f.effect]; | |
return d.fx.off || !e ? k ? this[k](f.duration, f.complete) : this.each(function() { | |
f.complete && f.complete.call(this) | |
}) : !1 === n ? this.each(c) : this.queue(n || "fx", c) | |
}, | |
show: function(d) { | |
return function(f) { | |
if (c(f)) return d.apply(this, arguments); | |
var k = a.apply(this, arguments); | |
return k.mode = "show", this.effect.call(this, k) | |
} | |
}(d.fn.show), | |
hide: function(d) { | |
return function(f) { | |
if (c(f)) return d.apply(this, arguments); | |
var k = a.apply(this, arguments); | |
return k.mode = "hide", this.effect.call(this, k) | |
} | |
}(d.fn.hide), | |
toggle: function(d) { | |
return function(f) { | |
if (c(f) || "boolean" == typeof f) return d.apply(this, arguments); | |
var k = a.apply(this, arguments); | |
return k.mode = "toggle", this.effect.call(this, k) | |
} | |
}(d.fn.toggle), | |
cssUnit: function(a) { | |
var c = this.css(a), | |
f = []; | |
return d.each(["em", "px", "%", "pt"], function(a, d) { | |
0 < c.indexOf(d) && (f = [parseFloat(c), d]) | |
}), f | |
} | |
}) | |
})(); | |
(function() { | |
var a = {}; | |
d.each(["Quad", "Cubic", "Quart", "Quint", "Expo"], function(d, c) { | |
a[c] = function(a) { | |
return Math.pow(a, d + 2) | |
} | |
}); | |
d.extend(a, { | |
Sine: function(a) { | |
return 1 - Math.cos(a * Math.PI / 2) | |
}, | |
Circ: function(a) { | |
return 1 - Math.sqrt(1 - a * a) | |
}, | |
Elastic: function(a) { | |
return 0 === a || 1 === a ? a : -Math.pow(2, 8 * (a - 1)) * Math.sin((80 * (a - 1) - 7.5) * Math.PI / 15) | |
}, | |
Back: function(a) { | |
return a * a * (3 * a - 2) | |
}, | |
Bounce: function(a) { | |
for (var d, c = 4; | |
((d = Math.pow(2, --c)) - 1) / 11 > a;); | |
return 1 / Math.pow(4, 3 - c) - 7.5625 * Math.pow((3 * d - 2) / 22 - a, 2) | |
} | |
}); | |
d.each(a, function(a, c) { | |
d.easing["easeIn" + a] = c; | |
d.easing["easeOut" + a] = function(a) { | |
return 1 - c(1 - a) | |
}; | |
d.easing["easeInOut" + a] = function(a) { | |
return .5 > a ? c(2 * a) / 2 : 1 - c(-2 * a + 2) / 2 | |
} | |
}) | |
})(); | |
d.effects; | |
d.effects.effect.blind = function(a, c) { | |
var f, k, n, e = d(this), | |
t = "position top bottom left right height width".split(" "), | |
h = d.effects.setMode(e, a.mode || "hide"); | |
f = a.direction || "up"; | |
var m = /up|down|vertical/.test(f), | |
w = m ? "height" : "width", | |
u = m ? "top" : "left", | |
v = /up|left|vertical|horizontal/.test(f), | |
q = {}, | |
p = "show" === h; | |
e.parent().is(".ui-effects-wrapper") ? d.effects.save(e.parent(), t) : d.effects.save(e, t); | |
e.show(); | |
f = d.effects.createWrapper(e).css({ | |
overflow: "hidden" | |
}); | |
k = f[w](); | |
n = parseFloat(f.css(u)) || 0; | |
q[w] = p ? k : 0; | |
v || (e.css(m ? "bottom" : "right", 0).css(m ? "top" : "left", "auto").css({ | |
position: "absolute" | |
}), q[u] = p ? n : k + n); | |
p && (f.css(w, 0), v || f.css(u, n + k)); | |
f.animate(q, { | |
duration: a.duration, | |
easing: a.easing, | |
queue: !1, | |
complete: function() { | |
"hide" === h && e.hide(); | |
d.effects.restore(e, t); | |
d.effects.removeWrapper(e); | |
c() | |
} | |
}) | |
}; | |
d.effects.effect.bounce = function(a, c) { | |
var f, k, n, e = d(this), | |
t = "position top bottom left right height width".split(" "), | |
h = d.effects.setMode(e, a.mode || "effect"), | |
m = "hide" === h; | |
f = "show" === h; | |
var w = a.direction || "up", | |
h = a.distance, | |
u = a.times || 5, | |
v = 2 * u + (f || m ? 1 : 0), | |
q = a.duration / v, | |
p = a.easing, | |
C = "up" === w || "down" === w ? "top" : "left", | |
w = "up" === w || "left" === w, | |
A = e.queue(), | |
B = A.length; | |
(f || m) && t.push("opacity"); | |
d.effects.save(e, t); | |
e.show(); | |
d.effects.createWrapper(e); | |
h || (h = e["top" === C ? "outerHeight" : "outerWidth"]() / 3); | |
f && (n = { | |
opacity: 1 | |
}, n[C] = 0, e.css("opacity", 0).css(C, w ? 2 * -h : 2 * h).animate(n, q, p)); | |
m && (h /= Math.pow(2, u - 1)); | |
n = {}; | |
for (f = n[C] = 0; u > f; f++) k = {}, k[C] = (w ? "-=" : "+=") + h, e.animate(k, q, p).animate(n, q, p), h = m ? 2 * h : h / 2; | |
m && (k = { | |
opacity: 0 | |
}, k[C] = (w ? "-=" : "+=") + h, e.animate(k, q, p)); | |
e.queue(function() { | |
m && e.hide(); | |
d.effects.restore(e, t); | |
d.effects.removeWrapper(e); | |
c() | |
}); | |
1 < B && A.splice.apply(A, [1, 0].concat(A.splice(B, v + 1))); | |
e.dequeue() | |
}; | |
d.effects.effect.clip = function(a, c) { | |
var f, k, n = d(this), | |
e = "position top bottom left right height width".split(" "), | |
t = "show" === d.effects.setMode(n, a.mode || "hide"), | |
h = "vertical" === (a.direction || "vertical"), | |
m = h ? "height" : "width", | |
h = h ? "top" : "left", | |
w = {}; | |
d.effects.save(n, e); | |
n.show(); | |
f = d.effects.createWrapper(n).css({ | |
overflow: "hidden" | |
}); | |
f = "IMG" === n[0].tagName ? f : n; | |
k = f[m](); | |
t && (f.css(m, 0), f.css(h, k / 2)); | |
w[m] = t ? k : 0; | |
w[h] = t ? 0 : k / 2; | |
f.animate(w, { | |
queue: !1, | |
duration: a.duration, | |
easing: a.easing, | |
complete: function() { | |
t || n.hide(); | |
d.effects.restore(n, e); | |
d.effects.removeWrapper(n); | |
c() | |
} | |
}) | |
}; | |
d.effects.effect.drop = function(a, c) { | |
var f, k = d(this), | |
n = "position top bottom left right opacity height width".split(" "), | |
e = d.effects.setMode(k, a.mode || "hide"), | |
t = "show" === e; | |
f = a.direction || "left"; | |
var h = "up" === f || "down" === f ? "top" : "left", | |
m = "up" === f || "left" === f ? "pos" : "neg", | |
w = { | |
opacity: t ? 1 : 0 | |
}; | |
d.effects.save(k, n); | |
k.show(); | |
d.effects.createWrapper(k); | |
f = a.distance || k["top" === h ? "outerHeight" : "outerWidth"](!0) / 2; | |
t && k.css("opacity", 0).css(h, "pos" === m ? -f : f); | |
w[h] = (t ? "pos" === m ? "+=" : "-=" : "pos" === m ? "-=" : "+=") + f; | |
k.animate(w, { | |
queue: !1, | |
duration: a.duration, | |
easing: a.easing, | |
complete: function() { | |
"hide" === e && k.hide(); | |
d.effects.restore(k, n); | |
d.effects.removeWrapper(k); | |
c() | |
} | |
}) | |
}; | |
d.effects.effect.explode = function(a, c) { | |
function f() { | |
B.push(this); | |
B.length === w * u && (v.css({ | |
visibility: "visible" | |
}), d(B).remove(), q || v.hide(), c()) | |
} | |
var k, n, e, t, h, m, w = a.pieces ? Math.round(Math.sqrt(a.pieces)) : 3, | |
u = w, | |
v = d(this), | |
q = "show" === d.effects.setMode(v, a.mode || "hide"), | |
p = v.show().css("visibility", "hidden").offset(), | |
C = Math.ceil(v.outerWidth() / u), | |
A = Math.ceil(v.outerHeight() / w), | |
B = []; | |
for (k = 0; w > k; k++) | |
for (t = p.top + k * A, m = k - (w - 1) / 2, n = 0; u > n; n++) e = p.left + n * C, h = n - (u - 1) / 2, v.clone().appendTo("body").wrap("<div></div>").css({ | |
position: "absolute", | |
visibility: "visible", | |
left: -n * C, | |
top: -k * A | |
}).parent().addClass("ui-effects-explode").css({ | |
position: "absolute", | |
overflow: "hidden", | |
width: C, | |
height: A, | |
left: e + (q ? h * C : 0), | |
top: t + (q ? m * A : 0), | |
opacity: q ? 0 : 1 | |
}).animate({ | |
left: e + (q ? 0 : h * C), | |
top: t + (q ? 0 : m * A), | |
opacity: q ? 1 : 0 | |
}, a.duration || 500, a.easing, f) | |
}; | |
d.effects.effect.fade = function(a, c) { | |
var f = d(this), | |
k = d.effects.setMode(f, a.mode || "toggle"); | |
f.animate({ | |
opacity: k | |
}, { | |
queue: !1, | |
duration: a.duration, | |
easing: a.easing, | |
complete: c | |
}) | |
}; | |
d.effects.effect.fold = function(a, c) { | |
var f, k, n = d(this), | |
e = "position top bottom left right height width".split(" "); | |
f = d.effects.setMode(n, a.mode || "hide"); | |
var t = "show" === f, | |
h = "hide" === f, | |
m = a.size || 15, | |
w = /([0-9]+)%/.exec(m), | |
u = !!a.horizFirst, | |
v = (k = t !== u) ? ["width", "height"] : ["height", "width"], | |
q = a.duration / 2, | |
p = {}, | |
C = {}; | |
d.effects.save(n, e); | |
n.show(); | |
f = d.effects.createWrapper(n).css({ | |
overflow: "hidden" | |
}); | |
k = k ? [f.width(), f.height()] : [f.height(), f.width()]; | |
w && (m = parseInt(w[1], 10) / 100 * k[h ? 0 : 1]); | |
t && f.css(u ? { | |
height: 0, | |
width: m | |
} : { | |
height: m, | |
width: 0 | |
}); | |
p[v[0]] = t ? k[0] : m; | |
C[v[1]] = t ? k[1] : 0; | |
f.animate(p, q, a.easing).animate(C, q, a.easing, function() { | |
h && n.hide(); | |
d.effects.restore(n, e); | |
d.effects.removeWrapper(n); | |
c() | |
}) | |
}; | |
d.effects.effect.highlight = function(a, c) { | |
var f = d(this), | |
k = ["backgroundImage", "backgroundColor", "opacity"], | |
n = d.effects.setMode(f, a.mode || "show"), | |
e = { | |
backgroundColor: f.css("backgroundColor") | |
}; | |
"hide" === n && (e.opacity = 0); | |
d.effects.save(f, k); | |
f.show().css({ | |
backgroundImage: "none", | |
backgroundColor: a.color || "#ffff99" | |
}).animate(e, { | |
queue: !1, | |
duration: a.duration, | |
easing: a.easing, | |
complete: function() { | |
"hide" === n && f.hide(); | |
d.effects.restore(f, k); | |
c() | |
} | |
}) | |
}; | |
d.effects.effect.size = function(a, c) { | |
var f, k, n, e, t, h, m = d(this), | |
w = "position top bottom left right width height overflow opacity".split(" "); | |
t = "position top bottom left right overflow opacity".split(" "); | |
var u = ["width", "height", "overflow"], | |
v = ["fontSize"], | |
q = ["borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom"], | |
p = ["borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight"], | |
C = d.effects.setMode(m, a.mode || "effect"), | |
A = a.restore || "effect" !== C, | |
B = a.scale || "both", | |
ha = a.origin || ["middle", "center"], | |
Y = m.css("position"), | |
Z = A ? w : t, | |
R = { | |
height: 0, | |
width: 0, | |
outerHeight: 0, | |
outerWidth: 0 | |
}; | |
"show" === C && m.show(); | |
t = { | |
height: m.height(), | |
width: m.width(), | |
outerHeight: m.outerHeight(), | |
outerWidth: m.outerWidth() | |
}; | |
"toggle" === a.mode && "show" === C ? (m.from = a.to || R, m.to = a.from || t) : (m.from = a.from || ("show" === C ? R : t), m.to = a.to || ("hide" === C ? R : t)); | |
n = m.from.height / t.height; | |
e = m.from.width / t.width; | |
f = m.to.height / t.height; | |
k = m.to.width / t.width; | |
("box" === B || "both" === B) && (n !== f && (Z = Z.concat(q), m.from = d.effects.setTransition(m, q, n, m.from), m.to = d.effects.setTransition(m, q, f, m.to)), e !== k && (Z = Z.concat(p), m.from = d.effects.setTransition(m, p, e, m.from), m.to = d.effects.setTransition(m, p, k, m.to))); | |
("content" === B || "both" === B) && n !== f && (Z = Z.concat(v).concat(u), m.from = d.effects.setTransition(m, v, n, m.from), m.to = d.effects.setTransition(m, v, f, m.to)); | |
d.effects.save(m, Z); | |
m.show(); | |
d.effects.createWrapper(m); | |
m.css("overflow", "hidden").css(m.from); | |
ha && (h = d.effects.getBaseline(ha, t), m.from.top = (t.outerHeight - m.outerHeight()) * h.y, m.from.left = (t.outerWidth - m.outerWidth()) * h.x, m.to.top = (t.outerHeight - m.to.outerHeight) * h.y, m.to.left = (t.outerWidth - m.to.outerWidth) * h.x); | |
m.css(m.from); | |
"content" !== B && "both" !== B || (q = q.concat(["marginTop", "marginBottom"]).concat(v), p = p.concat(["marginLeft", "marginRight"]), u = w.concat(q).concat(p), m.find("*[width]").each(function() { | |
var c = d(this), | |
t = c.height(), | |
h = c.width(), | |
m = c.outerHeight(), | |
w = c.outerWidth(); | |
A && d.effects.save(c, u); | |
c.from = { | |
height: t * n, | |
width: h * e, | |
outerHeight: m * n, | |
outerWidth: w * e | |
}; | |
c.to = { | |
height: t * f, | |
width: h * k, | |
outerHeight: t * f, | |
outerWidth: h * k | |
}; | |
n !== f && (c.from = d.effects.setTransition(c, q, n, c.from), c.to = d.effects.setTransition(c, q, f, c.to)); | |
e !== k && (c.from = d.effects.setTransition(c, p, e, c.from), c.to = d.effects.setTransition(c, p, k, c.to)); | |
c.css(c.from); | |
c.animate(c.to, a.duration, a.easing, function() { | |
A && d.effects.restore(c, u) | |
}) | |
})); | |
m.animate(m.to, { | |
queue: !1, | |
duration: a.duration, | |
easing: a.easing, | |
complete: function() { | |
0 === m.to.opacity && m.css("opacity", m.from.opacity); | |
"hide" === C && m.hide(); | |
d.effects.restore(m, Z); | |
A || ("static" === Y ? m.css({ | |
position: "relative", | |
top: m.to.top, | |
left: m.to.left | |
}) : d.each(["top", "left"], function(a, d) { | |
m.css(d, function(d, c) { | |
var f = parseInt(c, 10), | |
k = a ? m.to.left : m.to.top; | |
return "auto" === c ? k + "px" : f + k + "px" | |
}) | |
})); | |
d.effects.removeWrapper(m); | |
c() | |
} | |
}) | |
}; | |
d.effects.effect.scale = function(a, c) { | |
var f = d(this), | |
k = d.extend(!0, {}, a), | |
n = d.effects.setMode(f, a.mode || "effect"), | |
e = parseInt(a.percent, 10) || (0 === parseInt(a.percent, 10) ? 0 : "hide" === n ? 0 : 100), | |
t = a.direction || "both", | |
h = a.origin, | |
m = { | |
height: f.height(), | |
width: f.width(), | |
outerHeight: f.outerHeight(), | |
outerWidth: f.outerWidth() | |
}, | |
w = "horizontal" !== t ? e / 100 : 1, | |
e = "vertical" !== t ? e / 100 : 1; | |
k.effect = "size"; | |
k.queue = !1; | |
k.complete = c; | |
"effect" !== n && (k.origin = h || ["middle", "center"], k.restore = !0); | |
k.from = a.from || ("show" === n ? { | |
height: 0, | |
width: 0, | |
outerHeight: 0, | |
outerWidth: 0 | |
} : m); | |
k.to = { | |
height: m.height * w, | |
width: m.width * e, | |
outerHeight: m.outerHeight * w, | |
outerWidth: m.outerWidth * e | |
}; | |
k.fade && ("show" === n && (k.from.opacity = 0, k.to.opacity = 1), "hide" === n && (k.from.opacity = 1, k.to.opacity = 0)); | |
f.effect(k) | |
}; | |
d.effects.effect.puff = function(a, c) { | |
var f = d(this), | |
k = d.effects.setMode(f, a.mode || "hide"), | |
n = "hide" === k, | |
e = parseInt(a.percent, 10) || 150, | |
t = e / 100, | |
h = { | |
height: f.height(), | |
width: f.width(), | |
outerHeight: f.outerHeight(), | |
outerWidth: f.outerWidth() | |
}; | |
d.extend(a, { | |
effect: "scale", | |
queue: !1, | |
fade: !0, | |
mode: k, | |
complete: c, | |
percent: n ? e : 100, | |
from: n ? h : { | |
height: h.height * t, | |
width: h.width * t, | |
outerHeight: h.outerHeight * t, | |
outerWidth: h.outerWidth * t | |
} | |
}); | |
f.effect(a) | |
}; | |
d.effects.effect.pulsate = function(a, c) { | |
var f, k = d(this), | |
n = d.effects.setMode(k, a.mode || "show"); | |
f = "show" === n; | |
var e = "hide" === n, | |
n = 2 * (a.times || 5) + (f || "hide" === n ? 1 : 0), | |
t = a.duration / n, | |
h = 0, | |
m = k.queue(), | |
w = m.length; | |
(f || !k.is(":visible")) && (k.css("opacity", 0).show(), h = 1); | |
for (f = 1; n > f; f++) k.animate({ | |
opacity: h | |
}, t, a.easing), h = 1 - h; | |
k.animate({ | |
opacity: h | |
}, t, a.easing); | |
k.queue(function() { | |
e && k.hide(); | |
c() | |
}); | |
1 < w && m.splice.apply(m, [1, 0].concat(m.splice(w, n + 1))); | |
k.dequeue() | |
}; | |
d.effects.effect.shake = function(a, c) { | |
var f, k = d(this), | |
n = "position top bottom left right height width".split(" "), | |
e = d.effects.setMode(k, a.mode || "effect"), | |
t = a.direction || "left"; | |
f = a.distance || 20; | |
var h = a.times || 3, | |
m = 2 * h + 1, | |
w = Math.round(a.duration / m), | |
u = "up" === t || "down" === t ? "top" : "left", | |
v = "up" === t || "left" === t, | |
t = {}, | |
q = {}, | |
p = {}, | |
C = k.queue(), | |
A = C.length; | |
d.effects.save(k, n); | |
k.show(); | |
d.effects.createWrapper(k); | |
t[u] = (v ? "-=" : "+=") + f; | |
q[u] = (v ? "+=" : "-=") + 2 * f; | |
p[u] = (v ? "-=" : "+=") + 2 * f; | |
k.animate(t, w, a.easing); | |
for (f = 1; h > f; f++) k.animate(q, w, a.easing).animate(p, w, a.easing); | |
k.animate(q, w, a.easing).animate(t, w / 2, a.easing).queue(function() { | |
"hide" === e && k.hide(); | |
d.effects.restore(k, n); | |
d.effects.removeWrapper(k); | |
c() | |
}); | |
1 < A && C.splice.apply(C, [1, 0].concat(C.splice(A, m + 1))); | |
k.dequeue() | |
}; | |
d.effects.effect.slide = function(a, c) { | |
var f, k = d(this), | |
n = "position top bottom left right width height".split(" "), | |
e = d.effects.setMode(k, a.mode || "show"), | |
t = "show" === e; | |
f = a.direction || "left"; | |
var h = "up" === f || "down" === f ? "top" : "left", | |
m = "up" === f || "left" === f, | |
w = {}; | |
d.effects.save(k, n); | |
k.show(); | |
f = a.distance || k["top" === h ? "outerHeight" : "outerWidth"](!0); | |
d.effects.createWrapper(k).css({ | |
overflow: "hidden" | |
}); | |
t && k.css(h, m ? isNaN(f) ? "-" + f : -f : f); | |
w[h] = (t ? m ? "+=" : "-=" : m ? "-=" : "+=") + f; | |
k.animate(w, { | |
queue: !1, | |
duration: a.duration, | |
easing: a.easing, | |
complete: function() { | |
"hide" === e && k.hide(); | |
d.effects.restore(k, n); | |
d.effects.removeWrapper(k); | |
c() | |
} | |
}) | |
}; | |
d.effects.effect.transfer = function(a, c) { | |
var f = d(this), | |
k = d(a.to), | |
n = "fixed" === k.css("position"), | |
e = d("body"), | |
t = n ? e.scrollTop() : 0, | |
e = n ? e.scrollLeft() : 0, | |
h = k.offset(), | |
k = { | |
top: h.top - t, | |
left: h.left - e, | |
height: k.innerHeight(), | |
width: k.innerWidth() | |
}, | |
h = f.offset(), | |
m = d("<div class='ui-effects-transfer'></div>").appendTo(document.body).addClass(a.className).css({ | |
top: h.top - t, | |
left: h.left - e, | |
height: f.innerHeight(), | |
width: f.innerWidth(), | |
position: n ? "fixed" : "absolute" | |
}).animate(k, a.duration, a.easing, function() { | |
m.remove(); | |
c() | |
}) | |
}; | |
d.widget("ui.progressbar", { | |
version: "1.11.2", | |
options: { | |
max: 100, | |
value: 0, | |
change: null, | |
complete: null | |
}, | |
min: 0, | |
_create: function() { | |
this.oldValue = this.options.value = this._constrainedValue(); | |
this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({ | |
role: "progressbar", | |
"aria-valuemin": this.min | |
}); | |
this.valueDiv = d("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element); | |
this._refreshValue() | |
}, | |
_destroy: function() { | |
this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); | |
this.valueDiv.remove() | |
}, | |
value: function(a) { | |
return void 0 === a ? this.options.value : (this.options.value = this._constrainedValue(a), this._refreshValue(), void 0) | |
}, | |
_constrainedValue: function(a) { | |
return void 0 === a && (a = this.options.value), this.indeterminate = !1 === a, "number" != typeof a && (a = 0), this.indeterminate ? !1 : Math.min(this.options.max, Math.max(this.min, a)) | |
}, | |
_setOptions: function(a) { | |
var d = a.value; | |
delete a.value; | |
this._super(a); | |
this.options.value = this._constrainedValue(d); | |
this._refreshValue() | |
}, | |
_setOption: function(a, d) { | |
"max" === a && (d = Math.max(this.min, d)); | |
"disabled" === a && this.element.toggleClass("ui-state-disabled", !!d).attr("aria-disabled", d); | |
this._super(a, d) | |
}, | |
_percentage: function() { | |
return this.indeterminate ? 100 : 100 * (this.options.value - this.min) / (this.options.max - this.min) | |
}, | |
_refreshValue: function() { | |
var a = this.options.value, | |
c = this._percentage(); | |
this.valueDiv.toggle(this.indeterminate || a > this.min).toggleClass("ui-corner-right", a === this.options.max).width(c.toFixed(0) + "%"); | |
this.element.toggleClass("ui-progressbar-indeterminate", this.indeterminate); | |
this.indeterminate ? (this.element.removeAttr("aria-valuenow"), this.overlayDiv || (this.overlayDiv = d("<div class='ui-progressbar-overlay'></div>").appendTo(this.valueDiv))) : (this.element.attr({ | |
"aria-valuemax": this.options.max, | |
"aria-valuenow": a | |
}), this.overlayDiv && (this.overlayDiv.remove(), this.overlayDiv = null)); | |
this.oldValue !== a && (this.oldValue = a, this._trigger("change")); | |
a === this.options.max && this._trigger("complete") | |
} | |
}); | |
d.widget("ui.selectable", d.ui.mouse, { | |
version: "1.11.2", | |
options: { | |
appendTo: "body", | |
autoRefresh: !0, | |
distance: 0, | |
filter: "*", | |
tolerance: "touch", | |
selected: null, | |
selecting: null, | |
start: null, | |
stop: null, | |
unselected: null, | |
unselecting: null | |
}, | |
_create: function() { | |
var a, c = this; | |
this.element.addClass("ui-selectable"); | |
this.dragged = !1; | |
this.refresh = function() { | |
a = d(c.options.filter, c.element[0]); | |
a.addClass("ui-selectee"); | |
a.each(function() { | |
var a = d(this), | |
c = a.offset(); | |
d.data(this, "selectable-item", { | |
element: this, | |
$element: a, | |
left: c.left, | |
top: c.top, | |
right: c.left + a.outerWidth(), | |
bottom: c.top + a.outerHeight(), | |
startselected: !1, | |
selected: a.hasClass("ui-selected"), | |
selecting: a.hasClass("ui-selecting"), | |
unselecting: a.hasClass("ui-unselecting") | |
}) | |
}) | |
}; | |
this.refresh(); | |
this.selectees = a.addClass("ui-selectee"); | |
this._mouseInit(); | |
this.helper = d("<div class='ui-selectable-helper'></div>") | |
}, | |
_destroy: function() { | |
this.selectees.removeClass("ui-selectee").removeData("selectable-item"); | |
this.element.removeClass("ui-selectable ui-selectable-disabled"); | |
this._mouseDestroy() | |
}, | |
_mouseStart: function(a) { | |
var c = this, | |
f = this.options; | |
this.opos = [a.pageX, a.pageY]; | |
this.options.disabled || (this.selectees = d(f.filter, this.element[0]), this._trigger("start", a), d(f.appendTo).append(this.helper), this.helper.css({ | |
left: a.pageX, | |
top: a.pageY, | |
width: 0, | |
height: 0 | |
}), f.autoRefresh && this.refresh(), this.selectees.filter(".ui-selected").each(function() { | |
var f = d.data(this, "selectable-item"); | |
f.startselected = !0; | |
a.metaKey || a.ctrlKey || (f.$element.removeClass("ui-selected"), f.selected = !1, f.$element.addClass("ui-unselecting"), f.unselecting = !0, c._trigger("unselecting", a, { | |
unselecting: f.element | |
})) | |
}), d(a.target).parents().addBack().each(function() { | |
var f, k = d.data(this, "selectable-item"); | |
return k ? (f = !a.metaKey && !a.ctrlKey || !k.$element.hasClass("ui-selected"), k.$element.removeClass(f ? "ui-unselecting" : "ui-selected").addClass(f ? "ui-selecting" : "ui-unselecting"), k.unselecting = !f, k.selecting = f, k.selected = f, f ? c._trigger("selecting", a, { | |
selecting: k.element | |
}) : c._trigger("unselecting", a, { | |
unselecting: k.element | |
}), !1) : void 0 | |
})) | |
}, | |
_mouseDrag: function(a) { | |
if (this.dragged = !0, !this.options.disabled) { | |
var c, f = this, | |
k = this.options, | |
n = this.opos[0], | |
e = this.opos[1], | |
t = a.pageX, | |
h = a.pageY; | |
return n > t && (c = t, t = n, n = c), e > h && (c = h, h = e, e = c), this.helper.css({ | |
left: n, | |
top: e, | |
width: t - n, | |
height: h - e | |
}), this.selectees.each(function() { | |
var c = d.data(this, "selectable-item"), | |
m = !1; | |
c && c.element !== f.element[0] && ("touch" === k.tolerance ? m = !(c.left > t || n > c.right || c.top > h || e > c.bottom) : "fit" === k.tolerance && (m = c.left > n && t > c.right && c.top > e && h > c.bottom), m ? (c.selected && (c.$element.removeClass("ui-selected"), c.selected = !1), c.unselecting && (c.$element.removeClass("ui-unselecting"), c.unselecting = !1), c.selecting || (c.$element.addClass("ui-selecting"), c.selecting = !0, f._trigger("selecting", a, { | |
selecting: c.element | |
}))) : (c.selecting && ((a.metaKey || a.ctrlKey) && c.startselected ? (c.$element.removeClass("ui-selecting"), c.selecting = !1, c.$element.addClass("ui-selected"), c.selected = !0) : (c.$element.removeClass("ui-selecting"), c.selecting = !1, c.startselected && (c.$element.addClass("ui-unselecting"), c.unselecting = !0), f._trigger("unselecting", a, { | |
unselecting: c.element | |
}))), c.selected && (a.metaKey || a.ctrlKey || c.startselected || (c.$element.removeClass("ui-selected"), c.selected = !1, c.$element.addClass("ui-unselecting"), c.unselecting = !0, f._trigger("unselecting", a, { | |
unselecting: c.element | |
}))))) | |
}), !1 | |
} | |
}, | |
_mouseStop: function(a) { | |
var c = this; | |
return this.dragged = !1, d(".ui-unselecting", this.element[0]).each(function() { | |
var f = d.data(this, "selectable-item"); | |
f.$element.removeClass("ui-unselecting"); | |
f.unselecting = !1; | |
f.startselected = !1; | |
c._trigger("unselected", a, { | |
unselected: f.element | |
}) | |
}), d(".ui-selecting", this.element[0]).each(function() { | |
var f = d.data(this, "selectable-item"); | |
f.$element.removeClass("ui-selecting").addClass("ui-selected"); | |
f.selecting = !1; | |
f.selected = !0; | |
f.startselected = !0; | |
c._trigger("selected", a, { | |
selected: f.element | |
}) | |
}), this._trigger("stop", a), this.helper.remove(), !1 | |
} | |
}); | |
d.widget("ui.selectmenu", { | |
version: "1.11.2", | |
defaultElement: "<select>", | |
options: { | |
appendTo: null, | |
disabled: null, | |
icons: { | |
button: "ui-icon-triangle-1-s" | |
}, | |
position: { | |
my: "left top", | |
at: "left bottom", | |
collision: "none" | |
}, | |
width: null, | |
change: null, | |
close: null, | |
focus: null, | |
open: null, | |
select: null | |
}, | |
_create: function() { | |
var a = this.element.uniqueId().attr("id"); | |
this.ids = { | |
element: a, | |
button: a + "-button", | |
menu: a + "-menu" | |
}; | |
this._drawButton(); | |
this._drawMenu(); | |
this.options.disabled && this.disable() | |
}, | |
_drawButton: function() { | |
var a = this, | |
c = this.element.attr("tabindex"); | |
this.label = d("label[for='" + this.ids.element + "']").attr("for", this.ids.button); | |
this._on(this.label, { | |
click: function(a) { | |
this.button.focus(); | |
a.preventDefault() | |
} | |
}); | |
this.element.hide(); | |
this.button = d("<span>", { | |
class: "ui-selectmenu-button ui-widget ui-state-default ui-corner-all", | |
tabindex: c || this.options.disabled ? -1 : 0, | |
id: this.ids.button, | |
role: "combobox", | |
"aria-expanded": "false", | |
"aria-autocomplete": "list", | |
"aria-owns": this.ids.menu, | |
"aria-haspopup": "true" | |
}).insertAfter(this.element); | |
d("<span>", { | |
class: "ui-icon " + this.options.icons.button | |
}).prependTo(this.button); | |
this.buttonText = d("<span>", { | |
class: "ui-selectmenu-text" | |
}).appendTo(this.button); | |
this._setText(this.buttonText, this.element.find("option:selected").text()); | |
this._resizeButton(); | |
this._on(this.button, this._buttonEvents); | |
this.button.one("focusin", function() { | |
a.menuItems || a._refreshMenu() | |
}); | |
this._hoverable(this.button); | |
this._focusable(this.button) | |
}, | |
_drawMenu: function() { | |
var a = this; | |
this.menu = d("<ul>", { | |
"aria-hidden": "true", | |
"aria-labelledby": this.ids.button, | |
id: this.ids.menu | |
}); | |
this.menuWrap = d("<div>", { | |
class: "ui-selectmenu-menu ui-front" | |
}).append(this.menu).appendTo(this._appendTo()); | |
this.menuInstance = this.menu.menu({ | |
role: "listbox", | |
select: function(d, c) { | |
d.preventDefault(); | |
a._setSelection(); | |
a._select(c.item.data("ui-selectmenu-item"), d) | |
}, | |
focus: function(d, c) { | |
var f = c.item.data("ui-selectmenu-item"); | |
null != a.focusIndex && f.index !== a.focusIndex && (a._trigger("focus", d, { | |
item: f | |
}), a.isOpen || a._select(f, d)); | |
a.focusIndex = f.index; | |
a.button.attr("aria-activedescendant", a.menuItems.eq(f.index).attr("id")) | |
} | |
}).menu("instance"); | |
this.menu.addClass("ui-corner-bottom").removeClass("ui-corner-all"); | |
this.menuInstance._off(this.menu, "mouseleave"); | |
this.menuInstance._closeOnDocumentClick = function() { | |
return !1 | |
}; | |
this.menuInstance._isDivider = function() { | |
return !1 | |
} | |
}, | |
refresh: function() { | |
this._refreshMenu(); | |
this._setText(this.buttonText, this._getSelectedItem().text()); | |
this.options.width || this._resizeButton() | |
}, | |
_refreshMenu: function() { | |
this.menu.empty(); | |
var a, d = this.element.find("option"); | |
d.length && (this._parseOptions(d), this._renderMenu(this.menu, this.items), this.menuInstance.refresh(), this.menuItems = this.menu.find("li").not(".ui-selectmenu-optgroup"), a = this._getSelectedItem(), this.menuInstance.focus(null, a), this._setAria(a.data("ui-selectmenu-item")), this._setOption("disabled", this.element.prop("disabled"))) | |
}, | |
open: function(a) { | |
this.options.disabled || (this.menuItems ? (this.menu.find(".ui-state-focus").removeClass("ui-state-focus"), this.menuInstance.focus(null, this._getSelectedItem())) : this._refreshMenu(), this.isOpen = !0, this._toggleAttr(), this._resizeMenu(), this._position(), this._on(this.document, this._documentClick), this._trigger("open", a)) | |
}, | |
_position: function() { | |
this.menuWrap.position(d.extend({ | |
of: this.button | |
}, this.options.position)) | |
}, | |
close: function(a) { | |
this.isOpen && (this.isOpen = !1, this._toggleAttr(), this.range = null, this._off(this.document), this._trigger("close", a)) | |
}, | |
widget: function() { | |
return this.button | |
}, | |
menuWidget: function() { | |
return this.menu | |
}, | |
_renderMenu: function(a, c) { | |
var f = this, | |
k = ""; | |
d.each(c, function(c, n) { | |
n.optgroup !== k && (d("<li>", { | |
class: "ui-selectmenu-optgroup ui-menu-divider" + (n.element.parent("optgroup").prop("disabled") ? " ui-state-disabled" : ""), | |
text: n.optgroup | |
}).appendTo(a), k = n.optgroup); | |
f._renderItemData(a, n) | |
}) | |
}, | |
_renderItemData: function(a, d) { | |
return this._renderItem(a, d).data("ui-selectmenu-item", d) | |
}, | |
_renderItem: function(a, c) { | |
var f = d("<li>"); | |
return c.disabled && f.addClass("ui-state-disabled"), this._setText(f, c.label), f.appendTo(a) | |
}, | |
_setText: function(a, d) { | |
d ? a.text(d) : a.html(" ") | |
}, | |
_move: function(a, d) { | |
var c, f = ".ui-menu-item"; | |
this.isOpen ? c = this.menuItems.eq(this.focusIndex) : (c = this.menuItems.eq(this.element[0].selectedIndex), f += ":not(.ui-state-disabled)"); | |
c = "first" === a || "last" === a ? c["first" === a ? "prevAll" : "nextAll"](f).eq(-1) : c[a + "All"](f).eq(0); | |
c.length && this.menuInstance.focus(d, c) | |
}, | |
_getSelectedItem: function() { | |
return this.menuItems.eq(this.element[0].selectedIndex) | |
}, | |
_toggle: function(a) { | |
this[this.isOpen ? "close" : "open"](a) | |
}, | |
_setSelection: function() { | |
var a; | |
this.range && (window.getSelection ? (a = window.getSelection(), a.removeAllRanges(), a.addRange(this.range)) : this.range.select(), this.button.focus()) | |
}, | |
_documentClick: { | |
mousedown: function(a) { | |
this.isOpen && (d(a.target).closest(".ui-selectmenu-menu, #" + this.ids.button).length || this.close(a)) | |
} | |
}, | |
_buttonEvents: { | |
mousedown: function() { | |
var a; | |
window.getSelection ? (a = window.getSelection(), a.rangeCount && (this.range = a.getRangeAt(0))) : this.range = document.selection.createRange() | |
}, | |
click: function(a) { | |
this._setSelection(); | |
this._toggle(a) | |
}, | |
keydown: function(a) { | |
var c = !0; | |
switch (a.keyCode) { | |
case d.ui.keyCode.TAB: | |
case d.ui.keyCode.ESCAPE: | |
this.close(a); | |
c = !1; | |
break; | |
case d.ui.keyCode.ENTER: | |
this.isOpen && this._selectFocusedItem(a); | |
break; | |
case d.ui.keyCode.UP: | |
a.altKey ? this._toggle(a) : this._move("prev", a); | |
break; | |
case d.ui.keyCode.DOWN: | |
a.altKey ? this._toggle(a) : this._move("next", a); | |
break; | |
case d.ui.keyCode.SPACE: | |
this.isOpen ? this._selectFocusedItem(a) : this._toggle(a); | |
break; | |
case d.ui.keyCode.LEFT: | |
this._move("prev", a); | |
break; | |
case d.ui.keyCode.RIGHT: | |
this._move("next", a); | |
break; | |
case d.ui.keyCode.HOME: | |
case d.ui.keyCode.PAGE_UP: | |
this._move("first", a); | |
break; | |
case d.ui.keyCode.END: | |
case d.ui.keyCode.PAGE_DOWN: | |
this._move("last", a); | |
break; | |
default: | |
this.menu.trigger(a), c = !1 | |
} | |
c && a.preventDefault() | |
} | |
}, | |
_selectFocusedItem: function(a) { | |
var d = this.menuItems.eq(this.focusIndex); | |
d.hasClass("ui-state-disabled") || this._select(d.data("ui-selectmenu-item"), a) | |
}, | |
_select: function(a, d) { | |
var c = this.element[0].selectedIndex; | |
this.element[0].selectedIndex = a.index; | |
this._setText(this.buttonText, a.label); | |
this._setAria(a); | |
this._trigger("select", d, { | |
item: a | |
}); | |
a.index !== c && this._trigger("change", d, { | |
item: a | |
}); | |
this.close(d) | |
}, | |
_setAria: function(a) { | |
a = this.menuItems.eq(a.index).attr("id"); | |
this.button.attr({ | |
"aria-labelledby": a, | |
"aria-activedescendant": a | |
}); | |
this.menu.attr("aria-activedescendant", a) | |
}, | |
_setOption: function(a, d) { | |
"icons" === a && this.button.find("span.ui-icon").removeClass(this.options.icons.button).addClass(d.button); | |
this._super(a, d); | |
"appendTo" === a && this.menuWrap.appendTo(this._appendTo()); | |
"disabled" === a && (this.menuInstance.option("disabled", d), this.button.toggleClass("ui-state-disabled", d).attr("aria-disabled", d), this.element.prop("disabled", d), d ? (this.button.attr("tabindex", -1), this.close()) : this.button.attr("tabindex", 0)); | |
"width" === a && this._resizeButton() | |
}, | |
_appendTo: function() { | |
var a = this.options.appendTo; | |
return a && (a = a.jquery || a.nodeType ? d(a) : this.document.find(a).eq(0)), a && a[0] || (a = this.element.closest(".ui-front")), a.length || (a = this.document[0].body), a | |
}, | |
_toggleAttr: function() { | |
this.button.toggleClass("ui-corner-top", this.isOpen).toggleClass("ui-corner-all", !this.isOpen).attr("aria-expanded", this.isOpen); | |
this.menuWrap.toggleClass("ui-selectmenu-open", this.isOpen); | |
this.menu.attr("aria-hidden", !this.isOpen) | |
}, | |
_resizeButton: function() { | |
var a = this.options.width; | |
a || (a = this.element.show().outerWidth(), this.element.hide()); | |
this.button.outerWidth(a) | |
}, | |
_resizeMenu: function() { | |
this.menu.outerWidth(Math.max(this.button.outerWidth(), this.menu.width("").outerWidth() + 1)) | |
}, | |
_getCreateOptions: function() { | |
return { | |
disabled: this.element.prop("disabled") | |
} | |
}, | |
_parseOptions: function(a) { | |
var c = []; | |
a.each(function(a, f) { | |
var k = d(f), | |
n = k.parent("optgroup"); | |
c.push({ | |
element: k, | |
index: a, | |
value: k.attr("value"), | |
label: k.text(), | |
optgroup: n.attr("label") || "", | |
disabled: n.prop("disabled") || k.prop("disabled") | |
}) | |
}); | |
this.items = c | |
}, | |
_destroy: function() { | |
this.menuWrap.remove(); | |
this.button.remove(); | |
this.element.show(); | |
this.element.removeUniqueId(); | |
this.label.attr("for", this.ids.element) | |
} | |
}); | |
d.widget("ui.slider", d.ui.mouse, { | |
version: "1.11.2", | |
widgetEventPrefix: "slide", | |
options: { | |
animate: !1, | |
distance: 0, | |
max: 100, | |
min: 0, | |
orientation: "horizontal", | |
range: !1, | |
step: 1, | |
value: 0, | |
values: null, | |
change: null, | |
slide: null, | |
start: null, | |
stop: null | |
}, | |
numPages: 5, | |
_create: function() { | |
this._mouseSliding = this._keySliding = !1; | |
this._animateOff = !0; | |
this._handleIndex = null; | |
this._detectOrientation(); | |
this._mouseInit(); | |
this._calculateNewMax(); | |
this.element.addClass("ui-slider ui-slider-" + this.orientation + " ui-widget ui-widget-content ui-corner-all"); | |
this._refresh(); | |
this._setOption("disabled", this.options.disabled); | |
this._animateOff = !1 | |
}, | |
_refresh: function() { | |
this._createRange(); | |
this._createHandles(); | |
this._setupEvents(); | |
this._refreshValue() | |
}, | |
_createHandles: function() { | |
var a, c; | |
a = this.options; | |
var f = this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"), | |
k = []; | |
c = a.values && a.values.length || 1; | |
f.length > c && (f.slice(c).remove(), f = f.slice(0, c)); | |
for (a = f.length; c > a; a++) k.push("<span class='ui-slider-handle ui-state-default ui-corner-all' tabindex='0'></span>"); | |
this.handles = f.add(d(k.join("")).appendTo(this.element)); | |
this.handle = this.handles.eq(0); | |
this.handles.each(function(a) { | |
d(this).data("ui-slider-handle-index", a) | |
}) | |
}, | |
_createRange: function() { | |
var a = this.options, | |
c = ""; | |
a.range ? (!0 === a.range && (a.values ? a.values.length && 2 !== a.values.length ? a.values = [a.values[0], a.values[0]] : d.isArray(a.values) && (a.values = a.values.slice(0)) : a.values = [this._valueMin(), this._valueMin()]), this.range && this.range.length ? this.range.removeClass("ui-slider-range-min ui-slider-range-max").css({ | |
left: "", | |
bottom: "" | |
}) : (this.range = d("<div></div>").appendTo(this.element), c = "ui-slider-range ui-widget-header ui-corner-all"), this.range.addClass(c + ("min" === a.range || "max" === a.range ? " ui-slider-range-" + a.range : ""))) : (this.range && this.range.remove(), this.range = null) | |
}, | |
_setupEvents: function() { | |
this._off(this.handles); | |
this._on(this.handles, this._handleEvents); | |
this._hoverable(this.handles); | |
this._focusable(this.handles) | |
}, | |
_destroy: function() { | |
this.handles.remove(); | |
this.range && this.range.remove(); | |
this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all"); | |
this._mouseDestroy() | |
}, | |
_mouseCapture: function(a) { | |
var c, f, k, n, e, t, h, m, w = this, | |
u = this.options; | |
return u.disabled ? !1 : (this.elementSize = { | |
width: this.element.outerWidth(), | |
height: this.element.outerHeight() | |
}, this.elementOffset = this.element.offset(), c = { | |
x: a.pageX, | |
y: a.pageY | |
}, f = this._normValueFromMouse(c), k = this._valueMax() - this._valueMin() + 1, this.handles.each(function(a) { | |
var c = Math.abs(f - w.values(a)); | |
(k > c || k === c && (a === w._lastChangedValue || w.values(a) === u.min)) && (k = c, n = d(this), e = a) | |
}), t = this._start(a, e), !1 === t ? !1 : (this._mouseSliding = !0, this._handleIndex = e, n.addClass("ui-state-active").focus(), h = n.offset(), m = !d(a.target).parents().addBack().is(".ui-slider-handle"), this._clickOffset = m ? { | |
left: 0, | |
top: 0 | |
} : { | |
left: a.pageX - h.left - n.width() / 2, | |
top: a.pageY - h.top - n.height() / 2 - (parseInt(n.css("borderTopWidth"), 10) || 0) - (parseInt(n.css("borderBottomWidth"), 10) || 0) + (parseInt(n.css("marginTop"), 10) || 0) | |
}, this.handles.hasClass("ui-state-hover") || this._slide(a, e, f), this._animateOff = !0, !0)) | |
}, | |
_mouseStart: function() { | |
return !0 | |
}, | |
_mouseDrag: function(a) { | |
var d = this._normValueFromMouse({ | |
x: a.pageX, | |
y: a.pageY | |
}); | |
return this._slide(a, this._handleIndex, d), !1 | |
}, | |
_mouseStop: function(a) { | |
return this.handles.removeClass("ui-state-active"), this._mouseSliding = !1, this._stop(a, this._handleIndex), this._change(a, this._handleIndex), this._handleIndex = null, this._clickOffset = null, this._animateOff = !1, !1 | |
}, | |
_detectOrientation: function() { | |
this.orientation = "vertical" === this.options.orientation ? "vertical" : "horizontal" | |
}, | |
_normValueFromMouse: function(a) { | |
var d, c, f, k, n; | |
return "horizontal" === this.orientation ? (d = this.elementSize.width, c = a.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0)) : (d = this.elementSize.height, c = a.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0)), f = c / d, 1 < f && (f = 1), 0 > f && (f = 0), "vertical" === this.orientation && (f = 1 - f), k = this._valueMax() - this._valueMin(), n = this._valueMin() + f * k, this._trimAlignValue(n) | |
}, | |
_start: function(a, d) { | |
var c = { | |
handle: this.handles[d], | |
value: this.value() | |
}; | |
return this.options.values && this.options.values.length && (c.value = this.values(d), c.values = this.values()), this._trigger("start", a, c) | |
}, | |
_slide: function(a, d, c) { | |
var f, k, n; | |
this.options.values && this.options.values.length ? (f = this.values(d ? 0 : 1), 2 === this.options.values.length && !0 === this.options.range && (0 === d && c > f || 1 === d && f > c) && (c = f), c !== this.values(d) && (k = this.values(), k[d] = c, n = this._trigger("slide", a, { | |
handle: this.handles[d], | |
value: c, | |
values: k | |
}), this.values(d ? 0 : 1), !1 !== n && this.values(d, c))) : c !== this.value() && (n = this._trigger("slide", a, { | |
handle: this.handles[d], | |
value: c | |
}), !1 !== n && this.value(c)) | |
}, | |
_stop: function(a, d) { | |
var c = { | |
handle: this.handles[d], | |
value: this.value() | |
}; | |
this.options.values && this.options.values.length && (c.value = this.values(d), c.values = this.values()); | |
this._trigger("stop", a, c) | |
}, | |
_change: function(a, d) { | |
if (!this._keySliding && !this._mouseSliding) { | |
var c = { | |
handle: this.handles[d], | |
value: this.value() | |
}; | |
this.options.values && this.options.values.length && (c.value = this.values(d), c.values = this.values()); | |
this._lastChangedValue = d; | |
this._trigger("change", a, c) | |
} | |
}, | |
value: function(a) { | |
return arguments.length ? (this.options.value = this._trimAlignValue(a), this._refreshValue(), this._change(null, 0), void 0) : this._value() | |
}, | |
values: function(a, c) { | |
var f, k, n; | |
if (1 < arguments.length) return this.options.values[a] = this._trimAlignValue(c), this._refreshValue(), this._change(null, a), void 0; | |
if (!arguments.length) return this._values(); | |
if (!d.isArray(arguments[0])) return this.options.values && this.options.values.length ? this._values(a) : this.value(); | |
f = this.options.values; | |
k = arguments[0]; | |
for (n = 0; f.length > n; n += 1) f[n] = this._trimAlignValue(k[n]), this._change(null, n); | |
this._refreshValue() | |
}, | |
_setOption: function(a, c) { | |
var f, k = 0; | |
switch ("range" === a && !0 === this.options.range && ("min" === c ? (this.options.value = this._values(0), this.options.values = null) : "max" === c && (this.options.value = this._values(this.options.values.length - 1), this.options.values = null)), d.isArray(this.options.values) && (k = this.options.values.length), "disabled" === a && this.element.toggleClass("ui-state-disabled", !!c), this._super(a, c), a) { | |
case "orientation": | |
this._detectOrientation(); | |
this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-" + this.orientation); | |
this._refreshValue(); | |
this.handles.css("horizontal" === c ? "bottom" : "left", ""); | |
break; | |
case "value": | |
this._animateOff = !0; | |
this._refreshValue(); | |
this._change(null, 0); | |
this._animateOff = !1; | |
break; | |
case "values": | |
this._animateOff = !0; | |
this._refreshValue(); | |
for (f = 0; k > f; f += 1) this._change(null, f); | |
this._animateOff = !1; | |
break; | |
case "step": | |
case "min": | |
case "max": | |
this._animateOff = !0; | |
this._calculateNewMax(); | |
this._refreshValue(); | |
this._animateOff = !1; | |
break; | |
case "range": | |
this._animateOff = !0, this._refresh(), this._animateOff = !1 | |
} | |
}, | |
_value: function() { | |
return this._trimAlignValue(this.options.value) | |
}, | |
_values: function(a) { | |
var d, c; | |
if (arguments.length) return d = this.options.values[a], this._trimAlignValue(d); | |
if (this.options.values && this.options.values.length) { | |
d = this.options.values.slice(); | |
for (c = 0; d.length > c; c += 1) d[c] = this._trimAlignValue(d[c]); | |
return d | |
} | |
return [] | |
}, | |
_trimAlignValue: function(a) { | |
if (this._valueMin() >= a) return this._valueMin(); | |
if (a >= this._valueMax()) return this._valueMax(); | |
var d = 0 < this.options.step ? this.options.step : 1, | |
c = (a - this._valueMin()) % d; | |
a -= c; | |
return 2 * Math.abs(c) >= d && (a += 0 < c ? d : -d), parseFloat(a.toFixed(5)) | |
}, | |
_calculateNewMax: function() { | |
var a = (this.options.max - this._valueMin()) % this.options.step; | |
this.max = this.options.max - a | |
}, | |
_valueMin: function() { | |
return this.options.min | |
}, | |
_valueMax: function() { | |
return this.max | |
}, | |
_refreshValue: function() { | |
var a, c, f, k, n, e = this.options.range, | |
t = this.options, | |
h = this, | |
m = this._animateOff ? !1 : t.animate, | |
w = {}; | |
this.options.values && this.options.values.length ? this.handles.each(function(f) { | |
c = 100 * ((h.values(f) - h._valueMin()) / (h._valueMax() - h._valueMin())); | |
w["horizontal" === h.orientation ? "left" : "bottom"] = c + "%"; | |
d(this).stop(1, 1)[m ? "animate" : "css"](w, t.animate); | |
!0 === h.options.range && ("horizontal" === h.orientation ? (0 === f && h.range.stop(1, 1)[m ? "animate" : "css"]({ | |
left: c + "%" | |
}, t.animate), 1 === f && h.range[m ? "animate" : "css"]({ | |
width: c - a + "%" | |
}, { | |
queue: !1, | |
duration: t.animate | |
})) : (0 === f && h.range.stop(1, 1)[m ? "animate" : "css"]({ | |
bottom: c + "%" | |
}, t.animate), 1 === f && h.range[m ? "animate" : "css"]({ | |
height: c - a + "%" | |
}, { | |
queue: !1, | |
duration: t.animate | |
}))); | |
a = c | |
}) : (f = this.value(), k = this._valueMin(), n = this._valueMax(), c = n !== k ? (f - k) / (n - k) * 100 : 0, w["horizontal" === this.orientation ? "left" : "bottom"] = c + "%", this.handle.stop(1, 1)[m ? "animate" : "css"](w, t.animate), "min" === e && "horizontal" === this.orientation && this.range.stop(1, 1)[m ? "animate" : "css"]({ | |
width: c + "%" | |
}, t.animate), "max" === e && "horizontal" === this.orientation && this.range[m ? "animate" : "css"]({ | |
width: 100 - c + "%" | |
}, { | |
queue: !1, | |
duration: t.animate | |
}), "min" === e && "vertical" === this.orientation && this.range.stop(1, 1)[m ? "animate" : "css"]({ | |
height: c + "%" | |
}, t.animate), "max" === e && "vertical" === this.orientation && this.range[m ? "animate" : "css"]({ | |
height: 100 - c + "%" | |
}, { | |
queue: !1, | |
duration: t.animate | |
})) | |
}, | |
_handleEvents: { | |
keydown: function(a) { | |
var c, f, k, n = d(a.target).data("ui-slider-handle-index"); | |
switch (a.keyCode) { | |
case d.ui.keyCode.HOME: | |
case d.ui.keyCode.END: | |
case d.ui.keyCode.PAGE_UP: | |
case d.ui.keyCode.PAGE_DOWN: | |
case d.ui.keyCode.UP: | |
case d.ui.keyCode.RIGHT: | |
case d.ui.keyCode.DOWN: | |
case d.ui.keyCode.LEFT: | |
if (a.preventDefault(), !this._keySliding && (this._keySliding = !0, d(a.target).addClass("ui-state-active"), c = this._start(a, n), !1 === c)) return | |
} | |
switch (k = this.options.step, c = f = this.options.values && this.options.values.length ? this.values(n) : this.value(), a.keyCode) { | |
case d.ui.keyCode.HOME: | |
f = this._valueMin(); | |
break; | |
case d.ui.keyCode.END: | |
f = this._valueMax(); | |
break; | |
case d.ui.keyCode.PAGE_UP: | |
f = this._trimAlignValue(c + (this._valueMax() - this._valueMin()) / this.numPages); | |
break; | |
case d.ui.keyCode.PAGE_DOWN: | |
f = this._trimAlignValue(c - (this._valueMax() - this._valueMin()) / this.numPages); | |
break; | |
case d.ui.keyCode.UP: | |
case d.ui.keyCode.RIGHT: | |
if (c === this._valueMax()) return; | |
f = this._trimAlignValue(c + k); | |
break; | |
case d.ui.keyCode.DOWN: | |
case d.ui.keyCode.LEFT: | |
if (c === this._valueMin()) return; | |
f = this._trimAlignValue(c - k) | |
} | |
this._slide(a, n, f) | |
}, | |
keyup: function(a) { | |
var c = d(a.target).data("ui-slider-handle-index"); | |
this._keySliding && (this._keySliding = !1, this._stop(a, c), this._change(a, c), d(a.target).removeClass("ui-state-active")) | |
} | |
} | |
}); | |
d.widget("ui.sortable", d.ui.mouse, { | |
version: "1.11.2", | |
widgetEventPrefix: "sort", | |
ready: !1, | |
options: { | |
appendTo: "parent", | |
axis: !1, | |
connectWith: !1, | |
containment: !1, | |
cursor: "auto", | |
cursorAt: !1, | |
dropOnEmpty: !0, | |
forcePlaceholderSize: !1, | |
forceHelperSize: !1, | |
grid: !1, | |
handle: !1, | |
helper: "original", | |
items: "> *", | |
opacity: !1, | |
placeholder: !1, | |
revert: !1, | |
scroll: !0, | |
scrollSensitivity: 20, | |
scrollSpeed: 20, | |
scope: "default", | |
tolerance: "intersect", | |
zIndex: 1e3, | |
activate: null, | |
beforeStop: null, | |
change: null, | |
deactivate: null, | |
out: null, | |
over: null, | |
receive: null, | |
remove: null, | |
sort: null, | |
start: null, | |
stop: null, | |
update: null | |
}, | |
_isOverAxis: function(a, d, c) { | |
return a >= d && d + c > a | |
}, | |
_isFloating: function(a) { | |
return /left|right/.test(a.css("float")) || /inline|table-cell/.test(a.css("display")) | |
}, | |
_create: function() { | |
var a = this.options; | |
this.containerCache = {}; | |
this.element.addClass("ui-sortable"); | |
this.refresh(); | |
this.floating = this.items.length ? "x" === a.axis || this._isFloating(this.items[0].item) : !1; | |
this.offset = this.element.offset(); | |
this._mouseInit(); | |
this._setHandleClassName(); | |
this.ready = !0 | |
}, | |
_setOption: function(a, d) { | |
this._super(a, d); | |
"handle" === a && this._setHandleClassName() | |
}, | |
_setHandleClassName: function() { | |
this.element.find(".ui-sortable-handle").removeClass("ui-sortable-handle"); | |
d.each(this.items, function() { | |
(this.instance.options.handle ? this.item.find(this.instance.options.handle) : this.item).addClass("ui-sortable-handle") | |
}) | |
}, | |
_destroy: function() { | |
this.element.removeClass("ui-sortable ui-sortable-disabled").find(".ui-sortable-handle").removeClass("ui-sortable-handle"); | |
this._mouseDestroy(); | |
for (var a = this.items.length - 1; 0 <= a; a--) this.items[a].item.removeData(this.widgetName + "-item"); | |
return this | |
}, | |
_mouseCapture: function(a, c) { | |
var f = null, | |
k = !1, | |
n = this; | |
return this.reverting ? !1 : this.options.disabled || "static" === this.options.type ? !1 : (this._refreshItems(a), d(a.target).parents().each(function() { | |
return d.data(this, n.widgetName + "-item") === n ? (f = d(this), !1) : void 0 | |
}), d.data(a.target, n.widgetName + "-item") === n && (f = d(a.target)), f ? !this.options.handle || c || (d(this.options.handle, f).find("*").addBack().each(function() { | |
this === a.target && (k = !0) | |
}), k) ? (this.currentItem = f, this._removeCurrentsFromItems(), !0) : !1 : !1) | |
}, | |
_mouseStart: function(a, c, f) { | |
var k; | |
c = this.options; | |
if (this.currentContainer = this, this.refreshPositions(), this.helper = this._createHelper(a), this._cacheHelperProportions(), this._cacheMargins(), this.scrollParent = this.helper.scrollParent(), this.offset = this.currentItem.offset(), this.offset = { | |
top: this.offset.top - this.margins.top, | |
left: this.offset.left - this.margins.left | |
}, d.extend(this.offset, { | |
click: { | |
left: a.pageX - this.offset.left, | |
top: a.pageY - this.offset.top | |
}, | |
parent: this._getParentOffset(), | |
relative: this._getRelativeOffset() | |
}), this.helper.css("position", "absolute"), this.cssPosition = this.helper.css("position"), this.originalPosition = this._generatePosition(a), this.originalPageX = a.pageX, this.originalPageY = a.pageY, c.cursorAt && this._adjustOffsetFromHelper(c.cursorAt), this.domPosition = { | |
prev: this.currentItem.prev()[0], | |
parent: this.currentItem.parent()[0] | |
}, this.helper[0] !== this.currentItem[0] && this.currentItem.hide(), this._createPlaceholder(), c.containment && this._setContainment(), c.cursor && "auto" !== c.cursor && (k = this.document.find("body"), this.storedCursor = k.css("cursor"), k.css("cursor", c.cursor), this.storedStylesheet = d("<style>*{ cursor: " + c.cursor + " !important; }</style>").appendTo(k)), c.opacity && (this.helper.css("opacity") && (this._storedOpacity = this.helper.css("opacity")), this.helper.css("opacity", c.opacity)), c.zIndex && (this.helper.css("zIndex") && (this._storedZIndex = this.helper.css("zIndex")), this.helper.css("zIndex", c.zIndex)), this.scrollParent[0] !== document && "HTML" !== this.scrollParent[0].tagName && (this.overflowOffset = this.scrollParent.offset()), this._trigger("start", a, this._uiHash()), this._preserveHelperProportions || this._cacheHelperProportions(), !f) | |
for (f = this.containers.length - 1; 0 <= f; f--) this.containers[f]._trigger("activate", a, this._uiHash(this)); | |
return d.ui.ddmanager && (d.ui.ddmanager.current = this), d.ui.ddmanager && !c.dropBehaviour && d.ui.ddmanager.prepareOffsets(this, a), this.dragging = !0, this.helper.addClass("ui-sortable-helper"), this._mouseDrag(a), !0 | |
}, | |
_mouseDrag: function(a) { | |
var c, f, k, n; | |
c = this.options; | |
var e = !1; | |
this.position = this._generatePosition(a); | |
this.positionAbs = this._convertPositionTo("absolute"); | |
this.lastPositionAbs || (this.lastPositionAbs = this.positionAbs); | |
this.options.scroll && (this.scrollParent[0] !== document && "HTML" !== this.scrollParent[0].tagName ? (this.overflowOffset.top + this.scrollParent[0].offsetHeight - a.pageY < c.scrollSensitivity ? this.scrollParent[0].scrollTop = e = this.scrollParent[0].scrollTop + c.scrollSpeed : a.pageY - this.overflowOffset.top < c.scrollSensitivity && (this.scrollParent[0].scrollTop = e = this.scrollParent[0].scrollTop - c.scrollSpeed), this.overflowOffset.left + this.scrollParent[0].offsetWidth - a.pageX < c.scrollSensitivity ? this.scrollParent[0].scrollLeft = e = this.scrollParent[0].scrollLeft + c.scrollSpeed : a.pageX - this.overflowOffset.left < c.scrollSensitivity && (this.scrollParent[0].scrollLeft = e = this.scrollParent[0].scrollLeft - c.scrollSpeed)) : (a.pageY - d(document).scrollTop() < c.scrollSensitivity ? e = d(document).scrollTop(d(document).scrollTop() - c.scrollSpeed) : d(window).height() - (a.pageY - d(document).scrollTop()) < c.scrollSensitivity && (e = d(document).scrollTop(d(document).scrollTop() + c.scrollSpeed)), a.pageX - d(document).scrollLeft() < c.scrollSensitivity ? e = d(document).scrollLeft(d(document).scrollLeft() - c.scrollSpeed) : d(window).width() - (a.pageX - d(document).scrollLeft()) < c.scrollSensitivity && (e = d(document).scrollLeft(d(document).scrollLeft() + c.scrollSpeed))), !1 !== e && d.ui.ddmanager && !c.dropBehaviour && d.ui.ddmanager.prepareOffsets(this, a)); | |
this.positionAbs = this._convertPositionTo("absolute"); | |
this.options.axis && "y" === this.options.axis || (this.helper[0].style.left = this.position.left + "px"); | |
this.options.axis && "x" === this.options.axis || (this.helper[0].style.top = this.position.top + "px"); | |
for (c = this.items.length - 1; 0 <= c; c--) | |
if (f = this.items[c], k = f.item[0], n = this._intersectsWithPointer(f), n && f.instance === this.currentContainer && k !== this.currentItem[0] && this.placeholder[1 === n ? "next" : "prev"]()[0] !== k && !d.contains(this.placeholder[0], k) && ("semi-dynamic" === this.options.type ? !d.contains(this.element[0], k) : !0)) { | |
if (this.direction = 1 === n ? "down" : "up", "pointer" !== this.options.tolerance && !this._intersectsWithSides(f)) break; | |
this._rearrange(a, f); | |
this._trigger("change", a, this._uiHash()); | |
break | |
} | |
return this._contactContainers(a), d.ui.ddmanager && d.ui.ddmanager.drag(this, a), this._trigger("sort", a, this._uiHash()), this.lastPositionAbs = this.positionAbs, !1 | |
}, | |
_mouseStop: function(a, c) { | |
if (a) { | |
if (d.ui.ddmanager && !this.options.dropBehaviour && d.ui.ddmanager.drop(this, a), this.options.revert) { | |
var f = this, | |
k = this.placeholder.offset(), | |
n = this.options.axis, | |
e = {}; | |
n && "x" !== n || (e.left = k.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === document.body ? 0 : this.offsetParent[0].scrollLeft)); | |
n && "y" !== n || (e.top = k.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === document.body ? 0 : this.offsetParent[0].scrollTop)); | |
this.reverting = !0; | |
d(this.helper).animate(e, parseInt(this.options.revert, 10) || 500, function() { | |
f._clear(a) | |
}) | |
} else this._clear(a, c); | |
return !1 | |
} | |
}, | |
cancel: function() { | |
if (this.dragging) { | |
this._mouseUp({ | |
target: null | |
}); | |
"original" === this.options.helper ? this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper") : this.currentItem.show(); | |
for (var a = this.containers.length - 1; 0 <= a; a--) this.containers[a]._trigger("deactivate", null, this._uiHash(this)), this.containers[a].containerCache.over && (this.containers[a]._trigger("out", null, this._uiHash(this)), this.containers[a].containerCache.over = 0) | |
} | |
return this.placeholder && (this.placeholder[0].parentNode && this.placeholder[0].parentNode.removeChild(this.placeholder[0]), "original" !== this.options.helper && this.helper && this.helper[0].parentNode && this.helper.remove(), d.extend(this, { | |
helper: null, | |
dragging: !1, | |
reverting: !1, | |
_noFinalSort: null | |
}), this.domPosition.prev ? d(this.domPosition.prev).after(this.currentItem) : d(this.domPosition.parent).prepend(this.currentItem)), this | |
}, | |
serialize: function(a) { | |
var c = this._getItemsAsjQuery(a && a.connected), | |
f = []; | |
return a = a || {}, d(c).each(function() { | |
var c = (d(a.item || this).attr(a.attribute || "id") || "").match(a.expression || /(.+)[\-=_](.+)/); | |
c && f.push((a.key || c[1] + "[]") + "=" + (a.key && a.expression ? c[1] : c[2])) | |
}), !f.length && a.key && f.push(a.key + "="), f.join("&") | |
}, | |
toArray: function(a) { | |
var c = this._getItemsAsjQuery(a && a.connected), | |
f = []; | |
return a = a || {}, c.each(function() { | |
f.push(d(a.item || this).attr(a.attribute || "id") || "") | |
}), f | |
}, | |
_intersectsWith: function(a) { | |
var d = this.positionAbs.left, | |
c = d + this.helperProportions.width, | |
f = this.positionAbs.top, | |
k = f + this.helperProportions.height, | |
n = a.left, | |
e = n + a.width, | |
t = a.top, | |
h = t + a.height, | |
m = this.offset.click.top, | |
w = this.offset.click.left, | |
m = "x" === this.options.axis || f + m > t && h > f + m, | |
w = "y" === this.options.axis || d + w > n && e > d + w; | |
return "pointer" === this.options.tolerance || this.options.forcePointerForContainers || "pointer" !== this.options.tolerance && this.helperProportions[this.floating ? "width" : "height"] > a[this.floating ? "width" : "height"] ? m && w : d + this.helperProportions.width / 2 > n && e > c - this.helperProportions.width / 2 && f + this.helperProportions.height / 2 > t && h > k - this.helperProportions.height / 2 | |
}, | |
_intersectsWithPointer: function(a) { | |
var d = "x" === this.options.axis || this._isOverAxis(this.positionAbs.top + this.offset.click.top, a.top, a.height); | |
a = "y" === this.options.axis || this._isOverAxis(this.positionAbs.left + this.offset.click.left, a.left, a.width); | |
d = d && a; | |
a = this._getDragVerticalDirection(); | |
var c = this._getDragHorizontalDirection(); | |
return d ? this.floating ? c && "right" === c || "down" === a ? 2 : 1 : a && ("down" === a ? 2 : 1) : !1 | |
}, | |
_intersectsWithSides: function(a) { | |
var d = this._isOverAxis(this.positionAbs.top + this.offset.click.top, a.top + a.height / 2, a.height); | |
a = this._isOverAxis(this.positionAbs.left + this.offset.click.left, a.left + a.width / 2, a.width); | |
var c = this._getDragVerticalDirection(), | |
f = this._getDragHorizontalDirection(); | |
return this.floating && f ? "right" === f && a || "left" === f && !a : c && ("down" === c && d || "up" === c && !d) | |
}, | |
_getDragVerticalDirection: function() { | |
var a = this.positionAbs.top - this.lastPositionAbs.top; | |
return 0 !== a && (0 < a ? "down" : "up") | |
}, | |
_getDragHorizontalDirection: function() { | |
var a = this.positionAbs.left - this.lastPositionAbs.left; | |
return 0 !== a && (0 < a ? "right" : "left") | |
}, | |
refresh: function(a) { | |
return this._refreshItems(a), this._setHandleClassName(), this.refreshPositions(), this | |
}, | |
_connectWith: function() { | |
var a = this.options; | |
return a.connectWith.constructor === String ? [a.connectWith] : a.connectWith | |
}, | |
_getItemsAsjQuery: function(a) { | |
function c() { | |
e.push(this) | |
} | |
var f, k, n, e = [], | |
t = [], | |
h = this._connectWith(); | |
if (h && a) | |
for (a = h.length - 1; 0 <= a; a--) | |
for (k = d(h[a]), f = k.length - 1; 0 <= f; f--)(n = d.data(k[f], this.widgetFullName)) && n !== this && !n.options.disabled && t.push([d.isFunction(n.options.items) ? n.options.items.call(n.element) : d(n.options.items, n.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), n]); | |
t.push([d.isFunction(this.options.items) ? this.options.items.call(this.element, null, { | |
options: this.options, | |
item: this.currentItem | |
}) : d(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]); | |
for (a = t.length - 1; 0 <= a; a--) t[a][0].each(c); | |
return d(e) | |
}, | |
_removeCurrentsFromItems: function() { | |
var a = this.currentItem.find(":data(" + this.widgetName + "-item)"); | |
this.items = d.grep(this.items, function(d) { | |
for (var c = 0; a.length > c; c++) | |
if (a[c] === d.item[0]) return !1; | |
return !0 | |
}) | |
}, | |
_refreshItems: function(a) { | |
this.items = []; | |
this.containers = [this]; | |
var c, f, k, n, e, t = this.items, | |
h = [ | |
[d.isFunction(this.options.items) ? this.options.items.call(this.element[0], a, { | |
item: this.currentItem | |
}) : d(this.options.items, this.element), this] | |
]; | |
if ((e = this._connectWith()) && this.ready) | |
for (c = e.length - 1; 0 <= c; c--) | |
for (k = d(e[c]), f = k.length - 1; 0 <= f; f--)(n = d.data(k[f], this.widgetFullName)) && n !== this && !n.options.disabled && (h.push([d.isFunction(n.options.items) ? n.options.items.call(n.element[0], a, { | |
item: this.currentItem | |
}) : d(n.options.items, n.element), n]), this.containers.push(n)); | |
for (c = h.length - 1; 0 <= c; c--) | |
for (a = h[c][1], k = h[c][0], f = 0, e = k.length; e > f; f++) n = d(k[f]), n.data(this.widgetName + "-item", a), t.push({ | |
item: n, | |
instance: a, | |
width: 0, | |
height: 0, | |
left: 0, | |
top: 0 | |
}) | |
}, | |
refreshPositions: function(a) { | |
this.offsetParent && this.helper && (this.offset.parent = this._getParentOffset()); | |
var c, f, k, n; | |
for (c = this.items.length - 1; 0 <= c; c--) f = this.items[c], f.instance !== this.currentContainer && this.currentContainer && f.item[0] !== this.currentItem[0] || (k = this.options.toleranceElement ? d(this.options.toleranceElement, f.item) : f.item, a || (f.width = k.outerWidth(), f.height = k.outerHeight()), n = k.offset(), f.left = n.left, f.top = n.top); | |
if (this.options.custom && this.options.custom.refreshContainers) this.options.custom.refreshContainers.call(this); | |
else | |
for (c = this.containers.length - 1; 0 <= c; c--) n = this.containers[c].element.offset(), this.containers[c].containerCache.left = n.left, this.containers[c].containerCache.top = n.top, this.containers[c].containerCache.width = this.containers[c].element.outerWidth(), this.containers[c].containerCache.height = this.containers[c].element.outerHeight(); | |
return this | |
}, | |
_createPlaceholder: function(a) { | |
a = a || this; | |
var c, f = a.options; | |
f.placeholder && f.placeholder.constructor !== String || (c = f.placeholder, f.placeholder = { | |
element: function() { | |
var f = a.currentItem[0].nodeName.toLowerCase(), | |
k = d("<" + f + ">", a.document[0]).addClass(c || a.currentItem[0].className + " ui-sortable-placeholder").removeClass("ui-sortable-helper"); | |
return "tr" === f ? a.currentItem.children().each(function() { | |
d("<td> </td>", a.document[0]).attr("colspan", d(this).attr("colspan") || 1).appendTo(k) | |
}) : "img" === f && k.attr("src", a.currentItem.attr("src")), c || k.css("visibility", "hidden"), k | |
}, | |
update: function(d, k) { | |
(!c || f.forcePlaceholderSize) && (k.height() || k.height(a.currentItem.innerHeight() - parseInt(a.currentItem.css("paddingTop") || 0, 10) - parseInt(a.currentItem.css("paddingBottom") || 0, 10)), k.width() || k.width(a.currentItem.innerWidth() - parseInt(a.currentItem.css("paddingLeft") || 0, 10) - parseInt(a.currentItem.css("paddingRight") || 0, 10))) | |
} | |
}); | |
a.placeholder = d(f.placeholder.element.call(a.element, a.currentItem)); | |
a.currentItem.after(a.placeholder); | |
f.placeholder.update(a, a.placeholder) | |
}, | |
_contactContainers: function(a) { | |
var c, f, k, n, e, t, h, m, w = n = null; | |
for (c = this.containers.length - 1; 0 <= c; c--) d.contains(this.currentItem[0], this.containers[c].element[0]) || (this._intersectsWith(this.containers[c].containerCache) ? n && d.contains(this.containers[c].element[0], n.element[0]) || (n = this.containers[c], w = c) : this.containers[c].containerCache.over && (this.containers[c]._trigger("out", a, this._uiHash(this)), this.containers[c].containerCache.over = 0)); | |
if (n) | |
if (1 === this.containers.length) this.containers[w].containerCache.over || (this.containers[w]._trigger("over", a, this._uiHash(this)), this.containers[w].containerCache.over = 1); | |
else { | |
c = 1e4; | |
k = null; | |
n = (f = n.floating || this._isFloating(this.currentItem)) ? "left" : "top"; | |
e = f ? "width" : "height"; | |
m = f ? "clientX" : "clientY"; | |
for (f = this.items.length - 1; 0 <= f; f--) d.contains(this.containers[w].element[0], this.items[f].item[0]) && this.items[f].item[0] !== this.currentItem[0] && (t = this.items[f].item.offset()[n], h = !1, a[m] - t > this.items[f][e] / 2 && (h = !0), c > Math.abs(a[m] - t) && (c = Math.abs(a[m] - t), k = this.items[f], this.direction = h ? "up" : "down")); | |
if (k || this.options.dropOnEmpty) { | |
if (this.currentContainer === this.containers[w]) return this.currentContainer.containerCache.over || (this.containers[w]._trigger("over", a, this._uiHash()), this.currentContainer.containerCache.over = 1), void 0; | |
k ? this._rearrange(a, k, null, !0) : this._rearrange(a, null, this.containers[w].element, !0); | |
this._trigger("change", a, this._uiHash()); | |
this.containers[w]._trigger("change", a, this._uiHash(this)); | |
this.currentContainer = this.containers[w]; | |
this.options.placeholder.update(this.currentContainer, this.placeholder); | |
this.containers[w]._trigger("over", a, this._uiHash(this)); | |
this.containers[w].containerCache.over = 1 | |
} | |
} | |
}, | |
_createHelper: function(a) { | |
var c = this.options; | |
a = d.isFunction(c.helper) ? d(c.helper.apply(this.element[0], [a, this.currentItem])) : "clone" === c.helper ? this.currentItem.clone() : this.currentItem; | |
return a.parents("body").length || d("parent" !== c.appendTo ? c.appendTo : this.currentItem[0].parentNode)[0].appendChild(a[0]), a[0] === this.currentItem[0] && (this._storedCSS = { | |
width: this.currentItem[0].style.width, | |
height: this.currentItem[0].style.height, | |
position: this.currentItem.css("position"), | |
top: this.currentItem.css("top"), | |
left: this.currentItem.css("left") | |
}), (!a[0].style.width || c.forceHelperSize) && a.width(this.currentItem.width()), (!a[0].style.height || c.forceHelperSize) && a.height(this.currentItem.height()), a | |
}, | |
_adjustOffsetFromHelper: function(a) { | |
"string" == typeof a && (a = a.split(" ")); | |
d.isArray(a) && (a = { | |
left: +a[0], | |
top: +a[1] || 0 | |
}); | |
"left" in a && (this.offset.click.left = a.left + this.margins.left); | |
"right" in a && (this.offset.click.left = this.helperProportions.width - a.right + this.margins.left); | |
"top" in a && (this.offset.click.top = a.top + this.margins.top); | |
"bottom" in a && (this.offset.click.top = this.helperProportions.height - a.bottom + this.margins.top) | |
}, | |
_getParentOffset: function() { | |
this.offsetParent = this.helper.offsetParent(); | |
var a = this.offsetParent.offset(); | |
return "absolute" === this.cssPosition && this.scrollParent[0] !== document && d.contains(this.scrollParent[0], this.offsetParent[0]) && (a.left += this.scrollParent.scrollLeft(), a.top += this.scrollParent.scrollTop()), (this.offsetParent[0] === document.body || this.offsetParent[0].tagName && "html" === this.offsetParent[0].tagName.toLowerCase() && d.ui.ie) && (a = { | |
top: 0, | |
left: 0 | |
}), { | |
top: a.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), | |
left: a.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0) | |
} | |
}, | |
_getRelativeOffset: function() { | |
if ("relative" === this.cssPosition) { | |
var a = this.currentItem.position(); | |
return { | |
top: a.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(), | |
left: a.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft() | |
} | |
} | |
return { | |
top: 0, | |
left: 0 | |
} | |
}, | |
_cacheMargins: function() { | |
this.margins = { | |
left: parseInt(this.currentItem.css("marginLeft"), 10) || 0, | |
top: parseInt(this.currentItem.css("marginTop"), 10) || 0 | |
} | |
}, | |
_cacheHelperProportions: function() { | |
this.helperProportions = { | |
width: this.helper.outerWidth(), | |
height: this.helper.outerHeight() | |
} | |
}, | |
_setContainment: function() { | |
var a, c, f, k = this.options; | |
"parent" === k.containment && (k.containment = this.helper[0].parentNode); | |
"document" !== k.containment && "window" !== k.containment || (this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, d("document" === k.containment ? document : window).width() - this.helperProportions.width - this.margins.left, (d("document" === k.containment ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]); | |
/^(document|window|parent)$/.test(k.containment) || (a = d(k.containment)[0], c = d(k.containment).offset(), f = "hidden" !== d(a).css("overflow"), this.containment = [c.left + (parseInt(d(a).css("borderLeftWidth"), 10) || 0) + (parseInt(d(a).css("paddingLeft"), 10) || 0) - this.margins.left, c.top + (parseInt(d(a).css("borderTopWidth"), 10) || 0) + (parseInt(d(a).css("paddingTop"), 10) || 0) - this.margins.top, c.left + (f ? Math.max(a.scrollWidth, a.offsetWidth) : a.offsetWidth) - (parseInt(d(a).css("borderLeftWidth"), 10) || 0) - (parseInt(d(a).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left, c.top + (f ? Math.max(a.scrollHeight, a.offsetHeight) : a.offsetHeight) - (parseInt(d(a).css("borderTopWidth"), 10) || 0) - (parseInt(d(a).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top]) | |
}, | |
_convertPositionTo: function(a, c) { | |
c || (c = this.position); | |
var f = "absolute" === a ? 1 : -1, | |
k = "absolute" !== this.cssPosition || this.scrollParent[0] !== document && d.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent, | |
n = /(html|body)/i.test(k[0].tagName); | |
return { | |
top: c.top + this.offset.relative.top * f + this.offset.parent.top * f - ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : n ? 0 : k.scrollTop()) * f, | |
left: c.left + this.offset.relative.left * f + this.offset.parent.left * f - ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : n ? 0 : k.scrollLeft()) * f | |
} | |
}, | |
_generatePosition: function(a) { | |
var c, f, k = this.options, | |
n = a.pageX, | |
e = a.pageY, | |
t = "absolute" !== this.cssPosition || this.scrollParent[0] !== document && d.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent, | |
h = /(html|body)/i.test(t[0].tagName); | |
return "relative" !== this.cssPosition || this.scrollParent[0] !== document && this.scrollParent[0] !== this.offsetParent[0] || (this.offset.relative = this._getRelativeOffset()), this.originalPosition && (this.containment && (a.pageX - this.offset.click.left < this.containment[0] && (n = this.containment[0] + this.offset.click.left), a.pageY - this.offset.click.top < this.containment[1] && (e = this.containment[1] + this.offset.click.top), a.pageX - this.offset.click.left > this.containment[2] && (n = this.containment[2] + this.offset.click.left), a.pageY - this.offset.click.top > this.containment[3] && (e = this.containment[3] + this.offset.click.top)), k.grid && (c = this.originalPageY + Math.round((e - this.originalPageY) / k.grid[1]) * k.grid[1], e = this.containment ? c - this.offset.click.top >= this.containment[1] && c - this.offset.click.top <= this.containment[3] ? c : c - this.offset.click.top >= this.containment[1] ? c - k.grid[1] : c + k.grid[1] : c, f = this.originalPageX + Math.round((n - this.originalPageX) / k.grid[0]) * k.grid[0], n = this.containment ? f - this.offset.click.left >= this.containment[0] && f - this.offset.click.left <= this.containment[2] ? f : f - this.offset.click.left >= this.containment[0] ? f - k.grid[0] : f + k.grid[0] : f)), { | |
top: e - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : h ? 0 : t.scrollTop()), | |
left: n - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : h ? 0 : t.scrollLeft()) | |
} | |
}, | |
_rearrange: function(a, d, c, f) { | |
c ? c[0].appendChild(this.placeholder[0]) : d.item[0].parentNode.insertBefore(this.placeholder[0], "down" === this.direction ? d.item[0] : d.item[0].nextSibling); | |
var k = this.counter = this.counter ? ++this.counter : 1; | |
this._delay(function() { | |
k === this.counter && this.refreshPositions(!f) | |
}) | |
}, | |
_clear: function(a, d) { | |
function c(a, d, c) { | |
return function(f) { | |
c._trigger(a, f, d._uiHash(d)) | |
} | |
} | |
this.reverting = !1; | |
var f, k = []; | |
if (!this._noFinalSort && this.currentItem.parent().length && this.placeholder.before(this.currentItem), this._noFinalSort = null, this.helper[0] === this.currentItem[0]) { | |
for (f in this._storedCSS) "auto" !== this._storedCSS[f] && "static" !== this._storedCSS[f] || (this._storedCSS[f] = ""); | |
this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper") | |
} else this.currentItem.show(); | |
this.fromOutside && !d && k.push(function(a) { | |
this._trigger("receive", a, this._uiHash(this.fromOutside)) | |
}); | |
!this.fromOutside && this.domPosition.prev === this.currentItem.prev().not(".ui-sortable-helper")[0] && this.domPosition.parent === this.currentItem.parent()[0] || d || k.push(function(a) { | |
this._trigger("update", a, this._uiHash()) | |
}); | |
this !== this.currentContainer && (d || (k.push(function(a) { | |
this._trigger("remove", a, this._uiHash()) | |
}), k.push(function(a) { | |
return function(d) { | |
a._trigger("receive", d, this._uiHash(this)) | |
} | |
}.call(this, this.currentContainer)), k.push(function(a) { | |
return function(d) { | |
a._trigger("update", d, this._uiHash(this)) | |
} | |
}.call(this, this.currentContainer)))); | |
for (f = this.containers.length - 1; 0 <= f; f--) d || k.push(c("deactivate", this, this.containers[f])), this.containers[f].containerCache.over && (k.push(c("out", this, this.containers[f])), this.containers[f].containerCache.over = 0); | |
if (this.storedCursor && (this.document.find("body").css("cursor", this.storedCursor), this.storedStylesheet.remove()), this._storedOpacity && this.helper.css("opacity", this._storedOpacity), this._storedZIndex && this.helper.css("zIndex", "auto" === this._storedZIndex ? "" : this._storedZIndex), this.dragging = !1, d || this._trigger("beforeStop", a, this._uiHash()), this.placeholder[0].parentNode.removeChild(this.placeholder[0]), this.cancelHelperRemoval || (this.helper[0] !== this.currentItem[0] && this.helper.remove(), this.helper = null), !d) { | |
for (f = 0; k.length > f; f++) k[f].call(this, a); | |
this._trigger("stop", a, this._uiHash()) | |
} | |
return this.fromOutside = !1, !this.cancelHelperRemoval | |
}, | |
_trigger: function() { | |
!1 === d.Widget.prototype._trigger.apply(this, arguments) && this.cancel() | |
}, | |
_uiHash: function(a) { | |
var c = a || this; | |
return { | |
helper: c.helper, | |
placeholder: c.placeholder || d([]), | |
position: c.position, | |
originalPosition: c.originalPosition, | |
offset: c.positionAbs, | |
item: c.currentItem, | |
sender: a ? a.element : null | |
} | |
} | |
}); | |
d.widget("ui.spinner", { | |
version: "1.11.2", | |
defaultElement: "<input>", | |
widgetEventPrefix: "spin", | |
options: { | |
culture: null, | |
icons: { | |
down: "ui-icon-triangle-1-s", | |
up: "ui-icon-triangle-1-n" | |
}, | |
incremental: !0, | |
max: null, | |
min: null, | |
numberFormat: null, | |
page: 10, | |
step: 1, | |
change: null, | |
spin: null, | |
start: null, | |
stop: null | |
}, | |
_create: function() { | |
this._setOption("max", this.options.max); | |
this._setOption("min", this.options.min); | |
this._setOption("step", this.options.step); | |
"" !== this.value() && this._value(this.element.val(), !0); | |
this._draw(); | |
this._on(this._events); | |
this._refresh(); | |
this._on(this.window, { | |
beforeunload: function() { | |
this.element.removeAttr("autocomplete") | |
} | |
}) | |
}, | |
_getCreateOptions: function() { | |
var a = {}, | |
c = this.element; | |
return d.each(["min", "max", "step"], function(d, f) { | |
var k = c.attr(f); | |
void 0 !== k && k.length && (a[f] = k) | |
}), a | |
}, | |
_events: { | |
keydown: function(a) { | |
this._start(a) && this._keydown(a) && a.preventDefault() | |
}, | |
keyup: "_stop", | |
focus: function() { | |
this.previous = this.element.val() | |
}, | |
blur: function(a) { | |
return this.cancelBlur ? (delete this.cancelBlur, void 0) : (this._stop(), this._refresh(), this.previous !== this.element.val() && this._trigger("change", a), void 0) | |
}, | |
mousewheel: function(a, d) { | |
if (d) { | |
if (!this.spinning && !this._start(a)) return !1; | |
this._spin((0 < d ? 1 : -1) * this.options.step, a); | |
clearTimeout(this.mousewheelTimer); | |
this.mousewheelTimer = this._delay(function() { | |
this.spinning && this._stop(a) | |
}, 100); | |
a.preventDefault() | |
} | |
}, | |
"mousedown .ui-spinner-button": function(a) { | |
function c() { | |
this.element[0] === this.document[0].activeElement || (this.element.focus(), this.previous = f, this._delay(function() { | |
this.previous = f | |
})) | |
} | |
var f; | |
f = this.element[0] === this.document[0].activeElement ? this.previous : this.element.val(); | |
a.preventDefault(); | |
c.call(this); | |
this.cancelBlur = !0; | |
this._delay(function() { | |
delete this.cancelBlur; | |
c.call(this) | |
}); | |
!1 !== this._start(a) && this._repeat(null, d(a.currentTarget).hasClass("ui-spinner-up") ? 1 : -1, a) | |
}, | |
"mouseup .ui-spinner-button": "_stop", | |
"mouseenter .ui-spinner-button": function(a) { | |
return d(a.currentTarget).hasClass("ui-state-active") ? !1 === this._start(a) ? !1 : (this._repeat(null, d(a.currentTarget).hasClass("ui-spinner-up") ? 1 : -1, a), void 0) : void 0 | |
}, | |
"mouseleave .ui-spinner-button": "_stop" | |
}, | |
_draw: function() { | |
var a = this.uiSpinner = this.element.addClass("ui-spinner-input").attr("autocomplete", "off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml()); | |
this.element.attr("role", "spinbutton"); | |
this.buttons = a.find(".ui-spinner-button").attr("tabIndex", -1).button().removeClass("ui-corner-all"); | |
this.buttons.height() > Math.ceil(.5 * a.height()) && 0 < a.height() && a.height(a.height()); | |
this.options.disabled && this.disable() | |
}, | |
_keydown: function(a) { | |
var c = this.options, | |
f = d.ui.keyCode; | |
switch (a.keyCode) { | |
case f.UP: | |
return this._repeat(null, 1, a), !0; | |
case f.DOWN: | |
return this._repeat(null, -1, a), !0; | |
case f.PAGE_UP: | |
return this._repeat(null, c.page, a), !0; | |
case f.PAGE_DOWN: | |
return this._repeat(null, -c.page, a), !0 | |
} | |
return !1 | |
}, | |
_uiSpinnerHtml: function() { | |
return "<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>" | |
}, | |
_buttonHtml: function() { | |
return "<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon " + this.options.icons.up + "'>▲</span></a><a class='ui-spinner-button ui-spinner-down ui-corner-br'><span class='ui-icon " + this.options.icons.down + "'>▼</span></a>" | |
}, | |
_start: function(a) { | |
return this.spinning || !1 !== this._trigger("start", a) ? (this.counter || (this.counter = 1), this.spinning = !0, !0) : !1 | |
}, | |
_repeat: function(a, d, c) { | |
a = a || 500; | |
clearTimeout(this.timer); | |
this.timer = this._delay(function() { | |
this._repeat(40, d, c) | |
}, a); | |
this._spin(d * this.options.step, c) | |
}, | |
_spin: function(a, d) { | |
var c = this.value() || 0; | |
this.counter || (this.counter = 1); | |
c = this._adjustValue(c + a * this._increment(this.counter)); | |
this.spinning && !1 === this._trigger("spin", d, { | |
value: c | |
}) || (this._value(c), this.counter++) | |
}, | |
_increment: function(a) { | |
var c = this.options.incremental; | |
return c ? d.isFunction(c) ? c(a) : Math.floor(a * a * a / 5e4 - a * a / 500 + 17 * a / 200 + 1) : 1 | |
}, | |
_precision: function() { | |
var a = this._precisionOf(this.options.step); | |
return null !== this.options.min && (a = Math.max(a, this._precisionOf(this.options.min))), a | |
}, | |
_precisionOf: function(a) { | |
a = "" + a; | |
var d = a.indexOf("."); | |
return -1 === d ? 0 : a.length - d - 1 | |
}, | |
_adjustValue: function(a) { | |
var d, c, f = this.options; | |
return d = null !== f.min ? f.min : 0, c = a - d, c = Math.round(c / f.step) * f.step, a = d + c, a = parseFloat(a.toFixed(this._precision())), null !== f.max && a > f.max ? f.max : null !== f.min && f.min > a ? f.min : a | |
}, | |
_stop: function(a) { | |
this.spinning && (clearTimeout(this.timer), clearTimeout(this.mousewheelTimer), this.counter = 0, this.spinning = !1, this._trigger("stop", a)) | |
}, | |
_setOption: function(a, d) { | |
if ("culture" === a || "numberFormat" === a) { | |
var c = this._parse(this.element.val()); | |
return this.options[a] = d, this.element.val(this._format(c)), void 0 | |
} | |
"max" !== a && "min" !== a && "step" !== a || "string" != typeof d || (d = this._parse(d)); | |
"icons" === a && (this.buttons.first().find(".ui-icon").removeClass(this.options.icons.up).addClass(d.up), this.buttons.last().find(".ui-icon").removeClass(this.options.icons.down).addClass(d.down)); | |
this._super(a, d); | |
"disabled" === a && (this.widget().toggleClass("ui-state-disabled", !!d), this.element.prop("disabled", !!d), this.buttons.button(d ? "disable" : "enable")) | |
}, | |
_setOptions: f(function(a) { | |
this._super(a) | |
}), | |
_parse: function(a) { | |
return "string" == typeof a && "" !== a && (a = window.Globalize && this.options.numberFormat ? Globalize.parseFloat(a, 10, this.options.culture) : +a), "" === a || isNaN(a) ? null : a | |
}, | |
_format: function(a) { | |
return "" === a ? "" : window.Globalize && this.options.numberFormat ? Globalize.format(a, this.options.numberFormat, this.options.culture) : a | |
}, | |
_refresh: function() { | |
this.element.attr({ | |
"aria-valuemin": this.options.min, | |
"aria-valuemax": this.options.max, | |
"aria-valuenow": this._parse(this.element.val()) | |
}) | |
}, | |
isValid: function() { | |
var a = this.value(); | |
return null === a ? !1 : a === this._adjustValue(a) | |
}, | |
_value: function(a, d) { | |
var c; | |
"" !== a && (c = this._parse(a), null !== c && (d || (c = this._adjustValue(c)), a = this._format(c))); | |
this.element.val(a); | |
this._refresh() | |
}, | |
_destroy: function() { | |
this.element.removeClass("ui-spinner-input").prop("disabled", !1).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); | |
this.uiSpinner.replaceWith(this.element) | |
}, | |
stepUp: f(function(a) { | |
this._stepUp(a) | |
}), | |
_stepUp: function(a) { | |
this._start() && (this._spin((a || 1) * this.options.step), this._stop()) | |
}, | |
stepDown: f(function(a) { | |
this._stepDown(a) | |
}), | |
_stepDown: function(a) { | |
this._start() && (this._spin((a || 1) * -this.options.step), this._stop()) | |
}, | |
pageUp: f(function(a) { | |
this._stepUp((a || 1) * this.options.page) | |
}), | |
pageDown: f(function(a) { | |
this._stepDown((a || 1) * this.options.page) | |
}), | |
value: function(a) { | |
return arguments.length ? (f(this._value).call(this, a), void 0) : this._parse(this.element.val()) | |
}, | |
widget: function() { | |
return this.uiSpinner | |
} | |
}); | |
d.widget("ui.tabs", { | |
version: "1.11.2", | |
delay: 300, | |
options: { | |
active: null, | |
collapsible: !1, | |
event: "click", | |
heightStyle: "content", | |
hide: null, | |
show: null, | |
activate: null, | |
beforeActivate: null, | |
beforeLoad: null, | |
load: null | |
}, | |
_isLocal: function() { | |
var a = /#.*$/; | |
return function(d) { | |
var c, f; | |
d = d.cloneNode(!1); | |
c = d.href.replace(a, ""); | |
f = location.href.replace(a, ""); | |
try { | |
c = decodeURIComponent(c) | |
} catch (F) {} | |
try { | |
f = decodeURIComponent(f) | |
} catch (F) {} | |
return 1 < d.hash.length && c === f | |
} | |
}(), | |
_create: function() { | |
var a = this, | |
c = this.options; | |
this.running = !1; | |
this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible", c.collapsible); | |
this._processTabs(); | |
c.active = this._initialActive(); | |
d.isArray(c.disabled) && (c.disabled = d.unique(c.disabled.concat(d.map(this.tabs.filter(".ui-state-disabled"), function(d) { | |
return a.tabs.index(d) | |
}))).sort()); | |
this.active = !1 !== this.options.active && this.anchors.length ? this._findActive(c.active) : d(); | |
this._refresh(); | |
this.active.length && this.load(c.active) | |
}, | |
_initialActive: function() { | |
var a = this.options.active, | |
c = this.options.collapsible, | |
f = location.hash.substring(1); | |
return null === a && (f && this.tabs.each(function(c, k) { | |
return d(k).attr("aria-controls") === f ? (a = c, !1) : void 0 | |
}), null === a && (a = this.tabs.index(this.tabs.filter(".ui-tabs-active"))), (null === a || -1 === a) && (a = this.tabs.length ? 0 : !1)), !1 !== a && (a = this.tabs.index(this.tabs.eq(a)), -1 === a && (a = c ? !1 : 0)), !c && !1 === a && this.anchors.length && (a = 0), a | |
}, | |
_getCreateEventData: function() { | |
return { | |
tab: this.active, | |
panel: this.active.length ? this._getPanelForTab(this.active) : d() | |
} | |
}, | |
_tabKeydown: function(a) { | |
var c = d(this.document[0].activeElement).closest("li"), | |
f = this.tabs.index(c), | |
k = !0; | |
if (!this._handlePageNav(a)) { | |
switch (a.keyCode) { | |
case d.ui.keyCode.RIGHT: | |
case d.ui.keyCode.DOWN: | |
f++; | |
break; | |
case d.ui.keyCode.UP: | |
case d.ui.keyCode.LEFT: | |
k = !1; | |
f--; | |
break; | |
case d.ui.keyCode.END: | |
f = this.anchors.length - 1; | |
break; | |
case d.ui.keyCode.HOME: | |
f = 0; | |
break; | |
case d.ui.keyCode.SPACE: | |
return a.preventDefault(), clearTimeout(this.activating), this._activate(f), void 0; | |
case d.ui.keyCode.ENTER: | |
return a.preventDefault(), clearTimeout(this.activating), this._activate(f === this.options.active ? !1 : f), void 0; | |
default: | |
return | |
} | |
a.preventDefault(); | |
clearTimeout(this.activating); | |
f = this._focusNextTab(f, k); | |
a.ctrlKey || (c.attr("aria-selected", "false"), this.tabs.eq(f).attr("aria-selected", "true"), this.activating = this._delay(function() { | |
this.option("active", f) | |
}, this.delay)) | |
} | |
}, | |
_panelKeydown: function(a) { | |
this._handlePageNav(a) || a.ctrlKey && a.keyCode === d.ui.keyCode.UP && (a.preventDefault(), this.active.focus()) | |
}, | |
_handlePageNav: function(a) { | |
return a.altKey && a.keyCode === d.ui.keyCode.PAGE_UP ? (this._activate(this._focusNextTab(this.options.active - 1, !1)), !0) : a.altKey && a.keyCode === d.ui.keyCode.PAGE_DOWN ? (this._activate(this._focusNextTab(this.options.active + 1, !0)), !0) : void 0 | |
}, | |
_findNextTab: function(a, c) { | |
for (var f = this.tabs.length - 1; - 1 !== d.inArray((a > f && (a = 0), 0 > a && (a = f), a), this.options.disabled);) a = c ? a + 1 : a - 1; | |
return a | |
}, | |
_focusNextTab: function(a, d) { | |
return a = this._findNextTab(a, d), this.tabs.eq(a).focus(), a | |
}, | |
_setOption: function(a, d) { | |
return "active" === a ? (this._activate(d), void 0) : "disabled" === a ? (this._setupDisabled(d), void 0) : (this._super(a, d), "collapsible" === a && (this.element.toggleClass("ui-tabs-collapsible", d), d || !1 !== this.options.active || this._activate(0)), "event" === a && this._setupEvents(d), "heightStyle" === a && this._setupHeightStyle(d), void 0) | |
}, | |
_sanitizeSelector: function(a) { | |
return a ? a.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&") : "" | |
}, | |
refresh: function() { | |
var a = this.options, | |
c = this.tablist.children(":has(a[href])"); | |
a.disabled = d.map(c.filter(".ui-state-disabled"), function(a) { | |
return c.index(a) | |
}); | |
this._processTabs(); | |
!1 !== a.active && this.anchors.length ? this.active.length && !d.contains(this.tablist[0], this.active[0]) ? this.tabs.length === a.disabled.length ? (a.active = !1, this.active = d()) : this._activate(this._findNextTab(Math.max(0, a.active - 1), !1)) : a.active = this.tabs.index(this.active) : (a.active = !1, this.active = d()); | |
this._refresh() | |
}, | |
_refresh: function() { | |
this._setupDisabled(this.options.disabled); | |
this._setupEvents(this.options.event); | |
this._setupHeightStyle(this.options.heightStyle); | |
this.tabs.not(this.active).attr({ | |
"aria-selected": "false", | |
"aria-expanded": "false", | |
tabIndex: -1 | |
}); | |
this.panels.not(this._getPanelForTab(this.active)).hide().attr({ | |
"aria-hidden": "true" | |
}); | |
this.active.length ? (this.active.addClass("ui-tabs-active ui-state-active").attr({ | |
"aria-selected": "true", | |
"aria-expanded": "true", | |
tabIndex: 0 | |
}), this._getPanelForTab(this.active).show().attr({ | |
"aria-hidden": "false" | |
})) : this.tabs.eq(0).attr("tabIndex", 0) | |
}, | |
_processTabs: function() { | |
var a = this, | |
c = this.tabs, | |
f = this.anchors, | |
k = this.panels; | |
this.tablist = this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role", "tablist").delegate("> li", "mousedown" + this.eventNamespace, function(a) { | |
d(this).is(".ui-state-disabled") && a.preventDefault() | |
}).delegate(".ui-tabs-anchor", "focus" + this.eventNamespace, function() { | |
d(this).closest("li").is(".ui-state-disabled") && this.blur() | |
}); | |
this.tabs = this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({ | |
role: "tab", | |
tabIndex: -1 | |
}); | |
this.anchors = this.tabs.map(function() { | |
return d("a", this)[0] | |
}).addClass("ui-tabs-anchor").attr({ | |
role: "presentation", | |
tabIndex: -1 | |
}); | |
this.panels = d(); | |
this.anchors.each(function(c, f) { | |
var k, n, e, t = d(f).uniqueId().attr("id"), | |
h = d(f).closest("li"), | |
m = h.attr("aria-controls"); | |
a._isLocal(f) ? (k = f.hash, e = k.substring(1), n = a.element.find(a._sanitizeSelector(k))) : (e = h.attr("aria-controls") || d({}).uniqueId()[0].id, k = "#" + e, n = a.element.find(k), n.length || (n = a._createPanel(e), n.insertAfter(a.panels[c - 1] || a.tablist)), n.attr("aria-live", "polite")); | |
n.length && (a.panels = a.panels.add(n)); | |
m && h.data("ui-tabs-aria-controls", m); | |
h.attr({ | |
"aria-controls": e, | |
"aria-labelledby": t | |
}); | |
n.attr("aria-labelledby", t) | |
}); | |
this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role", "tabpanel"); | |
c && (this._off(c.not(this.tabs)), this._off(f.not(this.anchors)), this._off(k.not(this.panels))) | |
}, | |
_getList: function() { | |
return this.tablist || this.element.find("ol,ul").eq(0) | |
}, | |
_createPanel: function(a) { | |
return d("<div>").attr("id", a).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy", !0) | |
}, | |
_setupDisabled: function(a) { | |
d.isArray(a) && (a.length ? a.length === this.anchors.length && (a = !0) : a = !1); | |
for (var c, f = 0; c = this.tabs[f]; f++) !0 === a || -1 !== d.inArray(f, a) ? d(c).addClass("ui-state-disabled").attr("aria-disabled", "true") : d(c).removeClass("ui-state-disabled").removeAttr("aria-disabled"); | |
this.options.disabled = a | |
}, | |
_setupEvents: function(a) { | |
var c = {}; | |
a && d.each(a.split(" "), function(a, d) { | |
c[d] = "_eventHandler" | |
}); | |
this._off(this.anchors.add(this.tabs).add(this.panels)); | |
this._on(!0, this.anchors, { | |
click: function(a) { | |
a.preventDefault() | |
} | |
}); | |
this._on(this.anchors, c); | |
this._on(this.tabs, { | |
keydown: "_tabKeydown" | |
}); | |
this._on(this.panels, { | |
keydown: "_panelKeydown" | |
}); | |
this._focusable(this.tabs); | |
this._hoverable(this.tabs) | |
}, | |
_setupHeightStyle: function(a) { | |
var c, f = this.element.parent(); | |
"fill" === a ? (c = f.height(), c -= this.element.outerHeight() - this.element.height(), this.element.siblings(":visible").each(function() { | |
var a = d(this), | |
f = a.css("position"); | |
"absolute" !== f && "fixed" !== f && (c -= a.outerHeight(!0)) | |
}), this.element.children().not(this.panels).each(function() { | |
c -= d(this).outerHeight(!0) | |
}), this.panels.each(function() { | |
d(this).height(Math.max(0, c - d(this).innerHeight() + d(this).height())) | |
}).css("overflow", "auto")) : "auto" === a && (c = 0, this.panels.each(function() { | |
c = Math.max(c, d(this).height("").height()) | |
}).height(c)) | |
}, | |
_eventHandler: function(a) { | |
var c = this.options, | |
f = this.active, | |
k = d(a.currentTarget).closest("li"), | |
n = k[0] === f[0], | |
e = n && c.collapsible, | |
t = e ? d() : this._getPanelForTab(k), | |
h = f.length ? this._getPanelForTab(f) : d(), | |
f = { | |
oldTab: f, | |
oldPanel: h, | |
newTab: e ? d() : k, | |
newPanel: t | |
}; | |
a.preventDefault(); | |
k.hasClass("ui-state-disabled") || k.hasClass("ui-tabs-loading") || this.running || n && !c.collapsible || !1 === this._trigger("beforeActivate", a, f) || (c.active = e ? !1 : this.tabs.index(k), this.active = n ? d() : k, this.xhr && this.xhr.abort(), h.length || t.length || d.error("jQuery UI Tabs: Mismatching fragment identifier."), t.length && this.load(this.tabs.index(k), a), this._toggle(a, f)) | |
}, | |
_toggle: function(a, c) { | |
function f() { | |
n.running = !1; | |
n._trigger("activate", a, c) | |
} | |
function k() { | |
c.newTab.closest("li").addClass("ui-tabs-active ui-state-active"); | |
e.length && n.options.show ? n._show(e, n.options.show, f) : (e.show(), f()) | |
} | |
var n = this, | |
e = c.newPanel, | |
t = c.oldPanel; | |
this.running = !0; | |
t.length && this.options.hide ? this._hide(t, this.options.hide, function() { | |
c.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"); | |
k() | |
}) : (c.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"), t.hide(), k()); | |
t.attr("aria-hidden", "true"); | |
c.oldTab.attr({ | |
"aria-selected": "false", | |
"aria-expanded": "false" | |
}); | |
e.length && t.length ? c.oldTab.attr("tabIndex", -1) : e.length && this.tabs.filter(function() { | |
return 0 === d(this).attr("tabIndex") | |
}).attr("tabIndex", -1); | |
e.attr("aria-hidden", "false"); | |
c.newTab.attr({ | |
"aria-selected": "true", | |
"aria-expanded": "true", | |
tabIndex: 0 | |
}) | |
}, | |
_activate: function(a) { | |
var c; | |
a = this._findActive(a); | |
a[0] !== this.active[0] && (a.length || (a = this.active), c = a.find(".ui-tabs-anchor")[0], this._eventHandler({ | |
target: c, | |
currentTarget: c, | |
preventDefault: d.noop | |
})) | |
}, | |
_findActive: function(a) { | |
return !1 === a ? d() : this.tabs.eq(a) | |
}, | |
_getIndex: function(a) { | |
return "string" == typeof a && (a = this.anchors.index(this.anchors.filter("[href$='" + a + "']"))), a | |
}, | |
_destroy: function() { | |
this.xhr && this.xhr.abort(); | |
this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"); | |
this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"); | |
this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId(); | |
this.tablist.unbind(this.eventNamespace); | |
this.tabs.add(this.panels).each(function() { | |
d.data(this, "ui-tabs-destroy") ? d(this).remove() : d(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role") | |
}); | |
this.tabs.each(function() { | |
var a = d(this), | |
c = a.data("ui-tabs-aria-controls"); | |
c ? a.attr("aria-controls", c).removeData("ui-tabs-aria-controls") : a.removeAttr("aria-controls") | |
}); | |
this.panels.show(); | |
"content" !== this.options.heightStyle && this.panels.css("height", "") | |
}, | |
enable: function(a) { | |
var c = this.options.disabled; | |
!1 !== c && (void 0 === a ? c = !1 : (a = this._getIndex(a), c = d.isArray(c) ? d.map(c, function(d) { | |
return d !== a ? d : null | |
}) : d.map(this.tabs, function(d, c) { | |
return c !== a ? c : null | |
})), this._setupDisabled(c)) | |
}, | |
disable: function(a) { | |
var c = this.options.disabled; | |
if (!0 !== c) { | |
if (void 0 === a) c = !0; | |
else { | |
if (a = this._getIndex(a), -1 !== d.inArray(a, c)) return; | |
c = d.isArray(c) ? d.merge([a], c).sort() : [a] | |
} | |
this._setupDisabled(c) | |
} | |
}, | |
load: function(a, c) { | |
a = this._getIndex(a); | |
var f = this, | |
k = this.tabs.eq(a), | |
n = k.find(".ui-tabs-anchor"), | |
e = this._getPanelForTab(k), | |
t = { | |
tab: k, | |
panel: e | |
}; | |
this._isLocal(n[0]) || (this.xhr = d.ajax(this._ajaxSettings(n, c, t)), this.xhr && "canceled" !== this.xhr.statusText && (k.addClass("ui-tabs-loading"), e.attr("aria-busy", "true"), this.xhr.success(function(a) { | |
setTimeout(function() { | |
e.html(a); | |
f._trigger("load", c, t) | |
}, 1) | |
}).complete(function(a, d) { | |
setTimeout(function() { | |
"abort" === d && f.panels.stop(!1, !0); | |
k.removeClass("ui-tabs-loading"); | |
e.removeAttr("aria-busy"); | |
a === f.xhr && delete f.xhr | |
}, 1) | |
}))) | |
}, | |
_ajaxSettings: function(a, c, f) { | |
var k = this; | |
return { | |
url: a.attr("href"), | |
beforeSend: function(a, n) { | |
return k._trigger("beforeLoad", c, d.extend({ | |
jqXHR: a, | |
ajaxSettings: n | |
}, f)) | |
} | |
} | |
}, | |
_getPanelForTab: function(a) { | |
a = d(a).attr("aria-controls"); | |
return this.element.find(this._sanitizeSelector("#" + a)) | |
} | |
}); | |
d.widget("ui.tooltip", { | |
version: "1.11.2", | |
options: { | |
content: function() { | |
var a = d(this).attr("title") || ""; | |
return d("<a>").text(a).html() | |
}, | |
hide: !0, | |
items: "[title]:not([disabled])", | |
position: { | |
my: "left top+15", | |
at: "left bottom", | |
collision: "flipfit flip" | |
}, | |
show: !0, | |
tooltipClass: null, | |
track: !1, | |
close: null, | |
open: null | |
}, | |
_addDescribedBy: function(a, c) { | |
var f = (a.attr("aria-describedby") || "").split(/\s+/); | |
f.push(c); | |
a.data("ui-tooltip-id", c).attr("aria-describedby", d.trim(f.join(" "))) | |
}, | |
_removeDescribedBy: function(a) { | |
var c = a.data("ui-tooltip-id"), | |
f = (a.attr("aria-describedby") || "").split(/\s+/), | |
c = d.inArray(c, f); - 1 !== c && f.splice(c, 1); | |
a.removeData("ui-tooltip-id"); | |
(f = d.trim(f.join(" "))) ? a.attr("aria-describedby", f): a.removeAttr("aria-describedby") | |
}, | |
_create: function() { | |
this._on({ | |
mouseover: "open", | |
focusin: "open" | |
}); | |
this.tooltips = {}; | |
this.parents = {}; | |
this.options.disabled && this._disable(); | |
this.liveRegion = d("<div>").attr({ | |
role: "log", | |
"aria-live": "assertive", | |
"aria-relevant": "additions" | |
}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body) | |
}, | |
_setOption: function(a, c) { | |
var f = this; | |
return "disabled" === a ? (this[c ? "_disable" : "_enable"](), this.options[a] = c, void 0) : (this._super(a, c), "content" === a && d.each(this.tooltips, function(a, d) { | |
f._updateContent(d.element) | |
}), void 0) | |
}, | |
_disable: function() { | |
var a = this; | |
d.each(this.tooltips, function(c, f) { | |
var k = d.Event("blur"); | |
k.target = k.currentTarget = f.element[0]; | |
a.close(k, !0) | |
}); | |
this.element.find(this.options.items).addBack().each(function() { | |
var a = d(this); | |
a.is("[title]") && a.data("ui-tooltip-title", a.attr("title")).removeAttr("title") | |
}) | |
}, | |
_enable: function() { | |
this.element.find(this.options.items).addBack().each(function() { | |
var a = d(this); | |
a.data("ui-tooltip-title") && a.attr("title", a.data("ui-tooltip-title")) | |
}) | |
}, | |
open: function(a) { | |
var c = this, | |
f = d(a ? a.target : this.element).closest(this.options.items); | |
f.length && !f.data("ui-tooltip-id") && (f.attr("title") && f.data("ui-tooltip-title", f.attr("title")), f.data("ui-tooltip-open", !0), a && "mouseover" === a.type && f.parents().each(function() { | |
var a, f = d(this); | |
f.data("ui-tooltip-open") && (a = d.Event("blur"), a.target = a.currentTarget = this, c.close(a, !0)); | |
f.attr("title") && (f.uniqueId(), c.parents[this.id] = { | |
element: this, | |
title: f.attr("title") | |
}, f.attr("title", "")) | |
}), this._updateContent(f, a)) | |
}, | |
_updateContent: function(a, d) { | |
var c, f = this.options.content, | |
k = this, | |
n = d ? d.type : null; | |
return "string" == typeof f ? this._open(d, a, f) : (c = f.call(a[0], function(c) { | |
a.data("ui-tooltip-open") && k._delay(function() { | |
d && (d.type = n); | |
this._open(d, a, c) | |
}) | |
}), c && this._open(d, a, c), void 0) | |
}, | |
_open: function(a, c, f) { | |
function k(a) { | |
m.of = a; | |
e.is(":hidden") || e.position(m) | |
} | |
var n, e, t, h, m = d.extend({}, this.options.position); | |
if (f) { | |
if (n = this._find(c)) return n.tooltip.find(".ui-tooltip-content").html(f), void 0; | |
c.is("[title]") && (a && "mouseover" === a.type ? c.attr("title", "") : c.removeAttr("title")); | |
n = this._tooltip(c); | |
e = n.tooltip; | |
this._addDescribedBy(c, e.attr("id")); | |
e.find(".ui-tooltip-content").html(f); | |
this.liveRegion.children().hide(); | |
f.clone ? (h = f.clone(), h.removeAttr("id").find("[id]").removeAttr("id")) : h = f; | |
d("<div>").html(h).appendTo(this.liveRegion); | |
this.options.track && a && /^mouse/.test(a.type) ? (this._on(this.document, { | |
mousemove: k | |
}), k(a)) : e.position(d.extend({ | |
of: c | |
}, this.options.position)); | |
e.hide(); | |
this._show(e, this.options.show); | |
this.options.show && this.options.show.delay && (t = this.delayedShow = setInterval(function() { | |
e.is(":visible") && (k(m.of), clearInterval(t)) | |
}, d.fx.interval)); | |
this._trigger("open", a, { | |
tooltip: e | |
}); | |
f = { | |
keyup: function(a) { | |
a.keyCode === d.ui.keyCode.ESCAPE && (a = d.Event(a), a.currentTarget = c[0], this.close(a, !0)) | |
} | |
}; | |
c[0] !== this.element[0] && (f.remove = function() { | |
this._removeTooltip(e) | |
}); | |
a && "mouseover" !== a.type || (f.mouseleave = "close"); | |
a && "focusin" !== a.type || (f.focusout = "close"); | |
this._on(!0, c, f) | |
} | |
}, | |
close: function(a) { | |
var c, f = this, | |
k = d(a ? a.currentTarget : this.element), | |
n = this._find(k); | |
n && (c = n.tooltip, n.closing || (clearInterval(this.delayedShow), k.data("ui-tooltip-title") && !k.attr("title") && k.attr("title", k.data("ui-tooltip-title")), this._removeDescribedBy(k), n.hiding = !0, c.stop(!0), this._hide(c, this.options.hide, function() { | |
f._removeTooltip(d(this)) | |
}), k.removeData("ui-tooltip-open"), this._off(k, "mouseleave focusout keyup"), k[0] !== this.element[0] && this._off(k, "remove"), this._off(this.document, "mousemove"), a && "mouseleave" === a.type && d.each(this.parents, function(a, c) { | |
d(c.element).attr("title", c.title); | |
delete f.parents[a] | |
}), n.closing = !0, this._trigger("close", a, { | |
tooltip: c | |
}), n.hiding || (n.closing = !1))) | |
}, | |
_tooltip: function(a) { | |
var c = d("<div>").attr("role", "tooltip").addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content " + (this.options.tooltipClass || "")), | |
f = c.uniqueId().attr("id"); | |
return d("<div>").addClass("ui-tooltip-content").appendTo(c), c.appendTo(this.document[0].body), this.tooltips[f] = { | |
element: a, | |
tooltip: c | |
} | |
}, | |
_find: function(a) { | |
return (a = a.data("ui-tooltip-id")) ? this.tooltips[a] : null | |
}, | |
_removeTooltip: function(a) { | |
a.remove(); | |
delete this.tooltips[a.attr("id")] | |
}, | |
_destroy: function() { | |
var a = this; | |
d.each(this.tooltips, function(c, f) { | |
var k = d.Event("blur"), | |
n = f.element; | |
k.target = k.currentTarget = n[0]; | |
a.close(k, !0); | |
d("#" + c).remove(); | |
n.data("ui-tooltip-title") && (n.attr("title") || n.attr("title", n.data("ui-tooltip-title")), n.removeData("ui-tooltip-title")) | |
}); | |
this.liveRegion.remove() | |
} | |
}) | |
}); | |
function tweenDelete(d, c, e) { | |
setTimeout(function() { | |
var c = game.add.tween(d).to({ | |
alpha: 0 | |
}, e); | |
void 0 != d.shadow && game.add.tween(d.shadow).to({ | |
alpha: 0 | |
}, e).start(); | |
setTimeout(function() { | |
d.kill(); | |
d.readyForRecycle = !0; | |
if (void 0 != d.staticNodes) | |
for (var c = 0; c < d.staticNodes.length; c++) d.staticNodes[c].walkable = !0; | |
void 0 != d.goToMatrixNode && (d.goToMatrixNode.walkable = !0); | |
void 0 != d.nextWalkToNode && (d.nextWalkToNode.walkable = !0) | |
}, e + 100); | |
c.onComplete.add(function() { | |
void 0 != d.goToNode && (d.goToNode.walkable = !0); | |
void 0 != d.curPositionInGrid && (d.curPositionInGrid.walkable = !0); | |
recycleUnits ? d.kill() : d.destroy(); | |
void 0 != fadingUnits[d.uid] && delete fadingUnits[d.uid]; | |
d.readyForRecycle = !0; | |
if (void 0 != d.staticNodes) | |
for (var c = 0; c < d.staticNodes.length; c++) d.staticNodes[c].walkable = !0; | |
void 0 == d.shadow || shadowsAsRenderTexture || d.shadow.kill(); | |
if (void 0 != d.curPositionInGrid) | |
for (c = 0; c < d.curPositionInGrid.length; c++) staticGrid.nodes[d.curPositionInGrid[c][0]][d.curPositionInGrid[c][1]].walkable = !0; | |
if (void 0 != d.staticGridNodes) | |
for (c = 0; c < d.staticGridNodes.length; c++) staticGrid.setWalkableAt(d.staticGridNodes[c][0], d.staticGridNodes[c][1], !0) | |
}); | |
c.start() | |
}, c) | |
} | |
function toCamelCase(d) { | |
return d.split("_").map(function(d) { | |
return d.charAt(0).toUpperCase() + d.slice(1) | |
}).join("") | |
} | |
function capitalizeFirstLetter(d) { | |
return d.charAt(0).toUpperCase() + d.slice(1).toLowerCase() | |
} | |
function getParameterByName(d) { | |
d = d.replace(/[\[]/, "[").replace(/[\]]/, "]"); | |
d = new RegExp("[?&]" + d + "=([^&#]*)").exec(location.search); | |
return null === d ? "" : decodeURIComponent(d[1].replace(/\+/g, " ")) | |
} | |
function ClearAllIntervals() { | |
for (var d = 1; 999 > d; d++) window.clearInterval(d) | |
} | |
function createArrayFromString(d) { | |
if ($.isArray(d)) return d; | |
if ("" != d && void 0 != d) { | |
d = d.replace(/\],\[/g, "*"); | |
d = d.replace(/\[/g, ""); | |
d = d.replace(/\]/g, ""); | |
d = d.replace(/,/g, ","); | |
d = d.split("*"); | |
for (var c = 0; c < d.length; c++) { | |
var e = d[c].split(","); | |
d[c] = [e[0], e[1]] | |
} | |
} else d = void 0; | |
return d | |
} | |
function trueCreateArrayFromString(d) { | |
return d = JSON.parse(d) | |
} | |
function coordsInCamera(d, c) { | |
return game.camera.view.contains(d, c) ? !0 : !1 | |
} | |
function getRotatedBounds(d) { | |
var c = d.width; | |
d.height > d.width && (c = d.height); | |
var e = d.offsetX; | |
d.offsetY > d.offsetX && (e = d.offsetY); | |
void 0 == d.rotatedBounds ? d.rotatedBounds = new Phaser.Rectangle(d.x - e, d.y - e, c, c) : (d.rotatedBounds.x = d.x - e, d.rotatedBounds.y = d.y - e, d.rotatedBounds.width = c, d.rotatedBounds.height = c); | |
return d.rotatedBounds | |
} | |
function getBoundsWithChildren(d) { | |
var c = d.width, | |
e = d.height, | |
m = d.offsetX, | |
h = d.offsetY; | |
if (0 < d.children.length) | |
for (var p = 0; p < d.children.length; p++) d.children[p].width > c && (c = d.children[p].width, m = d.children[p].offsetX), d.children[p].height > e && (e = d.children[p].height, h = d.children[p].offsetY); | |
return new Phaser.Rectangle(d.x - m, d.y - h, c, e) | |
} | |
function toggleNextUnit(d, c, e) { | |
var m, h = []; | |
void 0 != currentToggledUnit && d != currentToggledUnit.unitName && (currentToggledUnit = void 0); | |
void 0 != currentToggledUnit && void 0 != c && currentToggledUnit[c] != e && (currentToggledUnit = void 0); | |
gameObjects.forEachAlive(function(m) { | |
var a = !0; | |
void 0 != c && void 0 != e && (a = m[c] == e); | |
("droid" == m.unitName || 0 != m.finishedBuilding && 0 != m.selected) && a && m.unitName == d && m.playerKey == currentGameRoom.players[playerName].playerKey && h.push(m) | |
}); | |
if (void 0 == currentToggledUnit && 0 < h.length) currentToggledUnit = h[0], "droid" == d ? (deselectAllUnits(), selectUnit(currentToggledUnit), game.camera.focusOn(currentToggledUnit)) : setLastSelectedWorkerBuilding(currentToggledUnit, !0); | |
else if (1 > h.length) game.sound.play("error1", .4), setMessage("No units found."); | |
else { | |
if ("droid" == d) { | |
h.sort(function(d, a) { | |
return d.x + d.y < a.x + a.y ? -1 : 1 | |
}); | |
for (var p = 0; p < h.length; p++) h[p].uid == currentToggledUnit.uid && (m = void 0 != h[p + 1] ? h[p + 1] : h[0]) | |
} else h.sort(function(d, a) { | |
return d.buildingQue.length - a.buildingQue.length | |
}), m = h[0]; | |
void 0 != m && (currentToggledUnit = m, "droid" == d ? (game.camera.focusOn(currentToggledUnit), deselectAllUnits(), selectUnit(currentToggledUnit)) : setLastSelectedWorkerBuilding(currentToggledUnit, !0)) | |
} | |
} | |
function generateTinyUID() { | |
var d = 46656 * Math.random() | 0, | |
c = 46656 * Math.random() | 0, | |
d = ("000" + d.toString(36)).slice(-3), | |
c = ("000" + c.toString(36)).slice(-3); | |
return d + c | |
} | |
function getBoundsIncludingChildren(d) { | |
if (void 0 == d.trueBounds) { | |
for (var c = d.width, e = d.height, m = 0; m < d.children.length; m++) d.children[m].width > c && (c = d.children[m].width), d.children[m].height > e && (e = d.children[m].height); | |
d.trueBounds = new Phaser.Rectangle(d.x - d.offsetX, d.y - d.offsetY, c, e) | |
} else d.trueBounds.x = d.x - d.offsetX, d.trueBounds.y = d.y - d.offsetY; | |
return d.trueBounds | |
} | |
function getImageBounds(d) { | |
void 0 == d.imageBounds ? d.imageBounds = new Phaser.Rectangle(d.x - d.offsetX, d.y - d.offsetY, d.width, d.height) : (d.imageBounds.x = d.x - d.offsetX, d.imageBounds.y = d.y - d.offsetY); | |
return d.imageBounds | |
} | |
function getManualBounds(d) { | |
if (void 0 != d.worldX) return void 0 == d.manualBounds ? d.manualBounds = new Phaser.Rectangle(d.worldX - d.offsetX, d.worldY - d.offsetY, d.width, d.height) : (d.manualBounds.x = d.worldX - d.offsetX, d.manualBounds.y = d.worldY - d.offsetY), d.manualBounds; | |
void 0 != d.unitName && void 0 != unitDefinitions[d.unitName].bodyBounds ? void 0 == d.manualBounds ? d.manualBounds = new Phaser.Rectangle(d.x - unitDefinitions[d.unitName].bodyBounds[0] / 2, d.y - unitDefinitions[d.unitName].bodyBounds[1] / 2, unitDefinitions[d.unitName].bodyBounds[0], unitDefinitions[d.unitName].bodyBounds[1]) : (d.manualBounds.x = d.x - unitDefinitions[d.unitName].bodyBounds[0] / 2, d.manualBounds.y = d.y - unitDefinitions[d.unitName].bodyBounds[1] / 2) : void 0 == d.manualBounds ? d.manualBounds = new Phaser.Rectangle(d.x - d.offsetX, d.y - d.offsetY, d.width, d.height) : (d.manualBounds.x = d.x - d.offsetX, d.manualBounds.y = d.y - d.offsetY); | |
return d.manualBounds | |
} | |
function getUniqueValuesInObjectofObjects(d, c) { | |
var e = []; | |
for (key in d) { | |
for (var m = !1, h = 0; h < e.length; h++) | |
if (e[h][c] == d[key][c]) { | |
m = !0; | |
break | |
} | |
m || e.push(d[key]) | |
} | |
return e | |
} | |
function setDrupalErrorMessage(d, c, e) { | |
void 0 == e && (e = 6e3); | |
void 0 != clearDrupalMessageTimeout && clearTimeout(clearDrupalMessageTimeout); | |
clearDrupalMessageTimeout = setTimeout(function() { | |
$(".messages").fadeOut(800, function() { | |
$(".messages").text("") | |
}) | |
}, e); | |
e = $(".messages." + c); | |
0 < e.length ? $(".messages").text() == d ? console.log("message is already being displayed") : (e.text(d), e.css({ | |
display: "block" | |
})) : $("body").prepend('<div class="messages ' + c + '">' + d + "</div>") | |
} | |
function addFullScreenButton() { | |
$("#full_screen_button").show(); | |
0 < $("#full_screen_button").length || ($("body").append('<img src="/game_' + curGameVersion + '/css/images/open_fullscreen.png" class="hideable" id="full_screen_button" title="Toggle Fullscreen">'), $("#full_screen_button").on("click", function() { | |
toggleFullScreen() | |
})) | |
} | |
function toggleFullScreen() { | |
document.fullScreenElement && null !== document.fullScreenElement || !document.mozFullScreen && !document.webkitIsFullScreen ? ($("#full_screen_button").attr("src", "/game_" + curGameVersion + "/css/images/exit_fullscreen.png"), document.documentElement.requestFullScreen ? document.documentElement.requestFullScreen() : document.documentElement.mozRequestFullScreen ? document.documentElement.mozRequestFullScreen() : document.documentElement.webkitRequestFullScreen && document.documentElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)) : ($("#full_screen_button").attr("src", "/game_" + curGameVersion + "/css/images/open_fullscreen.png"), document.cancelFullScreen ? document.cancelFullScreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.webkitCancelFullScreen && document.webkitCancelFullScreen()) | |
} | |
function getFilename(d) { | |
return d && (d = d.toString().match(/.*\/(.+?)\./)) && 1 < d.length ? d[1] : "" | |
} | |
function createUIDialog(d, c, e, m) { | |
void 0 == m && (m = {}); | |
d = '<div id="' + c + '" title="' + d + '">' + e + "</div>"; | |
$("body").append(d); | |
m.resizable = !1; | |
m.closeOnEscape = !1; | |
$("#" + c).dialog(m); | |
$("#" + c).parent().attr("id", c + "_parent"); | |
"editor" == mode && $(".ui-dialog").addClass("hideable"); | |
makeInputFieldsSafe() | |
}(function(d) { | |
function c() { | |
d(".views-field-field-thumb").each(function() { | |
var c = d(this).siblings(".views-field-field-thumb-plant,.views-field-field-thumb-building,.views-field-field-thumb-other"); | |
d(this).append(c.children()) | |
}); | |
d(".flag-link-toggle").on("click", function() { | |
d(this).hasClass("unflag-action") ? setDrupalErrorMessage("The next time you reload the page, this asset will no longer appear in the map editor menu.", "status") : setDrupalErrorMessage("The asset will now appear in the map editor menu the next time you refresh the page.", "status") | |
}) | |
} | |
d(window).ready(function(d) { | |
rendering = getParameterByName("rendering"); | |
if ("webgl" == rendering || "canvas" == rendering) d("#select_mode").show(), d("#select_mode").val(rendering); | |
d("#select_mode").on("change", function() { | |
rendering = d(this).val(); | |
window.location = location.protocol + "//" + location.host + location.pathname + "?rendering=" + rendering | |
}); | |
d("body").css({ | |
display: "block" | |
}); | |
1300 > d(window).width() && d("#main_menu").addClass("med"); | |
if (0 < d(".ajax-register-links").length) d("#publish_assets_link").on("click", function(c) { | |
c.preventDefault(); | |
d(".ajax-register-links li.first a").trigger("click") | |
}); | |
1 > d("#overlay_footer").length && d(".assets-public").append('<div id="overlay_footer"></div>'); | |
d(window).resize(function() { | |
resizeGame() | |
}) | |
}); | |
Drupal.behaviors.views = { | |
attach: function(e, m) { | |
d("#block-views-game_assets-block #close").on("click", function() { | |
d("#block-views-game_assets-block").fadeOut(500) | |
}); | |
0 < d(".logged-in").length && c(); | |
1 > d("#overlay_footer").length && d(".assets-public").append('<div id="overlay_footer"></div>') | |
} | |
}; | |
Drupal.behaviors.ajax_register = { | |
attach: function(c, m) { | |
d(".ajax-register-links").ready(function(d) { | |
d(".ajax-register-links").prepend('<li><a href="/play" title="Logged in as a guest, you will not be able to save anything">Play as guest</a></li>') | |
}) | |
} | |
}; | |
d(window).focus(function() { | |
windowFocus = !0 | |
}).blur(function() { | |
windowFocus = !1 | |
}) | |
})(jQuery); | |
function hasWhiteSpace(d) { | |
return 0 <= d.indexOf(" ") | |
} | |
function findLongestWord(d) { | |
d = d.split(" "); | |
for (var c = 0, e = 0; e < d.length; e++) d[e].length > c && (c = d[e].length); | |
return c | |
} | |
function setMessage(d, c, e, m, h, p) { | |
if (!hasWhiteSpace(d) && 25 < d.length) void 0 != c && c == playerName && setDrupalErrorMessage("Spamming the chat will get you banned. This incident has been reported.", "error"); | |
else if (25 < findLongestWord(d)) void 0 != c && c == playerName && setDrupalErrorMessage("Spamming the chat will get you banned. This incident has been reported.", "error"); | |
else if ("editor" == mode && 1 > $("#messages").length && $("body").append('<div id="messages"></div>'), "" != d && void 0 != d) { | |
void 0 == e && (e = ""); | |
void 0 == m && (m = 2e3); | |
inGame || "editor" == mode || (m = 0); | |
"editor" == mode && (m = 1e4); | |
c = void 0 == c ? "" : c + ": "; | |
var q = !0; | |
$("#messages li .message").each(function() { | |
unitUID = void 0 == p ? "" : p.uid; | |
var a = $(this).parent().data("unit") == unitUID, | |
c = $.trim($(this).text()) == $.trim(d); | |
a && c && void 0 != p && (q = !1) | |
}); | |
if (q) { | |
void 0 != h && h(); | |
var a = $('<li class="' + e + '" data-unit="' + (void 0 != p ? p.uid : "") + '">').html('<span class="author">' + c + '</span><span class="message">' + d + "</span>"); | |
$("#messages").append(a); | |
c = document.getElementById("messages"); | |
null != c && (c.scrollTop = c.scrollHeight, 0 < m && setTimeout(function() { | |
a.fadeOut(1e3, function() { | |
a.remove() | |
}) | |
}, m)) | |
} | |
} | |
} | |
function hexToRgb(d) { | |
d = d.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, function(d, e, m, h) { | |
return e + e + m + m + h + h | |
}); | |
return (d = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(d)) ? { | |
r: parseInt(d[1], 16), | |
g: parseInt(d[2], 16), | |
b: parseInt(d[3], 16) | |
} : null | |
} | |
function checkIfObjectsHaveSameStructure(d, c) { | |
var e = Object.keys(d).length, | |
m = Object.keys(c).length; | |
if (e != m) return !1; | |
for (var h in d) | |
if (void 0 == c[h]) return !1; | |
return !0 | |
} | |
function isLetter(d) { | |
return d.match("^[a-zA-Z()]+$") | |
} | |
function clone(d) { | |
if (null == d || "object" != typeof d) return d; | |
var c = d.constructor(), | |
e; | |
for (e in d) d.hasOwnProperty(e) && (c[e] = d[e]); | |
return c | |
} | |
function sortProperties(d, c, e, m) { | |
c = c || 1; | |
e = e || !1; | |
var h = m ? -1 : 1; | |
m = []; | |
for (var p in d) d.hasOwnProperty(p) && m.push([p, d[p]]); | |
e ? m.sort(function(d, a) { | |
return h * (d[1][c] - a[1][c]) | |
}) : m.sort(function(d, a) { | |
var f = d[1][c].toLowerCase(), | |
k = a[1][c].toLowerCase(); | |
return f < k ? -1 * h : f > k ? h : 0 | |
}); | |
return m | |
} | |
function compareArray(d, c) { | |
if (d.length != c.length) return !1; | |
for (var e = 0; e < c.length; e++) | |
if (!Array.isArray(d[e])) { | |
if (d[e] !== c[e]) return !1 | |
} else if (d[e].compare) { | |
if (!d[e].compare(c[e])) return !1 | |
} else if (d[e] !== c[e]) return !1; | |
return !0 | |
} | |
function inArray(d, c) { | |
var e = !1; | |
d.map(function(d) { | |
d === c && (e = !0) | |
}); | |
return e | |
} | |
function formatThousandsWithRounding(d, c) { | |
for (var e = d.toFixed(c), m = e | 0, h = 0 > d ? 1 : 0, e = ("" + Math.abs(e - m).toFixed(c)).substr(2, c), m = "" + m, p = m.length, q = ""; | |
(p -= 3) > h;) q = "," + m.substr(p, 3) + q; | |
return m.substr(0, p + 3) + q + (e ? "." + e : "") | |
} | |
function requestPointerLock() { | |
canvas.requestPointerLock = canvas.requestPointerLock || canvas.mozRequestPointerLock; | |
canvas.requestPointerLock(); | |
$("body").mousemove(function(d) { | |
console.log("( " + d.pageX + ", " + d.pageY + " )") | |
}) | |
} | |
function getUnitThumb(d, c) { | |
var e, m, h = void 0 != currentGameRoom ? currentGameRoom.players[playerName].player : 1; | |
void 0 != c && (h = c); | |
void 0 == unitDefinitions[d].unitThumbs && (unitDefinitions[d].unitThumbs = {}); | |
if (void 0 != unitDefinitions[d].unitThumbs[h]) return unitDefinitions[d].unitThumbs[h]; | |
var p = getPrintedPart(d, h); | |
getLargestDimensions(p); | |
m = p.width; | |
e = p.height; | |
var q = game.make.renderTexture(m, e); | |
q.renderXY(p, p.offsetX, p.offsetY); | |
p = q.getBase64(); | |
q.destroy(); | |
unitDefinitions[d].unitThumbs[h] = { | |
base64: p, | |
width: m, | |
height: e | |
}; | |
return unitDefinitions[d].unitThumbs[h] | |
} | |
function roundPrecision(d, c) { | |
var e = Math.pow(10, c || 0); | |
return Math.round(d * e) / e | |
} | |
function getFilename(d) { | |
return d && (d = d.toString().match(/.*\/(.+?)\./)) && 1 < d.length ? d[1] : "" | |
} | |
function translateText(d) { | |
switch (d) { | |
case "New Game": | |
if ("ru" == userLanguage) return "новая игра"; | |
if ("es" == userLanguage) return "Nuevo juego"; | |
break; | |
case "Find Game": | |
if ("ru" == userLanguage) return "найти игру"; | |
if ("es" == userLanguage) return "Encontrar el juego"; | |
break; | |
case "Map Editor": | |
if ("ru" == userLanguage) return "Редактор карт"; | |
if ("es" == userLanguage) return "Editor de mapas"; | |
break; | |
case "Map Name": | |
if ("ru" == userLanguage) return "Название карты"; | |
if ("es" == userLanguage) return "Nombre del mapa"; | |
break; | |
case "Game Type": | |
if ("ru" == userLanguage) return "Тип игры"; | |
if ("es" == userLanguage) return "Tipo de juego"; | |
break; | |
case "Players": | |
if ("ru" == userLanguage) return "игроки"; | |
if ("es" == userLanguage) return "Jugadores"; | |
break; | |
case "Host": | |
if ("ru" == userLanguage) return "хозяин"; | |
if ("es" == userLanguage) return "Anfitrión"; | |
break; | |
case "Status": | |
if ("ru" == userLanguage) return "положение дел"; | |
if ("es" == userLanguage) return "Estado"; | |
break; | |
case "Return to lobby": | |
if ("ru" == userLanguage) return "лобби"; | |
if ("es" == userLanguage) return "Regresar"; | |
break; | |
case "Start Game": | |
if ("ru" == userLanguage) return "начать игру"; | |
if ("es" == userLanguage) return "Empezar juego"; | |
break; | |
case "Team": | |
if ("ru" == userLanguage) return "команда"; | |
if ("es" == userLanguage) return "Equipo"; | |
break; | |
case "+AI": | |
if ("ru" == userLanguage) return "+ компьютер"; | |
if ("es" == userLanguage) return "+ Computadora"; | |
break; | |
case "Connecting": | |
if ("ru" == userLanguage) return "соединительный"; | |
if ("es" == userLanguage) return "Conectando"; | |
break; | |
case "Enter message here and hit enter...": | |
if ("ru" == userLanguage) return "Введите сообщение здесь..."; | |
if ("es" == userLanguage) return "Introduzca el mensaje aquí y pulse enter ..."; | |
break; | |
case "Surrender": | |
if ("ru" == userLanguage) return "капитуляция"; | |
if ("es" == userLanguage) return "Rendición"; | |
break; | |
case "Online": | |
if ("ru" == userLanguage) return "онлайн"; | |
if ("es" == userLanguage) return "En línea"; | |
break; | |
case "Options": | |
if ("ru" == userLanguage) return "опции"; | |
if ("es" == userLanguage) return "Opciones"; | |
break; | |
case "total": | |
if ("ru" == userLanguage) return "Всего"; | |
if ("es" == userLanguage) return "total"; | |
break; | |
case "here": | |
if ("ru" == userLanguage) return "Вот"; | |
if ("es" == userLanguage) return "aquí"; | |
break; | |
case "Victory!": | |
if ("ru" == userLanguage) return "Победа!"; | |
if ("es" == userLanguage) return "¡Victoria!"; | |
break; | |
case "Defeat!": | |
if ("ru" == userLanguage) return "Поражение!"; | |
if ("es" == userLanguage) return "¡Derrota!"; | |
break; | |
case 'Note: people using auto-matchmaking will not be put in your game. Only people who click your game from the lobby or have the game URL can join this game. Return to the lobby and hit the "find game" button to join auto-matchmaking.': | |
if ("ru" == userLanguage) return "Примечание: люди, использующие авто-matchmaking, не будут добавлены в вашу игру. В эту игру могут присоединиться только те, кто нажимает на вашу игру из лобби или имеет URL игры. Вернитесь в холл и нажмите кнопку «найти игру», чтобы присоединиться к автосогласованию."; | |
if ("es" == userLanguage) return 'Nota: las personas que usen auto-matchmaking no serán puestas en su juego. Solo las personas que hagan clic en el juego desde el lobby o que tengan la URL del juego pueden unirse a este juego. Vuelva al lobby y presione el botón "find game" para unirse a auto-matchmaking.'; | |
break; | |
case "Finding players(s) on": | |
if ("ru" == userLanguage) return "Поиск игроков на"; | |
if ("es" == userLanguage) return "Encontrar jugadores en ..."; | |
break; | |
case "Welcome": | |
if ("ru" == userLanguage) return "желанный"; | |
if ("es" == userLanguage) return "Bienvenido"; | |
break; | |
case "Game Room": | |
if ("ru" == userLanguage) return "Игровая комната"; | |
if ("es" == userLanguage) return "Sala de juego"; | |
break; | |
case "Player": | |
if ("ru" == userLanguage) return "игрок"; | |
if ("es" == userLanguage) return "Jugador"; | |
break; | |
case "LINK": | |
if ("ru" == userLanguage) return "АДРЕС"; | |
if ("es" == userLanguage) return "ENLAZAR"; | |
break; | |
case "easy": | |
if ("ru" == userLanguage) return "легко"; | |
if ("es" == userLanguage) return "fácil"; | |
break; | |
case "medium": | |
if ("ru" == userLanguage) return "средний"; | |
if ("es" == userLanguage) return "moderar"; | |
break; | |
case "hard": | |
if ("ru" == userLanguage) return "жесткий"; | |
if ("es" == userLanguage) return "difícil"; | |
break; | |
case "cheating": | |
if ("ru" == userLanguage) return "мошенничество"; | |
if ("es" == userLanguage) return "engañando"; | |
break; | |
case "Military": | |
if ("ru" == userLanguage) return "военный"; | |
if ("es" == userLanguage) return "Militar"; | |
break; | |
case "Economy": | |
if ("ru" == userLanguage) return "экономика"; | |
if ("es" == userLanguage) return "Economía"; | |
break; | |
case "Overall": | |
if ("ru" == userLanguage) return "Резюме"; | |
if ("es" == userLanguage) return "Resumen"; | |
break; | |
case "Droid Count": | |
if ("ru" == userLanguage) return "Количество рабочих"; | |
if ("es" == userLanguage) return "Cuenta de los trabajadores"; | |
break; | |
case "Military Count": | |
if ("ru" == userLanguage) return "Военный граф"; | |
if ("es" == userLanguage) return "Cuenta Militar"; | |
break; | |
case "Buildings Created": | |
if ("ru" == userLanguage) return "Созданные здания"; | |
if ("es" == userLanguage) return "Edificios creados"; | |
break; | |
case "Buildings Destroyed": | |
if ("ru" == userLanguage) return "Разрушенные здания"; | |
if ("es" == userLanguage) return "Edificios destruidos"; | |
break; | |
case "Carbon Collected": | |
if ("ru" == userLanguage) return "Углерод, собранный"; | |
if ("es" == userLanguage) return "Carbono recolectado"; | |
break; | |
case "Ore Collected": | |
if ("ru" == userLanguage) return "Сбор руды"; | |
if ("es" == userLanguage) return "Minerales recolectados"; | |
break; | |
case "Energy Collected": | |
if ("ru" == userLanguage) return "Энергия, собранная"; | |
if ("es" == userLanguage) return "Energía recolectada"; | |
break; | |
case "Units Created": | |
if ("ru" == userLanguage) return "Созданные единицы"; | |
if ("es" == userLanguage) return "Unidades creadas"; | |
break; | |
case "Units Killed": | |
if ("ru" == userLanguage) return "Убитые единицы"; | |
if ("es" == userLanguage) return "Unidades muertas"; | |
break; | |
case "Units Lost": | |
if ("ru" == userLanguage) return "Утерянные единицы"; | |
if ("es" == userLanguage) return "Unidades perdidas"; | |
break; | |
case "Workers Created": | |
if ("ru" == userLanguage) return "Созданы рабочие"; | |
if ("es" == userLanguage) return "Trabajadores creados"; | |
break; | |
case "Military Score": | |
if ("ru" == userLanguage) return "Военный счет"; | |
if ("es" == userLanguage) return "Puntuación Militar"; | |
break; | |
case "Economy Score": | |
if ("ru" == userLanguage) return "Оценка экономики"; | |
if ("es" == userLanguage) return "Puntuación Económica"; | |
break; | |
case "Total Score": | |
if ("ru" == userLanguage) return "Общий счет"; | |
if ("es" == userLanguage) return "Puntaje total"; | |
break; | |
case "Standard": | |
if ("ru" == userLanguage) return "стандарт"; | |
if ("es" == userLanguage) return "Estándar"; | |
break; | |
case "Survival": | |
if ("ru" == userLanguage) return "выживание"; | |
if ("es" == userLanguage) return "Supervivencia"; | |
break; | |
case "Deathmatch": | |
if ("ru" == userLanguage) return "Смертельный матч"; | |
if ("es" == userLanguage) return "Combate a muerte"; | |
break; | |
case "FFA": | |
if ("ru" == userLanguage) return "Бесплатно для всех"; | |
if ("es" == userLanguage) return "Gratuita para todos"; | |
break; | |
case "Purchase Strike Tactics to access all game content.": | |
if ("ru" == userLanguage) return "Приобретайте тактику забастовки, чтобы получить доступ ко всему игровому контенту."; | |
if ("es" == userLanguage) return "Compra Strike Tactics para acceder a todo el contenido del juego."; | |
break; | |
case "Purchase the full game to access all game content.": | |
if ("ru" == userLanguage) return "Купите полную игру, чтобы получить доступ ко всему игровому контенту."; | |
if ("es" == userLanguage) return "Compra el juego completo para acceder a todo el contenido del juego."; | |
break; | |
case "Music Volume": | |
if ("ru" == userLanguage) return "Объем музыки"; | |
if ("es" == userLanguage) return "Volumen de la música"; | |
break; | |
case "Game Volume": | |
if ("ru" == userLanguage) return "Объем игры"; | |
if ("es" == userLanguage) return "Volumen del juego"; | |
break; | |
case "Smoothing": | |
if ("ru" == userLanguage) return "Сглаживание"; | |
if ("es" == userLanguage) return "Suavizado"; | |
break; | |
case "Anti-Aliasing": | |
if ("ru" == userLanguage || "es" == userLanguage) return "Anti-Aliasing"; | |
break; | |
case "Camera Shake": | |
if ("ru" == userLanguage) return "Встряска камеры"; | |
if ("es" == userLanguage) return "Vibración de la cámara"; | |
break; | |
case "Show Tutorial": | |
if ("ru" == userLanguage) return "Показать учебное пособие"; | |
if ("es" == userLanguage) return "Tutorial de presentación"; | |
break; | |
case "Window Scroll": | |
if ("ru" == userLanguage) return "Окно прокрутки"; | |
if ("es" == userLanguage) return "Desplazamiento de la ventana"; | |
break; | |
case "Scroll Speed": | |
if ("ru" == userLanguage) return "Скорость прокрутки"; | |
if ("es" == userLanguage) return "Velocidad de desplazamiento"; | |
break; | |
case "Show Unit Info": | |
if ("ru" == userLanguage) return "Показать информацию о модуле"; | |
if ("es" == userLanguage) return "Mostrar información de la unidad"; | |
break; | |
case "Back": | |
if ("ru" == userLanguage) return "назад"; | |
if ("es" == userLanguage) return "Espalda"; | |
break; | |
case "Settings Defaults": | |
if ("ru" == userLanguage) return "Настройки по умолчанию"; | |
if ("es" == userLanguage) return "Predeterminados"; | |
break; | |
case "Hotkey Defaults": | |
if ("ru" == userLanguage) return "Горячие клавиши по умолчанию"; | |
if ("es" == userLanguage) return "Predeterminados"; | |
break; | |
case "Show Players In Room": | |
if ("ru" == userLanguage) return "Показать игроков в номере"; | |
if ("es" == userLanguage) return "Mostrar jugadores en la habitación"; | |
break; | |
case "Manual Attack": | |
if ("ru" == userLanguage) return "Ручная атака"; | |
if ("es" == userLanguage) return "Ataque manual"; | |
break; | |
case "Cancel Building": | |
if ("ru" == userLanguage) return "Отменить строительство"; | |
if ("es" == userLanguage) return "Cancelar el edificio"; | |
break; | |
case "Chat": | |
if ("ru" == userLanguage) return "чат"; | |
if ("es" == userLanguage) return "Charla"; | |
break; | |
case "Select All Military": | |
if ("ru" == userLanguage) return "Выберите все военные"; | |
if ("es" == userLanguage) return "Seleccionar todo militar"; | |
break; | |
case "System Hotkeys": | |
if ("ru" == userLanguage) return "Горячие клавиши системы"; | |
if ("es" == userLanguage) return "Teclas de acceso rápido del sistema"; | |
break; | |
case "Key Bindings": | |
if ("ru" == userLanguage) return "Ключевые привязки"; | |
if ("es" == userLanguage) return "Atajos de teclado"; | |
break; | |
case "Minutes": | |
if ("ru" == userLanguage) return "минут"; | |
if ("es" == userLanguage) return "Minutos"; | |
break; | |
case "Time": | |
if ("ru" == userLanguage) return "Время"; | |
if ("es" == userLanguage) return "Hora" | |
} | |
return d | |
} | |
function translateUnitDefinitions() {} | |
function inIframe() { | |
try { | |
return window.self !== window.top | |
} catch (d) { | |
return !0 | |
} | |
}(function(d) { | |
"function" === typeof define && define.amd ? define(["jquery"], function(c) { | |
return d(c, window, document) | |
}) : "object" === typeof exports ? module.exports = function(c, e) { | |
c || (c = window); | |
e || (e = "undefined" !== typeof window ? require("jquery") : require("jquery")(c)); | |
return d(e, c, c.document) | |
} : d(jQuery, window, document) | |
})(function(d, c, e, m) { | |
function h(a) { | |
var c, f, k = {}; | |
d.each(a, function(d) { | |
(c = d.match(/^([^A-Z]+?)([A-Z])/)) && -1 !== "a aa ai ao as b fn i m o s ".indexOf(c[1] + " ") && (f = d.replace(c[0], c[2].toLowerCase()), k[f] = d, "o" === c[1] && h(a[d])) | |
}); | |
a._hungarianMap = k | |
} | |
function p(a, c, f) { | |
a._hungarianMap || h(a); | |
var k; | |
d.each(c, function(n) { | |
k = a._hungarianMap[n]; | |
k === m || !f && c[k] !== m || ("o" === k.charAt(0) ? (c[k] || (c[k] = {}), d.extend(!0, c[k], c[n]), p(a[k], c[k], f)) : c[k] = c[n]) | |
}) | |
} | |
function q(a) { | |
var d = T.defaults.oLanguage, | |
c = a.sZeroRecords; | |
!a.sEmptyTable && c && "No data available in table" === d.sEmptyTable && Za(a, a, "sZeroRecords", "sEmptyTable"); | |
!a.sLoadingRecords && c && "Loading..." === d.sLoadingRecords && Za(a, a, "sZeroRecords", "sLoadingRecords"); | |
a.sInfoThousands && (a.sThousands = a.sInfoThousands); | |
(a = a.sDecimal) && ac(a) | |
} | |
function a(a) { | |
Ka(a, "ordering", "bSort"); | |
Ka(a, "orderMulti", "bSortMulti"); | |
Ka(a, "orderClasses", "bSortClasses"); | |
Ka(a, "orderCellsTop", "bSortCellsTop"); | |
Ka(a, "order", "aaSorting"); | |
Ka(a, "orderFixed", "aaSortingFixed"); | |
Ka(a, "paging", "bPaginate"); | |
Ka(a, "pagingType", "sPaginationType"); | |
Ka(a, "pageLength", "iDisplayLength"); | |
Ka(a, "searching", "bFilter"); | |
"boolean" === typeof a.sScrollX && (a.sScrollX = a.sScrollX ? "100%" : ""); | |
"boolean" === typeof a.scrollX && (a.scrollX = a.scrollX ? "100%" : ""); | |
if (a = a.aoSearchCols) | |
for (var d = 0, c = a.length; d < c; d++) a[d] && p(T.models.oSearch, a[d]) | |
} | |
function f(a) { | |
Ka(a, "orderable", "bSortable"); | |
Ka(a, "orderData", "aDataSort"); | |
Ka(a, "orderSequence", "asSorting"); | |
Ka(a, "orderDataType", "sortDataType"); | |
var c = a.aDataSort; | |
c && !d.isArray(c) && (a.aDataSort = [c]) | |
} | |
function k(a) { | |
if (!T.__browser) { | |
var f = {}; | |
T.__browser = f; | |
var k = d("<div/>").css({ | |
position: "fixed", | |
top: 0, | |
left: -1 * d(c).scrollLeft(), | |
height: 1, | |
width: 1, | |
overflow: "hidden" | |
}).append(d("<div/>").css({ | |
position: "absolute", | |
top: 1, | |
left: 1, | |
width: 100, | |
overflow: "scroll" | |
}).append(d("<div/>").css({ | |
width: "100%", | |
height: 10 | |
}))).appendTo("body"), | |
n = k.children(), | |
e = n.children(); | |
f.barWidth = n[0].offsetWidth - n[0].clientWidth; | |
f.bScrollOversize = 100 === e[0].offsetWidth && 100 !== n[0].clientWidth; | |
f.bScrollbarLeft = 1 !== Math.round(e.offset().left); | |
f.bBounding = k[0].getBoundingClientRect().width ? !0 : !1; | |
k.remove() | |
} | |
d.extend(a.oBrowser, T.__browser); | |
a.oScroll.iBarWidth = T.__browser.barWidth | |
} | |
function n(a, d, c, f, k, n) { | |
var e, t = !1; | |
for (c !== m && (e = c, t = !0); f !== k;) a.hasOwnProperty(f) && (e = t ? d(e, a[f], f, a) : a[f], t = !0, f += n); | |
return e | |
} | |
function t(a, c) { | |
var f = T.defaults.column, | |
k = a.aoColumns.length, | |
f = d.extend({}, T.models.oColumn, f, { | |
nTh: c ? c : e.createElement("th"), | |
sTitle: f.sTitle ? f.sTitle : c ? c.innerHTML : "", | |
aDataSort: f.aDataSort ? f.aDataSort : [k], | |
mData: f.mData ? f.mData : k, | |
idx: k | |
}); | |
a.aoColumns.push(f); | |
f = a.aoPreSearchCols; | |
f[k] = d.extend({}, T.models.oSearch, f[k]); | |
w(a, k, d(c).data()) | |
} | |
function w(a, c, k) { | |
c = a.aoColumns[c]; | |
var n = a.oClasses, | |
e = d(c.nTh); | |
if (!c.sWidthOrig) { | |
c.sWidthOrig = e.attr("width") || null; | |
var t = (e.attr("style") || "").match(/width:\s*(\d+[pxem%]+)/); | |
t && (c.sWidthOrig = t[1]) | |
} | |
k !== m && null !== k && (f(k), p(T.defaults.column, k), k.mDataProp !== m && !k.mData && (k.mData = k.mDataProp), k.sType && (c._sManualType = k.sType), k.className && !k.sClass && (k.sClass = k.className), d.extend(c, k), Za(c, k, "sWidth", "sWidthOrig"), k.iDataSort !== m && (c.aDataSort = [k.iDataSort]), Za(c, k, "aDataSort")); | |
var h = c.mData, | |
w = M(h), | |
u = c.mRender ? M(c.mRender) : null; | |
k = function(a) { | |
return "string" === typeof a && -1 !== a.indexOf("@") | |
}; | |
c._bAttrSrc = d.isPlainObject(h) && (k(h.sort) || k(h.type) || k(h.filter)); | |
c._setter = null; | |
c.fnGetData = function(a, d, c) { | |
var f = w(a, d, m, c); | |
return u && d ? u(f, d, a, c) : f | |
}; | |
c.fnSetData = function(a, d, c) { | |
return L(h)(a, d, c) | |
}; | |
"number" !== typeof h && (a._rowReadObject = !0); | |
a.oFeatures.bSort || (c.bSortable = !1, e.addClass(n.sSortableNone)); | |
a = -1 !== d.inArray("asc", c.asSorting); | |
k = -1 !== d.inArray("desc", c.asSorting); | |
c.bSortable && (a || k) ? a && !k ? (c.sSortingClass = n.sSortableAsc, c.sSortingClassJUI = n.sSortJUIAscAllowed) : !a && k ? (c.sSortingClass = n.sSortableDesc, c.sSortingClassJUI = n.sSortJUIDescAllowed) : (c.sSortingClass = n.sSortable, c.sSortingClassJUI = n.sSortJUI) : (c.sSortingClass = n.sSortableNone, c.sSortingClassJUI = "") | |
} | |
function u(a) { | |
if (!1 !== a.oFeatures.bAutoWidth) { | |
var d = a.aoColumns; | |
ub(a); | |
for (var c = 0, f = d.length; c < f; c++) d[c].nTh.style.width = d[c].sWidth | |
} | |
d = a.oScroll; | |
"" === d.sY && "" === d.sX || Sa(a); | |
qa(a, null, "column-sizing", [a]) | |
} | |
function C(a, d) { | |
var c = B(a, "bVisible"); | |
return "number" === typeof c[d] ? c[d] : null | |
} | |
function A(a, c) { | |
var f = B(a, "bVisible"), | |
f = d.inArray(c, f); | |
return -1 !== f ? f : null | |
} | |
function v(a) { | |
var c = 0; | |
d.each(a.aoColumns, function(a, f) { | |
f.bVisible && "none" !== d(f.nTh).css("display") && c++ | |
}); | |
return c | |
} | |
function B(a, c) { | |
var f = []; | |
d.map(a.aoColumns, function(a, d) { | |
a[c] && f.push(d) | |
}); | |
return f | |
} | |
function D(a) { | |
var d = a.aoColumns, | |
c = a.aoData, | |
f = T.ext.type.detect, | |
k, n, e, t, h, w, u, q, p; | |
k = 0; | |
for (n = d.length; k < n; k++) | |
if (u = d[k], p = [], !u.sType && u._sManualType) u.sType = u._sManualType; | |
else if (!u.sType) { | |
e = 0; | |
for (t = f.length; e < t; e++) { | |
h = 0; | |
for (w = c.length; h < w; h++) { | |
p[h] === m && (p[h] = J(a, h, k, "type")); | |
q = f[e](p[h], a); | |
if (!q && e !== f.length - 1) break; | |
if ("html" === q) break | |
} | |
if (q) { | |
u.sType = q; | |
break | |
} | |
} | |
u.sType || (u.sType = "string") | |
} | |
} | |
function E(a, c, f, k) { | |
var n, e, h, w, u, q, p = a.aoColumns; | |
if (c) | |
for (n = c.length - 1; 0 <= n; n--) { | |
q = c[n]; | |
var C = q.targets !== m ? q.targets : q.aTargets; | |
d.isArray(C) || (C = [C]); | |
e = 0; | |
for (h = C.length; e < h; e++) | |
if ("number" === typeof C[e] && 0 <= C[e]) { | |
for (; p.length <= C[e];) t(a); | |
k(C[e], q) | |
} else if ("number" === typeof C[e] && 0 > C[e]) k(p.length + C[e], q); | |
else if ("string" === typeof C[e]) | |
for (w = 0, u = p.length; w < u; w++)("_all" == C[e] || d(p[w].nTh).hasClass(C[e])) && k(w, q) | |
} | |
if (f) | |
for (n = 0, a = f.length; n < a; n++) k(n, f[n]) | |
} | |
function F(a, c, f, k) { | |
var n = a.aoData.length, | |
e = d.extend(!0, {}, T.models.oRow, { | |
src: f ? "dom" : "data", | |
idx: n | |
}); | |
e._aData = c; | |
a.aoData.push(e); | |
for (var t = a.aoColumns, h = 0, w = t.length; h < w; h++) t[h].sType = null; | |
a.aiDisplayMaster.push(n); | |
c = a.rowIdFn(c); | |
c !== m && (a.aIds[c] = e); | |
!f && a.oFeatures.bDeferRender || ca(a, n, f, k); | |
return n | |
} | |
function G(a, c) { | |
var f; | |
c instanceof d || (c = d(c)); | |
return c.map(function(d, c) { | |
f = W(a, c); | |
return F(a, f.data, c, f.cells) | |
}) | |
} | |
function J(a, d, c, f) { | |
var k = a.iDraw, | |
n = a.aoColumns[c], | |
e = a.aoData[d]._aData, | |
t = n.sDefaultContent, | |
h = n.fnGetData(e, f, { | |
settings: a, | |
row: d, | |
col: c | |
}); | |
if (h === m) return a.iDrawError != k && null === t && (lb(a, 0, "Requested unknown parameter " + ("function" == typeof n.mData ? "{function}" : "'" + n.mData + "'") + " for row " + d + ", column " + c, 4), a.iDrawError = k), t; | |
if ((h === e || null === h) && null !== t && f !== m) h = t; | |
else if ("function" === typeof h) return h.call(e); | |
return null === h && "display" == f ? "" : h | |
} | |
function I(a, d, c, f) { | |
a.aoColumns[c].fnSetData(a.aoData[d]._aData, f, { | |
settings: a, | |
row: d, | |
col: c | |
}) | |
} | |
function K(a) { | |
return d.map(a.match(/(\\.|[^\.])+/g) || [""], function(a) { | |
return a.replace(/\\\./g, ".") | |
}) | |
} | |
function M(a) { | |
if (d.isPlainObject(a)) { | |
var c = {}; | |
d.each(a, function(a, d) { | |
d && (c[a] = M(d)) | |
}); | |
return function(a, d, f, k) { | |
var n = c[d] || c._; | |
return n !== m ? n(a, d, f, k) : a | |
} | |
} | |
if (null === a) return function(a) { | |
return a | |
}; | |
if ("function" === typeof a) return function(d, c, f, k) { | |
return a(d, c, f, k) | |
}; | |
if ("string" === typeof a && (-1 !== a.indexOf(".") || -1 !== a.indexOf("[") || -1 !== a.indexOf("("))) { | |
var f = function(a, c, k) { | |
var n, e; | |
if ("" !== k) { | |
e = K(k); | |
for (var t = 0, h = e.length; t < h; t++) { | |
k = e[t].match(bb); | |
n = e[t].match(Nb); | |
if (k) { | |
e[t] = e[t].replace(bb, ""); | |
"" !== e[t] && (a = a[e[t]]); | |
n = []; | |
e.splice(0, t + 1); | |
e = e.join("."); | |
if (d.isArray(a)) | |
for (t = 0, h = a.length; t < h; t++) n.push(f(a[t], c, e)); | |
a = k[0].substring(1, k[0].length - 1); | |
a = "" === a ? n : n.join(a); | |
break | |
} else if (n) { | |
e[t] = e[t].replace(Nb, ""); | |
a = a[e[t]](); | |
continue | |
} | |
if (null === a || a[e[t]] === m) return m; | |
a = a[e[t]] | |
} | |
} | |
return a | |
}; | |
return function(d, c) { | |
return f(d, c, a) | |
} | |
} | |
return function(d) { | |
return d[a] | |
} | |
} | |
function L(a) { | |
if (d.isPlainObject(a)) return L(a._); | |
if (null === a) return function() {}; | |
if ("function" === typeof a) return function(d, c, f) { | |
a(d, "set", c, f) | |
}; | |
if ("string" === typeof a && (-1 !== a.indexOf(".") || -1 !== a.indexOf("[") || -1 !== a.indexOf("("))) { | |
var c = function(a, f, k) { | |
k = K(k); | |
var n; | |
n = k[k.length - 1]; | |
for (var e, t, h = 0, w = k.length - 1; h < w; h++) { | |
e = k[h].match(bb); | |
t = k[h].match(Nb); | |
if (e) { | |
k[h] = k[h].replace(bb, ""); | |
a[k[h]] = []; | |
n = k.slice(); | |
n.splice(0, h + 1); | |
e = n.join("."); | |
if (d.isArray(f)) | |
for (t = 0, w = f.length; t < w; t++) n = {}, c(n, f[t], e), a[k[h]].push(n); | |
else a[k[h]] = f; | |
return | |
} | |
t && (k[h] = k[h].replace(Nb, ""), a = a[k[h]](f)); | |
if (null === a[k[h]] || a[k[h]] === m) a[k[h]] = {}; | |
a = a[k[h]] | |
} | |
if (n.match(Nb)) a[n.replace(Nb, "")](f); | |
else a[n.replace(bb, "")] = f | |
}; | |
return function(d, f) { | |
return c(d, f, a) | |
} | |
} | |
return function(d, c) { | |
d[a] = c | |
} | |
} | |
function U(a) { | |
return Qa(a.aoData, "_aData") | |
} | |
function Q(a) { | |
a.aoData.length = 0; | |
a.aiDisplayMaster.length = 0; | |
a.aiDisplay.length = 0; | |
a.aIds = {} | |
} | |
function H(a, d, c) { | |
for (var f = -1, k = 0, n = a.length; k < n; k++) a[k] == d ? f = k : a[k] > d && a[k] --; - 1 != f && c === m && a.splice(f, 1) | |
} | |
function O(a, d, c, f) { | |
var k = a.aoData[d], | |
n, e = function(c, f) { | |
for (; c.childNodes.length;) c.removeChild(c.firstChild); | |
c.innerHTML = J(a, d, f, "display") | |
}; | |
if ("dom" !== c && (c && "auto" !== c || "dom" !== k.src)) { | |
var t = k.anCells; | |
if (t) | |
if (f !== m) e(t[f], f); | |
else | |
for (c = 0, n = t.length; c < n; c++) e(t[c], c) | |
} else k._aData = W(a, k, f, f === m ? m : k._aData).data; | |
k._aSortData = null; | |
k._aFilterData = null; | |
e = a.aoColumns; | |
if (f !== m) e[f].sType = null; | |
else { | |
c = 0; | |
for (n = e.length; c < n; c++) e[c].sType = null; | |
ha(a, k) | |
} | |
} | |
function W(a, c, f, k) { | |
var n = [], | |
e = c.firstChild, | |
t, h, w = 0, | |
u, q = a.aoColumns, | |
p = a._rowReadObject; | |
k = k !== m ? k : p ? {} : []; | |
var C = function(a, d) { | |
if ("string" === typeof a) { | |
var c = a.indexOf("@"); - 1 !== c && (c = a.substring(c + 1), L(a)(k, d.getAttribute(c))) | |
} | |
}, | |
v = function(a) { | |
if (f === m || f === w) h = q[w], u = d.trim(a.innerHTML), h && h._bAttrSrc ? (L(h.mData._)(k, u), C(h.mData.sort, a), C(h.mData.type, a), C(h.mData.filter, a)) : p ? (h._setter || (h._setter = L(h.mData)), h._setter(k, u)) : k[w] = u; | |
w++ | |
}; | |
if (e) | |
for (; e;) { | |
t = e.nodeName.toUpperCase(); | |
if ("TD" == t || "TH" == t) v(e), n.push(e); | |
e = e.nextSibling | |
} else | |
for (n = c.anCells, e = 0, t = n.length; e < t; e++) v(n[e]); | |
(c = c.firstChild ? c : c.nTr) && (c = c.getAttribute("id")) && L(a.rowId)(k, c); | |
return { | |
data: k, | |
cells: n | |
} | |
} | |
function ca(a, c, f, k) { | |
var n = a.aoData[c], | |
t = n._aData, | |
h = [], | |
m, w, u, q, p; | |
if (null === n.nTr) { | |
m = f || e.createElement("tr"); | |
n.nTr = m; | |
n.anCells = h; | |
m._DT_RowIndex = c; | |
ha(a, n); | |
q = 0; | |
for (p = a.aoColumns.length; q < p; q++) u = a.aoColumns[q], w = f ? k[q] : e.createElement(u.sCellType), w._DT_CellIndex = { | |
row: c, | |
column: q | |
}, h.push(w), f && !u.mRender && u.mData === q || d.isPlainObject(u.mData) && u.mData._ === q + ".display" || (w.innerHTML = J(a, c, q, "display")), u.sClass && (w.className += " " + u.sClass), u.bVisible && !f ? m.appendChild(w) : !u.bVisible && f && w.parentNode.removeChild(w), u.fnCreatedCell && u.fnCreatedCell.call(a.oInstance, w, J(a, c, q), t, c, q); | |
qa(a, "aoRowCreatedCallback", null, [m, t, c]) | |
} | |
n.nTr.setAttribute("role", "row") | |
} | |
function ha(a, c) { | |
var f = c.nTr, | |
k = c._aData; | |
if (f) { | |
var n = a.rowIdFn(k); | |
n && (f.id = n); | |
k.DT_RowClass && (n = k.DT_RowClass.split(" "), c.__rowc = c.__rowc ? Mb(c.__rowc.concat(n)) : n, d(f).removeClass(c.__rowc.join(" ")).addClass(k.DT_RowClass)); | |
k.DT_RowAttr && d(f).attr(k.DT_RowAttr); | |
k.DT_RowData && d(f).data(k.DT_RowData) | |
} | |
} | |
function Y(a) { | |
var c, f, k, n, e, t = a.nTHead, | |
h = a.nTFoot, | |
m = 0 === d("th, td", t).length, | |
w = a.oClasses, | |
u = a.aoColumns; | |
m && (n = d("<tr/>").appendTo(t)); | |
c = 0; | |
for (f = u.length; c < f; c++) e = u[c], k = d(e.nTh).addClass(e.sClass), m && k.appendTo(n), a.oFeatures.bSort && (k.addClass(e.sSortingClass), !1 !== e.bSortable && (k.attr("tabindex", a.iTabIndex).attr("aria-controls", a.sTableId), Ab(a, e.nTh, c))), e.sTitle != k[0].innerHTML && k.html(e.sTitle), jc(a, "header")(a, k, e, w); | |
m && ua(a.aoHeader, t); | |
d(t).find(">tr").attr("role", "row"); | |
d(t).find(">tr>th, >tr>td").addClass(w.sHeaderTH); | |
d(h).find(">tr>th, >tr>td").addClass(w.sFooterTH); | |
if (null !== h) | |
for (a = a.aoFooter[0], c = 0, f = a.length; c < f; c++) e = u[c], e.nTf = a[c].cell, e.sClass && d(e.nTf).addClass(e.sClass) | |
} | |
function Z(a, c, f) { | |
var k, n, e, t = [], | |
h = [], | |
w = a.aoColumns.length, | |
u; | |
if (c) { | |
f === m && (f = !1); | |
k = 0; | |
for (n = c.length; k < n; k++) { | |
t[k] = c[k].slice(); | |
t[k].nTr = c[k].nTr; | |
for (e = w - 1; 0 <= e; e--) a.aoColumns[e].bVisible || f || t[k].splice(e, 1); | |
h.push([]) | |
} | |
k = 0; | |
for (n = t.length; k < n; k++) { | |
if (a = t[k].nTr) | |
for (; e = a.firstChild;) a.removeChild(e); | |
e = 0; | |
for (c = t[k].length; e < c; e++) | |
if (u = w = 1, h[k][e] === m) { | |
a.appendChild(t[k][e].cell); | |
for (h[k][e] = 1; t[k + w] !== m && t[k][e].cell == t[k + w][e].cell;) h[k + w][e] = 1, w++; | |
for (; t[k][e + u] !== m && t[k][e].cell == t[k][e + u].cell;) { | |
for (f = 0; f < w; f++) h[k + f][e + u] = 1; | |
u++ | |
} | |
d(t[k][e].cell).attr("rowspan", w).attr("colspan", u) | |
} | |
} | |
} | |
} | |
function R(a) { | |
var c = qa(a, "aoPreDrawCallback", "preDraw", [a]); | |
if (-1 !== d.inArray(!1, c)) Ga(a, !1); | |
else { | |
var c = [], | |
f = 0, | |
k = a.asStripeClasses, | |
n = k.length, | |
e = a.oLanguage, | |
t = a.iInitDisplayStart, | |
h = "ssp" == Wa(a), | |
w = a.aiDisplay; | |
a.bDrawing = !0; | |
t !== m && -1 !== t && (a._iDisplayStart = h ? t : t >= a.fnRecordsDisplay() ? 0 : t, a.iInitDisplayStart = -1); | |
var t = a._iDisplayStart, | |
u = a.fnDisplayEnd(); | |
if (a.bDeferLoading) a.bDeferLoading = !1, a.iDraw++, Ga(a, !1); | |
else if (h) { | |
if (!a.bDestroying && !wa(a)) return | |
} else a.iDraw++; | |
if (0 !== w.length) | |
for (e = h ? a.aoData.length : u, h = h ? 0 : t; h < e; h++) { | |
var q = w[h], | |
p = a.aoData[q]; | |
null === p.nTr && ca(a, q); | |
q = p.nTr; | |
if (0 !== n) { | |
var C = k[f % n]; | |
p._sRowStripe != C && (d(q).removeClass(p._sRowStripe).addClass(C), p._sRowStripe = C) | |
} | |
qa(a, "aoRowCallback", null, [q, p._aData, f, h]); | |
c.push(q); | |
f++ | |
} else f = e.sZeroRecords, 1 == a.iDraw && "ajax" == Wa(a) ? f = e.sLoadingRecords : e.sEmptyTable && 0 === a.fnRecordsTotal() && (f = e.sEmptyTable), c[0] = d("<tr/>", { | |
class: n ? k[0] : "" | |
}).append(d("<td />", { | |
valign: "top", | |
colSpan: v(a), | |
class: a.oClasses.sRowEmpty | |
}).html(f))[0]; | |
qa(a, "aoHeaderCallback", "header", [d(a.nTHead).children("tr")[0], U(a), t, u, w]); | |
qa(a, "aoFooterCallback", "footer", [d(a.nTFoot).children("tr")[0], U(a), t, u, w]); | |
k = d(a.nTBody); | |
k.children().detach(); | |
k.append(d(c)); | |
qa(a, "aoDrawCallback", "draw", [a]); | |
a.bSorted = !1; | |
a.bFiltered = !1; | |
a.bDrawing = !1 | |
} | |
} | |
function aa(a, d) { | |
var c = a.oFeatures, | |
f = c.bFilter; | |
c.bSort && vb(a); | |
f ? ja(a, a.oPreviousSearch) : a.aiDisplay = a.aiDisplayMaster.slice(); | |
!0 !== d && (a._iDisplayStart = 0); | |
a._drawHold = d; | |
R(a); | |
a._drawHold = !1 | |
} | |
function da(a) { | |
var c = a.oClasses, | |
f = d(a.nTable), | |
f = d("<div/>").insertBefore(f), | |
k = a.oFeatures, | |
n = d("<div/>", { | |
id: a.sTableId + "_wrapper", | |
class: c.sWrapper + (a.nTFoot ? "" : " " + c.sNoFooter) | |
}); | |
a.nHolding = f[0]; | |
a.nTableWrapper = n[0]; | |
a.nTableReinsertBefore = a.nTable.nextSibling; | |
for (var e = a.sDom.split(""), t, h, m, w, u, q, p = 0; p < e.length; p++) { | |
t = null; | |
h = e[p]; | |
if ("<" == h) { | |
m = d("<div/>")[0]; | |
w = e[p + 1]; | |
if ("'" == w || '"' == w) { | |
u = ""; | |
for (q = 2; e[p + q] != w;) u += e[p + q], q++; | |
"H" == u ? u = c.sJUIHeader : "F" == u && (u = c.sJUIFooter); - 1 != u.indexOf(".") ? (w = u.split("."), m.id = w[0].substr(1, w[0].length - 1), m.className = w[1]) : "#" == u.charAt(0) ? m.id = u.substr(1, u.length - 1) : m.className = u; | |
p += q | |
} | |
n.append(m); | |
n = d(m) | |
} else if (">" == h) n = n.parent(); | |
else if ("l" == h && k.bPaginate && k.bLengthChange) t = jb(a); | |
else if ("f" == h && k.bFilter) t = Ea(a); | |
else if ("r" == h && k.bProcessing) t = La(a); | |
else if ("t" == h) t = Ha(a); | |
else if ("i" == h && k.bInfo) t = Qb(a); | |
else if ("p" == h && k.bPaginate) t = X(a); | |
else if (0 !== T.ext.feature.length) | |
for (m = T.ext.feature, q = 0, w = m.length; q < w; q++) | |
if (h == m[q].cFeature) { | |
t = m[q].fnInit(a); | |
break | |
} | |
t && (m = a.aanFeatures, m[h] || (m[h] = []), m[h].push(t), n.append(t)) | |
} | |
f.replaceWith(n); | |
a.nHolding = null | |
} | |
function ua(a, c) { | |
var f = d(c).children("tr"), | |
k, n, e, t, h, m, w, u, q, p; | |
a.splice(0, a.length); | |
e = 0; | |
for (m = f.length; e < m; e++) a.push([]); | |
e = 0; | |
for (m = f.length; e < m; e++) | |
for (k = f[e], n = k.firstChild; n;) { | |
if ("TD" == n.nodeName.toUpperCase() || "TH" == n.nodeName.toUpperCase()) { | |
u = 1 * n.getAttribute("colspan"); | |
q = 1 * n.getAttribute("rowspan"); | |
u = u && 0 !== u && 1 !== u ? u : 1; | |
q = q && 0 !== q && 1 !== q ? q : 1; | |
t = 0; | |
for (h = a[e]; h[t];) t++; | |
w = t; | |
p = 1 === u ? !0 : !1; | |
for (h = 0; h < u; h++) | |
for (t = 0; t < q; t++) a[e + t][w + h] = { | |
cell: n, | |
unique: p | |
}, a[e + t].nTr = k | |
} | |
n = n.nextSibling | |
} | |
} | |
function Da(a, d, c) { | |
var f = []; | |
c || (c = a.aoHeader, d && (c = [], ua(c, d))); | |
d = 0; | |
for (var k = c.length; d < k; d++) | |
for (var n = 0, e = c[d].length; n < e; n++) !c[d][n].unique || f[n] && a.bSortCellsTop || (f[n] = c[d][n].cell); | |
return f | |
} | |
function S(a, c, f) { | |
qa(a, "aoServerParams", "serverParams", [c]); | |
if (c && d.isArray(c)) { | |
var k = {}, | |
n = /(.*?)\[\]$/; | |
d.each(c, function(a, d) { | |
var c = d.name.match(n); | |
c ? (c = c[0], k[c] || (k[c] = []), k[c].push(d.value)) : k[d.name] = d.value | |
}); | |
c = k | |
} | |
var e, t = a.ajax, | |
h = a.oInstance, | |
m = function(d) { | |
qa(a, null, "xhr", [a, d, a.jqXHR]); | |
f(d) | |
}; | |
if (d.isPlainObject(t) && t.data) { | |
e = t.data; | |
var w = d.isFunction(e) ? e(c, a) : e; | |
c = d.isFunction(e) && w ? w : d.extend(!0, c, w); | |
delete t.data | |
} | |
w = { | |
data: c, | |
success: function(d) { | |
var c = d.error || d.sError; | |
c && lb(a, 0, c); | |
a.json = d; | |
m(d) | |
}, | |
dataType: "json", | |
cache: !1, | |
type: a.sServerMethod, | |
error: function(c, f) { | |
var k = qa(a, null, "xhr", [a, null, a.jqXHR]); - 1 === d.inArray(!0, k) && ("parsererror" == f ? lb(a, 0, "Invalid JSON response", 1) : 4 === c.readyState && lb(a, 0, "Ajax error", 7)); | |
Ga(a, !1) | |
} | |
}; | |
a.oAjaxData = c; | |
qa(a, null, "preXhr", [a, c]); | |
a.fnServerData ? a.fnServerData.call(h, a.sAjaxSource, d.map(c, function(a, d) { | |
return { | |
name: d, | |
value: a | |
} | |
}), m, a) : a.sAjaxSource || "string" === typeof t ? a.jqXHR = d.ajax(d.extend(w, { | |
url: t || a.sAjaxSource | |
})) : d.isFunction(t) ? a.jqXHR = t.call(h, c, m, a) : (a.jqXHR = d.ajax(d.extend(w, t)), t.data = e) | |
} | |
function wa(a) { | |
return a.bAjaxDataGet ? (a.iDraw++, Ga(a, !0), S(a, ta(a), function(d) { | |
na(a, d) | |
}), !1) : !0 | |
} | |
function ta(a) { | |
var c = a.aoColumns, | |
f = c.length, | |
k = a.oFeatures, | |
n = a.oPreviousSearch, | |
e = a.aoPreSearchCols, | |
t, h = [], | |
m, w, u, q = va(a); | |
t = a._iDisplayStart; | |
m = !1 !== k.bPaginate ? a._iDisplayLength : -1; | |
var p = function(a, d) { | |
h.push({ | |
name: a, | |
value: d | |
}) | |
}; | |
p("sEcho", a.iDraw); | |
p("iColumns", f); | |
p("sColumns", Qa(c, "sName").join(",")); | |
p("iDisplayStart", t); | |
p("iDisplayLength", m); | |
var C = { | |
draw: a.iDraw, | |
columns: [], | |
order: [], | |
start: t, | |
length: m, | |
search: { | |
value: n.sSearch, | |
regex: n.bRegex | |
} | |
}; | |
for (t = 0; t < f; t++) w = c[t], u = e[t], m = "function" == typeof w.mData ? "function" : w.mData, C.columns.push({ | |
data: m, | |
name: w.sName, | |
searchable: w.bSearchable, | |
orderable: w.bSortable, | |
search: { | |
value: u.sSearch, | |
regex: u.bRegex | |
} | |
}), p("mDataProp_" + t, m), k.bFilter && (p("sSearch_" + t, u.sSearch), p("bRegex_" + t, u.bRegex), p("bSearchable_" + t, w.bSearchable)), k.bSort && p("bSortable_" + t, w.bSortable); | |
k.bFilter && (p("sSearch", n.sSearch), p("bRegex", n.bRegex)); | |
k.bSort && (d.each(q, function(a, d) { | |
C.order.push({ | |
column: d.col, | |
dir: d.dir | |
}); | |
p("iSortCol_" + a, d.col); | |
p("sSortDir_" + a, d.dir) | |
}), p("iSortingCols", q.length)); | |
c = T.ext.legacy.ajax; | |
return null === c ? a.sAjaxSource ? h : C : c ? h : C | |
} | |
function na(a, d) { | |
var c = ea(a, d), | |
f = d.sEcho !== m ? d.sEcho : d.draw, | |
k = d.iTotalRecords !== m ? d.iTotalRecords : d.recordsTotal, | |
n = d.iTotalDisplayRecords !== m ? d.iTotalDisplayRecords : d.recordsFiltered; | |
if (f) { | |
if (1 * f < a.iDraw) return; | |
a.iDraw = 1 * f | |
} | |
Q(a); | |
a._iRecordsTotal = parseInt(k, 10); | |
a._iRecordsDisplay = parseInt(n, 10); | |
f = 0; | |
for (k = c.length; f < k; f++) F(a, c[f]); | |
a.aiDisplay = a.aiDisplayMaster.slice(); | |
a.bAjaxDataGet = !1; | |
R(a); | |
a._bInitComplete || ib(a, d); | |
a.bAjaxDataGet = !0; | |
Ga(a, !1) | |
} | |
function ea(a, c) { | |
var f = d.isPlainObject(a.ajax) && a.ajax.dataSrc !== m ? a.ajax.dataSrc : a.sAjaxDataProp; | |
return "data" === f ? c.aaData || c[f] : "" !== f ? M(f)(c) : c | |
} | |
function Ea(a) { | |
var c = a.oClasses, | |
f = a.sTableId, | |
k = a.oLanguage, | |
n = a.oPreviousSearch, | |
t = a.aanFeatures, | |
h = '<input type="search" class="' + c.sFilterInput + '"/>', | |
m = k.sSearch, | |
m = m.match(/_INPUT_/) ? m.replace("_INPUT_", h) : m + h, | |
c = d("<div/>", { | |
id: t.f ? null : f + "_filter", | |
class: c.sFilter | |
}).append(d("<label/>").append(m)), | |
t = function() { | |
var d = this.value ? this.value : ""; | |
d != n.sSearch && (ja(a, { | |
sSearch: d, | |
bRegex: n.bRegex, | |
bSmart: n.bSmart, | |
bCaseInsensitive: n.bCaseInsensitive | |
}), a._iDisplayStart = 0, R(a)) | |
}, | |
h = null !== a.searchDelay ? a.searchDelay : "ssp" === Wa(a) ? 400 : 0, | |
w = d("input", c).val(n.sSearch).attr("placeholder", k.sSearchPlaceholder).on("keyup.DT search.DT input.DT paste.DT cut.DT", h ? ka(t, h) : t).on("keypress.DT", function(a) { | |
if (13 == a.keyCode) return !1 | |
}).attr("aria-controls", f); | |
d(a.nTable).on("search.dt.DT", function(d, c) { | |
if (a === c) try { | |
w[0] !== e.activeElement && w.val(n.sSearch) | |
} catch (sc) {} | |
}); | |
return c[0] | |
} | |
function ja(a, d, c) { | |
var f = a.oPreviousSearch, | |
k = a.aoPreSearchCols, | |
n = function(a) { | |
f.sSearch = a.sSearch; | |
f.bRegex = a.bRegex; | |
f.bSmart = a.bSmart; | |
f.bCaseInsensitive = a.bCaseInsensitive | |
}; | |
D(a); | |
if ("ssp" != Wa(a)) { | |
xa(a, d.sSearch, c, d.bEscapeRegex !== m ? !d.bEscapeRegex : d.bRegex, d.bSmart, d.bCaseInsensitive); | |
n(d); | |
for (d = 0; d < k.length; d++) ob(a, k[d].sSearch, d, k[d].bEscapeRegex !== m ? !k[d].bEscapeRegex : k[d].bRegex, k[d].bSmart, k[d].bCaseInsensitive); | |
hb(a) | |
} else n(d); | |
a.bFiltered = !0; | |
qa(a, null, "search", [a]) | |
} | |
function hb(a) { | |
for (var c = T.ext.search, f = a.aiDisplay, k, n, e = 0, t = c.length; e < t; e++) { | |
for (var h = [], m = 0, w = f.length; m < w; m++) n = f[m], k = a.aoData[n], c[e](a, k._aFilterData, n, k._aData, m) && h.push(n); | |
f.length = 0; | |
d.merge(f, h) | |
} | |
} | |
function ob(a, d, c, f, k, n) { | |
if ("" !== d) { | |
var e = [], | |
t = a.aiDisplay; | |
f = P(d, f, k, n); | |
for (k = 0; k < t.length; k++) d = a.aoData[t[k]]._aFilterData[c], f.test(d) && e.push(t[k]); | |
a.aiDisplay = e | |
} | |
} | |
function xa(a, d, c, f, k, n) { | |
f = P(d, f, k, n); | |
n = a.oPreviousSearch.sSearch; | |
var e = a.aiDisplayMaster, | |
t; | |
k = []; | |
0 !== T.ext.search.length && (c = !0); | |
t = z(a); | |
if (0 >= d.length) a.aiDisplay = e.slice(); | |
else { | |
if (t || c || n.length > d.length || 0 !== d.indexOf(n) || a.bSorted) a.aiDisplay = e.slice(); | |
d = a.aiDisplay; | |
for (c = 0; c < d.length; c++) f.test(a.aoData[d[c]]._sFilterRow) && k.push(d[c]); | |
a.aiDisplay = k | |
} | |
} | |
function P(a, c, f, k) { | |
a = c ? a : Na(a); | |
f && (a = "^(?=.*?" + d.map(a.match(/"[^"]+"|[^ ]+/g) || [""], function(a) { | |
if ('"' === a.charAt(0)) { | |
var d = a.match(/^"(.*)"$/); | |
a = d ? d[1] : a | |
} | |
return a.replace('"', "") | |
}).join(")(?=.*?") + ").*$"); | |
return RegExp(a, k ? "i" : "") | |
} | |
function z(a) { | |
var d = a.aoColumns, | |
c, f, k, n, e, t, h, m, w = T.ext.type.search; | |
c = !1; | |
f = 0; | |
for (n = a.aoData.length; f < n; f++) | |
if (m = a.aoData[f], !m._aFilterData) { | |
t = []; | |
k = 0; | |
for (e = d.length; k < e; k++) c = d[k], c.bSearchable ? (h = J(a, f, k, "filter"), w[c.sType] && (h = w[c.sType](h)), null === h && (h = ""), "string" !== typeof h && h.toString && (h = h.toString())) : h = "", h.indexOf && -1 !== h.indexOf("&") && (Tb.innerHTML = h, h = wb ? Tb.textContent : Tb.innerText), h.replace && (h = h.replace(/[\r\n]/g, "")), t.push(h); | |
m._aFilterData = t; | |
m._sFilterRow = t.join(" "); | |
c = !0 | |
} | |
return c | |
} | |
function Db(a) { | |
return { | |
search: a.sSearch, | |
smart: a.bSmart, | |
regex: a.bRegex, | |
caseInsensitive: a.bCaseInsensitive | |
} | |
} | |
function Eb(a) { | |
return { | |
sSearch: a.search, | |
bSmart: a.smart, | |
bRegex: a.regex, | |
bCaseInsensitive: a.caseInsensitive | |
} | |
} | |
function Qb(a) { | |
var c = a.sTableId, | |
f = a.aanFeatures.i, | |
k = d("<div/>", { | |
class: a.oClasses.sInfo, | |
id: f ? null : c + "_info" | |
}); | |
f || (a.aoDrawCallback.push({ | |
fn: Ia, | |
sName: "information" | |
}), k.attr("role", "status").attr("aria-live", "polite"), d(a.nTable).attr("aria-describedby", c + "_info")); | |
return k[0] | |
} | |
function Ia(a) { | |
var c = a.aanFeatures.i; | |
if (0 !== c.length) { | |
var f = a.oLanguage, | |
k = a._iDisplayStart + 1, | |
n = a.fnDisplayEnd(), | |
e = a.fnRecordsTotal(), | |
t = a.fnRecordsDisplay(), | |
h = t ? f.sInfo : f.sInfoEmpty; | |
t !== e && (h += " " + f.sInfoFiltered); | |
h += f.sInfoPostFix; | |
h = za(a, h); | |
f = f.fnInfoCallback; | |
null !== f && (h = f.call(a.oInstance, a, k, n, e, t, h)); | |
d(c).html(h) | |
} | |
} | |
function za(a, d) { | |
var c = a.fnFormatNumber, | |
f = a._iDisplayStart + 1, | |
k = a._iDisplayLength, | |
n = a.fnRecordsDisplay(), | |
e = -1 === k; | |
return d.replace(/_START_/g, c.call(a, f)).replace(/_END_/g, c.call(a, a.fnDisplayEnd())).replace(/_MAX_/g, c.call(a, a.fnRecordsTotal())).replace(/_TOTAL_/g, c.call(a, n)).replace(/_PAGE_/g, c.call(a, e ? 1 : Math.ceil(f / k))).replace(/_PAGES_/g, c.call(a, e ? 1 : Math.ceil(n / k))) | |
} | |
function Ta(a) { | |
var d, c, f = a.iInitDisplayStart, | |
k = a.aoColumns, | |
n; | |
c = a.oFeatures; | |
var e = a.bDeferLoading; | |
if (a.bInitialised) { | |
da(a); | |
Y(a); | |
Z(a, a.aoHeader); | |
Z(a, a.aoFooter); | |
Ga(a, !0); | |
c.bAutoWidth && ub(a); | |
d = 0; | |
for (c = k.length; d < c; d++) n = k[d], n.sWidth && (n.nTh.style.width = ia(n.sWidth)); | |
qa(a, null, "preInit", [a]); | |
aa(a); | |
k = Wa(a); | |
if ("ssp" != k || e) "ajax" == k ? S(a, [], function(c) { | |
var k = ea(a, c); | |
for (d = 0; d < k.length; d++) F(a, k[d]); | |
a.iInitDisplayStart = f; | |
aa(a); | |
Ga(a, !1); | |
ib(a, c) | |
}, a) : (Ga(a, !1), ib(a)) | |
} else setTimeout(function() { | |
Ta(a) | |
}, 200) | |
} | |
function ib(a, d) { | |
a._bInitComplete = !0; | |
(d || a.oInit.aaData) && u(a); | |
qa(a, null, "plugin-init", [a, d]); | |
qa(a, "aoInitComplete", "init", [a, d]) | |
} | |
function Ib(a, d) { | |
var c = parseInt(d, 10); | |
a._iDisplayLength = c; | |
ic(a); | |
qa(a, null, "length", [a, c]) | |
} | |
function jb(a) { | |
for (var c = a.oClasses, f = a.sTableId, k = a.aLengthMenu, n = d.isArray(k[0]), e = n ? k[0] : k, k = n ? k[1] : k, n = d("<select/>", { | |
name: f + "_length", | |
"aria-controls": f, | |
class: c.sLengthSelect | |
}), t = 0, h = e.length; t < h; t++) n[0][t] = new Option(k[t], e[t]); | |
var m = d("<div><label/></div>").addClass(c.sLength); | |
a.aanFeatures.l || (m[0].id = f + "_length"); | |
m.children().append(a.oLanguage.sLengthMenu.replace("_MENU_", n[0].outerHTML)); | |
d("select", m).val(a._iDisplayLength).on("change.DT", function() { | |
Ib(a, d(this).val()); | |
R(a) | |
}); | |
d(a.nTable).on("length.dt.DT", function(c, f, k) { | |
a === f && d("select", m).val(k) | |
}); | |
return m[0] | |
} | |
function X(a) { | |
var c = a.sPaginationType, | |
f = T.ext.pager[c], | |
k = "function" === typeof f, | |
n = function(a) { | |
R(a) | |
}, | |
c = d("<div/>").addClass(a.oClasses.sPaging + c)[0], | |
e = a.aanFeatures; | |
k || f.fnInit(a, c, n); | |
e.p || (c.id = a.sTableId + "_paginate", a.aoDrawCallback.push({ | |
fn: function(a) { | |
if (k) { | |
var d = a._iDisplayStart, | |
c = a._iDisplayLength, | |
t = a.fnRecordsDisplay(), | |
h = -1 === c, | |
d = h ? 0 : Math.ceil(d / c), | |
c = h ? 1 : Math.ceil(t / c), | |
t = f(d, c), | |
m, h = 0; | |
for (m = e.p.length; h < m; h++) jc(a, "pageButton")(a, e.p[h], h, t, d, c) | |
} else f.fnUpdate(a, n) | |
}, | |
sName: "pagination" | |
})); | |
return c | |
} | |
function kb(a, d, c) { | |
var f = a._iDisplayStart, | |
k = a._iDisplayLength, | |
n = a.fnRecordsDisplay(); | |
0 === n || -1 === k ? f = 0 : "number" === typeof d ? (f = d * k, f > n && (f = 0)) : "first" == d ? f = 0 : "previous" == d ? (f = 0 <= k ? f - k : 0, 0 > f && (f = 0)) : "next" == d ? f + k < n && (f += k) : "last" == d ? f = Math.floor((n - 1) / k) * k : lb(a, 0, "Unknown paging action: " + d, 5); | |
d = a._iDisplayStart !== f; | |
a._iDisplayStart = f; | |
d && (qa(a, null, "page", [a]), c && R(a)); | |
return d | |
} | |
function La(a) { | |
return d("<div/>", { | |
id: a.aanFeatures.r ? null : a.sTableId + "_processing", | |
class: a.oClasses.sProcessing | |
}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0] | |
} | |
function Ga(a, c) { | |
a.oFeatures.bProcessing && d(a.aanFeatures.r).css("display", c ? "block" : "none"); | |
qa(a, null, "processing", [a, c]) | |
} | |
function Ha(a) { | |
var c = d(a.nTable); | |
c.attr("role", "grid"); | |
var f = a.oScroll; | |
if ("" === f.sX && "" === f.sY) return a.nTable; | |
var k = f.sX, | |
n = f.sY, | |
e = a.oClasses, | |
t = c.children("caption"), | |
h = t.length ? t[0]._captionSide : null, | |
m = d(c[0].cloneNode(!1)), | |
w = d(c[0].cloneNode(!1)), | |
u = c.children("tfoot"); | |
u.length || (u = null); | |
m = d("<div/>", { | |
class: e.sScrollWrapper | |
}).append(d("<div/>", { | |
class: e.sScrollHead | |
}).css({ | |
overflow: "hidden", | |
position: "relative", | |
border: 0, | |
width: k ? k ? ia(k) : null : "100%" | |
}).append(d("<div/>", { | |
class: e.sScrollHeadInner | |
}).css({ | |
"box-sizing": "content-box", | |
width: f.sXInner || "100%" | |
}).append(m.removeAttr("id").css("margin-left", 0).append("top" === h ? t : null).append(c.children("thead"))))).append(d("<div/>", { | |
class: e.sScrollBody | |
}).css({ | |
position: "relative", | |
overflow: "auto", | |
width: k ? ia(k) : null | |
}).append(c)); | |
u && m.append(d("<div/>", { | |
class: e.sScrollFoot | |
}).css({ | |
overflow: "hidden", | |
border: 0, | |
width: k ? k ? ia(k) : null : "100%" | |
}).append(d("<div/>", { | |
class: e.sScrollFootInner | |
}).append(w.removeAttr("id").css("margin-left", 0).append("bottom" === h ? t : null).append(c.children("tfoot"))))); | |
var c = m.children(), | |
q = c[0], | |
e = c[1], | |
p = u ? c[2] : null; | |
if (k) d(e).on("scroll.DT", function() { | |
var a = this.scrollLeft; | |
q.scrollLeft = a; | |
u && (p.scrollLeft = a) | |
}); | |
d(e).css(n && f.bCollapse ? "max-height" : "height", n); | |
a.nScrollHead = q; | |
a.nScrollBody = e; | |
a.nScrollFoot = p; | |
a.aoDrawCallback.push({ | |
fn: Sa, | |
sName: "scrolling" | |
}); | |
return m[0] | |
} | |
function Sa(a) { | |
var c = a.oScroll, | |
f = c.sX, | |
k = c.sXInner, | |
n = c.sY, | |
c = c.iBarWidth, | |
e = d(a.nScrollHead), | |
t = e[0].style, | |
h = e.children("div"), | |
w = h[0].style, | |
q = h.children("table"), | |
h = a.nScrollBody, | |
p = d(h), | |
v = h.style, | |
A = d(a.nScrollFoot).children("div"), | |
B = A.children("table"), | |
D = d(a.nTHead), | |
N = d(a.nTable), | |
z = N[0], | |
E = z.style, | |
F = a.nTFoot ? d(a.nTFoot) : null, | |
G = a.oBrowser, | |
K = G.bScrollOversize, | |
J = Qa(a.aoColumns, "nTh"), | |
H, I, L, O, M = [], | |
W = [], | |
va = [], | |
S = [], | |
U, Q = function(a) { | |
a = a.style; | |
a.paddingTop = "0"; | |
a.paddingBottom = "0"; | |
a.borderTopWidth = "0"; | |
a.borderBottomWidth = "0"; | |
a.height = 0 | |
}; | |
I = h.scrollHeight > h.clientHeight; | |
a.scrollBarVis !== I && a.scrollBarVis !== m ? (a.scrollBarVis = I, u(a)) : (a.scrollBarVis = I, N.children("thead, tfoot").remove(), F && (L = F.clone().prependTo(N), H = F.find("tr"), L = L.find("tr")), O = D.clone().prependTo(N), D = D.find("tr"), I = O.find("tr"), O.find("th, td").removeAttr("tabindex"), f || (v.width = "100%", e[0].style.width = "100%"), d.each(Da(a, O), function(d, c) { | |
U = C(a, d); | |
c.style.width = a.aoColumns[U].sWidth | |
}), F && Ua(function(a) { | |
a.style.width = "" | |
}, L), e = N.outerWidth(), "" === f ? (E.width = "100%", K && (N.find("tbody").height() > h.offsetHeight || "scroll" == p.css("overflow-y")) && (E.width = ia(N.outerWidth() - c)), e = N.outerWidth()) : "" !== k && (E.width = ia(k), e = N.outerWidth()), Ua(Q, I), Ua(function(a) { | |
va.push(a.innerHTML); | |
M.push(ia(d(a).css("width"))) | |
}, I), Ua(function(a, c) { | |
-1 !== d.inArray(a, J) && (a.style.width = M[c]) | |
}, D), d(I).height(0), F && (Ua(Q, L), Ua(function(a) { | |
S.push(a.innerHTML); | |
W.push(ia(d(a).css("width"))) | |
}, L), Ua(function(a, d) { | |
a.style.width = W[d] | |
}, H), d(L).height(0)), Ua(function(a, d) { | |
a.innerHTML = '<div class="dataTables_sizing" style="height:0;overflow:hidden;">' + va[d] + "</div>"; | |
a.style.width = M[d] | |
}, I), F && Ua(function(a, d) { | |
a.innerHTML = '<div class="dataTables_sizing" style="height:0;overflow:hidden;">' + S[d] + "</div>"; | |
a.style.width = W[d] | |
}, L), N.outerWidth() < e ? (H = h.scrollHeight > h.offsetHeight || "scroll" == p.css("overflow-y") ? e + c : e, K && (h.scrollHeight > h.offsetHeight || "scroll" == p.css("overflow-y")) && (E.width = ia(H - c)), "" !== f && "" === k || lb(a, 1, "Possible column misalignment", 6)) : H = "100%", v.width = ia(H), t.width = ia(H), F && (a.nScrollFoot.style.width = ia(H)), !n && K && (v.height = ia(z.offsetHeight + c)), f = N.outerWidth(), q[0].style.width = ia(f), w.width = ia(f), k = N.height() > h.clientHeight || "scroll" == p.css("overflow-y"), n = "padding" + (G.bScrollbarLeft ? "Left" : "Right"), w[n] = k ? c + "px" : "0px", F && (B[0].style.width = ia(f), A[0].style.width = ia(f), A[0].style[n] = k ? c + "px" : "0px"), N.children("colgroup").insertBefore(N.children("thead")), p.scroll(), !a.bSorted && !a.bFiltered || a._drawHold || (h.scrollTop = 0)) | |
} | |
function Ua(a, d, c) { | |
for (var f = 0, k = 0, n = d.length, e, t; k < n;) { | |
e = d[k].firstChild; | |
for (t = c ? c[k].firstChild : null; e;) 1 === e.nodeType && (c ? a(e, t, f) : a(e, f), f++), e = e.nextSibling, t = c ? t.nextSibling : null; | |
k++ | |
} | |
} | |
function ub(a) { | |
var f = a.nTable, | |
k = a.aoColumns, | |
n = a.oScroll, | |
e = n.sY, | |
t = n.sX, | |
h = n.sXInner, | |
m = k.length, | |
w = B(a, "bVisible"), | |
q = d("th", a.nTHead), | |
p = f.getAttribute("width"), | |
A = f.parentNode, | |
D = !1, | |
N, z, E = a.oBrowser, | |
n = E.bScrollOversize; | |
(N = f.style.width) && -1 !== N.indexOf("%") && (p = N); | |
for (N = 0; N < w.length; N++) z = k[w[N]], null !== z.sWidth && (z.sWidth = ab(z.sWidthOrig, A), D = !0); | |
if (n || !D && !t && !e && m == v(a) && m == q.length) | |
for (N = 0; N < m; N++) w = C(a, N), null !== w && (k[w].sWidth = ia(q.eq(N).width())); | |
else { | |
m = d(f).clone().css("visibility", "hidden").removeAttr("id"); | |
m.find("tbody tr").remove(); | |
var F = d("<tr/>").appendTo(m.find("tbody")); | |
m.find("thead, tfoot").remove(); | |
m.append(d(a.nTHead).clone()).append(d(a.nTFoot).clone()); | |
m.find("tfoot th, tfoot td").css("width", ""); | |
q = Da(a, m.find("thead")[0]); | |
for (N = 0; N < w.length; N++) z = k[w[N]], q[N].style.width = null !== z.sWidthOrig && "" !== z.sWidthOrig ? ia(z.sWidthOrig) : "", z.sWidthOrig && t && d(q[N]).append(d("<div/>").css({ | |
width: z.sWidthOrig, | |
margin: 0, | |
padding: 0, | |
border: 0, | |
height: 1 | |
})); | |
if (a.aoData.length) | |
for (N = 0; N < w.length; N++) D = w[N], z = k[D], d(yb(a, D)).clone(!1).append(z.sContentPadding).appendTo(F); | |
d("[name]", m).removeAttr("name"); | |
z = d("<div/>").css(t || e ? { | |
position: "absolute", | |
top: 0, | |
left: 0, | |
height: 1, | |
right: 0, | |
overflow: "hidden" | |
} : {}).append(m).appendTo(A); | |
t && h ? m.width(h) : t ? (m.css("width", "auto"), m.removeAttr("width"), m.width() < A.clientWidth && p && m.width(A.clientWidth)) : e ? m.width(A.clientWidth) : p && m.width(p); | |
for (N = e = 0; N < w.length; N++) A = d(q[N]), h = A.outerWidth() - A.width(), A = E.bBounding ? Math.ceil(q[N].getBoundingClientRect().width) : A.outerWidth(), e += A, k[w[N]].sWidth = ia(A - h); | |
f.style.width = ia(e); | |
z.remove() | |
} | |
p && (f.style.width = ia(p)); | |
!p && !t || a._reszEvt || (f = function() { | |
d(c).on("resize.DT-" + a.sInstance, ka(function() { | |
u(a) | |
})) | |
}, n ? setTimeout(f, 1e3) : f(), a._reszEvt = !0) | |
} | |
function ab(a, c) { | |
if (!a) return 0; | |
var f = d("<div/>").css("width", ia(a)).appendTo(c || e.body), | |
k = f[0].offsetWidth; | |
f.remove(); | |
return k | |
} | |
function yb(a, c) { | |
var f = Ma(a, c); | |
if (0 > f) return null; | |
var k = a.aoData[f]; | |
return k.nTr ? k.anCells[c] : d("<td/>").html(J(a, f, c, "display"))[0] | |
} | |
function Ma(a, d) { | |
for (var c, f = -1, k = -1, n = 0, e = a.aoData.length; n < e; n++) c = J(a, n, d, "display") + "", c = c.replace(Ub, ""), c = c.replace(/ /g, " "), c.length > f && (f = c.length, k = n); | |
return k | |
} | |
function ia(a) { | |
return null === a ? "0px" : "number" == typeof a ? 0 > a ? "0px" : a + "px" : a.match(/\d$/) ? a + "px" : a | |
} | |
function va(a) { | |
var c, f, k = [], | |
n = a.aoColumns, | |
e, t, h, w; | |
c = a.aaSortingFixed; | |
f = d.isPlainObject(c); | |
var u = []; | |
e = function(a) { | |
a.length && !d.isArray(a[0]) ? u.push(a) : d.merge(u, a) | |
}; | |
d.isArray(c) && e(c); | |
f && c.pre && e(c.pre); | |
e(a.aaSorting); | |
f && c.post && e(c.post); | |
for (a = 0; a < u.length; a++) | |
for (w = u[a][0], e = n[w].aDataSort, c = 0, f = e.length; c < f; c++) t = e[c], h = n[t].sType || "string", u[a]._idx === m && (u[a]._idx = d.inArray(u[a][1], n[t].asSorting)), k.push({ | |
src: w, | |
col: t, | |
dir: u[a][1], | |
index: u[a]._idx, | |
type: h, | |
formatter: T.ext.type.order[h + "-pre"] | |
}); | |
return k | |
} | |
function vb(a) { | |
var d, c, f = [], | |
k = T.ext.type.order, | |
n = a.aoData, | |
e = 0, | |
t, h = a.aiDisplayMaster, | |
m; | |
D(a); | |
m = va(a); | |
d = 0; | |
for (c = m.length; d < c; d++) t = m[d], t.formatter && e++, Lb(a, t.col); | |
if ("ssp" != Wa(a) && 0 !== m.length) { | |
d = 0; | |
for (c = h.length; d < c; d++) f[h[d]] = d; | |
e === m.length ? h.sort(function(a, d) { | |
var c, k, e, t, h = m.length, | |
w = n[a]._aSortData, | |
u = n[d]._aSortData; | |
for (e = 0; e < h; e++) | |
if (t = m[e], c = w[t.col], k = u[t.col], c = c < k ? -1 : c > k ? 1 : 0, 0 !== c) return "asc" === t.dir ? c : -c; | |
c = f[a]; | |
k = f[d]; | |
return c < k ? -1 : c > k ? 1 : 0 | |
}) : h.sort(function(a, d) { | |
var c, e, t, h, w = m.length, | |
u = n[a]._aSortData, | |
q = n[d]._aSortData; | |
for (t = 0; t < w; t++) | |
if (h = m[t], c = u[h.col], e = q[h.col], h = k[h.type + "-" + h.dir] || k["string-" + h.dir], c = h(c, e), 0 !== c) return c; | |
c = f[a]; | |
e = f[d]; | |
return c < e ? -1 : c > e ? 1 : 0 | |
}) | |
} | |
a.bSorted = !0 | |
} | |
function Jb(a) { | |
var d, c, f = a.aoColumns, | |
k = va(a); | |
a = a.oLanguage.oAria; | |
for (var n = 0, e = f.length; n < e; n++) { | |
c = f[n]; | |
var t = c.asSorting; | |
d = c.sTitle.replace(/<.*?>/g, ""); | |
var h = c.nTh; | |
h.removeAttribute("aria-sort"); | |
c.bSortable && (0 < k.length && k[0].col == n ? (h.setAttribute("aria-sort", "asc" == k[0].dir ? "ascending" : "descending"), c = t[k[0].index + 1] || t[0]) : c = t[0], d += "asc" === c ? a.sSortAscending : a.sSortDescending); | |
h.setAttribute("aria-label", d) | |
} | |
} | |
function ma(a, c, f, k) { | |
var n = a.aaSorting, | |
e = a.aoColumns[c].asSorting, | |
t = function(a, c) { | |
var f = a._idx; | |
f === m && (f = d.inArray(a[1], e)); | |
return f + 1 < e.length ? f + 1 : c ? null : 0 | |
}; | |
"number" === typeof n[0] && (n = a.aaSorting = [n]); | |
f && a.oFeatures.bSortMulti ? (f = d.inArray(c, Qa(n, "0")), -1 !== f ? (c = t(n[f], !0), null === c && 1 === n.length && (c = 0), null === c ? n.splice(f, 1) : (n[f][1] = e[c], n[f]._idx = c)) : (n.push([c, e[0], 0]), n[n.length - 1]._idx = 0)) : n.length && n[0][0] == c ? (c = t(n[0]), n.length = 1, n[0][1] = e[c], n[0]._idx = c) : (n.length = 0, n.push([c, e[0]]), n[0]._idx = 0); | |
aa(a); | |
"function" == typeof k && k(a) | |
} | |
function Ab(a, d, c, f) { | |
var k = a.aoColumns[c]; | |
qb(d, {}, function(d) { | |
!1 !== k.bSortable && (a.oFeatures.bProcessing ? (Ga(a, !0), setTimeout(function() { | |
ma(a, c, d.shiftKey, f); | |
"ssp" !== Wa(a) && Ga(a, !1) | |
}, 0)) : ma(a, c, d.shiftKey, f)) | |
}) | |
} | |
function pb(a) { | |
var c = a.aLastSort, | |
f = a.oClasses.sSortColumn, | |
k = va(a), | |
n = a.oFeatures, | |
e, t; | |
if (n.bSort && n.bSortClasses) { | |
n = 0; | |
for (e = c.length; n < e; n++) t = c[n].src, d(Qa(a.aoData, "anCells", t)).removeClass(f + (2 > n ? n + 1 : 3)); | |
n = 0; | |
for (e = k.length; n < e; n++) t = k[n].src, d(Qa(a.aoData, "anCells", t)).addClass(f + (2 > n ? n + 1 : 3)) | |
} | |
a.aLastSort = k | |
} | |
function Lb(a, d) { | |
var c = a.aoColumns[d], | |
f = T.ext.order[c.sSortDataType], | |
k; | |
f && (k = f.call(a.oInstance, a, d, A(a, d))); | |
for (var n, e = T.ext.type.order[c.sType + "-pre"], t = 0, h = a.aoData.length; t < h; t++) | |
if (c = a.aoData[t], c._aSortData || (c._aSortData = []), !c._aSortData[d] || f) n = f ? k[t] : J(a, t, d, "sort"), c._aSortData[d] = e ? e(n) : n | |
} | |
function Va(a) { | |
if (a.oFeatures.bStateSave && !a.bDestroying) { | |
var c = { | |
time: +new Date, | |
start: a._iDisplayStart, | |
length: a._iDisplayLength, | |
order: d.extend(!0, [], a.aaSorting), | |
search: Db(a.oPreviousSearch), | |
columns: d.map(a.aoColumns, function(d, c) { | |
return { | |
visible: d.bVisible, | |
search: Db(a.aoPreSearchCols[c]) | |
} | |
}) | |
}; | |
qa(a, "aoStateSaveParams", "stateSaveParams", [a, c]); | |
a.oSavedState = c; | |
a.fnStateSaveCallback.call(a.oInstance, a, c) | |
} | |
} | |
function cc(a, c, f) { | |
var k, n, e = a.aoColumns; | |
c = function(c) { | |
if (c && c.time) { | |
var h = qa(a, "aoStateLoadParams", "stateLoadParams", [a, t]); | |
if (-1 === d.inArray(!1, h) && (h = a.iStateDuration, !(0 < h && c.time < +new Date - 1e3 * h || c.columns && e.length !== c.columns.length))) { | |
a.oLoadedState = d.extend(!0, {}, t); | |
c.start !== m && (a._iDisplayStart = c.start, a.iInitDisplayStart = c.start); | |
c.length !== m && (a._iDisplayLength = c.length); | |
c.order !== m && (a.aaSorting = [], d.each(c.order, function(d, c) { | |
a.aaSorting.push(c[0] >= e.length ? [0, c[1]] : c) | |
})); | |
c.search !== m && d.extend(a.oPreviousSearch, Eb(c.search)); | |
if (c.columns) | |
for (k = 0, n = c.columns.length; k < n; k++) h = c.columns[k], h.visible !== m && (e[k].bVisible = h.visible), h.search !== m && d.extend(a.aoPreSearchCols[k], Eb(h.search)); | |
qa(a, "aoStateLoaded", "stateLoaded", [a, t]) | |
} | |
} | |
f() | |
}; | |
if (a.oFeatures.bStateSave) { | |
var t = a.fnStateLoadCallback.call(a.oInstance, a, c); | |
t !== m && c(t) | |
} else f() | |
} | |
function Bb(a) { | |
var c = T.settings; | |
a = d.inArray(a, Qa(c, "nTable")); | |
return -1 !== a ? c[a] : null | |
} | |
function lb(a, d, f, k) { | |
f = "DataTables warning: " + (a ? "table id=" + a.sTableId + " - " : "") + f; | |
k && (f += ". For more information about this error, please see http://datatables.net/tn/" + k); | |
if (d) c.console && console.log && console.log(f); | |
else if (d = T.ext, d = d.sErrMode || d.errMode, a && qa(a, null, "error", [a, k, f]), "alert" == d) alert(f); | |
else { | |
if ("throw" == d) throw Error(f); | |
"function" == typeof d && d(a, k, f) | |
} | |
} | |
function Za(a, c, f, k) { | |
d.isArray(f) ? d.each(f, function(f, k) { | |
d.isArray(k) ? Za(a, c, k[0], k[1]) : Za(a, c, k) | |
}) : (k === m && (k = f), c[f] !== m && (a[k] = c[f])) | |
} | |
function hc(a, c, f) { | |
var k, n; | |
for (n in c) c.hasOwnProperty(n) && (k = c[n], d.isPlainObject(k) ? (d.isPlainObject(a[n]) || (a[n] = {}), d.extend(!0, a[n], k)) : a[n] = f && "data" !== n && "aaData" !== n && d.isArray(k) ? k.slice() : k); | |
return a | |
} | |
function qb(a, c, f) { | |
d(a).on("click.DT", c, function(d) { | |
a.blur(); | |
f(d) | |
}).on("keypress.DT", c, function(a) { | |
13 === a.which && (a.preventDefault(), f(a)) | |
}).on("selectstart.DT", function() { | |
return !1 | |
}) | |
} | |
function Aa(a, d, c, f) { | |
c && a[d].push({ | |
fn: c, | |
sName: f | |
}) | |
} | |
function qa(a, c, f, k) { | |
var n = []; | |
c && (n = d.map(a[c].slice().reverse(), function(d) { | |
return d.fn.apply(a.oInstance, k) | |
})); | |
null !== f && (c = d.Event(f + ".dt"), d(a.nTable).trigger(c, k), n.push(c.result)); | |
return n | |
} | |
function ic(a) { | |
var d = a._iDisplayStart, | |
c = a.fnDisplayEnd(), | |
f = a._iDisplayLength; | |
d >= c && (d = c - f); | |
d -= d % f; | |
if (-1 === f || 0 > d) d = 0; | |
a._iDisplayStart = d | |
} | |
function jc(a, c) { | |
var f = a.renderer, | |
k = T.ext.renderer[c]; | |
return d.isPlainObject(f) && f[c] ? k[f[c]] || k._ : "string" === typeof f ? k[f] || k._ : k._ | |
} | |
function Wa(a) { | |
return a.oFeatures.bServerSide ? "ssp" : a.ajax || a.sAjaxSource ? "ajax" : "dom" | |
} | |
function Pb(a, d) { | |
var c; | |
c = cb.numbers_length; | |
var f = Math.floor(c / 2); | |
d <= c ? c = Ba(0, d) : a <= f ? (c = Ba(0, c - 2), c.push("ellipsis"), c.push(d - 1)) : (a >= d - 1 - f ? c = Ba(d - (c - 2), d) : (c = Ba(a - f + 2, a + f - 1), c.push("ellipsis"), c.push(d - 1)), c.splice(0, 0, "ellipsis"), c.splice(0, 0, 0)); | |
c.DT_el = "span"; | |
return c | |
} | |
function ac(a) { | |
d.each({ | |
num: function(d) { | |
return gb(d, a) | |
}, | |
"num-fmt": function(d) { | |
return gb(d, a, Rb) | |
}, | |
"html-num": function(d) { | |
return gb(d, a, rb) | |
}, | |
"html-num-fmt": function(d) { | |
return gb(d, a, rb, Rb) | |
} | |
}, function(d, c) { | |
ra.type.order[d + a + "-pre"] = c; | |
d.match(/^html\-/) && (ra.type.search[d + a] = ra.type.search.html) | |
}) | |
} | |
function db(a) { | |
return function() { | |
var d = [Bb(this[T.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments)); | |
return T.ext.internal[a].apply(this, d) | |
} | |
} | |
var T = function(c) { | |
this.$ = function(a, d) { | |
return this.api(!0).$(a, d) | |
}; | |
this._ = function(a, d) { | |
return this.api(!0).rows(a, d).data() | |
}; | |
this.api = function(a) { | |
return a ? new ga(Bb(this[ra.iApiIndex])) : new ga(this) | |
}; | |
this.fnAddData = function(a, c) { | |
var f = this.api(!0), | |
k = d.isArray(a) && (d.isArray(a[0]) || d.isPlainObject(a[0])) ? f.rows.add(a) : f.row.add(a); | |
(c === m || c) && f.draw(); | |
return k.flatten().toArray() | |
}; | |
this.fnAdjustColumnSizing = function(a) { | |
var d = this.api(!0).columns.adjust(), | |
c = d.settings()[0], | |
f = c.oScroll; | |
a === m || a ? d.draw(!1) : ("" !== f.sX || "" !== f.sY) && Sa(c) | |
}; | |
this.fnClearTable = function(a) { | |
var d = this.api(!0).clear(); | |
(a === m || a) && d.draw() | |
}; | |
this.fnClose = function(a) { | |
this.api(!0).row(a).child.hide() | |
}; | |
this.fnDeleteRow = function(a, d, c) { | |
var f = this.api(!0); | |
a = f.rows(a); | |
var k = a.settings()[0], | |
n = k.aoData[a[0][0]]; | |
a.remove(); | |
d && d.call(this, k, n); | |
(c === m || c) && f.draw(); | |
return n | |
}; | |
this.fnDestroy = function(a) { | |
this.api(!0).destroy(a) | |
}; | |
this.fnDraw = function(a) { | |
this.api(!0).draw(a) | |
}; | |
this.fnFilter = function(a, d, c, f, k, n) { | |
k = this.api(!0); | |
null === d || d === m ? k.search(a, c, f, n) : k.column(d).search(a, c, f, n); | |
k.draw() | |
}; | |
this.fnGetData = function(a, d) { | |
var c = this.api(!0); | |
if (a !== m) { | |
var f = a.nodeName ? a.nodeName.toLowerCase() : ""; | |
return d !== m || "td" == f || "th" == f ? c.cell(a, d).data() : c.row(a).data() || null | |
} | |
return c.data().toArray() | |
}; | |
this.fnGetNodes = function(a) { | |
var d = this.api(!0); | |
return a !== m ? d.row(a).node() : d.rows().nodes().flatten().toArray() | |
}; | |
this.fnGetPosition = function(a) { | |
var d = this.api(!0), | |
c = a.nodeName.toUpperCase(); | |
return "TR" == c ? d.row(a).index() : "TD" == c || "TH" == c ? (a = d.cell(a).index(), [a.row, a.columnVisible, a.column]) : null | |
}; | |
this.fnIsOpen = function(a) { | |
return this.api(!0).row(a).child.isShown() | |
}; | |
this.fnOpen = function(a, d, c) { | |
return this.api(!0).row(a).child(d, c).show().child()[0] | |
}; | |
this.fnPageChange = function(a, d) { | |
var c = this.api(!0).page(a); | |
(d === m || d) && c.draw(!1) | |
}; | |
this.fnSetColumnVis = function(a, d, c) { | |
a = this.api(!0).column(a).visible(d); | |
(c === m || c) && a.columns.adjust().draw() | |
}; | |
this.fnSettings = function() { | |
return Bb(this[ra.iApiIndex]) | |
}; | |
this.fnSort = function(a) { | |
this.api(!0).order(a).draw() | |
}; | |
this.fnSortListener = function(a, d, c) { | |
this.api(!0).order.listener(a, d, c) | |
}; | |
this.fnUpdate = function(a, d, c, f, k) { | |
var n = this.api(!0); | |
c === m || null === c ? n.row(d).data(a) : n.cell(d, c).data(a); | |
(k === m || k) && n.columns.adjust(); | |
(f === m || f) && n.draw(); | |
return 0 | |
}; | |
this.fnVersionCheck = ra.fnVersionCheck; | |
var n = this, | |
e = c === m, | |
h = this.length; | |
e && (c = {}); | |
this.oApi = this.internal = ra.internal; | |
for (var u in T.ext.internal) u && (this[u] = db(u)); | |
this.each(function() { | |
var u = {}, | |
C = 1 < h ? hc(u, c, !0) : c, | |
v = 0, | |
A, u = this.getAttribute("id"), | |
B = !1, | |
D = T.defaults, | |
z = d(this); | |
if ("table" != this.nodeName.toLowerCase()) lb(null, 0, "Non-table node initialisation (" + this.nodeName + ")", 2); | |
else { | |
a(D); | |
f(D.column); | |
p(D, D, !0); | |
p(D.column, D.column, !0); | |
p(D, d.extend(C, z.data())); | |
var N = T.settings, | |
v = 0; | |
for (A = N.length; v < A; v++) { | |
var K = N[v]; | |
if (K.nTable == this || K.nTHead.parentNode == this || K.nTFoot && K.nTFoot.parentNode == this) { | |
var Ca = C.bRetrieve !== m ? C.bRetrieve : D.bRetrieve; | |
if (e || Ca) return K.oInstance; | |
if (C.bDestroy !== m ? C.bDestroy : D.bDestroy) { | |
K.oInstance.fnDestroy(); | |
break | |
} else { | |
lb(K, 0, "Cannot reinitialise DataTable", 3); | |
return | |
} | |
} | |
if (K.sTableId == this.id) { | |
N.splice(v, 1); | |
break | |
} | |
} | |
if (null === u || "" === u) this.id = u = "DataTables_Table_" + T.ext._unique++; | |
var H = d.extend(!0, {}, T.models.oSettings, { | |
sDestroyWidth: z[0].style.width, | |
sInstance: u, | |
sTableId: u | |
}); | |
H.nTable = this; | |
H.oApi = n.internal; | |
H.oInit = C; | |
N.push(H); | |
H.oInstance = 1 === n.length ? n : z.dataTable(); | |
a(C); | |
C.oLanguage && q(C.oLanguage); | |
C.aLengthMenu && !C.iDisplayLength && (C.iDisplayLength = d.isArray(C.aLengthMenu[0]) ? C.aLengthMenu[0][0] : C.aLengthMenu[0]); | |
C = hc(d.extend(!0, {}, D), C); | |
Za(H.oFeatures, C, "bPaginate bLengthChange bFilter bSort bSortMulti bInfo bProcessing bAutoWidth bSortClasses bServerSide bDeferRender".split(" ")); | |
Za(H, C, ["asStripeClasses", "ajax", "fnServerData", "fnFormatNumber", "sServerMethod", "aaSorting", "aaSortingFixed", "aLengthMenu", "sPaginationType", "sAjaxSource", "sAjaxDataProp", "iStateDuration", "sDom", "bSortCellsTop", "iTabIndex", "fnStateLoadCallback", "fnStateSaveCallback", "renderer", "searchDelay", "rowId", ["iCookieDuration", "iStateDuration"], | |
["oSearch", "oPreviousSearch"], | |
["aoSearchCols", "aoPreSearchCols"], | |
["iDisplayLength", "_iDisplayLength"], | |
["bJQueryUI", "bJUI"] | |
]); | |
Za(H.oScroll, C, [ | |
["sScrollX", "sX"], | |
["sScrollXInner", "sXInner"], | |
["sScrollY", "sY"], | |
["bScrollCollapse", "bCollapse"] | |
]); | |
Za(H.oLanguage, C, "fnInfoCallback"); | |
Aa(H, "aoDrawCallback", C.fnDrawCallback, "user"); | |
Aa(H, "aoServerParams", C.fnServerParams, "user"); | |
Aa(H, "aoStateSaveParams", C.fnStateSaveParams, "user"); | |
Aa(H, "aoStateLoadParams", C.fnStateLoadParams, "user"); | |
Aa(H, "aoStateLoaded", C.fnStateLoaded, "user"); | |
Aa(H, "aoRowCallback", C.fnRowCallback, "user"); | |
Aa(H, "aoRowCreatedCallback", C.fnCreatedRow, "user"); | |
Aa(H, "aoHeaderCallback", C.fnHeaderCallback, "user"); | |
Aa(H, "aoFooterCallback", C.fnFooterCallback, "user"); | |
Aa(H, "aoInitComplete", C.fnInitComplete, "user"); | |
Aa(H, "aoPreDrawCallback", C.fnPreDrawCallback, "user"); | |
H.rowIdFn = M(C.rowId); | |
k(H); | |
var J = H.oClasses; | |
C.bJQueryUI ? (d.extend(J, T.ext.oJUIClasses, C.oClasses), C.sDom === D.sDom && "lfrtip" === D.sDom && (H.sDom = '<"H"lfr>t<"F"ip>'), H.renderer) ? d.isPlainObject(H.renderer) && !H.renderer.header && (H.renderer.header = "jqueryui") : H.renderer = "jqueryui" : d.extend(J, T.ext.classes, C.oClasses); | |
z.addClass(J.sTable); | |
H.iInitDisplayStart === m && (H.iInitDisplayStart = C.iDisplayStart, H._iDisplayStart = C.iDisplayStart); | |
null !== C.iDeferLoading && (H.bDeferLoading = !0, u = d.isArray(C.iDeferLoading), H._iRecordsDisplay = u ? C.iDeferLoading[0] : C.iDeferLoading, H._iRecordsTotal = u ? C.iDeferLoading[1] : C.iDeferLoading); | |
var I = H.oLanguage; | |
d.extend(!0, I, C.oLanguage); | |
I.sUrl && (d.ajax({ | |
dataType: "json", | |
url: I.sUrl, | |
success: function(a) { | |
q(a); | |
p(D.oLanguage, a); | |
d.extend(!0, I, a); | |
Ta(H) | |
}, | |
error: function() { | |
Ta(H) | |
} | |
}), B = !0); | |
null === C.asStripeClasses && (H.asStripeClasses = [J.sStripeOdd, J.sStripeEven]); | |
var u = H.asStripeClasses, | |
fa = z.children("tbody").find("tr").eq(0); - 1 !== d.inArray(!0, d.map(u, function(a) { | |
return fa.hasClass(a) | |
})) && (d("tbody tr", this).removeClass(u.join(" ")), H.asDestroyStripes = u.slice()); | |
u = []; | |
N = this.getElementsByTagName("thead"); | |
0 !== N.length && (ua(H.aoHeader, N[0]), u = Da(H)); | |
if (null === C.aoColumns) | |
for (N = [], v = 0, A = u.length; v < A; v++) N.push(null); | |
else N = C.aoColumns; | |
v = 0; | |
for (A = N.length; v < A; v++) t(H, u ? u[v] : null); | |
E(H, C.aoColumnDefs, N, function(a, d) { | |
w(H, a, d) | |
}); | |
if (fa.length) { | |
var L = function(a, d) { | |
return null !== a.getAttribute("data-" + d) ? d : null | |
}; | |
d(fa[0]).children("th, td").each(function(a, d) { | |
var c = H.aoColumns[a]; | |
if (c.mData === a) { | |
var f = L(d, "sort") || L(d, "order"), | |
k = L(d, "filter") || L(d, "search"); | |
if (null !== f || null !== k) c.mData = { | |
_: a + ".display", | |
sort: null !== f ? a + ".@data-" + f : m, | |
type: null !== f ? a + ".@data-" + f : m, | |
filter: null !== k ? a + ".@data-" + k : m | |
}, w(H, a) | |
} | |
}) | |
} | |
var O = H.oFeatures, | |
u = function() { | |
if (C.aaSorting === m) { | |
var a = H.aaSorting; | |
v = 0; | |
for (A = a.length; v < A; v++) a[v][1] = H.aoColumns[v].asSorting[0] | |
} | |
pb(H); | |
O.bSort && Aa(H, "aoDrawCallback", function() { | |
if (H.bSorted) { | |
var a = va(H), | |
c = {}; | |
d.each(a, function(a, d) { | |
c[d.src] = d.dir | |
}); | |
qa(H, null, "order", [H, a, c]); | |
Jb(H) | |
} | |
}); | |
Aa(H, "aoDrawCallback", function() { | |
(H.bSorted || "ssp" === Wa(H) || O.bDeferRender) && pb(H) | |
}, "sc"); | |
var a = z.children("caption").each(function() { | |
this._captionSide = d(this).css("caption-side") | |
}), | |
c = z.children("thead"); | |
0 === c.length && (c = d("<thead/>").appendTo(z)); | |
H.nTHead = c[0]; | |
c = z.children("tbody"); | |
0 === c.length && (c = d("<tbody/>").appendTo(z)); | |
H.nTBody = c[0]; | |
c = z.children("tfoot"); | |
0 === c.length && 0 < a.length && ("" !== H.oScroll.sX || "" !== H.oScroll.sY) && (c = d("<tfoot/>").appendTo(z)); | |
0 === c.length || 0 === c.children().length ? z.addClass(J.sNoFooter) : 0 < c.length && (H.nTFoot = c[0], ua(H.aoFooter, H.nTFoot)); | |
if (C.aaData) | |
for (v = 0; v < C.aaData.length; v++) F(H, C.aaData[v]); | |
else(H.bDeferLoading || "dom" == Wa(H)) && G(H, d(H.nTBody).children("tr")); | |
H.aiDisplay = H.aiDisplayMaster.slice(); | |
H.bInitialised = !0; | |
!1 === B && Ta(H) | |
}; | |
C.bStateSave ? (O.bStateSave = !0, Aa(H, "aoDrawCallback", Va, "state_save"), cc(H, C, u)) : u() | |
} | |
}); | |
n = null; | |
return this | |
}, | |
ra, ga, ba, la, tb = {}, | |
zb = /[\r\n]/g, | |
rb = /<.*?>/g, | |
Cb = /^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/, | |
uc = RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)", "g"), | |
Rb = /[',$\u00a3\u20ac\u00a5%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi, | |
sb = function(a) { | |
return a && !0 !== a && "-" !== a ? !1 : !0 | |
}, | |
rc = function(a) { | |
var d = parseInt(a, 10); | |
return !isNaN(d) && isFinite(a) ? d : null | |
}, | |
kc = function(a, d) { | |
tb[d] || (tb[d] = RegExp(Na(d), "g")); | |
return "string" === typeof a && "." !== d ? a.replace(/\./g, "").replace(tb[d], ".") : a | |
}, | |
Sb = function(a, d, c) { | |
var f = "string" === typeof a; | |
if (sb(a)) return !0; | |
d && f && (a = kc(a, d)); | |
c && f && (a = a.replace(Rb, "")); | |
return !isNaN(parseFloat(a)) && isFinite(a) | |
}, | |
dc = function(a, d, c) { | |
return sb(a) ? !0 : sb(a) || "string" === typeof a ? Sb(a.replace(rb, ""), d, c) ? !0 : null : null | |
}, | |
Qa = function(a, d, c) { | |
var f = [], | |
k = 0, | |
n = a.length; | |
if (c !== m) | |
for (; k < n; k++) a[k] && a[k][d] && f.push(a[k][d][c]); | |
else | |
for (; k < n; k++) a[k] && f.push(a[k][d]); | |
return f | |
}, | |
mb = function(a, d, c, f) { | |
var k = [], | |
n = 0, | |
e = d.length; | |
if (f !== m) | |
for (; n < e; n++) a[d[n]][c] && k.push(a[d[n]][c][f]); | |
else | |
for (; n < e; n++) k.push(a[d[n]][c]); | |
return k | |
}, | |
Ba = function(a, d) { | |
var c = [], | |
f; | |
d === m ? (d = 0, f = a) : (f = d, d = a); | |
for (var k = d; k < f; k++) c.push(k); | |
return c | |
}, | |
lc = function(a) { | |
for (var d = [], c = 0, f = a.length; c < f; c++) a[c] && d.push(a[c]); | |
return d | |
}, | |
Mb = function(a) { | |
var d = [], | |
c, f, k = a.length, | |
n, e = 0; | |
f = 0; | |
a: for (; f < k; f++) { | |
c = a[f]; | |
for (n = 0; n < e; n++) | |
if (d[n] === c) continue a; | |
d.push(c); | |
e++ | |
} | |
return d | |
}; | |
T.util = { | |
throttle: function(a, d) { | |
var c = d !== m ? d : 200, | |
f, k; | |
return function() { | |
var d = this, | |
n = +new Date, | |
e = arguments; | |
f && n < f + c ? (clearTimeout(k), k = setTimeout(function() { | |
f = m; | |
a.apply(d, e) | |
}, c)) : (f = n, a.apply(d, e)) | |
} | |
}, | |
escapeRegex: function(a) { | |
return a.replace(uc, "\\$1") | |
} | |
}; | |
var Ka = function(a, d, c) { | |
a[d] !== m && (a[c] = a[d]) | |
}, | |
bb = /\[.*?\]$/, | |
Nb = /\(\)$/, | |
Na = T.util.escapeRegex, | |
Tb = d("<div>")[0], | |
wb = Tb.textContent !== m, | |
Ub = /<.*?>/g, | |
ka = T.util.throttle, | |
Vb = [], | |
Oa = Array.prototype, | |
mc = function(a) { | |
var c, f, k = T.settings, | |
n = d.map(k, function(a) { | |
return a.nTable | |
}); | |
if (a) { | |
if (a.nTable && a.oApi) return [a]; | |
if (a.nodeName && "table" === a.nodeName.toLowerCase()) return c = d.inArray(a, n), -1 !== c ? [k[c]] : null; | |
if (a && "function" === typeof a.settings) return a.settings().toArray(); | |
"string" === typeof a ? f = d(a) : a instanceof d && (f = a) | |
} else return []; | |
if (f) return f.map(function() { | |
c = d.inArray(this, n); | |
return -1 !== c ? k[c] : null | |
}).toArray() | |
}; | |
ga = function(a, c) { | |
if (!(this instanceof ga)) return new ga(a, c); | |
var f = [], | |
k = function(a) { | |
(a = mc(a)) && (f = f.concat(a)) | |
}; | |
if (d.isArray(a)) | |
for (var n = 0, e = a.length; n < e; n++) k(a[n]); | |
else k(a); | |
this.context = Mb(f); | |
c && d.merge(this, c); | |
this.selector = { | |
rows: null, | |
cols: null, | |
opts: null | |
}; | |
ga.extend(this, this, Vb) | |
}; | |
T.Api = ga; | |
d.extend(ga.prototype, { | |
any: function() { | |
return 0 !== this.count() | |
}, | |
concat: Oa.concat, | |
context: [], | |
count: function() { | |
return this.flatten().length | |
}, | |
each: function(a) { | |
for (var d = 0, c = this.length; d < c; d++) a.call(this, this[d], d, this); | |
return this | |
}, | |
eq: function(a) { | |
var d = this.context; | |
return d.length > a ? new ga(d[a], this[a]) : null | |
}, | |
filter: function(a) { | |
var d = []; | |
if (Oa.filter) d = Oa.filter.call(this, a, this); | |
else | |
for (var c = 0, f = this.length; c < f; c++) a.call(this, this[c], c, this) && d.push(this[c]); | |
return new ga(this.context, d) | |
}, | |
flatten: function() { | |
var a = []; | |
return new ga(this.context, a.concat.apply(a, this.toArray())) | |
}, | |
join: Oa.join, | |
indexOf: Oa.indexOf || function(a, d) { | |
for (var c = d || 0, f = this.length; c < f; c++) | |
if (this[c] === a) return c; | |
return -1 | |
}, | |
iterator: function(a, d, c, f) { | |
var k = [], | |
n, e, t, h, w, u = this.context, | |
q, p, C = this.selector; | |
"string" === typeof a && (f = c, c = d, d = a, a = !1); | |
e = 0; | |
for (t = u.length; e < t; e++) { | |
var v = new ga(u[e]); | |
if ("table" === d) n = c.call(v, u[e], e), n !== m && k.push(n); | |
else if ("columns" === d || "rows" === d) n = c.call(v, u[e], this[e], e), n !== m && k.push(n); | |
else if ("column" === d || "column-rows" === d || "row" === d || "cell" === d) | |
for (p = this[e], "column-rows" === d && (q = xb(u[e], C.opts)), h = 0, w = p.length; h < w; h++) n = p[h], n = "cell" === d ? c.call(v, u[e], n.row, n.column, e, h) : c.call(v, u[e], n, e, h, q), n !== m && k.push(n) | |
} | |
return k.length || f ? (a = new ga(u, a ? k.concat.apply([], k) : k), d = a.selector, d.rows = C.rows, d.cols = C.cols, d.opts = C.opts, a) : this | |
}, | |
lastIndexOf: Oa.lastIndexOf || function(a, d) { | |
return this.indexOf.apply(this.toArray.reverse(), arguments) | |
}, | |
length: 0, | |
map: function(a) { | |
var d = []; | |
if (Oa.map) d = Oa.map.call(this, a, this); | |
else | |
for (var c = 0, f = this.length; c < f; c++) d.push(a.call(this, this[c], c)); | |
return new ga(this.context, d) | |
}, | |
pluck: function(a) { | |
return this.map(function(d) { | |
return d[a] | |
}) | |
}, | |
pop: Oa.pop, | |
push: Oa.push, | |
reduce: Oa.reduce || function(a, d) { | |
return n(this, a, d, 0, this.length, 1) | |
}, | |
reduceRight: Oa.reduceRight || function(a, d) { | |
return n(this, a, d, this.length - 1, -1, -1) | |
}, | |
reverse: Oa.reverse, | |
selector: null, | |
shift: Oa.shift, | |
sort: Oa.sort, | |
splice: Oa.splice, | |
toArray: function() { | |
return Oa.slice.call(this) | |
}, | |
to$: function() { | |
return d(this) | |
}, | |
toJQuery: function() { | |
return d(this) | |
}, | |
unique: function() { | |
return new ga(this.context, Mb(this)) | |
}, | |
unshift: Oa.unshift | |
}); | |
ga.extend = function(a, c, f) { | |
if (f.length && c && (c instanceof ga || c.__dt_wrapper)) { | |
var k, n, e, t = function(a, d, c) { | |
return function() { | |
var f = d.apply(a, arguments); | |
ga.extend(f, f, c.methodExt); | |
return f | |
} | |
}; | |
k = 0; | |
for (n = f.length; k < n; k++) e = f[k], c[e.name] = "function" === typeof e.val ? t(a, e.val, e) : d.isPlainObject(e.val) ? {} : e.val, c[e.name].__dt_wrapper = !0, ga.extend(a, c[e.name], e.propExt) | |
} | |
}; | |
ga.register = ba = function(a, c) { | |
if (d.isArray(a)) | |
for (var f = 0, k = a.length; f < k; f++) ga.register(a[f], c); | |
else | |
for (var n = a.split("."), e = Vb, t, h, f = 0, k = n.length; f < k; f++) { | |
t = (h = -1 !== n[f].indexOf("()")) ? n[f].replace("()", "") : n[f]; | |
var m; | |
a: { | |
m = 0; | |
for (var w = e.length; m < w; m++) | |
if (e[m].name === t) { | |
m = e[m]; | |
break a | |
} | |
m = null | |
} | |
m || (m = { | |
name: t, | |
val: {}, | |
methodExt: [], | |
propExt: [] | |
}, e.push(m)); | |
f === k - 1 ? m.val = c : e = h ? m.methodExt : m.propExt | |
} | |
}; | |
ga.registerPlural = la = function(a, c, f) { | |
ga.register(a, f); | |
ga.register(c, function() { | |
var a = f.apply(this, arguments); | |
return a === this ? this : a instanceof ga ? a.length ? d.isArray(a[0]) ? new ga(a.context, a[0]) : a[0] : m : a | |
}) | |
}; | |
ba("tables()", function(a) { | |
var c; | |
if (a) { | |
c = ga; | |
var f = this.context; | |
if ("number" === typeof a) a = [f[a]]; | |
else { | |
var k = d.map(f, function(a) { | |
return a.nTable | |
}); | |
a = d(k).filter(a).map(function() { | |
var a = d.inArray(this, k); | |
return f[a] | |
}).toArray() | |
} | |
c = new c(a) | |
} else c = this; | |
return c | |
}); | |
ba("table()", function(a) { | |
a = this.tables(a); | |
var d = a.context; | |
return d.length ? new ga(d[0]) : a | |
}); | |
la("tables().nodes()", "table().node()", function() { | |
return this.iterator("table", function(a) { | |
return a.nTable | |
}, 1) | |
}); | |
la("tables().body()", "table().body()", function() { | |
return this.iterator("table", function(a) { | |
return a.nTBody | |
}, 1) | |
}); | |
la("tables().header()", "table().header()", function() { | |
return this.iterator("table", function(a) { | |
return a.nTHead | |
}, 1) | |
}); | |
la("tables().footer()", "table().footer()", function() { | |
return this.iterator("table", function(a) { | |
return a.nTFoot | |
}, 1) | |
}); | |
la("tables().containers()", "table().container()", function() { | |
return this.iterator("table", function(a) { | |
return a.nTableWrapper | |
}, 1) | |
}); | |
ba("draw()", function(a) { | |
return this.iterator("table", function(d) { | |
"page" === a ? R(d) : ("string" === typeof a && (a = "full-hold" === a ? !1 : !0), aa(d, !1 === a)) | |
}) | |
}); | |
ba("page()", function(a) { | |
return a === m ? this.page.info().page : this.iterator("table", function(d) { | |
kb(d, a) | |
}) | |
}); | |
ba("page.info()", function() { | |
if (0 === this.context.length) return m; | |
var a = this.context[0], | |
d = a._iDisplayStart, | |
c = a.oFeatures.bPaginate ? a._iDisplayLength : -1, | |
f = a.fnRecordsDisplay(), | |
k = -1 === c; | |
return { | |
page: k ? 0 : Math.floor(d / c), | |
pages: k ? 1 : Math.ceil(f / c), | |
start: d, | |
end: a.fnDisplayEnd(), | |
length: c, | |
recordsTotal: a.fnRecordsTotal(), | |
recordsDisplay: f, | |
serverSide: "ssp" === Wa(a) | |
} | |
}); | |
ba("page.len()", function(a) { | |
return a === m ? 0 !== this.context.length ? this.context[0]._iDisplayLength : m : this.iterator("table", function(d) { | |
Ib(d, a) | |
}) | |
}); | |
var Wb = function(a, d, c) { | |
if (c) { | |
var f = new ga(a); | |
f.one("draw", function() { | |
c(f.ajax.json()) | |
}) | |
} | |
if ("ssp" == Wa(a)) aa(a, d); | |
else { | |
Ga(a, !0); | |
var k = a.jqXHR; | |
k && 4 !== k.readyState && k.abort(); | |
S(a, [], function(c) { | |
Q(a); | |
c = ea(a, c); | |
for (var f = 0, k = c.length; f < k; f++) F(a, c[f]); | |
aa(a, d); | |
Ga(a, !1) | |
}) | |
} | |
}; | |
ba("ajax.json()", function() { | |
var a = this.context; | |
if (0 < a.length) return a[0].json | |
}); | |
ba("ajax.params()", function() { | |
var a = this.context; | |
if (0 < a.length) return a[0].oAjaxData | |
}); | |
ba("ajax.reload()", function(a, d) { | |
return this.iterator("table", function(c) { | |
Wb(c, !1 === d, a) | |
}) | |
}); | |
ba("ajax.url()", function(a) { | |
var c = this.context; | |
if (a === m) { | |
if (0 === c.length) return m; | |
c = c[0]; | |
return c.ajax ? d.isPlainObject(c.ajax) ? c.ajax.url : c.ajax : c.sAjaxSource | |
} | |
return this.iterator("table", function(c) { | |
d.isPlainObject(c.ajax) ? c.ajax.url = a : c.ajax = a | |
}) | |
}); | |
ba("ajax.url().load()", function(a, d) { | |
return this.iterator("table", function(c) { | |
Wb(c, !1 === d, a) | |
}) | |
}); | |
var Fb = function(a, c, f, k, n) { | |
var e = [], | |
t, h, w, u, q, p; | |
w = typeof c; | |
c && "string" !== w && "function" !== w && c.length !== m || (c = [c]); | |
w = 0; | |
for (u = c.length; w < u; w++) | |
for (h = c[w] && c[w].split && !c[w].match(/[\[\(:]/) ? c[w].split(",") : [c[w]], q = 0, p = h.length; q < p; q++)(t = f("string" === typeof h[q] ? d.trim(h[q]) : h[q])) && t.length && (e = e.concat(t)); | |
a = ra.selector[a]; | |
if (a.length) | |
for (w = 0, u = a.length; w < u; w++) e = a[w](k, n, e); | |
return Mb(e) | |
}, | |
bc = function(a) { | |
a || (a = {}); | |
a.filter && a.search === m && (a.search = a.filter); | |
return d.extend({ | |
search: "none", | |
order: "current", | |
page: "all" | |
}, a) | |
}, | |
Xb = function(a) { | |
for (var d = 0, c = a.length; d < c; d++) | |
if (0 < a[d].length) return a[0] = a[d], a[0].length = 1, a.length = 1, a.context = [a.context[d]], a; | |
a.length = 0; | |
return a | |
}, | |
xb = function(a, c) { | |
var f, k, n, e = [], | |
t = a.aiDisplay; | |
f = a.aiDisplayMaster; | |
var h = c.search; | |
k = c.order; | |
n = c.page; | |
if ("ssp" == Wa(a)) return "removed" === h ? [] : Ba(0, f.length); | |
if ("current" == n) | |
for (f = a._iDisplayStart, k = a.fnDisplayEnd(); f < k; f++) e.push(t[f]); | |
else if ("current" == k || "applied" == k) e = "none" == h ? f.slice() : "applied" == h ? t.slice() : d.map(f, function(a) { | |
return -1 === d.inArray(a, t) ? a : null | |
}); | |
else if ("index" == k || "original" == k) | |
for (f = 0, k = a.aoData.length; f < k; f++) "none" == h ? e.push(f) : (n = d.inArray(f, t), (-1 === n && "removed" == h || 0 <= n && "applied" == h) && e.push(f)); | |
return e | |
}; | |
ba("rows()", function(a, c) { | |
a === m ? a = "" : d.isPlainObject(a) && (c = a, a = ""); | |
c = bc(c); | |
var f = this.iterator("table", function(f) { | |
var k = c, | |
n; | |
return Fb("row", a, function(a) { | |
var c = rc(a); | |
if (null !== c && !k) return [c]; | |
n || (n = xb(f, k)); | |
if (null !== c && -1 !== d.inArray(c, n)) return [c]; | |
if (null === a || a === m || "" === a) return n; | |
if ("function" === typeof a) return d.map(n, function(d) { | |
var c = f.aoData[d]; | |
return a(d, c._aData, c.nTr) ? d : null | |
}); | |
c = lc(mb(f.aoData, n, "nTr")); | |
if (a.nodeName) { | |
if (a._DT_RowIndex !== m) return [a._DT_RowIndex]; | |
if (a._DT_CellIndex) return [a._DT_CellIndex.row]; | |
c = d(a).closest("*[data-dt-row]"); | |
return c.length ? [c.data("dt-row")] : [] | |
} | |
if ("string" === typeof a && "#" === a.charAt(0)) { | |
var e = f.aIds[a.replace(/^#/, "")]; | |
if (e !== m) return [e.idx] | |
} | |
return d(c).filter(a).map(function() { | |
return this._DT_RowIndex | |
}).toArray() | |
}, f, k) | |
}, 1); | |
f.selector.rows = a; | |
f.selector.opts = c; | |
return f | |
}); | |
ba("rows().nodes()", function() { | |
return this.iterator("row", function(a, d) { | |
return a.aoData[d].nTr || m | |
}, 1) | |
}); | |
ba("rows().data()", function() { | |
return this.iterator(!0, "rows", function(a, d) { | |
return mb(a.aoData, d, "_aData") | |
}, 1) | |
}); | |
la("rows().cache()", "row().cache()", function(a) { | |
return this.iterator("row", function(d, c) { | |
var f = d.aoData[c]; | |
return "search" === a ? f._aFilterData : f._aSortData | |
}, 1) | |
}); | |
la("rows().invalidate()", "row().invalidate()", function(a) { | |
return this.iterator("row", function(d, c) { | |
O(d, c, a) | |
}) | |
}); | |
la("rows().indexes()", "row().index()", function() { | |
return this.iterator("row", function(a, d) { | |
return d | |
}, 1) | |
}); | |
la("rows().ids()", "row().id()", function(a) { | |
for (var d = [], c = this.context, f = 0, k = c.length; f < k; f++) | |
for (var n = 0, e = this[f].length; n < e; n++) { | |
var t = c[f].rowIdFn(c[f].aoData[this[f][n]]._aData); | |
d.push((!0 === a ? "#" : "") + t) | |
} | |
return new ga(c, d) | |
}); | |
la("rows().remove()", "row().remove()", function() { | |
var a = this; | |
this.iterator("row", function(d, c, f) { | |
var k = d.aoData, | |
n = k[c], | |
e, t, h, w, u; | |
k.splice(c, 1); | |
e = 0; | |
for (t = k.length; e < t; e++) | |
if (h = k[e], u = h.anCells, null !== h.nTr && (h.nTr._DT_RowIndex = e), null !== u) | |
for (h = 0, w = u.length; h < w; h++) u[h]._DT_CellIndex.row = e; | |
H(d.aiDisplayMaster, c); | |
H(d.aiDisplay, c); | |
H(a[f], c, !1); | |
ic(d); | |
c = d.rowIdFn(n._aData); | |
c !== m && delete d.aIds[c] | |
}); | |
this.iterator("table", function(a) { | |
for (var d = 0, c = a.aoData.length; d < c; d++) a.aoData[d].idx = d | |
}); | |
return this | |
}); | |
ba("rows.add()", function(a) { | |
var c = this.iterator("table", function(d) { | |
var c, f, k, n = []; | |
f = 0; | |
for (k = a.length; f < k; f++) c = a[f], c.nodeName && "TR" === c.nodeName.toUpperCase() ? n.push(G(d, c)[0]) : n.push(F(d, c)); | |
return n | |
}, 1), | |
f = this.rows(-1); | |
f.pop(); | |
d.merge(f, c); | |
return f | |
}); | |
ba("row()", function(a, d) { | |
return Xb(this.rows(a, d)) | |
}); | |
ba("row().data()", function(a) { | |
var d = this.context; | |
if (a === m) return d.length && this.length ? d[0].aoData[this[0]]._aData : m; | |
d[0].aoData[this[0]]._aData = a; | |
O(d[0], this[0], "data"); | |
return this | |
}); | |
ba("row().node()", function() { | |
var a = this.context; | |
return a.length && this.length ? a[0].aoData[this[0]].nTr || null : null | |
}); | |
ba("row.add()", function(a) { | |
a instanceof d && a.length && (a = a[0]); | |
var c = this.iterator("table", function(d) { | |
return a.nodeName && "TR" === a.nodeName.toUpperCase() ? G(d, a)[0] : F(d, a) | |
}); | |
return this.row(c[0]) | |
}); | |
var fb = function(a, d) { | |
var c = a.context; | |
c.length && (c = c[0].aoData[d !== m ? d : a[0]]) && c._details && (c._details.remove(), c._detailsShow = m, c._details = m) | |
}, | |
Yb = function(a, d) { | |
var c = a.context; | |
if (c.length && a.length) { | |
var f = c[0].aoData[a[0]]; | |
if (f._details) { | |
(f._detailsShow = d) ? f._details.insertAfter(f.nTr): f._details.detach(); | |
var k = c[0], | |
n = new ga(k), | |
e = k.aoData; | |
n.off("draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details"); | |
0 < Qa(e, "_details").length && (n.on("draw.dt.DT_details", function(a, d) { | |
k === d && n.rows({ | |
page: "current" | |
}).eq(0).each(function(a) { | |
a = e[a]; | |
a._detailsShow && a._details.insertAfter(a.nTr) | |
}) | |
}), n.on("column-visibility.dt.DT_details", function(a, d) { | |
if (k === d) | |
for (var c, f = v(d), n = 0, t = e.length; n < t; n++) c = e[n], c._details && c._details.children("td[colspan]").attr("colspan", f) | |
}), n.on("destroy.dt.DT_details", function(a, d) { | |
if (k === d) | |
for (var c = 0, f = e.length; c < f; c++) e[c]._details && fb(n, c) | |
})) | |
} | |
} | |
}; | |
ba("row().child()", function(a, c) { | |
var f = this.context; | |
if (a === m) return f.length && this.length ? f[0].aoData[this[0]]._details : m; | |
if (!0 === a) this.child.show(); | |
else if (!1 === a) fb(this); | |
else if (f.length && this.length) { | |
var k = f[0], | |
f = f[0].aoData[this[0]], | |
n = [], | |
e = function(a, c) { | |
if (d.isArray(a) || a instanceof d) | |
for (var f = 0, t = a.length; f < t; f++) e(a[f], c); | |
else a.nodeName && "tr" === a.nodeName.toLowerCase() ? n.push(a) : (f = d("<tr><td/></tr>").addClass(c), d("td", f).addClass(c).html(a)[0].colSpan = v(k), n.push(f[0])) | |
}; | |
e(a, c); | |
f._details && f._details.detach(); | |
f._details = d(n); | |
f._detailsShow && f._details.insertAfter(f.nTr) | |
} | |
return this | |
}); | |
ba(["row().child.show()", "row().child().show()"], function() { | |
Yb(this, !0); | |
return this | |
}); | |
ba(["row().child.hide()", "row().child().hide()"], function() { | |
Yb(this, !1); | |
return this | |
}); | |
ba(["row().child.remove()", "row().child().remove()"], function() { | |
fb(this); | |
return this | |
}); | |
ba("row().child.isShown()", function() { | |
var a = this.context; | |
return a.length && this.length ? a[0].aoData[this[0]]._detailsShow || !1 : !1 | |
}); | |
var nc = /^([^:]+):(name|visIdx|visible)$/, | |
oc = function(a, d, c, f, k) { | |
c = []; | |
f = 0; | |
for (var n = k.length; f < n; f++) c.push(J(a, k[f], d)); | |
return c | |
}; | |
ba("columns()", function(a, c) { | |
a === m ? a = "" : d.isPlainObject(a) && (c = a, a = ""); | |
c = bc(c); | |
var f = this.iterator("table", function(f) { | |
var k = a, | |
n = c, | |
e = f.aoColumns, | |
t = Qa(e, "sName"), | |
h = Qa(e, "nTh"); | |
return Fb("column", k, function(a) { | |
var c = rc(a); | |
if ("" === a) return Ba(e.length); | |
if (null !== c) return [0 <= c ? c : e.length + c]; | |
if ("function" === typeof a) { | |
var k = xb(f, n); | |
return d.map(e, function(d, c) { | |
return a(c, oc(f, c, 0, 0, k), h[c]) ? c : null | |
}) | |
} | |
var m = "string" === typeof a ? a.match(nc) : ""; | |
if (m) switch (m[2]) { | |
case "visIdx": | |
case "visible": | |
c = parseInt(m[1], 10); | |
if (0 > c) { | |
var w = d.map(e, function(a, d) { | |
return a.bVisible ? d : null | |
}); | |
return [w[w.length + c]] | |
} | |
return [C(f, c)]; | |
case "name": | |
return d.map(t, function(a, d) { | |
return a === m[1] ? d : null | |
}); | |
default: | |
return [] | |
} | |
if (a.nodeName && a._DT_CellIndex) return [a._DT_CellIndex.column]; | |
c = d(h).filter(a).map(function() { | |
return d.inArray(this, h) | |
}).toArray(); | |
if (c.length || !a.nodeName) return c; | |
c = d(a).closest("*[data-dt-column]"); | |
return c.length ? [c.data("dt-column")] : [] | |
}, f, n) | |
}, 1); | |
f.selector.cols = a; | |
f.selector.opts = c; | |
return f | |
}); | |
la("columns().header()", "column().header()", function() { | |
return this.iterator("column", function(a, d) { | |
return a.aoColumns[d].nTh | |
}, 1) | |
}); | |
la("columns().footer()", "column().footer()", function() { | |
return this.iterator("column", function(a, d) { | |
return a.aoColumns[d].nTf | |
}, 1) | |
}); | |
la("columns().data()", "column().data()", function() { | |
return this.iterator("column-rows", oc, 1) | |
}); | |
la("columns().dataSrc()", "column().dataSrc()", function() { | |
return this.iterator("column", function(a, d) { | |
return a.aoColumns[d].mData | |
}, 1) | |
}); | |
la("columns().cache()", "column().cache()", function(a) { | |
return this.iterator("column-rows", function(d, c, f, k, n) { | |
return mb(d.aoData, n, "search" === a ? "_aFilterData" : "_aSortData", c) | |
}, 1) | |
}); | |
la("columns().nodes()", "column().nodes()", function() { | |
return this.iterator("column-rows", function(a, d, c, f, k) { | |
return mb(a.aoData, k, "anCells", d) | |
}, 1) | |
}); | |
la("columns().visible()", "column().visible()", function(a, c) { | |
var f = this.iterator("column", function(c, f) { | |
if (a === m) return c.aoColumns[f].bVisible; | |
var k = c.aoColumns, | |
n = k[f], | |
e = c.aoData, | |
t, h, w; | |
if (a !== m && n.bVisible !== a) { | |
if (a) { | |
var u = d.inArray(!0, Qa(k, "bVisible"), f + 1); | |
t = 0; | |
for (h = e.length; t < h; t++) w = e[t].nTr, k = e[t].anCells, w && w.insertBefore(k[f], k[u] || null) | |
} else d(Qa(c.aoData, "anCells", f)).detach(); | |
n.bVisible = a; | |
Z(c, c.aoHeader); | |
Z(c, c.aoFooter); | |
Va(c) | |
} | |
}); | |
a !== m && (this.iterator("column", function(d, f) { | |
qa(d, null, "column-visibility", [d, f, a, c]) | |
}), (c === m || c) && this.columns.adjust()); | |
return f | |
}); | |
la("columns().indexes()", "column().index()", function(a) { | |
return this.iterator("column", function(d, c) { | |
return "visible" === a ? A(d, c) : c | |
}, 1) | |
}); | |
ba("columns.adjust()", function() { | |
return this.iterator("table", function(a) { | |
u(a) | |
}, 1) | |
}); | |
ba("column.index()", function(a, d) { | |
if (0 !== this.context.length) { | |
var c = this.context[0]; | |
if ("fromVisible" === a || "toData" === a) return C(c, d); | |
if ("fromData" === a || "toVisible" === a) return A(c, d) | |
} | |
}); | |
ba("column()", function(a, d) { | |
return Xb(this.columns(a, d)) | |
}); | |
ba("cells()", function(a, c, f) { | |
d.isPlainObject(a) && (a.row === m ? (f = a, a = null) : (f = c, c = null)); | |
d.isPlainObject(c) && (f = c, c = null); | |
if (null === c || c === m) return this.iterator("table", function(c) { | |
var k = a, | |
n = bc(f), | |
e = c.aoData, | |
t = xb(c, n), | |
h = lc(mb(e, t, "anCells")), | |
w = d([].concat.apply([], h)), | |
u, q = c.aoColumns.length, | |
p, C, v, A, B, D; | |
return Fb("cell", k, function(a) { | |
var f = "function" === typeof a; | |
if (null === a || a === m || f) { | |
p = []; | |
C = 0; | |
for (v = t.length; C < v; C++) | |
for (u = t[C], A = 0; A < q; A++) B = { | |
row: u, | |
column: A | |
}, f ? (D = e[u], a(B, J(c, u, A), D.anCells ? D.anCells[A] : null) && p.push(B)) : p.push(B); | |
return p | |
} | |
if (d.isPlainObject(a)) return [a]; | |
f = w.filter(a).map(function(a, d) { | |
return { | |
row: d._DT_CellIndex.row, | |
column: d._DT_CellIndex.column | |
} | |
}).toArray(); | |
if (f.length || !a.nodeName) return f; | |
D = d(a).closest("*[data-dt-row]"); | |
return D.length ? [{ | |
row: D.data("dt-row"), | |
column: D.data("dt-column") | |
}] : [] | |
}, c, n) | |
}); | |
var k = this.columns(c, f), | |
n = this.rows(a, f), | |
e, t, h, w, u, q = this.iterator("table", function(a, d) { | |
e = []; | |
t = 0; | |
for (h = n[d].length; t < h; t++) | |
for (w = 0, u = k[d].length; w < u; w++) e.push({ | |
row: n[d][t], | |
column: k[d][w] | |
}); | |
return e | |
}, 1); | |
d.extend(q.selector, { | |
cols: c, | |
rows: a, | |
opts: f | |
}); | |
return q | |
}); | |
la("cells().nodes()", "cell().node()", function() { | |
return this.iterator("cell", function(a, d, c) { | |
return (a = a.aoData[d]) && a.anCells ? a.anCells[c] : m | |
}, 1) | |
}); | |
ba("cells().data()", function() { | |
return this.iterator("cell", function(a, d, c) { | |
return J(a, d, c) | |
}, 1) | |
}); | |
la("cells().cache()", "cell().cache()", function(a) { | |
a = "search" === a ? "_aFilterData" : "_aSortData"; | |
return this.iterator("cell", function(d, c, f) { | |
return d.aoData[c][a][f] | |
}, 1) | |
}); | |
la("cells().render()", "cell().render()", function(a) { | |
return this.iterator("cell", function(d, c, f) { | |
return J(d, c, f, a) | |
}, 1) | |
}); | |
la("cells().indexes()", "cell().index()", function() { | |
return this.iterator("cell", function(a, d, c) { | |
return { | |
row: d, | |
column: c, | |
columnVisible: A(a, c) | |
} | |
}, 1) | |
}); | |
la("cells().invalidate()", "cell().invalidate()", function(a) { | |
return this.iterator("cell", function(d, c, f) { | |
O(d, c, a, f) | |
}) | |
}); | |
ba("cell()", function(a, d, c) { | |
return Xb(this.cells(a, d, c)) | |
}); | |
ba("cell().data()", function(a) { | |
var d = this.context, | |
c = this[0]; | |
if (a === m) return d.length && c.length ? J(d[0], c[0].row, c[0].column) : m; | |
I(d[0], c[0].row, c[0].column, a); | |
O(d[0], c[0].row, "data", c[0].column); | |
return this | |
}); | |
ba("order()", function(a, c) { | |
var f = this.context; | |
if (a === m) return 0 !== f.length ? f[0].aaSorting : m; | |
"number" === typeof a ? a = [ | |
[a, c] | |
] : a.length && !d.isArray(a[0]) && (a = Array.prototype.slice.call(arguments)); | |
return this.iterator("table", function(d) { | |
d.aaSorting = a.slice() | |
}) | |
}); | |
ba("order.listener()", function(a, d, c) { | |
return this.iterator("table", function(f) { | |
Ab(f, a, d, c) | |
}) | |
}); | |
ba("order.fixed()", function(a) { | |
if (!a) { | |
var c = this.context, | |
c = c.length ? c[0].aaSortingFixed : m; | |
return d.isArray(c) ? { | |
pre: c | |
} : c | |
} | |
return this.iterator("table", function(c) { | |
c.aaSortingFixed = d.extend(!0, {}, a) | |
}) | |
}); | |
ba(["columns().order()", "column().order()"], function(a) { | |
var c = this; | |
return this.iterator("table", function(f, k) { | |
var n = []; | |
d.each(c[k], function(d, c) { | |
n.push([c, a]) | |
}); | |
f.aaSorting = n | |
}) | |
}); | |
ba("search()", function(a, c, f, k) { | |
var n = this.context; | |
return a === m ? 0 !== n.length ? n[0].oPreviousSearch.sSearch : m : this.iterator("table", function(n) { | |
n.oFeatures.bFilter && ja(n, d.extend({}, n.oPreviousSearch, { | |
sSearch: a + "", | |
bRegex: null === c ? !1 : c, | |
bSmart: null === f ? !0 : f, | |
bCaseInsensitive: null === k ? !0 : k | |
}), 1) | |
}) | |
}); | |
la("columns().search()", "column().search()", function(a, c, f, k) { | |
return this.iterator("column", function(n, e) { | |
var t = n.aoPreSearchCols; | |
if (a === m) return t[e].sSearch; | |
n.oFeatures.bFilter && (d.extend(t[e], { | |
sSearch: a + "", | |
bRegex: null === c ? !1 : c, | |
bSmart: null === f ? !0 : f, | |
bCaseInsensitive: null === k ? !0 : k | |
}), ja(n, n.oPreviousSearch, 1)) | |
}) | |
}); | |
ba("state()", function() { | |
return this.context.length ? this.context[0].oSavedState : null | |
}); | |
ba("state.clear()", function() { | |
return this.iterator("table", function(a) { | |
a.fnStateSaveCallback.call(a.oInstance, a, {}) | |
}) | |
}); | |
ba("state.loaded()", function() { | |
return this.context.length ? this.context[0].oLoadedState : null | |
}); | |
ba("state.save()", function() { | |
return this.iterator("table", function(a) { | |
Va(a) | |
}) | |
}); | |
T.versionCheck = T.fnVersionCheck = function(a) { | |
var d = T.version.split("."); | |
a = a.split("."); | |
for (var c, f, k = 0, n = a.length; k < n; k++) | |
if (c = parseInt(d[k], 10) || 0, f = parseInt(a[k], 10) || 0, c !== f) return c > f; | |
return !0 | |
}; | |
T.isDataTable = T.fnIsDataTable = function(a) { | |
var c = d(a).get(0), | |
f = !1; | |
if (a instanceof T.Api) return !0; | |
d.each(T.settings, function(a, k) { | |
var n = k.nScrollHead ? d("table", k.nScrollHead)[0] : null, | |
e = k.nScrollFoot ? d("table", k.nScrollFoot)[0] : null; | |
if (k.nTable === c || n === c || e === c) f = !0 | |
}); | |
return f | |
}; | |
T.tables = T.fnTables = function(a) { | |
var c = !1; | |
d.isPlainObject(a) && (c = a.api, a = a.visible); | |
var f = d.map(T.settings, function(c) { | |
if (!a || a && d(c.nTable).is(":visible")) return c.nTable | |
}); | |
return c ? new ga(f) : f | |
}; | |
T.camelToHungarian = p; | |
ba("$()", function(a, c) { | |
var f = this.rows(c).nodes(), | |
f = d(f); | |
return d([].concat(f.filter(a).toArray(), f.find(a).toArray())) | |
}); | |
d.each(["on", "one", "off"], function(a, c) { | |
ba(c + "()", function() { | |
var a = Array.prototype.slice.call(arguments); | |
a[0] = d.map(a[0].split(/\s/), function(a) { | |
return a.match(/\.dt\b/) ? a : a + ".dt" | |
}).join(" "); | |
var f = d(this.tables().nodes()); | |
f[c].apply(f, a); | |
return this | |
}) | |
}); | |
ba("clear()", function() { | |
return this.iterator("table", function(a) { | |
Q(a) | |
}) | |
}); | |
ba("settings()", function() { | |
return new ga(this.context, this.context) | |
}); | |
ba("init()", function() { | |
var a = this.context; | |
return a.length ? a[0].oInit : null | |
}); | |
ba("data()", function() { | |
return this.iterator("table", function(a) { | |
return Qa(a.aoData, "_aData") | |
}).flatten() | |
}); | |
ba("destroy()", function(a) { | |
a = a || !1; | |
return this.iterator("table", function(f) { | |
var k = f.nTableWrapper.parentNode, | |
n = f.oClasses, | |
e = f.nTable, | |
t = f.nTBody, | |
h = f.nTHead, | |
m = f.nTFoot, | |
w = d(e), | |
t = d(t), | |
u = d(f.nTableWrapper), | |
q = d.map(f.aoData, function(a) { | |
return a.nTr | |
}), | |
p; | |
f.bDestroying = !0; | |
qa(f, "aoDestroyCallback", "destroy", [f]); | |
a || new ga(f).columns().visible(!0); | |
u.off(".DT").find(":not(tbody *)").off(".DT"); | |
d(c).off(".DT-" + f.sInstance); | |
e != h.parentNode && (w.children("thead").detach(), w.append(h)); | |
m && e != m.parentNode && (w.children("tfoot").detach(), w.append(m)); | |
f.aaSorting = []; | |
f.aaSortingFixed = []; | |
pb(f); | |
d(q).removeClass(f.asStripeClasses.join(" ")); | |
d("th, td", h).removeClass(n.sSortable + " " + n.sSortableAsc + " " + n.sSortableDesc + " " + n.sSortableNone); | |
f.bJUI && (d("th span." + n.sSortIcon + ", td span." + n.sSortIcon, h).detach(), d("th, td", h).each(function() { | |
var a = d("div." + n.sSortJUIWrapper, this); | |
d(this).append(a.contents()); | |
a.detach() | |
})); | |
t.children().detach(); | |
t.append(q); | |
h = a ? "remove" : "detach"; | |
w[h](); | |
u[h](); | |
!a && k && (k.insertBefore(e, f.nTableReinsertBefore), w.css("width", f.sDestroyWidth).removeClass(n.sTable), (p = f.asDestroyStripes.length) && t.children().each(function(a) { | |
d(this).addClass(f.asDestroyStripes[a % p]) | |
})); | |
k = d.inArray(f, T.settings); - 1 !== k && T.settings.splice(k, 1) | |
}) | |
}); | |
d.each(["column", "row", "cell"], function(a, d) { | |
ba(d + "s().every()", function(a) { | |
var c = this.selector.opts, | |
f = this; | |
return this.iterator(d, function(k, n, e, t, h) { | |
a.call(f[d](n, "cell" === d ? e : c, "cell" === d ? c : m), n, e, t, h) | |
}) | |
}) | |
}); | |
ba("i18n()", function(a, c, f) { | |
var k = this.context[0]; | |
a = M(a)(k.oLanguage); | |
a === m && (a = c); | |
f !== m && d.isPlainObject(a) && (a = a[f] !== m ? a[f] : a._); | |
return a.replace("%d", f) | |
}); | |
T.version = "1.10.13"; | |
T.settings = []; | |
T.models = {}; | |
T.models.oSearch = { | |
bCaseInsensitive: !0, | |
sSearch: "", | |
bRegex: !1, | |
bSmart: !0 | |
}; | |
T.models.oRow = { | |
nTr: null, | |
anCells: null, | |
_aData: [], | |
_aSortData: null, | |
_aFilterData: null, | |
_sFilterRow: null, | |
_sRowStripe: "", | |
src: null, | |
idx: -1 | |
}; | |
T.models.oColumn = { | |
idx: null, | |
aDataSort: null, | |
asSorting: null, | |
bSearchable: null, | |
bSortable: null, | |
bVisible: null, | |
_sManualType: null, | |
_bAttrSrc: !1, | |
fnCreatedCell: null, | |
fnGetData: null, | |
fnSetData: null, | |
mData: null, | |
mRender: null, | |
nTh: null, | |
nTf: null, | |
sClass: null, | |
sContentPadding: null, | |
sDefaultContent: null, | |
sName: null, | |
sSortDataType: "std", | |
sSortingClass: null, | |
sSortingClassJUI: null, | |
sTitle: null, | |
sType: null, | |
sWidth: null, | |
sWidthOrig: null | |
}; | |
T.defaults = { | |
aaData: null, | |
aaSorting: [ | |
[0, "asc"] | |
], | |
aaSortingFixed: [], | |
ajax: null, | |
aLengthMenu: [10, 25, 50, 100], | |
aoColumns: null, | |
aoColumnDefs: null, | |
aoSearchCols: [], | |
asStripeClasses: null, | |
bAutoWidth: !0, | |
bDeferRender: !1, | |
bDestroy: !1, | |
bFilter: !0, | |
bInfo: !0, | |
bJQueryUI: !1, | |
bLengthChange: !0, | |
bPaginate: !0, | |
bProcessing: !1, | |
bRetrieve: !1, | |
bScrollCollapse: !1, | |
bServerSide: !1, | |
bSort: !0, | |
bSortMulti: !0, | |
bSortCellsTop: !1, | |
bSortClasses: !0, | |
bStateSave: !1, | |
fnCreatedRow: null, | |
fnDrawCallback: null, | |
fnFooterCallback: null, | |
fnFormatNumber: function(a) { | |
return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g, this.oLanguage.sThousands) | |
}, | |
fnHeaderCallback: null, | |
fnInfoCallback: null, | |
fnInitComplete: null, | |
fnPreDrawCallback: null, | |
fnRowCallback: null, | |
fnServerData: null, | |
fnServerParams: null, | |
fnStateLoadCallback: function(a) { | |
try { | |
return JSON.parse((-1 === a.iStateDuration ? sessionStorage : localStorage).getItem("DataTables_" + a.sInstance + "_" + location.pathname)) | |
} catch (Ca) {} | |
}, | |
fnStateLoadParams: null, | |
fnStateLoaded: null, | |
fnStateSaveCallback: function(a, d) { | |
try { | |
(-1 === a.iStateDuration ? sessionStorage : localStorage).setItem("DataTables_" + a.sInstance + "_" + location.pathname, JSON.stringify(d)) | |
} catch (fa) {} | |
}, | |
fnStateSaveParams: null, | |
iStateDuration: 7200, | |
iDeferLoading: null, | |
iDisplayLength: 10, | |
iDisplayStart: 0, | |
iTabIndex: 0, | |
oClasses: {}, | |
oLanguage: { | |
oAria: { | |
sSortAscending: ": activate to sort column ascending", | |
sSortDescending: ": activate to sort column descending" | |
}, | |
oPaginate: { | |
sFirst: "First", | |
sLast: "Last", | |
sNext: "Next", | |
sPrevious: "Previous" | |
}, | |
sEmptyTable: "No data available in table", | |
sInfo: "Showing _START_ to _END_ of _TOTAL_ entries", | |
sInfoEmpty: "Showing 0 to 0 of 0 entries", | |
sInfoFiltered: "(filtered from _MAX_ total entries)", | |
sInfoPostFix: "", | |
sDecimal: "", | |
sThousands: ",", | |
sLengthMenu: "Show _MENU_ entries", | |
sLoadingRecords: "Loading...", | |
sProcessing: "Processing...", | |
sSearch: "Search:", | |
sSearchPlaceholder: "", | |
sUrl: "", | |
sZeroRecords: "No matching records found" | |
}, | |
oSearch: d.extend({}, T.models.oSearch), | |
sAjaxDataProp: "data", | |
sAjaxSource: null, | |
sDom: "lfrtip", | |
searchDelay: null, | |
sPaginationType: "simple_numbers", | |
sScrollX: "", | |
sScrollXInner: "", | |
sScrollY: "", | |
sServerMethod: "GET", | |
renderer: null, | |
rowId: "DT_RowId" | |
}; | |
h(T.defaults); | |
T.defaults.column = { | |
aDataSort: null, | |
iDataSort: -1, | |
asSorting: ["asc", "desc"], | |
bSearchable: !0, | |
bSortable: !0, | |
bVisible: !0, | |
fnCreatedCell: null, | |
mData: null, | |
mRender: null, | |
sCellType: "td", | |
sClass: "", | |
sContentPadding: "", | |
sDefaultContent: null, | |
sName: "", | |
sSortDataType: "std", | |
sTitle: null, | |
sType: null, | |
sWidth: null | |
}; | |
h(T.defaults.column); | |
T.models.oSettings = { | |
oFeatures: { | |
bAutoWidth: null, | |
bDeferRender: null, | |
bFilter: null, | |
bInfo: null, | |
bLengthChange: null, | |
bPaginate: null, | |
bProcessing: null, | |
bServerSide: null, | |
bSort: null, | |
bSortMulti: null, | |
bSortClasses: null, | |
bStateSave: null | |
}, | |
oScroll: { | |
bCollapse: null, | |
iBarWidth: 0, | |
sX: null, | |
sXInner: null, | |
sY: null | |
}, | |
oLanguage: { | |
fnInfoCallback: null | |
}, | |
oBrowser: { | |
bScrollOversize: !1, | |
bScrollbarLeft: !1, | |
bBounding: !1, | |
barWidth: 0 | |
}, | |
ajax: null, | |
aanFeatures: [], | |
aoData: [], | |
aiDisplay: [], | |
aiDisplayMaster: [], | |
aIds: {}, | |
aoColumns: [], | |
aoHeader: [], | |
aoFooter: [], | |
oPreviousSearch: {}, | |
aoPreSearchCols: [], | |
aaSorting: null, | |
aaSortingFixed: [], | |
asStripeClasses: null, | |
asDestroyStripes: [], | |
sDestroyWidth: 0, | |
aoRowCallback: [], | |
aoHeaderCallback: [], | |
aoFooterCallback: [], | |
aoDrawCallback: [], | |
aoRowCreatedCallback: [], | |
aoPreDrawCallback: [], | |
aoInitComplete: [], | |
aoStateSaveParams: [], | |
aoStateLoadParams: [], | |
aoStateLoaded: [], | |
sTableId: "", | |
nTable: null, | |
nTHead: null, | |
nTFoot: null, | |
nTBody: null, | |
nTableWrapper: null, | |
bDeferLoading: !1, | |
bInitialised: !1, | |
aoOpenRows: [], | |
sDom: null, | |
searchDelay: null, | |
sPaginationType: "two_button", | |
iStateDuration: 0, | |
aoStateSave: [], | |
aoStateLoad: [], | |
oSavedState: null, | |
oLoadedState: null, | |
sAjaxSource: null, | |
sAjaxDataProp: null, | |
bAjaxDataGet: !0, | |
jqXHR: null, | |
json: m, | |
oAjaxData: m, | |
fnServerData: null, | |
aoServerParams: [], | |
sServerMethod: null, | |
fnFormatNumber: null, | |
aLengthMenu: null, | |
iDraw: 0, | |
bDrawing: !1, | |
iDrawError: -1, | |
_iDisplayLength: 10, | |
_iDisplayStart: 0, | |
_iRecordsTotal: 0, | |
_iRecordsDisplay: 0, | |
bJUI: null, | |
oClasses: {}, | |
bFiltered: !1, | |
bSorted: !1, | |
bSortCellsTop: null, | |
oInit: null, | |
aoDestroyCallback: [], | |
fnRecordsTotal: function() { | |
return "ssp" == Wa(this) ? 1 * this._iRecordsTotal : this.aiDisplayMaster.length | |
}, | |
fnRecordsDisplay: function() { | |
return "ssp" == Wa(this) ? 1 * this._iRecordsDisplay : this.aiDisplay.length | |
}, | |
fnDisplayEnd: function() { | |
var a = this._iDisplayLength, | |
d = this._iDisplayStart, | |
c = d + a, | |
f = this.aiDisplay.length, | |
k = this.oFeatures, | |
n = k.bPaginate; | |
return k.bServerSide ? !1 === n || -1 === a ? d + f : Math.min(d + a, this._iRecordsDisplay) : !n || c > f || -1 === a ? f : c | |
}, | |
oInstance: null, | |
sInstance: null, | |
iTabIndex: 0, | |
nScrollHead: null, | |
nScrollFoot: null, | |
aLastSort: [], | |
oPlugins: {}, | |
rowIdFn: null, | |
rowId: null | |
}; | |
T.ext = ra = { | |
buttons: {}, | |
classes: {}, | |
builder: "-source-", | |
errMode: "alert", | |
feature: [], | |
search: [], | |
selector: { | |
cell: [], | |
column: [], | |
row: [] | |
}, | |
internal: {}, | |
legacy: { | |
ajax: null | |
}, | |
pager: {}, | |
renderer: { | |
pageButton: {}, | |
header: {} | |
}, | |
order: {}, | |
type: { | |
detect: [], | |
search: {}, | |
order: {} | |
}, | |
_unique: 0, | |
fnVersionCheck: T.fnVersionCheck, | |
iApiIndex: 0, | |
oJUIClasses: {}, | |
sVersion: T.version | |
}; | |
d.extend(ra, { | |
afnFiltering: ra.search, | |
aTypes: ra.type.detect, | |
ofnSearch: ra.type.search, | |
oSort: ra.type.order, | |
afnSortData: ra.order, | |
aoFeatures: ra.feature, | |
oApi: ra.internal, | |
oStdClasses: ra.classes, | |
oPagination: ra.pager | |
}); | |
d.extend(T.ext.classes, { | |
sTable: "dataTable", | |
sNoFooter: "no-footer", | |
sPageButton: "paginate_button", | |
sPageButtonActive: "current", | |
sPageButtonDisabled: "disabled", | |
sStripeOdd: "odd", | |
sStripeEven: "even", | |
sRowEmpty: "dataTables_empty", | |
sWrapper: "dataTables_wrapper", | |
sFilter: "dataTables_filter", | |
sInfo: "dataTables_info", | |
sPaging: "dataTables_paginate paging_", | |
sLength: "dataTables_length", | |
sProcessing: "dataTables_processing", | |
sSortAsc: "sorting_asc", | |
sSortDesc: "sorting_desc", | |
sSortable: "sorting", | |
sSortableAsc: "sorting_asc_disabled", | |
sSortableDesc: "sorting_desc_disabled", | |
sSortableNone: "sorting_disabled", | |
sSortColumn: "sorting_", | |
sFilterInput: "", | |
sLengthSelect: "", | |
sScrollWrapper: "dataTables_scroll", | |
sScrollHead: "dataTables_scrollHead", | |
sScrollHeadInner: "dataTables_scrollHeadInner", | |
sScrollBody: "dataTables_scrollBody", | |
sScrollFoot: "dataTables_scrollFoot", | |
sScrollFootInner: "dataTables_scrollFootInner", | |
sHeaderTH: "", | |
sFooterTH: "", | |
sSortJUIAsc: "", | |
sSortJUIDesc: "", | |
sSortJUI: "", | |
sSortJUIAscAllowed: "", | |
sSortJUIDescAllowed: "", | |
sSortJUIWrapper: "", | |
sSortIcon: "", | |
sJUIHeader: "", | |
sJUIFooter: "" | |
}); | |
var eb = "", | |
eb = "", | |
Pa = eb + "ui-state-default", | |
$a = eb + "css_right ui-icon ui-icon-", | |
Ja = eb + "fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix"; | |
d.extend(T.ext.oJUIClasses, T.ext.classes, { | |
sPageButton: "fg-button ui-button " + Pa, | |
sPageButtonActive: "ui-state-disabled", | |
sPageButtonDisabled: "ui-state-disabled", | |
sPaging: "dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_", | |
sSortAsc: Pa + " sorting_asc", | |
sSortDesc: Pa + " sorting_desc", | |
sSortable: Pa + " sorting", | |
sSortableAsc: Pa + " sorting_asc_disabled", | |
sSortableDesc: Pa + " sorting_desc_disabled", | |
sSortableNone: Pa + " sorting_disabled", | |
sSortJUIAsc: $a + "triangle-1-n", | |
sSortJUIDesc: $a + "triangle-1-s", | |
sSortJUI: $a + "carat-2-n-s", | |
sSortJUIAscAllowed: $a + "carat-1-n", | |
sSortJUIDescAllowed: $a + "carat-1-s", | |
sSortJUIWrapper: "DataTables_sort_wrapper", | |
sSortIcon: "DataTables_sort_icon", | |
sScrollHead: "dataTables_scrollHead " + Pa, | |
sScrollFoot: "dataTables_scrollFoot " + Pa, | |
sHeaderTH: Pa, | |
sFooterTH: Pa, | |
sJUIHeader: Ja + " ui-corner-tl ui-corner-tr", | |
sJUIFooter: Ja + " ui-corner-bl ui-corner-br" | |
}); | |
var cb = T.ext.pager; | |
d.extend(cb, { | |
simple: function() { | |
return ["previous", "next"] | |
}, | |
full: function() { | |
return ["first", "previous", "next", "last"] | |
}, | |
numbers: function(a, d) { | |
return [Pb(a, d)] | |
}, | |
simple_numbers: function(a, d) { | |
return ["previous", Pb(a, d), "next"] | |
}, | |
full_numbers: function(a, d) { | |
return ["first", "previous", Pb(a, d), "next", "last"] | |
}, | |
first_last_numbers: function(a, d) { | |
return ["first", Pb(a, d), "last"] | |
}, | |
_numbers: Pb, | |
numbers_length: 7 | |
}); | |
d.extend(!0, T.ext.renderer, { | |
pageButton: { | |
_: function(a, c, f, k, n, t) { | |
var h = a.oClasses, | |
w = a.oLanguage.oPaginate, | |
u = a.oLanguage.oAria.paginate || {}, | |
q, p, C = 0, | |
v = function(c, k) { | |
var e, m, A, B, D = function(d) { | |
kb(a, d.data.action, !0) | |
}; | |
e = 0; | |
for (m = k.length; e < m; e++) | |
if (B = k[e], d.isArray(B)) A = d("<" + (B.DT_el || "div") + "/>").appendTo(c), v(A, B); | |
else { | |
q = null; | |
p = ""; | |
switch (B) { | |
case "ellipsis": | |
c.append('<span class="ellipsis">…</span>'); | |
break; | |
case "first": | |
q = w.sFirst; | |
p = B + (0 < n ? "" : " " + h.sPageButtonDisabled); | |
break; | |
case "previous": | |
q = w.sPrevious; | |
p = B + (0 < n ? "" : " " + h.sPageButtonDisabled); | |
break; | |
case "next": | |
q = w.sNext; | |
p = B + (n < t - 1 ? "" : " " + h.sPageButtonDisabled); | |
break; | |
case "last": | |
q = w.sLast; | |
p = B + (n < t - 1 ? "" : " " + h.sPageButtonDisabled); | |
break; | |
default: | |
q = B + 1, p = n === B ? h.sPageButtonActive : "" | |
} | |
null !== q && (A = d("<a>", { | |
class: h.sPageButton + " " + p, | |
"aria-controls": a.sTableId, | |
"aria-label": u[B], | |
"data-dt-idx": C, | |
tabindex: a.iTabIndex, | |
id: 0 === f && "string" === typeof B ? a.sTableId + "_" + B : null | |
}).html(q).appendTo(c), qb(A, { | |
action: B | |
}, D), C++) | |
} | |
}, | |
A; | |
try { | |
A = d(c).find(e.activeElement).data("dt-idx") | |
} catch (qc) {} | |
v(d(c).empty(), k); | |
A !== m && d(c).find("[data-dt-idx=" + A + "]").focus() | |
} | |
} | |
}); | |
d.extend(T.ext.type.detect, [function(a, d) { | |
var c = d.oLanguage.sDecimal; | |
return Sb(a, c) ? "num" + c : null | |
}, function(a) { | |
if (a && !(a instanceof Date) && !Cb.test(a)) return null; | |
var d = Date.parse(a); | |
return null !== d && !isNaN(d) || sb(a) ? "date" : null | |
}, function(a, d) { | |
var c = d.oLanguage.sDecimal; | |
return Sb(a, c, !0) ? "num-fmt" + c : null | |
}, function(a, d) { | |
var c = d.oLanguage.sDecimal; | |
return dc(a, c) ? "html-num" + c : null | |
}, function(a, d) { | |
var c = d.oLanguage.sDecimal; | |
return dc(a, c, !0) ? "html-num-fmt" + c : null | |
}, function(a) { | |
return sb(a) || "string" === typeof a && -1 !== a.indexOf("<") ? "html" : null | |
}]); | |
d.extend(T.ext.type.search, { | |
html: function(a) { | |
return sb(a) ? a : "string" === typeof a ? a.replace(zb, " ").replace(rb, "") : "" | |
}, | |
string: function(a) { | |
return sb(a) ? a : "string" === typeof a ? a.replace(zb, " ") : a | |
} | |
}); | |
var gb = function(a, d, c, f) { | |
if (0 !== a && (!a || "-" === a)) return -Infinity; | |
d && (a = kc(a, d)); | |
a.replace && (c && (a = a.replace(c, "")), f && (a = a.replace(f, ""))); | |
return 1 * a | |
}; | |
d.extend(ra.type.order, { | |
"date-pre": function(a) { | |
return Date.parse(a) || -Infinity | |
}, | |
"html-pre": function(a) { | |
return sb(a) ? "" : a.replace ? a.replace(/<.*?>/g, "").toLowerCase() : a + "" | |
}, | |
"string-pre": function(a) { | |
return sb(a) ? "" : "string" === typeof a ? a.toLowerCase() : a.toString ? a.toString() : "" | |
}, | |
"string-asc": function(a, d) { | |
return a < d ? -1 : a > d ? 1 : 0 | |
}, | |
"string-desc": function(a, d) { | |
return a < d ? 1 : a > d ? -1 : 0 | |
} | |
}); | |
ac(""); | |
d.extend(!0, T.ext.renderer, { | |
header: { | |
_: function(a, c, f, k) { | |
d(a.nTable).on("order.dt.DT", function(d, n, e, t) { | |
a === n && (d = f.idx, c.removeClass(f.sSortingClass + " " + k.sSortAsc + " " + k.sSortDesc).addClass("asc" == t[d] ? k.sSortAsc : "desc" == t[d] ? k.sSortDesc : f.sSortingClass)) | |
}) | |
}, | |
jqueryui: function(a, c, f, k) { | |
d("<div/>").addClass(k.sSortJUIWrapper).append(c.contents()).append(d("<span/>").addClass(k.sSortIcon + " " + f.sSortingClassJUI)).appendTo(c); | |
d(a.nTable).on("order.dt.DT", function(d, n, e, t) { | |
a === n && (d = f.idx, c.removeClass(k.sSortAsc + " " + k.sSortDesc).addClass("asc" == t[d] ? k.sSortAsc : "desc" == t[d] ? k.sSortDesc : f.sSortingClass), c.find("span." + k.sSortIcon).removeClass(k.sSortJUIAsc + " " + k.sSortJUIDesc + " " + k.sSortJUI + " " + k.sSortJUIAscAllowed + " " + k.sSortJUIDescAllowed).addClass("asc" == t[d] ? k.sSortJUIAsc : "desc" == t[d] ? k.sSortJUIDesc : f.sSortingClassJUI)) | |
}) | |
} | |
} | |
}); | |
var Gb = function(a) { | |
return "string" === typeof a ? a.replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """) : a | |
}; | |
T.render = { | |
number: function(a, d, c, f, k) { | |
return { | |
display: function(n) { | |
if ("number" !== typeof n && "string" !== typeof n) return n; | |
var e = 0 > n ? "-" : "", | |
t = parseFloat(n); | |
if (isNaN(t)) return Gb(n); | |
t = t.toFixed(c); | |
n = Math.abs(t); | |
t = parseInt(n, 10); | |
n = c ? d + (n - t).toFixed(c).substring(2) : ""; | |
return e + (f || "") + t.toString().replace(/\B(?=(\d{3})+(?!\d))/g, a) + n + (k || "") | |
} | |
} | |
}, | |
text: function() { | |
return { | |
display: Gb | |
} | |
} | |
}; | |
d.extend(T.ext.internal, { | |
_fnExternApiFunc: db, | |
_fnBuildAjax: S, | |
_fnAjaxUpdate: wa, | |
_fnAjaxParameters: ta, | |
_fnAjaxUpdateDraw: na, | |
_fnAjaxDataSrc: ea, | |
_fnAddColumn: t, | |
_fnColumnOptions: w, | |
_fnAdjustColumnSizing: u, | |
_fnVisibleToColumnIndex: C, | |
_fnColumnIndexToVisible: A, | |
_fnVisbleColumns: v, | |
_fnGetColumns: B, | |
_fnColumnTypes: D, | |
_fnApplyColumnDefs: E, | |
_fnHungarianMap: h, | |
_fnCamelToHungarian: p, | |
_fnLanguageCompat: q, | |
_fnBrowserDetect: k, | |
_fnAddData: F, | |
_fnAddTr: G, | |
_fnNodeToDataIndex: function(a, d) { | |
return d._DT_RowIndex !== m ? d._DT_RowIndex : null | |
}, | |
_fnNodeToColumnIndex: function(a, c, f) { | |
return d.inArray(f, a.aoData[c].anCells) | |
}, | |
_fnGetCellData: J, | |
_fnSetCellData: I, | |
_fnSplitObjNotation: K, | |
_fnGetObjectDataFn: M, | |
_fnSetObjectDataFn: L, | |
_fnGetDataMaster: U, | |
_fnClearTable: Q, | |
_fnDeleteIndex: H, | |
_fnInvalidate: O, | |
_fnGetRowElements: W, | |
_fnCreateTr: ca, | |
_fnBuildHead: Y, | |
_fnDrawHead: Z, | |
_fnDraw: R, | |
_fnReDraw: aa, | |
_fnAddOptionsHtml: da, | |
_fnDetectHeader: ua, | |
_fnGetUniqueThs: Da, | |
_fnFeatureHtmlFilter: Ea, | |
_fnFilterComplete: ja, | |
_fnFilterCustom: hb, | |
_fnFilterColumn: ob, | |
_fnFilter: xa, | |
_fnFilterCreateSearch: P, | |
_fnEscapeRegex: Na, | |
_fnFilterData: z, | |
_fnFeatureHtmlInfo: Qb, | |
_fnUpdateInfo: Ia, | |
_fnInfoMacros: za, | |
_fnInitialise: Ta, | |
_fnInitComplete: ib, | |
_fnLengthChange: Ib, | |
_fnFeatureHtmlLength: jb, | |
_fnFeatureHtmlPaginate: X, | |
_fnPageChange: kb, | |
_fnFeatureHtmlProcessing: La, | |
_fnProcessingDisplay: Ga, | |
_fnFeatureHtmlTable: Ha, | |
_fnScrollDraw: Sa, | |
_fnApplyToChildren: Ua, | |
_fnCalculateColumnWidths: ub, | |
_fnThrottle: ka, | |
_fnConvertToWidth: ab, | |
_fnGetWidestNode: yb, | |
_fnGetMaxLenString: Ma, | |
_fnStringToCss: ia, | |
_fnSortFlatten: va, | |
_fnSort: vb, | |
_fnSortAria: Jb, | |
_fnSortListener: ma, | |
_fnSortAttachListener: Ab, | |
_fnSortingClasses: pb, | |
_fnSortData: Lb, | |
_fnSaveState: Va, | |
_fnLoadState: cc, | |
_fnSettingsFromNode: Bb, | |
_fnLog: lb, | |
_fnMap: Za, | |
_fnBindAction: qb, | |
_fnCallbackReg: Aa, | |
_fnCallbackFire: qa, | |
_fnLengthOverflow: ic, | |
_fnRenderer: jc, | |
_fnDataSource: Wa, | |
_fnRowAttributes: ha, | |
_fnCalculateEnd: function() {} | |
}); | |
d.fn.dataTable = T; | |
T.$ = d; | |
d.fn.dataTableSettings = T.settings; | |
d.fn.dataTableExt = T.ext; | |
d.fn.DataTable = function(a) { | |
return d(this).dataTable(a).api() | |
}; | |
d.each(T, function(a, c) { | |
d.fn.DataTable[a] = c | |
}); | |
return d.fn.dataTable | |
}); | |
! function(d) { | |
"object" == typeof exports && "undefined" != typeof module ? module.exports = d() : "function" == typeof define && define.amd ? define([], d) : ("undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this).Chart = d() | |
}(function() { | |
return function c(e, m, h) { | |
function p(a, k) { | |
if (!m[a]) { | |
if (!e[a]) { | |
var f = "function" == typeof require && require; | |
if (!k && f) return f(a, !0); | |
if (q) return q(a, !0); | |
f = Error("Cannot find module '" + a + "'"); | |
throw f.code = "MODULE_NOT_FOUND", f | |
} | |
f = m[a] = { | |
exports: {} | |
}; | |
e[a][0].call(f.exports, function(c) { | |
var f = e[a][1][c]; | |
return p(f ? f : c) | |
}, f, f.exports, c, e, m, h) | |
} | |
return m[a].exports | |
} | |
for (var q = "function" == typeof require && require, a = 0; a < h.length; a++) p(h[a]); | |
return p | |
}({ | |
1: [function(c, e, m) { | |
function h(a) { | |
if (a) { | |
var c = /^#([a-fA-F0-9]{6})$/, | |
f = /^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/, | |
k = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/, | |
e = /(\w+)/, | |
t = [0, 0, 0], | |
h = 1, | |
m = a.match(/^#([a-fA-F0-9]{3})$/); | |
if (m) | |
for (m = m[1], a = 0; a < t.length; a++) t[a] = parseInt(m[a] + m[a], 16); | |
else if (m = a.match(c)) | |
for (m = m[1], a = 0; a < t.length; a++) t[a] = parseInt(m.slice(2 * a, 2 * a + 2), 16); | |
else if (m = a.match(f)) { | |
for (a = 0; a < t.length; a++) t[a] = parseInt(m[a + 1]); | |
h = parseFloat(m[4]) | |
} else if (m = a.match(k)) { | |
for (a = 0; a < t.length; a++) t[a] = Math.round(2.55 * parseFloat(m[a + 1])); | |
h = parseFloat(m[4]) | |
} else if (m = a.match(e)) { | |
if ("transparent" == m[1]) return [0, 0, 0, 0]; | |
if (t = w[m[1]], !t) return | |
} | |
for (a = 0; a < t.length; a++) t[a] = n(t[a], 0, 255); | |
return h = h || 0 == h ? n(h, 0, 1) : 1, t[3] = h, t | |
} | |
} | |
function p(a) { | |
if (a) { | |
var c = a.match(/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/); | |
if (c) { | |
var f = parseFloat(c[4]); | |
a = n(parseInt(c[1]), 0, 360); | |
var k = n(parseFloat(c[2]), 0, 100), | |
c = n(parseFloat(c[3]), 0, 100), | |
f = n(isNaN(f) ? 1 : f, 0, 1); | |
return [a, k, c, f] | |
} | |
} | |
} | |
function q(a) { | |
if (a) { | |
var c = a.match(/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/); | |
if (c) { | |
var f = parseFloat(c[4]); | |
a = n(parseInt(c[1]), 0, 360); | |
var k = n(parseFloat(c[2]), 0, 100), | |
c = n(parseFloat(c[3]), 0, 100), | |
f = n(isNaN(f) ? 1 : f, 0, 1); | |
return [a, k, c, f] | |
} | |
} | |
} | |
function a(a, c) { | |
return void 0 === c && (c = void 0 !== a[3] ? a[3] : 1), "rgba(" + a[0] + ", " + a[1] + ", " + a[2] + ", " + c + ")" | |
} | |
function f(a, c) { | |
return "rgba(" + Math.round(a[0] / 255 * 100) + "%, " + Math.round(a[1] / 255 * 100) + "%, " + Math.round(a[2] / 255 * 100) + "%, " + (c || a[3] || 1) + ")" | |
} | |
function k(a, c) { | |
return void 0 === c && (c = void 0 !== a[3] ? a[3] : 1), "hsla(" + a[0] + ", " + a[1] + "%, " + a[2] + "%, " + c + ")" | |
} | |
function n(a, c, f) { | |
return Math.min(Math.max(c, a), f) | |
} | |
function t(a) { | |
a = a.toString(16).toUpperCase(); | |
return 2 > a.length ? "0" + a : a | |
} | |
var w = c(5); | |
e.exports = { | |
getRgba: h, | |
getHsla: p, | |
getRgb: function(a) { | |
return (a = h(a)) && a.slice(0, 3) | |
}, | |
getHsl: function(a) { | |
return (a = p(a)) && a.slice(0, 3) | |
}, | |
getHwb: q, | |
getAlpha: function(a) { | |
var c = h(a); | |
return c ? c[3] : (c = p(a)) ? c[3] : (c = q(a)) ? c[3] : void 0 | |
}, | |
hexString: function(a) { | |
return "#" + t(a[0]) + t(a[1]) + t(a[2]) | |
}, | |
rgbString: function(c, f) { | |
return 1 > f || c[3] && 1 > c[3] ? a(c, f) : "rgb(" + c[0] + ", " + c[1] + ", " + c[2] + ")" | |
}, | |
rgbaString: a, | |
percentString: function(a, c) { | |
return 1 > c || a[3] && 1 > a[3] ? f(a, c) : "rgb(" + Math.round(a[0] / 255 * 100) + "%, " + Math.round(a[1] / 255 * 100) + "%, " + Math.round(a[2] / 255 * 100) + "%)" | |
}, | |
percentaString: f, | |
hslString: function(a, c) { | |
return 1 > c || a[3] && 1 > a[3] ? k(a, c) : "hsl(" + a[0] + ", " + a[1] + "%, " + a[2] + "%)" | |
}, | |
hslaString: k, | |
hwbString: function(a, c) { | |
return void 0 === c && (c = void 0 !== a[3] ? a[3] : 1), "hwb(" + a[0] + ", " + a[1] + "%, " + a[2] + "%" + (void 0 !== c && 1 !== c ? ", " + c : "") + ")" | |
}, | |
keyword: function(a) { | |
return u[a.slice(0, 3)] | |
} | |
}; | |
var u = {}, | |
C; | |
for (C in w) u[w[C]] = C | |
}, { | |
5: 5 | |
}], | |
2: [function(c, e, m) { | |
var h = c(4), | |
p = c(1), | |
q = function(a) { | |
if (a instanceof q) return a; | |
if (!(this instanceof q)) return new q(a); | |
this.values = { | |
rgb: [0, 0, 0], | |
hsl: [0, 0, 0], | |
hsv: [0, 0, 0], | |
hwb: [0, 0, 0], | |
cmyk: [0, 0, 0, 0], | |
alpha: 1 | |
}; | |
var c; | |
if ("string" == typeof a) | |
if (c = p.getRgba(a)) this.setValues("rgb", c); | |
else if (c = p.getHsla(a)) this.setValues("hsl", c); | |
else { | |
if (!(c = p.getHwb(a))) throw Error('Unable to parse color from string "' + a + '"'); | |
this.setValues("hwb", c) | |
} else if ("object" == typeof a) | |
if (c = a, void 0 !== c.r || void 0 !== c.red) this.setValues("rgb", c); | |
else if (void 0 !== c.l || void 0 !== c.lightness) this.setValues("hsl", c); | |
else if (void 0 !== c.v || void 0 !== c.value) this.setValues("hsv", c); | |
else if (void 0 !== c.w || void 0 !== c.whiteness) this.setValues("hwb", c); | |
else { | |
if (void 0 === c.c && void 0 === c.cyan) throw Error("Unable to parse color from object " + JSON.stringify(a)); | |
this.setValues("cmyk", c) | |
} | |
}; | |
q.prototype = { | |
rgb: function() { | |
return this.setSpace("rgb", arguments) | |
}, | |
hsl: function() { | |
return this.setSpace("hsl", arguments) | |
}, | |
hsv: function() { | |
return this.setSpace("hsv", arguments) | |
}, | |
hwb: function() { | |
return this.setSpace("hwb", arguments) | |
}, | |
cmyk: function() { | |
return this.setSpace("cmyk", arguments) | |
}, | |
rgbArray: function() { | |
return this.values.rgb | |
}, | |
hslArray: function() { | |
return this.values.hsl | |
}, | |
hsvArray: function() { | |
return this.values.hsv | |
}, | |
hwbArray: function() { | |
var a = this.values; | |
return 1 !== a.alpha ? a.hwb.concat([a.alpha]) : a.hwb | |
}, | |
cmykArray: function() { | |
return this.values.cmyk | |
}, | |
rgbaArray: function() { | |
var a = this.values; | |
return a.rgb.concat([a.alpha]) | |
}, | |
hslaArray: function() { | |
var a = this.values; | |
return a.hsl.concat([a.alpha]) | |
}, | |
alpha: function(a) { | |
return void 0 === a ? this.values.alpha : (this.setValues("alpha", a), this) | |
}, | |
red: function(a) { | |
return this.setChannel("rgb", 0, a) | |
}, | |
green: function(a) { | |
return this.setChannel("rgb", 1, a) | |
}, | |
blue: function(a) { | |
return this.setChannel("rgb", 2, a) | |
}, | |
hue: function(a) { | |
return a && (a %= 360, a = 0 > a ? 360 + a : a), this.setChannel("hsl", 0, a) | |
}, | |
saturation: function(a) { | |
return this.setChannel("hsl", 1, a) | |
}, | |
lightness: function(a) { | |
return this.setChannel("hsl", 2, a) | |
}, | |
saturationv: function(a) { | |
return this.setChannel("hsv", 1, a) | |
}, | |
whiteness: function(a) { | |
return this.setChannel("hwb", 1, a) | |
}, | |
blackness: function(a) { | |
return this.setChannel("hwb", 2, a) | |
}, | |
value: function(a) { | |
return this.setChannel("hsv", 2, a) | |
}, | |
cyan: function(a) { | |
return this.setChannel("cmyk", 0, a) | |
}, | |
magenta: function(a) { | |
return this.setChannel("cmyk", 1, a) | |
}, | |
yellow: function(a) { | |
return this.setChannel("cmyk", 2, a) | |
}, | |
black: function(a) { | |
return this.setChannel("cmyk", 3, a) | |
}, | |
hexString: function() { | |
return p.hexString(this.values.rgb) | |
}, | |
rgbString: function() { | |
return p.rgbString(this.values.rgb, this.values.alpha) | |
}, | |
rgbaString: function() { | |
return p.rgbaString(this.values.rgb, this.values.alpha) | |
}, | |
percentString: function() { | |
return p.percentString(this.values.rgb, this.values.alpha) | |
}, | |
hslString: function() { | |
return p.hslString(this.values.hsl, this.values.alpha) | |
}, | |
hslaString: function() { | |
return p.hslaString(this.values.hsl, this.values.alpha) | |
}, | |
hwbString: function() { | |
return p.hwbString(this.values.hwb, this.values.alpha) | |
}, | |
keyword: function() { | |
return p.keyword(this.values.rgb, this.values.alpha) | |
}, | |
rgbNumber: function() { | |
var a = this.values.rgb; | |
return a[0] << 16 | a[1] << 8 | a[2] | |
}, | |
luminosity: function() { | |
for (var a = this.values.rgb, c = [], k = 0; k < a.length; k++) { | |
var n = a[k] / 255; | |
c[k] = .03928 >= n ? n / 12.92 : Math.pow((n + .055) / 1.055, 2.4) | |
} | |
return .2126 * c[0] + .7152 * c[1] + .0722 * c[2] | |
}, | |
contrast: function(a) { | |
var c = this.luminosity(); | |
a = a.luminosity(); | |
return c > a ? (c + .05) / (a + .05) : (a + .05) / (c + .05) | |
}, | |
level: function(a) { | |
a = this.contrast(a); | |
return 7.1 <= a ? "AAA" : 4.5 <= a ? "AA" : "" | |
}, | |
dark: function() { | |
var a = this.values.rgb; | |
return 128 > (299 * a[0] + 587 * a[1] + 114 * a[2]) / 1e3 | |
}, | |
light: function() { | |
return !this.dark() | |
}, | |
negate: function() { | |
for (var a = [], c = 0; 3 > c; c++) a[c] = 255 - this.values.rgb[c]; | |
return this.setValues("rgb", a), this | |
}, | |
lighten: function(a) { | |
var c = this.values.hsl; | |
return c[2] += c[2] * a, this.setValues("hsl", c), this | |
}, | |
darken: function(a) { | |
var c = this.values.hsl; | |
return c[2] -= c[2] * a, this.setValues("hsl", c), this | |
}, | |
saturate: function(a) { | |
var c = this.values.hsl; | |
return c[1] += c[1] * a, this.setValues("hsl", c), this | |
}, | |
desaturate: function(a) { | |
var c = this.values.hsl; | |
return c[1] -= c[1] * a, this.setValues("hsl", c), this | |
}, | |
whiten: function(a) { | |
var c = this.values.hwb; | |
return c[1] += c[1] * a, this.setValues("hwb", c), this | |
}, | |
blacken: function(a) { | |
var c = this.values.hwb; | |
return c[2] += c[2] * a, this.setValues("hwb", c), this | |
}, | |
greyscale: function() { | |
var a = this.values.rgb, | |
a = .3 * a[0] + .59 * a[1] + .11 * a[2]; | |
return this.setValues("rgb", [a, a, a]), this | |
}, | |
clearer: function(a) { | |
var c = this.values.alpha; | |
return this.setValues("alpha", c - c * a), this | |
}, | |
opaquer: function(a) { | |
var c = this.values.alpha; | |
return this.setValues("alpha", c + c * a), this | |
}, | |
rotate: function(a) { | |
var c = this.values.hsl; | |
a = (c[0] + a) % 360; | |
return c[0] = 0 > a ? 360 + a : a, this.setValues("hsl", c), this | |
}, | |
mix: function(a, c) { | |
var f = void 0 === c ? .5 : c, | |
n = 2 * f - 1, | |
e = this.alpha() - a.alpha(), | |
n = ((-1 === n * e ? n : (n + e) / (1 + n * e)) + 1) / 2, | |
e = 1 - n; | |
return this.rgb(n * this.red() + e * a.red(), n * this.green() + e * a.green(), n * this.blue() + e * a.blue()).alpha(this.alpha() * f + a.alpha() * (1 - f)) | |
}, | |
toJSON: function() { | |
return this.rgb() | |
}, | |
clone: function() { | |
var a, c, k = new q, | |
n = this.values, | |
e = k.values, | |
h; | |
for (h in n) n.hasOwnProperty(h) && (a = n[h], c = {}.toString.call(a), "[object Array]" === c ? e[h] = a.slice(0) : "[object Number]" === c ? e[h] = a : console.error("unexpected color value:", a)); | |
return k | |
} | |
}; | |
q.prototype.spaces = { | |
rgb: ["red", "green", "blue"], | |
hsl: ["hue", "saturation", "lightness"], | |
hsv: ["hue", "saturation", "value"], | |
hwb: ["hue", "whiteness", "blackness"], | |
cmyk: ["cyan", "magenta", "yellow", "black"] | |
}; | |
q.prototype.maxes = { | |
rgb: [255, 255, 255], | |
hsl: [360, 100, 100], | |
hsv: [360, 100, 100], | |
hwb: [360, 100, 100], | |
cmyk: [100, 100, 100, 100] | |
}; | |
q.prototype.getValues = function(a) { | |
for (var c = this.values, k = {}, n = 0; n < a.length; n++) k[a.charAt(n)] = c[a][n]; | |
return 1 !== c.alpha && (k.a = c.alpha), k | |
}; | |
q.prototype.setValues = function(a, c) { | |
var f, n = this.values, | |
e = this.spaces, | |
m = this.maxes; | |
f = 1; | |
if ("alpha" === a) f = c; | |
else if (c.length) n[a] = c.slice(0, a.length), f = c[a.length]; | |
else if (void 0 !== c[a.charAt(0)]) { | |
for (f = 0; f < a.length; f++) n[a][f] = c[a.charAt(f)]; | |
f = c.a | |
} else if (void 0 !== c[e[a][0]]) { | |
var u = e[a]; | |
for (f = 0; f < a.length; f++) n[a][f] = c[u[f]]; | |
f = c.alpha | |
} | |
if (n.alpha = Math.max(0, Math.min(1, void 0 === f ? n.alpha : f)), "alpha" === a) return !1; | |
for (f = 0; f < a.length; f++) u = Math.max(0, Math.min(m[a][f], n[a][f])), n[a][f] = Math.round(u); | |
for (var q in e) q !== a && (n[q] = h[a][q](n[a])); | |
return !0 | |
}; | |
q.prototype.setSpace = function(a, c) { | |
var f = c[0]; | |
return void 0 === f ? this.getValues(a) : ("number" == typeof f && (f = Array.prototype.slice.call(c)), this.setValues(a, f), this) | |
}; | |
q.prototype.setChannel = function(a, c, k) { | |
var f = this.values[a]; | |
return void 0 === k ? f[c] : k === f[c] ? this : (f[c] = k, this.setValues(a, f), this) | |
}; | |
"undefined" != typeof window && (window.Color = q); | |
e.exports = q | |
}, { | |
1: 1, | |
4: 4 | |
}], | |
3: [function(c, e, m) { | |
function h(a) { | |
var c, f, k, n = a[0] / 255, | |
e = a[1] / 255; | |
a = a[2] / 255; | |
var t = Math.min(n, e, a), | |
h = Math.max(n, e, a), | |
m = h - t; | |
return h == t ? c = 0 : n == h ? c = (e - a) / m : e == h ? c = 2 + (a - n) / m : a == h && (c = 4 + (n - e) / m), c = Math.min(60 * c, 360), 0 > c && (c += 360), k = (t + h) / 2, f = h == t ? 0 : .5 >= k ? m / (h + t) : m / (2 - h - t), [c, 100 * f, 100 * k] | |
} | |
function p(a) { | |
var c, f, k, n = a[0], | |
e = a[1]; | |
a = a[2]; | |
var t = Math.min(n, e, a), | |
h = Math.max(n, e, a), | |
m = h - t; | |
return f = 0 == h ? 0 : m / h * 1e3 / 10, h == t ? c = 0 : n == h ? c = (e - a) / m : e == h ? c = 2 + (a - n) / m : a == h && (c = 4 + (n - e) / m), c = Math.min(60 * c, 360), 0 > c && (c += 360), k = h / 255 * 1e3 / 10, [c, f, k] | |
} | |
function q(a) { | |
var c = a[0], | |
f = a[1], | |
k = a[2]; | |
a = h(a)[0]; | |
var n = 1 / 255 * Math.min(c, Math.min(f, k)), | |
k = 1 - 1 / 255 * Math.max(c, Math.max(f, k)); | |
return [a, 100 * n, 100 * k] | |
} | |
function a(a) { | |
var c, f, k, n, e = a[0] / 255, | |
t = a[1] / 255; | |
a = a[2] / 255; | |
return n = Math.min(1 - e, 1 - t, 1 - a), c = (1 - e - n) / (1 - n) || 0, f = (1 - t - n) / (1 - n) || 0, k = (1 - a - n) / (1 - n) || 0, [100 * c, 100 * f, 100 * k, 100 * n] | |
} | |
function f(a) { | |
return J[JSON.stringify(a)] | |
} | |
function k(a) { | |
var c = a[0] / 255, | |
f = a[1] / 255; | |
a = a[2] / 255; | |
c = .04045 < c ? Math.pow((c + .055) / 1.055, 2.4) : c / 12.92; | |
f = .04045 < f ? Math.pow((f + .055) / 1.055, 2.4) : f / 12.92; | |
a = .04045 < a ? Math.pow((a + .055) / 1.055, 2.4) : a / 12.92; | |
return [100 * (.4124 * c + .3576 * f + .1805 * a), 100 * (.2126 * c + .7152 * f + .0722 * a), 100 * (.0193 * c + .1192 * f + .9505 * a)] | |
} | |
function n(a) { | |
var c, f, n, e = k(a); | |
a = e[0]; | |
var t = e[1], | |
e = e[2]; | |
return a /= 95.047, t /= 100, e /= 108.883, a = .008856 < a ? Math.pow(a, 1 / 3) : 7.787 * a + 16 / 116, t = .008856 < t ? Math.pow(t, 1 / 3) : 7.787 * t + 16 / 116, e = .008856 < e ? Math.pow(e, 1 / 3) : 7.787 * e + 16 / 116, c = 116 * t - 16, f = 500 * (a - t), n = 200 * (t - e), [c, f, n] | |
} | |
function t(a) { | |
var c, f, k, n = a[0] / 360; | |
c = a[1] / 100; | |
a = a[2] / 100; | |
if (0 == c) return f = 255 * a, [f, f, f]; | |
c = .5 > a ? a * (1 + c) : a + c - a * c; | |
a = 2 * a - c; | |
k = [0, 0, 0]; | |
for (var e = 0; 3 > e; e++) f = n + 1 / 3 * -(e - 1), 0 > f && f++, 1 < f && f--, f = 1 > 6 * f ? a + 6 * (c - a) * f : 1 > 2 * f ? c : 2 > 3 * f ? a + (c - a) * (2 / 3 - f) * 6 : a, k[e] = 255 * f; | |
return k | |
} | |
function w(a) { | |
var c = a[0] / 60, | |
f = a[1] / 100; | |
a = a[2] / 100; | |
var k = Math.floor(c) % 6, | |
n = c - Math.floor(c), | |
c = 255 * a * (1 - f), | |
e = 255 * a * (1 - f * n), | |
f = 255 * a * (1 - f * (1 - n)); | |
a *= 255; | |
switch (k) { | |
case 0: | |
return [a, f, c]; | |
case 1: | |
return [e, a, c]; | |
case 2: | |
return [c, a, f]; | |
case 3: | |
return [c, e, a]; | |
case 4: | |
return [f, c, a]; | |
case 5: | |
return [a, c, e] | |
} | |
} | |
function u(a) { | |
var c, f, k, n; | |
n = a[0] / 360; | |
var e = a[1] / 100; | |
a = a[2] / 100; | |
var t = e + a; | |
switch (1 < t && (e /= t, a /= t), c = Math.floor(6 * n), f = 1 - a, k = 6 * n - c, 0 != (1 & c) && (k = 1 - k), n = e + k * (f - e), c) { | |
default: | |
case 6: | |
case 0: | |
r = f;g = n;b = e; | |
break; | |
case 1: | |
r = n;g = f;b = e; | |
break; | |
case 2: | |
r = e;g = f;b = n; | |
break; | |
case 3: | |
r = e;g = n;b = f; | |
break; | |
case 4: | |
r = n;g = e;b = f; | |
break; | |
case 5: | |
r = f, | |
g = e, | |
b = n | |
} | |
return [255 * r, 255 * g, 255 * b] | |
} | |
function C(a) { | |
var c, f, k, n = a[1] / 100, | |
e = a[2] / 100, | |
t = a[3] / 100; | |
return c = 1 - Math.min(1, a[0] / 100 * (1 - t) + t), f = 1 - Math.min(1, n * (1 - t) + t), k = 1 - Math.min(1, e * (1 - t) + t), [255 * c, 255 * f, 255 * k] | |
} | |
function A(a) { | |
var c, f, k, n = a[0] / 100, | |
e = a[1] / 100; | |
a = a[2] / 100; | |
return c = 3.2406 * n + -1.5372 * e + -.4986 * a, f = -.9689 * n + 1.8758 * e + .0415 * a, k = .0557 * n + -.204 * e + 1.057 * a, c = .0031308 < c ? 1.055 * Math.pow(c, 1 / 2.4) - .055 : c *= 12.92, f = .0031308 < f ? 1.055 * Math.pow(f, 1 / 2.4) - .055 : f *= 12.92, k = .0031308 < k ? 1.055 * Math.pow(k, 1 / 2.4) - .055 : k *= 12.92, c = Math.min(Math.max(0, c), 1), f = Math.min(Math.max(0, f), 1), k = Math.min(Math.max(0, k), 1), [255 * c, 255 * f, 255 * k] | |
} | |
function v(a) { | |
var c, f, k, n = a[0], | |
e = a[1]; | |
a = a[2]; | |
return n /= 95.047, e /= 100, a /= 108.883, n = .008856 < n ? Math.pow(n, 1 / 3) : 7.787 * n + 16 / 116, e = .008856 < e ? Math.pow(e, 1 / 3) : 7.787 * e + 16 / 116, a = .008856 < a ? Math.pow(a, 1 / 3) : 7.787 * a + 16 / 116, c = 116 * e - 16, f = 500 * (n - e), k = 200 * (e - a), [c, f, k] | |
} | |
function B(a) { | |
var c, f, k, n, e = a[0], | |
t = a[1]; | |
a = a[2]; | |
return 8 >= e ? (f = 100 * e / 903.3, n = f / 100 * 7.787 + 16 / 116) : (f = 100 * Math.pow((e + 16) / 116, 3), n = Math.pow(f / 100, 1 / 3)), c = .008856 >= c / 95.047 ? c = 95.047 * (t / 500 + n - 16 / 116) / 7.787 : 95.047 * Math.pow(t / 500 + n, 3), k = .008859 >= k / 108.883 ? k = 108.883 * (n - a / 200 - 16 / 116) / 7.787 : 108.883 * Math.pow(n - a / 200, 3), [c, f, k] | |
} | |
function D(a) { | |
var c, f, k, n = a[0], | |
e = a[1]; | |
a = a[2]; | |
return c = Math.atan2(a, e), f = 360 * c / 2 / Math.PI, 0 > f && (f += 360), k = Math.sqrt(e * e + a * a), [n, k, f] | |
} | |
function E(a) { | |
return A(B(a)) | |
} | |
function F(a) { | |
var c, f, k, n = a[0], | |
e = a[1]; | |
return k = a[2] / 360 * 2 * Math.PI, c = e * Math.cos(k), f = e * Math.sin(k), [n, c, f] | |
} | |
e.exports = { | |
rgb2hsl: h, | |
rgb2hsv: p, | |
rgb2hwb: q, | |
rgb2cmyk: a, | |
rgb2keyword: f, | |
rgb2xyz: k, | |
rgb2lab: n, | |
rgb2lch: function(a) { | |
return D(n(a)) | |
}, | |
hsl2rgb: t, | |
hsl2hsv: function(a) { | |
var c, f, k = a[0], | |
n = a[1] / 100; | |
a = a[2] / 100; | |
return 0 === a ? [0, 0, 0] : (a *= 2, n *= 1 >= a ? a : 2 - a, f = (a + n) / 2, c = 2 * n / (a + n), [k, 100 * c, 100 * f]) | |
}, | |
hsl2hwb: function(a) { | |
return q(t(a)) | |
}, | |
hsl2cmyk: function(c) { | |
return a(t(c)) | |
}, | |
hsl2keyword: function(a) { | |
return f(t(a)) | |
}, | |
hsv2rgb: w, | |
hsv2hsl: function(a) { | |
var c, f, k = a[0], | |
n = a[1] / 100; | |
a = a[2] / 100; | |
return f = (2 - n) * a, c = n * a, c /= 1 >= f ? f : 2 - f, c = c || 0, f /= 2, [k, 100 * c, 100 * f] | |
}, | |
hsv2hwb: function(a) { | |
return q(w(a)) | |
}, | |
hsv2cmyk: function(c) { | |
return a(w(c)) | |
}, | |
hsv2keyword: function(a) { | |
return f(w(a)) | |
}, | |
hwb2rgb: u, | |
hwb2hsl: function(a) { | |
return h(u(a)) | |
}, | |
hwb2hsv: function(a) { | |
return p(u(a)) | |
}, | |
hwb2cmyk: function(c) { | |
return a(u(c)) | |
}, | |
hwb2keyword: function(a) { | |
return f(u(a)) | |
}, | |
cmyk2rgb: C, | |
cmyk2hsl: function(a) { | |
return h(C(a)) | |
}, | |
cmyk2hsv: function(a) { | |
return p(C(a)) | |
}, | |
cmyk2hwb: function(a) { | |
return q(C(a)) | |
}, | |
cmyk2keyword: function(a) { | |
return f(C(a)) | |
}, | |
keyword2rgb: function(a) { | |
return G[a] | |
}, | |
keyword2hsl: function(a) { | |
return h(G[a]) | |
}, | |
keyword2hsv: function(a) { | |
return p(G[a]) | |
}, | |
keyword2hwb: function(a) { | |
return q(G[a]) | |
}, | |
keyword2cmyk: function(c) { | |
return a(G[c]) | |
}, | |
keyword2lab: function(a) { | |
return n(G[a]) | |
}, | |
keyword2xyz: function(a) { | |
return k(G[a]) | |
}, | |
xyz2rgb: A, | |
xyz2lab: v, | |
xyz2lch: function(a) { | |
return D(v(a)) | |
}, | |
lab2xyz: B, | |
lab2rgb: E, | |
lab2lch: D, | |
lch2lab: F, | |
lch2xyz: function(a) { | |
return B(F(a)) | |
}, | |
lch2rgb: function(a) { | |
return E(F(a)) | |
} | |
}; | |
var G = { | |
aliceblue: [240, 248, 255], | |
antiquewhite: [250, 235, 215], | |
aqua: [0, 255, 255], | |
aquamarine: [127, 255, 212], | |
azure: [240, 255, 255], | |
beige: [245, 245, 220], | |
bisque: [255, 228, 196], | |
black: [0, 0, 0], | |
blanchedalmond: [255, 235, 205], | |
blue: [0, 0, 255], | |
blueviolet: [138, 43, 226], | |
brown: [165, 42, 42], | |
burlywood: [222, 184, 135], | |
cadetblue: [95, 158, 160], | |
chartreuse: [127, 255, 0], | |
chocolate: [210, 105, 30], | |
coral: [255, 127, 80], | |
cornflowerblue: [100, 149, 237], | |
cornsilk: [255, 248, 220], | |
crimson: [220, 20, 60], | |
cyan: [0, 255, 255], | |
darkblue: [0, 0, 139], | |
darkcyan: [0, 139, 139], | |
darkgoldenrod: [184, 134, 11], | |
darkgray: [169, 169, 169], | |
darkgreen: [0, 100, 0], | |
darkgrey: [169, 169, 169], | |
darkkhaki: [189, 183, 107], | |
darkmagenta: [139, 0, 139], | |
darkolivegreen: [85, 107, 47], | |
darkorange: [255, 140, 0], | |
darkorchid: [153, 50, 204], | |
darkred: [139, 0, 0], | |
darksalmon: [233, 150, 122], | |
darkseagreen: [143, 188, 143], | |
darkslateblue: [72, 61, 139], | |
darkslategray: [47, 79, 79], | |
darkslategrey: [47, 79, 79], | |
darkturquoise: [0, 206, 209], | |
darkviolet: [148, 0, 211], | |
deeppink: [255, 20, 147], | |
deepskyblue: [0, 191, 255], | |
dimgray: [105, 105, 105], | |
dimgrey: [105, 105, 105], | |
dodgerblue: [30, 144, 255], | |
firebrick: [178, 34, 34], | |
floralwhite: [255, 250, 240], | |
forestgreen: [34, 139, 34], | |
fuchsia: [255, 0, 255], | |
gainsboro: [220, 220, 220], | |
ghostwhite: [248, 248, 255], | |
gold: [255, 215, 0], | |
goldenrod: [218, 165, 32], | |
gray: [128, 128, 128], | |
green: [0, 128, 0], | |
greenyellow: [173, 255, 47], | |
grey: [128, 128, 128], | |
honeydew: [240, 255, 240], | |
hotpink: [255, 105, 180], | |
indianred: [205, 92, 92], | |
indigo: [75, 0, 130], | |
ivory: [255, 255, 240], | |
khaki: [240, 230, 140], | |
lavender: [230, 230, 250], | |
lavenderblush: [255, 240, 245], | |
lawngreen: [124, 252, 0], | |
lemonchiffon: [255, 250, 205], | |
lightblue: [173, 216, 230], | |
lightcoral: [240, 128, 128], | |
lightcyan: [224, 255, 255], | |
lightgoldenrodyellow: [250, 250, 210], | |
lightgray: [211, 211, 211], | |
lightgreen: [144, 238, 144], | |
lightgrey: [211, 211, 211], | |
lightpink: [255, 182, 193], | |
lightsalmon: [255, 160, 122], | |
lightseagreen: [32, 178, 170], | |
lightskyblue: [135, 206, 250], | |
lightslategray: [119, 136, 153], | |
lightslategrey: [119, 136, 153], | |
lightsteelblue: [176, 196, 222], | |
lightyellow: [255, 255, 224], | |
lime: [0, 255, 0], | |
limegreen: [50, 205, 50], | |
linen: [250, 240, 230], | |
magenta: [255, 0, 255], | |
maroon: [128, 0, 0], | |
mediumaquamarine: [102, 205, 170], | |
mediumblue: [0, 0, 205], | |
mediumorchid: [186, 85, 211], | |
mediumpurple: [147, 112, 219], | |
mediumseagreen: [60, 179, 113], | |
mediumslateblue: [123, 104, 238], | |
mediumspringgreen: [0, 250, 154], | |
mediumturquoise: [72, 209, 204], | |
mediumvioletred: [199, 21, 133], | |
midnightblue: [25, 25, 112], | |
mintcream: [245, 255, 250], | |
mistyrose: [255, 228, 225], | |
moccasin: [255, 228, 181], | |
navajowhite: [255, 222, 173], | |
navy: [0, 0, 128], | |
oldlace: [253, 245, 230], | |
olive: [128, 128, 0], | |
olivedrab: [107, 142, 35], | |
orange: [255, 165, 0], | |
orangered: [255, 69, 0], | |
orchid: [218, 112, 214], | |
palegoldenrod: [238, 232, 170], | |
palegreen: [152, 251, 152], | |
paleturquoise: [175, 238, 238], | |
palevioletred: [219, 112, 147], | |
papayawhip: [255, 239, 213], | |
peachpuff: [255, 218, 185], | |
peru: [205, 133, 63], | |
pink: [255, 192, 203], | |
plum: [221, 160, 221], | |
powderblue: [176, 224, 230], | |
purple: [128, 0, 128], | |
rebeccapurple: [102, 51, 153], | |
red: [255, 0, 0], | |
rosybrown: [188, 143, 143], | |
royalblue: [65, 105, 225], | |
saddlebrown: [139, 69, 19], | |
salmon: [250, 128, 114], | |
sandybrown: [244, 164, 96], | |
seagreen: [46, 139, 87], | |
seashell: [255, 245, 238], | |
sienna: [160, 82, 45], | |
silver: [192, 192, 192], | |
skyblue: [135, 206, 235], | |
slateblue: [106, 90, 205], | |
slategray: [112, 128, 144], | |
slategrey: [112, 128, 144], | |
snow: [255, 250, 250], | |
springgreen: [0, 255, 127], | |
steelblue: [70, 130, 180], | |
tan: [210, 180, 140], | |
teal: [0, 128, 128], | |
thistle: [216, 191, 216], | |
tomato: [255, 99, 71], | |
turquoise: [64, 224, 208], | |
violet: [238, 130, 238], | |
wheat: [245, 222, 179], | |
white: [255, 255, 255], | |
whitesmoke: [245, 245, 245], | |
yellow: [255, 255, 0], | |
yellowgreen: [154, 205, 50] | |
}, | |
J = {}, | |
I; | |
for (I in G) J[JSON.stringify(G[I])] = I | |
}, {}], | |
4: [function(c, e, m) { | |
var h = c(3), | |
p = function() { | |
return new a | |
}, | |
q; | |
for (q in h) p[q + "Raw"] = function(a) { | |
return function(c) { | |
return "number" == typeof c && (c = Array.prototype.slice.call(arguments)), h[a](c) | |
} | |
}(q), m = /(\w+)2(\w+)/.exec(q), c = m[1], m = m[2], p[c] = p[c] || {}, p[c][m] = p[q] = function(a) { | |
return function(c) { | |
"number" == typeof c && (c = Array.prototype.slice.call(arguments)); | |
var f = h[a](c); | |
if ("string" == typeof f || void 0 === f) return f; | |
for (var k = 0; k < f.length; k++) f[k] = Math.round(f[k]); | |
return f | |
} | |
}(q); | |
var a = function() { | |
this.convs = {} | |
}; | |
a.prototype.routeSpace = function(a, c) { | |
var f = c[0]; | |
return void 0 === f ? this.getValues(a) : ("number" == typeof f && (f = Array.prototype.slice.call(c)), this.setValues(a, f)) | |
}; | |
a.prototype.setValues = function(a, c) { | |
return this.space = a, this.convs = {}, this.convs[a] = c, this | |
}; | |
a.prototype.getValues = function(a) { | |
var c = this.convs[a]; | |
c || (c = this.space, c = p[c][a](this.convs[c]), this.convs[a] = c); | |
return c | |
}; | |
["rgb", "hsl", "hsv", "cmyk", "keyword"].forEach(function(c) { | |
a.prototype[c] = function(a) { | |
return this.routeSpace(c, arguments) | |
} | |
}); | |
e.exports = p | |
}, { | |
3: 3 | |
}], | |
5: [function(c, e, m) { | |
e.exports = { | |
aliceblue: [240, 248, 255], | |
antiquewhite: [250, 235, 215], | |
aqua: [0, 255, 255], | |
aquamarine: [127, 255, 212], | |
azure: [240, 255, 255], | |
beige: [245, 245, 220], | |
bisque: [255, 228, 196], | |
black: [0, 0, 0], | |
blanchedalmond: [255, 235, 205], | |
blue: [0, 0, 255], | |
blueviolet: [138, 43, 226], | |
brown: [165, 42, 42], | |
burlywood: [222, 184, 135], | |
cadetblue: [95, 158, 160], | |
chartreuse: [127, 255, 0], | |
chocolate: [210, 105, 30], | |
coral: [255, 127, 80], | |
cornflowerblue: [100, 149, 237], | |
cornsilk: [255, 248, 220], | |
crimson: [220, 20, 60], | |
cyan: [0, 255, 255], | |
darkblue: [0, 0, 139], | |
darkcyan: [0, 139, 139], | |
darkgoldenrod: [184, 134, 11], | |
darkgray: [169, 169, 169], | |
darkgreen: [0, 100, 0], | |
darkgrey: [169, 169, 169], | |
darkkhaki: [189, 183, 107], | |
darkmagenta: [139, 0, 139], | |
darkolivegreen: [85, 107, 47], | |
darkorange: [255, 140, 0], | |
darkorchid: [153, 50, 204], | |
darkred: [139, 0, 0], | |
darksalmon: [233, 150, 122], | |
darkseagreen: [143, 188, 143], | |
darkslateblue: [72, 61, 139], | |
darkslategray: [47, 79, 79], | |
darkslategrey: [47, 79, 79], | |
darkturquoise: [0, 206, 209], | |
darkviolet: [148, 0, 211], | |
deeppink: [255, 20, 147], | |
deepskyblue: [0, 191, 255], | |
dimgray: [105, 105, 105], | |
dimgrey: [105, 105, 105], | |
dodgerblue: [30, 144, 255], | |
firebrick: [178, 34, 34], | |
floralwhite: [255, 250, 240], | |
forestgreen: [34, 139, 34], | |
fuchsia: [255, 0, 255], | |
gainsboro: [220, 220, 220], | |
ghostwhite: [248, 248, 255], | |
gold: [255, 215, 0], | |
goldenrod: [218, 165, 32], | |
gray: [128, 128, 128], | |
green: [0, 128, 0], | |
greenyellow: [173, 255, 47], | |
grey: [128, 128, 128], | |
honeydew: [240, 255, 240], | |
hotpink: [255, 105, 180], | |
indianred: [205, 92, 92], | |
indigo: [75, 0, 130], | |
ivory: [255, 255, 240], | |
khaki: [240, 230, 140], | |
lavender: [230, 230, 250], | |
lavenderblush: [255, 240, 245], | |
lawngreen: [124, 252, 0], | |
lemonchiffon: [255, 250, 205], | |
lightblue: [173, 216, 230], | |
lightcoral: [240, 128, 128], | |
lightcyan: [224, 255, 255], | |
lightgoldenrodyellow: [250, 250, 210], | |
lightgray: [211, 211, 211], | |
lightgreen: [144, 238, 144], | |
lightgrey: [211, 211, 211], | |
lightpink: [255, 182, 193], | |
lightsalmon: [255, 160, 122], | |
lightseagreen: [32, 178, 170], | |
lightskyblue: [135, 206, 250], | |
lightslategray: [119, 136, 153], | |
lightslategrey: [119, 136, 153], | |
lightsteelblue: [176, 196, 222], | |
lightyellow: [255, 255, 224], | |
lime: [0, 255, 0], | |
limegreen: [50, 205, 50], | |
linen: [250, 240, 230], | |
magenta: [255, 0, 255], | |
maroon: [128, 0, 0], | |
mediumaquamarine: [102, 205, 170], | |
mediumblue: [0, 0, 205], | |
mediumorchid: [186, 85, 211], | |
mediumpurple: [147, 112, 219], | |
mediumseagreen: [60, 179, 113], | |
mediumslateblue: [123, 104, 238], | |
mediumspringgreen: [0, 250, 154], | |
mediumturquoise: [72, 209, 204], | |
mediumvioletred: [199, 21, 133], | |
midnightblue: [25, 25, 112], | |
mintcream: [245, 255, 250], | |
mistyrose: [255, 228, 225], | |
moccasin: [255, 228, 181], | |
navajowhite: [255, 222, 173], | |
navy: [0, 0, 128], | |
oldlace: [253, 245, 230], | |
olive: [128, 128, 0], | |
olivedrab: [107, 142, 35], | |
orange: [255, 165, 0], | |
orangered: [255, 69, 0], | |
orchid: [218, 112, 214], | |
palegoldenrod: [238, 232, 170], | |
palegreen: [152, 251, 152], | |
paleturquoise: [175, 238, 238], | |
palevioletred: [219, 112, 147], | |
papayawhip: [255, 239, 213], | |
peachpuff: [255, 218, 185], | |
peru: [205, 133, 63], | |
pink: [255, 192, 203], | |
plum: [221, 160, 221], | |
powderblue: [176, 224, 230], | |
purple: [128, 0, 128], | |
rebeccapurple: [102, 51, 153], | |
red: [255, 0, 0], | |
rosybrown: [188, 143, 143], | |
royalblue: [65, 105, 225], | |
saddlebrown: [139, 69, 19], | |
salmon: [250, 128, 114], | |
sandybrown: [244, 164, 96], | |
seagreen: [46, 139, 87], | |
seashell: [255, 245, 238], | |
sienna: [160, 82, 45], | |
silver: [192, 192, 192], | |
skyblue: [135, 206, 235], | |
slateblue: [106, 90, 205], | |
slategray: [112, 128, 144], | |
slategrey: [112, 128, 144], | |
snow: [255, 250, 250], | |
springgreen: [0, 255, 127], | |
steelblue: [70, 130, 180], | |
tan: [210, 180, 140], | |
teal: [0, 128, 128], | |
thistle: [216, 191, 216], | |
tomato: [255, 99, 71], | |
turquoise: [64, 224, 208], | |
violet: [238, 130, 238], | |
wheat: [245, 222, 179], | |
white: [255, 255, 255], | |
whitesmoke: [245, 245, 245], | |
yellow: [255, 255, 0], | |
yellowgreen: [154, 205, 50] | |
} | |
}, {}], | |
6: [function(c, e, m) { | |
! function(c, p) { | |
"object" == typeof m && "undefined" != typeof e ? e.exports = p() : c.moment = p() | |
}(this, function() { | |
function h() { | |
return sb.apply(null, arguments) | |
} | |
function m(a) { | |
return a instanceof Array || "[object Array]" === Object.prototype.toString.call(a) | |
} | |
function q(a) { | |
return null != a && "[object Object]" === Object.prototype.toString.call(a) | |
} | |
function a(a) { | |
return "number" == typeof a || "[object Number]" === Object.prototype.toString.call(a) | |
} | |
function f(a) { | |
return a instanceof Date || "[object Date]" === Object.prototype.toString.call(a) | |
} | |
function k(a, c) { | |
var f, k = []; | |
for (f = 0; f < a.length; ++f) k.push(c(a[f], f)); | |
return k | |
} | |
function n(a, c) { | |
return Object.prototype.hasOwnProperty.call(a, c) | |
} | |
function t(a, c) { | |
for (var f in c) n(c, f) && (a[f] = c[f]); | |
return n(c, "toString") && (a.toString = c.toString), n(c, "valueOf") && (a.valueOf = c.valueOf), a | |
} | |
function w(a, c, f, k) { | |
return Jb(a, c, f, k, !0).utc() | |
} | |
function u(a) { | |
return null == a._pf && (a._pf = { | |
empty: !1, | |
unusedTokens: [], | |
unusedInput: [], | |
overflow: -2, | |
charsLeftOver: 0, | |
nullInput: !1, | |
invalidMonth: null, | |
invalidFormat: !1, | |
userInvalidated: !1, | |
iso: !1, | |
parsedDateParts: [], | |
meridiem: null | |
}), a._pf | |
} | |
function C(a) { | |
if (null == a._isValid) { | |
var c = u(a), | |
f = rc.call(c.parsedDateParts, function(a) { | |
return null != a | |
}), | |
f = !isNaN(a._d.getTime()) && 0 > c.overflow && !c.empty && !c.invalidMonth && !c.invalidWeekday && !c.nullInput && !c.invalidFormat && !c.userInvalidated && (!c.meridiem || c.meridiem && f); | |
if (a._strict && (f = f && 0 === c.charsLeftOver && 0 === c.unusedTokens.length && void 0 === c.bigHour), null != Object.isFrozen && Object.isFrozen(a)) return f; | |
a._isValid = f | |
} | |
return a._isValid | |
} | |
function A(a) { | |
var c = w(NaN); | |
return null != a ? t(u(c), a) : u(c).userInvalidated = !0, c | |
} | |
function v(a) { | |
return void 0 === a | |
} | |
function B(a, c) { | |
var f, k, n; | |
if (v(c._isAMomentObject) || (a._isAMomentObject = c._isAMomentObject), v(c._i) || (a._i = c._i), v(c._f) || (a._f = c._f), v(c._l) || (a._l = c._l), v(c._strict) || (a._strict = c._strict), v(c._tzm) || (a._tzm = c._tzm), v(c._isUTC) || (a._isUTC = c._isUTC), v(c._offset) || (a._offset = c._offset), v(c._pf) || (a._pf = u(c)), v(c._locale) || (a._locale = c._locale), 0 < kc.length) | |
for (f in kc) k = kc[f], n = c[k], v(n) || (a[k] = n); | |
return a | |
} | |
function D(a) { | |
B(this, a); | |
this._d = new Date(null != a._d ? a._d.getTime() : NaN); | |
this.isValid() || (this._d = new Date(NaN)); | |
!1 === Sb && (Sb = !0, h.updateOffset(this), Sb = !1) | |
} | |
function E(a) { | |
return a instanceof D || null != a && null != a._isAMomentObject | |
} | |
function F(a) { | |
return 0 > a ? Math.ceil(a) || 0 : Math.floor(a) | |
} | |
function G(a) { | |
a = +a; | |
var c = 0; | |
return 0 !== a && isFinite(a) && (c = F(a)), c | |
} | |
function J(a, c, f) { | |
var k, n = Math.min(a.length, c.length), | |
e = Math.abs(a.length - c.length), | |
t = 0; | |
for (k = 0; k < n; k++)(f && a[k] !== c[k] || !f && G(a[k]) !== G(c[k])) && t++; | |
return t + e | |
} | |
function I(a) { | |
!1 === h.suppressDeprecationWarnings && "undefined" != typeof console && console.warn && console.warn("Deprecation warning: " + a) | |
} | |
function K(a, c) { | |
var f = !0; | |
return t(function() { | |
if (null != h.deprecationHandler && h.deprecationHandler(null, a), f) { | |
for (var k, n = [], e = 0; e < arguments.length; e++) { | |
if (k = "", "object" == typeof arguments[e]) { | |
k += "\n[" + e + "] "; | |
for (var t in arguments[0]) k += t + ": " + arguments[0][t] + ", "; | |
k = k.slice(0, -2) | |
} else k = arguments[e]; | |
n.push(k) | |
} | |
I(a + "\nArguments: " + Array.prototype.slice.call(n).join("") + "\n" + Error().stack); | |
f = !1 | |
} | |
return c.apply(this, arguments) | |
}, c) | |
} | |
function M(a, c) { | |
null != h.deprecationHandler && h.deprecationHandler(a, c); | |
dc[a] || (I(c), dc[a] = !0) | |
} | |
function L(a) { | |
return a instanceof Function || "[object Function]" === Object.prototype.toString.call(a) | |
} | |
function U(a, c) { | |
var f, k = t({}, a); | |
for (f in c) n(c, f) && (q(a[f]) && q(c[f]) ? (k[f] = {}, t(k[f], a[f]), t(k[f], c[f])) : null != c[f] ? k[f] = c[f] : delete k[f]); | |
for (f in a) n(a, f) && !n(c, f) && q(a[f]) && (k[f] = t({}, k[f])); | |
return k | |
} | |
function Q(a) { | |
null != a && this.set(a) | |
} | |
function H(a, c) { | |
var f = a.toLowerCase(); | |
mb[f] = mb[f + "s"] = mb[c] = a | |
} | |
function O(a) { | |
return "string" == typeof a ? mb[a] || mb[a.toLowerCase()] : void 0 | |
} | |
function W(a) { | |
var c, f, k = {}; | |
for (f in a) n(a, f) && (c = O(f), c && (k[c] = a[f])); | |
return k | |
} | |
function ca(a) { | |
var c = [], | |
f; | |
for (f in a) c.push({ | |
unit: f, | |
priority: Ba[f] | |
}); | |
return c.sort(function(a, c) { | |
return a.priority - c.priority | |
}), c | |
} | |
function ha(a, c) { | |
return function(f) { | |
null != f ? (this.isValid() && this._d["set" + (this._isUTC ? "UTC" : "") + a](f), f = (h.updateOffset(this, c), this)) : f = Y(this, a); | |
return f | |
} | |
} | |
function Y(a, c) { | |
return a.isValid() ? a._d["get" + (a._isUTC ? "UTC" : "") + c]() : NaN | |
} | |
function Z(a, c, f) { | |
var k = "" + Math.abs(a); | |
return (0 <= a ? f ? "+" : "" : "-") + Math.pow(10, Math.max(0, c - k.length)).toString().substr(1) + k | |
} | |
function R(a, c, f, k) { | |
var n = k; | |
"string" == typeof k && (n = function() { | |
return this[k]() | |
}); | |
a && (bb[a] = n); | |
c && (bb[c[0]] = function() { | |
return Z(n.apply(this, arguments), c[1], c[2]) | |
}); | |
f && (bb[f] = function() { | |
return this.localeData().ordinal(n.apply(this, arguments), a) | |
}) | |
} | |
function aa(a) { | |
return a.match(/\[[\s\S]/) ? a.replace(/^\[|\]$/g, "") : a.replace(/\\/g, "") | |
} | |
function da(a) { | |
var c, f, k = a.match(lc); | |
c = 0; | |
for (f = k.length; c < f; c++) bb[k[c]] ? k[c] = bb[k[c]] : k[c] = aa(k[c]); | |
return function(c) { | |
var n, e = ""; | |
for (n = 0; n < f; n++) e += k[n] instanceof Function ? k[n].call(c, a) : k[n]; | |
return e | |
} | |
} | |
function ua(a, c) { | |
return a.isValid() ? (c = Da(c, a.localeData()), Ka[c] = Ka[c] || da(c), Ka[c](a)) : a.localeData().invalidDate() | |
} | |
function Da(a, c) { | |
function f(a) { | |
return c.longDateFormat(a) || a | |
} | |
var k = 5; | |
for (Mb.lastIndex = 0; 0 <= k && Mb.test(a);) a = a.replace(Mb, f), Mb.lastIndex = 0, --k; | |
return a | |
} | |
function S(a, c, f) { | |
nc[a] = L(c) ? c : function(a, k) { | |
return a && f ? f : c | |
} | |
} | |
function wa(a, c) { | |
return n(nc, a) ? nc[a](c._strict, c._locale) : new RegExp(ta(a)) | |
} | |
function ta(a) { | |
return na(a.replace("\\", "").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function(a, c, f, k, n) { | |
return c || f || k || n | |
})) | |
} | |
function na(a) { | |
return a.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&") | |
} | |
function ea(c, f) { | |
var k, n = f; | |
"string" == typeof c && (c = [c]); | |
a(f) && (n = function(a, c) { | |
c[f] = G(a) | |
}); | |
for (k = 0; k < c.length; k++) oc[c[k]] = n | |
} | |
function Ea(a, c) { | |
ea(a, function(a, f, k, n) { | |
k._w = k._w || {}; | |
c(a, k._w, k, n) | |
}) | |
} | |
function ja(a, c) { | |
return new Date(Date.UTC(a, c + 1, 0)).getUTCDate() | |
} | |
function hb(c, f) { | |
var k; | |
if (!c.isValid()) return c; | |
if ("string" == typeof f) | |
if (/^\d+$/.test(f)) f = G(f); | |
else if (f = c.localeData().monthsParse(f), !a(f)) return c; | |
return k = Math.min(c.date(), ja(c.year(), f)), c._d["set" + (c._isUTC ? "UTC" : "") + "Month"](f, k), c | |
} | |
function ob(a) { | |
return null != a ? (hb(this, a), h.updateOffset(this, !0), this) : Y(this, "Month") | |
} | |
function xa() { | |
function a(a, c) { | |
return c.length - a.length | |
} | |
var c, f, k = [], | |
n = [], | |
e = []; | |
for (c = 0; 12 > c; c++) f = w([2e3, c]), k.push(this.monthsShort(f, "")), n.push(this.months(f, "")), e.push(this.months(f, "")), e.push(this.monthsShort(f, "")); | |
k.sort(a); | |
n.sort(a); | |
e.sort(a); | |
for (c = 0; 12 > c; c++) k[c] = na(k[c]), n[c] = na(n[c]); | |
for (c = 0; 24 > c; c++) e[c] = na(e[c]); | |
this._monthsShortRegex = this._monthsRegex = new RegExp("^(" + e.join("|") + ")", "i"); | |
this._monthsStrictRegex = new RegExp("^(" + n.join("|") + ")", "i"); | |
this._monthsShortStrictRegex = new RegExp("^(" + k.join("|") + ")", "i") | |
} | |
function P(a) { | |
return 0 === a % 4 && 0 !== a % 100 || 0 === a % 400 | |
} | |
function z(a, c, f, k, n, e, t) { | |
c = new Date(a, c, f, k, n, e, t); | |
return 100 > a && 0 <= a && isFinite(c.getFullYear()) && c.setFullYear(a), c | |
} | |
function Db(a) { | |
var c = new Date(Date.UTC.apply(null, arguments)); | |
return 100 > a && 0 <= a && isFinite(c.getUTCFullYear()) && c.setUTCFullYear(a), c | |
} | |
function Eb(a, c, f) { | |
f = 7 + c - f; | |
return -((7 + Db(a, 0, f).getUTCDay() - c) % 7) + f - 1 | |
} | |
function Qb(a, c, f, k, n) { | |
var e, t; | |
f = (7 + f - k) % 7; | |
k = Eb(a, k, n); | |
c = 1 + 7 * (c - 1) + f + k; | |
return 0 >= c ? (e = a - 1, t = (P(e) ? 366 : 365) + c) : c > (P(a) ? 366 : 365) ? (e = a + 1, t = c - (P(a) ? 366 : 365)) : (e = a, t = c), { | |
year: e, | |
dayOfYear: t | |
} | |
} | |
function Ia(a, c, f) { | |
var k, n, e = Eb(a.year(), c, f), | |
e = Math.floor((a.dayOfYear() - e - 1) / 7) + 1; | |
return 1 > e ? (n = a.year() - 1, k = e + za(n, c, f)) : e > za(a.year(), c, f) ? (k = e - za(a.year(), c, f), n = a.year() + 1) : (n = a.year(), k = e), { | |
week: k, | |
year: n | |
} | |
} | |
function za(a, c, f) { | |
var k = Eb(a, c, f); | |
c = Eb(a + 1, c, f); | |
return ((P(a) ? 366 : 365) - k + c) / 7 | |
} | |
function Ta() { | |
function a(a, c) { | |
return c.length - a.length | |
} | |
var c, f, k, n, e = [], | |
t = [], | |
h = [], | |
m = []; | |
for (c = 0; 7 > c; c++) f = w([2e3, 1]).day(c), k = this.weekdaysMin(f, ""), n = this.weekdaysShort(f, ""), f = this.weekdays(f, ""), e.push(k), t.push(n), h.push(f), m.push(k), m.push(n), m.push(f); | |
e.sort(a); | |
t.sort(a); | |
h.sort(a); | |
m.sort(a); | |
for (c = 0; 7 > c; c++) t[c] = na(t[c]), h[c] = na(h[c]), m[c] = na(m[c]); | |
this._weekdaysMinRegex = this._weekdaysShortRegex = this._weekdaysRegex = new RegExp("^(" + m.join("|") + ")", "i"); | |
this._weekdaysStrictRegex = new RegExp("^(" + h.join("|") + ")", "i"); | |
this._weekdaysShortStrictRegex = new RegExp("^(" + t.join("|") + ")", "i"); | |
this._weekdaysMinStrictRegex = new RegExp("^(" + e.join("|") + ")", "i") | |
} | |
function ib() { | |
return this.hours() % 12 || 12 | |
} | |
function Ib(a, c) { | |
R(a, 0, 0, function() { | |
return this.localeData().meridiem(this.hours(), this.minutes(), c) | |
}) | |
} | |
function jb(a, c) { | |
return c._meridiemParse | |
} | |
function X(a) { | |
return a ? a.toLowerCase().replace("_", "-") : a | |
} | |
function kb(a) { | |
var f = null; | |
if (!sa[a] && "undefined" != typeof e && e && e.exports) try { | |
f = Ya._abbr, c("./locale/" + a), La(f) | |
} catch (Kb) {} | |
return sa[a] | |
} | |
function La(a, c) { | |
var f; | |
return a && (f = v(c) ? Ha(a) : Ga(a, c), f && (Ya = f)), Ya._abbr | |
} | |
function Ga(a, c) { | |
if (null !== c) { | |
var f = pc; | |
if (c.abbr = a, null != sa[a]) M("defineLocaleOverride", "use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."), f = sa[a]._config; | |
else if (null != c.parentLocale) { | |
if (null == sa[c.parentLocale]) return Zb[c.parentLocale] || (Zb[c.parentLocale] = []), Zb[c.parentLocale].push({ | |
name: a, | |
config: c | |
}), null; | |
f = sa[c.parentLocale]._config | |
} | |
return sa[a] = new Q(U(f, c)), Zb[a] && Zb[a].forEach(function(a) { | |
Ga(a.name, a.config) | |
}), La(a), sa[a] | |
} | |
return delete sa[a], null | |
} | |
function Ha(a) { | |
var c; | |
if (a && a._locale && a._locale._abbr && (a = a._locale._abbr), !a) return Ya; | |
if (!m(a)) { | |
if (c = kb(a)) return c; | |
a = [a] | |
} | |
a: { | |
for (var f, k, n, e = 0; e < a.length;) { | |
n = X(a[e]).split("-"); | |
c = n.length; | |
for (f = (f = X(a[e + 1])) ? f.split("-") : null; 0 < c;) { | |
if (k = kb(n.slice(0, c).join("-"))) { | |
a = k; | |
break a | |
} | |
if (f && f.length >= c && J(n, f, !0) >= c - 1) break; | |
c-- | |
} | |
e++ | |
} | |
a = null | |
} | |
return a | |
} | |
function Sa(a) { | |
var c, f = a._a; | |
return f && -2 === u(a).overflow && (c = 0 > f[Pa] || 11 < f[Pa] ? Pa : 1 > f[$a] || f[$a] > ja(f[eb], f[Pa]) ? $a : 0 > f[Ja] || 24 < f[Ja] || 24 === f[Ja] && (0 !== f[cb] || 0 !== f[gb] || 0 !== f[Gb]) ? Ja : 0 > f[cb] || 59 < f[cb] ? cb : 0 > f[gb] || 59 < f[gb] ? gb : 0 > f[Gb] || 999 < f[Gb] ? Gb : -1, u(a)._overflowDayOfYear && (c < eb || c > $a) && (c = $a), u(a)._overflowWeeks && -1 === c && (c = N), u(a)._overflowWeekday && -1 === c && (c = Ca), u(a).overflow = c), a | |
} | |
function Ua(a) { | |
var c, f, k, n, e, t; | |
c = a._i; | |
var h = Hb.exec(c) || sc.exec(c); | |
if (h) { | |
u(a).iso = !0; | |
c = 0; | |
for (f = nb.length; c < f; c++) | |
if (nb[c][1].exec(h[1])) { | |
n = nb[c][0]; | |
k = !1 !== nb[c][2]; | |
break | |
} | |
if (null == n) return void(a._isValid = !1); | |
if (h[3]) { | |
c = 0; | |
for (f = qc.length; c < f; c++) | |
if (qc[c][1].exec(h[3])) { | |
e = (h[2] || " ") + qc[c][0]; | |
break | |
} | |
if (null == e) return void(a._isValid = !1) | |
} | |
if (!k && null != e) return void(a._isValid = !1); | |
if (h[4]) { | |
if (!vc.exec(h[4])) return void(a._isValid = !1); | |
t = "Z" | |
} | |
a._f = n + (e || "") + (t || ""); | |
Ma(a) | |
} else a._isValid = !1 | |
} | |
function ub(a) { | |
var c = xc.exec(a._i); | |
return null !== c ? void(a._d = new Date(+c[1])) : (Ua(a), void(!1 === a._isValid && (delete a._isValid, h.createFromInputFallback(a)))) | |
} | |
function ab(a, c, f) { | |
return null != a ? a : null != c ? c : f | |
} | |
function yb(a) { | |
var c, f, k, n = []; | |
if (!a._d) { | |
f = new Date(h.now()); | |
f = a._useUTC ? [f.getUTCFullYear(), f.getUTCMonth(), f.getUTCDate()] : [f.getFullYear(), f.getMonth(), f.getDate()]; | |
if (a._w && null == a._a[$a] && null == a._a[Pa]) { | |
var e, t, m, w, q, p, C, v; | |
(e = a._w, null != e.GG || null != e.W || null != e.E) ? (q = 1, p = 4, t = ab(e.GG, a._a[eb], Ia(ma(), 1, 4).year), m = ab(e.W, 1), w = ab(e.E, 1), (1 > w || 7 < w) && (v = !0)) : (q = a._locale._week.dow, p = a._locale._week.doy, m = Ia(ma(), q, p), t = ab(e.gg, a._a[eb], m.year), m = ab(e.w, m.week), null != e.d ? (w = e.d, (0 > w || 6 < w) && (v = !0)) : null != e.e ? (w = e.e + q, (0 > e.e || 6 < e.e) && (v = !0)) : w = q); | |
1 > m || m > za(t, q, p) ? u(a)._overflowWeeks = !0 : null != v ? u(a)._overflowWeekday = !0 : (C = Qb(t, m, w, q, p), a._a[eb] = C.year, a._dayOfYear = C.dayOfYear) | |
} | |
a._dayOfYear && (k = ab(a._a[eb], f[eb]), a._dayOfYear > (P(k) ? 366 : 365) && (u(a)._overflowDayOfYear = !0), c = Db(k, 0, a._dayOfYear), a._a[Pa] = c.getUTCMonth(), a._a[$a] = c.getUTCDate()); | |
for (c = 0; 3 > c && null == a._a[c]; ++c) a._a[c] = n[c] = f[c]; | |
for (; 7 > c; c++) a._a[c] = n[c] = null == a._a[c] ? 2 === c ? 1 : 0 : a._a[c]; | |
24 === a._a[Ja] && 0 === a._a[cb] && 0 === a._a[gb] && 0 === a._a[Gb] && (a._nextDay = !0, a._a[Ja] = 0); | |
a._d = (a._useUTC ? Db : z).apply(null, n); | |
null != a._tzm && a._d.setUTCMinutes(a._d.getUTCMinutes() - a._tzm); | |
a._nextDay && (a._a[Ja] = 24) | |
} | |
} | |
function Ma(a) { | |
if (a._f === h.ISO_8601) return void Ua(a); | |
a._a = []; | |
u(a).empty = !0; | |
var c, f, k, e, t, m = "" + a._i, | |
w = m.length, | |
q = 0; | |
k = Da(a._f, a._locale).match(lc) || []; | |
for (c = 0; c < k.length; c++) | |
if (e = k[c], (f = (m.match(wa(e, a)) || [])[0]) && (t = m.substr(0, m.indexOf(f)), 0 < t.length && u(a).unusedInput.push(t), m = m.slice(m.indexOf(f) + f.length), q += f.length), bb[e]) { | |
f ? u(a).empty = !1 : u(a).unusedTokens.push(e); | |
var p = a; | |
null != f && n(oc, e) && oc[e](f, p._a, p, e) | |
} else a._strict && !f && u(a).unusedTokens.push(e); | |
u(a).charsLeftOver = w - q; | |
0 < m.length && u(a).unusedInput.push(m); | |
12 >= a._a[Ja] && !0 === u(a).bigHour && 0 < a._a[Ja] && (u(a).bigHour = void 0); | |
u(a).parsedDateParts = a._a.slice(0); | |
u(a).meridiem = a._meridiem; | |
c = a._a; | |
k = Ja; | |
m = a._locale; | |
t = a._a[Ja]; | |
var w = a._meridiem, | |
C, m = null == w ? t : null != m.meridiemHour ? m.meridiemHour(t, w) : null != m.isPM ? (C = m.isPM(w), C && 12 > t && (t += 12), C || 12 !== t || (t = 0), t) : t; | |
c[k] = m; | |
yb(a); | |
Sa(a) | |
} | |
function ia(a) { | |
if (!a._d) { | |
var c = W(a._i); | |
a._a = k([c.year, c.month, c.day || c.date, c.hour, c.minute, c.second, c.millisecond], function(a) { | |
return a && parseInt(a, 10) | |
}); | |
yb(a) | |
} | |
} | |
function va(a) { | |
var c = a._i, | |
k = a._f; | |
a._locale = a._locale || Ha(a._l); | |
if (null === c || void 0 === k && "" === c) a = A({ | |
nullInput: !0 | |
}); | |
else if ("string" == typeof c && (a._i = c = a._locale.preparse(c)), E(c)) a = new D(Sa(c)); | |
else { | |
if (f(c)) a._d = c; | |
else if (m(k)) { | |
var n, e, h; | |
if (0 === a._f.length) u(a).invalidFormat = !0, a._d = new Date(NaN); | |
else { | |
for (c = 0; c < a._f.length; c++) k = 0, n = B({}, a), null != a._useUTC && (n._useUTC = a._useUTC), n._f = a._f[c], Ma(n), C(n) && (k += u(n).charsLeftOver, k += 10 * u(n).unusedTokens.length, u(n).score = k, (null == h || k < h) && (h = k, e = n)); | |
t(a, e || n) | |
} | |
} else k ? Ma(a) : vb(a); | |
a = (C(a) || (a._d = null), a) | |
} | |
return a | |
} | |
function vb(c) { | |
var n = c._i; | |
void 0 === n ? c._d = new Date(h.now()) : f(n) ? c._d = new Date(n.valueOf()) : "string" == typeof n ? ub(c) : m(n) ? (c._a = k(n.slice(0), function(a) { | |
return parseInt(a, 10) | |
}), yb(c)) : "object" == typeof n ? ia(c) : a(n) ? c._d = new Date(n) : h.createFromInputFallback(c) | |
} | |
function Jb(a, c, f, k, n) { | |
var e = {}; | |
!0 !== f && !1 !== f || (k = f, f = void 0); | |
var t; | |
if (t = q(a)) a: { | |
t = a; | |
for (var h in t) { | |
t = !1; | |
break a | |
} | |
t = !0 | |
}(t || m(a) && 0 === a.length) && (a = void 0); | |
e._isAMomentObject = !0; | |
e._useUTC = e._isUTC = n; | |
e._l = f; | |
e._i = a; | |
e._f = c; | |
e._strict = k; | |
a = new D(Sa(va(e))); | |
return a._nextDay && (a.add(1, "d"), a._nextDay = void 0), a | |
} | |
function ma(a, c, f, k) { | |
return Jb(a, c, f, k, !1) | |
} | |
function Ab(a, c) { | |
var f, k; | |
if (1 === c.length && m(c[0]) && (c = c[0]), !c.length) return ma(); | |
f = c[0]; | |
for (k = 1; k < c.length; ++k) c[k].isValid() && !c[k][a](f) || (f = c[k]); | |
return f | |
} | |
function pb(a) { | |
a = W(a); | |
var c = a.year || 0, | |
f = a.quarter || 0, | |
k = a.month || 0, | |
n = a.week || 0, | |
e = a.day || 0; | |
this._milliseconds = +(a.millisecond || 0) + 1e3 * (a.second || 0) + 6e4 * (a.minute || 0) + 36e5 * (a.hour || 0); | |
this._days = +e + 7 * n; | |
this._months = +k + 3 * f + 12 * c; | |
this._data = {}; | |
this._locale = Ha(); | |
this._bubble() | |
} | |
function Lb(a) { | |
return a instanceof pb | |
} | |
function Va(a) { | |
return 0 > a ? -1 * Math.round(-1 * a) : Math.round(a) | |
} | |
function cc(a, c) { | |
R(a, 0, 0, function() { | |
var a = this.utcOffset(), | |
f = "+"; | |
return 0 > a && (a = -a, f = "-"), f + Z(~~(a / 60), 2) + c + Z(~~a % 60, 2) | |
}) | |
} | |
function Bb(a, c) { | |
var f = (c || "").match(a); | |
if (null === f) return null; | |
var f = ((f[f.length - 1] || []) + "").match(Cc) || ["-", 0, 0], | |
k = +(60 * f[1]) + G(f[2]); | |
return 0 === k ? 0 : "+" === f[0] ? k : -k | |
} | |
function lb(a, c) { | |
var k, n; | |
return c._isUTC ? (k = c.clone(), n = (E(a) || f(a) ? a.valueOf() : ma(a).valueOf()) - k.valueOf(), k._d.setTime(k._d.valueOf() + n), h.updateOffset(k, !1), k) : ma(a).local() | |
} | |
function Za(a) { | |
return 15 * -Math.round(a._d.getTimezoneOffset() / 15) | |
} | |
function hc() { | |
return !!this.isValid() && this._isUTC && 0 === this._offset | |
} | |
function qb(c, f) { | |
var k, e, t, h = c; | |
Lb(c) ? h = { | |
ms: c._milliseconds, | |
d: c._days, | |
M: c._months | |
} : a(c) ? (h = {}, f ? h[f] = c : h.milliseconds = c) : (t = Hc.exec(c)) ? (k = "-" === t[1] ? -1 : 1, h = { | |
y: 0, | |
d: G(t[$a]) * k, | |
h: G(t[Ja]) * k, | |
m: G(t[cb]) * k, | |
s: G(t[gb]) * k, | |
ms: G(Va(1e3 * t[Gb])) * k | |
}) : (t = Dc.exec(c)) ? (k = "-" === t[1] ? -1 : 1, h = { | |
y: Aa(t[2], k), | |
M: Aa(t[3], k), | |
w: Aa(t[4], k), | |
d: Aa(t[5], k), | |
h: Aa(t[6], k), | |
m: Aa(t[7], k), | |
s: Aa(t[8], k) | |
}) : null == h ? h = {} : "object" == typeof h && ("from" in h || "to" in h) && (t = ma(h.from), h = ma(h.to), t = t.isValid() && h.isValid() ? (h = lb(h, t), t.isBefore(h) ? k = qa(t, h) : (k = qa(h, t), k.milliseconds = -k.milliseconds, k.months = -k.months), k) : { | |
milliseconds: 0, | |
months: 0 | |
}, h = {}, h.ms = t.milliseconds, h.M = t.months); | |
return e = new pb(h), Lb(c) && n(c, "_locale") && (e._locale = c._locale), e | |
} | |
function Aa(a, c) { | |
var f = a && parseFloat(a.replace(",", ".")); | |
return (isNaN(f) ? 0 : f) * c | |
} | |
function qa(a, c) { | |
var f = { | |
milliseconds: 0, | |
months: 0 | |
}; | |
return f.months = c.month() - a.month() + 12 * (c.year() - a.year()), a.clone().add(f.months, "M").isAfter(c) && --f.months, f.milliseconds = +c - +a.clone().add(f.months, "M"), f | |
} | |
function ic(a, c) { | |
return function(f, k) { | |
var n, e; | |
return null === k || isNaN(+k) || (M(c, "moment()." + c + "(period, number) is deprecated. Please use moment()." + c + "(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."), e = f, f = k, k = e), f = "string" == typeof f ? +f : f, n = qb(f, k), jc(this, n, a), this | |
} | |
} | |
function jc(a, c, f, k) { | |
var n = c._milliseconds, | |
e = Va(c._days); | |
c = Va(c._months); | |
a.isValid() && (k = null == k || k, n && a._d.setTime(a._d.valueOf() + n * f), e && (n = Y(a, "Date") + e * f, a.isValid() && a._d["set" + (a._isUTC ? "UTC" : "") + "Date"](n)), c && hb(a, Y(a, "Month") + c * f), k && h.updateOffset(a, e || c)) | |
} | |
function Wa(a) { | |
var c; | |
return void 0 === a ? this._locale._abbr : (c = Ha(a), null != c && (this._locale = c), this) | |
} | |
function Pb() { | |
return this._locale | |
} | |
function ac(a, c) { | |
R(0, [a, a.length], 0, c) | |
} | |
function db(a, c, f, k, n) { | |
var e; | |
null == a ? a = Ia(this, k, n).year : (e = za(a, k, n), c > e && (c = e), a = Qb(a, c, f, k, n), a = Db(a.year, 0, a.dayOfYear), a = (this.year(a.getUTCFullYear()), this.month(a.getUTCMonth()), this.date(a.getUTCDate()), this)); | |
return a | |
} | |
function T(a, c) { | |
c[Gb] = G(1e3 * ("0." + a)) | |
} | |
function ra(a) { | |
return a | |
} | |
function ga(a, c, f, k) { | |
var n = Ha(); | |
c = w().set(k, c); | |
return n[f](c, a) | |
} | |
function ba(c, f, k) { | |
if (a(c) && (f = c, c = void 0), c = c || "", null != f) return ga(c, f, k, "month"); | |
var n = []; | |
for (f = 0; 12 > f; f++) n[f] = ga(c, f, k, "month"); | |
return n | |
} | |
function la(c, f, k, n) { | |
"boolean" == typeof c ? (a(f) && (k = f, f = void 0), f = f || "") : (f = c, k = f, c = !1, a(f) && (k = f, f = void 0), f = f || ""); | |
var e = Ha(); | |
c = c ? e._week.dow : 0; | |
if (null != k) return ga(f, (k + c) % 7, n, "day"); | |
e = []; | |
for (k = 0; 7 > k; k++) e[k] = ga(f, (k + c) % 7, n, "day"); | |
return e | |
} | |
function tb(a, c, f, k) { | |
c = qb(c, f); | |
return a._milliseconds += k * c._milliseconds, a._days += k * c._days, a._months += k * c._months, a._bubble() | |
} | |
function zb(a) { | |
return 0 > a ? Math.floor(a) : Math.ceil(a) | |
} | |
function rb(a) { | |
return function() { | |
return this.as(a) | |
} | |
} | |
function Cb(a) { | |
return function() { | |
return this._data[a] | |
} | |
} | |
function uc(a, c, f, k, n) { | |
return n.relativeTime(c || 1, !!f, a, k) | |
} | |
function Rb() { | |
var a, c, f, k = Bc(this._milliseconds) / 1e3, | |
n = Bc(this._days), | |
e = Bc(this._months); | |
a = F(k / 60); | |
c = F(a / 60); | |
k %= 60; | |
a %= 60; | |
f = F(e / 12); | |
var e = e % 12, | |
t = this.asSeconds(); | |
return t ? (0 > t ? "-" : "") + "P" + (f ? f + "Y" : "") + (e ? e + "M" : "") + (n ? n + "D" : "") + (c || a || k ? "T" : "") + (c ? c + "H" : "") + (a ? a + "M" : "") + (k ? k + "S" : "") : "P0D" | |
} | |
var sb, rc = Array.prototype.some ? Array.prototype.some : function(a) { | |
for (var c = Object(this), f = c.length >>> 0, k = 0; k < f; k++) | |
if (k in c && a.call(this, c[k], k, c)) return !0; | |
return !1 | |
}, | |
kc = h.momentProperties = [], | |
Sb = !1, | |
dc = {}; | |
h.suppressDeprecationWarnings = !1; | |
h.deprecationHandler = null; | |
var Qa = Object.keys ? Object.keys : function(a) { | |
var c, f = []; | |
for (c in a) n(a, c) && f.push(c); | |
return f | |
}, | |
mb = {}, | |
Ba = {}, | |
lc = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, | |
Mb = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, | |
Ka = {}, | |
bb = {}, | |
Nb = /\d/, | |
Na = /\d\d/, | |
Tb = /\d{3}/, | |
wb = /\d{4}/, | |
Ub = /[+-]?\d{6}/, | |
ka = /\d\d?/, | |
Vb = /\d\d\d\d?/, | |
Oa = /\d\d\d\d\d\d?/, | |
mc = /\d{1,3}/, | |
Wb = /\d{1,4}/, | |
Fb = /[+-]?\d{1,6}/, | |
bc = /\d+/, | |
Xb = /[+-]?\d+/, | |
xb = /Z|[+-]\d\d:?\d\d/gi, | |
fb = /Z|[+-]\d\d(?::?\d\d)?/gi, | |
Yb = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i, | |
nc = {}, | |
oc = {}, | |
eb = 0, | |
Pa = 1, | |
$a = 2, | |
Ja = 3, | |
cb = 4, | |
gb = 5, | |
Gb = 6, | |
N = 7, | |
Ca = 8, | |
fa = Array.prototype.indexOf ? Array.prototype.indexOf : function(a) { | |
var c; | |
for (c = 0; c < this.length; ++c) | |
if (this[c] === a) return c; | |
return -1 | |
}; | |
R("M", ["MM", 2], "Mo", function() { | |
return this.month() + 1 | |
}); | |
R("MMM", 0, 0, function(a) { | |
return this.localeData().monthsShort(this, a) | |
}); | |
R("MMMM", 0, 0, function(a) { | |
return this.localeData().months(this, a) | |
}); | |
H("month", "M"); | |
Ba.month = 8; | |
S("M", ka); | |
S("MM", ka, Na); | |
S("MMM", function(a, c) { | |
return c.monthsShortRegex(a) | |
}); | |
S("MMMM", function(a, c) { | |
return c.monthsRegex(a) | |
}); | |
ea(["M", "MM"], function(a, c) { | |
c[Pa] = G(a) - 1 | |
}); | |
ea(["MMM", "MMMM"], function(a, c, f, k) { | |
k = f._locale.monthsParse(a, k, f._strict); | |
null != k ? c[Pa] = k : u(f).invalidMonth = a | |
}); | |
var Ra = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/; | |
R("Y", 0, 0, function() { | |
var a = this.year(); | |
return 9999 >= a ? "" + a : "+" + a | |
}); | |
R(0, ["YY", 2], 0, function() { | |
return this.year() % 100 | |
}); | |
R(0, ["YYYY", 4], 0, "year"); | |
R(0, ["YYYYY", 5], 0, "year"); | |
R(0, ["YYYYYY", 6, !0], 0, "year"); | |
H("year", "y"); | |
Ba.year = 1; | |
S("Y", Xb); | |
S("YY", ka, Na); | |
S("YYYY", Wb, wb); | |
S("YYYYY", Fb, Ub); | |
S("YYYYYY", Fb, Ub); | |
ea(["YYYYY", "YYYYYY"], eb); | |
ea("YYYY", function(a, c) { | |
c[eb] = 2 === a.length ? h.parseTwoDigitYear(a) : G(a) | |
}); | |
ea("YY", function(a, c) { | |
c[eb] = h.parseTwoDigitYear(a) | |
}); | |
ea("Y", function(a, c) { | |
c[eb] = parseInt(a, 10) | |
}); | |
h.parseTwoDigitYear = function(a) { | |
return G(a) + (68 < G(a) ? 1900 : 2e3) | |
}; | |
var Xa = ha("FullYear", !0); | |
R("w", ["ww", 2], "wo", "week"); | |
R("W", ["WW", 2], "Wo", "isoWeek"); | |
H("week", "w"); | |
H("isoWeek", "W"); | |
Ba.week = 5; | |
Ba.isoWeek = 5; | |
S("w", ka); | |
S("ww", ka, Na); | |
S("W", ka); | |
S("WW", ka, Na); | |
Ea(["w", "ww", "W", "WW"], function(a, c, f, k) { | |
c[k.substr(0, 1)] = G(a) | |
}); | |
R("d", 0, "do", "day"); | |
R("dd", 0, 0, function(a) { | |
return this.localeData().weekdaysMin(this, a) | |
}); | |
R("ddd", 0, 0, function(a) { | |
return this.localeData().weekdaysShort(this, a) | |
}); | |
R("dddd", 0, 0, function(a) { | |
return this.localeData().weekdays(this, a) | |
}); | |
R("e", 0, 0, "weekday"); | |
R("E", 0, 0, "isoWeekday"); | |
H("day", "d"); | |
H("weekday", "e"); | |
H("isoWeekday", "E"); | |
Ba.day = 11; | |
Ba.weekday = 11; | |
Ba.isoWeekday = 11; | |
S("d", ka); | |
S("e", ka); | |
S("E", ka); | |
S("dd", function(a, c) { | |
return c.weekdaysMinRegex(a) | |
}); | |
S("ddd", function(a, c) { | |
return c.weekdaysShortRegex(a) | |
}); | |
S("dddd", function(a, c) { | |
return c.weekdaysRegex(a) | |
}); | |
Ea(["dd", "ddd", "dddd"], function(a, c, f, k) { | |
k = f._locale.weekdaysParse(a, k, f._strict); | |
null != k ? c.d = k : u(f).invalidWeekday = a | |
}); | |
Ea(["d", "e", "E"], function(a, c, f, k) { | |
c[k] = G(a) | |
}); | |
R("H", ["HH", 2], 0, "hour"); | |
R("h", ["hh", 2], 0, ib); | |
R("k", ["kk", 2], 0, function() { | |
return this.hours() || 24 | |
}); | |
R("hmm", 0, 0, function() { | |
return "" + ib.apply(this) + Z(this.minutes(), 2) | |
}); | |
R("hmmss", 0, 0, function() { | |
return "" + ib.apply(this) + Z(this.minutes(), 2) + Z(this.seconds(), 2) | |
}); | |
R("Hmm", 0, 0, function() { | |
return "" + this.hours() + Z(this.minutes(), 2) | |
}); | |
R("Hmmss", 0, 0, function() { | |
return "" + this.hours() + Z(this.minutes(), 2) + Z(this.seconds(), 2) | |
}); | |
Ib("a", !0); | |
Ib("A", !1); | |
H("hour", "h"); | |
Ba.hour = 13; | |
S("a", jb); | |
S("A", jb); | |
S("H", ka); | |
S("h", ka); | |
S("HH", ka, Na); | |
S("hh", ka, Na); | |
S("hmm", Vb); | |
S("hmmss", Oa); | |
S("Hmm", Vb); | |
S("Hmmss", Oa); | |
ea(["H", "HH"], Ja); | |
ea(["a", "A"], function(a, c, f) { | |
f._isPm = f._locale.isPM(a); | |
f._meridiem = a | |
}); | |
ea(["h", "hh"], function(a, c, f) { | |
c[Ja] = G(a); | |
u(f).bigHour = !0 | |
}); | |
ea("hmm", function(a, c, f) { | |
var k = a.length - 2; | |
c[Ja] = G(a.substr(0, k)); | |
c[cb] = G(a.substr(k)); | |
u(f).bigHour = !0 | |
}); | |
ea("hmmss", function(a, c, f) { | |
var k = a.length - 4, | |
n = a.length - 2; | |
c[Ja] = G(a.substr(0, k)); | |
c[cb] = G(a.substr(k, 2)); | |
c[gb] = G(a.substr(n)); | |
u(f).bigHour = !0 | |
}); | |
ea("Hmm", function(a, c, f) { | |
f = a.length - 2; | |
c[Ja] = G(a.substr(0, f)); | |
c[cb] = G(a.substr(f)) | |
}); | |
ea("Hmmss", function(a, c, f) { | |
f = a.length - 4; | |
var k = a.length - 2; | |
c[Ja] = G(a.substr(0, f)); | |
c[cb] = G(a.substr(f, 2)); | |
c[gb] = G(a.substr(k)) | |
}); | |
var Ya, Ob = ha("Hours", !0), | |
pc = { | |
calendar: { | |
sameDay: "[Today at] LT", | |
nextDay: "[Tomorrow at] LT", | |
nextWeek: "dddd [at] LT", | |
lastDay: "[Yesterday at] LT", | |
lastWeek: "[Last] dddd [at] LT", | |
sameElse: "L" | |
}, | |
longDateFormat: { | |
LTS: "h:mm:ss A", | |
LT: "h:mm A", | |
L: "MM/DD/YYYY", | |
LL: "MMMM D, YYYY", | |
LLL: "MMMM D, YYYY h:mm A", | |
LLLL: "dddd, MMMM D, YYYY h:mm A" | |
}, | |
invalidDate: "Invalid date", | |
ordinal: "%d", | |
ordinalParse: /\d{1,2}/, | |
relativeTime: { | |
future: "in %s", | |
past: "%s ago", | |
s: "a few seconds", | |
m: "a minute", | |
mm: "%d minutes", | |
h: "an hour", | |
hh: "%d hours", | |
d: "a day", | |
dd: "%d days", | |
M: "a month", | |
MM: "%d months", | |
y: "a year", | |
yy: "%d years" | |
}, | |
months: "January February March April May June July August September October November December".split(" "), | |
monthsShort: "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "), | |
week: { | |
dow: 0, | |
doy: 6 | |
}, | |
weekdays: "Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "), | |
weekdaysMin: "Su Mo Tu We Th Fr Sa".split(" "), | |
weekdaysShort: "Sun Mon Tue Wed Thu Fri Sat".split(" "), | |
meridiemParse: /[ap]\.?m?\.?/i | |
}, | |
sa = {}, | |
Zb = {}, | |
Hb = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/, | |
sc = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/, | |
vc = /Z|[+-]\d\d(?::?\d\d)?/, | |
nb = [ | |
["YYYYYY-MM-DD", /[+-]\d{6}-\d\d-\d\d/], | |
["YYYY-MM-DD", /\d{4}-\d\d-\d\d/], | |
["GGGG-[W]WW-E", /\d{4}-W\d\d-\d/], | |
["GGGG-[W]WW", /\d{4}-W\d\d/, !1], | |
["YYYY-DDD", /\d{4}-\d{3}/], | |
["YYYY-MM", /\d{4}-\d\d/, !1], | |
["YYYYYYMMDD", /[+-]\d{10}/], | |
["YYYYMMDD", /\d{8}/], | |
["GGGG[W]WWE", /\d{4}W\d{3}/], | |
["GGGG[W]WW", /\d{4}W\d{2}/, !1], | |
["YYYYDDD", /\d{7}/] | |
], | |
qc = [ | |
["HH:mm:ss.SSSS", /\d\d:\d\d:\d\d\.\d+/], | |
["HH:mm:ss,SSSS", /\d\d:\d\d:\d\d,\d+/], | |
["HH:mm:ss", /\d\d:\d\d:\d\d/], | |
["HH:mm", /\d\d:\d\d/], | |
["HHmmss.SSSS", /\d\d\d\d\d\d\.\d+/], | |
["HHmmss,SSSS", /\d\d\d\d\d\d,\d+/], | |
["HHmmss", /\d\d\d\d\d\d/], | |
["HHmm", /\d\d\d\d/], | |
["HH", /\d\d/] | |
], | |
xc = /^\/?Date\((\-?\d+)/i; | |
h.createFromInputFallback = K("value provided is not in a recognized ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.", function(a) { | |
a._d = new Date(a._i + (a._useUTC ? " UTC" : "")) | |
}); | |
h.ISO_8601 = function() {}; | |
var tc = K("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/", function() { | |
var a = ma.apply(null, arguments); | |
return this.isValid() && a.isValid() ? a < this ? this : a : A() | |
}), | |
yc = K("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/", function() { | |
var a = ma.apply(null, arguments); | |
return this.isValid() && a.isValid() ? a > this ? this : a : A() | |
}); | |
cc("Z", ":"); | |
cc("ZZ", ""); | |
S("Z", fb); | |
S("ZZ", fb); | |
ea(["Z", "ZZ"], function(a, c, f) { | |
f._useUTC = !0; | |
f._tzm = Bb(fb, a) | |
}); | |
var Cc = /([\+\-]|\d\d)/gi; | |
h.updateOffset = function() {}; | |
var Hc = /^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/, | |
Dc = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/; | |
qb.fn = pb.prototype; | |
var Ic = ic(1, "add"), | |
Ec = ic(-1, "subtract"); | |
h.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ"; | |
h.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]"; | |
var Fc = K("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", function(a) { | |
return void 0 === a ? this.localeData() : this.locale(a) | |
}); | |
R(0, ["gg", 2], 0, function() { | |
return this.weekYear() % 100 | |
}); | |
R(0, ["GG", 2], 0, function() { | |
return this.isoWeekYear() % 100 | |
}); | |
ac("gggg", "weekYear"); | |
ac("ggggg", "weekYear"); | |
ac("GGGG", "isoWeekYear"); | |
ac("GGGGG", "isoWeekYear"); | |
H("weekYear", "gg"); | |
H("isoWeekYear", "GG"); | |
Ba.weekYear = 1; | |
Ba.isoWeekYear = 1; | |
S("G", Xb); | |
S("g", Xb); | |
S("GG", ka, Na); | |
S("gg", ka, Na); | |
S("GGGG", Wb, wb); | |
S("gggg", Wb, wb); | |
S("GGGGG", Fb, Ub); | |
S("ggggg", Fb, Ub); | |
Ea(["gggg", "ggggg", "GGGG", "GGGGG"], function(a, c, f, k) { | |
c[k.substr(0, 2)] = G(a) | |
}); | |
Ea(["gg", "GG"], function(a, c, f, k) { | |
c[k] = h.parseTwoDigitYear(a) | |
}); | |
R("Q", 0, "Qo", "quarter"); | |
H("quarter", "Q"); | |
Ba.quarter = 7; | |
S("Q", Nb); | |
ea("Q", function(a, c) { | |
c[Pa] = 3 * (G(a) - 1) | |
}); | |
R("D", ["DD", 2], "Do", "date"); | |
H("date", "D"); | |
Ba.date = 9; | |
S("D", ka); | |
S("DD", ka, Na); | |
S("Do", function(a, c) { | |
return a ? c._ordinalParse : c._ordinalParseLenient | |
}); | |
ea(["D", "DD"], $a); | |
ea("Do", function(a, c) { | |
c[$a] = G(a.match(ka)[0], 10) | |
}); | |
var Gc = ha("Date", !0); | |
R("DDD", ["DDDD", 3], "DDDo", "dayOfYear"); | |
H("dayOfYear", "DDD"); | |
Ba.dayOfYear = 4; | |
S("DDD", mc); | |
S("DDDD", Tb); | |
ea(["DDD", "DDDD"], function(a, c, f) { | |
f._dayOfYear = G(a) | |
}); | |
R("m", ["mm", 2], 0, "minute"); | |
H("minute", "m"); | |
Ba.minute = 14; | |
S("m", ka); | |
S("mm", ka, Na); | |
ea(["m", "mm"], cb); | |
var zc = ha("Minutes", !1); | |
R("s", ["ss", 2], 0, "second"); | |
H("second", "s"); | |
Ba.second = 15; | |
S("s", ka); | |
S("ss", ka, Na); | |
ea(["s", "ss"], gb); | |
var Ac = ha("Seconds", !1); | |
R("S", 0, 0, function() { | |
return ~~(this.millisecond() / 100) | |
}); | |
R(0, ["SS", 2], 0, function() { | |
return ~~(this.millisecond() / 10) | |
}); | |
R(0, ["SSS", 3], 0, "millisecond"); | |
R(0, ["SSSS", 4], 0, function() { | |
return 10 * this.millisecond() | |
}); | |
R(0, ["SSSSS", 5], 0, function() { | |
return 100 * this.millisecond() | |
}); | |
R(0, ["SSSSSS", 6], 0, function() { | |
return 1e3 * this.millisecond() | |
}); | |
R(0, ["SSSSSSS", 7], 0, function() { | |
return 1e4 * this.millisecond() | |
}); | |
R(0, ["SSSSSSSS", 8], 0, function() { | |
return 1e5 * this.millisecond() | |
}); | |
R(0, ["SSSSSSSSS", 9], 0, function() { | |
return 1e6 * this.millisecond() | |
}); | |
H("millisecond", "ms"); | |
Ba.millisecond = 16; | |
S("S", mc, Nb); | |
S("SS", mc, Na); | |
S("SSS", mc, Tb); | |
var fc; | |
for (fc = "SSSS"; 9 >= fc.length; fc += "S") S(fc, bc); | |
for (fc = "S"; 9 >= fc.length; fc += "S") ea(fc, T); | |
var Qc = ha("Milliseconds", !1); | |
R("z", 0, 0, "zoneAbbr"); | |
R("zz", 0, 0, "zoneName"); | |
var V = D.prototype; | |
V.add = Ic; | |
V.calendar = function(a, c) { | |
var f = a || ma(), | |
k = lb(f, this).startOf("day"), | |
k = h.calendarFormat(this, k) || "sameElse", | |
n = c && (L(c[k]) ? c[k].call(this, f) : c[k]); | |
return this.format(n || this.localeData().calendar(k, this, ma(f))) | |
}; | |
V.clone = function() { | |
return new D(this) | |
}; | |
V.diff = function(a, c, f) { | |
var k, n; | |
if (this.isValid()) | |
if (a = lb(a, this), a.isValid()) { | |
k = 6e4 * (a.utcOffset() - this.utcOffset()); | |
c = O(c); | |
if ("year" === c || "month" === c || "quarter" === c) { | |
var e; | |
k = 12 * (a.year() - this.year()) + (a.month() - this.month()); | |
var t = this.clone().add(k, "months"); | |
a = (0 > a - t ? (n = this.clone().add(k - 1, "months"), e = (a - t) / (t - n)) : (n = this.clone().add(k + 1, "months"), e = (a - t) / (n - t)), -(k + e) || 0); | |
"quarter" === c ? a /= 3 : "year" === c && (a /= 12) | |
} else n = this - a, a = "second" === c ? n / 1e3 : "minute" === c ? n / 6e4 : "hour" === c ? n / 36e5 : "day" === c ? (n - k) / 864e5 : "week" === c ? (n - k) / 6048e5 : n; | |
c = f ? a : F(a) | |
} else c = NaN; | |
else c = NaN; | |
return c | |
}; | |
V.endOf = function(a) { | |
return a = O(a), void 0 === a || "millisecond" === a ? this : ("date" === a && (a = "day"), this.startOf(a).add(1, "isoWeek" === a ? "week" : a).subtract(1, "ms")) | |
}; | |
V.format = function(a) { | |
a || (a = this.isUtc() ? h.defaultFormatUtc : h.defaultFormat); | |
a = ua(this, a); | |
return this.localeData().postformat(a) | |
}; | |
V.from = function(a, c) { | |
return this.isValid() && (E(a) && a.isValid() || ma(a).isValid()) ? qb({ | |
to: this, | |
from: a | |
}).locale(this.locale()).humanize(!c) : this.localeData().invalidDate() | |
}; | |
V.fromNow = function(a) { | |
return this.from(ma(), a) | |
}; | |
V.to = function(a, c) { | |
return this.isValid() && (E(a) && a.isValid() || ma(a).isValid()) ? qb({ | |
from: this, | |
to: a | |
}).locale(this.locale()).humanize(!c) : this.localeData().invalidDate() | |
}; | |
V.toNow = function(a) { | |
return this.to(ma(), a) | |
}; | |
V.get = function(a) { | |
return a = O(a), L(this[a]) ? this[a]() : this | |
}; | |
V.invalidAt = function() { | |
return u(this).overflow | |
}; | |
V.isAfter = function(a, c) { | |
var f = E(a) ? a : ma(a); | |
return !(!this.isValid() || !f.isValid()) && (c = O(v(c) ? "millisecond" : c), "millisecond" === c ? this.valueOf() > f.valueOf() : f.valueOf() < this.clone().startOf(c).valueOf()) | |
}; | |
V.isBefore = function(a, c) { | |
var f = E(a) ? a : ma(a); | |
return !(!this.isValid() || !f.isValid()) && (c = O(v(c) ? "millisecond" : c), "millisecond" === c ? this.valueOf() < f.valueOf() : this.clone().endOf(c).valueOf() < f.valueOf()) | |
}; | |
V.isBetween = function(a, c, f, k) { | |
return k = k || "()", ("(" === k[0] ? this.isAfter(a, f) : !this.isBefore(a, f)) && (")" === k[1] ? this.isBefore(c, f) : !this.isAfter(c, f)) | |
}; | |
V.isSame = function(a, c) { | |
var f, k = E(a) ? a : ma(a); | |
return !(!this.isValid() || !k.isValid()) && (c = O(c || "millisecond"), "millisecond" === c ? this.valueOf() === k.valueOf() : (f = k.valueOf(), this.clone().startOf(c).valueOf() <= f && f <= this.clone().endOf(c).valueOf())) | |
}; | |
V.isSameOrAfter = function(a, c) { | |
return this.isSame(a, c) || this.isAfter(a, c) | |
}; | |
V.isSameOrBefore = function(a, c) { | |
return this.isSame(a, c) || this.isBefore(a, c) | |
}; | |
V.isValid = function() { | |
return C(this) | |
}; | |
V.lang = Fc; | |
V.locale = Wa; | |
V.localeData = Pb; | |
V.max = yc; | |
V.min = tc; | |
V.parsingFlags = function() { | |
return t({}, u(this)) | |
}; | |
V.set = function(a, c) { | |
if ("object" == typeof a) { | |
a = W(a); | |
for (var f = ca(a), k = 0; k < f.length; k++) this[f[k].unit](a[f[k].unit]) | |
} else if (a = O(a), L(this[a])) return this[a](c); | |
return this | |
}; | |
V.startOf = function(a) { | |
switch (a = O(a)) { | |
case "year": | |
this.month(0); | |
case "quarter": | |
case "month": | |
this.date(1); | |
case "week": | |
case "isoWeek": | |
case "day": | |
case "date": | |
this.hours(0); | |
case "hour": | |
this.minutes(0); | |
case "minute": | |
this.seconds(0); | |
case "second": | |
this.milliseconds(0) | |
} | |
return "week" === a && this.weekday(0), "isoWeek" === a && this.isoWeekday(1), "quarter" === a && this.month(3 * Math.floor(this.month() / 3)), this | |
}; | |
V.subtract = Ec; | |
V.toArray = function() { | |
return [this.year(), this.month(), this.date(), this.hour(), this.minute(), this.second(), this.millisecond()] | |
}; | |
V.toObject = function() { | |
return { | |
years: this.year(), | |
months: this.month(), | |
date: this.date(), | |
hours: this.hours(), | |
minutes: this.minutes(), | |
seconds: this.seconds(), | |
milliseconds: this.milliseconds() | |
} | |
}; | |
V.toDate = function() { | |
return new Date(this.valueOf()) | |
}; | |
V.toISOString = function() { | |
var a = this.clone().utc(); | |
return 0 < a.year() && 9999 >= a.year() ? L(Date.prototype.toISOString) ? this.toDate().toISOString() : ua(a, "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]") : ua(a, "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]") | |
}; | |
V.inspect = function() { | |
if (!this.isValid()) return "moment.invalid(/* " + this._i + " */)"; | |
var a = "moment", | |
c = ""; | |
this.isLocal() || (a = 0 === this.utcOffset() ? "moment.utc" : "moment.parseZone", c = "Z"); | |
var a = "[" + a + '("]', | |
f = 0 < this.year() && 9999 >= this.year() ? "YYYY" : "YYYYYY"; | |
return this.format(a + f + "-MM-DD[T]HH:mm:ss.SSS" + (c + '[")]')) | |
}; | |
V.toJSON = function() { | |
return this.isValid() ? this.toISOString() : null | |
}; | |
V.toString = function() { | |
return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ") | |
}; | |
V.unix = function() { | |
return Math.floor(this.valueOf() / 1e3) | |
}; | |
V.valueOf = function() { | |
return this._d.valueOf() - 6e4 * (this._offset || 0) | |
}; | |
V.creationData = function() { | |
return { | |
input: this._i, | |
format: this._f, | |
locale: this._locale, | |
isUTC: this._isUTC, | |
strict: this._strict | |
} | |
}; | |
V.year = Xa; | |
V.isLeapYear = function() { | |
return P(this.year()) | |
}; | |
V.weekYear = function(a) { | |
return db.call(this, a, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy) | |
}; | |
V.isoWeekYear = function(a) { | |
return db.call(this, a, this.isoWeek(), this.isoWeekday(), 1, 4) | |
}; | |
V.quarter = V.quarters = function(a) { | |
return null == a ? Math.ceil((this.month() + 1) / 3) : this.month(3 * (a - 1) + this.month() % 3) | |
}; | |
V.month = ob; | |
V.daysInMonth = function() { | |
return ja(this.year(), this.month()) | |
}; | |
V.week = V.weeks = function(a) { | |
var c = this.localeData().week(this); | |
return null == a ? c : this.add(7 * (a - c), "d") | |
}; | |
V.isoWeek = V.isoWeeks = function(a) { | |
var c = Ia(this, 1, 4).week; | |
return null == a ? c : this.add(7 * (a - c), "d") | |
}; | |
V.weeksInYear = function() { | |
var a = this.localeData()._week; | |
return za(this.year(), a.dow, a.doy) | |
}; | |
V.isoWeeksInYear = function() { | |
return za(this.year(), 1, 4) | |
}; | |
V.date = Gc; | |
V.day = V.days = function(a) { | |
if (!this.isValid()) return null != a ? this : NaN; | |
var c = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); | |
if (null != a) var f = a, | |
k = this.localeData(), | |
c = (a = "string" != typeof f ? f : isNaN(f) ? (f = k.weekdaysParse(f), "number" == typeof f ? f : null) : parseInt(f, 10), this.add(a - c, "d")); | |
return c | |
}; | |
V.weekday = function(a) { | |
if (!this.isValid()) return null != a ? this : NaN; | |
var c = (this.day() + 7 - this.localeData()._week.dow) % 7; | |
return null == a ? c : this.add(a - c, "d") | |
}; | |
V.isoWeekday = function(a) { | |
if (!this.isValid()) return null != a ? this : NaN; | |
if (null != a) { | |
var c = this.localeData(); | |
a = "string" == typeof a ? c.weekdaysParse(a) % 7 || 7 : isNaN(a) ? null : a; | |
return this.day(this.day() % 7 ? a : a - 7) | |
} | |
return this.day() || 7 | |
}; | |
V.dayOfYear = function(a) { | |
var c = Math.round((this.clone().startOf("day") - this.clone().startOf("year")) / 864e5) + 1; | |
return null == a ? c : this.add(a - c, "d") | |
}; | |
V.hour = V.hours = Ob; | |
V.minute = V.minutes = zc; | |
V.second = V.seconds = Ac; | |
V.millisecond = V.milliseconds = Qc; | |
V.utcOffset = function(a, c) { | |
var f, k = this._offset || 0; | |
if (!this.isValid()) return null != a ? this : NaN; | |
if (null != a) { | |
if ("string" == typeof a) { | |
if (a = Bb(fb, a), null === a) return this | |
} else 16 > Math.abs(a) && (a *= 60); | |
return !this._isUTC && c && (f = Za(this)), this._offset = a, this._isUTC = !0, null != f && this.add(f, "m"), k !== a && (!c || this._changeInProgress ? jc(this, qb(a - k, "m"), 1, !1) : this._changeInProgress || (this._changeInProgress = !0, h.updateOffset(this, !0), this._changeInProgress = null)), this | |
} | |
return this._isUTC ? k : Za(this) | |
}; | |
V.utc = function(a) { | |
return this.utcOffset(0, a) | |
}; | |
V.local = function(a) { | |
return this._isUTC && (this.utcOffset(0, a), this._isUTC = !1, a && this.subtract(Za(this), "m")), this | |
}; | |
V.parseZone = function() { | |
if (null != this._tzm) this.utcOffset(this._tzm); | |
else if ("string" == typeof this._i) { | |
var a = Bb(xb, this._i); | |
null != a ? this.utcOffset(a) : this.utcOffset(0, !0) | |
} | |
return this | |
}; | |
V.hasAlignedHourOffset = function(a) { | |
return !!this.isValid() && (a = a ? ma(a).utcOffset() : 0, 0 === (this.utcOffset() - a) % 60) | |
}; | |
V.isDST = function() { | |
return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset() | |
}; | |
V.isLocal = function() { | |
return !!this.isValid() && !this._isUTC | |
}; | |
V.isUtcOffset = function() { | |
return !!this.isValid() && this._isUTC | |
}; | |
V.isUtc = hc; | |
V.isUTC = hc; | |
V.zoneAbbr = function() { | |
return this._isUTC ? "UTC" : "" | |
}; | |
V.zoneName = function() { | |
return this._isUTC ? "Coordinated Universal Time" : "" | |
}; | |
V.dates = K("dates accessor is deprecated. Use date instead.", Gc); | |
V.months = K("months accessor is deprecated. Use month instead", ob); | |
V.years = K("years accessor is deprecated. Use year instead", Xa); | |
V.zone = K("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", function(a, c) { | |
return null != a ? ("string" != typeof a && (a = -a), this.utcOffset(a, c), this) : -this.utcOffset() | |
}); | |
V.isDSTShifted = K("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", function() { | |
if (!v(this._isDSTShifted)) return this._isDSTShifted; | |
var a = {}; | |
if (B(a, this), a = va(a), a._a) { | |
var c = a._isUTC ? w(a._a) : ma(a._a); | |
this._isDSTShifted = this.isValid() && 0 < J(a._a, c.toArray()) | |
} else this._isDSTShifted = !1; | |
return this._isDSTShifted | |
}); | |
var ya = Q.prototype; | |
ya.calendar = function(a, c, f) { | |
a = this._calendar[a] || this._calendar.sameElse; | |
return L(a) ? a.call(c, f) : a | |
}; | |
ya.longDateFormat = function(a) { | |
var c = this._longDateFormat[a], | |
f = this._longDateFormat[a.toUpperCase()]; | |
return c || !f ? c : (this._longDateFormat[a] = f.replace(/MMMM|MM|DD|dddd/g, function(a) { | |
return a.slice(1) | |
}), this._longDateFormat[a]) | |
}; | |
ya.invalidDate = function() { | |
return this._invalidDate | |
}; | |
ya.ordinal = function(a) { | |
return this._ordinal.replace("%d", a) | |
}; | |
ya.preparse = ra; | |
ya.postformat = ra; | |
ya.relativeTime = function(a, c, f, k) { | |
var n = this._relativeTime[f]; | |
return L(n) ? n(a, c, f, k) : n.replace(/%d/i, a) | |
}; | |
ya.pastFuture = function(a, c) { | |
var f = this._relativeTime[0 < a ? "future" : "past"]; | |
return L(f) ? f(c) : f.replace(/%s/i, c) | |
}; | |
ya.set = function(a) { | |
var c, f; | |
for (f in a) c = a[f], L(c) ? this[f] = c : this["_" + f] = c; | |
this._config = a; | |
this._ordinalParseLenient = new RegExp(this._ordinalParse.source + "|" + /\d{1,2}/.source) | |
}; | |
ya.months = function(a, c) { | |
return a ? m(this._months) ? this._months[a.month()] : this._months[(this._months.isFormat || Ra).test(c) ? "format" : "standalone"][a.month()] : this._months | |
}; | |
ya.monthsShort = function(a, c) { | |
return a ? m(this._monthsShort) ? this._monthsShort[a.month()] : this._monthsShort[Ra.test(c) ? "format" : "standalone"][a.month()] : this._monthsShort | |
}; | |
ya.monthsParse = function(a, c, f) { | |
var k, n, e; | |
if (this._monthsParseExact) { | |
e = a.toLocaleLowerCase(); | |
if (!this._monthsParse) | |
for (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = [], a = 0; 12 > a; ++a) n = w([2e3, a]), this._shortMonthsParse[a] = this.monthsShort(n, "").toLocaleLowerCase(), this._longMonthsParse[a] = this.months(n, "").toLocaleLowerCase(); | |
return f ? "MMM" === c ? (k = fa.call(this._shortMonthsParse, e), -1 !== k ? k : null) : (k = fa.call(this._longMonthsParse, e), -1 !== k ? k : null) : "MMM" === c ? (k = fa.call(this._shortMonthsParse, e), -1 !== k ? k : (k = fa.call(this._longMonthsParse, e), -1 !== k ? k : null)) : (k = fa.call(this._longMonthsParse, e), -1 !== k ? k : (k = fa.call(this._shortMonthsParse, e), -1 !== k ? k : null)) | |
} | |
this._monthsParse || (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = []); | |
for (k = 0; 12 > k; k++) | |
if ((n = w([2e3, k]), f && !this._longMonthsParse[k] && (this._longMonthsParse[k] = new RegExp("^" + this.months(n, "").replace(".", "") + "$", "i"), this._shortMonthsParse[k] = new RegExp("^" + this.monthsShort(n, "").replace(".", "") + "$", "i")), f || this._monthsParse[k] || (e = "^" + this.months(n, "") + "|^" + this.monthsShort(n, ""), this._monthsParse[k] = new RegExp(e.replace(".", ""), "i")), f && "MMMM" === c && this._longMonthsParse[k].test(a)) || f && "MMM" === c && this._shortMonthsParse[k].test(a) || !f && this._monthsParse[k].test(a)) return k | |
}; | |
ya.monthsRegex = function(a) { | |
return this._monthsParseExact ? (n(this, "_monthsRegex") || xa.call(this), a ? this._monthsStrictRegex : this._monthsRegex) : (n(this, "_monthsRegex") || (this._monthsRegex = Yb), this._monthsStrictRegex && a ? this._monthsStrictRegex : this._monthsRegex) | |
}; | |
ya.monthsShortRegex = function(a) { | |
return this._monthsParseExact ? (n(this, "_monthsRegex") || xa.call(this), a ? this._monthsShortStrictRegex : this._monthsShortRegex) : (n(this, "_monthsShortRegex") || (this._monthsShortRegex = Yb), this._monthsShortStrictRegex && a ? this._monthsShortStrictRegex : this._monthsShortRegex) | |
}; | |
ya.week = function(a) { | |
return Ia(a, this._week.dow, this._week.doy).week | |
}; | |
ya.firstDayOfYear = function() { | |
return this._week.doy | |
}; | |
ya.firstDayOfWeek = function() { | |
return this._week.dow | |
}; | |
ya.weekdays = function(a, c) { | |
return a ? m(this._weekdays) ? this._weekdays[a.day()] : this._weekdays[this._weekdays.isFormat.test(c) ? "format" : "standalone"][a.day()] : this._weekdays | |
}; | |
ya.weekdaysMin = function(a) { | |
return a ? this._weekdaysMin[a.day()] : this._weekdaysMin | |
}; | |
ya.weekdaysShort = function(a) { | |
return a ? this._weekdaysShort[a.day()] : this._weekdaysShort | |
}; | |
ya.weekdaysParse = function(a, c, f) { | |
var k, n, e; | |
if (this._weekdaysParseExact) { | |
e = a.toLocaleLowerCase(); | |
if (!this._weekdaysParse) | |
for (this._weekdaysParse = [], this._shortWeekdaysParse = [], this._minWeekdaysParse = [], a = 0; 7 > a; ++a) n = w([2e3, 1]).day(a), this._minWeekdaysParse[a] = this.weekdaysMin(n, "").toLocaleLowerCase(), this._shortWeekdaysParse[a] = this.weekdaysShort(n, "").toLocaleLowerCase(), this._weekdaysParse[a] = this.weekdays(n, "").toLocaleLowerCase(); | |
return f ? "dddd" === c ? (k = fa.call(this._weekdaysParse, e), -1 !== k ? k : null) : "ddd" === c ? (k = fa.call(this._shortWeekdaysParse, e), -1 !== k ? k : null) : (k = fa.call(this._minWeekdaysParse, e), -1 !== k ? k : null) : "dddd" === c ? (k = fa.call(this._weekdaysParse, e), -1 !== k ? k : (k = fa.call(this._shortWeekdaysParse, e), -1 !== k ? k : (k = fa.call(this._minWeekdaysParse, e), -1 !== k ? k : null))) : "ddd" === c ? (k = fa.call(this._shortWeekdaysParse, e), -1 !== k ? k : (k = fa.call(this._weekdaysParse, e), -1 !== k ? k : (k = fa.call(this._minWeekdaysParse, e), -1 !== k ? k : null))) : (k = fa.call(this._minWeekdaysParse, e), -1 !== k ? k : (k = fa.call(this._weekdaysParse, e), -1 !== k ? k : (k = fa.call(this._shortWeekdaysParse, e), -1 !== k ? k : null))) | |
} | |
this._weekdaysParse || (this._weekdaysParse = [], this._minWeekdaysParse = [], this._shortWeekdaysParse = [], this._fullWeekdaysParse = []); | |
for (k = 0; 7 > k; k++) | |
if ((n = w([2e3, 1]).day(k), f && !this._fullWeekdaysParse[k] && (this._fullWeekdaysParse[k] = new RegExp("^" + this.weekdays(n, "").replace(".", ".?") + "$", "i"), this._shortWeekdaysParse[k] = new RegExp("^" + this.weekdaysShort(n, "").replace(".", ".?") + "$", "i"), this._minWeekdaysParse[k] = new RegExp("^" + this.weekdaysMin(n, "").replace(".", ".?") + "$", "i")), this._weekdaysParse[k] || (e = "^" + this.weekdays(n, "") + "|^" + this.weekdaysShort(n, "") + "|^" + this.weekdaysMin(n, ""), this._weekdaysParse[k] = new RegExp(e.replace(".", ""), "i")), f && "dddd" === c && this._fullWeekdaysParse[k].test(a)) || f && "ddd" === c && this._shortWeekdaysParse[k].test(a) || f && "dd" === c && this._minWeekdaysParse[k].test(a) || !f && this._weekdaysParse[k].test(a)) return k | |
}; | |
ya.weekdaysRegex = function(a) { | |
return this._weekdaysParseExact ? (n(this, "_weekdaysRegex") || Ta.call(this), a ? this._weekdaysStrictRegex : this._weekdaysRegex) : (n(this, "_weekdaysRegex") || (this._weekdaysRegex = Yb), this._weekdaysStrictRegex && a ? this._weekdaysStrictRegex : this._weekdaysRegex) | |
}; | |
ya.weekdaysShortRegex = function(a) { | |
return this._weekdaysParseExact ? (n(this, "_weekdaysRegex") || Ta.call(this), a ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) : (n(this, "_weekdaysShortRegex") || (this._weekdaysShortRegex = Yb), this._weekdaysShortStrictRegex && a ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) | |
}; | |
ya.weekdaysMinRegex = function(a) { | |
return this._weekdaysParseExact ? (n(this, "_weekdaysRegex") || Ta.call(this), a ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) : (n(this, "_weekdaysMinRegex") || (this._weekdaysMinRegex = Yb), this._weekdaysMinStrictRegex && a ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) | |
}; | |
ya.isPM = function(a) { | |
return "p" === (a + "").toLowerCase().charAt(0) | |
}; | |
ya.meridiem = function(a, c, f) { | |
return 11 < a ? f ? "pm" : "PM" : f ? "am" : "AM" | |
}; | |
La("en", { | |
ordinalParse: /\d{1,2}(th|st|nd|rd)/, | |
ordinal: function(a) { | |
var c = a % 10, | |
c = 1 === G(a % 100 / 10) ? "th" : 1 === c ? "st" : 2 === c ? "nd" : 3 === c ? "rd" : "th"; | |
return a + c | |
} | |
}); | |
h.lang = K("moment.lang is deprecated. Use moment.locale instead.", La); | |
h.langData = K("moment.langData is deprecated. Use moment.localeData instead.", Ha); | |
var $b = Math.abs, | |
Sc = rb("ms"), | |
Mc = rb("s"), | |
Pc = rb("m"), | |
wc = rb("h"), | |
Tc = rb("d"), | |
Nc = rb("w"), | |
Uc = rb("M"), | |
Oc = rb("y"), | |
Rc = Cb("milliseconds"), | |
Vc = Cb("seconds"), | |
Wc = Cb("minutes"), | |
Kc = Cb("hours"), | |
Jc = Cb("days"), | |
Xc = Cb("months"), | |
Lc = Cb("years"), | |
ec = Math.round, | |
gc = { | |
s: 45, | |
m: 45, | |
h: 22, | |
d: 26, | |
M: 11 | |
}, | |
Bc = Math.abs, | |
pa = pb.prototype; | |
pa.abs = function() { | |
var a = this._data; | |
return this._milliseconds = $b(this._milliseconds), this._days = $b(this._days), this._months = $b(this._months), a.milliseconds = $b(a.milliseconds), a.seconds = $b(a.seconds), a.minutes = $b(a.minutes), a.hours = $b(a.hours), a.months = $b(a.months), a.years = $b(a.years), this | |
}; | |
pa.add = function(a, c) { | |
return tb(this, a, c, 1) | |
}; | |
pa.subtract = function(a, c) { | |
return tb(this, a, c, -1) | |
}; | |
pa.as = function(a) { | |
var c, f, k = this._milliseconds; | |
if (a = O(a), "month" === a || "year" === a) return c = this._days + k / 864e5, f = this._months + 4800 * c / 146097, "month" === a ? f : f / 12; | |
switch (c = this._days + Math.round(146097 * this._months / 4800), a) { | |
case "week": | |
return c / 7 + k / 6048e5; | |
case "day": | |
return c + k / 864e5; | |
case "hour": | |
return 24 * c + k / 36e5; | |
case "minute": | |
return 1440 * c + k / 6e4; | |
case "second": | |
return 86400 * c + k / 1e3; | |
case "millisecond": | |
return Math.floor(864e5 * c) + k; | |
default: | |
throw Error("Unknown unit " + a) | |
} | |
}; | |
pa.asMilliseconds = Sc; | |
pa.asSeconds = Mc; | |
pa.asMinutes = Pc; | |
pa.asHours = wc; | |
pa.asDays = Tc; | |
pa.asWeeks = Nc; | |
pa.asMonths = Uc; | |
pa.asYears = Oc; | |
pa.valueOf = function() { | |
return this._milliseconds + 864e5 * this._days + this._months % 12 * 2592e6 + 31536e6 * G(this._months / 12) | |
}; | |
pa._bubble = function() { | |
var a, c, f, k, n, e = this._milliseconds, | |
t = this._days, | |
h = this._months, | |
m = this._data; | |
return 0 <= e && 0 <= t && 0 <= h || 0 >= e && 0 >= t && 0 >= h || (e += 864e5 * zb(146097 * h / 4800 + t), t = 0, h = 0), m.milliseconds = e % 1e3, a = F(e / 1e3), m.seconds = a % 60, c = F(a / 60), m.minutes = c % 60, f = F(c / 60), m.hours = f % 24, t += F(f / 24), n = F(4800 * t / 146097), h += n, t -= zb(146097 * n / 4800), k = F(h / 12), h %= 12, m.days = t, m.months = h, m.years = k, this | |
}; | |
pa.get = function(a) { | |
return a = O(a), this[a + "s"]() | |
}; | |
pa.milliseconds = Rc; | |
pa.seconds = Vc; | |
pa.minutes = Wc; | |
pa.hours = Kc; | |
pa.days = Jc; | |
pa.weeks = function() { | |
return F(this.days() / 7) | |
}; | |
pa.months = Xc; | |
pa.years = Lc; | |
pa.humanize = function(a) { | |
var c = this.localeData(), | |
f; | |
f = !a; | |
var k = qb(this).abs(), | |
n = ec(k.as("s")), | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment